@rool-dev/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +1070 -0
  2. package/dist/apps.d.ts +29 -0
  3. package/dist/apps.d.ts.map +1 -0
  4. package/dist/apps.js +88 -0
  5. package/dist/apps.js.map +1 -0
  6. package/dist/auth-browser.d.ts +80 -0
  7. package/dist/auth-browser.d.ts.map +1 -0
  8. package/dist/auth-browser.js +370 -0
  9. package/dist/auth-browser.js.map +1 -0
  10. package/dist/auth-node.d.ts +46 -0
  11. package/dist/auth-node.d.ts.map +1 -0
  12. package/dist/auth-node.js +316 -0
  13. package/dist/auth-node.js.map +1 -0
  14. package/dist/auth.d.ts +56 -0
  15. package/dist/auth.d.ts.map +1 -0
  16. package/dist/auth.js +96 -0
  17. package/dist/auth.js.map +1 -0
  18. package/dist/client.d.ts +202 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +472 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/event-emitter.d.ts +38 -0
  23. package/dist/event-emitter.d.ts.map +1 -0
  24. package/dist/event-emitter.js +80 -0
  25. package/dist/event-emitter.js.map +1 -0
  26. package/dist/graphql.d.ts +71 -0
  27. package/dist/graphql.d.ts.map +1 -0
  28. package/dist/graphql.js +487 -0
  29. package/dist/graphql.js.map +1 -0
  30. package/dist/index.d.ts +6 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +11 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/jsonld.d.ts +47 -0
  35. package/dist/jsonld.d.ts.map +1 -0
  36. package/dist/jsonld.js +137 -0
  37. package/dist/jsonld.js.map +1 -0
  38. package/dist/media.d.ts +52 -0
  39. package/dist/media.d.ts.map +1 -0
  40. package/dist/media.js +173 -0
  41. package/dist/media.js.map +1 -0
  42. package/dist/space.d.ts +358 -0
  43. package/dist/space.d.ts.map +1 -0
  44. package/dist/space.js +1121 -0
  45. package/dist/space.js.map +1 -0
  46. package/dist/subscription.d.ts +57 -0
  47. package/dist/subscription.d.ts.map +1 -0
  48. package/dist/subscription.js +296 -0
  49. package/dist/subscription.js.map +1 -0
  50. package/dist/types.d.ts +409 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +6 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +65 -0
