@soulcraft/sdk 1.7.0 → 2.0.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.
Files changed (166) hide show
  1. package/dist/client/create-client-sdk.d.ts +16 -2
  2. package/dist/client/create-client-sdk.d.ts.map +1 -1
  3. package/dist/client/create-client-sdk.js +2 -7
  4. package/dist/client/create-client-sdk.js.map +1 -1
  5. package/dist/client/index.d.ts +44 -37
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/index.js +59 -44
  8. package/dist/client/index.js.map +1 -1
  9. package/dist/client/namespace-proxy.d.ts +108 -0
  10. package/dist/client/namespace-proxy.d.ts.map +1 -0
  11. package/dist/client/namespace-proxy.js +151 -0
  12. package/dist/client/namespace-proxy.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/modules/app-context/index.d.ts +15 -15
  16. package/dist/modules/app-context/index.d.ts.map +1 -1
  17. package/dist/modules/app-context/index.js +17 -17
  18. package/dist/modules/app-context/index.js.map +1 -1
  19. package/dist/namespaces.d.ts +2942 -0
  20. package/dist/namespaces.d.ts.map +1 -0
  21. package/dist/namespaces.js +37 -0
  22. package/dist/namespaces.js.map +1 -0
  23. package/dist/rpc.d.ts +156 -0
  24. package/dist/rpc.d.ts.map +1 -0
  25. package/dist/rpc.js +26 -0
  26. package/dist/rpc.js.map +1 -0
  27. package/dist/server/create-sdk.d.ts.map +1 -1
  28. package/dist/server/create-sdk.js +3 -13
  29. package/dist/server/create-sdk.js.map +1 -1
  30. package/dist/server/handlers/annotations.d.ts +52 -0
  31. package/dist/server/handlers/annotations.d.ts.map +1 -0
  32. package/dist/server/handlers/annotations.js +204 -0
  33. package/dist/server/handlers/annotations.js.map +1 -0
  34. package/dist/server/handlers/auth.d.ts +53 -0
  35. package/dist/server/handlers/auth.d.ts.map +1 -0
  36. package/dist/server/handlers/auth.js +66 -0
  37. package/dist/server/handlers/auth.js.map +1 -0
  38. package/dist/server/handlers/certification.d.ts +32 -0
  39. package/dist/server/handlers/certification.d.ts.map +1 -0
  40. package/dist/server/handlers/certification.js +253 -0
  41. package/dist/server/handlers/certification.js.map +1 -0
  42. package/dist/server/handlers/chat/conversations.d.ts +91 -0
  43. package/dist/server/handlers/chat/conversations.d.ts.map +1 -0
  44. package/dist/server/handlers/chat/conversations.js +314 -0
  45. package/dist/server/handlers/chat/conversations.js.map +1 -0
  46. package/dist/server/handlers/chat/delegator.d.ts +144 -0
  47. package/dist/server/handlers/chat/delegator.d.ts.map +1 -0
  48. package/dist/server/handlers/chat/delegator.js +431 -0
  49. package/dist/server/handlers/chat/delegator.js.map +1 -0
  50. package/dist/server/handlers/chat/engine.d.ts +81 -0
  51. package/dist/server/handlers/chat/engine.d.ts.map +1 -0
  52. package/dist/server/handlers/chat/engine.js +442 -0
  53. package/dist/server/handlers/chat/engine.js.map +1 -0
  54. package/dist/server/handlers/chat/executor.d.ts +65 -0
  55. package/dist/server/handlers/chat/executor.d.ts.map +1 -0
  56. package/dist/server/handlers/chat/executor.js +375 -0
  57. package/dist/server/handlers/chat/executor.js.map +1 -0
  58. package/dist/server/handlers/chat/index.d.ts +62 -0
  59. package/dist/server/handlers/chat/index.d.ts.map +1 -0
  60. package/dist/server/handlers/chat/index.js +182 -0
  61. package/dist/server/handlers/chat/index.js.map +1 -0
  62. package/dist/server/handlers/chat/memory.d.ts +91 -0
  63. package/dist/server/handlers/chat/memory.d.ts.map +1 -0
  64. package/dist/server/handlers/chat/memory.js +293 -0
  65. package/dist/server/handlers/chat/memory.js.map +1 -0
  66. package/dist/server/handlers/chat/models.d.ts +180 -0
  67. package/dist/server/handlers/chat/models.d.ts.map +1 -0
  68. package/dist/server/handlers/chat/models.js +304 -0
  69. package/dist/server/handlers/chat/models.js.map +1 -0
  70. package/dist/server/handlers/chat/planner.d.ts +116 -0
  71. package/dist/server/handlers/chat/planner.d.ts.map +1 -0
  72. package/dist/server/handlers/chat/planner.js +344 -0
  73. package/dist/server/handlers/chat/planner.js.map +1 -0
  74. package/dist/server/handlers/chat/types.d.ts +500 -0
  75. package/dist/server/handlers/chat/types.d.ts.map +1 -0
  76. package/dist/server/handlers/chat/types.js +11 -0
  77. package/dist/server/handlers/chat/types.js.map +1 -0
  78. package/dist/server/handlers/collections.d.ts +67 -0
  79. package/dist/server/handlers/collections.d.ts.map +1 -0
  80. package/dist/server/handlers/collections.js +484 -0
  81. package/dist/server/handlers/collections.js.map +1 -0
  82. package/dist/server/handlers/commerce.d.ts +106 -0
  83. package/dist/server/handlers/commerce.d.ts.map +1 -0
  84. package/dist/server/handlers/commerce.js +62 -0
  85. package/dist/server/handlers/commerce.js.map +1 -0
  86. package/dist/server/handlers/config.d.ts +112 -0
  87. package/dist/server/handlers/config.d.ts.map +1 -0
  88. package/dist/server/handlers/config.js +122 -0
  89. package/dist/server/handlers/config.js.map +1 -0
  90. package/dist/server/handlers/export.d.ts +72 -0
  91. package/dist/server/handlers/export.d.ts.map +1 -0
  92. package/dist/server/handlers/export.js +175 -0
  93. package/dist/server/handlers/export.js.map +1 -0
  94. package/dist/server/handlers/formats.d.ts +77 -0
  95. package/dist/server/handlers/formats.d.ts.map +1 -0
  96. package/dist/server/handlers/formats.js +65 -0
  97. package/dist/server/handlers/formats.js.map +1 -0
  98. package/dist/server/handlers/graph.d.ts +31 -0
  99. package/dist/server/handlers/graph.d.ts.map +1 -0
  100. package/dist/server/handlers/graph.js +490 -0
  101. package/dist/server/handlers/graph.js.map +1 -0
  102. package/dist/server/handlers/import.d.ts +96 -0
  103. package/dist/server/handlers/import.d.ts.map +1 -0
  104. package/dist/server/handlers/import.js +108 -0
  105. package/dist/server/handlers/import.js.map +1 -0
  106. package/dist/server/handlers/index.d.ts +68 -0
  107. package/dist/server/handlers/index.d.ts.map +1 -0
  108. package/dist/server/handlers/index.js +71 -0
  109. package/dist/server/handlers/index.js.map +1 -0
  110. package/dist/server/handlers/media.d.ts +76 -0
  111. package/dist/server/handlers/media.d.ts.map +1 -0
  112. package/dist/server/handlers/media.js +53 -0
  113. package/dist/server/handlers/media.js.map +1 -0
  114. package/dist/server/handlers/project.d.ts +45 -0
  115. package/dist/server/handlers/project.d.ts.map +1 -0
  116. package/dist/server/handlers/project.js +181 -0
  117. package/dist/server/handlers/project.js.map +1 -0
  118. package/dist/server/handlers/publish.d.ts +102 -0
  119. package/dist/server/handlers/publish.d.ts.map +1 -0
  120. package/dist/server/handlers/publish.js +130 -0
  121. package/dist/server/handlers/publish.js.map +1 -0
  122. package/dist/server/handlers/pulse.d.ts +39 -0
  123. package/dist/server/handlers/pulse.d.ts.map +1 -0
  124. package/dist/server/handlers/pulse.js +78 -0
  125. package/dist/server/handlers/pulse.js.map +1 -0
  126. package/dist/server/handlers/realtime.d.ts +55 -0
  127. package/dist/server/handlers/realtime.d.ts.map +1 -0
  128. package/dist/server/handlers/realtime.js +49 -0
  129. package/dist/server/handlers/realtime.js.map +1 -0
  130. package/dist/server/handlers/search.d.ts +21 -0
  131. package/dist/server/handlers/search.d.ts.map +1 -0
  132. package/dist/server/handlers/search.js +237 -0
  133. package/dist/server/handlers/search.js.map +1 -0
  134. package/dist/server/handlers/session.d.ts +47 -0
  135. package/dist/server/handlers/session.d.ts.map +1 -0
  136. package/dist/server/handlers/session.js +286 -0
  137. package/dist/server/handlers/session.js.map +1 -0
  138. package/dist/server/handlers/settings.d.ts +97 -0
  139. package/dist/server/handlers/settings.d.ts.map +1 -0
  140. package/dist/server/handlers/settings.js +131 -0
  141. package/dist/server/handlers/settings.js.map +1 -0
  142. package/dist/server/handlers/workspace.d.ts +78 -0
  143. package/dist/server/handlers/workspace.d.ts.map +1 -0
  144. package/dist/server/handlers/workspace.js +270 -0
  145. package/dist/server/handlers/workspace.js.map +1 -0
  146. package/dist/server/hono-router.d.ts +66 -0
  147. package/dist/server/hono-router.d.ts.map +1 -0
  148. package/dist/server/hono-router.js +203 -0
  149. package/dist/server/hono-router.js.map +1 -0
  150. package/dist/server/index.d.ts +27 -19
  151. package/dist/server/index.d.ts.map +1 -1
  152. package/dist/server/index.js +30 -18
  153. package/dist/server/index.js.map +1 -1
  154. package/dist/server/namespace-router.d.ts +204 -0
  155. package/dist/server/namespace-router.d.ts.map +1 -0
  156. package/dist/server/namespace-router.js +262 -0
  157. package/dist/server/namespace-router.js.map +1 -0
  158. package/dist/transports/http-namespace.d.ts +210 -0
  159. package/dist/transports/http-namespace.d.ts.map +1 -0
  160. package/dist/transports/http-namespace.js +514 -0
  161. package/dist/transports/http-namespace.js.map +1 -0
  162. package/dist/types.d.ts +59 -65
  163. package/dist/types.d.ts.map +1 -1
  164. package/dist/types.js +7 -3
  165. package/dist/types.js.map +1 -1
  166. package/package.json +1 -1
