feat(ecosystem): register EffoRise — backend :4020, web :3080, product.json, AGENTS.md

This commit is contained in:
saravanakumardb1 2026-03-29 14:39:37 -07:00
parent b261c5d13f
commit 26739e36db
3 changed files with 99 additions and 13 deletions

View File

@ -8,17 +8,17 @@
## 1. Project Identity
| Key | Value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Root package** | `@bytelyst/root` |
| **Library scope** | `@bytelyst/*` (packages/) |
| **Service scope** | `@lysnrai/*` (services/) |
| **Product consumers** | [LysnrAI](../learning_voice_ai_agent), [MindLyst](../learning_multimodal_memory_agents), [ChronoMind](../learning_ai_clock), [JarvisJr](../learning_ai_jarvis_jr), [NomGap](../learning_ai_fastgap), [PeakPulse](../learning_ai_peakpulse) |
| **Product-agnostic** | Yes — every Cosmos doc includes `productId` |
| **Runtime** | Node.js (ESM), TypeScript 5.7+ |
| **Package manager** | pnpm (workspace) |
| **Test runner** | Vitest |
| **Prototype stack** | Docker Compose with Cosmos emulator, Azurite, Mailpit, Traefik, Loki, and Grafana |
| Key | Value |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Root package** | `@bytelyst/root` |
| **Library scope** | `@bytelyst/*` (packages/) |
| **Service scope** | `@lysnrai/*` (services/) |
| **Product consumers** | [LysnrAI](../learning_voice_ai_agent), [MindLyst](../learning_multimodal_memory_agents), [ChronoMind](../learning_ai_clock), [JarvisJr](../learning_ai_jarvis_jr), [NomGap](../learning_ai_fastgap), [PeakPulse](../learning_ai_peakpulse), [FlowMonk](../learning_ai_flowmonk), [NoteLett](../learning_ai_notes), [ActionTrail](../learning_ai_trails), [LocalMemGPT](../learning_ai_local_memory_gpt), [EffoRise](../learning_ai_efforise) |
| **Product-agnostic** | Yes — every Cosmos doc includes `productId` |
| **Runtime** | Node.js (ESM), TypeScript 5.7+ |
| **Package manager** | pnpm (workspace) |
| **Test runner** | Vitest |
| **Prototype stack** | Docker Compose with Cosmos emulator, Azurite, Mailpit, Traefik, Loki, and Grafana |
## 2. Monorepo Layout

View File

@ -21,10 +21,11 @@
# Products: peakpulse 4010, chronomind 4011, jarvisjr 4012,
# nomgap 4013, mindlyst 4014, lysnrai 4015,
# notelett 4016, flowmonk 4017, actiontrail 4018,
# localmemgpt 4019
# localmemgpt 4019, efforise 4020
# Product webs: chronomind 3030, jarvisjr 3035, flowmonk 3040,
# notelett 3045, mindlyst 3050, nomgap 3055,
# actiontrail 3060, localmemgpt 3070, lysnrai 3002
# actiontrail 3060, localmemgpt 3070, efforise 3080,
# lysnrai 3002
# Product Dockerfiles require BuildKit secrets for Gitea npm registry access.
# GITEA_NPM_HOST defaults to host.docker.internal (Mac local dev).
@ -519,6 +520,29 @@ services:
retries: 3
restart: unless-stopped
efforise-backend:
build:
<<: *product-build
context: ../learning_ai_efforise
dockerfile: backend/Dockerfile
ports:
- '4020:4020'
env_file:
- .env.ecosystem
environment:
- PORT=4020
- HOST=0.0.0.0
- PLATFORM_SERVICE_URL=http://platform-service:4003
depends_on:
platform-service:
condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4020/health']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
# ═════════════════════════════════════════════════════════════════
# PRODUCT WEB APPS (from sibling repos)
# ═════════════════════════════════════════════════════════════════
@ -781,6 +805,23 @@ services:
retries: 3
restart: unless-stopped
efforise-web:
build:
<<: *product-build
context: ../learning_ai_efforise
dockerfile: client/Dockerfile
ports:
- '3080:3080'
depends_on:
efforise-backend:
condition: service_healthy
healthcheck:
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3080']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
# ═════════════════════════════════════════════════════════════════
# VOLUMES
# ═════════════════════════════════════════════════════════════════

View File

@ -0,0 +1,45 @@
{
"id": "efforise",
"name": "EffoRise",
"displayName": "EffoRise",
"bundleId": "com.saravana.efforise",
"domain": "efforise.app",
"description": "Identity-based habit tracker — rise with efforts",
"platforms": ["web", "mobile"],
"version": "0.1.0",
"theme": {
"primary": "#6366F1",
"secondary": "#8B5CF6",
"accent": "#F59E0B",
"background": "#09090B",
"surface": "#18181B",
"text": "#FAFAFA",
"error": "#EF4444",
"warning": "#F59E0B",
"success": "#22C55E"
},
"features": {
"identities": true,
"efforts": true,
"habits": true,
"streaks": true,
"insights": true
},
"cosmos": {
"containers": [
{ "name": "effo_identities", "partitionKey": "/userId" },
{ "name": "effo_efforts", "partitionKey": "/userId" },
{ "name": "effo_habits", "partitionKey": "/userId" },
{ "name": "effo_streaks", "partitionKey": "/userId" },
{ "name": "effo_insights", "partitionKey": "/userId" }
]
},
"flags": [
{ "key": "pro-features", "defaultValue": false },
{ "key": "max-identities-free", "defaultValue": 3 }
],
"ports": {
"service": 4020,
"dashboard": 3080
}
}