@n8n/n8n-nodes-langchain 2.41.2 → 2.42.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.
Files changed (75) hide show
  1. package/dist/credentials/AzureEntraCognitiveServicesOAuth2Api.credentials.js +14 -15
  2. package/dist/credentials/AzureEntraCognitiveServicesOAuth2Api.credentials.js.map +1 -1
  3. package/dist/known/nodes.json +4 -0
  4. package/dist/methods/defined.json +3 -0
  5. package/dist/methods/referenced.json +3 -0
  6. package/dist/node-definitions/.nodes-hash +1 -1
  7. package/dist/node-definitions/nodes/n8n-nodes-langchain/anthropic/v1/resource_text/operation_message.schema.js +1 -1
  8. package/dist/node-definitions/nodes/n8n-nodes-langchain/anthropic/v1/resource_text/operation_message.ts +4 -0
  9. package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/index.ts +1 -1
  10. package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v1.schema.js +2 -1
  11. package/dist/node-definitions/nodes/n8n-nodes-langchain/lmChatAzureOpenAi/v1.ts +5 -1
  12. package/dist/nodes/agents/Agent/agents/ToolsAgent/V2/execute.js +1 -4
  13. package/dist/nodes/agents/Agent/agents/ToolsAgent/V2/execute.js.map +1 -1
  14. package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/helpers/runAgent.js +1 -5
  15. package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/helpers/runAgent.js.map +1 -1
  16. package/dist/nodes/agents/Agent/agents/utils.js +1 -1
  17. package/dist/nodes/agents/Agent/agents/utils.js.map +1 -1
  18. package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js +1 -1
  19. package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js.map +1 -1
  20. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.d.ts +6 -0
  21. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js +13 -4
  22. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js.map +1 -1
  23. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/N8nOAuth2TokenCredential.d.ts +7 -5
  24. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/N8nOAuth2TokenCredential.js +21 -10
  25. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/N8nOAuth2TokenCredential.js.map +1 -1
  26. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/api-key.js +4 -5
  27. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/api-key.js.map +1 -1
  28. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/oauth2.js +3 -2
  29. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/oauth2.js.map +1 -1
  30. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.d.ts +2 -0
  31. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.js +11 -0
  32. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.js.map +1 -0
  33. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireTenantId.d.ts +2 -0
  34. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireTenantId.js +25 -0
  35. package/dist/nodes/llms/LmChatAzureOpenAi/credentials/requireTenantId.js.map +1 -0
  36. package/dist/nodes/llms/LmChatAzureOpenAi/methods/searchModels.d.ts +2 -0
  37. package/dist/nodes/llms/LmChatAzureOpenAi/methods/searchModels.js +51 -0
  38. package/dist/nodes/llms/LmChatAzureOpenAi/methods/searchModels.js.map +1 -0
  39. package/dist/nodes/llms/LmChatAzureOpenAi/properties.js +7 -0
  40. package/dist/nodes/llms/LmChatAzureOpenAi/properties.js.map +1 -1
  41. package/dist/nodes/llms/LmChatAzureOpenAi/types.d.ts +3 -1
  42. package/dist/nodes/llms/LmChatAzureOpenAi/types.js +3 -1
  43. package/dist/nodes/llms/LmChatAzureOpenAi/types.js.map +1 -1
  44. package/dist/nodes/mcp/shared/utils.js +22 -0
  45. package/dist/nodes/mcp/shared/utils.js.map +1 -1
  46. package/dist/nodes/vector_store/VectorStoreDatabricks/DatabricksVectorStore.d.ts +60 -0
  47. package/dist/nodes/vector_store/VectorStoreDatabricks/DatabricksVectorStore.js +244 -0
  48. package/dist/nodes/vector_store/VectorStoreDatabricks/DatabricksVectorStore.js.map +1 -0
  49. package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.d.ts +29 -0
  50. package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js +235 -0
  51. package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js.map +1 -0
  52. package/dist/nodes/vendors/Anthropic/actions/text/message.operation.js +30 -1
  53. package/dist/nodes/vendors/Anthropic/actions/text/message.operation.js.map +1 -1
  54. package/dist/nodes/vendors/Anthropic/helpers/interfaces.d.ts +7 -0
  55. package/dist/typecheck.tsbuildinfo +1 -1
  56. package/dist/types/credentials.json +1 -1
  57. package/dist/types/nodes.json +4 -3
  58. package/dist/utils/agent-execution/buildSteps.js +4 -7
  59. package/dist/utils/agent-execution/buildSteps.js.map +1 -1
  60. package/dist/utils/databricks/auth-fetch.d.ts +12 -0
  61. package/dist/utils/databricks/auth-fetch.js +40 -0
  62. package/dist/utils/databricks/auth-fetch.js.map +1 -0
  63. package/dist/utils/databricks/constants.d.ts +4 -2
  64. package/dist/utils/databricks/constants.js.map +1 -1
  65. package/dist/utils/databricks/gateway-config.d.ts +2 -2
  66. package/dist/utils/databricks/gateway-config.js +7 -30
  67. package/dist/utils/databricks/gateway-config.js.map +1 -1
  68. package/dist/utils/databricks/list-pages.d.ts +6 -0
  69. package/dist/utils/databricks/list-pages.js +29 -0
  70. package/dist/utils/databricks/list-pages.js.map +1 -0
  71. package/dist/utils/databricks/model-services.js +4 -24
  72. package/dist/utils/databricks/model-services.js.map +1 -1
  73. package/dist/utils/databricks/token-provider.d.ts +2 -2
  74. package/dist/utils/databricks/token-provider.js.map +1 -1
  75. package/package.json +17 -15
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/api-key.ts"],"names":[],"mappings":";;;AAAA,+CAA+F;AAOxF,KAAK,oCAEX,cAAsB;IAEtB,IAAI,CAAC;QAEJ,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAOhD,cAAc,CAAC,CAAC;QAEnB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,iIAAiI,CACjI,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAEnE,IAAI,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,0EAA0E,CAC1E,CAAC;YACH,CAAC;YACD,OAAO;gBACN,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;gBAC3C,0BAA0B,EAAE,EAAE;gBAC9B,qBAAqB,EAAE,EAAE;gBACzB,mBAAmB,EAAE,iBAAiB,CAAC,eAAe;gBACtD,mBAAmB,EAAE,iBAAiB,CAAC,eAAe;aACtD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YACtF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,mFAAmF,CACnF,CAAC;QACH,CAAC;QAED,OAAO;YACN,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;YAC3C,0BAA0B,EAAE,iBAAiB,CAAC,YAAY;YAC1D,qBAAqB,EAAE,iBAAiB,CAAC,UAAU;YACnD,mBAAmB,EAAE,iBAAiB,CAAC,QAAQ;SAC/C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,+BAAgB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACb,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAEtF,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACnF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/api-key.ts"],"names":[],"mappings":";;;AAAA,+CAA+F;AAE/F,qEAAkE;AAM3D,KAAK,oCAEX,cAAsB;IAEtB,IAAI,CAAC;QAEJ,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAOhD,cAAc,CAAC,CAAC;QAEnB,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,iIAAiI,CACjI,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAEnE,IAAI,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,IAAA,+CAAsB,EAC7C,IAAI,CAAC,OAAO,EAAE,EACd,iBAAiB,CAAC,eAAe,CACjC,CAAC;YACF,OAAO;gBACN,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;gBAC3C,0BAA0B,EAAE,EAAE;gBAC9B,qBAAqB,EAAE,EAAE;gBACzB,mBAAmB,EAAE,eAAe;gBACpC,mBAAmB,EAAE,eAAe;aACpC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YACtF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,mFAAmF,CACnF,CAAC;QACH,CAAC;QAED,OAAO;YACN,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;YAC3C,0BAA0B,EAAE,iBAAiB,CAAC,YAAY;YAC1D,qBAAqB,EAAE,iBAAiB,CAAC,UAAU;YACnD,mBAAmB,EAAE,iBAAiB,CAAC,QAAQ;SAC/C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,+BAAgB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACb,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAEtF,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACnF,CAAC;AACF,CAAC"}
@@ -4,11 +4,12 @@ exports.setupOAuth2Authentication = setupOAuth2Authentication;
4
4
  const identity_1 = require("@azure/identity");
