@ggui-ai/protocol-reference-server 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,7 +14,7 @@ kit grounds the claim empirically rather than by assertion.
14
14
  - WebSocket transport matching the ggui live-channel wire.
15
15
  - In-memory render store with a consume-buffer event ledger (no persistence).
16
16
  - `schemaVersion` handshake with `UPGRADE_REQUIRED` on mismatch.
17
- - Subscribe tenancy: the subscribe's `appId` must match the GguiSession's
17
+ - Subscribe app scope: the subscribe's `appId` must match the GguiSession's
18
18
  bound `appId` or the subscribe is rejected with an `error` frame, code
19
19
  `APP_MISMATCH` (an unknown session id still provisions on subscribe,
20
20
  binding the subscribe's own `appId`).
@@ -28,7 +28,7 @@
28
28
  * introspection seam — `session-state` fixtures (stateful obligations
29
29
  * with no wire response, e.g. `host-context-observed-persists`) grade
30
30
  * by reading the GguiSession field back after the observation window.
31
- * Readable fields: `hostContext`, `appId` (the tenancy column the
31
+ * Readable fields: `hostContext`, `appId` (the app-scope column the
32
32
  * `absent-appid-defaults` fixture grades identity-default resolution
33
33
  * against). Unknown fields throw with a clear message so the kit
34
34
  * records an honest SKIP, never a weakened pass.
@@ -151,11 +151,11 @@ export function createReferenceConformanceHost({ serverInstance, }) {
151
151
  return render.hostContext;
152
152
  }
153
153
  if (field === 'appId') {
154
- // The tenancy column on the live render row — the kit's
154
+ // The app-scope column on the live render row — the kit's
155
155
  // `absent-appid-defaults` fixture reads it back to grade the
156
156
  // SPEC §12.2 identity-default resolution (a subscribe that
157
157
  // omits `appId` binds the deployment default, never an
158
- // undefined tenant).
158
+ // undefined app id).
159
159
  return render.appId;
160
160
  }
161
161
  throw new Error(`reference server does not expose GguiSession field '${field}' via readSessionField — readable fields: hostContext, appId`);
@@ -26,10 +26,10 @@
26
26
  * persists NOTHING: a partial write from half-valid input would
27
27
  * fabricate state the client never coherently observed.
28
28
  *
29
- * Tenancy note: the first-party handler scopes the write through its
29
+ * Scoping note: the first-party handler scopes the write through its
30
30
  * subscriber binding (`NOT_SUBSCRIBED` / `SESSION_MISMATCH` error
31
31
  * frames). The reference server has no auth identity by design
32
- * (accepts any bearer), so its tenancy scope is the render lookup
32
+ * (accepts any bearer), so its scope is the render lookup
33
33
  * itself — the caller drops frames whose `payload.sessionId` names an
34
34
  * unknown render, mirroring the action path's unknown-render posture.
35
35
  */
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ export const REFERENCE_SERVER_VERSION = '0.1.0';
28
28
  export { ReferenceServer } from './server.js';
29
29
  // Deployment-level identity-default app id (SPEC §12.2: a subscribe
30
30
  // MAY omit `appId`; this no-auth server resolves every caller to this
31
- // deployment-wide tenant). Exported so external runners can assert
31
+ // deployment-wide app id). Exported so external runners can assert
32
32
  // the bound default without restating the literal.
33
33
  export { DEPLOYMENT_DEFAULT_APP_ID } from './render.js';
34
34
  export { createReferenceConformanceHost, } from './conformance-host.js';
package/dist/render.d.ts CHANGED
@@ -35,7 +35,7 @@ import type { ActionSpec, HostContextProjection } from '@ggui-ai/protocol';
35
35
  * model is no-auth — every caller is the same anonymous identity — so
36
36
  * the per-identity mapping a real deployment configures collapses to
37
37
  * one deployment-wide constant. The value matches the conformance
38
- * kit's conventional tenant (`'conformance'`, the appId the kit's
38
+ * kit's conventional app id (`'conformance'`, the appId the kit's
39
39
  * runner stamps on its subscribe frames) because grading by the kit is
40
40
  * the only deployment context this package has.
41
41
  */
package/dist/render.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * model is no-auth — every caller is the same anonymous identity — so
6
6
  * the per-identity mapping a real deployment configures collapses to
7
7
  * one deployment-wide constant. The value matches the conformance
8
- * kit's conventional tenant (`'conformance'`, the appId the kit's
8
+ * kit's conventional app id (`'conformance'`, the appId the kit's
9
9
  * runner stamps on its subscribe frames) because grading by the kit is
