Repository navigation
Open
Conversation
…le, and preflight routing
…k multipart audio upload
There was a problem hiding this comment.
Pull request overview
Integrates the full MoFA “platform stack” into main, spanning engine-level observability/config updates, a new React Web Studio UI, dockerized Prometheus/Grafana dashboards, and expanded Python/CLI examples + docs to support scenarios S1–S7.
Changes:
- Adds
mofa-observability(crate + dashboards + docker) and wires new observability/preflight events into the engine. - Introduces a new React/Vite frontend (
mofa-frontend/) with Studio/Artifacts/Observability views and SSE-driven monitoring UI. - Expands quickstart/docs/examples and updates engine routing/config/backends to support “local vs cloud” dual-track behavior.
Reviewed changes
Copilot reviewed 143 out of 164 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| test_obs_config.toml | Adds a small test config enabling observability with a mock provider. |
| start_mofa.sh | Adds a stack launcher script for observability + local services + engine. |
| QUICKSTART.md | Adds an end-to-end quickstart guide covering stack + scenarios. |
| mofa-observability/src/lib.rs | Exposes observability modules as a crate. |
| mofa-observability/docker/prometheus/prometheus.yml | Adds Prometheus scrape configuration for engine + mock harness. |
| mofa-observability/docker/grafana/provisioning/datasources/prometheus.yml | Provisions Prometheus datasource for Grafana. |
| mofa-observability/docker/grafana/provisioning/dashboards/dashboards.yml | Provisions dashboard folder/path mapping. |
| mofa-observability/docker/Dockerfile | Builds and packages the mock_harness example binary. |
| mofa-observability/docker/docker-compose.yml | Adds Grafana + Prometheus compose setup for local observability. |
| mofa-observability/dashboards/preflight_routing.json | Adds a Grafana dashboard for preflight/routing metrics. |
| mofa-observability/dashboards/memory_lifecycle.json | Adds a Grafana dashboard for memory + lifecycle metrics. |
| mofa-observability/dashboards/engine_overview.json | Adds a Grafana dashboard for overall engine metrics. |
| mofa-observability/dashboards/dual_track_cost.json | Adds a Grafana dashboard for dual-track cost/token metrics. |
| mofa-observability/Cargo.toml | Defines the new observability crate dependencies. |
| mofa-kernel/src/types.rs | Adds Message::{user,system,assistant} helpers and defines SSE event schema. |
| mofa-frontend/vite.config.ts | Adds Vite config with aliasing + /v1 proxy to engine. |
| mofa-frontend/tsconfig.json | Adds strict TS config + path mapping. |
| mofa-frontend/src/vite-env.d.ts | Adds Vite client type reference. |
| mofa-frontend/src/studio/useElapsed.ts | Adds a hook for elapsed-time UI. |
| mofa-frontend/src/studio/theater/TheaterView.tsx | Adds Theater view UI for pipeline status + events + script. |
| mofa-frontend/src/studio/Studio.tsx | Adds view switching and history persistence when runs complete. |
| mofa-frontend/src/studio/result/ThoughtChainView.tsx | Adds a collapsible reasoning/thought-chain UI. |
| mofa-frontend/src/studio/gallery/ArtifactPreview.tsx | Adds artifact preview modal for audio/video/report/data. |
| mofa-frontend/src/studio/gallery/ArtifactCard.tsx | Adds artifact list card component. |
| mofa-frontend/src/studio/compose/OnboardingBanner.tsx | Adds dismissible onboarding banner persisted in localStorage. |
| mofa-frontend/src/storage/useSettings.ts | Adds local settings state + persistence. |
| mofa-frontend/src/storage/useHistory.ts | Adds local run history + draft persistence hooks. |
| mofa-frontend/src/storage/HistoryDrawer.tsx | Adds a history drawer UI that loads prior phases. |
| mofa-frontend/src/shell/TopBar.tsx | Adds top navigation and settings/history controls. |
| mofa-frontend/src/shared/StatusDot.tsx | Adds status dot component with animated pulse states. |
| mofa-frontend/src/shared/Sparkline.tsx | Adds lightweight SVG sparkline component. |
| mofa-frontend/src/shared/Skeleton.tsx | Adds skeleton loading component. |
| mofa-frontend/src/shared/DeltaIndicator.tsx | Adds a small delta indicator component. |
| mofa-frontend/src/shared/Card.tsx | Adds a motion-enabled Card wrapper. |
| mofa-frontend/src/shared/Button.tsx | Adds a motion-enabled Button wrapper. |
| mofa-frontend/src/shared/Badge.tsx | Adds capability-aware badge styling. |
| mofa-frontend/src/shared/AreaChart.tsx | Adds a simple SVG area chart with gradient fill. |
| mofa-frontend/src/shared/AnimatedNumber.tsx | Adds number animation via Framer Motion spring. |
| mofa-frontend/src/observability/TelemetryTicker.tsx | Adds a routing telemetry ticker driven by SSE events. |
| mofa-frontend/src/observability/SessionCharts.tsx | Adds session charts for local velocity/cost/memory. |
| mofa-frontend/src/observability/RoutingDecisionLog.tsx | Adds live routing decision log UI from SSE. |
| mofa-frontend/src/observability/ModelEfficiencyTable.tsx | Adds a model registry/efficiency table UI. |
| mofa-frontend/src/observability/MetricsStrip.tsx | Adds top-level metrics strip (requests/latency/models/memory/savings). |
| mofa-frontend/src/observability/ActivityFeed.tsx | Adds a buffered activity feed UI. |
| mofa-frontend/src/monitor/ProviderHealth.tsx | Adds provider health widget based on engine status. |
| mofa-frontend/src/monitor/PreflightIndicator.tsx | Adds preflight warming/eviction indicator using SSE + status fetch. |
| mofa-frontend/src/monitor/MonitorSidebar.tsx | Adds right-hand monitoring sidebar composition. |
| mofa-frontend/src/monitor/ModelGrid.tsx | Adds active model grid driven by capabilities + SSE refresh. |
| mofa-frontend/src/monitor/MemoryGauge.tsx | Adds memory gauge driven by status + MemoryChanged SSE. |
| mofa-frontend/src/monitor/CostTokenDashboard.tsx | Adds simple token/cache ratio widget from RequestCompleted SSE. |
| mofa-frontend/src/main.tsx | Boots React app with React Query provider. |
| mofa-frontend/src/lib/utils.ts | Adds cn() and formatMs() helpers. |
| mofa-frontend/src/lib/motion.ts | Adds shared motion variants. |
| mofa-frontend/src/lib/audio.ts | Adds completion chime sound. |
| mofa-frontend/src/index.css | Adds Tailwind v4 + design tokens + scrollbar styling. |
| mofa-frontend/src/errors/InlineError.tsx | Adds inline error component with retry/copy and auto-recover timer. |
| mofa-frontend/src/errors/errorCatalog.ts | Adds error descriptor mapping for common engine failures. |
| mofa-frontend/src/errors/EngineOffline.tsx | Adds full-screen offline overlay with copyable start command. |
| mofa-frontend/src/engine/useEngineStatus.ts | Adds status polling hook conditioned on connection state. |
| mofa-frontend/src/engine/useEngineConnection.ts | Adds health polling + connection state hook. |
| mofa-frontend/src/engine/types.ts | Adds frontend engine contract types. |
| mofa-frontend/src/engine/index.ts | Adds engine client singleton + base URL persistence + hooks. |
| mofa-frontend/src/App.tsx | Adds main app shell with navigation, views, overlays, and error boundary. |
| mofa-frontend/replace-colors.mjs | Adds a script to mass-replace color utilities for dark mode. |
| mofa-frontend/README.md | Adds frontend readme (features/quick start/mock mode). |
| mofa-frontend/public/favicon.svg | Adds a new SVG favicon. |
| mofa-frontend/postcss.config.mjs | Adds Tailwind v4 PostCSS plugin wiring. |
| mofa-frontend/package.json | Adds frontend dependencies/scripts/tooling. |
| mofa-frontend/index.html | Adds Vite HTML entrypoint. |
| mofa-frontend/eslint.config.js | Adds ESLint config for TS/React hooks/refresh. |
| mofa-frontend/Dockerfile | Adds multi-stage build for static nginx deployment. |
| mofa-frontend/.gitignore | Adds frontend ignores. |
| mofa-fm/setup.py | Adds setuptools packaging for the Python SDK module. |
| mofa-fm/pyproject.toml | Adds PEP 621 packaging metadata + console script entrypoint. |
| mofa-fm/mcp_config.json | Adds MCP server config + setup snippets for clients. |
| mofa-fm/gemini_tts.py | Adds Gemini native audio TTS adapter producing WAV. |
| mofa-fm/assemble_video.py | Adds FFmpeg-based image+audio→MP4 assembler. |
| mofa-fm/article_to_podcast.py | Refactors S6 into a declarative Pipeline-based example. |
| mofa-engine-sdk/src/lib.rs | Exposes new observability_bridge module. |
| mofa-engine-sdk/src/client.rs | Updates test config defaults to include observability. |
| mofa-engine-sdk/Cargo.toml | Adds dependency on mofa-observability. |
| mofa-engine-core/src/router.rs | Adjusts local-vs-cloud filtering using residency signal. |
| mofa-engine-core/src/engine.rs | Updates discovery/memory accounting and emits new preflight events. |
| mofa-engine-core/src/config.rs | Adds observability config section; relaxes api_key validation for openai_compatible. |
| mofa-engine-core/src/backends/openai_compat.rs | Infers “local” residency for localhost endpoints; updates lifecycle outputs. |
| mofa-engine-core/src/backends/liter_llm.rs | Adds a longer client timeout for LiteLLM provider config. |
| mofa-engine-app/Cargo.toml | Adds observability + OpenTelemetry-related dependencies. |
| examples/samples/sample_transcript.txt | Adds a sample meeting transcript input. |
| examples/samples/sample_diff.patch | Adds a sample diff for code review scenario. |
| examples/samples/sample_article.txt | Adds a sample article input for podcast scenario. |
| examples/provider_race.py | Adds S7 provider benchmark script variant. |
| examples/doc_ai.py | Adds S3 VLM extraction example. |
| examples/code_review.py | Adds S2 code review + reasoning stream example. |
| examples/01_provider_race.py | Adds S7 provider race script (duplicated name variant). |
| docs/why-mofa.md | Adds “why MoFA” positioning + architecture documentation. |
| docs/scenario_guides/S7_provider_race.md | Adds S7 scenario guide and acceptance criteria. |
| docs/scenario_guides/S6_podcast_matrix.md | Adds S6 scenario guide and runbook. |
| docs/scenario_guides/S5_privacy_moat.md | Adds S5 privacy moat guide and verification steps. |
| docs/scenario_guides/S4_explainer_video.md | Adds S4 explainer video scenario guide. |
| docs/scenario_guides/S3_document_ai.md | Adds S3 document AI scenario guide. |
| docs/scenario_guides/S2_code_review.md | Adds S2 code review scenario guide. |
| docs/model_catalog.md | Adds model catalog and pricing table documentation. |
| docs/contracts/inference_request_schema.json | Adds a JSON-schema contract for inference request payloads. |
| docs/contracts/engine_event_schema.json | Adds a JSON-schema contract for SSE engine events. |
| docs/contracts/design_doc.md | Adds contract governance and verification design doc. |
| Dockerfile | Adds a multi-stage Dockerfile for building the engine gateway. |
| docker-compose.yml | Adds top-level compose for ollama + engine + frontend. |
| Cargo.toml | Adds workspace member and OpenTelemetry deps; enables axum multipart. |
| .gitignore | Expands ignores for local venvs/artifacts/output and configs. |
| .env.example | Replaces env example with multi-provider key template. |
| .dockerignore | Adds basic dockerignore entries for build context. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+98
to
+100
| {[...Array(6)].map((_, i) => ( | ||
| <div key={i} className={`h-4 bg-background-hover rounded animate-pulse w-${['3/4', 'full', '5/6', 'full', '2/3', '1/2'][i]}`} /> | ||
| ))} |
Comment on lines
+506
to
+509
| if matches!(card.residency, ModelResidency::Loaded) && card.memory_estimate_bytes > 0 { | ||
| self.memory.try_reserve(&card.id, card.memory_estimate_bytes); | ||
| self.memory.touch(&card.id); | ||
| } |
| if freed { | ||
| self.emit_memory_changed(); | ||
| } | ||
| self.emit_memory_changed(); |
Comment on lines
+15
to
+16
| cd "$ENGINE_DIR/mofa-observability/docker" | ||
| docker-compose up -d |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Integrates the complete MoFA Platform Stack into
main. This PR connects the core Rust engine with the React Web Studio UI, dual-track Prometheus/Grafana observability, the Python SDK & MCP server, automated quickstart tooling, and all 7 flagship multimodal scenarios.Visual Previews
What’s Included
quickstart.sh)setup,keys(cloud wizard),doctor(diagnostic suite),demo(30s golden path), ands1..s7launchers.Web Studio Frontend (
mofa-frontend/)Dual-Track Observability (
mofa-observability/)GET /metrics).Python SDK & MCP Tooling (
mofa-fm/)from mofa_sdk import MofaEngine) supporting sync/async & streaming.7 Flagship Multimodal Scenarios (
examples/)Verification & Quality Gate
cargo check --workspace(0.51s, 0 errors across all 9 crates)npm run buildcompleted with 0 TypeScript/lint errorsorigin/main(PR #4 included)