Architecture
A card is a real terminal. Everything else — workspaces, the local tool server, capabilities, deliverables — follows from that one decision.
Shipped in the current build. You can do this on your own machine today.
The application is a desktop shell over a native core. The shell renders; the core owns the processes, the registries and the files. Nothing that decides anything lives in the front end.
#The process tree of a run
Finexia (native core)
├── host card → one vendor CLI process, isolated workspace
├── mandate card → one vendor CLI process, isolated workspace
│ └── sub-agent → inherits the parent's reach and budget
└── local tool server → 127.0.0.1 only, one bearer token per cardOne card, one process, one workspace. A card that finishes releases its process; the quit path stops every process the application started. A hard kill from outside bypasses that path by definition, and one orphan was observed exactly that way.
Still missingThe sub-agent boundary is written and covered by tests in the core — opaque identity, six states, an idempotency key, and thirty-two concurrent requests yielding a single child. Nothing calls it yet, so no delegation tree can be shown, and this documentation does not pretend otherwise.
#Capabilities gate everything
A role declares what it may reach, in the role’s own file. The tool server serves a tool only to a role whose declared capabilities cover it — and a tool a role may not call does not appear in its listing at all, rather than appearing as a locked door. The table on the API reference page is read from those declarations, not written by hand 3.
Read that table for what it refuses, not for what it allows. The news role holds open-web access and nothing else — it cannot read your deposited data. The fundamental role holds filings and market data and no web access — it cannot substitute a blog post for a filing. No role holds both your data and arbitrary web access, and the application refuses to open if one ever does.
#Two separations, enforced at startup
| Rule | What it prevents | How it is held |
|---|---|---|
| Reading operator data and reaching outward never combine | A fetched page leaving with someone’s journal | A startup audit over the whole roster; a violation stops the application from opening |
| Running code and reaching outward never combine | A sandboxed script’s severed network being made decorative by a role that can post its result | The same audit — the sandbox measures the cut, the audit keeps it meaningful |
#Deliverables have owners
A requested format convenes the role that owns it. One format, one owner, and exactly one — enforced by a test. A workbook request calls the accounting role even when the sentence contains no accounting word at all.
- AVAILABLEWorkbook (XLSX)A native engine compiled into the build, with live formulas pointing at the declared facts. Owned by the accounting role.
- AVAILABLEDeck (PPTX)A native engine compiled into the build, 16:9, reading the same dossier as the workbook. Owned by the deal-lead role.
- AVAILABLEMemo (PDF)A native engine compiled into the build, A4, selectable text — a page without text is refused. Owned by the deal-lead role.
- AVAILABLEThe three published as one bundleAll of them or none, with a sealed manifest carrying digests, sources and limits. A format that fails takes the others with it.
- PLANNEDAn agent producing any of them in a real runThe engines are tested and packaged; no recorded run has called these tools. Nothing on this site marks that journey verified.
#Where data lives, and where it never goes
- Your journal, your theses and your deposits are on your disk, append-only and replayable.
- Vendor keys are in the macOS keychain. Never in a file, a database, an environment file or a log.
- The tool server binds the loopback address only, on a port the system picks.
- The remote server is a control plane: account, licence, updates. No market data, no journal, no portfolio and no thesis transits through it. Cut it off and the application still works.
#Sources
- Finexia OS — product state at 0.0.23FinexiaInternal document, not published
- The canonical role registry, mirrored on this siteFinexiaInternal document, not published
- The tool registry, mirrored on this siteFinexiaInternal document, not published