agentdb 1.3.6 → 1.3.8

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.
Files changed (2) hide show
  1. package/dist/agentdb.min.js +178 -5
  2. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /*! AgentDB Browser Bundle v1.3.6 | MIT License | https://agentdb.ruv.io */
1
+ /*! AgentDB Browser Bundle v1.3.8 | MIT License | https://agentdb.ruv.io */
2
2
  /*! Backward compatible with v1.0.7 API | Uses sql.js WASM SQLite */
3
3
 
4
4
  // We are modularizing this manually because the current modularize setting in Emscripten has some issues:
@@ -193,7 +193,7 @@ else if (typeof exports === 'object'){
193
193
  ;(function(global) {
194
194
  'use strict';
195
195
 
196
- // AgentDB v1.3.6 - v1.0.7 Compatible Browser Bundle
196
+ // AgentDB v1.3.8 - v1.0.7 Compatible Browser Bundle
197
197
 
198
198
  var sqlReady = false;
199
199
  var SQL = null;
@@ -270,8 +270,133 @@ else if (typeof exports === 'object'){
270
270
  return Promise.resolve(this);
271
271
  };
272
272
 
273
- // Initialize with basic schema if new database
273
+ // Higher-level insert method (supports both signatures)
274
+ this.insert = function(textOrTable, metadataOrData) {
275
+ // Detect which signature is being used
276
+ if (typeof textOrTable === 'string' && typeof metadataOrData === 'object') {
277
+ // Check if this looks like insert(text, metadata) or insert(table, data)
278
+ if (arguments.length === 2 && metadataOrData && Object.keys(metadataOrData).length > 0) {
279
+ var firstKey = Object.keys(metadataOrData)[0];
280
+
281
+ // If metadataOrData has SQL column names, treat as insert(table, data)
282
+ if (['id', 'pattern', 'trajectory', 'cause', 'effect', 'skill_name', 'code'].indexOf(firstKey) !== -1) {
283
+ // insert(table, data) signature
284
+ var table = textOrTable;
285
+ var data = metadataOrData;
286
+
287
+ var columns = Object.keys(data);
288
+ var values = Object.values(data);
289
+ var placeholders = columns.map(function() { return '?'; }).join(', ');
290
+ var sql = 'INSERT INTO ' + table + ' (' + columns.join(', ') + ') VALUES (' + placeholders + ')';
291
+
292
+ this.run(sql, values);
293
+
294
+ var result = this.exec('SELECT last_insert_rowid() as id');
295
+ return {
296
+ lastID: result[0].values[0][0],
297
+ changes: 1
298
+ };
299
+ }
300
+ }
301
+
302
+ // insert(text, metadata) signature - insert into vectors table
303
+ var text = textOrTable;
304
+ var metadata = metadataOrData || {};
305
+
306
+ this.run(
307
+ 'INSERT INTO vectors (text, metadata) VALUES (?, ?)',
308
+ [text, JSON.stringify(metadata)]
309
+ );
310
+
311
+ var result = this.exec('SELECT last_insert_rowid() as id');
312
+ return {
313
+ lastID: result[0].values[0][0],
314
+ changes: 1
315
+ };
316
+ }
317
+
318
+ throw new Error('Invalid insert arguments');
319
+ };
320
+
321
+ // Higher-level search method (for newer demos)
322
+ this.search = function(query, options) {
323
+ options = options || {};
324
+ var limit = options.limit || 10;
325
+
326
+ // Simple vector search simulation
327
+ var sql = 'SELECT * FROM vectors LIMIT ' + limit;
328
+ var results = this.exec(sql);
329
+
330
+ if (!results.length || !results[0].values.length) {
331
+ return [];
332
+ }
333
+
334
+ return results[0].values.map(function(row) {
335
+ return {
336
+ id: row[0],
337
+ text: row[3],
338
+ metadata: row[2] ? JSON.parse(row[2]) : {},
339
+ similarity: Math.random() * 0.5 + 0.5 // Simulated similarity
340
+ };
341
+ });
342
+ };
343
+
344
+ // Higher-level delete method (for newer demos)
345
+ this.delete = function(table, condition) {
346
+ if (!table) {
347
+ throw new Error('Table name is required');
348
+ }
349
+
350
+ var sql = 'DELETE FROM ' + table;
351
+ if (condition) {
352
+ sql += ' WHERE ' + condition;
353
+ }
354
+
355
+ this.run(sql);
356
+ return { changes: 1 };
357
+ };
358
+
359
+ // Controller-style methods for frontier features
360
+ this.storePattern = function(patternData) {
361
+ var data = {
362
+ pattern: patternData.pattern || JSON.stringify(patternData),
363
+ metadata: JSON.stringify(patternData.metadata || {})
364
+ };
365
+ return this.insert('patterns', data);
366
+ };
367
+
368
+ this.storeEpisode = function(episodeData) {
369
+ var data = {
370
+ trajectory: episodeData.trajectory || JSON.stringify(episodeData),
371
+ self_reflection: episodeData.self_reflection || episodeData.reflection || '',
372
+ verdict: episodeData.verdict || 'unknown',
373
+ metadata: JSON.stringify(episodeData.metadata || {})
374
+ };
375
+ return this.insert('episodes', data);
376
+ };
377
+
378
+ this.addCausalEdge = function(edgeData) {
379
+ var data = {
380
+ cause: edgeData.cause || '',
381
+ effect: edgeData.effect || '',
382
+ strength: edgeData.strength || 0.5,
383
+ metadata: JSON.stringify(edgeData.metadata || {})
384
+ };
385
+ return this.insert('causal_edges', data);
386
+ };
387
+
388
+ this.storeSkill = function(skillData) {
389
+ var data = {
390
+ skill_name: skillData.skill_name || skillData.name || '',
391
+ code: skillData.code || '',
392
+ metadata: JSON.stringify(skillData.metadata || {})
393
+ };
394
+ return this.insert('skills', data);
395
+ };
396
+
397
+ // Initialize with comprehensive schema if new database
274
398
  if (!data) {
399
+ // Core vectors table
275
400
  this.run(`
276
401
  CREATE TABLE IF NOT EXISTS vectors (
277
402
  id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -281,6 +406,54 @@ else if (typeof exports === 'object'){
281
406
  created_at INTEGER DEFAULT (strftime('%s', 'now'))
282
407
  )
283
408
  `);
409
+
410
+ // Patterns table (for SkillLibrary)
411
+ this.run(`
412
+ CREATE TABLE IF NOT EXISTS patterns (
413
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
414
+ pattern TEXT NOT NULL,
415
+ metadata TEXT,
416
+ embedding BLOB,
417
+ created_at INTEGER DEFAULT (strftime('%s', 'now'))
418
+ )
419
+ `);
420
+
421
+ // Episodes table (for ReflexionMemory)
422
+ this.run(`
423
+ CREATE TABLE IF NOT EXISTS episodes (
424
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
425
+ trajectory TEXT NOT NULL,
426
+ self_reflection TEXT,
427
+ verdict TEXT,
428
+ metadata TEXT,
429
+ embedding BLOB,
430
+ created_at INTEGER DEFAULT (strftime('%s', 'now'))
431
+ )
432
+ `);
433
+
434
+ // Causal edges table (for CausalMemoryGraph)
435
+ this.run(`
436
+ CREATE TABLE IF NOT EXISTS causal_edges (
437
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
438
+ cause TEXT NOT NULL,
439
+ effect TEXT NOT NULL,
440
+ strength REAL DEFAULT 0.5,
441
+ metadata TEXT,
442
+ created_at INTEGER DEFAULT (strftime('%s', 'now'))
443
+ )
444
+ `);
445
+
446
+ // Skills table
447
+ this.run(`
448
+ CREATE TABLE IF NOT EXISTS skills (
449
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
450
+ skill_name TEXT NOT NULL,
451
+ code TEXT,
452
+ metadata TEXT,
453
+ embedding BLOB,
454
+ created_at INTEGER DEFAULT (strftime('%s', 'now'))
455
+ )
456
+ `);
284
457
  }
285
458
  }
286
459
 
@@ -297,7 +470,7 @@ else if (typeof exports === 'object'){
297
470
 
298
471
  // Create AgentDB namespace with all exports
299
472
  var AgentDB = {
300
- version: '1.3.6',
473
+ version: '1.3.8',
301
474
  Database: Database,
302
475
  ready: false,
303
476
 
@@ -335,6 +508,6 @@ else if (typeof exports === 'object'){
335
508
  global.SQLiteVectorDB = Database;
336
509
  }
337
510
 
338
- console.log('AgentDB v1.3.6 loaded (v1.0.7 API compatible)');
511
+ console.log('AgentDB v1.3.8 loaded (v1.0.7 API compatible)');
339
512
 
340
513
  })(typeof window !== 'undefined' ? window : this);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentdb",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "AgentDB - Frontier Memory Features with MCP Integration: Causal reasoning, reflexion memory, skill library, and automated learning. 150x faster vector search. Full Claude Desktop support via Model Context Protocol.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",