75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# Tessera
|
|
|
|
Tessera is a clean desktop rendering host. It starts with an empty page. Coding agents submit source code to a namespace through a local CRUD API; Tessera parses that code, builds its architecture tree, compiles it to drawing commands, and renders the result.
|
|
|
|
## Start
|
|
|
|
```bash
|
|
cargo run --release
|
|
```
|
|
|
|
Tessera listens only on `127.0.0.1:4737`.
|
|
|
|
Start every agent integration by reading the live Markdown guide:
|
|
|
|
```bash
|
|
curl http://127.0.0.1:4737/agent
|
|
```
|
|
|
|
## Namespace code API
|
|
|
|
The initial active namespace is `app.main`. Tessera has no file concept.
|
|
|
|
```text
|
|
GET /v1/namespaces/app.main/code
|
|
PUT /v1/namespaces/app.main/code
|
|
DELETE /v1/namespaces/app.main/code
|
|
```
|
|
|
|
Submit code as plain text:
|
|
|
|
```bash
|
|
curl \
|
|
--request PUT \
|
|
--header 'Content-Type: text/plain; charset=utf-8' \
|
|
--data-binary @- \
|
|
http://127.0.0.1:4737/v1/namespaces/app.main/code <<'TESSERA'
|
|
namespace app.main
|
|
|
|
use tessera.ui::{Column, Text}
|
|
|
|
export scene Main {
|
|
render {
|
|
Column(gap: 12, padding: 24) {
|
|
Text("Hello", role: .title)
|
|
Text("Rendered by Tessera")
|
|
}
|
|
}
|
|
}
|
|
TESSERA
|
|
```
|
|
|
|
Updates are atomic. Invalid code returns diagnostics with HTTP 422 and preserves the last successfully rendered revision.
|
|
|
|
## Developer tools
|
|
|
|
The developer sidebar is closed by default.
|
|
|
|
- macOS: `Command-Option-I` or `F12`
|
|
- Windows/Linux: `Control-Shift-I` or `F12`
|
|
|
|
The upper section displays the compiler-produced architecture tree. Selecting a node shows the corresponding source range below it.
|
|
|
|
## Current syntax experiment
|
|
|
|
The first parser intentionally supports only enough syntax to test the architecture:
|
|
|
|
- `namespace`
|
|
- namespace-only `use`
|
|
- one `export scene`
|
|
- one `render` root
|
|
- `Column`, `Row`, `Spacer`, and `Text`
|
|
- `gap`, `padding`, and `.title`
|
|
|
|
There are no files, HTML, CSS, JavaScript, DOM, or resource-network concepts in the runtime.
|