@luanpoppe/ai 1.1.0 → 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":""}
@@ -0,0 +1,32 @@
1
+ import type { AgentMiddleware, BaseMessage } from "langchain";
2
+ import type { ClientTool, ServerTool } from "@langchain/core/tools";
3
+ import type { LLMModelConfig } from "../langchain/models";
4
+ import type { AIModelNames } from "./model-names";
5
+ import type { MessageInput } from "../langchain/messages";
6
+ import type z from "zod";
7
+ export type AICallParams = {
8
+ agent?: {
9
+ middleware?: AgentMiddleware[];
10
+ tools?: (ServerTool | ClientTool)[];
11
+ };
12
+ modelConfig?: Omit<LLMModelConfig, "apiKey" | "model">;
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[];
16
+ messages: MessageInput[];
17
+ systemPrompt?: string;
18
+ maxRetries?: number;
19
+ /** ID da thread/conversa para persistência de histórico (obrigatório quando memory/checkpointer está ativo) */
20
+ threadId?: string;
21
+ };
22
+ export type AICallReturn = Promise<{
23
+ text: string;
24
+ messages: BaseMessage[];
25
+ }>;
26
+ export type AICallStructuredOutputParams<T extends z.ZodSchema> = AICallParams & {
27
+ outputSchema: T;
28
+ };
29
+ export type AICallStructuredOutputReturn<T> = Promise<{
30
+ response: z.infer<T>;
31
+ }>;
32
+ //# sourceMappingURL=ai-call.d.ts.map
@@ -0,0 +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,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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ai-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-call.js","sourceRoot":"","sources":["../../src/@types/ai-call.ts"],"names":[],"mappings":""}
@@ -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 ADDED
@@ -0,0 +1,49 @@
1
+ import z from "zod";
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";
5
+ import type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn } from "./@types/ai-call";
6
+ export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn, } from "./@types/ai-call";
7
+ type AIConstructor = {
8
+ googleGeminiToken?: string;
9
+ openAIApiKey?: string;
10
+ openRouterApiKey?: string;
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;
15
+ /** Instância de checkpointer para usuários avançados (alternativa a memory) */
16
+ checkpointer?: BaseCheckpointSaver;
17
+ };
18
+ export declare class AI {
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;
28
+ private checkpointer;
29
+ private checkpointerPromise;
30
+ constructor(config: AIConstructor);
31
+ private getCheckpointer;
32
+ private ensureThreadIdWhenCheckpointer;
33
+ private invokeWithRetryAndFallback;
34
+ call(params: AICallParams): AICallReturn;
35
+ callStructuredOutput<T extends z.ZodSchema>(params: AICallStructuredOutputParams<T>): AICallStructuredOutputReturn<typeof params.outputSchema>;
36
+ /**
37
+ * Normaliza schemas Zod para compatibilidade com OpenAI/OpenRouter
38
+ * OpenAI exige que todos os campos em properties estejam no array required
39
+ * quando usa response_format: 'extract'
40
+ */
41
+ private normalizeSchemaForOpenAI;
42
+ getRawAgent(params: AICallParams, outputSchema?: z.ZodSchema | undefined): Promise<{
43
+ agent: AIAgent;
44
+ }>;
45
+ private getModel;
46
+ private standardAgent;
47
+ private standardMiddlewares;
48
+ }
49
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +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,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 ADDED
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AI = void 0;
7
+ const models_1 = require("./langchain/models");
8
+ const zod_1 = __importDefault(require("zod"));
9
+ const langchain_1 = require("langchain");
10
+ const checkpointers_1 = require("./langchain/checkpointers");
11
+ class AI {
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
+ }
26
+ checkpointer;
27
+ checkpointerPromise;
28
+ constructor(config) {
29
+ this.config = config;
30
+ if (config.checkpointer) {
31
+ this.checkpointer = config.checkpointer;
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
+ }
39
+ }
40
+ async getCheckpointer() {
41
+ if (this.checkpointer)
42
+ return this.checkpointer;
43
+ if (this._memory) {
44
+ if (!this.checkpointerPromise) {
45
+ this.checkpointerPromise = this._memory.getCheckpointer();
46
+ }
47
+ this.checkpointer = await this.checkpointerPromise;
48
+ return this.checkpointer;
49
+ }
50
+ return undefined;
51
+ }
52
+ ensureThreadIdWhenCheckpointer(params) {
53
+ if (this.config.checkpointer || this.config.memory !== undefined) {
54
+ if (!params.threadId) {
55
+ throw new Error("threadId é obrigatório quando memory ou checkpointer está configurado. " +
56
+ "Passe threadId em AICallParams para identificar a conversa.");
57
+ }
58
+ }
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
+ }
77
+ async call(params) {
78
+ const { messages } = params;
79
+ this.ensureThreadIdWhenCheckpointer(params);
80
+ const checkpointer = await this.getCheckpointer();
81
+ const invokeConfig = params.threadId && checkpointer
82
+ ? { configurable: { thread_id: params.threadId } }
83
+ : undefined;
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);
88
+ const rawContent = response.messages.at(-1)?.content;
89
+ const text = typeof rawContent === "string" && rawContent.trim()
90
+ ? rawContent
91
+ : "Empty response from the model";
92
+ return {
93
+ text,
94
+ messages: response.messages,
95
+ };
96
+ }
97
+ async callStructuredOutput(params) {
98
+ const { outputSchema, messages } = params;
99
+ this.ensureThreadIdWhenCheckpointer(params);
100
+ const checkpointer = await this.getCheckpointer();
101
+ const invokeConfig = params.threadId && checkpointer
102
+ ? { configurable: { thread_id: params.threadId } }
103
+ : undefined;
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);
109
+ const parsedResponse = outputSchema.parse(response?.structuredResponse);
110
+ return { response: parsedResponse };
111
+ }
112
+ /**
113
+ * Normaliza schemas Zod para compatibilidade com OpenAI/OpenRouter
114
+ * OpenAI exige que todos os campos em properties estejam no array required
115
+ * quando usa response_format: 'extract'
116
+ */
117
+ normalizeSchemaForOpenAI(schema, aiModel) {
118
+ // Apenas normaliza para modelos OpenAI/OpenRouter
119
+ const isOpenAIModel = aiModel.startsWith("gpt") || aiModel.startsWith("openrouter/openai/");
120
+ if (!isOpenAIModel) {
121
+ return schema;
122
+ }
123
+ // Se o schema é um objeto Zod, precisamos normalizar campos opcionais
124
+ if (schema instanceof zod_1.default.ZodObject) {
125
+ const shape = schema.shape;
126
+ const newShape = {};
127
+ // Converte campos opcionais para nullable para compatibilidade com OpenAI
128
+ // OpenAI requer que todos os campos estejam no array required
129
+ for (const [key, value] of Object.entries(shape)) {
130
+ if (value instanceof zod_1.default.ZodOptional) {
131
+ // Converte .optional() para .nullable() para compatibilidade com OpenAI
132
+ const innerType = value._def.innerType;
133
+ // Usa z.union para criar um tipo nullable
134
+ newShape[key] = zod_1.default.union([innerType, zod_1.default.null()]);
135
+ }
136
+ else {
137
+ newShape[key] = value;
138
+ }
139
+ }
140
+ return zod_1.default.object(newShape);
141
+ }
142
+ return schema;
143
+ }
144
+ async getRawAgent(params, outputSchema) {
145
+ this.ensureThreadIdWhenCheckpointer(params);
146
+ const checkpointer = await this.getCheckpointer();
147
+ const agent = (0, langchain_1.createAgent)({
148
+ ...this.standardAgent(params, checkpointer),
149
+ responseFormat: outputSchema,
150
+ });
151
+ this._memory?.setAgent(agent);
152
+ return { agent };
153
+ }
154
+ getModel(params) {
155
+ const { aiModel, modelConfig } = params;
156
+ const config = {
157
+ model: aiModel,
158
+ maxTokens: modelConfig?.maxTokens,
159
+ temperature: modelConfig?.temperature,
160
+ };
161
+ if (aiModel.startsWith("gpt")) {
162
+ config.apiKey = this.config.openAIApiKey;
163
+ return models_1.AIModels.gpt(config);
164
+ }
165
+ if (aiModel.startsWith("gemini")) {
166
+ config.apiKey = this.config.googleGeminiToken;
167
+ return models_1.AIModels.gemini(config);
168
+ }
169
+ if (aiModel.startsWith("openrouter/")) {
170
+ const modelName = aiModel.replace(/^openrouter\//, "");
171
+ return models_1.AIModels.openrouter({
172
+ ...config,
173
+ model: modelName,
174
+ apiKey: this.config.openRouterApiKey,
175
+ });
176
+ }
177
+ throw new Error("Model not supported");
178
+ }
179
+ standardAgent(params, checkpointer) {
180
+ const { systemPrompt, maxRetries = 3 } = params;
181
+ const model = this.getModel(params);
182
+ return {
183
+ model,
184
+ systemPrompt: systemPrompt ?? "",
185
+ middleware: [
186
+ ...this.standardMiddlewares(maxRetries),
187
+ ...(params.agent?.middleware ?? []),
188
+ ],
189
+ tools: params.agent?.tools ?? [],
190
+ responseFormat: undefined,
191
+ ...(checkpointer && { checkpointer }),
192
+ };
193
+ }
194
+ standardMiddlewares(maxRetries) {
195
+ return [
196
+ (0, langchain_1.modelRetryMiddleware)({
197
+ maxRetries,
198
+ backoffFactor: 2.0,
199
+ initialDelayMs: 1000,
200
+ onFailure: "error",
201
+ }),
202
+ ];
203
+ }
204
+ }
205
+ exports.AI = AI;
206
+ //# sourceMappingURL=ai.js.map
package/dist/ai.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,56 +1,14 @@
1
- import { AIModels, LLMModelConfig } from "./langchain/models";
2
- import { AIModelNames } from "./@types/model-names";
3
1
  import z from "zod";
