@soulcraft/sdk 2.1.0 → 2.2.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.
@@ -50,7 +50,9 @@ export { createCapabilityToken, verifyCapabilityToken } from '../modules/brainy/
50
50
  export type { CreateCapabilityTokenOptions, CapabilityTokenClaims } from '../modules/brainy/auth.js';
51
51
  export { LocalTransport } from '../transports/local.js';
52
52
  export { createNamespaceRouter } from './namespace-router.js';
53
- export type { NamespaceRouterConfig, NamespaceRouter, NamespaceProvider, NamespaceProviders, RequestContext, UserContext, HandlerContext, DispatchResult, } from './namespace-router.js';
53
+ export type { NamespaceRouterConfig, NamespaceRouter, NamespaceProvider, NamespaceProviders, RequestContext, UserContext, HandlerContext, PreAuthenticatedContext, DispatchResult, } from './namespace-router.js';
54
+ export { createNamespaceWsHandler } from './ws-handler.js';
55
+ export type { NamespaceWsHandlerConfig, NamespaceWsHandler, WsSession, } from './ws-handler.js';
54
56
  export { createSoulcraftRouter } from './hono-router.js';
55
57
  export type { SoulcraftRouterConfig } from './hono-router.js';
56
58
  export { createAnnotationsHandler, createAuthHandler, createChatHandler, createCertificationHandler, createCollectionsHandler, createCommerceHandler, createConfigHandler, createExportHandler, createFormatsHandler, createGraphHandler, createImportHandler, createMediaHandler, createProjectHandler, createPublishHandler, createPulseHandler, createRealtimeHandler, createSearchHandler, createSessionHandler, createSettingsHandler, createWorkspaceHandler, } from './handlers/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,8 @@ export { createCapabilityToken, verifyCapabilityToken } from '../modules/brainy/
48
48
  export { LocalTransport } from '../transports/local.js';
49
49
  // ── Namespace router ─────────────────────────────────────────────────────────
50
50
  export { createNamespaceRouter } from './namespace-router.js';
51
+ // ── Namespace WebSocket handler ─────────────────────────────────────────────
52
+ export { createNamespaceWsHandler } from './ws-handler.js';
51
53
  // ── Hono router factory ─────────────────────────────────────────────────────
52
54
  export { createSoulcraftRouter } from './hono-router.js';
53
55
  // ── Namespace handler factories ──────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAM3B,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,eAAe,GAChB,MAAM,oBAAoB,CAAA;AA4C3B,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,GACd,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AAM/E,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AAEzC,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AAMpC,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAK7E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAY7D,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AA0D5B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAM3B,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,eAAe,GAChB,MAAM,oBAAoB,CAAA;AA4C3B,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,GACd,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AAM/E,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AAEzC,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AAMpC,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAK7E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAa7D,+EAA+E;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO1D,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AA0D5B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAA"}
@@ -160,6 +160,21 @@ export type DispatchResult = {
160
160
  id: string;
161
161
  iterable: AsyncIterable<unknown>;
162
162
  };
163
+ /**
164
+ * Pre-authenticated context for transports (like WebSocket) that authenticate
165
+ * once at connection time, not per-message.
166
+ *
167
+ * When passed to `dispatch()`, the router skips the `authenticate()` step and
168
+ * uses the provided user directly.
169
+ */
170
+ export interface PreAuthenticatedContext {
171
+ /** The already-verified user. */
172
+ user: UserContext;
173
+ /** Workspace ID for this request. */
174
+ workspaceId: string;
175
+ /** The raw HTTP request (may be synthetic for WebSocket). */
176
+ request: Request;
177
+ }
163
178
  /**
164
179
  * The namespace router returned by {@link createNamespaceRouter}.
165
180
  */
@@ -170,11 +185,15 @@ export interface NamespaceRouter {
170
185
  * Handles authentication, authorization, namespace resolution, and error
171
186
  * wrapping. Returns either a single response or a stream.
172
187
  *
188
+ * When `requestOrCtx` is a `PreAuthenticatedContext`, the router skips
189
+ * authentication and uses the provided user directly. This is the path
190
+ * used by the WebSocket handler, which authenticates once at upgrade time.
191
+ *
173
192
  * @param rpc - The parsed RPC request envelope.
174
- * @param request - The raw HTTP request for auth/header inspection.
193
+ * @param requestOrCtx - Raw HTTP request OR pre-authenticated context.
175
194
  * @returns A response or stream result.
176
195
  */
177
- dispatch(rpc: SoulcraftRPC, request: Request): Promise<DispatchResult>;
196
+ dispatch(rpc: SoulcraftRPC, requestOrCtx: Request | PreAuthenticatedContext): Promise<DispatchResult>;
178
197
  }
