mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 05:57:21 -05:00
Frontend fixes: - Copy missing JS files from blackroad-os/ to backend/static/js/ - os.js (core OS functionality) - components.js (UI components) - registry.js (app registry) - app.js, config.js, theme.js, mock_data.js (supporting files) - Fixes 3 ERROR findings from Cece audit - System health: 0 ERRORS → 94 SUCCESSES (from 91) Backend config fix: - Add `extra = "ignore"` to Settings.Config in backend/app/config.py - Allows .env.example to have more vars than Settings class defines - Fixes Pydantic v2 validation errors on startup - Enables local development without removing env template vars Cece audit results after fixes: 🔴 CRITICAL: 0 🟠 ERROR: 0 (was 3) 🟡 WARNING: 6 🟢 SUCCESS: 94 (was 91)
201 lines
5.3 KiB
JavaScript
201 lines
5.3 KiB
JavaScript
/**
|
|
* Application Registry
|
|
* Central registry of all installed apps
|
|
* Maps app IDs to metadata and entry points
|
|
* TODO: Add app categories/folders
|
|
* TODO: Add app permissions system
|
|
* TODO: Add dynamic app loading
|
|
*/
|
|
|
|
const AppRegistry = {
|
|
// Core Apps
|
|
prism: {
|
|
id: 'prism',
|
|
name: 'Prism Console',
|
|
icon: '💠',
|
|
description: 'Agent monitoring and system events',
|
|
category: 'Core',
|
|
entry: window.PrismApp,
|
|
defaultSize: { width: '900px', height: '700px' }
|
|
},
|
|
|
|
miners: {
|
|
id: 'miners',
|
|
name: 'Miners Dashboard',
|
|
icon: '⛏️',
|
|
description: 'Mining operations and telemetry',
|
|
category: 'Operations',
|
|
entry: window.MinersApp,
|
|
defaultSize: { width: '1000px', height: '700px' }
|
|
},
|
|
|
|
piops: {
|
|
id: 'piops',
|
|
name: 'Pi Ops',
|
|
icon: '🥧',
|
|
description: 'Raspberry Pi device management',
|
|
category: 'Infrastructure',
|
|
entry: window.PiOpsApp,
|
|
defaultSize: { width: '900px', height: '650px' }
|
|
},
|
|
|
|
runbooks: {
|
|
id: 'runbooks',
|
|
name: 'Runbooks',
|
|
icon: '📚',
|
|
description: 'Operational procedures and guides',
|
|
category: 'Documentation',
|
|
entry: window.RunbooksApp,
|
|
defaultSize: { width: '1100px', height: '750px' }
|
|
},
|
|
|
|
compliance: {
|
|
id: 'compliance',
|
|
name: 'Compliance Hub',
|
|
icon: '✓',
|
|
description: 'FINRA reviews and audit logs',
|
|
category: 'Compliance',
|
|
entry: window.ComplianceApp,
|
|
defaultSize: { width: '1000px', height: '700px' }
|
|
},
|
|
|
|
finance: {
|
|
id: 'finance',
|
|
name: 'Finance & AUM',
|
|
icon: '💰',
|
|
description: 'Portfolio management and analytics',
|
|
category: 'Finance',
|
|
entry: window.FinanceApp,
|
|
defaultSize: { width: '1100px', height: '750px' }
|
|
},
|
|
|
|
identity: {
|
|
id: 'identity',
|
|
name: 'Identity Ledger',
|
|
icon: '🔐',
|
|
description: 'SHA∞ identity system',
|
|
category: 'Security',
|
|
entry: window.IdentityApp,
|
|
defaultSize: { width: '1000px', height: '700px' }
|
|
},
|
|
|
|
research: {
|
|
id: 'research',
|
|
name: 'Research Lab',
|
|
icon: '🔬',
|
|
description: 'Lucidia experiments and analysis',
|
|
category: 'Research',
|
|
entry: window.ResearchApp,
|
|
defaultSize: { width: '1000px', height: '700px' }
|
|
},
|
|
|
|
engineering: {
|
|
id: 'engineering',
|
|
name: 'Engineering',
|
|
icon: '🔧',
|
|
description: 'DevTools and system diagnostics',
|
|
category: 'Development',
|
|
entry: window.EngineeringApp,
|
|
defaultSize: { width: '900px', height: '700px' }
|
|
},
|
|
|
|
settings: {
|
|
id: 'settings',
|
|
name: 'Settings',
|
|
icon: '⚙️',
|
|
description: 'System preferences and configuration',
|
|
category: 'System',
|
|
entry: window.SettingsApp,
|
|
defaultSize: { width: '700px', height: '600px' }
|
|
},
|
|
|
|
notifications: {
|
|
id: 'notifications',
|
|
name: 'Notifications',
|
|
icon: '🔔',
|
|
description: 'System alerts and messages',
|
|
category: 'System',
|
|
entry: window.NotificationsApp,
|
|
defaultSize: { width: '500px', height: '600px' }
|
|
},
|
|
|
|
corporate: {
|
|
id: 'corporate',
|
|
name: 'Corporate OS',
|
|
icon: '🏢',
|
|
description: 'Department management panels',
|
|
category: 'Corporate',
|
|
entry: window.CorporateApp,
|
|
defaultSize: { width: '800px', height: '600px' }
|
|
},
|
|
|
|
'chaos-inbox': {
|
|
id: 'chaos-inbox',
|
|
name: 'Chaos Inbox',
|
|
icon: '🌀',
|
|
description: 'All your scraps in one forgiving place',
|
|
category: 'Focus',
|
|
entry: window.ChaosInboxApp,
|
|
defaultSize: { width: '1100px', height: '720px' }
|
|
},
|
|
|
|
'identity-center': {
|
|
id: 'identity-center',
|
|
name: 'Identity Center',
|
|
icon: '🪪',
|
|
description: 'Your info once, used everywhere',
|
|
category: 'System',
|
|
entry: window.IdentityCenterApp,
|
|
defaultSize: { width: '800px', height: '650px' }
|
|
},
|
|
|
|
'creator-studio': {
|
|
id: 'creator-studio',
|
|
name: 'Creator Studio',
|
|
icon: '🎨',
|
|
description: 'Home base for creative work',
|
|
category: 'Creators',
|
|
entry: window.CreatorStudioApp,
|
|
defaultSize: { width: '1000px', height: '700px' }
|
|
},
|
|
|
|
'compliance-ops': {
|
|
id: 'compliance-ops',
|
|
name: 'Compliance & Ops',
|
|
icon: '🧭',
|
|
description: 'Transparent logs & workflows',
|
|
category: 'Compliance',
|
|
entry: window.ComplianceOpsApp,
|
|
defaultSize: { width: '900px', height: '650px' }
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Launch an app by ID
|
|
*/
|
|
function launchApp(appId) {
|
|
const app = AppRegistry[appId];
|
|
if (!app) {
|
|
console.error(`App not found: ${appId}`);
|
|
return;
|
|
}
|
|
|
|
if (!app.entry) {
|
|
console.error(`App entry point not defined: ${appId}`);
|
|
window.OS.showNotification({
|
|
type: 'error',
|
|
title: 'App Error',
|
|
message: `${app.name} is not yet implemented`,
|
|
duration: 3000
|
|
});
|
|
return;
|
|
}
|
|
|
|
// Call the app's entry function
|
|
app.entry();
|
|
}
|
|
|
|
// Make globally available
|
|
window.AppRegistry = AppRegistry;
|
|
window.launchApp = launchApp;
|