n8n-nodes-empiriolabs 0.1.0 → 0.2.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
@@ -1,6 +1,6 @@
1
1
  # n8n-nodes-empiriolabs
2
2
 
3
- This is an n8n community node package. It lets you use [EmpirioLabs AI](https://empiriolabs.ai) in your n8n workflows for chat, image generation, text to speech, transcription, video generation, and embeddings, and it can start a workflow when a generation job finishes.
3
+ This is an n8n community node package. It lets you use [EmpirioLabs AI](https://empiriolabs.ai) in your n8n workflows for chat, image generation, text to speech, transcription, video generation, and embeddings, and to run any EmpirioLabs AI tool, such as reading a document or searching the web. It can also start a workflow when a generation job finishes.
4
4
 
5
5
  EmpirioLabs AI is a specialized AI inference and integration provider. It self-hosts open-source models on GPU infrastructure it manages, runs optimized endpoints for proprietary models, helps teams ship their own models to large audiences, and offers on-demand GPU Cloud instances and hosted AI agents. Its model catalog covers text, image, audio, video, transcription, embedding, reranking, research, and 3D models.
6
6
 
@@ -34,12 +34,23 @@ The **EmpirioLabs AI** node supports these resources and operations. Every model
34
34
  | Job | Get | Returns the status and result of a job. Can also download the finished file as binary data. |
35
35
  | Job | Get Many | Returns recent jobs, optionally filtered by status. |
36
36
  | Model | Get Many | Returns models from the catalog, optionally filtered by category or search text. |
37
+ | Tool | Run | Runs any EmpirioLabs AI tool, such as reading a document, searching the web, or generating media. See [Run a tool](#run-a-tool). |
37
38
  | Video | Generate | Starts a video generation job and returns the job. Turn on **Wait for Completion** to wait for the video, with a timeout, and download it as a binary file. |
38
39
 
39
40
  Operations that create content also accept **Model Parameters (JSON)**: extra request fields for the selected model, such as `{"seed": 42}`. Each model lists the fields it accepts on its page in the [model catalog](https://docs.empiriolabs.ai/models-pricing).
40
41
 
41
42
  The node can be used as a tool by the n8n AI Agent.
42
43
 
44
+ ### Run a tool
45
+
46
+ **Tool > Run** (the **Run a tool** action) runs any EmpirioLabs AI tool, such as reading a document, searching the web, or generating media.
47
+
48
+ - **Tool Name or ID:** the list loads live from EmpirioLabs AI, so new tools appear here without a node update.
49
+ - **Specify Arguments:** with **Using Fields Below**, the arguments of the chosen tool load as fields: text, numbers, switches, dropdowns for fixed choices, and JSON for objects and lists. Required arguments are marked, optional object and list arguments are added from **Add argument**, and empty fields are not sent. A switch starts at the tool's default, and a switch without a default is not sent until you change it. With **Using JSON**, enter all arguments as one JSON object, such as `{"query": "open models"}`.
50
+ - **Output:** one item with `tool`, `text` (the text result), `result` (the structured result), `job_id`, and `status`.
51
+ - **Long jobs:** a tool that starts a long job, such as a video, returns its `job_id` and a `status` such as `processing`. Get the finished result with **Job > Get**, or start a workflow when the job finishes with the trigger.
52
+ - **Errors:** when a tool cannot run, the node shows the message from EmpirioLabs AI, or returns it in the item when **Continue On Fail** is on.
53
+
43
54
  ## Trigger
44
55
 
45
56
  The **EmpirioLabs AI Trigger** node polls your recent jobs and starts the workflow when a job finishes.
@@ -62,7 +73,7 @@ n8n checks the key with a request to `GET https://api.empiriolabs.ai/v1/account/
62
73
 
63
74
  ## Compatibility
64
75
 
65
- Built with the n8n node CLI (`@n8n/node-cli` 0.52) and tested against `n8n-workflow` 2.43. The package has no runtime dependencies.
76
+ Built with the n8n node CLI (`@n8n/node-cli` 0.54) and tested against `n8n-workflow` 2.45. The package has no runtime dependencies.
66
77
 
67
78
  ## Usage
68
79
 
@@ -104,10 +115,19 @@ Versions are published to npm with a provenance statement by the [Publish workfl
104
115
  - [EmpirioLabs AI documentation](https://docs.empiriolabs.ai/getting-started)
105
116
  - [EmpirioLabs AI API reference](https://docs.empiriolabs.ai/api-reference-overview)
106
117
  - [EmpirioLabs AI models](https://empiriolabs.ai/models)
118
+ - [npm package](https://www.npmjs.com/package/n8n-nodes-empiriolabs)
107
119
  - Support: [support@empiriolabs.ai](mailto:support@empiriolabs.ai)
108
120
 
109
121
  ## Version history
110
122
 
123
+ ### 0.2.0
124
+
125
+ New Tool resource with the Run operation (Run a tool), which runs any EmpirioLabs AI tool. The tool list and each tool's arguments load live from EmpirioLabs AI, so new tools appear without a node update.
126
+
127
+ ### 0.1.1
128
+
129
+ Published from GitHub Actions through npm trusted publishing, with provenance. The README links the npm package.
130
+
111
131
  ### 0.1.0
112
132
 
113
133
  First release: Audio (Text to Speech, Transcribe), Chat (Create Completion), Embedding (Create), Image (Generate), Job (Get, Get Many), Model (Get Many), Video (Generate), and the Job Finished trigger.
@@ -1,6 +1,7 @@
1
1
  import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
- import { getChatModels, getEmbeddingModels, getImageModels, getModelCategories, getSpeechModels, getTranscriptionModels, getVideoModels, getVoices } from './methods/loadOptions';
2
+ import { getChatModels, getEmbeddingModels, getImageModels, getModelCategories, getSpeechModels, getTools, getTranscriptionModels, getVideoModels, getVoices } from './methods/loadOptions';
3
3
  import { searchJobs } from './methods/listSearch';
4
+ import { getToolFields } from './methods/resourceMapping';
4
5
  export declare class Empiriolabs implements INodeType {
5
6
  description: INodeTypeDescription;
6
7
  methods: {
@@ -10,6 +11,7 @@ export declare class Empiriolabs implements INodeType {
10
11
  getImageModels: typeof getImageModels;
11
12
  getModelCategories: typeof getModelCategories;
12
13
  getSpeechModels: typeof getSpeechModels;
14
+ getTools: typeof getTools;
13
15
  getTranscriptionModels: typeof getTranscriptionModels;
14
16
  getVideoModels: typeof getVideoModels;
15
17
  getVoices: typeof getVoices;
@@ -17,6 +19,9 @@ export declare class Empiriolabs implements INodeType {
17
19
  listSearch: {
18
20
  searchJobs: typeof searchJobs;
19
21
  };
22
+ resourceMapping: {
23
+ getToolFields: typeof getToolFields;
24
+ };
20
25
  };
21
26
  execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
22
27
  }
@@ -8,6 +8,7 @@ const embedding_1 = require("./actions/embedding");
8
8
  const image_1 = require("./actions/image");
9
9
  const job_1 = require("./actions/job");
10
10
  const model_1 = require("./actions/model");
11
+ const tool_1 = require("./actions/tool");
11
12
  const video_1 = require("./actions/video");
12
13
  const AudioDescription_1 = require("./descriptions/AudioDescription");
13
14
  const ChatDescription_1 = require("./descriptions/ChatDescription");
@@ -15,9 +16,11 @@ const EmbeddingDescription_1 = require("./descriptions/EmbeddingDescription");
15
16
  const ImageDescription_1 = require("./descriptions/ImageDescription");
16
17
  const JobDescription_1 = require("./descriptions/JobDescription");
17
18
  const ModelDescription_1 = require("./descriptions/ModelDescription");
19
+ const ToolDescription_1 = require("./descriptions/ToolDescription");
18
20
  const VideoDescription_1 = require("./descriptions/VideoDescription");
19
21
  const loadOptions_1 = require("./methods/loadOptions");
20
22
  const listSearch_1 = require("./methods/listSearch");
23
+ const resourceMapping_1 = require("./methods/resourceMapping");
21
24
  const OPERATIONS = {
22
25
  audio: { textToSpeech: audio_1.textToSpeech, transcribe: audio_1.transcribe },
23
26
  chat: { create: chat_1.createChatCompletion },
@@ -25,6 +28,7 @@ const OPERATIONS = {
25
28
  image: { generate: image_1.generateImage },
26
29
  job: { get: job_1.getJob, getAll: job_1.getManyJobs },
27
30
  model: { getAll: model_1.getManyModels },
31
+ tool: { run: tool_1.runTool },
28
32
  video: { generate: video_1.generateVideo },
29
33
  };
30
34
  class Empiriolabs {
@@ -36,7 +40,7 @@ class Empiriolabs {
36
40
  group: ['transform'],
37
41
  version: 1,
38
42
  subtitle: '={{ $parameter["operation"] + ": " + $parameter["resource"] }}',
39
- description: 'Use EmpirioLabs AI models for chat, images, speech, transcription, video, and embeddings',
43
+ description: 'Use EmpirioLabs AI models for chat, images, speech, transcription, video, and embeddings, and run any EmpirioLabs AI tool',
40
44
  defaults: {
41
45
  name: 'EmpirioLabs AI',
42
46
  },
@@ -62,6 +66,7 @@ class Empiriolabs {
62
66
  { name: 'Image', value: 'image' },
63
67
  { name: 'Job', value: 'job' },
64
68
  { name: 'Model', value: 'model' },
69
+ { name: 'Tool', value: 'tool' },
65
70
  { name: 'Video', value: 'video' },
66
71
  ],
67
72
  default: 'chat',
@@ -78,6 +83,8 @@ class Empiriolabs {
78
83
  ...JobDescription_1.jobFields,
79
84
  ...ModelDescription_1.modelOperations,
80
85
  ...ModelDescription_1.modelFields,
86
+ ...ToolDescription_1.toolOperations,
87
+ ...ToolDescription_1.toolFields,
81
88
  ...VideoDescription_1.videoOperations,
82
89
  ...VideoDescription_1.videoFields,
83
90
  ],
@@ -89,6 +96,7 @@ class Empiriolabs {
89
96
  getImageModels: loadOptions_1.getImageModels,
90
97
  getModelCategories: loadOptions_1.getModelCategories,
91
98
  getSpeechModels: loadOptions_1.getSpeechModels,
99
+ getTools: loadOptions_1.getTools,
92
100
  getTranscriptionModels: loadOptions_1.getTranscriptionModels,
93
101
  getVideoModels: loadOptions_1.getVideoModels,
94
102
  getVoices: loadOptions_1.getVoices,
@@ -96,6 +104,9 @@ class Empiriolabs {
96
104
  listSearch: {
97
105
  searchJobs: listSearch_1.searchJobs,
98
106
  },
107
+ resourceMapping: {
108
+ getToolFields: resourceMapping_1.getToolFields,
109
+ },
99
110
  };
100
111
  }
101
112
  async execute() {
@@ -1 +1 @@
1
- {"version":3,"file":"Empiriolabs.node.js","sourceRoot":"","sources":["../../../nodes/Empiriolabs/Empiriolabs.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Empiriolabs.node.js","sourceRoot":"","sources":["../../../nodes/Empiriolabs/Empiriolabs.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { IDataObject, IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
2
+ export declare function buildToolArguments(values: unknown, schema: unknown): IDataObject;
3
+ export declare function toolText(content: unknown): string;
4
+ export declare function runTool(this: IExecuteFunctions, itemIndex: number): Promise<INodeExecutionData[]>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildToolArguments = buildToolArguments;
4
+ exports.toolText = toolText;
5
+ exports.runTool = runTool;
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ const transport_1 = require("../transport");
8
+ function buildToolArguments(values, schema) {
9
+ const fieldTypes = new Map();
10
+ if (Array.isArray(schema)) {
11
+ for (const field of schema) {
12
+ if ((0, transport_1.isDataObject)(field) && typeof field.id === 'string') {
13
+ fieldTypes.set(field.id, field.type);
14
+ }
15
+ }
16
+ }
17
+ const args = {};
18
+ if (!(0, transport_1.isDataObject)(values)) {
19
+ return args;
20
+ }
21
+ for (const [name, value] of Object.entries(values)) {
22
+ if (value === undefined || value === null || value === '') {
23
+ continue;
24
+ }
25
+ const type = fieldTypes.get(name);
26
+ if (typeof value === 'string' && (type === 'object' || type === 'array')) {
27
+ const parsed = (0, transport_1.parseJson)(value);
28
+ if (parsed !== null && typeof parsed === 'object') {
29
+ args[name] = parsed;
30
+ continue;
31
+ }
32
+ }
33
+ args[name] = value;
34
+ }
35
+ return args;
36
+ }
37
+ function toolText(content) {
38
+ return (Array.isArray(content) ? content : [])
39
+ .filter(transport_1.isDataObject)
40
+ .filter((block) => block.type === 'text' && typeof block.text === 'string')
41
+ .map((block) => block.text)
42
+ .join('\n\n');
43
+ }
44
+ function textOrNull(value) {
45
+ return typeof value === 'string' && value !== '' ? value : null;
46
+ }
47
+ async function runTool(itemIndex) {
48
+ var _a;
49
+ const tool = String((_a = this.getNodeParameter('tool', itemIndex, '')) !== null && _a !== void 0 ? _a : '').trim();
50
+ if (tool === '') {
51
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Choose a tool to run', {
52
+ itemIndex,
53
+ description: 'Select a tool in Tool Name or ID, or enter its name with an expression',
54
+ });
55
+ }
56
+ const inputMode = this.getNodeParameter('inputMode', itemIndex, 'fields');
57
+ const args = inputMode === 'json'
58
+ ? transport_1.parseJsonObjectParameter.call(this, this.getNodeParameter('jsonArguments', itemIndex, '{}'), 'Arguments (JSON)', itemIndex)
59
+ : buildToolArguments(this.getNodeParameter('toolArguments.value', itemIndex, {}), this.getNodeParameter('toolArguments.schema', itemIndex, []));
60
+ const result = await transport_1.mcpRequest.call(this, 'tools/call', { name: tool, arguments: args }, itemIndex);
61
+ const text = toolText(result.content);
62
+ if (result.isError) {
63
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), (0, transport_1.cleanCopy)(text) || transport_1.TOOL_ERROR_MESSAGE, {
64
+ itemIndex,
65
+ });
66
+ }
67
+ const structured = (0, transport_1.isDataObject)(result.structuredContent) ? result.structuredContent : {};
68
+ return [
69
+ {
70
+ json: {
71
+ tool,
72
+ text,
73
+ result: structured,
74
+ job_id: textOrNull(structured.job_id),
75
+ status: textOrNull(structured.status),
76
+ },
77
+ pairedItem: { item: itemIndex },
78
+ },
79
+ ];
80
+ }
81
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../../nodes/Empiriolabs/actions/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const toolOperations: INodeProperties[];
3
+ export declare const toolFields: INodeProperties[];
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toolFields = exports.toolOperations = void 0;
4
+ const showForRun = { resource: ['tool'], operation: ['run'] };
5
+ exports.toolOperations = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: { show: { resource: ['tool'] } },
12
+ options: [
13
+ {
14
+ name: 'Run',
15
+ value: 'run',
16
+ description: 'Run any EmpirioLabs AI tool, such as reading a document, searching the web or generating media',
17
+ action: 'Run a tool',
18
+ },
19
+ ],
20
+ default: 'run',
21
+ },
22
+ ];
23
+ exports.toolFields = [
24
+ {
25
+ displayName: 'Tool Name or ID',
26
+ name: 'tool',
27
+ type: 'options',
28
+ typeOptions: { loadOptionsMethod: 'getTools' },
29
+ required: true,
30
+ default: '',
31
+ description: 'The EmpirioLabs AI tool to run. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
32
+ displayOptions: { show: showForRun },
33
+ },
34
+ {
35
+ displayName: 'Specify Arguments',
36
+ name: 'inputMode',
37
+ type: 'options',
38
+ options: [
39
+ {
40
+ name: 'Using Fields Below',
41
+ value: 'fields',
42
+ description: 'Enter each argument of the tool in its own field',
43
+ },
44
+ {
45
+ name: 'Using JSON',
46
+ value: 'json',
47
+ description: 'Enter all arguments of the tool as one JSON object',
48
+ },
49
+ ],
50
+ default: 'fields',
51
+ displayOptions: { show: showForRun },
52
+ },
53
+ {
54
+ displayName: 'Arguments',
55
+ name: 'toolArguments',
56
+ type: 'resourceMapper',
57
+ noDataExpression: true,
58
+ default: { mappingMode: 'defineBelow', value: null },
59
+ typeOptions: {
60
+ loadOptionsDependsOn: ['tool'],
61
+ resourceMapper: {
62
+ resourceMapperMethod: 'getToolFields',
63
+ mode: 'add',
64
+ fieldWords: { singular: 'argument', plural: 'arguments' },
65
+ addAllFields: true,
66
+ multiKeyMatch: false,
67
+ supportAutoMap: false,
68
+ },
69
+ },
70
+ displayOptions: { show: { ...showForRun, inputMode: ['fields'] } },
71
+ },
72
+ {
73
+ displayName: 'Arguments (JSON)',
74
+ name: 'jsonArguments',
75
+ type: 'json',
76
+ required: true,
77
+ default: '{}',
78
+ description: 'The arguments of the tool as a JSON object, for example {"query": "open models"}',
79
+ displayOptions: { show: { ...showForRun, inputMode: ['json'] } },
80
+ },
81
+ ];
82
+ //# sourceMappingURL=ToolDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolDescription.js","sourceRoot":"","sources":["../../../../nodes/Empiriolabs/descriptions/ToolDescription.ts"],"names":[],"mappings":";;;AAEA,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AAEjD,QAAA,cAAc,GAAsB;IAChD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAChD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;gBACZ,WAAW,EACV,gGAAgG;gBACjG,MAAM,EAAE,YAAY;aACpB;SACD;QACD,OAAO,EAAE,KAAK;KACd;CACD,CAAC;AAEW,QAAA,UAAU,GAAsB;IAC5C;QACC,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE;QAC9C,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EACV,iJAAiJ;QAClJ,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;KACpC;IACD;QACC,WAAW,EAAE,mBAAmB;QAChC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,kDAAkD;aAC/D;YACD;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,oDAAoD;aACjE;SACD;QACD,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;KACpC;IACD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,gBAAgB;QACtB,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;QACpD,WAAW,EAAE;YACZ,oBAAoB,EAAE,CAAC,MAAM,CAAC;YAC9B,cAAc,EAAE;gBACf,oBAAoB,EAAE,eAAe;gBACrC,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;gBACzD,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,KAAK;aACrB;SACD;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;KAClE;IACD;QACC,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,kFAAkF;QAC/F,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KAChE;CACD,CAAC"}
@@ -10,3 +10,6 @@ export declare function getVideoModels(this: ILoadOptionsFunctions): Promise<INo
10
10
  export declare function getEmbeddingModels(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
11
11
  export declare function getVoices(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
12
12
  export declare function getModelCategories(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
13
+ export declare function toolTitle(tool: IDataObject): string;
14
+ export declare function buildToolOptions(tools: IDataObject[]): INodePropertyOptions[];
15
+ export declare function getTools(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
@@ -11,6 +11,9 @@ exports.getVideoModels = getVideoModels;
11
11
  exports.getEmbeddingModels = getEmbeddingModels;
12
12
  exports.getVoices = getVoices;
13
13
  exports.getModelCategories = getModelCategories;
14
+ exports.toolTitle = toolTitle;
15
+ exports.buildToolOptions = buildToolOptions;
16
+ exports.getTools = getTools;
14
17
  const transport_1 = require("../transport");
15
18
  const MODEL_FILTERS = {
16
19
  chat: { endpoint: '/v1/chat/completions', categories: ['text'] },
@@ -130,4 +133,29 @@ async function getModelCategories() {
130
133
  }
131
134
  return [...slugs].sort().map((slug) => ({ name: slug, value: slug }));
132
135
  }
136
+ function toolTitle(tool) {
137
+ const annotations = (0, transport_1.isDataObject)(tool.annotations) ? tool.annotations : {};
138
+ for (const candidate of [annotations.title, tool.title, tool.name]) {
139
+ const title = (0, transport_1.cleanCopy)(candidate);
140
+ if (title !== '') {
141
+ return title;
142
+ }
143
+ }
144
+ return String(tool.name);
145
+ }
146
+ function buildToolOptions(tools) {
147
+ return tools
148
+ .map((tool) => {
149
+ const option = { name: toolTitle(tool), value: String(tool.name) };
150
+ const description = (0, transport_1.cleanCopy)(tool.description);
151
+ if (description !== '') {
152
+ option.description = description;
153
+ }
154
+ return option;
155
+ })
156
+ .sort((a, b) => a.name.localeCompare(b.name));
157
+ }
158
+ async function getTools() {
159
+ return buildToolOptions(await transport_1.listTools.call(this));
160
+ }
133
161
  //# sourceMappingURL=loadOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadOptions.js","sourceRoot":"","sources":["../../../../nodes/Empiriolabs/methods/loadOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadOptions.js","sourceRoot":"","sources":["../../../../nodes/Empiriolabs/methods/loadOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { FieldType, IDataObject, ILoadOptionsFunctions, INodePropertyOptions, ResourceMapperField, ResourceMapperFields } from 'n8n-workflow';
2
+ interface FieldShape {
3
+ type: FieldType;
4
+ options?: INodePropertyOptions[];
5
+ }
6
+ export declare function humanize(name: string): string;
7
+ export declare function fieldShape(schema: unknown, depth?: number): FieldShape;
8
+ export declare function toolFields(tool: IDataObject): ResourceMapperField[];
9
+ export declare function getToolFields(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
10
+ export {};
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.humanize = humanize;
4
+ exports.fieldShape = fieldShape;
5
+ exports.toolFields = toolFields;
6
+ exports.getToolFields = getToolFields;
7
+ const transport_1 = require("../transport");
8
+ const JSON_SCHEMA_TYPES = {
9
+ string: 'string',
10
+ integer: 'number',
11
+ number: 'number',
12
+ boolean: 'boolean',
13
+ array: 'array',
14
+ object: 'object',
15
+ };
16
+ const WORD_CASING = {
17
+ ai: 'AI',
18
+ api: 'API',
19
+ cfg: 'CFG',
20
+ id: 'ID',
21
+ ids: 'IDs',
22
+ json: 'JSON',
23
+ jsonl: 'JSONL',
24
+ mime: 'MIME',
25
+ ocr: 'OCR',
26
+ tts: 'TTS',
27
+ uri: 'URI',
28
+ url: 'URL',
29
+ urls: 'URLs',
30
+ };
31
+ const MAX_SCHEMA_DEPTH = 8;
32
+ function humanize(name) {
33
+ const label = name
34
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
35
+ .split(/[\s_-]+/)
36
+ .filter((word) => word !== '')
37
+ .map((word) => { var _a; return (_a = WORD_CASING[word.toLowerCase()]) !== null && _a !== void 0 ? _a : `${word.charAt(0).toUpperCase()}${word.slice(1)}`; })
38
+ .join(' ');
39
+ return label || name;
40
+ }
41
+ function declaredTypes(schema) {
42
+ const types = Array.isArray(schema.type) ? schema.type : [schema.type];
43
+ return types.filter((type) => typeof type === 'string' && type !== 'null');
44
+ }
45
+ function allowsOnlyNull(schema) {
46
+ const types = Array.isArray(schema.type) ? schema.type : [schema.type];
47
+ return types.length > 0 && types.every((type) => type === 'null');
48
+ }
49
+ function stringChoices(schema) {
50
+ if (!Array.isArray(schema.enum)) {
51
+ return undefined;
52
+ }
53
+ const values = schema.enum.filter((value) => value !== null);
54
+ return values.length > 0 && values.every((value) => typeof value === 'string')
55
+ ? values
56
+ : undefined;
57
+ }
58
+ function combinedShape(types) {
59
+ if (types.some((type) => type === 'string' || type === 'options')) {
60
+ return { type: 'string' };
61
+ }
62
+ for (const type of ['array', 'number', 'boolean']) {
63
+ if (types.every((entry) => entry === type)) {
64
+ return { type };
65
+ }
66
+ }
67
+ return { type: 'object' };
68
+ }
69
+ function fieldShape(schema, depth = 0) {
70
+ var _a;
71
+ const property = (0, transport_1.isDataObject)(schema) ? schema : {};
72
+ const variants = Array.isArray(property.anyOf)
73
+ ? property.anyOf
74
+ : Array.isArray(property.oneOf)
75
+ ? property.oneOf
76
+ : undefined;
77
+ if (variants && depth < MAX_SCHEMA_DEPTH) {
78
+ const shapes = variants
79
+ .filter(transport_1.isDataObject)
80
+ .filter((variant) => !allowsOnlyNull(variant));
81
+ if (shapes.length === 1) {
82
+ return fieldShape(shapes[0], depth + 1);
83
+ }
84
+ if (shapes.length > 1) {
85
+ return combinedShape(shapes.map((variant) => fieldShape(variant, depth + 1).type));
86
+ }
87
+ }
88
+ const types = declaredTypes(property);
89
+ const choices = stringChoices(property);
90
+ if (choices && types.every((type) => type === 'string')) {
91
+ return { type: 'options', options: choices.map((value) => ({ name: value, value })) };
92
+ }
93
+ if (types.length > 1) {
94
+ return combinedShape(types.map((type) => { var _a; return (_a = JSON_SCHEMA_TYPES[type]) !== null && _a !== void 0 ? _a : 'string'; }));
95
+ }
96
+ if (types.length === 1) {
97
+ return { type: (_a = JSON_SCHEMA_TYPES[types[0]]) !== null && _a !== void 0 ? _a : 'string' };
98
+ }
99
+ if ((0, transport_1.isDataObject)(property.properties)) {
100
+ return { type: 'object' };
101
+ }
102
+ if (property.items !== undefined) {
103
+ return { type: 'array' };
104
+ }
105
+ return { type: 'string' };
106
+ }
107
+ function toolFields(tool) {
108
+ const schema = (0, transport_1.isDataObject)(tool.inputSchema) ? tool.inputSchema : {};
109
+ const properties = (0, transport_1.isDataObject)(schema.properties) ? schema.properties : {};
110
+ const required = new Set(Array.isArray(schema.required)
111
+ ? schema.required.filter((name) => typeof name === 'string')
112
+ : []);
113
+ return Object.entries(properties).map(([name, property]) => {
114
+ const shape = fieldShape(property);
115
+ const field = {
116
+ id: name,
117
+ displayName: humanize(name),
118
+ required: required.has(name),
119
+ defaultMatch: false,
120
+ canBeUsedToMatch: false,
121
+ display: true,
122
+ type: shape.type,
123
+ };
124
+ if (shape.options) {
125
+ field.options = shape.options;
126
+ }
127
+ if (!field.required && (shape.type === 'object' || shape.type === 'array')) {
128
+ field.removed = true;
129
+ }
130
+ if (shape.type === 'boolean') {
131
+ const fallback = (0, transport_1.isDataObject)(property) ? property.default : undefined;
132
+ field.defaultValue = typeof fallback === 'boolean' ? fallback : null;
133
+ }
134
+ return field;
135
+ });
136
+ }
137
+ async function getToolFields() {
138
+ const name = this.getCurrentNodeParameter('tool');
139
+ if (typeof name !== 'string' || name === '' || name.startsWith('=')) {
140
+ return { fields: [] };
141
+ }
142
+ const tool = (await transport_1.listTools.call(this)).find((entry) => entry.name === name);
143
+ if (!tool) {
144
+ return {
145
+ fields: [],
146
+ emptyFieldsNotice: 'This tool is not available any more. Choose another tool.',
147
+ };
148
+ }
149
+ const fields = toolFields(tool);
150
+ return fields.length > 0
151
+ ? { fields }
152
+ : { fields, emptyFieldsNotice: 'This tool takes no arguments.' };
153
+ }
154
+ //# sourceMappingURL=resourceMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceMapping.js","sourceRoot":"","sources":["../../../../nodes/Empiriolabs/methods/resourceMapping.ts"],"names":[],"mappings":"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"}