4
- import { MessageInput } from "./langchain/messages";
5
- import { AgentMiddleware, BaseMessage, createAgent } from "langchain";
6
- import { ClientTool, ServerTool } from "@langchain/core/tools";
7
- import { AIMessages } from "./langchain/messages";
8
- import { AITools } from "./langchain/tools";
9
- type AIConstructor = {
10
- googleGeminiToken?: string;
11
- openAIApiKey?: string;
12
- openRouterApiKey?: string;
13
- };
14
- export type AICallParams = {
15
- agent?: {
16
- middleware?: AgentMiddleware[];
17
- tools?: (ServerTool | ClientTool)[];
18
- };
19
- modelConfig?: Omit<LLMModelConfig, "apiKey" | "model">;
20
- aiModel: AIModelNames;
21
- messages: MessageInput[];
22
- systemPrompt?: string;
23
- maxRetries?: number;
24
- };
25
- export type AICallReturn = Promise<{
26
- text: string;
27
- messages: BaseMessage[];
28
- }>;
29
- export type AICallStructuredOutputParams<T extends z.ZodSchema> = AICallParams & {
30
- outputSchema: T;
31
- };
32
- export type AICallStructuredOutputReturn<T> = Promise<{
33
- response: z.infer<T>;
34
- }>;
35
- export declare class AI {
36
- private tokens;
37
- constructor(tokens: AIConstructor);
38
- call(params: AICallParams): AICallReturn;
39
- callStructuredOutput<T extends z.ZodSchema>(params: AICallStructuredOutputParams<T>): AICallStructuredOutputReturn<typeof params.outputSchema>;
40
- /**
41
- * Normaliza schemas Zod para compatibilidade com OpenAI/OpenRouter
42
- * OpenAI exige que todos os campos em properties estejam no array required
43
- * quando usa response_format: 'extract'
44
- */
45
- private normalizeSchemaForOpenAI;
46
- getRawAgent(params: AICallParams, outputSchema?: z.ZodSchema | undefined): {
47
- agent: ReturnType<typeof createAgent>;
48
- };
49
- private getModel;
50
- private standardAgent;
51
- private standardMiddlewares;
52
- }
53
- export { AIModels, AIMessages, AITools };
2
+ import { AI } from "./ai";
3
+ import type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn } from "./@types/ai-call";
4
+ export { AI };
5
+ export type { AIAgent } from "./@types/agent";
6
+ export type { AICallParams, AICallReturn, AICallStructuredOutputParams, AICallStructuredOutputReturn, } from "./@types/ai-call";
7
+ export { AIModels } from "./langchain/models";
8
+ export { AIMessages } from "./langchain/messages";
9
+ export { AITools } from "./langchain/tools";
10
+ export { AIMemory } from "./langchain/checkpointers";
11
+ export type { MemoryConfig, BaseCheckpointSaver, MemoryCheckpointerConfig, SqliteCheckpointerConfig, PostgresCheckpointerConfig, RedisCheckpointerConfig, MongoDBCheckpointerConfig, GraphWithStateHistory, MessageRole, HistoryMessageItem, GetHistoryResult, } from "./langchain/checkpointers";
54
12
  export { AIAudioTranscription } from "./langchain/audio-transcription";
55
13
  export { AudioUtils } from "./utils/audio-utils";
56
14
  export type { AudioBuffer, AudioMimeType } from "./@types/audio";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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"}