@luanpoppe/ai 1.1.1 → 1.1.2

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.
@@ -0,0 +1,3 @@
1
+ import type { createAgent } from "langchain";
2
+ export type AIAgent = ReturnType<typeof createAgent>;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/@types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/@types/agent.ts"],"names":[],"mappings":""}
@@ -11,6 +11,8 @@ export type AICallParams = {
11
11
  };
12
12
  modelConfig?: Omit<LLMModelConfig, "apiKey" | "model">;
13
13
  aiModel: AIModelNames;
14
+ /** Lista de modelos de fallback quando o principal falhar após todos os retries (suporta OpenRouter, Gemini, GPT) */
15
+ aiModelsFallback?: AIModelNames[];
14
16
  messages: MessageInput[];
15
17
  systemPrompt?: string;
16
18
  maxRetries?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-call.d.ts","sourceRoot":"","sources":["../../src/@types/ai-call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QAC/B,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC;KACrC,CAAC;IAEF,WAAW,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;IAEvD,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAC5D,YAAY,GAAG;IACb,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,OAAO,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"ai-call.d.ts","sourceRoot":"","sources":["../../src/@types/ai-call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QAC/B,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC;KACrC,CAAC;IAEF,WAAW,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;IAEvD,OAAO,EAAE,YAAY,CAAC;IACtB,qHAAqH;IACrH,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAC5D,YAAY,GAAG;IACb,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEJ,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,OAAO,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC"}
@@ -0,0 +1,106 @@
1
+ import type { StateSnapshot } from "@langchain/langgraph";
2
+ /**
3
+ * Interface mínima para um grafo compilado com checkpointer.
4
+ * Usado para acessar o histórico de conversas via getStateHistory.
5
+ *
6
+ * @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state-history
7
+ * @see https://docs.langchain.com/oss/javascript/langgraph/add-memory#manage-checkpoints
8
+ */
9
+ export interface GraphWithStateHistory {
10
+ /**
11
+ * Retorna o histórico completo de checkpoints de uma thread.
12
+ * Ordenado cronologicamente (mais recente primeiro).
13
+ */
14
+ getStateHistory(config: {
15
+ configurable: {
16
+ thread_id: string;
17
+ checkpoint_id?: string;
18
+ };
19
+ }): AsyncIterable<StateSnapshot>;
20
+ /**
21
+ * Retorna o estado atual (último checkpoint) da thread.
22
+ */
23
+ getState?(config: {
24
+ configurable: {
25
+ thread_id: string;
26
+ checkpoint_id?: string;
27
+ };
28
+ }): Promise<StateSnapshot>;
29
+ }
30
+ /**
31
+ * Configuração para checkpointer em memória (desenvolvimento/testes).
32
+ */
33
+ export type MemoryCheckpointerConfig = {
34
+ type: "memory";
35
+ };
36
+ /**
37
+ * Configuração para checkpointer SQLite.
38
+ * Use ":memory:" para testes ou path para arquivo persistente.
39
+ */
40
+ export type SqliteCheckpointerConfig = {
41
+ type: "sqlite";
42
+ connectionString: string;
43
+ };
44
+ /**
45
+ * Configuração para checkpointer Postgres.
46
+ */
47
+ export type PostgresCheckpointerConfig = {
48
+ type: "postgres";
49
+ connectionString: string;
50
+ };
51
+ /**
52
+ * Configuração para checkpointer Redis.
53
+ * Requer Redis 8+ ou Redis Stack (RedisJSON, RediSearch).
54
+ */
55
+ export type RedisCheckpointerConfig = {
56
+ type: "redis";
57
+ url: string;
58
+ options?: {
59
+ defaultTTL?: number;
60
+ refreshOnRead?: boolean;
61
+ };
62
+ };
63
+ /**
64
+ * Configuração para checkpointer MongoDB com cliente existente.
65
+ */
66
+ export type MongoDBCheckpointerConfigWithClient = {
67
+ type: "mongodb";
68
+ client: {
69
+ close?: () => Promise<void>;
70
+ };
71
+ };
72
+ /**
73
+ * Configuração para checkpointer MongoDB com URL.
74
+ */
75
+ export type MongoDBCheckpointerConfigWithUrl = {
76
+ type: "mongodb";
77
+ url: string;
78
+ };
79
+ export type MongoDBCheckpointerConfig = MongoDBCheckpointerConfigWithClient | MongoDBCheckpointerConfigWithUrl;
80
+ /**
81
+ * Configuração para persistência de histórico de conversas.
82
+ * Permite escolher o backend de armazenamento.
83
+ */
84
+ export type MemoryConfig = MemoryCheckpointerConfig | SqliteCheckpointerConfig | PostgresCheckpointerConfig | RedisCheckpointerConfig | MongoDBCheckpointerConfig;
85
+ /**
86
+ * Tipo de mensagem no histórico (Human, AI ou Tool).
87
+ */
88
+ export type MessageRole = "human" | "ai" | "tool";
89
+ /**
90
+ * Item de mensagem extraído do histórico, com role, horário e conteúdo.
91
+ */
92
+ export type HistoryMessageItem = {
93
+ role: MessageRole;
94
+ createdAt: string;
95
+ content: string;
96
+ };
97
+ /**
98
+ * Retorno do método getHistory com histórico completo e lista de mensagens.
99
+ */
100
+ export type GetHistoryResult = {
101
+ /** Histórico completo de checkpoints (mais recente primeiro). */
102
+ fullHistory: StateSnapshot[];
103
+ /** Lista de mensagens em ordem cronológica, com role, horário e conteúdo. */
104
+ messages: HistoryMessageItem[];
105
+ };
106
+ //# sourceMappingURL=checkpointers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointers.d.ts","sourceRoot":"","sources":["../../src/@types/checkpointers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,EAAE;QAChB,YAAY,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC,mCAAmC,GACnC,gCAAgC,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,wBAAwB,GACxB,wBAAwB,GACxB,0BAA0B,GAC1B,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=checkpointers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointers.js","sourceRoot":"","sources":["../../src/@types/checkpointers.ts"],"names":[],"mappings":""}
package/dist/ai.d.ts CHANGED
@@ -1,24 +1,36 @@
1
1
  import z from "zod";
