@sensigo/realm 0.14.1 → 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.
- package/dist/adapters/adapter-utils.d.ts +6 -0
- package/dist/adapters/adapter-utils.d.ts.map +1 -1
- package/dist/adapters/adapter-utils.js +21 -0
- package/dist/adapters/adapter-utils.js.map +1 -1
- package/dist/adapters/file-adapter.d.ts +1 -1
- package/dist/adapters/file-adapter.d.ts.map +1 -1
- package/dist/adapters/file-adapter.js +10 -2
- package/dist/adapters/file-adapter.js.map +1 -1
- package/dist/adapters/gorgias-adapter.d.ts +1 -1
- package/dist/adapters/gorgias-adapter.d.ts.map +1 -1
- package/dist/adapters/gorgias-adapter.js +28 -13
- package/dist/adapters/gorgias-adapter.js.map +1 -1
- package/dist/adapters/slack-adapter.d.ts.map +1 -1
- package/dist/adapters/slack-adapter.js +11 -0
- package/dist/adapters/slack-adapter.js.map +1 -1
- package/dist/engine/backoff.d.ts +4 -0
- package/dist/engine/backoff.d.ts.map +1 -0
- package/dist/engine/backoff.js +18 -0
- package/dist/engine/backoff.js.map +1 -0
- package/dist/engine/capability.d.ts +52 -0
- package/dist/engine/capability.d.ts.map +1 -0
- package/dist/engine/capability.js +76 -0
- package/dist/engine/capability.js.map +1 -0
- package/dist/engine/claim-liveness.d.ts +86 -0
- package/dist/engine/claim-liveness.d.ts.map +1 -0
- package/dist/engine/claim-liveness.js +108 -0
- package/dist/engine/claim-liveness.js.map +1 -0
- package/dist/engine/eligibility.d.ts.map +1 -1
- package/dist/engine/eligibility.js +15 -4
- package/dist/engine/eligibility.js.map +1 -1
- package/dist/engine/execution-loop.d.ts +8 -0
- package/dist/engine/execution-loop.d.ts.map +1 -1
- package/dist/engine/execution-loop.js +310 -43
- package/dist/engine/execution-loop.js.map +1 -1
- package/dist/engine/reclaim-step.d.ts +37 -0
- package/dist/engine/reclaim-step.d.ts.map +1 -0
- package/dist/engine/reclaim-step.js +122 -0
- package/dist/engine/reclaim-step.js.map +1 -0
- package/dist/evidence/snapshot.d.ts +5 -0
- package/dist/evidence/snapshot.d.ts.map +1 -1
- package/dist/evidence/snapshot.js +3 -0
- package/dist/evidence/snapshot.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/store/json-file-store.d.ts +2 -0
- package/dist/store/json-file-store.d.ts.map +1 -1
- package/dist/store/json-file-store.js +64 -6
- package/dist/store/json-file-store.js.map +1 -1
- package/dist/store/store-interface.d.ts +9 -0
- package/dist/store/store-interface.d.ts.map +1 -1
- package/dist/types/run-record.d.ts +60 -0
- package/dist/types/run-record.d.ts.map +1 -1
- package/dist/types/workflow-definition.d.ts +24 -1
- package/dist/types/workflow-definition.d.ts.map +1 -1
- package/dist/types/workflow-error.d.ts +1 -1
- package/dist/types/workflow-error.d.ts.map +1 -1
- package/dist/types/workflow-error.js.map +1 -1
- package/dist/workflow/yaml-loader.d.ts.map +1 -1
- package/dist/workflow/yaml-loader.js +113 -2
- package/dist/workflow/yaml-loader.js.map +1 -1
- 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":"
|
|
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>,
|
|
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,
|
|
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,
|
|
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":"AAAA,kFAAkF;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACA;IAA5B,YAA4B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAE1C,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"file-adapter.js","sourceRoot":"","sources":["../../src/adapters/file-adapter.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACA;IAA5B,YAA4B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAE1C,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC,sBAAsB,SAAS,EAAE,EAAE;gBACzD,IAAI,EAAE,uBAAuB;gBAC7B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,aAAa,CAAC,kBAAkB,EAAE;gBAC1C,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,aAAa,CAAC,uBAAuB,EAAE;gBAC/C,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,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,QAAQ,GAAI,GAA6B,CAAC,IAAI,KAAK,QAAQ,CAAC;YAClE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,aAAa,CAAC,mBAAmB,IAAI,EAAE,EAAE;oBACjD,IAAI,EAAE,uBAAuB;oBAC7B,QAAQ,EAAE,UAAU;oBACpB,WAAW,EAAE,eAAe;oBAC5B,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,uBAAuB;gBAC7B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE;gBACJ,OAAO;gBACP,IAAI;gBACJ,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBACtC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;aAC/C;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,OAAgC,EAChC,OAAgC,EAChC,OAAqB;QAErB,MAAM,IAAI,aAAa,CAAC,eAAe,EAAE;YACvC,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,OAAgC,EAChC,OAAgC,EAChC,OAAqB;QAErB,MAAM,IAAI,aAAa,CAAC,eAAe,EAAE;YACvC,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -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
|
|
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;
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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":"AAAA,0EAA0E;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO3D;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAEL;IACC;IAFnB,YACkB,EAAU,EACT,MAA0B;QAD3B,OAAE,GAAF,EAAE,CAAQ;QACT,WAAM,GAAN,MAAM,CAAoB;IAC1C,CAAC;IAEJ,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,OAAgC,EAChC,OAAgC,EAChC,OAAqB;QAErB,MAAM,IAAI,aAAa,CAAC,qCAAqC,EAAE;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,MAA+B,EAC/B,OAAgC,EAChC,MAAoB;QAEpB,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,IAAI,aAAa,CAAC,wCAAwC,SAAS,EAAE,EAAE;gBAC3E,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,aAAa,CAAC,iDAAiD,EAAE;gBACzE,IAAI,EAAE,2BAA2B;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC9C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,MAAM,IAAI,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wFAAwF;YACxF,sFAAsF;YACtF,mFAAmF;YACnF,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,iCAAiC,OAAO,EAAE,EAAE;gBAClE,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,EAAE;gBACxE,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,OAAgC,EAChC,OAAgC,EAChC,OAAqB;QAErB,MAAM,IAAI,aAAa,CAAC,sCAAsC,EAAE;YAC9D,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -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"}
|