chore: Lintfix @n8n/nodes-langchain (#16868)

This commit is contained in:
Iván Ovejero
2025-07-01 14:08:51 +02:00
committed by GitHub
parent 1958b89d38
commit 9ffca02016
89 changed files with 144 additions and 246 deletions

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatAnthropic } from '@langchain/anthropic';
import type { LLMResult } from '@langchain/core/outputs';
import {
@@ -15,9 +13,9 @@ import {
import { getHttpProxyAgent } from '@utils/httpProxyAgent';
import { getConnectionHintNoticeField } from '@utils/sharedFields';
import { searchModels } from './methods/searchModels';
import { makeN8nLlmFailedAttemptHandler } from '../n8nLlmFailedAttemptHandler';
import { N8nLlmTracing } from '../N8nLlmTracing';
import { searchModels } from './methods/searchModels';
const modelField: INodeProperties = {
displayName: 'Model',
@@ -82,7 +80,7 @@ export class LmChatAnthropic implements INodeType {
description: INodeTypeDescription = {
displayName: 'Anthropic Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatAnthropic',
icon: 'file:anthropic.svg',
group: ['transform'],
@@ -107,9 +105,9 @@ export class LmChatAnthropic implements INodeType {
},
alias: ['claude', 'sonnet', 'opus'],
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import type { ChatOllamaInput } from '@langchain/ollama';
import { ChatOllama } from '@langchain/ollama';
import {
@@ -19,7 +17,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatOllama implements INodeType {
description: INodeTypeDescription = {
displayName: 'Ollama Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatOllama',
icon: 'file:ollama.svg',
group: ['transform'],
@@ -42,9 +40,9 @@ export class LmChatOllama implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
...ollamaDescription,

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatOpenAI, type ClientOptions } from '@langchain/openai';
import {
NodeConnectionTypes,
@@ -26,7 +24,7 @@ export class LmChatOpenAi implements INodeType {
description: INodeTypeDescription = {
displayName: 'OpenAI Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatOpenAi',
icon: { light: 'file:openAiLight.svg', dark: 'file:openAiLight.dark.svg' },
group: ['transform'],
@@ -49,9 +47,9 @@ export class LmChatOpenAi implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { Cohere } from '@langchain/cohere';
import {
NodeConnectionTypes,
@@ -16,7 +15,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmCohere implements INodeType {
description: INodeTypeDescription = {
displayName: 'Cohere Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmCohere',
icon: { light: 'file:cohere.svg', dark: 'file:cohere.dark.svg' },
group: ['transform'],
@@ -39,9 +38,9 @@ export class LmCohere implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { Ollama } from '@langchain/community/llms/ollama';
import {
NodeConnectionTypes,
@@ -18,7 +16,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmOllama implements INodeType {
description: INodeTypeDescription = {
displayName: 'Ollama Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmOllama',
icon: 'file:ollama.svg',
group: ['transform'],
@@ -41,9 +39,9 @@ export class LmOllama implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
...ollamaDescription,

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { OpenAI, type ClientOptions } from '@langchain/openai';
import { NodeConnectionTypes } from 'n8n-workflow';
import type {
@@ -28,7 +27,7 @@ type LmOpenAiOptions = {
export class LmOpenAi implements INodeType {
description: INodeTypeDescription = {
displayName: 'OpenAI Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmOpenAi',
hidden: true,
icon: { light: 'file:openAiLight.svg', dark: 'file:openAiLight.dark.svg' },
@@ -52,9 +51,9 @@ export class LmOpenAi implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { HuggingFaceInference } from '@langchain/community/llms/hf';
import {
NodeConnectionTypes,
@@ -16,7 +15,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmOpenHuggingFaceInference implements INodeType {
description: INodeTypeDescription = {
displayName: 'Hugging Face Inference Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmOpenHuggingFaceInference',
icon: 'file:huggingface.svg',
group: ['transform'],
@@ -39,9 +38,9 @@ export class LmOpenHuggingFaceInference implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatBedrockConverse } from '@langchain/aws';
import {
NodeConnectionTypes,
@@ -17,7 +16,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatAwsBedrock implements INodeType {
description: INodeTypeDescription = {
displayName: 'AWS Bedrock Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatAwsBedrock',
icon: 'file:bedrock.svg',
group: ['transform'],
@@ -40,14 +39,13 @@ export class LmChatAwsBedrock implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [
{
// eslint-disable-next-line n8n-nodes-base/node-class-description-credentials-name-unsuffixed
name: 'aws',
required: true,
},

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-execute-block-wrong-error-thrown */
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { AzureChatOpenAI } from '@langchain/openai';
import {
NodeOperationError,
@@ -27,7 +25,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatAzureOpenAi implements INodeType {
description: INodeTypeDescription = {
displayName: 'Azure OpenAI Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatAzureOpenAi',
icon: 'file:azure.svg',
group: ['transform'],
@@ -50,9 +48,9 @@ export class LmChatAzureOpenAi implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatOpenAI, type ClientOptions } from '@langchain/openai';
import {
NodeConnectionTypes,
@@ -20,7 +18,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatDeepSeek implements INodeType {
description: INodeTypeDescription = {
displayName: 'DeepSeek Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatDeepSeek',
icon: 'file:deepseek.svg',
group: ['transform'],
@@ -43,9 +41,9 @@ export class LmChatDeepSeek implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import type { SafetySetting } from '@google/generative-ai';
import { ChatGoogleGenerativeAI } from '@langchain/google-genai';
import { NodeConnectionTypes } from 'n8n-workflow';
@@ -26,7 +25,7 @@ function errorDescriptionMapper(error: NodeError) {
export class LmChatGoogleGemini implements INodeType {
description: INodeTypeDescription = {
displayName: 'Google Gemini Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatGoogleGemini',
icon: 'file:google.svg',
group: ['transform'],
@@ -49,9 +48,9 @@ export class LmChatGoogleGemini implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import type { SafetySetting } from '@google/generative-ai';
import { ProjectsClient } from '@google-cloud/resource-manager';
import { ChatVertexAI } from '@langchain/google-vertexai';
@@ -24,7 +23,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatGoogleVertex implements INodeType {
description: INodeTypeDescription = {
displayName: 'Google Vertex Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatGoogleVertex',
icon: 'file:google.svg',
group: ['transform'],
@@ -47,9 +46,9 @@ export class LmChatGoogleVertex implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,4 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatGroq } from '@langchain/groq';
import {
NodeConnectionTypes,
@@ -17,7 +16,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatGroq implements INodeType {
description: INodeTypeDescription = {
displayName: 'Groq Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatGroq',
icon: 'file:groq.svg',
group: ['transform'],
@@ -40,9 +39,9 @@ export class LmChatGroq implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import type { ChatMistralAIInput } from '@langchain/mistralai';
import { ChatMistralAI } from '@langchain/mistralai';
import {
@@ -18,7 +16,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatMistralCloud implements INodeType {
description: INodeTypeDescription = {
displayName: 'Mistral Cloud Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatMistralCloud',
icon: 'file:mistral.svg',
group: ['transform'],
@@ -41,9 +39,9 @@ export class LmChatMistralCloud implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatOpenAI, type ClientOptions } from '@langchain/openai';
import {
NodeConnectionTypes,
@@ -42,9 +40,9 @@ export class LmChatOpenRouter implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -1,5 +1,3 @@
/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import { ChatOpenAI, type ClientOptions } from '@langchain/openai';
import {
NodeConnectionTypes,
@@ -20,7 +18,7 @@ import { N8nLlmTracing } from '../N8nLlmTracing';
export class LmChatXAiGrok implements INodeType {
description: INodeTypeDescription = {
displayName: 'xAI Grok Chat Model',
// eslint-disable-next-line n8n-nodes-base/node-class-description-name-miscased
name: 'lmChatXAiGrok',
icon: { light: 'file:logo.dark.svg', dark: 'file:logo.svg' },
group: ['transform'],
@@ -43,9 +41,9 @@ export class LmChatXAiGrok implements INodeType {
],
},
},
// eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
inputs: [],
// eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
outputs: [NodeConnectionTypes.AiLanguageModel],
outputNames: ['Model'],
credentials: [

View File

@@ -188,11 +188,7 @@ export class N8nLlmTracing extends BaseCallbackHandler {
this.promptTokensEstimate = estimatedTokens;
}
async handleLLMError(
error: IDataObject | Error,
runId: string,
parentRunId?: string | undefined,
) {
async handleLLMError(error: IDataObject | Error, runId: string, parentRunId?: string) {
const runDetails = this.runsMap[runId] ?? { index: Object.keys(this.runsMap).length };
// Filter out non-x- headers to avoid leaking sensitive information in logs

View File

@@ -136,11 +136,7 @@ export class N8nNonEstimatingTracing extends BaseCallbackHandler {
};
}
async handleLLMError(
error: IDataObject | Error,
runId: string,
parentRunId?: string | undefined,
) {
async handleLLMError(error: IDataObject | Error, runId: string, parentRunId?: string) {
const runDetails = this.runsMap[runId] ?? { index: Object.keys(this.runsMap).length };
// Filter out non-x- headers to avoid leaking sensitive information in logs

View File

@@ -27,13 +27,13 @@ export const n8nDefaultFailedAttemptHandler = (error: any) => {
throw error;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
if (error?.code === 'ECONNABORTED') {
throw error;
}
const status =
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
error?.response?.status ?? error?.status;
if (status && STATUS_NO_RETRY.includes(+status)) {
throw error;