@n8n/instance-ai 1.4.0 → 1.5.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 (149) hide show
  1. package/dist/agent/instance-agent.js +0 -1
  2. package/dist/agent/instance-agent.js.map +1 -1
  3. package/dist/agent/sub-agent-debriefing.d.ts +2 -2
  4. package/dist/agent/system-prompt.js +36 -14
  5. package/dist/agent/system-prompt.js.map +1 -1
  6. package/dist/build.tsbuildinfo +1 -1
  7. package/dist/constants/model-settings.d.ts +3 -0
  8. package/dist/constants/model-settings.js +7 -0
  9. package/dist/constants/model-settings.js.map +1 -0
  10. package/dist/index.d.ts +4 -2
  11. package/dist/index.js +4 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/logger.d.ts +6 -0
  14. package/dist/planned-tasks/planned-task-permissions.d.ts +2 -0
  15. package/dist/planned-tasks/planned-task-permissions.js +8 -2
  16. package/dist/planned-tasks/planned-task-permissions.js.map +1 -1
  17. package/dist/planned-tasks/planned-task-service.d.ts +14 -1
  18. package/dist/planned-tasks/planned-task-service.js +138 -2
  19. package/dist/planned-tasks/planned-task-service.js.map +1 -1
  20. package/dist/runtime/background-task-manager.d.ts +25 -1
  21. package/dist/runtime/background-task-manager.js +66 -2
  22. package/dist/runtime/background-task-manager.js.map +1 -1
  23. package/dist/runtime/builder-sandbox-session-registry.d.ts +45 -0
  24. package/dist/runtime/builder-sandbox-session-registry.js +159 -0
  25. package/dist/runtime/builder-sandbox-session-registry.js.map +1 -0
  26. package/dist/runtime/run-state-registry.d.ts +7 -4
  27. package/dist/runtime/run-state-registry.js +9 -0
  28. package/dist/runtime/run-state-registry.js.map +1 -1
  29. package/dist/storage/planned-task-storage.js +2 -1
  30. package/dist/storage/planned-task-storage.js.map +1 -1
  31. package/dist/storage/workflow-loop-storage.d.ts +292 -12
  32. package/dist/stream/consume-with-hitl.d.ts +1 -0
  33. package/dist/stream/consume-with-hitl.js +1 -0
  34. package/dist/stream/consume-with-hitl.js.map +1 -1
  35. package/dist/tools/data-tables.tool.js +60 -22
  36. package/dist/tools/data-tables.tool.js.map +1 -1
  37. package/dist/tools/executions.tool.js +4 -1
  38. package/dist/tools/executions.tool.js.map +1 -1
  39. package/dist/tools/index.d.ts +1 -2
  40. package/dist/tools/index.js +2 -3
  41. package/dist/tools/index.js.map +1 -1
  42. package/dist/tools/orchestration/add-plan-item.tool.js +3 -1
  43. package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -1
  44. package/dist/tools/orchestration/blueprint-accumulator.d.ts +4 -1
  45. package/dist/tools/orchestration/blueprint-accumulator.js +28 -0
  46. package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -1
  47. package/dist/tools/orchestration/blueprint.schema.d.ts +60 -15
  48. package/dist/tools/orchestration/blueprint.schema.js +15 -1
  49. package/dist/tools/orchestration/blueprint.schema.js.map +1 -1
  50. package/dist/tools/orchestration/build-workflow-agent.prompt.js +41 -12
  51. package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
  52. package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +51 -3
  53. package/dist/tools/orchestration/build-workflow-agent.tool.js +837 -272
  54. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
  55. package/dist/tools/orchestration/builder-memory-compaction.d.ts +38 -0
  56. package/dist/tools/orchestration/builder-memory-compaction.js +146 -0
  57. package/dist/tools/orchestration/builder-memory-compaction.js.map +1 -0
  58. package/dist/tools/orchestration/complete-checkpoint.tool.d.ts +2 -0
  59. package/dist/tools/orchestration/complete-checkpoint.tool.js +76 -0
  60. package/dist/tools/orchestration/complete-checkpoint.tool.js.map +1 -0
  61. package/dist/tools/orchestration/data-table-agent.tool.js +33 -17
  62. package/dist/tools/orchestration/data-table-agent.tool.js.map +1 -1
  63. package/dist/tools/orchestration/delegate.tool.js +32 -16
  64. package/dist/tools/orchestration/delegate.tool.js.map +1 -1
  65. package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -1
  66. package/dist/tools/orchestration/plan-agent-prompt.js +6 -0
  67. package/dist/tools/orchestration/plan-agent-prompt.js.map +1 -1
  68. package/dist/tools/orchestration/plan-with-agent.tool.d.ts +8 -0
  69. package/dist/tools/orchestration/plan-with-agent.tool.js +43 -12
  70. package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -1
  71. package/dist/tools/orchestration/plan.tool.js +17 -1
  72. package/dist/tools/orchestration/plan.tool.js.map +1 -1
  73. package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +40 -2
  74. package/dist/tools/orchestration/report-verification-verdict.tool.js +85 -6
  75. package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
  76. package/dist/tools/orchestration/research-with-agent.tool.js +32 -16
  77. package/dist/tools/orchestration/research-with-agent.tool.js.map +1 -1
  78. package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +8 -2
  79. package/dist/tools/orchestration/verify-built-workflow.tool.js +476 -6
  80. package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
  81. package/dist/tools/research.tool.js +2 -2
  82. package/dist/tools/research.tool.js.map +1 -1
  83. package/dist/tools/templates.tool.js +5 -90
  84. package/dist/tools/templates.tool.js.map +1 -1
  85. package/dist/tools/web-research/sanitize-web-content.d.ts +0 -1
  86. package/dist/tools/web-research/sanitize-web-content.js +0 -9
  87. package/dist/tools/web-research/sanitize-web-content.js.map +1 -1
  88. package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +2 -2
  89. package/dist/tools/workflows/build-workflow.tool.d.ts +2 -2
  90. package/dist/tools/workflows/build-workflow.tool.js +3 -1
  91. package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
  92. package/dist/tools/workflows/materialize-node-type.tool.d.ts +8 -8
  93. package/dist/tools/workflows/submit-workflow-identity.d.ts +23 -1
  94. package/dist/tools/workflows/submit-workflow-identity.js +92 -5
  95. package/dist/tools/workflows/submit-workflow-identity.js.map +1 -1
  96. package/dist/tools/workflows/submit-workflow.tool.d.ts +48 -3
  97. package/dist/tools/workflows/submit-workflow.tool.js +81 -11
  98. package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
  99. package/dist/tracing/langsmith-tracing.js +8 -3
  100. package/dist/tracing/langsmith-tracing.js.map +1 -1
  101. package/dist/tracing/trace-replay.d.ts +3 -0
  102. package/dist/tracing/trace-replay.js +65 -0
  103. package/dist/tracing/trace-replay.js.map +1 -1
  104. package/dist/types.d.ts +79 -12
  105. package/dist/workflow-builder/parse-validate.d.ts +5 -1
  106. package/dist/workflow-builder/parse-validate.js +4 -3
  107. package/dist/workflow-builder/parse-validate.js.map +1 -1
  108. package/dist/workflow-loop/guidance.js +8 -2
  109. package/dist/workflow-loop/guidance.js.map +1 -1
  110. package/dist/workflow-loop/index.d.ts +3 -2
  111. package/dist/workflow-loop/index.js +9 -1
  112. package/dist/workflow-loop/index.js.map +1 -1
  113. package/dist/workflow-loop/remediation.d.ts +13 -0
  114. package/dist/workflow-loop/remediation.js +36 -0
  115. package/dist/workflow-loop/remediation.js.map +1 -0
  116. package/dist/workflow-loop/runtime.js +7 -0
  117. package/dist/workflow-loop/runtime.js.map +1 -1
  118. package/dist/workflow-loop/workflow-loop-controller.d.ts +1 -1
  119. package/dist/workflow-loop/workflow-loop-controller.js +196 -29
  120. package/dist/workflow-loop/workflow-loop-controller.js.map +1 -1
  121. package/dist/workflow-loop/workflow-loop-state.d.ts +338 -8
  122. package/dist/workflow-loop/workflow-loop-state.js +44 -1
  123. package/dist/workflow-loop/workflow-loop-state.js.map +1 -1
  124. package/dist/workflow-loop/workflow-task-service.d.ts +2 -1
  125. package/dist/workflow-loop/workflow-task-service.js +4 -0
  126. package/dist/workflow-loop/workflow-task-service.js.map +1 -1
  127. package/dist/workspace/builder-sandbox-factory.d.ts +3 -2
  128. package/dist/workspace/builder-sandbox-factory.js +74 -27
  129. package/dist/workspace/builder-sandbox-factory.js.map +1 -1
  130. package/dist/workspace/create-workspace.d.ts +2 -0
  131. package/dist/workspace/create-workspace.js.map +1 -1
  132. package/dist/workspace/sandbox-setup.js +36 -8
  133. package/dist/workspace/sandbox-setup.js.map +1 -1
  134. package/dist/workspace/snapshot-manager.d.ts +14 -2
  135. package/dist/workspace/snapshot-manager.js +57 -1
  136. package/dist/workspace/snapshot-manager.js.map +1 -1
  137. package/package.json +11 -5
  138. package/dist/tools/templates/template-api.d.ts +0 -21
  139. package/dist/tools/templates/template-api.js +0 -104
  140. package/dist/tools/templates/template-api.js.map +0 -1
  141. package/dist/tools/templates/types.d.ts +0 -52
  142. package/dist/tools/templates/types.js +0 -37
  143. package/dist/tools/templates/types.js.map +0 -1
  144. package/dist/tools/utils/mermaid.utils.d.ts +0 -15
  145. package/dist/tools/utils/mermaid.utils.js +0 -622
  146. package/dist/tools/utils/mermaid.utils.js.map +0 -1
  147. package/dist/tools/utils/node-configuration.utils.d.ts +0 -6
  148. package/dist/tools/utils/node-configuration.utils.js +0 -77
  149. package/dist/tools/utils/node-configuration.utils.js.map +0 -1
