@ouispec/agent-realtime 0.10.0 → 0.13.1

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
@@ -1,10 +1,10 @@
1
1
  # @ouispec/agent-realtime
2
2
 
3
- The realtime server for agent turns and UI actions. One implementation serves every product (ADR-0227). It does six things:
3
+ The realtime server for agent turns and UI actions. One implementation serves every product. It does six things:
4
4
 
5
5
  - **Carries events.** Turn events, UI action dispatches and the product's own events reach rooms through the internal emit API.
6
- - **Holds UI action results.** It keeps each browser's answer to a UI action for the agent worker that asked (ADR-0209). Answers are shared across instances through Redis.
7
- - **Keeps approvals.** An irreversible action runs only on an approval the user gave, bound to the exact call by a single-use token (ADR-0228).
6
+ - **Holds UI action results.** It keeps each browser's answer to a UI action for the agent worker that asked. Answers are shared across instances through Redis.
7
+ - **Keeps approvals.** An irreversible action runs only on an approval the user gave, bound to the exact call by a single-use token.
8
8
  - **Signs and checks room tokens.** A room token admits one user to one room.
9
9
  - **Checks client events.** It accepts only the client events it declares, and puts each one through a chain: rate limit, size cap, schema, then authorization against the verified identity.
10
10
  - **Restricts relays.** A client can relay only allow-listed events, and only into rooms its socket has joined.
