@rool-dev/extension 0.3.7 → 0.3.8-dev.b3f8671

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/host.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  *
7
7
  * Used by both the console's ExtensionHost component and the local dev shell.
8
8
  */
9
+ import type { BridgeUser } from './protocol.js';
9
10
  /**
10
11
  * Minimal channel interface accepted by the bridge host.
11
12
  * Works with both BridgeableChannel (SDK) and ReactiveChannel (@rool-dev/svelte).
@@ -28,10 +29,13 @@ export interface BridgeHostOptions {
28
29
  channel: BridgeableChannel;
29
30
  /** The iframe element hosting the extension */
30
31
  iframe: HTMLIFrameElement;
32
+ /** Current user info to expose to the extension */
33
+ user: BridgeUser;
31
34
  }
32
35
  export declare class BridgeHost {
33
36
  private channel;
34
37
  private iframe;
38
+ private user;
35
39
  private eventCleanups;
36
40
  private _destroyed;
37
41
  constructor(options: BridgeHostOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/C;AAqED,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,iBAAiB;IA0BtC,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,UAAU,CAchB;YAEY,cAAc;IAgD5B,OAAO,CAAC,UAAU;IASlB,OAAO,IAAI,IAAI;CAQhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAEvE"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAA6B,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3E;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/C;AAgFD,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,+CAA+C;IAC/C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mDAAmD;IACnD,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,iBAAiB;IA2BtC,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,UAAU,CAchB;YAEY,cAAc;IAqD5B,OAAO,CAAC,UAAU;IASlB,OAAO,IAAI,IAAI;CAQhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAEvE"}
package/dist/host.js CHANGED
@@ -34,6 +34,9 @@ const ALLOWED_METHODS = new Set([
34
34
  'alterCollection',
35
35
  'dropCollection',
36
36
  'getInteractions',
37
+ 'getTree',
38
+ 'setActiveLeaf',
39
+ 'getActiveLeafId',
37
40
  'getConversations',
38
41
  'getSystemInstruction',
39
42
  'setSystemInstruction',
@@ -53,6 +56,9 @@ const ALLOWED_METHODS = new Set([
53
56
  // Methods that can be dispatched to a ConversationHandle when conversationId is present
54
57
  const CONVERSATION_METHODS = new Set([
55
58
  'getInteractions',
59
+ 'getTree',
60
+ 'setActiveLeaf',
61
+ 'getActiveLeafId',
56
62
  'getSystemInstruction',
57
63
  'setSystemInstruction',
58
64
  'renameConversation',
@@ -70,14 +76,20 @@ const CONVERSATION_METHODS = new Set([
70
76
  const CONVERSATION_METHOD_MAP = {
71
77
  'renameConversation': 'rename',
72
78
  };
79
+ // Wire method names that map to getters (not callable methods)
80
+ const GETTER_MAP = {
81
+ 'getActiveLeafId': 'activeLeafId',
82
+ };
73
83
  export class BridgeHost {
74
84
  channel;
75
85
  iframe;
86
+ user;
76
87
  eventCleanups = [];
77
88
  _destroyed = false;
78
89
  constructor(options) {
79
90
  this.channel = options.channel;
80
91
  this.iframe = options.iframe;
92
+ this.user = options.user;
81
93
  window.addEventListener('message', this._onMessage);
82
94
  // Forward channel events to the extension iframe
83
95
  for (const eventName of FORWARDED_EVENTS) {
@@ -106,6 +118,7 @@ export class BridgeHost {
106
118
  role: this.channel.role,
107
119
  linkAccess: this.channel.linkAccess,
108
120
  userId: this.channel.userId,
121
+ user: this.user,
109
122
  schema: this.channel.getSchema(),
110
123
  metadata: this.channel.getAllMetadata(),
111
124
  };
@@ -147,6 +160,10 @@ export class BridgeHost {
147
160
  target = this.channel.conversation(conversationId);
148
161
  methodName = CONVERSATION_METHOD_MAP[method] ?? method;
149
162
  }
163
+ // Resolve getter aliases (e.g. getActiveLeafId → activeLeafId)
164
+ if (GETTER_MAP[methodName]) {
165
+ methodName = GETTER_MAP[methodName];
166
+ }
150
167
  // Get the method from the target (cast for dynamic dispatch)
151
168
  const fn = target[methodName];
152
169
  let result;
package/dist/index.d.ts CHANGED
@@ -6,5 +6,6 @@
6
6
  */
7
7
  export { initExtension } from './reactive.svelte.js';
8
8
  export type { ReactiveChannel, ReactiveConversationHandle, ReactiveObject, ReactiveWatch, WatchOptions } from './reactive.svelte.js';
9
+ export type { BridgeUser } from './protocol.js';
9
10
  export type { RoolObject, RoolObjectStat, SpaceSchema, CollectionDef, FieldDef, FieldType, Interaction, InteractionStatus, ConversationInfo, ToolCall, PromptOptions, PromptEffort, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions, ChangeSource, RoolUserRole, LinkAccess, ChannelEvents, } from './types.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,0BAA0B,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGrI,YAAY,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,0BAA0B,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGrI,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,YAAY,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -30,6 +30,12 @@ export interface BridgeEvent {
30
30
  export interface BridgeReady {
31
31
  type: 'rool:ready';
32
32
  }
33
+ /** Current user info sent to extensions during handshake */
34
+ export interface BridgeUser {
35
+ id: string;
36
+ name: string | null;
37
+ email: string;
38
+ }
33
39
  /** Host → Extension: handshake response with channel metadata */
34
40
  export interface BridgeInit {
35
41
  type: 'rool:init';
@@ -39,6 +45,7 @@ export interface BridgeInit {
39
45
  role: string;
40
46
  linkAccess: string;
41
47
  userId: string;
48
+ user: BridgeUser;
42
49
  schema: Record<string, unknown>;
43
50
  metadata: Record<string, unknown>;
44
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,CAAC;AAEf,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAQpE"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,CAAC;AAEf,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAQpE"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Reactive Svelte wrapper around Channel (bridge client).
2
+ * Extension channel bridge client with Svelte 5 reactivity.
3
3
  *
4
- * Mirrors the @rool-dev/svelte ReactiveChannel API: same $state properties,
5
- * same methods, same reactive primitives (object(), watch()).
6
- * The underlying transport is the postMessage bridge, not the SDK.
4
+ * Handles the postMessage bridge to the host and provides reactive $state
5
+ * properties, matching the @rool-dev/svelte ReactiveChannel API.
7
6
  */
8
- import { Channel } from './client.js';
9
- import type { RoolObject, FieldDef, Interaction, ConversationInfo, PromptOptions, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions } from './types.js';
7
+ import type { BridgeInit, BridgeUser } from './protocol.js';
8
+ import type { RoolObject, RoolObjectStat, SpaceSchema, CollectionDef, FieldDef, Interaction, ConversationInfo, PromptOptions, FindObjectsOptions, CreateObjectOptions, UpdateObjectOptions, RoolUserRole, LinkAccess, ChannelEvents } from './types.js';
9
+ type EventName = keyof ChannelEvents;
10
10
  export interface WatchOptions {
11
11
  where?: Record<string, unknown>;
12
12
  collection?: string;
@@ -17,7 +17,7 @@ declare class ReactiveWatchImpl {
17
17
  #private;
18
18
  objects: RoolObject[];
19
19
  loading: boolean;
20
- constructor(channel: Channel, options: WatchOptions);
20
+ constructor(channel: ReactiveChannelImpl, options: WatchOptions);
21
21
  refresh(): Promise<void>;
22
22
  close(): void;
23
23
  }
@@ -26,27 +26,43 @@ declare class ReactiveObjectImpl {
26
26
  #private;
27
27
  data: RoolObject | undefined;
28
28
  loading: boolean;
29
- constructor(channel: Channel, objectId: string);
29
+ constructor(channel: ReactiveChannelImpl, objectId: string);
30
30
  refresh(): Promise<void>;
31
31
  close(): void;
32
32
  }
33
33
  export type ReactiveObject = ReactiveObjectImpl;
34
34
  declare class ReactiveChannelImpl {
35
35
  #private;
36
+ private _pending;
37
+ private _listeners;
38
+ private _schema;
39
+ private _metadata;
40
+ readonly channelId: string;
41
+ readonly spaceId: string;
42
+ readonly spaceName: string;
43
+ readonly role: RoolUserRole;
44
+ readonly linkAccess: LinkAccess;
45
+ readonly userId: string;
46
+ /** Current user info (id, name, email). */
47
+ readonly user: BridgeUser;
36
48
  interactions: Interaction[];
37
49
  objectIds: string[];
38
50
  collections: string[];
39
51
  conversations: ConversationInfo[];
40
- constructor(channel: Channel);
41
- get channelId(): string;
42
- get spaceId(): string;
43
- get spaceName(): string;
44
- get role(): import("./types.js").RoolUserRole;
45
- get linkAccess(): import("./types.js").LinkAccess;
46
- get userId(): string;
52
+ constructor(init: BridgeInit);
47
53
  get isReadOnly(): boolean;
54
+ on<E extends EventName>(event: E, callback: (data: ChannelEvents[E]) => void): void;
55
+ off<E extends EventName>(event: E, callback: (data: ChannelEvents[E]) => void): void;
56
+ private _emit;
57
+ private _call;
58
+ /**
59
+ * Send a bridge request, optionally scoped to a conversation.
60
+ * @internal
61
+ */
62
+ _callScoped(method: string, args: unknown[], conversationId?: string): Promise<unknown>;
63
+ private _onMessage;
48
64
  getObject(objectId: string): Promise<RoolObject | undefined>;
49
- stat(objectId: string): Promise<import("./types.js").RoolObjectStat | undefined>;
65
+ stat(objectId: string): Promise<RoolObjectStat | undefined>;
50
66
  findObjects(options: FindObjectsOptions): Promise<{
51
67
  objects: RoolObject[];
52
68
  message: string;
@@ -64,6 +80,28 @@ declare class ReactiveChannelImpl {
64
80
  message: string;
65
81
  }>;
66
82
  deleteObjects(objectIds: string[]): Promise<void>;
83
+ getSchema(): SpaceSchema;
84
+ createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
85
+ alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
86
+ dropCollection(name: string): Promise<void>;
87
+ getInteractions(): Promise<Interaction[]>;
88
+ getTree(): Promise<Record<string, Interaction>>;
89
+ getActiveLeafId(): Promise<string | undefined>;
90
+ setActiveLeaf(interactionId: string): Promise<void>;
91
+ getSystemInstruction(): Promise<string | undefined>;
92
+ setSystemInstruction(instruction: string | null): Promise<void>;
93
+ getConversations(): Promise<ConversationInfo[]>;
94
+ deleteConversation(conversationId: string): Promise<void>;
95
+ renameConversation(name: string): Promise<void>;
96
+ /**
97
+ * Get a reactive handle for a specific conversation within this channel.
98
+ * Scopes AI and mutation operations to that conversation's interaction history.
99
+ * Conversations are auto-created on first interaction.
100
+ */
101
+ conversation(conversationId: string): ReactiveConversationHandle;
102
+ setMetadata(key: string, value: unknown): Promise<void>;
103
+ getMetadata(key: string): unknown;
104
+ getAllMetadata(): Record<string, unknown>;
67
105
  prompt(text: string, options?: PromptOptions): Promise<{
68
106
  message: string;
69
107
  objects: RoolObject[];
@@ -74,22 +112,6 @@ declare class ReactiveChannelImpl {
74
112
  undo(): Promise<boolean>;
75
113
  redo(): Promise<boolean>;
76
114
  clearHistory(): Promise<void>;
77
- setMetadata(key: string, value: unknown): Promise<void>;
78
- getMetadata(key: string): unknown;
79
- getAllMetadata(): Record<string, unknown>;
80
- getInteractions(): Promise<Interaction[]>;
81
- getSystemInstruction(): Promise<string | undefined>;
82
- setSystemInstruction(instruction: string | null): Promise<void>;
83
- getConversations(): Promise<ConversationInfo[]>;
84
- deleteConversation(conversationId: string): Promise<void>;
85
- renameConversation(name: string): Promise<void>;
86
- getSchema(): import("./types.js").SpaceSchema;
87
- createCollection(name: string, fields: FieldDef[]): Promise<import("./types.js").CollectionDef>;
88
- alterCollection(name: string, fields: FieldDef[]): Promise<import("./types.js").CollectionDef>;
89
- dropCollection(name: string): Promise<void>;
90
- conversation(conversationId: string): ReactiveConversationHandle;
91
- on(...args: Parameters<Channel['on']>): void;
92
- off(...args: Parameters<Channel['off']>): void;
93
115
  object(objectId: string): ReactiveObject;
94
116
  watch(options: WatchOptions): ReactiveWatch;
95
117
  destroy(): void;
@@ -97,17 +119,20 @@ declare class ReactiveChannelImpl {
97
119
  export type ReactiveChannel = ReactiveChannelImpl;
98
120
  /**
99
121
  * A reactive conversation handle for the extension bridge.
100
- * Wraps ConversationHandle with $state interactions that auto-update
101
- * when the conversation changes via SSE events.
122
+ * Scopes AI and mutation operations to a specific conversation's
123
+ * interaction history, while sharing the channel's bridge connection.
102
124
  *
103
125
  * Call `close()` when done to stop listening for updates.
104
126
  */
105
127
  declare class ReactiveConversationHandleImpl {
106
128
  #private;
107
129
  interactions: Interaction[];
108
- constructor(channel: Channel, conversationId: string);
130
+ constructor(channel: ReactiveChannelImpl, conversationId: string);
109
131
  get conversationId(): string;
110
132
  getInteractions(): Promise<Interaction[]>;
133
+ getTree(): Promise<Record<string, Interaction>>;
134
+ getActiveLeafId(): Promise<string | undefined>;
135
+ setActiveLeaf(interactionId: string): Promise<void>;
111
136
  getSystemInstruction(): Promise<string | undefined>;
112
137
  setSystemInstruction(instruction: string | null): Promise<void>;
113
138
  rename(name: string): Promise<void>;
@@ -128,8 +153,8 @@ declare class ReactiveConversationHandleImpl {
128
153
  message: string;
129
154
  objects: RoolObject[];
130
155
  }>;
131
- createCollection(name: string, fields: FieldDef[]): Promise<import("./types.js").CollectionDef>;
132
- alterCollection(name: string, fields: FieldDef[]): Promise<import("./types.js").CollectionDef>;
156
+ createCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
157
+ alterCollection(name: string, fields: FieldDef[]): Promise<CollectionDef>;
133
158
  dropCollection(name: string): Promise<void>;
134
159
  setMetadata(key: string, value: unknown): Promise<void>;
135
160
  /**
@@ -144,6 +169,11 @@ export type ReactiveConversationHandle = ReactiveConversationHandleImpl;
144
169
  * Sends `rool:ready` to the host, waits for the handshake, and returns
145
170
  * a reactive channel with $state properties (interactions, objectIds)
146
171
  * and reactive primitives (object(), watch()).
172
+ *
173
+ * If the extension is opened directly (not in an iframe), redirects to the Rool
174
+ * console with `?openExtension={extensionId}` so the user can install or navigate to it.
175
+ *
176
+ * @param timeout - How long to wait for the handshake (ms). Default: 10000.
147
177
  */
148
178
  export declare function initExtension(timeout?: number): Promise<ReactiveChannel>;
149
179
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.svelte.d.ts","sourceRoot":"","sources":["../src/reactive.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactive.svelte.d.ts","sourceRoot":"","sources":["../src/reactive.svelte.ts"],"names":[],"mappings":"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"}