Spaces:
Running
Running
Deploy Aureon OS (deploy/selfhost stack: nginx edge + fusion API x2 + console + HNC organ + redis + postgres; paper mode) (part 18)
f568a4f verified Download frontend/src/services/aureonAutonomousFrontend.ts from GaryLeckey/aureon-os: direct link, hf CLI and curl.
- Browser
- Download file 18 kB
-
https://huggingface.co/spaces/GaryLeckey/aureon-os/resolve/main/frontend/src/services/aureonAutonomousFrontend.ts
- Command line
-
hf download hf://spaces/GaryLeckey/aureon-os/frontend/src/services/aureonAutonomousFrontend.ts
-
curl -L -o aureonAutonomousFrontend.ts https://huggingface.co/spaces/GaryLeckey/aureon-os/resolve/main/frontend/src/services/aureonAutonomousFrontend.ts
18 kB
| export interface SaaSInventorySummary { | |
| surface_count?: number; | |
| frontend_surface_count?: number; | |
| supabase_function_count?: number; | |
| legacy_dashboard_count?: number; | |
| generated_accounting_html_count?: number; | |
| orphaned_frontend_count?: number; | |
| security_blocker_count?: number; | |
| uncalled_supabase_function_count?: number; | |
| missing_supabase_function_call_count?: number; | |
| } | |
| export interface SaaSInventorySurface { | |
| id: string; | |
| path: string; | |
| name: string; | |
| kind: string; | |
| domain: string; | |
| purpose: string; | |
| owner_subsystem: string; | |
| wiring_status: string; | |
| safety_class: string; | |
| auth_requirement: string; | |
| missing_next_step?: string; | |
| called_apis?: string[]; | |
| } | |
| export interface SaaSInventoryManifest { | |
| status?: string; | |
| generated_at?: string; | |
| summary?: SaaSInventorySummary; | |
| counts?: Record<string, Record<string, number>>; | |
| gaps?: Record<string, unknown>; | |
| surfaces?: SaaSInventorySurface[]; | |
| } | |
| export interface FrontendScreenPlan { | |
| id: string; | |
| title: string; | |
| domain: string; | |
| goal: string; | |
| source_surface_count: number; | |
| canonical_sources: string[]; | |
| migrated_components: string[]; | |
| embedded_legacy_surfaces: string[]; | |
| backend_functions: string[]; | |
| generated_outputs: string[]; | |
| safety_notes: string[]; | |
| missing_capabilities: string[]; | |
| } | |
| export interface FrontendUnificationManifest { | |
| status?: string; | |
| generated_at?: string; | |
| summary?: { | |
| screen_count?: number; | |
| migration_action_count?: number; | |
| missing_screen_capability_count?: number; | |
| source_surface_count?: number; | |
| security_blocker_count?: number; | |
| frontend_surface_count?: number; | |
| supabase_function_count?: number; | |
| }; | |
| canonical_screens?: FrontendScreenPlan[]; | |
| migration_actions?: Array<Record<string, unknown>>; | |
| duplicate_dashboard_groups?: Array<Record<string, unknown>>; | |
| safety_contract?: Record<string, boolean>; | |
| observation_loop?: Record<string, unknown>; | |
| } | |
| export interface OrganismDomainPulse { | |
| id: string; | |
| label: string; | |
| domain: string; | |
| status: string; | |
| freshness: string; | |
| source_path: string; | |
| generated_at?: string; | |
| age_seconds?: number; | |
| summary?: Record<string, unknown>; | |
| metrics?: Record<string, unknown>; | |
| blind_spots?: string[]; | |
| display_state?: string; | |
| next_action?: string; | |
| } | |
| export interface OrganismBlindSpot { | |
| id: string; | |
| severity: string; | |
| domain: string; | |
| issue: string; | |
| evidence?: Record<string, unknown>; | |
| next_action?: string; | |
| } | |
| export interface OrganismRuntimeManifest { | |
| status?: string; | |
| generated_at?: string; | |
| mode?: string; | |
| summary?: { | |
| domain_count?: number; | |
| blind_spot_count?: number; | |
| high_blind_spot_count?: number; | |
| fresh_domain_count?: number; | |
| stale_domain_count?: number; | |
| missing_domain_count?: number; | |
| attention_domain_count?: number; | |
| refresh_count?: number; | |
| failed_refresh_count?: number; | |
| runtime_feed_status?: string; | |
| frontend_public_manifest_count?: number; | |
| }; | |
| safety?: Record<string, unknown>; | |
| domains?: OrganismDomainPulse[]; | |
| blind_spots?: OrganismBlindSpot[]; | |
| data_freshness?: Record<string, unknown>; | |
| refresh_results?: Array<Record<string, unknown>>; | |
| real_time_feeds?: Record<string, unknown>; | |
| status_lines?: string[]; | |
| next_actions?: string[]; | |
| } | |
| export interface FrontendEvolutionWorkOrder { | |
| id: string; | |
| title: string; | |
| source_path: string; | |
| source_kind: string; | |
| source_domain: string; | |
| target_screen: string; | |
| target_title: string; | |
| priority: number; | |
| status: string; | |
| capability_summary: string; | |
| evidence?: Record<string, unknown>; | |
| data_contract?: Record<string, unknown>; | |
| frontend_action?: string; | |
| safety_boundary?: string; | |
| acceptance_tests?: string[]; | |
| next_action?: string; | |
| } | |
| export interface FrontendEvolutionQueueManifest { | |
| status?: string; | |
| generated_at?: string; | |
| summary?: { | |
| queue_count?: number; | |
| ready_adapter_count?: number; | |
| blocked_count?: number; | |
| archive_candidate_count?: number; | |
| generated_output_link_count?: number; | |
| target_screen_count?: number; | |
| highest_priority?: number; | |
| }; | |
| work_orders?: FrontendEvolutionWorkOrder[]; | |
| counts?: Record<string, Record<string, number>>; | |
| safety_contract?: Record<string, boolean>; | |
| notes?: string[]; | |
| } | |
| export interface CapabilityMode { | |
| id: string; | |
| title: string; | |
| domain: string; | |
| authority_level: string; | |
| status: string; | |
| autonomous_allowed: boolean; | |
| triggers?: string[]; | |
| systems?: string[]; | |
| data_sources?: string[]; | |
| hnc_checks?: string[]; | |
| safe_actions?: string[]; | |
| blocked_actions?: string[]; | |
| frontend_contract?: Record<string, unknown>; | |
| next_action?: string; | |
| } | |
| export interface PresentationIntent { | |
| id: string; | |
| title: string; | |
| display_mode: string; | |
| target_screen: string; | |
| priority: number; | |
| status: string; | |
| reason: string; | |
| source_paths?: string[]; | |
| generated_artifact_contract?: Record<string, unknown>; | |
| hnc_evidence?: Record<string, unknown>; | |
| next_action?: string; | |
| } | |
| export interface CapabilitySwitchboardManifest { | |
| status?: string; | |
| generated_at?: string; | |
| goal?: string; | |
| summary?: { | |
| capability_count?: number; | |
| autonomous_capability_count?: number; | |
| blocked_capability_count?: number; | |
| presentation_intent_count?: number; | |
| blocker_count?: number; | |
| frontend_work_order_count?: number; | |
| ready_adapter_count?: number; | |
| security_blocker_count?: number; | |
| runtime_feed_status?: string; | |
| canonical_screen_count?: number; | |
| }; | |
| capability_modes?: CapabilityMode[]; | |
| presentation_intents?: PresentationIntent[]; | |
| route_map?: Record<string, unknown>; | |
| hnc_control_contract?: Record<string, unknown>; | |
| safety_contract?: Record<string, boolean>; | |
| blockers?: Array<Record<string, unknown>>; | |
| notes?: string[]; | |
| } | |
| export interface UnifiedFrontendState { | |
| loadedAt: string; | |
| inventorySource: string; | |
| planSource: string; | |
| organismSource: string; | |
| evolutionSource: string; | |
| switchboardSource: string; | |
| inventory: SaaSInventoryManifest; | |
| plan: FrontendUnificationManifest; | |
| organism: OrganismRuntimeManifest; | |
| evolution: FrontendEvolutionQueueManifest; | |
| switchboard: CapabilitySwitchboardManifest; | |
| errors: string[]; | |
| } | |
| const emptyInventory: SaaSInventoryManifest = { | |
| status: "manifest_missing", | |
| summary: { | |
| surface_count: 0, | |
| frontend_surface_count: 0, | |
| supabase_function_count: 0, | |
| security_blocker_count: 0, | |
| orphaned_frontend_count: 0, | |
| }, | |
| counts: {}, | |
| gaps: {}, | |
| surfaces: [], | |
| }; | |
| const fallbackPlan: FrontendUnificationManifest = { | |
| status: "manifest_missing", | |
| summary: { | |
| screen_count: 7, | |
| migration_action_count: 0, | |
| missing_screen_capability_count: 7, | |
| source_surface_count: 0, | |
| security_blocker_count: 0, | |
| frontend_surface_count: 0, | |
| supabase_function_count: 0, | |
| }, | |
| canonical_screens: [ | |
| { | |
| id: "overview", | |
| title: "Overview", | |
| domain: "operator", | |
| goal: "Show organism state, active goals, ThoughtBus health, blockers, and what Aureon is doing now.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: [], | |
| missing_capabilities: ["Generate aureon_frontend_unification_plan.json."], | |
| }, | |
| { | |
| id: "trading", | |
| title: "Trading", | |
| domain: "trading", | |
| goal: "Observe dynamic margin, positions, risk, live/sim status, and decision audit.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: ["live orders remain behind runtime trading gates"], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| { | |
| id: "accounting", | |
| title: "Accounting", | |
| domain: "accounting", | |
| goal: "Show company accounts status, evidence, generated packs, and manual filing checklist.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: ["Companies House and HMRC submission remain manual"], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| { | |
| id: "research", | |
| title: "Research", | |
| domain: "research", | |
| goal: "Show vault sources, research reports, source ingestion, and knowledge coverage.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: [], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| { | |
| id: "saas_security", | |
| title: "SaaS Security", | |
| domain: "saas_security", | |
| goal: "Show auth, tenant isolation, authorized attack-lab findings, fixes, and release gates.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: ["production deployment requires release-gate evidence"], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| { | |
| id: "self_improvement", | |
| title: "Self-Improvement", | |
| domain: "autonomy", | |
| goal: "Show audits, benchmarks, queued fixes, retest loop, and restart/apply handoff.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: ["code apply/restart approval when required"], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| { | |
| id: "admin", | |
| title: "Admin", | |
| domain: "admin", | |
| goal: "Show env checks, integrations, credentials status, safety gates, and manual-only actions.", | |
| source_surface_count: 0, | |
| canonical_sources: [], | |
| migrated_components: [], | |
| embedded_legacy_surfaces: [], | |
| backend_functions: [], | |
| generated_outputs: [], | |
| safety_notes: ["credential values stay hidden"], | |
| missing_capabilities: ["Generate the SaaS inventory."], | |
| }, | |
| ], | |
| migration_actions: [], | |
| duplicate_dashboard_groups: [], | |
| safety_contract: { | |
| human_observes_aureon_works: true, | |
| live_trading_requires_existing_runtime_gates: true, | |
| official_filing_and_payments_manual_only: true, | |
| credentials_status_visible_secret_values_hidden: true, | |
| security_blockers_visible: true, | |
| legacy_dashboards_preserved_until_migrated: true, | |
| }, | |
| }; | |
| const emptyOrganism: OrganismRuntimeManifest = { | |
| status: "manifest_missing", | |
| mode: "safe_observation", | |
| summary: { | |
| domain_count: 0, | |
| blind_spot_count: 1, | |
| high_blind_spot_count: 1, | |
| fresh_domain_count: 0, | |
| stale_domain_count: 0, | |
| missing_domain_count: 1, | |
| attention_domain_count: 0, | |
| refresh_count: 0, | |
| failed_refresh_count: 0, | |
| runtime_feed_status: "unknown", | |
| frontend_public_manifest_count: 0, | |
| }, | |
| safety: { | |
| observer_only: true, | |
| live_orders_allowed: false, | |
| official_filing_allowed: false, | |
| payments_allowed: false, | |
| external_mutations_allowed: false, | |
| }, | |
| domains: [], | |
| blind_spots: [ | |
| { | |
| id: "organism_runtime_status.missing", | |
| severity: "high", | |
| domain: "runtime", | |
| issue: "Organism runtime status manifest is not mounted in frontend/public.", | |
| next_action: "Run python -m aureon.autonomous.aureon_organism_runtime_observer --refresh-core.", | |
| }, | |
| ], | |
| status_lines: ["Organism pulse manifest missing."], | |
| next_actions: ["Run python -m aureon.autonomous.aureon_organism_runtime_observer --refresh-core."], | |
| }; | |
| const emptyEvolution: FrontendEvolutionQueueManifest = { | |
| status: "manifest_missing", | |
| summary: { | |
| queue_count: 0, | |
| ready_adapter_count: 0, | |
| blocked_count: 0, | |
| archive_candidate_count: 0, | |
| generated_output_link_count: 0, | |
| target_screen_count: 0, | |
| highest_priority: 0, | |
| }, | |
| work_orders: [], | |
| counts: {}, | |
| safety_contract: { | |
| proposal_only: true, | |
| legacy_systems_not_executed: true, | |
| read_only_frontend_adapters_first: true, | |
| no_live_trading: true, | |
| no_official_filing: true, | |
| no_payments: true, | |
| secret_values_hidden: true, | |
| apply_requires_explicit_handoff: true, | |
| }, | |
| notes: ["Frontend evolution queue manifest is missing."], | |
| }; | |
| const emptySwitchboard: CapabilitySwitchboardManifest = { | |
| status: "manifest_missing", | |
| goal: "Select the safest available Aureon capability and presentation surface.", | |
| summary: { | |
| capability_count: 0, | |
| autonomous_capability_count: 0, | |
| blocked_capability_count: 1, | |
| presentation_intent_count: 0, | |
| blocker_count: 1, | |
| frontend_work_order_count: 0, | |
| ready_adapter_count: 0, | |
| security_blocker_count: 0, | |
| runtime_feed_status: "unknown", | |
| canonical_screen_count: 0, | |
| }, | |
| capability_modes: [], | |
| presentation_intents: [], | |
| route_map: {}, | |
| hnc_control_contract: { | |
| anti_hallucination_gates: ["source_evidence_required", "safe_authority_boundary_checked"], | |
| }, | |
| safety_contract: { | |
| llm_can_select_capability: true, | |
| llm_can_create_presentation_intents: true, | |
| llm_can_place_direct_live_orders: false, | |
| llm_can_file_hmrc_or_companies_house: false, | |
| llm_can_make_payments: false, | |
| llm_can_attack_third_party_targets: false, | |
| secret_values_hidden: true, | |
| }, | |
| blockers: [ | |
| { | |
| id: "capability_switchboard.missing", | |
| severity: "high", | |
| reason: "Capability switchboard manifest is not mounted in frontend/public.", | |
| }, | |
| ], | |
| notes: ["Capability switchboard manifest is missing."], | |
| }; | |
| async function fetchJson<T>(url: string): Promise<T | null> { | |
| try { | |
| const response = await fetch(url, { cache: "no-store" }); | |
| if (!response.ok) return null; | |
| return (await response.json()) as T; | |
| } catch { | |
| return null; | |
| } | |
| } | |
| // Where the live-rendered manifests come from. Default "" keeps the dev | |
| // behaviour (static files in frontend/public). The production build sets | |
| // VITE_AUREON_MANIFEST_BASE=/api/manifests so the gateway renders them live | |
| // through the nginx /api proxy. Manifests the gateway doesn't serve fall back | |
| // to the static path automatically (fetchJson returns null on 404). | |
| const MANIFEST_BASE = ((import.meta.env.VITE_AUREON_MANIFEST_BASE as string | undefined) ?? "").replace(/\/$/, ""); | |
| async function fetchManifest<T>(filename: string): Promise<{ data: T | null; source: string }> { | |
| if (MANIFEST_BASE) { | |
| const liveUrl = `${MANIFEST_BASE}/${filename}`; | |
| const live = await fetchJson<T>(liveUrl); | |
| if (live) return { data: live, source: liveUrl }; | |
| } | |
| const staticUrl = `/${filename}`; | |
| return { data: await fetchJson<T>(staticUrl), source: staticUrl }; | |
| } | |
| export async function loadUnifiedFrontendState(): Promise<UnifiedFrontendState> { | |
| const errors: string[] = []; | |
| const [inventoryRes, planRes, organismRes, evolutionRes, switchboardRes] = await Promise.all([ | |
| fetchManifest<SaaSInventoryManifest>("aureon_saas_system_inventory.json"), | |
| fetchManifest<FrontendUnificationManifest>("aureon_frontend_unification_plan.json"), | |
| fetchManifest<OrganismRuntimeManifest>("aureon_organism_runtime_status.json"), | |
| fetchManifest<FrontendEvolutionQueueManifest>("aureon_frontend_evolution_queue.json"), | |
| fetchManifest<CapabilitySwitchboardManifest>("aureon_autonomous_capability_switchboard.json"), | |
| ]); | |
| const inventory = inventoryRes.data; | |
| const plan = planRes.data; | |
| const organism = organismRes.data; | |
| const evolution = evolutionRes.data; | |
| const switchboard = switchboardRes.data; | |
| if (!inventory) errors.push("SaaS inventory manifest is not mounted in frontend/public."); | |
| if (!plan) errors.push("Frontend unification manifest is not mounted in frontend/public."); | |
| if (!organism) errors.push("Organism runtime status manifest is not mounted in frontend/public."); | |
| if (!evolution) errors.push("Frontend evolution queue manifest is not mounted in frontend/public."); | |
| if (!switchboard) errors.push("Autonomous capability switchboard manifest is not mounted in frontend/public."); | |
| return { | |
| loadedAt: new Date().toISOString(), | |
| inventorySource: inventory ? inventoryRes.source : "fallback", | |
| planSource: plan ? planRes.source : "fallback", | |
| organismSource: organism ? organismRes.source : "fallback", | |
| evolutionSource: evolution ? evolutionRes.source : "fallback", | |
| switchboardSource: switchboard ? switchboardRes.source : "fallback", | |
| inventory: inventory || emptyInventory, | |
| plan: plan || fallbackPlan, | |
| organism: organism || emptyOrganism, | |
| evolution: evolution || emptyEvolution, | |
| switchboard: switchboard || emptySwitchboard, | |
| errors, | |
| }; | |
| } | |
| export function surfaceCountByDomain(inventory: SaaSInventoryManifest): Record<string, number> { | |
| return inventory.counts?.by_domain || {}; | |
| } | |
| export function surfacesForScreen(inventory: SaaSInventoryManifest, screen: FrontendScreenPlan): SaaSInventorySurface[] { | |
| const keywords = [screen.id, screen.domain, ...screen.title.toLowerCase().split(/\s+/)]; | |
| return (inventory.surfaces || []) | |
| .filter((surface) => { | |
| const haystack = `${surface.path} ${surface.domain} ${surface.kind} ${surface.purpose}`.toLowerCase(); | |
| return surface.domain === screen.domain || keywords.some((keyword) => keyword && haystack.includes(keyword)); | |
| }) | |
| .slice(0, 12); | |
| } | |