@rool-dev/extension 0.3.7-dev.042e4a8 → 0.3.7-dev.8d688f9

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/dist/client.d.ts CHANGED
@@ -55,6 +55,9 @@ export declare class Channel {
55
55
  alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
56
56
  dropCollection(name: string): Promise<void>;
57
57
  getInteractions(): Promise<Interaction[]>;
58
+ getTree(): Promise<Record<string, Interaction>>;
59
+ getActiveLeafId(): Promise<string | undefined>;
60
+ setActiveLeaf(interactionId: string): Promise<void>;
58
61
  getSystemInstruction(): Promise<string | undefined>;
59
62
  setSystemInstruction(instruction: string | null): Promise<void>;
60
63
  getConversations(): Promise<ConversationInfo[]>;
@@ -98,6 +101,9 @@ export declare class ConversationHandle {
98
101
  /** The conversation ID this handle is scoped to. */
99
102
  get conversationId(): string;
100
103
  getInteractions(): Promise<Interaction[]>;
104
+ getTree(): Promise<Record<string, Interaction>>;
105
+ getActiveLeafId(): Promise<string | undefined>;
106
+ setActiveLeaf(interactionId: string): Promise<void>;
101
107
  getSystemInstruction(): Promise<string | undefined>;
102
108
  setSystemInstruction(instruction: string | null): Promise<void>;
103
109
  rename(name: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -178,6 +178,15 @@ export class Channel {
178
178
  async getInteractions() {
179
179
  return this._call('getInteractions');
180
180
  }
181
+ async getTree() {
182
+ return this._call('getTree');
183
+ }
184
+ async getActiveLeafId() {
185
+ return this._call('getActiveLeafId');
186
+ }
187
+ async setActiveLeaf(interactionId) {
188
+ await this._call('setActiveLeaf', interactionId);
189
+ }
181
190
  async getSystemInstruction() {
182
191
  return this._call('getSystemInstruction');
183
192
  }
@@ -272,6 +281,15 @@ export class ConversationHandle {
272
281
  async getInteractions() {
273
282
  return this._channel._callScoped('getInteractions', [], this._conversationId);
274
283
  }
284
+ async getTree() {
285
+ return this._channel._callScoped('getTree', [], this._conversationId);
286
+ }
287
+ async getActiveLeafId() {
288
+ return this._channel._callScoped('getActiveLeafId', [], this._conversationId);
289
+ }
290
+ async setActiveLeaf(interactionId) {
291
+ await this._channel._callScoped('setActiveLeaf', [interactionId], this._conversationId);
292
+ }
275
293
  async getSystemInstruction() {
276
294
  return this._channel._callScoped('getSystemInstruction', [], this._conversationId);
277
295
  }
@@ -5638,8 +5638,8 @@ var GraphQLClient = class {
5638
5638
  }
5639
5639
  async prompt(spaceId, prompt, channelId, conversationId, options) {
5640
5640
  return (await this.request(`
5641
- mutation Prompt($spaceId: String!, $prompt: String!, $objectIds: [String!], $responseSchema: JSON, $channelId: String!, $conversationId: String!, $effort: PromptEffort, $ephemeral: Boolean, $readOnly: Boolean, $attachments: [String!], $interactionId: String!) {
5642
- prompt(spaceId: $spaceId, prompt: $prompt, objectIds: $objectIds, responseSchema: $responseSchema, channelId: $channelId, conversationId: $conversationId, effort: $effort, ephemeral: $ephemeral, readOnly: $readOnly, attachments: $attachments, interactionId: $interactionId) {
5641
+ mutation Prompt($spaceId: String!, $prompt: String!, $objectIds: [String!], $responseSchema: JSON, $channelId: String!, $conversationId: String!, $effort: PromptEffort, $ephemeral: Boolean, $readOnly: Boolean, $attachments: [String!], $interactionId: String!, $parentInteractionId: String) {
5642
+ prompt(spaceId: $spaceId, prompt: $prompt, objectIds: $objectIds, responseSchema: $responseSchema, channelId: $channelId, conversationId: $conversationId, effort: $effort, ephemeral: $ephemeral, readOnly: $readOnly, attachments: $attachments, interactionId: $interactionId, parentInteractionId: $parentInteractionId) {
5643
5643
  message
5644
5644
  modifiedObjectIds
5645
5645
  }
@@ -5655,7 +5655,8 @@ var GraphQLClient = class {
5655
5655
  ephemeral: options.ephemeral,
5656
5656
  readOnly: options.readOnly,
5657
5657
  attachments: options.attachmentUrls,
5658
- interactionId: options.interactionId
5658
+ interactionId: options.interactionId,
5659
+ parentInteractionId: options.parentInteractionId
5659
5660
  })).prompt;
5660
5661
  }
5661
5662
  async getAccount() {
@@ -7220,6 +7221,29 @@ function generateEntityId() {
7220
7221
  for (let i = 0; i < 6; i++) result += ID_CHARS[Math.floor(Math.random() * 62)];
7221
7222
  return result;
7222
7223
  }
7224
+ /** Walk from a leaf interaction up through parentId to root, return in root→leaf order. */
7225
+ function walkBranch(interactions, leafId) {
7226
+ const path = [];
7227
+ let currentId = leafId;
7228
+ while (currentId) {
7229
+ const ix = interactions[currentId];
7230
+ if (!ix) break;
7231
+ path.push(ix);
7232
+ currentId = ix.parentId;
7233
+ }
7234
+ return path.reverse();
7235
+ }
7236
+ /** Find the default leaf: the most recent interaction by timestamp that has no children. */
7237
+ function findDefaultLeaf(interactions) {
7238
+ if (!interactions || Array.isArray(interactions)) return void 0;
7239
+ const childSet = /* @__PURE__ */ new Set();
7240
+ for (const ix of Object.values(interactions)) if (ix.parentId) childSet.add(ix.parentId);
7241
+ let best;
7242
+ for (const ix of Object.values(interactions)) if (!childSet.has(ix.id)) {
7243
+ if (!best || ix.timestamp > best.timestamp) best = ix;
7244
+ }
7245
+ return best?.id;
7246
+ }
7223
7247
  var OBJECT_COLLECT_TIMEOUT = 3e4;
7224
7248
  /**
7225
7249
  * A channel is a space + channelId pair.
@@ -7260,6 +7284,7 @@ var RoolChannel = class extends EventEmitter {
7260
7284
  _objectIds;
7261
7285
  _objectStats;
7262
7286
  _hasConnected = false;
7287
+ _activeLeaves = /* @__PURE__ */ new Map();
7263
7288
  _pendingMutations = /* @__PURE__ */ new Map();
7264
7289
  _objectResolvers = /* @__PURE__ */ new Map();
7265
7290
  _objectBuffer = /* @__PURE__ */ new Map();
@@ -7350,14 +7375,62 @@ var RoolChannel = class extends EventEmitter {
7350
7375
  return this._channel?.extensionUrl ?? null;
7351
7376
  }
7352
7377
  /**
7353
- * Get interactions for the current conversation.
7378
+ * Get the active branch of the current conversation as a flat array (root → leaf).
7379
+ * Walks from the active leaf up through parentId pointers.
7354
7380
  */
7355
7381
  getInteractions() {
7356
7382
  return this._getInteractionsImpl(this._conversationId);
7357
7383
  }
7358
7384
  /** @internal */
7359
7385
  _getInteractionsImpl(conversationId) {
7360
- return this._channel?.conversations[conversationId]?.interactions ?? [];
7386
+ const interactions = this._channel?.conversations[conversationId]?.interactions;
7387
+ if (!interactions) return [];
7388
+ if (Array.isArray(interactions)) return interactions;
7389
+ const leafId = this._getActiveLeafImpl(conversationId);
7390
+ if (!leafId) return [];
7391
+ return walkBranch(interactions, leafId);
7392
+ }
7393
+ /**
7394
+ * Get the full interaction tree for a conversation as a record.
7395
+ * For clients that need to render branch navigation UI.
7396
+ */
7397
+ getTree() {
7398
+ return this._getTreeImpl(this._conversationId);
7399
+ }
7400
+ /** @internal */
7401
+ _getTreeImpl(conversationId) {
7402
+ const interactions = this._channel?.conversations[conversationId]?.interactions;
7403
+ if (!interactions || Array.isArray(interactions)) return {};
7404
+ return interactions;
7405
+ }
7406
+ /**
7407
+ * Get the active leaf interaction ID for a conversation.
7408
+ * Returns undefined if the conversation has no interactions.
7409
+ */
7410
+ get activeLeafId() {
7411
+ return this._getActiveLeafImpl(this._conversationId);
7412
+ }
7413
+ /** @internal */
7414
+ _getActiveLeafImpl(conversationId) {
7415
+ return this._activeLeaves.get(conversationId) ?? findDefaultLeaf(this._channel?.conversations[conversationId]?.interactions);
7416
+ }
7417
+ /**
7418
+ * Set the active leaf for a conversation (switch branches).
7419
+ * Emits a conversationUpdated event so reactive wrappers refresh.
7420
+ */
7421
+ setActiveLeaf(interactionId) {
7422
+ this._setActiveLeafImpl(interactionId, this._conversationId);
7423
+ }
7424
+ /** @internal */
7425
+ _setActiveLeafImpl(interactionId, conversationId) {
7426
+ const interactions = this._channel?.conversations[conversationId]?.interactions;
7427
+ if (!interactions || Array.isArray(interactions) || !interactions[interactionId]) throw new Error(`Interaction "${interactionId}" not found in conversation "${conversationId}"`);
7428
+ this._activeLeaves.set(conversationId, interactionId);
7429
+ this.emit("conversationUpdated", {
7430
+ conversationId,
7431
+ channelId: this._channelId,
7432
+ source: "local_user"
7433
+ });
7361
7434
  }
7362
7435
  /**
7363
7436
  * Get all conversations in this channel.
@@ -7371,7 +7444,7 @@ var RoolChannel = class extends EventEmitter {
7371
7444
  systemInstruction: conv.systemInstruction ?? null,
7372
7445
  createdAt: conv.createdAt,
7373
7446
  createdBy: conv.createdBy,
7374
- interactionCount: conv.interactions.length
7447
+ interactionCount: Object.keys(conv.interactions).length
7375
7448
  }));
7376
7449
  }
7377
7450
  /**
@@ -7780,7 +7853,7 @@ var RoolChannel = class extends EventEmitter {
7780
7853
  if (!this._channel.conversations[conversationId]) this._channel.conversations[conversationId] = {
7781
7854
  createdAt: Date.now(),
7782
7855
  createdBy: this._userId,
7783
- interactions: []
7856
+ interactions: {}
7784
7857
  };
7785
7858
  }
7786
7859
  /**
@@ -7822,14 +7895,17 @@ var RoolChannel = class extends EventEmitter {
7822
7895
  }
7823
7896
  /** @internal */
7824
7897
  async _promptImpl(prompt, options, conversationId) {
7825
- const { attachments, ...rest } = options ?? {};
7898
+ const { attachments, parentInteractionId: explicitParent, ...rest } = options ?? {};
7826
7899
  let attachmentUrls;
7827
7900
  if (attachments?.length) attachmentUrls = await Promise.all(attachments.map((file) => this.mediaClient.upload(this._id, file)));
7901
+ const parentInteractionId = explicitParent !== void 0 ? explicitParent : this._getActiveLeafImpl(conversationId) ?? null;
7828
7902
  const interactionId = generateEntityId();
7903
+ this._activeLeaves.set(conversationId, interactionId);
7829
7904
  const result = await this.graphqlClient.prompt(this._id, prompt, this._channelId, conversationId, {
7830
7905
  ...rest,
7831
7906
  attachmentUrls,
7832
- interactionId
7907
+ interactionId,
7908
+ parentInteractionId
7833
7909
  });
7834
7910
  const objects = [];
7835
7911
  const missing = [];
@@ -8015,6 +8091,15 @@ var RoolChannel = class extends EventEmitter {
8015
8091
  if (event.conversation) this._channel.conversations[event.conversationId] = event.conversation;
8016
8092
  else delete this._channel.conversations[event.conversationId];
8017
8093
  if (JSON.stringify(prev) === JSON.stringify(event.conversation)) break;
8094
+ if (event.conversation && !Array.isArray(event.conversation.interactions)) {
8095
+ const currentLeaf = this._getActiveLeafImpl(event.conversationId);
8096
+ if (currentLeaf) {
8097
+ for (const ix of Object.values(event.conversation.interactions)) if (ix.parentId === currentLeaf && ix.id !== currentLeaf) {
8098
+ this._activeLeaves.set(event.conversationId, ix.id);
8099
+ break;
8100
+ }
8101
+ }
8102
+ }
8018
8103
  this.emit("conversationUpdated", {
8019
8104
  conversationId: event.conversationId,
8020
8105
  channelId: event.channelId,
@@ -8123,10 +8208,22 @@ var ConversationHandle = class {
8123
8208
  get conversationId() {
8124
8209
  return this._conversationId;
8125
8210
  }
8126
- /** Get interactions for this conversation. */
8211
+ /** Get the active branch of this conversation as a flat array (root → leaf). */
8127
8212
  getInteractions() {
8128
8213
  return this._channel._getInteractionsImpl(this._conversationId);
8129
8214
  }
8215
+ /** Get the full interaction tree as a record. */
8216
+ getTree() {
8217
+ return this._channel._getTreeImpl(this._conversationId);
8218
+ }
8219
+ /** Get the active leaf interaction ID, or undefined if empty. */
8220
+ get activeLeafId() {
8221
+ return this._channel._getActiveLeafImpl(this._conversationId);
8222
+ }
8223
+ /** Switch to a different branch by setting the active leaf. */
8224
+ setActiveLeaf(interactionId) {
8225
+ this._channel._setActiveLeafImpl(interactionId, this._conversationId);
8226
+ }
8130
8227
  /** Get the system instruction for this conversation. */
8131
8228
  getSystemInstruction() {
8132
8229
  return this._channel._getSystemInstructionImpl(this._conversationId);
@@ -8871,6 +8968,9 @@ var ALLOWED_METHODS = new Set([
8871
8968
  "alterCollection",
8872
8969
  "dropCollection",
8873
8970
  "getInteractions",
8971
+ "getTree",
8972
+ "setActiveLeaf",
8973
+ "getActiveLeafId",
8874
8974
  "getConversations",
8875
8975
  "getSystemInstruction",
8876
8976
  "setSystemInstruction",
@@ -8889,6 +8989,9 @@ var ALLOWED_METHODS = new Set([
8889
8989
  ]);
8890
8990
  var CONVERSATION_METHODS = new Set([
8891
8991
  "getInteractions",
8992
+ "getTree",
8993
+ "setActiveLeaf",
8994
+ "getActiveLeafId",
8892
8995
  "getSystemInstruction",
8893
8996
  "setSystemInstruction",
8894
8997
  "renameConversation",
@@ -8903,6 +9006,7 @@ var CONVERSATION_METHODS = new Set([
8903
9006
  "setMetadata"
8904
9007
  ]);
8905
9008
  var CONVERSATION_METHOD_MAP = { "renameConversation": "rename" };
9009
+ var GETTER_MAP = { "getActiveLeafId": "activeLeafId" };
8906
9010
  var BridgeHost = class {
8907
9011
  channel;
8908
9012
  iframe;
@@ -8969,6 +9073,7 @@ var BridgeHost = class {
8969
9073
  target = this.channel.conversation(conversationId);
8970
9074
  methodName = CONVERSATION_METHOD_MAP[method] ?? method;
8971
9075
  }
9076
+ if (GETTER_MAP[methodName]) methodName = GETTER_MAP[methodName];
8972
9077
  const fn = target[methodName];
8973
9078
  let result;
8974
9079
  if (typeof fn === "function") {