n8n-nodes-polycracker 1.0.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.
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-label="Parrot">
2
+ <path fill="#16a34a" d="M6 26c3-14 16-24 30-24 2 12-2 24-12 32-8 6-20 6-26-4-2-4 2-10 8-4z"/>
3
+ <path fill="#eab308" d="M34 4c8 4 12 14 10 24-4-8-12-16-22-18 4-8 10-10 12-6z"/>
4
+ <path fill="#15803d" d="M8 34c6 6 16 6 24 2-6 8-18 10-28 6 2-4 6-8 4-8z"/>
5
+ <circle cx="16" cy="16" r="3.5" fill="#0f172a"/>
6
+ <path fill="#fde047" d="M4 20c4 2 8 0 10-4-2 6-6 10-10 8v-4z"/>
7
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class ParrotSmart implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParrotSmart = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ function isRecord(value) {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+ function asJsonObject(payload) {
9
+ return payload;
10
+ }
11
+ const PARROT_OUTPUT_STRIP_KEYS = [
12
+ 'parrot_string',
13
+ 'parrot_session_id',
14
+ 'session_id',
15
+ 'sessionId',
16
+ 'use_vault',
17
+ 'production_vault',
18
+ 'code_jwt',
19
+ 'instruction',
20
+ 'task_index',
21
+ 'total_tasks',
22
+ 'finished',
23
+ 'model',
24
+ ];
25
+ function buildCleanUserData(source) {
26
+ const clean = { ...source };
27
+ for (const key of PARROT_OUTPUT_STRIP_KEYS) {
28
+ delete clean[key];
29
+ }
30
+ return clean;
31
+ }
32
+ const TIER_GUIDED = 'guided';
33
+ const TIER_CHAMELEON = 'chameleon';
34
+ function normalizeParrotGateUrlForIpv6(url) {
35
+ const trimmed = url.trim();
36
+ const m = trimmed.match(/^(https?:\/\/)([^/]+)(.*)$/i);
37
+ if (!m) {
38
+ return trimmed;
39
+ }
40
+ const [, proto, hostPort, rest] = m;
41
+ if (hostPort.startsWith('[')) {
42
+ return trimmed;
43
+ }
44
+ const lastColon = hostPort.lastIndexOf(':');
45
+ const tail = lastColon === -1 ? '' : hostPort.slice(lastColon + 1);
46
+ const hasNumericPort = lastColon !== -1 && /^\d+$/.test(tail);
47
+ const host = hasNumericPort ? hostPort.slice(0, lastColon) : hostPort;
48
+ const colonSegments = host.split(':').length;
49
+ const looksLikeIpv6 = host.includes(':') && colonSegments > 2;
50
+ if (!looksLikeIpv6) {
51
+ return trimmed;
52
+ }
53
+ const port = hasNumericPort ? tail : '';
54
+ const bracketed = port ? `[${host}]:${port}` : `[${host}]`;
55
+ return `${proto}${bracketed}${rest}`;
56
+ }
57
+ function extractSmartPlusIntegrityMessage(body) {
58
+ if (body === null || body === undefined) {
59
+ return undefined;
60
+ }
61
+ if (typeof body === 'string') {
62
+ const lower = body.toLowerCase();
63
+ if (lower.includes('logic error') || lower.includes('validation warning')) {
64
+ return body;
65
+ }
66
+ return undefined;
67
+ }
68
+ if (!isRecord(body)) {
69
+ return undefined;
70
+ }
71
+ const typeStr = typeof body.type === 'string' ? body.type : '';
72
+ const errorStr = typeof body.error === 'string' ? body.error : '';
73
+ const msg = (typeof body.message === 'string' && body.message) ||
74
+ (typeof body.detail === 'string' && body.detail) ||
75
+ undefined;
76
+ if (typeStr === 'Logic Error' || errorStr === 'Logic Error') {
77
+ return msg !== null && msg !== void 0 ? msg : 'Logic Error';
78
+ }
79
+ if (body.validationWarning === true || body.validation_warning === true) {
80
+ return msg !== null && msg !== void 0 ? msg : 'Validation warning';
81
+ }
82
+ const warnings = body.warnings;
83
+ if (Array.isArray(warnings) && warnings.length > 0) {
84
+ return warnings.map(String).join('; ');
85
+ }
86
+ if (msg !== undefined) {
87
+ const lower = msg.toLowerCase();
88
+ if (lower.includes('logic error') || lower.includes('validation warning')) {
89
+ return msg;
90
+ }
91
+ }
92
+ return undefined;
93
+ }
94
+ class ParrotSmart {
95
+ constructor() {
96
+ this.description = {
97
+ displayName: 'Parrot Smart',
98
+ name: 'parrotSmart',
99
+ icon: 'file:parrot.svg',
100
+ group: ['transform'],
101
+ version: 2,
102
+ description: 'Universal AI sequence engine. Choose Guided or Chameleon tiers to eliminate workflow spaghetti and manage session-bound AI data with Polycracker.',
103
+ defaults: {
104
+ name: 'Parrot Smart Node',
105
+ },
106
+ inputs: ['main'],
107
+ outputs: ['main'],
108
+ credentials: [
109
+ {
110
+ name: 'parrotApi',
111
+ required: true,
112
+ },
113
+ ],
114
+ properties: [
115
+ {
116
+ displayName: 'Tier',
117
+ name: 'tier',
118
+ type: 'options',
119
+ noDataExpression: true,
120
+ default: TIER_GUIDED,
121
+ required: true,
122
+ options: [
123
+ { name: 'Guided (5c)', value: 'guided' },
124
+ { name: 'Chameleon (20c)', value: 'chameleon' },
125
+ ],
126
+ },
127
+ {
128
+ displayName: 'Reasoning Engine',
129
+ name: 'model',
130
+ type: 'options',
131
+ default: 'gpt-4o',
132
+ options: [
133
+ { name: 'GPT-4o (Standard)', value: 'gpt-4o' },
134
+ { name: 'Claude 3.5 Sonnet (Apex/Enterprise)', value: 'claude-3-5-sonnet' },
135
+ ],
136
+ },
137
+ {
138
+ displayName: 'Task',
139
+ name: 'task',
140
+ type: 'options',
141
+ default: 'extract',
142
+ displayOptions: {
143
+ show: {
144
+ tier: ['guided'],
145
+ },
146
+ },
147
+ options: [
148
+ {
149
+ name: 'Data Extraction (Pull clean JSON from messy text)',
150
+ value: 'extract',
151
+ },
152
+ {
153
+ name: 'Data Transformation (Reformat data for the next step)',
154
+ value: 'transform',
155
+ },
156
+ {
157
+ name: 'Routing & Decision Logic (Output categories or True/False)',
158
+ value: 'route',
159
+ },
160
+ {
161
+ name: 'Summarize & Analyze (Create TL;DRs or action items)',
162
+ value: 'summarize',
163
+ },
164
+ {
165
+ name: 'Content Generation (Draft emails, reports, or messages)',
166
+ value: 'generate',
167
+ },
168
+ ],
169
+ },
170
+ {
171
+ displayName: 'Update User Context for this Step?',
172
+ name: 'overrideContext',
173
+ type: 'boolean',
174
+ default: false,
175
+ displayOptions: {
176
+ show: {
177
+ tier: ['guided'],
178
+ },
179
+ },
180
+ },
181
+ {
182
+ displayName: 'New Context / Instructions',
183
+ name: 'guidedInstruction',
184
+ type: 'string',
185
+ default: '',
186
+ typeOptions: {
187
+ rows: 4,
188
+ },
189
+ displayOptions: {
190
+ show: {
191
+ tier: ['guided'],
192
+ overrideContext: [true],
193
+ },
194
+ },
195
+ },
196
+ {
197
+ displayName: 'Enable Production Vault Memory',
198
+ name: 'useVault',
199
+ type: 'boolean',
200
+ default: false,
201
+ description: 'When enabled, queries the Port 8003 microservice to inject historical context fragments into the run loop to eliminate LLM amnesia.',
202
+ },
203
+ {
204
+ displayName: 'Vault Label',
205
+ name: 'productionVault',
206
+ type: 'string',
207
+ default: 'primary',
208
+ displayOptions: {
209
+ show: {
210
+ useVault: [true],
211
+ },
212
+ },
213
+ },
214
+ ],
215
+ };
216
+ }
217
+ async execute() {
218
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
219
+ const credentials = await this.getCredentials('parrotApi');
220
+ const apiKey = String((_a = credentials.apiKey) !== null && _a !== void 0 ? _a : '').trim();
221
+ if (!apiKey) {
222
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), asJsonObject({ code: 'NO_API_KEY' }), {
223
+ message: 'parrotApi credential must include an API Key.',
224
+ });
225
+ }
226
+ const baseUrl = String((_b = credentials.baseUrl) !== null && _b !== void 0 ? _b : '').trim().replace(/\/$/, '');
227
+ if (!baseUrl) {
228
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), asJsonObject({ code: 'NO_BASE_URL' }), {
229
+ message: 'parrotApi credential must include API Base URL.',
230
+ });
231
+ }
232
+ const smartHitUrl = normalizeParrotGateUrlForIpv6(`${baseUrl}/highway/smart-hit`);
233
+ const userId = String((_c = credentials.userId) !== null && _c !== void 0 ? _c : '').trim() || 'n8n_user';
234
+ const workflowId = (_d = this.getWorkflow().id) !== null && _d !== void 0 ? _d : 'n8n_workflow';
235
+ const items = this.getInputData();
236
+ const returnData = [];
237
+ for (let i = 0; i < items.length; i++) {
238
+ const item = items[i];
239
+ const tier = this.getNodeParameter('tier', i);
240
+ const model = this.getNodeParameter('model', i, 'gpt-4o');
241
+ const useVault = this.getNodeParameter('useVault', i, false);
242
+ const productionVault = String(this.getNodeParameter('productionVault', i, 'primary')).trim();
243
+ let taskValue = '';
244
+ let overrideContext = false;
245
+ let guidedInstruction = '';
246
+ if (tier === TIER_GUIDED) {
247
+ taskValue = this.getNodeParameter('task', i);
248
+ overrideContext = this.getNodeParameter('overrideContext', i, false);
249
+ guidedInstruction = String(this.getNodeParameter('guidedInstruction', i, '')).trim();
250
+ }
251
+ const incomingJson = item.json;
252
+ const rawCodeJwt = incomingJson.code_jwt;
253
+ const sequenceJwt = rawCodeJwt === undefined || rawCodeJwt === null ? '' : String(rawCodeJwt).trim();
254
+ if (!sequenceJwt) {
255
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'code_jwt is required: run Parrot Integration (or upstream node) to provide the sequence baton before Parrot Smart.', { itemIndex: i });
256
+ }
257
+ const apiPayloadData = { ...incomingJson };
258
+ if (tier === TIER_GUIDED) {
259
+ delete apiPayloadData.user_context;
260
+ delete apiPayloadData.instruction;
261
+ apiPayloadData.task = taskValue;
262
+ if (overrideContext && guidedInstruction !== '') {
263
+ apiPayloadData.user_context = guidedInstruction;
264
+ apiPayloadData.instruction = guidedInstruction;
265
+ }
266
+ }
267
+ apiPayloadData.model = model;
268
+ apiPayloadData.use_vault = useVault;
269
+ apiPayloadData.production_vault = productionVault;
270
+ const smartHitBody = {
271
+ sequence_jwt: sequenceJwt,
272
+ tier,
273
+ model,
274
+ user_id: userId,
275
+ workflow_id: workflowId,
276
+ raw_input_payload: apiPayloadData,
277
+ };
278
+ let rawResponse;
279
+ try {
280
+ rawResponse = await this.helpers.request({
281
+ method: 'POST',
282
+ url: smartHitUrl,
283
+ headers: {
284
+ 'X-API-Key': apiKey,
285
+ 'Content-Type': 'application/json',
286
+ Accept: 'application/json',
287
+ },
288
+ body: JSON.stringify(smartHitBody),
289
+ });
290
+ }
291
+ catch (error) {
292
+ const message = error instanceof Error ? error.message : String(error);
293
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Highway smart-hit request failed: ${message}`, {
294
+ itemIndex: i,
295
+ });
296
+ }
297
+ const body = typeof rawResponse === 'string' ? (0, n8n_workflow_1.jsonParse)(rawResponse) : rawResponse;
298
+ if (tier === TIER_CHAMELEON) {
299
+ const integrityMessage = extractSmartPlusIntegrityMessage(body);
300
+ if (integrityMessage !== undefined) {
301
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Logic Integrity Warning: ${integrityMessage}`, { itemIndex: i });
302
+ }
303
+ }
304
+ const responseBody = isRecord(body) ? body : {};
305
+ const userData = buildCleanUserData(incomingJson);
306
+ const outputJson = {
307
+ ...userData,
308
+ code_jwt: (_e = responseBody.code_jwt) !== null && _e !== void 0 ? _e : null,
309
+ instruction: (_f = responseBody.instruction) !== null && _f !== void 0 ? _f : null,
310
+ task_index: (_g = responseBody.task_index) !== null && _g !== void 0 ? _g : null,
311
+ total_tasks: (_h = responseBody.total_tasks) !== null && _h !== void 0 ? _h : null,
312
+ finished: (_j = responseBody.finished) !== null && _j !== void 0 ? _j : null,
313
+ model,
314
+ };
315
+ returnData.push({
316
+ json: outputJson,
317
+ pairedItem: { item: i },
318
+ });
319
+ }
320
+ return [returnData];
321
+ }
322
+ }
323
+ exports.ParrotSmart = ParrotSmart;
324
+ //# sourceMappingURL=ParrotSmart.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParrotSmart.node.js","sourceRoot":"","sources":["../../../nodes/ParrotSmart/ParrotSmart.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ {
2
+ "node": "n8n-nodes-parrot-gate.parrotSmart",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Miscellaneous"],
6
+ "credentials": [
7
+ {
8
+ "name": "parrotApi",
9
+ "required": true
10
+ }
11
+ ],
12
+ "resources": {
13
+ "primaryDocumentation": []
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-label="Parrot">
2
+ <path fill="#16a34a" d="M6 26c3-14 16-24 30-24 2 12-2 24-12 32-8 6-20 6-26-4-2-4 2-10 8-4z"/>
3
+ <path fill="#eab308" d="M34 4c8 4 12 14 10 24-4-8-12-16-22-18 4-8 10-10 12-6z"/>
4
+ <path fill="#15803d" d="M8 34c6 6 16 6 24 2-6 8-18 10-28 6 2-4 6-8 4-8z"/>
5
+ <circle cx="16" cy="16" r="3.5" fill="#0f172a"/>
6
+ <path fill="#fde047" d="M4 20c4 2 8 0 10-4-2 6-6 10-10 8v-4z"/>
7
+ </svg>
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "n8n-nodes-polycracker",
3
+ "version": "1.0.0",
4
+ "description": "Premium AI orchestration nodes for n8n",
5
+ "keywords": ["n8n-community-node-package"],
6
+ "license": "UNLICENSED",
7
+ "main": "index.js",
8
+ "files": ["dist"],
9
+ "scripts": {
10
+ "build": "tsc && node scripts/copy-assets.js",
11
+ "dev": "tsc --watch",
12
+ "prepublishOnly": "npm run build"
13
+ },
14
+ "n8n": {
15
+ "n8nNodesApiVersion": 1,
16
+ "credentials": [
17
+ "dist/credentials/ParrotApi.credentials.js"
18
+ ],
19
+ "nodes": [
20
+ "dist/nodes/ParrotIntegration/ParrotIntegration.node.js",
21
+ "dist/nodes/ParrotSmart/ParrotSmart.node.js",
22
+ "dist/nodes/ParrotGate/ParrotGate.node.js"
23
+ ]
24
+ },
25
+ "dependencies": {
26
+ "n8n-workflow": "latest",
27
+ "n8n-core": "latest"
28
+ },
29
+ "devDependencies": {
30
+ "typescript": "^5.0.0"
31
+ }
32
+ }