2
- import { createAgent } from "langchain";
3
- import { type BaseCheckpointSaver, type MemoryConfig } from "./langchain/checkpointers";
2
+ import type { AIAgent } from "./@types/agent";
3
+ import { AIMemory, type BaseCheckpointSaver, type MemoryConfig } from "./langchain/checkpointers";
4
+ import type { AIModelNames } from "./@types/model-names";
4
5
  import type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn } from "./@types/ai-call";
5
6
  export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn, } from "./@types/ai-call";
6
7
  type AIConstructor = {
7
8
  googleGeminiToken?: string;
8
9
  openAIApiKey?: string;
9
10
  openRouterApiKey?: string;
10
- /** Configuração de persistência de histórico (memory, sqlite, postgres, redis, mongodb) */
11
- memory?: MemoryConfig;
11
+ /** Lista padrão de modelos de fallback (usada em call/callStructuredOutput quando não passada no método) */
12
+ aiModelsFallback?: AIModelNames[];
13
+ /** Configuração de persistência de histórico (memory, sqlite, postgres, redis, mongodb) ou instância AIMemory */
14
+ memory?: MemoryConfig | AIMemory;
12
15
  /** Instância de checkpointer para usuários avançados (alternativa a memory) */
13
16
  checkpointer?: BaseCheckpointSaver;
14
17
  };
