n8n-nodes-zihin 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,25 +3,21 @@
3
3
  [![npm version](https://badge.fury.io/js/n8n-nodes-zihin.svg)](https://badge.fury.io/js/n8n-nodes-zihin)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- n8n node for **Zihin LLM Gateway** - Unified LLM API with intelligent provider routing.
6
+ Nós n8n para integração com **Zihin LLM Gateway** - API unificada de LLMs com roteamento inteligente entre providers (OpenAI, Anthropic, Google, Grok e outros).
7
7
 
8
- ## O que é o Zihin?
8
+ ## Nós Disponíveis
9
9
 
10
- Zihin é um gateway inteligente de LLMs que oferece:
11
-
12
- - **Roteamento Automático**: Seleciona automaticamente o melhor modelo para cada tarefa
13
- - **Cache Semântico**: Reduz custos e latência com cache inteligente
14
- - **Acesso Unificado**: Uma única API para múltiplos providers (OpenAI, Anthropic, Google, Grok, OpenRouter)
15
- - **Monitoramento**: Rastreamento de custos, uso e performance em tempo real
10
+ | | Uso | Tool Calling |
11
+ |----|-----|--------------|
12
+ | **Zihin Gateway** | Workflows tradicionais | Não |
13
+ | **Zihin Chat Model** | AI Agents (LangChain) | Sim |
16
14
 
17
15
  ## Instalação
18
16
 
19
- ### Via n8n Community Nodes
17
+ ### Via n8n Community Nodes (Recomendado)
20
18
 
21
- 1. Abra sua instância do n8n
22
- 2. para **Settings** > **Community Nodes**
23
- 3. Selecione **Install**
24
- 4. Digite `n8n-nodes-zihin` e clique em **Install**
19
+ 1. **Settings** > **Community Nodes** > **Install**
20
+ 2. Digite `n8n-nodes-zihin` e instale
25
21
 
26
22
  ### Via npm
27
23
 
@@ -29,210 +25,110 @@ Zihin é um gateway inteligente de LLMs que oferece:
29
25
  npm install n8n-nodes-zihin
30
26
  ```
31
27
 
32
- ### Desenvolvimento Local
28
+ ## Configuração
33
29
 
34
- ```bash
35
- # Clone o repositório
36
- git clone https://github.com/oliveiraronan/n8n-nodes-zihin.git
37
- cd n8n-nodes-zihin
30
+ 1. Obtenha sua API Key em [zihin.ai](https://console.zihin.ai) > **Settings** > **API Keys**
31
+ 2. No n8n: **Credentials** > **Add Credential** > **Zihin API**
32
+ 3. Cole sua API Key (formato: `zhn_live_xxx`)
38
33
 
39
- # Instale dependências
40
- npm install
34
+ ---
41
35
 
42
- # Build
43
- npm run build
36
+ ## Uso: Zihin Gateway
44
37
 
45
- # Link para n8n local
46
- cd ~/.n8n/nodes
47
- npm link /caminho/para/n8n-nodes-zihin
48
- ```
38
+ Para chamadas diretas em workflows tradicionais.
49
39
 
50
- ## Configuração
40
+ ```
41
+ [Trigger] → [Zihin Gateway] → [Próximo nó]
42
+ ```
51
43
 
52
- ### Obter API Key
44
+ 1. Adicione o nó **Zihin Gateway**
45
+ 2. Selecione um modelo ou use **Auto** para roteamento inteligente
46
+ 3. Escolha **Prompt Simples** ou **Messages** (conversacional)
47
+ 4. Execute
53
48
 
54
- 1. Acesse [zihin.ai](https://zihin.ai) e crie uma conta
55
- 2. Navegue até **Settings** > **API Keys**
56
- 3. Crie uma nova API Key (formato: `zhn_live_xxx` ou `zhn_test_xxx`)
49
+ ## Uso: Zihin Chat Model
57
50
 
58
- ### Configurar Credenciais no n8n
51
+ Para AI Agents com suporte a ferramentas.
59
52
 
60
- 1. No n8n, vá para **Credentials** > **Add Credential**
61
- 2. Busque por **Zihin API**
62
- 3. Cole sua API Key
63
- 4. Salve as credenciais
53
+ ```
54
+ [Chat Trigger] [AI Agent] ← [Zihin Chat Model]
55
+
56
+ [Tools]
57
+ ```
64
58
 
65
- ## Uso
59
+ 1. Adicione um nó **AI Agent**
60
+ 2. Conecte **Zihin Chat Model** como Chat Model
61
+ 3. Adicione **Tools** (Calculator, HTTP Request, etc.)
62
+ 4. Conecte um trigger e execute
66
63
 
67
- ### Exemplo Básico - Prompt Simples
64
+ ---
68
65
 
69
- 1. Adicione o nó **Zihin Gateway** ao seu workflow
70
- 2. Selecione um modelo (ex: `OpenAI - GPT-4o`)
71
- 3. Escolha **Input Type**: `Prompt Simples`
72
- 4. Digite seu prompt
73
- 5. Execute o workflow
66
+ ## Parâmetros
74
67
 
75
- ### Exemplo - Auto-routing
68
+ ### Principais
76
69
 
77
- O Zihin pode selecionar automaticamente o melhor modelo para sua tarefa:
70
+ | Parâmetro | Default | Descrição |
71
+ |-----------|---------|-----------|
72
+ | Model | - | Modelo LLM ou "Auto" para roteamento inteligente |
73
+ | Temperature | 0.7 | Criatividade (0-2) |
74
+ | Max Tokens | 4096 | Limite de tokens na resposta |
78
75
 
79
- 1. Selecione **Model**: `Auto (Roteamento Inteligente)`
80
- 2. Escolha o **Task Type** que melhor descreve sua tarefa:
81
- - `Chat / Conversação`: Conversas gerais
82
- - `Coding / Programação`: Geração e análise de código
83
- - `Analysis / Análise`: Análise de dados e documentos
84
- - `Planning / Planejamento`: Planejamento e estratégia
85
- - `Creative / Criativo`: Escrita criativa
86
- - `Data Query / Consulta de Dados`: Consultas estruturadas
87
- - `Tool Calling / Chamada de Ferramentas`: Uso de ferramentas/funções
88
- 3. Adicione suas mensagens no formato **Messages** (o modo Auto requer formato conversacional)
76
+ ### Avançados (Ambos os Nós)
89
77
 
90
- ### Exemplo - Conversação Multi-turno
78
+ | Parâmetro | Default | Descrição |
79
+ |-----------|---------|-----------|
80
+ | Timeout | 60s | Tempo máximo de espera |
81
+ | Max Retries | 2 | Tentativas com backoff exponencial |
82
+ | Base URL Override | - | URL alternativa para testes locais |
91
83
 
92
- Para conversas com contexto:
84
+ ### Exclusivo do Chat Model
93
85
 
94
- 1. Escolha **Input Type**: `Messages (Conversacional)`
95
- 2. Adicione mensagens com diferentes roles:
96
- - `System`: Instruções de comportamento do assistente
97
- - `User`: Mensagens do usuário
98
- - `Assistant`: Respostas anteriores do assistente
86
+ | Parâmetro | Default | Descrição |
87
+ |-----------|---------|-----------|
88
+ | Max Context Messages | 0 | Limite de mensagens (0 = sem limite) |
99
89
 
100
- ## Parâmetros
90
+ ---
101
91
 
102
- ### Parâmetros Principais
103
-
104
- | Parâmetro | Tipo | Obrigatório | Descrição |
105
- |-----------|------|-------------|-----------|
106
- | Model | options | Sim | Modelo LLM ou "auto" para roteamento inteligente |
107
- | Task Type | options | Não | Tipo de tarefa (apenas quando model="auto") |
108
- | Input Type | options | Sim | "Prompt Simples" ou "Messages" (Auto requer Messages) |
109
- | Prompt | string | Condicional | Texto do prompt (quando Input Type = "Prompt Simples") |
110
- | Messages | collection | Condicional | Lista de mensagens (quando Input Type = "Messages") |
111
-
112
- ### Options (Avançado)
113
-
114
- | Parâmetro | Tipo | Default | Descrição |
115
- |-----------|------|---------|-----------|
116
- | Temperature | number | 0.7 | Criatividade (0-2) |
117
- | Max Tokens | number | 1000 | Limite de tokens na resposta |
118
- | Top P | number | 1 | Nucleus sampling (0-1) |
119
- | Frequency Penalty | number | 0 | Reduz repetição (-2 a 2) |
120
- | Presence Penalty | number | 0 | Incentiva novos tópicos (-2 a 2) |
121
- | Stop Sequences | string | - | Sequências de parada (vírgula-separadas) |
122
- | Session ID | string | - | ID para manter contexto entre chamadas |
123
-
124
- ## Modelos Disponíveis
125
-
126
- ### OpenAI
127
- - GPT-5 (`openai.gpt-5`)
128
- - GPT-5 Mini (`openai.gpt-5-mini`)
129
- - GPT-5 Nano (`openai.gpt-5-nano`)
130
- - GPT-4.1 (`openai.gpt-4.1`)
131
- - GPT-4.1 Mini (`openai.gpt-4.1-mini`)
132
- - GPT-4.1 Nano (`openai.gpt-4.1-nano`)
133
-
134
- ### Anthropic
135
- - Claude Sonnet 4.5 (`anthropic.claude-sonnet-4-5-20250929`)
136
- - Claude Haiku 4.5 (`anthropic.claude-haiku-4-5-20251001`)
137
- - Claude Opus 4.1 (`anthropic.claude-opus-4-1-20250805`)
138
- - Claude Sonnet 4 (`anthropic.claude-sonnet-4-20250514`)
139
- - Claude 3.5 Haiku (`anthropic.claude-3-5-haiku-20241022`)
140
-
141
- ### Google
142
- - Gemini 2.5 Flash Lite (`google.gemini-2.5-flash-lite`)
143
- - Gemini 2.0 Flash (`google.gemini-2.0-flash`)
144
- - Gemini 2.0 Flash Lite (`google.gemini-2.0-flash-lite`)
145
-
146
- ### Grok
147
- - Grok 4 Fast Reasoning (`grok.grok-4-fast-reasoning`)
148
- - Grok 4 Fast (`grok.grok-4-fast-non-reasoning`)
149
- - Grok 4 (`grok.grok-4-0709`)
150
- - Grok Code Fast (`grok.grok-code-fast-1`)
151
- - Grok 3 (`grok.grok-3`)
152
- - Grok 3 Mini (`grok.grok-3-mini`)
153
- - Grok 2 (`grok.grok-2-1212`)
154
- - Grok 2 Vision (`grok.grok-2-vision-1212`)
155
-
156
- ## Output
157
-
158
- O nó retorna um objeto JSON com a seguinte estrutura:
159
-
160
- ```json
161
- {
162
- "content": "Resposta do modelo...",
163
- "model": "gpt-4.1-mini",
164
- "provider": "openai",
165
- "threadId": null,
166
- "finishReason": "stop",
167
- "usage": {
168
- "prompt_tokens": 50,
169
- "completion_tokens": 100,
170
- "total_tokens": 150,
171
- "cached_tokens": 0
172
- },
173
- "cost": {
174
- "input_cost_usd": 0.00025,
175
- "output_cost_usd": 0.0015,
176
- "total_cost_usd": 0.00175
177
- },
178
- "cached": false,
179
- "requestId": "req_abc123",
180
- "executionTimeMs": 1234,
181
- "autoRouting": null
182
- }
183
- ```
92
+ ## Modelos Suportados
184
93
 
185
- Quando usando `model="auto"`, o campo `autoRouting` contém:
186
-
187
- ```json
188
- {
189
- "autoRouting": {
190
- "originalModel": "auto",
191
- "selectedModel": "openai.gpt-4o",
192
- "confidence": 0.95,
193
- "reasoning": "Task requires coding capabilities..."
194
- }
195
- }
196
- ```
94
+ - **OpenAI**: GPT-5, GPT-4.1, GPT-4.1-mini
95
+ - **Anthropic**: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.1
96
+ - **Google**: Gemini 2.5 Flash, Gemini 2.0 Flash
97
+ - **Grok**: Grok 4, Grok 3, Grok Code
197
98
 
198
- ## Troubleshooting
99
+ Use **Auto** para roteamento automático baseado no tipo de tarefa.
199
100
 
200
- ### Erro: "API Key inválida ou expirada"
201
- - Verifique se a API Key está correta
202
- - Confirme que a key não expirou no dashboard do Zihin
203
- - Teste a key diretamente na API
101
+ ---
204
102
 
205
- ### Erro: "Rate limit excedido"
206
- - Aguarde o tempo indicado na mensagem
207
- - Considere upgrade do plano no Zihin
208
- - Implemente retry com backoff no workflow
103
+ ## Troubleshooting
209
104
 
210
- ### Erro: "Modelo inválido"
211
- - Verifique se o modelo selecionado está disponível
212
- - Use o modelo "auto" se não tiver certeza
105
+ | Erro | Solução |
106
+ |------|---------|
107
+ | "Tools Agent requires Chat Model..." | Use **Zihin Chat Model**, não Gateway |
108
+ | "API Key inválida" | Verifique a key no dashboard Zihin |
109
+ | "Timeout após Xms" | Aumente o timeout em Options |
110
+ | "Rate limit" | Aguarde ou faça upgrade do plano |
213
111
 
214
- ### Erro de conexão
215
- - Verifique sua conexão com a internet
216
- - Confirme que `llm.zihin.ai` está acessível
217
- - Verifique firewall/proxy da sua rede
112
+ ---
218
113
 
219
- ## Links Úteis
114
+ ## Changelog
220
115
 
221
- - [Documentação Zihin](https://docs.zihin.ai)
222
- - [Dashboard Zihin](https://zihin.ai)
223
- - [Documentação n8n](https://docs.n8n.io)
224
- - [GitHub Issues](https://github.com/aionz-tech/n8n-nodes-zihin/issues)
116
+ ### v0.3.0 (2025-12-16)
117
+ - **Ambos os nós**: Timeout, Max Retries com backoff, Base URL Override
118
+ - **Chat Model**: Max Context Messages para proteção de custos
119
+ - Telemetria com call_source dinâmico
225
120
 
226
- ## Suporte
121
+ ### v0.2.0 (2024-12-05)
122
+ - Zihin Chat Model para AI Agents com Tool Calling
227
123
 
228
- - **Bugs e Features**: [GitHub Issues](https://github.com/aionz-tech/n8n-nodes-zihin/issues)
229
- - **Email**: dev@aionz.com.br
230
- - **Documentação**: [docs.zihin.ai](https://docs.zihin.ai)
124
+ ### v0.1.0
125
+ - Release inicial com Zihin Gateway
231
126
 
232
- ## Licença
127
+ ---
233
128
 
234
- MIT License - veja o arquivo [LICENSE](LICENSE) para detalhes.
129
+ ## Links
235
130
 
236
- ---
131
+ - [Documentação Zihin](https://docs.zihin.ai)
132
+ - [Dashboard](https://console.zihin.ai/admin/home)
237
133
 
238
- Desenvolvido por [Aionz](https://aionz.com.br)
134
+ **Licença**: MIT | Desenvolvido por [Zihin AI Inc](https://zihin.ai)
@@ -0,0 +1,12 @@
1
+ import { INodeType, INodeTypeDescription, ISupplyDataFunctions, SupplyData } from 'n8n-workflow';
2
+ /**
3
+ * n8n Node: Zihin Chat Model
4
+ * Sub-node for AI Agents that provides Zihin LLM as a chat model with Tool Calling support
5
+ */
6
+ export declare class ZihinChatModel implements INodeType {
7
+ description: INodeTypeDescription;
8
+ /**
9
+ * Supply the LangChain chat model to the AI Agent
10
+ */
11
+ supplyData(this: ISupplyDataFunctions, itemIndex: number): Promise<SupplyData>;
12
+ }
@@ -0,0 +1,636 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZihinChatModel = void 0;
4
+ // String literal for AI Language Model connection type
5
+ const AI_LANGUAGE_MODEL_OUTPUT = 'ai_languageModel';
6
+ const chat_models_1 = require("@langchain/core/language_models/chat_models");
7
+ const messages_1 = require("@langchain/core/messages");
8
+ /**
9
+ * Zihin Chat Model - LangChain compatible chat model for n8n AI Agents
10
+ * Supports Tool Calling for AI Agent integration
11
+ */
12
+ class ZihinLangChainChatModel extends chat_models_1.BaseChatModel {
13
+ static lc_name() {
14
+ return 'ZihinChatModel';
15
+ }
16
+ get lc_secrets() {
17
+ return {
18
+ apiKey: 'ZIHIN_API_KEY',
19
+ };
20
+ }
21
+ constructor(fields) {
22
+ super({});
23
+ this.boundTools = [];
24
+ this.apiKey = fields.apiKey;
25
+ this.modelName = fields.modelName;
26
+ this.taskType = fields.taskType || 'tool_calling';
27
+ this.temperature = fields.temperature ?? 0.7;
28
+ this.maxTokens = fields.maxTokens ?? 4096;
29
+ this.topP = fields.topP ?? 1;
30
+ this.frequencyPenalty = fields.frequencyPenalty ?? 0;
31
+ this.presencePenalty = fields.presencePenalty ?? 0;
32
+ // Novos campos - Alta Prioridade
33
+ this.timeout = fields.timeout ?? 60000;
34
+ this.maxRetries = fields.maxRetries ?? 2;
35
+ this.baseUrl = fields.baseUrl || 'https://llm.zihin.ai';
36
+ // Novos campos - Média Prioridade
37
+ this.maxContextMessages = fields.maxContextMessages ?? 0;
38
+ // Novos campos - Baixa Prioridade
39
+ this.stop = fields.stop ? fields.stop.split(',').map((s) => s.trim()) : [];
40
+ this.sessionId = fields.sessionId ?? '';
41
+ // Contexto para call_source dinâmico
42
+ this.callSourceContext = fields.callSourceContext ?? {};
43
+ }
44
+ _llmType() {
45
+ return 'zihin';
46
+ }
47
+ /**
48
+ * Constrói o call_source dinâmico com contexto do workflow/node/execution
49
+ * Formato: n8n_chat_model.{workflow_id}.{node_name}.{execution_id}
50
+ */
51
+ buildCallSource() {
52
+ const parts = ['n8n_chat_model'];
53
+ if (this.callSourceContext.workflowId) {
54
+ parts.push(this.callSourceContext.workflowId);
55
+ }
56
+ if (this.callSourceContext.nodeName) {
57
+ // Sanitiza o nome do node (remove espaços e caracteres especiais)
58
+ const sanitizedNodeName = this.callSourceContext.nodeName
59
+ .replace(/[^a-zA-Z0-9_-]/g, '_')
60
+ .substring(0, 50);
61
+ parts.push(sanitizedNodeName);
62
+ }
63
+ if (this.callSourceContext.executionId) {
64
+ parts.push(this.callSourceContext.executionId);
65
+ }
66
+ return parts.join('.');
67
+ }
68
+ /**
69
+ * Helper para delay (usado no retry)
70
+ */
71
+ async _delay(ms) {
72
+ return new Promise((resolve) => setTimeout(resolve, ms));
73
+ }
74
+ /**
75
+ * Executa chamada HTTP com timeout e retry com exponential backoff
76
+ */
77
+ async _callWithRetry(requestBody) {
78
+ let lastError = null;
79
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
80
+ try {
81
+ const controller = new AbortController();
82
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
83
+ const response = await fetch(this.baseUrl + '/api/v3/llm/public/call', {
84
+ method: 'POST',
85
+ headers: {
86
+ 'Content-Type': 'application/json',
87
+ 'X-Api-Key': this.apiKey,
88
+ },
89
+ body: JSON.stringify(requestBody),
90
+ signal: controller.signal,
91
+ });
92
+ clearTimeout(timeoutId);
93
+ // Retry apenas em erros 5xx ou rate limit (429)
94
+ if (response.status >= 500 || response.status === 429) {
95
+ throw new Error(`HTTP ${response.status}`);
96
+ }
97
+ return response;
98
+ }
99
+ catch (error) {
100
+ lastError = error;
101
+ // Timeout - não faz retry, lança imediatamente
102
+ if (error.name === 'AbortError') {
103
+ throw new Error(`Zihin API timeout após ${this.timeout}ms`);
104
+ }
105
+ // Retry com exponential backoff
106
+ if (attempt < this.maxRetries) {
107
+ const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
108
+ console.warn(`⚠️ Zihin API retry ${attempt + 1}/${this.maxRetries} após ${delay}ms`);
109
+ await this._delay(delay);
110
+ }
111
+ }
112
+ }
113
+ throw lastError || new Error('Max retries exceeded');
114
+ }
115
+ /**
116
+ * Convert a schema to JSON Schema format
117
+ */
118
+ schemaToJsonSchema(schema) {
119
+ if (!schema)
120
+ return {};
121
+ // If it's already a plain object (JSON Schema), return it
122
+ if (typeof schema === 'object' && schema !== null) {
123
+ // Check if it's a Zod schema (has _def property)
124
+ if ('_def' in schema) {
125
+ // Try to get the JSON schema if available
126
+ const zodSchema = schema;
127
+ if (zodSchema.shape && typeof zodSchema.shape === 'object') {
128
+ // Basic Zod object schema conversion
129
+ const properties = {};
130
+ for (const [key, value] of Object.entries(zodSchema.shape)) {
131
+ properties[key] = { type: 'string' }; // Simplified - could be enhanced
132
+ if (value && typeof value === 'object' && '_def' in value) {
133
+ const def = value._def;
134
+ if (def.description) {
135
+ properties[key].description = def.description;
136
+ }
137
+ }
138
+ }
139
+ return {
140
+ type: 'object',
141
+ properties,
142
+ };
143
+ }
144
+ return { type: 'object', properties: {} };
145
+ }
146
+ // Already JSON Schema format
147
+ return schema;
148
+ }
149
+ return {};
150
+ }
151
+ /**
152
+ * Bind tools to the model for function calling
153
+ */
154
+ bindTools(tools, _kwargs) {
155
+ // Convert LangChain tools to Zihin format
156
+ this.boundTools = tools.map((tool) => {
157
+ // Handle different tool formats
158
+ if ('name' in tool && 'description' in tool) {
159
+ const structuredTool = tool;
160
+ return {
161
+ type: 'function',
162
+ function: {
163
+ name: structuredTool.name,
164
+ description: structuredTool.description,
165
+ parameters: this.schemaToJsonSchema(structuredTool.schema),
166
+ },
167
+ };
168
+ }
169
+ // Fallback for other formats
170
+ return {
171
+ type: 'function',
172
+ function: {
173
+ name: String(tool.name || 'unknown'),
174
+ description: String(tool.description || ''),
175
+ parameters: this.schemaToJsonSchema(tool.schema),
176
+ },
177
+ };
178
+ });
179
+ // Return this model with tools bound (as a Runnable)
180
+ return this;
181
+ }
182
+ /**
183
+ * Convert LangChain messages to Zihin API format
184
+ */
185
+ convertMessages(messages) {
186
+ return messages.map((message) => {
187
+ const type = message._getType();
188
+ // Handle Tool Messages (results from tool calls)
189
+ if (type === 'tool') {
190
+ const toolMsg = message;
191
+ return {
192
+ role: 'tool',
193
+ content: typeof toolMsg.content === 'string' ? toolMsg.content : JSON.stringify(toolMsg.content),
194
+ tool_call_id: toolMsg.tool_call_id,
195
+ };
196
+ }
197
+ // Handle AI Messages with tool calls
198
+ if (type === 'ai') {
199
+ const aiMsg = message;
200
+ const zihinMsg = {
201
+ role: 'assistant',
202
+ content: typeof aiMsg.content === 'string' ? aiMsg.content : JSON.stringify(aiMsg.content),
203
+ };
204
+ // Check for tool calls in the message
205
+ if (aiMsg.tool_calls && aiMsg.tool_calls.length > 0) {
206
+ zihinMsg.tool_calls = aiMsg.tool_calls.map((tc) => ({
207
+ id: tc.id || `call_${Date.now()}`,
208
+ type: 'function',
209
+ function: {
210
+ name: tc.name,
211
+ arguments: typeof tc.args === 'string' ? tc.args : JSON.stringify(tc.args),
212
+ },
213
+ }));
214
+ }
215
+ return zihinMsg;
216
+ }
217
+ // Handle other message types
218
+ let role;
219
+ if (type === 'system') {
220
+ role = 'system';
221
+ }
222
+ else if (type === 'human') {
223
+ role = 'user';
224
+ }
225
+ else if (message instanceof messages_1.ChatMessage) {
226
+ const chatRole = message.role.toLowerCase();
227
+ if (chatRole === 'system') {
228
+ role = 'system';
229
+ }
230
+ else if (chatRole === 'assistant') {
231
+ role = 'assistant';
232
+ }
233
+ else {
234
+ role = 'user';
235
+ }
236
+ }
237
+ else {
238
+ role = 'user';
239
+ }
240
+ return {
241
+ role,
242
+ content: typeof message.content === 'string' ? message.content : JSON.stringify(message.content),
243
+ };
244
+ });
245
+ }
246
+ /**
247
+ * Call the Zihin API
248
+ */
249
+ async _generate(messages, options, _runManager) {
250
+ let zihinMessages = this.convertMessages(messages);
251
+ // Truncamento de contexto (proteção contra custos excessivos)
252
+ if (this.maxContextMessages > 0 && zihinMessages.length > this.maxContextMessages) {
253
+ const systemMsg = zihinMessages.find((m) => m.role === 'system');
254
+ const otherMsgs = zihinMessages.filter((m) => m.role !== 'system');
255
+ const recentMsgs = otherMsgs.slice(-this.maxContextMessages);
256
+ zihinMessages = systemMsg ? [systemMsg, ...recentMsgs] : recentMsgs;
257
+ console.warn(`⚠️ [ZihinChatModel] Contexto truncado: ${messages.length} → ${zihinMessages.length} mensagens`);
258
+ }
259
+ const requestBody = {
260
+ model: this.modelName,
261
+ messages: zihinMessages,
262
+ options: {
263
+ temperature: options.temperature ?? this.temperature,
264
+ maxTokens: options.maxTokens ?? this.maxTokens,
265
+ topP: options.topP ?? this.topP,
266
+ frequencyPenalty: options.frequencyPenalty ?? this.frequencyPenalty,
267
+ presencePenalty: options.presencePenalty ?? this.presencePenalty,
268
+ // Novos campos opcionais
269
+ ...(this.stop.length > 0 && { stop: this.stop }),
270
+ ...(this.sessionId && { session_id: this.sessionId }),
271
+ call_source: this.buildCallSource(),
272
+ },
273
+ };
274
+ // Add tools if bound
275
+ if (this.boundTools.length > 0) {
276
+ requestBody.tools = this.boundTools;
277
+ requestBody.tool_choice = 'auto';
278
+ }
279
+ // Add context for auto-routing
280
+ if (this.modelName === 'auto') {
281
+ requestBody.context = {
282
+ task: this.taskType,
283
+ };
284
+ }
285
+ // Usar _callWithRetry com timeout e exponential backoff
286
+ const response = await this._callWithRetry(requestBody);
287
+ if (!response.ok) {
288
+ throw new Error(`Zihin API error: ${response.status} ${response.statusText}`);
289
+ }
290
+ const result = (await response.json());
291
+ if (!result.success || !result.data) {
292
+ throw new Error(result.message || result.error || 'Zihin API returned an error');
293
+ }
294
+ // Build the AI message with potential tool calls
295
+ const aiMessageContent = result.data.content || '';
296
+ const toolCalls = result.data.tool_calls?.map((tc) => ({
297
+ id: tc.id,
298
+ name: tc.function.name,
299
+ args: JSON.parse(tc.function.arguments || '{}'),
300
+ type: 'tool_call',
301
+ }));
302
+ const aiMessage = new messages_1.AIMessage({
303
+ content: aiMessageContent,
304
+ tool_calls: toolCalls,
305
+ additional_kwargs: {
306
+ model: result.data.model,
307
+ provider: result.data.provider,
308
+ finish_reason: result.data.finish_reason,
309
+ autoRouting: result.data.autoRouting,
310
+ },
311
+ });
312
+ const generation = {
313
+ text: aiMessageContent,
314
+ message: aiMessage,
315
+ generationInfo: {
316
+ finish_reason: result.data.finish_reason,
317
+ },
318
+ };
319
+ return {
320
+ generations: [generation],
321
+ llmOutput: {
322
+ tokenUsage: {
323
+ promptTokens: result.data.usage.prompt_tokens,
324
+ completionTokens: result.data.usage.completion_tokens,
325
+ totalTokens: result.data.usage.total_tokens,
326
+ },
327
+ model: result.data.model,
328
+ provider: result.data.provider,
329
+ },
330
+ };
331
+ }
332
+ }
333
+ /**
334
+ * n8n Node: Zihin Chat Model
335
+ * Sub-node for AI Agents that provides Zihin LLM as a chat model with Tool Calling support
336
+ */
337
+ class ZihinChatModel {
338
+ constructor() {
339
+ this.description = {
340
+ displayName: 'Zihin Chat Model',
341
+ name: 'lmChatZihin',
342
+ icon: 'file:zihin.png',
343
+ group: ['transform'],
344
+ version: 1,
345
+ description: 'Chat Model for Zihin LLM Gateway with intelligent provider routing and Tool Calling support',
346
+ defaults: {
347
+ name: 'Zihin Chat Model',
348
+ },
349
+ codex: {
350
+ categories: ['AI'],
351
+ subcategories: {
352
+ AI: ['Language Models', 'Chat Models (Recommended)'],
353
+ },
354
+ resources: {
355
+ primaryDocumentation: [
356
+ {
357
+ url: 'https://docs.zihin.ai',
358
+ },
359
+ ],
360
+ },
361
+ },
362
+ // No inputs - this is a sub-node
363
+ inputs: [],
364
+ // Output to AI Agent as language model
365
+ outputs: [AI_LANGUAGE_MODEL_OUTPUT],
366
+ outputNames: ['Model'],
367
+ credentials: [
368
+ {
369
+ name: 'zihinApi',
370
+ required: true,
371
+ },
372
+ ],
373
+ properties: [
374
+ // Model Selection
375
+ {
376
+ displayName: 'Model',
377
+ name: 'model',
378
+ type: 'options',
379
+ required: true,
380
+ default: 'auto',
381
+ description: 'Modelo LLM a ser usado. Use "auto" para roteamento inteligente baseado na tarefa.',
382
+ options: [
383
+ { name: 'Auto (Roteamento Inteligente)', value: 'auto' },
384
+ // OpenAI - GPT-5 Family
385
+ { name: 'OpenAI - GPT-5', value: 'openai.gpt-5' },
386
+ { name: 'OpenAI - GPT-5 Mini', value: 'openai.gpt-5-mini' },
387
+ { name: 'OpenAI - GPT-5 Nano', value: 'openai.gpt-5-nano' },
388
+ // OpenAI - GPT-4.1 Family
389
+ { name: 'OpenAI - GPT-4.1', value: 'openai.gpt-4.1' },
390
+ { name: 'OpenAI - GPT-4.1 Mini', value: 'openai.gpt-4.1-mini' },
391
+ { name: 'OpenAI - GPT-4.1 Nano', value: 'openai.gpt-4.1-nano' },
392
+ // Anthropic - Claude 4.5 Family
393
+ { name: 'Anthropic - Claude Sonnet 4.5', value: 'anthropic.claude-sonnet-4-5-20250929' },
394
+ { name: 'Anthropic - Claude Haiku 4.5', value: 'anthropic.claude-haiku-4-5-20251001' },
395
+ // Anthropic - Claude 4 Family
396
+ { name: 'Anthropic - Claude Opus 4.1', value: 'anthropic.claude-opus-4-1-20250805' },
397
+ { name: 'Anthropic - Claude Sonnet 4', value: 'anthropic.claude-sonnet-4-20250514' },
398
+ // Anthropic - Legacy
399
+ { name: 'Anthropic - Claude 3.5 Haiku', value: 'anthropic.claude-3-5-haiku-20241022' },
400
+ // Google - Gemini Family
401
+ { name: 'Google - Gemini 2.5 Flash Lite', value: 'google.gemini-2.5-flash-lite' },
402
+ { name: 'Google - Gemini 2.0 Flash', value: 'google.gemini-2.0-flash' },
403
+ { name: 'Google - Gemini 2.0 Flash Lite', value: 'google.gemini-2.0-flash-lite' },
404
+ // Grok - Grok-4 Family
405
+ { name: 'Grok - Grok 4 Fast Reasoning', value: 'grok.grok-4-fast-reasoning' },
406
+ { name: 'Grok - Grok 4 Fast', value: 'grok.grok-4-fast-non-reasoning' },
407
+ { name: 'Grok - Grok 4', value: 'grok.grok-4-0709' },
408
+ { name: 'Grok - Grok Code Fast', value: 'grok.grok-code-fast-1' },
409
+ // Grok - Grok-3 Family
410
+ { name: 'Grok - Grok 3', value: 'grok.grok-3' },
411
+ { name: 'Grok - Grok 3 Mini', value: 'grok.grok-3-mini' },
412
+ // Grok - Grok-2 Legacy
413
+ { name: 'Grok - Grok 2', value: 'grok.grok-2-1212' },
414
+ { name: 'Grok - Grok 2 Vision', value: 'grok.grok-2-vision-1212' },
415
+ ],
416
+ },
417
+ // Task Type (conditional - only when model="auto")
418
+ {
419
+ displayName: 'Task Type',
420
+ name: 'taskType',
421
+ type: 'options',
422
+ default: 'tool_calling',
423
+ description: 'Tipo de tarefa para otimizar a seleção automática do modelo (usado apenas no modo Auto)',
424
+ displayOptions: {
425
+ show: {
426
+ model: ['auto'],
427
+ },
428
+ },
429
+ options: [
430
+ { name: 'Tool Calling / Chamada de Ferramentas', value: 'tool_calling' },
431
+ { name: 'Chat / Conversação', value: 'chat' },
432
+ { name: 'Coding / Programação', value: 'coding' },
433
+ { name: 'Analysis / Análise', value: 'analysis' },
434
+ { name: 'Planning / Planejamento', value: 'planning' },
435
+ { name: 'Creative / Criativo', value: 'creative' },
436
+ { name: 'Data Query / Consulta de Dados', value: 'data_query' },
437
+ ],
438
+ },
439
+ // Options (collapsible collection)
440
+ {
441
+ displayName: 'Options',
442
+ name: 'options',
443
+ type: 'collection',
444
+ placeholder: 'Add Option',
445
+ default: {},
446
+ options: [
447
+ {
448
+ displayName: 'Temperature',
449
+ name: 'temperature',
450
+ type: 'number',
451
+ typeOptions: {
452
+ minValue: 0,
453
+ maxValue: 2,
454
+ numberStepSize: 0.1,
455
+ },
456
+ default: 0.7,
457
+ description: 'Controla a criatividade (0 = determinístico, 2 = muito criativo)',
458
+ },
459
+ {
460
+ displayName: 'Max Tokens',
461
+ name: 'maxTokens',
462
+ type: 'number',
463
+ typeOptions: {
464
+ minValue: 1,
465
+ maxValue: 128000,
466
+ },
467
+ default: 4096,
468
+ description: 'Limite máximo de tokens na resposta',
469
+ },
470
+ {
471
+ displayName: 'Top P',
472
+ name: 'topP',
473
+ type: 'number',
474
+ typeOptions: {
475
+ minValue: 0,
476
+ maxValue: 1,
477
+ numberStepSize: 0.1,
478
+ },
479
+ default: 1,
480
+ description: 'Nucleus sampling (alternativa a temperature)',
481
+ },
482
+ {
483
+ displayName: 'Frequency Penalty',
484
+ name: 'frequencyPenalty',
485
+ type: 'number',
486
+ typeOptions: {
487
+ minValue: -2,
488
+ maxValue: 2,
489
+ numberStepSize: 0.1,
490
+ },
491
+ default: 0,
492
+ description: 'Reduz repetição de tokens frequentes',
493
+ },
494
+ {
495
+ displayName: 'Presence Penalty',
496
+ name: 'presencePenalty',
497
+ type: 'number',
498
+ typeOptions: {
499
+ minValue: -2,
500
+ maxValue: 2,
501
+ numberStepSize: 0.1,
502
+ },
503
+ default: 0,
504
+ description: 'Incentiva novos tópicos na resposta',
505
+ },
506
+ // Novas opções - Alta Prioridade
507
+ {
508
+ displayName: 'Timeout',
509
+ name: 'timeout',
510
+ type: 'number',
511
+ typeOptions: {
512
+ minValue: 1000,
513
+ maxValue: 300000,
514
+ },
515
+ default: 60000,
516
+ description: 'Tempo máximo de espera em milissegundos (padrão: 60s)',
517
+ },
518
+ {
519
+ displayName: 'Max Retries',
520
+ name: 'maxRetries',
521
+ type: 'number',
522
+ typeOptions: {
523
+ minValue: 0,
524
+ maxValue: 5,
525
+ },
526
+ default: 2,
527
+ description: 'Número máximo de tentativas em caso de falha (com exponential backoff)',
528
+ },
529
+ // Novas opções - Média Prioridade
530
+ {
531
+ displayName: 'Base URL Override',
532
+ name: 'baseUrl',
533
+ type: 'string',
534
+ default: '',
535
+ description: 'URL base alternativa (deixar vazio para usar padrão: llm.zihin.ai). Útil para testes locais.',
536
+ },
537
+ {
538
+ displayName: 'Max Context Messages',
539
+ name: 'maxContextMessages',
540
+ type: 'number',
541
+ typeOptions: {
542
+ minValue: 0,
543
+ maxValue: 100,
544
+ },
545
+ default: 0,
546
+ description: 'Limite de mensagens no contexto (0 = sem limite). Proteção contra custos excessivos.',
547
+ },
548
+ // Novas opções - Baixa Prioridade
549
+ {
550
+ displayName: 'Stop Sequences',
551
+ name: 'stop',
552
+ type: 'string',
553
+ default: '',
554
+ description: 'Sequências que interrompem a geração (separadas por vírgula)',
555
+ },
556
+ {
557
+ displayName: 'Session ID',
558
+ name: 'sessionId',
559
+ type: 'string',
560
+ default: '',
561
+ description: 'ID de sessão para manter contexto entre chamadas na API',
562
+ },
563
+ ],
564
+ },
565
+ ],
566
+ };
567
+ }
568
+ /**
569
+ * Supply the LangChain chat model to the AI Agent
570
+ */
571
+ async supplyData(itemIndex) {
572
+ // Get credentials
573
+ const credentials = await this.getCredentials('zihinApi');
574
+ const apiKey = credentials.apiKey;
575
+ // Get node parameters
576
+ const model = this.getNodeParameter('model', itemIndex);
577
+ const taskType = this.getNodeParameter('taskType', itemIndex, 'tool_calling');
578
+ const options = this.getNodeParameter('options', itemIndex, {});
579
+ // Extrair contexto para call_source dinâmico
580
+ const callSourceContext = {};
581
+ try {
582
+ const workflowDataProxy = this.getWorkflowDataProxy(itemIndex);
583
+ // Extrair informações do workflow (acesso seguro)
584
+ if (workflowDataProxy?.$workflow) {
585
+ const workflow = workflowDataProxy.$workflow;
586
+ if (typeof workflow === 'object') {
587
+ callSourceContext.workflowId = workflow.id ?? workflow.name;
588
+ callSourceContext.workflowName = workflow.name;
589
+ }
590
+ }
591
+ // Extrair nome do node atual
592
+ if (workflowDataProxy?.$node) {
593
+ const node = workflowDataProxy.$node;
594
+ if (typeof node === 'object' && node.name) {
595
+ callSourceContext.nodeName = node.name;
596
+ }
597
+ }
598
+ // Extrair ID da execução (acesso alternativo)
599
+ if (workflowDataProxy?.$execution) {
600
+ const execution = workflowDataProxy.$execution;
601
+ if (typeof execution === 'object') {
602
+ callSourceContext.executionId = execution.id;
603
+ }
604
+ }
605
+ }
606
+ catch (error) {
607
+ // Se falhar ao extrair contexto, continuar com valores vazios
608
+ // Não é crítico - o call_source terá menos informações
609
+ }
610
+ // Create the LangChain chat model
611
+ const chatModel = new ZihinLangChainChatModel({
612
+ apiKey,
613
+ modelName: model,
614
+ taskType,
615
+ temperature: options.temperature,
616
+ maxTokens: options.maxTokens,
617
+ topP: options.topP,
618
+ frequencyPenalty: options.frequencyPenalty,
619
+ presencePenalty: options.presencePenalty,
620
+ // Novos campos
621
+ timeout: options.timeout,
622
+ maxRetries: options.maxRetries,
623
+ baseUrl: options.baseUrl,
624
+ maxContextMessages: options.maxContextMessages,
625
+ stop: options.stop,
626
+ sessionId: options.sessionId,
627
+ // Contexto para call_source dinâmico
628
+ callSourceContext,
629
+ });
630
+ return {
631
+ response: chatModel,
632
+ };
633
+ }
634
+ }
635
+ exports.ZihinChatModel = ZihinChatModel;
636
+ //# sourceMappingURL=ZihinChatModel.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZihinChatModel.node.js","sourceRoot":"","sources":["../../../src/nodes/ZihinChatModel/ZihinChatModel.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "node": "n8n-nodes-zihin.lmChatZihin",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["AI"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://docs.zihin.ai/api-keys"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://docs.zihin.ai/n8n"
15
+ }
16
+ ]
17
+ },
18
+ "alias": ["llm", "ai", "gpt", "claude", "gemini", "chat", "openai", "anthropic", "google", "grok", "langchain", "agent"],
19
+ "subcategories": {
20
+ "AI": ["Language Models", "Chat Models (Recommended)"]
21
+ }
22
+ }
@@ -277,7 +277,36 @@ class ZihinGateway {
277
277
  name: 'sessionId',
278
278
  type: 'string',
279
279
  default: '',
280
- description: 'ID de sessão para manter contexto entre chamadas',
280
+ description: 'ID de sessão para telemetria (API é stateless)',
281
+ },
282
+ {
283
+ displayName: 'Timeout',
284
+ name: 'timeout',
285
+ type: 'number',
286
+ typeOptions: {
287
+ minValue: 1000,
288
+ maxValue: 300000,
289
+ },
290
+ default: 60000,
291
+ description: 'Tempo máximo de espera em milissegundos (padrão: 60s)',
292
+ },
293
+ {
294
+ displayName: 'Max Retries',
295
+ name: 'maxRetries',
296
+ type: 'number',
297
+ typeOptions: {
298
+ minValue: 0,
299
+ maxValue: 5,
300
+ },
301
+ default: 2,
302
+ description: 'Número máximo de tentativas em caso de falha (0-5)',
303
+ },
304
+ {
305
+ displayName: 'Base URL Override',
306
+ name: 'baseUrl',
307
+ type: 'string',
308
+ default: '',
309
+ description: 'URL base alternativa (deixar vazio para usar padrão: llm.zihin.ai)',
281
310
  },
282
311
  ],
283
312
  },
@@ -293,6 +322,21 @@ class ZihinGateway {
293
322
  const model = this.getNodeParameter('model', itemIndex);
294
323
  const inputType = this.getNodeParameter('inputType', itemIndex);
295
324
  const options = this.getNodeParameter('options', itemIndex, {});
325
+ // Configuration with defaults
326
+ const timeout = options.timeout ?? 60000;
327
+ const maxRetries = options.maxRetries ?? 2;
328
+ const baseUrl = options.baseUrl || 'https://llm.zihin.ai';
329
+ // Build call_source for telemetry
330
+ let callSource = 'n8n_gateway';
331
+ try {
332
+ const workflowData = this.getWorkflow();
333
+ if (workflowData.id) {
334
+ callSource = `n8n_gateway.${workflowData.id}`;
335
+ }
336
+ }
337
+ catch {
338
+ // Ignore errors extracting workflow context
339
+ }
296
340
  // Build request body
297
341
  const body = {
298
342
  model,
@@ -348,19 +392,63 @@ class ZihinGateway {
348
392
  if (options.sessionId) {
349
393
  requestOptions.session_id = options.sessionId;
350
394
  }
395
+ // Always add call_source for telemetry
396
+ requestOptions.call_source = callSource;
351
397
  if (Object.keys(requestOptions).length > 0) {
352
398
  body.options = requestOptions;
353
399
  }
354
- // Make API request
355
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'zihinApi', {
356
- method: 'POST',
357
- url: 'https://llm.zihin.ai/api/v3/llm/public/call',
358
- headers: {
359
- 'Content-Type': 'application/json',
360
- },
361
- body,
362
- json: true,
363
- });
400
+ // Make API request with retry logic
401
+ let response = null;
402
+ let lastError = null;
403
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
404
+ try {
405
+ response = await this.helpers.httpRequestWithAuthentication.call(this, 'zihinApi', {
406
+ method: 'POST',
407
+ url: `${baseUrl}/api/v3/llm/public/call`,
408
+ headers: {
409
+ 'Content-Type': 'application/json',
410
+ },
411
+ body,
412
+ json: true,
413
+ timeout,
414
+ });
415
+ // Check if we should retry (5xx or 429)
416
+ if (!response.success && response.error) {
417
+ const shouldRetry = response.error === 'RATE_LIMIT_EXCEEDED' ||
418
+ response.error.includes('500') ||
419
+ response.error.includes('502') ||
420
+ response.error.includes('503') ||
421
+ response.error.includes('504');
422
+ if (shouldRetry && attempt < maxRetries) {
423
+ const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
424
+ console.warn(`⚠️ Zihin Gateway retry ${attempt + 1}/${maxRetries} após ${delay}ms`);
425
+ await new Promise(resolve => setTimeout(resolve, delay));
426
+ continue;
427
+ }
428
+ }
429
+ // Success or non-retryable error
430
+ break;
431
+ }
432
+ catch (error) {
433
+ lastError = error;
434
+ // Check if it's a timeout or network error that should be retried
435
+ const errorMessage = error.message?.toLowerCase() || '';
436
+ const isRetryable = errorMessage.includes('timeout') ||
437
+ errorMessage.includes('econnreset') ||
438
+ errorMessage.includes('econnrefused') ||
439
+ errorMessage.includes('socket');
440
+ if (isRetryable && attempt < maxRetries) {
441
+ const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
442
+ console.warn(`⚠️ Zihin Gateway retry ${attempt + 1}/${maxRetries} após ${delay}ms (${errorMessage})`);
443
+ await new Promise(resolve => setTimeout(resolve, delay));
444
+ continue;
445
+ }
446
+ throw error;
447
+ }
448
+ }
449
+ if (!response) {
450
+ throw lastError || new Error('Max retries exceeded');
451
+ }
364
452
  // Handle response
365
453
  if (!response.success) {
366
454
  if (response.error === 'RATE_LIMIT_EXCEEDED') {
@@ -1 +1 @@
1
- {"version":3,"file":"ZihinGateway.node.js","sourceRoot":"","sources":["../../../src/nodes/ZihinGateway/ZihinGateway.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZihinGateway.node.js","sourceRoot":"","sources":["../../../src/nodes/ZihinGateway/ZihinGateway.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ {
2
+ "node": "n8n-nodes-zihin.zihinGateway",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["AI", "Development"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://docs.zihin.ai/api-keys"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://docs.zihin.ai/n8n"
15
+ }
16
+ ]
17
+ },
18
+ "alias": ["llm", "ai", "gpt", "claude", "gemini", "chat", "completion", "openai", "anthropic", "google"],
19
+ "subcategories": {
20
+ "AI": ["Language Models"]
21
+ }
22
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-zihin",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "n8n node for Zihin LLM Gateway - Unified LLM API with intelligent provider routing",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -12,7 +12,10 @@
12
12
  "anthropic",
13
13
  "claude",
14
14
  "gpt",
15
- "gemini"
15
+ "gemini",
16
+ "langchain",
17
+ "chat-model",
18
+ "ai-agent"
16
19
  ],
17
20
  "license": "MIT",
18
21
  "homepage": "https://zihin.ai",
@@ -26,7 +29,7 @@
26
29
  },
27
30
  "main": "dist/nodes/ZihinGateway/ZihinGateway.node.js",
28
31
  "scripts": {
29
- "build": "tsc && gulp build:icons",
32
+ "build": "tsc && gulp build:icons && gulp build:json",
30
33
  "dev": "tsc --watch",
31
34
  "lint": "eslint src --ext .ts",
32
35
  "lint:fix": "eslint src --ext .ts --fix",
@@ -41,9 +44,13 @@
41
44
  "dist/credentials/ZihinApi.credentials.js"
42
45
  ],
43
46
  "nodes": [
44
- "dist/nodes/ZihinGateway/ZihinGateway.node.js"
47
+ "dist/nodes/ZihinGateway/ZihinGateway.node.js",
48
+ "dist/nodes/ZihinChatModel/ZihinChatModel.node.js"
45
49
  ]
46
50
  },
51
+ "dependencies": {
52
+ "@langchain/core": "^0.3.0"
53
+ },
47
54
  "devDependencies": {
48
55
  "@types/node": "^20.10.0",
49
56
  "@typescript-eslint/eslint-plugin": "^6.13.0",
@@ -54,7 +61,8 @@
54
61
  "typescript": "^5.3.0"
55
62
  },
56
63
  "peerDependencies": {
57
- "n8n-workflow": "*"
64
+ "n8n-workflow": "*",
65
+ "@langchain/core": ">=0.3.0"
58
66
  },
59
67
  "engines": {
60
68
  "node": ">=18.0.0"