How novia-rdi-seafaring/anchor works
ANCHOR is a local engineering-document canvas shared by a browser, CLI, and agent-facing MCP tools. A user creates a project, adds PDFs, and works with an external agent to extract and organize evidence-linked specifications; they can inspect source regions and review agent questions or proposed edits. The backend’s shared project runtime connects protocol adapters to workspace and document services, with file-based persistence. PDF, CAD, SysML, and FMU extensions add domain capabilities. Some extension and frontend links are based on README descriptions and repository structure; unsampled implementation details are not asserted.
Main entry points: project_runtime.py Project Runtime · service.py Intent Service · App.tsx Browser Canvas · main.py CLI
Components 20
User Interfaces
- Browser Canvas
web/src/App.tsx - CLI
src/anchor/adapters/cli/main.py - MCP Server
src/anchor/adapters/mcp/server.py - HTTP API
src/anchor/adapters/http/app.py - Source Review
web/src/canvas/primitives/viewers/PdfSourceView.tsx
Canvas and Requests
- Workspace Service
src/anchor/core/services/workspace_service.py - Intent Service
src/intent_layer/service.py
PDF Evidence
- PDF Ingest API
src/anchor/extensions/anchor_pdfs/adapters/http/ingest_sessions.py - PDF Processing
src/anchor/extensions/anchor_pdfs/core/services.py - Gold Regions
src/anchor/extensions/anchor_pdfs/core/gold_ingest.py - Document Store
src/anchor/extensions/anchor_pdfs/core/ports/doc_store.py
Engineering Extensions
- CAD Extension
src/anchor/extensions/anchor_cad/core/services.py - SysML Extension
src/anchor/extensions/anchor_sysml/core/services.py - FMU Extension
src/anchor/extensions/anchor_fmus/core/services.py
Shared Runtime
- Project Runtime
src/anchor/adapters/project_runtime.py - Canvas Storage
src/anchor/infra/stores/fs_workspace_store.py - Intent Storage
src/intent_layer/fs_store.py - Environment Config
src/anchor/infra/environment.py
Other components
- Engineer
- External Agent
Connections 22
- Engineer → Browser Canvas: uses
README.md - Engineer → CLI: uses
README.md - External Agent → MCP Server: requests tools
README.md - Browser Canvas → HTTP API: calls API
README.md - CLI → Project Runtime: uses services
- HTTP API → Project Runtime: configures runtime
src/anchor/adapters/http/app.py - MCP Server → Project Runtime: uses runtime
src/anchor/adapters/mcp/server.py - Project Runtime → Workspace Service: wires service
src/anchor/adapters/project_runtime.py - Project Runtime → Intent Service: wires service
src/anchor/adapters/project_runtime.py - Project Runtime → CAD Extension: wires service
src/anchor/adapters/project_runtime.py - Project Runtime → SysML Extension: wires service
src/anchor/adapters/project_runtime.py - Project Runtime → FMU Extension: wires service
src/anchor/adapters/project_runtime.py - Workspace Service → Canvas Storage: persists workspaces
- Intent Service → Intent Storage: persists requests
src/intent_layer/service.py - External Agent → Intent Service: retrieves requests
README.md - Engineer → PDF Ingest API: uploads PDF
README.md - PDF Ingest API → PDF Processing: starts ingestion
- PDF Processing → Gold Regions: extracts regions
- Gold Regions → Document Store: writes regions
src/anchor/extensions/anchor_pdfs/core/gold_ingest.py - Source Review → Document Store: views sources
- Engineer → Source Review: checks citations
README.md - Project Runtime → Environment Config: loads settings
src/anchor/adapters/project_runtime.py