@framers/agentos 0.1.105 → 0.1.106

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 (65) hide show
  1. package/dist/api/AgentOS.d.ts +80 -0
  2. package/dist/api/AgentOS.d.ts.map +1 -1
  3. package/dist/api/AgentOS.js +128 -9
  4. package/dist/api/AgentOS.js.map +1 -1
  5. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
  6. package/dist/api/AgentOSOrchestrator.js +32 -4
  7. package/dist/api/AgentOSOrchestrator.js.map +1 -1
  8. package/dist/memory/AgentMemory.d.ts +62 -16
  9. package/dist/memory/AgentMemory.d.ts.map +1 -1
  10. package/dist/memory/AgentMemory.js +236 -28
  11. package/dist/memory/AgentMemory.js.map +1 -1
  12. package/dist/memory/consolidation/ConsolidationLoop.d.ts.map +1 -1
  13. package/dist/memory/consolidation/ConsolidationLoop.js +32 -9
  14. package/dist/memory/consolidation/ConsolidationLoop.js.map +1 -1
  15. package/dist/memory/extension/MemoryToolsExtension.d.ts +53 -0
  16. package/dist/memory/extension/MemoryToolsExtension.d.ts.map +1 -0
  17. package/dist/memory/extension/MemoryToolsExtension.js +54 -0
  18. package/dist/memory/extension/MemoryToolsExtension.js.map +1 -0
  19. package/dist/memory/extension/StandaloneMemoryExtension.d.ts +27 -0
  20. package/dist/memory/extension/StandaloneMemoryExtension.d.ts.map +1 -0
  21. package/dist/memory/extension/StandaloneMemoryExtension.js +122 -0
  22. package/dist/memory/extension/StandaloneMemoryExtension.js.map +1 -0
  23. package/dist/memory/facade/Memory.d.ts +45 -0
  24. package/dist/memory/facade/Memory.d.ts.map +1 -1
  25. package/dist/memory/facade/Memory.js +296 -137
  26. package/dist/memory/facade/Memory.js.map +1 -1
  27. package/dist/memory/facade/types.d.ts +12 -8
  28. package/dist/memory/facade/types.d.ts.map +1 -1
  29. package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts +14 -5
  30. package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts.map +1 -1
  31. package/dist/memory/feedback/RetrievalFeedbackSignal.js +131 -20
  32. package/dist/memory/feedback/RetrievalFeedbackSignal.js.map +1 -1
  33. package/dist/memory/index.d.ts +7 -1
  34. package/dist/memory/index.d.ts.map +1 -1
  35. package/dist/memory/index.js +5 -1
  36. package/dist/memory/index.js.map +1 -1
  37. package/dist/memory/integration/StandaloneMemoryBridge.d.ts +55 -0
  38. package/dist/memory/integration/StandaloneMemoryBridge.d.ts.map +1 -0
  39. package/dist/memory/integration/StandaloneMemoryBridge.js +398 -0
  40. package/dist/memory/integration/StandaloneMemoryBridge.js.map +1 -0
  41. package/dist/memory/io/CsvImporter.d.ts +51 -0
  42. package/dist/memory/io/CsvImporter.d.ts.map +1 -0
  43. package/dist/memory/io/CsvImporter.js +229 -0
  44. package/dist/memory/io/CsvImporter.js.map +1 -0
  45. package/dist/memory/io/index.d.ts +2 -0
  46. package/dist/memory/io/index.d.ts.map +1 -1
  47. package/dist/memory/io/index.js +2 -0
  48. package/dist/memory/io/index.js.map +1 -1
  49. package/dist/memory/store/tracePersistence.d.ts +68 -0
  50. package/dist/memory/store/tracePersistence.d.ts.map +1 -0
  51. package/dist/memory/store/tracePersistence.js +159 -0
  52. package/dist/memory/store/tracePersistence.js.map +1 -0
  53. package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
  54. package/dist/memory/tools/MemoryAddTool.js +18 -6
  55. package/dist/memory/tools/MemoryAddTool.js.map +1 -1
  56. package/dist/memory/tools/MemoryMergeTool.d.ts.map +1 -1
  57. package/dist/memory/tools/MemoryMergeTool.js +41 -13
  58. package/dist/memory/tools/MemoryMergeTool.js.map +1 -1
  59. package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
  60. package/dist/memory/tools/MemorySearchTool.js +24 -4
  61. package/dist/memory/tools/MemorySearchTool.js.map +1 -1
  62. package/dist/memory/tools/MemoryUpdateTool.d.ts.map +1 -1
  63. package/dist/memory/tools/MemoryUpdateTool.js +38 -16
  64. package/dist/memory/tools/MemoryUpdateTool.js.map +1 -1
  65. package/package.json +1 -1