5
5
  const n8n_workflow_1 = require("n8n-workflow");
6
6
  const N8nOAuth2TokenCredential_1 = require("./N8nOAuth2TokenCredential");
7
- const AZURE_OPENAI_SCOPE = 'https://cognitiveservices.azure.com/.default';
7
+ const types_1 = require("../types");
8
+ const AZURE_OPENAI_SCOPE = `${types_1.AZURE_OPENAI_INFERENCE_AUDIENCE}/.default`;
8
9
  async function setupOAuth2Authentication(credentialName) {
9
10
  try {
10
11
  const credential = await this.getCredentials(credentialName);
11
- const entraTokenCredential = new N8nOAuth2TokenCredential_1.N8nOAuth2TokenCredential(this.getNode(), credential);
12
+ const entraTokenCredential = new N8nOAuth2TokenCredential_1.N8nOAuth2TokenCredential(this.getNode(), credential, undefined, this.helpers.getSecureEgressFilter());
12
13
  const deploymentDetails = await entraTokenCredential.getDeploymentDetails();
13
14
  const azureADTokenProvider = (0, identity_1.getBearerTokenProvider)(entraTokenCredential, AZURE_OPENAI_SCOPE);
14
15
  this.logger.debug('Successfully created Azure AD Token Provider.');
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/oauth2.ts"],"names":[],"mappings":";;;AAAA,8CAAyD;AACzD,+CAA6E;AAE7E,yEAAsE;AAMtE,MAAM,kBAAkB,GAAG,8CAA8C,CAAC;AAInE,KAAK,oCAEX,cAAsB;IAEtB,IAAI,CAAC;QACJ,MAAM,UAAU,GACf,MAAM,IAAI,CAAC,cAAc,CAAiD,cAAc,CAAC,CAAC;QAE3F,MAAM,oBAAoB,GAAG,IAAI,mDAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;QAI5E,MAAM,oBAAoB,GAAG,IAAA,iCAAsB,EAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAE9F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAEnE,OAAO;YACN,oBAAoB;YACpB,0BAA0B,EAAE,iBAAiB,CAAC,YAAY;YAC1D,qBAAqB,EAAE,iBAAiB,CAAC,UAAU;YACnD,mBAAmB,EAAE,iBAAiB,CAAC,QAAQ;YAC/C,GAAG,CAAC,iBAAiB,CAAC,YAAY,KAAK,SAAS,IAAI,iBAAiB,CAAC,eAAe;gBACpF,CAAC,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,eAAe,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;SACN,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAEvF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,6CAA6C,KAAK,CAAC,OAAO,EAAE,EAC5D,KAAK,CACL,CAAC;IACH,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/oauth2.ts"],"names":[],"mappings":";;;AAAA,8CAAyD;AACzD,+CAA6E;AAE7E,yEAAsE;AAKtE,oCAA2D;AAE3D,MAAM,kBAAkB,GAAG,GAAG,uCAA+B,WAAW,CAAC;AAIlE,KAAK,oCAEX,cAAsB;IAEtB,IAAI,CAAC;QACJ,MAAM,UAAU,GACf,MAAM,IAAI,CAAC,cAAc,CAAiD,cAAc,CAAC,CAAC;QAE3F,MAAM,oBAAoB,GAAG,IAAI,mDAAwB,CACxD,IAAI,CAAC,OAAO,EAAE,EACd,UAAU,EACV,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CACpC,CAAC;QACF,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;QAI5E,MAAM,oBAAoB,GAAG,IAAA,iCAAsB,EAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;QAE9F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAEnE,OAAO;YACN,oBAAoB;YACpB,0BAA0B,EAAE,iBAAiB,CAAC,YAAY;YAC1D,qBAAqB,EAAE,iBAAiB,CAAC,UAAU;YACnD,mBAAmB,EAAE,iBAAiB,CAAC,QAAQ;YAC/C,GAAG,CAAC,iBAAiB,CAAC,YAAY,KAAK,SAAS,IAAI,iBAAiB,CAAC,eAAe;gBACpF,CAAC,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,eAAe,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;SACN,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAEvF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,6CAA6C,KAAK,CAAC,OAAO,EAAE,EAC5D,KAAK,CACL,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type INode } from 'n8n-workflow';
2
+ export declare function requireFoundryEndpoint(node: INode, foundryEndpoint: string | undefined): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireFoundryEndpoint = requireFoundryEndpoint;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ function requireFoundryEndpoint(node, foundryEndpoint) {
6
+ if (!foundryEndpoint) {
7
+ throw new n8n_workflow_1.NodeOperationError(node, 'Foundry endpoint is missing in the selected Azure OpenAI credential.');
8
+ }
9
+ return foundryEndpoint;
10
+ }
11
+ //# sourceMappingURL=requireFoundryEndpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireFoundryEndpoint.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/requireFoundryEndpoint.ts"],"names":[],"mappings":";;;AAAA,+CAA8D;AAO9D,gCAAuC,IAAW,EAAE,eAAmC;IACtF,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,EACJ,sEAAsE,CACtE,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type INode } from 'n8n-workflow';
2
+ export declare function requireTenantId(node: INode, tenantId: string | undefined): string;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireTenantId = requireTenantId;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const MULTI_TENANT_ALIASES = new Set(['common', 'organizations', 'consumers']);
6
+ const TENANT_ID_GUID = /^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$/;
7
+ const TENANT_ID_DOMAIN = /^[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*$/;
8
+ function requireTenantId(node, tenantId) {
9
+ const value = tenantId?.trim() ?? '';
10
+ if (!value) {
11
+ throw new n8n_workflow_1.NodeOperationError(node, 'Tenant ID is missing in the selected Azure Entra credential');
12
+ }
13
+ if (MULTI_TENANT_ALIASES.has(value.toLowerCase())) {
14
+ throw new n8n_workflow_1.NodeOperationError(node, `Tenant ID cannot be "${value}"`, {
15
+ description: 'The node signs in as the application, and Entra issues an app-only token for one named tenant. Use the Directory (tenant) ID of the app registration.',
16
+ });
17
+ }
18
+ if (!TENANT_ID_GUID.test(value) && !TENANT_ID_DOMAIN.test(value)) {
19
+ throw new n8n_workflow_1.NodeOperationError(node, 'Tenant ID is not a Directory ID or a domain', {
20
+ description: 'Use the Directory (tenant) ID of the app registration.',
21
+ });
22
+ }
23
+ return value;
24
+ }
25
+ //# sourceMappingURL=requireTenantId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requireTenantId.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/credentials/requireTenantId.ts"],"names":[],"mappings":";;;AAAA,+CAA8D;AAI9D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;AAM/E,MAAM,cAAc,GAAG,sDAAsD,CAAC;AAC9E,MAAM,gBAAgB,GACrB,2FAA2F,CAAC;AAO7F,yBAAgC,IAAW,EAAE,QAA4B;IACxE,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAErC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,iCAAkB,CAC3B,IAAI,EACJ,6DAA6D,CAC7D,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,wBAAwB,KAAK,GAAG,EAAE;YACpE,WAAW,EACV,uJAAuJ;SACxJ,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,6CAA6C,EAAE;YACjF,WAAW,EAAE,wDAAwD;SACrE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ILoadOptionsFunctions, INodeListSearchResult } from 'n8n-workflow';
2
+ export declare function searchModels(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searchModels = searchModels;
4
+ const ai_utilities_1 = require("@n8n/ai-utilities");
5
+ const model_discovery_1 = require("@n8n/ai-utilities/model-discovery");
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ const N8nOAuth2TokenCredential_1 = require("../credentials/N8nOAuth2TokenCredential");
8
+ const requireFoundryEndpoint_1 = require("../credentials/requireFoundryEndpoint");
9
+ const types_1 = require("../types");
10
+ function resolveFoundryBaseURL(node, foundryEndpoint) {
11
+ return new URL((0, requireFoundryEndpoint_1.requireFoundryEndpoint)(node, foundryEndpoint)).origin;
12
+ }
13
+ async function searchModels(filter) {
14
+ const authenticationMethod = this.getNodeParameter('authentication', "azureOpenAiApi");
15
+ const project = this.getNodeParameter('project', '');
16
+ const egressFilter = this.helpers.getSecureEgressFilter();
17
+ let baseURL;
18
+ let headers;
19
+ if (authenticationMethod === "azureOpenAiApi") {
20
+ const credential = await this.getCredentials('azureOpenAiApi');
21
+ if (credential.endpointType !== 'foundry') {
22
+ return { results: [] };
23
+ }
24
+ baseURL = resolveFoundryBaseURL(this.getNode(), credential.foundryEndpoint);
25
+ headers = { 'api-key': credential.apiKey };
26
+ }
27
+ else {
28
+ const credential = await this.getCredentials('azureEntraCognitiveServicesOAuth2Api');
29
+ if (credential.endpointType !== 'foundry') {
30
+ return { results: [] };
31
+ }
32
+ baseURL = resolveFoundryBaseURL(this.getNode(), credential.foundryEndpoint);
33
+ const token = await new N8nOAuth2TokenCredential_1.N8nOAuth2TokenCredential(this.getNode(), credential, types_1.AZURE_AI_FOUNDRY_AUDIENCE, egressFilter).getToken();
34
+ if (!token) {
35
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Failed to retrieve access token');
36
+ }
37
+ headers = { Authorization: `Bearer ${token.token}` };
38
+ }
39
+ const models = await (0, model_discovery_1.listAzureOpenAiModels)({
40
+ baseURL,
41
+ project,
42
+ headers,
43
+ fetch: async (input, init) => await (0, ai_utilities_1.proxyFetch)({ input, init, egressFilter }),
44
+ });
45
+ return {
46
+ results: models
47
+ .filter((model) => !filter || model.id.toLowerCase().includes(filter.toLowerCase()))
48
+ .map((model) => ({ name: model.name, value: model.id })),
49
+ };
50
+ }
51
+ //# sourceMappingURL=searchModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchModels.js","sourceRoot":"","sources":["../../../../../nodes/llms/LmChatAzureOpenAi/methods/searchModels.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AAC/C,uEAA0E;AAE1E,+CAAkD;AAElD,sFAAmF;AACnF,kFAA+E;AAC/E,oCAAyE;AAczE,SAAS,qBAAqB,CAAC,IAAW,EAAE,eAAwB;IACnE,OAAO,IAAI,GAAG,CAAC,IAAA,+CAAsB,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAEM,KAAK,uBAEX,MAAe;IAEf,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CACjD,gBAAgB,mBAEM,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAE1D,IAAI,OAAe,CAAC;IACpB,IAAI,OAA+B,CAAC;IAEpC,IAAI,oBAAoB,qBAA8B,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAC3C,gBAAgB,CAChB,CAAC;QACF,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAC5E,OAAO,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAC3C,sCAAsC,CACtC,CAAC;QACF,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAE5E,MAAM,KAAK,GAAG,MAAM,IAAI,mDAAwB,CAC/C,IAAI,CAAC,OAAO,EAAE,EACd,UAAU,EACV,iCAAyB,EACzB,YAAY,CACZ,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAqB,EAAC;QAC1C,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAA,yBAAU,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;KAC7E,CAAC,CAAC;IAEH,OAAO;QACN,OAAO,EAAE,MAAM;aACb,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;aACnF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;KACzD,CAAC;AACH,CAAC"}
@@ -40,6 +40,13 @@ exports.properties = [
40
40
  required: true,
41
41
  default: '',
42
42
  },
43
+ {
44
+ displayName: 'Project',
45
+ name: 'project',
46
+ type: 'string',
47
+ description: 'The Azure AI Foundry project that owns the deployment. Required for an Azure AI Foundry resource; leave empty for a classic Azure OpenAI resource.',
48
+ default: '',
49
+ },
43
50
  {
44
51
  displayName: 'Options',
45
52
  name: 'options',
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAzureOpenAi/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAzureOpenAi/properties.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ export interface AzureOpenAIOAuth2ModelConfig extends AzureOpenAIBaseModelConfig
31
31
  azureOpenAIApiKey?: undefined;
32
32
  azureADTokenProvider: () => Promise<string>;
33
33
  }
34
+ export declare const AZURE_OPENAI_INFERENCE_AUDIENCE = "https://cognitiveservices.azure.com";
35
+ export declare const AZURE_AI_FOUNDRY_AUDIENCE = "https://ai.azure.com";
34
36
  export declare const enum AuthenticationType {
35
37
  ApiKey = "azureOpenAiApi",
36
38
  EntraOAuth2 = "azureEntraCognitiveServicesOAuth2Api"
@@ -54,6 +56,6 @@ export type AzureEntraCognitiveServicesOAuth2ApiCredential = OAuth2CredentialDat
54
56
  endpointType?: 'classic' | 'foundry';
55
57
  foundryEndpoint?: string;
56
58
  tenantId: string;
57
- oauthTokenData: TokenData;
59
+ oauthTokenData?: TokenData;
58
60
  };
59
61
  export {};
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AzureOpenAIErrorType = exports.AuthenticationType = void 0;
3
+ exports.AzureOpenAIErrorType = exports.AuthenticationType = exports.AZURE_AI_FOUNDRY_AUDIENCE = exports.AZURE_OPENAI_INFERENCE_AUDIENCE = void 0;
4
+ exports.AZURE_OPENAI_INFERENCE_AUDIENCE = 'https://cognitiveservices.azure.com';
5
+ exports.AZURE_AI_FOUNDRY_AUDIENCE = 'https://ai.azure.com';
4
6
  var AuthenticationType;
5
7
  (function (AuthenticationType) {
6
8
  AuthenticationType["ApiKey"] = "azureOpenAiApi";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAzureOpenAi/types.ts"],"names":[],"mappings":";;;AAqEA,IAAkB,kBAGjB;AAHD,WAAkB,kBAAkB;IACnC,+CAAyB,CAAA;IACzB,0EAAoD,CAAA;AACrD,CAAC,EAHiB,kBAAkB,aAAlB,kBAAkB,GAAlB,kBAAkB,QAGnC;AAKD,IAAkB,oBAKjB;AALD,WAAkB,oBAAoB;IACrC,mEAA2C,CAAA;IAC3C,iEAAyC,CAAA;IACzC,6CAAqB,CAAA;IACrB,qDAA6B,CAAA;AAC9B,CAAC,EALiB,oBAAoB,aAApB,oBAAoB,GAApB,oBAAoB,QAKrC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/llms/LmChatAzureOpenAi/types.ts"],"names":[],"mappings":";;;AAmEa,QAAA,+BAA+B,GAAG,qCAAqC,CAAC;AAOxE,QAAA,yBAAyB,GAAG,sBAAsB,CAAC;AAKhE,IAAkB,kBAGjB;AAHD,WAAkB,kBAAkB;IACnC,+CAAyB,CAAA;IACzB,0EAAoD,CAAA;AACrD,CAAC,EAHiB,kBAAkB,aAAlB,kBAAkB,GAAlB,kBAAkB,QAGnC;AAKD,IAAkB,oBAKjB;AALD,WAAkB,oBAAoB;IACrC,mEAA2C,CAAA;IAC3C,iEAAyC,CAAA;IACzC,6CAAqB,CAAA;IACrB,qDAA6B,CAAA;AAC9B,CAAC,EALiB,oBAAoB,aAApB,oBAAoB,GAApB,oBAAoB,QAKrC"}
@@ -14,6 +14,7 @@ const ai_utilities_1 = require("@n8n/ai-utilities");
14
14
  const result_1 = require("@n8n/utils/result");
15
15
  const n8n_workflow_1 = require("n8n-workflow");
16
16
  const types_1 = require("./types");
17
+ const MCP_SESSION_TERMINATION_TIMEOUT_MS = 1_000;
17
18
  async function getAllTools(client, cursor) {
18
19
  const { tools, nextCursor } = await client.listTools({ cursor });
19
20
  if (nextCursor) {
@@ -112,6 +113,27 @@ async function connectMcpClient({ headers, serverTransport, endpointUrl, name, v
112
113
  fetch: authFetch,
113
114
  ...(signal ? { requestInit: { signal } } : {}),
114
115
  });
116
+ const originalClose = client.close.bind(client);
117
+ let closePromise;
118
+ client.close = async () => {
119
+ closePromise ??= (async () => {
120
+ let timeout;
121
+ try {
122
+ await Promise.race([
123
+ Promise.resolve(transport.terminateSession()).catch(() => { }),
124
+ new Promise((resolve) => {
125
+ timeout = setTimeout(resolve, MCP_SESSION_TERMINATION_TIMEOUT_MS);
126
+ }),
127
+ ]);
128
+ }
129
+ finally {
130
+ if (timeout !== undefined)
131
+ clearTimeout(timeout);
132
+ await originalClose();
133
+ }
134
+ })();
135
+ await closePromise;
136
+ };
115
137
  await client.connect(transport);
116
138
  return (0, result_1.createResultOk)(client);
117
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/mcp/shared/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../nodes/mcp/shared/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { Document, type DocumentInterface } from '@langchain/core/documents';
2
+ import type { EmbeddingsInterface } from '@langchain/core/embeddings';
3
+ import { VectorStore } from '@langchain/core/vectorstores';
4
+ type Fetch = typeof fetch;
5
+ export type DatabricksIndexInfo = {
6
+ name: string;
7
+ primaryKey: string;
8
+ indexType: 'DELTA_SYNC' | 'DIRECT_ACCESS';
9
+ embedding: {
10
+ kind: 'managed';
11
+ sourceColumn: string;
12
+ modelEndpoint?: string;
13
+ } | {
14
+ kind: 'self';
15
+ vectorColumn: string;
16
+ };
17
+ schemaColumns?: string[];
18
+ sourceTable?: string;
19
+ };
20
+ export interface DatabricksVectorStoreConfig {
21
+ fetch: Fetch;
22
+ host: string;
23
+ indexName: string;
24
+ contentColumn?: string;
25
+ metadataColumns?: string[];
26
+ queryType?: 'ANN' | 'HYBRID';
27
+ filter?: Record<string, unknown>;
28
+ index?: DatabricksIndexInfo;
29
+ }
30
+ export declare function parseIndexInfo(raw: unknown): DatabricksIndexInfo;
31
+ export declare class DatabricksVectorStore extends VectorStore {
32
+ FilterType: Record<string, unknown>;
33
+ private readonly fetch;
34
+ private readonly host;
35
+ private readonly index;
36
+ private readonly contentColumn;
37
+ private readonly metadataColumns;
38
+ private readonly reserved;
39
+ private readonly queryType;
40
+ private readonly defaultFilter?;
41
+ static describeIndex(fetchFn: Fetch, host: string, indexName: string): Promise<DatabricksIndexInfo>;
42
+ static fromExistingIndex(embeddings: EmbeddingsInterface, config: DatabricksVectorStoreConfig): Promise<DatabricksVectorStore>;
43
+ constructor(embeddings: EmbeddingsInterface, config: DatabricksVectorStoreConfig & {
44
+ index: DatabricksIndexInfo;
45
+ });
46
+ _vectorstoreType(): string;
47
+ private get isManaged();
48
+ similaritySearchWithScore(query: string, k?: number, filter?: this['FilterType']): Promise<Array<[Document, number]>>;
49
+ similaritySearch(query: string, k?: number, filter?: this['FilterType']): Promise<Document[]>;
50
+ similaritySearchVectorWithScore(query: number[], k: number, filter?: this['FilterType']): Promise<Array<[Document, number]>>;
51
+ addDocuments(documents: DocumentInterface[], options?: {
52
+ ids?: string[];
53
+ }): Promise<string[]>;
54
+ addVectors(vectors: number[][], documents: DocumentInterface[], options?: {
55
+ ids?: string[];
56
+ }): Promise<string[]>;
57
+ private assertDirectAccess;
58
+ private query;
59
+ }
60
+ export {};
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabricksVectorStore = void 0;
4
+ exports.parseIndexInfo = parseIndexInfo;
5
+ const node_crypto_1 = require("node:crypto");
6
+ const documents_1 = require("@langchain/core/documents");
7
+ const vectorstores_1 = require("@langchain/core/vectorstores");
8
+ const is_record_1 = require("@n8n/utils/is-record");
9
+ const n8n_workflow_1 = require("n8n-workflow");
10
+ function sanitizeMessage(message) {
11
+ return message.replace(/[\x00-\x1f\x7f]+/g, ' ').slice(0, 500);
12
+ }
13
+ const FULL_NAME = /^[^/\s]+\.[^/\s]+\.[^/\s]+$/;
14
+ function assertFullName(value, what, Err) {
15
+ if (!FULL_NAME.test(value)) {
16
+ throw new Err(`Invalid Databricks ${what} "${sanitizeMessage(value)}": use catalog.schema.${what}`);
17
+ }
18
+ }
19
+ const optionalString = (value) => (typeof value === 'string' ? value : undefined);
20
+ const records = (value) => Array.isArray(value) ? value.filter(is_record_1.isRecord) : [];
21
+ const stringArray = (value) => Array.isArray(value) && value.every((item) => typeof item === 'string')
22
+ ? value
23
+ : undefined;
24
+ function parseIndexInfo(raw) {
25
+ const indexType = (0, is_record_1.isRecord)(raw) ? raw.index_type : undefined;
26
+ if (!(0, is_record_1.isRecord)(raw) ||
27
+ typeof raw.name !== 'string' ||
28
+ typeof raw.primary_key !== 'string' ||
29
+ (indexType !== 'DELTA_SYNC' && indexType !== 'DIRECT_ACCESS')) {
30
+ throw new n8n_workflow_1.OperationalError('Unexpected Databricks index description');
31
+ }
32
+ const deltaSpec = (0, is_record_1.isRecord)(raw.delta_sync_index_spec) ? raw.delta_sync_index_spec : undefined;
33
+ const directSpec = (0, is_record_1.isRecord)(raw.direct_access_index_spec)
34
+ ? raw.direct_access_index_spec
35
+ : undefined;
36
+ const spec = deltaSpec ?? directSpec ?? {};
37
+ const [sourceColumn] = records(spec.embedding_source_columns);
38
+ const [vectorColumn] = records(spec.embedding_vector_columns);
39
+ const sourceName = optionalString(sourceColumn?.name);
40
+ const vectorName = optionalString(vectorColumn?.name);
41
+ const embedding = sourceName
42
+ ? {
43
+ kind: 'managed',
44
+ sourceColumn: sourceName,
45
+ modelEndpoint: optionalString(sourceColumn?.embedding_model_endpoint_name),
46
+ }
47
+ : vectorName
48
+ ? { kind: 'self', vectorColumn: vectorName }
49
+ : undefined;
50
+ if (!embedding)
51
+ throw new n8n_workflow_1.OperationalError('Unexpected Databricks index description');
52
+ let schemaColumns;
53
+ if (typeof directSpec?.schema_json === 'string') {
54
+ let schema;
55
+ try {
56
+ schema = JSON.parse(directSpec.schema_json);
57
+ }
58
+ catch {
59
+ throw new n8n_workflow_1.OperationalError('Unexpected Databricks index description');
60
+ }
61
+ schemaColumns = (0, is_record_1.isRecord)(schema) ? Object.keys(schema) : undefined;
62
+ }
63
+ else {
64
+ schemaColumns = stringArray(deltaSpec?.columns_to_sync);
65
+ }
66
+ return {
67
+ name: raw.name,
68
+ primaryKey: raw.primary_key,
69
+ indexType,
70
+ embedding,
71
+ schemaColumns,
72
+ sourceTable: optionalString(deltaSpec?.source_table),
73
+ };
74
+ }
75
+ async function databricksRequest(fetchFn, url, init) {
76
+ const response = await fetchFn(url, {
77
+ ...init,
78
+ headers: { 'Content-Type': 'application/json' },
79
+ });
80
+ if (!response.ok) {
81
+ const text = await response.text();
82
+ let message = text;
83
+ try {
84
+ const parsed = JSON.parse(text);
85
+ if ((0, is_record_1.isRecord)(parsed) && typeof parsed.message === 'string')
86
+ message = parsed.message;
87
+ }
88
+ catch { }
89
+ throw new n8n_workflow_1.OperationalError(`Databricks Vector Search request failed (${response.status}): ${sanitizeMessage(message)}`);
90
+ }
91
+ return await response.json();
92
+ }
93
+ class DatabricksVectorStore extends vectorstores_1.VectorStore {
94
+ static async describeIndex(fetchFn, host, indexName) {
95
+ assertFullName(indexName, 'index', n8n_workflow_1.UserError);
96
+ const info = parseIndexInfo(await databricksRequest(fetchFn, `${host}/api/2.0/vector-search/indexes/${(0, n8n_workflow_1.toPathSegment)(indexName)}`));
97
+ if (info.indexType === 'DELTA_SYNC' && !info.schemaColumns && info.sourceTable) {
98
+ assertFullName(info.sourceTable, 'table', n8n_workflow_1.OperationalError);
99
+ const response = await fetchFn(`${host}/api/2.1/unity-catalog/tables/${(0, n8n_workflow_1.toPathSegment)(info.sourceTable)}`);
100
+ if (response.ok) {
101
+ const table = await response.json();
102
+ info.schemaColumns = records((0, is_record_1.isRecord)(table) ? table.columns : undefined).flatMap((column) => (typeof column.name === 'string' ? [column.name] : []));
103
+ }
104
+ else {
105
+ await response.body?.cancel();
106
+ }
107
+ }
108
+ return info;
109
+ }
110
+ static async fromExistingIndex(embeddings, config) {
111
+ const index = config.index ??
112
+ (await DatabricksVectorStore.describeIndex(config.fetch, config.host, config.indexName));
113
+ return new DatabricksVectorStore(embeddings, { ...config, index });
114
+ }
115
+ constructor(embeddings, config) {
116
+ super(embeddings, config);
117
+ const { index } = config;
118
+ const contentColumn = config.contentColumn ||
119
+ (index.embedding.kind === 'managed' ? index.embedding.sourceColumn : undefined);
120
+ if (!contentColumn) {
121
+ throw new n8n_workflow_1.UserError(`Index ${index.name} uses self-managed embeddings. Select a content column`);
122
+ }
123
+ this.fetch = config.fetch;
124
+ this.host = config.host;
125
+ this.index = index;
126
+ this.contentColumn = contentColumn;
127
+ this.reserved = new Set([
128
+ index.primaryKey,
129
+ contentColumn,
130
+ index.embedding.kind === 'self' ? index.embedding.vectorColumn : undefined,
131
+ ]);
132
+ this.metadataColumns = config.metadataColumns?.length
133
+ ? config.metadataColumns
134
+ : (index.schemaColumns ?? []).filter((column) => !this.reserved.has(column));
135
+ this.queryType = config.queryType ?? 'ANN';
136
+ this.defaultFilter = config.filter;
137
+ }
138
+ _vectorstoreType() {
139
+ return 'databricks';
140
+ }
141
+ get isManaged() {
142
+ return this.index.embedding.kind === 'managed';
143
+ }
144
+ async similaritySearchWithScore(query, k = 4, filter) {
145
+ if (this.isManaged) {
146
+ return await this.query({ num_results: k, query_type: this.queryType, query_text: query }, filter);
147
+ }
148
+ return await this.query({
149
+ num_results: k,
150
+ query_type: this.queryType,
151
+ query_vector: await this.embeddings.embedQuery(query),
152
+ ...(this.queryType === 'HYBRID' && { query_text: query }),
153
+ }, filter);
154
+ }
155
+ async similaritySearch(query, k = 4, filter) {
156
+ return (await this.similaritySearchWithScore(query, k, filter)).map(([doc]) => doc);
157
+ }
158
+ async similaritySearchVectorWithScore(query, k, filter) {
159
+ if (this.isManaged) {
160
+ throw new n8n_workflow_1.UserError(`Index ${this.index.name} uses Databricks-managed embeddings and accepts text queries only`);
161
+ }
162
+ return await this.query({ num_results: k, query_type: 'ANN', query_vector: query }, filter);
163
+ }
164
+ async addDocuments(documents, options) {
165
+ if (documents.length === 0)
166
+ return [];
167
+ this.assertDirectAccess();
168
+ const vectors = await this.embeddings.embedDocuments(documents.map((doc) => doc.pageContent));
169
+ return await this.addVectors(vectors, documents, options);
170
+ }
171
+ async addVectors(vectors, documents, options) {
172
+ const vectorColumn = this.assertDirectAccess();
173
+ const { primaryKey, name } = this.index;
174
+ if (this.contentColumn === primaryKey) {
175
+ throw new n8n_workflow_1.UserError(`Column ${primaryKey} is the primary key of ${name}. Select another content column`);
176
+ }
177
+ const schemaColumns = new Set(this.index.schemaColumns ?? []);
178
+ const ids = documents.map((doc, i) => options?.ids?.[i] ?? doc.id ?? (0, node_crypto_1.randomUUID)());
179
+ const rows = documents.map((doc, i) => ({
180
+ ...Object.fromEntries(Object.entries(doc.metadata).filter(([key]) => schemaColumns.has(key) && !this.reserved.has(key))),
181
+ [primaryKey]: ids[i],
182
+ [this.contentColumn]: doc.pageContent,
183
+ [vectorColumn]: vectors[i],
184
+ }));
185
+ const response = await databricksRequest(this.fetch, `${this.host}/api/2.0/vector-search/indexes/${(0, n8n_workflow_1.toPathSegment)(name)}/upsert-data`, { method: 'POST', body: JSON.stringify({ inputs_json: JSON.stringify(rows) }) });
186
+ if (!(0, is_record_1.isRecord)(response) || response.status !== 'SUCCESS') {
187
+ const result = (0, is_record_1.isRecord)(response) && (0, is_record_1.isRecord)(response.result) ? response.result : {};
188
+ const failed = stringArray(result.failed_primary_keys) ?? [];
189
+ throw new n8n_workflow_1.OperationalError(`Databricks rejected the upsert into ${name}. Failed primary keys: ${failed.join(', ')}`);
190
+ }
191
+ return ids;
192
+ }
193
+ assertDirectAccess() {
194
+ const { indexType, embedding, name } = this.index;
195
+ if (indexType !== 'DIRECT_ACCESS' || embedding.kind !== 'self') {
196
+ throw new n8n_workflow_1.UserError(`Index ${name} syncs from its source table. Use a Direct Access index to insert documents`);
197
+ }
198
+ return embedding.vectorColumn;
199
+ }
200
+ async query(body, filter) {
201
+ const { primaryKey, name } = this.index;
202
+ const columns = [...new Set([primaryKey, this.contentColumn, ...this.metadataColumns])];
203
+ const effectiveFilter = filter ?? this.defaultFilter;
204
+ const filtersJson = effectiveFilter && Object.keys(effectiveFilter).length > 0
205
+ ? JSON.stringify(effectiveFilter)
206
+ : undefined;
207
+ const response = await databricksRequest(this.fetch, `${this.host}/api/2.0/vector-search/indexes/${(0, n8n_workflow_1.toPathSegment)(name)}/query`, {
208
+ method: 'POST',
209
+ body: JSON.stringify({
210
+ ...body,
211
+ columns,
212
+ ...(filtersJson && { filters_json: filtersJson }),
213
+ }),
214
+ });
215
+ const manifest = (0, is_record_1.isRecord)(response) && (0, is_record_1.isRecord)(response.manifest) ? response.manifest : {};
216
+ const result = (0, is_record_1.isRecord)(response) && (0, is_record_1.isRecord)(response.result) ? response.result : {};
217
+ const names = records(manifest.columns).map((column) => optionalString(column.name) ?? '');
218
+ const rows = Array.isArray(result.data_array)
219
+ ? result.data_array.filter((row) => Array.isArray(row))
220
+ : [];
221
+ if (rows.length === 0)
222
+ return [];
223
+ const requireColumn = (name, at = names.indexOf(name)) => {
224
+ if (at < 0) {
225
+ throw new n8n_workflow_1.OperationalError(`Databricks query response lacks column "${name}"`);
226
+ }
227
+ return at;
228
+ };
229
+ const contentAt = requireColumn(this.contentColumn);
230
+ const idAt = requireColumn(primaryKey);
231
+ const scoreAt = requireColumn('score', names.lastIndexOf('score'));
232
+ const metadataAt = this.metadataColumns.map((column) => [column, requireColumn(column)]);
233
+ return rows.map((row) => [
234
+ new documents_1.Document({
235
+ pageContent: String(row[contentAt] ?? ''),
236
+ metadata: Object.fromEntries(metadataAt.map(([column, at]) => [column, row[at]])),
237
+ id: String(row[idAt]),
238
+ }),
239
+ Number(row[scoreAt]),
240
+ ]);
241
+ }
242
+ }
243
+ exports.DatabricksVectorStore = DatabricksVectorStore;
244
+ //# sourceMappingURL=DatabricksVectorStore.js.map