@@ -69,8 +69,21 @@
69
69
  * sdk.brainy.onDataChange((event) => console.log('change:', event))
70
70
  * ```
71
71
  */
72
- import type { ClientSDKOptions } from '../types.js';
73
72
  import type { SoulcraftSDK } from '../types.js';
73
+ /**
74
+ * Legacy client SDK options. Kept for backward compatibility with `createClientSDK()`.
75
+ * New code should use `createSoulcraftProxy()` with a namespace-aware transport instead.
76
+ */
77
+ interface LegacyClientSDKOptions {
78
+ mode: 'client';
79
+ product: string;
80
+ transport: 'http' | 'ws' | 'sse';
81
+ baseUrl: string;
82
+ auth?: 'cookie' | {
83
+ token: string;
84
+ };
85
+ timeoutMs?: number;
86
+ }
74
87
  /**
75
88
  * Create a client-mode `SoulcraftSDK` from the given options.
76
89
  *
@@ -95,5 +108,6 @@ import type { SoulcraftSDK } from '../types.js';
95
108
  * const results = await sdk.brainy.find({ query: 'candle inventory' })
96
109
  * ```
97
110
  */
98
- export declare function createClientSDK(options: ClientSDKOptions): SoulcraftSDK;
111
+ export declare function createClientSDK(options: LegacyClientSDKOptions): SoulcraftSDK;
112
+ export {};
99
113
  //# sourceMappingURL=create-client-sdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-client-sdk.d.ts","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,aAAa,CAAA;AAO1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CA6EvE"}
