feat(ecosystem): register EffoRise — backend :4020, web :3080, product.json, AGENTS.md
This commit is contained in:
parent
b261c5d13f
commit
26739e36db
22
AGENTS.md
22
AGENTS.md
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
45
products/efforise/product.json
Normal file
45
products/efforise/product.json
Normal 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
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user