@n8n/agents 0.6.0 → 0.8.0

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 (148) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +18 -11
  3. package/dist/index.js +37 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/integrations/langsmith.d.ts +2 -0
  6. package/dist/integrations/langsmith.js +117 -2
  7. package/dist/integrations/langsmith.js.map +1 -1
  8. package/dist/runtime/agent-runtime.d.ts +30 -19
  9. package/dist/runtime/agent-runtime.js +616 -280
  10. package/dist/runtime/agent-runtime.js.map +1 -1
  11. package/dist/runtime/background-task-tracker.d.ts +6 -0
  12. package/dist/runtime/background-task-tracker.js +26 -0
  13. package/dist/runtime/background-task-tracker.js.map +1 -0
  14. package/dist/runtime/deferred-tool-manager.d.ts +28 -0
  15. package/dist/runtime/deferred-tool-manager.js +205 -0
  16. package/dist/runtime/deferred-tool-manager.js.map +1 -0
  17. package/dist/runtime/event-bus.d.ts +1 -0
  18. package/dist/runtime/event-bus.js +3 -0
  19. package/dist/runtime/event-bus.js.map +1 -1
  20. package/dist/runtime/json-value.d.ts +2 -0
  21. package/dist/runtime/json-value.js +43 -0
  22. package/dist/runtime/json-value.js.map +1 -0
  23. package/dist/runtime/memory-store.d.ts +34 -11
  24. package/dist/runtime/memory-store.js +210 -8
  25. package/dist/runtime/memory-store.js.map +1 -1
  26. package/dist/runtime/message-list.d.ts +6 -7
  27. package/dist/runtime/message-list.js +50 -6
  28. package/dist/runtime/message-list.js.map +1 -1
  29. package/dist/runtime/messages.d.ts +0 -2
  30. package/dist/runtime/messages.js +127 -101
  31. package/dist/runtime/messages.js.map +1 -1
  32. package/dist/runtime/model-factory.js +117 -34
  33. package/dist/runtime/model-factory.js.map +1 -1
  34. package/dist/runtime/observation-log-defaults.d.ts +20 -0
  35. package/dist/runtime/observation-log-defaults.js +523 -0
  36. package/dist/runtime/observation-log-defaults.js.map +1 -0
  37. package/dist/runtime/observation-log-observer.d.ts +64 -0
  38. package/dist/runtime/observation-log-observer.js +235 -0
  39. package/dist/runtime/observation-log-observer.js.map +1 -0
  40. package/dist/runtime/observation-log-reflector.d.ts +36 -0
  41. package/dist/runtime/observation-log-reflector.js +292 -0
  42. package/dist/runtime/observation-log-reflector.js.map +1 -0
  43. package/dist/runtime/observation-log-renderer.d.ts +6 -0
  44. package/dist/runtime/observation-log-renderer.js +73 -0
  45. package/dist/runtime/observation-log-renderer.js.map +1 -0
  46. package/dist/runtime/observation-log-store.d.ts +3 -0
  47. package/dist/runtime/observation-log-store.js +26 -0
  48. package/dist/runtime/observation-log-store.js.map +1 -0
  49. package/dist/runtime/provider-credentials.d.ts +167 -0
  50. package/dist/runtime/provider-credentials.js +34 -0
  51. package/dist/runtime/provider-credentials.js.map +1 -0
  52. package/dist/runtime/runtime-helpers.d.ts +3 -4
  53. package/dist/runtime/runtime-helpers.js +6 -32
  54. package/dist/runtime/runtime-helpers.js.map +1 -1
  55. package/dist/runtime/scoped-memory-task-runner.d.ts +79 -0
  56. package/dist/runtime/scoped-memory-task-runner.js +134 -0
  57. package/dist/runtime/scoped-memory-task-runner.js.map +1 -0
  58. package/dist/runtime/stream.js +25 -43
  59. package/dist/runtime/stream.js.map +1 -1
  60. package/dist/runtime/strip-orphaned-tool-messages.js +1 -25
  61. package/dist/runtime/strip-orphaned-tool-messages.js.map +1 -1
  62. package/dist/runtime/title-generation.d.ts +12 -3
  63. package/dist/runtime/title-generation.js +72 -3
  64. package/dist/runtime/title-generation.js.map +1 -1
  65. package/dist/runtime/tool-adapter.d.ts +1 -1
  66. package/dist/runtime/tool-adapter.js +3 -2
  67. package/dist/runtime/tool-adapter.js.map +1 -1
  68. package/dist/sdk/agent.d.ts +35 -22
  69. package/dist/sdk/agent.js +106 -331
  70. package/dist/sdk/agent.js.map +1 -1
  71. package/dist/sdk/catalog.d.ts +1 -0
  72. package/dist/sdk/catalog.js +1 -0
  73. package/dist/sdk/catalog.js.map +1 -1
  74. package/dist/sdk/eval.d.ts +0 -3
  75. package/dist/sdk/eval.js +4 -9
  76. package/dist/sdk/eval.js.map +1 -1
  77. package/dist/sdk/memory.d.ts +12 -12
  78. package/dist/sdk/memory.js +71 -51
  79. package/dist/sdk/memory.js.map +1 -1
  80. package/dist/sdk/provider-capabilities.js +4 -2
  81. package/dist/sdk/provider-capabilities.js.map +1 -1
  82. package/dist/sdk/provider-tools.d.ts +17 -2
  83. package/dist/sdk/provider-tools.js +19 -0
  84. package/dist/sdk/provider-tools.js.map +1 -1
  85. package/dist/sdk/telemetry.d.ts +2 -0
  86. package/dist/sdk/telemetry.js +6 -0
  87. package/dist/sdk/telemetry.js.map +1 -1
  88. package/dist/sdk/tool.d.ts +17 -10
  89. package/dist/sdk/tool.js +34 -0
  90. package/dist/sdk/tool.js.map +1 -1
  91. package/dist/sdk/verify.js +1 -4
  92. package/dist/sdk/verify.js.map +1 -1
  93. package/dist/storage/base-memory.d.ts +54 -0
  94. package/dist/storage/base-memory.js +48 -0
  95. package/dist/storage/base-memory.js.map +1 -0
  96. package/dist/types/index.d.ts +6 -3
  97. package/dist/types/index.js +7 -1
  98. package/dist/types/index.js.map +1 -1
  99. package/dist/types/runtime/event.d.ts +4 -9
  100. package/dist/types/runtime/event.js.map +1 -1
  101. package/dist/types/sdk/agent-builder.d.ts +5 -3
  102. package/dist/types/sdk/agent.d.ts +70 -27
  103. package/dist/types/sdk/credential-provider.d.ts +2 -3
  104. package/dist/types/sdk/memory.d.ts +33 -20
  105. package/dist/types/sdk/message.d.ts +11 -10
  106. package/dist/types/sdk/observation-log.d.ts +99 -0
  107. package/dist/types/sdk/observation-log.js +17 -0
  108. package/dist/types/sdk/observation-log.js.map +1 -0
  109. package/dist/types/sdk/observation.d.ts +9 -0
  110. package/dist/types/sdk/{schema.js → observation.js} +1 -1
  111. package/dist/types/sdk/observation.js.map +1 -0
  112. package/dist/types/sdk/provider.d.ts +5 -2
  113. package/dist/types/sdk/tool-descriptor.d.ts +13 -0
  114. package/dist/types/sdk/tool-descriptor.js +3 -0
  115. package/dist/types/sdk/tool-descriptor.js.map +1 -0
  116. package/dist/types/sdk/tool.d.ts +8 -3
  117. package/dist/types/telemetry.d.ts +1 -0
  118. package/dist/utils/parse.d.ts +10 -0
  119. package/dist/utils/parse.js +26 -0
  120. package/dist/utils/parse.js.map +1 -0
  121. package/dist/utils/zod.d.ts +1 -1
  122. package/dist/utils/zod.js.map +1 -1
  123. package/dist/workspace/tools/batch-str-replace-file.d.ts +3 -0
  124. package/dist/workspace/tools/batch-str-replace-file.js +67 -0
  125. package/dist/workspace/tools/batch-str-replace-file.js.map +1 -0
  126. package/dist/workspace/tools/str-replace-file.d.ts +3 -0
  127. package/dist/workspace/tools/str-replace-file.js +51 -0
  128. package/dist/workspace/tools/str-replace-file.js.map +1 -0
  129. package/dist/workspace/tools/workspace-tools.js +4 -0
  130. package/dist/workspace/tools/workspace-tools.js.map +1 -1
  131. package/package.json +16 -11
  132. package/dist/codegen/generate-agent-code.d.ts +0 -2
  133. package/dist/codegen/generate-agent-code.js +0 -197
  134. package/dist/codegen/generate-agent-code.js.map +0 -1
  135. package/dist/runtime/working-memory.d.ts +0 -14
  136. package/dist/runtime/working-memory.js +0 -69
  137. package/dist/runtime/working-memory.js.map +0 -1
  138. package/dist/sdk/from-schema.d.ts +0 -15
  139. package/dist/sdk/from-schema.js +0 -218
  140. package/dist/sdk/from-schema.js.map +0 -1
  141. package/dist/storage/postgres-memory.d.ts +0 -79
  142. package/dist/storage/postgres-memory.js +0 -410
  143. package/dist/storage/postgres-memory.js.map +0 -1
  144. package/dist/storage/sqlite-memory.d.ts +0 -60
  145. package/dist/storage/sqlite-memory.js +0 -348
  146. package/dist/storage/sqlite-memory.js.map +0 -1
  147. package/dist/types/sdk/schema.d.ts +0 -99
  148. package/dist/types/sdk/schema.js.map +0 -1