@@ -42,7 +42,7 @@ The browser then joins with `socket.emit('subscribe', { rooms: [room], tokens: {
42
42
 
43
43
  ## Declared events
44
44
 
45
- Pass `events` and the server follows your declarations (ADR-0227 §2.4):
45
+ Pass `events` and the server follows your declarations:
46
46
 
47
47
  - **Emit.** `/api/emit` sends only a declared event, with a payload its schema accepts, into rooms it is declared for. Anything else is refused with `400 { error }` and logged as `Emit refused` with the event, the rooms and the reason. A declared event is never broadcast.
48
48
  - **Relay.** A client relays only an event you list in `relay` that is declared as a `notice`. Its declaration decides the rooms and the data it may carry. Listing a completion, failure, progress or turn event fails at start-up.
@@ -70,7 +70,7 @@ All of them require the `x-api-key` header.
70
70
  | `GET /internal/events/settlements/:kind/:id?waitMs=` | How a job of a declared kind ended: `{ kind, role, event, id, payload }`, with `role` `completion` or `failure`. `204` means not yet; `400` an undeclared kind; `404` a server without `events`. A wait lasts at most 25 s. |
71
71
  | `GET /health` | Returns `200` with connection and pending-wait counts. No key needed. |
72
72
 
73
- ## Approvals (ADR-0228)
73
+ ## Approvals
74
74
 
75
75
  1. The worker stops the turn at a call that needs approval, stores it with `POST /internal/approvals`, and emits `agent:approval_required` with the preview.
76
76
  2. The user clicks the approval card. Their socket sends `approval:decide { approvalId, decision }`, a declared client event. The store checks that the socket's verified user is the approval's own. An approval's token is answered only to that socket, in the ack: `{ ok: true, decision: 'approve', token, argsHash, expiresAt }`.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `approval:decide` (ADR-0228 §2.2.3): the user's click on the approval card,
2
+ * `approval:decide`: the user's click on the approval card,
3
3
  * on their own authenticated socket. The decider is the socket's verified
4
4
  * identity, never one the payload names, and an approval's token is answered
5
5
  * only to this socket, in the event's ack.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The approval store's internal endpoints (ADR-0228 §2.4). Each requires the
2
+ * The approval store's internal endpoints. Each requires the
3
3
  * internal key: they are for the product's agent worker and a conversation
4
4
  * engine, never a browser. A browser decides only through `approval:decide`
5
5
  * on its own authenticated socket.
@@ -11,7 +11,7 @@
11
11
  * POST /internal/approvals/:id/settle whether it expired undecided, claimed for one turn to store; with
12
12
  * `confirm`, that it has been stored (worker, at the start of a later turn);
13
13
  * with `expire`, expire it now, saying why (host, when a new message
14
- * arrives; worker, when the turn that asked is stopped: ADR-0252 §2.6)
14
+ * arrives; worker, when the turn that asked is stopped)
15
15
  */
16
16
  import { Router } from 'express';
17
17
  import type { ApprovalStore } from './store.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The approval store's internal endpoints (ADR-0228 §2.4). Each requires the
2
+ * The approval store's internal endpoints. Each requires the
3
3
  * internal key: they are for the product's agent worker and a conversation
4
4
  * engine, never a browser. A browser decides only through `approval:decide`
5
5
  * on its own authenticated socket.
@@ -11,7 +11,7 @@
11
11
  * POST /internal/approvals/:id/settle whether it expired undecided, claimed for one turn to store; with
12
12
  * `confirm`, that it has been stored (worker, at the start of a later turn);
13
13
  * with `expire`, expire it now, saying why (host, when a new message
14
- * arrives; worker, when the turn that asked is stopped: ADR-0252 §2.6)
14
+ * arrives; worker, when the turn that asked is stopped)
15
15
  */
16
16
  import { Router } from 'express';
17
17
  import { APPROVAL_WITHDRAW_REASONS, } from '@ouispec/agent-core';
@@ -37,7 +37,7 @@ export interface ApprovalStore {
37
37
  /** The claimed expiry is stored: the claim no longer lapses. False when the store does not know the approval as this owner's. */
38
38
  confirmExpirySettled(approvalId: string, owner: ApprovalOwner): Promise<boolean>;
39
39
  /**
40
- * Expire an approval now instead of at its time limit (ADR-0252 §2.6): the
40
+ * Expire an approval now instead of at its time limit: the
41
41
  * person sent a new message while its card waited, or the turn that asked
42
42
  * was stopped. One script, with decide and redeem, so it cannot interleave
43
43
  * with either: a pending approval, or an approved one not yet used, is gone
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The approval store (ADR-0228 §2.4), beside the UI action result store and on
2
+ * The approval store, beside the UI action result store and on
3
3
  * the same Redis, so every realtime instance sees every approval:
4
4
  *
5
5
  * approval:{id} → the pending call as the worker stored it (JSON,
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The approval token (ADR-0228 §2.3): a compact JWS, HS256, signed with the
3
- * environment's approval key. It is ADR-0210's `commit_token`: an engine in
2
+ * The approval token: a compact JWS, HS256, signed with the
3
+ * environment's approval key. It is the conversation engine's `commit_token`: an engine in
4
4
  * another language verifies it with the same key.
5
5
  *
6
6
  * Only the approval store signs one, and only when the approval's own user
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The client events every realtime server accepts: joining and leaving rooms,
3
- * relaying an allow-listed event, and answering a UI action (ADR-0209). A
3
+ * relaying an allow-listed event, and answering a UI action. A
4
4
  * product declares its own events beside these (`config.clientEvents`).
5
5
  */
6
6
  import Joi from 'joi';
@@ -125,7 +125,7 @@ export function createBuiltinClientEvents(deps) {
125
125
  ack?.({ ok: true });
126
126
  },
127
127
  });
128
- // ─── OUI action result (ADR-0209) ──────────────────────────────────────────
128
+ // ─── OUI action result ──────────────────────────────────────────
129
129
  const ouiActionResult = defineClientEvent({
130
130
  name: OUI_WIRE.result,
131
131
  schema: Joi.object({
@@ -1 +1 @@
1
- {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/client-events/builtin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/client-events/builtin.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * front of it. A bare `socket.on(...)` has none of that, and trusts its
7
7
  * payload. That is how a `relay` handler once sent whatever event a client
8
8
  * named to whatever room it named, so any signed-in user could send
9
- * `oui:dispatch` into another account's tabs (ADR-0227, W0).
9
+ * `oui:dispatch` into another account's tabs.
10
10
  *
11
11
  * Every client event goes through one chain, the socket counterpart of a
12
12
  * route module:
package/dist/config.js CHANGED
@@ -4,7 +4,7 @@ import { MIN_APPROVAL_KEY_LENGTH } from './approvals/token.js';
4
4
  /**
5
5
  * Every seam the server cannot run without, and what it is for. A missing
6
6
  * one fails start-up with this text: a default here would silently run some
7
- * other product's value (ADR-0227 §2.2).
7
+ * other product's value.
8
8
  */
9
9
  const REQUIRED = [
10
10
  ['auth', (c) => typeof c.auth?.verify === 'function', "an AuthAdapter that verifies your users' tokens"],
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Job settlements, kept for the workers that wait on them (W9).
2
+ * Job settlements, kept for the workers that wait on them.
3
3
  *
4
4
  * Every declared completion or failure the server emits settles one job: the
5
5
  * job of its kind whose id is in its correlation field. The first is kept, so
@@ -60,7 +60,7 @@ export declare function roomTokenRouter(deps: RouteDeps): Router;
60
60
  /**
61
61
  * GET /internal/oui/action-results/:requestId?userId=&waitMs=&final=1
62
62
  *
63
- * The client's answer to a UI action request (ADR-0209). Waits up to `waitMs`
63
+ * The client's answer to a UI action request. Waits up to `waitMs`
64
64
  * (capped at 25 s) for it to arrive. With `final=1`, the final answer: for an
65
65
  * async action, the one sent when its work is done or has failed, never its
66
66
  * acknowledgment; for any other action, its one answer.
@@ -183,7 +183,7 @@ export function roomTokenRouter(deps) {
183
183
  /**
184
184
  * GET /internal/oui/action-results/:requestId?userId=&waitMs=&final=1
185
185
  *
186
- * The client's answer to a UI action request (ADR-0209). Waits up to `waitMs`
186
+ * The client's answer to a UI action request. Waits up to `waitMs`
187
187
  * (capped at 25 s) for it to arrive. With `final=1`, the final answer: for an
188
188
  * async action, the one sent when its work is done or has failed, never its
189
189
  * acknowledgment; for any other action, its one answer.
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * The product supplies: an auth verifier, a room policy, the internal key, the
6
6
  * room-token secret, the approval signing key, Redis and its CORS origins,
7
- * and optionally its event declarations (ADR-0227 §2.2).
7
+ * and optionally its event declarations.
8
8
  * The server handles: declared client events, room tokens, the UI action
9
9
  * result store, the approval store, the emit API (held to the declarations),
10
10
  * job settlements, and fan-out across instances.
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * The product supplies: an auth verifier, a room policy, the internal key, the
6
6
  * room-token secret, the approval signing key, Redis and its CORS origins,
7
- * and optionally its event declarations (ADR-0227 §2.2).
7
+ * and optionally its event declarations.
8
8
  * The server handles: declared client events, room tokens, the UI action
9
9
  * result store, the approval store, the emit API (held to the declarations),
10
10
  * job settlements, and fan-out across instances.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * OUI action results, held for the agent worker that asked (ADR-0209 D2).
2
+ * OUI action results, held for the agent worker that asked.
3
3
  *
4
4
  * The worker sends a UI action to the turn's room and then waits here for the
5
5
  * client's answer. The answer arrives on whichever realtime instance holds the
package/dist/server.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * The realtime server: one implementation for every product (ADR-0227 §2.1).
2
+ * The realtime server: one implementation for every product.
3
3
  *
4
4
  * It carries turn events and the product's declared events to rooms, holds
5
- * UI action results for the agent worker (ADR-0209), keeps the approvals an
6
- * irreversible action waits on (ADR-0228), signs and checks room tokens, and
5
+ * UI action results for the agent worker, keeps the approvals an
6
+ * irreversible action waits on, signs and checks room tokens, and
7
7
  * accepts only declared client events. The product supplies the
8
8
  * seams (types.ts); nothing here belongs to one product.
9
9
  */
@@ -24,11 +24,11 @@ export interface RealtimeServerInstance {
24
24
  roomTokens: RoomTokenSigner;
25
25
  /** The UI action result store. */
26
26
  results: OUIResultStore;
27
- /** The approval store (ADR-0228). */
27
+ /** The approval store. */
28
28
  approvals: ApprovalStore;
29
29
  /** Job settlements, when the server has event declarations. */
30
30
  settlements: SettlementStore | null;
31
- /** Stop requests for turns (ADR-0252). */
31
+ /** Stop requests for turns. */
32
32
  stops: TurnStopStore;
33
33
  close(): Promise<void>;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKvD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAM3E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAWtF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,eAAe,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,qCAAqC;IACrC,SAAS,EAAE,aAAa,CAAC;IACzB,+DAA+D;IAC/D,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,0CAA0C;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsIxG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKvD,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAM3E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAWtF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,eAAe,CAAC;IAC5B,kCAAkC;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,0BAA0B;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,+DAA+D;IAC/D,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,+BAA+B;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsIxG"}
package/dist/server.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * The realtime server: one implementation for every product (ADR-0227 §2.1).
2
+ * The realtime server: one implementation for every product.
3
3
  *
4
4
  * It carries turn events and the product's declared events to rooms, holds
5
- * UI action results for the agent worker (ADR-0209), keeps the approvals an
6
- * irreversible action waits on (ADR-0228), signs and checks room tokens, and
5
+ * UI action results for the agent worker, keeps the approvals an
6
+ * irreversible action waits on, signs and checks room tokens, and
7
7
  * accepts only declared client events. The product supplies the
8
8
  * seams (types.ts); nothing here belongs to one product.
9
9
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agent:turn_stop` (ADR-0252 §2.1): the person's Stop, on their own
2
+ * `agent:turn_stop`: the person's Stop, on their own
3
3
  * authenticated socket.
