@rool-dev/client 0.3.1-dev.de3060f → 0.3.1-dev.ff89f50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,12 +27,12 @@ await client.subscribe();
27
27
  const graph = await client.openGraph('my-graph-id');
28
28
  graph.subscribe(); // Listen for real-time updates
29
29
 
30
- // Create a node
31
- graph.checkpoint('Add node');
32
- const nodeId = graph.createNode({ type: 'text', fields: { content: 'Hello' } });
30
+ // Create an object
31
+ graph.checkpoint('Add object');
32
+ const { id } = await graph.createObject({ type: 'text', fields: { content: 'Hello' } });
33
33
 
34
- // Create an edge between nodes
35
- graph.createEdge(nodeId, 'node2', 'connection');
34
+ // Create a link between objects
35
+ await graph.link(id, 'object2', 'connection');
36
36
 
37
37
  // Undo/redo support
38
38
  await graph.undo();
@@ -201,34 +201,35 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
201
201
  | `redo(): Promise<boolean>` | Redo undone action |
202
202
  | `clearHistory(): void` | Clear undo/redo stack |
203
203
 
204
- ### Node Operations
204
+ ### Object Operations
205
205
 
206
206
  | Method | Description |
207
207
  |--------|-------------|
208
- | `getNode(nodeId): RoolNode` | Get node (throws if not found) |
209
- | `getNodeOrUndefined(nodeId): RoolNode \| undefined` | Get node or undefined |
210
- | `getNodesByType(type): RoolNode[]` | Get all nodes of type |
211
- | `getNodeIds(): string[]` | Get all node IDs |
212
- | `createNode(options): string` | Create node, returns ID. Options: `{ type, fields?, meta?, prompt? }` |
213
- | `updateNode(nodeId, options): void` | Update node. Options: `{ type?, fields?, meta?, prompt? }` |
214
- | `deleteNodes(nodeIds): void` | Delete nodes (and connected edges) |
208
+ | `getObject(objectId): RoolObject` | Get object data (throws if not found) |
209
+ | `getObjectOrUndefined(objectId): RoolObject \| undefined` | Get object data or undefined |
210
+ | `getObjectsByType(type): RoolObject[]` | Get all objects of type |
211
+ | `getObjectIds(): string[]` | Get all object IDs |
212
+ | `getObjectMeta(objectId): Record<string, unknown>` | Get object metadata |
213
+ | `createObject(options): Promise<{ id, message }>` | Create object, returns ID and message. Options: `{ type, fields?, meta?, prompt? }` |
214
+ | `updateObject(objectId, options): Promise<string>` | Update object, returns message. Options: `{ type?, fields?, meta?, prompt? }` |
215
+ | `deleteObjects(objectIds): Promise<void>` | Delete objects (outbound links cascade automatically) |
215
216
 
216
- ### Edge Operations
217
+ ### Link Operations
218
+
219
+ Links connect objects. They are stored on the source object and identified by `source + type + target`.
217
220
 
218
221
  | Method | Description |
219
222
  |--------|-------------|
220
- | `createEdge(sourceId, targetId, edgeType): string` | Create edge, returns edge ID |
221
- | `deleteEdge(sourceId, targetId): boolean` | Remove edges between nodes |
222
- | `getParents(nodeId, edgeType?): string[]` | Get nodes pointing to this node |
223
- | `getChildren(nodeId, edgeType?): string[]` | Get nodes this node points to |
224
- | `getEdge(edgeId): RoolEdge \| undefined` | Get edge by ID |
225
- | `getEdgeIds(): string[]` | Get all edge IDs |
223
+ | `link(sourceId, targetId, edgeType): Promise<void>` | Create link from source to target |
224
+ | `unlink(sourceId, targetId): Promise<boolean>` | Remove link between objects |
225
+ | `getParents(objectId, edgeType?): string[]` | Get objects pointing to this object |
226
+ | `getChildren(objectId, edgeType?): string[]` | Get objects this object points to |
226
227
 
227
228
  ### Metadata
228
229
 
