hypnotranz 1a0419dc0c feat: initial Matrix SDK
Full SDK workspace: core, contracts, sdk, cli, browser-host, browser-kit,
federation, omega-core, oracle, self-healing, strategies, tools, emacs.
Clean extraction from the development monorepo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 15:54:15 -06:00

83 lines
2.0 KiB
Markdown

# @matrix/core
Matrix runtime SDK — actors, Web Components, transports, serialization, and LISP-on-Protocol.
## Install
```bash
npm install @matrix/core
```
## Usage
### Headless Actor (daemon-side)
```typescript
import { MatrixActor } from '@matrix/core';
class PingActor extends MatrixActor {
static accepts = {
ping: { message: 'string' },
};
static emits = {
pong: { echo: 'string', ts: 'number' },
};
onPing(payload: { message: string }) {
this.emit('pong', { echo: payload.message, ts: Date.now() });
}
}
```
### Browser Web Component
```typescript
import { MatrixActorHtmlElement } from '@matrix/core';
class StatusPanel extends MatrixActorHtmlElement {
static accepts = { showStatus: { text: 'string' } };
static template = `<div id="status"></div>`;
static styles = `#status { font-family: monospace; padding: 8px; }`;
onShowStatus(payload: { text: string }) {
this.shadowRoot!.querySelector('#status')!.textContent = payload.text;
}
}
customElements.define('status-panel', StatusPanel);
```
### Programmatic Runtime
```typescript
import { MatrixRuntime, InMemoryBroker } from '@matrix/core';
const broker = new InMemoryBroker();
const runtime = new MatrixRuntime({ broker });
await runtime.start();
```
## What's Included
| Category | Key Exports |
|----------|------------|
| **Core** | `MatrixActor`, `Supervisor`, `HeadlessComponentRegistry` |
| **Framework** | `MatrixActorHtmlElement`, `MxContract`, `MxInterface`, `MxProxy` |
| **Runtime** | `MatrixRuntime`, `HeadlessHost`, `ConsoleLogger` |
| **Transports** | `InMemoryBroker`, `NatsTransport`, `FederationTransportAdapter` |
| **Messaging** | `TopicRouter`, `SubscriptionBag`, `RequestReply` |
| **LISP** | `Interpreter`, `EvalContext`, `parseSExpr` |
| **Serialization** | `serialize`, `parse`, 5-format parity |
| **Flow** | `FlowBuilder`, `FlowEngine`, `FlowContext` |
135 named exports total. Full type declarations included.
## Requirements
- Node.js >= 20
- TypeScript >= 5.0 (for type checking)
## License
MIT