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.org → ssh://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): inlinedeleteSession/pushSessionon conversation items.editor/title(2): quarkdown preview/export whenresourceExtname == .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.orgaurelio.antigravity.host/agyIde.host→antigravity.portugalfuturista.org:8900aurelio.agyLsp.host→agy-lsp.portugalfuturista.org:8902aurelio.electronics.remoteSimUrl→https://eda.portugalfuturista.orgaurelio.hub.{hilBaseUrl,guardaLivrosBaseUrl,bolsaDoMundialBaseUrl}→hil./api.portugalfuturista.orgaurelio.hermes.endpoint→http://192.168.0.105:8200(AORUS PRO Hermes 3)aurelio.ollamaUrl→http://127.0.0.1:11434aurelio.ota.endpoint→https://firmware.portugalfuturista.org/extensions/aurelio/version.jsonaurelio.hardware.esp32Devices→ SaveEarth-01/02 at192.168.0.54/55- ⚠️ Hard-coded secrets in defaults:
aurelio.antigravity.apiKey,aurelio.agyIde.apiKey,aurelio.agyLsp.apiKeyall 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— usespdfjs-dist, Svelte viewer. This is the oneCustomEditorProvider; 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 viaVertexAuthProvider/ 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 withcapabilities[],preferredModel; per-persona memory; switchable active persona; auto-routes model frompreferredModel(google→vertex,/→openrouter, kimi→kimi). - IdempotencyLayer for safe retries.
- ApprovalGate (
utils/approvalGate.ts): command/terminal approval withalwaysAllow/alwaysDeny/alwaysAsklists,agent.reviewPolicy,agent.terminalAutoExecution, sandbox toggle. Surfaced into chat + control center asapprovalRequested/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(defaulthttps://mcp.portugalfuturista.org, paths/api/brain/{push,pull,list}); background loop everysync.interval_seconds(default 300s) pushes all brain dirs + fallbacks. - WikiSync: Git-backed sync to the sibling
olivrododesassossegorepo (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
onDidChangeWindowStatereturn. - 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 ofexa.*.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/sdkclient; SSE (SSEClientTransportforurl/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-remoteto*.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-clifor 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 tohttps://eda.portugalfuturista.org(/sim/{spice,erc,power-rails,parse,convert,bom,bom/optimize}) — CT 203 → Dockerpf-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.ts — zero 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
diracbinary andpython3/sigrok-clifrom 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.
Path C — Hybrid (recommended)
- 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. - 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.
- Replace the OTA/VSIX channel with Theia's plugin deployment (build into the image or Theia's plugin registry).
- Rotate the three baked-in API keys out of
package.jsondefaults into Theia secret storage / env. - Re-implement the PDF custom editor as a Theia widget if the compat layer can't host it.
- 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^viagit archive. - Parsed
package.jsonprogrammatically: 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.orghosts, 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
- Path to the live
aurelio-vscodeindependent repo (post-extraction) — is v0.12.0 still current, or has it moved on? - 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).
- Whether
aurelio.portugalfuturista.orgtoday is plain code-server serving this VSIX, and which of the 13 backends are reachable from the new Theia host's network. - Keep Quarkdown + the hardware-lab panels in scope for v1 of the Theia fork, or stage them?