7-phase step-by-step guide: - Phase 1: Install (Node.js, OpenClaw, onboarding wizard) - Phase 2: Secure the Gateway (config hardening, password, permissions) - Phase 3: Connect Channels (WhatsApp, Telegram, Discord, Slack, WebChat) - Phase 4: Harden the Host (Windows Firewall, WSL2, macOS, router) - Phase 5: Remote Access (Tailscale Serve setup) - Phase 6: Validate Security (run validate-security.sh) - Phase 7: Daemon & Auto-Start (launchd/systemd) Plus: 22-point verification checklist, maintenance schedule, emergency procedures, and quick reference card |
||
|---|---|---|
| __LOCAL_LLMs | ||
| .changeset | ||
| .github | ||
| .husky | ||
| .windsurf/workflows | ||
| AI.dev/SKILLS | ||
| docs | ||
| packages | ||
| scripts | ||
| services | ||
| .aider.conf.yml | ||
| .clinerules | ||
| .cursorrules | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierrc | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| MANUAL_CI.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| quick-check.sh | ||
| README.md | ||
| tsconfig.base.json | ||
| vitest.config.ts | ||
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.mdfor 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 (400–429)
│ ├── 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 (400–429) | — |
@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 constantsMindLystTokens.kt— Kotlin object for KMPMindLystTheme.swift— Swift structs for SwiftUI
Roadmap
See docs/ROADMAP.md for the full phased extraction plan.