@ixo/decision-oracle 0.2.22 → 0.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +1 -1
  2. package/dist/cron/openhands.d.ts +4 -2
  3. package/dist/cron/openhands.d.ts.map +1 -1
  4. package/dist/cron/openhands.js +21 -17
  5. package/dist/cron/openhands.js.map +1 -1
  6. package/dist/lib/claim-failure.d.ts +13 -0
  7. package/dist/lib/claim-failure.d.ts.map +1 -0
  8. package/dist/lib/claim-failure.js +21 -0
  9. package/dist/lib/claim-failure.js.map +1 -0
  10. package/dist/lib/ixo/blocksync/index.d.ts +17 -2
  11. package/dist/lib/ixo/blocksync/index.d.ts.map +1 -1
  12. package/dist/lib/ixo/blocksync/index.js +28 -2
  13. package/dist/lib/ixo/blocksync/index.js.map +1 -1
  14. package/dist/lib/ixo/blocksync/queries.d.ts +3 -1
  15. package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -1
  16. package/dist/lib/ixo/blocksync/queries.js +28 -1
  17. package/dist/lib/ixo/blocksync/queries.js.map +1 -1
  18. package/dist/lib/ixo/blocksync/types.d.ts +11 -0
  19. package/dist/lib/ixo/blocksync/types.d.ts.map +1 -1
  20. package/dist/lib/ixo/blocksync/types.js +10 -0
  21. package/dist/lib/ixo/blocksync/types.js.map +1 -1
  22. package/dist/lib/openhands/backstop.d.ts +54 -28
  23. package/dist/lib/openhands/backstop.d.ts.map +1 -1
  24. package/dist/lib/openhands/backstop.js +147 -110
  25. package/dist/lib/openhands/backstop.js.map +1 -1
  26. package/dist/lib/openhands/chain.d.ts +2 -14
  27. package/dist/lib/openhands/chain.d.ts.map +1 -1
  28. package/dist/lib/openhands/chain.js +1 -34
  29. package/dist/lib/openhands/chain.js.map +1 -1
  30. package/dist/lib/openhands/store.d.ts +1 -0
  31. package/dist/lib/openhands/store.d.ts.map +1 -1
  32. package/dist/lib/openhands/store.js +1 -0
  33. package/dist/lib/openhands/store.js.map +1 -1
  34. package/dist/routes/v1/claims.d.ts +3 -2
  35. package/dist/routes/v1/claims.d.ts.map +1 -1
  36. package/dist/routes/v1/claims.js +11 -3
  37. package/dist/routes/v1/claims.js.map +1 -1
  38. package/dist/routes/v1/shared.d.ts.map +1 -1
  39. package/dist/routes/v1/shared.js +31 -4
  40. package/dist/routes/v1/shared.js.map +1 -1
  41. package/dist/runtime.d.ts +1 -0
  42. package/dist/runtime.d.ts.map +1 -1
  43. package/dist/runtime.js +2 -0
  44. package/dist/runtime.js.map +1 -1
  45. package/docs/api.md +16 -9
  46. package/docs/guide.md +7 -2
  47. package/package.json +1 -1
  48. package/skills/add-openhands-support/SKILL.md +3 -2
package/README.md CHANGED
@@ -784,6 +784,6 @@ symlinks are not packed). CI diffs them — change one, copy it to the other.
784
784
 
785
785
  ## Status
786
786
 
787
- Published on npm: `@ixo/decision-oracle` 0.2.22 and `@ixo/decision-oracle-client` 0.1.1.
787
+ Published on npm: `@ixo/decision-oracle` 0.2.24 and `@ixo/decision-oracle-client` 0.1.1.
788
788
 
789
789
  Apache License 2.0: `LICENSE` at the repo root and in each package.
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * The OpenHands add-on's share of the tick (no-op unless `openhands` is set in `defineOracle`):
3
- * every minute, the collections whose `/openhands/scan` was coalesced; every five, the backstop
4
- * (lib/openhands/backstop.ts). Contained like every other job: a failure never costs the tick.
3
+ * every minute, the collections whose `/openhands/scan` was coalesced and the grants feed (one
4
+ * Blocksync read when nothing is new, so a lost hire webhook costs a minute); every five, the
5
+ * backstop's window (lib/openhands/backstop.ts). Contained like every other job: a failure never
6
+ * costs the tick, and one job's failure never costs the other.
5
7
  */
6
8
  import type { OracleEnv } from "../env.js";
7
9
  import type { CronCtx } from "./collection.js";
