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.
- package/dist/agentdb.min.js +178 -5
- package/package.json +1 -1
package/dist/agentdb.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! AgentDB Browser Bundle v1.3.
|
|
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.
|
|
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
|
-
//
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|