@@ -15,6 +15,7 @@
15
15
  *
16
16
  * @module memory/tools/MemoryMergeTool
17
17
  */
18
+ import { parseTraceMetadata, readPersistedDecayState, sha256Hex, withPersistedDecayState, } from '../store/tracePersistence.js';
18
19
  // ---------------------------------------------------------------------------
19
20
  // MemoryMergeTool
20
21
  // ---------------------------------------------------------------------------
@@ -103,7 +104,7 @@ export class MemoryMergeTool {
103
104
  // Load all matching active traces.
104
105
  const placeholders = traceIds.map(() => '?').join(', ');
105
106
  const rows = this.brain.db
106
- .prepare(`SELECT id, content, retrieval_count, tags
107
+ .prepare(`SELECT rowid AS rowid, id, content, retrieval_count, tags, metadata, last_accessed, created_at
107
108
  FROM memory_traces
108
109
  WHERE id IN (${placeholders}) AND deleted = 0`)
109
110
  .all(...traceIds);
@@ -133,21 +134,48 @@ export class MemoryMergeTool {
133
134
  // Malformed JSON tag — skip gracefully.
134
135
  }
135
136
  }
137
+ const finalTags = JSON.stringify([...allTags]);
138
+ const survivorMetadata = parseTraceMetadata(survivor.metadata);
139
+ survivorMetadata.content_hash = sha256Hex(finalContent);
140
+ delete survivorMetadata.import_hash;
141
+ const mergedDecay = rows.map((row) => readPersistedDecayState(parseTraceMetadata(row.metadata), row.retrieval_count));
142
+ const mergedMetadata = JSON.stringify(withPersistedDecayState(survivorMetadata, {
143
+ stability: Math.max(...mergedDecay.map((state) => state.stability)),
144
+ accessCount: mergedDecay.reduce((sum, state) => sum + state.accessCount, 0),
145
+ reinforcementInterval: Math.max(...mergedDecay.map((state) => state.reinforcementInterval)),
146
+ ...(mergedDecay.some((state) => state.nextReinforcementAt !== undefined)
147
+ ? {
148
+ nextReinforcementAt: Math.max(...mergedDecay.map((state) => state.nextReinforcementAt ?? 0)),
149
+ }
150
+ : {}),
151
+ }));
152
+ const mergedRetrievalCount = rows.reduce((sum, row) => sum + row.retrieval_count, 0);
153
+ const mergedLastAccessed = Math.max(...rows.map((row) => row.last_accessed ?? row.created_at));
136
154
  // Update survivor: new content, cleared embedding, unioned tags.
137
- this.brain.db
138
- .prepare(`UPDATE memory_traces
139
- SET content = ?, embedding = NULL, tags = ?
140
- WHERE id = ?`)
141
- .run(finalContent, JSON.stringify([...allTags]), survivor.id);
142
- // Soft-delete all non-survivors.
143
155
  const deletedIds = [];
144
- const deleteStmt = this.brain.db.prepare(`UPDATE memory_traces SET deleted = 1 WHERE id = ?`);
145
- for (const row of rows) {
146
- if (row.id !== survivor.id) {
147
- deleteStmt.run(row.id);
148
- deletedIds.push(row.id);
156
+ this.brain.db.transaction(() => {
157
+ this.brain.db
158
+ .prepare(`INSERT INTO memory_traces_fts (memory_traces_fts, rowid, content, tags)
159
+ VALUES ('delete', ?, ?, ?)`)
160
+ .run(survivor.rowid, survivor.content, survivor.tags);
161
+ this.brain.db
162
+ .prepare(`UPDATE memory_traces
163
+ SET content = ?, embedding = NULL, tags = ?, metadata = ?, retrieval_count = ?, last_accessed = ?
164
+ WHERE id = ?`)
165
+ .run(finalContent, finalTags, mergedMetadata, mergedRetrievalCount, mergedLastAccessed, survivor.id);
166
+ this.brain.db
167
+ .prepare(`INSERT INTO memory_traces_fts (rowid, content, tags)
168
+ VALUES (?, ?, ?)`)
169
+ .run(survivor.rowid, finalContent, finalTags);
170
+ // Soft-delete all non-survivors.
171
+ const deleteStmt = this.brain.db.prepare(`UPDATE memory_traces SET deleted = 1 WHERE id = ?`);
172
+ for (const row of rows) {
173
+ if (row.id !== survivor.id) {
174
+ deleteStmt.run(row.id);
175
+ deletedIds.push(row.id);
176
+ }
149
177
  }
150
- }
178
+ })();
151
179
  return {
152
180
  success: true,
153
181
  output: { survivorId: survivor.id, deletedIds },
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryMergeTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemoryMergeTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryMergeTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemoryMergeTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySearchTool.d.ts","sourceRoot":"","sources":["../../../src/memory/tools/MemorySearchTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAoB3D;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAsDvE,OAAO,CAAC,QAAQ,CAAC,KAAK;IArDlC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,sBAAsB;IAEjC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,SAGuF;IAE3G,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,YAAY;IAE7B,gEAAgE;IAChE,QAAQ,CAAC,cAAc,SAAS;IAEhC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CA0BpC;IAEF;;OAEG;gBAC0B,KAAK,EAAE,WAAW;IAM/C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;CAgEpD"}
1
+ {"version":3,"file":"MemorySearchTool.d.ts","sourceRoot":"","sources":["../../../src/memory/tools/MemorySearchTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAqB3D;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAsDvE,OAAO,CAAC,QAAQ,CAAC,KAAK;IArDlC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,sBAAsB;IAEjC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,SAGuF;IAE3G,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,YAAY;IAE7B,gEAAgE;IAChE,QAAQ,CAAC,cAAc,SAAS;IAEhC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CA0BpC;IAEF;;OAEG;gBAC0B,KAAK,EAAE,WAAW;IAM/C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;CAqFpD"}
@@ -12,6 +12,7 @@
12
12
  *
13
13
  * @module memory/tools/MemorySearchTool
14
14
  */
15
+ import { buildNaturalLanguageFtsQuery } from '../store/tracePersistence.js';
15
16
  // ---------------------------------------------------------------------------
16
17
  // MemorySearchTool
17
18
  // ---------------------------------------------------------------------------
@@ -105,6 +106,10 @@ export class MemorySearchTool {
105
106
  */
106
107
  async execute(args, _context) {
107
108
  try {
109
+ const rawQuery = args.query.trim();
110
+ if (!rawQuery) {
111
+ return { success: true, output: { results: [] } };
112
+ }
108
113
  const limit = args.limit ?? 10;
109
114
  // Build WHERE clause additions for optional filters.
110
115
  const extraClauses = [];
@@ -128,10 +133,25 @@ export class MemorySearchTool {
128
133
  ORDER BY rank
129
134
  LIMIT ?
130
135
  `;
131
- const params = [args.query, ...extraParams, limit];
132
- const rows = this.brain.db
133
- .prepare(sql)
134
- .all(...params);
136
+ const runSearch = (query) => {
137
+ const params = [query, ...extraParams, limit];
138
+ return this.brain.db
139
+ .prepare(sql)
140
+ .all(...params);
141
+ };
142
+ let rows;
143
+ try {
144
+ rows = runSearch(rawQuery);
145
+ }
146
+ catch (error) {
147
+ const fallbackQuery = buildNaturalLanguageFtsQuery(rawQuery);
148
+ if (error?.code !== 'SQLITE_ERROR' ||
149
+ !fallbackQuery ||
150
+ fallbackQuery === rawQuery) {
151
+ throw error;
152
+ }
153
+ rows = runSearch(fallbackQuery);
154
+ }
135
155
  const results = rows.map((row) => {
136
156
  let tags = [];
137
157
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySearchTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemorySearchTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemorySearchTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemorySearchTool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryUpdateTool.d.ts","sourceRoot":"","sources":["../../../src/memory/tools/MemoryUpdateTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IA6CvE,OAAO,CAAC,QAAQ,CAAC,KAAK;IA5ClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,sBAAsB;IAEjC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,SAE2E;IAE/F,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,YAAY;IAE7B,wCAAwC;IACxC,QAAQ,CAAC,cAAc,QAAQ;IAE/B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAkBpC;IAEF;;OAEG;gBAC0B,KAAK,EAAE,WAAW;IAM/C;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;CAyCpD"}
1
+ {"version":3,"file":"MemoryUpdateTool.d.ts","sourceRoot":"","sources":["../../../src/memory/tools/MemoryUpdateTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IA6CvE,OAAO,CAAC,QAAQ,CAAC,KAAK;IA5ClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,sBAAsB;IAEjC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,mBAAmB;IAEvC,8BAA8B;IAC9B,QAAQ,CAAC,WAAW,SAE2E;IAE/F,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,YAAY;IAE7B,wCAAwC;IACxC,QAAQ,CAAC,cAAc,QAAQ;IAE/B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAkBpC;IAEF;;OAEG;gBAC0B,KAAK,EAAE,WAAW;IAM/C;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CACX,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;CAuEpD"}
@@ -9,6 +9,7 @@
9
9
  *
10
10
  * @module memory/tools/MemoryUpdateTool
11
11
  */
12
+ import { parseTraceMetadata, sha256Hex } from '../store/tracePersistence.js';
12
13
  // ---------------------------------------------------------------------------
13
14
  // MemoryUpdateTool
14
15
  // ---------------------------------------------------------------------------
@@ -94,24 +95,45 @@ export class MemoryUpdateTool {
94
95
  if (content === undefined && tags === undefined) {
95
96
  return { success: true, output: { updated: false } };
96
97
  }
97
- // Build the SET clause dynamically.
98
- const setClauses = [];
99
- const params = [];
100
- if (content !== undefined) {
101
- // Changing content invalidates the stored embedding vector.
102
- setClauses.push('content = ?', 'embedding = NULL');
103
- params.push(content);
98
+ const current = this.brain.db
99
+ .prepare(`SELECT rowid AS rowid, content, tags, metadata
100
+ FROM memory_traces
101
+ WHERE id = ? AND deleted = 0`)
102
+ .get(traceId);
103
+ if (!current) {
104
+ return { success: true, output: { updated: false } };
104
105
  }
105
- if (tags !== undefined) {
106
- setClauses.push('tags = ?');
107
- params.push(JSON.stringify(tags));
106
+ const nextContent = content ?? current.content;
107
+ const nextTags = tags !== undefined ? JSON.stringify(tags) : current.tags;
108
+ const nextMetadataObject = parseTraceMetadata(current.metadata);
109
+ if (content !== undefined) {
110
+ nextMetadataObject.content_hash = sha256Hex(nextContent);
111
+ delete nextMetadataObject.import_hash;
108
112
  }
109
- // WHERE clause: only update active (non-deleted) traces.
110
- params.push(traceId);
111
- const sql = `UPDATE memory_traces SET ${setClauses.join(', ')} WHERE id = ? AND deleted = 0`;
112
- // better-sqlite3 `.run()` accepts rest parameters; cast via unknown[] for TS.
113
- const info = this.brain.db.prepare(sql).run(...params);
114
- const changes = info.changes;
113
+ const nextMetadata = JSON.stringify(nextMetadataObject);
114
+ const sql = content !== undefined
115
+ ? `UPDATE memory_traces
116
+ SET content = ?, tags = ?, metadata = ?, embedding = NULL
117
+ WHERE id = ? AND deleted = 0`
118
+ : `UPDATE memory_traces
119
+ SET content = ?, tags = ?, metadata = ?
120
+ WHERE id = ? AND deleted = 0`;
121
+ const changes = this.brain.db.transaction(() => {
122
+ this.brain.db
123
+ .prepare(`INSERT INTO memory_traces_fts (memory_traces_fts, rowid, content, tags)
124
+ VALUES ('delete', ?, ?, ?)`)
125
+ .run(current.rowid, current.content, current.tags);
126
+ const info = this.brain.db
127
+ .prepare(sql)
128
+ .run(nextContent, nextTags, nextMetadata, traceId);
129
+ if (info.changes > 0) {
130
+ this.brain.db
131
+ .prepare(`INSERT INTO memory_traces_fts (rowid, content, tags)
132
+ VALUES (?, ?, ?)`)
133
+ .run(current.rowid, nextContent, nextTags);
134
+ }
135
+ return info.changes;
136
+ })();
115
137
  return { success: true, output: { updated: changes > 0 } };
116
138
  }
117
139
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryUpdateTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemoryUpdateTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryUpdateTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemoryUpdateTool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.1.105",
3
+ "version": "0.1.106",
4
4
  "description": "Modular AgentOS orchestration library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",