replica-omnisciente/docs/compose/plans/2026-07-10-aurelio-theia-migration-feature-inventory.md

26 KiB

Aurelio → Eclipse Theia Migration: Feature Inventory

Source analyzed: aurelio-vscode v0.12.2 (live main, HEAD b37e9d2, 2026-06-22), cloned read-only from Forgejo on CT 203 (code.portugalfuturista.orgssh://git@192.168.0.9:2222/portugalfuturista/aurelio-vscode.git) into ~/portugalfuturista/aurelio-vscode. The Theia fork is aurelio-theia v0.1.0 (HEAD f8bed07, 2026-07-10) at ~/portugalfuturista/aurelio-theia. The extension is VS Code-extension-shaped: the entire feature set lives in package.json + src/. Numbers below are measured from the live clone. (First draft used a 548b2cc6^ v0.12.0 reconstruction — superseded; see 2026-07-10-aurelio-theia-live-delta.md.)

Target: migrate aurelio.portugalfuturista.org from code-server + this VS Code extension to a fork of Eclipse Theia.

Status: baseline inventory complete. Confirm whether the live extension repo has advanced past v0.12.0 before freezing the porting scope.


0. The one-paragraph summary

Aurelio is a 51k-LOC VS Code extension that turns the editor into the "central brain" cockpit for the Portugal Futurista fleet: an AI-agent chat with 7 routed model backends, a 16-tab Svelte control center, MCP server orchestration, a Git+Markdown memory/wiki layer, background sync to Proxmox, an evolutionary code loop (MAP-Elites) driven by a bundled Rust binary (dirac), and a deep hardware-lab integration (ESP32 fleet, PPK2 power profiler, sigrok logic analyzer, KiCad, SPICE/PSIM, FMU). Almost all of it is implemented against VS Code-only APIs (vscode.window, webviews, TreeDataProvider, StatusBarItem, vscode.commands) and a 123-key aurelio.* settings namespace. Theia has a VS Code-extension compatibility layer, so the cheapest migration path is to run the VSIX inside Theia's plugin host and only fork where Theia's compatibility gaps bite (custom editors, webview CSP, native binary spawning, status-bar, and the code-server-specific endpoints). Full rehosting to native Theia extensions is the expensive path.


1. Surface area at a glance

Metric Value
Extension version 0.12.0
engines.vscode ^1.90.0
Activation onStartupFinished (always-on)
TS source files 150
Svelte files 47
Total src/ LOC ~51,127
Declared commands (package.json) 64
Registered commands (extension.ts + modules) ~79 (64 declared + 15 hidden/internal)
Activity-bar views (sidebar) 6
Webview panels (full editors) 24
Svelte control-center tabs 16
Settings keys (aurelio.* + quarkdown.*) 123
Keybindings 2 (Quarkdown only)
Custom editors 1 (aurelio.pdfViewer for *.pdf/*.epub)
Contributed languages/grammars quarkdown (.qd)
Native binary bundled dirac (Rust, in native/dirac/)
External services (portugalfuturista.org) 13 hosts

Top-level src/ modules (by LOC)

Module LOC Role
webview/ 14,770 24 panel hosts + chat + control center
context/ 3,140 compaction, auto-dream, away-summary, scouts, session memory, speculation
evolution/ 2,887 MAP-Elites evolutionary loop (orchestrator, mutator, sandbox, convergence)
models/ 2,654 model router, heterónimos, kimi/jules/vertex clients, idempotency
hardware/ 2,604 ESP32, PPK2, sigrok, KiCad, FMI, PSIM bridges
quarkdown/ 1,939 embedded .qd language server + live preview + PDF export
brain/ 1,292 sessions, realms, chronicle, immich, continuity
sync/ 1,043 Proxmox brain sync, wiki sync, immich, session export
core/ 1,036 native engine (dirac bridge), remote WS server, dirac gRPC client, event bus, service registry
coordinator/ 1,008 autonomous worker orchestration, task registry, agent summary
mcp/ 962 MCP hub, server manager, registry sync, servers tree
memory/ 932 memory index, scan, extraction, types
config/ 810 3-tier config resolver, settings service
_future/ 748 DORMANT — semantic cache, tool policy, voice (0 importers)
utils/ 733 approval gate, aurelio-read, prevent-sleep, toon
test/ 682 mocha suite (evolution/* only)
antigravity/ 562 antigravity LS bridge + service
gyro/ 554 unified Antigravity control (IDE + LSP services)
workflow/ 526 workflow manager
electronics/ 317 remote EDA client
skills/ 265 directory-based skill loader
updater/ 166 OTA self-update from firmware store

2. Contributes (package.json) — the VS Code contract the Theia fork must satisfy

2.1 Activity bar + sidebar views (1 container, 6 views)

Container: aurelio-sidebar (icon resources/aurelio-icon.svg).

View id Type Backing class
aurelio.chatView webview view ChatPanel (src/webview/chatPanel.ts, 2620 LOC)
aurelio.sessionsView tree SessionProvider (src/brain/sessionProvider.ts)
aurelio.realmsView tree RealmProvider
aurelio.heteronimosView tree HeteronimoProvider
aurelio.immichView tree ImmichProvider (src/brain/immichProvider.ts)
aurelio.chronicleView tree ChronicleProvider (src/brain/chronicleProvider.ts)

2.2 Commands (64 declared) — grouped by subsystem

Sessions / sync / wiki aurelio.startSession, aurelio.syncPush, aurelio.syncPull, aurelio.wikiSync, aurelio.wikiPush, aurelio.wikiPull, aurelio.wikiExportSession, aurelio.pushSession, aurelio.refreshSessions, aurelio.deleteSession, aurelio.viewSessionHistory

Realms / heterónimos aurelio.switchRealm, aurelio.refreshRealms, aurelio.openHeteronimosMenu, aurelio.switchHeteronimo, aurelio.refreshHeteronimos

Coordinator (autonomous mode) aurelio.coordinator.start, aurelio.coordinator.status, aurelio.coordinator.finalize, aurelio.task

Context / memory / speculation aurelio.addContext, aurelio.optimizeAgent, aurelio.suggestPrompts, aurelio.showDiagnosticSummary, aurelio.showAgentSummary, aurelio.cleanup, aurelio.speculation.start, aurelio.speculation.accept, aurelio.speculation.abort

Chat / UI aurelio.openChat, aurelio.selectContext, aurelio.openControlCenter, aurelio.openSettings, aurelio.previewArtifact

MCP aurelio.syncMcpRegistry, aurelio.assignServerToRealm

Immich aurelio.importImmichAsset, aurelio.openImmichBrowser, aurelio.refreshImmich

Chronicle aurelio.addChronicleEntry, aurelio.refreshChronicle, aurelio.openChronicleEntry

Hardware / lab dashboards aurelio.openHardwareDashboard, aurelio.openHilDashboard, aurelio.openPpk2Dashboard, aurelio.openEsp32Controller, aurelio.openLogicAnalyzer, aurelio.openEngineeringHub

Electronics / EDA viewers aurelio.openSpiceViewer, aurelio.showSpiceResults, aurelio.openCoverageDashboard, aurelio.loadCoverageFromWorkspace, aurelio.openSchematicViewer, aurelio.openSourcingDashboard, aurelio.openPsimViewer, aurelio.openFmuViewer

Fleet / finance / portals aurelio.openGuardaLivrosDashboard, aurelio.openBolsaDoMundial, aurelio.refreshBolsaDoMundial, aurelio.placeBolsaOrder

Quarkdown quarkdown.startPreview, quarkdown.stopPreview, quarkdown.restartLanguageServer, quarkdown.exportPdf

Hidden/registered-but-undeclared (internal wiring, 15): aurelio.openPdfViewer, aurelio.runSchematicAnalysis, aurelio.sourcing.search, aurelio.sourcing.findAlternates, aurelio.sourcing.optimize, aurelio.refreshGuardaLivros, aurelio.xgecuDetect, aurelio.xgecuRead, aurelio.jtagFlash, aurelio.ppkStart, aurelio.hermesStatus, aurelio.openArtifactRaw, aurelio.addArtifactComment, aurelio.activateSession, aurelio.selectSession.

Porting note: 9 declared commands are registered by secondary register-functions called from extension.ts (registerCoordinatorCommands, registerSpeculativeCommands, registerContextCommands) — none are dead.

2.3 Menus

  • view/title (10 entries): sessions (openChat / refresh / syncPull / syncPush / openControlCenter), realms (refresh), heterónimos (refresh), immich (refresh), chronicle (add / refresh).
  • view/item/context (2): inline deleteSession / pushSession on conversation items.
  • editor/title (2): quarkdown preview/export when resourceExtname == .qd.
  • commandPalette (3): quarkdown gated to .qd.

2.4 Settings — 123 keys across these namespaces

aurelio.agent (17), aurelio.antigravity (11), aurelio.browser (6), aurelio.agyIde (4), aurelio.agyLsp (4), aurelio.endpoints (4), aurelio.electronics (4), aurelio.jules (6), aurelio.hub (6), aurelio.hermes (3), aurelio.tab (5), aurelio.editor (3), aurelio.autoDream (3), aurelio.contextCompaction (2), aurelio.memoryExtraction (2), aurelio.notifications (3), aurelio.ota (2), aurelio.immich (2), aurelio.hardware (1), aurelio.autoSync (1), aurelio.defaultModel (1), aurelio.ollamaUrl (1), aurelio.openRouterApiKey (1), aurelio.activeHeteronimo (1), aurelio.activeModelType (1), aurelio.approvalGates (1), aurelio.controlCenter (1, enabledPanels object for 16 tabs), aurelio.customizations.skillPaths, aurelio.knowledgeSettings (1 big object), aurelio.models (3), quarkdown.* (3).

Defaults that encode infrastructure (the Theia deployment must preserve or relocate these):

  • aurelio.endpoints.{eda,mcp,ci,code}*.portugalfuturista.org
  • aurelio.antigravity.host / agyIde.hostantigravity.portugalfuturista.org:8900
  • aurelio.agyLsp.hostagy-lsp.portugalfuturista.org:8902
  • aurelio.electronics.remoteSimUrlhttps://eda.portugalfuturista.org
  • aurelio.hub.{hilBaseUrl,guardaLivrosBaseUrl,bolsaDoMundialBaseUrl}hil. / api.portugalfuturista.org
  • aurelio.hermes.endpointhttp://192.168.0.105:8200 (AORUS PRO Hermes 3)
  • aurelio.ollamaUrlhttp://127.0.0.1:11434
  • aurelio.ota.endpointhttps://firmware.portugalfuturista.org/extensions/aurelio/version.json
  • aurelio.hardware.esp32Devices → SaveEarth-01/02 at 192.168.0.54/55
  • ⚠️ Hard-coded secrets in defaults: aurelio.antigravity.apiKey, aurelio.agyIde.apiKey, aurelio.agyLsp.apiKey all default to the same 64-hex token. These are baked into the extension manifest and must be rotated/moved to secret storage during the Theia port — do not carry them as plaintext defaults.

2.5 Custom editor + language

  • aurelio.pdfViewer (PdfCustomEditorProvider + PdfViewerPanel) for *.pdf/*.epub — uses pdfjs-dist, Svelte viewer. This is the one CustomEditorProvider; Theia's VS Code-compat custom-editor support is historically incomplete → likely porting hotspot.
  • Language quarkdown (.qd) + grammar (syntaxes/) + language-configuration.json + embedded LSP (src/quarkdown/).

3. Feature inventory by subsystem

3.1 Chat + model routing (webview/chatPanel.ts 2620 LOC, models/)

  • Chat webview with streaming tokens, tool-call start/end events, pending-message queue, review-changes diff flow, slash-command palette, copy/insert code, attach context, model/heterónimo pickers.
  • Slash commands: /local /hermes /vertex /openrouter /antigravity /kimi /jules /run /workflow.
  • ModelRouter backends (ModelType): local (Ollama /api/tags + generate), hermes (Nous Hermes 3 at 192.168.0.105:8200), vertex (Gemini via VertexAuthProvider / google-auth-library), openrouter, antigravity (extension-to-extension delegation), kimi (Moonshot), jules (Google Jules SDK). Fallback chain: local → hermes → vertex → openrouter → antigravity. Streaming supported for local/openrouter/vertex/antigravity/hermes/jules; Kimi falls through to non-streaming.
  • Heterónimos (HeteronimoManager): markdown-frontmatter personas with capabilities[], preferredModel; per-persona memory; switchable active persona; auto-routes model from preferredModel (google→vertex, /→openrouter, kimi→kimi).
  • IdempotencyLayer for safe retries.
  • ApprovalGate (utils/approvalGate.ts): command/terminal approval with alwaysAllow/alwaysDeny/alwaysAsk lists, agent.reviewPolicy, agent.terminalAutoExecution, sandbox toggle. Surfaced into chat + control center as approvalRequested/approvalResolved.

3.2 Control Center (webview/controlCenterPanel.ts 3229 LOC, Svelte)

Single webview hosting 16 tabs (App.svelte), ~95 message case handlers in the host. Tabs (pt-PT labels):

id label Backing
bussola Bússola dashboard/orchestration
conversa Conversa chat (ChatTab)
motores Motores MCP servers (McpTab)
antigravidade Antigravidade Antigravity remote IDE control
arquivo Arquivo de Orpheu knowledge (annas-archive/arxiv/libgen/obsidian/calibre/zotero)
oficina Oficina Sensacionista school / Socratic "grill-me" learning
paineis Painéis dashboards launcher
pericias Perícias skills
sessoes Sessões sessions
cronicas Crónicas chronicle
frota Frota fleet analytics
processos Processos workflows
electronica Electrónica EDA/sourcing/SPICE
laboratorio Laboratório hardware lab
impressoras Impressoras 3D printers
engrenagens Engrenagens settings (10 sections)

Host message groups: MCP (reconnect/connectAll/ping/saveConfig/toggle/call/addRecommended/setServerRealms), knowledge (sync/open/extract/ingestObsidian/ingestData/query/syncGoogleKeep/optimizeVault), electronics (search/getDetail/alternates/optimizeBom/runSpice/runErc/extractBom/analyzePower/scanProjects/getDatasheet/validateReplacement/convertToSpice), fleet/finance/forecasting, escola (addSource/chat/action/newSession/list/cite/grill-me/study-guide/save/export/share), antigravity (connect/grpcConnect/disconnect/screenshot/screencast/sendPrompt/quickAction/toggleAutoAccept), agyIde (mirror set), agyLsp (connect/listTools/executeTool/quota/sendPrompt), vertex (health/listModels/infer), jules (status/dispatch/cancel/history/listSessions/resume), wiki (sync/push/pull/export/status), approval (resolve), workflows, settings save, brain sync-now.

Settings UI (settings-svelte, 10 sections): Agente, Conta, Editor, Modelos, Navegador, Notificações, Personalizações, Reinos, Separador, Wiki.

3.3 Brain / sessions / realms (brain/, sync/)

  • BrainManager: reads sessions from the 3-tier brain dir + fallback dirs (~/.gemini/antigravity/brain, ~/.kimi/sessions); lists/deletes conversations; per-session artifacts + comments.
  • SessionProvider/RealmProvider/HeteronimoProvider: tree views with inline delete/push.
  • SessionContinuityService: captures editor state on onDidChangeActiveTextEditor.
  • ChronicleManager/Provider: dated chronicle entries.
  • ImmichProvider/ImmichClient: photo browsing + import from an Immich instance (photos.portugalfuturista.org).
  • ProxmoxSync: HTTP push/pull/list against aurelio.syncEndpoint (default https://mcp.portugalfuturista.org, paths /api/brain/{push,pull,list}); background loop every sync.interval_seconds (default 300s) pushes all brain dirs + fallbacks.
  • WikiSync: Git-backed sync to the sibling olivrododesassossego repo (auto-discovered as workspace folder / sibling / common parent); push/pull/export-session/status.
  • SessionExporter: JSONL/JSON session persistence.

3.4 Context / memory (context/, memory/)

  • Compactor: token-aware auto-compaction (threshold 0.85, max 128k).
  • AutoDream: background memory consolidation (minHours 24, minSessions 5).
  • AwaySummaryManager: recap on onDidChangeWindowState return.
  • SessionMemoryService (+ sessionMemory/ prompts/utils/types): per-session memory extraction.
  • MagicDocsService: auto-updating docs.
  • PromptSuggestionService + ContextScout/ExternalScout: prompt suggestions, repo + web scouting.
  • LSPClientService (vscode-languageclient).
  • SpeculativeEngine (+ speculativeCommands/speculativeFileSystem): speculative edit apply/accept/abort.
  • memory/: frontmatter-typed memory files, index, scan, search, throttled extraction.

3.5 Coordinator + workflows + skills + evolution

  • Coordinator (coordinator/): autonomous worker orchestration ported from claude-code coordinatorMode; phases driven over ModelRouter; taskRegistry, agentSummary, autonomousBrain.
  • WorkflowManager (workflow/): named workflows registered as commands.
  • SkillLoader (skills/): directory-based skills across global→workspace→realm cascade, registers dynamic commands.
  • EvolutionOrchestrator (evolution/): MAP-Elites population loop backed by the dirac Rust engine; mutate→evaluate→insert on a timer; convergence detector; sandbox; mutator; file snapshots. Only subsystem with tests (test/suite/evolution/*).

3.6 Native engine + remote server + dirac (core/)

  • NativeEngine: spawns bundled native/dirac/target/release/dirac (Rust); JSON-lines over stdio; respawn budget; exposes scan/search/index/toon/tokenizer/evolve + eval gates. Pure-TS fallbacks exist (memoryScan.ts, toon.ts). The dirac crate vendors a large set of exa.*.proto (Antigravity-derived) definitions.
  • RemoteServer: HTTP + WebSocket server on port 34567 (default) for external control, gated by ApprovalGate.
  • DiracClient: gRPC/self-hosted LS client, OAuth token injection, auto-discovery.
  • EventBus, ServiceRegistry, ConfigManager.

3.7 MCP (mcp/)

  • McpHub: @modelcontextprotocol/sdk client; SSE (SSEClientTransport for url/serverUrl/sseUrl) and stdio (StdioClientTransport) transports; reconnect backoff; per-tool enable/disable.
  • McpServerManager: lifecycle, health, realm assignment.
  • McpRegistrySync: pulls a registry of recommended servers; "add recommended" flow.
  • mcpServersProvider: tree.

All MCP servers in this deployment are remote (mcp-remote to *.portugalfuturista.org) per the workspace AGENTS.md — SSE is the dominant transport.

3.8 Hardware / lab (hardware/, electronics/, webview panels)

  • Esp32Bridge: spawns python3 -m esptool; scans /dev/ttyUSB*//dev/ttyACM*; fleet of SaveEarth devices.
  • PPK2Bridge: spawns python3 to drive Nordic PPK2 power profiler (battery lab).
  • SigrokBridge: spawns sigrok-cli for logic-analyzer capture/decode → CSV.
  • KiCadBridge: project/net/DRC parsing.
  • FmiBridge: FMU co-simulation (Reference-FMUs), execFile-based.
  • PsimBridge: spawns PSIM/ngspice/LTspice.
  • remoteEdaClient (electronics/): offloads to https://eda.portugalfuturista.org (/sim/{spice,erc,power-rails,parse,convert,bom,bom/optimize}) — CT 203 → Docker pf-eda-sim:8090.
  • Webview dashboards: hardware, HIL, PPK2, ESP32 controller, logic analyzer, schematic, sourcing, coverage, SPICE, PSIM, FMU, engineering hub, guarda-livros (accounting), bolsa-do-mundial (fantasy market), immich browser.

3.9 Antigravity / Gyro (antigravity/, gyro/)

Remote control of an Antigravity IDE instance (CT 212 pf-antigravity) via CDP bridge REST + gRPC + a self-hosted language server: connect, screenshots, screencast start/stop, send prompt, quick actions, auto-accept toggle, OAuth token injection, quota, LSP tool list/execute. Two near-duplicate stacks: antigravity/ (older) and gyro/ (unified AgyIdeService + AgyLspService) — both wired into the control center.

3.10 Quarkdown (quarkdown/)

Embedded language (*.qd) with its own LSP client, process manager, live-preview webview, HTTP poller, and PDF export. Based on github.com/iamgio/quarkdown (vendored as source, not submodule). Contributes the only keybindings (shift+ctrl+v preview, ctrl+alt+p export) and the only language/grammar.

3.11 OTA updater (updater/otaUpdater.ts)

Polls aurelio.ota.endpoint (firmware.portugalfuturista.org/extensions/aurelio/version.json) for new VSIX; self-update flow. CI (.github/workflows/build.yml) packages with vsce and SCPs VSIX + version.json to CT 205 (192.168.0.15:/var/www/firmware/extensions/aurelio/). This update channel is VS Code-specific and must be redesigned for Theia (Theia plugins are deployed into the plugin host, not via vsce/VSIX OTA in the same way).

3.12 Dormant / postponed (src/_future/)

semanticCache.ts, toolPolicy.ts, voiceKeyterms.ts, voiceStreamSTT.ts, voice.tszero importers anywhere in src/. Per the user's standing convention, treat as intentionally-postponed (not dead): keep, label, and carry a resume note rather than deleting. They are Phase 9.1 semantic cache, L-4 tool-calling policy, and voice/STT.


4. External integration map (what the Theia fork must still reach)

13 *.portugalfuturista.org hosts referenced from src/:

agy-lsp, antigravity, api, ci, code, eda, hil, lab-gw, mcp, photos, portal, ssh, firmware (OTA, from settings), plus LAN 192.168.0.105 (Hermes), 192.168.0.54/55 (ESP32), CT 205 firmware store (192.168.0.15), CT 203 EDA, CT 212 antigravity, CT 208 Gabinete/brain, CT 206 lab gateway.

Local processes spawned: dirac (bundled Rust), python3 -m esptool, python3 (PPK2), sigrok-cli, ngspice/ltspice/psim, quarkdown (LSP), gcloud (vertex auth), git (wiki), ollama (HTTP). Browser via CDP (cdpPort 9222).

Implication for a Theia fork running in a browser: anything that spawns a local process or touches /dev/tty* (ESP32/PPK2/sigrok/PSIM/quarkdown LSP/dirac) cannot run in the browser front-end; it must run in the Theia back-end (Node) or be proxied through the lab gateway (CT 206 / lab-gw.portugalfuturista.org) and the existing MCP/EDA services. The hardware bridges are already partly split (EDA is remote; serial devices are local) — the cleanest Theia design moves all device I/O behind the lab gateway and keeps the front-end pure.


5. Migration paths

Path A — Run the VSIX as-is inside Theia's VS Code extension host (cheapest)

Theia ships a VS Code API compatibility layer (@theia/plugin-ext). Realistic effort: days-to-weeks. Likely gaps to verify against Theia's current compat surface:

  • CustomEditorProvider (PDF viewer) — historically partial.
  • Webview CSP / asWebviewUri, Svelte bundles, message passing — usually works but CSP strictness differs.
  • vscode.window.createStatusBarItem, registerWebviewViewProvider, TreeDataProvider — supported.
  • Spawning the bundled dirac binary and python3/sigrok-cli from the extension host — works only if the plugin runs back-end side; browser-hosted plugins cannot spawn.
  • vscode-languageclient (Quarkdown LSP) — supported.
  • OTA self-update via VSIX — does not map to Theia's plugin deployment; replace.

Path B — Rehost as native Theia extensions/plugins (expensive, clean)

Rewrite the 24 webviews + 6 tree views + 64 commands against Theia's theia plugin API or as Theia extensions (@theia/core). Effort: weeks-to-months. Only worth it for the pieces where Path A breaks or where you want native Theia theming/layout.

  1. Stand up the Theia fork, enable the VS Code plugin host, drop in aurelio-0.12.0.vsix, and smoke-test every view/command. Keep a gap list.
  2. Move all local-process spawns (dirac, esptool, PPK2, sigrok, SPICE, quarkdown LSP) behind the back-end or lab gateway; front-end talks HTTP/WS/MCP only.
  3. Replace the OTA/VSIX channel with Theia's plugin deployment (build into the image or Theia's plugin registry).
  4. Rotate the three baked-in API keys out of package.json defaults into Theia secret storage / env.
  5. Re-implement the PDF custom editor as a Theia widget if the compat layer can't host it.
  6. Port only the hotspot panels to native Theia widgets as needed.

6. Verification done for this inventory

  • Reconstructed full source tree (427 files) from git object 548b2cc6^ via git archive.
  • Parsed package.json programmatically: commands/views/menus/config/keybindings/customEditors/languages.
  • Cross-checked declared vs registered commands (64 declared, ~79 registered incl. 15 internal; the 9 "declared-not-in-extension.ts" are registered by secondary register-functions — confirmed live).
  • Confirmed _future/ has 0 importers (dormant).
  • Read top-of-file doc comments for every major module to confirm purpose.
  • Grep'd for all *.portugalfuturista.org hosts, LAN IPs, spawn/execFile sites, transports, and the OTA/CI deploy path.

Not done (needs live repo / network): confirm whether the extracted independent aurelio-vscode repo has advanced past v0.12.0 since 2026-06-21; confirm current Theia VS Code-compat coverage for CustomEditorProvider and webview CSP; confirm which hosts are reachable from the Theia back-end network namespace.


7. File list (reconstructed baseline, /tmp/aurelio-vscode-0.12.0/)

Key entry points and the largest files to port first:

  • src/extension.ts (1626 LOC) — activation, registers everything, background sync loop, status bars.
  • src/webview/controlCenterPanel.ts (3229) — 16-tab cockpit host (~95 message handlers).
  • src/webview/chatPanel.ts (2620) — chat + slash commands + streaming + tool/approval flow.
  • src/models/modelRouter.ts — 7-backend routing + fallback chain.
  • src/core/nativeEngine.ts — dirac spawn + respawn + eval gates.
  • src/core/remoteServer.ts — WS control server :34567.
  • src/mcp/mcpHub.ts, src/mcp/McpServerManager.ts, src/mcp/mcpRegistrySync.ts — MCP SSE/stdio.
  • src/sync/proxmoxSync.ts, src/sync/wikiSync.ts — brain + wiki sync.
  • src/hardware/*.ts (6 bridges) + src/electronics/remoteEdaClient.ts.
  • src/evolution/*.ts (7 files, only tested subsystem).
  • src/quarkdown/* — embedded language + LSP + preview + PDF.
  • package.json — 123 settings, 64 commands, 6 views, 1 custom editor, 1 language.

8. Open questions before freezing scope

  1. Path to the live aurelio-vscode independent repo (post-extraction) — is v0.12.0 still current, or has it moved on?
  2. Theia version target for the fork, and whether plugins run in the Node back-end or browser front-end (decides where dirac/serial/LSP can live).
  3. Whether aurelio.portugalfuturista.org today is plain code-server serving this VSIX, and which of the 13 backends are reachable from the new Theia host's network.
  4. Keep Quarkdown + the hardware-lab panels in scope for v1 of the Theia fork, or stage them?