@ixo/decision-oracle 0.2.28 → 0.2.29
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/README.md +1 -1
- package/dist/db/schema.d.ts +17 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +10 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/lib/api-lane/accept.d.ts.map +1 -1
- package/dist/lib/api-lane/accept.js +27 -10
- package/dist/lib/api-lane/accept.js.map +1 -1
- package/dist/lib/api-lane/notify.d.ts +9 -0
- package/dist/lib/api-lane/notify.d.ts.map +1 -1
- package/dist/lib/api-lane/notify.js +10 -3
- package/dist/lib/api-lane/notify.js.map +1 -1
- package/dist/lib/api-lane/record.d.ts.map +1 -1
- package/dist/lib/api-lane/record.js +6 -3
- package/dist/lib/api-lane/record.js.map +1 -1
- package/dist/lib/engine/client.d.ts +14 -2
- package/dist/lib/engine/client.d.ts.map +1 -1
- package/dist/lib/engine/client.js +90 -11
- package/dist/lib/engine/client.js.map +1 -1
- package/dist/lib/work-order/index.d.ts +4 -2
- package/dist/lib/work-order/index.d.ts.map +1 -1
- package/dist/lib/work-order/index.js +19 -4
- package/dist/lib/work-order/index.js.map +1 -1
- package/dist/middleware/api/keys.d.ts.map +1 -1
- package/dist/middleware/api/keys.js +10 -2
- package/dist/middleware/api/keys.js.map +1 -1
- package/dist/middleware/api/rate-limit.js +3 -4
- package/dist/middleware/api/rate-limit.js.map +1 -1
- package/dist/middleware/api/wait.d.ts +17 -2
- package/dist/middleware/api/wait.d.ts.map +1 -1
- package/dist/middleware/api/wait.js +80 -19
- package/dist/middleware/api/wait.js.map +1 -1
- package/dist/routes/v1/api/claims.d.ts +15 -3
- package/dist/routes/v1/api/claims.d.ts.map +1 -1
- package/dist/routes/v1/api/claims.js +85 -14
- package/dist/routes/v1/api/claims.js.map +1 -1
- package/dist/workflows/claim-ingest.d.ts +19 -125
- package/dist/workflows/claim-ingest.d.ts.map +1 -1
- package/dist/workflows/claim-ingest.js +49 -765
- package/dist/workflows/claim-ingest.js.map +1 -1
- package/dist/workflows/evaluate.d.ts +193 -0
- package/dist/workflows/evaluate.d.ts.map +1 -0
- package/dist/workflows/evaluate.js +980 -0
- package/dist/workflows/evaluate.js.map +1 -0
- package/docs/api.md +24 -4
- package/docs/guide.md +19 -1
- package/migrations/0029_inline_lease.sql +1 -0
- package/migrations/meta/0029_snapshot.json +3021 -0
- package/migrations/meta/_journal.json +7 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/middleware/api/wait.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/middleware/api/wait.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
* `startApiClaim` seam's, and every step before `recordApiClaims` is free for the caller:
|
|
4
4
|
*
|
|
5
5
|
* repeat? → paused? → protocol allowed? → work order + answers (§4.3) → pay (402 / verify,
|
|
6
|
-
* which reserves) → recordApiClaims → startApiClaims → wait → 200
|
|
6
|
+
* which reserves) → recordApiClaims → startApiClaims → (inline evaluate) → wait → 200 | 202
|
|
7
7
|
*
|
|
8
|
-
* The
|
|
9
|
-
*
|
|
8
|
+
* The work order is read BESIDE the repeat check (it is a cache read or a Blocksync + engine read,
|
|
9
|
+
* the repeat a D1 read); every refusal still comes out in the order above.
|
|
10
|
+
*
|
|
11
|
+
* **A caller that waits gets its decision from this request** (`Prefer: wait=N`, N > 0): after the
|
|
12
|
+
* claim's workflow is created — it stays the durable fallback and runs every step — the request runs
|
|
13
|
+
* the claim's `evaluate` itself (`evaluateInline`, workflows/evaluate.ts) instead of polling the
|
|
14
|
+
* ledger through the workflow's queue time, and answers `200` with the record the moment it lands.
|
|
15
|
+
* A run that fails leaves the claim to the workflow's retries and the caller to the poll. Not for
|
|
16
|
+
* `wait=0` (an async submit asks nothing) nor a repeat (its claim already started), nor past the
|
|
17
|
+
* isolate's / source's caps (`inlineSlot`): those poll, as before.
|
|
18
|
+
*
|
|
19
|
+
* The money moves on the engine's receipt (contracts v1.3): whichever `evaluate` records the
|
|
20
|
+
* decision row (the workflow's, or this request's inline run) settles after it, and a `200` carrying
|
|
21
|
+
* a decision carries that settle answer as `PAYMENT-RESPONSE`.
|
|
10
22
|
*
|
|
11
23
|
* **Idempotency is the claim's own id** (§4.6): with an `Idempotency-Key` the claimId is
|
|
12
24
|
* `apc_` + 40 hex of sha256(sourceId|key), so a repeat finds the claim and answers its CURRENT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../../../src/routes/v1/api/claims.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../../../src/routes/v1/api/claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
* `startApiClaim` seam's, and every step before `recordApiClaims` is free for the caller:
|
|
4
4
|
*
|
|
5
5
|
* repeat? → paused? → protocol allowed? → work order + answers (§4.3) → pay (402 / verify,
|
|
6
|
-
* which reserves) → recordApiClaims → startApiClaims → wait → 200
|
|
6
|
+
* which reserves) → recordApiClaims → startApiClaims → (inline evaluate) → wait → 200 | 202
|
|
7
7
|
*
|
|
8
|
-
* The
|
|
9
|
-
*
|
|
8
|
+
* The work order is read BESIDE the repeat check (it is a cache read or a Blocksync + engine read,
|
|
9
|
+
* the repeat a D1 read); every refusal still comes out in the order above.
|
|
10
|
+
*
|
|
11
|
+
* **A caller that waits gets its decision from this request** (`Prefer: wait=N`, N > 0): after the
|
|
12
|
+
* claim's workflow is created — it stays the durable fallback and runs every step — the request runs
|
|
13
|
+
* the claim's `evaluate` itself (`evaluateInline`, workflows/evaluate.ts) instead of polling the
|
|
14
|
+
* ledger through the workflow's queue time, and answers `200` with the record the moment it lands.
|
|
15
|
+
* A run that fails leaves the claim to the workflow's retries and the caller to the poll. Not for
|
|
16
|
+
* `wait=0` (an async submit asks nothing) nor a repeat (its claim already started), nor past the
|
|
17
|
+
* isolate's / source's caps (`inlineSlot`): those poll, as before.
|
|
18
|
+
*
|
|
19
|
+
* The money moves on the engine's receipt (contracts v1.3): whichever `evaluate` records the
|
|
20
|
+
* decision row (the workflow's, or this request's inline run) settles after it, and a `200` carrying
|
|
21
|
+
* a decision carries that settle answer as `PAYMENT-RESPONSE`.
|
|
10
22
|
*
|
|
11
23
|
* **Idempotency is the claim's own id** (§4.6): with an `Idempotency-Key` the claimId is
|
|
12
24
|
* `apc_` + 40 hex of sha256(sourceId|key), so a repeat finds the claim and answers its CURRENT
|
|
@@ -35,7 +47,8 @@ import { validate } from "../../../lib/validator.js";
|
|
|
35
47
|
import { access, sourceOf } from "../../../middleware/api/auth.js";
|
|
36
48
|
import { ApiError, count402 } from "../../../middleware/api/errors.js";
|
|
37
49
|
import { noteReserving } from "../../../middleware/api/oauth.js";
|
|
38
|
-
import { awaitLanding, preferredWait } from "../../../middleware/api/wait.js";
|
|
50
|
+
import { awaitLanding, inlineSlot, preferredWait } from "../../../middleware/api/wait.js";
|
|
51
|
+
import { evaluateInline, INLINE_AFTERLIFE_MS } from "../../../workflows/evaluate.js";
|
|
39
52
|
import { ClaimParam, claimOf, readableClaimOf } from "./claims-read.js";
|
|
40
53
|
import { checkSubmission, workOrderFor } from "./work-orders.js";
|
|
41
54
|
export const claims = new Hono();
|
|
@@ -51,6 +64,12 @@ claims.post("/claims", access({ op: "submitClaim", scope: "claims:write", capabi
|
|
|
51
64
|
const requestDigest = idempotencyKey ? await sha256Hex(canonicalJson(body)) : null;
|
|
52
65
|
const paymentHeader = c.req.header("PAYMENT-SIGNATURE") ?? null;
|
|
53
66
|
const wait = preferredWait(c.req.header("Prefer"));
|
|
67
|
+
const { source } = caller;
|
|
68
|
+
// The work order, started now and awaited in its turn below: a refusal before it still wins,
|
|
69
|
+
// and a repeat never looks at it (its rejection is swallowed until then).
|
|
70
|
+
const protocol = attempt(() => protocolOf(body.protocolDid, source.allowedProtocols));
|
|
71
|
+
const workOrder = protocol.ok ? workOrderFor(c.env, protocol.value) : null;
|
|
72
|
+
workOrder?.catch(() => { });
|
|
54
73
|
let claimId = idempotencyKey
|
|
55
74
|
? await keyedClaimId(caller.source.sourceId, idempotencyKey)
|
|
56
75
|
: null;
|
|
@@ -59,17 +78,18 @@ claims.post("/claims", access({ op: "submitClaim", scope: "claims:write", capabi
|
|
|
59
78
|
if (existing)
|
|
60
79
|
return answerRepeat(c, caller, existing, requestDigest, wait);
|
|
61
80
|
}
|
|
62
|
-
const { source } = caller;
|
|
63
81
|
if (source.status === "paused") {
|
|
64
82
|
throw sourcePaused(source.pausedReason);
|
|
65
83
|
}
|
|
66
|
-
|
|
84
|
+
if (!protocol.ok)
|
|
85
|
+
throw protocol.error;
|
|
86
|
+
const protocolDid = protocol.value;
|
|
67
87
|
// `claims/submit` is never narrowed itself, but a grant's `nb.protocols` is the grant's word.
|
|
68
88
|
if (caller.kind !== "key" && caller.protocols && !caller.protocols.includes(protocolDid)) {
|
|
69
89
|
throw new ApiError("FORBIDDEN", protocolOutOfReach(protocolDid));
|
|
70
90
|
}
|
|
71
91
|
checkOAuthSubmitter(caller, body.submitter);
|
|
72
|
-
const work = await
|
|
92
|
+
const work = await workOrder;
|
|
73
93
|
// Who the claim is about: the caller's own word, else the company's `payeeField` answer.
|
|
74
94
|
const submitter = submitterFor(body, source.payeeField);
|
|
75
95
|
// The payment first names the claim when no key did; the work-order check needs the id to
|
|
@@ -169,24 +189,51 @@ claims.post("/claims", access({ op: "submitClaim", scope: "claims:write", capabi
|
|
|
169
189
|
// Counted before the start: a claim taken is a submit even if its start fails (the reconcile
|
|
170
190
|
// starts it). `wait=0` asks nothing, so it is async.
|
|
171
191
|
c.get("metrics").count("api.submit", 1, { op: wait ? "sync" : "async" });
|
|
192
|
+
const deadline = Date.now() + (wait ?? 0) * 1000;
|
|
193
|
+
// A caller that waits: this request decides the claim itself (header) — AFTER the workflow is
|
|
194
|
+
// created, so the durable fallback exists before anything is evaluated here. The run's lease
|
|
195
|
+
// (how long it may still be alive: the wait, then `waitUntil`'s window) goes on the ledger row
|
|
196
|
+
// in the statement that takes it, never in the instance's params — a repeat may have created
|
|
197
|
+
// the instance.
|
|
198
|
+
const lease = deadline + INLINE_AFTERLIFE_MS;
|
|
172
199
|
await startApiClaims(c.env, [claimId]);
|
|
173
|
-
|
|
200
|
+
const inline = wait ? inlineSlot(source.sourceId, lease) : null;
|
|
201
|
+
if (inline) {
|
|
202
|
+
const run = evaluateInline(c.env, claimId, {
|
|
203
|
+
lease,
|
|
204
|
+
background: (p) => c.executionCtx.waitUntil(p),
|
|
205
|
+
})
|
|
206
|
+
// It answers every outcome itself; a throw here is its setup's, and the poll still runs.
|
|
207
|
+
.catch((err) => c.get("logger").error("api.inline.crashed", { claimId, detail: String(err) }))
|
|
208
|
+
.finally(inline);
|
|
209
|
+
// A caller that hangs up, or a wait that runs out first, never cuts the run short: it
|
|
210
|
+
// finishes under `waitUntil`, inside its lease.
|
|
211
|
+
c.executionCtx.waitUntil(run);
|
|
212
|
+
await settledBy(run, deadline);
|
|
213
|
+
}
|
|
214
|
+
return answerState(c, caller, claimId, wait, deadline);
|
|
174
215
|
});
|
|
175
216
|
claims.get("/claims/:claimId", access({ op: "getClaim", scope: "claims:read", capability: "claims/read" }), validate("param", ClaimParam), validate("query", z.object({ wait: z.coerce.number().int().min(0).optional() })), async (c) => {
|
|
176
217
|
const caller = sourceOf(c);
|
|
177
|
-
const
|
|
218
|
+
const claimId = c.req.valid("param").claimId;
|
|
178
219
|
// `?wait=N` or `Prefer: wait=N`, capped at 90 like the submit's (§4.1).
|
|
179
220
|
const asked = c.req.valid("query").wait ?? preferredWait(c.req.header("Prefer"));
|
|
180
221
|
const wait = asked === null ? null : Math.min(asked, MAX_WAIT_SECONDS);
|
|
181
222
|
const db = await c.var.db();
|
|
223
|
+
// A linked collection's chain claim carries the reading source (record.ts). Without a wait the
|
|
224
|
+
// record is read BESIDE the read gate and shown only once the gate passed — one round trip
|
|
225
|
+
// fewer on every poll; a gate that refuses discards it unseen.
|
|
226
|
+
const early = wait ? null : claimRecord(db, claimId, { sourceId: caller.source.sourceId });
|
|
227
|
+
early?.catch(() => { });
|
|
228
|
+
const claim = await readableClaimOf(c, claimId);
|
|
182
229
|
if (wait) {
|
|
183
230
|
const landed = await awaitLanding(db, caller.source.sourceId, claim.claimId, wait);
|
|
184
231
|
c.get("metrics").count("api.wait", 1, { op: "get", outcome: landed ? "hit" : "miss" });
|
|
185
232
|
if (landed)
|
|
186
233
|
c.header("Preference-Applied", `wait=${wait}`);
|
|
187
234
|
}
|
|
188
|
-
|
|
189
|
-
return c.json(await recordOf(db, claim.claimId, caller.source.sourceId));
|
|
235
|
+
const record = early ? await early : null;
|
|
236
|
+
return c.json(record ?? (await recordOf(db, claim.claimId, caller.source.sourceId)));
|
|
190
237
|
});
|
|
191
238
|
/**
|
|
192
239
|
* Ask the facilitator now whether this claim's card payment was refunded, record it, and answer
|
|
@@ -224,10 +271,12 @@ async function answerRepeat(c, caller, claim, requestDigest, wait) {
|
|
|
224
271
|
await startApiClaims(c.env, [claim.claimId]);
|
|
225
272
|
return answerState(c, caller, claim.claimId, wait);
|
|
226
273
|
}
|
|
227
|
-
/** `200` + the record when the decision has landed (within `wait`, if asked
|
|
228
|
-
|
|
274
|
+
/** `200` + the record when the decision has landed (within `wait`, if asked — by `deadline`, when
|
|
275
|
+
* part of it was already spent), else `202`. */
|
|
276
|
+
async function answerState(c, caller, claimId, wait, deadline) {
|
|
229
277
|
const db = await c.var.db();
|
|
230
|
-
const
|
|
278
|
+
const budget = deadline === undefined ? (wait ?? 0) : Math.max(0, (deadline - Date.now()) / 1000);
|
|
279
|
+
const landed = await awaitLanding(db, caller.source.sourceId, claimId, budget);
|
|
231
280
|
if (wait) {
|
|
232
281
|
c.get("metrics").count("api.wait", 1, { op: "submit", outcome: landed ? "hit" : "miss" });
|
|
233
282
|
}
|
|
@@ -235,6 +284,8 @@ async function answerState(c, caller, claimId, wait) {
|
|
|
235
284
|
if (wait !== null)
|
|
236
285
|
c.header("Preference-Applied", `wait=${wait}`);
|
|
237
286
|
// Payments spec §4 step 8: the decision's settle answer (for PAY usually `settlement_pending`).
|
|
287
|
+
// Before the record, never beside it: a charge still `reserved` is settled by this read, and
|
|
288
|
+
// the record shows what it wrote.
|
|
238
289
|
const settled = c.get("config").X402_FACILITATOR_URL
|
|
239
290
|
? await paymentResponse({
|
|
240
291
|
config: c.get("config"),
|
|
@@ -326,6 +377,26 @@ const offerFor = (caller, claimId, protocolDid) => ({
|
|
|
326
377
|
items: [{ claimId, protocolDid }],
|
|
327
378
|
});
|
|
328
379
|
// --- small readers -----------------------------------------------------------------------------------
|
|
380
|
+
/** A synchronous throw as a value, to be rethrown in its turn (the submit's refusal order). */
|
|
381
|
+
function attempt(f) {
|
|
382
|
+
try {
|
|
383
|
+
return { ok: true, value: f() };
|
|
384
|
+
}
|
|
385
|
+
catch (error) {
|
|
386
|
+
return { ok: false, error };
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/** Resolves when `p` settles or at `deadline` (epoch ms), whichever is first. */
|
|
390
|
+
async function settledBy(p, deadline) {
|
|
391
|
+
let timer;
|
|
392
|
+
await Promise.race([
|
|
393
|
+
p,
|
|
394
|
+
new Promise((r) => {
|
|
395
|
+
timer = setTimeout(r, Math.max(0, deadline - Date.now()));
|
|
396
|
+
}),
|
|
397
|
+
]);
|
|
398
|
+
clearTimeout(timer);
|
|
399
|
+
}
|
|
329
400
|
/** A console submit has no key: only the payment delegation caps it (§4.1 `SPEND_CAP`). */
|
|
330
401
|
export const keyPrefixOf = (caller) => caller.kind === "key" ? caller.key.prefix : null;
|
|
331
402
|
export const submission = (body, source, ownClaims,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../../src/routes/v1/api/claims.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../../src/routes/v1/api/claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,16 @@
|
|
|
4
4
|
* each step checkpointed and auto-retried, so a crash/redeploy/transient failure never re-does
|
|
5
5
|
* work or drops a claim.
|
|
6
6
|
*
|
|
7
|
-
* THE WORKFLOW OWNS ITS LEDGER ROW — one writer
|
|
7
|
+
* THE WORKFLOW OWNS ITS LEDGER ROW for its whole lifecycle — the one other writer is the API
|
|
8
|
+
* lane's inline run (`evaluateInline`, workflows/evaluate.ts), the same `evaluate` body run by the
|
|
9
|
+
* accepting request for a caller that waits; it takes the row only from `queued` (writing its lease,
|
|
10
|
+
* `inlineUntil`, in the same statement), and the steps below find what it wrote:
|
|
8
11
|
* step "record-queued" → upsert the `claim_ingests` row as `queued` (durable: the row exists
|
|
9
|
-
* iff the instance started, so nothing can ever strand a row)
|
|
10
|
-
*
|
|
12
|
+
* iff the instance started, so nothing can ever strand a row) — never
|
|
13
|
+
* over a row already `processing` / `processed`, which an inline run
|
|
14
|
+
* (or an earlier run of this instance) wrote and a rerun must not undo
|
|
15
|
+
* step "evaluate" → (workflows/evaluate.ts) a recorded decision is returned as is; else
|
|
16
|
+
* mark the row `processing` (so a later attempt knows one ran), then
|
|
11
17
|
* ONE pull (chain metadata + body + attachment descriptors), the facts
|
|
12
18
|
* lane over the same in-memory claim (`buildFacts`: read the engine's
|
|
13
19
|
* rubric manifest, run the producer, freeze the FactSet), and `POST /v1/decisions` on
|
|
@@ -28,7 +34,11 @@
|
|
|
28
34
|
* ingest — the decision is recorded, and an operator rerun re-enters
|
|
29
35
|
* delivery idempotently. A `pending_review` decision waits for the
|
|
30
36
|
* review lane (routes/v1/reviews.ts → ReviewComplete) to act instead
|
|
31
|
-
* step "mark-processed" → row → `processed`
|
|
37
|
+
* step "mark-processed" → row → `processed` — right after the decision (and the act), so the
|
|
38
|
+
* ledger reads `processed` beside it without waiting on a receiver;
|
|
39
|
+
* AFTER the notify for a `pending_review`, whose record reads its
|
|
40
|
+
* tasks off the `review_required` event the notify writes
|
|
41
|
+
* step "notify-review" → the source's notify lane (fail-soft, its own delivery ledger)
|
|
32
42
|
* terminal catch → row → `failed` (+ the message), instance shows Errored in the dashboard
|
|
33
43
|
* The cron (cron/) only discovers claims and creates instances; it never writes this table.
|
|
34
44
|
*
|
|
@@ -85,6 +95,7 @@
|
|
|
85
95
|
import { WorkflowEntrypoint, type WorkflowEvent, type WorkflowStep } from "cloudflare:workers";
|
|
86
96
|
import type { ClaimLaneKind } from "../contracts/index.js";
|
|
87
97
|
import type { OracleEnv } from "../env.js";
|
|
98
|
+
export { type EvaluateResult, GRANT_RETRY_DELAY, PAYER_BILLING } from "./evaluate.js";
|
|
88
99
|
export interface ClaimIngestParams {
|
|
89
100
|
claimId: string;
|
|
90
101
|
/** Known at cron discovery time; absent on manual runs (resolved on-chain in `record-queued`). */
|
|
@@ -104,28 +115,6 @@ export interface ClaimIngestParams {
|
|
|
104
115
|
/** The accepting request's id, API lane only. */
|
|
105
116
|
requestId?: string;
|
|
106
117
|
}
|
|
107
|
-
/** What leaves the evaluate step: small, log-safe, enough to reason about the run — never the facts. */
|
|
108
|
-
export interface EvaluateResult {
|
|
109
|
-
status: string;
|
|
110
|
-
verdict: string | null;
|
|
111
|
-
resultDigest: string | null;
|
|
112
|
-
receiptCid: string | null;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* How a review-billing trouble is told apart in the ledger's `error` (a run that gave up while its
|
|
116
|
-
* collection was paused for payment): the resume cron restarts exactly those.
|
|
117
|
-
*/
|
|
118
|
-
export declare const PAYER_BILLING = "payer-billing:";
|
|
119
|
-
/**
|
|
120
|
-
* `403 NO_EVALUATE_GRANT` is retry-ONCE (docs/ENGINE-CONTRACT.md): the grant may have landed on
|
|
121
|
-
* chain seconds ago — the portal grants and registers in one flow — so wait about a block and ask
|
|
122
|
-
* again before calling it a real "not hired". In-step on purpose: the FactSet may not leave the
|
|
123
|
-
* step, so a step-level sleep would cost a full rebuild (connectors, AI charges). An object so a
|
|
124
|
-
* test can shorten it.
|
|
125
|
-
*/
|
|
126
|
-
export declare const GRANT_RETRY_DELAY: {
|
|
127
|
-
ms: number;
|
|
128
|
-
};
|
|
129
118
|
export declare class ClaimIngest extends WorkflowEntrypoint<OracleEnv, ClaimIngestParams> {
|
|
130
119
|
run(event: WorkflowEvent<ClaimIngestParams>, step: WorkflowStep): Promise<{
|
|
131
120
|
status: string;
|
|
@@ -136,104 +125,6 @@ export declare class ClaimIngest extends WorkflowEntrypoint<OracleEnv, ClaimInge
|
|
|
136
125
|
ok: boolean;
|
|
137
126
|
}>;
|
|
138
127
|
private ingest;
|
|
139
|
-
/**
|
|
140
|
-
* The evaluate step's body: pull → facts → decide → the `decisions` row. Reads the DB, not step
|
|
141
|
-
* results, so an operator rerun converges — and a retry that finds the row is done.
|
|
142
|
-
*/
|
|
143
|
-
private evaluate;
|
|
144
|
-
/**
|
|
145
|
-
* Who pays for this chain claim's review (header): null when its collection pays by its
|
|
146
|
-
* evaluation leg (or the oracle no longer bills per review); `reserved` when a charge already
|
|
147
|
-
* holds it (a retry); else the payer, resolved fresh — never a guess: the engine's or the chain's
|
|
148
|
-
* trouble retries the step, and no usable delegation pauses the collection `payer-delegation`.
|
|
149
|
-
*/
|
|
150
|
-
private billingFor;
|
|
151
|
-
/**
|
|
152
|
-
* A billing pause. The payer's two: the owner's notice, never a page (a customer's condition).
|
|
153
|
-
* `oracle-plan`: IXO's to fix — paged, no notice to the owner or the payer.
|
|
154
|
-
*/
|
|
155
|
-
private pausePayer;
|
|
156
|
-
/** The normal path: pull → build → (reserve) → decide → the `decisions` row. */
|
|
157
|
-
private decideFresh;
|
|
158
|
-
/** Reserve the review (payments/review-billing.ts), or say why not — a pause, a retry, a stop. */
|
|
159
|
-
private reserve;
|
|
160
|
-
/**
|
|
161
|
-
* A decision recovered from the engine's store → its `decisions` row.
|
|
162
|
-
*
|
|
163
|
-
* It is FINAL for this claim — the engine will not judge it twice — so it outranks anything this
|
|
164
|
-
* attempt would have concluded, including a build that failed. What it lacks is the facts it was
|
|
165
|
-
* decided on: the attempt that produced them died before writing the row, and the engine keeps a
|
|
166
|
-
* trace, not a FactSet. So they are rebuilt here — and stand in for the originals only if the
|
|
167
|
-
* rebuild is PROVABLY the same one, which is exactly what the engine's `factsDigest` proves.
|
|
168
|
-
* Anything else (a non-deterministic fact, a re-anchored rubric, a failed rebuild) is written as
|
|
169
|
-
* a park with its reason, at write time: better an explicit blocked row naming the drift than a
|
|
170
|
-
* decided row the act lane refuses later without knowing why.
|
|
171
|
-
*
|
|
172
|
-
* The rebuild may not even be ATTEMPTABLE: the owner's delegation can expire while the claim
|
|
173
|
-
* sits between attempts, and then the pull fail-closes 403. A deterministic "no" there is NOT a
|
|
174
|
-
* reason to lose the decision — the ingest would be marked `failed` with no row at all, while
|
|
175
|
-
* the engine holds a final answer it will never issue again. So it is recorded parked, facts
|
|
176
|
-
* null, and the act lane refuses to sign it (src/act.ts reads those facts). Only a transient
|
|
177
|
-
* failure is rethrown, so the step still retries and a later attempt can record the real facts.
|
|
178
|
-
*/
|
|
179
|
-
private recordRecovered;
|
|
180
|
-
/**
|
|
181
|
-
* The engine's answer → the `decisions` row, the collection's rubric pin and the `unusable`
|
|
182
|
-
* pause: ONE path whether the answer came from `POST /v1/decisions` just now or was recovered
|
|
183
|
-
* from the engine's store on a retry (see `evaluate`), so the two can never drift apart.
|
|
184
|
-
*
|
|
185
|
-
* `sent` is the FactSet this decision was made on — its `ext`/`ai` are frozen onto the row for
|
|
186
|
-
* the act policy to read at signing time (schema.ts `decisions.facts`), and nothing else of it
|
|
187
|
-
* is: `answers`/`attachments` are the claim's erasable surface and never persisted here. Null
|
|
188
|
-
* only on the recovery path when the rebuild could not be proven to be the same facts, which is
|
|
189
|
-
* what `park` says: the row is written `blocked` with that reason instead of `pending`, so the
|
|
190
|
-
* claim read explains itself and the act lane never has to guess.
|
|
191
|
-
*/
|
|
192
|
-
private record;
|
|
193
|
-
/**
|
|
194
|
-
* `api.decision.latency` — accept → decision row, the SLO metric. Accepted is the API claim's
|
|
195
|
-
* `receivedAt`, or the chain claim's ledger `createdAt` (its first `record-queued`). `status` says
|
|
196
|
-
* whether the protocol's rubric runs AI checks: the frozen FactSet's `ai` keys are exactly the
|
|
197
|
-
* work order's (validate.ts holds them to the manifest), so no extra read; `-` only when a
|
|
198
|
-
* recovered decision's facts could not be rebuilt. Best-effort: a metric never fails the step.
|
|
199
|
-
*/
|
|
200
|
-
private decisionLatency;
|
|
201
|
-
/**
|
|
202
|
-
* `POST /v1/decisions`, with the one recoverable refusal handled here: `RUBRIC_PIN_MISMATCH` —
|
|
203
|
-
* our pin ≠ the chain's `#rub` proof as the engine read it, i.e. `#rub` was re-anchored between
|
|
204
|
-
* our (KV-cached) manifest read and theirs. Invalidate and re-read the manifest ONCE: a changed
|
|
205
|
-
* pin is a new work order (new facts, so a rebuild — connectors run again; the fact cache is
|
|
206
|
-
* keyed by the pin, fact-cache.ts), the same pin means the engine and the chain disagree, which
|
|
207
|
-
* no retry of ours fixes. The manifest may also have turned `unusable` under the new anchor —
|
|
208
|
-
* then the rebuild records that, and never decides.
|
|
209
|
-
*/
|
|
210
|
-
private decide;
|
|
211
|
-
/** One decide call, with the contract's retry-once on `NO_EVALUATE_GRANT` (see `GRANT_RETRY_DELAY`). */
|
|
212
|
-
private ask;
|
|
213
|
-
/**
|
|
214
|
-
* The engine said no (docs/ENGINE-CONTRACT.md "Errors"): do what the table says, then hand back
|
|
215
|
-
* the error to throw — NonRetryable for a deterministic refusal, the original for a retryable
|
|
216
|
-
* one. Non-engine errors pass through for `stepError` to classify.
|
|
217
|
-
*/
|
|
218
|
-
private engineFailure;
|
|
219
|
-
/**
|
|
220
|
-
* Facts that don't match the rubric's work order (lib/facts/validate.ts) — the producer's bug,
|
|
221
|
-
* never a claim outcome: the issue list is codes and paths (identifiers), logged and paged so the
|
|
222
|
-
* fix is one grep away, and the error to throw is NonRetryable (a retry would re-run the same
|
|
223
|
-
* producer). The row is already recorded by the caller.
|
|
224
|
-
*/
|
|
225
|
-
private invalidFacts;
|
|
226
|
-
/**
|
|
227
|
-
* A claim the facts lane could not build for — recorded WITHOUT a decide call (schema.ts
|
|
228
|
-
* `decisions`): `status` names the reason, `explanation` the issues, and nothing will ever be
|
|
229
|
-
* acted on, so `chainStatus` is `skipped` from the start. Then the reason's consequence:
|
|
230
|
-
* `rubric-unusable` is the engine's manifest saying the rubric cannot be bound — the same
|
|
231
|
-
* handling as its decide-time `unusable` (pause the collection; steps.ts), minus the receipt, and
|
|
232
|
-
* the ingest completes; `invalid-facts` is OUR (or the provider's) bug, never a claim outcome —
|
|
233
|
-
* recorded so the claim read says why, then failed loudly, like the engine's own `VALIDATION`
|
|
234
|
-
* refusal this check exists to catch first.
|
|
235
|
-
*/
|
|
236
|
-
private buildFailure;
|
|
237
128
|
/**
|
|
238
129
|
* A terminal failure's class — the API lane's §5 code (lib/api-lane/record.ts `claimErrorCode`,
|
|
239
130
|
* read off the same message the ledger stores), for either lane. Best-effort like the rest of
|
|
@@ -243,7 +134,10 @@ export declare class ClaimIngest extends WorkflowEntrypoint<OracleEnv, ClaimInge
|
|
|
243
134
|
private ledgerRow;
|
|
244
135
|
/**
|
|
245
136
|
* Upsert this claim's ledger row. `error` is null unless `failed` (schema.ts), so a rerun that
|
|
246
|
-
* succeeds clears the old message.
|
|
137
|
+
* succeeds clears the old message. `queued` never lands on a row already `processing` or
|
|
138
|
+
* `processed`: the inline run (or an earlier run of this instance) got that far, and moving it
|
|
139
|
+
* back would hide an inline run in flight from `evaluate` (two runs, the handlers paid twice) and
|
|
140
|
+
* show a decided claim as `queued` until the run caught up.
|
|
247
141
|
*/
|
|
248
142
|
private recordStatus;
|
|
249
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-ingest.d.ts","sourceRoot":"","sources":["../../src/workflows/claim-ingest.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claim-ingest.d.ts","sourceRoot":"","sources":["../../src/workflows/claim-ingest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAaxC,OAAO,EAAE,KAAK,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAY,SAAQ,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAChE,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY;;;;;;;OAsB7E;YAEa,MAAM;IA0LpB;;;;OAIG;YACW,YAAY;IAa1B,OAAO,CAAC,SAAS;IAMjB;;;;;;OAMG;YACW,YAAY;CA+B3B"}
|