family-ai-agent 1.0.10 → 1.0.11
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/cli/index.js +1 -1
- package/dist/memory/conversation/index.d.ts.map +1 -1
- package/dist/memory/conversation/index.js +17 -14
- package/dist/memory/conversation/index.js.map +1 -1
- package/dist/memory/knowledge-base/index.d.ts.map +1 -1
- package/dist/memory/knowledge-base/index.js +13 -8
- package/dist/memory/knowledge-base/index.js.map +1 -1
- package/dist/memory/longterm/vector-store.d.ts.map +1 -1
- package/dist/memory/longterm/vector-store.js +13 -8
- package/dist/memory/longterm/vector-store.js.map +1 -1
- package/dist/safety/audit-logger.d.ts.map +1 -1
- package/dist/safety/audit-logger.js +8 -6
- package/dist/safety/audit-logger.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/index.ts +1 -1
- package/src/memory/conversation/index.ts +17 -14
- package/src/memory/knowledge-base/index.ts +13 -8
- package/src/memory/longterm/vector-store.ts +13 -8
- package/src/safety/audit-logger.ts +8 -6
package/dist/cli/index.js
CHANGED
|
@@ -260,7 +260,7 @@ async function runQuery(query) {
|
|
|
260
260
|
program
|
|
261
261
|
.name('family-ai-agent')
|
|
262
262
|
.description('Family AI Agent - Your AI Family for All Tasks')
|
|
263
|
-
.version('1.0.
|
|
263
|
+
.version('1.0.11');
|
|
264
264
|
// Add config command group
|
|
265
265
|
program.addCommand(createConfigCommand());
|
|
266
266
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/conversation/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/conversation/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAM5D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,kBAAkB;IAEvB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BtE,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAmC/D,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS3E,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EACrC,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,OAAO,CAAC,MAAM,CAAC;IA+BZ,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAChD,OAAO,CAAC,OAAO,EAAE,CAAC;IAqCf,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkBtE,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,OAAO,EAAE,CAAC;IAoCf,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBrD,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAChD,OAAO,CAAC,YAAY,EAAE,CAAC;CAiC3B;AAKD,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -2,23 +2,25 @@ import { query } from '../../database/client.js';
|
|
|
2
2
|
import { createLogger, logMemoryOperation } from '../../utils/logger.js';
|
|
3
3
|
import { MemoryError } from '../../utils/errors.js';
|
|
4
4
|
import { HumanMessage, AIMessage, SystemMessage } from '@langchain/core/messages';
|
|
5
|
+
import { randomUUID } from 'crypto';
|
|
5
6
|
const logger = createLogger('ConversationMemory');
|
|
6
7
|
export class ConversationMemory {
|
|
7
8
|
// Create a new conversation
|
|
8
9
|
async createConversation(threadId, userId) {
|
|
9
10
|
try {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const conversationId = randomUUID();
|
|
12
|
+
const result = await query(`INSERT INTO conversations (id, thread_id, user_id)
|
|
13
|
+
VALUES ($1, $2, $3)
|
|
14
|
+
RETURNING id`, [conversationId, threadId, userId ?? null]);
|
|
15
|
+
const returnedId = result.rows[0]?.id;
|
|
16
|
+
if (!returnedId) {
|
|
15
17
|
throw new MemoryError('Failed to create conversation');
|
|
16
18
|
}
|
|
17
19
|
logMemoryOperation('write', 'conversation', {
|
|
18
|
-
conversationId,
|
|
20
|
+
conversationId: returnedId,
|
|
19
21
|
threadId,
|
|
20
22
|
});
|
|
21
|
-
return
|
|
23
|
+
return returnedId;
|
|
22
24
|
}
|
|
23
25
|
catch (error) {
|
|
24
26
|
logger.error('Failed to create conversation', { error });
|
|
@@ -58,16 +60,17 @@ export class ConversationMemory {
|
|
|
58
60
|
// Add message to conversation
|
|
59
61
|
async addMessage(conversationId, role, content, metadata = {}) {
|
|
60
62
|
try {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const messageId = randomUUID();
|
|
64
|
+
const result = await query(`INSERT INTO messages (id, conversation_id, role, content, metadata)
|
|
65
|
+
VALUES ($1, $2, $3, $4, $5)
|
|
66
|
+
RETURNING id`, [messageId, conversationId, role, content, JSON.stringify(metadata)]);
|
|
67
|
+
const returnedId = result.rows[0]?.id;
|
|
68
|
+
if (!returnedId) {
|
|
66
69
|
throw new MemoryError('Failed to add message');
|
|
67
70
|
}
|
|
68
71
|
// Update conversation timestamp
|
|
69
|
-
await query('UPDATE conversations SET updated_at =
|
|
70
|
-
return
|
|
72
|
+
await query('UPDATE conversations SET updated_at = CURRENT_TIMESTAMP WHERE id = $1', [conversationId]);
|
|
73
|
+
return returnedId;
|
|
71
74
|
}
|
|
72
75
|
catch (error) {
|
|
73
76
|
logger.error('Failed to add message', { error });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/conversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/conversation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/knowledge-base/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/knowledge-base/index.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,YAAY,CAIjB;IAGG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GACL,OAAO,CAAC,MAAM,CAAC;IA2EZ,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB,GACL,OAAO,CAAC,YAAY,EAAE,CAAC;IAmEpB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAyCjD,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAChD,OAAO,CAAC,QAAQ,EAAE,CAAC;IAuChB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgC/D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAcxD;AAKD,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
1
2
|
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
|
|
2
3
|
import { query, transaction } from '../../database/client.js';
|
|
3
4
|
import { getOpenRouterClient } from '../../llm/openrouter-client.js';
|
|
@@ -25,9 +26,11 @@ export class KnowledgeBase {
|
|
|
25
26
|
// Store document and chunks in transaction
|
|
26
27
|
const documentId = await transaction(async (client) => {
|
|
27
28
|
// Insert document
|
|
28
|
-
const
|
|
29
|
-
|
|
29
|
+
const docId = randomUUID();
|
|
30
|
+
const docResult = await client.query(`INSERT INTO documents (id, user_id, filename, file_type, file_size, content, metadata)
|
|
31
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
30
32
|
RETURNING id`, [
|
|
33
|
+
docId,
|
|
31
34
|
options.userId ?? null,
|
|
32
35
|
filename,
|
|
33
36
|
options.fileType ?? null,
|
|
@@ -35,24 +38,26 @@ export class KnowledgeBase {
|
|
|
35
38
|
content,
|
|
36
39
|
JSON.stringify(options.metadata ?? {}),
|
|
37
40
|
]);
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
41
|
+
const returnedDocId = docResult.rows[0]?.id;
|
|
42
|
+
if (!returnedDocId) {
|
|
40
43
|
throw new MemoryError('Failed to insert document');
|
|
41
44
|
}
|
|
42
45
|
// Insert chunks with embeddings
|
|
43
46
|
for (let i = 0; i < chunks.length; i++) {
|
|
44
47
|
const chunk = chunks[i];
|
|
45
48
|
const embedding = embeddings[i];
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
const chunkId = randomUUID();
|
|
50
|
+
await client.query(`INSERT INTO document_chunks (id, document_id, chunk_index, content, embedding, metadata)
|
|
51
|
+
VALUES ($1, $2, $3, $4, $5, $6)`, [
|
|
52
|
+
chunkId,
|
|
53
|
+
returnedDocId,
|
|
49
54
|
i,
|
|
50
55
|
chunk,
|
|
51
56
|
`[${embedding.join(',')}]`,
|
|
52
57
|
JSON.stringify({ chunkIndex: i, totalChunks: chunks.length }),
|
|
53
58
|
]);
|
|
54
59
|
}
|
|
55
|
-
return
|
|
60
|
+
return returnedDocId;
|
|
56
61
|
});
|
|
57
62
|
logMemoryOperation('write', 'knowledge_base', {
|
|
58
63
|
documentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/knowledge-base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AA8B7C,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAC/B,YAAY,GAAG,IAAI,8BAA8B,CAAC;QACxD,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;KAC1C,CAAC,CAAC;IAEH,uCAAuC;IACvC,KAAK,CAAC,WAAW,CACf,OAAe,EACf,QAAgB,EAChB,UAKI,EAAE;QAEN,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACzC,QAAQ;gBACR,UAAU,EAAE,MAAM,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEnD,2CAA2C;YAC3C,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACpD,kBAAkB;gBAClB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAClC;;wBAEc,EACd;oBACE,OAAO,CAAC,MAAM,IAAI,IAAI;oBACtB,QAAQ;oBACR,OAAO,CAAC,QAAQ,IAAI,IAAI;oBACxB,OAAO,CAAC,QAAQ,IAAI,IAAI;oBACxB,OAAO;oBACP,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;iBACvC,CACF,CAAC;gBAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/knowledge-base/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../../src/memory/longterm/vector-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../../src/memory/longterm/vector-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAyB;IAGjC,KAAK,CACT,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GACL,OAAO,CAAC,MAAM,CAAC;IA4CZ,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC;IAmFvB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyC5C,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAO,GACxE,OAAO,CAAC,IAAI,CAAC;IA6BV,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajC,SAAS,CACb,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC,GACD,OAAO,CAAC,MAAM,EAAE,CAAC;IAqDd,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAqC5E;AAKD,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
1
2
|
import { query, transaction } from '../../database/client.js';
|
|
2
3
|
import { getOpenRouterClient } from '../../llm/openrouter-client.js';
|
|
3
4
|
import { createLogger, logMemoryOperation } from '../../utils/logger.js';
|
|
@@ -11,10 +12,12 @@ export class VectorStore {
|
|
|
11
12
|
// Generate embedding
|
|
12
13
|
const embedding = await this.client.embedQuery(content);
|
|
13
14
|
// Insert into database
|
|
15
|
+
const memoryId = randomUUID();
|
|
14
16
|
const result = await query(`INSERT INTO long_term_memories
|
|
15
|
-
(user_id, memory_type, content, embedding, importance, metadata)
|
|
16
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
17
|
+
(id, user_id, memory_type, content, embedding, importance, metadata)
|
|
18
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
17
19
|
RETURNING id`, [
|
|
20
|
+
memoryId,
|
|
18
21
|
options.userId ?? null,
|
|
19
22
|
memoryType,
|
|
20
23
|
content,
|
|
@@ -22,16 +25,16 @@ export class VectorStore {
|
|
|
22
25
|
options.importance ?? 0.5,
|
|
23
26
|
JSON.stringify(options.metadata ?? {}),
|
|
24
27
|
]);
|
|
25
|
-
const
|
|
26
|
-
if (!
|
|
28
|
+
const returnedId = result.rows[0]?.id;
|
|
29
|
+
if (!returnedId) {
|
|
27
30
|
throw new MemoryError('Failed to store memory');
|
|
28
31
|
}
|
|
29
32
|
logMemoryOperation('write', 'long_term', {
|
|
30
|
-
memoryId,
|
|
33
|
+
memoryId: returnedId,
|
|
31
34
|
memoryType,
|
|
32
35
|
contentLength: content.length,
|
|
33
36
|
});
|
|
34
|
-
return
|
|
37
|
+
return returnedId;
|
|
35
38
|
}
|
|
36
39
|
catch (error) {
|
|
37
40
|
logger.error('Failed to store memory', { error });
|
|
@@ -164,10 +167,12 @@ export class VectorStore {
|
|
|
164
167
|
for (let i = 0; i < entries.length; i++) {
|
|
165
168
|
const entry = entries[i];
|
|
166
169
|
const embedding = embeddings[i];
|
|
170
|
+
const memoryId = randomUUID();
|
|
167
171
|
const result = await client.query(`INSERT INTO long_term_memories
|
|
168
|
-
(user_id, memory_type, content, embedding, importance, metadata)
|
|
169
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
172
|
+
(id, user_id, memory_type, content, embedding, importance, metadata)
|
|
173
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
170
174
|
RETURNING id`, [
|
|
175
|
+
memoryId,
|
|
171
176
|
entry.userId ?? null,
|
|
172
177
|
entry.memoryType,
|
|
173
178
|
entry.content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/memory/longterm/vector-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAsB3C,MAAM,OAAO,WAAW;IACd,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAEvC,gCAAgC;IAChC,KAAK,CAAC,KAAK,CACT,OAAe,EACf,UAAsB,EACtB,UAII,EAAE;QAEN,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAExD,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,KAAK,CACxB;;;sBAGc,EACd;gBACE,OAAO,CAAC,MAAM,IAAI,IAAI;gBACtB,UAAU;gBACV,OAAO;gBACP,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBAC1B,OAAO,CAAC,UAAU,IAAI,GAAG;gBACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;aACvC,CACF,CAAC;YAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../src/memory/longterm/vector-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-logger.d.ts","sourceRoot":"","sources":["../../src/safety/audit-logger.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,OAAO,GACP,SAAS,GACT,aAAa,CAAC;AAElB,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAU;;IAOzB,OAAO,CAAC,WAAW;IAKb,GAAG,CACP,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KACrB,GACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-logger.d.ts","sourceRoot":"","sources":["../../src/safety/audit-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createHash } from 'crypto';
|
|
1
|
+
import { createHash, randomUUID } from 'crypto';
|
|
2
2
|
import { query } from '../database/client.js';
|
|
3
3
|
import { config } from '../config/index.js';
|
|
4
4
|
import { createLogger } from '../utils/logger.js';
|
|
@@ -18,10 +18,12 @@ export class AuditLogger {
|
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
20
|
try {
|
|
21
|
+
const logId = randomUUID();
|
|
21
22
|
const result = await query(`INSERT INTO audit_logs
|
|
22
|
-
(user_id, agent_id, action_type, action_details, input_hash, output_hash, status, error_message, execution_time_ms)
|
|
23
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
|
23
|
+
(id, user_id, agent_id, action_type, action_details, input_hash, output_hash, status, error_message, execution_time_ms)
|
|
24
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
24
25
|
RETURNING id`, [
|
|
26
|
+
logId,
|
|
25
27
|
options.userId ?? null,
|
|
26
28
|
options.agentId ?? null,
|
|
27
29
|
actionType,
|
|
@@ -32,9 +34,9 @@ export class AuditLogger {
|
|
|
32
34
|
options.error ?? null,
|
|
33
35
|
options.executionTimeMs ?? null,
|
|
34
36
|
]);
|
|
35
|
-
const
|
|
36
|
-
logger.debug('Audit log created', { logId, actionType });
|
|
37
|
-
return
|
|
37
|
+
const returnedId = result.rows[0]?.id;
|
|
38
|
+
logger.debug('Audit log created', { logId: returnedId, actionType });
|
|
39
|
+
return returnedId ?? null;
|
|
38
40
|
}
|
|
39
41
|
catch (error) {
|
|
40
42
|
logger.error('Failed to create audit log', { error, actionType });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-logger.js","sourceRoot":"","sources":["../../src/safety/audit-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-logger.js","sourceRoot":"","sources":["../../src/safety/audit-logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/index.ts
CHANGED
|
@@ -320,7 +320,7 @@ async function runQuery(query: string): Promise<void> {
|
|
|
320
320
|
program
|
|
321
321
|
.name('family-ai-agent')
|
|
322
322
|
.description('Family AI Agent - Your AI Family for All Tasks')
|
|
323
|
-
.version('1.0.
|
|
323
|
+
.version('1.0.11');
|
|
324
324
|
|
|
325
325
|
// Add config command group
|
|
326
326
|
program.addCommand(createConfigCommand());
|
|
@@ -3,6 +3,7 @@ import { createLogger, logMemoryOperation } from '../../utils/logger.js';
|
|
|
3
3
|
import { MemoryError } from '../../utils/errors.js';
|
|
4
4
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
5
5
|
import { HumanMessage, AIMessage, SystemMessage } from '@langchain/core/messages';
|
|
6
|
+
import { randomUUID } from 'crypto';
|
|
6
7
|
|
|
7
8
|
const logger = createLogger('ConversationMemory');
|
|
8
9
|
|
|
@@ -27,24 +28,25 @@ export class ConversationMemory {
|
|
|
27
28
|
// Create a new conversation
|
|
28
29
|
async createConversation(threadId: string, userId?: string): Promise<string> {
|
|
29
30
|
try {
|
|
31
|
+
const conversationId = randomUUID();
|
|
30
32
|
const result = await query<{ id: string }>(
|
|
31
|
-
`INSERT INTO conversations (thread_id, user_id)
|
|
32
|
-
VALUES ($1, $2)
|
|
33
|
+
`INSERT INTO conversations (id, thread_id, user_id)
|
|
34
|
+
VALUES ($1, $2, $3)
|
|
33
35
|
RETURNING id`,
|
|
34
|
-
[threadId, userId ?? null]
|
|
36
|
+
[conversationId, threadId, userId ?? null]
|
|
35
37
|
);
|
|
36
38
|
|
|
37
|
-
const
|
|
38
|
-
if (!
|
|
39
|
+
const returnedId = result.rows[0]?.id;
|
|
40
|
+
if (!returnedId) {
|
|
39
41
|
throw new MemoryError('Failed to create conversation');
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
logMemoryOperation('write', 'conversation', {
|
|
43
|
-
conversationId,
|
|
45
|
+
conversationId: returnedId,
|
|
44
46
|
threadId,
|
|
45
47
|
});
|
|
46
48
|
|
|
47
|
-
return
|
|
49
|
+
return returnedId;
|
|
48
50
|
} catch (error) {
|
|
49
51
|
logger.error('Failed to create conversation', { error });
|
|
50
52
|
throw new MemoryError(
|
|
@@ -105,25 +107,26 @@ export class ConversationMemory {
|
|
|
105
107
|
metadata: Record<string, unknown> = {}
|
|
106
108
|
): Promise<string> {
|
|
107
109
|
try {
|
|
110
|
+
const messageId = randomUUID();
|
|
108
111
|
const result = await query<{ id: string }>(
|
|
109
|
-
`INSERT INTO messages (conversation_id, role, content, metadata)
|
|
110
|
-
VALUES ($1, $2, $3, $4)
|
|
112
|
+
`INSERT INTO messages (id, conversation_id, role, content, metadata)
|
|
113
|
+
VALUES ($1, $2, $3, $4, $5)
|
|
111
114
|
RETURNING id`,
|
|
112
|
-
[conversationId, role, content, JSON.stringify(metadata)]
|
|
115
|
+
[messageId, conversationId, role, content, JSON.stringify(metadata)]
|
|
113
116
|
);
|
|
114
117
|
|
|
115
|
-
const
|
|
116
|
-
if (!
|
|
118
|
+
const returnedId = result.rows[0]?.id;
|
|
119
|
+
if (!returnedId) {
|
|
117
120
|
throw new MemoryError('Failed to add message');
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
// Update conversation timestamp
|
|
121
124
|
await query(
|
|
122
|
-
'UPDATE conversations SET updated_at =
|
|
125
|
+
'UPDATE conversations SET updated_at = CURRENT_TIMESTAMP WHERE id = $1',
|
|
123
126
|
[conversationId]
|
|
124
127
|
);
|
|
125
128
|
|
|
126
|
-
return
|
|
129
|
+
return returnedId;
|
|
127
130
|
} catch (error) {
|
|
128
131
|
logger.error('Failed to add message', { error });
|
|
129
132
|
throw new MemoryError(
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
1
2
|
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
|
|
2
3
|
import { query, transaction } from '../../database/client.js';
|
|
3
4
|
import { getOpenRouterClient } from '../../llm/openrouter-client.js';
|
|
@@ -67,11 +68,13 @@ export class KnowledgeBase {
|
|
|
67
68
|
// Store document and chunks in transaction
|
|
68
69
|
const documentId = await transaction(async (client) => {
|
|
69
70
|
// Insert document
|
|
71
|
+
const docId = randomUUID();
|
|
70
72
|
const docResult = await client.query<{ id: string }>(
|
|
71
|
-
`INSERT INTO documents (user_id, filename, file_type, file_size, content, metadata)
|
|
72
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
73
|
+
`INSERT INTO documents (id, user_id, filename, file_type, file_size, content, metadata)
|
|
74
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
73
75
|
RETURNING id`,
|
|
74
76
|
[
|
|
77
|
+
docId,
|
|
75
78
|
options.userId ?? null,
|
|
76
79
|
filename,
|
|
77
80
|
options.fileType ?? null,
|
|
@@ -81,8 +84,8 @@ export class KnowledgeBase {
|
|
|
81
84
|
]
|
|
82
85
|
);
|
|
83
86
|
|
|
84
|
-
const
|
|
85
|
-
if (!
|
|
87
|
+
const returnedDocId = docResult.rows[0]?.id;
|
|
88
|
+
if (!returnedDocId) {
|
|
86
89
|
throw new MemoryError('Failed to insert document');
|
|
87
90
|
}
|
|
88
91
|
|
|
@@ -90,12 +93,14 @@ export class KnowledgeBase {
|
|
|
90
93
|
for (let i = 0; i < chunks.length; i++) {
|
|
91
94
|
const chunk = chunks[i]!;
|
|
92
95
|
const embedding = embeddings[i]!;
|
|
96
|
+
const chunkId = randomUUID();
|
|
93
97
|
|
|
94
98
|
await client.query(
|
|
95
|
-
`INSERT INTO document_chunks (document_id, chunk_index, content, embedding, metadata)
|
|
96
|
-
VALUES ($1, $2, $3, $4, $5)`,
|
|
99
|
+
`INSERT INTO document_chunks (id, document_id, chunk_index, content, embedding, metadata)
|
|
100
|
+
VALUES ($1, $2, $3, $4, $5, $6)`,
|
|
97
101
|
[
|
|
98
|
-
|
|
102
|
+
chunkId,
|
|
103
|
+
returnedDocId,
|
|
99
104
|
i,
|
|
100
105
|
chunk,
|
|
101
106
|
`[${embedding.join(',')}]`,
|
|
@@ -104,7 +109,7 @@ export class KnowledgeBase {
|
|
|
104
109
|
);
|
|
105
110
|
}
|
|
106
111
|
|
|
107
|
-
return
|
|
112
|
+
return returnedDocId;
|
|
108
113
|
});
|
|
109
114
|
|
|
110
115
|
logMemoryOperation('write', 'knowledge_base', {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
1
2
|
import { query, transaction } from '../../database/client.js';
|
|
2
3
|
import { getOpenRouterClient } from '../../llm/openrouter-client.js';
|
|
3
4
|
import { createLogger, logMemoryOperation } from '../../utils/logger.js';
|
|
@@ -44,12 +45,14 @@ export class VectorStore {
|
|
|
44
45
|
const embedding = await this.client.embedQuery(content);
|
|
45
46
|
|
|
46
47
|
// Insert into database
|
|
48
|
+
const memoryId = randomUUID();
|
|
47
49
|
const result = await query<{ id: string }>(
|
|
48
50
|
`INSERT INTO long_term_memories
|
|
49
|
-
(user_id, memory_type, content, embedding, importance, metadata)
|
|
50
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
51
|
+
(id, user_id, memory_type, content, embedding, importance, metadata)
|
|
52
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
51
53
|
RETURNING id`,
|
|
52
54
|
[
|
|
55
|
+
memoryId,
|
|
53
56
|
options.userId ?? null,
|
|
54
57
|
memoryType,
|
|
55
58
|
content,
|
|
@@ -59,18 +62,18 @@ export class VectorStore {
|
|
|
59
62
|
]
|
|
60
63
|
);
|
|
61
64
|
|
|
62
|
-
const
|
|
63
|
-
if (!
|
|
65
|
+
const returnedId = result.rows[0]?.id;
|
|
66
|
+
if (!returnedId) {
|
|
64
67
|
throw new MemoryError('Failed to store memory');
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
logMemoryOperation('write', 'long_term', {
|
|
68
|
-
memoryId,
|
|
71
|
+
memoryId: returnedId,
|
|
69
72
|
memoryType,
|
|
70
73
|
contentLength: content.length,
|
|
71
74
|
});
|
|
72
75
|
|
|
73
|
-
return
|
|
76
|
+
return returnedId;
|
|
74
77
|
} catch (error) {
|
|
75
78
|
logger.error('Failed to store memory', { error });
|
|
76
79
|
throw new MemoryError(
|
|
@@ -273,13 +276,15 @@ export class VectorStore {
|
|
|
273
276
|
for (let i = 0; i < entries.length; i++) {
|
|
274
277
|
const entry = entries[i]!;
|
|
275
278
|
const embedding = embeddings[i]!;
|
|
279
|
+
const memoryId = randomUUID();
|
|
276
280
|
|
|
277
281
|
const result = await client.query<{ id: string }>(
|
|
278
282
|
`INSERT INTO long_term_memories
|
|
279
|
-
(user_id, memory_type, content, embedding, importance, metadata)
|
|
280
|
-
VALUES ($1, $2, $3, $4, $5, $6)
|
|
283
|
+
(id, user_id, memory_type, content, embedding, importance, metadata)
|
|
284
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
281
285
|
RETURNING id`,
|
|
282
286
|
[
|
|
287
|
+
memoryId,
|
|
283
288
|
entry.userId ?? null,
|
|
284
289
|
entry.memoryType,
|
|
285
290
|
entry.content,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createHash } from 'crypto';
|
|
1
|
+
import { createHash, randomUUID } from 'crypto';
|
|
2
2
|
import { query } from '../database/client.js';
|
|
3
3
|
import { config } from '../config/index.js';
|
|
4
4
|
import { createLogger } from '../utils/logger.js';
|
|
@@ -61,12 +61,14 @@ export class AuditLogger {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
try {
|
|
64
|
+
const logId = randomUUID();
|
|
64
65
|
const result = await query<{ id: string }>(
|
|
65
66
|
`INSERT INTO audit_logs
|
|
66
|
-
(user_id, agent_id, action_type, action_details, input_hash, output_hash, status, error_message, execution_time_ms)
|
|
67
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
|
67
|
+
(id, user_id, agent_id, action_type, action_details, input_hash, output_hash, status, error_message, execution_time_ms)
|
|
68
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
68
69
|
RETURNING id`,
|
|
69
70
|
[
|
|
71
|
+
logId,
|
|
70
72
|
options.userId ?? null,
|
|
71
73
|
options.agentId ?? null,
|
|
72
74
|
actionType,
|
|
@@ -79,9 +81,9 @@ export class AuditLogger {
|
|
|
79
81
|
]
|
|
80
82
|
);
|
|
81
83
|
|
|
82
|
-
const
|
|
83
|
-
logger.debug('Audit log created', { logId, actionType });
|
|
84
|
-
return
|
|
84
|
+
const returnedId = result.rows[0]?.id;
|
|
85
|
+
logger.debug('Audit log created', { logId: returnedId, actionType });
|
|
86
|
+
return returnedId ?? null;
|
|
85
87
|
} catch (error) {
|
|
86
88
|
logger.error('Failed to create audit log', { error, actionType });
|
|
87
89
|
// Don't throw - audit logging should not break the main flow
|