@n8n/instance-ai 1.20.2 → 1.21.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 (156) hide show
  1. package/dist/agent/aia-model-defaults.d.ts +3 -0
  2. package/dist/agent/aia-model-defaults.js +24 -0
  3. package/dist/agent/aia-model-defaults.js.map +1 -0
  4. package/dist/agent/apply-agent-thinking.js +35 -30
  5. package/dist/agent/apply-agent-thinking.js.map +1 -1
  6. package/dist/agent/instance-agent.js +36 -4
  7. package/dist/agent/instance-agent.js.map +1 -1
  8. package/dist/agent/model-config-identity.d.ts +3 -0
  9. package/dist/agent/model-config-identity.js +45 -0
  10. package/dist/agent/model-config-identity.js.map +1 -0
  11. package/dist/agent/sub-agent-debriefing.d.ts +5 -0
  12. package/dist/agent/system-prompt.d.ts +0 -1
  13. package/dist/agent/system-prompt.js +3 -14
  14. package/dist/agent/system-prompt.js.map +1 -1
  15. package/dist/build.tsbuildinfo +1 -1
  16. package/dist/errors/workflow-editor-locked.error.d.ts +6 -0
  17. package/dist/errors/workflow-editor-locked.error.js +20 -0
  18. package/dist/errors/workflow-editor-locked.error.js.map +1 -0
  19. package/dist/errors/workflow-not-found.error.d.ts +6 -0
  20. package/dist/errors/workflow-not-found.error.js +19 -0
  21. package/dist/errors/workflow-not-found.error.js.map +1 -0
  22. package/dist/index.d.ts +12 -4
  23. package/dist/index.js +16 -5
  24. package/dist/index.js.map +1 -1
  25. package/dist/mcp/connected-mcp-services.d.ts +2 -0
  26. package/dist/mcp/connected-mcp-services.js +20 -0
  27. package/dist/mcp/connected-mcp-services.js.map +1 -0
  28. package/dist/parsers/index.d.ts +2 -2
  29. package/dist/parsers/index.js +6 -1
  30. package/dist/parsers/index.js.map +1 -1
  31. package/dist/parsers/validate-attachments.d.ts +21 -0
  32. package/dist/parsers/validate-attachments.js +52 -1
  33. package/dist/parsers/validate-attachments.js.map +1 -1
  34. package/dist/runtime/run-state-registry.d.ts +3 -0
  35. package/dist/runtime/run-state-registry.js.map +1 -1
  36. package/dist/runtime/terminal-response-guard.js +3 -1
  37. package/dist/runtime/terminal-response-guard.js.map +1 -1
  38. package/dist/storage/workflow-loop-storage.d.ts +29 -0
  39. package/dist/stream/map-chunk.js +2 -0
  40. package/dist/stream/map-chunk.js.map +1 -1
  41. package/dist/stream/work-summary-accumulator.d.ts +8 -0
  42. package/dist/stream/work-summary-accumulator.js +13 -0
  43. package/dist/stream/work-summary-accumulator.js.map +1 -1
  44. package/dist/tools/credentials.tool.js +21 -8
  45. package/dist/tools/credentials.tool.js.map +1 -1
  46. package/dist/tools/data-tables.tool.js +1 -4
  47. package/dist/tools/data-tables.tool.js.map +1 -1
  48. package/dist/tools/evals/eval-config.tool.js +1 -3
  49. package/dist/tools/evals/eval-config.tool.js.map +1 -1
  50. package/dist/tools/evals/evals.tool.js +2 -3
  51. package/dist/tools/evals/evals.tool.js.map +1 -1
  52. package/dist/tools/executions.tool.js +11 -4
  53. package/dist/tools/executions.tool.js.map +1 -1
  54. package/dist/tools/filesystem/create-tools-from-mcp-server.d.ts +11 -1
  55. package/dist/tools/filesystem/create-tools-from-mcp-server.js +48 -9
  56. package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
  57. package/dist/tools/mcp-servers.tool.js +164 -26
  58. package/dist/tools/mcp-servers.tool.js.map +1 -1
  59. package/dist/tools/nodes/preferred-chat-model.d.ts +10 -0
  60. package/dist/tools/nodes/preferred-chat-model.js +49 -0
  61. package/dist/tools/nodes/preferred-chat-model.js.map +1 -1
  62. package/dist/tools/nodes.tool.js +2 -4
  63. package/dist/tools/nodes.tool.js.map +1 -1
  64. package/dist/tools/orchestration/build-agent.tool.js +1 -1
  65. package/dist/tools/orchestration/build-agent.tool.js.map +1 -1
  66. package/dist/tools/orchestration/complete-checkpoint.tool.js +41 -7
  67. package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -1
  68. package/dist/tools/orchestration/plan.tool.d.ts +4 -0
  69. package/dist/tools/orchestration/plan.tool.js +1 -3
  70. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  71. package/dist/tools/workflows/build-workflow.tool.d.ts +3 -0
  72. package/dist/tools/workflows/build-workflow.tool.js +133 -49
  73. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  74. package/dist/tools/workflows/credential-utils.d.ts +2 -1
  75. package/dist/tools/workflows/credential-utils.js +1 -11
  76. package/dist/tools/workflows/credential-utils.js.map +1 -1
  77. package/dist/tools/workflows/observed-workflow-checksums.d.ts +4 -0
  78. package/dist/tools/workflows/observed-workflow-checksums.js +82 -0
  79. package/dist/tools/workflows/observed-workflow-checksums.js.map +1 -0
  80. package/dist/tools/workflows/resolve-credentials.js +29 -5
  81. package/dist/tools/workflows/resolve-credentials.js.map +1 -1
  82. package/dist/tools/workflows/setup-skip-state.d.ts +28 -0
  83. package/dist/tools/workflows/setup-skip-state.js +97 -0
  84. package/dist/tools/workflows/setup-skip-state.js.map +1 -0
  85. package/dist/tools/workflows/setup-workflow.schema.d.ts +8 -0
  86. package/dist/tools/workflows/setup-workflow.schema.js +1 -0
  87. package/dist/tools/workflows/setup-workflow.schema.js.map +1 -1
  88. package/dist/tools/workflows/setup-workflow.service.js +7 -7
  89. package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
  90. package/dist/tools/workflows/summarize-workflow.js +1 -1
  91. package/dist/tools/workflows/summarize-workflow.js.map +1 -1
  92. package/dist/tools/workflows/workflow-build-remediation.d.ts +2 -0
  93. package/dist/tools/workflows/workflow-build-remediation.js +29 -7
  94. package/dist/tools/workflows/workflow-build-remediation.js.map +1 -1
  95. package/dist/tools/workflows/workflow-build-routing.d.ts +1 -0
  96. package/dist/tools/workflows/workflow-build-routing.js +14 -3
  97. package/dist/tools/workflows/workflow-build-routing.js.map +1 -1
  98. package/dist/tools/workflows/workflow-file-bindings.js +2 -0
  99. package/dist/tools/workflows/workflow-file-bindings.js.map +1 -1
  100. package/dist/tools/workflows/workflow-json-utils.d.ts +3 -0
  101. package/dist/tools/workflows/workflow-json-utils.js +107 -0
  102. package/dist/tools/workflows/workflow-json-utils.js.map +1 -1
  103. package/dist/tools/workflows/workflow-node-diff.d.ts +4 -0
  104. package/dist/tools/workflows/workflow-node-diff.js +125 -0
  105. package/dist/tools/workflows/workflow-node-diff.js.map +1 -0
  106. package/dist/tools/workflows.tool.js +147 -12
  107. package/dist/tools/workflows.tool.js.map +1 -1
  108. package/dist/tools/workspace.tool.js +1 -3
  109. package/dist/tools/workspace.tool.js.map +1 -1
  110. package/dist/types.d.ts +27 -9
  111. package/dist/types.js.map +1 -1
  112. package/dist/utils/custom-model-defaults.d.ts +15 -0
  113. package/dist/utils/custom-model-defaults.js +81 -0
  114. package/dist/utils/custom-model-defaults.js.map +1 -0
  115. package/dist/utils/eval-agents.d.ts +1 -0
  116. package/dist/utils/eval-agents.js +34 -6
  117. package/dist/utils/eval-agents.js.map +1 -1
  118. package/dist/utils/modal-session.d.ts +11 -0
  119. package/dist/utils/modal-session.js +52 -0
  120. package/dist/utils/modal-session.js.map +1 -0
  121. package/dist/utils/parse-model-headers.d.ts +1 -0
  122. package/dist/utils/parse-model-headers.js +28 -0
  123. package/dist/utils/parse-model-headers.js.map +1 -0
  124. package/dist/workflow-loop/guidance.js +6 -0
  125. package/dist/workflow-loop/guidance.js.map +1 -1
  126. package/dist/workflow-loop/verification-obligation.js +9 -0
  127. package/dist/workflow-loop/verification-obligation.js.map +1 -1
  128. package/dist/workflow-loop/workflow-loop-controller.js +6 -0
  129. package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
  130. package/dist/workflow-loop/workflow-loop-state.d.ts +39 -0
  131. package/dist/workflow-loop/workflow-loop-state.js +9 -1
  132. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  133. package/dist/workspace/lazy-runtime-workspace.d.ts +0 -1
  134. package/dist/workspace/lazy-runtime-workspace.js +2 -17
  135. package/dist/workspace/lazy-runtime-workspace.js.map +1 -1
  136. package/dist/workspace/pack-workspace-sdk.d.ts +1 -1
  137. package/dist/workspace/pack-workspace-sdk.js +16 -4
  138. package/dist/workspace/pack-workspace-sdk.js.map +1 -1
  139. package/dist/workspace/sandbox-setup.js +1 -1
  140. package/dist/workspace/sandbox-setup.js.map +1 -1
  141. package/knowledge-base/reference/workflow-builder-guardrails.md +20 -0
  142. package/package.json +19 -17
  143. package/skills/intent-recognition/SKILL.md +9 -1
  144. package/skills/one-off-operations/SKILL.md +108 -0
  145. package/skills/planned-task-runtime/SKILL.md +3 -2
  146. package/skills/post-build-flow/SKILL.md +98 -14
  147. package/skills/workflow-builder/SKILL.md +29 -2
  148. package/dist/tools/nodes/node-search-engine.d.ts +0 -21
  149. package/dist/tools/nodes/node-search-engine.js +0 -314
  150. package/dist/tools/nodes/node-search-engine.js.map +0 -1
  151. package/dist/tools/nodes/node-search-engine.types.d.ts +0 -50
  152. package/dist/tools/nodes/node-search-engine.types.js +0 -18
  153. package/dist/tools/nodes/node-search-engine.types.js.map +0 -1
  154. package/dist/workspace/scoped-workspace.d.ts +0 -2
  155. package/dist/workspace/scoped-workspace.js +0 -141
  156. package/dist/workspace/scoped-workspace.js.map +0 -1
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INVALID_WORKFLOW_ID_GUIDANCE = void 0;
3
4
  exports.createCodeFixableRemediation = createCodeFixableRemediation;