@@ -5,26 +5,91 @@ exports.handleBuildOutcome = handleBuildOutcome;
5
5
  exports.handleVerificationVerdict = handleVerificationVerdict;
6
6
  exports.formatAttemptHistory = formatAttemptHistory;
7
7
  const nanoid_1 = require("nanoid");
8
- function createWorkItem(threadId, source, workflowId) {
8
+ const remediation_1 = require("./remediation");
9
+ function createWorkItem(threadId, source, workflowId, runId) {
9
10
  return {
10
11
  workItemId: `wi_${(0, nanoid_1.nanoid)(8)}`,
11
12
  threadId,
13
+ runId,
12
14
  workflowId,
13
15
  phase: 'building',
14
16
  status: 'active',
15
17
  source,
16
18
  rebuildAttempts: 0,
19
+ preSaveSubmitFailures: 0,
20
+ postSubmitRemediationSubmitsUsed: 0,
17
21
  };
18
22
  }
19
23
  function handleBuildOutcome(state, attempts, outcome) {
20
- const attempt = makeAttempt(state, 'build', attempts);
24
+ if (isStaleRunReport(state, outcome.runId)) {
25
+ const attempt = makeAttempt(state, 'build', attempts);
26
+ attempt.result = 'failure';
27
+ return {
28
+ state,
29
+ action: { type: 'ignored', reason: staleRunReportReason(state.runId, outcome.runId) },
30
+ attempt,
31
+ };
32
+ }
33
+ const normalizedState = state;
34
+ const attempt = makeAttempt(normalizedState, 'build', attempts);
35
+ const isRepairSubmit = Boolean(normalizedState.successfulSubmitSeen);
36
+ const postSubmitRemediationSubmitsUsed = isRepairSubmit
37
+ ? (normalizedState.postSubmitRemediationSubmitsUsed ?? 0) + 1
38
+ : (normalizedState.postSubmitRemediationSubmitsUsed ?? 0);
39
+ const remainingSubmitFixes = Math.max(0, remediation_1.MAX_POST_SUBMIT_REMEDIATION_SUBMITS - postSubmitRemediationSubmitsUsed);
40
+ const remediation = withRemainingSubmitFixes(outcome.remediation, remainingSubmitFixes);
41
+ applyRemediationToAttempt(attempt, remediation);
21
42
  if (!outcome.submitted) {
22
- attempt.result = outcome.needsUserInput ? 'blocked' : 'failure';
43
+ const preSaveSubmitFailures = normalizedState.successfulSubmitSeen
44
+ ? (normalizedState.preSaveSubmitFailures ?? 0)
45
+ : (normalizedState.preSaveSubmitFailures ?? 0) + 1;
46
+ const preSaveBudgetExhausted = !normalizedState.successfulSubmitSeen &&
47
+ preSaveSubmitFailures >= remediation_1.MAX_PRE_SAVE_SUBMIT_FAILURES;
48
+ const postSubmitBudgetExhausted = normalizedState.successfulSubmitSeen &&
49
+ postSubmitRemediationSubmitsUsed >= remediation_1.MAX_POST_SUBMIT_REMEDIATION_SUBMITS;
50
+ let terminalRemediation = remediation;
51
+ if (preSaveBudgetExhausted && remediation?.shouldEdit !== false) {
52
+ terminalRemediation = (0, remediation_1.createRemediation)({
53
+ category: 'blocked',
54
+ shouldEdit: false,
55
+ reason: 'pre_save_submit_budget_exhausted',
56
+ attemptCount: preSaveSubmitFailures,
57
+ remainingSubmitFixes: 0,
58
+ guidance: 'The workflow could not be saved after three submit attempts. Stop editing and explain the blocker to the user.',
59
+ });
60
+ }
61
+ else if (postSubmitBudgetExhausted && remediation?.shouldEdit !== false) {
62
+ terminalRemediation = (0, remediation_1.createRemediation)({
63
+ category: 'blocked',
64
+ shouldEdit: false,
65
+ reason: 'post_submit_budget_exhausted',
66
+ attemptCount: postSubmitRemediationSubmitsUsed,
67
+ remainingSubmitFixes: 0,
68
+ guidance: 'The workflow was saved, but the automatic repair budget is exhausted. Stop editing and explain the blocker to the user.',
69
+ });
70
+ }
71
+ applyRemediationToAttempt(attempt, terminalRemediation);
72
+ attempt.result =
73
+ outcome.needsUserInput || terminalRemediation?.shouldEdit === false ? 'blocked' : 'failure';
23
74
  attempt.failureSignature = outcome.failureSignature;
24
- const reason = outcome.blockingReason ?? outcome.failureSignature ?? 'Builder failed to submit workflow';
75
+ const reason = terminalRemediation?.guidance ??
76
+ outcome.blockingReason ??
77
+ outcome.failureSignature ??
78
+ 'Builder failed to submit workflow';
79
+ const nextState = {
80
+ ...normalizedState,
81
+ lastTaskId: outcome.taskId,
82
+ preSaveSubmitFailures,
83
+ postSubmitRemediationSubmitsUsed,
84
+ lastRemediation: terminalRemediation ?? normalizedState.lastRemediation,
85
+ };
25
86
  return {
26
- state: { ...state, phase: 'blocked', status: 'blocked', lastTaskId: outcome.taskId },
27
- action: { type: 'blocked', reason },
87
+ state: outcome.needsUserInput || terminalRemediation?.shouldEdit === false
88
+ ? { ...nextState, phase: 'blocked', status: 'blocked' }
89
+ : nextState,
90
+ action: outcome.needsUserInput || terminalRemediation?.shouldEdit === false
91
+ ? { type: 'blocked', reason }
92
+ : { type: 'continue_building', reason },
28
93
  attempt,
29
94
  };
30
95
  }
@@ -35,12 +100,25 @@ function handleBuildOutcome(state, attempts, outcome) {
35
100
  : undefined;
36
101
  const hasUnresolvedPlaceholders = outcome.hasUnresolvedPlaceholders ?? undefined;
37
102
  const updatedState = {
38
- ...state,
39
- workflowId: outcome.workflowId ?? state.workflowId,
103
+ ...normalizedState,
104
+ workflowId: outcome.workflowId ?? normalizedState.workflowId,
40
105
  lastTaskId: outcome.taskId,
41
- mockedCredentialTypes: mockedCredentialTypes ?? state.mockedCredentialTypes,
42
- hasUnresolvedPlaceholders: hasUnresolvedPlaceholders ?? state.hasUnresolvedPlaceholders,
106
+ mockedCredentialTypes: mockedCredentialTypes ?? normalizedState.mockedCredentialTypes,
107
+ hasUnresolvedPlaceholders: hasUnresolvedPlaceholders ?? normalizedState.hasUnresolvedPlaceholders,
108
+ successfulSubmitSeen: true,
109
+ preSaveSubmitFailures: normalizedState.successfulSubmitSeen
110
+ ? (normalizedState.preSaveSubmitFailures ?? 0)
111
+ : 0,
112
+ postSubmitRemediationSubmitsUsed,
113
+ lastRemediation: remediation,
43
114
  };
115
+ if (outcome.needsUserInput) {
116
+ return {
117
+ state: { ...updatedState, phase: 'blocked', status: 'blocked' },
118
+ action: { type: 'blocked', reason: outcome.blockingReason ?? 'Needs user input' },
119
+ attempt,
120
+ };
121
+ }
44
122
  if (outcome.triggerType === 'trigger_only') {
45
123
  return {
46
124
  state: { ...updatedState, phase: 'done', status: 'completed' },
@@ -54,13 +132,6 @@ function handleBuildOutcome(state, attempts, outcome) {
54
132
  attempt,
55
133
  };
56
134
  }
57
- if (outcome.needsUserInput) {
58
- return {
59
- state: { ...updatedState, phase: 'blocked', status: 'blocked' },
60
- action: { type: 'blocked', reason: outcome.blockingReason ?? 'Needs user input' },
61
- attempt,
62
- };
63
- }
64
135
  return {
65
136
  state: { ...updatedState, phase: 'verifying', status: 'active' },
66
137
  action: { type: 'verify', workflowId: outcome.workflowId },
@@ -68,26 +139,54 @@ function handleBuildOutcome(state, attempts, outcome) {
68
139
  };
69
140
  }
70
141
  function handleVerificationVerdict(state, attempts, verdict) {
71
- const attempt = makeAttempt(state, 'verify', attempts);
142
+ if (isStaleRunReport(state, verdict.runId)) {
143
+ const attempt = makeAttempt(state, 'verify', attempts);
144
+ attempt.result = 'failure';
145
+ return {
146
+ state,
147
+ action: { type: 'ignored', reason: staleRunReportReason(state.runId, verdict.runId) },
148
+ attempt,
149
+ };
150
+ }
151
+ const normalizedState = state;
152
+ const attempt = makeAttempt(normalizedState, 'verify', attempts);
72
153
  attempt.executionId = verdict.executionId;
73
154
  attempt.failureSignature = verdict.failureSignature;
74
155
  attempt.diagnosis = verdict.diagnosis;
156
+ const remediation = withRemainingSubmitFixes(verdict.remediation, (0, remediation_1.remainingPostSubmitRemediations)(normalizedState));
157
+ applyRemediationToAttempt(attempt, remediation);
158
+ if (remediation && !remediation.shouldEdit) {
159
+ attempt.result = 'blocked';
160
+ return {
161
+ state: {
162
+ ...normalizedState,
163
+ phase: 'blocked',
164
+ status: 'blocked',
165
+ lastExecutionId: verdict.executionId,
166
+ lastFailureSignature: verdict.failureSignature,
167
+ lastRemediation: remediation,
168
+ },
169
+ action: { type: 'blocked', reason: remediation.guidance },
170
+ attempt,
171
+ };
172
+ }
75
173
  switch (verdict.verdict) {
76
174
  case 'verified': {
77
175
  attempt.result = 'success';
78
176
  return {
79
177
  state: {
80
- ...state,
178
+ ...normalizedState,
81
179
  phase: 'done',
82
180
  status: 'completed',
83
181
  lastExecutionId: verdict.executionId,
182
+ lastRemediation: remediation,
84
183
  },
85
184
  action: {
86
185
  type: 'done',
87
186
  workflowId: verdict.workflowId,
88
187
  summary: verdict.summary,
89
- mockedCredentialTypes: state.mockedCredentialTypes,
90
- hasUnresolvedPlaceholders: state.hasUnresolvedPlaceholders,
188
+ mockedCredentialTypes: normalizedState.mockedCredentialTypes,
189
+ hasUnresolvedPlaceholders: normalizedState.hasUnresolvedPlaceholders,
91
190
  },
92
191
  attempt,
93
192
  };
@@ -95,13 +194,18 @@ function handleVerificationVerdict(state, attempts, verdict) {
95
194
  case 'trigger_only': {
96
195
  attempt.result = 'success';
97
196
  return {
98
- state: { ...state, phase: 'done', status: 'completed' },
197
+ state: {
198
+ ...normalizedState,
199
+ phase: 'done',
200
+ status: 'completed',
201
+ lastRemediation: remediation,
202
+ },
99
203
  action: {
100
204
  type: 'done',
101
205
  workflowId: verdict.workflowId,
102
206
  summary: verdict.summary,
103
- mockedCredentialTypes: state.mockedCredentialTypes,
104
- hasUnresolvedPlaceholders: state.hasUnresolvedPlaceholders,
207
+ mockedCredentialTypes: normalizedState.mockedCredentialTypes,
208
+ hasUnresolvedPlaceholders: normalizedState.hasUnresolvedPlaceholders,
105
209
  },
106
210
  attempt,
107
211
  };
@@ -109,7 +213,12 @@ function handleVerificationVerdict(state, attempts, verdict) {
109
213
  case 'needs_user_input': {
110
214
  attempt.result = 'blocked';
111
215
  return {
112
- state: { ...state, phase: 'blocked', status: 'blocked' },
216
+ state: {
217
+ ...normalizedState,
218
+ phase: 'blocked',
219
+ status: 'blocked',
220
+ lastRemediation: remediation,
221
+ },
113
222
  action: { type: 'blocked', reason: verdict.diagnosis ?? 'Needs user input' },
114
223
  attempt,
115
224
  };
@@ -118,10 +227,11 @@ function handleVerificationVerdict(state, attempts, verdict) {
118
227
  attempt.result = 'failure';
119
228
  return {
120
229
  state: {
121
- ...state,
230
+ ...normalizedState,
122
231
  phase: 'blocked',
123
232
  status: 'blocked',
124
233
  lastFailureSignature: verdict.failureSignature,
234
+ lastRemediation: remediation,
125
235
  },
126
236
  action: { type: 'blocked', reason: verdict.summary },
127
237
  attempt,
@@ -130,7 +240,7 @@ function handleVerificationVerdict(state, attempts, verdict) {
130
240
  case 'needs_patch': {
131
241
  attempt.result = 'failure';
132
242
  attempt.action = 'patch';
133
- return escalateToRepair(state, attempts, verdict, attempt, {
243
+ return escalateToRepair(normalizedState, attempts, verdict, attempt, remediation, {
134
244
  type: 'patch',
135
245
  workflowId: verdict.workflowId,
136
246
  failedNodeName: verdict.failedNodeName ?? 'unknown',
@@ -148,7 +258,7 @@ function handleVerificationVerdict(state, attempts, verdict) {
148
258
  ]
149
259
  .filter(Boolean)
150
260
  .join('. ');
151
- return escalateToRepair(state, attempts, verdict, attempt, {
261
+ return escalateToRepair(normalizedState, attempts, verdict, attempt, remediation, {
152
262
  type: 'rebuild',
153
263
  workflowId: verdict.workflowId,
154
264
  failureDetails: failureDetails || verdict.summary,
@@ -156,14 +266,24 @@ function handleVerificationVerdict(state, attempts, verdict) {
156
266
  }
157
267
  }
158
268
  }
159
- function escalateToRepair(state, attempts, verdict, attempt, action) {
269
+ function escalateToRepair(state, attempts, verdict, attempt, remediation, action) {
160
270
  if (verdict.failureSignature && hasRepeatedRepair(attempts, verdict.failureSignature)) {
271
+ const blockedRemediation = (0, remediation_1.createRemediation)({
272
+ category: 'blocked',
273
+ shouldEdit: false,
274
+ reason: 'duplicate_failure_signature',
275
+ attemptCount: state.postSubmitRemediationSubmitsUsed ?? 0,
276
+ remainingSubmitFixes: (0, remediation_1.remainingPostSubmitRemediations)(state),
277
+ guidance: `Repeated repair failure: ${verdict.failureSignature}`,
278
+ });
279
+ applyRemediationToAttempt(attempt, blockedRemediation);
161
280
  return {
162
281
  state: {
163
282
  ...state,
164
283
  phase: 'blocked',
165
284
  status: 'blocked',
166
285
  lastFailureSignature: verdict.failureSignature,
286
+ lastRemediation: blockedRemediation,
167
287
  },
168
288
  action: {
169
289
  type: 'blocked',
@@ -172,6 +292,31 @@ function escalateToRepair(state, attempts, verdict, attempt, action) {
172
292
  attempt,
173
293
  };
174
294
  }
295
+ if ((state.postSubmitRemediationSubmitsUsed ?? 0) >= remediation_1.MAX_POST_SUBMIT_REMEDIATION_SUBMITS) {
296
+ const blockedRemediation = (0, remediation_1.createRemediation)({
297
+ category: 'blocked',
298
+ shouldEdit: false,
299
+ reason: 'post_submit_budget_exhausted',
300
+ attemptCount: state.postSubmitRemediationSubmitsUsed ?? 0,
301
+ remainingSubmitFixes: 0,
302
+ guidance: 'The workflow was saved, but the automatic repair budget is exhausted. Stop editing and explain the blocker to the user.',
303
+ });
304
+ applyRemediationToAttempt(attempt, blockedRemediation);
305
+ return {
306
+ state: {
307
+ ...state,
308
+ phase: 'blocked',
309
+ status: 'blocked',
310
+ lastFailureSignature: verdict.failureSignature,
311
+ lastRemediation: blockedRemediation,
312
+ },
313
+ action: {
314
+ type: 'blocked',
315
+ reason: blockedRemediation.guidance,
316
+ },
317
+ attempt,
318
+ };
319
+ }
175
320
  return {
176
321
  state: {
177
322
  ...state,
@@ -180,11 +325,33 @@ function escalateToRepair(state, attempts, verdict, attempt, action) {
180
325
  rebuildAttempts: state.rebuildAttempts + 1,
181
326
  lastFailureSignature: verdict.failureSignature,
182
327
  lastExecutionId: verdict.executionId,
328
+ lastRemediation: remediation,
183
329
  },
184
330
  action,
185
331
  attempt,
186
332
  };
187
333
  }
334
+ function isStaleRunReport(state, runId) {
335
+ return Boolean(runId && state.runId && state.runId !== runId);
336
+ }
337
+ function staleRunReportReason(stateRunId, reportRunId) {
338
+ return `Ignoring report from stale run "${reportRunId}" for active run "${stateRunId ?? 'unknown'}".`;
339
+ }
340
+ function withRemainingSubmitFixes(remediation, remainingSubmitFixes) {
341
+ if (!remediation)
342
+ return undefined;
343
+ return {
344
+ ...remediation,
345
+ remainingSubmitFixes,
346
+ };
347
+ }
348
+ function applyRemediationToAttempt(attempt, remediation) {
349
+ if (!remediation)
350
+ return;
351
+ attempt.remediationCategory = remediation.category;
352
+ attempt.remediationShouldEdit = remediation.shouldEdit;
353
+ attempt.remediationGuidance = remediation.guidance;
354
+ }
188
355
  function hasRepeatedRepair(attempts, failureSignature) {
189
356
  return attempts.some((a) => (a.action === 'rebuild' || a.action === 'patch') && a.failureSignature === failureSignature);
190
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-loop-controller.js","sourceRoot":"","sources":["../../src/workflow-loop/workflow-loop-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-loop-controller.js","sourceRoot":"","sources":["../../src/workflow-loop/workflow-loop-controller.ts"],"names":[],"mappings":"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"}