Go to file
2026-02-14 18:04:18 -08:00
.github chore(deps): add Dependabot config 2026-02-14 15:45:37 -08:00
.husky chore(husky): run hooks from repo root and avoid npx 2026-02-14 12:55:41 -08:00
.windsurf/workflows chore(workflows): rename repo workflows to repo_* prefix, add sync-repos, remove pull from backup 2026-02-14 11:25:23 -08:00
AI.dev/SKILLS chore(security): add secret scanning + playbook 2026-02-14 00:24:41 -08:00
docs docs: link MindLyst iOS Azure Speech scaffold commit 2026-02-14 18:04:18 -08:00
packages feat(monitoring): add @bytelyst/monitoring package 2026-02-14 15:57:41 -08:00
scripts chore(husky): run hooks from repo root and avoid npx 2026-02-14 12:55:41 -08:00
services chore(docker): include new workspace packages in builds 2026-02-14 16:48:09 -08:00
.aider.conf.yml fix(common): configure ESLint 9 and fix lint issues 2026-02-12 16:37:30 -08:00
.clinerules docs: add missing agent configs (.windsurfrules, .clinerules, .aider.conf.yml) 2026-02-12 15:21:53 -08:00
.cursorrules docs: add .cursorrules and .github/copilot-instructions.md 2026-02-12 12:55:32 -08:00
.editorconfig chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
.env.example feat(extraction): add extraction-service to docker-compose + .env.example 2026-02-14 13:41:15 -08:00
.gitignore chore(security): add secret scanning + playbook 2026-02-14 00:24:41 -08:00
.nvmrc chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
.prettierrc feat: add quick wins - prettier, bundle limits, coverage 2026-02-12 15:54:06 -08:00
.windsurfrules docs: add missing agent configs (.windsurfrules, .clinerules, .aider.conf.yml) 2026-02-12 15:21:53 -08:00
AGENTS.md chore(security): add secret scanning + playbook 2026-02-14 00:24:41 -08:00
CLAUDE.md fix(common): configure ESLint 9 and fix lint issues 2026-02-12 16:37:30 -08:00
docker-compose.yml feat(extraction): add extraction-service to docker-compose + .env.example 2026-02-14 13:41:15 -08:00
eslint.config.js fix(common): configure ESLint 9 and fix lint issues 2026-02-12 16:37:30 -08:00
MANUAL_CI.md ci: disable GitHub Actions and add manual quality checks 2026-02-12 23:13:07 -08:00
package.json chore(tokens): auto-generate design tokens on commit 2026-02-14 15:46:20 -08:00
pnpm-lock.yaml feat(monitoring): add @bytelyst/monitoring package 2026-02-14 15:57:41 -08:00
pnpm-workspace.yaml fix(common): configure ESLint 9 and fix lint issues 2026-02-12 16:37:30 -08:00
quick-check.sh ci: disable GitHub Actions and add manual quality checks 2026-02-12 23:13:07 -08:00
README.md feat(monitoring): add @bytelyst/monitoring package 2026-02-14 15:57:41 -08:00
tsconfig.base.json chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
vitest.config.ts fix(common): configure ESLint 9 and fix lint issues 2026-02-12 16:37:30 -08:00

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 for instructions
  • Use .windsurf/workflows/production-readiness.md for comprehensive checks

Quick Start

# 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/logger Structured logger factory for services/dashboards
@bytelyst/cosmos Azure Cosmos DB client singleton + container registry @azure/cosmos
@bytelyst/blob Azure Blob Storage helpers + SAS URL generation @azure/storage-blob
@bytelyst/config Zod-based env config loader + product identity zod
@bytelyst/auth JWT utilities, auth middleware, password hashing jose, bcryptjs
@bytelyst/fastify-core Fastify service bootstrap (request-id, /health, errors) fastify
@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)
@bytelyst/extraction Extraction service client + shared types @bytelyst/api-client
@bytelyst/testing Shared test helpers (Fastify inject, schema asserts) vitest
@bytelyst/monitoring Health-check aggregation utilities

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

# 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:

// 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:

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 for the full phased extraction plan.