@@ -1 +1 @@
1
- {"version":3,"file":"openhands.d.ts","sourceRoot":"","sources":["../../src/cron/openhands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,GAAG,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"openhands.d.ts","sourceRoot":"","sources":["../../src/cron/openhands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,wBAAsB,aAAa,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,GAAG,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -1,30 +1,34 @@
1
1
  /**
2
2
  * The OpenHands add-on's share of the tick (no-op unless `openhands` is set in `defineOracle`):
3
- * every minute, the collections whose `/openhands/scan` was coalesced; every five, the backstop
4
- * (lib/openhands/backstop.ts). Contained like every other job: a failure never costs the tick.
3
+ * every minute, the collections whose `/openhands/scan` was coalesced and the grants feed (one
4
+ * Blocksync read when nothing is new, so a lost hire webhook costs a minute); every five, the
5
+ * backstop's window (lib/openhands/backstop.ts). Contained like every other job: a failure never
6
+ * costs the tick, and one job's failure never costs the other.
5
7
  */
6
8
  import { timeCronJob } from "../lib/metrics.js";
7
- import { runBackstop } from "../lib/openhands/backstop.js";
9
+ import { runBackstop, runGrantsFeed } from "../lib/openhands/backstop.js";
8
10
  import { openhandsEnabled } from "../lib/openhands/options.js";
9
11
  import { hireDeps, runDirtyScans } from "../lib/openhands/routes.js";
10
12
  import { reportError } from "../lib/sentry.js";
11
13
  export async function openhandsTick(ctx, env, tier) {
12
14
  if (!openhandsEnabled())
13
15
  return;
14
- const job = tier === "minute" ? "openhands-scans" : "openhands-backstop";
15
- try {
16
- await timeCronJob(ctx.metrics, job, async () => {
17
- if (tier === "minute")
18
- await runDirtyScans(env);
19
- else
20
- await runBackstop(hireDeps(env));
21
- });
22
- }
23
- catch (err) {
24
- ctx.logger.error(`cron.${job}.failed`, {
25
- detail: err instanceof Error ? err.message : String(err),
26
- });
27
- reportError(err, { lane: "cron", step: job });
16
+ const jobs = tier === "minute"
17
+ ? [
18
+ ["openhands-scans", () => runDirtyScans(env)],
19
+ ["openhands-grants-feed", () => runGrantsFeed(hireDeps(env))],
20
+ ]
21
+ : [["openhands-backstop", () => runBackstop(hireDeps(env))]];
22
+ for (const [job, run] of jobs) {
23
+ try {
24
+ await timeCronJob(ctx.metrics, job, run);
25
+ }
26
+ catch (err) {
27
+ ctx.logger.error(`cron.${job}.failed`, {
28
+ detail: err instanceof Error ? err.message : String(err),
29
+ });
30
+ reportError(err, { lane: "cron", step: job });
31
+ }
28
32
  }
29
33
  }
30
34
  //# sourceMappingURL=openhands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openhands.js","sourceRoot":"","sources":["../../src/cron/openhands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EACZ,GAAc,EACd,IAAuB;IAEvB,IAAI,CAAC,gBAAgB,EAAE;QAAE,OAAO;IAChC,MAAM,GAAG,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE;YAC7C,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;;gBAC3C,MAAM,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE;YACrC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACzD,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"openhands.js","sourceRoot":"","sources":["../../src/cron/openhands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EACZ,GAAc,EACd,IAAuB;IAEvB,IAAI,CAAC,gBAAgB,EAAE;QAAE,OAAO;IAChC,MAAM,IAAI,GACR,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC;YACE,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAC9D;QACH,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE;gBACrC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A failed ingest in words a claimant may read. `claim_ingests.error` is the operator's text — an
3
+ * env var name, an RPC detail, the engine's own message — and never leaves for the submitter (the
4
+ * claim read, routes/v1/claims.ts; an OpenHands "why" route through `/runtime`). Instead a known
5
+ * cause gets one short sentence, everything else the generic one. Matched on the substrings the
6
+ * throwers write (engine/client.ts, the evaluate step's billing refusals), wherever a wrapper's
7
+ * "NonRetryableError: " prefix puts them. The terminal path already reported it (Sentry, the
8
+ * Errored instance), so "the operator has been told" is true of every failure.
9
+ */
10
+ export declare const CLAIM_FAILED_BILLING = "The oracle isn't set up to bill this check yet \u2014 the operator has been told.";
11
+ export declare const CLAIM_FAILED = "The check couldn't run; the operator has been told.";
12
+ export declare function claimFailureReason(error: string | null): string;
13
+ //# sourceMappingURL=claim-failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-failure.d.ts","sourceRoot":"","sources":["../../src/lib/claim-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,eAAO,MAAM,oBAAoB,sFAC+C,CAAC;AACjF,eAAO,MAAM,YAAY,wDAAwD,CAAC;AAElF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/D"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A failed ingest in words a claimant may read. `claim_ingests.error` is the operator's text — an
3
+ * env var name, an RPC detail, the engine's own message — and never leaves for the submitter (the
4
+ * claim read, routes/v1/claims.ts; an OpenHands "why" route through `/runtime`). Instead a known
5
+ * cause gets one short sentence, everything else the generic one. Matched on the substrings the
6
+ * throwers write (engine/client.ts, the evaluate step's billing refusals), wherever a wrapper's
7
+ * "NonRetryableError: " prefix puts them. The terminal path already reported it (Sentry, the
8
+ * Errored instance), so "the operator has been told" is true of every failure.
9
+ */
10
+ const BILLING = [
11
+ "OWNER_DELEGATION_CAR",
12
+ "Owner delegation",
13
+ "ownerDelegation",
14
+ "Owner has no active IXO subscription",
15
+ ];
16
+ export const CLAIM_FAILED_BILLING = "The oracle isn't set up to bill this check yet — the operator has been told.";
17
+ export const CLAIM_FAILED = "The check couldn't run; the operator has been told.";
18
+ export function claimFailureReason(error) {
19
+ return BILLING.some((cause) => error?.includes(cause)) ? CLAIM_FAILED_BILLING : CLAIM_FAILED;
20
+ }
21
+ //# sourceMappingURL=claim-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim-failure.js","sourceRoot":"","sources":["../../src/lib/claim-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,OAAO,GAAG;IACd,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,sCAAsC;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8EAA8E,CAAC;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,qDAAqD,CAAC;AAElF,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC;AAC/F,CAAC"}
@@ -9,8 +9,8 @@
9
9
  * fetch site, so a blocksync schema drift is a loud, retryable outage naming the query — never an
10
10
  * `undefined` amount inside payment.ts or a garbage cron cursor.
11
11
  */
12
- import { type BlocksyncDeps, type ClaimIntent, ClaimNode, CollectionNode, FeedClaim, IidService, LinkedResource, ScannedClaim } from "./types.js";
13
- export type { BlocksyncDeps, ClaimIntent, ClaimNode, CollectionNode, CollectionPayment, CollectionPayments, FeedClaim, IidService, LinkedResource, ScannedClaim, } from "./types.js";
12
+ import { type BlocksyncDeps, type ClaimIntent, ClaimNode, CollectionNode, FeedClaim, FeedGrant, IidService, LinkedResource, ScannedClaim } from "./types.js";
13
+ export type { BlocksyncDeps, ClaimIntent, ClaimNode, CollectionNode, CollectionPayment, CollectionPayments, FeedClaim, FeedGrant, IidService, LinkedResource, ScannedClaim, } from "./types.js";
14
14
  /** The on-chain claim by its id (== body CID). Returns null when no such claim exists on-chain. */
15
15
  export declare function getClaimById(deps: BlocksyncDeps, claimId: string): Promise<ClaimNode | null>;
16
16
  /** The collection by id — existence check at register time, entity/protocol for bot resolution. */
@@ -34,6 +34,21 @@ export declare function getClaimsFeedPage(deps: BlocksyncDeps, window: {
34
34
  since: string;
35
35
  until: string;
36
36
  }, after: string | null, limit: number): Promise<FeedPage>;
37
+ /** One page of the `msgTypeUrl` grants made to `grantee` at or above `from`, oldest first, after `after`. */
38
+ export declare function getGrantsFeedPage(deps: BlocksyncDeps, feed: {
39
+ grantee: string;
40
+ msgTypeUrl: string;
41
+ from: number;
42
+ }, after: string | null, limit: number): Promise<{
43
+ grants: FeedGrant[];
44
+ next: string | null;
45
+ }>;
46
+ /**
47
+ * Is there a live authz grant between accounts `a` and `b`, either way round, of any message type?
48
+ * Live = no expiration or one still ahead (the indexer may lag its prune). Blocksync trouble is
49
+ * `unavailable` (503), never a "no".
50
+ */
51
+ export declare function hasLiveGrantBetween(deps: BlocksyncDeps, a: string, b: string, now?: number): Promise<boolean>;
37
52
  /**
38
53
  * The frequency rule's count (dup-detection spec §13.1): this submitter's claims in the
39
54
  * collection whose `submissionDate` falls in [from, to) — rejected/invalidated priors excluded,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsBH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAuDjB,mGAAmG;AACnG,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG3B;AAMD,mGAAmG;AACnG,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAOhC;AAmDD,oFAAoF;AACpF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAGtC;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AASD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,oEAAoE;IACpE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,6FAA6F;AAC7F,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACxC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAID;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrF,OAAO,CAAC,MAAM,CAAC,CAYjB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2C7B;AAMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7F;AASD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnB;AAUD,2GAA2G;AAC3G,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,EAAE,CAAC,CAO3B;AAeD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAQ7E;AAQD,uGAAuG;AACvG,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAO/F;AAED,gGAAgG;AAChG,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,SAAS,EACT,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAuDjB,mGAAmG;AACnG,wBAAsB,YAAY,CAChC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG3B;AAMD,mGAAmG;AACnG,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAOhC;AAmDD,oFAAoF;AACpF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B;AAED,0FAA0F;AAC1F,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAGtC;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AASD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,oEAAoE;IACpE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,6FAA6F;AAC7F,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACxC,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAWnB;AASD,6GAA6G;AAC7G,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAavD;AAKD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,SAAa,GACf,OAAO,CAAC,OAAO,CAAC,CASlB;AAID;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrF,OAAO,CAAC,MAAM,CAAC,CAYjB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACrF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2C7B;AAMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7F;AASD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAOnB;AAUD,2GAA2G;AAC3G,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,EAAE,CAAC,CAO3B;AAeD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAQ7E;AAQD,uGAAuG;AACvG,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAO/F;AAED,gGAAgG;AAChG,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB"}
@@ -12,8 +12,8 @@
12
12
  import { z } from "zod";
13
13
  import { AppError } from "../../errors.js";
14
14
  import { fetchClient } from "../../http/client.js";
15
- import { AGENT_CLAIMS_IN_WINDOW_COUNT, CLAIM_BY_ID, CLAIM_INTENT, CLAIMS_FEED, CLAIMS_FROM_START, CLAIMS_SINCE, COLLECTION_BY_ID, COLLECTIONS_BY_ADMINS, COLLECTIONS_BY_IDS, ENTITY_CONTROLLERS, ENTITY_DOCS, ENTITY_LINKED_RESOURCES, ENTITY_OWNER, ENTITY_SERVICES, IID_SERVICES, } from "./queries.js";
16
- import { ClaimNode, CollectionNode, FeedClaim, IidService, LinkedResource, ScannedClaim, } from "./types.js";
15
+ import { AGENT_CLAIMS_IN_WINDOW_COUNT, CLAIM_BY_ID, CLAIM_INTENT, CLAIMS_FEED, CLAIMS_FROM_START, CLAIMS_SINCE, COLLECTION_BY_ID, COLLECTIONS_BY_ADMINS, COLLECTIONS_BY_IDS, ENTITY_CONTROLLERS, ENTITY_DOCS, ENTITY_LINKED_RESOURCES, ENTITY_OWNER, ENTITY_SERVICES, GRANTS_BETWEEN, IID_SERVICES, ORACLE_META_GRANTS, } from "./queries.js";
16
+ import { ClaimNode, CollectionNode, FeedClaim, FeedGrant, IidService, LinkedResource, ScannedClaim, } from "./types.js";
17
17
  async function gql(deps, query, variables) {
18
18
  let res;
19
19
  try {
@@ -139,6 +139,32 @@ export async function getClaimsFeedPage(deps, window, after, limit) {
139
139
  }
140
140
  return { claims: nodes, next: pageInfo.hasNextPage ? pageInfo.endCursor : null };
141
141
  }
142
+ const GrantsPageData = z.object({
143
+ authzGrants: z.object({
144
+ nodes: z.array(FeedGrant),
145
+ pageInfo: z.object({ hasNextPage: z.boolean(), endCursor: z.string().nullable() }),
146
+ }),
147
+ });
148
+ /** One page of the `msgTypeUrl` grants made to `grantee` at or above `from`, oldest first, after `after`. */
149
+ export async function getGrantsFeedPage(deps, feed, after, limit) {
150
+ const data = parsed(GrantsPageData, await gql(deps, ORACLE_META_GRANTS, { ...feed, first: limit, after }), "OracleMetaGrants");
151
+ const { nodes, pageInfo } = data.authzGrants;
152
+ if (pageInfo.hasNextPage && (!pageInfo.endCursor || pageInfo.endCursor === after)) {
153
+ throw AppError.unavailable("Blocksync says OracleMetaGrants has another page but gave no cursor");
154
+ }
155
+ return { grants: nodes, next: pageInfo.hasNextPage ? pageInfo.endCursor : null };
156
+ }
157
+ const GrantRows = z.object({ nodes: z.array(z.object({ expiration: z.string().nullable() })) });
158
+ const GrantsBetweenData = z.object({ ab: GrantRows, ba: GrantRows });
159
+ /**
160
+ * Is there a live authz grant between accounts `a` and `b`, either way round, of any message type?
161
+ * Live = no expiration or one still ahead (the indexer may lag its prune). Blocksync trouble is
162
+ * `unavailable` (503), never a "no".
163
+ */
164
+ export async function hasLiveGrantBetween(deps, a, b, now = Date.now()) {
165
+ const data = parsed(GrantsBetweenData, await gql(deps, GRANTS_BETWEEN, { a, b }), "GrantsBetween");
166
+ return [...data.ab.nodes, ...data.ba.nodes].some((g) => g.expiration === null || Date.parse(g.expiration) > now);
167
+ }
142
168
  const CountData = z.object({ claims: z.object({ totalCount: z.number().int() }) });
143
169
  /**
144
170
  * The frequency rule's count (dup-detection spec §13.1): this submitter's claims in the
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export declare const IID_SERVICES = "\n query IidServices($ids: [String!]) {\n
13
13
  /** An entity's public documents: its LinkedResources and its settings (`#pro` lives there). */
14
14
  export declare const ENTITY_DOCS = "\n query EntityDocs($ids: [String!]) {\n entities(filter: { id: { in: $ids } }) { nodes { id alsoKnownAs linkedResource settings } }\n }";
15
15
  export declare const ENTITY_LINKED_RESOURCES = "\n query EntityLinkedResources($ids: [String!]) {\n entities(filter: { id: { in: $ids } }) { nodes { id linkedResource } }\n }";
16
- export declare const COLLECTIONS_BY_ADMINS = "\n query CollectionsByAdmins($in: [String!], $first: Int!, $after: Cursor) {\n claimCollections(filter: { admin: { in: $in } }, orderBy: ID_ASC, first: $first, after: $after) {\n nodes { id admin protocol entity startDate endDate payments }\n pageInfo { hasNextPage endCursor }\n }\n }";
16
+ export declare const ORACLE_META_GRANTS = "\n query OracleMetaGrants($grantee: String!, $msgTypeUrl: String!, $from: Int!, $first: Int!, $after: Cursor) {\n authzGrants(\n orderBy: GRANTED_AT_HEIGHT_ASC\n first: $first\n after: $after\n condition: { grantee: $grantee, msgTypeUrl: $msgTypeUrl }\n filter: { grantedAtHeight: { greaterThanOrEqualTo: $from } }\n ) {\n nodes { granter grantedAtHeight expiration authorization }\n pageInfo { hasNextPage endCursor }\n }\n }";
17
+ export declare const GRANTS_BETWEEN = "\n query GrantsBetween($a: String!, $b: String!) {\n ab: authzGrants(condition: { granter: $a, grantee: $b }, first: 20) { nodes { expiration } }\n ba: authzGrants(condition: { granter: $b, grantee: $a }, first: 20) { nodes { expiration } }\n }";
18
+ export declare const COLLECTIONS_BY_ADMINS = "\n query CollectionsByAdmins($in: [String!], $first: Int!, $after: Cursor) {\n claimCollections(filter: { admin: { in: $in } }, orderBy: ID_ASC, first: $first, after: $after) {\n nodes { id admin protocol entity startDate endDate payments state }\n pageInfo { hasNextPage endCursor }\n }\n }";
17
19
  export declare const COLLECTIONS_BY_IDS = "\n query CollectionsByIds($in: [String!], $first: Int!, $after: Cursor) {\n claimCollections(filter: { id: { in: $in } }, orderBy: ID_ASC, first: $first, after: $after) {\n nodes { id admin protocol entity startDate endDate payments }\n pageInfo { hasNextPage endCursor }\n }\n }";
18
20
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/queries.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAKhG,eAAO,MAAM,WAAW,yaAUpB,CAAC;AAQL,eAAO,MAAM,gBAAgB,wNAKzB,CAAC;AAOL,eAAO,MAAM,YAAY,gVAOrB,CAAC;AAML,eAAO,MAAM,WAAW,iZAWpB,CAAC;AAEL,eAAO,MAAM,iBAAiB,+QAO1B,CAAC;AAUL,eAAO,MAAM,4BAA4B,0YAQrC,CAAC;AAiCL,eAAO,MAAM,YAAY,oXAYrB,CAAC;AAML,eAAO,MAAM,YAAY,8EAGrB,CAAC;AAIL,eAAO,MAAM,kBAAkB,yFAG3B,CAAC;AAIL,eAAO,MAAM,eAAe,0HAGxB,CAAC;AAEL,eAAO,MAAM,YAAY,mHAGrB,CAAC;AAGL,+FAA+F;AAC/F,eAAO,MAAM,WAAW,kJAGpB,CAAC;AAEL,eAAO,MAAM,uBAAuB,wIAGhC,CAAC;AAKL,eAAO,MAAM,qBAAqB,oTAM9B,CAAC;AAEL,eAAO,MAAM,kBAAkB,8SAM3B,CAAC"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/queries.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAKhG,eAAO,MAAM,WAAW,yaAUpB,CAAC;AAQL,eAAO,MAAM,gBAAgB,wNAKzB,CAAC;AAOL,eAAO,MAAM,YAAY,gVAOrB,CAAC;AAML,eAAO,MAAM,WAAW,iZAWpB,CAAC;AAEL,eAAO,MAAM,iBAAiB,+QAO1B,CAAC;AAUL,eAAO,MAAM,4BAA4B,0YAQrC,CAAC;AAiCL,eAAO,MAAM,YAAY,oXAYrB,CAAC;AAML,eAAO,MAAM,YAAY,8EAGrB,CAAC;AAIL,eAAO,MAAM,kBAAkB,yFAG3B,CAAC;AAIL,eAAO,MAAM,eAAe,0HAGxB,CAAC;AAEL,eAAO,MAAM,YAAY,mHAGrB,CAAC;AAGL,+FAA+F;AAC/F,eAAO,MAAM,WAAW,kJAGpB,CAAC;AAEL,eAAO,MAAM,uBAAuB,wIAGhC,CAAC;AAOL,eAAO,MAAM,kBAAkB,6dAY3B,CAAC;AAML,eAAO,MAAM,cAAc,iQAIvB,CAAC;AAKL,eAAO,MAAM,qBAAqB,0TAM9B,CAAC;AAEL,eAAO,MAAM,kBAAkB,8SAM3B,CAAC"}
@@ -157,13 +157,40 @@ export const ENTITY_LINKED_RESOURCES = `
157
157
  query EntityLinkedResources($ids: [String!]) {
158
158
  entities(filter: { id: { in: $ids } }) { nodes { id linkedResource } }
159
159
  }`;
160
+ // The OpenHands grants feed (lib/openhands/backstop.ts): the meta-grants made to one grantee from
161
+ // a block height on, oldest first, keyset-paged. The table holds LIVE grants only (an expired or
162
+ // revoked one is deleted), and PostGraphile orders a GRANTED_AT_HEIGHT_ASC page by (height, primary
163
+ // key), so a cursor is stable across grants sharing a block. Verified on testnet and mainnet
164
+ // 2026-10-22 (`grantedAtHeight` is an `Int` there, not a `BigInt`).
165
+ export const ORACLE_META_GRANTS = `
166
+ query OracleMetaGrants($grantee: String!, $msgTypeUrl: String!, $from: Int!, $first: Int!, $after: Cursor) {
167
+ authzGrants(
168
+ orderBy: GRANTED_AT_HEIGHT_ASC
169
+ first: $first
170
+ after: $after
171
+ condition: { grantee: $grantee, msgTypeUrl: $msgTypeUrl }
172
+ filter: { grantedAtHeight: { greaterThanOrEqualTo: $from } }
173
+ ) {
174
+ nodes { granter grantedAtHeight expiration authorization }
175
+ pageInfo { hasNextPage endCursor }
176
+ }
177
+ }`;
178
+ // Any LIVE authz grant between two accounts, in each direction (the claim read's agent link,
179
+ // routes/v1/shared.ts). The table holds live grants only; `expiration` is still checked by the
180
+ // caller, since a grant can outlive its expiry until the indexer prunes it. A handful of rows is
181
+ // all the answer needs: one live grant links them.
182
+ export const GRANTS_BETWEEN = `
183
+ query GrantsBetween($a: String!, $b: String!) {
184
+ ab: authzGrants(condition: { granter: $a, grantee: $b }, first: 20) { nodes { expiration } }
185
+ ba: authzGrants(condition: { granter: $b, grantee: $a }, first: 20) { nodes { expiration } }
186
+ }`;
160
187
  // The OpenHands backstop's paged reads (lib/openhands/backstop.ts): every collection of a set of
161
188
  // admins (a meta-grant names an admin, never a collection) or of a set of ids. Ordered by id and
162
189
  // followed to the last page — a read that silently stopped at its first page went blind past it.
163
190
  export const COLLECTIONS_BY_ADMINS = `
164
191
  query CollectionsByAdmins($in: [String!], $first: Int!, $after: Cursor) {
165
192
  claimCollections(filter: { admin: { in: $in } }, orderBy: ID_ASC, first: $first, after: $after) {
166
- nodes { id admin protocol entity startDate endDate payments }
193
+ nodes { id admin protocol entity startDate endDate payments state }
167
194
  pageInfo { hasNextPage endCursor }
168
195
  }
169
196
  }`;
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/queries.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,mGAAmG;AACnG,iGAAiG;AACjG,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;IAUvB,CAAC;AAEL,iFAAiF;AACjF,oGAAoG;AACpG,iGAAiG;AACjG,6FAA6F;AAC7F,kGAAkG;AAClG,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;IAK5B,CAAC;AAEL,6FAA6F;AAC7F,+FAA+F;AAC/F,8FAA8F;AAC9F,gGAAgG;AAChG,yBAAyB;AACzB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;IAOxB,CAAC;AAEL,mGAAmG;AACnG,kGAAkG;AAClG,+FAA+F;AAC/F,wFAAwF;AACxF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;IAWvB,CAAC;AAEL,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;IAO7B,CAAC;AAEL,wFAAwF;AACxF,4FAA4F;AAC5F,kGAAkG;AAClG,kGAAkG;AAClG,kGAAkG;AAClG,gGAAgG;AAChG,+FAA+F;AAC/F,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;IAQxC,CAAC;AAEL,gGAAgG;AAChG,oGAAoG;AACpG,wFAAwF;AACxF,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,8FAA8F;AAC9F,qGAAqG;AACrG,iGAAiG;AACjG,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,8FAA8F;AAC9F,oGAAoG;AACpG,iGAAiG;AACjG,8FAA8F;AAC9F,mGAAmG;AACnG,YAAY;AACZ,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,kGAAkG;AAClG,iGAAiG;AACjG,mGAAmG;AACnG,gGAAgG;AAChG,0EAA0E;AAC1E,EAAE;AACF,6FAA6F;AAC7F,gGAAgG;AAChG,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;IAYxB,CAAC;AAEL,gGAAgG;AAChG,mGAAmG;AACnG,iGAAiG;AACjG,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG;;;IAGxB,CAAC;AAEL,kGAAkG;AAClG,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;IAG9B,CAAC;AAEL,iGAAiG;AACjG,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG;;;IAG3B,CAAC;AAEL,MAAM,CAAC,MAAM,YAAY,GAAG;;;IAGxB,CAAC;AAEL,uEAAuE;AACvE,+FAA+F;AAC/F,MAAM,CAAC,MAAM,WAAW,GAAG;;;IAGvB,CAAC;AAEL,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;IAGnC,CAAC;AAEL,iGAAiG;AACjG,iGAAiG;AACjG,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;IAMjC,CAAC;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;IAM9B,CAAC"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/queries.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,mGAAmG;AACnG,iGAAiG;AACjG,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;IAUvB,CAAC;AAEL,iFAAiF;AACjF,oGAAoG;AACpG,iGAAiG;AACjG,6FAA6F;AAC7F,kGAAkG;AAClG,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;IAK5B,CAAC;AAEL,6FAA6F;AAC7F,+FAA+F;AAC/F,8FAA8F;AAC9F,gGAAgG;AAChG,yBAAyB;AACzB,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;IAOxB,CAAC;AAEL,mGAAmG;AACnG,kGAAkG;AAClG,+FAA+F;AAC/F,wFAAwF;AACxF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;IAWvB,CAAC;AAEL,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;IAO7B,CAAC;AAEL,wFAAwF;AACxF,4FAA4F;AAC5F,kGAAkG;AAClG,kGAAkG;AAClG,kGAAkG;AAClG,gGAAgG;AAChG,+FAA+F;AAC/F,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;IAQxC,CAAC;AAEL,gGAAgG;AAChG,oGAAoG;AACpG,wFAAwF;AACxF,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,8FAA8F;AAC9F,qGAAqG;AACrG,iGAAiG;AACjG,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,8FAA8F;AAC9F,oGAAoG;AACpG,iGAAiG;AACjG,8FAA8F;AAC9F,mGAAmG;AACnG,YAAY;AACZ,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,kGAAkG;AAClG,iGAAiG;AACjG,mGAAmG;AACnG,gGAAgG;AAChG,0EAA0E;AAC1E,EAAE;AACF,6FAA6F;AAC7F,gGAAgG;AAChG,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;IAYxB,CAAC;AAEL,gGAAgG;AAChG,mGAAmG;AACnG,iGAAiG;AACjG,gFAAgF;AAChF,MAAM,CAAC,MAAM,YAAY,GAAG;;;IAGxB,CAAC;AAEL,kGAAkG;AAClG,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;IAG9B,CAAC;AAEL,iGAAiG;AACjG,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG;;;IAG3B,CAAC;AAEL,MAAM,CAAC,MAAM,YAAY,GAAG;;;IAGxB,CAAC;AAEL,uEAAuE;AACvE,+FAA+F;AAC/F,MAAM,CAAC,MAAM,WAAW,GAAG;;;IAGvB,CAAC;AAEL,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;IAGnC,CAAC;AAEL,kGAAkG;AAClG,iGAAiG;AACjG,oGAAoG;AACpG,6FAA6F;AAC7F,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;IAY9B,CAAC;AAEL,6FAA6F;AAC7F,+FAA+F;AAC/F,iGAAiG;AACjG,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG;;;;IAI1B,CAAC;AAEL,iGAAiG;AACjG,iGAAiG;AACjG,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;IAMjC,CAAC;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;IAM9B,CAAC"}
@@ -184,6 +184,17 @@ export declare const FeedClaim: z.ZodObject<{
184
184
  collectionId: z.ZodString;
185
185
  }, z.core.$loose>;
186
186
  export type FeedClaim = z.infer<typeof FeedClaim>;
187
+ /**
188
+ * A grant off the OpenHands grants feed. `authorization` is the indexer's proto-JSON (snake_case
189
+ * inside, enums by name) — read loosely by its one consumer, which skips what it cannot read.
190
+ */
191
+ export declare const FeedGrant: z.ZodObject<{
192
+ granter: z.ZodString;
193
+ grantedAtHeight: z.ZodNumber;
194
+ expiration: z.ZodNullable<z.ZodString>;
195
+ authorization: z.ZodUnknown;
196
+ }, z.core.$loose>;
197
+ export type FeedGrant = z.infer<typeof FeedGrant>;
187
198
  /** What blocksync queries need from the caller. */
188
199
  export interface BlocksyncDeps {
189
200
  config: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,sGAAsG;AACtG,eAAO,MAAM,IAAI;;;iBAA2D,CAAC;AAC7E,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,oGAAoG;AACpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,mGAAmG;AACnG,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAazB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;iBAIrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;iBASzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,6FAA6F;AAC7F,eAAO,MAAM,YAAY;;;;iBAKvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,iGAAiG;AACjG,eAAO,MAAM,SAAS;;;;;iBAAoD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,YAAY,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,sGAAsG;AACtG,eAAO,MAAM,IAAI;;;iBAA2D,CAAC;AAC7E,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;iBA8BpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,oGAAoG;AACpG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,mGAAmG;AACnG,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAazB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;iBAIrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;iBASzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,6FAA6F;AAC7F,eAAO,MAAM,YAAY;;;;iBAKvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,iGAAiG;AACjG,eAAO,MAAM,SAAS;;;;;iBAAoD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;iBAKpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,YAAY,CAAC;CACrB"}
@@ -110,4 +110,14 @@ export const ScannedClaim = z.looseObject({
110
110
  });
111
111
  /** A claim off the global feed (cron/feed.ts): a `ScannedClaim` plus the collection it is in. */
112
112
  export const FeedClaim = ScannedClaim.extend({ collectionId: z.string() });
113
+ /**
114
+ * A grant off the OpenHands grants feed. `authorization` is the indexer's proto-JSON (snake_case
115
+ * inside, enums by name) — read loosely by its one consumer, which skips what it cannot read.
116
+ */
117
+ export const FeedGrant = z.looseObject({
118
+ granter: z.string(),
119
+ grantedAtHeight: z.number().int(),
120
+ expiration: z.string().nullable(),
121
+ authorization: z.unknown(),
122
+ });
113
123
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/ixo/blocksync/types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * The OpenHands backstop: every five minutes, find the asks that hired this oracle and never reached
3
- * it — and the ones it reached on terms that have since changed. The webhook (routes.ts) is the
4
- * fast path; this is what makes the hire reliable, because the app's call can be lost, refused or
5
- * never made. Its work is proportional to what CHANGED, never to how many asks exist:
2
+ * The OpenHands backstop: find the asks that hired this oracle and never reached it — and the ones
3
+ * it reached on terms that have since changed. The webhook (routes.ts) is the fast path; this is
4
+ * what makes the hire reliable, because the app's call can be lost, refused or never made. Its work
5
+ * is proportional to what CHANGED, never to how many asks exist:
6
6
  *
7
- * 1. WINDOW — a window of watched collections a tick, ONE keyed chain read per admin (its
7
+ * 1. WINDOW (every five minutes, `runBackstop`) — a window of watched collections a tick, ONE keyed chain read per admin (its
8
8
  * meta-grant and what this oracle minted under it, together): re-hire a collection whose
9
9
  * ceiling went stale or whose quota is low, and lift an `engine-no-grant` pause once it holds
10
10
  * quota again. Collections paused for that reason come first (at most half the window), the
@@ -12,9 +12,10 @@
12
12
  * recently claimed, low quota, or not read for a week), passing over asks that ended past the
13
13
  * judge grace — so the window grows with what can change, not with every ask ever hired. A
14
14
  * raised ceiling on a cold ask arrives by the hire webhook, or within the week.
15
- * 2. DISCOVER — a few pages of this oracle's grant listing a tick, the cursor persisted, for
16
- * invitations the webhook never delivered: an admin's own meta-grant whose live, unwatched
17
- * collections get a hire, at most `DISCOVERY_PER_ADMIN` per admin a pass.
15
+ * 2. DISCOVER (every minute, `runGrantsFeed`, oracle speed plan D6) — a forward-only feed over
16
+ * the meta-grants made to this oracle, by block height, for invitations the webhook never
17
+ * delivered: an admin's own meta-grant whose live, unwatched collections get a hire. One cheap
18
+ * read when nothing is new, so a lost webhook costs a minute, not a walk of every grant.
18
19
  *
19
20
  * Every instance started or restarted spends the pass's `MAX_ACTIONS` and the collection's own
20
21
  * restart budget (three a day), so a hire that fails for a reason a rerun cannot fix costs three
@@ -26,17 +27,16 @@
26
27
  import type { Config } from "../../config.js";
27
28
  import type { Database } from "../../db/client.js";
28
29
  import type { OracleEnv } from "../../env.js";
29
- import { type BlocksyncDeps } from "../ixo/blocksync/index.js";
30
+ import { type BlocksyncDeps, type FeedGrant } from "../ixo/blocksync/index.js";
30
31
  import type { Logger } from "../logger.js";
31
32
  import { type MintCap, type OracleGrants } from "./chain.js";
32
- /** Instances one pass may start or restart, across both lanes. */
33
+ /** Instances one pass (a window, or a grants-feed tick) may start or restart. */
33
34
  export declare const MAX_ACTIONS = 200;
34
- /** Discovery hires attempted per admin per pass — one admin's un-hireable asks cannot starve the rest. */
35
- export declare const DISCOVERY_PER_ADMIN = 20;
36
35
  /** Watched collections verified per tick. */
37
36
  export declare const WINDOW = 100;
38
- /** Grant-listing pages read for discovery per tick, 200 a page. */
39
- export declare const GRANT_PAGES = 10;
37
+ /** Grants per feed page, and feed pages read per tick. */
38
+ export declare const GRANTS_FEED_PAGE = 100;
39
+ export declare const GRANTS_FEED_PAGES = 5;
40
40
  /** How often an ended ask is looked at anyway — its end date can be extended on chain. */
41
41
  export declare const ENDED_RECHECK_MS: number;
42
42
  /** Hired or claimed this recently ⇒ hot: the window reads it every pass. */
@@ -89,7 +89,7 @@ export declare const revivedHireId: (collectionId: string, slot: string) => stri
89
89
  * An id the runtime no longer holds (aged out of the instance history) gets a FRESH id carrying the
90
90
  * collection in its params, on the same budget. `existing` = a run is in flight.
91
91
  */
92
- export declare function restartHire(deps: HireDeps, collectionId: string, now?: Date): Promise<HireOutcome>;
92
+ export declare function restartHire(deps: HireDeps, collectionId: string, now?: Date): Promise<Exclude<HireOutcome, "started">>;
93
93
  /** Start the hire for one collection, or revive the instance that already holds its id. */
94
94
  export declare function ensureHire(deps: HireDeps, collectionId: string, now?: Date): Promise<HireOutcome>;
95
95
  export interface BackstopReport {
@@ -98,14 +98,6 @@ export interface BackstopReport {
98
98
  ended: number;
99
99
  unindexed: number;
100
100
  admins: number;
101
- grantPages: number;
102
- wrapped: boolean;
103
- invitingAdmins: number;
104
- unwatched: number;
105
- /** Unwatched asks the provider's `admit` refused — left alone. */
106
- notServed: number;
107
- deferred: number;
108
- started: number;
109
101
  existing: number;
110
102
  restarted: number;
111
103
  restartedForCap: number;
@@ -128,12 +120,46 @@ interface WatchedRow {
128
120
  * cursor is the newest claim's submissionDate — ISO text, so a string comparison).
129
121
  */
130
122
  export declare function watchedWindow(db: Database, after: string, size: number, paused?: boolean, now?: Date): Promise<WatchedRow[]>;
131
- /** A `granteeGrants` page key as a stored value, and back. "" is the first page. */
132
- export declare const encodeGrantsKey: (key: Uint8Array) => string;
133
- export declare function decodeGrantsKey(value: string | null): Uint8Array;
134
123
  /**
135
- * One tick of the backstop: prune spent budgets, verify the window, discover undelivered
136
- * invitations. Each lane is independent — one that fails is counted and logged, the others run.
124
+ * The collections a feed grant invites this oracle to hire — `[]` is every collection of its
125
+ * granter (the chain's scoping rule) — or null when it is no invitation. Only a meta-grant the
126
+ * ADMIN signed naming itself counts (`pickMetaGrant`'s rule), with a live EVALUATE constraint. A
127
+ * pre-filter only: the hire's `verify` reads the grant off the chain before anything is minted.
128
+ */
129
+ export declare function invitationOf(grant: FeedGrant, now: Date): string[] | null;
130
+ export interface GrantsFeedReport {
131
+ pages: number;
132
+ invitingAdmins: number;
133
+ unwatched: number;
134
+ /** Unwatched asks the provider's `admit` refused — left alone. */
135
+ notServed: number;
136
+ started: number;
137
+ existing: number;
138
+ restarted: number;
139
+ throttled: number;
140
+ failed: number;
141
+ /** The height the feed stands at after this tick. */
142
+ at: number;
143
+ }
144
+ /**
145
+ * The discovery lane (every minute): the meta-grants made to this oracle at or above the stored
146
+ * height, oldest first, `GRANTS_FEED_PAGES` pages at most — the claims feed's rules (cron/feed.ts):
147
+ * - The position moves only AFTER a page's hires started; a page whose hire failed, or that the
148
+ * pass ran out of actions on, is re-read next tick. Re-reading is free: a watched collection
149
+ * is skipped, and an in-flight hire answers `existing`.
150
+ * - A finished pass stores the last height read and re-reads that block next tick (inclusive):
151
+ * the overlap costs one block, and a grant indexed into it late is still seen.
152
+ * - A capped pass keeps Blocksync's keyset cursor, so the next tick continues mid-block.
153
+ * - First run (or an unreadable position) starts at height 0. The table holds LIVE grants only,
154
+ * so that is a one-off sweep of the invitations that stand today — exactly the asks whose
155
+ * grants exist and were never discovered — paced by the page cap, then forward-only. Starting
156
+ * at the chain head instead would strand every one of them for good.
157
+ * A Blocksync failure throws to the tick (logged, retried next minute) with nothing written.
158
+ */
159
+ export declare function runGrantsFeed(deps: HireDeps, now?: Date): Promise<GrantsFeedReport>;
160
+ /**
161
+ * One five-minute tick of the backstop: prune spent budgets, verify the window. Each lane is
162
+ * independent — one that fails is counted and logged, the other runs.
137
163
  */
138
164
  export declare function runBackstop(deps: HireDeps, now?: Date): Promise<BackstopReport>;
139
165
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"backstop.d.ts","sourceRoot":"","sources":["../../../src/lib/openhands/backstop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backstop.d.ts","sourceRoot":"","sources":["../../../src/lib/openhands/backstop.ts"],"names":[],"mappings":"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"}