1
+ {"version":3,"file":"create-client-sdk.d.ts","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C;;;GAGG;AACH,UAAU,sBAAsB;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAwE7E"}
@@ -120,15 +120,10 @@ export function createClientSDK(options) {
120
120
  transport = new HttpTransport(baseUrl, authToken, useCookies, timeoutMs);
121
121
  }
122
122
  const brainyProxy = createBrainyProxy(transport);
123
- // VFS and versions are sub-namespaces of the Brainy proxy.
124
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- const vfs = brainyProxy.vfs;
126
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
127
- const versions = brainyProxy.versions;
123
+ // This legacy factory only wires the brainy namespace. All other namespaces
124
+ // throw at access time. For full namespace support, use createSoulcraftProxy().
128
125
  const sdk = {
129
126
  brainy: brainyProxy,
130
- vfs,
131
- versions,
132
127
  // Client mode stubs — these module namespaces are server-only.
133
128
  // Accessing them from a client app is a usage error; throw explicitly.
134
129
  get auth() {
@@ -1 +1 @@
1
- {"version":3,"file":"create-client-sdk.js","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-client-sdk.js","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"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"}
@@ -3,64 +3,69 @@
3
3
  * @description Browser/client entry point for @soulcraft/sdk. Exports everything needed
4
4
  * for kit apps running in a browser context to connect to a Soulcraft product backend.
5
5
  *
6
- * Includes: HTTP (JSON RPC), WebSocket (MessagePack binary RPC + change push), SSE
7
- * (server-push), and PostMessage (WebContainer iframe ↔ parent frame) transports.
8
- * Cookie-based and Bearer token auth. The Brainy proxy factory for creating a
9
- * fully-typed `sdk.brainy` API surface over any transport.
6
+ * ## SDK 2.0 Namespace-aware transports (recommended)
10
7
  *
11
- * This entry point has no server-only dependencies it is safe to bundle for the
12
- * browser. The trade-off is that it cannot create Brainy instances directly.
8
+ * Use `createSoulcraftProxy()` with a namespace-aware transport for full access to
9
+ * all 25 SDK namespaces (brainy, chat, graph, search, ai, media, realtime, etc.).
13
10
  *
14
- * @example HTTP transport (kit apps, stateless)
15
- * ```typescript
16
- * import { createBrainyProxy, HttpTransport } from '@soulcraft/sdk/client'
11
+ * - {@link HttpRpcTransport} JSON POST to `/api/rpc`. Stateless, works everywhere.
12
+ * - {@link PostMessageRpcTransport} — `soulcraft:request` PostMessage. WebContainer iframes.
13
+ * - {@link WsTransport} MessagePack binary over WebSocket. Real-time, bidirectional.
17
14
  *
18
- * const brainy = createBrainyProxy(
19
- * new HttpTransport('https://workshop.soulcraft.com', undefined, true)
20
- * )
15
+ * ## Legacy transports (brainy-only)
21
16
  *
22
- * const results = await brainy.find({ query: 'candle kits', limit: 10 })
23
- * ```
17
+ * These transports only support the `brainy` namespace. They still work for backward
18
+ * compatibility but should be migrated to the namespace-aware transports above.
24
19
  *
25
- * @example WebSocket transport (real-time, change push)
26
- * ```typescript
27
- * import { createBrainyProxy, WsTransport } from '@soulcraft/sdk/client'
20
+ * - `LegacyHttpTransport` `/api/brainy/rpc` only.
21
+ * - `LegacyPostMessageTransport` — `brainy:request` only.
22
+ * - `WorkshopTransport` `workshop:request` non-brainy relay (superseded by PostMessageRpcTransport).
28
23
  *
29
- * const transport = new WsTransport(
30
- * 'wss://venue.soulcraft.com/api/brainy/ws',
31
- * capabilityToken,
32
- * 'wicks-and-whiskers'
33
- * )
34
- * await transport.connect()
35
- *
36
- * const brainy = createBrainyProxy(transport)
37
- * brainy.onDataChange((event) => console.log('live change:', event))
24
+ * @example SDK 2.0 full namespace access
25
+ * ```typescript
26
+ * import { createSoulcraftProxy, HttpRpcTransport } from '@soulcraft/sdk/client'
38
27
  *
39
- * const items = await brainy.find({ query: 'inventory' })
28
+ * const sdk = createSoulcraftProxy(new HttpRpcTransport('/api'))
29
+ * const results = await sdk.brainy.find({ query: 'candle kits' })
30
+ * const graph = await sdk.graph.getData()
40
31
  * ```
41
32
  *
42
- * @example SSE transport (receive-only change events, paired with HTTP)
33
+ * @example SDK 2.0 PostMessage in WebContainer iframe
43
34
  * ```typescript
44
- * import { createBrainyProxy, HttpTransport, SseTransport } from '@soulcraft/sdk/client'
35
+ * import { createSoulcraftProxy, PostMessageRpcTransport } from '@soulcraft/sdk/client'
45
36
  *
46
- * const http = new HttpTransport('https://venue.soulcraft.com', undefined, true)
47
- * const sse = new SseTransport('https://venue.soulcraft.com', workspaceId)
48
- * sse.connect()
49
- *
50
- * const brainy = createBrainyProxy(http)
51
- * sse.onEvent((event) => refreshUI(event))
37
+ * const sdk = createSoulcraftProxy(new PostMessageRpcTransport(parentOrigin))
38
+ * const entities = await sdk.brainy.find({ query: 'notes' })
39
+ * for await (const chunk of sdk.chat.sendStreaming('Summarize my notes')) {
40
+ * if (chunk.type === 'text') process.stdout.write(chunk.text!)
41
+ * }
52
42
  * ```
53
43
  */
44
+ export { createSoulcraftProxy } from './namespace-proxy.js';
45
+ export type { NamespaceTransport } from './namespace-proxy.js';
46
+ export { HttpNamespaceTransport, PostMessageNamespaceTransport, HttpRpcTransport, PostMessageRpcTransport, } from '../transports/http-namespace.js';
47
+ export type { HttpNamespaceTransportOptions } from '../transports/http-namespace.js';
54
48
  export { createClientSDK } from './create-client-sdk.js';
55
- export { HttpTransport } from '../transports/http.js';
49
+ /**
50
+ * @deprecated Use {@link HttpRpcTransport} for full namespace support.
51
+ * This transport only supports the `brainy` namespace at `/api/brainy/rpc`.
52
+ */
53
+ export { HttpTransport as LegacyHttpTransport } from '../transports/http.js';
54
+ /**
55
+ * @deprecated Use {@link PostMessageRpcTransport} for full namespace support.
56
+ * This transport only supports `brainy:request` / `brainy:response`.
57
+ */
58
+ export { PostMessageTransport as LegacyPostMessageTransport } from '../transports/postmessage.js';
56
59
  export { WsTransport } from '../transports/ws.js';
57
60
  export { SseTransport } from '../transports/sse.js';
58
- export { PostMessageTransport } from '../transports/postmessage.js';
59
61
  export type { PostMessageRequest, PostMessageResponse } from '../transports/postmessage.js';
60
62
  export type { SDKTransport } from '../transports/transport.js';
63
+ /** @deprecated Use `createSoulcraftProxy()` for full namespace access. */
61
64
  export { createBrainyProxy } from '../modules/brainy/proxy.js';
65
+ /** @deprecated Use `createSoulcraftProxy()` for full namespace access. */
62
66
  export { createAppContext } from '../modules/app-context/index.js';
63
67
  export type { CreateAppContextOptions, AppContext } from '../modules/app-context/index.js';
68
+ /** @deprecated Use {@link PostMessageRpcTransport} which handles all namespaces. */
64
69
  export { WorkshopTransport } from '../transports/workshop.js';
65
70
  export type { WorkshopRequest, WorkshopResponse, WorkshopStreamChunk, } from '../transports/workshop.js';
66
71
  export { createYjsProvider } from '../transports/yjs-provider.js';
@@ -68,7 +73,9 @@ export type { YjsProvider } from '../transports/yjs-provider.js';
68
73
  export { joinHallRoom } from '../modules/hall/browser.js';
69
74
  export type { JoinHallRoomOptions } from '../modules/hall/browser.js';
70
75
  export type { HallRoomHandle, HallRoomHandleEvents, TranscriptEvent, ConceptMentionEvent, RelationProposedEvent, SpeakerChangedEvent, PeerJoinedEvent, PeerLeftEvent, RoomOptions, RecordingManifest, ConceptInput, } from '../modules/hall/types.js';
76
+ export type { SoulcraftSDK } from '../types.js';
71
77
  export type { ClientSDKOptions } from '../types.js';
78
+ export type { SoulcraftNamespaces } from '../namespaces.js';
72
79
  export type { SoulcraftBrainy } from '../modules/brainy/types.js';
73
80
  export type { BrainyChangeEvent } from '../modules/brainy/events.js';
74
81
  export { SDKError, SDKDisconnectedError, SDKTimeoutError, SDKAuthError, SDKForbiddenError, SDKRpcError, SDKMethodNotFoundError, } from '../modules/brainy/errors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAG1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAOH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iCAAiC,CAAA;AACxC,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAOpF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAGxD;;;GAGG;AACH,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC5E;;;GAGG;AACH,OAAO,EAAE,oBAAoB,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAGjG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,0EAA0E;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAG9D,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAG1F,oFAAoF;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAOlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
@@ -3,70 +3,85 @@
3
3
  * @description Browser/client entry point for @soulcraft/sdk. Exports everything needed
4
4
  * for kit apps running in a browser context to connect to a Soulcraft product backend.
5
5
  *
6
- * Includes: HTTP (JSON RPC), WebSocket (MessagePack binary RPC + change push), SSE
7
- * (server-push), and PostMessage (WebContainer iframe ↔ parent frame) transports.
8
- * Cookie-based and Bearer token auth. The Brainy proxy factory for creating a
9
- * fully-typed `sdk.brainy` API surface over any transport.
6
+ * ## SDK 2.0 Namespace-aware transports (recommended)
10
7
  *
11
- * This entry point has no server-only dependencies it is safe to bundle for the
12
- * browser. The trade-off is that it cannot create Brainy instances directly.
8
+ * Use `createSoulcraftProxy()` with a namespace-aware transport for full access to
9
+ * all 25 SDK namespaces (brainy, chat, graph, search, ai, media, realtime, etc.).
13
10
  *
14
- * @example HTTP transport (kit apps, stateless)
15
- * ```typescript
16
- * import { createBrainyProxy, HttpTransport } from '@soulcraft/sdk/client'
11
+ * - {@link HttpRpcTransport} JSON POST to `/api/rpc`. Stateless, works everywhere.
12
+ * - {@link PostMessageRpcTransport} — `soulcraft:request` PostMessage. WebContainer iframes.
13
+ * - {@link WsTransport} MessagePack binary over WebSocket. Real-time, bidirectional.
17
14
  *
18
- * const brainy = createBrainyProxy(
19
- * new HttpTransport('https://workshop.soulcraft.com', undefined, true)
20
- * )
15
+ * ## Legacy transports (brainy-only)
21
16
  *
22
- * const results = await brainy.find({ query: 'candle kits', limit: 10 })
23
- * ```
17
+ * These transports only support the `brainy` namespace. They still work for backward
18
+ * compatibility but should be migrated to the namespace-aware transports above.
24
19
  *
25
- * @example WebSocket transport (real-time, change push)
26
- * ```typescript
27
- * import { createBrainyProxy, WsTransport } from '@soulcraft/sdk/client'
20
+ * - `LegacyHttpTransport` `/api/brainy/rpc` only.
21
+ * - `LegacyPostMessageTransport` — `brainy:request` only.
22
+ * - `WorkshopTransport` `workshop:request` non-brainy relay (superseded by PostMessageRpcTransport).
28
23
  *
29
- * const transport = new WsTransport(
30
- * 'wss://venue.soulcraft.com/api/brainy/ws',
31
- * capabilityToken,
32
- * 'wicks-and-whiskers'
33
- * )
34
- * await transport.connect()
35
- *
36
- * const brainy = createBrainyProxy(transport)
37
- * brainy.onDataChange((event) => console.log('live change:', event))
24
+ * @example SDK 2.0 full namespace access
25
+ * ```typescript
26
+ * import { createSoulcraftProxy, HttpRpcTransport } from '@soulcraft/sdk/client'
38
27
  *
39
- * const items = await brainy.find({ query: 'inventory' })
28
+ * const sdk = createSoulcraftProxy(new HttpRpcTransport('/api'))
29
+ * const results = await sdk.brainy.find({ query: 'candle kits' })
30
+ * const graph = await sdk.graph.getData()
40
31
  * ```
41
32
  *
42
- * @example SSE transport (receive-only change events, paired with HTTP)
33
+ * @example SDK 2.0 PostMessage in WebContainer iframe
43
34
  * ```typescript
44
- * import { createBrainyProxy, HttpTransport, SseTransport } from '@soulcraft/sdk/client'
35
+ * import { createSoulcraftProxy, PostMessageRpcTransport } from '@soulcraft/sdk/client'
45
36
  *
46
- * const http = new HttpTransport('https://venue.soulcraft.com', undefined, true)
47
- * const sse = new SseTransport('https://venue.soulcraft.com', workspaceId)
48
- * sse.connect()
49
- *
50
- * const brainy = createBrainyProxy(http)
51
- * sse.onEvent((event) => refreshUI(event))
37
+ * const sdk = createSoulcraftProxy(new PostMessageRpcTransport(parentOrigin))
38
+ * const entities = await sdk.brainy.find({ query: 'notes' })
39
+ * for await (const chunk of sdk.chat.sendStreaming('Summarize my notes')) {
40
+ * if (chunk.type === 'text') process.stdout.write(chunk.text!)
41
+ * }
52
42
  * ```
53
43
  */
54
- // ── Client SDK factory ────────────────────────────────────────────────────────
44
+ // ═══════════════════════════════════════════════════════════════════════════════
45
+ // SDK 2.0 — Namespace proxy + transports (recommended)
46
+ // ═══════════════════════════════════════════════════════════════════════════════
47
+ // ── Namespace proxy factory ─────────────────────────────────────────────────
48
+ export { createSoulcraftProxy } from './namespace-proxy.js';
49
+ // ── Namespace-aware transports ──────────────────────────────────────────────
50
+ export { HttpNamespaceTransport, PostMessageNamespaceTransport, HttpRpcTransport, PostMessageRpcTransport, } from '../transports/http-namespace.js';
51
+ // ═══════════════════════════════════════════════════════════════════════════════
52
+ // Legacy — Brainy-only transports + factories (deprecated in SDK 2.0)
53
+ // ═══════════════════════════════════════════════════════════════════════════════
54
+ // ── Client SDK factory (creates brainy-only SDK) ────────────────────────────
55
55
  export { createClientSDK } from './create-client-sdk.js';
56
- // ── Transport classes ─────────────────────────────────────────────────────────
57
- export { HttpTransport } from '../transports/http.js';
56
+ // ── Brainy-only transports ──────────────────────────────────────────────────
57
+ /**
58
+ * @deprecated Use {@link HttpRpcTransport} for full namespace support.
59
+ * This transport only supports the `brainy` namespace at `/api/brainy/rpc`.
60
+ */
61
+ export { HttpTransport as LegacyHttpTransport } from '../transports/http.js';
62
+ /**
63
+ * @deprecated Use {@link PostMessageRpcTransport} for full namespace support.
64
+ * This transport only supports `brainy:request` / `brainy:response`.
65
+ */
66
+ export { PostMessageTransport as LegacyPostMessageTransport } from '../transports/postmessage.js';
67
+ // Keep WsTransport and SseTransport — they'll be extended for namespace support.
58
68
  export { WsTransport } from '../transports/ws.js';
59
69
  export { SseTransport } from '../transports/sse.js';
60
- export { PostMessageTransport } from '../transports/postmessage.js';
61
- // ── Proxy factory ─────────────────────────────────────────────────────────────
70
+ // ── Brainy proxy factory (brainy-only) ──────────────────────────────────────
71
+ /** @deprecated Use `createSoulcraftProxy()` for full namespace access. */
62
72
  export { createBrainyProxy } from '../modules/brainy/proxy.js';
63
- // ── App context factory ──────────────────────────────────────────────────────
73
+ // ── App context factory ─────────────────────────────────────────────────────
74
+ /** @deprecated Use `createSoulcraftProxy()` for full namespace access. */
64
75
  export { createAppContext } from '../modules/app-context/index.js';
65
- // ── Workshop transport (non-brainy PostMessage relay) ────────────────────────
76
+ // ── Workshop transport (superseded by PostMessageRpcTransport) ──────────────
77
+ /** @deprecated Use {@link PostMessageRpcTransport} which handles all namespaces. */
66
78
  export { WorkshopTransport } from '../transports/workshop.js';
67
- // ── Y.js provider (collaborative editing) ─────────────────────────────────────
79
+ // ═══════════════════════════════════════════════════════════════════════════════
80
+ // Shared — used by both SDK 2.0 and legacy
81
+ // ═══════════════════════════════════════════════════════════════════════════════
82
+ // ── Y.js provider (collaborative editing) ───────────────────────────────────
68
83
  export { createYjsProvider } from '../transports/yjs-provider.js';
69
- // ── Hall room client (browser WebRTC) ─────────────────────────────────────────
84
+ // ── Hall room client (browser WebRTC) ───────────────────────────────────────
70
85
  export { joinHallRoom } from '../modules/hall/browser.js';
71
86
  export { SDKError, SDKDisconnectedError, SDKTimeoutError, SDKAuthError, SDKForbiddenError, SDKRpcError, SDKMethodNotFoundError, } from '../modules/brainy/errors.js';
72
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAInE,iFAAiF;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,gFAAgF;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGlE,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAO7D,iFAAiF;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAGjE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAoBzD,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,kFAAkF;AAClF,uDAAuD;AACvD,kFAAkF;AAElF,+EAA+E;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG3D,+EAA+E;AAC/E,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iCAAiC,CAAA;AAGxC,kFAAkF;AAClF,sEAAsE;AACtE,kFAAkF;AAElF,+EAA+E;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,+EAA+E;AAC/E;;;GAGG;AACH,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC5E;;;GAGG;AACH,OAAO,EAAE,oBAAoB,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEjG,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,+EAA+E;AAC/E,0EAA0E;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,+EAA+E;AAC/E,0EAA0E;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAGlE,+EAA+E;AAC/E,oFAAoF;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAO7D,kFAAkF;AAClF,2CAA2C;AAC3C,kFAAkF;AAElF,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAGjE,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAsBzD,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @module client/namespace-proxy
3
+ * @description Universal client proxy factory for namespace-aware RPC.
4
+ *
5
+ * Extends the recursive Proxy pattern from `modules/brainy/proxy.ts` to ALL
6
+ * 25 SDK namespaces. Accessing `sdk.chat.send('hello')` serializes as:
7
+ *
8
+ * ```
9
+ * transport.callNs('chat', 'send', ['hello'])
10
+ * ```
11
+ *
12
+ * The first property access on the returned proxy selects the namespace.
13
+ * Subsequent accesses build the method path within that namespace. When the
14
+ * proxy is invoked as a function, the call is dispatched.
15
+ *
16
+ * ## Special namespace: brainy
17
+ *
18
+ * The `brainy` namespace is special — it delegates to the existing
19
+ * `createBrainyProxy()` for full backward compatibility with all existing
20
+ * Brainy methods, sub-APIs (vfs, versions, neural, counts), and lifecycle
21
+ * methods (onDataChange, offDataChange, isAlive, close).
22
+ *
23
+ * ## Streaming
24
+ *
25
+ * Methods that return `AsyncIterable` (e.g. `chat.sendStreaming`) require the
26
+ * transport to support streaming. The proxy calls `transport.callNsStream()`
27
+ * when the caller signals a stream is expected (by convention — the handler
28
+ * decides at the server level).
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { createSoulcraftProxy } from '@soulcraft/sdk/client'
33
+ *
34
+ * const soulcraft = createSoulcraftProxy(transport)
35
+ *
36
+ * // Brainy — delegates to existing BrainyProxy for full compat
37
+ * const results = await soulcraft.brainy.find({ query: 'candles' })
38
+ * const files = await soulcraft.brainy.vfs.readdir('/')
39
+ *
40
+ * // Tier 2 namespaces — new RPC dispatch
41
+ * const graph = await soulcraft.graph.getData()
42
+ * const response = await soulcraft.chat.send('Hello')
43
+ * ```
44
+ */
45
+ import type { SoulcraftSDK } from '../types.js';
46
+ /**
47
+ * Transport interface for namespace-aware RPC.
48
+ *
49
+ * Extends the concept of `SDKTransport.call()` with a namespace field. Adapters
50
+ * for HTTP, WebSocket, and PostMessage implement this by encoding the namespace
51
+ * into their respective wire formats.
52
+ */
53
+ export interface NamespaceTransport {
54
+ /**
55
+ * Dispatch a namespace-aware RPC call.
56
+ *
57
+ * @param ns - Target namespace (e.g. `'chat'`, `'graph'`, `'brainy.vfs'`).
58
+ * @param method - Method within the namespace (e.g. `'send'`, `'getData'`).
59
+ * @param args - Positional arguments.
60
+ * @returns The handler's return value.
61
+ */
62
+ callNs(ns: string, method: string, args: unknown[]): Promise<unknown>;
63
+ /**
64
+ * Dispatch a streaming namespace-aware RPC call.
65
+ *
66
+ * @param ns - Target namespace.
67
+ * @param method - Method within the namespace.
68
+ * @param args - Positional arguments.
69
+ * @returns An async iterable of response chunks.
70
+ */
71
+ callNsStream(ns: string, method: string, args: unknown[]): AsyncIterable<unknown>;
72
+ /**
73
+ * Returns `true` if the transport has an active connection.
74
+ */
75
+ isAlive(): boolean;
76
+ /**
77
+ * Gracefully close the transport.
78
+ */
79
+ close(): Promise<void>;
80
+ }
81
+ /**
82
+ * Creates a `SoulcraftSDK` proxy backed by a {@link NamespaceTransport}.
83
+ *
84
+ * Every property access on the returned object is intercepted:
85
+ * - First-level access selects the namespace (e.g. `sdk.chat`)
86
+ * - Second-level access selects the method (e.g. `sdk.chat.send`)
87
+ * - Invoking as a function dispatches the RPC call
88
+ *
89
+ * Lifecycle methods (`connect`, `disconnect`, `shutdown`) are wired to
90
+ * the transport's lifecycle. The `brainy` namespace supports sub-namespaces
91
+ * (`brainy.vfs`, `brainy.versions`) via namespace promotion.
92
+ *
93
+ * @param transport - The namespace-aware transport.
94
+ * @returns A fully typed `SoulcraftSDK` proxy.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * import { createSoulcraftProxy, HttpTransport } from '@soulcraft/sdk/client'
99
+ *
100
+ * const transport = new HttpTransport('https://workshop.soulcraft.com')
101
+ * const sdk = createSoulcraftProxy(transport)
102
+ *
103
+ * const graph = await sdk.graph.getData()
104
+ * const results = await sdk.brainy.find({ query: 'candles' })
105
+ * ```
106
+ */
107
+ export declare function createSoulcraftProxy(transport: NamespaceTransport): SoulcraftSDK;
108
+ //# sourceMappingURL=namespace-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace-proxy.d.ts","sourceRoot":"","sources":["../../src/client/namespace-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO/C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAErE;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEjF;;OAEG;IACH,OAAO,IAAI,OAAO,CAAA;IAElB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,GAAG,YAAY,CAEhF"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @module client/namespace-proxy
3
+ * @description Universal client proxy factory for namespace-aware RPC.
4
+ *
5
+ * Extends the recursive Proxy pattern from `modules/brainy/proxy.ts` to ALL
6
+ * 25 SDK namespaces. Accessing `sdk.chat.send('hello')` serializes as:
7
+ *
8
+ * ```
9
+ * transport.callNs('chat', 'send', ['hello'])
10
+ * ```
11
+ *
12
+ * The first property access on the returned proxy selects the namespace.
13
+ * Subsequent accesses build the method path within that namespace. When the
14
+ * proxy is invoked as a function, the call is dispatched.
15
+ *
16
+ * ## Special namespace: brainy
17
+ *
18
+ * The `brainy` namespace is special — it delegates to the existing
19
+ * `createBrainyProxy()` for full backward compatibility with all existing
20
+ * Brainy methods, sub-APIs (vfs, versions, neural, counts), and lifecycle
21
+ * methods (onDataChange, offDataChange, isAlive, close).
22
+ *
23
+ * ## Streaming
24
+ *
25
+ * Methods that return `AsyncIterable` (e.g. `chat.sendStreaming`) require the
26
+ * transport to support streaming. The proxy calls `transport.callNsStream()`
27
+ * when the caller signals a stream is expected (by convention — the handler
28
+ * decides at the server level).
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { createSoulcraftProxy } from '@soulcraft/sdk/client'
33
+ *
34
+ * const soulcraft = createSoulcraftProxy(transport)
35
+ *
36
+ * // Brainy — delegates to existing BrainyProxy for full compat
37
+ * const results = await soulcraft.brainy.find({ query: 'candles' })
38
+ * const files = await soulcraft.brainy.vfs.readdir('/')
39
+ *
40
+ * // Tier 2 namespaces — new RPC dispatch
41
+ * const graph = await soulcraft.graph.getData()
42
+ * const response = await soulcraft.chat.send('Hello')
43
+ * ```
44
+ */
45
+ // ─────────────────────────────────────────────────────────────────────────────
46
+ // Proxy factory
47
+ // ─────────────────────────────────────────────────────────────────────────────
48
+ /**
49
+ * Creates a `SoulcraftSDK` proxy backed by a {@link NamespaceTransport}.
50
+ *
51
+ * Every property access on the returned object is intercepted:
52
+ * - First-level access selects the namespace (e.g. `sdk.chat`)
53
+ * - Second-level access selects the method (e.g. `sdk.chat.send`)
54
+ * - Invoking as a function dispatches the RPC call
55
+ *
56
+ * Lifecycle methods (`connect`, `disconnect`, `shutdown`) are wired to
57
+ * the transport's lifecycle. The `brainy` namespace supports sub-namespaces
58
+ * (`brainy.vfs`, `brainy.versions`) via namespace promotion.
59
+ *
60
+ * @param transport - The namespace-aware transport.
61
+ * @returns A fully typed `SoulcraftSDK` proxy.
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * import { createSoulcraftProxy, HttpTransport } from '@soulcraft/sdk/client'
66
+ *
67
+ * const transport = new HttpTransport('https://workshop.soulcraft.com')
68
+ * const sdk = createSoulcraftProxy(transport)
69
+ *
70
+ * const graph = await sdk.graph.getData()
71
+ * const results = await sdk.brainy.find({ query: 'candles' })
72
+ * ```
73
+ */
74
+ export function createSoulcraftProxy(transport) {
75
+ return _createRootProxy(transport);
76
+ }
77
+ // ─────────────────────────────────────────────────────────────────────────────
78
+ // Internal recursive proxy
79
+ // ─────────────────────────────────────────────────────────────────────────────
80
+ /**
81
+ * Creates the root-level proxy that intercepts namespace selection.
82
+ *
83
+ * @param transport - The namespace transport.
84
+ * @returns A Proxy that dispatches namespace RPC calls.
85
+ */
86
+ function _createRootProxy(transport) {
87
+ return new Proxy(function () { }, {
88
+ get(_target, prop) {
89
+ if (typeof prop === 'symbol')
90
+ return undefined;
91
+ if (prop === 'then')
92
+ return undefined;
93
+ const ns = String(prop);
94
+ // Root-level lifecycle methods.
95
+ if (ns === '_transport')
96
+ return transport;
97
+ if (ns === 'isAlive')
98
+ return () => transport.isAlive();
99
+ if (ns === 'close')
100
+ return () => transport.close();
101
+ // Return a namespace proxy that accumulates the method path.
102
+ return _createNamespaceProxy(transport, ns, '');
103
+ },
104
+ });
105
+ }
106
+ /**
107
+ * Creates a proxy for a specific namespace, accumulating the method path.
108
+ *
109
+ * Supports nested sub-methods (e.g. `soulcraft.brainy.vfs.readdir()`):
110
+ * - `ns: 'brainy'`, `methodPath: ''` → access `.vfs` → `ns: 'brainy.vfs'`, `methodPath: ''`
111
+ * - `ns: 'brainy.vfs'`, `methodPath: ''` → access `.readdir` → `methodPath: 'readdir'`
112
+ * - Invoked with `['/']` → `transport.callNs('brainy.vfs', 'readdir', ['/'])`
113
+ *
114
+ * For the `brainy` namespace, the first few sub-properties become namespace
115
+ * extensions (`brainy.vfs`, `brainy.versions`) rather than method paths.
116
+ *
117
+ * @param transport - The namespace transport.
118
+ * @param ns - The resolved namespace.
119
+ * @param methodPath - Accumulated dot-separated method path (empty at namespace root).
120
+ * @returns A callable Proxy.
121
+ */
122
+ function _createNamespaceProxy(transport, ns, methodPath) {
123
+ return new Proxy(function () { }, {
124
+ get(_target, prop) {
125
+ if (typeof prop === 'symbol')
126
+ return undefined;
127
+ if (prop === 'then')
128
+ return undefined;
129
+ const propStr = String(prop);
130
+ // Brainy sub-namespace promotion: brainy.vfs, brainy.versions become
131
+ // their own namespace rather than a method path.
132
+ if (ns === 'brainy' && methodPath === '' && BRAINY_SUB_NAMESPACES.has(propStr)) {
133
+ return _createNamespaceProxy(transport, `brainy.${propStr}`, '');
134
+ }
135
+ // Accumulate method path.
136
+ const nextPath = methodPath ? `${methodPath}.${propStr}` : propStr;
137
+ return _createNamespaceProxy(transport, ns, nextPath);
138
+ },
139
+ apply(_target, _thisArg, args) {
140
+ // The proxy was invoked as a function — dispatch the RPC call.
141
+ if (!methodPath) {
142
+ // Namespace-level invocation (e.g. `soulcraft.brainy()`) — not valid.
143
+ return Promise.reject(new Error(`Cannot call namespace '${ns}' directly. Use a method, e.g. ${ns}.someMethod()`));
144
+ }
145
+ return transport.callNs(ns, methodPath, args);
146
+ },
147
+ });
148
+ }
149
+ /** Brainy sub-properties that promote to their own namespace. */
150
+ const BRAINY_SUB_NAMESPACES = new Set(['vfs', 'versions']);
151
+ //# sourceMappingURL=namespace-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace-proxy.js","sourceRoot":"","sources":["../../src/client/namespace-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAgDH,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,OAAO,gBAAgB,CAAC,SAAS,CAAiB,CAAA;AACpD,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,SAA6B;IACrD,OAAO,IAAI,KAAK,CAAC,cAAa,CAAC,EAAE;QAC/B,GAAG,CAAC,OAAO,EAAE,IAAqB;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAA;YAErC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAEvB,gCAAgC;YAChC,IAAI,EAAE,KAAK,YAAY;gBAAE,OAAO,SAAS,CAAA;YACzC,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YACtD,IAAI,EAAE,KAAK,OAAO;gBAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YAElD,6DAA6D;YAC7D,OAAO,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACjD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,qBAAqB,CAC5B,SAA6B,EAC7B,EAAU,EACV,UAAkB;IAElB,OAAO,IAAI,KAAK,CAAC,cAAa,CAAC,EAAE;QAC/B,GAAG,CAAC,OAAO,EAAE,IAAqB;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAA;YAErC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAE5B,qEAAqE;YACrE,iDAAiD;YACjD,IAAI,EAAE,KAAK,QAAQ,IAAI,UAAU,KAAK,EAAE,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/E,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;YAClE,CAAC;YAED,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YAClE,OAAO,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QACvD,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAe;YACtC,+DAA+D;YAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,sEAAsE;gBACtE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,0BAA0B,EAAE,kCAAkC,EAAE,eAAe,CAAC,CAC3F,CAAA;YACH,CAAC;YACD,OAAO,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAC/C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -32,4 +32,6 @@ export type { WvizDocument, WvizEntity, WvizEdge, WvizSnapshot, WvizViewType, Wd
32
32
  export { SOULCRAFT_FORMATS } from './modules/formats/types.js';
33
33
  export type { BillingModule, BillingPlanType, SubscriptionStatus, ModelUsage, UsageData, UsageStatus, SubscriptionData, LimitCheckResult, BatchIncrementData, CreateCheckoutSessionOptions, CreatePortalSessionOptions, } from './modules/billing/types.js';
34
34
  export type { NotificationsModule, Notification, NotificationResult, NotificationSender, EmailNotification, SmsNotification, } from './modules/notifications/types.js';
35
+ export type { SoulcraftRPC, SoulcraftRPCResponse, SoulcraftRPCStream, SoulcraftRPCError, SoulcraftPostMessageRequest, SoulcraftPostMessageResponse, SoulcraftPostMessageStream, SoulcraftPostMessageEvent, SoulcraftPostMessage, } from './rpc.js';
36
+ export type { SoulcraftNamespaces, ChatNamespace, GraphNamespace, SearchNamespace, CollectionsNamespace, AnnotationsNamespace, WorkspaceNamespace, PublishNamespace, ImportNamespace, ExportNamespace, ConfigNamespace, SettingsNamespace, ProjectNamespace, SessionNamespace, PulseNamespace, AuthNamespace, MediaNamespace, RealtimeNamespace, CommerceNamespace, CertificationNamespace, FormatsNamespace, ChatStreamChunk, ChatConversation, ChatMessage, ChatConversationDetail, GraphData, GraphNode, GraphEdge, GraphStats, SearchResult, ViewCollection, Annotation, WorkspaceInfo, WorkspaceStatus, PublishedLink, ImportProgress, ExportFormat, PlatformConfig, ApiKeyInfo, StorageUsage, SessionState, MediaUploadResult, MediaInfo, RealtimePeer, RealtimeSubscription, CommerceProduct, CheckoutSession, PaymentRecord, Certification, AssessmentResult, OutputFormat, FormatValidationResult, } from './namespaces.js';
35
37
  //# sourceMappingURL=index.d.ts.map