Go to file
Saravana Achu Mac 1ee97327ee feat(packages): create 9 NomGap-required platform packages
Create source implementations for packages imported by NomGap:
- @bytelyst/accessibility — ARIA helper functions (alertLabel, progressLabel, etc.)
- @bytelyst/celebrations — celebration engine for milestones
- @bytelyst/gentle-notifications — guilt-free notification filtering
- @bytelyst/time-references — human-friendly fasting time references
- @bytelyst/subscription-client — billing/subscription HTTP client
- @bytelyst/quick-actions — progressive disclosure UI helpers
- @bytelyst/referral-client — referral program client
- @bytelyst/marketplace-client — influencer marketplace client
- @bytelyst/org-client — B2B org management client

Made-with: Cursor
2026-03-29 22:24:02 -07:00
__LOCAL_LLMs ci: update CI/CD configuration 2026-03-29 10:50:53 -07:00
.changeset chore(release): add changesets 2026-02-14 19:49:08 -08:00
.gitea/workflows ci: add lint step to build-and-test job 2026-03-29 11:08:11 -07:00
.github feat(design-system): add design review PR template with screenshot requirement 2026-03-27 16:37:28 -07:00
.husky chore(husky): run hooks from repo root and avoid npx 2026-02-14 12:55:41 -08:00
.windsurf/workflows fix(workflows): normalize repo management coverage 2026-03-24 16:05:12 -07:00
AI.dev/SKILLS fix: update .env.example comments, Grafana dashboard, and debug-service.md for consolidated services 2026-02-14 22:01:55 -08:00
dashboards docs(devops): add Track A handoff and prep gateway changes 2026-03-29 23:57:03 +00:00
docs docs(devops): refresh Track A handoff status 2026-03-30 00:11:45 +00:00
e2e feat(diagnostics): Phase 4 - automated triggers, crash sessions, session replay, profiling [4.1][4.2][4.3][4.4] 2026-03-03 12:18:58 -08:00
packages feat(packages): create 9 NomGap-required platform packages 2026-03-29 22:24:02 -07:00
products feat(ecosystem): register EffoRise — backend :4020, web :3080, product.json, AGENTS.md 2026-03-29 15:46:44 -07:00
scripts ci: update CI/CD configuration 2026-03-29 10:50:53 -07:00
services fix(mcp-server): pass workspaceId to notelett note get/update/delete/summarize tools 2026-03-29 22:10:03 -07:00
.aider.conf.yml chore(docs): regenerate AI agent config files 2026-03-05 14:37:31 -08:00
.clinerules chore(docs): regenerate AI agent config files 2026-03-05 14:37:31 -08:00
.cursorrules chore(docs): regenerate AI agent config files 2026-03-05 14:37:31 -08:00
.dockerignore chore: add root .dockerignore to exclude non-build dirs 2026-03-27 23:11:47 -07:00
.editorconfig chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
.env.ecosystem.example docs(docker): update README, prompt.md, .env.ecosystem.example with audit fixes 2026-03-28 00:45:38 -07:00
.env.example feat(field-encrypt): create @bytelyst/field-encrypt package with AES-256-GCM envelope encryption 2026-03-21 09:18:10 -07:00
.gitattributes fix(local-llms): harden WSL setup and dashboard Ollama connectivity 2026-02-22 16:44:58 -08:00
.gitignore chore(infra): add .env.ecosystem.example for ecosystem compose 2026-03-24 09:08:30 -07:00
.npmrc chore(platform): align docker and package outputs 2026-03-29 23:41:08 +00: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 chore(docs): regenerate AI agent config files 2026-03-05 14:37:31 -08:00
AGENTS.md feat(ecosystem): register EffoRise — backend :4020, web :3080, product.json, AGENTS.md 2026-03-29 15:46:44 -07:00
CLAUDE.md docs: add cross-repo automation playbook reference to AGENTS.md and CLAUDE.md 2026-03-21 09:11:48 -07:00
docker-compose.ecosystem.yml docs(devops): add Track A handoff and prep gateway changes 2026-03-29 23:57:03 +00:00
docker-compose.yml Add Mailpit-backed prototype email sandbox 2026-03-14 06:16:28 +00:00
eslint.config.js feat(use-keyboard-shortcuts): shared React keyboard shortcuts hook 2026-03-29 12:40:43 -07:00
MANUAL_CI.md docs: fix stale references to consolidated services and migrated dashboards 2026-02-28 03:06:44 -08:00
package.json feat(repo): add packageManager field + finalize pnpm migration tracker 2026-03-22 20:36:41 -07:00
pnpm-lock.yaml docs: update LOCAL_AI_CONSOLIDATION_ROADMAP — Phase 1 + 2.1 complete 2026-03-29 12:47:17 -07:00
pnpm-workspace.yaml feat(devops): encryption migration CLI with embedded product configs 2026-03-21 13:19:55 -07:00
quick-check.sh ci: disable GitHub Actions and add manual quality checks 2026-02-12 23:13:07 -08:00
README.md chore(scripts): add lint-infra, typecheck-all, test-all cross-repo scripts 2026-03-26 23:15:16 -07:00
tsconfig.base.json chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
vitest.config.ts fix(ci): use forks pool in vitest to avoid tinypool kill EPERM on Node v25 2026-03-27 23:15:16 -07: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
pnpm test

