@forestadmin/workflow-executor 1.25.5 → 1.26.1

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.
@@ -47,6 +47,16 @@ function toAllowedValue(option) {
47
47
  }
48
48
  return { value: option, label: String(option) };
49
49
  }
50
+ // The statuses a change hook answers with when it refuses the submitted value. Auth, rate limiting
51
+ // and timeouts are also 4xx but say nothing about the value, so they must not reach the form fallback.
52
+ const FORM_VALIDATION_STATUSES = [400, 422];
53
+ // setFields refuses a value two ways: an unknown field, or the change-hook request it makes rejecting
54
+ // it. Anything else is the agent or the caller faltering, and blaming the form would misdirect.
55
+ function isRejectedFormValue(cause) {
56
+ if (cause instanceof agent_client_1.UnknownActionFieldError)
57
+ return true;
58
+ return cause instanceof agent_client_1.AgentHttpError && FORM_VALIDATION_STATUSES.includes(cause.status);
59
+ }
50
60
  class AgentClientAgentPort {
51
61
  constructor(params) {
52
62
  this.agentUrl = params.agentUrl;
@@ -159,13 +169,13 @@ class AgentClientAgentPort {
159
169
  const recordIds = id?.length ? [id] : [];
160
170
  const act = await client.collection(collection).action(action, { recordIds });
161
171
  if (values) {
162
- // setFields is strict (mirrors MCP execute-action): an unknown field is a config/drift
163
- // problem, surfaced as a validation error rather than a silent skip.
164
172
  try {
165
173
  await act.setFields(values);
166
174
  }
167
175
  catch (cause) {
168
- throw new errors_1.ActionFormValidationError(action, cause);
176
+ if (isRejectedFormValue(cause))
177
+ throw new errors_1.ActionFormValidationError(action, cause);
178
+ throw cause;
169
179
  }
170
180
  }
171
181
  try {
@@ -317,4 +327,4 @@ class AgentClientAgentPort {
317
327
  }
318
328
  }
319
329
  exports.default = AgentClientAgentPort;
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtY2xpZW50LWFnZW50LXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlcnMvYWdlbnQtY2xpZW50LWFnZW50LXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQkEsNERBTW1DO0FBQ25DLGdFQUF3QztBQUV4QyxzQ0FTbUI7QUFFbkIscUdBQXFHO0FBQ3JHLHNGQUFzRjtBQUN0RixTQUFTLHVCQUF1QixDQUFDLE1BQWMsRUFBRSxLQUFjO0lBQzdELElBQUksS0FBSyxZQUFZLDBDQUFpQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxJQUFJLG9DQUEyQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksd0NBQStCLEVBQUUsQ0FBQztRQUNyRCxPQUFPLElBQUksa0NBQXlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLEtBQUssWUFBWSwyQ0FBa0MsRUFBRSxDQUFDO1FBQ3hELE9BQU8sSUFBSSxxQ0FBNEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELDhGQUE4RjtBQUM5RixrR0FBa0c7QUFDbEcsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJO1NBQ3JCLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUM7U0FDM0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztTQUNyQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUNsQixXQUFXLEVBQUUsQ0FBQztJQUVqQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQ3hCLHdCQUF3QixFQUN4QixDQUFDLENBQUMsRUFBRSxLQUF5QixFQUFFLElBQVksRUFBRSxFQUFFLENB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
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtY2xpZW50LWFnZW50LXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRhcHRlcnMvYWdlbnQtY2xpZW50LWFnZW50LXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQkEsNERBUW1DO0FBQ25DLGdFQUF3QztBQUV4QyxzQ0FTbUI7QUFFbkIscUdBQXFHO0FBQ3JHLHNGQUFzRjtBQUN0RixTQUFTLHVCQUF1QixDQUFDLE1BQWMsRUFBRSxLQUFjO0lBQzdELElBQUksS0FBSyxZQUFZLDBDQUFpQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxJQUFJLG9DQUEyQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksd0NBQStCLEVBQUUsQ0FBQztRQUNyRCxPQUFPLElBQUksa0NBQXlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLEtBQUssWUFBWSwyQ0FBa0MsRUFBRSxDQUFDO1FBQ3hELE9BQU8sSUFBSSxxQ0FBNEIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELDhGQUE4RjtBQUM5RixrR0FBa0c7QUFDbEcsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJO1NBQ3JCLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUM7U0FDM0MsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztTQUNyQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztTQUNsQixXQUFXLEVBQUUsQ0FBQztJQUVqQixPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQ3hCLHdCQUF3QixFQUN4QixDQUFDLENBQUMsRUFBRSxLQUF5QixFQUFFLElBQVksRUFBRSxFQUFFLENBQzdDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLE1BQStCLEVBQy9CLGtCQUF3QztJQUV4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRS9DLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUM7SUFFbkQsS0FBSyxNQUFNLElBQUksSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFFRCw2RkFBNkY7QUFDN0YsU0FBUyxjQUFjLENBQUMsTUFBZTtJQUNyQyxJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbEQsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUEwRCxDQUFDO1FBRXBGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBeUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7QUFDckUsQ0FBQztBQUVELG1HQUFtRztBQUNuRyx1R0FBdUc7QUFDdkcsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU1QyxzR0FBc0c7QUFDdEcsZ0dBQWdHO0FBQ2hHLFNBQVMsbUJBQW1CLENBQUMsS0FBYztJQUN6QyxJQUFJLEtBQUssWUFBWSxzQ0FBdUI7UUFBRSxPQUFPLElBQUksQ0FBQztJQUUxRCxPQUFPLEtBQUssWUFBWSw2QkFBYyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELE1BQXFCLG9CQUFvQjtJQU12QyxZQUFZLE1BS1g7UUFDQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBa0IsRUFBRSxJQUFjO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2Qyx1RkFBdUY7WUFDdkYsd0ZBQXdGO1lBQ3hGLDJFQUEyRTtZQUMzRSxJQUFJLE1BQXNDLENBQUM7WUFFM0MsSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxNQUFNLE1BQU07cUJBQ2xCLFVBQVUsQ0FBQyxVQUFVLENBQUM7cUJBQ3RCLE1BQU0sQ0FBMEIsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLDRCQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBRUQsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsNEZBQTRGO1lBQzVGLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUVELE9BQU87Z0JBQ0wsY0FBYyxFQUFFLFVBQVU7Z0JBQzFCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2FBQzFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUNoQixFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFxQixFQUM3QyxJQUFjO1FBRWQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sYUFBYSxHQUFHLE1BQU0sTUFBTTtpQkFDL0IsVUFBVSxDQUFDLFVBQVUsQ0FBQztpQkFDdEIsTUFBTSxDQUEwQixFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFL0MsT0FBTztnQkFDTCxjQUFjLEVBQUUsVUFBVTtnQkFDMUIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNsQixFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBdUIsRUFDeEYsSUFBYztRQUVkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTTtpQkFDdEIsVUFBVSxDQUFDLFVBQVUsQ0FBQztpQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7aUJBQ3RCLElBQUksQ0FBMEI7Z0JBQzdCLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDakUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDakMsR0FBRyxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBbUMsRUFBRSxDQUFDO2FBQy9FLENBQUMsQ0FBQztZQUVMLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEIsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQ2hDLEdBQUcsRUFDSCxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDM0MsQ0FBQztnQkFFRixrRkFBa0Y7Z0JBQ2xGLGtGQUFrRjtnQkFDbEYsbUZBQW1GO2dCQUNuRix3RUFBd0U7Z0JBQ3hFLE1BQU0sUUFBUSxHQUNaLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDdkMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztvQkFDM0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFvQixDQUFDLENBQUM7Z0JBRTlFLE9BQU87b0JBQ0wsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjO29CQUM1QyxRQUFRO29CQUNSLE1BQU0sRUFBRSxRQUFRO2lCQUNqQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxRkFBcUY7SUFDckYseUZBQXlGO0lBQ3pGLHdGQUF3RjtJQUN4Riw4QkFBOEI7SUFDOUIsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQTZCLEVBQzlFLElBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkQsbUZBQW1GO1lBQ25GLDBGQUEwRjtZQUMxRix3RkFBd0Y7WUFDeEYsNEZBQTRGO1lBQzVGLDhCQUE4QjtZQUM5QixNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUNqQztnQkFDRSxVQUFVO2dCQUNWLEVBQUU7Z0JBQ0YsTUFBTSxFQUFFLENBQUMsR0FBRyxRQUFRLE1BQU0sY0FBYyxFQUFFLENBQUM7YUFDNUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztZQUVGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUd0QyxDQUFDO1lBQ2QsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLEVBQXdCLENBQUM7WUFFbkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFdkMsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUU5RCxPQUFPO2dCQUNMLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYztnQkFDNUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUM3QixNQUFNLEVBQUUsUUFBUTthQUNqQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFzQixFQUN2RSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBZ0I7UUFFekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFELE1BQU0sU0FBUyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFFOUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7d0JBQUUsTUFBTSxJQUFJLGtDQUF5QixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFbkYsTUFBTSxLQUFLLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztnQkFFckYsT0FBTyxPQUFPLGFBQWEsS0FBSyxRQUFRO29CQUN0QyxhQUFhLEtBQUssSUFBSTtvQkFDdEIsbUJBQW1CLElBQUksYUFBYTtvQkFDcEMsQ0FBQyxDQUFDO3dCQUNFLGlCQUFpQixFQUFFLElBQUk7d0JBQ3ZCLEdBQUcsQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJOzRCQUNuQyxlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWU7eUJBQy9DLENBQUM7cUJBQ0g7b0JBQ0gsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE1BQU0sdUJBQXVCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQTBCLEVBQ2xELElBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVwRixPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQXNCLEVBQ3RELElBQWM7UUFFZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUU5RSw0RkFBNEY7WUFDNUYsNkZBQTZGO1lBQzdGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBbUIsRUFBRTtnQkFDNUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFLFdBQVcsQ0FBQztnQkFFdkQsTUFBTSxJQUFJLEdBQW9CO29CQUM1QixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtvQkFDckIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUN2QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUs7b0JBQ3ZDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDeEMsQ0FBQztnQkFFRixJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsT0FBTzt3QkFDTCxHQUFHLElBQUk7d0JBQ1AsVUFBVSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLElBQUksU0FBUztxQkFDeEUsQ0FBQztnQkFDSixDQUFDO2dCQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUU1RCxPQUFPLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFGLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxjQUFjLEdBQUcsTUFBTTtpQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7aUJBQ3hGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU1QixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVMsQ0FBSSxTQUFpQixFQUFFLEVBQW9CO1FBQ2hFLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxZQUFZLDhCQUFxQjtnQkFBRSxNQUFNLEtBQUssQ0FBQztZQUN4RCxNQUFNLElBQUksdUJBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsSUFBYztRQUM5QiwrRkFBK0Y7UUFDL0YsT0FBTyxzQkFBWSxDQUFDLElBQUksQ0FDdEI7WUFDRSxHQUFHLElBQUk7WUFDUCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3hCLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVztZQUM5QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUN0QyxLQUFLLEVBQUUsZ0JBQWdCO1NBQ3hCLEVBQ0QsSUFBSSxDQUFDLFVBQVUsRUFDZixFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBYyxFQUFFLGlCQUEwQjtRQUM3RCxPQUFPLElBQUEsc0NBQXVCLEVBQUM7WUFDN0IsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMzQixlQUFlLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDNUQsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksaUJBQWlCO2dCQUMzQyxDQUFDLENBQUM7b0JBQ0UsWUFBWSxFQUFFO3dCQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZTt3QkFDL0IsV0FBVyxFQUFFLGlCQUFpQjt3QkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO3FCQUM5QjtpQkFDRjtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlHQUFpRztJQUNqRyxpR0FBaUc7SUFDakcsc0ZBQXNGO0lBQ3RGLEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBK0IsRUFDekQsSUFBYztRQUVkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUN2QyxVQUFVLENBQUMsVUFBVSxDQUFDO2lCQUN0QixNQUFNLENBSUosRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxRQUFRLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRTFFLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDO1lBRTVELE9BQU8sT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLG1HQUFtRztJQUNuRyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFFM0QsSUFBSSxRQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sU0FBUyxHQUFHLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7WUFDMUUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBQSw0QkFBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztZQUMvRSxNQUFNLElBQUksd0JBQWUsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSx3QkFBZSxDQUN2QixHQUFHLElBQUksQ0FBQyxRQUFRLG1CQUFtQixRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FDNUUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsV0FBbUI7UUFDOUMsTUFBTSxTQUFTLEdBQWdDLEVBQUUsQ0FBQztRQUVsRCxLQUFLLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pGLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFL0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BDLDJGQUEyRjtnQkFDM0YsMkZBQTJGO2dCQUMzRixzRkFBc0Y7Z0JBQ3RGLHVGQUF1RjtnQkFDdkYsaUVBQWlFO2dCQUNqRSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUN2QyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7b0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztvQkFDbkIsdUZBQXVGO29CQUN2RiwrRUFBK0U7b0JBQy9FLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBK0Q7b0JBQzlFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBK0Q7aUJBQy9FLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQXJXRCx1Q0FxV0MifQ==
@@ -25,10 +25,16 @@ function toStepOutcome(s) {
25
25
  const stepDef = (0, step_definition_mapper_1.default)(s.stepDefinition);
26
26
  const outcomeType = (0, step_outcome_1.stepTypeToOutcomeType)(stepDef.type);
27
27
  const ctx = (s.context ?? {});
28
+ // A value the executor didn't write (legacy frontend, or a newer executor's vocabulary) is dropped
29
+ // rather than passed on: AvailableStepExecutionSchema.parse below would fail the whole run.
30
+ const parsedErrorKind = step_outcome_1.ErrorKindSchema.safeParse(ctx.errorKind);
31
+ const parsedSourceStepIndex = step_outcome_1.ErrorSourceStepIndexSchema.safeParse(ctx.errorSourceStepIndex);
28
32
  const baseFromCtx = {
29
33
  stepId: s.stepName,
30
34
  stepIndex: s.stepIndex,
31
35
  error: typeof ctx.error === 'string' ? ctx.error : undefined,
36
+ ...(parsedErrorKind.success && { errorKind: parsedErrorKind.data }),
37
+ ...(parsedSourceStepIndex.success && { errorSourceStepIndex: parsedSourceStepIndex.data }),
32
38
  };
33
39
  if (outcomeType === 'condition') {
34
40
  const status = toRecordStatus(ctx.status);
@@ -136,4 +142,4 @@ function toAvailableStepExecution(run) {
136
142
  throw err;
137
143
  }
138
144
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRvLWF2YWlsYWJsZS1zdGVwLW1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9ydW4tdG8tYXZhaWxhYmxlLXN0ZXAtbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBbUlBLDJDQXFEQztBQTNLRCw2QkFBd0I7QUFFeEIsaUVBQTZEO0FBQzdELGlEQUEyRDtBQUMzRCxzRkFBd0Q7QUFDeEQsc0NBSW1CO0FBQ25CLDREQUtzQztBQUN0QyxrRUFBd0U7QUFFeEUsU0FBUyxjQUFjLENBQUMsU0FBa0I7SUFDeEMsSUFBSSxTQUFTLEtBQUssT0FBTztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBQzFDLElBQUksU0FBUyxLQUFLLGdCQUFnQjtRQUFFLE9BQU8sZ0JBQWdCLENBQUM7SUFFNUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGlHQUFpRztBQUNqRywyRkFBMkY7QUFDM0YsNkRBQTZEO0FBQzdELFNBQVMsYUFBYSxDQUFDLENBQW9CO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUEsZ0NBQWdCLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUEsb0NBQXFCLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQTRCLENBQUM7SUFFekQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ2xCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztRQUN0QixLQUFLLEVBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztLQUM3RCxDQUFDO0lBRUYsSUFBSSxXQUFXLEtBQUssV0FBVyxFQUFFLENBQUM7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
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRvLWF2YWlsYWJsZS1zdGVwLW1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9ydW4tdG8tYXZhaWxhYmxlLXN0ZXAtbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOElBLDJDQXFEQztBQXRMRCw2QkFBd0I7QUFFeEIsaUVBQTZEO0FBQzdELGlEQUEyRDtBQUMzRCxzRkFBd0Q7QUFDeEQsc0NBSW1CO0FBQ25CLDREQUtzQztBQUN0QyxrRUFJeUM7QUFFekMsU0FBUyxjQUFjLENBQUMsU0FBa0I7SUFDeEMsSUFBSSxTQUFTLEtBQUssT0FBTztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBQzFDLElBQUksU0FBUyxLQUFLLGdCQUFnQjtRQUFFLE9BQU8sZ0JBQWdCLENBQUM7SUFFNUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGlHQUFpRztBQUNqRywyRkFBMkY7QUFDM0YsNkRBQTZEO0FBQzdELFNBQVMsYUFBYSxDQUFDLENBQW9CO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUEsZ0NBQWdCLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUEsb0NBQXFCLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQTRCLENBQUM7SUFFekQsbUdBQW1HO0lBQ25HLDRGQUE0RjtJQUM1RixNQUFNLGVBQWUsR0FBRyw4QkFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsTUFBTSxxQkFBcUIsR0FBRyx5Q0FBMEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFN0YsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ2xCLFNB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
@@ -18,6 +18,12 @@ function toUpdateStepRequest(runId, outcome) {
18
18
  const context = { status: outcome.status };
19
19
  if (outcome.error !== undefined)
20
20
  context.error = outcome.error;
21
+ if (outcome.errorKind !== undefined)
22
+ context.errorKind = outcome.errorKind;
23
+ // Index 0 is a real step, so this cannot be a truthiness check.
24
+ if (outcome.errorSourceStepIndex !== undefined) {
25
+ context.errorSourceStepIndex = outcome.errorSourceStepIndex;
26
+ }
21
27
  if (outcome.type === 'condition' && outcome.selectedOption !== undefined) {
22
28
  context.selectedOption = outcome.selectedOption;
23
29
  }
@@ -37,4 +43,4 @@ function toUpdateStepRequest(runId, outcome) {
37
43
  executionStatus: toExecutionStatus(outcome),
38
44
  };
39
45
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1vdXRjb21lLXRvLXVwZGF0ZS1zdGVwLW1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9zdGVwLW91dGNvbWUtdG8tdXBkYXRlLXN0ZXAtbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUJBLHNDQTZCQztBQTdDRCxTQUFTLGlCQUFpQixDQUFDLE9BQW9CO0lBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMvQiwwRUFBMEU7UUFDMUUsaUZBQWlGO1FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELG1HQUFtRztBQUNuRyxxRUFBcUU7QUFDckUsU0FBd0IsbUJBQW1CLENBQ3pDLEtBQWEsRUFDYixPQUFvQjtJQUVwQixNQUFNLE9BQU8sR0FBNEIsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BFLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBRS9ELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6RSxPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksT0FBTyxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUE0QjtRQUMxQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0I7UUFDekMsT0FBTztLQUNSLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDcEIsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFO1FBQ3hELGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUMifQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1vdXRjb21lLXRvLXVwZGF0ZS1zdGVwLW1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9zdGVwLW91dGNvbWUtdG8tdXBkYXRlLXN0ZXAtbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUJBLHNDQW1DQztBQW5ERCxTQUFTLGlCQUFpQixDQUFDLE9BQW9CO0lBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUMvQiwwRUFBMEU7UUFDMUUsaUZBQWlGO1FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELG1HQUFtRztBQUNuRyxxRUFBcUU7QUFDckUsU0FBd0IsbUJBQW1CLENBQ3pDLEtBQWEsRUFDYixPQUFvQjtJQUVwQixNQUFNLE9BQU8sR0FBNEIsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BFLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQy9ELElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTO1FBQUUsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRTNFLGdFQUFnRTtJQUNoRSxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDekUsT0FBTyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4RSxPQUFPLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBNEI7UUFDMUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCO1FBQ3pDLE9BQU87S0FDUixDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BCLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRTtRQUN4RCxlQUFlLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDO0tBQzVDLENBQUM7QUFDSixDQUFDIn0=
package/dist/errors.d.ts CHANGED
@@ -1,12 +1,15 @@
1
1
  import type { MalformedRunInfo } from './ports/workflow-port';
2
2
  import type { RecordId } from './types/validated/collection';
3
- import type { AwaitingInputReason } from './types/validated/step-outcome';
3
+ import type { AwaitingInputReason, ErrorKind } from './types/validated/step-outcome';
4
4
  import type { z } from 'zod';
5
5
  export declare function causeMessage(error: unknown): string | undefined;
6
6
  export declare function extractErrorMessage(err?: unknown): string | undefined;
7
7
  export declare abstract class WorkflowExecutorError extends Error {
8
8
  readonly userMessage: string;
9
9
  cause?: unknown;
10
+ errorKind?: ErrorKind;
11
+ static readonly defaultErrorKind?: ErrorKind;
12
+ errorSourceStepIndex?: number;
10
13
  constructor(message: string, userMessage?: string);
11
14
  }
12
15
  export declare abstract class NotFoundError extends WorkflowExecutorError {
@@ -15,6 +18,12 @@ export declare abstract class AccessDeniedError extends WorkflowExecutorError {
15
18
  }
16
19
  export declare abstract class UnavailableError extends WorkflowExecutorError {
17
20
  }
21
+ export declare abstract class WorkflowConfigurationError extends WorkflowExecutorError {
22
+ static readonly defaultErrorKind: ErrorKind;
23
+ }
24
+ export declare abstract class WorkflowOperatorError extends WorkflowExecutorError {
25
+ static readonly defaultErrorKind: ErrorKind;
26
+ }
18
27
  export declare class MissingToolCallError extends WorkflowExecutorError {
19
28
  constructor();
20
29
  }
@@ -22,31 +31,31 @@ export declare class MalformedToolCallError extends WorkflowExecutorError {
22
31
  readonly toolName: string;
23
32
  constructor(toolName: string, details: string);
24
33
  }
25
- export declare class RecordNotFoundError extends WorkflowExecutorError {
34
+ export declare class RecordNotFoundError extends WorkflowOperatorError {
26
35
  constructor(collectionName: string, recordId: RecordId);
27
36
  }
28
- export declare class NoRecordsError extends WorkflowExecutorError {
37
+ export declare class NoRecordsError extends WorkflowOperatorError {
29
38
  constructor();
30
39
  }
31
- export declare class NoReadableFieldsError extends WorkflowExecutorError {
40
+ export declare class NoReadableFieldsError extends WorkflowConfigurationError {
32
41
  constructor(collectionName: string);
33
42
  }
34
43
  export declare class NoResolvedFieldsError extends WorkflowExecutorError {
35
44
  constructor(fieldNames: string[]);
36
45
  }
37
- export declare class NoWritableFieldsError extends WorkflowExecutorError {
46
+ export declare class NoWritableFieldsError extends WorkflowConfigurationError {
38
47
  constructor(collectionName: string);
39
48
  }
40
- export declare class NoActionsError extends WorkflowExecutorError {
49
+ export declare class NoActionsError extends WorkflowConfigurationError {
41
50
  constructor(collectionName: string);
42
51
  }
43
52
  export declare class UnsupportedActionFormError extends WorkflowExecutorError {
44
53
  constructor(actionDisplayName: string);
45
54
  }
46
- export declare class ActionFormValidationError extends WorkflowExecutorError {
55
+ export declare class ActionFormValidationError extends WorkflowOperatorError {
47
56
  constructor(actionName: string, cause?: unknown);
48
57
  }
49
- export declare class ActionRequiresApprovalError extends WorkflowExecutorError {
58
+ export declare class ActionRequiresApprovalError extends WorkflowOperatorError {
50
59
  readonly roleIdsAllowedToApprove?: number[];
51
60
  constructor(actionName: string, roleIdsAllowedToApprove?: number[]);
52
61
  }
@@ -56,16 +65,16 @@ export declare class ApprovalRequestCreationError extends WorkflowExecutorError
56
65
  export declare class RunStorePortError extends UnavailableError {
57
66
  constructor(operation: string, cause: unknown);
58
67
  }
59
- export declare class NoRelationshipFieldsError extends WorkflowExecutorError {
68
+ export declare class NoRelationshipFieldsError extends WorkflowConfigurationError {
60
69
  constructor(collectionName: string);
61
70
  }
62
- export declare class RelatedRecordNotFoundError extends WorkflowExecutorError {
71
+ export declare class RelatedRecordNotFoundError extends WorkflowOperatorError {
63
72
  constructor(collectionName: string, relationName: string);
64
73
  }
65
74
  export declare class InvalidAIResponseError extends WorkflowExecutorError {
66
75
  constructor(message: string);
67
76
  }
68
- export declare class InvalidAiRequestError extends WorkflowExecutorError {
77
+ export declare class InvalidAiRequestError extends WorkflowConfigurationError {
69
78
  constructor(message: string);
70
79
  }
71
80
  export declare class RelationNotFoundError extends WorkflowExecutorError {
@@ -74,7 +83,10 @@ export declare class RelationNotFoundError extends WorkflowExecutorError {
74
83
  export declare class FieldNotFoundError extends WorkflowExecutorError {
75
84
  constructor(name: string, collectionName: string);
76
85
  }
77
- export declare class FieldTypeMissingError extends WorkflowExecutorError {
86
+ export declare class PinnedArgNotFoundError extends WorkflowConfigurationError {
87
+ constructor(kind: 'field' | 'action', name: string, collectionName: string);
88
+ }
89
+ export declare class FieldTypeMissingError extends WorkflowConfigurationError {
78
90
  constructor(name: string, collectionName: string);
79
91
  }
80
92
  export declare class ActionNotFoundError extends WorkflowExecutorError {
@@ -158,11 +170,14 @@ export declare class InvalidPendingDataError extends WorkflowExecutorError {
158
170
  readonly issues: ValidationIssue[];
159
171
  constructor(issues: ValidationIssue[]);
160
172
  }
161
- export declare class InvalidPreRecordedArgsError extends WorkflowExecutorError {
173
+ export declare class InvalidPreRecordedArgsError extends WorkflowConfigurationError {
162
174
  constructor(detail: string);
163
175
  }
164
176
  export declare class SourceRecordMissingError extends WorkflowExecutorError {
165
- constructor(sourceTitle?: string);
177
+ constructor(sourceTitle?: string, options?: {
178
+ errorKind?: ErrorKind;
179
+ errorSourceStepIndex?: number;
180
+ });
166
181
  }
167
182
  export declare class AgentProbeError extends Error {
168
183
  readonly cause?: unknown;
package/dist/errors.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SourceRecordMissingError = exports.InvalidPreRecordedArgsError = exports.InvalidPendingDataError = exports.PendingDataNotFoundError = exports.RunAlreadyInFlightError = exports.UserMismatchError = exports.RunNotFoundError = exports.ExecutorEncryptionKeyMissingError = exports.InvalidTokenEndpointError = exports.OAuthInvalidGrantError = exports.OAuthRefreshError = exports.OAuthReauthRequiredError = exports.ConfigurationError = exports.McpToolInvocationError = exports.AiModelPortError = exports.WorkflowPortError = exports.SchemaNotCachedError = exports.AgentPortError = exports.McpToolNotFoundError = exports.NoMcpToolsError = exports.AiAssistUnavailableError = exports.AiInvokeTimeoutError = exports.StepTimeoutError = exports.ActivityLogCreationError = exports.StepStateError = exports.ActionNotFoundError = exports.FieldTypeMissingError = exports.FieldNotFoundError = exports.RelationNotFoundError = exports.InvalidAiRequestError = exports.InvalidAIResponseError = exports.RelatedRecordNotFoundError = exports.NoRelationshipFieldsError = exports.RunStorePortError = exports.ApprovalRequestCreationError = exports.ActionRequiresApprovalError = exports.ActionFormValidationError = exports.UnsupportedActionFormError = exports.NoActionsError = exports.NoWritableFieldsError = exports.NoResolvedFieldsError = exports.NoReadableFieldsError = exports.NoRecordsError = exports.RecordNotFoundError = exports.MalformedToolCallError = exports.MissingToolCallError = exports.UnavailableError = exports.AccessDeniedError = exports.NotFoundError = exports.WorkflowExecutorError = void 0;
4
- exports.MalformedRunError = exports.DomainValidationError = exports.InvalidStepDefinitionError = exports.RecordIdSerializationError = exports.UnsupportedStepTypeError = exports.AgentProbeError = void 0;
3
+ exports.PendingDataNotFoundError = exports.RunAlreadyInFlightError = exports.UserMismatchError = exports.RunNotFoundError = exports.ExecutorEncryptionKeyMissingError = exports.InvalidTokenEndpointError = exports.OAuthInvalidGrantError = exports.OAuthRefreshError = exports.OAuthReauthRequiredError = exports.ConfigurationError = exports.McpToolInvocationError = exports.AiModelPortError = exports.WorkflowPortError = exports.SchemaNotCachedError = exports.AgentPortError = exports.McpToolNotFoundError = exports.NoMcpToolsError = exports.AiAssistUnavailableError = exports.AiInvokeTimeoutError = exports.StepTimeoutError = exports.ActivityLogCreationError = exports.StepStateError = exports.ActionNotFoundError = exports.FieldTypeMissingError = exports.PinnedArgNotFoundError = exports.FieldNotFoundError = exports.RelationNotFoundError = exports.InvalidAiRequestError = exports.InvalidAIResponseError = exports.RelatedRecordNotFoundError = exports.NoRelationshipFieldsError = exports.RunStorePortError = exports.ApprovalRequestCreationError = exports.ActionRequiresApprovalError = exports.ActionFormValidationError = exports.UnsupportedActionFormError = exports.NoActionsError = exports.NoWritableFieldsError = exports.NoResolvedFieldsError = exports.NoReadableFieldsError = exports.NoRecordsError = exports.RecordNotFoundError = exports.MalformedToolCallError = exports.MissingToolCallError = exports.WorkflowOperatorError = exports.WorkflowConfigurationError = exports.UnavailableError = exports.AccessDeniedError = exports.NotFoundError = exports.WorkflowExecutorError = void 0;
4
+ exports.MalformedRunError = exports.DomainValidationError = exports.InvalidStepDefinitionError = exports.RecordIdSerializationError = exports.UnsupportedStepTypeError = exports.AgentProbeError = exports.SourceRecordMissingError = exports.InvalidPreRecordedArgsError = exports.InvalidPendingDataError = void 0;
5
5
  exports.causeMessage = causeMessage;
6
6
  exports.extractErrorMessage = extractErrorMessage;
7
7
  function causeMessage(error) {
@@ -30,6 +30,7 @@ class WorkflowExecutorError extends Error {
30
30
  super(message);
31
31
  this.name = this.constructor.name;
32
32
  this.userMessage = userMessage ?? message;
33
+ this.errorKind = this.constructor.defaultErrorKind;
33
34
  }
34
35
  }
35
36
  exports.WorkflowExecutorError = WorkflowExecutorError;
@@ -47,6 +48,16 @@ exports.AccessDeniedError = AccessDeniedError;
47
48
  class UnavailableError extends WorkflowExecutorError {
48
49
  }
49
50
  exports.UnavailableError = UnavailableError;
51
+ // One abstract per classified kind: the family declares it once and a new member joins by extending
52
+ // it. An error extending neither stays unclassified, which is what preserves today's framing.
53
+ class WorkflowConfigurationError extends WorkflowExecutorError {
54
+ }
55
+ exports.WorkflowConfigurationError = WorkflowConfigurationError;
56
+ WorkflowConfigurationError.defaultErrorKind = 'configuration';
57
+ class WorkflowOperatorError extends WorkflowExecutorError {
58
+ }
59
+ exports.WorkflowOperatorError = WorkflowOperatorError;
60
+ WorkflowOperatorError.defaultErrorKind = 'operator';
50
61
  class MissingToolCallError extends WorkflowExecutorError {
51
62
  constructor() {
52
63
  super('AI did not return a tool call', "The AI couldn't decide what to do. Try rephrasing the step's prompt.");
@@ -60,19 +71,19 @@ class MalformedToolCallError extends WorkflowExecutorError {
60
71
  }
61
72
  }
62
73
  exports.MalformedToolCallError = MalformedToolCallError;
63
- class RecordNotFoundError extends WorkflowExecutorError {
74
+ class RecordNotFoundError extends WorkflowOperatorError {
64
75
  constructor(collectionName, recordId) {
65
76
  super(`Record not found: collection "${collectionName}", id "${recordId.join('|')}"`, 'The record no longer exists. It may have been deleted.');
66
77
  }
67
78
  }
68
79
  exports.RecordNotFoundError = RecordNotFoundError;
69
- class NoRecordsError extends WorkflowExecutorError {
80
+ class NoRecordsError extends WorkflowOperatorError {
70
81
  constructor() {
71
82
  super('No records available');
72
83
  }
73
84
  }
74
85
  exports.NoRecordsError = NoRecordsError;
75
- class NoReadableFieldsError extends WorkflowExecutorError {
86
+ class NoReadableFieldsError extends WorkflowConfigurationError {
76
87
  constructor(collectionName) {
77
88
  super(`No readable fields on record from collection "${collectionName}"`, 'This record type has no readable fields configured in Forest Admin.');
78
89
  }
@@ -84,13 +95,13 @@ class NoResolvedFieldsError extends WorkflowExecutorError {
84
95
  }
85
96
  }
86
97
  exports.NoResolvedFieldsError = NoResolvedFieldsError;
87
- class NoWritableFieldsError extends WorkflowExecutorError {
98
+ class NoWritableFieldsError extends WorkflowConfigurationError {
88
99
  constructor(collectionName) {
89
100
  super(`No writable fields on record from collection "${collectionName}"`, 'This record type has no editable fields configured in Forest Admin.');
90
101
  }
91
102
  }
92
103
  exports.NoWritableFieldsError = NoWritableFieldsError;
93
- class NoActionsError extends WorkflowExecutorError {
104
+ class NoActionsError extends WorkflowConfigurationError {
94
105
  constructor(collectionName) {
95
106
  super(`No actions available on collection "${collectionName}"`, 'No actions are available on this record.');
96
107
  }
@@ -105,7 +116,7 @@ exports.UnsupportedActionFormError = UnsupportedActionFormError;
105
116
  // The action submission was rejected by the agent's server-side validation (bad/missing values),
106
117
  // NOT an infra failure. Full AI treats this as a fallback-to-AI-assisted reason
107
118
  // so a human can fix the values and resubmit.
108
- class ActionFormValidationError extends WorkflowExecutorError {
119
+ class ActionFormValidationError extends WorkflowOperatorError {
109
120
  constructor(actionName, cause) {
110
121
  super(`Action "${actionName}" rejected the submitted form values`, 'The submitted form values were rejected. Please review the form and try again.');
111
122
  this.cause = cause;
@@ -116,7 +127,7 @@ exports.ActionFormValidationError = ActionFormValidationError;
116
127
  // CustomActionRequiresApprovalError. Distinct from a plain permission 403 — Full AI
117
128
  // falls back to AI-assisted so the native front handles the approval flow. The executor
118
129
  // MUST NOT self-sign an approval request.
119
- class ActionRequiresApprovalError extends WorkflowExecutorError {
130
+ class ActionRequiresApprovalError extends WorkflowOperatorError {
120
131
  constructor(actionName, roleIdsAllowedToApprove) {
121
132
  super(`Action "${actionName}" requires an approval and cannot be submitted programmatically`, 'This action requires an approval. Please review and submit it manually.');
122
133
  this.roleIdsAllowedToApprove = roleIdsAllowedToApprove;
@@ -138,13 +149,13 @@ class RunStorePortError extends UnavailableError {
138
149
  }
139
150
  }
140
151
  exports.RunStorePortError = RunStorePortError;
141
- class NoRelationshipFieldsError extends WorkflowExecutorError {
152
+ class NoRelationshipFieldsError extends WorkflowConfigurationError {
142
153
  constructor(collectionName) {
143
154
  super(`No relationship fields on record from collection "${collectionName}"`, 'This record type has no relations configured in Forest Admin.');
144
155
  }
145
156
  }
146
157
  exports.NoRelationshipFieldsError = NoRelationshipFieldsError;
147
- class RelatedRecordNotFoundError extends WorkflowExecutorError {
158
+ class RelatedRecordNotFoundError extends WorkflowOperatorError {
148
159
  constructor(collectionName, relationName) {
149
160
  super(`No related record found for relation "${relationName}" on collection "${collectionName}"`, 'The related record could not be found. It may have been deleted.');
150
161
  }
@@ -156,12 +167,17 @@ class InvalidAIResponseError extends WorkflowExecutorError {
156
167
  }
157
168
  }
158
169
  exports.InvalidAIResponseError = InvalidAIResponseError;
159
- class InvalidAiRequestError extends WorkflowExecutorError {
170
+ class InvalidAiRequestError extends WorkflowConfigurationError {
160
171
  constructor(message) {
161
172
  super(message, 'Step configuration error — please contact your administrator.');
162
173
  }
163
174
  }
164
175
  exports.InvalidAiRequestError = InvalidAiRequestError;
176
+ // The three errors below stay unclassified on purpose. A name that doesn't resolve has two possible
177
+ // causes with opposite remedies -- a vague prompt (configuration) or the AI simply missing on a
178
+ // retryable call -- and the throw site cannot tell them apart. 'configuration' would assert the step
179
+ // can never succeed as configured, which a re-run may disprove. Their pinned counterpart is
180
+ // PinnedArgNotFoundError, where the name was fixed by the workflow and the kind is knowable.
165
181
  class RelationNotFoundError extends WorkflowExecutorError {
166
182
  constructor(name, collectionName) {
167
183
  super(`Relation "${name}" not found in collection "${collectionName}"`, "The AI selected a relation that doesn't exist on this record. Try rephrasing the step's prompt.");
@@ -174,7 +190,18 @@ class FieldNotFoundError extends WorkflowExecutorError {
174
190
  }
175
191
  }
176
192
  exports.FieldNotFoundError = FieldNotFoundError;
177
- class FieldTypeMissingError extends WorkflowExecutorError {
193
+ // Something the step pinned in preRecordedArgs no longer resolves -- the collection changed under a
194
+ // saved workflow. Distinct from the Field/Action variants because the remedy is the opposite: the
195
+ // name was never the AI's to choose, so rephrasing the prompt cannot reach it. Editing the step can.
196
+ // One class for every pinned kind: the diagnosis differs, the thing the operator must do does not.
197
+ class PinnedArgNotFoundError extends WorkflowConfigurationError {
198
+ constructor(kind, name, collectionName) {
199
+ super(`Pinned ${kind} "${name}" not found in collection "${collectionName}"`, `The ${kind} pinned on this step no longer exists on this record. ` +
200
+ 'Edit the step to pick another one.');
201
+ }
202
+ }
203
+ exports.PinnedArgNotFoundError = PinnedArgNotFoundError;
204
+ class FieldTypeMissingError extends WorkflowConfigurationError {
178
205
  constructor(name, collectionName) {
179
206
  super(`Field "${name}" in collection "${collectionName}" has no column type`, "This field can't be updated because its type is missing from the schema. " +
180
207
  'Contact your administrator if the problem persists.');
@@ -367,7 +394,7 @@ class InvalidPendingDataError extends WorkflowExecutorError {
367
394
  }
368
395
  }
369
396
  exports.InvalidPendingDataError = InvalidPendingDataError;
370
- class InvalidPreRecordedArgsError extends WorkflowExecutorError {
397
+ class InvalidPreRecordedArgsError extends WorkflowConfigurationError {
371
398
  constructor(detail) {
372
399
  super(`Invalid pre-recorded args: ${detail}`, 'The pre-configured step parameters are invalid');
373
400
  }
@@ -376,10 +403,13 @@ exports.InvalidPreRecordedArgsError = InvalidPreRecordedArgsError;
376
403
  // A "Related to" / "On record" source step ran but loaded no record, so the step that uses it has
377
404
  // no source to act on ("no source record"). Distinct from a bad config — the
378
405
  // user can continue without. Wording is step-type-neutral (shared by load-related and trigger-action).
406
+ // The kind comes from the throw site: only there is it known whether a candidate was on offer.
379
407
  class SourceRecordMissingError extends WorkflowExecutorError {
380
- constructor(sourceTitle) {
408
+ constructor(sourceTitle, options = {}) {
381
409
  const from = sourceTitle ? `"${sourceTitle}"` : 'its source step';
382
410
  super(`Source step ${from} loaded no record`, `This step uses ${from} as its source, but that step didn't load any record.`);
411
+ this.errorKind = options.errorKind ?? this.errorKind;
412
+ this.errorSourceStepIndex = options.errorSourceStepIndex;
383
413
  }
384
414
  }
385
415
  exports.SourceRecordMissingError = SourceRecordMissingError;
@@ -437,4 +467,4 @@ class MalformedRunError extends WorkflowExecutorError {
437
467
  }
438
468
  }
439
469
  exports.MalformedRunError = MalformedRunError;
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsb0NBSUM7QUFJRCxrREFZQztBQXBCRCxTQUFnQixZQUFZLENBQUMsS0FBYztJQUN6QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUF3QixDQUFDO0lBRXZELE9BQU8sS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzVELENBQUM7QUFFRCxnR0FBZ0c7QUFDaEcsc0dBQXNHO0FBQ3RHLFNBQWdCLG1CQUFtQixDQUFDLEdBQWE7SUFDL0MsSUFBSSxHQUFHLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxLQUFLLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxJQUFJLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRXBDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUEyQixDQUFDO0lBQy9DLElBQUksTUFBTSxZQUFZLEtBQUssSUFBSSxNQUFNLENBQUMsT0FBTztRQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVyRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBMEIsQ0FBQztJQUM3QyxJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFFbEUsT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBc0IscUJBQXNCLFNBQVEsS0FBSztJQUl2RCxZQUFZLE9BQWUsRUFBRSxXQUFvQjtRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxJQUFJLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFURCxzREFTQztBQUVELG1HQUFtRztBQUNuRyxpR0FBaUc7QUFDakcsZ0dBQWdHO0FBQ2hHLGlHQUFpRztBQUNqRyx5RkFBeUY7QUFDekYsTUFBc0IsYUFBYyxTQUFRLHFCQUFxQjtDQUFHO0FBQXBFLHNDQUFvRTtBQUNwRSxNQUFzQixpQkFBa0IsU0FBUSxxQkFBcUI7Q0FBRztBQUF4RSw4Q0FBd0U7QUFDeEUsTUFBc0IsZ0JBQWlCLFNBQVEscUJBQXFCO0NBQUc7QUFBdkUsNENBQXVFO0FBRXZFLE1BQWEsb0JBQXFCLFNBQVEscUJBQXFCO0lBQzdEO1FBQ0UsS0FBSyxDQUNILCtCQUErQixFQUMvQixzRUFBc0UsQ0FDdkUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELG9EQU9DO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSxxQkFBcUI7SUFHL0QsWUFBWSxRQUFnQixFQUFFLE9BQWU7UUFDM0MsS0FBSyxDQUNILDBDQUEwQyxRQUFRLE1BQU0sT0FBTyxFQUFFLEVBQ2pFLDJFQUEyRSxDQUM1RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBVkQsd0RBVUM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLHFCQUFxQjtJQUM1RCxZQUFZLGNBQXNCLEVBQUUsUUFBa0I7UUFDcEQsS0FBSyxDQUNILGlDQUFpQyxjQUFjLFVBQVUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUM5RSx3REFBd0QsQ0FDekQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELGtEQU9DO0FBRUQsTUFBYSxjQUFlLFNBQVEscUJBQXFCO0lBQ3ZEO1FBQ0UsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBSkQsd0NBSUM7QUFFRCxNQUFhLHFCQUFzQixTQUFRLHFCQUFxQjtJQUM5RCxZQUFZLGNBQXNCO1FBQ2hDLEtBQUssQ0FDSCxpREFBaUQsY0FBYyxHQUFHLEVBQ2xFLHFFQUFxRSxDQUN0RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsc0RBT0M7QUFFRCxNQUFhLHFCQUFzQixTQUFRLHFCQUFxQjtJQUM5RCxZQUFZLFVBQW9CO1FBQzlCLEtBQUssQ0FDSCxtREFBbUQsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUMxRSwyRkFBMkYsQ0FDNUYsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELHNEQU9DO0FBRUQsTUFBYSxxQkFBc0IsU0FBUSxxQkFBcUI7SUFDOUQsWUFBWSxjQUFzQjtRQUNoQyxLQUFLLENBQ0gsaURBQWlELGNBQWMsR0FBRyxFQUNsRSxxRUFBcUUsQ0FDdEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELHNEQU9DO0FBRUQsTUFBYSxjQUFlLFNBQVEscUJBQXFCO0lBQ3ZELFlBQVksY0FBc0I7UUFDaEMsS0FBSyxDQUNILHVDQUF1QyxjQUFjLEdBQUcsRUFDeEQsMENBQTBDLENBQzNDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCx3Q0FPQztBQUVELE1BQWEsMEJBQTJCLFNBQVEscUJBQXFCO0lBQ25FLFlBQVksaUJBQXlCO1FBQ25DLEtBQUssQ0FDSCxXQUFXLGlCQUFpQiwwREFBMEQsRUFDdEYsc0ZBQXNGLENBQ3ZGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxnRUFPQztBQUVELGlHQUFpRztBQUNqRyxnRkFBZ0Y7QUFDaEYsOENBQThDO0FBQzlDLE1BQWEseUJBQTBCLFNBQVEscUJBQXFCO0lBQ2xFLFlBQVksVUFBa0IsRUFBRSxLQUFlO1FBQzdDLEtBQUssQ0FDSCxXQUFXLFVBQVUsc0NBQXNDLEVBQzNELGdGQUFnRixDQUNqRixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBUkQsOERBUUM7QUFFRCxpR0FBaUc7QUFDakcsb0ZBQW9GO0FBQ3BGLHdGQUF3RjtBQUN4RiwwQ0FBMEM7QUFDMUMsTUFBYSwyQkFBNEIsU0FBUSxxQkFBcUI7SUFHcEUsWUFBWSxVQUFrQixFQUFFLHVCQUFrQztRQUNoRSxLQUFLLENBQ0gsV0FBVyxVQUFVLGlFQUFpRSxFQUN0Rix5RUFBeUUsQ0FDMUUsQ0FBQztRQUNGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFWRCxrRUFVQztBQUVELGtHQUFrRztBQUNsRyxNQUFhLDRCQUE2QixTQUFRLHFCQUFxQjtJQUNyRSxZQUFZLFVBQWtCLEVBQUUsS0FBZTtRQUM3QyxLQUFLLENBQ0gsV0FBVyxVQUFVLHVFQUF1RSxFQUM1RixnR0FBZ0csQ0FDakcsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQVJELG9FQVFDO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFDckQsWUFBWSxTQUFpQixFQUFFLEtBQWM7UUFDM0MsS0FBSyxDQUNILGNBQWMsU0FBUyxhQUFhLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUM1RixxREFBcUQsQ0FDdEQsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQVJELDhDQVFDO0FBRUQsTUFBYSx5QkFBMEIsU0FBUSxxQkFBcUI7SUFDbEUsWUFBWSxjQUFzQjtRQUNoQyxLQUFLLENBQ0gscURBQXFELGNBQWMsR0FBRyxFQUN0RSwrREFBK0QsQ0FDaEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELDhEQU9DO0FBRUQsTUFBYSwwQkFBMkIsU0FBUSxxQkFBcUI7SUFDbkUsWUFBWSxjQUFzQixFQUFFLFlBQW9CO1FBQ3RELEtBQUssQ0FDSCx5Q0FBeUMsWUFBWSxvQkFBb0IsY0FBYyxHQUFHLEVBQzFGLGtFQUFrRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsZ0VBT0M7QUFFRCxNQUFhLHNCQUF1QixTQUFRLHFCQUFxQjtJQUMvRCxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sRUFBRSxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FDRjtBQUpELHdEQUlDO0FBRUQsTUFBYSxxQkFBc0IsU0FBUSxxQkFBcUI7SUFDOUQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLEVBQUUsK0RBQStELENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0Y7QUFKRCxzREFJQztBQUVELE1BQWEscUJBQXNCLFNBQVEscUJBQXFCO0lBQzlELFlBQVksSUFBWSxFQUFFLGNBQXNCO1FBQzlDLEtBQUssQ0FDSCxhQUFhLElBQUksOEJBQThCLGNBQWMsR0FBRyxFQUNoRSxpR0FBaUcsQ0FDbEcsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELHNEQU9DO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxxQkFBcUI7SUFDM0QsWUFBWSxJQUFZLEVBQUUsY0FBc0I7UUFDOUMsS0FBSyxDQUNILFVBQVUsSUFBSSw4QkFBOEIsY0FBYyxHQUFHLEVBQzdELDhGQUE4RixDQUMvRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsZ0RBT0M7QUFFRCxNQUFhLHFCQUFzQixTQUFRLHFCQUFxQjtJQUM5RCxZQUFZLElBQVksRUFBRSxjQUFzQjtRQUM5QyxLQUFLLENBQ0gsVUFBVSxJQUFJLG9CQUFvQixjQUFjLHNCQUFzQixFQUN0RSwyRUFBMkU7WUFDekUscURBQXFELENBQ3hELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFSRCxzREFRQztBQUVELE1BQWEsbUJBQW9CLFNBQVEscUJBQXFCO0lBQzVELFlBQVksSUFBWSxFQUFFLGNBQXNCO1FBQzlDLEtBQUssQ0FDSCxXQUFXLElBQUksOEJBQThCLGNBQWMsR0FBRyxFQUM5RCxnR0FBZ0csQ0FDakcsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVBELGtEQU9DO0FBRUQsTUFBYSxjQUFlLFNBQVEscUJBQXFCO0lBQ3ZELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxFQUFFLDBEQUEwRCxDQUFDLENBQUM7SUFDN0UsQ0FBQztDQUNGO0FBSkQsd0NBSUM7QUFFRCwwR0FBMEc7QUFDMUcsTUFBYSx3QkFBeUIsU0FBUSxxQkFBcUI7SUFDakUsWUFBWSxLQUFjO1FBQ3hCLEtBQUssQ0FDSCwrQkFBK0IsRUFDL0IsdUhBQXVILENBQ3hILENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFSRCw0REFRQztBQUVELE1BQWEsZ0JBQWlCLFNBQVEscUJBQXFCO0lBQ3pELFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxDQUNILHNDQUFzQyxRQUFRLEdBQUcsRUFDakQsOEdBQThHLENBQy9HLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCw0Q0FPQztBQUVELDZGQUE2RjtBQUM3Rix5RkFBeUY7QUFDekYsbUZBQW1GO0FBQ25GLE1BQWEsb0JBQXFCLFNBQVEscUJBQXFCO0lBQzdELFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxDQUNILHNDQUFzQyxRQUFRLEdBQUcsRUFDakQsbUhBQW1ILENBQ3BILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxvREFPQztBQUVELGlHQUFpRztBQUNqRyx1R0FBdUc7QUFDdkcsTUFBYSx3QkFBeUIsU0FBUSxxQkFBcUI7SUFHakUsWUFBWSxNQUFlO1FBQ3pCLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQVBELDREQU9DO0FBRUQsTUFBYSxlQUFnQixTQUFRLHFCQUFxQjtJQUN4RCxZQUFZLG9CQUE0QjtRQUN0QyxLQUFLLENBQ0gsMkNBQTJDLG9CQUFvQixHQUFHLEVBQ2xFLDZIQUE2SCxDQUM5SCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsMENBT0M7QUFFRCxNQUFhLG9CQUFxQixTQUFRLHFCQUFxQjtJQUM3RCxZQUFZLElBQVk7UUFDdEIsS0FBSyxDQUNILGFBQWEsSUFBSSxhQUFhLEVBQzlCLDhFQUE4RSxDQUMvRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsb0RBT0M7QUFFRCxNQUFhLGNBQWUsU0FBUSxxQkFBcUI7SUFDdkQsWUFBWSxTQUFpQixFQUFFLEtBQWM7UUFDM0MsS0FBSyxDQUNILGVBQWUsU0FBUyxhQUFhLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUM3RixnRUFBZ0UsQ0FDakUsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQVJELHdDQVFDO0FBRUQsOEZBQThGO0FBQzlGLDRGQUE0RjtBQUM1RixNQUFhLG9CQUFxQixTQUFRLHFCQUFxQjtJQUM3RCxZQUFZLGNBQXNCO1FBQ2hDLEtBQUssQ0FDSCwwQkFBMEIsY0FBYyxpRUFBaUUsRUFDekcsZ0VBQWdFLENBQ2pFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxvREFPQztBQUVELE1BQWEsaUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ3JELFlBQVksU0FBaUIsRUFBRSxLQUFjO1FBQzNDLEtBQUssQ0FDSCxrQkFBa0IsU0FBUyxhQUN6QixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN2RCxFQUFFLEVBQ0YsNkdBQTZHLENBQzlHLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFWRCw4Q0FVQztBQUVELE1BQWEsZ0JBQWlCLFNBQVEscUJBQXFCO0lBQ3pELFlBQVksU0FBaUIsRUFBRSxLQUFjO1FBQzNDLEtBQUssQ0FDSCxhQUFhLFNBQVMsYUFBYSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDM0YsZ0ZBQWdGLENBQ2pGLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFSRCw0Q0FRQztBQUVELE1BQWEsc0JBQXVCLFNBQVEscUJBQXFCO0lBQy9ELFlBQVksUUFBZ0IsRUFBRSxLQUFjO1FBQzFDLEtBQUssQ0FDSCxhQUFhLFFBQVEsd0JBQ25CLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3ZELEVBQUUsRUFDRiw2RUFBNkUsQ0FDOUUsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQVZELHdEQVVDO0FBRUQsTUFBYSxrQkFBbUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQUxELGdEQUtDO0FBRUQsa0dBQWtHO0FBQ2xHLG1GQUFtRjtBQUNuRixNQUFhLHdCQUF5QixTQUFRLHFCQUFxQjtJQUdqRSxZQUNFLFdBQW1CLEVBQ25CLHNCQUEyQyxvQkFBb0I7UUFFL0QsS0FBSyxDQUNILHFEQUFxRCxXQUFXLEdBQUcsRUFDbkUsNEZBQTRGLENBQzdGLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBYkQsNERBYUM7QUFFRCxtR0FBbUc7QUFDbkcsMEdBQTBHO0FBQzFHLE1BQWEsaUJBQWtCLFNBQVEscUJBQXFCO0lBQzFELFlBQVksT0FBZSxFQUFFLEtBQWU7UUFDMUMsS0FBSyxDQUNILCtCQUErQixPQUFPLEVBQUUsRUFDeEMsa0VBQWtFLENBQ25FLENBQUM7UUFDRixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBUkQsOENBUUM7QUFFRCxnR0FBZ0c7QUFDaEcsb0dBQW9HO0FBQ3BHLHlDQUF5QztBQUN6QyxNQUFhLHNCQUF1QixTQUFRLHFCQUFxQjtJQUMvRCxZQUFZLE1BQWU7UUFDekIsS0FBSyxDQUFDLCtCQUErQixNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBSkQsd0RBSUM7QUFFRCxvR0FBb0c7QUFDcEcsbUdBQW1HO0FBQ25HLDZGQUE2RjtBQUM3RixNQUFhLHlCQUEwQixTQUFRLHFCQUFxQjtJQUNsRSxZQUFZLE1BQWM7UUFDeEIsS0FBSyxDQUNILGlDQUFpQyxNQUFNLEVBQUUsRUFDekMsa0ZBQWtGLENBQ25GLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCw4REFPQztBQUVELGtHQUFrRztBQUNsRyx5RUFBeUU7QUFDekUsTUFBYSxpQ0FBa0MsU0FBUSxLQUFLO0lBRzFEO1FBQ0UsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFINUMsU0FBSSxHQUFHLGlDQUFpQyxDQUFDO1FBSWhELElBQUksQ0FBQyxJQUFJLEdBQUcsbUNBQW1DLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBUEQsOEVBT0M7QUFFRCxtR0FBbUc7QUFDbkcsbUVBQW1FO0FBQ25FLE1BQWEsZ0JBQWlCLFNBQVEsYUFBYTtJQUNqRCxZQUFZLEtBQWEsRUFBRSxLQUFlO1FBQ3hDLEtBQUssQ0FBQyxRQUFRLEtBQUssNEJBQTRCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUNqRixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBTEQsNENBS0M7QUFFRCxNQUFhLGlCQUFrQixTQUFRLGlCQUFpQjtJQUN0RCw2RkFBNkY7SUFDN0YsOERBQThEO0lBQzlELFlBQVksS0FBYSxFQUFFLFlBQW9CLEVBQUUsV0FBbUI7UUFDbEUsS0FBSyxDQUNILFFBQVEsWUFBWSw0QkFBNEIsS0FBSyxvQkFBb0IsV0FBVyxHQUFHLEVBQ3ZGLDRDQUE0QyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBVEQsOENBU0M7QUFFRCxpR0FBaUc7QUFDakcsbUdBQW1HO0FBQ25HLE1BQWEsdUJBQXdCLFNBQVEscUJBQXFCO0lBQ2hFLFlBQVksS0FBYTtRQUN2QixLQUFLLENBQUMsUUFBUSxLQUFLLDhCQUE4QixFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDdEYsQ0FBQztDQUNGO0FBSkQsMERBSUM7QUFFRCxNQUFhLHdCQUF5QixTQUFRLEtBQUs7SUFDakQsWUFBWSxLQUFhLEVBQUUsU0FBaUI7UUFDMUMsS0FBSyxDQUFDLFFBQVEsU0FBUyxZQUFZLEtBQUssb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFDO0lBQ3pDLENBQUM7Q0FDRjtBQUxELDREQUtDO0FBU0QsTUFBYSx1QkFBd0IsU0FBUSxxQkFBcUI7SUFHaEUsWUFBWSxNQUF5QjtRQUNuQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFQRCwwREFPQztBQUVELE1BQWEsMkJBQTRCLFNBQVEscUJBQXFCO0lBQ3BFLFlBQVksTUFBYztRQUN4QixLQUFLLENBQUMsOEJBQThCLE1BQU0sRUFBRSxFQUFFLGdEQUFnRCxDQUFDLENBQUM7SUFDbEcsQ0FBQztDQUNGO0FBSkQsa0VBSUM7QUFFRCxrR0FBa0c7QUFDbEcsNkVBQTZFO0FBQzdFLHVHQUF1RztBQUN2RyxNQUFhLHdCQUF5QixTQUFRLHFCQUFxQjtJQUNqRSxZQUFZLFdBQW9CO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDbEUsS0FBSyxDQUNILGVBQWUsSUFBSSxtQkFBbUIsRUFDdEMsa0JBQWtCLElBQUksdURBQXVELENBQzlFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFSRCw0REFRQztBQUVELDRHQUE0RztBQUM1RyxNQUFhLGVBQWdCLFNBQVEsS0FBSztJQUl4QyxZQUFZLE9BQWUsRUFBRSxPQUE2QjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUM5QixJQUFJLE9BQU8sRUFBRSxLQUFLLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUFURCwwQ0FTQztBQUVELE1BQWEsd0JBQXlCLFNBQVEscUJBQXFCO0lBQ2pFLFlBQVksUUFBZ0I7UUFDMUIsS0FBSyxDQUNILGNBQWMsUUFBUSxvQ0FBb0MsRUFDMUQsc0NBQXNDLENBQ3ZDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCw0REFPQztBQUVELE1BQWEsMEJBQTJCLFNBQVEscUJBQXFCO0lBQ25FLFlBQVksSUFBWTtRQUN0QixLQUFLLENBQ0gsNkJBQTZCLElBQUksb0NBQW9DLEVBQ3JFLGdGQUFnRixDQUNqRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUEQsZ0VBT0M7QUFFRCxNQUFhLDBCQUEyQixTQUFRLHFCQUFxQjtJQUNuRSxZQUFZLE1BQWM7UUFDeEIsS0FBSyxDQUNILDRCQUE0QixNQUFNLEVBQUUsRUFDcEMsaUZBQWlGLENBQ2xGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFQRCxnRUFPQztBQUVELHVGQUF1RjtBQUN2RixpR0FBaUc7QUFDakcscUZBQXFGO0FBQ3JGLE1BQWEscUJBQXNCLFNBQVEscUJBQXFCO0lBRzlELFlBQVksS0FBYSxFQUFFLFFBQW9CO1FBQzdDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUTtZQUNsQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTTtZQUMzQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxzREFBc0QsQ0FBQztRQUUzRCxLQUFLLENBQ0gsT0FBTyxLQUFLLHFEQUFxRCxPQUFPLEVBQUUsRUFDMUUsc0ZBQXNGLENBQ3ZGLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFuQkQsc0RBbUJDO0FBRUQsNEZBQTRGO0FBQzVGLE1BQWEsaUJBQWtCLFNBQVEscUJBQXFCO0lBRzFELFlBQVksSUFBc0I7UUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBUEQsOENBT0MifQ==
470
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsb0NBSUM7QUFJRCxrREFZQztBQXBCRCxTQUFnQixZQUFZLENBQUMsS0FBYztJQUN6QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUF3QixDQUFDO0lBRXZELE9BQU8sS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzVELENBQUM7QUFFRCxnR0FBZ0c7QUFDaEcsc0dBQXNHO0FBQ3RHLFNBQWdCLG1CQUFtQixDQUFDLEdBQWE7SUFDL0MsSUFBSSxHQUFHLEtBQUssU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxLQUFLLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxJQUFJLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRXBDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUEyQixDQUFDO0lBQy9DLElBQUksTUFBTSxZQUFZLEtBQUssSUFBSSxNQUFNLENBQUMsT0FBTztRQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUVyRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBMEIsQ0FBQztJQUM3QyxJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFFbEUsT0FBTyxHQUFHLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBc0IscUJBQXNCLFNBQVEsS0FBSztJQVl2RCxZQUFZLE9BQWUsRUFBRSxXQUFvQjtRQUMvQyxLQUFLLENBQUMs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
@@ -2,19 +2,22 @@ import type { ExecutionContext, IStepExecutor, StepExecutionResult } from '../ty
2
2
  import type { ConfirmableStepExecutionData, StepExecutionData } from '../types/step-execution-data';
3
3
  import type { Step } from '../types/validated/execution';
4
4
  import type { StepDefinition } from '../types/validated/step-definition';
5
- import type { StepStatus } from '../types/validated/step-outcome';
5
+ import type { ErrorKind, StepStatus } from '../types/validated/step-outcome';
6
6
  import type { BaseMessage, DynamicStructuredTool, StructuredToolInterface } from '@forestadmin/ai-proxy';
7
7
  import { SystemMessage } from '@forestadmin/ai-proxy';
8
8
  export default abstract class BaseStepExecutor<TStep extends StepDefinition = StepDefinition> implements IStepExecutor {
9
9
  protected readonly context: ExecutionContext<TStep>;
10
10
  constructor(context: ExecutionContext<TStep>);
11
11
  execute(): Promise<StepExecutionResult>;
12
+ private buildErrorOutcome;
12
13
  protected abstract doExecute(): Promise<StepExecutionResult>;
13
14
  protected checkIdempotency(): Promise<StepExecutionResult | null>;
14
15
  private runWithTimeout;
15
16
  protected abstract buildOutcomeResult(outcome: {
16
17
  status: StepStatus;
17
18
  error?: string;
19
+ errorKind?: ErrorKind;
20
+ errorSourceStepIndex?: number;
18
21
  }): StepExecutionResult;
19
22
  protected findPendingExecution<TExec extends ConfirmableStepExecutionData>(type: string): Promise<TExec | undefined>;
20
23
  protected patchAndReloadPendingData<TExec extends ConfirmableStepExecutionData>(pendingData?: unknown): Promise<TExec | undefined>;