15
18
  export declare class AI {
16
19
  private config;
20
+ private _memory;
21
+ /**
22
+ * Instância de AIMemory. Lança exceção se memory não estiver configurado.
23
+ *
24
+ * @example
25
+ * const { fullHistory, messages } = await ai.memory.getHistory(threadId);
26
+ */
27
+ get memory(): AIMemory;
17
28
  private checkpointer;
18
29
  private checkpointerPromise;
19
30
  constructor(config: AIConstructor);
20
31
  private getCheckpointer;
21
32
  private ensureThreadIdWhenCheckpointer;
33
+ private invokeWithRetryAndFallback;
22
34
  call(params: AICallParams): AICallReturn;
23
35
  callStructuredOutput<T extends z.ZodSchema>(params: AICallStructuredOutputParams<T>): AICallStructuredOutputReturn<typeof params.outputSchema>;
24
36
  /**
@@ -28,7 +40,7 @@ export declare class AI {
28
40
  */
29
41
  private normalizeSchemaForOpenAI;
30
42
  getRawAgent(params: AICallParams, outputSchema?: z.ZodSchema | undefined): Promise<{
31
- agent: ReturnType<typeof createAgent>;
43
+ agent: AIAgent;
32
44
  }>;
33
45
  private getModel;
34
46
  private standardAgent;
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;AACpB,OAAO,EACL,WAAW,EAGZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AACnC,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,2FAA2F;IAC3F,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC,CAAC;AAEF,qBAAa,EAAE;IAID,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,mBAAmB,CAA2C;gBAElD,MAAM,EAAE,aAAa;YAM3B,eAAe;IAY7B,OAAO,CAAC,8BAA8B;IAWhC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IA4BxC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC9C,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACtC,4BAA4B,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC;IA8B3D;;;;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,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;KAAE,CAAC;IAYrD,OAAO,CAAC,QAAQ;IAiChB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,mBAAmB;CAU5B"}
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,2BAA2B,CAAC;AACnC,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
@@ -10,6 +10,19 @@ const langchain_1 = require("langchain");
10
10
  const checkpointers_1 = require("./langchain/checkpointers");
11
11
  class AI {
12
12
  config;
13
+ _memory;
14
+ /**
15
+ * Instância de AIMemory. Lança exceção se memory não estiver configurado.
16
+ *
17
+ * @example
18
+ * const { fullHistory, messages } = await ai.memory.getHistory(threadId);
19
+ */
20
+ get memory() {
21
+ if (!this._memory) {
22
+ throw new Error("memory não está configurado. Passe memory no construtor do AI (ex: memory: { type: 'memory' }).");
23
+ }
24
+ return this._memory;
25
+ }
13
26
  checkpointer;
14
27
  checkpointerPromise;
15
28
  constructor(config) {
@@ -17,13 +30,19 @@ class AI {
17
30
  if (config.checkpointer) {
18
31
  this.checkpointer = config.checkpointer;
19
32
  }
33
+ if (config.memory) {
34
+ this._memory =
35
+ config.memory instanceof checkpointers_1.AIMemory
36
+ ? config.memory
37
+ : new checkpointers_1.AIMemory(config.memory);
38
+ }
20
39
  }
21
40
  async getCheckpointer() {
22
41
  if (this.checkpointer)
23
42
  return this.checkpointer;
24
- if (this.config.memory) {
43
+ if (this._memory) {
25
44
  if (!this.checkpointerPromise) {
26
- this.checkpointerPromise = (0, checkpointers_1.createCheckpointer)(this.config.memory);
45
+ this.checkpointerPromise = this._memory.getCheckpointer();
27
46
  }
28
47
  this.checkpointer = await this.checkpointerPromise;
29
48
  return this.checkpointer;
@@ -31,24 +50,41 @@ class AI {
31
50
  return undefined;
32
51
  }
33
52
  ensureThreadIdWhenCheckpointer(params) {
34
- if (this.config.checkpointer || this.config.memory) {
53
+ if (this.config.checkpointer || this.config.memory !== undefined) {
35
54
  if (!params.threadId) {
36
55
  throw new Error("threadId é obrigatório quando memory ou checkpointer está configurado. " +
37
56
  "Passe threadId em AICallParams para identificar a conversa.");
38
57
  }
39
58
  }
40
59
  }
60
+ async invokeWithRetryAndFallback(params, createAgentForModel, execute) {
61
+ const fallback = params.aiModelsFallback ?? this.config.aiModelsFallback ?? [];
62
+ const models = [params.aiModel, ...fallback];
63
+ let lastError;
64
+ for (const aiModel of models) {
65
+ const paramsForModel = { ...params, aiModel };
66
+ const agent = createAgentForModel(paramsForModel);
67
+ try {
68
+ const result = await execute(agent);
69
+ return { result, agent };
70
+ }
71
+ catch (error) {
72
+ lastError = error;
73
+ }
74
+ }
75
+ throw lastError;
76
+ }
41
77
  async call(params) {
42
78
  const { messages } = params;
43
79
  this.ensureThreadIdWhenCheckpointer(params);
44
80
  const checkpointer = await this.getCheckpointer();
45
- const agent = (0, langchain_1.createAgent)({
46
- ...this.standardAgent(params, checkpointer),
47
- });
48
81
  const invokeConfig = params.threadId && checkpointer
49
82
  ? { configurable: { thread_id: params.threadId } }
50
83
  : undefined;
51
- const response = await agent.invoke({ messages }, invokeConfig);
84
+ const { result: response, agent } = await this.invokeWithRetryAndFallback(params, (paramsForModel) => (0, langchain_1.createAgent)({
85
+ ...this.standardAgent(paramsForModel, checkpointer),
86
+ }), (agent) => agent.invoke({ messages }, invokeConfig));
87
+ this._memory?.setAgent(agent);
52
88
  const rawContent = response.messages.at(-1)?.content;
53
89
  const text = typeof rawContent === "string" && rawContent.trim()
54
90
  ? rawContent
@@ -59,20 +95,17 @@ class AI {
59
95
  };
60
96
  }
61
97
  async callStructuredOutput(params) {
62
- const { outputSchema, messages, aiModel } = params;
98
+ const { outputSchema, messages } = params;
63
99
  this.ensureThreadIdWhenCheckpointer(params);
64
100
  const checkpointer = await this.getCheckpointer();
65
- // Normaliza o schema para compatibilidade com OpenAI/OpenRouter
66
- // OpenAI exige que todos os campos em properties estejam no array required
67
- const normalizedSchema = this.normalizeSchemaForOpenAI(outputSchema, aiModel);
68
- const agent = (0, langchain_1.createAgent)({
69
- ...this.standardAgent(params, checkpointer),
70
- responseFormat: normalizedSchema,
71
- });
72
101
  const invokeConfig = params.threadId && checkpointer
73
102
  ? { configurable: { thread_id: params.threadId } }
74
103
  : undefined;
75
- const response = await agent.invoke({ messages }, invokeConfig);
104
+ const { result: response, agent } = await this.invokeWithRetryAndFallback(params, (paramsForModel) => (0, langchain_1.createAgent)({
105
+ ...this.standardAgent(paramsForModel, checkpointer),
106
+ responseFormat: this.normalizeSchemaForOpenAI(outputSchema, paramsForModel.aiModel),
107
+ }), (agent) => agent.invoke({ messages }, invokeConfig));
108
+ this._memory?.setAgent(agent);
76
109
  const parsedResponse = outputSchema.parse(response?.structuredResponse);
77
110
  return { response: parsedResponse };
78
111
  }
@@ -115,6 +148,7 @@ class AI {
115
148
  ...this.standardAgent(params, checkpointer),
116
149
  responseFormat: outputSchema,
117
150
  });
151
+ this._memory?.setAgent(agent);
118
152
  return { agent };
119
153
  }
120
154
  getModel(params) {
@@ -163,8 +197,8 @@ class AI {
163
197
  maxRetries,
164
198
  backoffFactor: 2.0,
165
199
  initialDelayMs: 1000,
200
+ onFailure: "error",
166
201
  }),
167
- (0, langchain_1.modelFallbackMiddleware)("gemini-2.5-flash", "gpt-4o-mini"),
168
202
  ];
169
203
  }
170
204
  }
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,yCAImB;AACnB,6DAImC;AAyBnC,MAAa,EAAE;IAIO;IAHZ,YAAY,CAAkC;IAC9C,mBAAmB,CAA2C;IAEtE,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACvC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACnD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,8BAA8B,CAAC,MAAoB;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,yEAAyE;oBACvE,6DAA6D,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE5B,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC;YACxB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC;SAC5C,CAAC,CAAC;QAEH,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,IAAI,YAAY;YAC7B,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;YAClD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAmB,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAA6B,CAAC;QAC3E,MAAM,IAAI,GACR,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE;YACjD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,+BAA+B,CAAC;QACtC,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,MAAuC;QAEvC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAEnD,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,gEAAgE;QAChE,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CACpD,YAAY,EACZ,OAAO,CACR,CAAC;QAEF,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC;YACxB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC;YAC3C,cAAc,EAAE,gBAAuB;SACxC,CAAC,CAAC;QAEH,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,IAAI,YAAY;YAC7B,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;YAClD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAmB,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAExE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAC9B,MAAS,EACT,OAAe;QAEf,kDAAkD;QAClD,MAAM,aAAa,GACjB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAExE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,sEAAsE;QACtE,IAAI,MAAM,YAAY,aAAC,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,QAAQ,GAAiC,EAAE,CAAC;YAElD,0EAA0E;YAC1E,8DAA8D;YAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,YAAY,aAAC,CAAC,WAAW,EAAE,CAAC;oBACnC,wEAAwE;oBACxE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAyB,CAAC;oBACvD,0CAA0C;oBAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,aAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,OAAO,aAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAoB,EACpB,YAAsC;QAEtC,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC;YACxB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC;YAC3C,cAAc,EAAE,YAAmB;SACpC,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEO,QAAQ,CAAC,MAAoB;QACnC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAExC,MAAM,MAAM,GAAmB;YAC7B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,WAAW,EAAE,SAAS;YACjC,WAAW,EAAE,WAAW,EAAE,WAAW;SACtC,CAAC;QAEF,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAEzC,OAAO,iBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAE9C,OAAO,iBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,iBAAQ,CAAC,UAAU,CAAC;gBACzB,GAAG,MAAM;gBACT,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;aACrC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAEO,aAAa,CACnB,MAAoB,EACpB,YAAkC;QAElC,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;QAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO;YACL,KAAK;YACL,YAAY,EAAE,YAAY,IAAI,EAAE;YAChC,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBACvC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC;aACpC;YACD,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YAChC,cAAc,EAAE,SAAgB;YAChC,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,UAAkB;QAC5C,OAAO;YACL,IAAA,gCAAoB,EAAC;gBACnB,UAAU;gBACV,aAAa,EAAE,GAAG;gBAClB,cAAc,EAAE,IAAI;aACrB,CAAC;YACF,IAAA,mCAAuB,EAAC,kBAAkB,EAAE,aAAa,CAAC;SAC3D,CAAC;IACJ,CAAC;CACF;AApND,gBAoNC"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,12 +2,13 @@ import z from "zod";
2
2
  import { AI } from "./ai";
3
3
  import type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn } from "./@types/ai-call";
4
4
  export { AI };
5
+ export type { AIAgent } from "./@types/agent";
5
6
  export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn, } from "./@types/ai-call";
