@rool-dev/sdk 0.11.3 → 0.11.4

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 (49) hide show
  1. package/README.md +156 -105
  2. package/dist/auth-base.d.ts +100 -0
  3. package/dist/auth-base.d.ts.map +1 -0
  4. package/dist/auth-base.js +377 -0
  5. package/dist/auth-base.js.map +1 -0
  6. package/dist/auth-browser.d.ts +6 -77
  7. package/dist/auth-browser.d.ts.map +1 -1
  8. package/dist/auth-browser.js +32 -328
  9. package/dist/auth-browser.js.map +1 -1
  10. package/dist/auth-native.d.ts +72 -0
  11. package/dist/auth-native.d.ts.map +1 -0
  12. package/dist/auth-native.js +260 -0
  13. package/dist/auth-native.js.map +1 -0
  14. package/dist/auth.d.ts +17 -1
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +36 -5
  17. package/dist/auth.js.map +1 -1
  18. package/dist/client.d.ts +27 -8
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +52 -26
  21. package/dist/client.js.map +1 -1
  22. package/dist/graphql.d.ts +13 -19
  23. package/dist/graphql.d.ts.map +1 -1
  24. package/dist/graphql.js +35 -70
  25. package/dist/graphql.js.map +1 -1
  26. package/dist/index.d.ts +4 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -2
  29. package/dist/index.js.map +1 -1
  30. package/dist/reroute.d.ts.map +1 -1
  31. package/dist/reroute.js +9 -0
  32. package/dist/reroute.js.map +1 -1
  33. package/dist/{channel.d.ts → space-session.d.ts} +44 -139
  34. package/dist/space-session.d.ts.map +1 -0
  35. package/dist/{channel.js → space-session.js} +111 -325
  36. package/dist/space-session.js.map +1 -0
  37. package/dist/space.d.ts +18 -48
  38. package/dist/space.d.ts.map +1 -1
  39. package/dist/space.js +84 -223
  40. package/dist/space.js.map +1 -1
  41. package/dist/subscription.d.ts +2 -2
  42. package/dist/subscription.d.ts.map +1 -1
  43. package/dist/subscription.js +6 -30
  44. package/dist/subscription.js.map +1 -1
  45. package/dist/types.d.ts +58 -83
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/channel.d.ts.map +0 -1
  49. package/dist/channel.js.map +0 -1
@@ -3,9 +3,9 @@ import type { GraphQLClient } from './graphql.js';
3
3
  import type { RestClient } from './rest.js';
4
4
  import { type RoolWebDAV } from './webdav.js';
5
5
  import type { Logger } from './logger.js';
6
- import type { RoolObject, GetObjectsResult, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, UpdateObjectOptions, MoveObjectOptions, ChannelEvent, Interaction, Channel, ConversationInfo, SpaceSchema, CollectionDef, FieldDef, CollectionOptions } from './types.js';
6
+ import type { RoolObject, GetObjectsResult, RoolObjectStat, RoolSpaceEvents, RoolUserRole, PromptOptions, UpdateObjectOptions, MoveObjectOptions, SpaceEvent, Interaction, Conversation, ConversationInfo, SpaceSchema, CollectionDef, FieldDef, CollectionOptions } from './types.js';
7
7
  export declare function generateEntityId(): string;