@@ -0,0 +1,358 @@
1
+ import { EventEmitter } from './event-emitter.js';
2
+ import type { GraphQLClient } from './graphql.js';
3
+ import type { MediaClient } from './media.js';
4
+ import type { AuthManager } from './auth.js';
5
+ import { type JsonLdDocument } from './jsonld.js';
6
+ import type { RoolSpaceData, RoolObject, RoolObjectStat, SpaceEvents, RoolUserRole, SpaceMember, PromptOptions, FindObjectsOptions, MediaInfo, MediaResponse, Interaction, ConversationInfo } from './types.js';
7
+ export declare function generateEntityId(): string;
8
+ export interface SpaceConfig {
9
+ id: string;
10
+ name: string;
11
+ role: RoolUserRole;
12
+ /** Current user's ID (for identifying own interactions) */
13
+ userId: string;
14
+ initialData: RoolSpaceData;
15
+ /** Optional conversation ID for AI context continuity. If not provided, a new conversation is created. */
16
+ conversationId?: string;
17
+ graphqlClient: GraphQLClient;
18
+ mediaClient: MediaClient;
19
+ graphqlUrl: string;
20
+ authManager: AuthManager;
21
+ onClose: (spaceId: string) => void;
22
+ }
23
+ /**
24
+ * First-class Space object.
25
+ *
26
+ * Features:
27
+ * - High-level object/link operations
28
+ * - Built-in undo/redo with checkpoints
29
+ * - Metadata management
30
+ * - Event emission for state changes
31
+ * - Real-time updates via space-specific subscription
32
+ */
33
+ export declare class RoolSpace extends EventEmitter<SpaceEvents> {
34
+ private _id;
35
+ private _name;
36
+ private _role;
37
+ private _userId;
38
+ private _conversationId;
39
+ private _data;
40
+ private graphqlClient;
41
+ private mediaClient;
42
+ private subscriptionManager;
43
+ private onCloseCallback;
44
+ constructor(config: SpaceConfig);
45
+ get id(): string;
46
+ get name(): string;
47
+ get role(): RoolUserRole;
48
+ /** Current user's ID (for identifying own interactions) */
49
+ get userId(): string;
50
+ /**
51
+ * Get the conversation ID for this space instance.
52
+ * Used for AI context tracking and echo suppression.
53
+ */
54
+ get conversationId(): string;
55
+ /**
56
+ * Set the conversation ID for AI context tracking.
57
+ * Emits 'conversationIdChanged' event.
58
+ */
59
+ set conversationId(value: string);
60
+ get isReadOnly(): boolean;
61
+ /**
62
+ * Get interactions for this space's current conversationId.
63
+ * Returns the interactions array.
64
+ */
65
+ getInteractions(): Interaction[];
66
+ /**
67
+ * Get interactions for a specific conversation ID.
68
+ * Useful for viewing other conversations in the space.
69
+ */
70
+ getInteractionsById(conversationId: string): Interaction[];
71
+ /**
72
+ * Get all conversation IDs that have conversations in this space.
73
+ */
74
+ getConversationIds(): string[];
75
+ /**
76
+ * Rename this space.
77
+ */
78
+ rename(newName: string): Promise<void>;
79
+ /**
80
+ * Close this space and clean up resources.
81
+ * Stops real-time subscription and unregisters from client.
82
+ */
83
+ close(): void;
84
+ /**
85
+ * Create a checkpoint (seal current batch of changes).
86
+ * Patches accumulate automatically - this seals them with a label.
87
+ * @returns The checkpoint ID
88
+ */
89
+ checkpoint(label?: string): Promise<string>;
90
+ /**
91
+ * Check if undo is available.
92
+ */
93
+ canUndo(): Promise<boolean>;
94
+ /**
95
+ * Check if redo is available.
96
+ */
97
+ canRedo(): Promise<boolean>;
98
+ /**
99
+ * Undo the most recent batch of changes.
100
+ * Reverses your most recent batch (sealed or open).
101
+ * Conflicting patches (modified by others) are silently skipped.
102
+ * @returns true if undo was performed
103
+ */
104
+ undo(): Promise<boolean>;
105
+ /**
106
+ * Redo a previously undone batch of changes.
107
+ * @returns true if redo was performed
108
+ */
109
+ redo(): Promise<boolean>;
110
+ /**
111
+ * Clear checkpoint history for this conversation.
112
+ */
113
+ clearHistory(): Promise<void>;
114
+ /**
115
+ * Get an object's data by ID.
116
+ * Returns just the data portion (RoolObject), not the full entry with meta/links.
117
+ */
118
+ getObject(objectId: string): Promise<RoolObject | undefined>;
119
+ /**
120
+ * Get an object's stat (audit information).
121
+ * Returns modification timestamp and author, or undefined if object not found.
122
+ */
123
+ stat(objectId: string): Promise<RoolObjectStat | undefined>;
124
+ /**
125
+ * Find objects using structured filters and natural language.
126
+ * @param options.where - Structured field requirements (exact match). Use {{placeholder}} for semantic matching.
127
+ * @param options.prompt - Natural language query/refinement
128
+ * @param options.limit - Maximum number of results to return
129
+ * @param options.objectIds - Scope search to specific objects
130
+ * @returns The matching objects and a message from the AI
131
+ *
132
+ * @example
133
+ * // Exact match
134
+ * const { objects } = await space.findObjects({ where: { type: 'article' } });
135
+ *
136
+ * @example
137
+ * // Natural language
138
+ * const { objects, message } = await space.findObjects({
139
+ * prompt: 'articles about space exploration'
140
+ * });
141
+ *
142
+ * @example
143
+ * // Combined - structured + semantic
144
+ * const { objects } = await space.findObjects({
145
+ * where: { type: 'article', category: '{{something about food}}' },
146
+ * prompt: 'published in the last month',
147
+ * limit: 10
148
+ * });
149
+ */
150
+ findObjects(options: FindObjectsOptions): Promise<{
151
+ objects: RoolObject[];
152
+ message: string;
153
+ }>;
154
+ /**
155
+ * Get all object IDs.
156
+ * @param options.limit - Maximum number of IDs to return
157
+ * @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
158
+ */
159
+ getObjectIds(options?: {
160
+ limit?: number;
161
+ order?: 'asc' | 'desc';
162
+ }): string[];
163
+ /**
164
+ * Create a new object with optional AI generation.
165
+ * @param options.data - Object data fields (any key-value pairs). Optionally include `id` to use a custom ID. Use {{placeholder}} for AI-generated content. Fields prefixed with _ are hidden from AI.
166
+ * @param options.prompt - AI prompt for content generation (optional).
167
+ * @param options.ephemeral - If true, the operation won't be recorded in conversation history.
168
+ * @returns The created object (with AI-filled content) and message
169
+ */
170
+ createObject(options: {
171
+ data: Record<string, unknown>;
172
+ prompt?: string;
173
+ ephemeral?: boolean;
174
+ }): Promise<{
175
+ object: RoolObject;
176
+ message: string;
177
+ }>;
178
+ /**
179
+ * Update an existing object.
180
+ * @param objectId - The ID of the object to update
181
+ * @param options.data - Fields to add or update. Pass null or undefined to delete a field. Use {{placeholder}} for AI-generated content. Fields prefixed with _ are hidden from AI.
182
+ * @param options.prompt - AI prompt for content editing (optional).
183
+ * @param options.ephemeral - If true, the operation won't be recorded in conversation history.
184
+ * @returns The updated object (with AI-filled content) and message
185
+ */
186
+ updateObject(objectId: string, options: {
187
+ data?: Record<string, unknown>;
188
+ prompt?: string;
189
+ ephemeral?: boolean;
190
+ }): Promise<{
191
+ object: RoolObject;
192
+ message: string;
193
+ }>;
194
+ /**
195
+ * Delete objects by IDs.
196
+ * Outbound links are automatically deleted with the object.
197
+ * Inbound links become orphans (tolerated).
198
+ */
199
+ deleteObjects(objectIds: string[]): Promise<void>;
200
+ /**
201
+ * Delete a conversation and its interaction history.
202
+ * Defaults to the current conversation if no conversationId is provided.
203
+ */
204
+ deleteConversation(conversationId?: string): Promise<void>;
205
+ /**
206
+ * Rename a conversation.
207
+ * If the conversation doesn't exist, it will be created with the given name.
208
+ */
209
+ renameConversation(conversationId: string, name: string): Promise<void>;
210
+ /**
211
+ * List all conversations in this space with summary info.
212
+ */
213
+ listConversations(): Promise<ConversationInfo[]>;
214
+ /**
215
+ * Create a link between objects.
216
+ * Links are stored on the source object.
217
+ */
218
+ link(sourceId: string, relation: string, targetId: string): Promise<void>;
219
+ /**
220
+ * Remove links from a source object.
221
+ * Three forms:
222
+ * - unlink(source, relation, target): remove one specific link
223
+ * - unlink(source, relation): clear all targets for that relation
224
+ * - unlink(source): clear ALL relations on the source
225
+ * @returns true if any links were removed
226
+ */
227
+ unlink(sourceId: string, relation?: string, targetId?: string): Promise<boolean>;
228
+ /**
229
+ * Get parent objects (objects that have links pointing TO this object).
230
+ * @param relation - Optional filter by relation name
231
+ * @param options.limit - Maximum number of parents to return
232
+ * @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
233
+ */
234
+ getParents(objectId: string, relation?: string, options?: {
235
+ limit?: number;
236
+ order?: 'asc' | 'desc';
237
+ }): Promise<RoolObject[]>;
238
+ /**
239
+ * Get child objects (objects that this object has links pointing TO).
240
+ * Filters out orphan targets (targets that don't exist).
241
+ * @param relation - Optional filter by relation name
242
+ * @param options.limit - Maximum number of children to return
243
+ * @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
244
+ */
245
+ getChildren(objectId: string, relation?: string, options?: {
246
+ limit?: number;
247
+ order?: 'asc' | 'desc';
248
+ }): Promise<RoolObject[]>;
249
+ /**
250
+ * Get all child object IDs including orphans (targets that may not exist).
251
+ * @param relation - Optional filter by relation name
252
+ */
253
+ getChildrenIncludingOrphans(objectId: string, relation?: string): string[];
254
+ /**
255
+ * Set a space-level metadata value.
256
+ * Metadata is stored in meta and hidden from AI operations.
257
+ */
258
+ setMetadata(key: string, value: unknown): void;
259
+ /**
260
+ * Get a space-level metadata value.
261
+ */
262
+ getMetadata(key: string): unknown;
263
+ /**
264
+ * Get all space-level metadata.
265
+ */
266
+ getAllMetadata(): Record<string, unknown>;
267
+ /**
268
+ * Send a prompt to the AI agent for space manipulation.
269
+ * @returns The message from the AI and the list of objects that were created or modified
270
+ */
271
+ prompt(prompt: string, options?: PromptOptions): Promise<{
272
+ message: string;
273
+ objects: RoolObject[];
274
+ }>;
275
+ /**
276
+ * List users with access to this space.
277
+ */
278
+ listUsers(): Promise<SpaceMember[]>;
279
+ /**
280
+ * Add a user to this space with specified role.
281
+ */
282
+ addUser(userId: string, role: RoolUserRole): Promise<void>;
283
+ /**
284
+ * Remove a user from this space.
285
+ */
286
+ removeUser(userId: string): Promise<void>;
287
+ /**
288
+ * List all media files for this space.
289
+ */
290
+ listMedia(): Promise<MediaInfo[]>;
291
+ /**
292
+ * Upload a file to this space. Returns the URL.
293
+ */
294
+ uploadMedia(file: File | Blob | {
295
+ data: string;
296
+ contentType: string;
297
+ }): Promise<string>;
298
+ /**
299
+ * Fetch any URL, returning headers and a blob() method (like fetch Response).
300
+ * Adds auth headers for backend media URLs, fetches external URLs via server proxy if CORS blocks.
301
+ */
302
+ fetchMedia(url: string): Promise<MediaResponse>;
303
+ /**
304
+ * Delete a media file by URL.
305
+ */
306
+ deleteMedia(url: string): Promise<void>;
307
+ /**
308
+ * Get the full space data.
309
+ * Use sparingly - prefer specific operations.
310
+ */
311
+ getData(): RoolSpaceData;
312
+ /**
313
+ * Export space data as JSON-LD.
314
+ * Returns a JSON-LD document with all objects and their relations.
315
+ * Space metadata and interaction history are not included.
316
+ */
317
+ export(): JsonLdDocument;
318
+ /**
319
+ * Import JSON-LD data into the space.
320
+ * Creates objects and links from the JSON-LD graph.
321
+ * Space must be empty (throws if objects exist).
322
+ */
323
+ import(data: unknown): Promise<void>;
324
+ /**
325
+ * Export space data and media as a zip archive.
326
+ * Media URLs are rewritten to relative paths within the archive.
327
+ * @returns A Blob containing the zip archive
328
+ */
329
+ exportArchive(): Promise<Blob>;
330
+ /**
331
+ * Import from a zip archive containing data.json and media files.
332
+ * Space must be empty (throws if objects exist).
333
+ */
334
+ importArchive(archive: Blob): Promise<void>;
335
+ /**
336
+ * Handle a space event from the subscription.
337
+ * @internal
338
+ */
339
+ private handleSpaceEvent;
340
+ /**
341
+ * Check if a patch would actually change the current data.
342
+ * Used to deduplicate events when patches don't change anything (e.g., optimistic updates).
343
+ * @internal
344
+ */
345
+ private didPatchChangeAnything;
346
+ /**
347
+ * Handle a patch event from another client.
348
+ * @internal
349
+ */
350
+ private handleRemotePatch;
351
+ /**
352
+ * Parse JSON patch operations and emit semantic events.
353
+ * @internal
354
+ */
355
+ private emitSemanticEventsFromPatch;
356
+ private resyncFromServer;
357
+ }
358
+ //# sourceMappingURL=space.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"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"}