@@ -1,410 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.PostgresMemory = void 0;
37
- function parseJsonSafe(text) {
38
- try {
39
- return JSON.parse(text);
40
- }
41
- catch {
42
- return undefined;
43
- }
44
- }
45
- class PostgresMemory {
46
- constructor(config) {
47
- this.initPromise = null;
48
- this.embeddingsInitPromise = null;
49
- this.embeddingDimension = null;
50
- if (config.namespace !== undefined) {
51
- if (!/^[a-zA-Z0-9_]+$/.test(config.namespace)) {
52
- throw new Error(`Invalid namespace "${config.namespace}": must be alphanumeric and underscores only`);
53
- }
54
- }
55
- this.config = config;
56
- this.ns = config.namespace ? `${config.namespace}_` : '';
57
- }
58
- async ensureInitialized() {
59
- this.initPromise ??= this._initialize().catch((error) => {
60
- this.initPromise = null;
61
- throw error;
62
- });
63
- return await this.initPromise;
64
- }
65
- async _initialize() {
66
- const { Pool: PgPool } = await Promise.resolve().then(() => __importStar(require('pg')));
67
- const conn = this.config.connection;
68
- const connectionOpts = typeof conn === 'string'
69
- ? { connectionString: conn }
70
- : {
71
- ...(conn.host && { host: conn.host }),
72
- ...(conn.port && { port: conn.port }),
73
- ...(conn.database && { database: conn.database }),
74
- ...(conn.user && { user: conn.user }),
75
- ...(conn.password !== undefined && { password: conn.password }),
76
- };
77
- const pool = new PgPool({
78
- ...connectionOpts,
79
- ...(this.config.pool?.max !== undefined && { max: this.config.pool.max }),
80
- ...(this.config.pool?.min !== undefined && { min: this.config.pool.min }),
81
- ...(this.config.pool?.idleTimeoutMillis !== undefined && {
82
- idleTimeoutMillis: this.config.pool.idleTimeoutMillis,
83
- }),
84
- ...(this.config.pool?.connectionTimeoutMillis !== undefined && {
85
- connectionTimeoutMillis: this.config.pool.connectionTimeoutMillis,
86
- }),
87
- ...(this.config.pool?.allowExitOnIdle !== undefined && {
88
- allowExitOnIdle: this.config.pool.allowExitOnIdle,
89
- }),
90
- ...(this.config.ssl !== undefined && { ssl: this.config.ssl }),
91
- });
92
- await pool.query(`CREATE TABLE IF NOT EXISTS ${this.ns}threads (
93
- id TEXT PRIMARY KEY,
94
- "resourceId" TEXT NOT NULL,
95
- title TEXT,
96
- metadata JSONB,
97
- "createdAt" TIMESTAMPTZ NOT NULL,
98
- "updatedAt" TIMESTAMPTZ NOT NULL
99
- )`);
100
- await pool.query(`CREATE TABLE IF NOT EXISTS ${this.ns}messages (
101
- seq SERIAL PRIMARY KEY,
102
- id TEXT NOT NULL UNIQUE,
103
- "threadId" TEXT NOT NULL,
104
- role TEXT NOT NULL,
105
- content JSONB NOT NULL,
106
- "createdAt" TIMESTAMPTZ NOT NULL
107
- )`);
108
- await pool.query(`CREATE TABLE IF NOT EXISTS ${this.ns}working_memory (
109
- key TEXT NOT NULL,
110
- scope TEXT NOT NULL CHECK(scope IN ('resource', 'thread')),
111
- content TEXT NOT NULL,
112
- "updatedAt" TIMESTAMPTZ NOT NULL,
113
- PRIMARY KEY (key, scope)
114
- )`);
115
- return pool;
116
- }
117
- async getThread(threadId) {
118
- const pool = await this.ensureInitialized();
119
- const result = await pool.query(`SELECT id, "resourceId", title, metadata, "createdAt", "updatedAt"
120
- FROM ${this.ns}threads WHERE id = $1`, [threadId]);
121
- if (result.rows.length === 0)
122
- return null;
123
- const row = result.rows[0];
124
- return {
125
- id: row.id,
126
- resourceId: row.resourceId,
127
- title: row.title ?? undefined,
128
- metadata: row.metadata ?? undefined,
129
- createdAt: new Date(row.createdAt),
130
- updatedAt: new Date(row.updatedAt),
131
- };
132
- }
133
- async saveThread(thread) {
134
- const pool = await this.ensureInitialized();
135
- const now = new Date().toISOString();
136
- const titleArg = thread.title ?? null;
137
- const metadataArg = thread.metadata ? JSON.stringify(thread.metadata) : null;
138
- const result = await pool.query(`INSERT INTO ${this.ns}threads (id, "resourceId", title, metadata, "createdAt", "updatedAt")
139
- VALUES ($1, $2, $3, $4, $5, $6)
140
- ON CONFLICT (id) DO UPDATE SET
141
- "resourceId" = EXCLUDED."resourceId",
142
- title = COALESCE(EXCLUDED.title, ${this.ns}threads.title),
143
- metadata = COALESCE(EXCLUDED.metadata, ${this.ns}threads.metadata),
144
- "updatedAt" = EXCLUDED."updatedAt"
145
- RETURNING id, "resourceId", title, metadata, "createdAt", "updatedAt"`, [thread.id, thread.resourceId, titleArg, metadataArg, now, now]);
146
- const row = result.rows[0];
147
- return {
148
- id: row.id,
149
- resourceId: row.resourceId,
150
- title: row.title ?? undefined,
151
- metadata: row.metadata ?? undefined,
152
- createdAt: new Date(row.createdAt),
153
- updatedAt: new Date(row.updatedAt),
154
- };
155
- }
156
- async deleteThread(threadId) {
157
- const pool = await this.ensureInitialized();
158
- const client = await pool.connect();
159
- try {
160
- await client.query('BEGIN');
161
- await client.query(`DELETE FROM ${this.ns}messages WHERE "threadId" = $1`, [threadId]);
162
- await client.query(`DELETE FROM ${this.ns}threads WHERE id = $1`, [threadId]);
163
- await client.query('COMMIT');
164
- }
165
- catch (deleteError) {
166
- await client.query('ROLLBACK');
167
- throw deleteError;
168
- }
169
- finally {
170
- client.release();
171
- }
172
- try {
173
- await pool.query(`DELETE FROM ${this.ns}message_embeddings WHERE "threadId" = $1`, [
174
- threadId,
175
- ]);
176
- }
177
- catch (e) {
178
- if (!(e instanceof Error && /does not exist/i.test(e.message)))
179
- throw e;
180
- }
181
- }
182
- async getMessages(threadId, opts) {
183
- const pool = await this.ensureInitialized();
184
- let sql;
185
- const args = [threadId];
186
- const paramIdx = 2;
187
- if (opts?.limit !== undefined && opts?.before !== undefined) {
188
- sql = `SELECT * FROM (
189
- SELECT id, "threadId", role, content, "createdAt", seq
190
- FROM ${this.ns}messages
191
- WHERE "threadId" = $1 AND "createdAt" < $${paramIdx}
192
- ORDER BY "createdAt" DESC, seq DESC
193
- LIMIT $${paramIdx + 1}
194
- ) sub ORDER BY "createdAt" ASC, seq ASC`;
195
- args.push(opts.before.toISOString(), opts.limit);
196
- }
197
- else if (opts?.limit !== undefined) {
198
- sql = `SELECT * FROM (
199
- SELECT id, "threadId", role, content, "createdAt", seq
200
- FROM ${this.ns}messages
201
- WHERE "threadId" = $1
202
- ORDER BY "createdAt" DESC, seq DESC
203
- LIMIT $${paramIdx}
204
- ) sub ORDER BY "createdAt" ASC, seq ASC`;
205
- args.push(opts.limit);
206
- }
207
- else if (opts?.before !== undefined) {
208
- sql = `SELECT id, "threadId", role, content, "createdAt"
209
- FROM ${this.ns}messages
210
- WHERE "threadId" = $1 AND "createdAt" < $${paramIdx}
211
- ORDER BY "createdAt" ASC, seq ASC`;
212
- args.push(opts.before.toISOString());
213
- }
214
- else {
215
- sql = `SELECT id, "threadId", role, content, "createdAt"
216
- FROM ${this.ns}messages
217
- WHERE "threadId" = $1
218
- ORDER BY "createdAt" ASC, seq ASC`;
219
- }
220
- const result = await pool.query(sql, args);
221
- return result.rows
222
- .map((row) => {
223
- const content = typeof row.content === 'string' ? parseJsonSafe(row.content) : row.content;
224
- if (!content || typeof content !== 'object')
225
- return undefined;
226
- const msg = content;
227
- msg.id = row.id;
228
- msg.createdAt = new Date(row.createdAt);
229
- return msg;
230
- })
231
- .filter((m) => m !== undefined);
232
- }
233
- async saveMessages(args) {
234
- const pool = await this.ensureInitialized();
235
- if (args.messages.length === 0)
236
- return;
237
- const client = await pool.connect();
238
- try {
239
- await client.query('BEGIN');
240
- for (const msg of args.messages) {
241
- const createdAt = msg.createdAt instanceof Date ? msg.createdAt.toISOString() : new Date().toISOString();
242
- const role = 'role' in msg ? msg.role : 'custom';
243
- const id = msg.id;
244
- await client.query(`INSERT INTO ${this.ns}messages (id, "threadId", role, content, "createdAt")
245
- VALUES ($1, $2, $3, $4, $5)
246
- ON CONFLICT (id) DO UPDATE SET
247
- "threadId" = EXCLUDED."threadId",
248
- role = EXCLUDED.role,
249
- content = EXCLUDED.content,
250
- "createdAt" = EXCLUDED."createdAt"`, [id, args.threadId, role, JSON.stringify(msg), createdAt]);
251
- }
252
- await client.query('COMMIT');
253
- }
254
- catch (txError) {
255
- await client.query('ROLLBACK');
256
- throw txError;
257
- }
258
- finally {
259
- client.release();
260
- }
261
- }
262
- async deleteMessages(messageIds) {
263
- const pool = await this.ensureInitialized();
264
- if (messageIds.length === 0)
265
- return;
266
- const placeholders = messageIds.map((_, i) => `$${i + 1}`).join(', ');
267
- await pool.query(`DELETE FROM ${this.ns}messages WHERE id IN (${placeholders})`, messageIds);
268
- try {
269
- await pool.query(`DELETE FROM ${this.ns}message_embeddings WHERE id IN (${placeholders})`, messageIds);
270
- }
271
- catch (e) {
272
- if (!(e instanceof Error && /does not exist/i.test(e.message)))
273
- throw e;
274
- }
275
- }
276
- async getWorkingMemory(params) {
277
- const pool = await this.ensureInitialized();
278
- const key = params.scope === 'resource' ? params.resourceId : params.threadId;
279
- const result = await pool.query(`SELECT content FROM ${this.ns}working_memory WHERE key = $1 AND scope = $2`, [key, params.scope]);
280
- if (result.rows.length === 0)
281
- return null;
282
- return result.rows[0].content;
283
- }
284
- async saveWorkingMemory(params, content) {
285
- const pool = await this.ensureInitialized();
286
- const key = params.scope === 'resource' ? params.resourceId : params.threadId;
287
- const now = new Date().toISOString();
288
- await pool.query(`INSERT INTO ${this.ns}working_memory (key, scope, content, "updatedAt")
289
- VALUES ($1, $2, $3, $4)
290
- ON CONFLICT (key, scope) DO UPDATE SET
291
- content = EXCLUDED.content,
292
- "updatedAt" = EXCLUDED."updatedAt"`, [key, params.scope, content, now]);
293
- }
294
- async ensureEmbeddingsTable(pool, dimension) {
295
- if (this.embeddingDimension !== null && this.embeddingDimension !== dimension) {
296
- throw new Error(`Embedding dimension mismatch: table was created with ${this.embeddingDimension} but received ${dimension}. ` +
297
- 'This usually means the embedder model changed. Drop the embeddings table and re-index.');
298
- }
299
- this.embeddingsInitPromise ??= this._initializeEmbeddingsTable(pool, dimension).catch((error) => {
300
- this.embeddingsInitPromise = null;
301
- throw error;
302
- });
303
- await this.embeddingsInitPromise;
304
- }
305
- async _initializeEmbeddingsTable(pool, dimension) {
306
- await pool.query('CREATE EXTENSION IF NOT EXISTS vector');
307
- const existing = await pool.query(`SELECT udt_name FROM information_schema.columns
308
- WHERE table_name = '${this.ns}message_embeddings' AND column_name = 'embedding'`);
309
- if (existing.rows.length > 0) {
310
- const dimCheck = await pool.query(`SELECT atttypmod FROM pg_attribute
311
- WHERE attrelid = '${this.ns}message_embeddings'::regclass AND attname = 'embedding'`);
312
- if (dimCheck.rows.length > 0) {
313
- const existingDim = dimCheck.rows[0].atttypmod;
314
- if (existingDim > 0 && existingDim !== dimension) {
315
- throw new Error(`Embedding dimension mismatch: table was created with ${existingDim} but received ${dimension}. ` +
316
- 'This usually means the embedder model changed. Drop the embeddings table and re-index.');
317
- }
318
- }
319
- }
320
- else {
321
- await pool.query(`CREATE TABLE IF NOT EXISTS ${this.ns}message_embeddings (
322
- id TEXT PRIMARY KEY,
323
- "threadId" TEXT NOT NULL,
324
- "resourceId" TEXT NOT NULL DEFAULT '',
325
- embedding vector(${dimension}) NOT NULL,
326
- "contentText" TEXT NOT NULL,
327
- "createdAt" TIMESTAMPTZ NOT NULL
328
- )`);
329
- await pool.query(`CREATE INDEX IF NOT EXISTS ${this.ns}idx_embeddings_vector
330
- ON ${this.ns}message_embeddings USING hnsw (embedding vector_cosine_ops)`);
331
- }
332
- this.embeddingDimension = dimension;
333
- }
334
- async saveEmbeddings(opts) {
335
- const pool = await this.ensureInitialized();
336
- if (opts.entries.length === 0)
337
- return;
338
- const threadId = opts.threadId ?? '';
339
- const resourceId = opts.resourceId ?? '';
340
- const dimension = opts.entries[0].vector.length;
341
- await this.ensureEmbeddingsTable(pool, dimension);
342
- const client = await pool.connect();
343
- try {
344
- await client.query('BEGIN');
345
- for (const entry of opts.entries) {
346
- const vectorStr = `[${entry.vector.join(',')}]`;
347
- await client.query(`INSERT INTO ${this.ns}message_embeddings (id, "threadId", "resourceId", embedding, "contentText", "createdAt")
348
- VALUES ($1, $2, $3, $4, $5, $6)
349
- ON CONFLICT (id) DO UPDATE SET
350
- "threadId" = EXCLUDED."threadId",
351
- "resourceId" = EXCLUDED."resourceId",
352
- embedding = EXCLUDED.embedding,
353
- "contentText" = EXCLUDED."contentText",
354
- "createdAt" = EXCLUDED."createdAt"`, [entry.id, threadId, resourceId, vectorStr, entry.text, new Date().toISOString()]);
355
- }
356
- await client.query('COMMIT');
357
- }
358
- catch (txError) {
359
- await client.query('ROLLBACK');
360
- throw txError;
361
- }
362
- finally {
363
- client.release();
364
- }
365
- }
366
- async queryEmbeddings(opts) {
367
- const pool = await this.ensureInitialized();
368
- await this.ensureEmbeddingsTable(pool, opts.vector.length);
369
- const vectorStr = `[${opts.vector.join(',')}]`;
370
- let sql = `SELECT id, (embedding <=> $1) as distance
371
- FROM ${this.ns}message_embeddings`;
372
- const params = [vectorStr];
373
- let paramIdx = 2;
374
- const scope = opts.scope ?? 'resource';
375
- if (scope === 'thread' && opts.threadId === undefined) {
376
- throw new Error('threadId is required when scope is thread');
377
- }
378
- if (scope === 'resource' && opts.resourceId === undefined) {
379
- throw new Error('resourceId is required when scope is resource');
380
- }
381
- if (scope === 'thread' && opts.threadId) {
382
- sql += ` WHERE "threadId" = $${paramIdx}`;
383
- params.push(opts.threadId);
384
- paramIdx++;
385
- }
386
- else if (scope === 'resource' && opts.resourceId) {
387
- sql += ` WHERE "resourceId" = $${paramIdx}`;
388
- params.push(opts.resourceId);
389
- paramIdx++;
390
- }
391
- sql += ` ORDER BY distance ASC LIMIT $${paramIdx}`;
392
- params.push(opts.topK);
393
- const result = await pool.query(sql, params);
394
- return result.rows.map((r) => ({
395
- id: r.id,
396
- score: 1 - r.distance,
397
- }));
398
- }
399
- async close() {
400
- if (this.initPromise) {
401
- const pool = await this.initPromise;
402
- await pool.end();
403
- this.initPromise = null;
404
- this.embeddingsInitPromise = null;
405
- this.embeddingDimension = null;
406
- }
407
- }
408
- }
409
- exports.PostgresMemory = PostgresMemory;
410
- //# sourceMappingURL=postgres-memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres-memory.js","sourceRoot":"","sources":["../../src/storage/postgres-memory.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import type { BuiltMemory, Thread } from '../types/sdk/memory';
2
- import type { AgentDbMessage } from '../types/sdk/message';
3
- export interface SqliteMemoryConfig {
4
- url: string;
5
- namespace?: string;
6
- }
7
- export declare class SqliteMemory implements BuiltMemory {
8
- private initPromise;
9
- private embeddingsInitPromise;
10
- private readonly config;
11
- private readonly ns;
12
- constructor(config: SqliteMemoryConfig);
13
- private ensureInitialized;
14
- private _initialize;
15
- getThread(threadId: string): Promise<Thread | null>;
16
- saveThread(thread: Omit<Thread, 'createdAt' | 'updatedAt'>): Promise<Thread>;
17
- deleteThread(threadId: string): Promise<void>;
18
- getMessages(threadId: string, opts?: {
19
- limit?: number;
20
- before?: Date;
21
- }): Promise<AgentDbMessage[]>;
22
- saveMessages(args: {
23
- threadId: string;
24
- resourceId?: string;
25
- messages: AgentDbMessage[];
26
- }): Promise<void>;
27
- deleteMessages(messageIds: string[]): Promise<void>;
28
- getWorkingMemory(params: {
29
- threadId: string;
30
- resourceId?: string;
31
- }): Promise<string | null>;
32
- saveWorkingMemory(params: {
33
- threadId: string;
34
- resourceId?: string;
35
- }, content: string): Promise<void>;
36
- private embeddingDimension;
37
- private ensureEmbeddingsTable;
38
- private _initializeEmbeddingsTable;
39
- saveEmbeddings(opts: {
40
- scope?: 'thread' | 'resource';
41
- threadId?: string;
42
- resourceId?: string;
43
- entries: Array<{
44
- id: string;
45
- vector: number[];
46
- text: string;
47
- model: string;
48
- }>;
49
- }): Promise<void>;
50
- queryEmbeddings(opts: {
51
- scope?: 'thread' | 'resource';
52
- threadId?: string;
53
- resourceId?: string;
54
- vector: number[];
55
- topK: number;
56
- }): Promise<Array<{
57
- id: string;
58
- score: number;
59
- }>>;
60
- }