@n8n/ai-utilities 0.27.2 → 0.28.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.
@@ -9,7 +9,7 @@ export { listGoogleModels } from './providers/google';
9
9
  export { listGroqModels } from './providers/groq';
10
10
  export { listMistralModels } from './providers/mistral';
11
11
  export { listNvidiaModels } from './providers/nvidia';
12
- export { listOpenAiModels, shouldIncludeOpenAiModel } from './providers/openai';
12
+ export { isOpenAiCustomEndpoint, listOpenAiModels, shouldIncludeOpenAiModel, } from './providers/openai';
13
13
  export { listOpenRouterModels } from './providers/openrouter';
14
14
  export { listVercelModels } from './providers/vercel';
15
15
  export { listXaiModels } from './providers/xai';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listXaiModels = exports.listVercelModels = exports.listOpenRouterModels = exports.shouldIncludeOpenAiModel = exports.listOpenAiModels = exports.listNvidiaModels = exports.listMistralModels = exports.listGroqModels = exports.listGoogleModels = exports.listDeepSeekModels = exports.listCohereModels = exports.listAnthropicModels = exports.MODEL_DISCOVERY_PROVIDERS = void 0;
3
+ exports.listXaiModels = exports.listVercelModels = exports.listOpenRouterModels = exports.shouldIncludeOpenAiModel = exports.listOpenAiModels = exports.isOpenAiCustomEndpoint = exports.listNvidiaModels = exports.listMistralModels = exports.listGroqModels = exports.listGoogleModels = exports.listDeepSeekModels = exports.listCohereModels = exports.listAnthropicModels = exports.MODEL_DISCOVERY_PROVIDERS = void 0;
4
4
  exports.isModelDiscoveryProvider = isModelDiscoveryProvider;
5
5
  exports.listModelsForProvider = listModelsForProvider;
6
6
  const anthropic_1 = require("./providers/anthropic");
