@n8n/instance-ai 1.16.2 → 1.17.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.
Files changed (140) hide show
  1. package/dist/agent/instance-agent.js +7 -1
  2. package/dist/agent/instance-agent.js.map +1 -1
  3. package/dist/agent/system-prompt.js +3 -3
  4. package/dist/agent/system-prompt.js.map +1 -1
  5. package/dist/build.tsbuildinfo +1 -1
  6. package/dist/event-bus/event-bus.interface.d.ts +1 -1
  7. package/dist/index.d.ts +10 -1
  8. package/dist/index.js +17 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/parsers/xlsx-parser.js +1 -1
  11. package/dist/parsers/xlsx-parser.js.map +1 -1
  12. package/dist/runtime/terminal-response-guard.js +2 -1
  13. package/dist/runtime/terminal-response-guard.js.map +1 -1
  14. package/dist/skills/skill-gates.d.ts +5 -0
  15. package/dist/skills/skill-gates.js +12 -0
  16. package/dist/skills/skill-gates.js.map +1 -0
  17. package/dist/storage/workflow-loop-storage.d.ts +7 -7
  18. package/dist/stream/consume-with-hitl.d.ts +3 -0
  19. package/dist/stream/consume-with-hitl.js +2 -0
  20. package/dist/stream/consume-with-hitl.js.map +1 -1
  21. package/dist/stream/map-chunk.js +7 -0
  22. package/dist/stream/map-chunk.js.map +1 -1
  23. package/dist/stream/usage-accumulator.d.ts +2 -0
  24. package/dist/stream/usage-accumulator.js +13 -3
  25. package/dist/stream/usage-accumulator.js.map +1 -1
  26. package/dist/tool-registry.js +5 -1
  27. package/dist/tool-registry.js.map +1 -1
  28. package/dist/tools/agents.tool.d.ts +2 -0
  29. package/dist/tools/agents.tool.js +40 -0
  30. package/dist/tools/agents.tool.js.map +1 -0
  31. package/dist/tools/credentials.tool.js +8 -3
  32. package/dist/tools/credentials.tool.js.map +1 -1
  33. package/dist/tools/evals/eval-config.tool.js +10 -2
  34. package/dist/tools/evals/eval-config.tool.js.map +1 -1
  35. package/dist/tools/executions.tool.js +3 -2
  36. package/dist/tools/executions.tool.js.map +1 -1
  37. package/dist/tools/filesystem/create-tools-from-mcp-server.js +2 -2
  38. package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
  39. package/dist/tools/index.js +15 -2
  40. package/dist/tools/index.js.map +1 -1
  41. package/dist/tools/n8n-docs/registry.d.ts +2 -2
  42. package/dist/tools/n8n-docs/registry.js +20 -8
  43. package/dist/tools/n8n-docs/registry.js.map +1 -1
  44. package/dist/tools/n8n-docs.tool.js +18 -12
  45. package/dist/tools/n8n-docs.tool.js.map +1 -1
  46. package/dist/tools/nodes.tool.js +1 -1
  47. package/dist/tools/orchestration/agent-preview-session-binding.d.ts +20 -0
  48. package/dist/tools/orchestration/agent-preview-session-binding.js +47 -0
  49. package/dist/tools/orchestration/agent-preview-session-binding.js.map +1 -0
  50. package/dist/tools/orchestration/agent-target-binding.d.ts +6 -1
  51. package/dist/tools/orchestration/agent-target-binding.js +43 -4
  52. package/dist/tools/orchestration/agent-target-binding.js.map +1 -1
  53. package/dist/tools/orchestration/build-agent.tool.js +365 -71
  54. package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
  55. package/dist/tools/orchestration/builder-thread-id.d.ts +1 -0
  56. package/dist/tools/orchestration/builder-thread-id.js +7 -0
  57. package/dist/tools/orchestration/builder-thread-id.js.map +1 -0
  58. package/dist/tools/orchestration/get-session.tool.d.ts +2 -0
  59. package/dist/tools/orchestration/get-session.tool.js +49 -0
  60. package/dist/tools/orchestration/get-session.tool.js.map +1 -0
  61. package/dist/tools/orchestration/verification/reconcile-plan.js +4 -1
  62. package/dist/tools/orchestration/verification/reconcile-plan.js.map +1 -1
  63. package/dist/tools/orchestration/verify-built-workflow.tool.js +1 -0
  64. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  65. package/dist/tools/research.tool.js +2 -0
  66. package/dist/tools/research.tool.js.map +1 -1
  67. package/dist/tools/tool-ids.d.ts +2 -0
  68. package/dist/tools/tool-ids.js +3 -0
  69. package/dist/tools/tool-ids.js.map +1 -1
  70. package/dist/tools/workflows/build-workflow.tool.js +12 -4
  71. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  72. package/dist/tools/workflows/classify-node-destructiveness.service.d.ts +1 -1
  73. package/dist/tools/workflows/classify-node-destructiveness.service.js +5 -7
  74. package/dist/tools/workflows/classify-node-destructiveness.service.js.map +1 -1
  75. package/dist/tools/workflows/credential-utils.d.ts +1 -1
  76. package/dist/tools/workflows/credential-utils.js +2 -2
  77. package/dist/tools/workflows/credential-utils.js.map +1 -1
  78. package/dist/tools/workflows/detect-unparseable-openai-schema.d.ts +3 -0
  79. package/dist/tools/workflows/detect-unparseable-openai-schema.js +85 -0
  80. package/dist/tools/workflows/detect-unparseable-openai-schema.js.map +1 -0
  81. package/dist/tools/workflows/generate-simulation-fixtures.service.d.ts +2 -1
  82. package/dist/tools/workflows/generate-simulation-fixtures.service.js +27 -5
  83. package/dist/tools/workflows/generate-simulation-fixtures.service.js.map +1 -1
  84. package/dist/tools/workflows/materialize-node-type.tool.js +4 -2
  85. package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
  86. package/dist/tools/workflows/plan-verification-simulation.d.ts +5 -2
  87. package/dist/tools/workflows/plan-verification-simulation.js +117 -2
  88. package/dist/tools/workflows/plan-verification-simulation.js.map +1 -1
  89. package/dist/tools/workflows/reconcile-simulation-plan.js +48 -17
  90. package/dist/tools/workflows/reconcile-simulation-plan.js.map +1 -1
  91. package/dist/tools/workflows/resolve-credentials.js +35 -1
  92. package/dist/tools/workflows/resolve-credentials.js.map +1 -1
  93. package/dist/tools/workflows/setup-workflow.schema.d.ts +66 -66
  94. package/dist/tools/workflows/validate-workflow.service.js +4 -4
  95. package/dist/tools/workflows/workflow-build-routing.js +3 -3
  96. package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
  97. package/dist/tools/workflows/workflow-file-bindings.d.ts +1 -1
  98. package/dist/tools/workflows/workflow-file-bindings.js +2 -1
  99. package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
  100. package/dist/tools/workflows/workflow-json-utils.js +11 -12
  101. package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
  102. package/dist/tools/workflows/workflow-source-compiler.d.ts +1 -1
  103. package/dist/tools/workflows/workflow-source-compiler.js +11 -4
  104. package/dist/tools/workflows/workflow-source-compiler.js.map +1 -1
  105. package/dist/tools/workflows/write-sandbox-file.tool.js +4 -2
  106. package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
  107. package/dist/tracing/langsmith-tracing.d.ts +1 -0
  108. package/dist/tracing/langsmith-tracing.js +69 -9
  109. package/dist/tracing/langsmith-tracing.js.map +1 -1
  110. package/dist/tracing/trace-payloads.js +8 -0
  111. package/dist/tracing/trace-payloads.js.map +1 -1
  112. package/dist/types.d.ts +52 -5
  113. package/dist/types.js.map +1 -1
  114. package/dist/utils/stream-helpers.d.ts +1 -0
  115. package/dist/utils/stream-helpers.js +2 -1
  116. package/dist/utils/stream-helpers.js.map +1 -1
  117. package/dist/workflow-loop/workflow-loop-state.d.ts +13 -13
  118. package/dist/workflow-loop/workflow-loop-state.js +6 -1
  119. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  120. package/dist/workspace/create-workspace.js +24 -1
  121. package/dist/workspace/create-workspace.js.map +1 -1
  122. package/dist/workspace/lazy-runtime-workspace.js +19 -19
  123. package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
  124. package/dist/workspace/sandbox-fs.d.ts +16 -4
  125. package/dist/workspace/sandbox-fs.js +80 -25
  126. package/dist/workspace/sandbox-fs.js.map +1 -1
  127. package/dist/workspace/scoped-workspace.js +6 -6
  128. package/dist/workspace/scoped-workspace.js.map +1 -1
  129. package/dist/workspace/snapshot-manager.d.ts +1 -0
  130. package/dist/workspace/snapshot-manager.js +37 -5
  131. package/dist/workspace/snapshot-manager.js.map +1 -1
  132. package/dist/workspace/workspace-files.d.ts +4 -0
  133. package/dist/workspace/workspace-files.js +21 -7
  134. package/dist/workspace/workspace-files.js.map +1 -1
  135. package/knowledge-base/reference/workflow-builder-guardrails.md +3 -0
  136. package/package.json +12 -12
  137. package/skills/config-evals/SKILL.md +96 -0
  138. package/skills/config-evals/references/config-eval-playbook.md +109 -0
  139. package/skills/intent-recognition/SKILL.md +145 -34
  140. package/skills/workflow-builder/SKILL.md +25 -17
