@rool-dev/sdk 0.10.2-dev.47747e3 → 0.10.2-dev.57158ea

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.
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  The TypeScript SDK for Rool, a persistent and collaborative environment for organizing objects.
4
4
 
5
- > **Building a new Rool extension?** Start with [`@rool-dev/extension`](/extension/) — it handles hosting, dev server, and gives you a reactive Svelte channel out of the box. This SDK is for advanced use cases: integrating Rool into an existing application, building Node.js scripts, or working outside the extension sandbox.
6
-
7
5
  The SDK manages authentication, real-time synchronization, and per-space file storage. Core primitives:
8
6
 
9
7
  - **Spaces** — Containers for objects, schema, metadata, channels, and files
@@ -65,10 +63,9 @@ const { message, objects } = await channel.prompt(
65
63
  console.log(message); // AI explains what it did
66
64
  console.log(`Modified ${objects.length} objects`);
67
65
 
68
- // Query with natural language
69
- const { objects: innerPlanets } = await channel.findObjects({
70
- prompt: 'planets closer to the sun than Earth'
71
- });
66
+ // Read an object by location
67
+ const loadedEarth = await channel.getObject(earth.location);
68
+ console.log(loadedEarth?.body.name);
72
69
 
73
70
  // Clean up
74
71
  channel.close();
@@ -229,7 +226,7 @@ References are just data — no special API is needed to create or remove them.
229
226
  #### Location helpers
230
227
 
231
228
  ```typescript
232
- import { loc, parseLocation, normalizeLocation, generateBasename } from '@rool-dev/sdk';
229
+ import { loc, parseLocation, normalizeLocation } from '@rool-dev/sdk';
233
230
 
234
231
  loc('article', 'welcome'); // '/space/article/welcome.json'
235
232
  parseLocation('/space/article/welcome.json'); // { collection: 'article', basename: 'welcome' }
@@ -237,9 +234,6 @@ parseLocation('/space/article/welcome.json'); // { collection: 'article', basena
237
234
  // normalizeLocation accepts canonical or short form and returns canonical
238
235
  normalizeLocation('article/welcome'); // '/space/article/welcome.json'
239
236
  normalizeLocation('/space/article/welcome.json'); // unchanged
240
-
241
- // 6-char random basename — same generator the SDK uses by default
242
- generateBasename(); // e.g., 'X7kQ9p'
243
237
  ```
244
238
 
245
239
  SDK methods that accept a location (`getObject`, `updateObject`, `deleteObjects`, `moveObject`, etc.) accept either form and normalize internally. SDK return values always use the canonical full form.
@@ -320,24 +314,24 @@ await channel.createObject('article', {
320
314
 
321
315
  ### Real-time Sync
322
316
 
323
- Events fire for both local and remote changes. The `source` field indicates origin:
324
-
325
- - `local_user` — This client made the change
326
- - `remote_user` — Another user/client made the change
327
- - `remote_agent` — AI agent made the change
328
- - `system` — Resync after error
317
+ Object and file reactivity is WebDAV-based. Listen for space-level file change notifications, then reconcile with `webdav.syncCollection()` using your sync token. This covers both object files under `/space` and user files under `/rool-drive`.
329
318
 
330
319
  ```typescript
331
- // All UI updates happen in one place, regardless of change source
332
- channel.on('objectUpdated', ({ location, object, source }) => {
333
- renderObject(location, object);
334
- if (source === 'remote_agent') {
335
- doLayout(); // AI might have added content
336
- }
337
- });
320
+ let token: string | null = null;
338
321
 
339
- // Caller just makes the change - event handler does the UI work
340
- channel.updateObject(location, { prompt: 'expand this' });
322
+ async function syncFiles() {
323
+ const result = await space.webdav.syncCollection('/', {
324
+ token,
325
+ level: 'infinite',
326
+ props: ['displayname', 'getetag', 'getlastmodified', 'resourcetype'],
327
+ });
328
+ token = result.token;
329
+ updateFileTree(result.responses);
330
+ }
331
+
332
+ space.on('filesChanged', syncFiles);
333
+ space.on('filesReset', () => { token = null; syncFiles(); });
334
+ await syncFiles();
341
335
  ```
342
336
 
343
337
  ### Locations & Basenames
@@ -358,7 +352,7 @@ await channel.createObject('article',
358
352
 
359
353
  ```typescript
360
354
  // Fire-and-forget: create and reference without waiting
361
- const basename = RoolClient.generateBasename();
355
+ const basename = 'idea-seed';
362
356
  const location = loc('note', basename);
363
357
 
364
358
  channel.createObject('note', { text: '{{expand this idea}}' }, { basename });
@@ -574,7 +568,7 @@ await space.addUser(user.id, 'editor');
574
568
  | `owner` | Full control, can delete space and manage all users |
575
569
  | `admin` | All editor capabilities, plus can manage users (except other admins/owners) |
576
570
  | `editor` | Can create, modify, move, and delete objects |
577
- | `viewer` | Read-only access (can query with `prompt` and `findObjects`) |
571
+ | `viewer` | Read-only access (can query with `prompt` and read objects/files) |
578
572
 
579
573
  ### Space Collaboration Methods
580
574
 
@@ -621,18 +615,9 @@ When a user accesses a space via URL, they're granted the corresponding role (`v
621
615
 
622
616
  ### Real-time Collaboration
623
617
 
624
- When multiple users have a space open, changes sync in real-time. The `source` field in events tells you who made the change:
625
-
626
- ```typescript
627
- channel.on('objectUpdated', ({ location, object, source }) => {
628
- if (source === 'remote_user') {
629
- // Another user made this change
630
- showCollaboratorActivity(object);
631
- }
632
- });
633
- ```
618
+ When multiple users have a space open, object and file changes are announced by `space.on('filesChanged')` and reconciled through WebDAV `syncCollection()`. Channel/conversation state still emits channel events; filesystem state does not use channel object events.
634
619
 
635
- See [Real-time Sync](#real-time-sync) for more on event sources.
620
+ See [Real-time Sync](#real-time-sync) for a WebDAV sync-token example.
636
621
 
637
622
  ## RoolClient API
638
623
 
@@ -663,8 +648,6 @@ const client = new RoolClient({
663
648
  | `duplicateSpace(sourceSpaceId, name): Promise<RoolSpace>` | Duplicate an existing space. Returns a handle to the new space. |
664
649
  | `deleteSpace(id): Promise<void>` | Permanently delete a space (cannot be undone) |
665
650
  | `importArchive(name, archive): Promise<RoolSpace>` | Import from a zip archive, creating a new space |
666
- | `webdav(spaceId): RoolWebDAV` | Open a WebDAV client for a space's file storage |
667
- | `getSpaceStorageUsage(spaceId): Promise<SpaceFileStorageUsage>` | Get WebDAV quota usage for a space |
668
651
 
669
652
  ### Channel Management
670
653
 
@@ -717,39 +700,11 @@ client.on('userStorageChanged', ({ key, value, source }) => {
717
700
  });
718
701
  ```
719
702
 
720
- ### Extensions
721
-
722
- Manage and publish extensions. See [`@rool-dev/extension`](/extension/) for building extensions.
723
-
724
- There are two distinct domains: your **personal library** (extensions you've created or installed) and the **published extensions** (extensions discoverable by all users). Each has its own return type.
725
-
726
- #### Your Library (`ExtensionInfo`)
727
-
728
- Manage extensions you own. Each `ExtensionInfo` includes `published` (whether it's listed in the marketplace) and `marketplaceExtensionId` (non-null if you installed it from someone else's listing, null if you authored it).
729
-
730
- | Method | Description |
731
- |--------|-------------|
732
- | `uploadExtension(extensionId, options): Promise<ExtensionInfo>` | Upload or update an extension (`options.bundle`: zip with `index.html` and `manifest.json`) |
733
- | `listExtensions(): Promise<ExtensionInfo[]>` | List your extensions |
734
- | `getExtensionInfo(extensionId): Promise<ExtensionInfo \| null>` | Get info for a specific extension |
735
- | `deleteExtension(extensionId): Promise<void>` | Delete an extension permanently (removes files and DB row) |
736
-
737
- #### Marketplace (`PublishedExtensionInfo`)
738
-
739
- Discover and install extensions published by other users.
740
-
741
- | Method | Description |
742
- |--------|-------------|
743
- | `findExtensions(options?): Promise<PublishedExtensionInfo[]>` | Search the marketplace. Options: `query` (semantic search string), `limit` (default 20, max 100). Omit `query` to browse all. |
744
- | `publishToPublic(extensionId): Promise<void>` | Publish one of your extensions to the marketplace |
745
- | `unpublishFromPublic(extensionId): Promise<void>` | Remove from the marketplace (keeps the extension in your library) |
746
-
747
703
  ### Utilities
748
704
 
749
705
  | Method | Description |
750
706
  |--------|-------------|
751
- | `RoolClient.generateBasename(): string` | Generate a 6-char alphanumeric basename for new object identities. |
752
- | `RoolClient.generateId(): string` | Same as `generateBasename()`; retained for callers minting non-object IDs (interactions, conversations, channels). |
707
+ | `RoolClient.generateId(): string` | Generate a unique 6-character alphanumeric ID. |
753
708
  | `destroy(): void` | Clean up resources |
754
709
 
755
710
  ### Client Events
@@ -814,7 +769,6 @@ A space handle with a live SSE subscription. Extends `EventEmitter`. Manages use
814
769
  | `getChannels(): ChannelInfo[]` | List channels (deprecated — use `channels` property instead) |
815
770
  | `renameChannel(channelId, name): Promise<void>` | Rename a channel |
816
771
  | `deleteChannel(channelId): Promise<void>` | Delete a channel |
817
- | `installExtension(extensionId, channelId): Promise<string>` | Install an extension into a channel of this space. If you own it, wires it directly. If it's a marketplace extension, copies and builds a new extension in your library. Returns the channel ID. |
818
772
  | `exportArchive(): Promise<Blob>` | Export space as zip archive |
819
773
  | `getStorageUsage(): Promise<SpaceFileStorageUsage>` | Get WebDAV quota usage for this space |
820
774
  | `fetchMachineResource(resource): Promise<Response>` | Fetch a resolved file `MachineResource` through this space |
@@ -824,7 +778,7 @@ A space handle with a live SSE subscription. Extends `EventEmitter`. Manages use
824
778
 
825
779
  ```typescript
826
780
  space.on('channelCreated', (channel: ChannelInfo) => void) // New channel added
827
- space.on('channelUpdated', (channel: ChannelInfo) => void) // Channel metadata changed (name, extension, manifest)
781
+ space.on('channelUpdated', (channel: ChannelInfo) => void) // Channel metadata changed
828
782
  space.on('channelDeleted', (channelId: string) => void) // Channel removed
829
783
  space.on('filesChanged', ({ source, timestamp }) => void) // WebDAV file storage changed; call webdav.syncCollection()
830
784
  space.on('connectionStateChanged', (state: 'connected' | 'disconnected' | 'reconnecting') => void)
@@ -845,9 +799,6 @@ A channel is a named context within a space. All object operations, AI prompts,
845
799
  | `userId: string` | Current user's ID |
846
800
  | `channelId: string` | Channel ID (read-only, fixed at open time) |
847
801
  | `isReadOnly: boolean` | True if viewer role |
848
- | `extensionUrl: string \| null` | URL of the installed extension, or null if this is a plain channel |
849
- | `extensionId: string \| null` | ID of the installed extension, or null if this is a plain channel |
850
- | `manifest: ExtensionManifest \| null` | Extension manifest snapshot (name, icon, collections, etc.), or null |
851
802
 
852
803
  ### Lifecycle
853
804
 
@@ -867,8 +818,6 @@ All methods that accept a location accept either the canonical form or the short
867
818
  |--------|-------------|
868
819
  | `getObject(location): Promise<RoolObject \| undefined>` | Get an object, or undefined if not found. |
869
820
  | `stat(location): RoolObjectStat \| undefined` | Get audit info for an object: when it was last modified, by whom, and where (channel/conversation/interaction). Sync read from local cache. |
870
- | `findObjects(options): Promise<{ objects, message }>` | Find objects using structured filters and/or natural language. Results sorted by modifiedAt (desc by default). |
871
- | `getObjectLocations(options?): string[]` | Get all object locations. Sorted by modifiedAt (desc by default). Options: `{ limit?, order? }`. |
872
821
  | `createObject(collection, body, options?): Promise<{ object, message }>` | Create a new object in `collection`. The SDK mints a random basename unless you pass `options.basename`. |
873
822
  | `updateObject(location, options): Promise<{ object, message }>` | Update an existing object's body. |
874
823
  | `moveObject(from, to, options?): Promise<{ object, message }>` | Rename or relocate an object. See [Moving and Renaming](#moving-and-renaming). |
@@ -961,59 +910,6 @@ await channel.moveObject(from, to, {
961
910
  | `ephemeral` | If true, the operation won't be recorded in interaction history. |
962
911
  | `parentInteractionId` | Conversation tree parent. Omit to auto-continue; pass `null` for a new root. |
963
912
 
964
- #### findObjects
965
-
966
- Find objects using structured filters and/or natural language.
967
-
968
- - **`where` only** — exact-match filtering, no AI, no credits.
969
- - **`collection` only** — filter by collection name, no AI, no credits.
970
- - **`prompt` only** — AI-powered semantic query over all objects.
971
- - **`where` + `prompt`** — `where` (and `locations`) narrow the data set first, then the AI queries within the constrained set.
972
-
973
- | Option | Description |
974
- |--------|-------------|
975
- | `where` | Exact-match body-field filter (e.g. `{ status: 'published' }`). Values must match literally — no operators or `{{placeholders}}`. When combined with `prompt`, constrains which objects the AI can see. |
976
- | `collection` | Filter by collection name. |
977
- | `prompt` | Natural language query. Triggers AI evaluation (uses credits). |
978
- | `limit` | Maximum number of results. |
979
- | `locations` | Scope to specific object locations. Constrains the candidate set in both structured and AI queries. |
980
- | `order` | Sort order by modifiedAt: `'asc'` or `'desc'` (default: `'desc'`). |
981
- | `ephemeral` | If true, the query won't be recorded in interaction history. Useful for responsive search. |
982
-
983
- **Examples:**
984
-
985
- ```typescript
986
- // Filter by collection (no AI, no credits)
987
- const { objects } = await channel.findObjects({
988
- collection: 'article'
989
- });
990
-
991
- // Exact field matching (no AI, no credits)
992
- const { objects } = await channel.findObjects({
993
- where: { status: 'published' }
994
- });
995
-
996
- // Combine collection and field filters
997
- const { objects } = await channel.findObjects({
998
- collection: 'article',
999
- where: { status: 'published' }
1000
- });
1001
-
1002
- // Pure natural language query (AI interprets)
1003
- const { objects, message } = await channel.findObjects({
1004
- prompt: 'articles about space exploration published this year'
1005
- });
1006
-
1007
- // Combined: collection + where narrow the data, prompt queries within it
1008
- const { objects } = await channel.findObjects({
1009
- collection: 'article',
1010
- prompt: 'that discuss climate solutions positively',
1011
- limit: 10
1012
- });
1013
- ```
1014
-
1015
- When `where` or `locations` are provided with a `prompt`, the AI only sees the filtered subset — not the full space. The returned `message` explains the query result.
1016
-
1017
913
  ### Undo/Redo
1018
914
 
1019
915
  | Method | Description |
@@ -1041,12 +937,13 @@ Store arbitrary data alongside the space without it being part of an object's bo
1041
937
 
1042
938
  Every space has authenticated file storage. WebDAV is the SDK surface for that storage: paths are relative to the space root and collection operations use WebDAV collection semantics. Human/AI file links use `rool-machine:/rool-drive/...`; resolve those links with `resolveMachineResource()` and fetch file resources with `space.fetchMachineResource(resource)`.
1043
939
 
1044
- Use `client.webdav(spaceId)` when you only have an ID, or `space.webdav` when you already have an open space.
940
+ Open a space, then use `space.webdav`.
1045
941
 
1046
942
  ```typescript
1047
943
  import { resolveMachineResource } from '@rool-dev/sdk';
1048
944
 
1049
- const webdav = client.webdav('space-id');
945
+ const space = await client.openSpace('space-id');
946
+ const webdav = space.webdav;
1050
947
 
1051
948
  await webdav.mkcol('docs');
1052
949
  await webdav.put('docs/readme.md', '# Hello', {
@@ -1091,8 +988,6 @@ Paths are space-relative (`docs/readme.md`, not `/docs/readme.md`). WebDAV metho
1091
988
 
1092
989
  | Method | Description |
1093
990
  |--------|-------------|
1094
- | `client.webdav(spaceId)` | Create a WebDAV client for a space |
1095
- | `client.getSpaceStorageUsage(spaceId)` | Get WebDAV quota usage for a space |
1096
991
  | `space.webdav` | WebDAV client for an open space |
1097
992
  | `space.getStorageUsage()` | Get WebDAV quota usage for an open space |
1098
993
  | `webdav.getStorageUsage()` | Get WebDAV quota usage through the WebDAV client |
@@ -1225,37 +1120,23 @@ The archive bundles `data.json` (objects, metadata, and channels) together with
1225
1120
 
1226
1121
  ### Channel Events
1227
1122
 
1228
- Semantic events describe what changed. Events fire for both local changes and remote changes.
1123
+ Channel events are for channel/conversation state. Object and file reactivity goes through `space.on('filesChanged' | 'filesReset')` plus WebDAV `syncCollection()`.
1229
1124
 
1230
1125
  ```typescript
1231
- // source indicates origin:
1232
- // - 'local_user': This client made the change
1233
- // - 'remote_user': Another user/client made the change
1234
- // - 'remote_agent': AI agent made the change
1235
- // - 'system': Resync after error
1236
-
1237
- // Object events — payload includes the full RoolObject
1238
- channel.on('objectCreated', ({ location, object, source }) => void)
1239
- channel.on('objectUpdated', ({ location, object, source }) => void)
1240
- channel.on('objectDeleted', ({ location, source }) => void)
1241
- channel.on('objectMoved', ({ from, to, object, source }) => void)
1242
-
1243
- // Space metadata
1244
- channel.on('metadataUpdated', ({ metadata, source }) => void)
1245
-
1246
- // Collection schema changed
1247
- channel.on('schemaUpdated', ({ schema, source }) => void)
1248
-
1249
- // Channel metadata updated (name, extensionUrl)
1126
+ // Channel metadata updated
1250
1127
  channel.on('channelUpdated', ({ channelId, source }) => void)
1251
1128
 
1252
1129
  // Conversation interaction history updated
1253
1130
  channel.on('conversationUpdated', ({ conversationId, channelId, source }) => void)
1254
1131
 
1132
+ // Space metadata / schema compatibility events
1133
+ channel.on('metadataUpdated', ({ metadata, source }) => void)
1134
+ channel.on('schemaUpdated', ({ schema, source }) => void)
1135
+
1255
1136
  // Full state replacement (undo/redo, resync after error)
1256
1137
  channel.on('reset', ({ source }) => void)
1257
1138
 
1258
- // Sync error occurred, channel resynced from server
1139
+ // Sync error occurred
1259
1140
  channel.on('syncError', (error: Error) => void)
1260
1141
  ```
1261
1142
 
@@ -1386,9 +1267,6 @@ interface Channel {
1386
1267
  createdAt: number; // Timestamp when channel was created
1387
1268
  createdBy: string; // User ID who created the channel
1388
1269
  createdByName?: string; // Display name at time of creation
1389
- extensionUrl?: string; // URL of installed extension (set by installExtension)
1390
- extensionId?: string; // ID of installed extension (user_extensions.extension_id)
1391
- manifest?: ExtensionManifest; // Extension manifest snapshot (set when extension is wired)
1392
1270
  conversations: Record<string, Conversation>; // Keyed by conversation ID
1393
1271
  }
1394
1272
 
@@ -1400,9 +1278,6 @@ interface ChannelInfo {
1400
1278
  createdBy: string;
1401
1279
  createdByName: string | null;
1402
1280
  interactionCount: number;
1403
- extensionUrl: string | null; // URL of installed extension, or null
1404
- extensionId: string | null; // ID of installed extension, or null
1405
- manifest: ExtensionManifest | null; // Extension manifest snapshot, or null
1406
1281
  }
1407
1282
  ```
1408
1283
 
package/dist/channel.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { EventEmitter } from './event-emitter.js';
2
2
  import type { GraphQLClient } from './graphql.js';
3
3
  import type { RestClient } from './rest.js';
4
- import type { RoolWebDAV } from './webdav.js';
4
+ import { type RoolWebDAV } from './webdav.js';
5
5
  import type { Logger } from './logger.js';
6
- import type { RoolObject, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions, MoveObjectOptions, ChannelEvent, Interaction, Channel, ConversationInfo, LinkAccess, SpaceSchema, CollectionDef, FieldDef, ExtensionManifest } from './types.js';
6
+ import type { RoolObject, GetObjectsResult, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, CreateObjectOptions, UpdateObjectOptions, MoveObjectOptions, ChannelEvent, Interaction, Channel, ConversationInfo, LinkAccess, SpaceSchema, CollectionDef, FieldDef, CollectionOptions } from './types.js';
7
7
  export declare function generateEntityId(): string;
8
8
  export interface ChannelConfig {
9
9
  id: string;
@@ -12,8 +12,6 @@ export interface ChannelConfig {
12
12
  linkAccess: LinkAccess;
13
13
  /** Current user's ID (for identifying own interactions) */
14
14
  userId: string;
15
- /** Object locations in the space (sorted by modifiedAt desc) */
16
- objectLocations: string[];
17
15
  /** Object stats keyed by location */
18
16
  objectStats: Record<string, RoolObjectStat>;
19
17
  /** Collection schema */
@@ -38,9 +36,9 @@ export interface ChannelConfig {
38
36
  * open a second one.
39
37
  *
40
38
  * Objects are addressed by location (`/space/<collection>/<basename>.json`).
41
- * Only schema, metadata, the live object location list, and the channel's own
42
- * history are cached locally. Object bodies are fetched on demand. Changes
43
- * arrive via SSE semantic events and are emitted as SDK events.
39
+ * Only schema, metadata, object stats, and the channel's own history are cached
40
+ * locally. Object bodies are fetched on demand. Object/file reactivity is
41
+ * exposed at the space level via WebDAV sync notifications.
44
42
  */
45
43
  export declare class RoolChannel extends EventEmitter<ChannelEvents> {
46
44
  private _id;
@@ -59,12 +57,8 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
59
57
  private _meta;
60
58
  private _schema;
61
59
  private _channel;
62
- private _objectLocations;
63
60
  private _objectStats;
64
61
  private _activeLeaves;
65
- private _pendingMutations;
66
- private _objectResolvers;
67
- private _objectBuffer;
68
62
  constructor(config: ChannelConfig);
69
63
  /**
70
64
  * Handle an event from the shared space subscription.
@@ -80,7 +74,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
80
74
  _applyResyncData(data: {
81
75
  meta: Record<string, unknown>;
82
76
  schema: SpaceSchema;
83
- objectLocations: string[];
84
77
  objectStats: Record<string, RoolObjectStat>;
85
78
  channel: Channel | undefined;
86
79
  }): void;
@@ -105,18 +98,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
105
98
  */
106
99
  get conversationId(): string;
107
100
  get isReadOnly(): boolean;
108
- /**
109
- * Get the extension URL if this channel was created via installExtension, or null.
110
- */
111
- get extensionUrl(): string | null;
112
- /**
113
- * Get the extension ID if this channel has an installed extension, or null.
114
- */
115
- get extensionId(): string | null;
116
- /**
117
- * Get the extension manifest if this channel has an installed extension, or null.
118
- */
119
- get manifest(): ExtensionManifest | null;
120
101
  /**
121
102
  * Get the active branch of the current conversation as a flat array (root → leaf).
122
103
  * Walks from the active leaf up through parentId pointers.
@@ -178,6 +159,8 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
178
159
  redo(): Promise<boolean>;
179
160
  /** Clear the space's checkpoint history. */
180
161
  clearHistory(): Promise<void>;
162
+ private davHeaders;
163
+ private readObject;
181
164
  /**
182
165
  * Get an object by location. Fetches from the server on each call.
183
166
  *
@@ -185,39 +168,25 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
185
168
  * or the short form (`<collection>/<basename>`).
186
169
  */
187
170
  getObject(location: string): Promise<RoolObject | undefined>;
171
+ /**
172
+ * Get objects by location in bulk.
173
+ *
174
+ * Accepts either canonical locations (`/space/<collection>/<basename>.json`)
175
+ * or short locations (`<collection>/<basename>`). Duplicate locations are
176
+ * fetched once, preserving their first requested order.
177
+ */
178
+ getObjects(locations: string[]): Promise<GetObjectsResult>;
188
179
  /**
189
180
  * Get an object's stat (audit information).
190
181
  * Returns the cached stat or undefined if not known.
191
182
  */
192
183
  stat(location: string): RoolObjectStat | undefined;
193
- /**
194
- * Find objects using structured filters and/or natural language.
195
- */
196
- findObjects(options: FindObjectsOptions): Promise<{
197
- objects: RoolObject[];
198
- message: string;
199
- }>;
200
- /** @internal */
201
- _findObjectsImpl(options: FindObjectsOptions, conversationId: string): Promise<{
202
- objects: RoolObject[];
203
- message: string;
204
- }>;
205
- /**
206
- * Get all object locations (sync, from local cache).
207
- * The list is loaded on open and kept current via SSE events.
208
- */
209
- getObjectLocations(options?: {
210
- limit?: number;
211
- order?: 'asc' | 'desc';
212
- }): string[];
213
184
  /**
214
185
  * Create a new object in the given collection.
215
186
  *
216
187
  * @param collection - The collection (must exist in the schema)
217
- * @param body - Object body fields. Use `{{placeholder}}` for AI-generated content.
218
- * Fields prefixed with `_` are hidden from AI.
188
+ * @param body - Object body fields. Fields prefixed with `_` are hidden from AI.
219
189
  * @param options.basename - Specific basename to use. If omitted, the SDK generates a random one.
220
- * @param options.ephemeral - If true, the operation won't be recorded in interaction history.
221
190
  * @returns The created object and a status message.
222
191
  */
223
192
  createObject(collection: string, body: Record<string, unknown>, options?: CreateObjectOptions): Promise<{
@@ -233,9 +202,7 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
233
202
  * Update an existing object.
234
203
  *
235
204
  * @param location - The object's location (canonical or short form)
236
- * @param options.data - Fields to add or update. Pass `null` to delete a field. Use `{{placeholder}}` for AI-generated content.
237
- * @param options.prompt - AI prompt to drive the update.
238
- * @param options.ephemeral - If true, the operation won't be recorded in interaction history.
205
+ * @param options.data - Fields to add or update. Pass `null` to delete a field.
239
206
  */
240
207
  updateObject(location: string, options: UpdateObjectOptions): Promise<{
241
208
  object: RoolObject;
@@ -253,7 +220,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
253
220
  * @param from - Current location
254
221
  * @param to - New location
255
222
  * @param options.body - Replace the body atomically as part of the move.
256
- * @param options.ephemeral - If true, the operation won't be recorded in interaction history.
257
223
  */
258
224
  moveObject(from: string, to: string, options?: MoveObjectOptions): Promise<{
259
225
  object: RoolObject;
@@ -274,13 +240,13 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
274
240
  /** Get the current schema for this space. */
275
241
  getSchema(): SpaceSchema;
276
242
  /** Create a new collection schema. */
277
- createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
243
+ createCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
278
244
  /** @internal */
279
- _createCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
245
+ _createCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
280
246
  /** Alter an existing collection schema, replacing its field definitions. */
281
- alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
247
+ alterCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
282
248
  /** @internal */
283
- _alterCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
249
+ _alterCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
284
250
  /** Drop a collection schema. */
285
251
  dropCollection(name: string): Promise<void>;
286
252
  /** @internal */
@@ -334,28 +300,11 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
334
300
  }): Promise<Response>;
335
301
  private uploadAttachment;
336
302
  private ensureCollection;
337
- /**
338
- * Register a collector that resolves when the object arrives via SSE.
339
- * @internal
340
- */
341
- private _collectObject;
342
- /** @internal */
343
- private _cancelCollector;
344
- /** @internal */
345
- private _deliverObject;
346
303
  /**
347
304
  * Handle a channel event from the subscription.
348
305
  * @internal
349
306
  */
350
307
  private handleChannelEvent;
351
- /** @internal */
352
- private _handleObjectCreated;
353
- /** @internal */
354
- private _handleObjectUpdated;
355
- /** @internal */
356
- private _handleObjectDeleted;
357
- /** @internal */
358
- private _handleObjectMoved;
359
308
  }
360
309
  /**
361
310
  * A lightweight handle for a specific conversation within a channel.
@@ -382,11 +331,6 @@ export declare class ConversationHandle {
382
331
  setSystemInstruction(instruction: string | null): Promise<void>;
383
332
  /** Rename this conversation. */
384
333
  rename(name: string): Promise<void>;
385
- /** Find objects using structured filters and/or natural language. */
386
- findObjects(options: FindObjectsOptions): Promise<{
387
- objects: RoolObject[];
388
- message: string;
389
- }>;
390
334
  /** Create a new object. */
391
335
  createObject(collection: string, body: Record<string, unknown>, options?: CreateObjectOptions): Promise<{
392
336
  object: RoolObject;
@@ -410,9 +354,9 @@ export declare class ConversationHandle {
410
354
  objects: RoolObject[];
411
355
  }>;
412
356
  /** Create a new collection schema. */
413
- createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
357
+ createCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
414
358
  /** Alter an existing collection schema. */
415
- alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
359
+ alterCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
416
360
  /** Drop a collection schema. */
417
361
  dropCollection(name: string): Promise<void>;
418
362
  setMetadata(key: string, value: unknown): void;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}