4
5
  exports.createWorkflowModifiedExternallyRemediation = createWorkflowModifiedExternallyRemediation;
6
+ exports.createWorkflowLockedByEditorRemediation = createWorkflowLockedByEditorRemediation;
5
7
  exports.createSaveFailureRemediation = createSaveFailureRemediation;
6
8
  exports.createSourceCompileRemediation = createSourceCompileRemediation;
9
+ const workflow_editor_locked_error_1 = require("../../errors/workflow-editor-locked.error");
10
+ const workflow_not_found_error_1 = require("../../errors/workflow-not-found.error");
7
11
  const workflow_save_conflict_error_1 = require("../../errors/workflow-save-conflict.error");
8
12
  const remediation_1 = require("../../workflow-loop/remediation");
9
- function isWorkflowNotFoundError(error) {
10
- const message = error instanceof Error ? error.message : String(error);
11
- return /workflow not found/i.test(message);
12
- }
13
+ exports.INVALID_WORKFLOW_ID_GUIDANCE = 'Call build-workflow again with the same filePath and omit workflowId to create a new workflow only if that value was never a real n8n workflow id (for example an SDK slug). ' +
14
+ 'If you meant an existing workflow, confirm the id with workflows() first — missing and inaccessible look the same. ' +
15
+ 'workflowId must be a real n8n workflow id from a prior build-workflow or workflows() tool result — never the first argument of workflow(slug, name).';
13
16
  function getFailureText(error) {
14
17
  return (error instanceof Error ? error.message : String(error)).toLowerCase();
15
18
  }
