chore: move SDK demos under demos

This commit is contained in:
Ubuntu 2026-06-08 17:43:01 +00:00
parent dd1872e3de
commit 306c421a4e
25 changed files with 33 additions and 33 deletions

View File

@ -190,7 +190,7 @@ pnpm run doctor:standalone
pnpm demo:standalone
```
This builds the SDK and `examples/standalone-greeter`, starts the actor with
This builds the SDK and `demos/standalone-greeter`, starts the actor with
`matrix package run`, calls it with `--check-op` over a real local NATS broker,
and shuts it down. It does not use a provider account, machine link, managed
host service, or local HTTP control server.
@ -229,10 +229,10 @@ CLI.
That proof builds and runs two fresh package-author demos:
- `examples/fresh-server-actor` exchanges the API key for an actor-scoped
- `demos/fresh-server-actor` exchanges the API key for an actor-scoped
credential, connects to HiveCast NATS TCP, mounts `fresh.server.echo`, and
calls it over the Matrix runtime/NATS transport path.
- `examples/fresh-web-page` is served by Vite, not Matrix Web or HiveCast HTTP.
- `demos/fresh-web-page` is served by Vite, not Matrix Web or HiveCast HTTP.
Its Vite dev endpoint exchanges the API key for an actor-scoped browser
credential, the page connects to HiveCast NATS WebSocket, mounts
`fresh.web.echo`, and calls it in a real browser.
@ -289,7 +289,7 @@ Done and proven:
a `MatrixActor`, and call it through Matrix runtime/transport.
- `matrix package run` can mount and check a package against an explicit NATS
broker without provider-specific API key exchange.
- Fresh server and browser examples can run against HiveCast-issued
- Fresh server and browser demos can run against HiveCast-issued
actor-scoped NATS credentials.
Still planned:

View File

@ -18,8 +18,8 @@ export MATRIX_API_KEY=<your-hivecast-api-key>
pnpm install --frozen-lockfile
pnpm run doctor
pnpm --filter matrix-sdk-example-fresh-server-actor build
pnpm --filter matrix-sdk-example-fresh-server-actor check
pnpm --filter matrix-sdk-demo-fresh-server-actor build
pnpm --filter matrix-sdk-demo-fresh-server-actor check
```
Expected result:

View File