179
198
  /**
180
199
  * Creates a namespace-aware RPC router that dispatches to Brainy or provider
@@ -1 +1 @@
1
- {"version":3,"file":"namespace-router.d.ts","sourceRoot":"","sources":["../../src/server/namespace-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAErB,MAAM,WAAW,CAAA;AAMlB;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,oEAAoE;IACpE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAMD;;;;;;;GAOG;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAA;AAErF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAM9E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAEtD;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAElE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,CACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EAAE,EACf,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAE/B;;;OAGG;IACH,SAAS,EAAE,kBAAkB,CAAA;IAE7B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC;AAMD,gDAAgD;AAChD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAA;AAMpE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CACvE;AAuBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAqGpF"}
1
+ {"version":3,"file":"namespace-router.d.ts","sourceRoot":"","sources":["../../src/server/namespace-router.ts"],"names":[],"mappings":"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"}
@@ -82,23 +82,36 @@ function isBrainyNamespace(ns) {
82
82
  export function createNamespaceRouter(config) {
83
83
  const { resolveBrain, authenticate, authorize, providers, blockedBrainyMethods = [], } = config;
84
84
  return {
85
- async dispatch(rpc, request) {
85
+ async dispatch(rpc, requestOrCtx) {
86
86
  const { id, ns, method, args, stream } = rpc;
87
+ // Determine if caller provided a pre-authenticated context or a raw Request.
88
+ const isPreAuth = !(requestOrCtx instanceof Request) && 'user' in requestOrCtx;
89
+ const request = isPreAuth
90
+ ? requestOrCtx.request
91
+ : requestOrCtx;
87
92
  // ── Extract workspace ID ──────────────────────────────────────────
88
- const workspaceId = _extractWorkspaceId(request);
93
+ const workspaceId = isPreAuth
94
+ ? requestOrCtx.workspaceId
95
+ : _extractWorkspaceId(request);
89
96
  // ── Build request context ──────────────────────────────────────────
90
- const ctx = { request, user: null, workspaceId };
91
- // ── Authenticate ──────────────────────────────────────────────────
92
- try {
93
- const user = await authenticate(ctx);
94
- if (!user) {
95
- return _errorResponse(id, 401, 'UNAUTHORIZED', 'Authentication required');
97
+ const ctx = {
98
+ request,
99
+ user: isPreAuth ? requestOrCtx.user : null,
100
+ workspaceId,
101
+ };
102
+ // ── Authenticate (skipped for pre-authenticated contexts) ─────────
103
+ if (!isPreAuth) {
104
+ try {
105
+ const user = await authenticate(ctx);
106
+ if (!user) {
107
+ return _errorResponse(id, 401, 'UNAUTHORIZED', 'Authentication required');
108
+ }
109
+ ctx.user = user;
110
+ }
111
+ catch (err) {
112
+ console.error('[SDK/router] authenticate threw:', err);
113
+ return _errorResponse(id, 401, 'AUTH_ERROR', 'Authentication failed');
96
114
  }
97
- ctx.user = user;
98
- }
99
- catch (err) {
100
- console.error('[SDK/router] authenticate threw:', err);
101
- return _errorResponse(id, 401, 'AUTH_ERROR', 'Authentication failed');
102
115
  }
103
116
  // ── Authorize ─────────────────────────────────────────────────────
104
117
  if (authorize) {
@@ -1 +1 @@
1
- {"version":3,"file":"namespace-router.js","sourceRoot":"","sources":["../../src/server/namespace-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namespace-router.js","sourceRoot":"","sources":["../../src/server/namespace-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAqMvD,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF,mEAAmE;AACnE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAE9E;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,EAAU;IACnC,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAC9D,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,SAAS,EACT,oBAAoB,GAAG,EAAE,GAC1B,GAAG,MAAM,CAAA;IAEV,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,GAAiB,EAAE,YAA+C;YAC/E,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;YAE5C,6EAA6E;YAC7E,MAAM,SAAS,GAAG,CAAC,CAAC,YAAY,YAAY,OAAO,CAAC,IAAI,MAAM,IAAI,YAAY,CAAA;YAC9E,MAAM,OAAO,GAAY,SAAS;gBAChC,CAAC,CAAE,YAAwC,CAAC,OAAO;gBACnD,CAAC,CAAE,YAAwB,CAAA;YAE7B,qEAAqE;YACrE,MAAM,WAAW,GAAG,SAAS;gBAC3B,CAAC,CAAE,YAAwC,CAAC,WAAW;gBACvD,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAEhC,sEAAsE;YACtE,MAAM,GAAG,GAAmB;gBAC1B,OAAO;gBACP,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,YAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBACvE,WAAW;aACZ,CAAA;YAED,qEAAqE;YACrE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;oBACpC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAA;oBAC3E,CAAC;oBACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;gBACjB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;oBACtD,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAA;gBACvE,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAK,CAAC,CAAA;oBAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;oBAChF,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;oBACnD,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,4BAA4B,CAAC,CAAA;gBAC3E,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAA;YACvF,CAAC;YAED,sEAAsE;YACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YAC9F,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,MAAM,kBAAkB,CAAC,CAAA;YAC/F,CAAC;YAED,gDAAgD;YAChD,IAAI,KAAa,CAAA;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,GAAG,CAAC,CAAA;gBAC5E,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAA;YACtF,CAAC;YAED,MAAM,UAAU,GAAmB;gBACjC,IAAI,EAAE,GAAG,CAAC,IAAK;gBACf,WAAW;gBACX,KAAK;gBACL,OAAO;aACR,CAAA;YAED,IAAI,CAAC;gBACH,kEAAkE;gBAClE,mDAAmD;gBACnD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAA;gBAEnD,iEAAiE;gBACjE,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAK,MAAiB,EAAE,CAAC;oBACzG,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,EAAE;wBACF,QAAQ,EAAE,MAAgC;qBAC3C,CAAA;gBACH,CAAC;gBAED,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;iBACzB,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChE,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,MAAM,SAAS,EAAE,GAAG,CAAC,CAAA;gBACzD,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,UAAU,eAAe,CAC5B,EAAU,EACV,EAAU,EACV,MAAc,EACd,IAAe,EACf,GAAmB,EACnB,YAAsD,EACtD,cAAwB;IAExB,iDAAiD;IACjD,wCAAwC;IACxC,qDAAqD;IACrD,0CAA0C;IAC1C,MAAM,KAAK,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAE7D,kBAAkB;IAClB,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7C,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,eAAe,4BAA4B,CAAC,CAAA;IACrG,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;QACtD,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAA;IACtF,CAAC;IAED,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QAC1D,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACzB,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChE,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,EAAU,EACV,OAAe,EACf,IAAY,EACZ,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;KAC3C,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACxD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * @module server/ws-handler
3
+ * @description Namespace-aware WebSocket handler for the Soulcraft SDK.
4
+ *
5
+ * Provides `createNamespaceWsHandler()` — a server-side handler that processes
6
+ * WebSocket messages through the same namespace router used by HTTP RPC, plus
7
+ * Y.js collaborative editing and real-time change push.
8
+ *
9
+ * ## Wire protocol
10
+ *
11
+ * All frames are binary MessagePack. The protocol supports four message categories:
12
+ *
13
+ * 1. **Namespace RPC** — `{ id, ns, method, args }` dispatched to the namespace router
14
+ * 2. **Streaming RPC** — `{ id, ns, method, args, stream: true }` returns chunked responses
15
+ * 3. **Y.js collab** — `{ type: 'y-sync'|'y-update'|'y-awareness', ... }` for CRDT editing
16
+ * 4. **Change push** — `{ type: 'change', ... }` broadcast from server on data mutations
17
+ *
18
+ * ## Auth
19
+ *
20
+ * Authentication happens once during `handleUpgrade()`. The resulting `WsSession`
21
+ * carries the authenticated user context. Subsequent messages are dispatched with
22
+ * pre-authenticated context — no per-message auth overhead.
23
+ *
24
+ * ## Relationship to namespace router
25
+ *
26
+ * The WS handler is a thin transport adapter. All RPC dispatch logic lives in
27
+ * `namespace-router.ts`. This handler adds: token extraction, Y.js routing,
28
+ * peer tracking, streaming frame serialization, and change broadcasting.
29
+ *
30
+ * @example Bun server wiring
31
+ * ```typescript
32
+ * import { createNamespaceWsHandler, YDocManager } from '@soulcraft/sdk/server'
33
+ *
34
+ * const handler = createNamespaceWsHandler({
35
+ * router: routerConfig,
36
+ * ydocManager: new YDocManager(),
37
+ * })
38
+ *
39
+ * Bun.serve({
40
+ * async fetch(req, server) {
41
+ * if (new URL(req.url).pathname === '/api/brainy/ws') {
42
+ * const session = await handler.handleUpgrade(req)
43
+ * if (!session) return new Response('Unauthorized', { status: 401 })
44
+ * server.upgrade(req, { data: session })
45
+ * return undefined
46
+ * }
47
+ * },
48
+ * websocket: {
49
+ * open(ws) { ws.send(encode({ type: 'ready', scope: ws.data.scope })) },
50
+ * async message(ws, data) {
51
+ * await handler.handleMessage(ws.data, data, (msg) => ws.send(msg))
52
+ * },
53
+ * async close(ws) { await handler.handleClose(ws.data) },
54
+ * },
55
+ * })
56
+ * ```
57
+ */
58
+ import type { Brainy } from '@soulcraft/brainy';
59
+ import type { BrainyChangeEvent } from '../modules/brainy/events.js';
60
+ import type { NamespaceRouterConfig, UserContext } from './namespace-router.js';
61
+ import { YDocManager } from '../modules/brainy/ydoc-manager.js';
62
+ /**
63
+ * Configuration for {@link createNamespaceWsHandler}.
64
+ *
65
+ * Reuses the same `NamespaceRouterConfig` shape as `createSoulcraftRouter()`,
66
+ * so products can share a single config object between HTTP and WebSocket handlers.
67
+ */
68
+ export interface NamespaceWsHandlerConfig {
69
+ /**
70
+ * Shared router config — `authenticate`, `resolveBrain`, `providers`, `authorize`.
71
+ *
72
+ * The `authenticate` callback receives a synthetic `RequestContext` built from
73
+ * the WebSocket upgrade request. The `resolveBrain` callback receives the same
74
+ * context with the authenticated user populated.
75
+ */
76
+ router: NamespaceRouterConfig;
77
+ /**
78
+ * Optional Y.js document manager for real-time collaborative editing.
79
+ *
80
+ * When provided, the handler routes `y-sync`, `y-update`, and `y-awareness`
81
+ * messages through the `YDocManager`. Y.js update broadcasts are sent to all
82
+ * other peers via the `broadcast` callback on the session.
83
+ */
84
+ ydocManager?: YDocManager;
85
+ }
86
+ /**
87
+ * Per-connection session state stored on the WebSocket's data field.
88
+ *
89
+ * Created by `handleUpgrade()` and passed to all subsequent message/close handlers.
90
+ */
91
+ export interface WsSession {
92
+ /** The authenticated user context. */
93
+ user: UserContext;
94
+ /** Workspace ID extracted from the upgrade request. */
95
+ workspaceId: string;
96
+ /** The resolved Brainy instance for this session's scope. */
97
+ brain: Brainy;
98
+ /** The raw scope string from `?scope=` (preserved for broadcast key). */
99
+ scope: string;
100
+ /**
101
+ * Unique peer ID for this connection. Used by `YDocManager` to track per-file
102
+ * peer counts so it knows when the last peer has disconnected.
103
+ */
104
+ peerId: string;
105
+ /**
106
+ * Broadcast callback set by the product server after upgrade.
107
+ *
108
+ * Called by the handler to fan out `y-update` and `y-awareness` messages to all
109
+ * other peers connected to this scope. The product server owns the connection map
110
+ * and provides this callback so the SDK does not manage WebSocket handles directly.
111
+ *
112
+ * @param msg - Encoded MessagePack frame to send to all OTHER peers in this scope.
113
+ * @param excludePeerId - The peer that sent the message — must be excluded.
114
+ */
115
+ broadcast: (msg: Uint8Array, excludePeerId: string) => void;
116
+ }
117
+ /**
118
+ * The object returned by {@link createNamespaceWsHandler}.
119
+ */
120
+ export interface NamespaceWsHandler {
121
+ /**
122
+ * Handles a WebSocket upgrade request.
123
+ *
124
+ * Extracts the token and scope, authenticates via the router's `authenticate`
125
+ * callback, and resolves the Brainy instance. Returns `null` on auth failure.
126
+ *
127
+ * @param request - The HTTP upgrade request.
128
+ * @returns Session state on success, or `null` on auth failure.
129
+ */
130
+ handleUpgrade(request: Request): Promise<WsSession | null>;
131
+ /**
132
+ * Processes an incoming WebSocket message.
133
+ *
134
+ * Routes to either the namespace RPC dispatcher or the Y.js handler based
135
+ * on the decoded message shape.
136
+ *
137
+ * @param session - Session from `handleUpgrade()`.
138
+ * @param data - Raw binary MessagePack frame.
139
+ * @param send - Callback to send a binary response to THIS client only.
140
+ */
141
+ handleMessage(session: WsSession, data: ArrayBuffer | Uint8Array, send: (msg: Uint8Array) => void): Promise<void>;
142
+ /**
143
+ * Called when a peer's WebSocket connection closes.
144
+ *
145
+ * Notifies the `YDocManager` so it can flush and discard Y.Docs with no
146
+ * active peers.
147
+ *
148
+ * @param session - The session of the disconnecting peer.
149
+ */
150
+ handleClose(session: WsSession): Promise<void>;
151
+ /**
152
+ * Broadcasts a Brainy change event to a connected client.
153
+ *
154
+ * @param event - The change event to broadcast.
155
+ * @param send - Callback to send the encoded event to the target client.
156
+ */
157
+ broadcastChange(event: BrainyChangeEvent, send: (msg: Uint8Array) => void): void;
158
+ }
159
+ /**
160
+ * Creates a namespace-aware WebSocket handler that dispatches RPC through the
161
+ * same namespace router used by HTTP, plus Y.js collaborative editing.
162
+ *
163
+ * @param config - Handler configuration.
164
+ * @returns A {@link NamespaceWsHandler} instance.
165
+ */
166
+ export declare function createNamespaceWsHandler(config: NamespaceWsHandlerConfig): NamespaceWsHandler;
167
+ //# sourceMappingURL=ws-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/ws-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EACV,qBAAqB,EAErB,WAAW,EAEZ,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAM/D;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,MAAM,EAAE,qBAAqB,CAAA;IAE7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAMD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,sCAAsC;IACtC,IAAI,EAAE,WAAW,CAAA;IACjB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;;OASG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5D;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAE1D;;;;;;;;;OASG;IACH,aAAa,CACX,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,WAAW,GAAG,UAAU,EAC9B,IAAI,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9C;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;CACjF;AAiCD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CA0I7F"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * @module server/ws-handler
3
+ * @description Namespace-aware WebSocket handler for the Soulcraft SDK.
4
+ *
5
+ * Provides `createNamespaceWsHandler()` — a server-side handler that processes
6
+ * WebSocket messages through the same namespace router used by HTTP RPC, plus
7
+ * Y.js collaborative editing and real-time change push.
8
+ *
9
+ * ## Wire protocol
10
+ *
11
+ * All frames are binary MessagePack. The protocol supports four message categories:
12
+ *
13
+ * 1. **Namespace RPC** — `{ id, ns, method, args }` dispatched to the namespace router
14
+ * 2. **Streaming RPC** — `{ id, ns, method, args, stream: true }` returns chunked responses
15
+ * 3. **Y.js collab** — `{ type: 'y-sync'|'y-update'|'y-awareness', ... }` for CRDT editing
16
+ * 4. **Change push** — `{ type: 'change', ... }` broadcast from server on data mutations
17
+ *
18
+ * ## Auth
19
+ *
20
+ * Authentication happens once during `handleUpgrade()`. The resulting `WsSession`
21
+ * carries the authenticated user context. Subsequent messages are dispatched with
22
+ * pre-authenticated context — no per-message auth overhead.
23
+ *
24
+ * ## Relationship to namespace router
25
+ *
26
+ * The WS handler is a thin transport adapter. All RPC dispatch logic lives in
27
+ * `namespace-router.ts`. This handler adds: token extraction, Y.js routing,
28
+ * peer tracking, streaming frame serialization, and change broadcasting.
29
+ *
30
+ * @example Bun server wiring
31
+ * ```typescript
32
+ * import { createNamespaceWsHandler, YDocManager } from '@soulcraft/sdk/server'
33
+ *
34
+ * const handler = createNamespaceWsHandler({
35
+ * router: routerConfig,
36
+ * ydocManager: new YDocManager(),
37
+ * })
38
+ *
39
+ * Bun.serve({
40
+ * async fetch(req, server) {
41
+ * if (new URL(req.url).pathname === '/api/brainy/ws') {
42
+ * const session = await handler.handleUpgrade(req)
43
+ * if (!session) return new Response('Unauthorized', { status: 401 })
44
+ * server.upgrade(req, { data: session })
45
+ * return undefined
46
+ * }
47
+ * },
48
+ * websocket: {
49
+ * open(ws) { ws.send(encode({ type: 'ready', scope: ws.data.scope })) },
50
+ * async message(ws, data) {
51
+ * await handler.handleMessage(ws.data, data, (msg) => ws.send(msg))
52
+ * },
53
+ * async close(ws) { await handler.handleClose(ws.data) },
54
+ * },
55
+ * })
56
+ * ```
57
+ */
58
+ import { encode, decode } from '@msgpack/msgpack';
59
+ import { createNamespaceRouter } from './namespace-router.js';
60
+ import { YDocManager } from '../modules/brainy/ydoc-manager.js';
61
+ // ─────────────────────────────────────────────────────────────────────────────
62
+ // Factory
63
+ // ─────────────────────────────────────────────────────────────────────────────
64
+ /**
65
+ * Creates a namespace-aware WebSocket handler that dispatches RPC through the
66
+ * same namespace router used by HTTP, plus Y.js collaborative editing.
67
+ *
68
+ * @param config - Handler configuration.
69
+ * @returns A {@link NamespaceWsHandler} instance.
70
+ */
71
+ export function createNamespaceWsHandler(config) {
72
+ const { router: routerConfig, ydocManager } = config;
73
+ const router = createNamespaceRouter(routerConfig);
74
+ return {
75
+ async handleUpgrade(request) {
76
+ const url = new URL(request.url);
77
+ const scope = url.searchParams.get('scope') ?? '';
78
+ // Extract auth token — Bun/Node uses Authorization header; browsers use ?token= query.
79
+ const authHeader = request.headers.get('authorization') ?? '';
80
+ const token = authHeader.startsWith('Bearer ')
81
+ ? authHeader.slice(7)
82
+ : (url.searchParams.get('token') ?? '');
83
+ // Extract workspace ID from scope or header.
84
+ const workspaceId = request.headers.get('x-workspace-id') ??
85
+ url.searchParams.get('workspaceId') ??
86
+ scope;
87
+ // Build a synthetic RequestContext for the router's authenticate callback.
88
+ const ctx = {
89
+ request,
90
+ user: null,
91
+ workspaceId,
92
+ };
93
+ // Authenticate using the router's callback.
94
+ let user;
95
+ try {
96
+ user = await routerConfig.authenticate(ctx);
97
+ }
98
+ catch (err) {
99
+ console.error('[SDK/ws] authenticate threw during upgrade:', err);
100
+ return null;
101
+ }
102
+ if (!user)
103
+ return null;
104
+ // Resolve brain with the authenticated context.
105
+ ctx.user = user;
106
+ let brain;
107
+ try {
108
+ brain = await routerConfig.resolveBrain(ctx);
109
+ }
110
+ catch (err) {
111
+ console.error('[SDK/ws] resolveBrain threw during upgrade:', err);
112
+ return null;
113
+ }
114
+ const peerId = crypto.randomUUID();
115
+ return {
116
+ user,
117
+ workspaceId,
118
+ brain,
119
+ scope,
120
+ peerId,
121
+ broadcast: () => { }, // No-op until product server sets it in websocket.open()
122
+ };
123
+ },
124
+ async handleMessage(session, data, send) {
125
+ let decoded;
126
+ try {
127
+ decoded = decode(data instanceof ArrayBuffer ? new Uint8Array(data) : data);
128
+ }
129
+ catch {
130
+ return; // Malformed frame — silently ignore
131
+ }
132
+ if (!decoded || typeof decoded !== 'object')
133
+ return;
134
+ const msg = decoded;
135
+ // ── Y.js messages ──────────────────────────────────────────────────
136
+ if (typeof msg['type'] === 'string' && msg['type'].startsWith('y-')) {
137
+ await _handleYjsMessage(msg, session, send, ydocManager);
138
+ return;
139
+ }
140
+ // ── Namespace RPC ──────────────────────────────────────────────────
141
+ const id = msg['id'];
142
+ const ns = msg['ns'];
143
+ const method = msg['method'];
144
+ const args = msg['args'];
145
+ if (typeof id !== 'string' || typeof method !== 'string' || !Array.isArray(args)) {
146
+ return; // Not a valid RPC frame
147
+ }
148
+ // Default namespace to 'brainy' for backward compat with SDK 1.x clients
149
+ // that send { id, method, args } without an ns field.
150
+ const resolvedNs = typeof ns === 'string' ? ns : 'brainy';
151
+ const stream = msg['stream'] === true;
152
+ const rpc = { id, ns: resolvedNs, method, args, stream };
153
+ // Dispatch with pre-authenticated context — skips re-authentication.
154
+ // The user was already verified in handleUpgrade().
155
+ const preAuthCtx = {
156
+ user: session.user,
157
+ workspaceId: session.workspaceId,
158
+ request: new Request('http://localhost/api/rpc'),
159
+ };
160
+ const result = await router.dispatch(rpc, preAuthCtx);
161
+ if (result.type === 'response') {
162
+ send(encode(result.response));
163
+ return;
164
+ }
165
+ // Streaming response — iterate the async iterable and send frames.
166
+ if (result.type === 'stream') {
167
+ try {
168
+ for await (const chunk of result.iterable) {
169
+ const frame = { id, chunk };
170
+ send(encode(frame));
171
+ }
172
+ send(encode({ id, done: true }));
173
+ }
174
+ catch (err) {
175
+ const message = err instanceof Error ? err.message : String(err);
176
+ send(encode({ id, error: message }));
177
+ }
178
+ }
179
+ },
180
+ async handleClose(session) {
181
+ if (!ydocManager)
182
+ return;
183
+ await ydocManager.onPeerDisconnectAll(session.scope, session.peerId);
184
+ },
185
+ broadcastChange(event, send) {
186
+ send(encode(event));
187
+ },
188
+ };
189
+ }
190
+ // ─────────────────────────────────────────────────────────────────────────────
191
+ // Y.js message handler
192
+ // ─────────────────────────────────────────────────────────────────────────────
193
+ /**
194
+ * Routes a Y.js protocol message to the appropriate `YDocManager` method.
195
+ *
196
+ * ## Sync protocol (standard two-phase handshake):
197
+ * 1. Client sends `y-sync` with its state vector.
198
+ * 2. Server replies with `y-sync` diff (updates client is missing).
199
+ * 3. Client applies diff → sends `y-update` for pending local ops.
200
+ * 4. Steady state: all ops are `y-update` frames, broadcast to all other peers.
201
+ *
202
+ * ## Awareness:
203
+ * `y-awareness` frames carry cursor positions, user name/color. NOT persisted —
204
+ * forwarded to all other peers then discarded.
205
+ *
206
+ * @param msg - Decoded Y.js message frame.
207
+ * @param session - The WebSocket session for the sending peer.
208
+ * @param send - Sends a response to THIS peer only.
209
+ * @param ydocManager - The server-side Y.Doc pool (may be undefined if collab disabled).
210
+ */
211
+ async function _handleYjsMessage(msg, session, send, ydocManager) {
212
+ if (!ydocManager)
213
+ return;
214
+ switch (msg.type) {
215
+ case 'y-sync': {
216
+ const clientSv = msg.stateVector instanceof Uint8Array
217
+ ? msg.stateVector
218
+ : new Uint8Array(Object.values(msg.stateVector));
219
+ const diff = await ydocManager.getDiff(session.scope, msg.filePath, session.brain, clientSv);
220
+ send(encode({ type: 'y-sync', filePath: msg.filePath, diff }));
221
+ break;
222
+ }
223
+ case 'y-update': {
224
+ const update = msg.update instanceof Uint8Array
225
+ ? msg.update
226
+ : new Uint8Array(Object.values(msg.update));
227
+ await ydocManager.getOrCreate(session.scope, msg.filePath, session.brain, session.peerId);
228
+ await ydocManager.applyUpdate(session.scope, msg.filePath, update);
229
+ const frame = encode({ type: 'y-update', filePath: msg.filePath, update });
230
+ session.broadcast(frame, session.peerId);
231
+ break;
232
+ }
233
+ case 'y-awareness': {
234
+ const update = msg.update instanceof Uint8Array
235
+ ? msg.update
236
+ : new Uint8Array(Object.values(msg.update));
237
+ const frame = encode({ type: 'y-awareness', update });
238
+ session.broadcast(frame, session.peerId);
239
+ break;
240
+ }
241
+ }
242
+ }
243
+ //# sourceMappingURL=ws-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-handler.js","sourceRoot":"","sources":["../../src/server/ws-handler.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@
52
52
  * ```
53
53
  */
54
54
  import type { SDKTransport } from './transport.js';
55
+ import type { NamespaceTransport } from '../client/namespace-proxy.js';
55
56
  import type { BrainyChangeEvent } from '../modules/brainy/events.js';
56
57
  /**
57
58
  * Transport that communicates via MessagePack-encoded WebSocket RPC.
@@ -63,7 +64,7 @@ import type { BrainyChangeEvent } from '../modules/brainy/events.js';
63
64
  * `createSDK` client factory calls this automatically when `sdk.connect()` is
64
65
  * invoked.
65
66
  */
66
- export declare class WsTransport implements SDKTransport {
67
+ export declare class WsTransport implements SDKTransport, NamespaceTransport {
67
68
  private ws;
68
69
  private readonly wsUrl;
69
70
  private readonly authToken;
@@ -71,6 +72,7 @@ export declare class WsTransport implements SDKTransport {
71
72
  private readonly timeoutMs;
72
73
  private readonly maxReconnectAttempts;
73
74
  private readonly pending;
75
+ private readonly pendingStreams;
74
76
  private nextId;
75
77
  private connectionState;
76
78
  private readonly changeListeners;
@@ -99,6 +101,9 @@ export declare class WsTransport implements SDKTransport {
99
101
  /**
100
102
  * Sends a MessagePack-encoded RPC request and awaits the response.
101
103
  *
104
+ * Delegates to `callNs('brainy', method, args)` for backward compatibility
105
+ * with SDK 1.x callers that use the flat Brainy method namespace.
106
+ *
102
107
  * @param method - Dot-separated Brainy method name (e.g. `'vfs.readdir'`).
103
108
  * @param args - Positional arguments to forward.
104
109
  * @returns Whatever the server's Brainy method returns.
@@ -107,6 +112,29 @@ export declare class WsTransport implements SDKTransport {
107
112
  * @throws {@link SDKRpcError} if the server reports an error.
108
113
  */
109
114
  call(method: string, args: unknown[]): Promise<unknown>;
115
+ /**
116
+ * Sends a namespace-aware RPC request and awaits the response.
117
+ *
118
+ * @param ns - Target namespace (e.g. `'chat'`, `'graph'`, `'brainy.vfs'`).
119
+ * @param method - Method within the namespace (e.g. `'send'`, `'getData'`).
120
+ * @param args - Positional arguments.
121
+ * @returns The handler's return value.
122
+ * @throws {@link SDKDisconnectedError} if not connected.
123
+ * @throws {@link SDKTimeoutError} after `timeoutMs` ms.
124
+ * @throws {@link SDKRpcError} if the server reports an error.
125
+ */
126
+ callNs(ns: string, method: string, args: unknown[]): Promise<unknown>;
127
+ /**
128
+ * Sends a streaming namespace-aware RPC request and returns an async iterable
129
+ * that yields chunks as they arrive from the server.
130
+ *
131
+ * @param ns - Target namespace.
132
+ * @param method - Method within the namespace.
133
+ * @param args - Positional arguments.
134
+ * @returns An async iterable of response chunks.
135
+ * @throws {@link SDKDisconnectedError} if not connected.
136
+ */
137
+ callNsStream(ns: string, method: string, args: unknown[]): AsyncIterable<unknown>;
110
138
  /**
111
139
  * Registers a listener for real-time change push events from the server.
112
140
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/transports/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAkDpE;;;;;;;;;GASG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgD;IAEhF,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,cAAc,CAA6C;IAEnE;;;;;;OAMG;gBAED,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,SAAS,EAClB,oBAAoB,SAAK;IAW3B;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAO/B;;;;;;;;;OASG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7D;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI1D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAK3D;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,YAAY;IA2DpB,OAAO,CAAC,iBAAiB;CAO1B"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/transports/ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AA2EpE;;;;;;;;;GASG;AACH,qBAAa,WAAY,YAAW,YAAY,EAAE,kBAAkB;IAClE,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgD;IAEhF,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,cAAc,CAA6C;IAEnE;;;;;;OAMG;gBAED,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,SAAS,EAClB,oBAAoB,SAAK;IAW3B;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAO/B;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7D;;;;;;;;;;OAUG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB3E;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;IA+EjF;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAI1D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAK3D;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,cAAc;IAyEtB,OAAO,CAAC,YAAY;IA2DpB,OAAO,CAAC,iBAAiB;CAa1B"}
@@ -74,6 +74,7 @@ export class WsTransport {
74
74
  timeoutMs;
75
75
  maxReconnectAttempts;
76
76
  pending = new Map();
77
+ pendingStreams = new Map();
77
78
  nextId = 0;
78
79
  connectionState = 'disconnected';
79
80
  changeListeners = [];
@@ -114,6 +115,9 @@ export class WsTransport {
114
115
  /**
115
116
  * Sends a MessagePack-encoded RPC request and awaits the response.
116
117
  *
118
+ * Delegates to `callNs('brainy', method, args)` for backward compatibility
119
+ * with SDK 1.x callers that use the flat Brainy method namespace.
120
+ *
117
121
  * @param method - Dot-separated Brainy method name (e.g. `'vfs.readdir'`).
118
122
  * @param args - Positional arguments to forward.
119
123
  * @returns Whatever the server's Brainy method returns.
@@ -122,6 +126,21 @@ export class WsTransport {
122
126
  * @throws {@link SDKRpcError} if the server reports an error.
123
127
  */
124
128
  async call(method, args) {
129
+ return this.callNs('brainy', method, args);
130
+ }
131
+ // ── NamespaceTransport interface ────────────────────────────────────────
132
+ /**
133
+ * Sends a namespace-aware RPC request and awaits the response.
134
+ *
135
+ * @param ns - Target namespace (e.g. `'chat'`, `'graph'`, `'brainy.vfs'`).
136
+ * @param method - Method within the namespace (e.g. `'send'`, `'getData'`).
137
+ * @param args - Positional arguments.
138
+ * @returns The handler's return value.
139
+ * @throws {@link SDKDisconnectedError} if not connected.
140
+ * @throws {@link SDKTimeoutError} after `timeoutMs` ms.
141
+ * @throws {@link SDKRpcError} if the server reports an error.
142
+ */
143
+ async callNs(ns, method, args) {
125
144
  if (this.connectionState !== 'connected') {
126
145
  throw new SDKDisconnectedError();
127
146
  }
@@ -129,13 +148,96 @@ export class WsTransport {
129
148
  const id = String(this.nextId++);
130
149
  const timeoutId = setTimeout(() => {
131
150
  this.pending.delete(id);
132
- reject(new SDKTimeoutError(method));
151
+ reject(new SDKTimeoutError(`${ns}.${method}`));
133
152
  }, this.timeoutMs);
134
153
  this.pending.set(id, { resolve, reject, timeoutId });
135
- const request = { id, method, args };
154
+ const request = { id, ns, method, args };
136
155
  this.ws.send(encode(request));
137
156
  });
138
157
  }
158
+ /**
159
+ * Sends a streaming namespace-aware RPC request and returns an async iterable
160
+ * that yields chunks as they arrive from the server.
161
+ *
162
+ * @param ns - Target namespace.
163
+ * @param method - Method within the namespace.
164
+ * @param args - Positional arguments.
165
+ * @returns An async iterable of response chunks.
166
+ * @throws {@link SDKDisconnectedError} if not connected.
167
+ */
168
+ callNsStream(ns, method, args) {
169
+ if (this.connectionState !== 'connected') {
170
+ throw new SDKDisconnectedError();
171
+ }
172
+ const id = String(this.nextId++);
173
+ // Create a pull-based async iterable backed by a push buffer.
174
+ const buffer = [];
175
+ let done = false;
176
+ let streamError = null;
177
+ let waiting = null;
178
+ const timeoutId = setTimeout(() => {
179
+ this.pendingStreams.delete(id);
180
+ streamError = `Timeout waiting for stream ${ns}.${method}`;
181
+ if (waiting) {
182
+ waiting.resolve({ value: undefined, done: true });
183
+ waiting = null;
184
+ }
185
+ }, this.timeoutMs);
186
+ this.pendingStreams.set(id, {
187
+ push(chunk) {
188
+ if (waiting) {
189
+ const w = waiting;
190
+ waiting = null;
191
+ w.resolve({ value: chunk, done: false });
192
+ }
193
+ else {
194
+ buffer.push(chunk);
195
+ }
196
+ },
197
+ end() {
198
+ clearTimeout(timeoutId);
199
+ done = true;
200
+ if (waiting) {
201
+ const w = waiting;
202
+ waiting = null;
203
+ w.resolve({ value: undefined, done: true });
204
+ }
205
+ },
206
+ error(msg) {
207
+ clearTimeout(timeoutId);
208
+ streamError = msg;
209
+ done = true;
210
+ if (waiting) {
211
+ const w = waiting;
212
+ waiting = null;
213
+ w.resolve({ value: undefined, done: true });
214
+ }
215
+ },
216
+ timeoutId,
217
+ });
218
+ const request = { id, ns, method, args, stream: true };
219
+ this.ws.send(encode(request));
220
+ return {
221
+ [Symbol.asyncIterator]() {
222
+ return {
223
+ next() {
224
+ if (streamError) {
225
+ return Promise.reject(new SDKRpcError('STREAM_ERROR', streamError));
226
+ }
227
+ if (buffer.length > 0) {
228
+ return Promise.resolve({ value: buffer.shift(), done: false });
229
+ }
230
+ if (done) {
231
+ return Promise.resolve({ value: undefined, done: true });
232
+ }
233
+ return new Promise((resolve) => {
234
+ waiting = { resolve };
235
+ });
236
+ },
237
+ };
238
+ },
239
+ };
240
+ }
139
241
  /**
140
242
  * Registers a listener for real-time change push events from the server.
141
243
  *
@@ -273,8 +375,27 @@ export class WsTransport {
273
375
  this.connectReject = null;
274
376
  return;
275
377
  }
276
- // RPC response (has an 'id' field)
378
+ // RPC response or stream frame (has an 'id' field)
277
379
  if (typeof m['id'] === 'string') {
380
+ const msgId = m['id'];
381
+ // Check if this is a streaming frame routed to pendingStreams.
382
+ const stream = this.pendingStreams.get(msgId);
383
+ if (stream) {
384
+ const frame = m;
385
+ if (frame.error) {
386
+ this.pendingStreams.delete(msgId);
387
+ stream.error(frame.error);
388
+ }
389
+ else if (frame.done) {
390
+ this.pendingStreams.delete(msgId);
391
+ stream.end();
392
+ }
393
+ else if ('chunk' in frame) {
394
+ stream.push(frame.chunk);
395
+ }
396
+ return;
397
+ }
398
+ // Non-streaming RPC response.
278
399
  const response = m;
279
400
  const pending = this.pending.get(response.id);
280
401
  if (!pending)
@@ -360,6 +481,11 @@ export class WsTransport {
360
481
  pending.reject(error);
361
482
  }
362
483
  this.pending.clear();
484
+ for (const [, stream] of this.pendingStreams) {
485
+ clearTimeout(stream.timeoutId);
486
+ stream.error(error.message);
487
+ }
488
+ this.pendingStreams.clear();
363
489
  }
364
490
  }
365
491
  //# sourceMappingURL=ws.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/transports/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/transports/ws.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/sdk",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "The unified Soulcraft platform SDK — data, auth, AI, billing, and notifications",
5
5
  "type": "module",
6
6
  "publishConfig": {