@rool-dev/sdk 0.8.2-dev.02b70e5 → 0.8.2-dev.d82ea25
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 +465 -1005
- package/dist/channel.d.ts +93 -248
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +410 -577
- package/dist/channel.js.map +1 -1
- package/dist/client.d.ts +14 -46
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +31 -124
- package/dist/client.js.map +1 -1
- package/dist/graphql.d.ts +11 -36
- package/dist/graphql.d.ts.map +1 -1
- package/dist/graphql.js +72 -311
- package/dist/graphql.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/path.d.ts +6 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +47 -0
- package/dist/path.js.map +1 -0
- package/dist/reroute.d.ts +22 -0
- package/dist/reroute.d.ts.map +1 -0
- package/dist/reroute.js +61 -0
- package/dist/reroute.js.map +1 -0
- package/dist/rest.d.ts +27 -0
- package/dist/rest.d.ts.map +1 -0
- package/dist/rest.js +78 -0
- package/dist/rest.js.map +1 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +25 -10
- package/dist/router.js.map +1 -1
- package/dist/space.d.ts +23 -16
- package/dist/space.d.ts.map +1 -1
- package/dist/space.js +111 -78
- package/dist/space.js.map +1 -1
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +47 -40
- package/dist/subscription.js.map +1 -1
- package/dist/types.d.ts +85 -224
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -4
- package/dist/types.js.map +1 -1
- package/dist/webdav.d.ts +176 -0
- package/dist/webdav.d.ts.map +1 -0
- package/dist/webdav.js +495 -0
- package/dist/webdav.js.map +1 -0
- package/package.json +2 -1
- package/dist/apps.d.ts +0 -30
- package/dist/apps.d.ts.map +0 -1
- package/dist/apps.js +0 -81
- package/dist/apps.js.map +0 -1
- package/dist/media.d.ts +0 -76
- package/dist/media.d.ts.map +0 -1
- package/dist/media.js +0 -249
- package/dist/media.js.map +0 -1
package/dist/channel.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from './event-emitter.js';
|
|
2
2
|
import type { GraphQLClient } from './graphql.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { RestClient } from './rest.js';
|
|
4
|
+
import { type RoolWebDAV } from './webdav.js';
|
|
4
5
|
import type { Logger } from './logger.js';
|
|
5
|
-
import type { RoolObject, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions,
|
|
6
|
+
import type { RoolObject, GetObjectsResult, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, UpdateObjectOptions, MoveObjectOptions, ChannelEvent, Interaction, Channel, ConversationInfo, LinkAccess, SpaceSchema, CollectionDef, FieldDef, CollectionOptions } from './types.js';
|
|
6
7
|
export declare function generateEntityId(): string;
|
|
7
8
|
export interface ChannelConfig {
|
|
8
9
|
id: string;
|
|
@@ -11,9 +12,7 @@ export interface ChannelConfig {
|
|
|
11
12
|
linkAccess: LinkAccess;
|
|
12
13
|
/** Current user's ID (for identifying own interactions) */
|
|
13
14
|
userId: string;
|
|
14
|
-
/** Object
|
|
15
|
-
objectIds: string[];
|
|
16
|
-
/** Object stats keyed by object ID */
|
|
15
|
+
/** Object stats keyed by path */
|
|
17
16
|
objectStats: Record<string, RoolObjectStat>;
|
|
18
17
|
/** Collection schema */
|
|
19
18
|
schema: SpaceSchema;
|
|
@@ -24,7 +23,8 @@ export interface ChannelConfig {
|
|
|
24
23
|
/** Channel ID for this channel (required). */
|
|
25
24
|
channelId: string;
|
|
26
25
|
graphqlClient: GraphQLClient;
|
|
27
|
-
|
|
26
|
+
restClient: RestClient;
|
|
27
|
+
webdav: RoolWebDAV;
|
|
28
28
|
logger: Logger;
|
|
29
29
|
onClose: () => void;
|
|
30
30
|
}
|
|
@@ -35,16 +35,10 @@ export interface ChannelConfig {
|
|
|
35
35
|
* at open time and cannot be changed. To use a different channel,
|
|
36
36
|
* open a second one.
|
|
37
37
|
*
|
|
38
|
-
* Objects are
|
|
39
|
-
* and the channel's own history are cached
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* Features:
|
|
43
|
-
* - High-level object operations
|
|
44
|
-
* - Built-in undo/redo with checkpoints
|
|
45
|
-
* - Metadata management
|
|
46
|
-
* - Event emission for state changes
|
|
47
|
-
* - Real-time updates via space-specific subscription
|
|
38
|
+
* Objects are addressed by machine path (`/space/.../*.json`).
|
|
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.
|
|
48
42
|
*/
|
|
49
43
|
export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
50
44
|
private _id;
|
|
@@ -56,18 +50,15 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
56
50
|
private _conversationId;
|
|
57
51
|
private _closed;
|
|
58
52
|
private graphqlClient;
|
|
59
|
-
private
|
|
53
|
+
private restClient;
|
|
54
|
+
private webdav;
|
|
60
55
|
private onCloseCallback;
|
|
61
56
|
private logger;
|
|
62
57
|
private _meta;
|
|
63
58
|
private _schema;
|
|
64
59
|
private _channel;
|
|
65
|
-
private _objectIds;
|
|
66
60
|
private _objectStats;
|
|
67
61
|
private _activeLeaves;
|
|
68
|
-
private _pendingMutations;
|
|
69
|
-
private _objectResolvers;
|
|
70
|
-
private _objectBuffer;
|
|
71
62
|
constructor(config: ChannelConfig);
|
|
72
63
|
/**
|
|
73
64
|
* Handle an event from the shared space subscription.
|
|
@@ -83,7 +74,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
83
74
|
_applyResyncData(data: {
|
|
84
75
|
meta: Record<string, unknown>;
|
|
85
76
|
schema: SpaceSchema;
|
|
86
|
-
objectIds: string[];
|
|
87
77
|
objectStats: Record<string, RoolObjectStat>;
|
|
88
78
|
channel: Channel | undefined;
|
|
89
79
|
}): void;
|
|
@@ -108,18 +98,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
108
98
|
*/
|
|
109
99
|
get conversationId(): string;
|
|
110
100
|
get isReadOnly(): boolean;
|
|
111
|
-
/**
|
|
112
|
-
* Get the extension URL if this channel was created via installExtension, or null.
|
|
113
|
-
*/
|
|
114
|
-
get extensionUrl(): string | null;
|
|
115
|
-
/**
|
|
116
|
-
* Get the extension ID if this channel has an installed extension, or null.
|
|
117
|
-
*/
|
|
118
|
-
get extensionId(): string | null;
|
|
119
|
-
/**
|
|
120
|
-
* Get the extension manifest if this channel has an installed extension, or null.
|
|
121
|
-
*/
|
|
122
|
-
get manifest(): ExtensionManifest | null;
|
|
123
101
|
/**
|
|
124
102
|
* Get the active branch of the current conversation as a flat array (root → leaf).
|
|
125
103
|
* Walks from the active leaf up through parentId pointers.
|
|
@@ -160,10 +138,6 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
160
138
|
deleteConversation(conversationId: string): Promise<void>;
|
|
161
139
|
/**
|
|
162
140
|
* Get a handle for a specific conversation within this channel.
|
|
163
|
-
* The handle scopes AI and mutation operations to that conversation's
|
|
164
|
-
* interaction history, while sharing the channel's single SSE connection.
|
|
165
|
-
*
|
|
166
|
-
* Conversations are auto-created on first interaction — no explicit create needed.
|
|
167
141
|
*/
|
|
168
142
|
conversation(conversationId: string): ConversationHandle;
|
|
169
143
|
/**
|
|
@@ -173,189 +147,103 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
173
147
|
close(): void;
|
|
174
148
|
/**
|
|
175
149
|
* Create a checkpoint of the current space state.
|
|
176
|
-
* Checkpoints are space-wide and shared across channels and users.
|
|
177
|
-
* @returns The checkpoint ID
|
|
178
150
|
*/
|
|
179
151
|
checkpoint(label?: string): Promise<string>;
|
|
180
|
-
/**
|
|
181
|
-
* Check if undo is available for this space.
|
|
182
|
-
*/
|
|
152
|
+
/** Check if undo is available for this space. */
|
|
183
153
|
canUndo(): Promise<boolean>;
|
|
184
|
-
/**
|
|
185
|
-
* Check if redo is available for this space.
|
|
186
|
-
*/
|
|
154
|
+
/** Check if redo is available for this space. */
|
|
187
155
|
canRedo(): Promise<boolean>;
|
|
188
|
-
/**
|
|
189
|
-
* Restore the space to the most recent checkpoint.
|
|
190
|
-
* @returns true if undo was performed
|
|
191
|
-
*/
|
|
156
|
+
/** Restore the space to the most recent checkpoint. */
|
|
192
157
|
undo(): Promise<boolean>;
|
|
193
|
-
/**
|
|
194
|
-
* Reapply the most recently undone checkpoint.
|
|
195
|
-
* Affects the entire space.
|
|
196
|
-
* @returns true if redo was performed
|
|
197
|
-
*/
|
|
158
|
+
/** Reapply the most recently undone checkpoint. */
|
|
198
159
|
redo(): Promise<boolean>;
|
|
199
|
-
/**
|
|
200
|
-
* Clear the space's checkpoint history.
|
|
201
|
-
*/
|
|
160
|
+
/** Clear the space's checkpoint history. */
|
|
202
161
|
clearHistory(): Promise<void>;
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
* Find objects using structured filters and/or natural language.
|
|
215
|
-
*
|
|
216
|
-
* `where` provides exact-match filtering — values must match literally (no placeholders or operators).
|
|
217
|
-
* `prompt` enables AI-powered semantic queries. When both are provided, `where` and `objectIds`
|
|
218
|
-
* constrain the data set before the AI sees it.
|
|
219
|
-
*
|
|
220
|
-
* @param options.where - Exact-match field filter (e.g. `{ type: 'article' }`). Constrains which objects the AI can see when combined with `prompt`.
|
|
221
|
-
* @param options.prompt - Natural language query. Triggers AI evaluation (uses credits).
|
|
222
|
-
* @param options.limit - Maximum number of results to return (applies to structured filtering only; the AI controls its own result size).
|
|
223
|
-
* @param options.objectIds - Scope search to specific object IDs. Constrains the candidate set in both structured and AI queries.
|
|
224
|
-
* @param options.order - Sort order by modifiedAt: `'asc'` or `'desc'` (default: `'desc'`). Only applies to structured filtering (no `prompt`).
|
|
225
|
-
* @param options.ephemeral - If true, the query won't be recorded in interaction history.
|
|
226
|
-
* @returns The matching objects and a descriptive message.
|
|
227
|
-
*/
|
|
228
|
-
findObjects(options: FindObjectsOptions): Promise<{
|
|
229
|
-
objects: RoolObject[];
|
|
162
|
+
private davHeaders;
|
|
163
|
+
private readObject;
|
|
164
|
+
/** Get an object JSON file by machine path. Fetches from the server on each call. */
|
|
165
|
+
getObject(path: string): Promise<RoolObject | undefined>;
|
|
166
|
+
/** Get object JSON files by machine path in bulk. Duplicate paths are fetched once. */
|
|
167
|
+
getObjects(paths: string[]): Promise<GetObjectsResult>;
|
|
168
|
+
/** Get an object's cached audit information. */
|
|
169
|
+
stat(path: string): RoolObjectStat | undefined;
|
|
170
|
+
/** Create or replace an object JSON file at an exact machine path. */
|
|
171
|
+
putObject(path: string, body: Record<string, unknown>): Promise<{
|
|
172
|
+
object: RoolObject;
|
|
230
173
|
message: string;
|
|
231
174
|
}>;
|
|
232
175
|
/** @internal */
|
|
233
|
-
|
|
234
|
-
|
|
176
|
+
_putObjectImpl(path: string, body: Record<string, unknown>, conversationId: string): Promise<{
|
|
177
|
+
object: RoolObject;
|
|
235
178
|
message: string;
|
|
236
179
|
}>;
|
|
237
|
-
/**
|
|
238
|
-
|
|
239
|
-
* The list is loaded on open and kept current via SSE events.
|
|
240
|
-
* @param options.limit - Maximum number of IDs to return
|
|
241
|
-
* @param options.order - Sort order by modifiedAt ('asc' or 'desc', default: 'desc')
|
|
242
|
-
*/
|
|
243
|
-
getObjectIds(options?: {
|
|
244
|
-
limit?: number;
|
|
245
|
-
order?: 'asc' | 'desc';
|
|
246
|
-
}): string[];
|
|
247
|
-
/**
|
|
248
|
-
* Create a new object with optional AI generation.
|
|
249
|
-
* @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.
|
|
250
|
-
* @param options.ephemeral - If true, the operation won't be recorded in interaction history.
|
|
251
|
-
* @returns The created object (with AI-filled content) and message
|
|
252
|
-
*/
|
|
253
|
-
createObject(options: CreateObjectOptions): Promise<{
|
|
180
|
+
/** Patch an existing object. Null or undefined deletes a field. */
|
|
181
|
+
patchObject(path: string, options: UpdateObjectOptions): Promise<{
|
|
254
182
|
object: RoolObject;
|
|
255
183
|
message: string;
|
|
256
184
|
}>;
|
|
257
185
|
/** @internal */
|
|
258
|
-
|
|
186
|
+
_patchObjectImpl(path: string, options: UpdateObjectOptions, conversationId: string): Promise<{
|
|
259
187
|
object: RoolObject;
|
|
260
188
|
message: string;
|
|
261
189
|
}>;
|
|
262
|
-
/**
|
|
263
|
-
|
|
264
|
-
* @param objectId - The ID of the object to update
|
|
265
|
-
* @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.
|
|
266
|
-
* @param options.prompt - AI prompt for content editing (optional).
|
|
267
|
-
* @param options.ephemeral - If true, the operation won't be recorded in interaction history.
|
|
268
|
-
* @returns The updated object (with AI-filled content) and message
|
|
269
|
-
*/
|
|
270
|
-
updateObject(objectId: string, options: UpdateObjectOptions): Promise<{
|
|
190
|
+
/** Move an object JSON file to a new machine path, optionally replacing its body. */
|
|
191
|
+
moveObject(from: string, to: string, options?: MoveObjectOptions): Promise<{
|
|
271
192
|
object: RoolObject;
|
|
272
193
|
message: string;
|
|
273
194
|
}>;
|
|
274
195
|
/** @internal */
|
|
275
|
-
|
|
196
|
+
_moveObjectImpl(from: string, to: string, options: MoveObjectOptions | undefined, conversationId: string): Promise<{
|
|
276
197
|
object: RoolObject;
|
|
277
198
|
message: string;
|
|
278
199
|
}>;
|
|
279
|
-
/**
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
deleteObjects(objectIds: string[]): Promise<void>;
|
|
200
|
+
/** Delete object JSON files by machine path. */
|
|
201
|
+
deleteObjects(paths: string[]): Promise<void>;
|
|
202
|
+
/** @deprecated Use deleteObjects instead. */
|
|
203
|
+
deletePaths(paths: string[]): Promise<void>;
|
|
284
204
|
/** @internal */
|
|
285
|
-
_deleteObjectsImpl(
|
|
286
|
-
/**
|
|
287
|
-
* Get the current schema for this space.
|
|
288
|
-
* Returns a map of collection names to their definitions.
|
|
289
|
-
*/
|
|
205
|
+
_deleteObjectsImpl(paths: string[], conversationId: string): Promise<void>;
|
|
206
|
+
/** Get the current schema for this space. */
|
|
290
207
|
getSchema(): SpaceSchema;
|
|
291
|
-
/**
|
|
292
|
-
|
|
293
|
-
* @param name - Collection name (must start with a letter, alphanumeric/hyphens/underscores only)
|
|
294
|
-
* @param fields - Field definitions for the collection
|
|
295
|
-
* @returns The created CollectionDef
|
|
296
|
-
*/
|
|
297
|
-
createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
208
|
+
/** Create a new collection schema. */
|
|
209
|
+
createCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
|
|
298
210
|
/** @internal */
|
|
299
|
-
_createCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
|
|
300
|
-
/**
|
|
301
|
-
|
|
302
|
-
* @param name - Name of the collection to alter
|
|
303
|
-
* @param fields - New field definitions (replaces all existing fields)
|
|
304
|
-
* @returns The updated CollectionDef
|
|
305
|
-
*/
|
|
306
|
-
alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
211
|
+
_createCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
|
|
212
|
+
/** Alter an existing collection schema, replacing its field definitions. */
|
|
213
|
+
alterCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
|
|
307
214
|
/** @internal */
|
|
308
|
-
_alterCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
|
|
309
|
-
/**
|
|
310
|
-
* Drop a collection schema.
|
|
311
|
-
* @param name - Name of the collection to drop
|
|
312
|
-
*/
|
|
215
|
+
_alterCollectionImpl(name: string, fields: FieldDef[] | CollectionDef, options: CollectionOptions | undefined, conversationId: string): Promise<CollectionDef>;
|
|
216
|
+
/** Drop a collection schema. */
|
|
313
217
|
dropCollection(name: string): Promise<void>;
|
|
314
218
|
/** @internal */
|
|
315
219
|
_dropCollectionImpl(name: string, conversationId: string): Promise<void>;
|
|
316
220
|
/**
|
|
317
221
|
* Get the system instruction for the current conversation.
|
|
318
|
-
* Returns undefined if no system instruction is set.
|
|
319
222
|
*/
|
|
320
223
|
getSystemInstruction(): string | undefined;
|
|
321
224
|
/** @internal */
|
|
322
225
|
_getSystemInstructionImpl(conversationId: string): string | undefined;
|
|
323
|
-
/**
|
|
324
|
-
* Set the system instruction for the current conversation.
|
|
325
|
-
* Pass null to clear the instruction.
|
|
326
|
-
*/
|
|
226
|
+
/** Set the system instruction for the current conversation. */
|
|
327
227
|
setSystemInstruction(instruction: string | null): Promise<void>;
|
|
328
228
|
/** @internal */
|
|
329
229
|
_setSystemInstructionImpl(instruction: string | null, conversationId: string): Promise<void>;
|
|
330
|
-
/**
|
|
331
|
-
* Rename the current conversation.
|
|
332
|
-
*/
|
|
230
|
+
/** Rename the current conversation. */
|
|
333
231
|
renameConversation(name: string): Promise<void>;
|
|
334
232
|
/** @internal */
|
|
335
233
|
_renameConversationImpl(name: string, conversationId: string): Promise<void>;
|
|
336
|
-
/**
|
|
337
|
-
* Ensure a conversation exists in the local channel cache.
|
|
338
|
-
* @internal
|
|
339
|
-
*/
|
|
234
|
+
/** @internal */
|
|
340
235
|
_ensureConversationImpl(conversationId: string): void;
|
|
341
|
-
/**
|
|
342
|
-
* Set a space-level metadata value.
|
|
343
|
-
* Metadata is stored in meta and hidden from AI operations.
|
|
344
|
-
*/
|
|
236
|
+
/** Set a space-level metadata value. */
|
|
345
237
|
setMetadata(key: string, value: unknown): void;
|
|
346
238
|
/** @internal */
|
|
347
239
|
_setMetadataImpl(key: string, value: unknown, conversationId: string): void;
|
|
348
|
-
/**
|
|
349
|
-
* Get a space-level metadata value.
|
|
350
|
-
*/
|
|
240
|
+
/** Get a space-level metadata value. */
|
|
351
241
|
getMetadata(key: string): unknown;
|
|
352
|
-
/**
|
|
353
|
-
* Get all space-level metadata.
|
|
354
|
-
*/
|
|
242
|
+
/** Get all space-level metadata. */
|
|
355
243
|
getAllMetadata(): Record<string, unknown>;
|
|
356
244
|
/**
|
|
357
245
|
* Send a prompt to the AI agent for space manipulation.
|
|
358
|
-
* @returns The message from the AI and the list of objects that were created or modified
|
|
246
|
+
* @returns The message from the AI and the list of objects that were created or modified.
|
|
359
247
|
*/
|
|
360
248
|
prompt(prompt: string, options?: PromptOptions): Promise<{
|
|
361
249
|
message: string;
|
|
@@ -367,93 +255,43 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
367
255
|
objects: RoolObject[];
|
|
368
256
|
}>;
|
|
369
257
|
/**
|
|
370
|
-
*
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
*
|
|
375
|
-
|
|
376
|
-
listMedia(): Promise<MediaInfo[]>;
|
|
377
|
-
/**
|
|
378
|
-
* Upload a file to this space. Returns the URL.
|
|
379
|
-
*/
|
|
380
|
-
uploadMedia(file: File | Blob | {
|
|
381
|
-
data: string;
|
|
382
|
-
contentType: string;
|
|
383
|
-
}): Promise<string>;
|
|
384
|
-
/**
|
|
385
|
-
* Fetch any URL, returning headers and a blob() method (like fetch Response).
|
|
386
|
-
* Adds auth headers for backend media URLs, fetches external URLs via server proxy if CORS blocks.
|
|
387
|
-
* Pass `{ forceProxy: true }` to skip the direct fetch and go straight through the server proxy.
|
|
258
|
+
* Stop the in-flight interaction on the default conversation, if any.
|
|
259
|
+
*
|
|
260
|
+
* No-op returning `false` when the active leaf is already finished or the
|
|
261
|
+
* conversation has no interactions. Stopping is best-effort: the server
|
|
262
|
+
* halts the agent loop and closes the stream, but an LLM turn already in
|
|
263
|
+
* flight keeps generating server-side and is billed.
|
|
388
264
|
*/
|
|
389
|
-
|
|
390
|
-
forceProxy?: boolean;
|
|
391
|
-
}): Promise<MediaResponse>;
|
|
265
|
+
stop(): Promise<boolean>;
|
|
392
266
|
/**
|
|
393
|
-
*
|
|
267
|
+
* Request that the server stop a specific in-flight interaction by ID.
|
|
268
|
+
*
|
|
269
|
+
* Returns whether the server stopped an interaction (`false` if it had
|
|
270
|
+
* already finished). Stopping is best-effort — see {@link stop}.
|
|
394
271
|
*/
|
|
395
|
-
|
|
272
|
+
stopInteraction(interactionId: string): Promise<boolean>;
|
|
273
|
+
/** @internal */
|
|
274
|
+
_stopImpl(conversationId: string): Promise<boolean>;
|
|
275
|
+
/** Rename this channel. */
|
|
276
|
+
rename(newName: string): Promise<void>;
|
|
396
277
|
/**
|
|
397
278
|
* Fetch an external URL via the server proxy, bypassing CORS restrictions.
|
|
398
|
-
* Requires editor role or above. Blocked for private/internal IP ranges (SSRF protection).
|
|
399
|
-
*
|
|
400
|
-
* @param url - The URL to fetch
|
|
401
|
-
* @param init - Optional method, headers, and body
|
|
402
|
-
* @returns The proxied Response
|
|
403
279
|
*/
|
|
404
280
|
fetch(url: string, init?: {
|
|
405
281
|
method?: string;
|
|
406
282
|
headers?: Record<string, string>;
|
|
407
283
|
body?: unknown;
|
|
408
284
|
}): Promise<Response>;
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
* If the object is already in the buffer (arrived before collector), resolves immediately.
|
|
412
|
-
* @internal
|
|
413
|
-
*/
|
|
414
|
-
private _collectObject;
|
|
415
|
-
/**
|
|
416
|
-
* Cancel a pending object collector (e.g., on mutation error).
|
|
417
|
-
* @internal
|
|
418
|
-
*/
|
|
419
|
-
private _cancelCollector;
|
|
420
|
-
/**
|
|
421
|
-
* Deliver an object to a pending collector, or buffer it for later collection.
|
|
422
|
-
* @internal
|
|
423
|
-
*/
|
|
424
|
-
private _deliverObject;
|
|
285
|
+
private uploadAttachment;
|
|
286
|
+
private ensureCollection;
|
|
425
287
|
/**
|
|
426
288
|
* Handle a channel event from the subscription.
|
|
427
289
|
* @internal
|
|
428
290
|
*/
|
|
429
291
|
private handleChannelEvent;
|
|
430
|
-
/**
|
|
431
|
-
* Handle an object_created SSE event.
|
|
432
|
-
* Deduplicates against optimistic local creates.
|
|
433
|
-
* @internal
|
|
434
|
-
*/
|
|
435
|
-
private _handleObjectCreated;
|
|
436
|
-
/**
|
|
437
|
-
* Handle an object_updated SSE event.
|
|
438
|
-
* Deduplicates against optimistic local updates.
|
|
439
|
-
* @internal
|
|
440
|
-
*/
|
|
441
|
-
private _handleObjectUpdated;
|
|
442
|
-
/**
|
|
443
|
-
* Handle an object_deleted SSE event.
|
|
444
|
-
* Deduplicates against optimistic local deletes.
|
|
445
|
-
* @internal
|
|
446
|
-
*/
|
|
447
|
-
private _handleObjectDeleted;
|
|
448
292
|
}
|
|
449
293
|
/**
|
|
450
294
|
* A lightweight handle for a specific conversation within a channel.
|
|
451
|
-
*
|
|
452
|
-
* Scopes AI and mutation operations to a particular conversation's interaction
|
|
453
|
-
* history, while sharing the channel's single SSE connection and object state.
|
|
454
|
-
*
|
|
455
|
-
* Obtain via `channel.conversation('thread-id')`.
|
|
456
|
-
* Conversations are auto-created on first interaction.
|
|
457
295
|
*/
|
|
458
296
|
export declare class ConversationHandle {
|
|
459
297
|
/** @internal */
|
|
@@ -477,35 +315,42 @@ export declare class ConversationHandle {
|
|
|
477
315
|
setSystemInstruction(instruction: string | null): Promise<void>;
|
|
478
316
|
/** Rename this conversation. */
|
|
479
317
|
rename(name: string): Promise<void>;
|
|
480
|
-
/**
|
|
481
|
-
|
|
482
|
-
|
|
318
|
+
/** Create or replace an object JSON file. */
|
|
319
|
+
putObject(path: string, body: Record<string, unknown>): Promise<{
|
|
320
|
+
object: RoolObject;
|
|
483
321
|
message: string;
|
|
484
322
|
}>;
|
|
485
|
-
/**
|
|
486
|
-
|
|
323
|
+
/** Patch an existing object JSON file. */
|
|
324
|
+
patchObject(path: string, options: UpdateObjectOptions): Promise<{
|
|
487
325
|
object: RoolObject;
|
|
488
326
|
message: string;
|
|
489
327
|
}>;
|
|
490
|
-
/**
|
|
491
|
-
|
|
328
|
+
/** Move (rename/relocate) an object. */
|
|
329
|
+
moveObject(from: string, to: string, options?: MoveObjectOptions): Promise<{
|
|
492
330
|
object: RoolObject;
|
|
493
331
|
message: string;
|
|
494
332
|
}>;
|
|
495
|
-
/** Delete
|
|
496
|
-
deleteObjects(
|
|
333
|
+
/** Delete object JSON files by path. */
|
|
334
|
+
deleteObjects(paths: string[]): Promise<void>;
|
|
335
|
+
/** @deprecated Use deleteObjects instead. */
|
|
336
|
+
deletePaths(paths: string[]): Promise<void>;
|
|
497
337
|
/** Send a prompt to the AI agent, scoped to this conversation's history. */
|
|
498
338
|
prompt(text: string, options?: PromptOptions): Promise<{
|
|
499
339
|
message: string;
|
|
500
340
|
objects: RoolObject[];
|
|
501
341
|
}>;
|
|
342
|
+
/**
|
|
343
|
+
* Stop this conversation's in-flight interaction, if any. No-op returning
|
|
344
|
+
* `false` when nothing is running. Stopping is best-effort — see
|
|
345
|
+
* {@link RoolChannel.stop}.
|
|
346
|
+
*/
|
|
347
|
+
stop(): Promise<boolean>;
|
|
502
348
|
/** Create a new collection schema. */
|
|
503
|
-
createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
349
|
+
createCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
|
|
504
350
|
/** Alter an existing collection schema. */
|
|
505
|
-
alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
351
|
+
alterCollection(name: string, fields: FieldDef[] | CollectionDef, options?: CollectionOptions): Promise<CollectionDef>;
|
|
506
352
|
/** Drop a collection schema. */
|
|
507
353
|
dropCollection(name: string): Promise<void>;
|
|
508
|
-
/** Set a space-level metadata value. */
|
|
509
354
|
setMetadata(key: string, value: unknown): void;
|
|
510
355
|
}
|
|
511
356
|
//# sourceMappingURL=channel.d.ts.map
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|