8
- export interface ChannelConfig {
8
+ export interface SpaceOperationsConfig {
9
9
  id: string;
10
10
  name: string;
11
11
  role: RoolUserRole;
@@ -17,10 +17,8 @@ export interface ChannelConfig {
17
17
  schema: SpaceSchema;
18
18
  /** Space metadata */
19
19
  meta: Record<string, unknown>;
20
- /** This channel's data (undefined if new) */
21
- channel: Channel | undefined;
22
- /** Channel ID for this channel (required). */
23
- channelId: string;
20
+ /** Conversations keyed by ID. */
21
+ conversations: Record<string, Conversation>;
24
22
  graphqlClient: GraphQLClient;
25
23
  restClient: RestClient;
26
24
  webdav: RoolWebDAV;
@@ -28,118 +26,77 @@ export interface ChannelConfig {
28
26
  onClose: () => void;
29
27
  }
30
28
  /**
31
- * A channel is a space + channelId pair.
29
+ * Operational handle for a space.
32
30
  *
33
- * All object operations go through a channel. The channelId is fixed
34
- * at open time and cannot be changed. To use a different channel,
35
- * open a second one.
36
- *
37
- * Objects are addressed by machine path (`/space/.../*.json`).
38
- * Only schema, metadata, object stats, and the channel's own history are cached
39
- * locally. Object bodies are fetched on demand. Object/file reactivity is
40
- * exposed at the space level via WebDAV sync notifications.
31
+ * Objects are addressed by machine path (`/space/.../*.json`). Conversation handles
32
+ * control attribution and AI history. Only schema, metadata,
33
+ * object stats, and conversation history are cached locally. Object bodies are
34
+ * fetched on demand. Object/file reactivity is exposed at the space level via
35
+ * WebDAV sync notifications.
41
36
  */
42
- export declare class RoolChannel extends EventEmitter<ChannelEvents> {
43
- private _id;
44
- private _name;
45
- private _role;
46
- private _userId;
47
- private _channelId;
48
- private _conversationId;
49
- private _closed;
50
- private graphqlClient;
51
- private restClient;
52
- private webdav;
53
- private onCloseCallback;
54
- private logger;
55
- private _meta;
56
- private _schema;
57
- private _channel;
58
- private _objectStats;
59
- private _activeLeaves;
60
- constructor(config: ChannelConfig);
37
+ export declare class SpaceOperations extends EventEmitter<RoolSpaceEvents> {
38
+ protected _id: string;
39
+ protected _name: string;
40
+ protected _role: RoolUserRole;
41
+ protected _userId: string;
42
+ protected _closed: boolean;
43
+ protected _graphqlClient: GraphQLClient;
44
+ protected _restClient: RestClient;
45
+ protected _webdav: RoolWebDAV;
46
+ protected _onCloseCallback: () => void;
47
+ protected _logger: Logger;
48
+ protected _meta: Record<string, unknown>;
49
+ protected _schema: SpaceSchema;
50
+ protected _conversations: Record<string, Conversation>;
51
+ protected _objectStats: Map<string, RoolObjectStat>;
52
+ protected _activeLeaves: Map<string, string>;
53
+ constructor(config: SpaceOperationsConfig);
61
54
  /**
62
55
  * Handle an event from the shared space subscription.
63
56
  * Called by the client's event router.
64
57
  * @internal
65
58
  */
66
- _handleEvent(event: ChannelEvent): void;
59
+ _handleEvent(event: SpaceEvent): void;
67
60
  /**
68
61
  * Apply resync data after reconnection. Called by the client, which
69
- * fetches space data once and distributes to all channels.
62
+ * fetches space data once and applies it.
70
63
  * @internal
71
64
  */
72
65
  _applyResyncData(data: {
73
66
  meta: Record<string, unknown>;
74
67
  schema: SpaceSchema;
75
68
  objectStats: Record<string, RoolObjectStat>;
76
- channel: Channel | undefined;
69
+ conversations: Record<string, Conversation>;
77
70
  }): void;
78
71
  get id(): string;
79
72
  get name(): string;
80
73
  get role(): RoolUserRole;
81
74
  /** Current user's ID (for identifying own interactions) */
82
75
  get userId(): string;
83
- /**
84
- * Get the channel's display name, or null if not set.
85
- */
86
- get channelName(): string | null;
87
- /**
88
- * Get the channel ID for this channel.
89
- * Fixed at open time — cannot be changed.
90
- */
91
- get channelId(): string;
92
- /**
93
- * Get the conversation ID for this channel.
94
- * Defaults to 'default' for most apps.
95
- */
96
- get conversationId(): string;
97
76
  get isReadOnly(): boolean;
98
- /**
99
- * Get the active branch of the current conversation as a flat array (root → leaf).
100
- * Walks from the active leaf up through parentId pointers.
101
- */
102
- getInteractions(): Interaction[];
103
77
  /** @internal */
104
78
  _getInteractionsImpl(conversationId: string): Interaction[];
105
- /**
106
- * Get the full interaction tree for a conversation as a record.
107
- * For clients that need to render branch navigation UI.
108
- */
109
- getTree(): Record<string, Interaction>;
110
79
  /** @internal */
111
80
  _getTreeImpl(conversationId: string): Record<string, Interaction>;
112
- /**
113
- * Get the active leaf interaction ID for a conversation.
114
- * Returns undefined if the conversation has no interactions.
115
- */
116
- get activeLeafId(): string | undefined;
117
81
  /** @internal */
118
82
  _getActiveLeafImpl(conversationId: string): string | undefined;
119
- /**
120
- * Set the active leaf for a conversation (switch branches).
121
- * Emits a conversationUpdated event so reactive wrappers refresh.
122
- */
123
- setActiveLeaf(interactionId: string): void;
124
83
  /** @internal */
125
84
  _setActiveLeafImpl(interactionId: string, conversationId: string): void;
126
85
  /**
127
- * Get all conversations in this channel.
86
+ * Get all conversations in this space.
128
87
  * Returns summary info (no full interaction data) for each conversation.
129
88
  */
130
89
  getConversations(): ConversationInfo[];
131
90
  /**
132
- * Delete a conversation from this channel.
133
- * Cannot delete the conversation you are currently using.
91
+ * Delete a conversation from this space.
134
92
  */
135
93
  deleteConversation(conversationId: string): Promise<void>;
136
94
  /**
137
- * Get a handle for a specific conversation within this channel.
95
+ * Get a handle for a specific conversation.
138
96
  */
139
97
  conversation(conversationId: string): ConversationHandle;
140
98
  /**
141
- * Close this channel and clean up resources.
142
- * Stops real-time subscription and unregisters from client.
99
+ * Close this space session and clean up resources.
143
100
  */
144
101
  close(): void;
145
102
  /**
@@ -164,113 +121,59 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
164
121
  getObjects(paths: string[]): Promise<GetObjectsResult>;
165
122
  /** Get an object's cached audit information. */
166
123
  stat(path: string): RoolObjectStat | undefined;
167
- /** Create or replace an object JSON file at an exact machine path. */
168
- putObject(path: string, body: Record<string, unknown>): Promise<{
169
- object: RoolObject;
170
- message: string;
171
- }>;
172
124
  /** @internal */
173
125
  _putObjectImpl(path: string, body: Record<string, unknown>, conversationId: string): Promise<{
174
126
  object: RoolObject;
175
127
  message: string;
176
128
  }>;
177
- /** Patch an existing object. Null or undefined deletes a field. */
178
- patchObject(path: string, options: UpdateObjectOptions): Promise<{
179
- object: RoolObject;
180
- message: string;
181
- }>;
182
129
  /** @internal */
183
130
  _patchObjectImpl(path: string, options: UpdateObjectOptions, conversationId: string): Promise<{
184
131
  object: RoolObject;
185
132
  message: string;
186
133
  }>;
187
- /** Move an object JSON file to a new machine path, optionally replacing its body. */
188
- moveObject(from: string, to: string, options?: MoveObjectOptions): Promise<{
189
- object: RoolObject;
190
- message: string;
191
- }>;
192
134
  /** @internal */
193
135
  _moveObjectImpl(from: string, to: string, options: MoveObjectOptions | undefined, conversationId: string): Promise<{
194
136
  object: RoolObject;
195
137
  message: string;
196
138
  }>;
197
- /** Delete object JSON files by machine path. */
198
- deleteObjects(paths: string[]): Promise<void>;
199
- /** @deprecated Use deleteObjects instead. */
200
- deletePaths(paths: string[]): Promise<void>;
201
139
  /** @internal */
202
140
  _deleteObjectsImpl(paths: string[], conversationId: string): Promise<void>;
203
141
  /** Get the current schema for this space. */
204
142
  getSchema(): SpaceSchema;
205
- /** Create a new collection schema. */
206
- createCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
207
143
  /** @internal */
208
144
  _createCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
209
- /** Alter an existing collection schema, replacing its field definitions. */
210
- alterCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
211
145
  /** @internal */
212
146
  _alterCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
213
- /** Drop a collection schema. */
214
- dropCollection(name: string): Promise<void>;
215
147
  /** @internal */
216
148
  _dropCollectionImpl(name: string, conversationId: string): Promise<void>;
217
- /**
218
- * Get the system instruction for the current conversation.
219
- */
220
- getSystemInstruction(): string | undefined;
221
149
  /** @internal */
222
150
  _getSystemInstructionImpl(conversationId: string): string | undefined;
223
- /** Set the system instruction for the current conversation. */
224
- setSystemInstruction(instruction: string | null): Promise<void>;
225
151
  /** @internal */
226
152
  _setSystemInstructionImpl(instruction: string | null, conversationId: string): Promise<void>;
227
- /** Rename the current conversation. */
228
- renameConversation(name: string): Promise<void>;
229
153
  /** @internal */
230
154
  _renameConversationImpl(name: string, conversationId: string): Promise<void>;
231
155
  /** @internal */
232
156
  _ensureConversationImpl(conversationId: string): void;
233
- /** Set a space-level metadata value. */
234
- setMetadata(key: string, value: unknown): void;
235
157
  /** @internal */
236
158
  _setMetadataImpl(key: string, value: unknown, conversationId: string): void;
237
159
  /** Get a space-level metadata value. */
238
160
  getMetadata(key: string): unknown;
239
161
  /** Get all space-level metadata. */
240
162
  getAllMetadata(): Record<string, unknown>;
241
- /**
242
- * Send a prompt to the AI agent for space manipulation.
243
- * @returns The message from the AI and the list of objects that were created or modified.
244
- */
245
- prompt(prompt: string, options?: PromptOptions): Promise<{
246
- message: string;
247
- objects: RoolObject[];
248
- }>;
249
163
  /** @internal */
250
164
  _promptImpl(prompt: string, options: PromptOptions | undefined, conversationId: string): Promise<{
251
165
  message: string;
252
166
  objects: RoolObject[];
253
167
  }>;
254
- /**
255
- * Stop the in-flight interaction on the default conversation, if any.
256
- *
257
- * No-op returning `false` when the active leaf is already finished or the
258
- * conversation has no interactions. Stopping is best-effort: the server
259
- * halts the agent loop and closes the stream, but an LLM turn already in
260
- * flight keeps generating server-side and is billed.
261
- */
262
- stop(): Promise<boolean>;
263
168
  /**
264
169
  * Request that the server stop a specific in-flight interaction by ID.
265
170
  *
266
171
  * Returns whether the server stopped an interaction (`false` if it had
267
- * already finished). Stopping is best-effort — see {@link stop}.
172
+ * already finished). Stopping is best-effort — see {@link ConversationHandle.stop}.
268
173
  */
269
174
  stopInteraction(interactionId: string): Promise<boolean>;
270
175
  /** @internal */
271
176
  _stopImpl(conversationId: string): Promise<boolean>;
272
- /** Rename this channel. */
273
- rename(newName: string): Promise<void>;
274
177
  /**
275
178
  * Fetch an external URL via the server proxy, bypassing CORS restrictions.
276
179
  */
@@ -282,20 +185,20 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
282
185
  private uploadAttachment;
283
186
  private ensureCollection;
284
187
  /**
285
- * Handle a channel event from the subscription.
188
+ * Handle a space event from the subscription.
286
189
  * @internal
287
190
  */
288
- private handleChannelEvent;
191
+ private applySpaceContentEvent;
289
192
  }
290
193
  /**
291
- * A lightweight handle for a specific conversation within a channel.
194
+ * A lightweight handle for a specific conversation.
292
195
  */
293
196
  export declare class ConversationHandle {
294
197
  /** @internal */
295
- private _channel;
198
+ private _space;
296
199
  private _conversationId;
297
200
  /** @internal */
298
- constructor(channel: RoolChannel, conversationId: string);
201
+ constructor(space: SpaceOperations, conversationId: string);
299
202
  /** The conversation ID this handle is scoped to. */
300
203
  get conversationId(): string;
301
204
  /** Get the active branch of this conversation as a flat array (root → leaf). */
@@ -312,6 +215,8 @@ export declare class ConversationHandle {
312
215
  setSystemInstruction(instruction: string | null): Promise<void>;
313
216
  /** Rename this conversation. */
314
217
  rename(name: string): Promise<void>;
218
+ /** Delete this conversation. */
219
+ delete(): Promise<void>;
315
220
  /** Create or replace an object JSON file. */
316
221
  putObject(path: string, body: Record<string, unknown>): Promise<{
317
222
  object: RoolObject;
@@ -339,7 +244,7 @@ export declare class ConversationHandle {
339
244
  /**
340
245
  * Stop this conversation's in-flight interaction, if any. No-op returning
341
246
  * `false` when nothing is running. Stopping is best-effort — see
342
- * {@link RoolChannel.stop}.
247
+ * {@link RoolSpace.stopInteraction}.
343
248
  */
344
249
  stop(): Promise<boolean>;
345
250
  /** Create a new collection schema. */
@@ -350,4 +255,4 @@ export declare class ConversationHandle {
350
255
  dropCollection(name: string): Promise<void>;
351
256
  setMetadata(key: string, value: unknown): void;
352
257
  }
353
- //# sourceMappingURL=channel.d.ts.map
258
+ //# sourceMappingURL=space-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-session.d.ts","sourceRoot":"","sources":["../src/space-session.ts"],"names":[],"mappings":"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"}