@ouispec/agent-realtime 0.9.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 +5 -5
- package/dist/approvals/client-event.js +1 -1
- package/dist/approvals/routes.d.ts +2 -2
- package/dist/approvals/routes.js +2 -2
- package/dist/approvals/store.d.ts +1 -1
- package/dist/approvals/store.js +1 -1
- package/dist/approvals/token.js +2 -2
- package/dist/client-events/builtin.js +2 -2
- package/dist/client-events/builtin.js.map +1 -1
- package/dist/client-events/chain.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/events/settlements.d.ts +1 -1
- package/dist/http/routes.d.ts +1 -1
- package/dist/http/routes.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/oui/results.d.ts +1 -1
- package/dist/server.d.ts +5 -5
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -3
- package/dist/turns/client-event.js +1 -1
- package/dist/turns/routes.d.ts +1 -1
- package/dist/turns/routes.js +1 -1
- package/dist/turns/stops.d.ts +1 -1
- package/dist/turns/stops.js +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
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
|
|
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
|
|
7
|
-
- **Keeps approvals.** An irreversible action runs only on an approval the user gave, bound to the exact call by a single-use token
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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';
|
package/dist/approvals/routes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The approval store's internal endpoints
|
|
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
|
|
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
|
|
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
|
package/dist/approvals/store.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The approval store
|
|
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,
|
package/dist/approvals/token.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The approval token
|
|
3
|
-
* environment's approval key. It is
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
package/dist/http/routes.d.ts
CHANGED
|
@@ -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
|
|
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.
|
package/dist/http/routes.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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/oui/results.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OUI action results, held for the agent worker that asked
|
|
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
|
|
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
|
|
6
|
-
* irreversible action waits on
|
|
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
|
|
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
|
|
31
|
+
/** Stop requests for turns. */
|
|
32
32
|
stops: TurnStopStore;
|
|
33
33
|
close(): Promise<void>;
|
|
34
34
|
}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
6
|
-
* irreversible action waits on
|
|
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
|
*/
|
package/dist/turns/routes.d.ts
CHANGED
package/dist/turns/routes.js
CHANGED
package/dist/turns/stops.d.ts
CHANGED
package/dist/turns/stops.js
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The realtime server's seams
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
41
|
-
"@ouispec/agent-events": "^0.
|
|
42
|
-
"oui-spec": "^0.11.
|
|
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",
|