@sensigo/realm 0.41.0 → 0.43.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 (41) hide show
  1. package/dist/adapters/gorgias-adapter.d.ts.map +1 -1
  2. package/dist/adapters/gorgias-adapter.js +39 -10
  3. package/dist/adapters/gorgias-adapter.js.map +1 -1
  4. package/dist/engine/execution-loop.d.ts.map +1 -1
  5. package/dist/engine/execution-loop.js +124 -21
  6. package/dist/engine/execution-loop.js.map +1 -1
  7. package/dist/engine/run-health.d.ts +1 -1
  8. package/dist/engine/run-health.d.ts.map +1 -1
  9. package/dist/engine/run-health.js +49 -4
  10. package/dist/engine/run-health.js.map +1 -1
  11. package/dist/index.d.ts +7 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +8 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/types/run-record.d.ts +11 -1
  16. package/dist/types/run-record.d.ts.map +1 -1
  17. package/dist/types/run-record.js.map +1 -1
  18. package/dist/types/workflow-definition.d.ts +146 -10
  19. package/dist/types/workflow-definition.d.ts.map +1 -1
  20. package/dist/types/workflow-definition.js +225 -0
  21. package/dist/types/workflow-definition.js.map +1 -1
  22. package/dist/types/workflow-error.d.ts +1 -1
  23. package/dist/types/workflow-error.d.ts.map +1 -1
  24. package/dist/types/workflow-error.js.map +1 -1
  25. package/dist/workflow/diagnostics.d.ts +41 -5
  26. package/dist/workflow/diagnostics.d.ts.map +1 -1
  27. package/dist/workflow/diagnostics.js +34 -6
  28. package/dist/workflow/diagnostics.js.map +1 -1
  29. package/dist/workflow/registrar.d.ts +42 -0
  30. package/dist/workflow/registrar.d.ts.map +1 -1
  31. package/dist/workflow/registrar.js +57 -0
  32. package/dist/workflow/registrar.js.map +1 -1
  33. package/dist/workflow/step-key-registry.d.ts +1258 -0
  34. package/dist/workflow/step-key-registry.d.ts.map +1 -0
  35. package/dist/workflow/step-key-registry.js +1217 -0
  36. package/dist/workflow/step-key-registry.js.map +1 -0
  37. package/dist/workflow/yaml-loader.d.ts +16 -0
  38. package/dist/workflow/yaml-loader.d.ts.map +1 -1
  39. package/dist/workflow/yaml-loader.js +581 -345
  40. package/dist/workflow/yaml-loader.js.map +1 -1
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"gorgias-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,CAAC;QACd,sDAAsD;QACtD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,wBAAwB,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAmBpD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;YAQN,cAAc;YAqEd,cAAc;IA2E5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAcpB,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IA4LrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IAkDrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;CAqC5B"}
1
+ {"version":3,"file":"gorgias-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,CAAC;QACd,sDAAsD;QACtD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,wBAAwB,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAmBpD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;YAQN,cAAc;YAqEd,cAAc;IA2E5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAcpB,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IA0NrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IAkDrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;CAqC5B"}
@@ -238,6 +238,15 @@ export class GorgiasAdapter {
238
238
  stableParts.push(`order_by=${encodeURIComponent(orderBy)}`);
239
239
  const accumulated = [];
240
240
  let cursor = undefined;
241
+ // #575: not every Gorgias list endpoint uses the cursor contract. GET /tickets/{id}/messages
242
+ // (the per-ticket path — what every real get_messages call goes through, since ticket_id is
243
+ // always supplied) uses an older page-based scheme instead: it hands back a complete
244
+ // `meta.next_page` relative URL rather than a `meta.next_cursor` token. When a response
245
+ // carries a next_page URL, `nextUrl` holds the fully-resolved request URL to use verbatim on
246
+ // the following iteration, bypassing `stableParts`/`cursor` entirely — Gorgias's next_page
247
+ // already encodes the full continuation query, so re-deriving it would risk drifting from
248
+ // what Gorgias actually asked us to fetch next.
249
+ let nextUrl = undefined;
241
250
  // INVARIANT: truncated === true iff at least one message the API would have returned for
242
251
  // this request was NOT included in `messages` — i.e. we stopped because of effectiveLimit,
243
252
  // never merely because the API ran out. (A1 fix: the prior version checked next_cursor===null
@@ -246,13 +255,19 @@ export class GorgiasAdapter {
246
255
  let truncated = false;
247
256
  for (;;) {
248
257
  this.checkAborted(signal);
249
- const urlParts = cursor !== undefined ? [...stableParts, `cursor=${cursor}`] : stableParts;
250
- // Per-ticket endpoint when a ticket_id is supplied — the flat /messages?ticket_id= filter
251
- // is inconsistent (returns 0, 1, or all messages for the same request; live evidence:
252
- // ticket 71355453 → 0 via the flat filter vs 4 via the per-ticket path, same moment).
253
- // Retained for the global-scan case (ticketId === null), where there is no id to path on.
254
- const messagesPath = ticketId !== null ? `/tickets/${ticketId}/messages` : `/messages`;
255
- const url = `${this.baseUrl}${messagesPath}?${urlParts.join('&')}`;
258
+ let url;
259
+ if (nextUrl !== undefined) {
260
+ url = nextUrl;
261
+ }
262
+ else {
263
+ const urlParts = cursor !== undefined ? [...stableParts, `cursor=${cursor}`] : stableParts;
264
+ // Per-ticket endpoint when a ticket_id is supplied — the flat /messages?ticket_id= filter
265
+ // is inconsistent (returns 0, 1, or all messages for the same request; live evidence:
266
+ // ticket 71355453 → 0 via the flat filter vs 4 via the per-ticket path, same moment).
267
+ // Retained for the global-scan case (ticketId === null), where there is no id to path on.
268
+ const messagesPath = ticketId !== null ? `/tickets/${ticketId}/messages` : `/messages`;
269
+ url = `${this.baseUrl}${messagesPath}?${urlParts.join('&')}`;
270
+ }
256
271
  const response = await this.executeRequest('GET', url, 'get_messages', undefined, signal);
257
272
  const json = response.data;
258
273
  for (const message of json.data) {
@@ -264,14 +279,28 @@ export class GorgiasAdapter {
264
279
  }
265
280
  }
266
281
  const nextCursor = json.meta.next_cursor ?? null;
282
+ const nextPage = json.meta.next_page ?? null;
283
+ const hasContinuation = nextCursor !== null || nextPage !== null;
267
284
  if (accumulated.length >= effectiveLimit) {
268
- if (nextCursor !== null)
285
+ if (hasContinuation)
269
286
  truncated = true; // more pages remain past the limit
270
287
  break;
271
288
  }
272
- if (nextCursor === null)
289
+ if (!hasContinuation)
273
290
  break; // API exhausted with room to spare — nothing dropped
274
- cursor = nextCursor;
291
+ if (nextCursor !== null) {
292
+ cursor = nextCursor;
293
+ nextUrl = undefined;
294
+ }
295
+ else if (nextPage !== null) {
296
+ // Follow the URL Gorgias gives you, the same way the cursor branch follows the cursor
297
+ // Gorgias gives you. next_page is an absolute-path reference (e.g.
298
+ // `/api/tickets/74952676/messages/?limit=100&page=2`); resolving it against this.baseUrl
299
+ // (which itself already carries `/api`, e.g. `https://{domain}.gorgias.com/api`) replaces
300
+ // the base's path with next_page's own path per the URL spec, rather than concatenating —
301
+ // exactly right, since next_page already includes its own `/api/...` prefix.
302
+ nextUrl = new URL(nextPage, this.baseUrl).toString();
303
+ }
275
304
  }
276
305
  return { status: 200, data: { messages: accumulated, truncated } };
277
306
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gorgias-adapter.js","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAuEvF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,cAAc;IAChB,EAAE,CAAS;IACX,wBAAwB,GAAG,EAAE,CAAC;IACtB,OAAO,CAAS;IAChB,UAAU,CAAS;IAEpC,YAAY,EAAU,EAAE,MAA4B;QAClD,gFAAgF;QAChF,2DAA2D;QAC3D,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,cAAc,CAAC,CAAC;YAChE,WAAW,GAAG,OAAO,CAAC,QAAQ,KAAK,GAAG,MAAM,CAAC,MAAM,cAAc,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,MAAM,CAAC,MAAM,kBAAkB,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IAEO,YAAY,CAAC,MAAoB;QACvC,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE;gBACjD,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,UAAU;YAC9B,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAA8B,EAC9B,GAAW,EACX,SAAiB,EACjB,IAAc,EACd,MAAoB;QAEpB,MAAM,YAAY,GAChB,MAAM,KAAK,KAAK;YACd,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE;YAClE,CAAC,CAAC;gBACE,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,kFAAkF;gBAClF,kFAAkF;gBAClF,8EAA8E;gBAC9E,yEAAyE;gBACzE,QAAQ,EAAE,QAAQ;aACnB,CAAC;QAER,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACtD,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE;oBACjD,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,gBAAgB;oBAC7B,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE;gBAC/B,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAED,2FAA2F;QAC3F,0FAA0F;QAC1F,oFAAoF;QACpF,2FAA2F;QAC3F,yCAAyC;QACzC,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACxE,MAAM,IAAI,aAAa,CACrB,6CAA6C,QAAQ,CAAC,MAAM,QAAQ,MAAM,IAAI,SAAS,+CAA+C,EACtI;gBACE,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;aACxD,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAkB,EAAE,SAAiB;QAChE,gFAAgF;QAChF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAEnE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YACxF,MAAM,IAAI,aAAa,CAAC,6BAA6B,EAAE;gBACrD,IAAI,EAAE,sBAAsB;gBAC5B,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,kBAAkB;gBAC/B,SAAS,EAAE,IAAI;gBACf,GAAG,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,yDAAyD,EAAE;gBACjF,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,mDAAmD,SAAS,GAAG,EAAE;gBACvF,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,4BAA4B,EAAE;gBACpD,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,MAAM,IAAI,aAAa,CAAC,QAAQ,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EAAE;gBAChE,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,SAAS;gBACnB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,MAAM;QACN,MAAM,IAAI,aAAa,CAAC,8BAA8B,MAAM,GAAG,EAAE;YAC/D,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,IAAI;YACf,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,MAA+B;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,aAAa,CAAC,sDAAsD,EAAE;gBAC9E,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,kBAAkB,CAAC,MAA+B;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,aAAa,CAAC,wDAAwD,EAAE;gBAChF,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,4DAA4D;QAE5D,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,YAAY,QAAQ,EAAE,EACrC,YAAY,EACZ,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,kGAAkG;YAClG,mGAAmG;YACnG,gFAAgF;YAChF,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,oEAAoE;YACpG,MAAM,mBAAmB,GAAG,EAAE,CAAC,CAAC,8DAA8D;YAC9F,wFAAwF;YACxF,wFAAwF;YACxF,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,MAAM,cAAc,GAClB,aAAa,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAElF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,WAAW,GAAa,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;YACrD,IAAI,OAAO,KAAK,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEvF,MAAM,WAAW,GAAqB,EAAE,CAAC;YACzC,IAAI,MAAM,GAAuB,SAAS,CAAC;YAC3C,yFAAyF;YACzF,2FAA2F;YAC3F,8FAA8F;YAC9F,4FAA4F;YAC5F,mEAAmE;YACnE,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,SAAS,CAAC;gBACR,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC3F,0FAA0F;gBAC1F,sFAAsF;gBACtF,sFAAsF;gBACtF,0FAA0F;gBAC1F,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;gBACvF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC,IAGrB,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,WAAW,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;wBACxC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,IAAI,CAAC,CAAC,0DAA0D;oBAC9E,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;gBACjD,IAAI,WAAW,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;oBACzC,IAAI,UAAU,KAAK,IAAI;wBAAE,SAAS,GAAG,IAAI,CAAC,CAAC,mCAAmC;oBAC9E,MAAM;gBACR,CAAC;gBACD,IAAI,UAAU,KAAK,IAAI;oBAAE,MAAM,CAAC,qDAAqD;gBACrF,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC;QACrE,CAAC;QAED,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,yFAAyF;YACzF,4FAA4F;YAC5F,gEAAgE;YAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzF,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,aAAa,CACrB,+BAA+B,GAAG,wDAAwD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EACzI;wBACE,IAAI,EAAE,2BAA2B;wBACjC,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,eAAe;wBAC5B,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;qBACtE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CACnC,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,WAAW,WAAW,EAAE,EACvC,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;YACF,yFAAyF;YACzF,yDAAyD;YACzD,MAAM,IAAI,GAAI,GAAG,CAAC,IAAmD,CAAC,IAAI,CAAC;YAC3E,OAAO;gBACL,GAAG,GAAG;gBACN,IAAI,EAAE;oBACJ,GAAI,GAAG,CAAC,IAAgC;oBACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI;iBAC/C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,cAAc,UAAU,EAAE,EACzC,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,yFAAyF;YACzF,4FAA4F;YAC5F,gEAAgE;YAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzF,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,aAAa,CACrB,+BAA+B,GAAG,wDAAwD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EACzI;wBACE,IAAI,EAAE,2BAA2B;wBACjC,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,eAAe;wBAC5B,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;qBACtE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CACnC,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,aAAa,WAAW,EAAE,EACzC,gBAAgB,EAChB,SAAS,EACT,MAAM,CACP,CAAC;YACF,yFAAyF;YACzF,yDAAyD;YACzD,MAAM,IAAI,GAAI,GAAG,CAAC,IAAmD,CAAC,IAAI,CAAC;YAC3E,OAAO;gBACL,GAAG,GAAG;gBACN,IAAI,EAAE;oBACJ,GAAI,GAAG,CAAC,IAAgC;oBACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI;iBAC/C;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,gDAAgD,SAAS,GAAG,EAAE;YACpF,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,SAAS,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,4DAA4D;QAE5D,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE/C,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;YAEnD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE1B,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,YAAY,QAAQ,WAAW,EAC9C,gBAAgB,EAChB,WAAW,EACX,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,UAAU,EACzB,eAAe,EACf,MAAM,EACN,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,EACN,GAAG,IAAI,CAAC,OAAO,YAAY,EAC3B,iBAAiB,EACjB,MAAM,EACN,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,iDAAiD,SAAS,GAAG,EAAE;YACrF,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,SAAS,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,4DAA4D;QAE5D,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,YAAY,QAAQ,EAAE,EACrC,eAAe,EACf,UAAU,EACV,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CACxB,KAAK,EACL,GAAG,IAAI,CAAC,OAAO,cAAc,UAAU,EAAE,EACzC,iBAAiB,EACjB,YAAY,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,iDAAiD,SAAS,GAAG,EAAE;YACrF,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,SAAS,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"gorgias-adapter.js","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { extensionIdentityDiffers } from '../types/extension-identity.js';
2
2
  import { WorkflowError } from '../types/workflow-error.js';
3
+ import { classifyStepTrust, isGateTrust, buildTrustRefusal } from '../types/workflow-definition.js';
3
4
  import { persistsField } from '../store/store-fidelity.js';
4
5
  import { storeDeclaresSeal, storeDeclaresNonceCarriage } from '../store/trace-buffer-store.js';
5
6
  import { partitionBufferedEntries } from './trace-adoption.js';
@@ -941,6 +942,55 @@ export async function executeStep(store, definition, options) {
941
942
  };
942
943
  }
943
944
  const stepDef = definition.steps[options.command];
945
+ // issue #508 (L2) — fail CLOSED, not merely fail-loud, on a trust value L1 would have refused
946
+ // at load. This is the layer that closes the population L1 cannot reach: a definition already
947
+ // sitting in the registry from before L1 shipped (`registrar.ts` reads back with ZERO
948
+ // validation), or one an embedder hands to this function directly without ever routing it
949
+ // through the loader at all. Guard/finalizer are excluded from `classifyStepTrust`'s 'refuse'
950
+ // population by construction here — `eligibility.ts`'s `findEligibleSteps` keeps them out of
951
+ // `executeStep` entirely, so `stepDef?.execution` this function ever sees is 'auto' or 'agent'
952
+ // (a mutant hardcoding the kind here would be an EQUIVALENT MUTANT; #519 owns validating a
953
+ // loader-bypassing definition's guard/finalizer steps structurally).
954
+ //
955
+ // MUST precede `store.claimStep` below (Step 3): `makeErrorEnvelope` is a pure builder that
956
+ // never writes, so a guard placed after the claim would leave an ORPHAN CLAIM — every retry
957
+ // then returns `STATE_STEP_ALREADY_CLAIMED` until the claim deadline expires, and the run-
958
+ // health finding below goes silent too (the orphan claim removes the step from eligibility,
959
+ // which is what the finding is keyed on) — the operator loses the recovery AND the
960
+ // explanation at once. Placed AFTER Step 1.5's `enactExpiredGateIfDue` above, deliberately:
961
+ // enacting a DIFFERENT step's already-expired gate is lawful and must not be blocked by this
962
+ // step's own trust defect.
963
+ if (classifyStepTrust(stepDef?.execution, stepDef?.trust) === 'refuse') {
964
+ // issue #508 (final correction): this whole message is now `buildTrustRefusal`
965
+ // (types/workflow-definition.ts) — the same composer L1 (yaml-loader.ts), the
966
+ // trust_value_invalid finding (run-health.ts), and the protocol briefing (generator.ts) all
967
+ // use, so this surface can no longer silently fall back to the generic "not a recognized
968
+ // value" text while the other three name a service-trust confusion or the human_notified
969
+ // tombstone by their own arm. `stepDef!` is sound here: `classifyStepTrust` only reaches
970
+ // 'refuse' when `stepDef?.trust !== undefined`, which is only possible when `stepDef` itself
971
+ // is defined (optional chaining on an undefined `stepDef` would make `.trust` undefined too,
972
+ // routing to the FIRST 'lawful_no_gate' arm instead) — and `stepDef.execution` is always
973
+ // 'auto' or 'agent' here by construction, per this function's own comment above (guard and
974
+ // finalizer never reach `executeStep` at all).
975
+ const err = new WorkflowError(buildTrustRefusal({
976
+ kind: stepDef.execution,
977
+ value: stepDef.trust,
978
+ step: options.command,
979
+ surface: 'dispatch',
980
+ }), {
981
+ code: 'VALIDATION_TRUST_VALUE',
982
+ category: 'VALIDATION',
983
+ agentAction: 'report_to_user',
984
+ retryable: false,
985
+ stepId: options.command,
986
+ });
987
+ // Deliberately NOT passing `definition`: `makeErrorEnvelope` appends
988
+ // `buildNextActions(definition, run)` whenever a definition is supplied and the error's
989
+ // agentAction isn't 'stop' (:1007-1009) — the refused step is by construction still
990
+ // eligible, so it would appear in its own refusal's `next_actions`, and an agent following
991
+ // them would loop forever. Omitting `definition` here is what keeps `next_actions: []`.
992
+ return makeErrorEnvelope(options, run, err);
993
+ }
944
994
  const evidenceByStep = buildEvidenceByStep(run);
945
995
  // Step 2a: Evaluate preconditions.
946
996
  if (stepDef?.preconditions !== undefined && stepDef.preconditions.length > 0) {
@@ -1530,7 +1580,7 @@ export async function executeStep(store, definition, options) {
1530
1580
  // effectiveTimeoutSeconds is the single source of truth for the step's OWN declared/default
1531
1581
  // per-attempt bound; timeoutMs is derived from it so the two can never diverge.
1532
1582
  //
1533
- // Issue #140 (retryable timeout + total-time cap): capMs/capStart/capExhausted resolve ONCE
1583
+ // Issue #140 (retryable timeout + total-time cap): capMs/capExhausted resolve ONCE
1534
1584
  // here too (same as timeoutMs), gated on `enforceTimeout && retryConfig !== undefined` — every
1535
1585
  // retry-configured auto step now gets a default total-time cap (resolveCapMs), whether or not it
1536
1586
  // opts into `retry.on_timeout`. What is NOT resolved once anymore is the PER-ATTEMPT bound
@@ -1562,9 +1612,17 @@ export async function executeStep(store, definition, options) {
1562
1612
  : undefined;
1563
1613
  const timeoutMs = effectiveTimeoutSeconds !== undefined ? effectiveTimeoutSeconds * 1000 : undefined;
1564
1614
  const capMs = enforceTimeout && retryConfig !== undefined ? resolveCapMs(retryConfig, timeoutMs) : undefined;
1565
- const capStart = Date.now(); // wall-clock — the SAME clock the claim horizon is measured against
1566
1615
  let capExhausted = false;
1567
- const remainingMs = () => capMs - (Date.now() - capStart);
1616
+ // issue #573 §C: elapsed budget is measured on the monotonic clock (`performance.now()`), not
1617
+ // the wall clock — durations, never persisted horizons (the claim horizon is anchored at claim
1618
+ // time, `json-file-store.ts:548`, and consumes only the cap's VALUE, never this clock). The
1619
+ // cap clock starts at attempt 1's dispatch (set below, right before the first `withTimeout`
1620
+ // call) — `capClockStart` stays `undefined` until then, so `elapsedCapMs()` is exactly `0` for
1621
+ // any read before that, which is what makes attempt 1's budget equal the full cap by
1622
+ // construction (§A/§B).
1623
+ let capClockStart;
1624
+ const elapsedCapMs = () => (capClockStart === undefined ? 0 : performance.now() - capClockStart);
1625
+ const remainingMs = () => capMs - elapsedCapMs();
1568
1626
  // Programmatic-gate advisory (#119-preserving): the loader refuses `on_timeout: true` without
1569
1627
  // `idempotent: true` at load (E1) — but a hand-built WorkflowDefinition (a custom embedder, or a
1570
1628
  // test) can bypass the loader entirely. Surface the same rule here, at the engine surface, as a
@@ -1601,11 +1659,27 @@ export async function executeStep(store, definition, options) {
1601
1659
  const bypassDispatch = exhaustion !== null;
1602
1660
  if (!bypassDispatch) {
1603
1661
  for (let attemptNum = 1; attemptNum <= maxAttempts; attemptNum++) {
1662
+ // issue #573 §A/§B: the remaining budget is read ONCE per attempt, at the instant that
1663
+ // matters — attempt 1 gets the FULL cap by construction (the cap clock has not started
1664
+ // yet; `capClockStart` is set below, right before this attempt dispatches), so equality
1665
+ // (`total_timeout_seconds === timeout_seconds`) bounds the first attempt, never clips it.
1666
+ // Later attempts floor a fractional monotonic read to a whole millisecond BEFORE it bounds
1667
+ // anything — a fraction that is not there is never granted, and `clipped_to_ms` /
1668
+ // `effective_timeout_seconds` stay integer quantities exactly as they always were.
1669
+ const remainingAtDispatch = capMs === undefined
1670
+ ? undefined
1671
+ : attemptNum === 1
1672
+ ? capMs
1673
+ : Math.max(0, Math.floor(remainingMs()));
1604
1674
  // SITE (a) — issue #140, loop-top, BEFORE attemptsUsed is assigned: attempt 1 ALWAYS
1605
1675
  // proceeds regardless of capMs (the `attemptNum > 1` conjunct) — this guard exists solely for
1606
- // the clock-anomaly window between `capStart` above and here (a suspend/resume or NTP forward
1607
- // jump), never to gate the very first attempt.
1608
- if (capMs !== undefined && attemptNum > 1 && remainingMs() <= 0) {
1676
+ // the clock-anomaly window between the previous attempt's cap check and here (a suspend/
1677
+ // resume or NTP forward jump), never to gate the very first attempt. issue #573: consumes the
1678
+ // SAME `remainingAtDispatch` read above no second clock read reopens the double-read class
1679
+ // one attempt later. The `Math.max(0, …)` floor above means a negative can never reach this
1680
+ // comparison, so the conjunct is now defensive, not load-bearing — the drift window its
1681
+ // predecessor comment described no longer exists (the budget is read once, not twice).
1682
+ if (capMs !== undefined && attemptNum > 1 && remainingAtDispatch <= 0) {
1609
1683
  capExhausted = true;
1610
1684
  break;
1611
1685
  }
@@ -1614,21 +1688,36 @@ export async function executeStep(store, definition, options) {
1614
1688
  let attemptOutput = {};
1615
1689
  let attemptError = null;
1616
1690
  let resolvedParams;
1617
- // Per-attempt effective timeout (issue #140): uniform full-clip to whatever cap budget
1618
- // remains. Clip floor `max(0, remainingMs())` ensures a clock anomaly (see SITE (a) above)
1619
- // never passes a negative ms to withTimeout. capMs undefined effectiveMs === timeoutMs,
1620
- // byte-identical to pre-#140 behavior (every non-retry-configured, or unopted-uncapped-by-
1621
- // total_timeout_seconds-being-absent-pre-amendment, auto step). `clippedToMs` records the
1622
- // per-attempt evidence value ONLY when the cap actually reduced the bound below the step's
1623
- // own declared/default timeout never on an uncapped or not-yet-biting attempt.
1691
+ // issue #573: `effectiveMs` / `clippedToMs` / `boundWasCap` are all derived from the single
1692
+ // `remainingAtDispatch` read above never a second call to `remainingMs()` (that reopened
1693
+ // the double-read class one line above the bound: at equality, a tick between the two reads
1694
+ // minted a phantom `clipped_to_ms: 999` on an attempt the cap never actually touched).
1695
+ // capMs undefined ⇒ effectiveMs === timeoutMs, byte-identical to pre-#140 behavior (every
1696
+ // non-retry-configured, or unopted-uncapped-by-total_timeout_seconds-being-absent, auto
1697
+ // step). `clippedToMs` records the per-attempt evidence value ONLY when the cap actually
1698
+ // reduced the bound below the step's own declared/default timeout — never on an uncapped or
1699
+ // not-yet-biting attempt.
1624
1700
  const effectiveMs = timeoutMs !== undefined
1625
- ? capMs !== undefined
1626
- ? Math.min(timeoutMs, Math.max(0, remainingMs()))
1701
+ ? remainingAtDispatch !== undefined
1702
+ ? Math.min(timeoutMs, remainingAtDispatch)
1627
1703
  : timeoutMs
1628
1704
  : undefined;
1629
- const clippedToMs = capMs !== undefined && effectiveMs !== undefined && effectiveMs < timeoutMs
1705
+ const clippedToMs = remainingAtDispatch !== undefined && effectiveMs !== undefined && effectiveMs < timeoutMs
1630
1706
  ? effectiveMs
1631
1707
  : undefined;
1708
+ // issue #573 §A: true when this attempt's bound WAS the remaining budget (not the step's own
1709
+ // declared/default timeout) — the fact SITE (b) needs to label a `STEP_TIMEOUT` as cap
1710
+ // exhaustion BY CONSTRUCTION, because Node/libuv timers can fire up to ~1ms EARLY against any
1711
+ // clock (loop time is floored to whole milliseconds), so comparing clocks again after the
1712
+ // fact can read "budget left" when the timer has already fired.
1713
+ const boundWasCap = remainingAtDispatch !== undefined &&
1714
+ effectiveMs !== undefined &&
1715
+ effectiveMs >= remainingAtDispatch;
1716
+ // issue #573 §C: the cap clock starts when attempt 1 is DISPATCHED (not when the loop is
1717
+ // entered) — set exactly once, after the bound above is computed (attempt 1 never reads it)
1718
+ // and immediately before the `try` that calls `withTimeout`.
1719
+ if (attemptNum === 1)
1720
+ capClockStart = performance.now();
1632
1721
  try {
1633
1722
  const makeCall = (signal) => {
1634
1723
  if (stepDef?.execution === 'auto' && stepDef.uses_service !== undefined) {
@@ -1901,7 +1990,14 @@ export async function executeStep(store, definition, options) {
1901
1990
  // site (c) below re-checks once more right before an actual sleep). Fires on ANY dispatch
1902
1991
  // error once the cap is spent, not just STEP_TIMEOUT — the cap bounds the step's total
1903
1992
  // budget, regardless of which error exhausted it.
1904
- if (capMs !== undefined && remainingMs() <= 0) {
1993
+ // issue #573 §A: an attempt bounded by the remaining budget (`boundWasCap`) that times out
1994
+ // HAS consumed the budget — no clock comparison after the fact may say otherwise (a timer
1995
+ // can fire up to ~1ms EARLY against any clock, so `remainingMs() <= 0` alone can read false
1996
+ // the instant the timer has already fired). A synthetic `STEP_TIMEOUT` thrown directly by a
1997
+ // hand-built dispatcher on a capped step whose bound equalled the budget is labelled cap
1998
+ // exhaustion too — the bound WAS the budget.
1999
+ if (capMs !== undefined &&
2000
+ (remainingMs() <= 0 || (attemptError.code === 'STEP_TIMEOUT' && boundWasCap))) {
1905
2001
  capExhausted = true;
1906
2002
  }
1907
2003
  const willRetry = (retryConfig !== undefined && attemptError.retryable && attemptNum < maxAttempts) ||
@@ -1928,7 +2024,9 @@ export async function executeStep(store, definition, options) {
1928
2024
  // exact-fit sleep is doomed too — never sleep into a wall). dispatchError already holds the
1929
2025
  // ACTUAL last error (e.g. a 429 with retry_after in its details); the post-loop wrap gate
1930
2026
  // below decides whether/how to wrap it — this site only decides whether to sleep at all.
1931
- if (capMs !== undefined && sleepWouldExceedCap(Date.now() - capStart, waitMs, capMs)) {
2027
+ // issue #573 §C: the same monotonic elapsed-budget read as everywhere else in this cap's
2028
+ // machinery — one clock for durations.
2029
+ if (capMs !== undefined && sleepWouldExceedCap(elapsedCapMs(), waitMs, capMs)) {
1932
2030
  capExhausted = true;
1933
2031
  break;
1934
2032
  }
@@ -2556,7 +2654,9 @@ export async function executeStep(store, definition, options) {
2556
2654
  };
2557
2655
  }
2558
2656
  // Step 5b: Gate check — if trust requires human confirmation, open a gate and halt.
2559
- if (stepDef.trust === 'human_confirmed' || stepDef.trust === 'human_reviewed') {
2657
+ // issue #508: single-source membership via isGateTrust was two hand-copied literals here,
2658
+ // which is exactly the drift the #508 vocabulary (TRUST_LEVELS/GATE_TRUST_LEVELS) closes.
2659
+ if (isGateTrust(stepDef.trust)) {
2560
2660
  const gate_id = crypto.randomUUID();
2561
2661
  const choicesRaw = stepDef.gate?.choices ?? stepDef.input_schema?.properties?.['choice']?.enum;
2562
2662
  const choices = Array.isArray(choicesRaw) ? choicesRaw : ['approve', 'reject'];
@@ -3943,8 +4043,11 @@ async function buildFinalizedSeal(definition, sealDraft, outcome, registry) {
3943
4043
  const now = new Date();
3944
4044
  const evidenceByStep = buildEvidenceByStep(record);
3945
4045
  const timeoutMs = (step.timeout_seconds ?? DRAIN_CEILING_SECONDS) * 1000;
3946
- // Minimal per-finalizer dispatch options: handler-only, no input (input_map prohibited),
3947
- // no agent dispatcher path. callHandler resolves the handler from the injected registry.
4046
+ // Minimal per-finalizer dispatch options: handler-only, `input: {}` is only the
4047
+ // absent-input_map fallback callHandler still resolves a stepDef.input_map when a
4048
+ // loader-bypassed definition carries one (the #519 residual class); the loader prohibition
4049
+ // is what keeps the empty-input contract true for loader-validated workflows. No agent
4050
+ // dispatcher path. callHandler resolves the handler from the injected registry.
3948
4051
  const options = {
3949
4052
  runId: record.id,
3950
4053
  command: name,