@sensigo/realm 0.15.0 → 0.16.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 (58) hide show
  1. package/dist/adapters/adapter-utils.d.ts +6 -0
  2. package/dist/adapters/adapter-utils.d.ts.map +1 -1
  3. package/dist/adapters/adapter-utils.js +21 -0
  4. package/dist/adapters/adapter-utils.js.map +1 -1
  5. package/dist/adapters/file-adapter.d.ts +1 -1
  6. package/dist/adapters/file-adapter.d.ts.map +1 -1
  7. package/dist/adapters/file-adapter.js +10 -2
  8. package/dist/adapters/file-adapter.js.map +1 -1
  9. package/dist/adapters/gorgias-adapter.d.ts +1 -1
  10. package/dist/adapters/gorgias-adapter.d.ts.map +1 -1
  11. package/dist/adapters/gorgias-adapter.js +28 -13
  12. package/dist/adapters/gorgias-adapter.js.map +1 -1
  13. package/dist/adapters/slack-adapter.d.ts.map +1 -1
  14. package/dist/adapters/slack-adapter.js +11 -0
  15. package/dist/adapters/slack-adapter.js.map +1 -1
  16. package/dist/engine/backoff.d.ts +4 -0
  17. package/dist/engine/backoff.d.ts.map +1 -0
  18. package/dist/engine/backoff.js +18 -0
  19. package/dist/engine/backoff.js.map +1 -0
  20. package/dist/engine/capability.d.ts +52 -0
  21. package/dist/engine/capability.d.ts.map +1 -0
  22. package/dist/engine/capability.js +76 -0
  23. package/dist/engine/capability.js.map +1 -0
  24. package/dist/engine/claim-liveness.d.ts +86 -0
  25. package/dist/engine/claim-liveness.d.ts.map +1 -0
  26. package/dist/engine/claim-liveness.js +108 -0
  27. package/dist/engine/claim-liveness.js.map +1 -0
  28. package/dist/engine/execution-loop.d.ts.map +1 -1
  29. package/dist/engine/execution-loop.js +137 -33
  30. package/dist/engine/execution-loop.js.map +1 -1
  31. package/dist/engine/reclaim-step.d.ts +37 -0
  32. package/dist/engine/reclaim-step.d.ts.map +1 -0
  33. package/dist/engine/reclaim-step.js +122 -0
  34. package/dist/engine/reclaim-step.js.map +1 -0
  35. package/dist/evidence/snapshot.d.ts +5 -0
  36. package/dist/evidence/snapshot.d.ts.map +1 -1
  37. package/dist/evidence/snapshot.js +3 -0
  38. package/dist/evidence/snapshot.js.map +1 -1
  39. package/dist/index.d.ts +7 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +4 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/store/json-file-store.d.ts +2 -0
  44. package/dist/store/json-file-store.d.ts.map +1 -1
  45. package/dist/store/json-file-store.js +64 -6
  46. package/dist/store/json-file-store.js.map +1 -1
  47. package/dist/store/store-interface.d.ts +9 -0
  48. package/dist/store/store-interface.d.ts.map +1 -1
  49. package/dist/types/run-record.d.ts +60 -0
  50. package/dist/types/run-record.d.ts.map +1 -1
  51. package/dist/types/workflow-definition.d.ts +10 -0
  52. package/dist/types/workflow-definition.d.ts.map +1 -1
  53. package/dist/types/workflow-error.d.ts +1 -1
  54. package/dist/types/workflow-error.d.ts.map +1 -1
  55. package/dist/types/workflow-error.js.map +1 -1
  56. package/dist/workflow/yaml-loader.js +38 -0
  57. package/dist/workflow/yaml-loader.js.map +1 -1
  58. package/package.json +1 -1
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Bounds and redacts an adapter error body before it is attached to a WorkflowError's
3
+ * `details` (which surfaces in the user-facing envelope as error_details). Caps length and
4
+ * scrubs email addresses — the realistic PII an API error body echoes back from a request.
5
+ */
6
+ export declare function redactErrorBody(body: unknown): string;
1
7
  /**
2
8
  * Parses the Retry-After HTTP header value into a delay in seconds.
3
9
  * Handles both integer-seconds form (e.g. "30") and HTTP-date form
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-utils.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AACpF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"adapter-utils.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAarD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AACpF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC"}
@@ -1,3 +1,24 @@
1
+ /**
2
+ * Bounds and redacts an adapter error body before it is attached to a WorkflowError's
3
+ * `details` (which surfaces in the user-facing envelope as error_details). Caps length and
4
+ * scrubs email addresses — the realistic PII an API error body echoes back from a request.
5
+ */
6
+ export function redactErrorBody(body) {
7
+ let text;
8
+ if (typeof body === 'string') {
9
+ text = body;
10
+ }
11
+ else {
12
+ try {
13
+ text = JSON.stringify(body);
14
+ }
15
+ catch {
16
+ text = String(body);
17
+ }
18
+ }
19
+ const capped = text.length > 500 ? `${text.slice(0, 500)}…[truncated]` : text;
20
+ return capped.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g, '[REDACTED_EMAIL]');
21
+ }
1
22
  export function parseRetryAfterHeader(raw, fallback) {
2
23
  if (raw !== null) {
3
24
  // Integer-seconds form (e.g. "30"). parseInt handles potential decimal inputs
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-utils.js","sourceRoot":"","sources":["../../src/adapters/adapter-utils.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,qBAAqB,CAAC,GAAkB,EAAE,QAAiB;IACzE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,8EAA8E;QAC9E,kDAAkD;QAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,yDAAyD;QACzD,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"adapter-utils.js","sourceRoot":"","sources":["../../src/adapters/adapter-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,IAAI,IAAY,CAAC;IACjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;AACzE,CAAC;AAeD,MAAM,UAAU,qBAAqB,CAAC,GAAkB,EAAE,QAAiB;IACzE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,8EAA8E;QAC9E,kDAAkD;QAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,yDAAyD;QACzD,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -7,7 +7,7 @@ import type { ServiceAdapter, ServiceResponse } from '../extensions/service-adap
7
7
  export declare class FileSystemAdapter implements ServiceAdapter {
8
8
  readonly id: string;
9
9
  constructor(id: string);
10
- fetch(operation: string, params: Record<string, unknown>, _config: Record<string, unknown>, _signal?: AbortSignal): Promise<ServiceResponse>;
10
+ fetch(operation: string, params: Record<string, unknown>, _config: Record<string, unknown>, signal?: AbortSignal): Promise<ServiceResponse>;
11
11
  create(_operation: string, _params: Record<string, unknown>, _config: Record<string, unknown>, _signal?: AbortSignal): Promise<ServiceResponse>;
12
12
  update(_operation: string, _params: Record<string, unknown>, _config: Record<string, unknown>, _signal?: AbortSignal): Promise<ServiceResponse>;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/file-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExF;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,cAAc;aAC1B,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;IAEhC,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,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;IA8DrB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;IASrB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;CAQ5B"}
1
+ {"version":3,"file":"file-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/file-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExF;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,cAAc;aAC1B,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;IAEhC,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;IAsErB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;IASrB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;CAQ5B"}
@@ -11,7 +11,7 @@ export class FileSystemAdapter {
11
11
  constructor(id) {
12
12
  this.id = id;
13
13
  }
14
- async fetch(operation, params, _config, _signal) {
14
+ async fetch(operation, params, _config, signal) {
15
15
  if (operation !== 'read') {
16
16
  throw new WorkflowError(`unknown operation: ${operation}`, {
17
17
  code: 'ENGINE_ADAPTER_FAILED',
@@ -39,9 +39,17 @@ export class FileSystemAdapter {
39
39
  }
40
40
  let content;
41
41
  try {
42
- content = await readFile(path, 'utf8');
42
+ content = await readFile(path, { encoding: 'utf8', signal });
43
43
  }
44
44
  catch (err) {
45
+ if (err instanceof Error && err.name === 'AbortError') {
46
+ throw new WorkflowError('Adapter request aborted', {
47
+ code: 'STEP_ABORTED',
48
+ category: 'ENGINE',
49
+ agentAction: 'report_to_user',
50
+ retryable: false,
51
+ });
52
+ }
45
53
  const isEnoent = err.code === 'ENOENT';
46
54
  if (isEnoent) {
47
55
  throw new WorkflowError(`file not found: ${path}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"file-adapter.js","sourceRoot":"","sources":["../../src/adapters/file-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-adapter.js","sourceRoot":"","sources":["../../src/adapters/file-adapter.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export interface GorgiasAdapterConfig {
19
19
  * Supported operations:
20
20
  * fetch('get_ticket', { ticket_id }) — GET /tickets/{id}
21
21
  * fetch('list_tickets', { order_by?, cursor?, limit?, ... }) — GET /tickets
22
- * fetch('get_messages', { ticket_id?, limit?, order_by? }) — GET /messages
22
+ * fetch('get_messages', { ticket_id?, limit?, order_by? }) — GET /tickets/{id}/messages (per-ticket) | GET /messages (global scan when ticket_id omitted)
23
23
  * fetch('get_customer', { customer_id }) — GET /customers/{id}
24
24
  * fetch('list_customers', { order_by?, cursor?, limit?, ... }) — GET /customers
25
25
  * create('create_message', { ticket_id, ...messageFields }) — POST /tickets/{id}/messages
@@ -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;;;;;;;;;;;;;;;;;;GAkBG;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;YA8Cd,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;IAyHrB,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;;;;;;;;;;;;;;;;;;GAkBG;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;YA8Cd,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;IAuIrB,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,13 +1,13 @@
1
1
  // GorgiasAdapter — communicates with the Gorgias REST API.
2
2
  import { WorkflowError } from '../types/workflow-error.js';
3
- import { parseRetryAfterHeader } from './adapter-utils.js';
3
+ import { parseRetryAfterHeader, redactErrorBody } from './adapter-utils.js';
4
4
  /**
5
5
  * GorgiasAdapter communicates with the Gorgias REST API.
6
6
  *
7
7
  * Supported operations:
8
8
  * fetch('get_ticket', { ticket_id }) — GET /tickets/{id}
9
9
  * fetch('list_tickets', { order_by?, cursor?, limit?, ... }) — GET /tickets
10
- * fetch('get_messages', { ticket_id?, limit?, order_by? }) — GET /messages
10
+ * fetch('get_messages', { ticket_id?, limit?, order_by? }) — GET /tickets/{id}/messages (per-ticket) | GET /messages (global scan when ticket_id omitted)
11
11
  * fetch('get_customer', { customer_id }) — GET /customers/{id}
12
12
  * fetch('list_customers', { order_by?, cursor?, limit?, ... }) — GET /customers
13
13
  * create('create_message', { ticket_id, ...messageFields }) — POST /tickets/{id}/messages
@@ -107,7 +107,7 @@ export class GorgiasAdapter {
107
107
  body = rawText;
108
108
  }
109
109
  const status = response.status;
110
- const details = { status, operation, body };
110
+ const details = { status, operation, body: redactErrorBody(body) };
111
111
  if (status === 429) {
112
112
  const retryAfterFromHeader = parseRetryAfterHeader(response.headers.get('Retry-After'));
113
113
  throw new WorkflowError('Rate limited by Gorgias API', {
@@ -199,38 +199,53 @@ export class GorgiasAdapter {
199
199
  }
200
200
  if (operation === 'get_messages') {
201
201
  const ticketId = params['ticket_id'] !== undefined ? this.validateTicketId(params) : null;
202
- const userLimit = typeof params['limit'] === 'number' && params['limit'] > 0 ? params['limit'] : 30;
203
- const effectiveLimit = Math.min(userLimit, 200);
204
202
  const PAGE_SIZE = 100;
203
+ // A no-limit per-ticket fetch defaults to the WHOLE thread, guarded by PER_TICKET_DEFAULT against
204
+ // a pathological thread. An explicit caller `limit` is AUTHORITATIVE and honored as-is (the caller
205
+ // owns the size/cost tradeoff) — the guard applies ONLY when no limit is given.
206
+ const PER_TICKET_DEFAULT = 500; // no-limit default for a per-ticket fetch (safety guard, not a cap)
207
+ const GLOBAL_SCAN_DEFAULT = 30; // ticket_id omitted → unbounded corpus; keep a modest default
208
+ const explicitLimit = typeof params['limit'] === 'number' && params['limit'] > 0 ? params['limit'] : undefined;
209
+ const effectiveLimit = explicitLimit ?? (ticketId !== null ? PER_TICKET_DEFAULT : GLOBAL_SCAN_DEFAULT);
205
210
  const orderBy = typeof params['order_by'] === 'string' ? params['order_by'] : undefined;
206
211
  const stableParts = [`limit=${PAGE_SIZE}`];
207
- if (ticketId !== null)
208
- stableParts.push(`ticket_id=${ticketId}`);
209
212
  if (orderBy !== undefined)
210
213
  stableParts.push(`order_by=${encodeURIComponent(orderBy)}`);
211
214
  const accumulated = [];
212
215
  let cursor = undefined;
216
+ // INVARIANT: truncated === true iff at least one message the API would have returned for
217
+ // this request was NOT included in `messages` — i.e. we stopped because of effectiveLimit,
218
+ // never merely because the API ran out. (A1 fix: the prior version checked next_cursor===null
219
+ // FIRST and unconditionally set truncated: false there, so a single over-limit page with no
220
+ // next page silently dropped the surplus while reporting success.)
213
221
  let truncated = false;
214
222
  for (;;) {
215
223
  this.checkAborted(signal);
216
224
  const urlParts = cursor !== undefined ? [...stableParts, `cursor=${cursor}`] : stableParts;
217
- const url = `${this.baseUrl}/messages?${urlParts.join('&')}`;
225
+ // Per-ticket endpoint when a ticket_id is supplied — the flat /messages?ticket_id= filter
226
+ // is inconsistent (returns 0, 1, or all messages for the same request; live evidence:
227
+ // ticket 71355453 → 0 via the flat filter vs 4 via the per-ticket path, same moment).
228
+ // Retained for the global-scan case (ticketId === null), where there is no id to path on.
229
+ const messagesPath = ticketId !== null ? `/tickets/${ticketId}/messages` : `/messages`;
230
+ const url = `${this.baseUrl}${messagesPath}?${urlParts.join('&')}`;
218
231
  const response = await this.executeRequest('GET', url, 'get_messages', undefined, signal);
219
232
  const json = response.data;
220
233
  for (const message of json.data) {
221
234
  if (accumulated.length < effectiveLimit) {
222
235
  accumulated.push(message);
223
236
  }
237
+ else {
238
+ truncated = true; // a message we had no room for → the result is incomplete
239
+ }
224
240
  }
225
241
  const nextCursor = json.meta.next_cursor ?? null;
226
- if (nextCursor === null) {
227
- truncated = false;
228
- break;
229
- }
230
242
  if (accumulated.length >= effectiveLimit) {
231
- truncated = true;
243
+ if (nextCursor !== null)
244
+ truncated = true; // more pages remain past the limit
232
245
  break;
233
246
  }
247
+ if (nextCursor === null)
248
+ break; // API exhausted with room to spare — nothing dropped
234
249
  cursor = nextCursor;
235
250
  }
236
251
  return { status: 200, data: { messages: accumulated, truncated } };
@@ -1 +1 @@
1
- {"version":3,"file":"gorgias-adapter.js","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"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"}
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":"slack-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/slack-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,cAAc;aAE/B,EAAE,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADP,EAAE,EAAE,MAAM,EACT,MAAM,EAAE,kBAAkB;IAGvC,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;IASrB,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;IAsDrB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;CAQ5B"}
1
+ {"version":3,"file":"slack-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/slack-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,cAAc;aAE/B,EAAE,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADP,EAAE,EAAE,MAAM,EACT,MAAM,EAAE,kBAAkB;IAGvC,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;IASrB,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;IAiErB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC;CAQ5B"}
@@ -51,6 +51,17 @@ export class SlackAdapter {
51
51
  });
52
52
  }
53
53
  catch (err) {
54
+ // AbortError means the engine cancelled this request (e.g. step timeout) — standardized
55
+ // to STEP_ABORTED to match every other network adapter (airtable/github/gorgias/http/
56
+ // notion/parcelpanel/shopify). Any other fetch failure keeps the existing mapping.
57
+ if (err instanceof Error && err.name === 'AbortError') {
58
+ throw new WorkflowError('Adapter request aborted', {
59
+ code: 'STEP_ABORTED',
60
+ category: 'ENGINE',
61
+ agentAction: 'report_to_user',
62
+ retryable: false,
63
+ });
64
+ }
54
65
  const message = err instanceof Error ? err.message : String(err);
55
66
  throw new WorkflowError(`Slack webhook request failed: ${message}`, {
56
67
  code: 'ADAPTER_REQUEST_FAILED',
@@ -1 +1 @@
1
- {"version":3,"file":"slack-adapter.js","sourceRoot":"","sources":["../../src/adapters/slack-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-adapter.js","sourceRoot":"","sources":["../../src/adapters/slack-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RetryConfig } from '../types/workflow-definition.js';
2
+ /** Computes the delay (ms) before a retry attempt based on the configured backoff strategy. */
3
+ export declare function computeBackoff(config: RetryConfig, attemptNum: number): number;
4
+ //# sourceMappingURL=backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.d.ts","sourceRoot":"","sources":["../../src/engine/backoff.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,+FAA+F;AAC/F,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAe9E"}
@@ -0,0 +1,18 @@
1
+ /** Computes the delay (ms) before a retry attempt based on the configured backoff strategy. */
2
+ export function computeBackoff(config, attemptNum) {
3
+ const backoff = config.backoff ?? 'fixed';
4
+ const base = config.base_delay_ms ?? 0;
5
+ let delay;
6
+ switch (backoff) {
7
+ case 'linear':
8
+ delay = base * attemptNum;
9
+ break;
10
+ case 'exponential':
11
+ delay = base * Math.pow(2, attemptNum - 1);
12
+ break;
13
+ default: // 'fixed'
14
+ delay = base;
15
+ }
16
+ return config.max_delay_ms !== undefined ? Math.min(delay, config.max_delay_ms) : delay;
17
+ }
18
+ //# sourceMappingURL=backoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.js","sourceRoot":"","sources":["../../src/engine/backoff.ts"],"names":[],"mappings":"AAOA,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,UAAkB;IACpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;IACvC,IAAI,KAAa,CAAC;IAClB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC;YAC1B,MAAM;QACR,KAAK,aAAa;YAChB,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM;QACR,SAAS,UAAU;YACjB,KAAK,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { WorkflowDefinition, StepDefinition } from '../types/workflow-definition.js';
2
+ import type { RunRecord } from '../types/run-record.js';
3
+ import type { ExtensionRegistry } from '../extensions/registry.js';
4
+ /** The single handler/adapter an auto step requires. `step` is the step name (StepDefinition carries none). */
5
+ export interface Requirement {
6
+ step: string;
7
+ kind: 'handler' | 'adapter';
8
+ name: string;
9
+ }
10
+ /**
11
+ * The capability requirement a step imposes on the executing registry, or `undefined` if it imposes none.
12
+ *
13
+ * Mirrors the dispatch precedence in the execution loop EXACTLY (uses_service → adapter; else handler),
14
+ * and ONLY for `execution: 'auto'` steps — agent/guard/finalizer steps and the built-in agent dispatcher
15
+ * impose no registry requirement. For an adapter step whose service is absent from `definition.services`,
16
+ * returns `undefined`: that is a workflow-authoring bug surfaced elsewhere (service-not-found), not a
17
+ * capability gap the runner can fix by registering an adapter.
18
+ */
19
+ export declare function requirementForStep(step: string, stepDef: StepDefinition, definition: WorkflowDefinition): Requirement | undefined;
20
+ /**
21
+ * Part B pre-flight: the auto-step requirements the given registry CANNOT satisfy. Pure — `registry.has`
22
+ * is a Map lookup, no dispatch. Callers WARN on a non-empty result at run creation; they never REFUSE
23
+ * (a run can be created against one runner and executed by a differently-provisioned one — see #134).
24
+ */
25
+ export declare function unmetCapabilities(definition: WorkflowDefinition, registry: ExtensionRegistry): Requirement[];
26
+ /**
27
+ * Advisory warning line for one unmet capability — shared by every run-creating path (#134) so the
28
+ * pre-flight warning phrasing can never drift between start_run, start_run_batch, CLI run, and the
29
+ * run-agent create path. Advisory ONLY: names the gap and its recoverable consequence; never a refusal.
30
+ */
31
+ export declare function capabilityWarning(requirement: Requirement): string;
32
+ /** A capability-blocked step surfaced by {@link findCapabilityBlockedSteps}. */
33
+ export interface CapabilityBlockInfo {
34
+ step: string;
35
+ requirement: {
36
+ kind: 'handler' | 'adapter';
37
+ name: string;
38
+ };
39
+ code: string;
40
+ at: string;
41
+ }
42
+ /**
43
+ * Part A recovery detection: steps parked by a mid-run not-registered failure that are STILL eligible.
44
+ *
45
+ * Definition-free by design — reads only `capability_blocks` and the four step sets. A marker is reported
46
+ * only when its step is eligible-but-unclaimed (∉ completed ∪ in_progress ∪ failed ∪ skipped). This
47
+ * cross-check makes a stale marker self-suppress: if the step has since completed (or been claimed) on a
48
+ * correctly-provisioned runner, its marker is silently ignored, so CLEARING the marker on recovery is
49
+ * hygiene, not correctness. Returns [] for legacy/capability-clean records (no `capability_blocks`).
50
+ */
51
+ export declare function findCapabilityBlockedSteps(run: RunRecord): CapabilityBlockInfo[];
52
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/engine/capability.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,+GAA+G;AAC/G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,kBAAkB,GAC7B,WAAW,GAAG,SAAS,CAWzB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,iBAAiB,GAC1B,WAAW,EAAE,CASf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAMlE;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE;QAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,SAAS,GAAG,mBAAmB,EAAE,CAehF"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The capability requirement a step imposes on the executing registry, or `undefined` if it imposes none.
3
+ *
4
+ * Mirrors the dispatch precedence in the execution loop EXACTLY (uses_service → adapter; else handler),
5
+ * and ONLY for `execution: 'auto'` steps — agent/guard/finalizer steps and the built-in agent dispatcher
6
+ * impose no registry requirement. For an adapter step whose service is absent from `definition.services`,
7
+ * returns `undefined`: that is a workflow-authoring bug surfaced elsewhere (service-not-found), not a
8
+ * capability gap the runner can fix by registering an adapter.
9
+ */
10
+ export function requirementForStep(step, stepDef, definition) {
11
+ if (stepDef.execution !== 'auto')
12
+ return undefined;
13
+ if (stepDef.uses_service !== undefined) {
14
+ const service = definition.services?.[stepDef.uses_service];
15
+ if (service === undefined)
16
+ return undefined;
17
+ return { step, kind: 'adapter', name: service.adapter };
18
+ }
19
+ if (stepDef.handler !== undefined) {
20
+ return { step, kind: 'handler', name: stepDef.handler };
21
+ }
22
+ return undefined;
23
+ }
24
+ /**
25
+ * Part B pre-flight: the auto-step requirements the given registry CANNOT satisfy. Pure — `registry.has`
26
+ * is a Map lookup, no dispatch. Callers WARN on a non-empty result at run creation; they never REFUSE
27
+ * (a run can be created against one runner and executed by a differently-provisioned one — see #134).
28
+ */
29
+ export function unmetCapabilities(definition, registry) {
30
+ const unmet = [];
31
+ for (const [step, stepDef] of Object.entries(definition.steps)) {
32
+ const requirement = requirementForStep(step, stepDef, definition);
33
+ if (requirement !== undefined && !registry.has(requirement.kind, requirement.name)) {
34
+ unmet.push(requirement);
35
+ }
36
+ }
37
+ return unmet;
38
+ }
39
+ /**
40
+ * Advisory warning line for one unmet capability — shared by every run-creating path (#134) so the
41
+ * pre-flight warning phrasing can never drift between start_run, start_run_batch, CLI run, and the
42
+ * run-agent create path. Advisory ONLY: names the gap and its recoverable consequence; never a refusal.
43
+ */
44
+ export function capabilityWarning(requirement) {
45
+ return (`Step '${requirement.step}' needs ${requirement.kind} '${requirement.name}', which is not ` +
46
+ `registered in this runner. If reached it will block recoverably (not fail) until a runner that ` +
47
+ `provides this ${requirement.kind} executes it — load the missing extension or run on a capable runner.`);
48
+ }
49
+ /**
50
+ * Part A recovery detection: steps parked by a mid-run not-registered failure that are STILL eligible.
51
+ *
52
+ * Definition-free by design — reads only `capability_blocks` and the four step sets. A marker is reported
53
+ * only when its step is eligible-but-unclaimed (∉ completed ∪ in_progress ∪ failed ∪ skipped). This
54
+ * cross-check makes a stale marker self-suppress: if the step has since completed (or been claimed) on a
55
+ * correctly-provisioned runner, its marker is silently ignored, so CLEARING the marker on recovery is
56
+ * hygiene, not correctness. Returns [] for legacy/capability-clean records (no `capability_blocks`).
57
+ */
58
+ export function findCapabilityBlockedSteps(run) {
59
+ const blocks = run.capability_blocks;
60
+ if (blocks === undefined)
61
+ return [];
62
+ const settled = new Set([
63
+ ...run.completed_steps,
64
+ ...run.in_progress_steps,
65
+ ...run.failed_steps,
66
+ ...run.skipped_steps,
67
+ ]);
68
+ const blocked = [];
69
+ for (const [step, block] of Object.entries(blocks)) {
70
+ if (settled.has(step))
71
+ continue;
72
+ blocked.push({ step, requirement: block.requirement, code: block.code, at: block.at });
73
+ }
74
+ return blocked;
75
+ }
76
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/engine/capability.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAuB,EACvB,UAA8B;IAE9B,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAA8B,EAC9B,QAA2B;IAE3B,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAwB;IACxD,OAAO,CACL,SAAS,WAAW,CAAC,IAAI,WAAW,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,kBAAkB;QAC3F,iGAAiG;QACjG,iBAAiB,WAAW,CAAC,IAAI,uEAAuE,CACzG,CAAC;AACJ,CAAC;AAUD;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAc;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS;QAC9B,GAAG,GAAG,CAAC,eAAe;QACtB,GAAG,GAAG,CAAC,iBAAiB;QACxB,GAAG,GAAG,CAAC,YAAY;QACnB,GAAG,GAAG,CAAC,aAAa;KACrB,CAAC,CAAC;IACH,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import type { RunRecord, ClaimRecord } from '../types/run-record.js';
2
+ import type { WorkflowDefinition, StepDefinition } from '../types/workflow-definition.js';
3
+ /**
4
+ * Default execution timeout (issue A3) enforced on every `execution: 'auto'` step that declares no
5
+ * `timeout_seconds` — bounds a hung adapter/handler call so it fails loudly (`STEP_TIMEOUT`)
6
+ * instead of pinning the runner forever. Generous (1 hour, GitHub-Actions-style): it guards against
7
+ * a genuine hang, not normal-operation latency. Also now the basis of the claim-deadline DETECTION
8
+ * horizon in `computeClaimDeadline` below, so detection tracks the real enforcement bound. See
9
+ * plans/execution-timeout-a3-design.md for the full rationale.
10
+ */
11
+ export declare const DEFAULT_EXECUTION_TIMEOUT_SECONDS = 3600;
12
+ /**
13
+ * Whether `step`'s dispatch must be bounded by a timeout (issue A3). Pure: `execution === 'auto'`,
14
+ * period. Deliberately NOT conjoined with `hasFinalizers` — that conjunct is correct for
15
+ * *detection*'s claim horizon below (a claim may legitimately be held through a finalizer drain),
16
+ * but would be WRONG for *enforcement*: it would leave every auto step in a finalizer-bearing
17
+ * workflow completely unbounded — the exact hang this feature exists to prevent. Do NOT re-add a
18
+ * `hasFinalizers`/finalizer conjunct here (this split was the Design Reviewer's blocking-fix).
19
+ */
20
+ export declare function shouldEnforceTimeout(step: StepDefinition): boolean;
21
+ /**
22
+ * @deprecated Superseded by `DEFAULT_EXECUTION_TIMEOUT_SECONDS`; retained for API compatibility.
23
+ * Assumed handler wall-clock bound when a step declares no `timeout_seconds`. Biased large.
24
+ */
25
+ export declare const DEFAULT_STEP_TIMEOUT_SECONDS = 300;
26
+ /** Added to a step's `timeout_seconds` to absorb scheduling / clock skew before a claim is stale. */
27
+ export declare const RECLAIM_MARGIN_SECONDS = 60;
28
+ /**
29
+ * Minimum staleness horizon. A concrete claim is never `claim_stale` sooner than this, even for a
30
+ * fast handler — so a live-but-slow runner is not mislabeled. Biased large: too-large only delays
31
+ * the label (Phase 1 gates no action); too-small risks flagging live work. (Concrete deadlines are
32
+ * set ONLY for finalizer-free auto steps, so the worst-case finalizer-drain span never applies to a
33
+ * deadline-carrying claim — finalizer-bearing steps get `deadline: null` → `claim_unknown_age`.)
34
+ */
35
+ export declare const RECLAIM_FLOOR_SECONDS = 900;
36
+ /**
37
+ * Computes the claim deadline for `stepName` at claim time. A CONCRETE deadline is returned ONLY
38
+ * for a reliably time-boundable claim: an `execution: 'auto'` (handler-driven) step in a workflow
39
+ * with NO `execution: 'finalizer'` steps (so no finalizer drain can legitimately extend the claim
40
+ * past the seal). Every other claim returns `null` (→ `claim_unknown_age`): agent steps have no
41
+ * reliable wall-clock bound (the dispatcher returns instantly; `timeout_seconds` is advisory), and
42
+ * any step in a finalizer-bearing workflow may hold its claim through the terminal drain.
43
+ *
44
+ * The horizon is the WORST-CASE wall-clock across every retry attempt (issue #101 follow-up —
45
+ * Design Reviewer finding #4 from the A3 debate): a single-attempt bound understates a retrying
46
+ * step's real claim span (`max_attempts × per-attempt-timeout + the declared backoffs between
47
+ * attempts`), so a legitimately-retrying step could be labeled `claim_stale` — and, if
48
+ * `idempotent`, become eligible for a premature `realm run reclaim --all --force` re-drive —
49
+ * while still on an early attempt. For `n = 1` (no `retry:`, or `max_attempts: 1`) this reduces
50
+ * EXACTLY to the prior single-attempt formula `max(RECLAIM_FLOOR, perAttemptSec + MARGIN)`, so
51
+ * non-retry steps' horizons are byte-unchanged. This uses the DECLARED backoff schedule only — a
52
+ * runtime `retry_after` (rate-limit 429 override, applied in execution-loop.ts) is not knowable at
53
+ * claim time; the horizon stays a best-effort, floored, advisory bound (Phase 1 gates no action on
54
+ * this label) and does not attempt to model `retry_after`.
55
+ */
56
+ export declare function computeClaimDeadline(definition: WorkflowDefinition, stepName: string, now: Date): string | null;
57
+ /**
58
+ * Returns a NEW claims record with `stepName` removed (a fresh object — never mutates the input,
59
+ * so it is safe to use on a value spread from the prior record). Used at the settle/seal sites to
60
+ * delete the claim clock in the SAME record mutation that removes the step from
61
+ * `in_progress_steps`. Returns `{}` when the last claim is removed (harmless; detection ignores a
62
+ * run with no in-progress steps). A missed delete self-heals: `claimStep` overwrites `claims[S]`.
63
+ */
64
+ export declare function omitClaim(claims: Record<string, ClaimRecord> | undefined, stepName: string): Record<string, ClaimRecord>;
65
+ /**
66
+ * The 3-state liveness classification of a single in-progress claim (issue #101):
67
+ * - `healthy` — a concrete deadline that has not yet passed (a live runner is presumed on it).
68
+ * - `claim_stale` — a concrete deadline that has passed (the runner is presumed dead).
69
+ * - `claim_unknown_age` — no claim record, or a `null` deadline (agent / finalizer-bearing /
70
+ * legacy run). Detect-only, human-judged, NEVER auto-reclaimed.
71
+ */
72
+ export type ClaimState = 'healthy' | 'claim_stale' | 'claim_unknown_age';
73
+ /** Classifies a single claim record against `now`. Definition-free (reads only the stored deadline). */
74
+ export declare function classifyClaim(claim: ClaimRecord | undefined, now: Date): ClaimState;
75
+ /** A classified in-progress claim: the step, its liveness state, and its stored deadline. */
76
+ export interface InProgressClaimInfo {
77
+ step: string;
78
+ state: ClaimState;
79
+ deadline: string | null;
80
+ }
81
+ /**
82
+ * Classifies every in-progress claim on a run. Definition-free — works even when the workflow
83
+ * definition is unresolved (detection reads the stored per-claim deadline, not the definition).
84
+ */
85
+ export declare function classifyInProgressClaims(run: RunRecord, now?: Date): InProgressClaimInfo[];
86
+ //# sourceMappingURL=claim-liveness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-liveness.d.ts","sourceRoot":"","sources":["../../src/engine/claim-liveness.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAG1F;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAElE;AAKD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,IAAI,GACR,MAAM,GAAG,IAAI,CAgBf;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAC/C,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAI7B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEzE,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,UAAU,CAGnF;AAED,6FAA6F;AAC7F,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,SAAS,EACd,GAAG,GAAE,IAAiB,GACrB,mBAAmB,EAAE,CAKvB"}