4
4
  *
5
5
  * What makes a stop the owner's is the key it is kept under, not the room.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The worker's and the host's side of a turn stop (ADR-0252 §2.1). Both need
2
+ * The worker's and the host's side of a turn stop. Both need
3
3
  * the internal API key.
4
4
  *
5
5
  * POST /internal/turns/:turnId/stop { userId, reason }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The worker's and the host's side of a turn stop (ADR-0252 §2.1). Both need
2
+ * The worker's and the host's side of a turn stop. Both need
3
3
  * the internal API key.
4
4
  *
5
5
  * POST /internal/turns/:turnId/stop { userId, reason }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Stop requests for agent turns, held for the worker that runs the turn
3
- * (ADR-0252 §2.1).
3
+ *.
4
4
  *
5
5
  * The worker has no socket. A stop is written here, by the user's own socket
6
6
  * or by the host's API, and the worker asks for it for as long as its turn
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Stop requests for agent turns, held for the worker that runs the turn
3
- * (ADR-0252 §2.1).
3
+ *.
4
4
  *
5
5
  * The worker has no socket. A stop is written here, by the user's own socket
6
6
  * or by the host's API, and the worker asks for it for as long as its turn
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The realtime server's seams (ADR-0227 §2.2). The product supplies every one;
2
+ * The realtime server's seams. The product supplies every one;
3
3
  * the server refuses to start, naming the seam, when one is missing. None has
