n8n-nodes-orbital-process 0.1.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/dist/credentials/OrbitalProcessApi.credentials.d.ts +11 -0
- package/dist/credentials/OrbitalProcessApi.credentials.js +57 -0
- package/dist/credentials/OrbitalProcessApi.credentials.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/OrbitalProcess/OrbitalProcess.node.d.ts +18 -0
- package/dist/nodes/OrbitalProcess/OrbitalProcess.node.js +558 -0
- package/dist/nodes/OrbitalProcess/OrbitalProcess.node.js.map +1 -0
- package/dist/nodes/OrbitalProcess/OrbitalProcess.node.json +12 -0
- package/dist/nodes/OrbitalProcess/orbital.svg +7 -0
- package/package.json +35 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
/**
|
|
3
|
+
* Credential para Orbital Process API.
|
|
4
|
+
* Soporta API Key (Bearer oapi_xxx) o JWT (Bearer eyJ...).
|
|
5
|
+
*/
|
|
6
|
+
export declare class OrbitalProcessApi implements ICredentialType {
|
|
7
|
+
name: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
documentationUrl: string;
|
|
10
|
+
properties: INodeProperties[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrbitalProcessApi = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Credential para Orbital Process API.
|
|
6
|
+
* Soporta API Key (Bearer oapi_xxx) o JWT (Bearer eyJ...).
|
|
7
|
+
*/
|
|
8
|
+
class OrbitalProcessApi {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.name = 'orbitalProcessApi';
|
|
11
|
+
this.displayName = 'Orbital Process API';
|
|
12
|
+
this.documentationUrl = 'https://docs.orbital.fractaliacyber.com/integrations/n8n';
|
|
13
|
+
this.properties = [
|
|
14
|
+
{
|
|
15
|
+
displayName: 'URL Base de Orbital',
|
|
16
|
+
name: 'baseUrl',
|
|
17
|
+
type: 'string',
|
|
18
|
+
default: 'https://api.orbital.fractaliacyber.com',
|
|
19
|
+
description: 'URL base de la API de Orbital.',
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
displayName: 'Tipo de Autenticación',
|
|
24
|
+
name: 'authType',
|
|
25
|
+
type: 'options',
|
|
26
|
+
options: [
|
|
27
|
+
{ name: 'API Key (oapi_xxx)', value: 'apiKey' },
|
|
28
|
+
{ name: 'JWT Token (eyJ...)', value: 'jwt' },
|
|
29
|
+
],
|
|
30
|
+
default: 'apiKey',
|
|
31
|
+
description: 'API Key para acceso permanente al proyecto. JWT para acceso temporal (recibido en webhook payload).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
displayName: 'API Key',
|
|
35
|
+
name: 'apiKey',
|
|
36
|
+
type: 'string',
|
|
37
|
+
typeOptions: { password: true },
|
|
38
|
+
default: '',
|
|
39
|
+
placeholder: 'oapi_xxxxxxxxxxxxxxxx',
|
|
40
|
+
description: 'API Key del proyecto. Se obtiene en el panel de control.',
|
|
41
|
+
displayOptions: { show: { authType: ['apiKey'] } },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'JWT Token',
|
|
45
|
+
name: 'jwtToken',
|
|
46
|
+
type: 'string',
|
|
47
|
+
typeOptions: { password: true },
|
|
48
|
+
default: '',
|
|
49
|
+
placeholder: 'eyJhbGciOiJIUzI1NiIs...',
|
|
50
|
+
description: 'JWT recibido en el payload de una action (auth.token). Válido 7 días.',
|
|
51
|
+
displayOptions: { show: { authType: ['jwt'] } },
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.OrbitalProcessApi = OrbitalProcessApi;
|
|
57
|
+
//# sourceMappingURL=OrbitalProcessApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrbitalProcessApi.credentials.js","sourceRoot":"","sources":["../../src/credentials/OrbitalProcessApi.credentials.ts"],"names":[],"mappings":";;;AAKA;;;GAGG;AACH,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAG,mBAAmB,CAAC;QAC3B,gBAAW,GAAG,qBAAqB,CAAC;QACpC,qBAAgB,GAAG,0DAA0D,CAAC;QAE9E,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wCAAwC;gBACjD,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC/C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE;iBAC7C;gBACD,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,qGAAqG;aACnH;YACD;gBACE,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE,0DAA0D;gBACvE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;aACnD;YACD;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,yBAAyB;gBACtC,WAAW,EAAE,uEAAuE;gBACpF,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;aAChD;SACF,CAAC;IACJ,CAAC;CAAA;AA9CD,8CA8CC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrbitalProcessApi = exports.OrbitalProcess = void 0;
|
|
4
|
+
var OrbitalProcess_node_1 = require("./nodes/OrbitalProcess/OrbitalProcess.node");
|
|
5
|
+
Object.defineProperty(exports, "OrbitalProcess", { enumerable: true, get: function () { return OrbitalProcess_node_1.OrbitalProcess; } });
|
|
6
|
+
var OrbitalProcessApi_credentials_1 = require("./credentials/OrbitalProcessApi.credentials");
|
|
7
|
+
Object.defineProperty(exports, "OrbitalProcessApi", { enumerable: true, get: function () { return OrbitalProcessApi_credentials_1.OrbitalProcessApi; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,kFAA4E;AAAnE,qHAAA,cAAc,OAAA;AACvB,6FAAgF;AAAvE,kIAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
/**
|
|
3
|
+
* ORBITAL PROCESS — Nodo único para ejecutar agentes IA de Orbital.
|
|
4
|
+
*
|
|
5
|
+
* Operaciones:
|
|
6
|
+
* 1. Process (Sync) → POST /public/api/agents/{agentId}/process — respuesta inmediata
|
|
7
|
+
* 2. Process (Async) → POST /public/api/agents/{agentId}/process {async:true} — retorna jobId
|
|
8
|
+
* 3. Consultar Job → GET /public/api/users/{userId}/jobs/{jobId} — polling de resultado
|
|
9
|
+
* 4. Chat → POST /public/api/agents/{agentId}/chat — conversacional
|
|
10
|
+
* 5. Compact → POST /public/api/compact — LLM directo
|
|
11
|
+
* 6. Listar Agentes → GET /public/api/agents — discovery
|
|
12
|
+
*
|
|
13
|
+
* Auth: Bearer oapi_xxx (API Key) o Bearer eyJ... (JWT de webhook)
|
|
14
|
+
*/
|
|
15
|
+
export declare class OrbitalProcess implements INodeType {
|
|
16
|
+
description: INodeTypeDescription;
|
|
17
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrbitalProcess = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* ORBITAL PROCESS — Nodo único para ejecutar agentes IA de Orbital.
|
|
6
|
+
*
|
|
7
|
+
* Operaciones:
|
|
8
|
+
* 1. Process (Sync) → POST /public/api/agents/{agentId}/process — respuesta inmediata
|
|
9
|
+
* 2. Process (Async) → POST /public/api/agents/{agentId}/process {async:true} — retorna jobId
|
|
10
|
+
* 3. Consultar Job → GET /public/api/users/{userId}/jobs/{jobId} — polling de resultado
|
|
11
|
+
* 4. Chat → POST /public/api/agents/{agentId}/chat — conversacional
|
|
12
|
+
* 5. Compact → POST /public/api/compact — LLM directo
|
|
13
|
+
* 6. Listar Agentes → GET /public/api/agents — discovery
|
|
14
|
+
*
|
|
15
|
+
* Auth: Bearer oapi_xxx (API Key) o Bearer eyJ... (JWT de webhook)
|
|
16
|
+
*/
|
|
17
|
+
class OrbitalProcess {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.description = {
|
|
20
|
+
displayName: 'Orbital Process',
|
|
21
|
+
name: 'orbitalProcess',
|
|
22
|
+
icon: 'file:orbital.svg',
|
|
23
|
+
group: ['transform'],
|
|
24
|
+
version: 1,
|
|
25
|
+
subtitle: '={{ $parameter["operation"] }}',
|
|
26
|
+
description: 'Ejecuta agentes IA de Orbital: process, chat, compact, polling y discovery.',
|
|
27
|
+
defaults: {
|
|
28
|
+
name: 'Orbital Process',
|
|
29
|
+
},
|
|
30
|
+
inputs: ['main'],
|
|
31
|
+
outputs: ['main'],
|
|
32
|
+
credentials: [
|
|
33
|
+
{
|
|
34
|
+
name: 'orbitalProcessApi',
|
|
35
|
+
required: true,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
properties: [
|
|
39
|
+
// ========================================
|
|
40
|
+
// OPERACIÓN
|
|
41
|
+
// ========================================
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Operación',
|
|
44
|
+
name: 'operation',
|
|
45
|
+
type: 'options',
|
|
46
|
+
noDataExpression: true,
|
|
47
|
+
options: [
|
|
48
|
+
{
|
|
49
|
+
name: 'Ejecutar Agente (Sync)',
|
|
50
|
+
value: 'process',
|
|
51
|
+
description: 'Ejecuta un agente y espera la respuesta completa con tools, metrics y output.',
|
|
52
|
+
action: 'Ejecutar agente sync',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'Ejecutar Agente (Async)',
|
|
56
|
+
value: 'processAsync',
|
|
57
|
+
description: 'Ejecuta un agente en background. Retorna jobId para consultar después.',
|
|
58
|
+
action: 'Ejecutar agente async',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Consultar Job',
|
|
62
|
+
value: 'getJob',
|
|
63
|
+
description: 'Consulta el estado y resultado de un job async por su jobId.',
|
|
64
|
+
action: 'Consultar estado de job',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'Chat',
|
|
68
|
+
value: 'chat',
|
|
69
|
+
description: 'Chat conversacional con un agente. Soporta historial por conversationId.',
|
|
70
|
+
action: 'Chat con agente',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Compact (LLM Directo)',
|
|
74
|
+
value: 'compact',
|
|
75
|
+
description: 'Llamada directa al LLM sin agente. Ideal para clasificación, extracción, etc.',
|
|
76
|
+
action: 'Llamada LLM directa',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'Listar Agentes',
|
|
80
|
+
value: 'listAgents',
|
|
81
|
+
description: 'Lista los agentes disponibles del proyecto con sus IDs y descripciones.',
|
|
82
|
+
action: 'Listar agentes disponibles',
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
default: 'process',
|
|
86
|
+
},
|
|
87
|
+
// ========================================
|
|
88
|
+
// AGENT ID (process, processAsync, chat)
|
|
89
|
+
// ========================================
|
|
90
|
+
{
|
|
91
|
+
displayName: 'Agent ID',
|
|
92
|
+
name: 'agentId',
|
|
93
|
+
type: 'string',
|
|
94
|
+
default: '',
|
|
95
|
+
placeholder: 'agent_clasificador_abc123',
|
|
96
|
+
description: 'ID del agente a ejecutar. Usa la operación "Listar Agentes" para obtener los disponibles.',
|
|
97
|
+
required: true,
|
|
98
|
+
displayOptions: { show: { operation: ['process', 'processAsync', 'chat'] } },
|
|
99
|
+
},
|
|
100
|
+
// ========================================
|
|
101
|
+
// MENSAJE (process, processAsync, chat)
|
|
102
|
+
// ========================================
|
|
103
|
+
{
|
|
104
|
+
displayName: 'Mensaje',
|
|
105
|
+
name: 'message',
|
|
106
|
+
type: 'string',
|
|
107
|
+
typeOptions: { rows: 4 },
|
|
108
|
+
default: '',
|
|
109
|
+
placeholder: 'Clasifica este incidente: servidor caído en producción',
|
|
110
|
+
description: 'Mensaje o instrucción para el agente.',
|
|
111
|
+
displayOptions: { show: { operation: ['process', 'processAsync', 'chat'] } },
|
|
112
|
+
},
|
|
113
|
+
// ========================================
|
|
114
|
+
// USER ID (process, processAsync, chat)
|
|
115
|
+
// ========================================
|
|
116
|
+
{
|
|
117
|
+
displayName: 'User ID',
|
|
118
|
+
name: 'userId',
|
|
119
|
+
type: 'string',
|
|
120
|
+
default: '',
|
|
121
|
+
placeholder: 'user_abc123',
|
|
122
|
+
description: 'Opcional. Asocia la ejecución a un usuario. Necesario para consultar jobs y habilitar tools con contexto.',
|
|
123
|
+
displayOptions: { show: { operation: ['process', 'processAsync', 'chat', 'getJob'] } },
|
|
124
|
+
},
|
|
125
|
+
// ========================================
|
|
126
|
+
// VARIABLES (process, processAsync)
|
|
127
|
+
// ========================================
|
|
128
|
+
{
|
|
129
|
+
displayName: 'Variables',
|
|
130
|
+
name: 'variables',
|
|
131
|
+
type: 'fixedCollection',
|
|
132
|
+
typeOptions: { multipleValues: true },
|
|
133
|
+
default: {},
|
|
134
|
+
placeholder: 'Agregar variable',
|
|
135
|
+
description: 'Variables para interpolar en el prompt del agente. Cada {{nombre}} en el prompt se reemplaza por el valor.',
|
|
136
|
+
displayOptions: { show: { operation: ['process', 'processAsync'] } },
|
|
137
|
+
options: [
|
|
138
|
+
{
|
|
139
|
+
name: 'entries',
|
|
140
|
+
displayName: 'Variables',
|
|
141
|
+
values: [
|
|
142
|
+
{
|
|
143
|
+
displayName: 'Nombre',
|
|
144
|
+
name: 'key',
|
|
145
|
+
type: 'string',
|
|
146
|
+
default: '',
|
|
147
|
+
placeholder: 'nombre_cliente',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
displayName: 'Valor',
|
|
151
|
+
name: 'value',
|
|
152
|
+
type: 'string',
|
|
153
|
+
default: '',
|
|
154
|
+
placeholder: 'Acme Corp',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
// ========================================
|
|
161
|
+
// OUTPUT SCHEMA (process, processAsync)
|
|
162
|
+
// ========================================
|
|
163
|
+
{
|
|
164
|
+
displayName: 'Respuesta Estructurada',
|
|
165
|
+
name: 'useOutputSchema',
|
|
166
|
+
type: 'boolean',
|
|
167
|
+
default: false,
|
|
168
|
+
description: 'Forzar que el LLM responda con un JSON Schema específico.',
|
|
169
|
+
displayOptions: { show: { operation: ['process', 'processAsync'] } },
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
displayName: 'Output Schema (JSON Schema)',
|
|
173
|
+
name: 'outputSchema',
|
|
174
|
+
type: 'json',
|
|
175
|
+
default: '',
|
|
176
|
+
placeholder: '{\n "type": "object",\n "properties": {\n "category": { "type": "string" },\n "priority": { "type": "string", "enum": ["low", "medium", "high"] }\n },\n "required": ["category", "priority"]\n}',
|
|
177
|
+
description: 'JSON Schema que define la estructura de la respuesta del LLM.',
|
|
178
|
+
displayOptions: { show: { operation: ['process', 'processAsync'], useOutputSchema: [true] } },
|
|
179
|
+
},
|
|
180
|
+
// ========================================
|
|
181
|
+
// OPCIONES PROCESS (correlationId, source, executionId)
|
|
182
|
+
// ========================================
|
|
183
|
+
{
|
|
184
|
+
displayName: 'Opciones Adicionales',
|
|
185
|
+
name: 'processOptions',
|
|
186
|
+
type: 'collection',
|
|
187
|
+
placeholder: 'Agregar opción',
|
|
188
|
+
default: {},
|
|
189
|
+
displayOptions: { show: { operation: ['process', 'processAsync'] } },
|
|
190
|
+
options: [
|
|
191
|
+
{
|
|
192
|
+
displayName: 'Correlation ID',
|
|
193
|
+
name: 'correlationId',
|
|
194
|
+
type: 'string',
|
|
195
|
+
default: '',
|
|
196
|
+
placeholder: 'trace_abc123',
|
|
197
|
+
description: 'ID para trazabilidad distribuida entre sistemas.',
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
displayName: 'Source',
|
|
201
|
+
name: 'source',
|
|
202
|
+
type: 'string',
|
|
203
|
+
default: 'n8n-workflow',
|
|
204
|
+
description: 'Identificador del sistema que origina la petición.',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
displayName: 'Execution ID (Idempotencia)',
|
|
208
|
+
name: 'executionId',
|
|
209
|
+
type: 'string',
|
|
210
|
+
default: '',
|
|
211
|
+
description: 'Si se envía el mismo ID dos veces, retorna el resultado existente sin re-ejecutar.',
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
// ========================================
|
|
216
|
+
// CONSULTAR JOB
|
|
217
|
+
// ========================================
|
|
218
|
+
{
|
|
219
|
+
displayName: 'Job ID',
|
|
220
|
+
name: 'jobId',
|
|
221
|
+
type: 'string',
|
|
222
|
+
default: '',
|
|
223
|
+
placeholder: 'job_a1b2c3d4e5f6a7b8c9d0e1f2',
|
|
224
|
+
description: 'ID del job retornado por la ejecución async. Formato: job_xxxxxxxxxxxx.',
|
|
225
|
+
required: true,
|
|
226
|
+
displayOptions: { show: { operation: ['getJob'] } },
|
|
227
|
+
},
|
|
228
|
+
// ========================================
|
|
229
|
+
// CHAT
|
|
230
|
+
// ========================================
|
|
231
|
+
{
|
|
232
|
+
displayName: 'Conversation ID',
|
|
233
|
+
name: 'conversationId',
|
|
234
|
+
type: 'string',
|
|
235
|
+
default: '',
|
|
236
|
+
placeholder: 'conv_abc123 (vacío = nueva conversación)',
|
|
237
|
+
description: 'ID de conversación existente para continuar el chat. Si está vacío, crea nueva.',
|
|
238
|
+
displayOptions: { show: { operation: ['chat'] } },
|
|
239
|
+
},
|
|
240
|
+
// ========================================
|
|
241
|
+
// COMPACT
|
|
242
|
+
// ========================================
|
|
243
|
+
{
|
|
244
|
+
displayName: 'Modo',
|
|
245
|
+
name: 'compactMode',
|
|
246
|
+
type: 'options',
|
|
247
|
+
options: [
|
|
248
|
+
{ name: 'Raw (mensajes directos)', value: 'raw' },
|
|
249
|
+
{ name: 'Prompt (template guardado)', value: 'prompt' },
|
|
250
|
+
],
|
|
251
|
+
default: 'raw',
|
|
252
|
+
displayOptions: { show: { operation: ['compact'] } },
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
displayName: 'Modelo',
|
|
256
|
+
name: 'model',
|
|
257
|
+
type: 'options',
|
|
258
|
+
options: [
|
|
259
|
+
{ name: 'GPT-4o', value: 'openai/gpt-4o' },
|
|
260
|
+
{ name: 'GPT-4o Mini', value: 'openai/gpt-4o-mini' },
|
|
261
|
+
{ name: 'GPT-4.1 Mini', value: 'openai/gpt-4.1-mini' },
|
|
262
|
+
{ name: 'Claude Sonnet 4', value: 'anthropic/claude-sonnet-4-20250514' },
|
|
263
|
+
{ name: 'Claude Haiku 3.5', value: 'anthropic/claude-3-5-haiku-20241022' },
|
|
264
|
+
{ name: 'Gemini 2.0 Flash', value: 'google-ai-studio/gemini-2.0-flash' },
|
|
265
|
+
{ name: 'Llama 3.1 8B (Workers AI)', value: 'workers-ai/@cf/meta/llama-3.1-8b-instruct' },
|
|
266
|
+
],
|
|
267
|
+
default: 'openai/gpt-4o-mini',
|
|
268
|
+
displayOptions: { show: { operation: ['compact'] } },
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
displayName: 'System Prompt',
|
|
272
|
+
name: 'systemPrompt',
|
|
273
|
+
type: 'string',
|
|
274
|
+
typeOptions: { rows: 4 },
|
|
275
|
+
default: '',
|
|
276
|
+
placeholder: 'Eres un asistente experto en...',
|
|
277
|
+
displayOptions: { show: { operation: ['compact'], compactMode: ['raw'] } },
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
displayName: 'User Message',
|
|
281
|
+
name: 'userMessage',
|
|
282
|
+
type: 'string',
|
|
283
|
+
typeOptions: { rows: 4 },
|
|
284
|
+
default: '',
|
|
285
|
+
placeholder: 'Analiza el siguiente texto...',
|
|
286
|
+
required: true,
|
|
287
|
+
displayOptions: { show: { operation: ['compact'], compactMode: ['raw'] } },
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
displayName: 'Prompt ID',
|
|
291
|
+
name: 'promptId',
|
|
292
|
+
type: 'string',
|
|
293
|
+
default: '',
|
|
294
|
+
placeholder: 'prompt_sentiment_es',
|
|
295
|
+
displayOptions: { show: { operation: ['compact'], compactMode: ['prompt'] } },
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
displayName: 'Prompt Variables',
|
|
299
|
+
name: 'promptVariables',
|
|
300
|
+
type: 'fixedCollection',
|
|
301
|
+
typeOptions: { multipleValues: true },
|
|
302
|
+
default: {},
|
|
303
|
+
placeholder: 'Agregar variable',
|
|
304
|
+
displayOptions: { show: { operation: ['compact'], compactMode: ['prompt'] } },
|
|
305
|
+
options: [
|
|
306
|
+
{
|
|
307
|
+
name: 'entries',
|
|
308
|
+
displayName: 'Variables',
|
|
309
|
+
values: [
|
|
310
|
+
{ displayName: 'Nombre', name: 'key', type: 'string', default: '' },
|
|
311
|
+
{ displayName: 'Valor', name: 'value', type: 'string', default: '' },
|
|
312
|
+
],
|
|
313
|
+
},
|
|
314
|
+
],
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
displayName: 'Max Tokens',
|
|
318
|
+
name: 'maxTokens',
|
|
319
|
+
type: 'number',
|
|
320
|
+
default: 1000,
|
|
321
|
+
displayOptions: { show: { operation: ['compact'] } },
|
|
322
|
+
},
|
|
323
|
+
// ========================================
|
|
324
|
+
// LISTAR AGENTES
|
|
325
|
+
// ========================================
|
|
326
|
+
{
|
|
327
|
+
displayName: 'Filtrar por Categoría',
|
|
328
|
+
name: 'category',
|
|
329
|
+
type: 'string',
|
|
330
|
+
default: '',
|
|
331
|
+
displayOptions: { show: { operation: ['listAgents'] } },
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
displayName: 'Buscar',
|
|
335
|
+
name: 'search',
|
|
336
|
+
type: 'string',
|
|
337
|
+
default: '',
|
|
338
|
+
placeholder: 'clasificador',
|
|
339
|
+
displayOptions: { show: { operation: ['listAgents'] } },
|
|
340
|
+
},
|
|
341
|
+
],
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
async execute() {
|
|
345
|
+
const items = this.getInputData();
|
|
346
|
+
const returnData = [];
|
|
347
|
+
const credentials = await this.getCredentials('orbitalProcessApi');
|
|
348
|
+
const baseUrl = credentials.baseUrl.replace(/\/+$/, '');
|
|
349
|
+
const authType = credentials.authType || 'apiKey';
|
|
350
|
+
const token = authType === 'jwt'
|
|
351
|
+
? credentials.jwtToken
|
|
352
|
+
: credentials.apiKey;
|
|
353
|
+
if (!token) {
|
|
354
|
+
throw new Error(`Token no configurado. Ve a Credentials → Orbital Process API y configura tu ${authType === 'jwt' ? 'JWT Token' : 'API Key'}.`);
|
|
355
|
+
}
|
|
356
|
+
const authHeaders = {
|
|
357
|
+
Authorization: `Bearer ${token}`,
|
|
358
|
+
'Content-Type': 'application/json',
|
|
359
|
+
};
|
|
360
|
+
for (let i = 0; i < items.length; i++) {
|
|
361
|
+
const operation = this.getNodeParameter('operation', i);
|
|
362
|
+
let responseData = {};
|
|
363
|
+
try {
|
|
364
|
+
switch (operation) {
|
|
365
|
+
// ── Process Sync ──
|
|
366
|
+
case 'process':
|
|
367
|
+
case 'processAsync': {
|
|
368
|
+
const agentId = this.getNodeParameter('agentId', i);
|
|
369
|
+
const message = this.getNodeParameter('message', i, '');
|
|
370
|
+
const userId = this.getNodeParameter('userId', i, '');
|
|
371
|
+
const useOutputSchema = this.getNodeParameter('useOutputSchema', i, false);
|
|
372
|
+
const processOptions = this.getNodeParameter('processOptions', i, {});
|
|
373
|
+
const variablesCollection = this.getNodeParameter('variables', i, {});
|
|
374
|
+
const variables = {};
|
|
375
|
+
if (variablesCollection.entries) {
|
|
376
|
+
for (const entry of variablesCollection.entries) {
|
|
377
|
+
if (entry.key)
|
|
378
|
+
variables[entry.key] = entry.value;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
const body = {};
|
|
382
|
+
if (message)
|
|
383
|
+
body.message = message;
|
|
384
|
+
if (userId)
|
|
385
|
+
body.userId = userId;
|
|
386
|
+
if (Object.keys(variables).length > 0)
|
|
387
|
+
body.variables = variables;
|
|
388
|
+
if (operation === 'processAsync')
|
|
389
|
+
body.async = true;
|
|
390
|
+
if (processOptions.correlationId)
|
|
391
|
+
body.correlationId = processOptions.correlationId;
|
|
392
|
+
if (processOptions.source)
|
|
393
|
+
body.source = processOptions.source;
|
|
394
|
+
if (processOptions.executionId)
|
|
395
|
+
body.executionId = processOptions.executionId;
|
|
396
|
+
if (useOutputSchema) {
|
|
397
|
+
const schemaRaw = this.getNodeParameter('outputSchema', i, '');
|
|
398
|
+
if (schemaRaw) {
|
|
399
|
+
try {
|
|
400
|
+
body.outputSchema = typeof schemaRaw === 'string' ? JSON.parse(schemaRaw) : schemaRaw;
|
|
401
|
+
}
|
|
402
|
+
catch { /* ignore */ }
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
const response = await this.helpers.httpRequest({
|
|
406
|
+
method: 'POST',
|
|
407
|
+
url: `${baseUrl}/public/api/agents/${encodeURIComponent(agentId)}/process`,
|
|
408
|
+
headers: authHeaders,
|
|
409
|
+
body,
|
|
410
|
+
json: true,
|
|
411
|
+
});
|
|
412
|
+
responseData = JSON.parse(JSON.stringify(response));
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
// ── Consultar Job ──
|
|
416
|
+
case 'getJob': {
|
|
417
|
+
const jobId = this.getNodeParameter('jobId', i);
|
|
418
|
+
const userId = this.getNodeParameter('userId', i, '');
|
|
419
|
+
if (!userId) {
|
|
420
|
+
throw new Error('User ID es obligatorio para consultar jobs. Usa el mismo userId que se usó al ejecutar el agente.');
|
|
421
|
+
}
|
|
422
|
+
const response = await this.helpers.httpRequest({
|
|
423
|
+
method: 'GET',
|
|
424
|
+
url: `${baseUrl}/api/users/${encodeURIComponent(userId)}/jobs/${encodeURIComponent(jobId)}`,
|
|
425
|
+
headers: authHeaders,
|
|
426
|
+
json: true,
|
|
427
|
+
});
|
|
428
|
+
const raw = response?.data ?? response ?? {};
|
|
429
|
+
// Parsear result si es JSON string
|
|
430
|
+
let result = raw.result ?? null;
|
|
431
|
+
if (result && typeof result === 'string') {
|
|
432
|
+
try {
|
|
433
|
+
result = JSON.parse(result);
|
|
434
|
+
}
|
|
435
|
+
catch { /* keep as string */ }
|
|
436
|
+
}
|
|
437
|
+
// Parsear metadata para steps
|
|
438
|
+
let meta = {};
|
|
439
|
+
if (raw.metadata) {
|
|
440
|
+
try {
|
|
441
|
+
meta = typeof raw.metadata === 'string' ? JSON.parse(raw.metadata) : raw.metadata;
|
|
442
|
+
}
|
|
443
|
+
catch { /* ignore */ }
|
|
444
|
+
}
|
|
445
|
+
responseData = {
|
|
446
|
+
jobId: raw.jobId ?? jobId,
|
|
447
|
+
status: raw.status ?? 'unknown',
|
|
448
|
+
progress: raw.progress ?? null,
|
|
449
|
+
message: raw.message ?? null,
|
|
450
|
+
title: raw.title ?? null,
|
|
451
|
+
errorMessage: raw.errorMessage ?? null,
|
|
452
|
+
result,
|
|
453
|
+
steps: meta.steps ?? [],
|
|
454
|
+
phases: meta.pipelineUi ?? [],
|
|
455
|
+
currentPhase: meta.currentPhase ?? -1,
|
|
456
|
+
createdAt: raw.createdAt ?? '',
|
|
457
|
+
updatedAt: raw.updatedAt ?? '',
|
|
458
|
+
isTerminal: ['complete', 'errored', 'terminated'].includes(raw.status),
|
|
459
|
+
};
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
// ── Chat ──
|
|
463
|
+
case 'chat': {
|
|
464
|
+
const agentId = this.getNodeParameter('agentId', i);
|
|
465
|
+
const message = this.getNodeParameter('message', i);
|
|
466
|
+
const userId = this.getNodeParameter('userId', i, '');
|
|
467
|
+
const conversationId = this.getNodeParameter('conversationId', i, '');
|
|
468
|
+
const body = { message };
|
|
469
|
+
if (userId)
|
|
470
|
+
body.userId = userId;
|
|
471
|
+
if (conversationId)
|
|
472
|
+
body.conversationId = conversationId;
|
|
473
|
+
body.stream = false;
|
|
474
|
+
const response = await this.helpers.httpRequest({
|
|
475
|
+
method: 'POST',
|
|
476
|
+
url: `${baseUrl}/public/api/agents/${encodeURIComponent(agentId)}/chat`,
|
|
477
|
+
headers: authHeaders,
|
|
478
|
+
body,
|
|
479
|
+
json: true,
|
|
480
|
+
});
|
|
481
|
+
responseData = JSON.parse(JSON.stringify(response));
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
// ── Compact ──
|
|
485
|
+
case 'compact': {
|
|
486
|
+
const compactMode = this.getNodeParameter('compactMode', i);
|
|
487
|
+
const model = this.getNodeParameter('model', i);
|
|
488
|
+
const maxTokens = this.getNodeParameter('maxTokens', i, 1000);
|
|
489
|
+
const body = { model, max_output_tokens: maxTokens };
|
|
490
|
+
if (compactMode === 'prompt') {
|
|
491
|
+
const promptId = this.getNodeParameter('promptId', i);
|
|
492
|
+
const promptVarsCollection = this.getNodeParameter('promptVariables', i, {});
|
|
493
|
+
const promptVars = {};
|
|
494
|
+
if (promptVarsCollection.entries) {
|
|
495
|
+
for (const entry of promptVarsCollection.entries) {
|
|
496
|
+
if (entry.key)
|
|
497
|
+
promptVars[entry.key] = entry.value;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
body.prompt = { id: promptId, variables: promptVars };
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
const systemPrompt = this.getNodeParameter('systemPrompt', i, '');
|
|
504
|
+
const userMessage = this.getNodeParameter('userMessage', i);
|
|
505
|
+
const input = [];
|
|
506
|
+
if (systemPrompt)
|
|
507
|
+
input.push({ role: 'developer', content: systemPrompt });
|
|
508
|
+
input.push({ role: 'user', content: userMessage });
|
|
509
|
+
body.input = input;
|
|
510
|
+
}
|
|
511
|
+
const response = await this.helpers.httpRequest({
|
|
512
|
+
method: 'POST',
|
|
513
|
+
url: `${baseUrl}/public/api/compact`,
|
|
514
|
+
headers: authHeaders,
|
|
515
|
+
body,
|
|
516
|
+
json: true,
|
|
517
|
+
});
|
|
518
|
+
responseData = JSON.parse(JSON.stringify(response));
|
|
519
|
+
break;
|
|
520
|
+
}
|
|
521
|
+
// ── Listar Agentes ──
|
|
522
|
+
case 'listAgents': {
|
|
523
|
+
const category = this.getNodeParameter('category', i, '');
|
|
524
|
+
const search = this.getNodeParameter('search', i, '');
|
|
525
|
+
const params = [];
|
|
526
|
+
if (category)
|
|
527
|
+
params.push(`category=${encodeURIComponent(category)}`);
|
|
528
|
+
if (search)
|
|
529
|
+
params.push(`search=${encodeURIComponent(search)}`);
|
|
530
|
+
const qs = params.length > 0 ? `?${params.join('&')}` : '';
|
|
531
|
+
const response = await this.helpers.httpRequest({
|
|
532
|
+
method: 'GET',
|
|
533
|
+
url: `${baseUrl}/public/api/agents${qs}`,
|
|
534
|
+
headers: authHeaders,
|
|
535
|
+
json: true,
|
|
536
|
+
});
|
|
537
|
+
responseData = JSON.parse(JSON.stringify(response));
|
|
538
|
+
break;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
catch (error) {
|
|
543
|
+
const err = error;
|
|
544
|
+
responseData = {
|
|
545
|
+
success: false,
|
|
546
|
+
error: err.message || 'Error en la petición',
|
|
547
|
+
statusCode: err.statusCode,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
returnData.push({
|
|
551
|
+
json: { operation, ...responseData },
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
return [returnData];
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
exports.OrbitalProcess = OrbitalProcess;
|
|
558
|
+
//# sourceMappingURL=OrbitalProcess.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrbitalProcess.node.js","sourceRoot":"","sources":["../../../src/nodes/OrbitalProcess/OrbitalProcess.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-orbital-process.orbitalProcess",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["AI", "Development"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"primaryDocumentation": [
|
|
8
|
+
{ "url": "https://docs.orbital.fractaliacyber.com/integrations/n8n" }
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"alias": ["orbital", "process", "agent", "ai", "llm", "chat", "compact", "fractalia"]
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" fill="none">
|
|
2
|
+
<rect width="60" height="60" rx="12" fill="#4338ca"/>
|
|
3
|
+
<path d="M30 8l2.5 7.5L40 18l-7.5 2.5L30 28l-2.5-7.5L20 18l7.5-2.5L30 8z" fill="#facc15"/>
|
|
4
|
+
<path d="M18 28l1.5 4.5L24 34l-4.5 1.5L18 40l-1.5-4.5L12 34l4.5-1.5L18 28z" fill="#fde68a"/>
|
|
5
|
+
<path d="M40 32l1.5 4.5L46 38l-4.5 1.5L40 44l-1.5-4.5L34 38l4.5-1.5L40 32z" fill="#fde68a"/>
|
|
6
|
+
<path d="M28 38l1 3L32 42l-3 1L28 46l-1-3L24 42l3-1L28 38z" fill="#fef9c3" opacity="0.8"/>
|
|
7
|
+
</svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-orbital-process",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Orbital Process para n8n — ejecutar agentes IA, chat, compact LLM y discovery.",
|
|
5
|
+
"keywords": ["n8n-community-node-package", "orbital", "process", "agent", "ai", "llm"],
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Fractalia",
|
|
9
|
+
"url": "https://fractaliacyber.com"
|
|
10
|
+
},
|
|
11
|
+
"files": ["dist"],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc && npm run copy-assets",
|
|
14
|
+
"copy-assets": "node -e \"const fs=require('fs');const p=require('path');const d='dist/nodes/OrbitalProcess';fs.mkdirSync(d,{recursive:true});fs.copyFileSync('src/nodes/OrbitalProcess/orbital.svg',p.join(d,'orbital.svg'));fs.copyFileSync('src/nodes/OrbitalProcess/OrbitalProcess.node.json',p.join(d,'OrbitalProcess.node.json'))\"",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"lint": "tsc --noEmit",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"n8n": {
|
|
20
|
+
"n8nNodesApiVersion": 1,
|
|
21
|
+
"nodes": [
|
|
22
|
+
"dist/nodes/OrbitalProcess/OrbitalProcess.node.js"
|
|
23
|
+
],
|
|
24
|
+
"credentials": [
|
|
25
|
+
"dist/credentials/OrbitalProcessApi.credentials.js"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"n8n-workflow": ">=1.0.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"n8n-workflow": "^1.0.0",
|
|
33
|
+
"typescript": "^5.4.0"
|
|
34
|
+
}
|
|
35
|
+
}
|