diff --git a/README.md b/README.md index 53f57e8..a03eec0 100644 --- a/README.md +++ b/README.md @@ -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: diff --git a/examples/fresh-server-actor/README.md b/demos/fresh-server-actor/README.md similarity index 83% rename from examples/fresh-server-actor/README.md rename to demos/fresh-server-actor/README.md index da2f81e..ec3a791 100644 --- a/examples/fresh-server-actor/README.md +++ b/demos/fresh-server-actor/README.md @@ -18,8 +18,8 @@ export MATRIX_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: diff --git a/examples/fresh-server-actor/package.json b/demos/fresh-server-actor/package.json similarity index 87% rename from examples/fresh-server-actor/package.json rename to demos/fresh-server-actor/package.json index e8aeced..44ebd08 100644 --- a/examples/fresh-server-actor/package.json +++ b/demos/fresh-server-actor/package.json @@ -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", diff --git a/examples/fresh-server-actor/src/server.ts b/demos/fresh-server-actor/src/server.ts similarity index 98% rename from examples/fresh-server-actor/src/server.ts rename to demos/fresh-server-actor/src/server.ts index 181fb84..8ce3f87 100644 --- a/examples/fresh-server-actor/src/server.ts +++ b/demos/fresh-server-actor/src/server.ts @@ -104,7 +104,7 @@ async function main(): Promise { }, { 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, diff --git a/examples/fresh-server-actor/tsconfig.json b/demos/fresh-server-actor/tsconfig.json similarity index 100% rename from examples/fresh-server-actor/tsconfig.json rename to demos/fresh-server-actor/tsconfig.json diff --git a/examples/fresh-web-page/README.md b/demos/fresh-web-page/README.md similarity index 94% rename from examples/fresh-web-page/README.md rename to demos/fresh-web-page/README.md index 6bb2a15..91deb56 100644 --- a/examples/fresh-web-page/README.md +++ b/demos/fresh-web-page/README.md @@ -24,7 +24,7 @@ export MATRIX_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 diff --git a/examples/fresh-web-page/index.html b/demos/fresh-web-page/index.html similarity index 100% rename from examples/fresh-web-page/index.html rename to demos/fresh-web-page/index.html diff --git a/examples/fresh-web-page/package.json b/demos/fresh-web-page/package.json similarity index 88% rename from examples/fresh-web-page/package.json rename to demos/fresh-web-page/package.json index a0009ea..97a2289 100644 --- a/examples/fresh-web-page/package.json +++ b/demos/fresh-web-page/package.json @@ -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", diff --git a/examples/fresh-web-page/src/main.ts b/demos/fresh-web-page/src/main.ts similarity index 100% rename from examples/fresh-web-page/src/main.ts rename to demos/fresh-web-page/src/main.ts diff --git a/examples/fresh-web-page/tsconfig.json b/demos/fresh-web-page/tsconfig.json similarity index 100% rename from examples/fresh-web-page/tsconfig.json rename to demos/fresh-web-page/tsconfig.json diff --git a/examples/fresh-web-page/vite.config.ts b/demos/fresh-web-page/vite.config.ts similarity index 96% rename from examples/fresh-web-page/vite.config.ts rename to demos/fresh-web-page/vite.config.ts index 644b744..2e1af26 100644 --- a/examples/fresh-web-page/vite.config.ts +++ b/demos/fresh-web-page/vite.config.ts @@ -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, diff --git a/examples/standalone-greeter/.gitignore b/demos/standalone-greeter/.gitignore similarity index 100% rename from examples/standalone-greeter/.gitignore rename to demos/standalone-greeter/.gitignore diff --git a/examples/standalone-greeter/README.md b/demos/standalone-greeter/README.md similarity index 100% rename from examples/standalone-greeter/README.md rename to demos/standalone-greeter/README.md diff --git a/examples/standalone-greeter/matrix.json b/demos/standalone-greeter/matrix.json similarity index 92% rename from examples/standalone-greeter/matrix.json rename to demos/standalone-greeter/matrix.json index fd6bf2b..9939827 100644 --- a/examples/standalone-greeter/matrix.json +++ b/demos/standalone-greeter/matrix.json @@ -1,5 +1,5 @@ { - "name": "matrix-sdk-example-standalone-greeter", + "name": "matrix-sdk-demo-standalone-greeter", "version": "0.0.0", "runtime": { "language": "typescript", diff --git a/examples/standalone-greeter/package.json b/demos/standalone-greeter/package.json similarity index 82% rename from examples/standalone-greeter/package.json rename to demos/standalone-greeter/package.json index e6ff173..ad1cdd9 100644 --- a/examples/standalone-greeter/package.json +++ b/demos/standalone-greeter/package.json @@ -1,5 +1,5 @@ { - "name": "matrix-sdk-example-standalone-greeter", + "name": "matrix-sdk-demo-standalone-greeter", "version": "0.0.0", "private": true, "type": "module", diff --git a/examples/standalone-greeter/run-demo.mjs b/demos/standalone-greeter/run-demo.mjs similarity index 97% rename from examples/standalone-greeter/run-demo.mjs rename to demos/standalone-greeter/run-demo.mjs index 48c4cbf..e01d2fd 100644 --- a/examples/standalone-greeter/run-demo.mjs +++ b/demos/standalone-greeter/run-demo.mjs @@ -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) { diff --git a/examples/standalone-greeter/src/GreeterActor.ts b/demos/standalone-greeter/src/GreeterActor.ts similarity index 100% rename from examples/standalone-greeter/src/GreeterActor.ts rename to demos/standalone-greeter/src/GreeterActor.ts diff --git a/examples/standalone-greeter/src/create-standalone-GreeterActor.ts b/demos/standalone-greeter/src/create-standalone-GreeterActor.ts similarity index 100% rename from examples/standalone-greeter/src/create-standalone-GreeterActor.ts rename to demos/standalone-greeter/src/create-standalone-GreeterActor.ts diff --git a/examples/standalone-greeter/src/index.ts b/demos/standalone-greeter/src/index.ts similarity index 100% rename from examples/standalone-greeter/src/index.ts rename to demos/standalone-greeter/src/index.ts diff --git a/examples/standalone-greeter/tsconfig.json b/demos/standalone-greeter/tsconfig.json similarity index 100% rename from examples/standalone-greeter/tsconfig.json rename to demos/standalone-greeter/tsconfig.json diff --git a/package.json b/package.json index a55c31b..632f2ee 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/packages/sdk/README.md b/packages/sdk/README.md index 9dd28a5..871a378 100644 --- a/packages/sdk/README.md +++ b/packages/sdk/README.md @@ -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: diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f68e3aa..566e6da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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:* diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 89723f9..3c9ea06 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - "packages/*" - - "examples/*" + - "demos/*" diff --git a/scripts/prove-fresh-samples.mjs b/scripts/prove-fresh-samples.mjs index 9595d2f..0363826 100644 --- a/scripts/prove-fresh-samples.mjs +++ b/scripts/prove-fresh-samples.mjs @@ -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,