Files
blackroad-operating-system/backend/app/routers/system.py
Claude e84407660d 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.
2025-11-18 03:47:13 +00:00

84 lines
2.4 KiB
Python

"""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.",
}