229
230
  | Method | Description |
230
231
  |--------|-------------|
231
- | `setMetadata(key, value): void` | Set metadata (hidden from AI) |
232
+ | `setMetadata(key, value): void` | Set graph-level metadata (hidden from AI) |
232
233
  | `getMetadata(key): unknown` | Get metadata value |
233
234
  | `getAllMetadata(): Record<string, unknown>` | Get all metadata |
234
235
 
@@ -260,7 +261,7 @@ Graphs are first-class objects with built-in undo/redo, event emission, and real
260
261
 
261
262
  | Method | Description |
262
263
  |--------|-------------|
263
- | `getData(): RoolGraphData` | Get full graph data |
264
+ | `getData(): RoolGraphData` | Get full graph data (internal format) |
264
265
 
265
266
  ### Graph Events
266
267
 
@@ -273,14 +274,14 @@ Semantic events describe what changed. Events fire for both local changes and re
273
274
  // - 'remote_agent': AI agent made the change
274
275
  // - 'system': Resync after error
275
276
 
276
- // Node events
277
- graph.on('nodeCreated', ({ nodeId, node, source }) => void)
278
- graph.on('nodeUpdated', ({ nodeId, node, source }) => void)
279
- graph.on('nodeDeleted', ({ nodeId, source }) => void)
277
+ // Object events
278
+ graph.on('objectCreated', ({ objectId, object, source }) => void)
279
+ graph.on('objectUpdated', ({ objectId, object, source }) => void)
280
+ graph.on('objectDeleted', ({ objectId, source }) => void)
280
281
 
281
- // Edge events
282
- graph.on('edgeCreated', ({ edgeId, edge, source }) => void)
283
- graph.on('edgeDeleted', ({ edgeId, source }) => void)
282
+ // Edge events (links between objects)
283
+ graph.on('edgeCreated', ({ sourceId, targetId, edgeType, source }) => void)
284
+ graph.on('edgeDeleted', ({ sourceId, targetId, edgeType, source }) => void)
284
285
 
285
286
  // Graph metadata
286
287
  graph.on('metaUpdated', ({ meta, source }) => void)
@@ -295,15 +296,15 @@ graph.on('syncError', (error: Error) => void)
295
296
  **Usage pattern:**
296
297
  ```typescript
297
298
  // All UI updates happen in one place, regardless of change source
298
- graph.on('nodeUpdated', ({ nodeId, node, source }) => {
299
- renderNode(nodeId, node);
299
+ graph.on('objectUpdated', ({ objectId, object, source }) => {
300
+ renderObject(objectId, object);
300
301
  if (source === 'remote_agent') {
301
302
  doLayout(); // AI might have added content
302
303
  }
303
304
  });
304
305
 
305
306
  // Caller just makes the change - event handler does the UI work
306
- graph.updateNode(nodeId, { prompt: 'expand this' });
307
+ graph.updateObject(objectId, { prompt: 'expand this' });
307
308
  ```
308
309
 
309
310
  ---
@@ -313,24 +314,23 @@ graph.updateNode(nodeId, { prompt: 'expand this' });
313
314
  ### Graph Data
314
315
 
315
316
  ```typescript
316
- interface RoolGraphData {
317
- nodes: Record<string, RoolNode>;
318
- edges: Record<string, RoolEdge>;
319
- _meta: Record<string, unknown>; // Hidden from AI
320
- }
321
-
322
- interface RoolNode {
317
+ // RoolObject represents the object data you work with
318
+ interface RoolObject {
323
319
  type: string;
324
- _meta: Record<string, unknown>;
325
320
  [key: string]: unknown;
326
321
  }
327
322
 
328
- interface RoolEdge {
329
- sources: string[];
330
- targets: string[];
331
- type: string;
332
- _meta: Record<string, unknown>;
333
- [key: string]: unknown;
323
+ // Internal graph data structure
324
+ interface RoolGraphData {
325
+ objects: Record<string, ObjectEntry>;
326
+ meta: Record<string, unknown>; // Graph-level metadata, hidden from AI
327
+ }
328
+
329
+ // Internal: Full stored object structure (you typically don't use this directly)
330
+ interface ObjectEntry {
331
+ meta: Record<string, unknown>; // Object-level metadata
332
+ links: Record<string, Record<string, Record<string, unknown>>>; // type -> targetId -> linkData
333
+ data: RoolObject; // The actual object data
334
334
  }
335
335
  ```
