@smooai/smooth-operator 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * AUTO-GENERATED — do not edit by hand.
3
+ *
4
+ * Generated from the JSON Schemas in ../spec by scripts/generate.ts
5
+ * Run `pnpm generate` to regenerate after a schema change.
6
+ */
7
+ /* eslint-disable */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAoB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @smooai/smooth-operator — TypeScript protocol types + native client for the
3
+ * smooth-operator WebSocket protocol.
4
+ *
5
+ * The protocol contract is defined by the language-neutral JSON Schemas in
6
+ * `spec/`. The generated types (`./generated/types.ts`) are committed so consumers
7
+ * don't need the generator; `./types.ts` layers the ergonomic discriminated
8
+ * unions and guards on top.
9
+ */
10
+ export * from './types.js';
11
+ export { SmoothAgentClient, MessageTurn, ProtocolError, TurnTimeoutError, type SmoothAgentClientOptions, } from './client.js';
12
+ export { WebSocketTransport, type Transport, type TransportState, type WebSocketLike, type WebSocketFactory, } from './transport.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EACH,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,KAAK,wBAAwB,GAChC,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACxB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @smooai/smooth-operator — TypeScript protocol types + native client for the
3
+ * smooth-operator WebSocket protocol.
4
+ *
5
+ * The protocol contract is defined by the language-neutral JSON Schemas in
6
+ * `spec/`. The generated types (`./generated/types.ts`) are committed so consumers
7
+ * don't need the generator; `./types.ts` layers the ergonomic discriminated
8
+ * unions and guards on top.
9
+ */
10
+ export * from './types.js';
11
+ export { SmoothAgentClient, MessageTurn, ProtocolError, TurnTimeoutError, } from './client.js';
12
+ export { WebSocketTransport, } from './transport.js';
13
+ // NOTE: the Node-only `ProtocolValidator` (it pulls in `ajv` + `node:fs`) is
14
+ // intentionally NOT part of this default barrel — that keeps the main entry
15
+ // browser-clean so the widget / React bindings / any browser app can import the
16
+ // client without dragging `ajv` into their bundle. Import it from the dedicated
17
+ // subpath instead:
18
+ // import { ProtocolValidator } from '@smooai/smooth-operator/validate';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EACH,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,gBAAgB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,kBAAkB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,mBAAmB;AACnB,0EAA0E"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Transport abstraction for the client.
3
+ *
4
+ * The client is deliberately decoupled from any concrete WebSocket implementation
5
+ * so it can be unit-tested with a mock and run on Node, the browser, or a custom
6
+ * socket. A transport is anything that can send a string frame and surface
7
+ * incoming string frames + lifecycle events.
8
+ */
9
+ export type TransportState = 'connecting' | 'open' | 'closing' | 'closed';
10
+ /** Minimal injectable transport contract. Mirrors the browser `WebSocket` subset. */
11
+ export interface Transport {
12
+ readonly state: TransportState;
13
+ /** Send a serialized frame. Throws / rejects if the transport is not open. */
14
+ send(data: string): void;
15
+ /** Open the connection. Resolves once the transport reaches `open`. */
16
+ connect(): Promise<void>;
17
+ /** Close the connection. */
18
+ close(code?: number, reason?: string): void;
19
+ /** Register a handler for incoming string frames. Returns an unsubscribe fn. */
20
+ onMessage(handler: (data: string) => void): () => void;
21
+ /** Register a handler for transport close. Returns an unsubscribe fn. */
22
+ onClose(handler: (info: {
23
+ code?: number;
24
+ reason?: string;
25
+ }) => void): () => void;
26
+ /** Register a handler for transport-level errors. Returns an unsubscribe fn. */
27
+ onError(handler: (err: unknown) => void): () => void;
28
+ }
29
+ /** The subset of the standard `WebSocket` interface the default transport needs. */
30
+ export interface WebSocketLike {
31
+ readonly readyState: number;
32
+ send(data: string): void;
33
+ close(code?: number, reason?: string): void;
34
+ addEventListener(type: 'open', listener: () => void): void;
35
+ addEventListener(type: 'close', listener: (ev: {
36
+ code?: number;
37
+ reason?: string;
38
+ }) => void): void;
39
+ addEventListener(type: 'error', listener: (ev: unknown) => void): void;
40
+ addEventListener(type: 'message', listener: (ev: {
41
+ data: unknown;
42
+ }) => void): void;
43
+ }
44
+ export type WebSocketFactory = (url: string) => WebSocketLike;
45
+ /**
46
+ * Default transport backed by a `WebSocket`-like object. By default it uses the
47
+ * global `WebSocket`; pass a `factory` to inject one (e.g. the `ws` package on
48
+ * Node, or a mock in tests).
49
+ */
50
+ export declare class WebSocketTransport implements Transport {
51
+ private socket;
52
+ private readonly url;
53
+ private readonly factory;
54
+ private readonly connectTimeout;
55
+ private readonly messageHandlers;
56
+ private readonly closeHandlers;
57
+ private readonly errorHandlers;
58
+ constructor(url: string, factory?: WebSocketFactory, connectTimeout?: number);
59
+ get state(): TransportState;
60
+ connect(): Promise<void>;
61
+ send(data: string): void;
62
+ close(code?: number, reason?: string): void;
63
+ onMessage(handler: (data: string) => void): () => void;
64
+ onClose(handler: (info: {
65
+ code?: number;
66
+ reason?: string;
67
+ }) => void): () => void;
68
+ onError(handler: (err: unknown) => void): () => void;
69
+ }
70
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Transport abstraction for the client.
3
+ *
4
+ * The client is deliberately decoupled from any concrete WebSocket implementation
5
+ * so it can be unit-tested with a mock and run on Node, the browser, or a custom
6
+ * socket. A transport is anything that can send a string frame and surface
7
+ * incoming string frames + lifecycle events.
8
+ */
9
+ const WS_CONNECTING = 0;
10
+ const WS_OPEN = 1;
11
+ const WS_CLOSING = 2;
12
+ /** Default connect timeout (ms) for the WebSocket transport. */
13
+ const DEFAULT_CONNECT_TIMEOUT = 30_000;
14
+ /**
15
+ * Default transport backed by a `WebSocket`-like object. By default it uses the
16
+ * global `WebSocket`; pass a `factory` to inject one (e.g. the `ws` package on
17
+ * Node, or a mock in tests).
18
+ */
19
+ export class WebSocketTransport {
20
+ socket = null;
21
+ url;
22
+ factory;
23
+ connectTimeout;
24
+ messageHandlers = new Set();
25
+ closeHandlers = new Set();
26
+ errorHandlers = new Set();
27
+ constructor(url, factory, connectTimeout = DEFAULT_CONNECT_TIMEOUT) {
28
+ this.url = url;
29
+ this.connectTimeout = connectTimeout;
30
+ if (factory) {
31
+ this.factory = factory;
32
+ }
33
+ else {
34
+ const G = globalThis;
35
+ if (!G.WebSocket) {
36
+ throw new Error('No global WebSocket available; pass a WebSocketFactory to WebSocketTransport.');
37
+ }
38
+ const Ctor = G.WebSocket;
39
+ this.factory = (u) => new Ctor(u);
40
+ }
41
+ }
42
+ get state() {
43
+ if (!this.socket)
44
+ return 'closed';
45
+ switch (this.socket.readyState) {
46
+ case WS_CONNECTING:
47
+ return 'connecting';
48
+ case WS_OPEN:
49
+ return 'open';
50
+ case WS_CLOSING:
51
+ return 'closing';
52
+ default:
53
+ return 'closed';
54
+ }
55
+ }
56
+ connect() {
57
+ if (this.socket && this.socket.readyState === WS_OPEN)
58
+ return Promise.resolve();
59
+ // A prior socket that never reached OPEN (failed/half-open dial, or a closed
60
+ // socket from a previous attempt) would otherwise be orphaned: its listeners
61
+ // stay registered and keep dispatching into the shared handler sets, so a late
62
+ // message/close from the dead socket double-fires. Close it and detach it
63
+ // before dialing a fresh one. (WebSocketLike has no removeEventListener, so we
64
+ // also guard every handler below with an identity check on `this.socket`.)
65
+ if (this.socket && this.socket.readyState !== WS_OPEN) {
66
+ const stale = this.socket;
67
+ this.socket = null;
68
+ try {
69
+ stale.close();
70
+ }
71
+ catch {
72
+ // ignore — best-effort teardown of a half-open socket
73
+ }
74
+ }
75
+ return new Promise((resolve, reject) => {
76
+ const socket = this.factory(this.url);
77
+ this.socket = socket;
78
+ let settled = false;
79
+ const timer = this.connectTimeout > 0
80
+ ? setTimeout(() => {
81
+ if (settled)
82
+ return;
83
+ settled = true;
84
+ // Tear down the half-open socket so it can't leak / fire later.
85
+ if (this.socket === socket)
86
+ this.socket = null;
87
+ try {
88
+ socket.close();
89
+ }
90
+ catch {
91
+ // ignore
92
+ }
93
+ reject(new Error(`WebSocket connect to ${this.url} timed out after ${this.connectTimeout}ms`));
94
+ }, this.connectTimeout)
95
+ : undefined;
96
+ socket.addEventListener('open', () => {
97
+ // Ignore events from a socket we've already replaced/abandoned.
98
+ if (this.socket !== socket)
99
+ return;
100
+ if (settled)
101
+ return;
102
+ settled = true;
103
+ if (timer)
104
+ clearTimeout(timer);
105
+ resolve();
106
+ });
107
+ socket.addEventListener('error', (ev) => {
108
+ if (this.socket !== socket)
109
+ return;
110
+ for (const h of this.errorHandlers)
111
+ h(ev);
112
+ if (!settled && this.state !== 'open') {
113
+ settled = true;
114
+ if (timer)
115
+ clearTimeout(timer);
116
+ if (this.socket === socket)
117
+ this.socket = null;
118
+ // Release the failed socket so it can't linger / fire later.
119
+ try {
120
+ socket.close();
121
+ }
122
+ catch {
123
+ // ignore
124
+ }
125
+ reject(ev instanceof Error ? ev : new Error('WebSocket connection error'));
126
+ }
127
+ });
128
+ socket.addEventListener('close', (ev) => {
129
+ if (this.socket !== socket)
130
+ return;
131
+ if (timer)
132
+ clearTimeout(timer);
133
+ for (const h of this.closeHandlers)
134
+ h({ code: ev.code, reason: ev.reason });
135
+ });
136
+ socket.addEventListener('message', (ev) => {
137
+ if (this.socket !== socket)
138
+ return;
139
+ const data = typeof ev.data === 'string' ? ev.data : String(ev.data);
140
+ for (const h of this.messageHandlers)
141
+ h(data);
142
+ });
143
+ });
144
+ }
145
+ send(data) {
146
+ if (!this.socket || this.socket.readyState !== WS_OPEN) {
147
+ throw new Error(`Cannot send: transport is "${this.state}"`);
148
+ }
149
+ this.socket.send(data);
150
+ }
151
+ close(code, reason) {
152
+ this.socket?.close(code, reason);
153
+ }
154
+ onMessage(handler) {
155
+ this.messageHandlers.add(handler);
156
+ return () => this.messageHandlers.delete(handler);
157
+ }
158
+ onClose(handler) {
159
+ this.closeHandlers.add(handler);
160
+ return () => this.closeHandlers.delete(handler);
161
+ }
162
+ onError(handler) {
163
+ this.errorHandlers.add(handler);
164
+ return () => this.errorHandlers.delete(handler);
165
+ }
166
+ }
167
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Ergonomic, hand-curated types layered on top of the generated ones.
3
+ *
4
+ * The generated types in `./generated/types.ts` are a faithful 1:1 reflection of
5
+ * the JSON Schemas — one interface per schema/`$def`. They are correct but flat:
6
+ * there is no single discriminated union over the wire frames, and the generated
7
+ * `Error` interface collides with the global `Error`.
8
+ *
9
+ * This module fixes both: it re-exports the generated types under stable names and
10
+ * builds the two discriminated unions consumers actually want —
11
+ * `ClientAction` (everything sent client→server, discriminated by `action`) and
12
+ * `ServerEvent` (everything received server→client, discriminated by `type`).
13
+ */
14
+ import type { ConfirmToolActionRequest, CreateConversationSessionRequest, CreateConversationSessionResponse, Error as GeneratedErrorEvent, EventualResponse, GetMessagesRequest, GetMessagesResponse, GetSessionRequest, GetSessionResponse, ImmediateResponse, Keepalive, OtpInvalid, OtpSent, OtpVerificationRequired, OtpVerified, PingRequest, Pong, SendMessageRequest, SendMessageResponse, StreamChunk, StreamToken, VerifyOtpRequest, WriteConfirmationRequired } from './generated/types.js';
15
+ export * from './generated/types.js';
16
+ /**
17
+ * The generated `error` event interface is named `Error`, which shadows the
18
+ * global `Error`. Re-export it under an unambiguous name.
19
+ */
20
+ export type { GeneratedErrorEvent as ErrorEvent };
21
+ /** Every client→server `action` discriminator value. */
22
+ export declare const ACTION_TYPES: readonly ["create_conversation_session", "send_message", "get_session", "get_conversation_messages", "confirm_tool_action", "verify_otp", "ping"];
23
+ export type ActionType = (typeof ACTION_TYPES)[number];
24
+ /** Every server→client `type` discriminator value. */
25
+ export declare const EVENT_TYPES: readonly ["immediate_response", "eventual_response", "stream_chunk", "stream_token", "keepalive", "write_confirmation_required", "otp_verification_required", "otp_sent", "otp_verified", "otp_invalid", "error", "pong"];
26
+ export type EventType = (typeof EVENT_TYPES)[number];
27
+ /**
28
+ * Discriminated union over every client→server action frame, keyed on `action`.
29
+ * Narrow with `action.action === 'send_message'` to get the concrete request type.
30
+ */
31
+ export type ClientAction = CreateConversationSessionRequest | SendMessageRequest | GetSessionRequest | GetMessagesRequest | ConfirmToolActionRequest | VerifyOtpRequest | PingRequest;
32
+ /**
33
+ * Discriminated union over every server→client event frame, keyed on `type`.
34
+ * Narrow with `event.type === 'stream_token'` to get the concrete event type.
35
+ */
36
+ export type ServerEvent = ImmediateResponse | EventualResponse | StreamChunk | StreamToken | Keepalive | WriteConfirmationRequired | OtpVerificationRequired | OtpSent | OtpVerified | OtpInvalid | GeneratedErrorEvent | Pong;
37
+ /** Map from event `type` → the concrete generated event interface. */
38
+ export interface ServerEventByType {
39
+ immediate_response: ImmediateResponse;
40
+ eventual_response: EventualResponse;
41
+ stream_chunk: StreamChunk;
42
+ stream_token: StreamToken;
43
+ keepalive: Keepalive;
44
+ write_confirmation_required: WriteConfirmationRequired;
45
+ otp_verification_required: OtpVerificationRequired;
46
+ otp_sent: OtpSent;
47
+ otp_verified: OtpVerified;
48
+ otp_invalid: OtpInvalid;
49
+ error: GeneratedErrorEvent;
50
+ pong: Pong;
51
+ }
52
+ /** Map from action `action` → the concrete generated request interface. */
53
+ export interface ClientActionByType {
54
+ create_conversation_session: CreateConversationSessionRequest;
55
+ send_message: SendMessageRequest;
56
+ get_session: GetSessionRequest;
57
+ get_conversation_messages: GetMessagesRequest;
58
+ confirm_tool_action: ConfirmToolActionRequest;
59
+ verify_otp: VerifyOtpRequest;
60
+ ping: PingRequest;
61
+ }
62
+ /** True if `frame` is a server event of the given `type`, narrowing accordingly. */
63
+ export declare function isEvent<T extends EventType>(frame: unknown, type: T): frame is ServerEventByType[T];
64
+ /** True if `frame` looks like any server event (has a known `type` discriminator). */
65
+ export declare function isServerEvent(frame: unknown): frame is ServerEvent;
66
+ /** True if `frame` looks like any client action (has a known `action` discriminator). */
67
+ export declare function isClientAction(frame: unknown): frame is ClientAction;
68
+ /**
69
+ * The typed `data` payload returned in the `immediate_response` for each
70
+ * non-streaming action. These are the generated `*Response` shapes, surfaced so
71
+ * the client's typed methods can return them directly.
72
+ */
73
+ export type { CreateConversationSessionResponse, GetSessionResponse, GetMessagesResponse, SendMessageResponse, };
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACR,wBAAwB,EACxB,gCAAgC,EAChC,iCAAiC,EACjC,KAAK,IAAI,mBAAmB,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,WAAW,EACX,IAAI,EACJ,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,sBAAsB,CAAC;AAErC;;;GAGG;AACH,YAAY,EAAE,mBAAmB,IAAI,UAAU,EAAE,CAAC;AAIlD,wDAAwD;AACxD,eAAO,MAAM,YAAY,mJAQf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,sDAAsD;AACtD,eAAO,MAAM,WAAW,2NAad,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAIrD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAClB,gCAAgC,GAChC,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,WAAW,CAAC;AAIlB;;;GAGG;AACH,MAAM,MAAM,WAAW,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,SAAS,GACT,yBAAyB,GACzB,uBAAuB,GACvB,OAAO,GACP,WAAW,GACX,UAAU,GACV,mBAAmB,GACnB,IAAI,CAAC;AAIX,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAC9B,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,2BAA2B,EAAE,yBAAyB,CAAC;IACvD,yBAAyB,EAAE,uBAAuB,CAAC;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;CACd;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IAC/B,2BAA2B,EAAE,gCAAgC,CAAC;IAC9D,YAAY,EAAE,kBAAkB,CAAC;IACjC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;CACrB;AAID,oFAAoF;AACpF,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAEnG;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAQpE;AAID;;;;GAIG;AACH,YAAY,EACR,iCAAiC,EACjC,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACtB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,49 @@
1
+ export * from './generated/types.js';
2
+ // ───────────────────────────── Discriminators ──────────────────────────────
3
+ /** Every client→server `action` discriminator value. */
4
+ export const ACTION_TYPES = [
5
+ 'create_conversation_session',
6
+ 'send_message',
7
+ 'get_session',
8
+ 'get_conversation_messages',
9
+ 'confirm_tool_action',
10
+ 'verify_otp',
11
+ 'ping',
12
+ ];
13
+ /** Every server→client `type` discriminator value. */
14
+ export const EVENT_TYPES = [
15
+ 'immediate_response',
16
+ 'eventual_response',
17
+ 'stream_chunk',
18
+ 'stream_token',
19
+ 'keepalive',
20
+ 'write_confirmation_required',
21
+ 'otp_verification_required',
22
+ 'otp_sent',
23
+ 'otp_verified',
24
+ 'otp_invalid',
25
+ 'error',
26
+ 'pong',
27
+ ];
28
+ // ───────────────────────────── Type guards ─────────────────────────────────
29
+ /** True if `frame` is a server event of the given `type`, narrowing accordingly. */
30
+ export function isEvent(frame, type) {
31
+ return isServerEvent(frame) && frame.type === type;
32
+ }
33
+ /** True if `frame` looks like any server event (has a known `type` discriminator). */
34
+ export function isServerEvent(frame) {
35
+ return (typeof frame === 'object' &&
36
+ frame !== null &&
37
+ 'type' in frame &&
38
+ typeof frame.type === 'string' &&
39
+ EVENT_TYPES.includes(frame.type));
40
+ }
41
+ /** True if `frame` looks like any client action (has a known `action` discriminator). */
42
+ export function isClientAction(frame) {
43
+ return (typeof frame === 'object' &&
44
+ frame !== null &&
45
+ 'action' in frame &&
46
+ typeof frame.action === 'string' &&
47
+ ACTION_TYPES.includes(frame.action));
48
+ }
49
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAuCA,cAAc,sBAAsB,CAAC;AAQrC,8EAA8E;AAE9E,wDAAwD;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,6BAA6B;IAC7B,cAAc;IACd,aAAa;IACb,2BAA2B;IAC3B,qBAAqB;IACrB,YAAY;IACZ,MAAM;CACA,CAAC;AAGX,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,oBAAoB;IACpB,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,WAAW;IACX,6BAA6B;IAC7B,2BAA2B;IAC3B,UAAU;IACV,cAAc;IACd,aAAa;IACb,OAAO;IACP,MAAM;CACA,CAAC;AAmEX,8EAA8E;AAE9E,oFAAoF;AACpF,MAAM,UAAU,OAAO,CAAsB,KAAc,EAAE,IAAO;IAChE,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,KAAc;IACxC,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;QACpD,WAAiC,CAAC,QAAQ,CAAE,KAA0B,CAAC,IAAI,CAAC,CAChF,CAAC;AACN,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,KAAc;IACzC,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAA6B,CAAC,MAAM,KAAK,QAAQ;QACxD,YAAkC,CAAC,QAAQ,CAAE,KAA4B,CAAC,MAAM,CAAC,CACrF,CAAC;AACN,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Runtime validation against the spec JSON Schemas, using ajv.
3
+ *
4
+ * The spec ships draft 2020-12 schemas with internal `$defs` (no cross-file
5
+ * `$ref`s). We register every schema under its `$id` so ajv can resolve any
6
+ * `#/$defs/...` pointer within it, then expose:
7
+ *
8
+ * - `validateAt(schemaRef, instance)` — validate against a spec-relative ref like
9
+ * `events/stream-chunk.schema.json` or `actions/send-message.schema.json#/$defs/Request`
10
+ * (the exact form used by `conformance/fixtures.json`).
11
+ * - `validateEvent` / `validateAction` — convenience validators that pick the
12
+ * right schema from a frame's discriminator and validate it.
13
+ *
14
+ * Schemas are loaded from the spec directory on disk. This module is Node-only
15
+ * (it reads files); it is intended for build/test/server use, not the browser
16
+ * bundle. The wire client (`client.ts`) does not import it — validation is opt-in.
17
+ */
18
+ import { type ErrorObject as AjvError } from 'ajv/dist/2020.js';
19
+ import type { ActionType, EventType } from './types.js';
20
+ /** Default location of the spec dir relative to this source file (../../spec). */
21
+ export declare const DEFAULT_SPEC_DIR: string;
22
+ export interface ValidationResult {
23
+ valid: boolean;
24
+ errors: AjvError[];
25
+ }
26
+ export declare class ProtocolValidator {
27
+ private readonly ajv;
28
+ /** spec-relative file path → the schema's `$id` (used to build `$ref`-able URIs). */
29
+ private readonly fileToId;
30
+ private readonly cache;
31
+ private constructor();
32
+ /** Load every `*.schema.json` under `specDir` and register it with ajv. */
33
+ static load(specDir?: string): Promise<ProtocolValidator>;
34
+ /**
35
+ * Validate `instance` against a spec-relative schema ref. The ref is the form
36
+ * used in `fixtures.json`: a file path, optionally with a JSON-pointer fragment
37
+ * into the schema's `$defs` (e.g. `actions/ping.schema.json#/$defs/Request`).
38
+ */
39
+ validateAt(schemaRef: string, instance: unknown): ValidationResult;
40
+ /** Validate a server event frame by selecting the schema from its `type`. */
41
+ validateEvent(frame: {
42
+ type: EventType;
43
+ } & Record<string, unknown>): ValidationResult;
44
+ /** Validate a client action frame by selecting the schema from its `action`. */
45
+ validateAction(frame: {
46
+ action: ActionType;
47
+ } & Record<string, unknown>): ValidationResult;
48
+ private compile;
49
+ }
50
+ /** Render ajv errors into a single human-readable string. */
51
+ export declare function formatErrors(errors: AjvError[]): string;
52
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAiB,EAA8C,KAAK,WAAW,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAatH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIxD,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,QAAsC,CAAC;AA6BpE,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAE7D,OAAO;IAIP,2EAA2E;WAC9D,IAAI,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuBjF;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,gBAAgB;IAMlE,6EAA6E;IAC7E,aAAa,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;IAQrF,gFAAgF;IAChF,cAAc,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;IAQzF,OAAO,CAAC,OAAO;CAgBlB;AAMD,6DAA6D;AAC7D,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAEvD"}