@@ -2,16 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateSimulationFixtures = generateSimulationFixtures;
4
4
  const is_record_1 = require("@n8n/utils/is-record");
5
+ const workflow_sdk_1 = require("@n8n/workflow-sdk");
5
6
  const n8n_workflow_1 = require("n8n-workflow");
6
7
  const zod_1 = require("zod");
8
+ const workflow_json_utils_1 = require("./workflow-json-utils");
7
9
  const eval_agents_1 = require("../../utils/eval-agents");
8
10
  const generate_validated_json_1 = require("../../utils/generate-validated-json");
9
- const FixturesResponseSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.object({ json: zod_1.z.record(zod_1.z.unknown()) })).min(1));
10
- const SYSTEM_INSTRUCTIONS = `You generate realistic mock output for n8n workflow nodes whose real execution is being simulated (their operation would create, update, send, or delete data in an external system, or pause the workflow for user action).
11
+ const FixturesResponseSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.unknown()));
12
+ const SYSTEM_INSTRUCTIONS = `You generate realistic mock output for n8n workflow nodes whose real execution is being simulated (their operation would create, update, send, or delete data in an external system, would wait for an outside event, or would pause the workflow for user action).
11
13
 
12
14
  For each node, return the output items the node would naturally emit after a SUCCESSFUL run of its operation — matching the response shape of the underlying service (e.g. a Slack message post returns "ok", "ts" and "channel"; a row insert returns the row including its new "id"). Base the field values on the node's parameters so the data is plausible in context, and keep values consistent across nodes (same fictional users, ids, timestamps).