@ -1,5 +1,5 @@
{
"name": "matrix-sdk-example-fresh-server-actor",
"name": "matrix-sdk-demo-fresh-server-actor",
"version": "0.1.0",
"private": true,
"type": "module",

View File

@ -104,7 +104,7 @@ async function main(): Promise<void> {
}, {
mount,
actorId: 'FreshServerEchoActor',
packageId: 'matrix-sdk-example-fresh-server-actor',
packageId: 'matrix-sdk-demo-fresh-server-actor',
runtimeId: `fresh-server-${process.pid}`,
accepts: FreshServerEchoActor.accepts,
ttlSeconds: 300,

View File

@ -24,7 +24,7 @@ export MATRIX_API_KEY=<your-hivecast-api-key>
pnpm install --frozen-lockfile
pnpm setup:browser
pnpm run doctor:hivecast
pnpm --filter matrix-sdk-example-fresh-web-page dev
pnpm --filter matrix-sdk-demo-fresh-web-page dev
```
Open the printed Vite URL. The page mounts a browser actor and calls it over

View File

@ -1,5 +1,5 @@
{
"name": "matrix-sdk-example-fresh-web-page",
"name": "matrix-sdk-demo-fresh-web-page",
"version": "0.1.0",
"private": true,
"type": "module",

View File

@ -36,7 +36,7 @@ function hiveCastActorCredentialPlugin(): Plugin {
}, {
mount: env('MATRIX_WEB_MOUNT') ?? 'fresh.web.echo',
actorId: 'FreshBrowserEchoActor',
packageId: 'matrix-sdk-example-fresh-web-page',
packageId: 'matrix-sdk-demo-fresh-web-page',
runtimeId: `fresh-web-${process.pid}`,
accepts: { echo: {}, getStatus: {} },
ttlSeconds: 300,

View File

@ -1,5 +1,5 @@
{
"name": "matrix-sdk-example-standalone-greeter",
"name": "matrix-sdk-demo-standalone-greeter",
"version": "0.0.0",
"runtime": {
"language": "typescript",

View File

@ -1,5 +1,5 @@
{
"name": "matrix-sdk-example-standalone-greeter",
"name": "matrix-sdk-demo-standalone-greeter",
"version": "0.0.0",
"private": true,
"type": "module",

View File

@ -81,7 +81,7 @@ let natsServer;
try {
run('pnpm', ['run', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-example-standalone-greeter', 'run', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-demo-standalone-greeter', 'run', 'build']);
const nats = resolveNatsServer(repoRoot);
if (!nats) {

View File

@ -15,7 +15,7 @@
"doctor:hivecast": "node scripts/doctor.mjs --hivecast",
"setup:nats": "node scripts/setup-nats-server.mjs",
"setup:browser": "pnpm exec playwright install chromium",
"demo:standalone": "node examples/standalone-greeter/run-demo.mjs",
"demo:standalone": "node demos/standalone-greeter/run-demo.mjs",
"prove:cli": "pnpm --filter @open-matrix/cli... build && pnpm --filter @open-matrix/cli test && pnpm run demo:standalone",
"prove:external-consumer": "node scripts/prove-external-consumer.mjs",
"prove:fresh-samples": "node scripts/prove-fresh-samples.mjs",

View File

@ -38,10 +38,10 @@ Server actors use `NatsTransport` with `credential.transport.natsUrl`; browser
actors use `createBrowserNatsTransport` with
`credential.transport.natsWsUrl`.
Runnable examples:
Runnable demos:
- `examples/fresh-server-actor`
- `examples/fresh-web-page`
- `demos/fresh-server-actor`
- `demos/fresh-web-page`
Proof:

6
pnpm-lock.yaml generated
View File

@ -43,7 +43,7 @@ importers:
specifier: ^5.7.0
version: 5.9.3
examples/fresh-server-actor:
demos/fresh-server-actor:
dependencies:
'@open-matrix/sdk':
specifier: workspace:*
@ -59,7 +59,7 @@ importers:
specifier: ^5.7.0
version: 5.9.3
examples/fresh-web-page:
demos/fresh-web-page:
dependencies:
'@open-matrix/sdk':
specifier: workspace:*
@ -75,7 +75,7 @@ importers:
specifier: ^5.4.21
version: 5.4.21(@types/node@25.9.2)
examples/standalone-greeter:
demos/standalone-greeter:
dependencies:
'@open-matrix/core':
specifier: workspace:*

View File

@ -1,3 +1,3 @@
packages:
- "packages/*"
- "examples/*"
- "demos/*"

View File

@ -91,7 +91,7 @@ async function proveWebLive() {
const origin = `http://127.0.0.1:${port}`;
const vite = spawn('pnpm', [
'--filter',
'matrix-sdk-example-fresh-web-page',
'matrix-sdk-demo-fresh-web-page',
'exec',
'vite',
'--host',
@ -168,20 +168,20 @@ async function proveWebLive() {
run('pnpm', ['--filter', '@open-matrix/core', 'build']);
run('pnpm', ['--filter', '@open-matrix/sdk', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-example-fresh-server-actor', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-example-fresh-web-page', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-demo-fresh-server-actor', 'build']);
run('pnpm', ['--filter', 'matrix-sdk-demo-fresh-web-page', 'build']);
assertContains('examples/fresh-server-actor/src/server.ts', "from '@open-matrix/sdk'");
assertContains('examples/fresh-server-actor/src/server.ts', 'exchangeHiveCastActorCredential');
assertContains('examples/fresh-web-page/src/main.ts', "from '@open-matrix/sdk'");
assertContains('examples/fresh-web-page/vite.config.ts', 'exchangeHiveCastActorCredential');
assertContains('examples/fresh-web-page/README.md', 'served by Vite, not by Matrix Web');
assertContains('demos/fresh-server-actor/src/server.ts', "from '@open-matrix/sdk'");
assertContains('demos/fresh-server-actor/src/server.ts', 'exchangeHiveCastActorCredential');
assertContains('demos/fresh-web-page/src/main.ts', "from '@open-matrix/sdk'");
assertContains('demos/fresh-web-page/vite.config.ts', 'exchangeHiveCastActorCredential');
assertContains('demos/fresh-web-page/README.md', 'served by Vite, not by Matrix Web');
const live = hasHiveCastEnv();
let serverLive = null;
let webLive = null;
if (live) {
const result = run('pnpm', ['--filter', 'matrix-sdk-example-fresh-server-actor', 'check'], { stdio: 'pipe' });
const result = run('pnpm', ['--filter', 'matrix-sdk-demo-fresh-server-actor', 'check'], { stdio: 'pipe' });
serverLive = parseLastJsonObject(result.stdout);
if (serverLive.ok !== true || serverLive.demo !== 'fresh-server-actor') {
throw new Error(`Unexpected fresh server actor proof: ${result.stdout}`);
@ -193,8 +193,8 @@ console.log(JSON.stringify({
ok: true,
proof: 'fresh-samples',
built: [
'matrix-sdk-example-fresh-server-actor',
'matrix-sdk-example-fresh-web-page',
'matrix-sdk-demo-fresh-server-actor',
'matrix-sdk-demo-fresh-web-page',
],
hivecastEnvPresent: live,
serverLive,