336
336
 
@@ -351,8 +351,7 @@ type ChangeSource = 'local_user' | 'remote_user' | 'remote_agent' | 'system';
351
351
 
352
352
  ```typescript
353
353
  interface PromptOptions {
354
- nodeIds?: string[]; // Scope to specific nodes
355
- edgeIds?: string[]; // Scope to specific edges
354
+ objectIds?: string[]; // Scope to specific objects
356
355
  responseSchema?: Record<string, unknown>;
357
356
  }
358
357
  ```
package/dist/client.js CHANGED
@@ -159,7 +159,7 @@ export class RoolClient extends EventEmitter {
159
159
  async createGraph(name) {
160
160
  const graphId = generateEntityId();
161
161
  const graphName = name ?? graphId;
162
- const initialData = { nodes: {}, edges: {}, _meta: {} };
162
+ const initialData = { objects: {}, meta: {} };
163
163
  // Create on server
164
164
  await this.graphqlClient.setGraph(graphId, initialData);
165
165
  return new RoolGraph({
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,cAAc;AACd,0EAA0E;AAC1E,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqBzD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,UAAW,SAAQ,YAA8B;IACpD,IAAI,CAAe;IACnB,WAAW,CAAc;IACzB,aAAa,CAAgB;IAC7B,mBAAmB,GAA+B,IAAI,CAAC;IACvD,YAAY,CAAS;IAE7B,4CAA4C;IACpC,gBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;IAExD,YAAY,MAAwB;QAClC,KAAK,EAAE,CAAC;QAER,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B;QAC9E,IAAI,CAAC,IAAI,GAAG;YACV,OAAO,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,OAAO,UAAU;YAClD,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,OAAO,QAAQ;YAC5C,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG,OAAO,OAAO;SAC1C,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,gBAAgB,EAAE,CAAC;QAEvC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,kBAAkB,EAAE,CAAC,aAAa,EAAE,EAAE;gBACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY;SACzC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC;QAEpC,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE9B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAExD,OAAO,IAAI,SAAS,CAAC;YACnB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO;YAChC,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,QAAQ;YACjC,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC;YAC1E,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAAa;QAC7B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,IAAI,OAAO,CAAC;QAClC,MAAM,WAAW,GAAc,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAEzD,mBAAmB;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO,IAAI,SAAS,CAAC;YACnB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,WAAW;YACX,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC;YAC1E,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,0DAA0D;IAC5D,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,8EAA8E;IAC9E,oDAAoD;IACpD,8EAA8E;IAE9E,IAAY,WAAW;QACrB,OAAO,IAAI,WAAW,CAAC;YACrB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,gBAAgB;IAChB,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAErC,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAChD,wBAAwB,EAAE,CAAC,KAAsB,EAAE,EAAE;gBACnD,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YAC5C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,mBAAmB,EAAE,YAAY,IAAI,KAAK,CAAC;IACzD,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CACX,KAAa,EACb,SAAmC;QAEnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAI,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,8EAA8E;IAC9E,mCAAmC;IACnC,8EAA8E;IAEtE,sBAAsB,CAAC,OAAe,EAAE,KAAgB;QAC9D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEO,yBAAyB,CAAC,OAAe;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,8EAA8E;IAC9E,mCAAmC;IACnC,8EAA8E;IAEtE,gBAAgB,CAAC,KAMxB;QACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAE/C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe;gBAClB,qCAAqC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE,CAAC;wBACV,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,eAAe;gBAClB,qCAAqC;gBACrC,CAAC;oBACC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE,CAAC;wBACV,+BAA+B;wBAC/B,KAAK,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;4BACtD,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;wBACjC,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,oBAAoB;gBACvB,oDAAoD;gBACpD,CAAC;oBACC,qBAAqB;oBACrB,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;wBAChD,IAAI,IAAI,EAAE,CAAC;4BACT,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BACjD,IAAI,KAAK,EAAE,CAAC;gCACV,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACtC,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,eAAe;gBAClB,0BAA0B;gBAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM;YAER,KAAK,eAAe;gBAClB,qBAAqB;gBACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACnC,8CAA8C;gBAC9C,MAAM;QACV,CAAC;IACH,CAAC;CACF"}
package/dist/graph.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from './event-emitter.js';
2
2
  import type { GraphQLClient } from './graphql.js';
3
3
  import type { MediaClient } from './media.js';
4
- import type { RoolGraphData, RoolNode, RoolEdge, JSONPatchOp, GraphEvents, RoolGraphRole, RoolGraphUser, PromptOptions, MediaItem } from './types.js';
4
+ import type { RoolGraphData, RoolObject, JSONPatchOp, GraphEvents, RoolGraphRole, RoolGraphUser, PromptOptions, MediaItem } from './types.js';
5
5
  export declare function generateEntityId(): string;
6
6
  interface GraphConfig {
7
7
  id: string;
@@ -17,7 +17,7 @@ interface GraphConfig {
17
17
  * First-class Graph object.
18
18
  *
19
19
  * Features:
20
- * - High-level node/edge operations
20
+ * - High-level object/edge operations
21
21
  * - Built-in undo/redo with checkpoints
22
22
  * - Metadata management
23
23
  * - Event emission for state changes
@@ -87,94 +87,102 @@ export declare class RoolGraph extends EventEmitter<GraphEvents> {
87
87
  */
88
88
  clearHistory(): void;
89
89
  /**
90
- * Get a node by ID.
91
- * @throws Error if node not found
90
+ * Get an object's data by ID.
91
+ * Returns just the data portion (RoolObject), not the full entry with meta/links.
92
+ * @throws Error if object not found
92
93
  */
93
- getNode(nodeId: string): RoolNode;
94
+ getObject(objectId: string): RoolObject;
94
95
  /**
95
- * Get a node by ID, or undefined if not found.
96
+ * Get an object's data by ID, or undefined if not found.
96
97
  */
97
- getNodeOrUndefined(nodeId: string): RoolNode | undefined;
98
+ getObjectOrUndefined(objectId: string): RoolObject | undefined;
98
99
  /**
99
- * Get all nodes of a specific type.
100
+ * Get an object's metadata (position, UI state, etc).
100
101
  */
101
- getNodesByType(type: string): RoolNode[];
102
+ getObjectMeta(objectId: string): Record<string, unknown>;
102
103
  /**
103
- * Get all node IDs.
104
+ * Get all objects of a specific type.
104
105
  */
105
- getNodeIds(): string[];
106
+ getObjectsByType(type: string): RoolObject[];
106
107
  /**
107
- * Create a new node with optional AI generation.
108
- * @param options.type - The node type (required)
109
- * @param options.fields - Node fields (optional). Use {{placeholder}} for AI-generated content.
108
+ * Get all object IDs.
109
+ */
110
+ getObjectIds(): string[];
111
+ /**
112
+ * Create a new object with optional AI generation.
113
+ * @param options.type - The object type (required)
114
+ * @param options.fields - Object fields (optional). Use {{placeholder}} for AI-generated content.
110
115
  * @param options.meta - Client-private metadata (optional). Hidden from AI operations.
111
116
  * @param options.prompt - AI prompt for content generation (optional).
112
- * @returns The generated node ID
117
+ * @returns The generated object ID
113
118
  */
114
- createNode(options: {
119
+ createObject(options: {
115
120
  type: string;
116
121
  fields?: Record<string, unknown>;
117
122
  meta?: Record<string, unknown>;
118
123
  prompt?: string;
119
- }): string;
120
- /**
121
- * Update an existing node.
122
- * @param nodeId - The ID of the node to update
123
- * @param options.type - Optional new type for the node
124
+ }): Promise<{
125
+ id: string;
126
+ message: string;
127
+ }>;
128
+ /**
129
+ * Update an existing object.
130
+ * @param objectId - The ID of the object to update
131
+ * @param options.type - Optional new type for the object
124
132
  * @param options.fields - Fields to add or update. Use {{placeholder}} for AI-generated content.
125
133
  * @param options.meta - Client-private metadata to merge. Hidden from AI operations.
126
134
  * @param options.prompt - AI prompt for content editing (optional).
127
135
  */
128
- updateNode(nodeId: string, options: {
136
+ updateObject(objectId: string, options: {
129
137
  type?: string;
130
138
  fields?: Record<string, unknown>;
131
139
  meta?: Record<string, unknown>;
132
140
  prompt?: string;
133
- }): void;
141
+ }): Promise<string>;
134
142
  /**
135
- * Delete nodes by IDs.
136
- * Also removes any edges connected to the deleted nodes.
143
+ * Delete objects by IDs.
144
+ * Outbound links are automatically deleted with the object.
145
+ * Inbound links become orphans (tolerated).
137
146
  */
138
- deleteNodes(nodeIds: string[]): void;
147
+ deleteObjects(objectIds: string[]): Promise<void>;
139
148
  /**
140
- * Create an edge between nodes.
141
- * @returns The generated edge ID
149
+ * Create a link between objects.
150
+ * Links are stored on the source object.
142
151
  */
143
- createEdge(sourceId: string, targetId: string, edgeType: string): string;
152
+ link(sourceId: string, targetId: string, edgeType: string): Promise<void>;
144
153
  /**
145
- * Remove edges between two nodes.
146
- * @returns true if any edges were removed
154
+ * Remove a link between two objects.
155
+ * @param edgeType - Optional: if provided, only removes that type; otherwise removes all links between the objects
156
+ * @returns true if any links were removed
147
157
  */
148
- deleteEdge(sourceId: string, targetId: string): boolean;
158
+ unlink(sourceId: string, targetId: string, edgeType?: string): Promise<boolean>;
149
159
  /**
150
- * Get parent node IDs (nodes that have edges pointing TO this node).
160
+ * Get parent object IDs (objects that have edges pointing TO this object).
151
161
  * @param edgeType - Optional filter by edge type
152
162
  */
153
- getParents(nodeId: string, edgeType?: string): string[];
163
+ getParents(objectId: string, edgeType?: string): string[];
154
164
  /**
155
- * Get child node IDs (nodes that this node has edges pointing TO).
165
+ * Get child object IDs (objects that this object has edges pointing TO).
166
+ * Filters out orphan targets (targets that don't exist).
156
167
  * @param edgeType - Optional filter by edge type
157
168
  */
158
- getChildren(nodeId: string, edgeType?: string): string[];
169
+ getChildren(objectId: string, edgeType?: string): string[];
159
170
  /**
160
- * Get an edge by ID.
161
- */
162
- getEdge(edgeId: string): RoolEdge | undefined;
163
- /**
164
- * Get all edge IDs.
171
+ * Get all child object IDs including orphans (targets that may not exist).
172
+ * @param edgeType - Optional filter by edge type
165
173
  */
166
- getEdgeIds(): string[];
174
+ getChildrenIncludingOrphans(objectId: string, edgeType?: string): string[];
167
175
  /**
168
- * Set a metadata value.
169
- * Metadata is stored in _meta and hidden from AI operations.
176
+ * Set a graph-level metadata value.
177
+ * Metadata is stored in meta and hidden from AI operations.
170
178
  */
171
179
  setMetadata(key: string, value: unknown): void;
172
180
  /**
173
- * Get a metadata value.
181
+ * Get a graph-level metadata value.
174
182
  */
175
183
  getMetadata(key: string): unknown;
176
184
  /**
177
- * Get all metadata.
185
+ * Get all graph-level metadata.
178
186
  */
179
187
  getAllMetadata(): Record<string, unknown>;
180
188
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}