13
15
 
16
+ When a node block includes an "Output JSON Schema", it is the node's real recorded output shape — follow its structure exactly (field names and types); only invent fields the schema doesn't cover when the node's parameters clearly require them.
17
+
18
+ Dates and timestamps MUST be derived from the "## Date anchors" block at the end of the prompt — never from training data. Fixtures feed a real verification run that compares values against the execution clock ($now, Date.now()); stale dates get silently filtered out downstream.
19
+
14
20
  Special node types:
21
+ - Trigger nodes (marked as the workflow's simulated event source): emit the EVENT PAYLOAD the trigger delivers into the workflow — the received email/message/record object itself — never an API response envelope, acknowledgement, or request metadata.
15
22
  - Form nodes (a mid-workflow form page): emit the submitted field values — one key per field defined in the node's formFields, with plausible values, plus "submittedAt".
16
23
  - Wait nodes: their real output is their INPUT passed through unchanged. Emit data matching what the listed upstream nodes would produce, so downstream expressions keep resolving.
17
24
 
@@ -19,7 +26,7 @@ Output: a single JSON object whose keys are node names and whose values are arra
19
26
 
20
27
  Return only the JSON object. No prose, no markdown fences.`;
21
28
  const USER_ACTION_NODE_TYPES = new Set(['n8n-nodes-base.form', 'n8n-nodes-base.wait']);
22
- function formatNodeBlock(node, reason, upstreamContext) {
29
+ function formatNodeBlock(node, reason, schemaContext, upstreamContext) {
23
30
  const params = (0, is_record_1.isRecord)(node.parameters)
24
31
  ? JSON.stringify(node.parameters).slice(0, 600)
25
32
  : '(none)';
@@ -27,7 +34,11 @@ function formatNodeBlock(node, reason, upstreamContext) {
27
34
  `Node name: ${node.name}`,
28
35
  `Node type: ${node.type}`,
29
36
  `Simulated because: ${reason}`,
37
+ ...((0, workflow_json_utils_1.isTriggerNodeType)(node.type)
38
+ ? ["This node is the workflow's simulated event source — emit the event payload it delivers."]
39
+ : []),
30
40
  `Parameters: ${params}`,
41
+ ...(schemaContext ? (0, workflow_sdk_1.buildNodeSchemaSection)(schemaContext) : []),
31
42
  ...(upstreamContext ? [upstreamContext] : []),
32
43
  ].join('\n');
33
44
  }
@@ -64,19 +75,25 @@ async function generateSimulationFixtures(input) {
64
75
  const nodeNames = nodes.map((n) => n.name);
65
76
  if (nodeNames.length === 0)
66
77
  return {};
78
+ const outputParserTargets = (0, workflow_sdk_1.findOutputParserTargets)(input.workflow);
79
+ const schemaContexts = (0, workflow_sdk_1.buildSchemaContexts)(nodes, input.outputSchemaLookup, outputParserTargets);
80
+ const schemaContextByName = new Map(schemaContexts.map((ctx) => [ctx.nodeName, ctx]));
67
81
  const connectionsByDestination = (0, n8n_workflow_1.mapConnectionsByDestination)((input.workflow.connections ?? {}));
68
82
  const userText = [
69
83
  'Generate realistic mock output (pin-data items) for the following simulated n8n nodes.',
70
84
  input.workflow.name ? `\nWorkflow: ${input.workflow.name}` : '',
71
85
  '',
72
86
  nodes
73
- .map((n) => formatNodeBlock(n, reasonByName.get(n.name) ?? '', USER_ACTION_NODE_TYPES.has(n.type)
87
+ .map((n) => formatNodeBlock(n, reasonByName.get(n.name) ?? '', schemaContextByName.get(n.name), USER_ACTION_NODE_TYPES.has(n.type)
74
88
  ? buildUpstreamContext(input.workflow, n.name, connectionsByDestination)
75
89
  : undefined))
76
90
  .join('\n\n'),
77
91
  '',
78
92
  `Output a single JSON object with exactly these keys: ${nodeNames.map((n) => `"${n}"`).join(', ')}.`,
79
93
  'Each value: an array with one item shaped like { "json": { ...fields } }.',
94
+ '',
95
+ '## Date anchors',
96
+ (0, workflow_sdk_1.buildDateAnchors)(new Date()),
80
97
  ].join('\n');
81
98
  const result = await (0, generate_validated_json_1.generateValidatedJson)('verification-simulation-fixtures', {
82
99
  model: eval_agents_1.SONNET_MODEL,
@@ -86,9 +103,14 @@ async function generateSimulationFixtures(input) {
86
103
  });
87
104
  if (!result.ok)
88
105
  return emptyFixtures(nodeNames);
106
+ let pinData = (0, workflow_sdk_1.parsePinDataResponse)(JSON.stringify(result.data), nodeNames);
107
+ pinData = (0, workflow_sdk_1.repairStructuredOutput)(pinData, input.workflow, schemaContexts);
89
108
  const fixtures = {};
90
109
  for (const name of nodeNames) {
91
- fixtures[name] = result.data[name]?.map((item) => item.json) ?? [{}];
110
+ const items = pinData[name];
111
+ fixtures[name] = items?.length
112
+ ? items.map((item) => ((0, is_record_1.isRecord)(item.json) ? item.json : {}))
113
+ : [{}];
92
114
  }
93
115
  return fixtures;
94
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-simulation-fixtures.service.js","sourceRoot":"","sources":["../../../src/tools/workflows/generate-simulation-fixtures.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-simulation-fixtures.service.js","sourceRoot":"","sources":["../../../src/tools/workflows/generate-simulation-fixtures.service.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ function createMaterializeNodeTypeTool(context, workspace) {
47
47
  error: zod_1.z.string().optional(),
48
48
  })),
49
49
  }))
50
- .handler(async ({ nodeIds }) => {
50
+ .handler(async ({ nodeIds }, ctx) => {
51
51
  if (!context.nodeService.getNodeTypeDefinition) {
52
52
  return {
53
53
  definitions: nodeIds.map((req) => ({
@@ -91,7 +91,9 @@ function createMaterializeNodeTypeTool(context, workspace) {
91
91
  }
92
92
  const script = lines.join('\n');
93
93
  const scriptB64 = Buffer.from(script, 'utf-8').toString('base64');
94
- const result = await (0, sandbox_fs_1.runInSandbox)(workspace, `echo '${scriptB64}' | base64 -d | bash`);
94
+ const result = await (0, sandbox_fs_1.runInSandbox)(workspace, `echo '${scriptB64}' | base64 -d | bash`, {
95
+ abortSignal: ctx.abortSignal,
96
+ });
95
97
  if (result.exitCode !== 0) {
96
98
  for (const f of toWrite) {
97
99
  f.error =
@@ -1 +1 @@
1
- {"version":3,"file":"materialize-node-type.tool.js","sourceRoot":"","sources":["../../../src/tools/workflows/materialize-node-type.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialize-node-type.tool.js","sourceRoot":"","sources":["../../../src/tools/workflows/materialize-node-type.tool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { WorkflowJSON } from '@n8n/workflow-sdk';
1
+ import type { OutputSchemaLookup, WorkflowJSON } from '@n8n/workflow-sdk';
2
2
  import { type SimulationFixtures } from './generate-simulation-fixtures.service';
3
3
  import type { Logger } from '../../logger';
4
4
  import type { NodeSimulationVerdict } from '../../workflow-loop/workflow-loop-state';
@@ -7,10 +7,13 @@ export interface PlanVerificationSimulationInput {
7
7
  mockedNodeNames?: string[];
8
8
  declaredOutputFixtures?: SimulationFixtures;
9
9
  workflowId: string;
10
+ outputSchemaLookup?: OutputSchemaLookup;
10
11
  logger?: Logger;
11
12
  }
12
13
  export interface VerificationSimulationPlan {
13
14
  nodeSimulationPlan?: NodeSimulationVerdict[];
14
15
  simulationFixtures?: SimulationFixtures;
15
16
  }
16
- export declare function planVerificationSimulation({ workflow, mockedNodeNames, declaredOutputFixtures, workflowId, logger, }: PlanVerificationSimulationInput): Promise<VerificationSimulationPlan>;
17
+ export declare const CREDENTIALLESS_AI_ROOT_SIMULATION_REASON = "Language model sub-node has no configured credentials \u2014 output is simulated during verification";
18
+ export declare function findCredentiallessAiRoots(workflow: WorkflowJSON, mockedNodeNames: Set<string>): Set<string>;
19
+ export declare function planVerificationSimulation({ workflow, mockedNodeNames, declaredOutputFixtures, workflowId, outputSchemaLookup, logger, }: PlanVerificationSimulationInput): Promise<VerificationSimulationPlan>;
@@ -1,9 +1,116 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CREDENTIALLESS_AI_ROOT_SIMULATION_REASON = void 0;
4
+ exports.findCredentiallessAiRoots = findCredentiallessAiRoots;
3
5
  exports.planVerificationSimulation = planVerificationSimulation;
4
6
  const classify_node_destructiveness_service_1 = require("./classify-node-destructiveness.service");
5
7
  const generate_simulation_fixtures_service_1 = require("./generate-simulation-fixtures.service");
8
+ const workflow_json_utils_1 = require("./workflow-json-utils");
6
9
  const DECLARED_OUTPUT_SIMULATION_REASON = 'Source declares verification output for this node';
10
+ const TRIGGER_SIMULATION_REASON = 'Trigger event is simulated during verification';
11
+ function withSimulatedTriggerVerdicts(plan, workflow) {
12
+ const plannedNodeNames = new Set(plan.map((verdict) => verdict.nodeName));
13
+ const verdicts = [...plan];
14
+ for (const node of workflow.nodes ?? []) {
15
+ if (!node.name || node.disabled || plannedNodeNames.has(node.name))
16
+ continue;
17
+ if (!(0, workflow_json_utils_1.isTriggerNodeType)(node.type) || (0, workflow_json_utils_1.isMockableTriggerNodeType)(node.type))
18
+ continue;
19
+ verdicts.push({
20
+ nodeName: node.name,
21
+ verdict: 'simulate',
22
+ reason: TRIGGER_SIMULATION_REASON,
23
+ confidence: 'high',
24
+ source: 'deterministic',
25
+ });
26
+ }
27
+ return verdicts;
28
+ }
29
+ exports.CREDENTIALLESS_AI_ROOT_SIMULATION_REASON = 'Language model sub-node has no configured credentials — output is simulated during verification';
30
+ const MODEL_SELECTOR_NODE_TYPE = '@n8n/n8n-nodes-langchain.modelSelector';
31
+ function findCredentiallessAiRoots(workflow, mockedNodeNames) {
32
+ const nodesByName = new Map((workflow.nodes ?? [])
33
+ .filter((node) => Boolean(node.name))
34
+ .map((node) => [node.name, node]));
35
+ const modelSourcesByTarget = new Map();
36
+ for (const [sourceName, nodeConns] of Object.entries(workflow.connections ?? {})) {
37
+ const modelConns = nodeConns.ai_languageModel;
38
+ if (!Array.isArray(modelConns))
39
+ continue;
40
+ const subNode = nodesByName.get(sourceName);
41
+ if (!subNode || subNode.disabled)
42
+ continue;
43
+ for (const group of modelConns) {
44
+ if (!Array.isArray(group))
45
+ continue;
46
+ for (const conn of group) {
47
+ if (typeof conn !== 'object' || conn === null || !('node' in conn))
48
+ continue;
49
+ const target = conn.node;
50
+ const sources = modelSourcesByTarget.get(target);
51
+ if (sources)
52
+ sources.push(sourceName);
53
+ else
54
+ modelSourcesByTarget.set(target, [sourceName]);
55
+ }
56
+ }
57
+ }
58
+ const hasUsableCredentials = (name, visited) => {
59
+ if (visited.has(name))
60
+ return false;
61
+ visited.add(name);
62
+ const node = nodesByName.get(name);
63
+ if (!node || node.disabled)
64
+ return false;
65
+ if (node.type === MODEL_SELECTOR_NODE_TYPE) {
66
+ const models = modelSourcesByTarget.get(name) ?? [];
67
+ return models.some((model) => hasUsableCredentials(model, visited));
68
+ }
69
+ if (mockedNodeNames.has(name))
70
+ return false;
71
+ return Boolean(node.credentials && Object.keys(node.credentials).length > 0);
72
+ };
73
+ const roots = new Set();
74
+ for (const [target, sources] of modelSourcesByTarget) {
75
+ if (nodesByName.get(target)?.type === MODEL_SELECTOR_NODE_TYPE)
76
+ continue;
77
+ if (!sources.some((source) => hasUsableCredentials(source, new Set()))) {
78
+ roots.add(target);
79
+ }
80
+ }
81
+ return roots;
82
+ }
83
+ function withSimulatedCredentiallessAiRootVerdicts(plan, workflow, mockedNodeNames) {
84
+ const nodesByName = new Map((workflow.nodes ?? [])
85
+ .filter((node) => Boolean(node.name))
86
+ .map((node) => [node.name, node]));
87
+ const rootsWithCredentiallessModel = findCredentiallessAiRoots(workflow, mockedNodeNames);
88
+ if (rootsWithCredentiallessModel.size === 0)
89
+ return plan;
90
+ const verdicts = plan.map((verdict) => rootsWithCredentiallessModel.has(verdict.nodeName) && verdict.verdict !== 'simulate'
91
+ ? {
92
+ ...verdict,
93
+ verdict: 'simulate',
94
+ reason: exports.CREDENTIALLESS_AI_ROOT_SIMULATION_REASON,
95
+ confidence: 'high',
96
+ source: 'deterministic',
97
+ }
98
+ : verdict);
99
+ const plannedNodeNames = new Set(verdicts.map((verdict) => verdict.nodeName));
100
+ for (const rootName of rootsWithCredentiallessModel) {
101
+ const rootNode = nodesByName.get(rootName);
102
+ if (!rootNode || rootNode.disabled || plannedNodeNames.has(rootName))
103
+ continue;
104
+ verdicts.push({
105
+ nodeName: rootName,
106
+ verdict: 'simulate',
107
+ reason: exports.CREDENTIALLESS_AI_ROOT_SIMULATION_REASON,
108
+ confidence: 'high',
109
+ source: 'deterministic',
110
+ });
111
+ }
112
+ return verdicts;
113
+ }
7
114
  function nonEmptyDeclaredFixtures(fixtures) {
8
115
  if (!fixtures)
9
116
  return undefined;
@@ -37,17 +144,23 @@ function withDeclaredOutputVerdicts(plan, declaredFixtures) {
37
144
  }
38
145
  return overriddenPlan;
39
146
  }
40
- async function planVerificationSimulation({ workflow, mockedNodeNames, declaredOutputFixtures, workflowId, logger, }) {
147
+ async function planVerificationSimulation({ workflow, mockedNodeNames, declaredOutputFixtures, workflowId, outputSchemaLookup, logger, }) {
41
148
  let nodeSimulationPlan;
42
149
  let simulationFixtures;
43
150
  const declaredFixtures = nonEmptyDeclaredFixtures(declaredOutputFixtures);
44
151
  try {
45
152
  nodeSimulationPlan = await (0, classify_node_destructiveness_service_1.classifyNodesForSimulation)({ workflow, mockedNodeNames });
46
153
  nodeSimulationPlan = withDeclaredOutputVerdicts(nodeSimulationPlan, declaredFixtures);
154
+ nodeSimulationPlan = withSimulatedTriggerVerdicts(nodeSimulationPlan, workflow);
155
+ nodeSimulationPlan = withSimulatedCredentiallessAiRootVerdicts(nodeSimulationPlan, workflow, new Set(mockedNodeNames ?? []));
47
156
  if (nodeSimulationPlan.length > 0) {
48
157
  const planNeedingGeneratedFixtures = nodeSimulationPlan.filter((verdict) => verdict.verdict === 'simulate' && !declaredFixtures?.[verdict.nodeName]?.length);
49
158
  const generatedFixtures = planNeedingGeneratedFixtures.length > 0
50
- ? await (0, generate_simulation_fixtures_service_1.generateSimulationFixtures)({ workflow, plan: planNeedingGeneratedFixtures })
159
+ ? await (0, generate_simulation_fixtures_service_1.generateSimulationFixtures)({
160
+ workflow,
161
+ plan: planNeedingGeneratedFixtures,
162
+ outputSchemaLookup,
163
+ })
51
164
  : {};
52
165
  const fixtures = { ...generatedFixtures, ...declaredFixtures };
53
166
  simulationFixtures = Object.keys(fixtures).length > 0 ? fixtures : undefined;
@@ -68,6 +181,8 @@ async function planVerificationSimulation({ workflow, mockedNodeNames, declaredO
68
181
  });
69
182
  if (declaredFixtures) {
70
183
  nodeSimulationPlan = withDeclaredOutputVerdicts(nodeSimulationPlan ?? [], declaredFixtures);
184
+ nodeSimulationPlan = withSimulatedTriggerVerdicts(nodeSimulationPlan, workflow);
185
+ nodeSimulationPlan = withSimulatedCredentiallessAiRootVerdicts(nodeSimulationPlan, workflow, new Set(mockedNodeNames ?? []));
71
186
  simulationFixtures = declaredFixtures;
72
187
  }
73
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plan-verification-simulation.js","sourceRoot":"","sources":["../../../src/tools/workflows/plan-verification-simulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-verification-simulation.js","sourceRoot":"","sources":["../../../src/tools/workflows/plan-verification-simulation.ts"],"names":[],"mappings":";;;;;AAiBA,mGAAqF;AACrF,iGAGgD;AAChD,+DAAqF;AAyBrF,MAAM,iCAAiC,GAAG,mDAAmD,CAAC;AAE9F,MAAM,yBAAyB,GAAG,gDAAgD,CAAC;AAUnF,SAAS,4BAA4B,CACpC,IAA6B,EAC7B,QAAsB;IAEtB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7E,IAAI,CAAC,IAAA,uCAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAA,+CAAyB,EAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACpF,QAAQ,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,yBAAyB;YACjC,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,eAAe;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAEY,QAAA,wCAAwC,GACpD,iGAAiG,CAAC;AAGnG,MAAM,wBAAwB,GAAG,wCAAwC,CAAC;AAW1E,mCACC,QAAsB,EACtB,eAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAC1B,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,IAAI,EAA4D,EAAE,CAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAClB;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAC3C,CAAC;IAKF,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzD,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QAClF,MAAM,UAAU,GAAI,SAAqC,CAAC,gBAAgB,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,SAAS;QAEzC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ;YAAE,SAAS;QAE3C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;oBAAE,SAAS;gBAC7E,MAAM,MAAM,GAAI,IAAyB,CAAC,IAAI,CAAC;gBAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;oBACjC,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,OAAoB,EAAW,EAAE;QAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACtD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,wBAAwB;YAAE,SAAS;QACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAYD,SAAS,yCAAyC,CACjD,IAA6B,EAC7B,QAAsB,EACtB,eAA4B;IAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAC1B,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,IAAI,EAA4D,EAAE,CAC1E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAClB;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAC3C,CAAC;IAEF,MAAM,4BAA4B,GAAG,yBAAyB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC1F,IAAI,4BAA4B,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU;QACnF,CAAC,CAAC;YACA,GAAG,OAAO;YACV,OAAO,EAAE,UAAmB;YAC5B,MAAM,EAAE,QAAA,wCAAwC;YAChD,UAAU,EAAE,MAAe;YAC3B,MAAM,EAAE,eAAwB;SAChC;QACF,CAAC,CAAC,OAAO,CACV,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,KAAK,MAAM,QAAQ,IAAI,4BAA4B,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC/E,QAAQ,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,QAAA,wCAAwC;YAChD,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,eAAe;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAChC,QAAwC;IAExC,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,SAAS,0BAA0B,CAClC,IAA6B,EAC7B,gBAAgD;IAEhD,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC;YACA,GAAG,OAAO;YACV,OAAO,EAAE,UAAmB;YAC5B,MAAM,EAAE,iCAAiC;YACzC,UAAU,EAAE,MAAe;YAC3B,MAAM,EAAE,eAAwB;SAChC;QACF,CAAC,CAAC,OAAO,CACV,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QAC1C,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC7C,cAAc,CAAC,IAAI,CAAC;YACnB,QAAQ;YACR,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,iCAAiC;YACzC,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,eAAe;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAEM,KAAK,qCAAqC,EAChD,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,MAAM,GAC2B;IACjC,IAAI,kBAAuD,CAAC;IAC5D,IAAI,kBAAkD,CAAC;IACvD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,CAAC;IAC1E,IAAI,CAAC;QACJ,kBAAkB,GAAG,MAAM,IAAA,kEAA0B,EAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QACrF,kBAAkB,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QACtF,kBAAkB,GAAG,4BAA4B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAChF,kBAAkB,GAAG,yCAAyC,CAC7D,kBAAkB,EAClB,QAAQ,EACR,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAC9B,CAAC;QACF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,MAAM,CAC7D,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAChF,CAAC;YACF,MAAM,iBAAiB,GACtB,4BAA4B,CAAC,MAAM,GAAG,CAAC;gBACtC,CAAC,CAAC,MAAM,IAAA,iEAA0B,EAAC;oBACjC,QAAQ;oBACR,IAAI,EAAE,4BAA4B;oBAClC,kBAAkB;iBAClB,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,EAAE,CAAC;YAC/D,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,MAAM,EAAE,KAAK,CAAC,uDAAuD,EAAE;gBACtE,UAAU;gBACV,SAAS,EAAE,kBAAkB,CAAC,MAAM;gBACpC,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,MAAM;gBAChF,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM;gBACrE,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;aAC/E,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,iCAAiC,EAAE;YAC/C,UAAU;YACV,aAAa,EAAE,kBAAkB,KAAK,SAAS;YAC/C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC7D,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YAOtB,kBAAkB,GAAG,0BAA0B,CAAC,kBAAkB,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC5F,kBAAkB,GAAG,4BAA4B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAChF,kBAAkB,GAAG,yCAAyC,CAC7D,kBAAkB,EAClB,QAAQ,EACR,IAAI,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAC9B,CAAC;YACF,kBAAkB,GAAG,gBAAgB,CAAC;QACvC,CAAC;IACF,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AACnD,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reconcileSimulationPlan = reconcileSimulationPlan;
4
4
  const classify_node_destructiveness_service_1 = require("./classify-node-destructiveness.service");
5
5
  const credential_utils_1 = require("./credential-utils");
6
+ const plan_verification_simulation_1 = require("./plan-verification-simulation");
6
7
  function isConfiguredCredential(value, credentialType, availableCredentials) {
7
8
  if ((0, credential_utils_1.isAiGatewayManagedCredential)(value))
8
9
  return true;
@@ -17,11 +18,10 @@ function nodeCredentials(workflow, nodeName) {
17
18
  const node = (workflow.nodes ?? []).find((candidate) => candidate.name === nodeName);
18
19
  return node?.credentials ? node.credentials : undefined;
19
20
  }
21
+ const AI_ROOT_CREDENTIALS_RESTORED_REASON = 'Language model sub-node now has configured credentials — node executes during verification';
20
22
  async function reconcileSimulationPlan(args) {
21
23
  const { buildOutcome, workflow, availableCredentials } = args;
22
24
  const mockedEntries = Object.entries(buildOutcome.mockedCredentialsByNode ?? {});
23
- if (mockedEntries.length === 0)
24
- return undefined;
25
25
  const satisfiedNames = new Set(mockedEntries
26
26
  .filter(([nodeName, mockedTypes]) => {
27
27
  const credentials = nodeCredentials(workflow, nodeName);
@@ -32,23 +32,54 @@ async function reconcileSimulationPlan(args) {
32
32
  types.every((type) => isConfiguredCredential(credentials[type], type, availableCredentials)));
33
33
  })
34
34
  .map(([nodeName]) => nodeName));
35
- if (satisfiedNames.size === 0)
36
- return undefined;
37
35
  const remainingEntries = mockedEntries.filter(([nodeName]) => !satisfiedNames.has(nodeName));
38
36
  const remainingMockedNames = (buildOutcome.mockedNodeNames ?? mockedEntries.map(([nodeName]) => nodeName)).filter((nodeName) => !satisfiedNames.has(nodeName));
39
- const scopedWorkflow = {
40
- ...workflow,
41
- nodes: (workflow.nodes ?? []).filter((node) => typeof node.name === 'string' && satisfiedNames.has(node.name)),
42
- };
43
- const freshVerdicts = await (0, classify_node_destructiveness_service_1.classifyNodesForSimulation)({
44
- workflow: scopedWorkflow,
45
- mockedNodeNames: remainingMockedNames,
37
+ const credentiallessRoots = (0, plan_verification_simulation_1.findCredentiallessAiRoots)(workflow, new Set(remainingMockedNames));
38
+ const restoredAiRoots = new Set((buildOutcome.nodeSimulationPlan ?? [])
39
+ .filter((verdict) => verdict.verdict === 'simulate' &&
40
+ verdict.reason === plan_verification_simulation_1.CREDENTIALLESS_AI_ROOT_SIMULATION_REASON &&
41
+ !credentiallessRoots.has(verdict.nodeName))
42
+ .map((verdict) => verdict.nodeName));
43
+ if (satisfiedNames.size === 0 && restoredAiRoots.size === 0)
44
+ return undefined;
45
+ let freshVerdictByName = new Map();
46
+ if (satisfiedNames.size > 0) {
47
+ const scopedWorkflow = {
48
+ ...workflow,
49
+ nodes: (workflow.nodes ?? []).filter((node) => typeof node.name === 'string' && satisfiedNames.has(node.name)),
50
+ };
51
+ const freshVerdicts = await (0, classify_node_destructiveness_service_1.classifyNodesForSimulation)({
52
+ workflow: scopedWorkflow,
53
+ mockedNodeNames: remainingMockedNames,
54
+ });
55
+ freshVerdictByName = new Map(freshVerdicts.map((verdict) => [verdict.nodeName, verdict]));
56
+ }
57
+ const nodeSimulationPlan = buildOutcome.nodeSimulationPlan?.map((verdict) => {
58
+ if (satisfiedNames.has(verdict.nodeName)) {
59
+ return freshVerdictByName.get(verdict.nodeName) ?? verdict;
60
+ }
61
+ if (restoredAiRoots.has(verdict.nodeName)) {
62
+ return {
63
+ ...verdict,
64
+ verdict: 'execute',
65
+ reason: AI_ROOT_CREDENTIALS_RESTORED_REASON,
66
+ confidence: 'high',
67
+ source: 'deterministic',
68
+ };
69
+ }
70
+ return verdict;
46
71
  });
47
- const freshVerdictByName = new Map(freshVerdicts.map((verdict) => [verdict.nodeName, verdict]));
48
- const nodeSimulationPlan = buildOutcome.nodeSimulationPlan?.map((verdict) => satisfiedNames.has(verdict.nodeName)
49
- ? (freshVerdictByName.get(verdict.nodeName) ?? verdict)
50
- : verdict);
51
- const retainedFixtureEntries = Object.entries(buildOutcome.simulationFixtures ?? {}).filter(([nodeName]) => freshVerdictByName.get(nodeName)?.verdict !== 'execute');
72
+ const retainedFixtureEntries = Object.entries(buildOutcome.simulationFixtures ?? {}).filter(([nodeName]) => freshVerdictByName.get(nodeName)?.verdict !== 'execute' && !restoredAiRoots.has(nodeName));
73
+ const simulationFixtures = retainedFixtureEntries.length > 0 ? Object.fromEntries(retainedFixtureEntries) : undefined;
74
+ if (satisfiedNames.size === 0) {
75
+ return {
76
+ mockedNodeNames: buildOutcome.mockedNodeNames,
77
+ mockedCredentialTypes: buildOutcome.mockedCredentialTypes,
78
+ mockedCredentialsByNode: buildOutcome.mockedCredentialsByNode,
79
+ nodeSimulationPlan,
80
+ simulationFixtures,
81
+ };
82
+ }
52
83
  const hasRemainingMocks = remainingEntries.length > 0;
53
84
  const patch = {
54
85
  mockedNodeNames: hasRemainingMocks ? remainingMockedNames : undefined,
@@ -57,7 +88,7 @@ async function reconcileSimulationPlan(args) {
57
88
  : undefined,
58
89
  mockedCredentialsByNode: hasRemainingMocks ? Object.fromEntries(remainingEntries) : undefined,
59
90
  nodeSimulationPlan,
60
- simulationFixtures: retainedFixtureEntries.length > 0 ? Object.fromEntries(retainedFixtureEntries) : undefined,
91
+ simulationFixtures,
61
92
  };
62
93
  if (!hasRemainingMocks &&
63
94
  !buildOutcome.hasUnresolvedPlaceholders &&
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile-simulation-plan.js","sourceRoot":"","sources":["../../../src/tools/workflows/reconcile-simulation-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile-simulation-plan.js","sourceRoot":"","sources":["../../../src/tools/workflows/reconcile-simulation-plan.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.buildCredentialMap = buildCredentialMap;
4
4
  exports.buildCredentialResolutionNote = buildCredentialResolutionNote;
5
5
  exports.resolveCredentials = resolveCredentials;
6
6
  const credential_utils_1 = require("./credential-utils");
7
+ const setup_workflow_service_1 = require("./setup-workflow.service");
7
8
  async function buildCredentialMap(credentialService) {
8
9
  const map = new Map();
9
10
  try {
@@ -37,9 +38,12 @@ function buildCredentialResolutionNote(resolvedCredentialsByNode) {
37
38
  sentences.push(`Connected existing credential(s) automatically: ${storedParts.join('; ')}.`);
38
39
  }
39
40
  if (gatewayParts.length > 0) {
40
- sentences.push(`Using n8n Connect (zero-setup) for: ${gatewayParts.join('; ')}.`);
41
+ sentences.push(`Set up automatically with n8n credits (no API key required) for: ${gatewayParts.join('; ')}.`);
41
42
  }
42
43
  sentences.push('These are already set up — do not ask the user to connect or create them, and do not route them to credential setup.');
44
+ if (gatewayParts.length > 0) {
45
+ sentences.push('Briefly let the user know these run on n8n credits and work out of the box, and that they can switch to their own key anytime by editing the credential on the node.');
46
+ }
43
47
  return sentences.join(' ');
44
48
  }
45
49
  async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
@@ -157,6 +161,36 @@ async function resolveCredentials(json, workflowId, ctx, availableCredentials) {
157
161
  mockedNodeNames.push(node.name);
158
162
  }
159
163
  }
164
+ for (const node of json.nodes ?? []) {
165
+ if (!node.name)
166
+ continue;
167
+ const requiredTypes = await (0, setup_workflow_service_1.getValidCredentialTypes)(ctx, node);
168
+ for (const credType of requiredTypes) {
169
+ const creds = (node.credentials ?? {});
170
+ const existing = creds[credType];
171
+ if (existing !== undefined && existing !== null)
172
+ continue;
173
+ const hasStored = (availableCredentials?.get(credType)?.length ?? 0) > 0;
174
+ if (hasStored)
175
+ continue;
176
+ if (!(await isGatewayCredentialType(credType)))
177
+ continue;
178
+ node.credentials ??= {};
179
+ node.credentials[credType] = {
180
+ ...credential_utils_1.AI_GATEWAY_CREDENTIAL,
181
+ name: credential_utils_1.N8N_CONNECT_DISPLAY_NAME,
182
+ };
183
+ resolvedCredentialsByNode[node.name] ??= [];
184
+ resolvedCredentialsByNode[node.name].push({
185
+ type: credType,
186
+ id: null,
187
+ name: credential_utils_1.N8N_CONNECT_DISPLAY_NAME,
188
+ __aiGatewayManaged: true,
189
+ });
190
+ if (!mockedNodeNames.includes(node.name))
191
+ mockedNodeNames.push(node.name);
192
+ }
193
+ }
160
194
  return {
161
195
  mockedNodeNames,
162
196
  mockedCredentialTypes: [...mockedCredentialTypesSet],
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-credentials.js","sourceRoot":"","sources":["../../../src/tools/workflows/resolve-credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-credentials.js","sourceRoot":"","sources":["../../../src/tools/workflows/resolve-credentials.ts"],"names":[],"mappings":"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"}