10
10
  * the only deployment context this package has.
11
11
  */
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `ReferenceServer` — the minimal WS live-channel server this package
3
3
  * exports. Honest scope: SPEC §12.2 wire (subscribe incl. the §12.2
4
- * appId-tenancy MUST → APP_MISMATCH), version handshake, the single
4
+ * appId app-scope MUST → APP_MISMATCH), version handshake, the single
5
5
  * action-routing model (action → consume-buffer append → ack with
6
6
  * sequence; undeclared actions AND schema-violating payloads rejected
7
7
  * with CONTRACT_VIOLATION per SPEC §4.6 receipt validation), and
@@ -175,7 +175,7 @@ export class ReferenceServer {
175
175
  // obligation is purely stateful: persist the validated
176
176
  // projection onto the named render (idempotent overwrite). The
177
177
  // first-party server scopes the write through its subscriber
178
- // binding; this no-auth server's tenancy scope is the render
178
+ // binding; this no-auth server's scope is the render
179
179
  // lookup itself — malformed frames and unknown renders drop,
180
180
  // mirroring the action path.
181
181
  const parsed = parseHostContextObservedFrame(frame);
@@ -204,7 +204,7 @@ export class ReferenceServer {
204
204
  // every caller is the same anonymous identity — so the
205
205
  // identity-default collapses to the deployment-level
206
206
  // {@link DEPLOYMENT_DEFAULT_APP_ID}; the resolved value flows
207
- // through the SAME tenancy gate + provision-on-subscribe path a
207
+ // through the SAME app-scope gate + provision-on-subscribe path a
208
208
  // client-supplied appId takes. A PRESENT-but-non-string `appId` is
209
209
  // still a malformed frame and takes the missing-`sessionId`
210
210
  // posture: silently dropped, no error frame, no render
@@ -254,7 +254,7 @@ export class ReferenceServer {
254
254
  }
255
255
  return;
256
256
  }
257
- // SPEC §12.2 tenancy MUST: the subscribe's `appId` MUST match the
257
+ // SPEC §12.2 app-scope MUST: the subscribe's `appId` MUST match the
258
258
  // GguiSession's bound appId or the subscribe fails APP_MISMATCH
259
259
  // (§12.2.3). The code is deliberately distinct from
260
260
  // SESSION_NOT_FOUND — the GguiSession EXISTS, it is reachable only
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ggui-ai/protocol-reference-server",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "Minimal reference implementation of the ggui protocol. Implements exactly enough of the live-channel WebSocket wire to pass the @ggui-ai/protocol-conformance kit. Not a production server — it exists to prove the protocol is vendor-neutral: an independent, from-scratch implementation passing the kit grounds that claim empirically.",
5
5
  "keywords": [
6
6
  "ggui",
@@ -29,14 +29,14 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "ws": "^8.20.1",
32
- "@ggui-ai/protocol": "0.15.0"
32
+ "@ggui-ai/protocol": "0.17.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.0.0",
36
36
  "@types/ws": "^8.5.10",
37
37
  "typescript": "^5.0.0",
38
38
  "vitest": "^3.2.6",
39
- "@ggui-ai/protocol-conformance": "0.15.0"
39
+ "@ggui-ai/protocol-conformance": "0.17.0"
40
40
  },
41
41
  "repository": {
42
42
  "type": "git",