4
4
  * a default taken from any one product.
5
5
  */
@@ -27,7 +27,7 @@ export interface AuthResult {
27
27
  * A room that `requiresToken` is joined only with a room token minted for this
28
28
  * user and this exact room (`POST /internal/room-token`). The product decides
29
29
  * who gets one, by running the resource's own read authorization before it
30
- * asks for the token — for Closure, studio-api's `POST /realtime/room-tokens`.
30
+ * asks for the token.
31
31
  * The server only signs and checks.
32
32
  */
33
33
  export interface RoomPolicy {
@@ -79,7 +79,7 @@ export interface RoomTokenConfig {
79
79
  }
80
80
  export interface ApprovalsConfig {
81
81
  /**
82
- * Signs approval tokens (HS256, ADR-0228 §2.3). At least 32 characters, one
82
+ * Signs approval tokens (HS256). At least 32 characters, one
83
83
  * per environment, from the product's secret store. It is neither the
84
84
  * internal key nor the room-token secret: an engine that verifies approval
85
85
  * tokens holds this key and nothing else.
@@ -93,7 +93,7 @@ export interface RealtimeServerConfig {
93
93
  /** Guards every internal endpoint: emit, room tokens, UI action results, approvals. */
94
94
  internalApiKey: string;
95
95
  roomTokens: RoomTokenConfig;
96
- /** The approval store: an irreversible action runs only on an approval the user gave (ADR-0228). */
96
+ /** The approval store: an irreversible action runs only on an approval the user gave. */
97
97
  approvals: ApprovalsConfig;
98
98
  /**
99
99
  * UI action results and room fan-out across instances meet here, so a
@@ -106,7 +106,7 @@ export interface RealtimeServerConfig {
106
106
  port: number;
107
107
  /**
108
108
  * The product's event declarations, with the platform's own
109
- * (`createEventCatalog(PLATFORM_EVENTS, productEvents)`, ADR-0227 §2.4).
109
+ * (`createEventCatalog(PLATFORM_EVENTS, productEvents)`).
110
110
  * Given them, `/api/emit` refuses an undeclared event, a payload its schema
111
111
  * rejects and a room it is not declared for; a client relays only a
112
112
  * declared notice; and every completion or failure is kept as its job's
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,sFAAsF;IACtF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,6FAA6F;IAC7F,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;IAC1C,2FAA2F;IAC3F,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,iEAAiE;IACjE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CAClD;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC/G;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,eAAe,CAAC;IAC5B,oGAAoG;IACpG,SAAS,EAAE,eAAe,CAAC;IAC3B;;;OAGG;IACH,KAAK,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5C;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,gFAAgF;IAChF,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ouispec/agent-realtime",
3
- "version": "0.10.0",
3
+ "version": "0.13.1",
4
4
  "description": "Realtime server for agent turns and UI actions — declared client events, room tokens, the UI action result store, the approval store, declared product events and their job settlements, Redis fan-out; the product supplies auth, room policy and keys",
5
5
  "homepage": "https://github.com/wesreid/oui/tree/main/packages/agent-realtime#readme",
6
6
  "bugs": {
@@ -37,9 +37,9 @@
37
37
  "ioredis": "^5.6.0",
38
38
  "joi": "^17.13.3",
39
39
  "socket.io": "^4.8.0",
40
- "@ouispec/agent-core": "^0.10.0",
41
- "oui-spec": "^0.11.0",
42
- "@ouispec/agent-events": "^0.8.0"
40
+ "@ouispec/agent-core": "^0.13.1",
41
+ "@ouispec/agent-events": "^0.13.1",
42
+ "oui-spec": "^0.11.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/cors": "^2.8.0",