@@ -46,10 +49,21 @@ function createWorkflowModifiedExternallyRemediation() {
46
49
  guidance: 'The workflow was modified outside this conversation since your last save (canvas edit, setup, credential change, or version revert). Call workflows(action="get-as-code", workflowId), re-apply your intended change to the returned code, write it to the same filePath, then call build-workflow again with the same filePath.',
47
50
  });
48
51
  }
52
+ function createWorkflowLockedByEditorRemediation() {
53
+ return (0, remediation_1.createRemediation)({
54
+ category: 'blocked',
55
+ shouldEdit: false,
56
+ reason: 'workflow_locked_by_editor',
57
+ guidance: 'The workflow could not be saved because someone is editing it in the n8n editor right now — saving would overwrite their work. Stop editing the source and tell the user to finish or close their editing session, then retry.',
58
+ });
59
+ }
49
60
  function createSaveFailureRemediation(error, hasBoundWorkflowId) {
50
61
  if (error instanceof workflow_save_conflict_error_1.WorkflowSaveConflictError) {
51
62
  return createWorkflowModifiedExternallyRemediation();
52
63
  }
64
+ if ((0, workflow_editor_locked_error_1.isWorkflowEditorLockedError)(error)) {
65
+ return createWorkflowLockedByEditorRemediation();
66
+ }
53
67
  const text = getFailureText(error);
54
68
  if (isCredentialSaveFailure(text)) {
55
69
  return (0, remediation_1.createRemediation)({
@@ -59,12 +73,20 @@ function createSaveFailureRemediation(error, hasBoundWorkflowId) {
59
73
  guidance: 'Workflow save failed because a credential is missing or inaccessible. Stop code edits and route the workflow through setup.',
60
74
  });
61
75
  }
62
- if (hasBoundWorkflowId && isWorkflowNotFoundError(error)) {
76
+ if ((0, workflow_not_found_error_1.isWorkflowNotFoundError)(error)) {
77
+ if (hasBoundWorkflowId) {
78
+ return (0, remediation_1.createRemediation)({
79
+ category: 'blocked',
80
+ shouldEdit: false,
81
+ reason: 'bound_workflow_not_found',
82
+ guidance: 'The saved workflow bound to this source file no longer exists. Stop editing this source and explain that the workflow must be restored or a new build started.',
83
+ });
84
+ }
63
85
  return (0, remediation_1.createRemediation)({
64
86
  category: 'blocked',
65
87
  shouldEdit: false,
66
- reason: 'bound_workflow_not_found',
67
- guidance: 'The saved workflow bound to this source file no longer exists. Stop editing this source and explain that the workflow must be restored or a new build started.',
88
+ reason: 'workflow_id_not_found',
89
+ guidance: exports.INVALID_WORKFLOW_ID_GUIDANCE,
68
90
  });
69
91
  }
70
92
  if (isPermissionSaveFailure(text)) {
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-build-remediation.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-remediation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-build-remediation.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-remediation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { WorkflowBuildOutcome } from '../../workflow-loop/workflow-loop-state';
2
2
  type WorkflowBuildRoutingInput = Omit<WorkflowBuildOutcome, 'verificationReadiness' | 'setupRequirement'> & {
3
3
  workflowNeedsSetup?: boolean;
4
+ onlySkippedSetupRemains?: boolean;
4
5
  };
5
6
  export declare function withDeterministicRouting(outcome: WorkflowBuildRoutingInput): WorkflowBuildOutcome;
6
7
  export {};
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withDeterministicRouting = withDeterministicRouting;
4
4
  const workflow_json_utils_1 = require("./workflow-json-utils");
5
5
  function hasSetupCredentials(outcome) {
6
- return ((outcome.mockedCredentialTypes?.length ?? 0) > 0 ||
7
- Object.keys(outcome.mockedCredentialsByNode ?? {}).length > 0);
6
+ const mockedNodeNames = Object.keys(outcome.mockedCredentialsByNode ?? {});
7
+ if (mockedNodeNames.length > 0) {
8
+ const scope = outcome.changedNodeNames;
9
+ return mockedNodeNames.some((nodeName) => !scope || scope.includes(nodeName));
10
+ }
11
+ return (outcome.mockedCredentialTypes?.length ?? 0) > 0;
8
12
  }
9
13
  function determineVerificationReadiness(outcome) {
10
14
  if (!outcome.submitted) {
@@ -34,6 +38,13 @@ function determineSetupRequirement(outcome) {
34
38
  if (!outcome.submitted || !outcome.workflowId) {
35
39
  return { status: 'not_required' };
36
40
  }
41
+ if (outcome.onlySkippedSetupRemains) {
42
+ return {
43
+ status: 'not_required',
44
+ reason: 'skipped-by-user',
45
+ guidance: 'The only remaining setup is for credentials the user skipped earlier in this conversation. Do not open the setup card: say what stays unconfigured and what that means at runtime, and offer to set it up when they want.',
46
+ };
47
+ }
37
48
  if (outcome.hasUnresolvedPlaceholders) {
38
49
  return {
39
50
  status: 'required',
@@ -58,7 +69,7 @@ function determineSetupRequirement(outcome) {
58
69
  return { status: 'not_required' };
59
70
  }
60
71
  function withDeterministicRouting(outcome) {
61
- const { workflowNeedsSetup, ...buildOutcome } = outcome;
72
+ const { workflowNeedsSetup, onlySkippedSetupRemains, ...buildOutcome } = outcome;
62
73
  return {
63
74
  ...buildOutcome,
64
75
  verificationReadiness: determineVerificationReadiness(outcome),
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-build-routing.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-routing.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAc1D,SAAS,mBAAmB,CAC3B,OAAwF;IAExF,OAAO,CACN,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAC7D,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACtC,OAAqF;IAErF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,qEAAqE;SAC/E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,mDAAmD;SAC7D,CAAC;IACH,CAAC;IAMD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uCAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,mFAAmF;SAC7F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,yBAAyB,CACjC,OAQC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;QACvC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,0EAA0E;SACpF,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE,wEAAwE;SAClF,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,kFAAkF;SAC5F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC;AAED,kCAAyC,OAAkC;IAC1E,MAAM,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IACxD,OAAO;QACN,GAAG,YAAY;QACf,qBAAqB,EAAE,8BAA8B,CAAC,OAAO,CAAC;QAC9D,gBAAgB,EAAE,yBAAyB,CAAC,OAAO,CAAC;KACpD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"workflow-build-routing.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-build-routing.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAiB1D,SAAS,mBAAmB,CAC3B,OAGC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IAG3E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACvC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,8BAA8B,CACtC,OAAqF;IAErF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,qEAAqE;SAC/E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,mDAAmD;SAC7D,CAAC;IACH,CAAC;IAMD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uCAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO;YACN,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,mFAAmF;SAC7F,CAAC;IACH,CAAC;IAOD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,yBAAyB,CACjC,OAUC;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACnC,CAAC;IAKD,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACrC,OAAO;YACN,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EACP,2NAA2N;SAC5N,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;QACvC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,yBAAyB;YACjC,QAAQ,EAAE,0EAA0E;SACpF,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,oBAAoB;YAC5B,QAAQ,EAAE,wEAAwE;SAClF,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,OAAO;YACN,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,sBAAsB;YAC9B,QAAQ,EAAE,kFAAkF;SAC5F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC;AAED,kCAAyC,OAAkC;IAC1E,MAAM,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IACjF,OAAO;QACN,GAAG,YAAY;QACf,qBAAqB,EAAE,8BAA8B,CAAC,OAAO,CAAC;QAC9D,gBAAgB,EAAE,yBAAyB,CAAC,OAAO,CAAC;KACpD,CAAC;AACH,CAAC"}
@@ -10,6 +10,7 @@ exports.refreshWorkflowSourceFileBindingFromSave = refreshWorkflowSourceFileBind
10
10
  exports.readWorkflowSourceFile = readWorkflowSourceFile;
11
11
  const node_crypto_1 = require("node:crypto");
12
12
  const zod_1 = require("zod");
13
+ const observed_workflow_checksums_1 = require("./observed-workflow-checksums");
13
14
  const thread_patch_1 = require("../../storage/thread-patch");
14
15
  const workspace_files_1 = require("../../workspace/workspace-files");
15
16
  const workspace_paths_1 = require("../../workspace/workspace-paths");
@@ -111,6 +112,7 @@ async function refreshWorkflowSourceFileBindingFromWorkflow(context, workflowId)
111
112
  });
112
113
  }
113
114
  async function refreshWorkflowSourceFileBindingFromSave(context, workflowId, saved) {
115
+ await (0, observed_workflow_checksums_1.rememberObservedWorkflowChecksum)(context, workflowId, saved.checksum);
114
116
  const threadBindings = await readThreadBindings(context);
115
117
  const fallback = getFallbackBindings(context);
116
118
  const entries = [];
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-file-bindings.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-file-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-file-bindings.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-file-bindings.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,8 @@ export declare function isWaitGateNode(node: WorkflowJSON['nodes'][number]): boo
6
6
  export declare function nodeCanReachItself(json: WorkflowJSON, nodeName: string): boolean;
7
7
  export declare function getReferencedWorkflowIds(json: WorkflowJSON): string[];
8
8
  export declare function ensureWebhookIds(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext): Promise<void>;
9
+ export declare function ensureUniqueNodeIds(json: WorkflowJSON): void;
10
+ export declare function preserveExistingNodeIds(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext): Promise<void>;
11
+ export declare function hasLostAllSavedNodeIds(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext): Promise<boolean>;
9
12
  export declare function preserveExistingNodeGroupIds(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext): Promise<void>;
10
13
  export declare function preserveExistingSetupValues(json: WorkflowJSON, workflowId: string | undefined, ctx: InstanceAiContext): Promise<void>;
@@ -6,6 +6,9 @@ exports.isWaitGateNode = isWaitGateNode;
6
6
  exports.nodeCanReachItself = nodeCanReachItself;
7
7
  exports.getReferencedWorkflowIds = getReferencedWorkflowIds;
8
8
  exports.ensureWebhookIds = ensureWebhookIds;
9
+ exports.ensureUniqueNodeIds = ensureUniqueNodeIds;
10
+ exports.preserveExistingNodeIds = preserveExistingNodeIds;
11
+ exports.hasLostAllSavedNodeIds = hasLostAllSavedNodeIds;
9
12
  exports.preserveExistingNodeGroupIds = preserveExistingNodeGroupIds;
10
13
  exports.preserveExistingSetupValues = preserveExistingSetupValues;
11
14
  const is_record_1 = require("@n8n/utils/is-record");
@@ -128,6 +131,110 @@ async function ensureWebhookIds(json, workflowId, ctx) {
128
131
  }
129
132
  }
130
133
  }
134
+ function ensureUniqueNodeIds(json) {
135
+ if (!json.nodes?.length)
136
+ return;
137
+ const claimedIds = new Set();
138
+ const finalIdsByOriginalId = new Map();
139
+ let reassignedAny = false;
140
+ const recordOutcome = (originalId, finalId) => {
141
+ const outcomes = finalIdsByOriginalId.get(originalId);
142
+ if (outcomes)
143
+ outcomes.push(finalId);
144
+ else
145
+ finalIdsByOriginalId.set(originalId, [finalId]);
146
+ };
147
+ for (const node of json.nodes) {
148
+ const originalId = typeof node.id === 'string' ? node.id : undefined;
149
+ if (node.id && !claimedIds.has(node.id)) {
150
+ claimedIds.add(node.id);
151
+ if (originalId !== undefined)
152
+ recordOutcome(originalId, node.id);
153
+ continue;
154
+ }
155
+ let nextId = (0, node_crypto_1.randomUUID)();
156
+ while (claimedIds.has(nextId))
157
+ nextId = (0, node_crypto_1.randomUUID)();
158
+ claimedIds.add(nextId);
159
+ node.id = nextId;
160
+ reassignedAny = true;
161
+ if (originalId !== undefined)
162
+ recordOutcome(originalId, nextId);
163
+ }
164
+ if (!reassignedAny)
165
+ return;
166
+ for (const group of json.nodeGroups ?? []) {
167
+ const seenCounts = new Map();
168
+ group.nodeIds = group.nodeIds.map((nodeId) => {
169
+ const outcomes = finalIdsByOriginalId.get(nodeId);
170
+ if (!outcomes)
171
+ return nodeId;
172
+ const occurrence = seenCounts.get(nodeId) ?? 0;
173
+ seenCounts.set(nodeId, occurrence + 1);
174
+ return outcomes[occurrence] ?? nodeId;
175
+ });
176
+ }
177
+ }
178
+ async function preserveExistingNodeIds(json, workflowId, ctx) {
179
+ if (!workflowId || !json.nodes?.length)
180
+ return;
181
+ let existing;
182
+ try {
183
+ existing = await ctx.workflowService.getAsWorkflowJSON(workflowId);
184
+ }
185
+ catch (error) {
186
+ const message = error instanceof Error ? error.message : String(error);
187
+ throw new Error(`Failed to load existing workflow ${workflowId} to preserve node IDs: ${message}`, { cause: error });
188
+ }
189
+ const savedIds = new Set();
190
+ const savedIdsByTypeAndName = new Map();
191
+ for (const node of existing.nodes ?? []) {
192
+ if (!node.id)
193
+ continue;
194
+ savedIds.add(node.id);
195
+ if (node.name && node.type)
196
+ savedIdsByTypeAndName.set(`${node.type}:${node.name}`, node.id);
197
+ }
198
+ if (savedIds.size === 0)
199
+ return;
200
+ const claimedSavedIds = new Set();
201
+ for (const node of json.nodes) {
202
+ if (node.id && savedIds.has(node.id))
203
+ claimedSavedIds.add(node.id);
204
+ }
205
+ const recoveredIds = new Map();
206
+ for (const node of json.nodes) {
207
+ if (!node.name || !node.type || (node.id && savedIds.has(node.id)))
208
+ continue;
209
+ const savedId = savedIdsByTypeAndName.get(`${node.type}:${node.name}`);
210
+ if (!savedId || claimedSavedIds.has(savedId))
211
+ continue;
212
+ claimedSavedIds.add(savedId);
213
+ if (node.id)
214
+ recoveredIds.set(node.id, savedId);
215
+ node.id = savedId;
216
+ }
217
+ if (recoveredIds.size === 0)
218
+ return;
219
+ for (const group of json.nodeGroups ?? []) {
220
+ group.nodeIds = group.nodeIds.map((nodeId) => recoveredIds.get(nodeId) ?? nodeId);
221
+ }
222
+ }
223
+ async function hasLostAllSavedNodeIds(json, workflowId, ctx) {
224
+ if (!workflowId || !json.nodes?.length)
225
+ return false;
226
+ let savedIds;
227
+ try {
228
+ const existing = await ctx.workflowService.getAsWorkflowJSON(workflowId);
229
+ savedIds = new Set((existing.nodes ?? []).map((node) => node.id).filter(Boolean));
230
+ }
231
+ catch {
232
+ return false;
233
+ }
234
+ if (savedIds.size === 0)
235
+ return false;
236
+ return json.nodes.every((node) => !node.id || !savedIds.has(node.id));
237
+ }
131
238
  async function preserveExistingNodeGroupIds(json, workflowId, ctx) {
132
239
  if (!workflowId || !json.nodeGroups?.length)
133
240
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-json-utils.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-json-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-json-utils.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-json-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { WorkflowJSON } from '@n8n/workflow-sdk';
2
+ import type { ValidationWarning } from './workflow-validation-warnings';
3
+ export declare function computeChangedNodeNames(workflow: WorkflowJSON, savedWorkflow: WorkflowJSON): string[];
4
+ export declare function downgradeUnchangedNodeBlockers(warnings: ValidationWarning[], workflow: WorkflowJSON, savedWorkflow: WorkflowJSON | undefined): ValidationWarning[];
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeChangedNodeNames = computeChangedNodeNames;
4
+ exports.downgradeUnchangedNodeBlockers = downgradeUnchangedNodeBlockers;
5
+ const is_record_1 = require("@n8n/utils/is-record");
6
+ const node_util_1 = require("node:util");
7
+ function counterpartFinder(savedWorkflow) {
8
+ const byId = new Map();
9
+ const byName = new Map();
10
+ for (const node of savedWorkflow.nodes ?? []) {
11
+ if (node.id)
12
+ byId.set(node.id, node);
13
+ if (node.name)
14
+ byName.set(node.name, node);
15
+ }
16
+ return (node) => (node.id ? byId.get(node.id) : undefined) ?? (node.name ? byName.get(node.name) : undefined);
17
+ }
18
+ function nodeKey(node) {
19
+ if (node.id)
20
+ return node.id;
21
+ return node.name ?? '';
22
+ }
23
+ function connectionSignatures(workflow) {
24
+ const keyByName = new Map();
25
+ for (const node of workflow.nodes ?? []) {
26
+ if (node.name)
27
+ keyByName.set(node.name, nodeKey(node));
28
+ }
29
+ const edgesByKey = new Map();
30
+ const add = (key, edge) => {
31
+ const list = edgesByKey.get(key) ?? [];
32
+ list.push(edge);
33
+ edgesByKey.set(key, list);
34
+ };
35
+ for (const [sourceName, byType] of Object.entries(workflow.connections ?? {})) {
36
+ if (!(0, is_record_1.isRecord)(byType))
37
+ continue;
38
+ const sourceKey = keyByName.get(sourceName) ?? sourceName;
39
+ for (const [connectionType, outputs] of Object.entries(byType)) {
40
+ if (!Array.isArray(outputs))
41
+ continue;
42
+ outputs.forEach((targets, outputIndex) => {
43
+ if (!Array.isArray(targets))
44
+ return;
45
+ for (const target of targets) {
46
+ if (!(0, is_record_1.isRecord)(target) || typeof target.node !== 'string')
47
+ continue;
48
+ const targetKey = keyByName.get(target.node) ?? target.node;
49
+ const inputIndex = typeof target.index === 'number' ? target.index : 0;
50
+ const edge = `${connectionType}[${outputIndex}] ${sourceKey} > ${targetKey}[${inputIndex}]`;
51
+ add(sourceKey, `out ${edge}`);
52
+ add(targetKey, `in ${edge}`);
53
+ }
54
+ });
55
+ }
56
+ }
57
+ for (const list of edgesByKey.values())
58
+ list.sort();
59
+ return edgesByKey;
60
+ }
61
+ function connectionsUnchanged(node, saved, builtSignatures, savedSignatures) {
62
+ return (0, node_util_1.isDeepStrictEqual)(builtSignatures.get(nodeKey(node)) ?? [], savedSignatures.get(nodeKey(saved)) ?? []);
63
+ }
64
+ function parametersUnchanged(node, saved) {
65
+ return (node.type === saved.type &&
66
+ (node.typeVersion ?? 1) === (saved.typeVersion ?? 1) &&
67
+ (0, node_util_1.isDeepStrictEqual)(node.parameters ?? {}, saved.parameters ?? {}));
68
+ }
69
+ function nodeUnchanged(node, saved) {
70
+ return (parametersUnchanged(node, saved) &&
71
+ node.name === saved.name &&
72
+ (0, node_util_1.isDeepStrictEqual)(node.credentials ?? {}, saved.credentials ?? {}) &&
73
+ (node.disabled ?? false) === (saved.disabled ?? false));
74
+ }
75
+ function computeChangedNodeNames(workflow, savedWorkflow) {
76
+ const findCounterpart = counterpartFinder(savedWorkflow);
77
+ const builtSignatures = connectionSignatures(workflow);
78
+ const savedSignatures = connectionSignatures(savedWorkflow);
79
+ const changed = [];
80
+ for (const node of workflow.nodes ?? []) {
81
+ if (!node.name)
82
+ continue;
83
+ const saved = findCounterpart(node);
84
+ if (!saved ||
85
+ !nodeUnchanged(node, saved) ||
86
+ !connectionsUnchanged(node, saved, builtSignatures, savedSignatures)) {
87
+ changed.push(node.name);
88
+ }
89
+ }
90
+ return changed;
91
+ }
92
+ function downgradeUnchangedNodeBlockers(warnings, workflow, savedWorkflow) {
93
+ if (!savedWorkflow)
94
+ return warnings;
95
+ const findCounterpart = counterpartFinder(savedWorkflow);
96
+ const builtSignatures = connectionSignatures(workflow);
97
+ const savedSignatures = connectionSignatures(savedWorkflow);
98
+ const unchangedNames = new Set();
99
+ for (const node of workflow.nodes ?? []) {
100
+ if (!node.name)
101
+ continue;
102
+ const saved = findCounterpart(node);
103
+ if (saved &&
104
+ parametersUnchanged(node, saved) &&
105
+ connectionsUnchanged(node, saved, builtSignatures, savedSignatures)) {
106
+ unchangedNames.add(node.name);
107
+ }
108
+ }
109
+ if (unchangedNames.size === 0)
110
+ return warnings;
111
+ return warnings.map((warning) => {
112
+ if (warning.severity === 'informational')
113
+ return warning;
114
+ if (warning.code !== 'INVALID_PARAMETER')
115
+ return warning;
116
+ if (!warning.nodeName || !unchangedNames.has(warning.nodeName))
117
+ return warning;
118
+ return {
119
+ ...warning,
120
+ severity: 'informational',
121
+ message: `${warning.message} (pre-existing node, unchanged by this build — not blocking)`,
122
+ };
123
+ });
124
+ }
125
+ //# sourceMappingURL=workflow-node-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-node-diff.js","sourceRoot":"","sources":["../../../src/tools/workflows/workflow-node-diff.ts"],"names":[],"mappings":"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"}