@@ -52,6 +52,7 @@ Object.defineProperty(exports, "listMistralModels", { enumerable: true, get: fun
52
52
  var nvidia_2 = require("./providers/nvidia");
53
53
  Object.defineProperty(exports, "listNvidiaModels", { enumerable: true, get: function () { return nvidia_2.listNvidiaModels; } });
54
54
  var openai_2 = require("./providers/openai");
55
+ Object.defineProperty(exports, "isOpenAiCustomEndpoint", { enumerable: true, get: function () { return openai_2.isOpenAiCustomEndpoint; } });
55
56
  Object.defineProperty(exports, "listOpenAiModels", { enumerable: true, get: function () { return openai_2.listOpenAiModels; } });
56
57
  Object.defineProperty(exports, "shouldIncludeOpenAiModel", { enumerable: true, get: function () { return openai_2.shouldIncludeOpenAiModel; } });
57
58
  var openrouter_2 = require("./providers/openrouter");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model-discovery/index.ts"],"names":[],"mappings":";;;;;AAAA,qDAA4D;AAC5D,+CAAsD;AACtD,mDAA0D;AAC1D,+CAAsD;AACtD,2CAAkD;AAClD,iDAAwD;AACxD,+CAAsD;AACtD,+CAAsD;AACtD,uDAA8D;AAC9D,+CAAsD;AACtD,yCAAgD;AAcnC,QAAA,yBAAyB,GAAiC;IACtE,SAAS,EAAE,+BAAmB;IAC9B,MAAM,EAAE,yBAAgB;IACxB,QAAQ,EAAE,6BAAkB;IAC5B,MAAM,EAAE,yBAAgB;IACxB,IAAI,EAAE,qBAAc;IACpB,OAAO,EAAE,2BAAiB;IAC1B,MAAM,EAAE,yBAAgB;IACxB,MAAM,EAAE,yBAAgB;IACxB,UAAU,EAAE,iCAAoB;IAChC,MAAM,EAAE,yBAAgB;IACxB,GAAG,EAAE,mBAAa;CAClB,CAAC;AAEF,kCAAyC,QAAgB;IACxD,OAAO,QAAQ,IAAI,QAAA,yBAAyB,CAAC;AAC9C,CAAC;AAEM,KAAK,gCACX,QAAgB,EAChB,OAA0B;IAE1B,MAAM,UAAU,GAAG,QAAA,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,mDAA4D;AAAnD,gHAAA,mBAAmB,OAAA;AAC5B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,iDAA0D;AAAjD,8GAAA,kBAAkB,OAAA;AAC3B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,yCAAkD;AAAzC,sGAAA,cAAc,OAAA;AACvB,+CAAwD;AAA/C,4GAAA,iBAAiB,OAAA;AAC1B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,6CAAgF;AAAvE,0GAAA,gBAAgB,OAAA;AAAE,kHAAA,wBAAwB,OAAA;AACnD,qDAA8D;AAArD,kHAAA,oBAAoB,OAAA;AAC7B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,uCAAgD;AAAvC,oGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model-discovery/index.ts"],"names":[],"mappings":";;;;;AAAA,qDAA4D;AAC5D,+CAAsD;AACtD,mDAA0D;AAC1D,+CAAsD;AACtD,2CAAkD;AAClD,iDAAwD;AACxD,+CAAsD;AACtD,+CAAsD;AACtD,uDAA8D;AAC9D,+CAAsD;AACtD,yCAAgD;AAcnC,QAAA,yBAAyB,GAAiC;IACtE,SAAS,EAAE,+BAAmB;IAC9B,MAAM,EAAE,yBAAgB;IACxB,QAAQ,EAAE,6BAAkB;IAC5B,MAAM,EAAE,yBAAgB;IACxB,IAAI,EAAE,qBAAc;IACpB,OAAO,EAAE,2BAAiB;IAC1B,MAAM,EAAE,yBAAgB;IACxB,MAAM,EAAE,yBAAgB;IACxB,UAAU,EAAE,iCAAoB;IAChC,MAAM,EAAE,yBAAgB;IACxB,GAAG,EAAE,mBAAa;CAClB,CAAC;AAEF,kCAAyC,QAAgB;IACxD,OAAO,QAAQ,IAAI,QAAA,yBAAyB,CAAC;AAC9C,CAAC;AAEM,KAAK,gCACX,QAAgB,EAChB,OAA0B;IAE1B,MAAM,UAAU,GAAG,QAAA,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,mDAA4D;AAAnD,gHAAA,mBAAmB,OAAA;AAC5B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,iDAA0D;AAAjD,8GAAA,kBAAkB,OAAA;AAC3B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,yCAAkD;AAAzC,sGAAA,cAAc,OAAA;AACvB,+CAAwD;AAA/C,4GAAA,iBAAiB,OAAA;AAC1B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,6CAI4B;AAH3B,gHAAA,sBAAsB,OAAA;AACtB,0GAAA,gBAAgB,OAAA;AAChB,kHAAA,wBAAwB,OAAA;AAEzB,qDAA8D;AAArD,kHAAA,oBAAoB,OAAA;AAC7B,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AACzB,uCAAgD;AAAvC,oGAAA,aAAa,OAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { ListModelsFn } from '../types';
2
+ export declare function isOpenAiCustomEndpoint(baseURL?: string): boolean;
2
3
  export declare function shouldIncludeOpenAiModel(modelId: string, isCustomApi: boolean): boolean;
3
4
  export declare const listOpenAiModels: ListModelsFn;
@@ -1,9 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listOpenAiModels = void 0;
4
+ exports.isOpenAiCustomEndpoint = isOpenAiCustomEndpoint;
4
5
  exports.shouldIncludeOpenAiModel = shouldIncludeOpenAiModel;
5
6
  const request_1 = require("../request");
6
7
  const OFFICIAL_OPENAI_HOSTNAMES = ['api.openai.com', 'ai-assistant.n8n.io'];
8
+ function isOpenAiCustomEndpoint(baseURL) {
9
+ if (baseURL === undefined)
10
+ return false;
11
+ try {
12
+ return !OFFICIAL_OPENAI_HOSTNAMES.includes(new URL(baseURL).hostname);
13
+ }
14
+ catch {
15
+ return true;
16
+ }
17
+ }
7
18
  function shouldIncludeOpenAiModel(modelId, isCustomApi) {
8
19
  if (isCustomApi)
9
20
  return true;
@@ -22,7 +33,7 @@ function shouldIncludeOpenAiModel(modelId, isCustomApi) {
22
33
  }
23
34
  const listOpenAiModels = async (options) => {
24
35
  const base = (0, request_1.baseUrl)(options, 'https://api.openai.com/v1');
25
- const isCustomApi = !OFFICIAL_OPENAI_HOSTNAMES.includes(new URL(base).hostname);
36
+ const isCustomApi = isOpenAiCustomEndpoint(base);
26
37
  const data = (await (0, request_1.getJson)(`${base}/models`, (0, request_1.bearerHeaders)(options), options, 'openai'));
27
38
  return (0, request_1.idsToModels)(data.data ?? [])
28
39
  .filter((model) => shouldIncludeOpenAiModel(model.id, isCustomApi))
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/model-discovery/providers/openai.ts"],"names":[],"mappings":";;;;AAAA,wCAA+F;AAG/F,MAAM,yBAAyB,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;AAM5E,kCAAyC,OAAe,EAAE,WAAoB;IAC7E,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,CAAC,CACP,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;QAClC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACpC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACrC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC5D,CAAC;AACH,CAAC;AAGM,MAAM,gBAAgB,GAAiB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,CAAC,MAAM,IAAA,iBAAO,EAAC,GAAG,IAAI,SAAS,EAAE,IAAA,uBAAa,EAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAEvF,CAAC;IAEF,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;SACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;SAClE,IAAI,CAAC,gBAAM,CAAC,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,gBAAgB,GAAhB,gBAAgB,CAU3B"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/model-discovery/providers/openai.ts"],"names":[],"mappings":";;;;;AAAA,wCAA+F;AAG/F,MAAM,yBAAyB,GAAG,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;AAE5E,gCAAuC,OAAgB;IACtD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAExC,IAAI,CAAC;QACJ,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAMD,kCAAyC,OAAe,EAAE,WAAoB;IAC7E,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,CAAC,CACP,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;QAClC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC5B,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACpC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAC7B,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACrC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC5D,CAAC;AACH,CAAC;AAGM,MAAM,gBAAgB,GAAiB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAA,iBAAO,EAAC,GAAG,IAAI,SAAS,EAAE,IAAA,uBAAa,EAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAEvF,CAAC;IAEF,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;SACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;SAClE,IAAI,CAAC,gBAAM,CAAC,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,gBAAgB,GAAhB,gBAAgB,CAU3B"}