From 41cd821fabd94c2280e4e239b8c754b4ed8059aa Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Tue, 3 Mar 2026 10:04:24 -0800 Subject: [PATCH] feat(products): add product.json files for all 6 products - LysnrAI: voice dictation (port 4015) - MindLyst: role-based memory OS (port 4014) - ChronoMind: contextual timer (port 4011) - NomGap: fasting tracker (port 4013) - JarvisJr: voice coaching (port 4012) - PeakPulse: adventure tracker (port 4010) --- products/chronomind/product.json | 48 ++++++++++++++++++++++++++++++ products/jarvisjr/product.json | 48 ++++++++++++++++++++++++++++++ products/lysnrai/product.json | 48 ++++++++++++++++++++++++++++++ products/mindlyst/product.json | 50 ++++++++++++++++++++++++++++++++ products/nomgap/product.json | 47 ++++++++++++++++++++++++++++++ products/peakpulse/product.json | 47 ++++++++++++++++++++++++++++++ 6 files changed, 288 insertions(+) create mode 100644 products/chronomind/product.json create mode 100644 products/jarvisjr/product.json create mode 100644 products/lysnrai/product.json create mode 100644 products/mindlyst/product.json create mode 100644 products/nomgap/product.json create mode 100644 products/peakpulse/product.json diff --git a/products/chronomind/product.json b/products/chronomind/product.json new file mode 100644 index 00000000..7d86596d --- /dev/null +++ b/products/chronomind/product.json @@ -0,0 +1,48 @@ +{ + "id": "chronomind", + "name": "ChronoMind", + "displayName": "ChronoMind", + "bundleId": "com.saravana.chronomind", + "domain": "chronomind.app", + "description": "AI-powered contextual clock and timer with pre-warning cascade", + "platforms": ["web", "ios", "watchos", "macos", "android"], + "version": "1.0.0", + "theme": { + "primary": "#5AE68C", + "secondary": "#5A8CFF", + "accent": "#FFD93D", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "timerEngine": true, + "preWarningCascade": true, + "routines": true, + "linkedTimers": true, + "pomodoro": true, + "calendarSync": true, + "liveActivities": true, + "widgets": true + }, + "cosmos": { + "containers": [ + { "name": "timers", "partitionKey": "/userId" }, + { "name": "routines", "partitionKey": "/userId" }, + { "name": "households", "partitionKey": "/id" }, + { "name": "shared_timers", "partitionKey": "/householdId" }, + { "name": "timer_webhooks", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "pro-features", "defaultValue": false }, + { "key": "max-timers-free", "defaultValue": 10 } + ], + "ports": { + "service": 4011, + "dashboard": 3000 + } +} diff --git a/products/jarvisjr/product.json b/products/jarvisjr/product.json new file mode 100644 index 00000000..cc9f9147 --- /dev/null +++ b/products/jarvisjr/product.json @@ -0,0 +1,48 @@ +{ + "id": "jarvisjr", + "name": "JarvisJr", + "displayName": "JarvisJr", + "bundleId": "com.saravana.jarvisjr", + "domain": "jarvisjr.app", + "description": "Voice-first multi-agent coaching platform", + "platforms": ["web", "ios", "watchos", "macos", "android"], + "version": "1.0.0", + "theme": { + "primary": "#5AE68C", + "secondary": "#5A8CFF", + "accent": "#A66BFF", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "voiceAgents": true, + "realtimeSessions": true, + "agentMemory": true, + "marketplace": true, + "teams": true, + "openAIRealtime": true, + "checkInScheduling": true + }, + "cosmos": { + "containers": [ + { "name": "jarvis_agents", "partitionKey": "/userId" }, + { "name": "jarvis_sessions", "partitionKey": "/userId" }, + { "name": "jarvis_memory", "partitionKey": "/agentId" }, + { "name": "jarvis_teams", "partitionKey": "/id" }, + { "name": "marketplace_listings", "partitionKey": "/productId" }, + { "name": "marketplace_purchases", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "pro-voices", "defaultValue": false }, + { "key": "max-agents-free", "defaultValue": 3 } + ], + "ports": { + "service": 4012, + "dashboard": 3010 + } +} diff --git a/products/lysnrai/product.json b/products/lysnrai/product.json new file mode 100644 index 00000000..ef3657e5 --- /dev/null +++ b/products/lysnrai/product.json @@ -0,0 +1,48 @@ +{ + "id": "lysnrai", + "name": "LysnrAI", + "displayName": "LysnrAI", + "bundleId": "com.saravana.lysnrai", + "domain": "lysnrai.app", + "description": "Voice-to-text dictation platform with AI transcription", + "platforms": ["web", "ios", "android", "desktop"], + "version": "2.0.0", + "theme": { + "primary": "#5AE68C", + "secondary": "#5A8CFF", + "accent": "#2EE6D6", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "voiceDictation": true, + "realtimeTranscription": true, + "keyboardExtension": true, + "cloudSync": true, + "customVocabulary": true, + "autoPunctuation": true + }, + "cosmos": { + "containers": [ + { "name": "transcripts", "partitionKey": "/userId" }, + { "name": "sessions", "partitionKey": "/userId" }, + { "name": "organizations", "partitionKey": "/id" }, + { "name": "api_tokens", "partitionKey": "/userId" }, + { "name": "webhooks", "partitionKey": "/userId" }, + { "name": "themes", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "new-ui-enabled", "defaultValue": false, "description": "Enable new UI redesign" }, + { "key": "max-audio-duration", "defaultValue": 300, "description": "Max audio length in seconds" }, + { "key": "beta-features", "defaultValue": false, "description": "Enable beta features" } + ], + "ports": { + "service": 4015, + "dashboard": 3002 + } +} diff --git a/products/mindlyst/product.json b/products/mindlyst/product.json new file mode 100644 index 00000000..1afd6c1e --- /dev/null +++ b/products/mindlyst/product.json @@ -0,0 +1,50 @@ +{ + "id": "mindlyst", + "name": "MindLyst", + "displayName": "MindLyst", + "bundleId": "com.bytelyst.mindlyst", + "domain": "mindlyst.app", + "description": "Role-based life OS with AI-powered memory and triage", + "platforms": ["web", "ios", "android"], + "version": "1.0.0", + "theme": { + "primary": "#5A8CFF", + "secondary": "#2EE6D6", + "accent": "#A66BFF", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "multiBrain": true, + "aiTriage": true, + "voiceCapture": true, + "screenshotCapture": true, + "dailyBrief": true, + "reflections": true + }, + "cosmos": { + "containers": [ + { "name": "brains", "partitionKey": "/userId" }, + { "name": "memory_items", "partitionKey": "/userId" }, + { "name": "streaks", "partitionKey": "/userId" }, + { "name": "reflections", "partitionKey": "/userId" }, + { "name": "daily_briefs", "partitionKey": "/userId" }, + { "name": "share_cards", "partitionKey": "/userId" }, + { "name": "brain_insights", "partitionKey": "/userId" }, + { "name": "notification_log", "partitionKey": "/userId" }, + { "name": "analytics_events", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "beta-brains", "defaultValue": false }, + { "key": "max-memories-per-brain", "defaultValue": 1000 } + ], + "ports": { + "service": 4014, + "dashboard": 3050 + } +} diff --git a/products/nomgap/product.json b/products/nomgap/product.json new file mode 100644 index 00000000..385d1d79 --- /dev/null +++ b/products/nomgap/product.json @@ -0,0 +1,47 @@ +{ + "id": "nomgap", + "name": "NomGap", + "displayName": "NomGap", + "bundleId": "com.saravana.nomgap", + "domain": "nomgap.app", + "description": "AI-powered fasting tracker with body visualization", + "platforms": ["ios", "android"], + "version": "1.0.0", + "theme": { + "primary": "#5AE68C", + "secondary": "#5A8CFF", + "accent": "#FF9F43", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "fastingTimer": true, + "bodyStages": true, + "hydrationReminders": true, + "streakTracking": true, + "gamification": true, + "socialFasting": true, + "proAutophagy": true + }, + "cosmos": { + "containers": [ + { "name": "fasting_sessions", "partitionKey": "/userId" }, + { "name": "fasting_protocols", "partitionKey": "/userId" }, + { "name": "social_fasts", "partitionKey": "/id" }, + { "name": "meal_logs", "partitionKey": "/userId" }, + { "name": "push_triggers", "partitionKey": "/userId" }, + { "name": "body_stages", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "pro-features", "defaultValue": false }, + { "key": "max-extended-fast", "defaultValue": 168 } + ], + "ports": { + "service": 4013 + } +} diff --git a/products/peakpulse/product.json b/products/peakpulse/product.json new file mode 100644 index 00000000..472891cf --- /dev/null +++ b/products/peakpulse/product.json @@ -0,0 +1,47 @@ +{ + "id": "peakpulse", + "name": "PeakPulse", + "displayName": "PeakPulse", + "bundleId": "com.saravana.peakpulse", + "domain": "peakpulse.app", + "description": "Sensor-driven adventure tracker for hikers and skiers", + "platforms": ["ios", "watchos"], + "version": "1.0.0", + "theme": { + "primary": "#FF6E6E", + "secondary": "#5A8CFF", + "accent": "#FFD93D", + "background": "#06070A", + "surface": "#121725", + "text": "#EFF4FF", + "error": "#FF6E6E", + "warning": "#F59E0B", + "success": "#34D399" + }, + "features": { + "gpsTracking": true, + "altimeter": true, + "skiIntelligence": true, + "hikerIntelligence": true, + "weatherKit": true, + "liveActivities": true, + "widgets": true, + "healthKit": true, + "safetyAlerts": true + }, + "cosmos": { + "containers": [ + { "name": "peak_sessions", "partitionKey": "/userId" }, + { "name": "peak_routes", "partitionKey": "/userId" }, + { "name": "goals", "partitionKey": "/userId" }, + { "name": "gamification", "partitionKey": "/userId" } + ] + }, + "flags": [ + { "key": "pro-analytics", "defaultValue": false }, + { "key": "max-sessions-free", "defaultValue": 50 } + ], + "ports": { + "service": 4010 + } +}