@rool-dev/sdk 0.3.1-dev.fa375c5 → 0.3.2
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 +119 -26
- package/dist/apps.d.ts +1 -1
- package/dist/apps.d.ts.map +1 -1
- package/dist/apps.js +1 -5
- package/dist/apps.js.map +1 -1
- package/dist/channel.d.ts +135 -4
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +354 -32
- package/dist/channel.js.map +1 -1
- package/dist/client.d.ts +18 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +22 -1
- package/dist/client.js.map +1 -1
- package/dist/graphql.d.ts +18 -11
- package/dist/graphql.d.ts.map +1 -1
- package/dist/graphql.js +90 -31
- package/dist/graphql.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +2 -0
- package/dist/subscription.js.map +1 -1
- package/dist/types.d.ts +82 -16
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@ Use Rool to programmatically instruct agents to generate content, research topic
|
|
|
10
10
|
|
|
11
11
|
**Core primitives:**
|
|
12
12
|
- **Spaces** — Containers for objects, schema, metadata, and channels
|
|
13
|
-
- **Channels** — Named contexts within a space
|
|
13
|
+
- **Channels** — Named contexts within a space. All object and AI operations go through a channel.
|
|
14
|
+
- **Conversations** — Independent interaction histories within a channel. Most apps use a single `'default'` conversation; multi-conversation apps (e.g., chat with multiple threads) can open additional ones.
|
|
14
15
|
- **Objects** — Key-value records with any fields you define. References between objects are data fields whose values are object IDs.
|
|
15
16
|
- **AI operations** — Create, update, or query objects using natural language and `{{placeholders}}`
|
|
16
17
|
|
|
@@ -84,7 +85,7 @@ channel.close();
|
|
|
84
85
|
|
|
85
86
|
### Spaces and Channels
|
|
86
87
|
|
|
87
|
-
A **space** is a container that holds objects, schema, metadata, and channels. A **channel** is a named context within a space — it's the handle you use for all object and AI operations. Each channel
|
|
88
|
+
A **space** is a container that holds objects, schema, metadata, and channels. A **channel** is a named context within a space — it's the handle you use for all object and AI operations. Each channel contains one or more **conversations**, each with independent interaction history.
|
|
88
89
|
|
|
89
90
|
There are two main handles:
|
|
90
91
|
- **`RoolSpace`** — Lightweight admin handle for user management, link access, channel management, and export. No real-time subscription.
|
|
@@ -111,6 +112,40 @@ The `channelId` is fixed when you open a channel and cannot be changed. To use a
|
|
|
111
112
|
- 1–32 characters
|
|
112
113
|
- Only alphanumeric characters, hyphens (`-`), and underscores (`_`)
|
|
113
114
|
|
|
115
|
+
### Conversations
|
|
116
|
+
|
|
117
|
+
A **conversation** is a named interaction history within a channel. By default, all operations use the `'default'` conversation — most apps never need to think about conversations at all.
|
|
118
|
+
|
|
119
|
+
For apps that need multiple independent interaction threads (e.g., a chat sidebar with multiple threads), use `channel.conversation()` to get a handle scoped to a specific conversation:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// Default conversation — most apps use this
|
|
123
|
+
const channel = await client.openChannel('space-id', 'main');
|
|
124
|
+
await channel.prompt('Hello'); // Uses 'default' conversation
|
|
125
|
+
|
|
126
|
+
// Conversation handle — for multi-thread UIs
|
|
127
|
+
const thread = channel.conversation('thread-42');
|
|
128
|
+
await thread.prompt('Hello'); // Uses 'thread-42' conversation
|
|
129
|
+
thread.getInteractions(); // Interactions for thread-42 only
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Each conversation has its own interaction history and optional system instruction. Conversations are auto-created on first interaction — no explicit create step needed. The 50-message cap applies per conversation. All conversations share one SSE connection per channel.
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
// System instructions are per-conversation
|
|
136
|
+
const thread = channel.conversation('research');
|
|
137
|
+
await thread.setSystemInstruction('Respond in haiku');
|
|
138
|
+
|
|
139
|
+
// List all conversations in this channel
|
|
140
|
+
const conversations = channel.getConversations();
|
|
141
|
+
|
|
142
|
+
// Delete a conversation (cannot delete 'default')
|
|
143
|
+
await channel.deleteConversation('old-thread');
|
|
144
|
+
|
|
145
|
+
// Rename a conversation
|
|
146
|
+
await thread.rename('Research Thread');
|
|
147
|
+
```
|
|
148
|
+
|
|
114
149
|
### Objects & References
|
|
115
150
|
|
|
116
151
|
**Objects** are plain key-value records. The `id` field is reserved; everything else is application-defined.
|
|
@@ -557,6 +592,19 @@ client.on('userStorageChanged', ({ key, value, source }) => {
|
|
|
557
592
|
});
|
|
558
593
|
```
|
|
559
594
|
|
|
595
|
+
### Apps
|
|
596
|
+
|
|
597
|
+
Publish, manage, and discover apps. See [`@rool-dev/app`](/app/) for building apps.
|
|
598
|
+
|
|
599
|
+
| Method | Description |
|
|
600
|
+
|--------|-------------|
|
|
601
|
+
| `publishApp(appId, options): Promise<PublishedAppInfo>` | Publish or update an app (`options.bundle`: zip with `index.html` and `rool-app.json`) |
|
|
602
|
+
| `unpublishApp(appId): Promise<void>` | Unpublish an app |
|
|
603
|
+
| `listApps(): Promise<PublishedAppInfo[]>` | List your own published apps |
|
|
604
|
+
| `getAppInfo(appId): Promise<PublishedAppInfo \| null>` | Get info for a specific app |
|
|
605
|
+
| `findApps(options?): Promise<PublishedAppInfo[]>` | Search public apps. Options: `query` (semantic search string), `limit` (default 20, max 100). Omit `query` to browse all. |
|
|
606
|
+
| `installApp(spaceId, appId, channelId?): Promise<string>` | Install an app into a space. Creates/updates a channel with the app's manifest settings (name, system instruction, collections). Returns the channel ID. Defaults `channelId` to `appId`. |
|
|
607
|
+
|
|
560
608
|
### Utilities
|
|
561
609
|
|
|
562
610
|
| Method | Description |
|
|
@@ -637,6 +685,7 @@ A channel is a named context within a space. All object operations, AI prompts,
|
|
|
637
685
|
| `userId: string` | Current user's ID |
|
|
638
686
|
| `channelId: string` | Channel ID (read-only, fixed at open time) |
|
|
639
687
|
| `isReadOnly: boolean` | True if viewer role |
|
|
688
|
+
| `appUrl: string \| null` | URL of the installed app, or null if this is a plain channel |
|
|
640
689
|
|
|
641
690
|
### Lifecycle
|
|
642
691
|
|
|
@@ -644,6 +693,7 @@ A channel is a named context within a space. All object operations, AI prompts,
|
|
|
644
693
|
|--------|-------------|
|
|
645
694
|
| `close(): void` | Clean up resources and stop receiving updates |
|
|
646
695
|
| `rename(name): Promise<void>` | Rename this channel |
|
|
696
|
+
| `conversation(conversationId): ConversationHandle` | Get a handle scoped to a specific conversation (see [Conversations](#conversations)) |
|
|
647
697
|
|
|
648
698
|
### Object Operations
|
|
649
699
|
|
|
@@ -877,9 +927,12 @@ channel.on('metadataUpdated', ({ metadata, source }) => void)
|
|
|
877
927
|
// Collection schema changed
|
|
878
928
|
channel.on('schemaUpdated', ({ schema, source }) => void)
|
|
879
929
|
|
|
880
|
-
// Channel updated (
|
|
930
|
+
// Channel metadata updated (name, appUrl)
|
|
881
931
|
channel.on('channelUpdated', ({ channelId, source }) => void)
|
|
882
932
|
|
|
933
|
+
// Conversation interaction history updated
|
|
934
|
+
channel.on('conversationUpdated', ({ conversationId, channelId, source }) => void)
|
|
935
|
+
|
|
883
936
|
// Full state replacement (undo/redo, resync after error)
|
|
884
937
|
channel.on('reset', ({ source }) => void)
|
|
885
938
|
|
|
@@ -905,13 +958,13 @@ try {
|
|
|
905
958
|
|
|
906
959
|
## Interaction History
|
|
907
960
|
|
|
908
|
-
Each channel
|
|
961
|
+
Each channel contains one or more conversations, each with its own interaction history. The history records all meaningful interactions (prompts, object mutations) as self-contained entries, each capturing the request and its result. History is stored in the space data itself and syncs in real-time to all clients.
|
|
909
962
|
|
|
910
963
|
### What the AI Receives
|
|
911
964
|
|
|
912
965
|
AI operations (`prompt`, `createObject`, `updateObject`, `findObjects`) automatically receive:
|
|
913
966
|
|
|
914
|
-
- **Interaction history** — Previous interactions and their results from
|
|
967
|
+
- **Interaction history** — Previous interactions and their results from the current conversation
|
|
915
968
|
- **Recently modified objects** — Objects in the space recently created or changed
|
|
916
969
|
- **Selected objects** — Objects passed via `objectIds` are given primary focus
|
|
917
970
|
|
|
@@ -920,24 +973,27 @@ This context flows automatically — no configuration needed. The AI sees enough
|
|
|
920
973
|
### Accessing History
|
|
921
974
|
|
|
922
975
|
```typescript
|
|
923
|
-
// Get interactions for
|
|
976
|
+
// Get interactions for the current conversation
|
|
924
977
|
const interactions = channel.getInteractions();
|
|
925
978
|
// Returns: Interaction[]
|
|
926
979
|
```
|
|
927
980
|
|
|
928
|
-
###
|
|
981
|
+
### Conversation History Methods
|
|
929
982
|
|
|
930
983
|
| Method | Description |
|
|
931
984
|
|--------|-------------|
|
|
932
|
-
| `getInteractions(): Interaction[]` | Get interactions for
|
|
933
|
-
| `getSystemInstruction(): string \| undefined` | Get system instruction for
|
|
934
|
-
| `setSystemInstruction(instruction): Promise<void>` | Set system instruction for
|
|
985
|
+
| `getInteractions(): Interaction[]` | Get interactions for the default conversation |
|
|
986
|
+
| `getSystemInstruction(): string \| undefined` | Get system instruction for the default conversation |
|
|
987
|
+
| `setSystemInstruction(instruction): Promise<void>` | Set system instruction for the default conversation. Pass `null` to clear. |
|
|
988
|
+
| `getConversations(): ConversationInfo[]` | List all conversations in this channel |
|
|
989
|
+
| `deleteConversation(conversationId): Promise<void>` | Delete a conversation (cannot delete `'default'`) |
|
|
990
|
+
| `renameConversation(name): Promise<void>` | Rename the default conversation |
|
|
935
991
|
|
|
936
992
|
Channel management (listing, renaming, deleting channels) is done via the client — see [Channel Management](#channel-management).
|
|
937
993
|
|
|
938
994
|
### System Instructions
|
|
939
995
|
|
|
940
|
-
System instructions customize how the AI behaves within a
|
|
996
|
+
System instructions customize how the AI behaves within a conversation. The instruction persists across all prompts in that conversation.
|
|
941
997
|
|
|
942
998
|
```typescript
|
|
943
999
|
// Make the AI behave like an SQL interpreter
|
|
@@ -964,19 +1020,25 @@ System instructions are useful for:
|
|
|
964
1020
|
### Listening for Updates
|
|
965
1021
|
|
|
966
1022
|
```typescript
|
|
1023
|
+
// Listen for conversation updates (interaction history changes)
|
|
1024
|
+
channel.on('conversationUpdated', ({ conversationId, channelId, source }) => {
|
|
1025
|
+
const interactions = channel.getInteractions();
|
|
1026
|
+
renderInteractions(interactions);
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
// channelUpdated also fires for the active conversation (backward compat)
|
|
967
1030
|
channel.on('channelUpdated', ({ channelId, source }) => {
|
|
968
|
-
// Channel updated - refresh if needed
|
|
969
1031
|
const interactions = channel.getInteractions();
|
|
970
1032
|
renderInteractions(interactions);
|
|
971
1033
|
});
|
|
972
1034
|
```
|
|
973
1035
|
|
|
974
|
-
### Multiple Channels
|
|
1036
|
+
### Multiple Channels and Conversations
|
|
975
1037
|
|
|
976
|
-
Each channel
|
|
1038
|
+
Each channel contains conversations with independent interaction history. For most apps, a single channel with the default conversation is sufficient. For multi-thread UIs, use conversation handles within one channel:
|
|
977
1039
|
|
|
978
1040
|
```typescript
|
|
979
|
-
//
|
|
1041
|
+
// Multiple channels on the same space
|
|
980
1042
|
const research = await client.openChannel('space-id', 'research');
|
|
981
1043
|
const main = await client.openChannel('space-id', 'main');
|
|
982
1044
|
|
|
@@ -984,19 +1046,27 @@ const main = await client.openChannel('space-id', 'main');
|
|
|
984
1046
|
await research.prompt("Analyze this data");
|
|
985
1047
|
await main.prompt("Summarize findings");
|
|
986
1048
|
|
|
1049
|
+
// Multiple conversations within one channel (shared SSE connection)
|
|
1050
|
+
const channel = await client.openChannel('space-id', 'main');
|
|
1051
|
+
const thread1 = channel.conversation('thread-1');
|
|
1052
|
+
const thread2 = channel.conversation('thread-2');
|
|
1053
|
+
|
|
1054
|
+
await thread1.prompt("Research topic A");
|
|
1055
|
+
await thread2.prompt("Research topic B");
|
|
1056
|
+
|
|
987
1057
|
// Close when done
|
|
988
1058
|
research.close();
|
|
989
1059
|
main.close();
|
|
990
1060
|
```
|
|
991
1061
|
|
|
992
1062
|
**Use cases:**
|
|
993
|
-
- **Chat app with sidebar** — Each sidebar entry is a
|
|
994
|
-
- **Page refresh** — Store the channelId in localStorage to resume
|
|
1063
|
+
- **Chat app with sidebar** — Each sidebar entry is a conversation handle within the same channel
|
|
1064
|
+
- **Page refresh** — Store the channelId and conversationId in localStorage to resume
|
|
995
1065
|
- **Collaborative channels** — Share a channelId between users to enable shared AI interaction history
|
|
996
1066
|
|
|
997
|
-
**Tip:** Use the user's id as
|
|
1067
|
+
**Tip:** Use the user's id as conversationId to give each user their own interaction history within a shared channel.
|
|
998
1068
|
|
|
999
|
-
Note: Interaction history is truncated to the most recent 50 entries
|
|
1069
|
+
Note: Interaction history is truncated to the most recent 50 entries per conversation.
|
|
1000
1070
|
|
|
1001
1071
|
### The ai Field
|
|
1002
1072
|
|
|
@@ -1006,7 +1076,7 @@ The `ai` field in interactions distinguishes AI-generated responses from synthet
|
|
|
1006
1076
|
|
|
1007
1077
|
### Tool Calls
|
|
1008
1078
|
|
|
1009
|
-
The `toolCalls` array captures what the AI agent did during execution. Use it to build responsive UIs that show progress while the agent works — the `
|
|
1079
|
+
The `toolCalls` array captures what the AI agent did during execution. Use it to build responsive UIs that show progress while the agent works — the `conversationUpdated` event fires when each tool starts and completes. A tool call without a `result` is still running; once `result` is present, the tool has finished.
|
|
1010
1080
|
|
|
1011
1081
|
## Data Types
|
|
1012
1082
|
|
|
@@ -1057,17 +1127,36 @@ interface RoolObjectStat {
|
|
|
1057
1127
|
}
|
|
1058
1128
|
```
|
|
1059
1129
|
|
|
1060
|
-
### Channels
|
|
1130
|
+
### Channels and Conversations
|
|
1061
1131
|
|
|
1062
1132
|
```typescript
|
|
1063
|
-
//
|
|
1133
|
+
// Conversation — holds interaction history and optional system instruction
|
|
1134
|
+
interface Conversation {
|
|
1135
|
+
name?: string; // Conversation name (optional)
|
|
1136
|
+
systemInstruction?: string; // Custom system instruction for AI
|
|
1137
|
+
createdAt: number; // Timestamp when conversation was created
|
|
1138
|
+
createdBy: string; // User ID who created the conversation
|
|
1139
|
+
interactions: Interaction[]; // Interaction history
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
// Conversation summary info (returned by channel.getConversations())
|
|
1143
|
+
interface ConversationInfo {
|
|
1144
|
+
id: string;
|
|
1145
|
+
name: string | null;
|
|
1146
|
+
systemInstruction: string | null;
|
|
1147
|
+
createdAt: number;
|
|
1148
|
+
createdBy: string;
|
|
1149
|
+
interactionCount: number;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
// Channel container with metadata and conversations
|
|
1064
1153
|
interface Channel {
|
|
1065
1154
|
name?: string; // Channel name (optional)
|
|
1066
1155
|
createdAt: number; // Timestamp when channel was created
|
|
1067
1156
|
createdBy: string; // User ID who created the channel
|
|
1068
1157
|
createdByName?: string; // Display name at time of creation
|
|
1069
|
-
|
|
1070
|
-
|
|
1158
|
+
appUrl?: string; // URL of installed app (set by installApp)
|
|
1159
|
+
conversations: Record<string, Conversation>; // Keyed by conversation ID
|
|
1071
1160
|
}
|
|
1072
1161
|
|
|
1073
1162
|
// Channel summary info (returned by client.getChannels)
|
|
@@ -1078,6 +1167,7 @@ interface ChannelInfo {
|
|
|
1078
1167
|
createdBy: string;
|
|
1079
1168
|
createdByName: string | null;
|
|
1080
1169
|
interactionCount: number;
|
|
1170
|
+
appUrl: string | null; // URL of installed app, or null
|
|
1081
1171
|
}
|
|
1082
1172
|
```
|
|
1083
1173
|
|
|
@@ -1089,9 +1179,11 @@ Note: `Channel` and `ChannelInfo` are data types describing the stored channel m
|
|
|
1089
1179
|
interface ToolCall {
|
|
1090
1180
|
name: string; // Tool name (e.g., "create_object", "update_object", "search_web")
|
|
1091
1181
|
input: unknown; // Arguments passed to the tool
|
|
1092
|
-
result
|
|
1182
|
+
result?: string; // Truncated result (absent while tool is running)
|
|
1093
1183
|
}
|
|
1094
1184
|
|
|
1185
|
+
type InteractionStatus = 'pending' | 'streaming' | 'done' | 'error';
|
|
1186
|
+
|
|
1095
1187
|
interface Interaction {
|
|
1096
1188
|
id: string; // Unique ID for this interaction
|
|
1097
1189
|
timestamp: number;
|
|
@@ -1099,7 +1191,8 @@ interface Interaction {
|
|
|
1099
1191
|
userName?: string | null; // Display name at time of interaction
|
|
1100
1192
|
operation: 'prompt' | 'createObject' | 'updateObject' | 'deleteObjects';
|
|
1101
1193
|
input: string; // What the user did: prompt text or action description
|
|
1102
|
-
output: string | null; //
|
|
1194
|
+
output: string | null; // AI response or confirmation message (may be partial when streaming)
|
|
1195
|
+
status: InteractionStatus; // Lifecycle status (pending → streaming → done/error)
|
|
1103
1196
|
ai: boolean; // Whether AI was invoked (vs synthetic confirmation)
|
|
1104
1197
|
modifiedObjectIds: string[]; // Objects affected by this interaction
|
|
1105
1198
|
toolCalls: ToolCall[]; // Tools called during this interaction (for AI prompts)
|
package/dist/apps.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class AppsClient {
|
|
|
18
18
|
/**
|
|
19
19
|
* Publish or update an app.
|
|
20
20
|
* @param appId - URL-safe identifier for the app
|
|
21
|
-
* @param options -
|
|
21
|
+
* @param options - Bundle zip file (must include index.html and rool-app.json)
|
|
22
22
|
*/
|
|
23
23
|
publish(appId: string, options: PublishAppOptions): Promise<PublishedAppInfo>;
|
|
24
24
|
/**
|
package/dist/apps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAIpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBzC;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAsB1D;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAIpC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkBzC;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAsB1D;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwBnF;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAe9C"}
|
package/dist/apps.js
CHANGED
|
@@ -47,7 +47,7 @@ export class AppsClient {
|
|
|
47
47
|
/**
|
|
48
48
|
* Publish or update an app.
|
|
49
49
|
* @param appId - URL-safe identifier for the app
|
|
50
|
-
* @param options -
|
|
50
|
+
* @param options - Bundle zip file (must include index.html and rool-app.json)
|
|
51
51
|
*/
|
|
52
52
|
async publish(appId, options) {
|
|
53
53
|
const tokens = await this.config.authManager.getTokens();
|
|
@@ -56,10 +56,6 @@ export class AppsClient {
|
|
|
56
56
|
const headers = { Authorization: `Bearer ${tokens.accessToken}`, 'X-Rool-Token': tokens.roolToken };
|
|
57
57
|
const formData = new FormData();
|
|
58
58
|
formData.append('bundle', options.bundle);
|
|
59
|
-
formData.append('name', options.name);
|
|
60
|
-
if (options.spa !== undefined) {
|
|
61
|
-
formData.append('spa', String(options.spa));
|
|
62
|
-
}
|
|
63
59
|
const response = await fetch(`${this.config.appsUrl}/${encodeURIComponent(appId)}`, {
|
|
64
60
|
method: 'POST',
|
|
65
61
|
headers,
|
package/dist/apps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,cAAc;AACd,2DAA2D;AAC3D,gFAAgF;AAUhF,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAClF,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAA0B;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,cAAc;AACd,2DAA2D;AAC3D,gFAAgF;AAUhF,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAClF,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAA0B;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAClF,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAElD,MAAM,OAAO,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAE5H,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAClF,MAAM,EAAE,QAAQ;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;CACF"}
|
package/dist/channel.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { GraphQLClient } from './graphql.js';
|
|
|
3
3
|
import type { MediaClient } from './media.js';
|
|
4
4
|
import type { AuthManager } from './auth.js';
|
|
5
5
|
import type { Logger } from './logger.js';
|
|
6
|
-
import type { RoolObject, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions, MediaInfo, MediaResponse, Interaction, Channel, LinkAccess, SpaceSchema, CollectionDef, FieldDef } from './types.js';
|
|
6
|
+
import type { RoolObject, RoolObjectStat, ChannelEvents, RoolUserRole, PromptOptions, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions, MediaInfo, MediaResponse, Interaction, Channel, ConversationInfo, LinkAccess, SpaceSchema, CollectionDef, FieldDef } from './types.js';
|
|
7
7
|
export declare function generateEntityId(): string;
|
|
8
8
|
export interface ChannelConfig {
|
|
9
9
|
id: string;
|
|
@@ -56,6 +56,7 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
56
56
|
private _linkAccess;
|
|
57
57
|
private _userId;
|
|
58
58
|
private _channelId;
|
|
59
|
+
private _conversationId;
|
|
59
60
|
private _closed;
|
|
60
61
|
private graphqlClient;
|
|
61
62
|
private mediaClient;
|
|
@@ -94,11 +95,40 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
94
95
|
* Fixed at open time — cannot be changed.
|
|
95
96
|
*/
|
|
96
97
|
get channelId(): string;
|
|
98
|
+
/**
|
|
99
|
+
* Get the conversation ID for this channel.
|
|
100
|
+
* Defaults to 'default' for most apps.
|
|
101
|
+
*/
|
|
102
|
+
get conversationId(): string;
|
|
97
103
|
get isReadOnly(): boolean;
|
|
98
104
|
/**
|
|
99
|
-
* Get
|
|
105
|
+
* Get the app URL if this channel was created via installApp, or null.
|
|
106
|
+
*/
|
|
107
|
+
get appUrl(): string | null;
|
|
108
|
+
/**
|
|
109
|
+
* Get interactions for the current conversation.
|
|
100
110
|
*/
|
|
101
111
|
getInteractions(): Interaction[];
|
|
112
|
+
/** @internal */
|
|
113
|
+
_getInteractionsImpl(conversationId: string): Interaction[];
|
|
114
|
+
/**
|
|
115
|
+
* Get all conversations in this channel.
|
|
116
|
+
* Returns summary info (no full interaction data) for each conversation.
|
|
117
|
+
*/
|
|
118
|
+
getConversations(): ConversationInfo[];
|
|
119
|
+
/**
|
|
120
|
+
* Delete a conversation from this channel.
|
|
121
|
+
* Cannot delete the conversation you are currently using.
|
|
122
|
+
*/
|
|
123
|
+
deleteConversation(conversationId: string): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Get a handle for a specific conversation within this channel.
|
|
126
|
+
* The handle scopes AI and mutation operations to that conversation's
|
|
127
|
+
* interaction history, while sharing the channel's single SSE connection.
|
|
128
|
+
*
|
|
129
|
+
* Conversations are auto-created on first interaction — no explicit create needed.
|
|
130
|
+
*/
|
|
131
|
+
conversation(conversationId: string): ConversationHandle;
|
|
102
132
|
/**
|
|
103
133
|
* Close this channel and clean up resources.
|
|
104
134
|
* Stops real-time subscription and unregisters from client.
|
|
@@ -162,6 +192,11 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
162
192
|
objects: RoolObject[];
|
|
163
193
|
message: string;
|
|
164
194
|
}>;
|
|
195
|
+
/** @internal */
|
|
196
|
+
_findObjectsImpl(options: FindObjectsOptions, conversationId: string): Promise<{
|
|
197
|
+
objects: RoolObject[];
|
|
198
|
+
message: string;
|
|
199
|
+
}>;
|
|
165
200
|
/**
|
|
166
201
|
* Get all object IDs (sync, from local cache).
|
|
167
202
|
* The list is loaded on open and kept current via SSE events.
|
|
@@ -182,6 +217,11 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
182
217
|
object: RoolObject;
|
|
183
218
|
message: string;
|
|
184
219
|
}>;
|
|
220
|
+
/** @internal */
|
|
221
|
+
_createObjectImpl(options: CreateObjectOptions, conversationId: string): Promise<{
|
|
222
|
+
object: RoolObject;
|
|
223
|
+
message: string;
|
|
224
|
+
}>;
|
|
185
225
|
/**
|
|
186
226
|
* Update an existing object.
|
|
187
227
|
* @param objectId - The ID of the object to update
|
|
@@ -194,11 +234,18 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
194
234
|
object: RoolObject;
|
|
195
235
|
message: string;
|
|
196
236
|
}>;
|
|
237
|
+
/** @internal */
|
|
238
|
+
_updateObjectImpl(objectId: string, options: UpdateObjectOptions, conversationId: string): Promise<{
|
|
239
|
+
object: RoolObject;
|
|
240
|
+
message: string;
|
|
241
|
+
}>;
|
|
197
242
|
/**
|
|
198
243
|
* Delete objects by IDs.
|
|
199
244
|
* Other objects that reference deleted objects via data fields will retain stale ref values.
|
|
200
245
|
*/
|
|
201
246
|
deleteObjects(objectIds: string[]): Promise<void>;
|
|
247
|
+
/** @internal */
|
|
248
|
+
_deleteObjectsImpl(objectIds: string[], conversationId: string): Promise<void>;
|
|
202
249
|
/**
|
|
203
250
|
* Get the current schema for this space.
|
|
204
251
|
* Returns a map of collection names to their definitions.
|
|
@@ -211,6 +258,8 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
211
258
|
* @returns The created CollectionDef
|
|
212
259
|
*/
|
|
213
260
|
createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
261
|
+
/** @internal */
|
|
262
|
+
_createCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
|
|
214
263
|
/**
|
|
215
264
|
* Alter an existing collection schema, replacing its field definitions.
|
|
216
265
|
* @param name - Name of the collection to alter
|
|
@@ -218,26 +267,47 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
218
267
|
* @returns The updated CollectionDef
|
|
219
268
|
*/
|
|
220
269
|
alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
270
|
+
/** @internal */
|
|
271
|
+
_alterCollectionImpl(name: string, fields: FieldDef[], conversationId: string): Promise<CollectionDef>;
|
|
221
272
|
/**
|
|
222
273
|
* Drop a collection schema.
|
|
223
274
|
* @param name - Name of the collection to drop
|
|
224
275
|
*/
|
|
225
276
|
dropCollection(name: string): Promise<void>;
|
|
277
|
+
/** @internal */
|
|
278
|
+
_dropCollectionImpl(name: string, conversationId: string): Promise<void>;
|
|
226
279
|
/**
|
|
227
|
-
* Get the system instruction for
|
|
280
|
+
* Get the system instruction for the current conversation.
|
|
228
281
|
* Returns undefined if no system instruction is set.
|
|
229
282
|
*/
|
|
230
283
|
getSystemInstruction(): string | undefined;
|
|
284
|
+
/** @internal */
|
|
285
|
+
_getSystemInstructionImpl(conversationId: string): string | undefined;
|
|
231
286
|
/**
|
|
232
|
-
* Set the system instruction for
|
|
287
|
+
* Set the system instruction for the current conversation.
|
|
233
288
|
* Pass null to clear the instruction.
|
|
234
289
|
*/
|
|
235
290
|
setSystemInstruction(instruction: string | null): Promise<void>;
|
|
291
|
+
/** @internal */
|
|
292
|
+
_setSystemInstructionImpl(instruction: string | null, conversationId: string): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* Rename the current conversation.
|
|
295
|
+
*/
|
|
296
|
+
renameConversation(name: string): Promise<void>;
|
|
297
|
+
/** @internal */
|
|
298
|
+
_renameConversationImpl(name: string, conversationId: string): Promise<void>;
|
|
299
|
+
/**
|
|
300
|
+
* Ensure a conversation exists in the local channel cache.
|
|
301
|
+
* @internal
|
|
302
|
+
*/
|
|
303
|
+
_ensureConversationImpl(conversationId: string): void;
|
|
236
304
|
/**
|
|
237
305
|
* Set a space-level metadata value.
|
|
238
306
|
* Metadata is stored in meta and hidden from AI operations.
|
|
239
307
|
*/
|
|
240
308
|
setMetadata(key: string, value: unknown): void;
|
|
309
|
+
/** @internal */
|
|
310
|
+
_setMetadataImpl(key: string, value: unknown, conversationId: string): void;
|
|
241
311
|
/**
|
|
242
312
|
* Get a space-level metadata value.
|
|
243
313
|
*/
|
|
@@ -254,6 +324,11 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
254
324
|
message: string;
|
|
255
325
|
objects: RoolObject[];
|
|
256
326
|
}>;
|
|
327
|
+
/** @internal */
|
|
328
|
+
_promptImpl(prompt: string, options: PromptOptions | undefined, conversationId: string): Promise<{
|
|
329
|
+
message: string;
|
|
330
|
+
objects: RoolObject[];
|
|
331
|
+
}>;
|
|
257
332
|
/**
|
|
258
333
|
* Rename this channel.
|
|
259
334
|
*/
|
|
@@ -321,4 +396,60 @@ export declare class RoolChannel extends EventEmitter<ChannelEvents> {
|
|
|
321
396
|
*/
|
|
322
397
|
private _handleObjectDeleted;
|
|
323
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* A lightweight handle for a specific conversation within a channel.
|
|
401
|
+
*
|
|
402
|
+
* Scopes AI and mutation operations to a particular conversation's interaction
|
|
403
|
+
* history, while sharing the channel's single SSE connection and object state.
|
|
404
|
+
*
|
|
405
|
+
* Obtain via `channel.conversation('thread-id')`.
|
|
406
|
+
* Conversations are auto-created on first interaction.
|
|
407
|
+
*/
|
|
408
|
+
export declare class ConversationHandle {
|
|
409
|
+
/** @internal */
|
|
410
|
+
private _channel;
|
|
411
|
+
private _conversationId;
|
|
412
|
+
/** @internal */
|
|
413
|
+
constructor(channel: RoolChannel, conversationId: string);
|
|
414
|
+
/** The conversation ID this handle is scoped to. */
|
|
415
|
+
get conversationId(): string;
|
|
416
|
+
/** Get interactions for this conversation. */
|
|
417
|
+
getInteractions(): Interaction[];
|
|
418
|
+
/** Get the system instruction for this conversation. */
|
|
419
|
+
getSystemInstruction(): string | undefined;
|
|
420
|
+
/** Set the system instruction for this conversation. Pass null to clear. */
|
|
421
|
+
setSystemInstruction(instruction: string | null): Promise<void>;
|
|
422
|
+
/** Rename this conversation. */
|
|
423
|
+
rename(name: string): Promise<void>;
|
|
424
|
+
/** Find objects using structured filters and/or natural language. */
|
|
425
|
+
findObjects(options: FindObjectsOptions): Promise<{
|
|
426
|
+
objects: RoolObject[];
|
|
427
|
+
message: string;
|
|
428
|
+
}>;
|
|
429
|
+
/** Create a new object. */
|
|
430
|
+
createObject(options: CreateObjectOptions): Promise<{
|
|
431
|
+
object: RoolObject;
|
|
432
|
+
message: string;
|
|
433
|
+
}>;
|
|
434
|
+
/** Update an existing object. */
|
|
435
|
+
updateObject(objectId: string, options: UpdateObjectOptions): Promise<{
|
|
436
|
+
object: RoolObject;
|
|
437
|
+
message: string;
|
|
438
|
+
}>;
|
|
439
|
+
/** Delete objects by IDs. */
|
|
440
|
+
deleteObjects(objectIds: string[]): Promise<void>;
|
|
441
|
+
/** Send a prompt to the AI agent, scoped to this conversation's history. */
|
|
442
|
+
prompt(text: string, options?: PromptOptions): Promise<{
|
|
443
|
+
message: string;
|
|
444
|
+
objects: RoolObject[];
|
|
445
|
+
}>;
|
|
446
|
+
/** Create a new collection schema. */
|
|
447
|
+
createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
448
|
+
/** Alter an existing collection schema. */
|
|
449
|
+
alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
|
|
450
|
+
/** Drop a collection schema. */
|
|
451
|
+
dropCollection(name: string): Promise<void>;
|
|
452
|
+
/** Set a space-level metadata value. */
|
|
453
|
+
setMetadata(key: string, value: unknown): void;
|
|
454
|
+
}
|
|
324
455
|
//# 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,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,aAAa,EAGb,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,YAAY,CAAC;AAKpB,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAKD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,wBAAwB;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,6CAA6C;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAY,SAAQ,YAAY,CAAC,aAAa,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAS;IAI9B,OAAO,CAAC,iBAAiB,CAAwC;IAEjE,OAAO,CAAC,gBAAgB,CAAgD;IAExE,OAAO,CAAC,aAAa,CAAiC;gBAE1C,MAAM,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|