mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 00:57:12 -05:00
feat: scaffold BlackRoad OS Phase 2 infrastructure
Implements complete Phase 2 scaffold across 6 core modules: ## New Modules ### 1. Backend API Enhancements - Add system router with /version, /config/public, /os/state endpoints - Register system router in main.py - Add comprehensive tests for system endpoints ### 2. Core OS Runtime (core_os/) - Implement UserSession, Window, OSState models - Add state management functions (open_window, close_window, etc.) - Create Backend API adapter for communication - Include full test suite for models and state ### 3. Operator Engine (operator_engine/) - Build job registry with example jobs - Implement simple scheduler with lifecycle management - Optional HTTP server on port 8001 - Complete tests for jobs and scheduler ### 4. Web Client Enhancements - Add CoreOSClient JavaScript class - Integrate system API endpoints - Event-driven architecture for state updates - Zero dependencies, vanilla JavaScript ### 5. Prism Console (prism-console/) - Modern dark-themed admin UI - Multi-tab navigation (Overview, Jobs, Agents, Logs, System) - Real-time metrics dashboard - Backend API integration with auto-refresh ### 6. Documentation (codex-docs/) - Complete MkDocs-based documentation - Architecture guides and component docs - Infrastructure setup guides - API reference documentation ## CI/CD - Add core-os-tests.yml workflow - Add operator-tests.yml workflow - Add docs-build.yml workflow ## Documentation - Create BLACKROAD_OS_REPO_MAP.md cross-reference - Add README for each module - Comprehensive integration documentation ## Summary - 37 new files created - ~3,500 lines of new code - 5 test suites with 15+ tests - 3 new CI workflows - 10+ documentation pages All modules are minimal working skeletons ready for integration. Designed to be extracted into separate repos if needed. Phase 2 scaffold complete and ready for review.
This commit is contained in:
@@ -15,7 +15,7 @@ from app.routers import (
|
||||
digitalocean, github, huggingface, vscode, games, browser, dashboard,
|
||||
railway, vercel, stripe, twilio, slack, discord, sentry, api_health, agents,
|
||||
capture, identity_center, notifications_center, creator, compliance_ops,
|
||||
search, cloudflare
|
||||
search, cloudflare, system
|
||||
)
|
||||
from app.services.crypto import rotate_plaintext_wallet_keys
|
||||
|
||||
@@ -148,6 +148,7 @@ app.include_router(creator.router)
|
||||
app.include_router(compliance_ops.router)
|
||||
app.include_router(search.router)
|
||||
app.include_router(cloudflare.router)
|
||||
app.include_router(system.router)
|
||||
|
||||
# API health monitoring
|
||||
app.include_router(api_health.router)
|
||||
|
||||
83
backend/app/routers/system.py
Normal file
83
backend/app/routers/system.py
Normal file
@@ -0,0 +1,83 @@
|
||||
"""System endpoints for core OS operations"""
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from datetime import datetime
|
||||
import os
|
||||
|
||||
from app.config import settings
|
||||
from app.database import get_db
|
||||
|
||||
router = APIRouter(prefix="/api/system", tags=["system"])
|
||||
|
||||
|
||||
@router.get("/version")
|
||||
async def get_version():
|
||||
"""
|
||||
Get system version and build information
|
||||
|
||||
Returns version, build time, environment, and git information
|
||||
"""
|
||||
# Try to get git SHA if available
|
||||
git_sha = os.environ.get("GIT_SHA", "development")
|
||||
|
||||
return {
|
||||
"version": settings.APP_VERSION,
|
||||
"build_time": datetime.utcnow().isoformat(),
|
||||
"env": settings.ENVIRONMENT,
|
||||
"git_sha": git_sha[:8] if len(git_sha) > 8 else git_sha,
|
||||
"app_name": settings.APP_NAME,
|
||||
}
|
||||
|
||||
|
||||
@router.get("/config/public")
|
||||
async def get_public_config():
|
||||
"""
|
||||
Get public configuration (non-sensitive settings only)
|
||||
|
||||
Returns feature flags, environment info, and public settings
|
||||
"""
|
||||
return {
|
||||
"environment": settings.ENVIRONMENT,
|
||||
"app_name": settings.APP_NAME,
|
||||
"version": settings.APP_VERSION,
|
||||
"features": {
|
||||
"blockchain_enabled": True,
|
||||
"ai_agents_enabled": True,
|
||||
"video_streaming_enabled": True,
|
||||
"gaming_enabled": True,
|
||||
"social_enabled": True,
|
||||
},
|
||||
"limits": {
|
||||
"max_upload_size_mb": 100,
|
||||
"session_timeout_minutes": 60,
|
||||
},
|
||||
"external_services": {
|
||||
"github_integration": bool(os.environ.get("GITHUB_TOKEN")),
|
||||
"stripe_enabled": bool(os.environ.get("STRIPE_SECRET_KEY")),
|
||||
"openai_enabled": bool(os.environ.get("OPENAI_API_KEY")),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@router.get("/os/state")
|
||||
async def get_os_state(db: AsyncSession = Depends(get_db)):
|
||||
"""
|
||||
Get current OS state (stub for now)
|
||||
|
||||
Returns the current state of the OS including:
|
||||
- Active windows
|
||||
- Running applications
|
||||
- System resources
|
||||
"""
|
||||
# TODO: Integrate with core_os module when implemented
|
||||
return {
|
||||
"status": "ok",
|
||||
"uptime_seconds": 0, # TODO: Track actual uptime
|
||||
"active_windows": [],
|
||||
"running_apps": [],
|
||||
"system_resources": {
|
||||
"memory_usage_percent": 0,
|
||||
"cpu_usage_percent": 0,
|
||||
},
|
||||
"note": "This is a stub endpoint. Full OS state tracking coming in Phase 2.",
|
||||
}
|
||||
Reference in New Issue
Block a user