# Type-check all packages
pnpm typecheck

# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev

Prototype Deployment

For a single-host prototype, use Docker Compose with the repo root docker-compose.yml.

cp .env.example .env
./scripts/prototype-up.sh
pnpm prototype:self-test

See docs/PROTOTYPE_DEPLOYMENT.md for the required environment variables and day-to-day commands.

The prototype stack now includes a local Cosmos DB Emulator container, so the default .env.example values are wired for single-VM Docker use. Blob uploads are backed by local Azurite, prototype email delivery is backed by Mailpit, and the platform exposes prototype diagnostics at /api/health/dependencies, /api/self-test, and /api/self-test.json.

Current Capability Surface

  • Shared packages — 36 @bytelyst/* packages covering auth, config, API clients, storage, sync, telemetry, diagnostics, design tokens, SDK support, and testing.
  • Servicesplatform-service, extraction-service, mcp-server, and monitoring.
  • Dashboardsadmin-web, tracker-web, and ux-lab.
  • MCP/A2Aservices/mcp-server/ exposes tool routing, platform operator tools, extraction helpers, dev tools, product namespaces, and A2A orchestration pipelines.

Repository Structure

learning_ai_common_plat/
├── packages/                    # 36 shared libraries (@bytelyst/*)
│   ├── api-client/
│   ├── auth/
│   ├── auth-client/
│   ├── blob/ + blob-client/
│   ├── broadcast-client/ + survey-client/
│   ├── config/ + cosmos/
│   ├── dashboard-components/
│   ├── design-tokens/
│   ├── diagnostics-client/ + swift-diagnostics/
│   ├── events/ + fastify-core/
│   ├── extraction/ + llm/ + speech/
│   ├── feature-flag-client/ + feedback-client/ + kill-switch-client/
│   ├── kotlin-platform-sdk/ + swift-platform-sdk/ + react-native-platform-sdk/
│   ├── logger/ + monitoring/ + testing/
│   ├── offline-queue/ + platform-client/ + sync/ + telemetry-client/
│   └── datastore/ + storage/ + push/
├── dashboards/                  # Product-agnostic and internal web workspaces
│   ├── admin-web/               # Platform admin console (port 3001)
│   ├── tracker-web/             # Issue tracker + public roadmap (port 3003)
│   └── ux-lab/                  # Internal UX lab / MCP-assisted ops prototypes
├── services/                    # Platform services + tooling servers
│   ├── platform-service/        # Product-agnostic platform API (port 4003)
│   ├── extraction-service/      # LangExtract text extraction + Python sidecar (port 4005)
│   ├── mcp-server/              # MCP tool server + A2A orchestration
│   └── monitoring/              # Loki + Grafana config, health-check
└── docs/                        # Architecture docs, roadmap, analysis

Package Families

Family Representative Packages Purpose
Core platform @bytelyst/config, @bytelyst/cosmos, @bytelyst/errors, @bytelyst/logger, @bytelyst/testing Shared infrastructure for all services and dashboards
Auth & app clients @bytelyst/auth, @bytelyst/auth-client, @bytelyst/api-client, @bytelyst/platform-client, @bytelyst/react-auth Identity, auth flows, typed service clients
Diagnostics & telemetry @bytelyst/diagnostics-client, @bytelyst/telemetry-client, @bytelyst/swift-diagnostics Client diagnostics, event batching, crash/error capture
Storage & sync @bytelyst/blob, @bytelyst/blob-client, @bytelyst/datastore, @bytelyst/storage, @bytelyst/sync, @bytelyst/offline-queue Blob, local persistence, sync orchestration
Product experience @bytelyst/feature-flag-client, @bytelyst/feedback-client, @bytelyst/broadcast-client, @bytelyst/survey-client, @bytelyst/kill-switch-client Runtime platform features for product apps
AI & extraction @bytelyst/extraction, @bytelyst/llm, @bytelyst/speech Extraction tasks, LLM utilities, speech integration
UI & design @bytelyst/design-tokens, @bytelyst/dashboard-components Shared tokens and dashboard UI building blocks
Native SDKs @bytelyst/swift-platform-sdk, @bytelyst/kotlin-platform-sdk, @bytelyst/react-native-platform-sdk Cross-platform mobile/native platform access

Services and Dashboards

Surface Port Description
platform-service 4003 Product-agnostic Fastify platform API: auth, flags, telemetry, diagnostics, jobs, analytics, A/B testing, changelog, webhooks, marketplace, predictive analytics, and more
extraction-service 4005 LangExtract-based extraction service with task library and Python sidecar
mcp-server configurable MCP server exposing tool execution, platform tools, dev tools, extraction helpers, and A2A orchestration pipelines
monitoring Loki, Grafana, and health-check tooling
admin-web 3001 Platform admin console
tracker-web 3003 Tracker / public roadmap dashboard
ux-lab internal Internal UX lab and ops prototyping workspace

Note: billing-service (4002), growth-service (4001), and tracker-service (4004) were consolidated into platform-service (Feb 2026).

All services are product-agnostic — every Cosmos document includes a productId field, so a single deployment serves LysnrAI, MindLyst, or any future product.

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.

Portable Builds (Docker / CI)

file: refs break in Docker and CI because the sibling repo isn't available at the expected relative path. Use the tarball prep workflow to make builds self-contained:

# 1. Build all @bytelyst/* packages
pnpm build

# 2. Pack tarballs + rewrite a consumer's package.json
#    (run from the consumer repo)
../learning_ai_common_plat/scripts/prep-consumer.sh <target-dir>

# 3. Build (Docker, EAS, CI — no sibling repo access needed)
docker build <target-dir>

# 4. Restore original package.json
../learning_ai_common_plat/scripts/prep-consumer.sh <target-dir> --restore

Each consumer repo has a convenience wrapper: scripts/docker-prep.sh (or scripts/docker-prep-dashboards.sh in LysnrAI).

Consumer Repo Wrapper Script Targets
learning_voice_ai_agent scripts/docker-prep-dashboards.sh user-dashboard-web
learning_ai_clock scripts/docker-prep.sh web
learning_ai_fastgap scripts/docker-prep.sh root package.json
learning_multimodal_memory_agents scripts/docker-prep.sh mindlyst-native/web

Dashboards inside this repo (dashboards/admin-web, dashboards/tracker-web) use workspace:* refs and do NOT need this workflow — pnpm resolves them automatically.

Infrastructure Lint

Validates all 25 Dockerfiles across the 11 ByteLyst repos using hadolint, and any Helm charts using helm lint + helm template.

# Prerequisites
brew install hadolint helm

# Lint everything
./scripts/lint-infra.sh

# Dockerfiles only / Helm charts only
./scripts/lint-infra.sh --docker
./scripts/lint-infra.sh --helm

# Explicit paths
./scripts/lint-infra.sh path/to/Dockerfile path/to/chart-dir

Suppressed rules (false positives for this codebase): DL3045, DL3018, DL3008, DL3059, SC2155.

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.