# ByteLyst Common Platform - Repository Context > **Purpose**: This file provides quick context for AI coding agents about what this repository contains and how to use it effectively. ## What This Repository Provides This is the **shared platform repository** for the ByteLyst ecosystem. It contains: - **36 shared libraries** (`@bytelyst/*` packages) used across all products - **Platform services** (platform-service, extraction-service, mcp-server) - **Internal dashboards** (admin-web, tracker-web, ux-lab) - **MCP/A2A tooling** and orchestration infrastructure - **Design tokens** and cross-platform SDKs ## Key Locations ### Packages (Shared Libraries) - **Location**: `packages/` - **Pattern**: All packages are scoped as `@bytelyst/{package-name}` - **Count**: 36 packages covering auth, config, storage, telemetry, diagnostics, etc. - **Build**: Individual packages via `pnpm --filter @bytelyst/{package} build` - **Key Packages**: - `@bytelyst/config` - Environment configuration and product identity - `@bytelyst/cosmos` - Azure Cosmos DB client singleton - `@bytelyst/auth` - JWT utilities and auth middleware - `@bytelyst/api-client` - Configurable fetch wrapper with auth - `@bytelyst/telemetry-client` - Client diagnostics and event batching - `@bytelyst/llm` - LLM client utilities - `@bytelyst/devops` - Build metadata and deployment utilities ### Services - **Location**: `services/` - **platform-service**: Product-agnostic platform API (port 4003) - **extraction-service**: LangExtract text extraction + Python sidecar (port 4005) - **mcp-server**: MCP tool server + A2A orchestration ### Scripts - **Location**: `scripts/` - **docker-prep.sh**: Build all packages before Docker builds - **quick-check.sh**: Quick quality check (5 min) - run before pushing - **sync-npmrc.sh**: Sync .npmrc template to all product repos - **prototype-self-test.sh**: Prototype health check script ### Documentation - **Location**: `docs/` - **ecosystem/**: Cross-product strategy and shared-contract documentation - **devops/gitea-runner/**: Canonical Hostinger Gitea Actions runner rollout docs and delegation prompt - **PROTOTYPE_DEPLOYMENT.md**: Prototype deployment guide ## Common Usage Patterns ### Building Packages ```bash # Build all packages pnpm build # Build specific package pnpm --filter @bytelyst/config build # Build all packages + services pnpm build ``` ### Quality Checks ```bash # Quick check (before pushing) ./quick-check.sh # Full test suite pnpm test # Type-check all packages pnpm typecheck ``` ### Docker Preparation ```bash # Build all packages before Docker builds (critical!) ./scripts/docker-prep.sh ``` ## Package Dependencies ### Workspace Protocol - Uses `pnpm` workspace with `workspace:*` protocol - Dependencies between packages use: `"@bytelyst/config": "workspace:*"` - External dependencies use standard semver ranges ### Build Order - **Always build common-plat packages before product repos** - Docker builds depend on packages being pre-built via `docker-prep.sh` - Product repos import from `learning_ai_common_plat/packages/{package}/dist/` ### Package Scope Rules - **@bytelyst/\*** = shared libraries (packages/) - **@lysnrai/\*** = platform services (services/) - Products consume `@bytelyst/*` packages ## Integration with Product Repos ### When Working in Product Repos 1. If you need to modify a shared package, do it here first 2. Build the package: `pnpm --filter @bytelyst/{package} build` 3. Then rebuild the product that consumes it 4. For Docker builds in products, always run `./scripts/docker-prep.sh` first ### Common Issues - **"Cannot find module @bytelyst/..."**: Package needs to be built - **Docker build fails**: Run `docker-prep.sh` to build all packages first - **Version conflicts**: Check workspace protocol in package.json files ## NPM Registry Configuration ### Gitea Registry - **Registry**: `http://localhost:3300/api/packages/bytelyst/npm/` - **Token**: Managed via `.npmrc` template - **Template**: `scripts/npmrc.template` - **Sync Script**: `scripts/sync-npmrc.sh` (syncs to all product repos) ### .npmrc Management - **NEVER edit .npmrc files directly in product repos** - Use the canonical template in this repo - Sync changes to all repos via `sync-npmrc.sh` ## TypeScript Configuration ### Base Configuration - **File**: `tsconfig.base.json` - **Target**: ES2022, NodeNext module resolution - **Strict mode**: Enabled - All packages/services extend this base config ## Testing ### Test Runner - **Framework**: Vitest - **Command**: `pnpm test` (runs all package tests) - **Pass with no tests**: Configured at root level - **Individual packages**: `pnpm --filter @bytelyst/{package} test` ## Important Notes ### Before Making Changes 1. Read the specific package's documentation 2. Check if changes affect consuming products 3. Run `quick-check.sh` before committing 4. Consider impact on all ecosystem products ### Package Publishing - Packages are published to internal Gitea registry - Not published to public npm registry - Version management follows semantic versioning ### Design Tokens - **Canonical source**: `packages/design-tokens/tokens/bytelyst.tokens.json` - **Generator**: `packages/design-tokens/scripts/generate.ts` - **Outputs**: CSS, TypeScript, Kotlin, Swift, React Native - **NEVER hardcode colors** - always use design tokens ## Quick Reference for Common Tasks | Task | Command | | ------------------------- | ----------------------------------------- | | Build all packages | `pnpm build` | | Build specific package | `pnpm --filter @bytelyst/{package} build` | | Quick quality check | `./quick-check.sh` | | Prepare for Docker builds | `./scripts/docker-prep.sh` | | Run tests | `pnpm test` | | Type-check | `pnpm typecheck` | | Sync .npmrc to all repos | `./scripts/sync-npmrc.sh` | ## Related Repositories - **bytelyst-devops-tools**: Deployment scripts and operational automation - **Product repos**: learning_ai_invt_trdg, learning_ai_notes, etc. (consume these packages)