n8n-nodes-dev-server 0.2.1

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 (43) hide show
  1. package/README.md +120 -0
  2. package/dist/credentials/DevServerApi.credentials.d.ts +17 -0
  3. package/dist/credentials/DevServerApi.credentials.js +45 -0
  4. package/dist/credentials/DevServerApi.credentials.js.map +1 -0
  5. package/dist/icons/github.dark.svg +3 -0
  6. package/dist/icons/github.svg +3 -0
  7. package/dist/nodes/DevServer/ApiKeyDescription.d.ts +3 -0
  8. package/dist/nodes/DevServer/ApiKeyDescription.js +90 -0
  9. package/dist/nodes/DevServer/ApiKeyDescription.js.map +1 -0
  10. package/dist/nodes/DevServer/ConversationDescription.d.ts +3 -0
  11. package/dist/nodes/DevServer/ConversationDescription.js +243 -0
  12. package/dist/nodes/DevServer/ConversationDescription.js.map +1 -0
  13. package/dist/nodes/DevServer/DevServer.node.d.ts +14 -0
  14. package/dist/nodes/DevServer/DevServer.node.js +335 -0
  15. package/dist/nodes/DevServer/DevServer.node.js.map +1 -0
  16. package/dist/nodes/DevServer/DevServerTrigger.node.d.ts +5 -0
  17. package/dist/nodes/DevServer/DevServerTrigger.node.js +246 -0
  18. package/dist/nodes/DevServer/DevServerTrigger.node.js.map +1 -0
  19. package/dist/nodes/DevServer/FilesystemDescription.d.ts +3 -0
  20. package/dist/nodes/DevServer/FilesystemDescription.js +90 -0
  21. package/dist/nodes/DevServer/FilesystemDescription.js.map +1 -0
  22. package/dist/nodes/DevServer/JobDescription.d.ts +3 -0
  23. package/dist/nodes/DevServer/JobDescription.js +256 -0
  24. package/dist/nodes/DevServer/JobDescription.js.map +1 -0
  25. package/dist/nodes/DevServer/MessageDescription.d.ts +3 -0
  26. package/dist/nodes/DevServer/MessageDescription.js +151 -0
  27. package/dist/nodes/DevServer/MessageDescription.js.map +1 -0
  28. package/dist/nodes/DevServer/ProviderDescription.d.ts +3 -0
  29. package/dist/nodes/DevServer/ProviderDescription.js +65 -0
  30. package/dist/nodes/DevServer/ProviderDescription.js.map +1 -0
  31. package/dist/nodes/DevServer/QueryDescription.d.ts +3 -0
  32. package/dist/nodes/DevServer/QueryDescription.js +152 -0
  33. package/dist/nodes/DevServer/QueryDescription.js.map +1 -0
  34. package/dist/nodes/DevServer/WebhookDescription.d.ts +3 -0
  35. package/dist/nodes/DevServer/WebhookDescription.js +180 -0
  36. package/dist/nodes/DevServer/WebhookDescription.js.map +1 -0
  37. package/dist/nodes/DevServer/devServer.svg +32 -0
  38. package/dist/nodes/DevServer/transport.d.ts +6 -0
  39. package/dist/nodes/DevServer/transport.js +94 -0
  40. package/dist/nodes/DevServer/transport.js.map +1 -0
  41. package/dist/package.json +58 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -0
  43. package/package.json +58 -0
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryFields = exports.queryOperations = void 0;
4
+ exports.queryOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: {
11
+ show: {
12
+ resource: ['query'],
13
+ },
14
+ },
15
+ options: [
16
+ {
17
+ name: 'Einmalige Abfrage',
18
+ value: 'oneshot',
19
+ description: 'Einmalige Abfrage ohne persistente Konversation',
20
+ action: 'One shot query',
21
+ },
22
+ ],
23
+ default: 'oneshot',
24
+ },
25
+ ];
26
+ exports.queryFields = [
27
+ {
28
+ displayName: 'Job',
29
+ name: 'jobId',
30
+ type: 'resourceLocator',
31
+ default: { mode: 'list', value: '' },
32
+ required: true,
33
+ modes: [
34
+ {
35
+ displayName: 'Aus Liste',
36
+ name: 'list',
37
+ type: 'list',
38
+ typeOptions: {
39
+ searchListMethod: 'getJobs',
40
+ searchable: true,
41
+ },
42
+ },
43
+ {
44
+ displayName: 'Nach ID',
45
+ name: 'id',
46
+ type: 'string',
47
+ placeholder: 'z.B. 123e4567-e89b-12d3-a456-426614174000',
48
+ },
49
+ ],
50
+ displayOptions: {
51
+ show: {
52
+ resource: ['query'],
53
+ operation: ['oneshot'],
54
+ },
55
+ },
56
+ description: 'Der Job für den Kontext der Abfrage',
57
+ },
58
+ {
59
+ displayName: 'Provider',
60
+ name: 'provider',
61
+ type: 'options',
62
+ required: true,
63
+ options: [
64
+ { name: 'Claude', value: 'claude' },
65
+ { name: 'Codex', value: 'codex' },
66
+ { name: 'Gemini', value: 'gemini' },
67
+ ],
68
+ default: 'claude',
69
+ displayOptions: {
70
+ show: {
71
+ resource: ['query'],
72
+ operation: ['oneshot'],
73
+ },
74
+ },
75
+ description: 'LLM-Provider für die Abfrage',
76
+ },
77
+ {
78
+ displayName: 'Abfrage',
79
+ name: 'query',
80
+ type: 'string',
81
+ typeOptions: {
82
+ rows: 4,
83
+ },
84
+ required: true,
85
+ default: '',
86
+ displayOptions: {
87
+ show: {
88
+ resource: ['query'],
89
+ operation: ['oneshot'],
90
+ },
91
+ },
92
+ description: 'Der Inhalt der Abfrage',
93
+ },
94
+ {
95
+ displayName: 'Optionen',
96
+ name: 'options',
97
+ type: 'collection',
98
+ placeholder: 'Option hinzufügen',
99
+ default: {},
100
+ displayOptions: {
101
+ show: {
102
+ resource: ['query'],
103
+ operation: ['oneshot'],
104
+ },
105
+ },
106
+ options: [
107
+ {
108
+ displayName: 'Modell',
109
+ name: 'model',
110
+ type: 'string',
111
+ default: '',
112
+ description: 'Spezifisches Modell (z.B. claude-3-sonnet).',
113
+ },
114
+ {
115
+ displayName: 'Streaming',
116
+ name: 'stream',
117
+ type: 'boolean',
118
+ default: false,
119
+ description: 'Whether to use streaming response',
120
+ },
121
+ {
122
+ displayName: 'System-Prompt',
123
+ name: 'systemPrompt',
124
+ type: 'string',
125
+ typeOptions: {
126
+ rows: 4,
127
+ },
128
+ default: '',
129
+ description: 'Optionaler System-Prompt',
130
+ },
131
+ {
132
+ displayName: 'Timeout (Sekunden)',
133
+ name: 'timeout',
134
+ type: 'number',
135
+ typeOptions: {
136
+ minValue: 10,
137
+ maxValue: 600,
138
+ },
139
+ default: 120,
140
+ description: 'Maximale Wartezeit auf Antwort',
141
+ },
142
+ {
143
+ displayName: 'Tool-Aufrufe Erlauben',
144
+ name: 'allowToolCalls',
145
+ type: 'boolean',
146
+ default: true,
147
+ description: 'Whether the LLM is allowed to call tools',
148
+ },
149
+ ],
150
+ },
151
+ ];
152
+ //# sourceMappingURL=QueryDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryDescription.js","sourceRoot":"","sources":["../../../nodes/DevServer/QueryDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const webhookOperations: INodeProperties[];
3
+ export declare const webhookFields: INodeProperties[];
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webhookFields = exports.webhookOperations = void 0;
4
+ exports.webhookOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: {
11
+ show: {
12
+ resource: ['webhook'],
13
+ },
14
+ },
15
+ options: [
16
+ {
17
+ name: 'Abrufen',
18
+ value: 'get',
19
+ description: 'Webhook abrufen',
20
+ action: 'Get a webhook',
21
+ },
22
+ {
23
+ name: 'Aktualisieren',
24
+ value: 'update',
25
+ description: 'Webhook aktualisieren',
26
+ action: 'Update a webhook',
27
+ },
28
+ {
29
+ name: 'Erstellen',
30
+ value: 'create',
31
+ description: 'Neuen Webhook erstellen',
32
+ action: 'Create a webhook',
33
+ },
34
+ {
35
+ name: 'Get Many',
36
+ value: 'getAll',
37
+ description: 'Alle Webhooks auflisten',
38
+ action: 'Get many webhooks',
39
+ },
40
+ {
41
+ name: 'Löschen',
42
+ value: 'delete',
43
+ description: 'Webhook löschen',
44
+ action: 'Delete a webhook',
45
+ },
46
+ ],
47
+ default: 'getAll',
48
+ },
49
+ ];
50
+ exports.webhookFields = [
51
+ {
52
+ displayName: 'Webhook ID',
53
+ name: 'webhookId',
54
+ type: 'string',
55
+ required: true,
56
+ default: '',
57
+ displayOptions: {
58
+ show: {
59
+ resource: ['webhook'],
60
+ operation: ['get', 'update', 'delete'],
61
+ },
62
+ },
63
+ description: 'ID des Webhooks',
64
+ },
65
+ {
66
+ displayName: 'Name',
67
+ name: 'name',
68
+ type: 'string',
69
+ required: true,
70
+ default: '',
71
+ displayOptions: {
72
+ show: {
73
+ resource: ['webhook'],
74
+ operation: ['create'],
75
+ },
76
+ },
77
+ description: 'Name für den Webhook',
78
+ },
79
+ {
80
+ displayName: 'URL',
81
+ name: 'url',
82
+ type: 'string',
83
+ required: true,
84
+ default: '',
85
+ placeholder: 'https://example.com/webhook',
86
+ displayOptions: {
87
+ show: {
88
+ resource: ['webhook'],
89
+ operation: ['create'],
90
+ },
91
+ },
92
+ description: 'Ziel-URL für den Webhook',
93
+ },
94
+ {
95
+ displayName: 'Events',
96
+ name: 'events',
97
+ type: 'multiOptions',
98
+ required: true,
99
+ options: [
100
+ { name: 'Job Abgeschlossen', value: 'job.completed' },
101
+ { name: 'Job Erstellt', value: 'job.created' },
102
+ { name: 'Job Fehlgeschlagen', value: 'job.failed' },
103
+ { name: 'Job Gestartet', value: 'job.started' },
104
+ { name: 'Konversation Aktualisiert', value: 'conversation.updated' },
105
+ { name: 'Konversation Erstellt', value: 'conversation.created' },
106
+ { name: 'Nachricht Empfangen', value: 'message.received' },
107
+ { name: 'Nachricht Gesendet', value: 'message.sent' },
108
+ { name: 'Streaming Beendet', value: 'streaming.completed' },
109
+ { name: 'Streaming Chunk', value: 'streaming.chunk' },
110
+ { name: 'Streaming Gestartet', value: 'streaming.started' },
111
+ { name: 'Tool Aufgerufen', value: 'tool.called' },
112
+ ],
113
+ default: ['message.received'],
114
+ displayOptions: {
115
+ show: {
116
+ resource: ['webhook'],
117
+ operation: ['create'],
118
+ },
119
+ },
120
+ description: 'Events für die der Webhook ausgelöst wird',
121
+ },
122
+ {
123
+ displayName: 'Update Fields',
124
+ name: 'updateFields',
125
+ type: 'collection',
126
+ placeholder: 'Feld hinzufügen',
127
+ default: {},
128
+ displayOptions: {
129
+ show: {
130
+ resource: ['webhook'],
131
+ operation: ['update'],
132
+ },
133
+ },
134
+ options: [
135
+ {
136
+ displayName: 'Name',
137
+ name: 'name',
138
+ type: 'string',
139
+ default: '',
140
+ description: 'Neuer Name',
141
+ },
142
+ {
143
+ displayName: 'URL',
144
+ name: 'url',
145
+ type: 'string',
146
+ default: '',
147
+ description: 'Neue URL',
148
+ },
149
+ {
150
+ displayName: 'Events',
151
+ name: 'events',
152
+ type: 'multiOptions',
153
+ options: [
154
+ { name: 'Job Abgeschlossen', value: 'job.completed' },
155
+ { name: 'Job Erstellt', value: 'job.created' },
156
+ { name: 'Job Fehlgeschlagen', value: 'job.failed' },
157
+ { name: 'Job Gestartet', value: 'job.started' },
158
+ { name: 'Konversation Aktualisiert', value: 'conversation.updated' },
159
+ { name: 'Konversation Erstellt', value: 'conversation.created' },
160
+ { name: 'Nachricht Empfangen', value: 'message.received' },
161
+ { name: 'Nachricht Gesendet', value: 'message.sent' },
162
+ { name: 'Streaming Beendet', value: 'streaming.completed' },
163
+ { name: 'Streaming Chunk', value: 'streaming.chunk' },
164
+ { name: 'Streaming Gestartet', value: 'streaming.started' },
165
+ { name: 'Tool Aufgerufen', value: 'tool.called' },
166
+ ],
167
+ default: [],
168
+ description: 'Neue Events',
169
+ },
170
+ {
171
+ displayName: 'Aktiv',
172
+ name: 'isActive',
173
+ type: 'boolean',
174
+ default: true,
175
+ description: 'Whether the webhook is active',
176
+ },
177
+ ],
178
+ },
179
+ ];
180
+ //# sourceMappingURL=WebhookDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookDescription.js","sourceRoot":"","sources":["../../../nodes/DevServer/WebhookDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
2
+ <defs>
3
+ <linearGradient id="serverGrad" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#3B82F6;stop-opacity:1" />
5
+ <stop offset="100%" style="stop-color:#1D4ED8;stop-opacity:1" />
6
+ </linearGradient>
7
+ </defs>
8
+ <!-- Server rack shape -->
9
+ <rect x="15" y="10" width="70" height="80" rx="8" ry="8" fill="url(#serverGrad)" stroke="#1E40AF" stroke-width="2"/>
10
+
11
+ <!-- Server slots -->
12
+ <rect x="22" y="18" width="56" height="12" rx="2" ry="2" fill="#DBEAFE"/>
13
+ <rect x="22" y="35" width="56" height="12" rx="2" ry="2" fill="#DBEAFE"/>
14
+ <rect x="22" y="52" width="56" height="12" rx="2" ry="2" fill="#DBEAFE"/>
15
+
16
+ <!-- LED indicators -->
17
+ <circle cx="30" cy="24" r="3" fill="#22C55E"/>
18
+ <circle cx="30" cy="41" r="3" fill="#22C55E"/>
19
+ <circle cx="30" cy="58" r="3" fill="#EAB308"/>
20
+
21
+ <!-- Ventilation lines -->
22
+ <line x1="45" y1="22" x2="70" y2="22" stroke="#94A3B8" stroke-width="1.5"/>
23
+ <line x1="45" y1="26" x2="70" y2="26" stroke="#94A3B8" stroke-width="1.5"/>
24
+ <line x1="45" y1="39" x2="70" y2="39" stroke="#94A3B8" stroke-width="1.5"/>
25
+ <line x1="45" y1="43" x2="70" y2="43" stroke="#94A3B8" stroke-width="1.5"/>
26
+ <line x1="45" y1="56" x2="70" y2="56" stroke="#94A3B8" stroke-width="1.5"/>
27
+ <line x1="45" y1="60" x2="70" y2="60" stroke="#94A3B8" stroke-width="1.5"/>
28
+
29
+ <!-- AI symbol -->
30
+ <path d="M35 72 L50 82 L65 72" stroke="#60A5FA" stroke-width="3" fill="none" stroke-linecap="round"/>
31
+ <circle cx="50" cy="75" r="4" fill="#60A5FA"/>
32
+ </svg>
@@ -0,0 +1,6 @@
1
+ import { IExecuteFunctions, IHookFunctions, IHttpRequestMethods, ILoadOptionsFunctions, INodeListSearchResult, IDataObject } from 'n8n-workflow';
2
+ export declare function devServerApiRequest(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<IDataObject>;
3
+ export declare function getJobs(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
4
+ export declare function getConversations(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
5
+ export declare function getProviders(this: ILoadOptionsFunctions): Promise<INodeListSearchResult>;
6
+ export declare function getFilesystemRoots(this: ILoadOptionsFunctions): Promise<INodeListSearchResult>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.devServerApiRequest = devServerApiRequest;
4
+ exports.getJobs = getJobs;
5
+ exports.getConversations = getConversations;
6
+ exports.getProviders = getProviders;
7
+ exports.getFilesystemRoots = getFilesystemRoots;
8
+ const n8n_workflow_1 = require("n8n-workflow");
9
+ async function devServerApiRequest(method, endpoint, body = {}, query = {}) {
10
+ var _a, _b;
11
+ const credentials = await this.getCredentials('devServerApi');
12
+ const options = {
13
+ method,
14
+ url: `${credentials.baseUrl}/api${endpoint}`,
15
+ headers: {
16
+ 'Content-Type': 'application/json',
17
+ 'Authorization': `Bearer ${credentials.apiKey}`,
18
+ },
19
+ qs: query,
20
+ body,
21
+ json: true,
22
+ };
23
+ if (method === 'GET' || method === 'HEAD') {
24
+ delete options.body;
25
+ }
26
+ try {
27
+ const response = await this.helpers.httpRequest(options);
28
+ return response;
29
+ }
30
+ catch (error) {
31
+ const err = error;
32
+ if (err.response) {
33
+ const message = ((_a = err.response.body) === null || _a === void 0 ? void 0 : _a.message) || ((_b = err.response.body) === null || _b === void 0 ? void 0 : _b.error) || err.message;
34
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Dev Server API error: ${message}`, { description: `Status: ${err.response.statusCode}` });
35
+ }
36
+ throw err;
37
+ }
38
+ }
39
+ async function getJobs(filter) {
40
+ const response = await devServerApiRequest.call(this, 'GET', '/jobs');
41
+ const jobs = response.jobs || [];
42
+ const results = jobs
43
+ .filter((job) => { var _a; return !filter || ((_a = job.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())); })
44
+ .map((job) => ({
45
+ name: `${job.name} (${job.status})`,
46
+ value: job.id,
47
+ url: job.workingDirectory,
48
+ }));
49
+ return { results };
50
+ }
51
+ async function getConversations(filter) {
52
+ let jobId;
53
+ try {
54
+ const jobParam = this.getNodeParameter('jobId', { extractValue: true });
55
+ jobId = jobParam || '';
56
+ }
57
+ catch {
58
+ return { results: [] };
59
+ }
60
+ if (!jobId) {
61
+ return { results: [] };
62
+ }
63
+ const response = await devServerApiRequest.call(this, 'GET', `/jobs/${jobId}/conversations`);
64
+ const conversations = response.conversations || [];
65
+ const results = conversations
66
+ .filter((conv) => { var _a; return !filter || ((_a = conv.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filter.toLowerCase())); })
67
+ .map((conv) => ({
68
+ name: conv.title || `${conv.provider} - ${new Date(conv.createdAt).toLocaleString()}`,
69
+ value: conv.id,
70
+ url: `Provider: ${conv.provider}`,
71
+ }));
72
+ return { results };
73
+ }
74
+ async function getProviders() {
75
+ const response = await devServerApiRequest.call(this, 'GET', '/conversations/providers');
76
+ const providers = response.providers || [];
77
+ const results = providers
78
+ .filter((p) => p.isAuthenticated)
79
+ .map((provider) => ({
80
+ name: provider.provider.charAt(0).toUpperCase() + provider.provider.slice(1),
81
+ value: provider.provider,
82
+ }));
83
+ return { results };
84
+ }
85
+ async function getFilesystemRoots() {
86
+ const response = await devServerApiRequest.call(this, 'GET', '/filesystem/roots');
87
+ const roots = response.roots || [];
88
+ const results = roots.map((root) => ({
89
+ name: root.name,
90
+ value: root.path,
91
+ }));
92
+ return { results };
93
+ }
94
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../nodes/DevServer/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "n8n-nodes-dev-server",
3
+ "version": "0.2.0",
4
+ "description": "n8n Node für die Integration mit dem LLM Dev Server",
5
+ "license": "MIT",
6
+ "homepage": "",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "llm",
10
+ "dev-server",
11
+ "ai",
12
+ "claude",
13
+ "codex",
14
+ "gemini"
15
+ ],
16
+ "author": {
17
+ "name": "Christian Schindler",
18
+ "email": "chrishdx@gmail.com"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/<...>/n8n-nodes-dev-server.git"
23
+ },
24
+ "scripts": {
25
+ "build": "n8n-node build",
26
+ "build:watch": "tsc --watch",
27
+ "dev": "n8n-node dev",
28
+ "lint": "n8n-node lint",
29
+ "lint:fix": "n8n-node lint --fix",
30
+ "release": "n8n-node release",
31
+ "prepublishOnly": "n8n-node prerelease"
32
+ },
33
+ "files": [
34
+ "dist"
35
+ ],
36
+ "n8n": {
37
+ "n8nNodesApiVersion": 1,
38
+ "strict": true,
39
+ "credentials": [
40
+ "dist/credentials/DevServerApi.credentials.js"
41
+ ],
42
+ "nodes": [
43
+ "dist/nodes/DevServer/DevServer.node.js",
44
+ "dist/nodes/DevServer/DevServerTrigger.node.js"
45
+ ]
46
+ },
47
+ "devDependencies": {
48
+ "@n8n/node-cli": "*",
49
+ "@types/node": "^20.0.0",
50
+ "eslint": "9.32.0",
51
+ "prettier": "3.6.2",
52
+ "release-it": "^19.0.4",
53
+ "typescript": "5.9.2"
54
+ },
55
+ "peerDependencies": {
56
+ "n8n-workflow": "*"
57
+ }
58
+ }