UNPKG

n8n

Version:

n8n Workflow Automation Tool

41 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateJson = generateJson; exports.resolveUrl = resolveUrl; const instance_ai_1 = require("@n8n/instance-ai"); const n8n_workflow_1 = require("n8n-workflow"); const GENERATOR_TIMEOUT_MS = 120_000; const MAX_GENERATOR_ATTEMPTS = 2; function fenceStrip(raw) { return raw.replace(/^```(?:json)?\s*\n?/i, '').replace(/\n?\s*```\s*$/i, ''); } async function generateJson(agentName, instructions, userPrompt, validate, logger) { for (let attempt = 1; attempt <= MAX_GENERATOR_ATTEMPTS; attempt++) { try { const agent = (0, instance_ai_1.createEvalAgent)(agentName, { instructions }); const result = await agent.generate(userPrompt, { providerOptions: { anthropic: { maxTokens: 4096 } }, abortSignal: AbortSignal.timeout(GENERATOR_TIMEOUT_MS), }); const parsed = (0, n8n_workflow_1.jsonParse)(fenceStrip((0, instance_ai_1.extractText)(result)), { fallbackValue: undefined, }); const validated = validate(parsed); if (validated !== undefined) return validated; logger.warn(`[EvalMock] ${agentName} attempt ${attempt} returned an unusable shape`); } catch (error) { logger.warn(`[EvalMock] ${agentName} attempt ${attempt} failed: ${error instanceof Error ? error.message : String(error)}`); } } return undefined; } function resolveUrl(input) { if (typeof input === 'string') return input; if (input instanceof URL) return input.toString(); return input.url; } //# sourceMappingURL=mock-utils.js.map