@framers/agentos 0.1.101 → 0.1.103
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 +16 -0
- package/dist/api/agency.js +1 -1
- package/dist/api/agency.js.map +1 -1
- package/dist/api/strategies/graph.d.ts.map +1 -1
- package/dist/api/strategies/graph.js +1 -0
- package/dist/api/strategies/graph.js.map +1 -1
- package/dist/api/strategies/sequential.d.ts.map +1 -1
- package/dist/api/strategies/sequential.js +1 -0
- package/dist/api/strategies/sequential.js.map +1 -1
- package/dist/memory/config.d.ts +39 -0
- package/dist/memory/config.d.ts.map +1 -1
- package/dist/memory/config.js.map +1 -1
- package/dist/memory/consolidation/ConsolidationLoop.d.ts +177 -0
- package/dist/memory/consolidation/ConsolidationLoop.d.ts.map +1 -0
- package/dist/memory/consolidation/ConsolidationLoop.js +517 -0
- package/dist/memory/consolidation/ConsolidationLoop.js.map +1 -0
- package/dist/memory/consolidation/ConsolidationPipeline.d.ts.map +1 -1
- package/dist/memory/consolidation/ConsolidationPipeline.js +7 -0
- package/dist/memory/consolidation/ConsolidationPipeline.js.map +1 -1
- package/dist/memory/consolidation/index.d.ts +8 -0
- package/dist/memory/consolidation/index.d.ts.map +1 -0
- package/dist/memory/consolidation/index.js +7 -0
- package/dist/memory/consolidation/index.js.map +1 -0
- package/dist/memory/decay/DecayModel.d.ts +33 -0
- package/dist/memory/decay/DecayModel.d.ts.map +1 -1
- package/dist/memory/decay/DecayModel.js +31 -0
- package/dist/memory/decay/DecayModel.js.map +1 -1
- package/dist/memory/facade/Memory.d.ts +228 -0
- package/dist/memory/facade/Memory.d.ts.map +1 -0
- package/dist/memory/facade/Memory.js +823 -0
- package/dist/memory/facade/Memory.js.map +1 -0
- package/dist/memory/facade/index.d.ts +13 -0
- package/dist/memory/facade/index.d.ts.map +1 -0
- package/dist/memory/facade/index.js +11 -0
- package/dist/memory/facade/index.js.map +1 -0
- package/dist/memory/facade/types.d.ts +606 -0
- package/dist/memory/facade/types.d.ts.map +1 -0
- package/dist/memory/facade/types.js +11 -0
- package/dist/memory/facade/types.js.map +1 -0
- package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts +132 -0
- package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts.map +1 -0
- package/dist/memory/feedback/RetrievalFeedbackSignal.js +178 -0
- package/dist/memory/feedback/RetrievalFeedbackSignal.js.map +1 -0
- package/dist/memory/feedback/index.d.ts +13 -0
- package/dist/memory/feedback/index.d.ts.map +1 -0
- package/dist/memory/feedback/index.js +12 -0
- package/dist/memory/feedback/index.js.map +1 -0
- package/dist/memory/index.d.ts +22 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +24 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/ingestion/ChunkingEngine.d.ts +143 -0
- package/dist/memory/ingestion/ChunkingEngine.d.ts.map +1 -0
- package/dist/memory/ingestion/ChunkingEngine.js +508 -0
- package/dist/memory/ingestion/ChunkingEngine.js.map +1 -0
- package/dist/memory/ingestion/DoclingLoader.d.ts +44 -0
- package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/DoclingLoader.js +228 -0
- package/dist/memory/ingestion/DoclingLoader.js.map +1 -0
- package/dist/memory/ingestion/DocxLoader.d.ts +37 -0
- package/dist/memory/ingestion/DocxLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/DocxLoader.js +111 -0
- package/dist/memory/ingestion/DocxLoader.js.map +1 -0
- package/dist/memory/ingestion/FolderScanner.d.ts +116 -0
- package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -0
- package/dist/memory/ingestion/FolderScanner.js +127 -0
- package/dist/memory/ingestion/FolderScanner.js.map +1 -0
- package/dist/memory/ingestion/HtmlLoader.d.ts +49 -0
- package/dist/memory/ingestion/HtmlLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/HtmlLoader.js +202 -0
- package/dist/memory/ingestion/HtmlLoader.js.map +1 -0
- package/dist/memory/ingestion/IDocumentLoader.d.ts +63 -0
- package/dist/memory/ingestion/IDocumentLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/IDocumentLoader.js +11 -0
- package/dist/memory/ingestion/IDocumentLoader.js.map +1 -0
- package/dist/memory/ingestion/LoaderRegistry.d.ts +140 -0
- package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -0
- package/dist/memory/ingestion/LoaderRegistry.js +229 -0
- package/dist/memory/ingestion/LoaderRegistry.js.map +1 -0
- package/dist/memory/ingestion/MarkdownLoader.d.ts +50 -0
- package/dist/memory/ingestion/MarkdownLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/MarkdownLoader.js +169 -0
- package/dist/memory/ingestion/MarkdownLoader.js.map +1 -0
- package/dist/memory/ingestion/MultimodalAggregator.d.ts +88 -0
- package/dist/memory/ingestion/MultimodalAggregator.d.ts.map +1 -0
- package/dist/memory/ingestion/MultimodalAggregator.js +96 -0
- package/dist/memory/ingestion/MultimodalAggregator.js.map +1 -0
- package/dist/memory/ingestion/OcrPdfLoader.d.ts +41 -0
- package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/OcrPdfLoader.js +149 -0
- package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -0
- package/dist/memory/ingestion/PdfLoader.d.ts +78 -0
- package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/PdfLoader.js +179 -0
- package/dist/memory/ingestion/PdfLoader.js.map +1 -0
- package/dist/memory/ingestion/TextLoader.d.ts +66 -0
- package/dist/memory/ingestion/TextLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/TextLoader.js +207 -0
- package/dist/memory/ingestion/TextLoader.js.map +1 -0
- package/dist/memory/ingestion/UrlLoader.d.ts +95 -0
- package/dist/memory/ingestion/UrlLoader.d.ts.map +1 -0
- package/dist/memory/ingestion/UrlLoader.js +174 -0
- package/dist/memory/ingestion/UrlLoader.js.map +1 -0
- package/dist/memory/io/ChatGptImporter.d.ts +85 -0
- package/dist/memory/io/ChatGptImporter.d.ts.map +1 -0
- package/dist/memory/io/ChatGptImporter.js +231 -0
- package/dist/memory/io/ChatGptImporter.js.map +1 -0
- package/dist/memory/io/JsonExporter.d.ts +67 -0
- package/dist/memory/io/JsonExporter.d.ts.map +1 -0
- package/dist/memory/io/JsonExporter.js +132 -0
- package/dist/memory/io/JsonExporter.js.map +1 -0
- package/dist/memory/io/JsonImporter.d.ts +84 -0
- package/dist/memory/io/JsonImporter.d.ts.map +1 -0
- package/dist/memory/io/JsonImporter.js +234 -0
- package/dist/memory/io/JsonImporter.js.map +1 -0
- package/dist/memory/io/MarkdownExporter.d.ts +95 -0
- package/dist/memory/io/MarkdownExporter.d.ts.map +1 -0
- package/dist/memory/io/MarkdownExporter.js +130 -0
- package/dist/memory/io/MarkdownExporter.js.map +1 -0
- package/dist/memory/io/MarkdownImporter.d.ts +84 -0
- package/dist/memory/io/MarkdownImporter.d.ts.map +1 -0
- package/dist/memory/io/MarkdownImporter.js +166 -0
- package/dist/memory/io/MarkdownImporter.js.map +1 -0
- package/dist/memory/io/ObsidianExporter.d.ts +80 -0
- package/dist/memory/io/ObsidianExporter.d.ts.map +1 -0
- package/dist/memory/io/ObsidianExporter.js +127 -0
- package/dist/memory/io/ObsidianExporter.js.map +1 -0
- package/dist/memory/io/ObsidianImporter.d.ts +93 -0
- package/dist/memory/io/ObsidianImporter.d.ts.map +1 -0
- package/dist/memory/io/ObsidianImporter.js +221 -0
- package/dist/memory/io/ObsidianImporter.js.map +1 -0
- package/dist/memory/io/SqliteExporter.d.ts +47 -0
- package/dist/memory/io/SqliteExporter.d.ts.map +1 -0
- package/dist/memory/io/SqliteExporter.js +56 -0
- package/dist/memory/io/SqliteExporter.js.map +1 -0
- package/dist/memory/io/SqliteImporter.d.ts +82 -0
- package/dist/memory/io/SqliteImporter.d.ts.map +1 -0
- package/dist/memory/io/SqliteImporter.js +232 -0
- package/dist/memory/io/SqliteImporter.js.map +1 -0
- package/dist/memory/io/index.d.ts +31 -0
- package/dist/memory/io/index.d.ts.map +1 -0
- package/dist/memory/io/index.js +31 -0
- package/dist/memory/io/index.js.map +1 -0
- package/dist/memory/store/SqliteBrain.d.ts +125 -0
- package/dist/memory/store/SqliteBrain.d.ts.map +1 -0
- package/dist/memory/store/SqliteBrain.js +407 -0
- package/dist/memory/store/SqliteBrain.js.map +1 -0
- package/dist/memory/store/SqliteKnowledgeGraph.d.ts +259 -0
- package/dist/memory/store/SqliteKnowledgeGraph.d.ts.map +1 -0
- package/dist/memory/store/SqliteKnowledgeGraph.js +1062 -0
- package/dist/memory/store/SqliteKnowledgeGraph.js.map +1 -0
- package/dist/memory/store/SqliteMemoryGraph.d.ts +251 -0
- package/dist/memory/store/SqliteMemoryGraph.d.ts.map +1 -0
- package/dist/memory/store/SqliteMemoryGraph.js +637 -0
- package/dist/memory/store/SqliteMemoryGraph.js.map +1 -0
- package/dist/memory/tools/MemoryAddTool.d.ts +98 -0
- package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -0
- package/dist/memory/tools/MemoryAddTool.js +131 -0
- package/dist/memory/tools/MemoryAddTool.js.map +1 -0
- package/dist/memory/tools/MemoryDeleteTool.d.ts +83 -0
- package/dist/memory/tools/MemoryDeleteTool.d.ts.map +1 -0
- package/dist/memory/tools/MemoryDeleteTool.js +96 -0
- package/dist/memory/tools/MemoryDeleteTool.js.map +1 -0
- package/dist/memory/tools/MemoryMergeTool.d.ts +95 -0
- package/dist/memory/tools/MemoryMergeTool.d.ts.map +1 -0
- package/dist/memory/tools/MemoryMergeTool.js +164 -0
- package/dist/memory/tools/MemoryMergeTool.js.map +1 -0
- package/dist/memory/tools/MemoryReflectTool.d.ts +86 -0
- package/dist/memory/tools/MemoryReflectTool.d.ts.map +1 -0
- package/dist/memory/tools/MemoryReflectTool.js +102 -0
- package/dist/memory/tools/MemoryReflectTool.js.map +1 -0
- package/dist/memory/tools/MemorySearchTool.d.ts +117 -0
- package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -0
- package/dist/memory/tools/MemorySearchTool.js +162 -0
- package/dist/memory/tools/MemorySearchTool.js.map +1 -0
- package/dist/memory/tools/MemoryUpdateTool.d.ts +92 -0
- package/dist/memory/tools/MemoryUpdateTool.d.ts.map +1 -0
- package/dist/memory/tools/MemoryUpdateTool.js +125 -0
- package/dist/memory/tools/MemoryUpdateTool.js.map +1 -0
- package/dist/memory/tools/index.d.ts +32 -0
- package/dist/memory/tools/index.d.ts.map +1 -0
- package/dist/memory/tools/index.js +26 -0
- package/dist/memory/tools/index.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MemoryUpdateTool — lets an agent update an existing memory trace.
|
|
3
|
+
*
|
|
4
|
+
* Supports partial updates: the agent may change just the content, just the
|
|
5
|
+
* tags, or both. When the content is changed, the stored embedding is cleared
|
|
6
|
+
* so the background EmbeddingEncoder will re-embed the trace asynchronously
|
|
7
|
+
* on the next pass — preventing stale vector data from contaminating semantic
|
|
8
|
+
* search results.
|
|
9
|
+
*
|
|
10
|
+
* @module memory/tools/MemoryUpdateTool
|
|
11
|
+
*/
|
|
12
|
+
import type { ITool, ToolExecutionResult, ToolExecutionContext, JSONSchemaObject } from '../../core/tools/ITool.js';
|
|
13
|
+
import type { SqliteBrain } from '../store/SqliteBrain.js';
|
|
14
|
+
/**
|
|
15
|
+
* Input arguments for {@link MemoryUpdateTool}.
|
|
16
|
+
*
|
|
17
|
+
* At least one of `content` or `tags` must be provided alongside `traceId`
|
|
18
|
+
* for an update to have any effect.
|
|
19
|
+
*
|
|
20
|
+
* @property traceId - The ID of the memory trace to update (e.g. `mt_1234_0`).
|
|
21
|
+
* @property content - New text content. When changed, the embedding is cleared.
|
|
22
|
+
* @property tags - Replacement tag array (overwrites existing tags entirely).
|
|
23
|
+
*/
|
|
24
|
+
export interface MemoryUpdateInput extends Record<string, any> {
|
|
25
|
+
traceId: string;
|
|
26
|
+
content?: string;
|
|
27
|
+
tags?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Output returned by {@link MemoryUpdateTool} on success.
|
|
31
|
+
*
|
|
32
|
+
* @property updated - `true` if a matching, non-deleted trace was found and updated.
|
|
33
|
+
* `false` if the trace was not found or was already soft-deleted.
|
|
34
|
+
*/
|
|
35
|
+
export interface MemoryUpdateOutput {
|
|
36
|
+
updated: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ITool implementation that applies partial updates to an existing memory
|
|
40
|
+
* trace stored in the agent's SQLite brain database.
|
|
41
|
+
*
|
|
42
|
+
* **Usage:**
|
|
43
|
+
* ```ts
|
|
44
|
+
* const tool = new MemoryUpdateTool(brain);
|
|
45
|
+
* const result = await tool.execute(
|
|
46
|
+
* { traceId: 'mt_1711234567890_0', content: 'Updated content here.' },
|
|
47
|
+
* context,
|
|
48
|
+
* );
|
|
49
|
+
* // result.output.updated → true
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class MemoryUpdateTool implements ITool<MemoryUpdateInput, MemoryUpdateOutput> {
|
|
53
|
+
private readonly brain;
|
|
54
|
+
/** Globally unique tool identifier. */
|
|
55
|
+
readonly id = "memory-update-v1";
|
|
56
|
+
/** LLM-facing tool name. */
|
|
57
|
+
readonly name = "memory_update";
|
|
58
|
+
/** Human-readable display name. */
|
|
59
|
+
readonly displayName = "Update Memory";
|
|
60
|
+
/** LLM-facing description. */
|
|
61
|
+
readonly description: string;
|
|
62
|
+
/** Logical category for discovery and grouping. */
|
|
63
|
+
readonly category = "memory";
|
|
64
|
+
/** This tool writes to the database. */
|
|
65
|
+
readonly hasSideEffects = true;
|
|
66
|
+
/** JSON schema for input validation and LLM tool-call construction. */
|
|
67
|
+
readonly inputSchema: JSONSchemaObject;
|
|
68
|
+
/**
|
|
69
|
+
* @param brain - The agent's shared SQLite brain database connection.
|
|
70
|
+
*/
|
|
71
|
+
constructor(brain: SqliteBrain);
|
|
72
|
+
/**
|
|
73
|
+
* Update a memory trace identified by `traceId`.
|
|
74
|
+
*
|
|
75
|
+
* The method builds a dynamic SET clause based on which optional fields
|
|
76
|
+
* are provided:
|
|
77
|
+
* - `content` provided → set `content = ?`, also set `embedding = NULL`
|
|
78
|
+
* to signal that the cached vector is stale.
|
|
79
|
+
* - `tags` provided → serialise array as JSON and set `tags = ?`.
|
|
80
|
+
*
|
|
81
|
+
* If neither `content` nor `tags` is specified, the method returns
|
|
82
|
+
* `{ updated: false }` immediately without touching the database.
|
|
83
|
+
*
|
|
84
|
+
* A trace that does not exist or has `deleted = 1` returns `{ updated: false }`.
|
|
85
|
+
*
|
|
86
|
+
* @param args - Update input (traceId, optional content/tags).
|
|
87
|
+
* @param _context - Tool execution context (not used by this tool).
|
|
88
|
+
* @returns `{ updated }` status, or an error result.
|
|
89
|
+
*/
|
|
90
|
+
execute(args: MemoryUpdateInput, _context: ToolExecutionContext): Promise<ToolExecutionResult<MemoryUpdateOutput>>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=MemoryUpdateTool.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview MemoryUpdateTool — lets an agent update an existing memory trace.
|
|
3
|
+
*
|
|
4
|
+
* Supports partial updates: the agent may change just the content, just the
|
|
5
|
+
* tags, or both. When the content is changed, the stored embedding is cleared
|
|
6
|
+
* so the background EmbeddingEncoder will re-embed the trace asynchronously
|
|
7
|
+
* on the next pass — preventing stale vector data from contaminating semantic
|
|
8
|
+
* search results.
|
|
9
|
+
*
|
|
10
|
+
* @module memory/tools/MemoryUpdateTool
|
|
11
|
+
*/
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// MemoryUpdateTool
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* ITool implementation that applies partial updates to an existing memory
|
|
17
|
+
* trace stored in the agent's SQLite brain database.
|
|
18
|
+
*
|
|
19
|
+
* **Usage:**
|
|
20
|
+
* ```ts
|
|
21
|
+
* const tool = new MemoryUpdateTool(brain);
|
|
22
|
+
* const result = await tool.execute(
|
|
23
|
+
* { traceId: 'mt_1711234567890_0', content: 'Updated content here.' },
|
|
24
|
+
* context,
|
|
25
|
+
* );
|
|
26
|
+
* // result.output.updated → true
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class MemoryUpdateTool {
|
|
30
|
+
/**
|
|
31
|
+
* @param brain - The agent's shared SQLite brain database connection.
|
|
32
|
+
*/
|
|
33
|
+
constructor(brain) {
|
|
34
|
+
this.brain = brain;
|
|
35
|
+
/** Globally unique tool identifier. */
|
|
36
|
+
this.id = 'memory-update-v1';
|
|
37
|
+
/** LLM-facing tool name. */
|
|
38
|
+
this.name = 'memory_update';
|
|
39
|
+
/** Human-readable display name. */
|
|
40
|
+
this.displayName = 'Update Memory';
|
|
41
|
+
/** LLM-facing description. */
|
|
42
|
+
this.description = 'Update an existing memory trace by ID. You can change the content, the tags, or both. ' +
|
|
43
|
+
'If content changes, the stored embedding is cleared and will be re-computed automatically.';
|
|
44
|
+
/** Logical category for discovery and grouping. */
|
|
45
|
+
this.category = 'memory';
|
|
46
|
+
/** This tool writes to the database. */
|
|
47
|
+
this.hasSideEffects = true;
|
|
48
|
+
/** JSON schema for input validation and LLM tool-call construction. */
|
|
49
|
+
this.inputSchema = {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
traceId: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'The unique ID of the memory trace to update.',
|
|
55
|
+
},
|
|
56
|
+
content: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'New text content for the trace. Clears the stored embedding so it can be re-computed.',
|
|
59
|
+
},
|
|
60
|
+
tags: {
|
|
61
|
+
type: 'array',
|
|
62
|
+
items: { type: 'string' },
|
|
63
|
+
description: 'Replacement tag array (overwrites the existing tags entirely).',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
required: ['traceId'],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// execute
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* Update a memory trace identified by `traceId`.
|
|
74
|
+
*
|
|
75
|
+
* The method builds a dynamic SET clause based on which optional fields
|
|
76
|
+
* are provided:
|
|
77
|
+
* - `content` provided → set `content = ?`, also set `embedding = NULL`
|
|
78
|
+
* to signal that the cached vector is stale.
|
|
79
|
+
* - `tags` provided → serialise array as JSON and set `tags = ?`.
|
|
80
|
+
*
|
|
81
|
+
* If neither `content` nor `tags` is specified, the method returns
|
|
82
|
+
* `{ updated: false }` immediately without touching the database.
|
|
83
|
+
*
|
|
84
|
+
* A trace that does not exist or has `deleted = 1` returns `{ updated: false }`.
|
|
85
|
+
*
|
|
86
|
+
* @param args - Update input (traceId, optional content/tags).
|
|
87
|
+
* @param _context - Tool execution context (not used by this tool).
|
|
88
|
+
* @returns `{ updated }` status, or an error result.
|
|
89
|
+
*/
|
|
90
|
+
async execute(args, _context) {
|
|
91
|
+
try {
|
|
92
|
+
const { traceId, content, tags } = args;
|
|
93
|
+
// Nothing to update — return false without any DB work.
|
|
94
|
+
if (content === undefined && tags === undefined) {
|
|
95
|
+
return { success: true, output: { updated: false } };
|
|
96
|
+
}
|
|
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);
|
|
104
|
+
}
|
|
105
|
+
if (tags !== undefined) {
|
|
106
|
+
setClauses.push('tags = ?');
|
|
107
|
+
params.push(JSON.stringify(tags));
|
|
108
|
+
}
|
|
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;
|
|
115
|
+
return { success: true, output: { updated: changes > 0 } };
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
return {
|
|
119
|
+
success: false,
|
|
120
|
+
error: err instanceof Error ? err.message : String(err),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=MemoryUpdateTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryUpdateTool.js","sourceRoot":"","sources":["../../../src/memory/tools/MemoryUpdateTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel exports for the agent memory editor tools.
|
|
3
|
+
*
|
|
4
|
+
* These tools expose a self-management API that lets AgentOS agents
|
|
5
|
+
* read, write, search, and consolidate their own long-term memory traces.
|
|
6
|
+
*
|
|
7
|
+
* ## Available tools
|
|
8
|
+
*
|
|
9
|
+
* | Tool class | Tool name | Description |
|
|
10
|
+
* |----------------------|-------------------|--------------------------------------------|
|
|
11
|
+
* | {@link MemoryAddTool} | `memory_add` | Store a new memory trace |
|
|
12
|
+
* | {@link MemoryUpdateTool} | `memory_update` | Update content or tags of an existing trace|
|
|
13
|
+
* | {@link MemoryDeleteTool} | `memory_delete` | Soft-delete a trace by ID |
|
|
14
|
+
* | {@link MemoryMergeTool} | `memory_merge` | Merge multiple traces into one |
|
|
15
|
+
* | {@link MemorySearchTool} | `memory_search` | FTS5 full-text search over traces |
|
|
16
|
+
* | {@link MemoryReflectTool}| `memory_reflect` | Trigger offline consolidation cycle |
|
|
17
|
+
*
|
|
18
|
+
* @module memory/tools
|
|
19
|
+
*/
|
|
20
|
+
export { MemoryAddTool } from './MemoryAddTool.js';
|
|
21
|
+
export type { MemoryAddInput, MemoryAddOutput } from './MemoryAddTool.js';
|
|
22
|
+
export { MemoryUpdateTool } from './MemoryUpdateTool.js';
|
|
23
|
+
export type { MemoryUpdateInput, MemoryUpdateOutput } from './MemoryUpdateTool.js';
|
|
24
|
+
export { MemoryDeleteTool } from './MemoryDeleteTool.js';
|
|
25
|
+
export type { MemoryDeleteInput, MemoryDeleteOutput } from './MemoryDeleteTool.js';
|
|
26
|
+
export { MemoryMergeTool } from './MemoryMergeTool.js';
|
|
27
|
+
export type { MemoryMergeInput, MemoryMergeOutput } from './MemoryMergeTool.js';
|
|
28
|
+
export { MemorySearchTool } from './MemorySearchTool.js';
|
|
29
|
+
export type { MemorySearchInput, MemorySearchOutput, MemorySearchResult } from './MemorySearchTool.js';
|
|
30
|
+
export { MemoryReflectTool } from './MemoryReflectTool.js';
|
|
31
|
+
export type { MemoryReflectInput } from './MemoryReflectTool.js';
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel exports for the agent memory editor tools.
|
|
3
|
+
*
|
|
4
|
+
* These tools expose a self-management API that lets AgentOS agents
|
|
5
|
+
* read, write, search, and consolidate their own long-term memory traces.
|
|
6
|
+
*
|
|
7
|
+
* ## Available tools
|
|
8
|
+
*
|
|
9
|
+
* | Tool class | Tool name | Description |
|
|
10
|
+
* |----------------------|-------------------|--------------------------------------------|
|
|
11
|
+
* | {@link MemoryAddTool} | `memory_add` | Store a new memory trace |
|
|
12
|
+
* | {@link MemoryUpdateTool} | `memory_update` | Update content or tags of an existing trace|
|
|
13
|
+
* | {@link MemoryDeleteTool} | `memory_delete` | Soft-delete a trace by ID |
|
|
14
|
+
* | {@link MemoryMergeTool} | `memory_merge` | Merge multiple traces into one |
|
|
15
|
+
* | {@link MemorySearchTool} | `memory_search` | FTS5 full-text search over traces |
|
|
16
|
+
* | {@link MemoryReflectTool}| `memory_reflect` | Trigger offline consolidation cycle |
|
|
17
|
+
*
|
|
18
|
+
* @module memory/tools
|
|
19
|
+
*/
|
|
20
|
+
export { MemoryAddTool } from './MemoryAddTool.js';
|
|
21
|
+
export { MemoryUpdateTool } from './MemoryUpdateTool.js';
|
|
22
|
+
export { MemoryDeleteTool } from './MemoryDeleteTool.js';
|
|
23
|
+
export { MemoryMergeTool } from './MemoryMergeTool.js';
|
|
24
|
+
export { MemorySearchTool } from './MemorySearchTool.js';
|
|
25
|
+
export { MemoryReflectTool } from './MemoryReflectTool.js';
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.103",
|
|
4
4
|
"description": "Modular AgentOS orchestration library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -204,6 +204,7 @@
|
|
|
204
204
|
"@semantic-release/github": "^9.2.4",
|
|
205
205
|
"@semantic-release/npm": "^12.0.1",
|
|
206
206
|
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
207
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
207
208
|
"@types/natural": "^5.1.5",
|
|
208
209
|
"@types/node": "^20.12.12",
|
|
209
210
|
"conventional-changelog-conventionalcommits": "^7.0.2",
|
|
@@ -228,10 +229,14 @@
|
|
|
228
229
|
"ajv": "^8.17.1",
|
|
229
230
|
"ajv-formats": "^3.0.1",
|
|
230
231
|
"axios": "^1.7.7",
|
|
232
|
+
"gray-matter": "^4.0.3",
|
|
231
233
|
"lru-cache": "^11.1.0",
|
|
234
|
+
"mammoth": "^1.12.0",
|
|
235
|
+
"minimatch": "^9.0.5",
|
|
232
236
|
"natural": "^6.12.0",
|
|
233
237
|
"openredaction": "^1.1.2",
|
|
234
238
|
"pino": "^9.14.0",
|
|
239
|
+
"unpdf": "^1.4.0",
|
|
235
240
|
"uuid": "^11.1.0",
|
|
236
241
|
"yaml": "^2.8.1",
|
|
237
242
|
"zod": "^4.3.6"
|