@luanpoppe/ai 1.1.2 → 1.1.3
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/ai.d.ts +1 -1
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +3 -3
- package/dist/ai.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/langchain/memory.d.ts +96 -0
- package/dist/langchain/memory.d.ts.map +1 -0
- package/dist/langchain/memory.js +268 -0
- package/dist/langchain/memory.js.map +1 -0
- package/package.json +1 -1
- package/src/ai.ts +306 -306
- package/src/index.ts +2 -2
- package/src/langchain/{checkpointers.ts → memory.ts} +48 -22
- package/tests/e2e/ai.test.ts +52 -0
- package/tests/unit/index.test.ts +3 -3
- package/tests/unit/langchain/checkpointers.test.ts +72 -5
package/dist/ai.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
import type { AIAgent } from "./@types/agent";
|
|
3
|
-
import { AIMemory, type BaseCheckpointSaver, type MemoryConfig } from "./langchain/
|
|
3
|
+
import { AIMemory, type BaseCheckpointSaver, type MemoryConfig } from "./langchain/memory";
|
|
4
4
|
import type { AIModelNames } from "./@types/model-names";
|
|
5
5
|
import type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn } from "./@types/ai-call";
|
|
6
6
|
export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn, } from "./@types/ai-call";
|
package/dist/ai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,QAAQ,EACR,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,QAAQ,EACR,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4GAA4G;IAC5G,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,iHAAiH;IACjH,MAAM,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IACjC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF,qBAAa,EAAE;IAqBD,OAAO,CAAC,MAAM;IApB1B,OAAO,CAAC,OAAO,CAAuB;IAEtC;;;;;OAKG;IACH,IAAI,MAAM,IAAI,QAAQ,CAOrB;IAED,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,mBAAmB,CAA2C;gBAElD,MAAM,EAAE,aAAa;YAY3B,eAAe;IAY7B,OAAO,CAAC,8BAA8B;YAWxB,0BAA0B;IAyBlC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IAiCxC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC9C,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACtC,4BAA4B,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC;IA+B3D;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAoC1B,WAAW,CACf,MAAM,EAAE,YAAY,EACpB,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,GACrC,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAc9B,OAAO,CAAC,QAAQ;IAiChB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,mBAAmB;CAU5B"}
|
package/dist/ai.js
CHANGED
|
@@ -7,7 +7,7 @@ exports.AI = void 0;
|
|
|
7
7
|
const models_1 = require("./langchain/models");
|
|
8
8
|
const zod_1 = __importDefault(require("zod"));
|
|
9
9
|
const langchain_1 = require("langchain");
|
|
10
|
-
const
|
|
10
|
+
const memory_1 = require("./langchain/memory");
|
|
11
11
|
class AI {
|
|
12
12
|
config;
|
|
13
13
|
_memory;
|
|
@@ -32,9 +32,9 @@ class AI {
|
|
|
32
32
|
}
|
|
33
33
|
if (config.memory) {
|
|
34
34
|
this._memory =
|
|
35
|
-
config.memory instanceof
|
|
35
|
+
config.memory instanceof memory_1.AIMemory
|
|
36
36
|
? config.memory
|
|
37
|
-
: new
|
|
37
|
+
: new memory_1.AIMemory(config.memory);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
async getCheckpointer() {
|
package/dist/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA8D;AAC9D,8CAAoB;AACpB,yCAA8D;AAG9D
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallSt
|
|
|
7
7
|
export { AIModels } from "./langchain/models";
|
|
8
8
|
export { AIMessages } from "./langchain/messages";
|
|
9
9
|
export { AITools } from "./langchain/tools";
|
|
10
|
-
export { AIMemory } from "./langchain/
|
|
11
|
-
export type { MemoryConfig, BaseCheckpointSaver, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "./langchain/
|
|
10
|
+
export { AIMemory } from "./langchain/memory";
|
|
11
|
+
export type { MemoryConfig, BaseCheckpointSaver, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "./langchain/memory";
|
|
12
12
|
export { AIAudioTranscription } from "./langchain/audio-transcription";
|
|
13
13
|
export { AudioUtils } from "./utils/audio-utils";
|
|
14
14
|
export type { AudioBuffer, AudioMimeType } from "./@types/audio";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,CAAC;AACd,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,CAAC;AACd,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EACV,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAGzC,2DAA2D;AAC3D,OAAO,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC;AAC3B,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAC/C,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAC/C,qFAAqF;AACrF,MAAM,MAAM,mCAAmC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IACnE,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAClC,qFAAqF;AACrF,MAAM,MAAM,mCAAmC,CAAC,CAAC,IAC/C,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAClC,iEAAiE;AACjE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,mEAAmE;AACnE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvE,gEAAgE;AAChE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,6EAA6E;AAC7E,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,8 @@ var messages_1 = require("./langchain/messages");
|
|
|
10
10
|
Object.defineProperty(exports, "AIMessages", { enumerable: true, get: function () { return messages_1.AIMessages; } });
|
|
11
11
|
var tools_1 = require("./langchain/tools");
|
|
12
12
|
Object.defineProperty(exports, "AITools", { enumerable: true, get: function () { return tools_1.AITools; } });
|
|
13
|
-
var
|
|
14
|
-
Object.defineProperty(exports, "AIMemory", { enumerable: true, get: function () { return
|
|
13
|
+
var memory_1 = require("./langchain/memory");
|
|
14
|
+
Object.defineProperty(exports, "AIMemory", { enumerable: true, get: function () { return memory_1.AIMemory; } });
|
|
15
15
|
var audio_transcription_1 = require("./langchain/audio-transcription");
|
|
16
16
|
Object.defineProperty(exports, "AIAudioTranscription", { enumerable: true, get: function () { return audio_transcription_1.AIAudioTranscription; } });
|
|
17
17
|
var audio_utils_1 = require("./utils/audio-utils");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6BAA0B;AAQjB,mFARA,OAAE,OAQA;AAwCI,0FAhDN,OAAE,OAgDa;AA/BxB,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AACjB,iDAAkD;AAAzC,sGAAA,UAAU,OAAA;AACnB,2CAA4C;AAAnC,gGAAA,OAAO,OAAA;AAChB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6BAA0B;AAQjB,mFARA,OAAE,OAQA;AAwCI,0FAhDN,OAAE,OAgDa;AA/BxB,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AACjB,iDAAkD;AAAzC,sGAAA,UAAU,OAAA;AACnB,2CAA4C;AAAnC,gGAAA,OAAO,OAAA;AAChB,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AAcjB,uEAAuE;AAA9D,2HAAA,oBAAoB,OAAA;AAC7B,mDAAiD;AAAxC,yGAAA,UAAU,OAAA;AAwBnB,iEAAiE;AACjE,6CAAiE;AAAxD,yGAAA,QAAQ,OAAmB;AACpC,mEAAmE;AACnE,iDAAuE;AAA9D,6GAAA,UAAU,OAAqB;AACxC,gEAAgE;AAChE,2CAA8D;AAArD,uGAAA,OAAO,OAAkB;AAClC,6EAA6E;AAC7E,uEAAsG;AAA7F,kIAAA,oBAAoB,OAA+B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { BaseCheckpointSaver, type StateSnapshot } from "@langchain/langgraph";
|
|
2
|
+
import type { GetHistoryResult, GraphWithStateHistory, MemoryConfig } from "../@types/checkpointers";
|
|
3
|
+
export type { BaseCheckpointSaver };
|
|
4
|
+
export type { MemoryConfig, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "../@types/checkpointers";
|
|
5
|
+
/**
|
|
6
|
+
* Classe para gerenciar memória e checkpointers de conversas LangGraph.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Memória (desenvolvimento)
|
|
10
|
+
* const memory = new AIMemory({ type: "memory" });
|
|
11
|
+
* const checkpointer = await memory.getCheckpointer();
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // SQLite
|
|
15
|
+
* const memory = new AIMemory({ type: "sqlite", connectionString: "./data.db" });
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Acessar histórico de conversa
|
|
19
|
+
* const { agent } = await ai.getRawAgent({ ... });
|
|
20
|
+
* const history = await memory.getHistory("thread-1", agent);
|
|
21
|
+
* const messages = history[0]?.values?.messages ?? [];
|
|
22
|
+
*/
|
|
23
|
+
export declare class AIMemory {
|
|
24
|
+
private config;
|
|
25
|
+
private checkpointer;
|
|
26
|
+
private checkpointerPromise;
|
|
27
|
+
private agent;
|
|
28
|
+
constructor(config: MemoryConfig, agent?: GraphWithStateHistory);
|
|
29
|
+
/**
|
|
30
|
+
* Define o agent/grafo para uso em getHistory quando graph não é passado.
|
|
31
|
+
* Chamado automaticamente por AI.getRawAgent() quando a instância está vinculada ao AI.
|
|
32
|
+
*/
|
|
33
|
+
setAgent(agent: GraphWithStateHistory): void;
|
|
34
|
+
/**
|
|
35
|
+
* Cria ou retorna a instância de checkpointer baseada na configuração.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const cp = await memory.getCheckpointer();
|
|
39
|
+
* const graph = workflow.compile({ checkpointer: cp });
|
|
40
|
+
*/
|
|
41
|
+
getCheckpointer(): Promise<BaseCheckpointSaver>;
|
|
42
|
+
/**
|
|
43
|
+
* Retorna o histórico de checkpoints e lista de mensagens de uma thread.
|
|
44
|
+
*
|
|
45
|
+
* @param threadId - ID da thread/conversa
|
|
46
|
+
* @param graph - Opcional. Grafo compilado com checkpointer. Se não passado, usa o agent
|
|
47
|
+
* definido no construtor ou via setAgent. Se nenhum disponível, usa o checkpointer.
|
|
48
|
+
* @returns Objeto com fullHistory (checkpoints) e messages (lista com role, createdAt, content)
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* // Com ai.memory (agent definido automaticamente em call/getRawAgent)
|
|
52
|
+
* await ai.call({ messages: [...], threadId: "1" });
|
|
53
|
+
* const { fullHistory, messages } = await ai.memory.getHistory("1");
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // Passando graph explicitamente
|
|
57
|
+
* const { fullHistory, messages } = await memory.getHistory("1", agent);
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* // Apenas com checkpointer (sem graph)
|
|
61
|
+
* const memory = new AIMemory({ type: "memory" });
|
|
62
|
+
* const { fullHistory, messages } = await memory.getHistory("1");
|
|
63
|
+
*
|
|
64
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state-history
|
|
65
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/add-memory#manage-checkpoints
|
|
66
|
+
*/
|
|
67
|
+
getHistory(threadId: string, graph?: GraphWithStateHistory): Promise<GetHistoryResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Converte CheckpointTuple (do checkpointer.list) em StateSnapshot.
|
|
70
|
+
* Permite obter histórico usando apenas o checkpointer, sem o graph.
|
|
71
|
+
*/
|
|
72
|
+
private checkpointTupleToSnapshot;
|
|
73
|
+
/**
|
|
74
|
+
* Extrai lista de mensagens com role, createdAt e content a partir do histórico.
|
|
75
|
+
* Percorre os checkpoints do mais antigo ao mais recente para atribuir createdAt correto.
|
|
76
|
+
*/
|
|
77
|
+
private extractMessagesFromHistory;
|
|
78
|
+
private getMessageRole;
|
|
79
|
+
private extractContent;
|
|
80
|
+
/**
|
|
81
|
+
* Retorna o estado atual (último checkpoint) de uma thread.
|
|
82
|
+
*
|
|
83
|
+
* @param threadId - ID da thread/conversa
|
|
84
|
+
* @param graph - Grafo compilado com checkpointer
|
|
85
|
+
* @param checkpointId - Opcional: ID de um checkpoint específico
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* const state = await memory.getState("1", agent);
|
|
89
|
+
* const messages = state?.values?.messages ?? [];
|
|
90
|
+
*
|
|
91
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state
|
|
92
|
+
*/
|
|
93
|
+
getState(threadId: string, graph?: GraphWithStateHistory, checkpointId?: string): Promise<StateSnapshot | null>;
|
|
94
|
+
private createCheckpointer;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/langchain/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EAErB,YAAY,EAEb,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,mBAAmB,EAAE,CAAC;AACpC,YAAY,EACV,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QAAQ;IAMjB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,mBAAmB,CAA2C;IACtE,OAAO,CAAC,KAAK,CAAoC;gBAGvC,MAAM,EAAE,YAAY,EAC5B,KAAK,CAAC,EAAE,qBAAqB;IAK/B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAI5C;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IASrD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAqB5B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAgBjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAwClC,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,cAAc;IAgBtB;;;;;;;;;;;;OAYG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,qBAAqB,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAelB,kBAAkB;CA4FjC"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AIMemory = void 0;
|
|
4
|
+
const langgraph_1 = require("@langchain/langgraph");
|
|
5
|
+
/**
|
|
6
|
+
* Classe para gerenciar memória e checkpointers de conversas LangGraph.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Memória (desenvolvimento)
|
|
10
|
+
* const memory = new AIMemory({ type: "memory" });
|
|
11
|
+
* const checkpointer = await memory.getCheckpointer();
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // SQLite
|
|
15
|
+
* const memory = new AIMemory({ type: "sqlite", connectionString: "./data.db" });
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Acessar histórico de conversa
|
|
19
|
+
* const { agent } = await ai.getRawAgent({ ... });
|
|
20
|
+
* const history = await memory.getHistory("thread-1", agent);
|
|
21
|
+
* const messages = history[0]?.values?.messages ?? [];
|
|
22
|
+
*/
|
|
23
|
+
class AIMemory {
|
|
24
|
+
config;
|
|
25
|
+
checkpointer;
|
|
26
|
+
checkpointerPromise;
|
|
27
|
+
agent;
|
|
28
|
+
constructor(config, agent) {
|
|
29
|
+
this.config = config;
|
|
30
|
+
this.agent = agent;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Define o agent/grafo para uso em getHistory quando graph não é passado.
|
|
34
|
+
* Chamado automaticamente por AI.getRawAgent() quando a instância está vinculada ao AI.
|
|
35
|
+
*/
|
|
36
|
+
setAgent(agent) {
|
|
37
|
+
this.agent = agent;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Cria ou retorna a instância de checkpointer baseada na configuração.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* const cp = await memory.getCheckpointer();
|
|
44
|
+
* const graph = workflow.compile({ checkpointer: cp });
|
|
45
|
+
*/
|
|
46
|
+
async getCheckpointer() {
|
|
47
|
+
if (this.checkpointer)
|
|
48
|
+
return this.checkpointer;
|
|
49
|
+
if (!this.checkpointerPromise) {
|
|
50
|
+
this.checkpointerPromise = this.createCheckpointer();
|
|
51
|
+
}
|
|
52
|
+
this.checkpointer = await this.checkpointerPromise;
|
|
53
|
+
return this.checkpointer;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retorna o histórico de checkpoints e lista de mensagens de uma thread.
|
|
57
|
+
*
|
|
58
|
+
* @param threadId - ID da thread/conversa
|
|
59
|
+
* @param graph - Opcional. Grafo compilado com checkpointer. Se não passado, usa o agent
|
|
60
|
+
* definido no construtor ou via setAgent. Se nenhum disponível, usa o checkpointer.
|
|
61
|
+
* @returns Objeto com fullHistory (checkpoints) e messages (lista com role, createdAt, content)
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // Com ai.memory (agent definido automaticamente em call/getRawAgent)
|
|
65
|
+
* await ai.call({ messages: [...], threadId: "1" });
|
|
66
|
+
* const { fullHistory, messages } = await ai.memory.getHistory("1");
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Passando graph explicitamente
|
|
70
|
+
* const { fullHistory, messages } = await memory.getHistory("1", agent);
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // Apenas com checkpointer (sem graph)
|
|
74
|
+
* const memory = new AIMemory({ type: "memory" });
|
|
75
|
+
* const { fullHistory, messages } = await memory.getHistory("1");
|
|
76
|
+
*
|
|
77
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state-history
|
|
78
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/add-memory#manage-checkpoints
|
|
79
|
+
*/
|
|
80
|
+
async getHistory(threadId, graph) {
|
|
81
|
+
const graphToUse = graph ?? this.agent;
|
|
82
|
+
const fullHistory = [];
|
|
83
|
+
if (graphToUse) {
|
|
84
|
+
const config = { configurable: { thread_id: threadId } };
|
|
85
|
+
for await (const snapshot of graphToUse.getStateHistory(config)) {
|
|
86
|
+
fullHistory.push(snapshot);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const checkpointer = await this.getCheckpointer();
|
|
91
|
+
const config = { configurable: { thread_id: threadId } };
|
|
92
|
+
for await (const tuple of checkpointer.list(config)) {
|
|
93
|
+
fullHistory.push(this.checkpointTupleToSnapshot(tuple));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const messages = this.extractMessagesFromHistory(fullHistory);
|
|
97
|
+
return { fullHistory, messages };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Converte CheckpointTuple (do checkpointer.list) em StateSnapshot.
|
|
101
|
+
* Permite obter histórico usando apenas o checkpointer, sem o graph.
|
|
102
|
+
*/
|
|
103
|
+
checkpointTupleToSnapshot(tuple) {
|
|
104
|
+
const { checkpoint } = tuple;
|
|
105
|
+
return {
|
|
106
|
+
values: checkpoint.channel_values ?? {},
|
|
107
|
+
createdAt: checkpoint.ts ?? new Date().toISOString(),
|
|
108
|
+
config: tuple.config ?? { configurable: {} },
|
|
109
|
+
metadata: tuple.metadata,
|
|
110
|
+
next: [],
|
|
111
|
+
tasks: [],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Extrai lista de mensagens com role, createdAt e content a partir do histórico.
|
|
116
|
+
* Percorre os checkpoints do mais antigo ao mais recente para atribuir createdAt correto.
|
|
117
|
+
*/
|
|
118
|
+
extractMessagesFromHistory(history) {
|
|
119
|
+
const result = [];
|
|
120
|
+
let previousMessageCount = 0;
|
|
121
|
+
// history[0] = mais recente, history[length-1] = mais antigo
|
|
122
|
+
// Cada snapshot acumula mensagens; só adicionamos as novas
|
|
123
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
124
|
+
const snapshot = history[i];
|
|
125
|
+
const snapshotMessages = (snapshot.values?.messages ?? []);
|
|
126
|
+
const createdAt = snapshot.createdAt ??
|
|
127
|
+
new Date().toISOString();
|
|
128
|
+
for (let j = previousMessageCount; j < snapshotMessages.length; j++) {
|
|
129
|
+
const msg = snapshotMessages[j];
|
|
130
|
+
if (!msg)
|
|
131
|
+
continue;
|
|
132
|
+
const role = this.getMessageRole(msg);
|
|
133
|
+
if (role === "system")
|
|
134
|
+
continue;
|
|
135
|
+
result.push({
|
|
136
|
+
role: role,
|
|
137
|
+
createdAt,
|
|
138
|
+
content: this.extractContent(msg),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
previousMessageCount = snapshotMessages.length;
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
getMessageRole(msg) {
|
|
146
|
+
const role = msg.role?.toLowerCase();
|
|
147
|
+
if (role === "human" || role === "user")
|
|
148
|
+
return "human";
|
|
149
|
+
if (role === "ai" || role === "assistant")
|
|
150
|
+
return "ai";
|
|
151
|
+
if (role === "tool")
|
|
152
|
+
return "tool";
|
|
153
|
+
const type = msg.getType?.() ??
|
|
154
|
+
msg._getType?.() ??
|
|
155
|
+
msg.constructor?.name?.toLowerCase() ?? "";
|
|
156
|
+
const normalized = type.toLowerCase().replace("message", "").trim();
|
|
157
|
+
if (normalized === "human" || normalized === "user")
|
|
158
|
+
return "human";
|
|
159
|
+
if (normalized === "ai" || normalized === "assistant")
|
|
160
|
+
return "ai";
|
|
161
|
+
if (normalized === "tool")
|
|
162
|
+
return "tool";
|
|
163
|
+
return "system";
|
|
164
|
+
}
|
|
165
|
+
extractContent(msg) {
|
|
166
|
+
const c = msg.content;
|
|
167
|
+
if (typeof c === "string")
|
|
168
|
+
return c;
|
|
169
|
+
if (Array.isArray(c)) {
|
|
170
|
+
return c
|
|
171
|
+
.map((block) => typeof block === "string" ? block : block?.text ?? "")
|
|
172
|
+
.filter(Boolean)
|
|
173
|
+
.join("\n");
|
|
174
|
+
}
|
|
175
|
+
return "";
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Retorna o estado atual (último checkpoint) de uma thread.
|
|
179
|
+
*
|
|
180
|
+
* @param threadId - ID da thread/conversa
|
|
181
|
+
* @param graph - Grafo compilado com checkpointer
|
|
182
|
+
* @param checkpointId - Opcional: ID de um checkpoint específico
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* const state = await memory.getState("1", agent);
|
|
186
|
+
* const messages = state?.values?.messages ?? [];
|
|
187
|
+
*
|
|
188
|
+
* @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state
|
|
189
|
+
*/
|
|
190
|
+
async getState(threadId, graph, checkpointId) {
|
|
191
|
+
const graphToUse = graph ?? this.agent;
|
|
192
|
+
if (graphToUse?.getState) {
|
|
193
|
+
const config = {
|
|
194
|
+
configurable: {
|
|
195
|
+
thread_id: threadId,
|
|
196
|
+
...(checkpointId && { checkpoint_id: checkpointId }),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
return (await graphToUse.getState(config)) ?? null;
|
|
200
|
+
}
|
|
201
|
+
const { fullHistory } = await this.getHistory(threadId, graphToUse ?? undefined);
|
|
202
|
+
return fullHistory[0] ?? null;
|
|
203
|
+
}
|
|
204
|
+
async createCheckpointer() {
|
|
205
|
+
if (this.checkpointer)
|
|
206
|
+
return this.checkpointer;
|
|
207
|
+
switch (this.config.type) {
|
|
208
|
+
case "memory": {
|
|
209
|
+
return new langgraph_1.MemorySaver();
|
|
210
|
+
}
|
|
211
|
+
case "sqlite": {
|
|
212
|
+
try {
|
|
213
|
+
const { SqliteSaver } = await import("@langchain/langgraph-checkpoint-sqlite");
|
|
214
|
+
return SqliteSaver.fromConnString(this.config.connectionString);
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
throw new Error('Checkpointer SQLite requer o pacote "@langchain/langgraph-checkpoint-sqlite". ' +
|
|
218
|
+
"Instale com: pnpm add @langchain/langgraph-checkpoint-sqlite", { cause: err });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
case "postgres": {
|
|
222
|
+
try {
|
|
223
|
+
const { PostgresSaver } = await import("@langchain/langgraph-checkpoint-postgres");
|
|
224
|
+
const checkpointer = PostgresSaver.fromConnString(this.config.connectionString);
|
|
225
|
+
await checkpointer.setup();
|
|
226
|
+
return checkpointer;
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
throw new Error('Checkpointer Postgres requer o pacote "@langchain/langgraph-checkpoint-postgres". ' +
|
|
230
|
+
"Instale com: pnpm add @langchain/langgraph-checkpoint-postgres", { cause: err });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
case "redis": {
|
|
234
|
+
try {
|
|
235
|
+
const { RedisSaver } = await import("@langchain/langgraph-checkpoint-redis");
|
|
236
|
+
return (await RedisSaver.fromUrl(this.config.url, this.config.options ?? {}));
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
throw new Error('Checkpointer Redis requer o pacote "@langchain/langgraph-checkpoint-redis". ' +
|
|
240
|
+
"Instale com: pnpm add @langchain/langgraph-checkpoint-redis", { cause: err });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
case "mongodb": {
|
|
244
|
+
try {
|
|
245
|
+
const { MongoDBSaver } = await import("@langchain/langgraph-checkpoint-mongodb");
|
|
246
|
+
if ("client" in this.config) {
|
|
247
|
+
return new MongoDBSaver({
|
|
248
|
+
client: this.config.client,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
const { MongoClient } = await import("mongodb");
|
|
252
|
+
const client = new MongoClient(this.config.url);
|
|
253
|
+
return new MongoDBSaver({ client });
|
|
254
|
+
}
|
|
255
|
+
catch (err) {
|
|
256
|
+
throw new Error('Checkpointer MongoDB requer os pacotes "@langchain/langgraph-checkpoint-mongodb" e "mongodb". ' +
|
|
257
|
+
"Instale com: pnpm add @langchain/langgraph-checkpoint-mongodb mongodb", { cause: err });
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
default: {
|
|
261
|
+
const _exhaustive = this.config;
|
|
262
|
+
throw new Error(`Tipo de checkpointer não suportado: ${_exhaustive?.type}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
exports.AIMemory = AIMemory;
|
|
268
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/langchain/memory.ts"],"names":[],"mappings":"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"}
|