6
7
  export { AIModels } from "./langchain/models";
7
8
  export { AIMessages } from "./langchain/messages";
8
9
  export { AITools } from "./langchain/tools";
9
- export { createCheckpointer } from "./langchain/checkpointers";
10
- export type { MemoryConfig, BaseCheckpointSaver, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, } from "./langchain/checkpointers";
10
+ export { AIMemory } from "./langchain/checkpointers";
11
+ export type { MemoryConfig, BaseCheckpointSaver, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "./langchain/checkpointers";
11
12
  export { AIAudioTranscription } from "./langchain/audio-transcription";
12
13
  export { AudioUtils } from "./utils/audio-utils";
13
14
  export type { AudioBuffer, AudioMimeType } from "./@types/audio";
@@ -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,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,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,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"}
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,2BAA2B,CAAC;AACrD,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,2BAA2B,CAAC;AACnC,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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LangchainAudioTranscription = exports.LangchainTools = exports.LangchainMessages = exports.LangchainModels = exports.Langchain = exports.AudioUtils = exports.AIAudioTranscription = exports.createCheckpointer = exports.AITools = exports.AIMessages = exports.AIModels = exports.AI = void 0;
3
+ exports.LangchainAudioTranscription = exports.LangchainTools = exports.LangchainMessages = exports.LangchainModels = exports.Langchain = exports.AudioUtils = exports.AIAudioTranscription = exports.AIMemory = exports.AITools = exports.AIMessages = exports.AIModels = exports.AI = void 0;
4
4
  const ai_1 = require("./ai");
5
5
  Object.defineProperty(exports, "AI", { enumerable: true, get: function () { return ai_1.AI; } });
6
6
  Object.defineProperty(exports, "Langchain", { enumerable: true, get: function () { return ai_1.AI; } });
@@ -11,7 +11,7 @@ Object.defineProperty(exports, "AIMessages", { enumerable: true, get: function (
11
11
  var tools_1 = require("./langchain/tools");
12
12
  Object.defineProperty(exports, "AITools", { enumerable: true, get: function () { return tools_1.AITools; } });
13
13
  var checkpointers_1 = require("./langchain/checkpointers");
14
- Object.defineProperty(exports, "createCheckpointer", { enumerable: true, get: function () { return checkpointers_1.createCheckpointer; } });
14
+ Object.defineProperty(exports, "AIMemory", { enumerable: true, get: function () { return checkpointers_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;AAmCI,0FA3CN,OAAE,OA2Ca;AA3BxB,6CAA8C;AAArC,kGAAA,QAAQ,OAAA;AACjB,iDAAkD;AAAzC,sGAAA,UAAU,OAAA;AACnB,2CAA4C;AAAnC,gGAAA,OAAO,OAAA;AAChB,2DAA+D;AAAtD,mHAAA,kBAAkB,OAAA;AAU3B,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"}
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,2DAAqD;AAA5C,yGAAA,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"}
@@ -1,85 +1,86 @@
1
- import { BaseCheckpointSaver } from "@langchain/langgraph";
1
+ import { BaseCheckpointSaver, type StateSnapshot } from "@langchain/langgraph";
2
+ import type { GetHistoryResult, GraphWithStateHistory, MemoryConfig } from "../@types/checkpointers";
2
3
  export type { BaseCheckpointSaver };
4
+ export type { MemoryConfig, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "../@types/checkpointers";
3
5
  /**
4
- * Configuração para checkpointer em memória (desenvolvimento/testes).
5
- */
6
- export type MemoryCheckpointerConfig = {
7
- type: "memory";
8
- };
9
- /**
10
- * Configuração para checkpointer SQLite.
11
- * Use ":memory:" para testes ou path para arquivo persistente.
12
- */
13
- export type SqliteCheckpointerConfig = {
14
- type: "sqlite";
15
- connectionString: string;
16
- };
17
- /**
18
- * Configuração para checkpointer Postgres.
19
- */
20
- export type PostgresCheckpointerConfig = {
21
- type: "postgres";
22
- connectionString: string;
23
- };
24
- /**
25
- * Configuração para checkpointer Redis.
26
- * Requer Redis 8+ ou Redis Stack (RedisJSON, RediSearch).
27
- */
28
- export type RedisCheckpointerConfig = {
29
- type: "redis";
30
- url: string;
31
- options?: {
32
- defaultTTL?: number;
33
- refreshOnRead?: boolean;
34
- };
35
- };
36
- /**
37
- * Configuração para checkpointer MongoDB com cliente existente.
38
- */
39
- export type MongoDBCheckpointerConfigWithClient = {
40
- type: "mongodb";
41
- client: {
42
- close?: () => Promise<void>;
43
- };
44
- };
45
- /**
46
- * Configuração para checkpointer MongoDB com URL.
47
- */
48
- export type MongoDBCheckpointerConfigWithUrl = {
49
- type: "mongodb";
50
- url: string;
51
- };
52
- export type MongoDBCheckpointerConfig = MongoDBCheckpointerConfigWithClient | MongoDBCheckpointerConfigWithUrl;
53
- /**
54
- * Configuração para persistência de histórico de conversas.
55
- * Permite escolher o backend de armazenamento.
56
- */
57
- export type MemoryConfig = MemoryCheckpointerConfig | SqliteCheckpointerConfig | PostgresCheckpointerConfig | RedisCheckpointerConfig | MongoDBCheckpointerConfig;
58
- /**
59
- * Cria uma instância de checkpointer baseada na configuração fornecida.
6
+ * Classe para gerenciar memória e checkpointers de conversas LangGraph.
60
7
  *
61
8
  * @example
62
9
  * // Memória (desenvolvimento)
63
- * const cp = await createCheckpointer({ type: "memory" });
10
+ * const memory = new AIMemory({ type: "memory" });
11
+ * const checkpointer = await memory.getCheckpointer();
64
12
  *
65
13
  * @example
66
14
  * // SQLite
67
- * const cp = await createCheckpointer({ type: "sqlite", connectionString: "./data.db" });
68
- *
69
- * @example
70
- * // Postgres
71
- * const cp = await createCheckpointer({
72
- * type: "postgres",
73
- * connectionString: process.env.DATABASE_URL!,
74
- * });
75
- *
76
- * @example
77
- * // Redis
78
- * const cp = await createCheckpointer({ type: "redis", url: "redis://localhost:6379" });
15
+ * const memory = new AIMemory({ type: "sqlite", connectionString: "./data.db" });
79
16
  *
80
17
  * @example
81
- * // MongoDB
82
- * const cp = await createCheckpointer({ type: "mongodb", url: process.env.MONGODB_URL! });
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 ?? [];
83
22
  */
84
- export declare function createCheckpointer(config: MemoryConfig): Promise<BaseCheckpointSaver>;
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 (ex: agent de ai.getRawAgent).
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
+ * @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state-history
60
+ * @see https://docs.langchain.com/oss/javascript/langgraph/add-memory#manage-checkpoints
61
+ */
62
+ getHistory(threadId: string, graph?: GraphWithStateHistory): Promise<GetHistoryResult>;
63
+ /**
64
+ * Extrai lista de mensagens com role, createdAt e content a partir do histórico.
65
+ * Percorre os checkpoints do mais antigo ao mais recente para atribuir createdAt correto.
66
+ */
67
+ private extractMessagesFromHistory;
68
+ private getMessageRole;
69
+ private extractContent;
70
+ /**
71
+ * Retorna o estado atual (último checkpoint) de uma thread.
72
+ *
73
+ * @param threadId - ID da thread/conversa
74
+ * @param graph - Grafo compilado com checkpointer
75
+ * @param checkpointId - Opcional: ID de um checkpoint específico
76
+ *
77
+ * @example
78
+ * const state = await memory.getState("1", agent);
79
+ * const messages = state?.values?.messages ?? [];
80
+ *
81
+ * @see https://docs.langchain.com/oss/javascript/langgraph/persistence#get-state
82
+ */
83
+ getState(threadId: string, graph?: GraphWithStateHistory, checkpointId?: string): Promise<StateSnapshot | null>;
84
+ private createCheckpointer;
85
+ }
85
86
  //# sourceMappingURL=checkpointers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpointers.d.ts","sourceRoot":"","sources":["../../src/langchain/checkpointers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAe,MAAM,sBAAsB,CAAC;AAExE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACjC,mCAAmC,GACnC,gCAAgC,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,wBAAwB,GACxB,wBAAwB,GACxB,0BAA0B,GAC1B,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,mBAAmB,CAAC,CA8E9B"}
1
+ {"version":3,"file":"checkpointers.d.ts","sourceRoot":"","sources":["../../src/langchain/checkpointers.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;;;;;;;;;;;;;;;;;;;OAmBG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;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;YAiBlB,kBAAkB;CA4FjC"}