@ixo/decision-oracle 0.2.16 → 0.2.18
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 +2 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/cron/collection.d.ts +16 -3
- package/dist/cron/collection.d.ts.map +1 -1
- package/dist/cron/collection.js +22 -12
- package/dist/cron/collection.js.map +1 -1
- package/dist/cron/feed.d.ts +49 -0
- package/dist/cron/feed.d.ts.map +1 -0
- package/dist/cron/feed.js +159 -0
- package/dist/cron/feed.js.map +1 -0
- package/dist/cron/scan.d.ts.map +1 -1
- package/dist/cron/scan.js +21 -1
- package/dist/cron/scan.js.map +1 -1
- package/dist/db/schema.d.ts +51 -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/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/lib/facts/stock/ai-check.d.ts +10 -1
- package/dist/lib/facts/stock/ai-check.d.ts.map +1 -1
- package/dist/lib/facts/stock/ai-check.js +12 -4
- package/dist/lib/facts/stock/ai-check.js.map +1 -1
- package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -1
- package/dist/lib/facts/stock/ai-provider.js +2 -3
- package/dist/lib/facts/stock/ai-provider.js.map +1 -1
- package/dist/lib/ixo/blocksync/index.d.ts +12 -2
- package/dist/lib/ixo/blocksync/index.d.ts.map +1 -1
- package/dist/lib/ixo/blocksync/index.js +17 -2
- package/dist/lib/ixo/blocksync/index.js.map +1 -1
- package/dist/lib/ixo/blocksync/queries.d.ts +1 -0
- package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -1
- package/dist/lib/ixo/blocksync/queries.js +16 -0
- package/dist/lib/ixo/blocksync/queries.js.map +1 -1
- package/dist/lib/ixo/blocksync/types.d.ts +8 -0
- package/dist/lib/ixo/blocksync/types.d.ts.map +1 -1
- package/dist/lib/ixo/blocksync/types.js +2 -0
- package/dist/lib/ixo/blocksync/types.js.map +1 -1
- package/dist/lib/openhands/routes.d.ts +6 -5
- package/dist/lib/openhands/routes.d.ts.map +1 -1
- package/dist/lib/openhands/routes.js +26 -13
- package/dist/lib/openhands/routes.js.map +1 -1
- package/dist/lib/openhands/store.d.ts +12 -1
- package/dist/lib/openhands/store.d.ts.map +1 -1
- package/dist/lib/openhands/store.js +20 -1
- package/dist/lib/openhands/store.js.map +1 -1
- package/docs/api.md +23 -8
- package/docs/guide.md +13 -1
- package/migrations/0027_cron_state.sql +4 -0
- package/migrations/meta/0027_snapshot.json +3007 -0
- package/migrations/meta/_journal.json +7 -0
- package/package.json +1 -1
- package/templates/project/.dev.vars.example +1 -0
- package/templates/project/wrangler.jsonc +4 -0
package/README.md
CHANGED
|
@@ -502,6 +502,7 @@ Two places, and the split is the rule: **public config in `wrangler.jsonc` `vars
|
|
|
502
502
|
| `AI_GATEWAY_ID` | the AI Gateway the `cloudflare` provider routes through; its per-call USD lands in the `ai_calls` table within ~5 minutes |
|
|
503
503
|
| `AI_AUDIO_VIDEO` | optional, default off: audio/video attachments are sent to the model only when on — **OpenRouter only** (the worker refuses to start otherwise); off, they reach the model as a "content not sent" descriptor |
|
|
504
504
|
| `AI_IMAGE_DETAIL` | optional: `low` / `high` / `auto`, default `high` — the detail images are sent to the model at. `high` is what lets it see a photographed screen or a generated image; it costs more image tokens per check |
|
|
505
|
+
| `AI_REASONING_EFFORT` | optional: `low` / `medium` / `high`, default `low` — the judge's reasoning effort on every AI call. Higher thinks more: slower and more output tokens |
|
|
505
506
|
| `C2PA_IMAGE_CHECK` | the image-provenance gate — a verified AI-generated manifest fails an AI check outright |
|
|
506
507
|
| `EVAL_ENGINE_HOSTNAME` | optional override of the network's engine host (a local engine, a tunnel) |
|
|
507
508
|
| `EVALUATION_DENOM`, `EVALUATION_MIN_AMOUNT` | the per-network evaluation fee: when set (both or neither) they replace `pricing.evaluation` at register and on `/v1/info`. **Required on mainnet** (the worker refuses to start without them) — real USDC there; the template sets a `uixo` stand-in on devnet/testnet |
|
|
@@ -781,6 +782,6 @@ symlinks are not packed). CI diffs them — change one, copy it to the other.
|
|
|
781
782
|
|
|
782
783
|
## Status
|
|
783
784
|
|
|
784
|
-
Published on npm: `@ixo/decision-oracle` 0.2.
|
|
785
|
+
Published on npm: `@ixo/decision-oracle` 0.2.18 and `@ixo/decision-oracle-client` 0.1.1.
|
|
785
786
|
|
|
786
787
|
Apache License 2.0: `LICENSE` at the repo root and in each package.
|
package/dist/config.d.ts
CHANGED
|
@@ -55,6 +55,11 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
55
55
|
cloudflare: "cloudflare";
|
|
56
56
|
openrouter: "openrouter";
|
|
57
57
|
}>>;
|
|
58
|
+
AI_REASONING_EFFORT: z.ZodDefault<z.ZodEnum<{
|
|
59
|
+
high: "high";
|
|
60
|
+
low: "low";
|
|
61
|
+
medium: "medium";
|
|
62
|
+
}>>;
|
|
58
63
|
AI_GATEWAY_ID: z.ZodOptional<z.ZodString>;
|
|
59
64
|
AI_AUDIO_VIDEO: z.ZodDefault<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
|
|
60
65
|
AI_CHECK_MIN_CONFIDENCE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
@@ -114,6 +119,7 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
114
119
|
EVALUATION_MIN_AMOUNT?: string | undefined;
|
|
115
120
|
AI_CHECK_MODEL: string;
|
|
116
121
|
AI_PROVIDER: "cloudflare" | "openrouter";
|
|
122
|
+
AI_REASONING_EFFORT: "high" | "low" | "medium";
|
|
117
123
|
AI_GATEWAY_ID?: string | undefined;
|
|
118
124
|
AI_AUDIO_VIDEO: boolean;
|
|
119
125
|
AI_CHECK_MIN_CONFIDENCE: number;
|
|
@@ -180,6 +186,7 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
180
186
|
EVALUATION_MIN_AMOUNT?: string | undefined;
|
|
181
187
|
AI_CHECK_MODEL: string;
|
|
182
188
|
AI_PROVIDER: "cloudflare" | "openrouter";
|
|
189
|
+
AI_REASONING_EFFORT: "high" | "low" | "medium";
|
|
183
190
|
AI_GATEWAY_ID?: string | undefined;
|
|
184
191
|
AI_AUDIO_VIDEO: boolean;
|
|
185
192
|
AI_CHECK_MIN_CONFIDENCE: number;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8Zd,CAAC;AAIL,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAKlD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAGlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;IAFzB,YACE,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM,EAAE,EAIxB;CACF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAejD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,CAO1D;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,OAA8C,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -134,6 +134,12 @@ const ConfigSchema = z
|
|
|
134
134
|
* fact needs none of them.
|
|
135
135
|
*/
|
|
136
136
|
AI_PROVIDER: z.enum(["cloudflare", "openrouter"]).default("cloudflare"),
|
|
137
|
+
/**
|
|
138
|
+
* The judge's reasoning effort, sent on every AI call of either provider. "low": a little
|
|
139
|
+
* thinking beats none for rule-by-rule judgment, and "none" measurably costs quality. "medium"
|
|
140
|
+
* / "high" think more — slower, more output tokens: measure latency and cost before raising it.
|
|
141
|
+
*/
|
|
142
|
+
AI_REASONING_EFFORT: z.enum(["low", "medium", "high"]).default("low"),
|
|
137
143
|
/** The AI Gateway the `cloudflare` provider routes through — its name in the dashboard. */
|
|
138
144
|
AI_GATEWAY_ID: z.string().min(1).optional(),
|
|
139
145
|
/**
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAElE,sFAAsF;AACtF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAE7E,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACpF,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IACzC;;;;OAIG;IACH,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACtD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,uDAAuD;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACrC;;;;;OAKG;IACH,yBAAyB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAE9E,sCAAsC;IACtC,6FAA6F;IAC7F,6FAA6F;IAC7F,qDAAqD;IACrD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,yFAAyF;IACzF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,mGAAmG;IACnG,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C;;;;OAIG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,yGAAyG;IACzG,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD;;;;OAIG;IACH,gCAAgC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAErF,iCAAiC;IACjC;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC;;;;OAIG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC;;;;;;;;OAQG;IACH,iBAAiB,EAAE,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,EACrB,CAAC;SACE,MAAM,EAAE;SACR,UAAU,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAClF,QAAQ,EAAE,CACd;IACD;;;;;;OAMG;IACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAElD,0CAA0C;IAC1C;;;;;;;;OAQG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IAE1F,yEAAyE;IACzE;;;;;OAKG;IACH,kGAAkG;IAClG,kGAAkG;IAClG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAC9D;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACvE,2FAA2F;IAC3F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C;;;OAGG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5E;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAChE;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACvB,OAAO,CAAC,OAAO,CAAC;SAChB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;IAEjC,mEAAmE;IACnE;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,mFAAmF;IACnF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAE7C,0CAA0C;IAC1C,2FAA2F;IAC3F,8FAA8F;IAC9F,0FAA0F;IAC1F,6FAA6F;IAC7F,+DAA+D;IAC/D,8FAA8F;IAC9F,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClE,mEAAmE;IACnE,oBAAoB,EAAE,OAAO,CAAC,QAAQ,EAAE;IACxC;;;OAGG;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,KAAK,CAAC,8BAA8B,EAAE,4BAA4B,CAAC;SACnE,QAAQ,EAAE;IACb;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,KAAK,CAAC,4BAA4B,EAAE,2BAA2B,CAAC;SAChE,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,QAAQ,EAAE;IACb,mGAAmG;IACnG,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,+BAA+B,CAAC;SAC7D,QAAQ,EAAE;IACb,+EAA+E;IAC/E,kBAAkB,EAAE,OAAO,CAAC,QAAQ,EAAE;IACtC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC/B;;;;;;OAMG;IACH,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE;IAChC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,IAAI,EAAE,CAAC;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CACnB;SACA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACtF;;;;OAIG;IACH,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,IAAI,EAAE,CAAC;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CACnB;SACA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAEzF;;;;;OAKG;IACH,yBAAyB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;IACrE;;;OAGG;IACH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEhD,2DAA2D;IAC3D,yFAAyF;IACzF,mFAAmF;IACnF;;;OAGG;IACH,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtD;;;;OAIG;IACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD;;;;;;OAMG;IACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD;;;;;OAKG;IACH,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,+FAA+F;IAC/F,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD;;;;;;;;;;OAUG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C;;;;;;;OAOG;IACH,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD;;;;;OAKG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC;;;;;;OAMG;IACH,qBAAqB,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE1F;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,0FAA0F;IAC1F,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,SAAS,CAAC,EAAE;IAC7F,IAAI,EAAE,CAAC,uBAAuB,CAAC;IAC/B,OAAO,EAAE,2EAA2E;CACrF,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS,EAAE;IAC9E,IAAI,EAAE,CAAC,kBAAkB,CAAC;IAC1B,OAAO,EACL,yHAAyH;CAC5H,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,sBAAsB,KAAK,SAAS,EAAE;IACpE,IAAI,EAAE,CAAC,wBAAwB,CAAC;IAChC,OAAO,EAAE,kFAAkF;CAC5F,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,EAAE;IAC7D,IAAI,EAAE,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,+EAA+E;CACzF,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,oBAAoB,KAAK,SAAS,EAAE;IACtE,IAAI,EAAE,CAAC,sBAAsB,CAAC;IAC9B,OAAO,EAAE,sFAAsF;CAChG,CAAC;IACF,+FAA+F;IAC/F,sEAAsE;KACrE,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,EAC5F;IACE,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,OAAO,EACL,kNAAkN;CACrN,CACF;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,WAAW,KAAK,YAAY,EAAE;IAClE,IAAI,EAAE,CAAC,gBAAgB,CAAC;IACxB,OAAO,EACL,mGAAmG;CACtG,CAAC;KACD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;IACf,0FAA0F;IAC1F,yFAAyF;IACzF,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,CAAC;QACJ,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,SAAS;QAC7D,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG;QACvC,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,MAAM;QAC1D,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS;QAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG;QAC3B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,WAAW;QACrD,oBAAoB,EAAE,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,UAAU;QAC5D,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,MAAM;QAC9C,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO;KAC1C,CAAC;AACJ,CAAC,CAAC,CAAC;AAML,gFAAgF;AAChF,MAAM,KAAK,GAAG,IAAI,OAAO,EAAkB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGzB,IAAI;IAFf,YACE,OAAe,EACN,IAAc;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;oBAFN,IAAI;QAGb,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,GAAc;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,WAAW,CAAC,sCAAsC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC1C,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Processing ONE watched collection per cron tick (README "How a claim flows" step 2):
|
|
3
3
|
*
|
|
4
|
-
* fetchNewClaims → filterUnseen → startInstances → advanceCursor → stampScanned
|
|
4
|
+
* fetchNewClaims → filterUnseen → startInstances → advanceCursor → stampScanned (rotation only)
|
|
5
5
|
*
|
|
6
6
|
* The cron only DISCOVERS claims and STARTS workflow instances — the workflow owns its own
|
|
7
7
|
* `claim_ingests` row for its whole lifecycle (see workflows/claim-ingest.ts), so there is no
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import type { Database } from "../db/client.js";
|
|
29
29
|
import type { OracleEnv } from "../env.js";
|
|
30
|
-
import { type BlocksyncDeps } from "../lib/ixo/blocksync/index.js";
|
|
30
|
+
import { type BlocksyncDeps, type ScannedClaim } from "../lib/ixo/blocksync/index.js";
|
|
31
31
|
import type { Logger } from "../lib/logger.js";
|
|
32
32
|
import type { Metrics } from "../lib/metrics.js";
|
|
33
33
|
/**
|
|
@@ -42,9 +42,22 @@ export interface CronCtx {
|
|
|
42
42
|
logger: Logger;
|
|
43
43
|
metrics: Metrics;
|
|
44
44
|
}
|
|
45
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Discover new claims in one collection and start their ingest workflows. Returns the count.
|
|
47
|
+
* `stamp` is the rotation's alone: a webhook or nudge scan that stamped `lastScannedAt` would send
|
|
48
|
+
* the collection to the back of the rotation exactly when a claim is about to land (an early scan
|
|
49
|
+
* finds nothing because Blocksync has not indexed it yet).
|
|
50
|
+
*/
|
|
46
51
|
export declare function processCollection(ctx: CronCtx, collection: {
|
|
47
52
|
collectionId: string;
|
|
48
53
|
cursor: string | null;
|
|
54
|
+
}, { stamp }?: {
|
|
55
|
+
stamp?: boolean;
|
|
49
56
|
}): Promise<number>;
|
|
57
|
+
/** Drop claims that already have a ledger row — their workflow has already started (or finished). */
|
|
58
|
+
export declare function filterUnseen<T extends ScannedClaim>(db: Database, claims: T[]): Promise<T[]>;
|
|
59
|
+
/** One createBatch call for the page (idempotent — existing instance ids are skipped). */
|
|
60
|
+
export declare function startInstances(ctx: CronCtx, collectionId: string, claims: ScannedClaim[]): Promise<void>;
|
|
61
|
+
/** Forward-only, in SQL: a slower writer (a tick, the feed, a webhook) never rewinds a faster one. */
|
|
62
|
+
export declare function moveCursor(db: Database, collectionId: string, to: string): Promise<void>;
|
|
50
63
|
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/cron/collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/cron/collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,KAAK,aAAa,EAAkB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC3D,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,qGAAqG;AACrG,wBAAsB,YAAY,CAAC,CAAC,SAAS,YAAY,EACvD,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,CAAC,EAAE,GACV,OAAO,CAAC,CAAC,EAAE,CAAC,CAYd;AAED,0FAA0F;AAC1F,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAwBD,sGAAsG;AACtG,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9F"}
|
package/dist/cron/collection.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Processing ONE watched collection per cron tick (README "How a claim flows" step 2):
|
|
3
3
|
*
|
|
4
|
-
* fetchNewClaims → filterUnseen → startInstances → advanceCursor → stampScanned
|
|
4
|
+
* fetchNewClaims → filterUnseen → startInstances → advanceCursor → stampScanned (rotation only)
|
|
5
5
|
*
|
|
6
6
|
* The cron only DISCOVERS claims and STARTS workflow instances — the workflow owns its own
|
|
7
7
|
* `claim_ingests` row for its whole lifecycle (see workflows/claim-ingest.ts), so there is no
|
|
@@ -35,8 +35,13 @@ import { toTraceparent } from "../lib/tracing.js";
|
|
|
35
35
|
* bound parameters per statement (100), which `filterUnseen`'s `IN (…)` spends one per claim.
|
|
36
36
|
*/
|
|
37
37
|
export const SCAN_LIMIT = 100;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Discover new claims in one collection and start their ingest workflows. Returns the count.
|
|
40
|
+
* `stamp` is the rotation's alone: a webhook or nudge scan that stamped `lastScannedAt` would send
|
|
41
|
+
* the collection to the back of the rotation exactly when a claim is about to land (an early scan
|
|
42
|
+
* finds nothing because Blocksync has not indexed it yet).
|
|
43
|
+
*/
|
|
44
|
+
export async function processCollection(ctx, collection, { stamp = false } = {}) {
|
|
40
45
|
const { collectionId, cursor } = collection;
|
|
41
46
|
try {
|
|
42
47
|
const claims = await getClaimsSince(ctx.deps, collectionId, cursor, SCAN_LIMIT);
|
|
@@ -49,13 +54,14 @@ export async function processCollection(ctx, collection) {
|
|
|
49
54
|
return unseen.length;
|
|
50
55
|
}
|
|
51
56
|
finally {
|
|
52
|
-
// Rotation clock: stamped on every visit — found claims, found nothing, or failed — so
|
|
53
|
-
// or broken collection rotates to the back of the queue instead of starving the rest.
|
|
54
|
-
|
|
57
|
+
// Rotation clock: stamped on every rotation visit — found claims, found nothing, or failed — so
|
|
58
|
+
// a busy or broken collection rotates to the back of the queue instead of starving the rest.
|
|
59
|
+
if (stamp)
|
|
60
|
+
await stampScanned(ctx.db, collectionId).catch(() => { });
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
/** Drop claims that already have a ledger row — their workflow has already started (or finished). */
|
|
58
|
-
async function filterUnseen(db, claims) {
|
|
64
|
+
export async function filterUnseen(db, claims) {
|
|
59
65
|
const seen = await db
|
|
60
66
|
.select({ claimId: claimIngests.claimId })
|
|
61
67
|
.from(claimIngests)
|
|
@@ -64,7 +70,7 @@ async function filterUnseen(db, claims) {
|
|
|
64
70
|
return claims.filter((c) => !seenIds.has(c.claimId));
|
|
65
71
|
}
|
|
66
72
|
/** One createBatch call for the page (idempotent — existing instance ids are skipped). */
|
|
67
|
-
async function startInstances(ctx, collectionId, claims) {
|
|
73
|
+
export async function startInstances(ctx, collectionId, claims) {
|
|
68
74
|
const batch = await Promise.all(claims.map(async (c) => ({
|
|
69
75
|
id: await instanceIdFor(c.claimId),
|
|
70
76
|
// The tick's trace, so the claim's run logs under the scan that found it.
|
|
@@ -97,10 +103,7 @@ async function advanceCursor(ctx, collectionId, cursor, claims, started) {
|
|
|
97
103
|
// Newest non-NULL submissionDate (NULLs sort last in ASC and must not park the cursor).
|
|
98
104
|
const advanceTo = claims.filter((c) => c.submissionDate).at(-1)?.submissionDate ?? null;
|
|
99
105
|
if (advanceTo && advanceTo !== cursor) {
|
|
100
|
-
await ctx.db
|
|
101
|
-
.update(watchedCollections)
|
|
102
|
-
.set({ cursor: advanceTo })
|
|
103
|
-
.where(and(eq(watchedCollections.collectionId, collectionId), or(isNull(watchedCollections.cursor), lt(watchedCollections.cursor, advanceTo))));
|
|
106
|
+
await moveCursor(ctx.db, collectionId, advanceTo);
|
|
104
107
|
return;
|
|
105
108
|
}
|
|
106
109
|
// Full page, nothing new, watermark can't move: a same-timestamp tie wider than SCAN_LIMIT.
|
|
@@ -108,6 +111,13 @@ async function advanceCursor(ctx, collectionId, cursor, claims, started) {
|
|
|
108
111
|
ctx.logger.warn("cron.cursor.stuck", { collectionId, cursor, tie: claims.length });
|
|
109
112
|
}
|
|
110
113
|
}
|
|
114
|
+
/** Forward-only, in SQL: a slower writer (a tick, the feed, a webhook) never rewinds a faster one. */
|
|
115
|
+
export async function moveCursor(db, collectionId, to) {
|
|
116
|
+
await db
|
|
117
|
+
.update(watchedCollections)
|
|
118
|
+
.set({ cursor: to })
|
|
119
|
+
.where(and(eq(watchedCollections.collectionId, collectionId), or(isNull(watchedCollections.cursor), lt(watchedCollections.cursor, to))));
|
|
120
|
+
}
|
|
111
121
|
/** Stamp the rotation clock (see schema `lastScannedAt`). */
|
|
112
122
|
async function stampScanned(db, collectionId) {
|
|
113
123
|
await db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/cron/collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAsB,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAG7F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAU9B
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/cron/collection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAsB,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AAG7F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAU9B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAY,EACZ,UAA2D,EAC3D,EAAE,KAAK,GAAG,KAAK,EAAE,GAAwB,EAAE;IAE3C,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,gGAAgG;QAChG,6FAA6F;QAC7F,IAAI,KAAK;YAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,MAAW;IAEX,MAAM,IAAI,GAAG,MAAM,EAAE;SAClB,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;SACzC,IAAI,CAAC,YAAY,CAAC;SAClB,KAAK,CACJ,OAAO,CACL,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAC7B,CACF,CAAC;IACJ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAY,EACZ,YAAoB,EACpB,MAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,EAAE,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;QAClC,0EAA0E;QAC1E,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;KACzF,CAAC,CAAC,CACJ,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEhE,iGAAiG;IACjG,+FAA+F;IAC/F,8FAA8F;IAC9F,0FAA0F;IAC1F,sCAAsC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;YACvD,YAAY;YACZ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9C,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;QACrC,YAAY;QACZ,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED,gGAAgG;AAChG,KAAK,UAAU,aAAa,CAC1B,GAAY,EACZ,YAAoB,EACpB,MAAqB,EACrB,MAAsB,EACtB,OAAe;IAEf,wFAAwF;IACxF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,IAAI,CAAC;IAExF,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,4FAA4F;IAC5F,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAY,EAAE,YAAoB,EAAE,EAAU;IAC7E,MAAM,EAAE;SACL,MAAM,CAAC,kBAAkB,CAAC;SAC1B,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;SACnB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EACjD,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CACzE,CACF,CAAC;AACN,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,YAAY,CAAC,EAAY,EAAE,YAAoB;IAC5D,MAAM,EAAE;SACL,MAAM,CAAC,kBAAkB,CAAC;SAC1B,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SAClC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global claims feed (oracle speed plan D4): ONE Blocksync read per minute for every claim on
|
|
3
|
+
* the chain since the last one, matched to this oracle's active watched collections in D1 —
|
|
4
|
+
* discovery cost grows with new claims, not with watched collections (the rotation in scan.ts is
|
|
5
|
+
* one read per collection per visit).
|
|
6
|
+
*
|
|
7
|
+
* read position → page the feed (≤ FEED_PAGES_PER_TICK) → keep watched claims → filterUnseen →
|
|
8
|
+
* startInstances → move the position (and the collections' own cursors)
|
|
9
|
+
*
|
|
10
|
+
* The same rules as the per-collection lane (collection.ts), on a chain-wide window:
|
|
11
|
+
* - A 2-minute OVERLAP: Blocksync writes each block in one ordered transaction, but a claim
|
|
12
|
+
* indexed a moment after the read that passed its timestamp is re-read on the next tick;
|
|
13
|
+
* `filterUnseen` + idempotent instance ids make re-reading free.
|
|
14
|
+
* - The position moves only AFTER the page's instances started, so a failure re-reads the page.
|
|
15
|
+
* - A tick that stops at its page cap keeps Blocksync's keyset cursor (`after`), so the next tick
|
|
16
|
+
* continues mid-window instead of re-reading the overlap of a burst.
|
|
17
|
+
* - First run: the position starts at now − overlap. No backfill — a collection's own first sweep
|
|
18
|
+
* (cursor NULL, processCollection) reads its history.
|
|
19
|
+
*
|
|
20
|
+
* The daily replay (`runClaimsReplay`, the hour tier) is the reconcile for a claim indexed later
|
|
21
|
+
* than the overlap: it re-reads the feed 24 h behind, one hourly slice at a time, so every claim is
|
|
22
|
+
* read a second time a day after it was submitted.
|
|
23
|
+
*
|
|
24
|
+
* Per-collection cursors stay consistent: the feed moves a collection's cursor (forward-only) only
|
|
25
|
+
* when that cursor already lies inside the window the feed has read — so everything between it and
|
|
26
|
+
* the new value was seen. A NULL cursor is never moved: the first sweep still owns that history.
|
|
27
|
+
*/
|
|
28
|
+
import type { Database } from "../db/client.js";
|
|
29
|
+
import { type CronCtx } from "./collection.js";
|
|
30
|
+
export declare const FEED_STATE = "claims-feed";
|
|
31
|
+
export declare const REPLAY_STATE = "claims-feed-replay";
|
|
32
|
+
export declare const FEED_OVERLAP_MS: number;
|
|
33
|
+
export declare const REPLAY_LAG_MS: number;
|
|
34
|
+
export declare const FEED_PAGES_PER_TICK = 10;
|
|
35
|
+
export declare const REPLAY_PAGES_PER_TICK = 50;
|
|
36
|
+
/** `at`: the last submissionDate fully started. `after`: the keyset cursor of a capped pass. */
|
|
37
|
+
export interface FeedPosition {
|
|
38
|
+
at: string;
|
|
39
|
+
after?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function readPosition(db: Database, name: string): Promise<FeedPosition | null>;
|
|
42
|
+
/** The minute job. Returns the number of instances started. */
|
|
43
|
+
export declare function runClaimsFeed(ctx: CronCtx, now?: Date): Promise<number>;
|
|
44
|
+
/**
|
|
45
|
+
* The replay (hour tier): the slice of the feed between its last end and now − 24 h, so each
|
|
46
|
+
* claim is read once more a day later. It never reaches before the feed's own first run.
|
|
47
|
+
*/
|
|
48
|
+
export declare function runClaimsReplay(ctx: CronCtx, now?: Date): Promise<number>;
|
|
49
|
+
//# sourceMappingURL=feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../src/cron/feed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,KAAK,OAAO,EAAwD,MAAM,cAAc,CAAC;AAElG,eAAO,MAAM,UAAU,gBAAgB,CAAC;AACxC,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,eAAO,MAAM,eAAe,QAAa,CAAC;AAC1C,eAAO,MAAM,aAAa,QAAmB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAMxC,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAK3F;AAoBD,+DAA+D;AAC/D,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBnF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,OAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrF"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global claims feed (oracle speed plan D4): ONE Blocksync read per minute for every claim on
|
|
3
|
+
* the chain since the last one, matched to this oracle's active watched collections in D1 —
|
|
4
|
+
* discovery cost grows with new claims, not with watched collections (the rotation in scan.ts is
|
|
5
|
+
* one read per collection per visit).
|
|
6
|
+
*
|
|
7
|
+
* read position → page the feed (≤ FEED_PAGES_PER_TICK) → keep watched claims → filterUnseen →
|
|
8
|
+
* startInstances → move the position (and the collections' own cursors)
|
|
9
|
+
*
|
|
10
|
+
* The same rules as the per-collection lane (collection.ts), on a chain-wide window:
|
|
11
|
+
* - A 2-minute OVERLAP: Blocksync writes each block in one ordered transaction, but a claim
|
|
12
|
+
* indexed a moment after the read that passed its timestamp is re-read on the next tick;
|
|
13
|
+
* `filterUnseen` + idempotent instance ids make re-reading free.
|
|
14
|
+
* - The position moves only AFTER the page's instances started, so a failure re-reads the page.
|
|
15
|
+
* - A tick that stops at its page cap keeps Blocksync's keyset cursor (`after`), so the next tick
|
|
16
|
+
* continues mid-window instead of re-reading the overlap of a burst.
|
|
17
|
+
* - First run: the position starts at now − overlap. No backfill — a collection's own first sweep
|
|
18
|
+
* (cursor NULL, processCollection) reads its history.
|
|
19
|
+
*
|
|
20
|
+
* The daily replay (`runClaimsReplay`, the hour tier) is the reconcile for a claim indexed later
|
|
21
|
+
* than the overlap: it re-reads the feed 24 h behind, one hourly slice at a time, so every claim is
|
|
22
|
+
* read a second time a day after it was submitted.
|
|
23
|
+
*
|
|
24
|
+
* Per-collection cursors stay consistent: the feed moves a collection's cursor (forward-only) only
|
|
25
|
+
* when that cursor already lies inside the window the feed has read — so everything between it and
|
|
26
|
+
* the new value was seen. A NULL cursor is never moved: the first sweep still owns that history.
|
|
27
|
+
*/
|
|
28
|
+
import { and, eq, inArray } from "drizzle-orm";
|
|
29
|
+
import { cronState, watchedCollections } from "../db/schema.js";
|
|
30
|
+
import { getClaimsFeedPage } from "../lib/ixo/blocksync/index.js";
|
|
31
|
+
import { filterUnseen, moveCursor, SCAN_LIMIT, startInstances } from "./collection.js";
|
|
32
|
+
export const FEED_STATE = "claims-feed";
|
|
33
|
+
export const REPLAY_STATE = "claims-feed-replay";
|
|
34
|
+
export const FEED_OVERLAP_MS = 2 * 60_000;
|
|
35
|
+
export const REPLAY_LAG_MS = 24 * 60 * 60_000;
|
|
36
|
+
export const FEED_PAGES_PER_TICK = 10;
|
|
37
|
+
export const REPLAY_PAGES_PER_TICK = 50;
|
|
38
|
+
/** Collection ids per `IN (…)` — under D1's 100 bound parameters, with room for the status. */
|
|
39
|
+
const IN_CHUNK = 90;
|
|
40
|
+
/** The feed's open end: any claim the chain has, whatever a block's clock said. */
|
|
41
|
+
const FEED_HORIZON_MS = 24 * 60 * 60_000;
|
|
42
|
+
const iso = (ms) => new Date(ms).toISOString();
|
|
43
|
+
export async function readPosition(db, name) {
|
|
44
|
+
const row = await db.query.cronState.findFirst({ where: eq(cronState.name, name) });
|
|
45
|
+
if (!row)
|
|
46
|
+
return null;
|
|
47
|
+
const value = JSON.parse(row.value);
|
|
48
|
+
return typeof value.at === "string" ? value : null;
|
|
49
|
+
}
|
|
50
|
+
async function writePosition(db, name, position) {
|
|
51
|
+
const value = JSON.stringify(position);
|
|
52
|
+
await db
|
|
53
|
+
.insert(cronState)
|
|
54
|
+
.values({ name, value })
|
|
55
|
+
.onConflictDoUpdate({ target: cronState.name, set: { value } });
|
|
56
|
+
}
|
|
57
|
+
/** No active chain-lane collection ⇒ nothing to match, so no read at all. */
|
|
58
|
+
async function anyActive(db) {
|
|
59
|
+
const row = await db
|
|
60
|
+
.select({ id: watchedCollections.collectionId })
|
|
61
|
+
.from(watchedCollections)
|
|
62
|
+
.where(eq(watchedCollections.status, "active"))
|
|
63
|
+
.limit(1);
|
|
64
|
+
return row.length > 0;
|
|
65
|
+
}
|
|
66
|
+
/** The minute job. Returns the number of instances started. */
|
|
67
|
+
export async function runClaimsFeed(ctx, now = new Date()) {
|
|
68
|
+
if (!(await anyActive(ctx.db)))
|
|
69
|
+
return 0;
|
|
70
|
+
const stored = await readPosition(ctx.db, FEED_STATE);
|
|
71
|
+
if (!stored) {
|
|
72
|
+
const start = { at: iso(now.getTime() - FEED_OVERLAP_MS) };
|
|
73
|
+
await writePosition(ctx.db, REPLAY_STATE, start);
|
|
74
|
+
await writePosition(ctx.db, FEED_STATE, start);
|
|
75
|
+
ctx.logger.info("cron.feed.initialised", { at: start.at });
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
const since = stored.after ? stored.at : iso(Date.parse(stored.at) - FEED_OVERLAP_MS);
|
|
79
|
+
return follow(ctx, FEED_STATE, {
|
|
80
|
+
window: { since, until: iso(now.getTime() + FEED_HORIZON_MS) },
|
|
81
|
+
after: stored.after ?? null,
|
|
82
|
+
pages: FEED_PAGES_PER_TICK,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The replay (hour tier): the slice of the feed between its last end and now − 24 h, so each
|
|
87
|
+
* claim is read once more a day later. It never reaches before the feed's own first run.
|
|
88
|
+
*/
|
|
89
|
+
export async function runClaimsReplay(ctx, now = new Date()) {
|
|
90
|
+
if (!(await anyActive(ctx.db)))
|
|
91
|
+
return 0;
|
|
92
|
+
const stored = await readPosition(ctx.db, REPLAY_STATE);
|
|
93
|
+
const until = iso(now.getTime() - REPLAY_LAG_MS);
|
|
94
|
+
if (!stored || (!stored.after && Date.parse(stored.at) >= Date.parse(until)))
|
|
95
|
+
return 0;
|
|
96
|
+
return follow(ctx, REPLAY_STATE, {
|
|
97
|
+
window: { since: stored.at, until },
|
|
98
|
+
after: stored.after ?? null,
|
|
99
|
+
pages: REPLAY_PAGES_PER_TICK,
|
|
100
|
+
// A finished slice ends at its bound, so the next one starts exactly there.
|
|
101
|
+
end: until,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
async function follow(ctx, name, pass) {
|
|
105
|
+
const { window } = pass;
|
|
106
|
+
let after = pass.after;
|
|
107
|
+
let at = null;
|
|
108
|
+
let started = 0;
|
|
109
|
+
for (let page = 0; page < pass.pages; page++) {
|
|
110
|
+
const { claims, next } = await getClaimsFeedPage(ctx.deps, window, after, SCAN_LIMIT);
|
|
111
|
+
started += await startWatched(ctx, claims, window.since);
|
|
112
|
+
at = claims.filter((c) => c.submissionDate).at(-1)?.submissionDate ?? at;
|
|
113
|
+
if (!next) {
|
|
114
|
+
const end = pass.end ?? at;
|
|
115
|
+
if (end)
|
|
116
|
+
await writePosition(ctx.db, name, { at: end });
|
|
117
|
+
return started;
|
|
118
|
+
}
|
|
119
|
+
after = next;
|
|
120
|
+
await writePosition(ctx.db, name, { at: at ?? window.since, after });
|
|
121
|
+
}
|
|
122
|
+
ctx.logger.warn("cron.feed.capped", { name, pages: pass.pages, at });
|
|
123
|
+
return started;
|
|
124
|
+
}
|
|
125
|
+
/** Start this page's claims that belong to an active watched collection. */
|
|
126
|
+
async function startWatched(ctx, claims, coveredFrom) {
|
|
127
|
+
if (claims.length === 0)
|
|
128
|
+
return 0;
|
|
129
|
+
const ids = [...new Set(claims.map((c) => c.collectionId))];
|
|
130
|
+
const cursors = new Map();
|
|
131
|
+
for (let i = 0; i < ids.length; i += IN_CHUNK) {
|
|
132
|
+
const rows = await ctx.db
|
|
133
|
+
.select({ id: watchedCollections.collectionId, cursor: watchedCollections.cursor })
|
|
134
|
+
.from(watchedCollections)
|
|
135
|
+
.where(and(eq(watchedCollections.status, "active"), inArray(watchedCollections.collectionId, ids.slice(i, i + IN_CHUNK))));
|
|
136
|
+
for (const row of rows)
|
|
137
|
+
cursors.set(row.id, row.cursor);
|
|
138
|
+
}
|
|
139
|
+
const mine = claims.filter((c) => cursors.has(c.collectionId));
|
|
140
|
+
if (mine.length === 0)
|
|
141
|
+
return 0;
|
|
142
|
+
const unseen = await filterUnseen(ctx.db, mine);
|
|
143
|
+
const byCollection = new Map();
|
|
144
|
+
for (const c of unseen) {
|
|
145
|
+
byCollection.set(c.collectionId, [...(byCollection.get(c.collectionId) ?? []), c]);
|
|
146
|
+
}
|
|
147
|
+
for (const [collectionId, group] of byCollection) {
|
|
148
|
+
await startInstances(ctx, collectionId, group);
|
|
149
|
+
}
|
|
150
|
+
for (const [collectionId, cursor] of cursors) {
|
|
151
|
+
if (cursor === null || Date.parse(cursor) < Date.parse(coveredFrom))
|
|
152
|
+
continue;
|
|
153
|
+
const last = mine.filter((c) => c.collectionId === collectionId && c.submissionDate).at(-1);
|
|
154
|
+
if (last?.submissionDate)
|
|
155
|
+
await moveCursor(ctx.db, collectionId, last.submissionDate);
|
|
156
|
+
}
|
|
157
|
+
return unseen.length;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.js","sourceRoot":"","sources":["../../src/cron/feed.ts"],"names":[],"mappings":"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"}
|
package/dist/cron/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/cron/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAUxC,OAAO,EAAE,KAAK,OAAO,EAAqB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/cron/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAUxC,OAAO,EAAE,KAAK,OAAO,EAAqB,MAAM,cAAc,CAAC;AAQ/D;;;;GAIG;AACH,eAAO,MAAM,UAAU;aACrB,WAAW,EAAE,QAAQ;aACrB,aAAa,EAAE,MAAM;aACrB,WAAW,EAAE,MAAM;CACX,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAepE;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAgBnD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7E"}
|
package/dist/cron/scan.js
CHANGED
|
@@ -28,6 +28,7 @@ import { runApiLaneTick } from "./api-lane.js";
|
|
|
28
28
|
import { chainBacklog } from "./backlog.js";
|
|
29
29
|
import { resumeEngineCredits } from "./billing.js";
|
|
30
30
|
import { processCollection } from "./collection.js";
|
|
31
|
+
import { runClaimsFeed, runClaimsReplay } from "./feed.js";
|
|
31
32
|
import { resumeAdminFunds } from "./funding.js";
|
|
32
33
|
import { openhandsTick } from "./openhands.js";
|
|
33
34
|
/** Collections processed concurrently within a tick. */
|
|
@@ -161,6 +162,15 @@ async function minute(ctx, env) {
|
|
|
161
162
|
await openhandsTick(ctx, env, "minute");
|
|
162
163
|
// Before the scan, whose failure is the one that escapes the tick; it never throws itself.
|
|
163
164
|
await chainBacklog(ctx);
|
|
165
|
+
// The fast path (cron/feed.ts): one chain-wide read for every watched collection. Contained —
|
|
166
|
+
// the rotation below still discovers everything if the feed is down.
|
|
167
|
+
try {
|
|
168
|
+
await timeCronJob(metrics, "claims-feed", () => Sentry.withMonitor("oracle-claims-feed", () => runClaimsFeed(ctx), MONITOR));
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
logger.error("cron.feed.failed", { detail: err instanceof Error ? err.message : String(err) });
|
|
172
|
+
reportError(err, { lane: "cron", step: "claims-feed" });
|
|
173
|
+
}
|
|
164
174
|
await timeCronJob(metrics, "scan", () => Sentry.withMonitor("oracle-scan", () => scanDue(ctx, config), MONITOR));
|
|
165
175
|
}
|
|
166
176
|
async function five(ctx, env) {
|
|
@@ -183,6 +193,16 @@ async function five(ctx, env) {
|
|
|
183
193
|
async function hour(ctx, env) {
|
|
184
194
|
const { logger, metrics } = ctx;
|
|
185
195
|
const config = loadConfig(env);
|
|
196
|
+
// The feed's reconcile: re-read the slice that turned 24 h old (cron/feed.ts).
|
|
197
|
+
try {
|
|
198
|
+
await timeCronJob(metrics, "claims-replay", () => runClaimsReplay(ctx));
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
logger.error("cron.replay.failed", {
|
|
202
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
203
|
+
});
|
|
204
|
+
reportError(err, { lane: "cron", step: "claims-replay" });
|
|
205
|
+
}
|
|
186
206
|
// The chain review rooms follow their reviewer grants (lib/matrix/deliver.ts): hourly, whoever's
|
|
187
207
|
// grant expired is kicked and a failed invite retried — a revoke kicks at once already.
|
|
188
208
|
try {
|
|
@@ -225,7 +245,7 @@ async function scanDue(ctx, config) {
|
|
|
225
245
|
let failed = 0;
|
|
226
246
|
for (let i = 0; i < due.length; i += CHUNK_SIZE) {
|
|
227
247
|
const chunk = due.slice(i, i + CHUNK_SIZE);
|
|
228
|
-
const results = await Promise.allSettled(chunk.map((c) => processCollection(ctx, c)));
|
|
248
|
+
const results = await Promise.allSettled(chunk.map((c) => processCollection(ctx, c, { stamp: true })));
|
|
229
249
|
for (const [j, result] of results.entries()) {
|
|
230
250
|
if (result.status === "fulfilled") {
|
|
231
251
|
started += result.value;
|
package/dist/cron/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/cron/scan.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/cron/scan.ts"],"names":[],"mappings":"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"}
|