@ixo/decision-oracle 0.2.21 → 0.2.23
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 +15 -15
- package/dist/cron/openhands.d.ts +4 -2
- package/dist/cron/openhands.d.ts.map +1 -1
- package/dist/cron/openhands.js +21 -17
- package/dist/cron/openhands.js.map +1 -1
- package/dist/lib/ixo/blocksync/index.d.ts +11 -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 +2 -1
- package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -1
- package/dist/lib/ixo/blocksync/queries.js +19 -1
- package/dist/lib/ixo/blocksync/queries.js.map +1 -1
- package/dist/lib/ixo/blocksync/types.d.ts +11 -0
- package/dist/lib/ixo/blocksync/types.d.ts.map +1 -1
- package/dist/lib/ixo/blocksync/types.js +10 -0
- package/dist/lib/ixo/blocksync/types.js.map +1 -1
- package/dist/lib/openhands/backstop.d.ts +54 -28
- package/dist/lib/openhands/backstop.d.ts.map +1 -1
- package/dist/lib/openhands/backstop.js +147 -110
- package/dist/lib/openhands/backstop.js.map +1 -1
- package/dist/lib/openhands/chain.d.ts +2 -14
- package/dist/lib/openhands/chain.d.ts.map +1 -1
- package/dist/lib/openhands/chain.js +1 -34
- package/dist/lib/openhands/chain.js.map +1 -1
- package/dist/lib/openhands/store.d.ts +1 -0
- package/dist/lib/openhands/store.d.ts.map +1 -1
- package/dist/lib/openhands/store.js +1 -0
- package/dist/lib/openhands/store.js.map +1 -1
- package/docs/api.md +12 -7
- package/docs/guide.md +12 -7
- package/package.json +2 -9
- package/skills/add-openhands-support/SKILL.md +3 -2
- package/skills/create-oracle/SKILL.md +13 -6
- package/skills/decision-api-oracle/SKILL.md +4 -4
- package/templates/project/README.md +4 -2
- package/templates/project/wrangler.jsonc +9 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/lib/openhands/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/lib/openhands/store.ts"],"names":[],"mappings":"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"}
|
package/docs/api.md
CHANGED
|
@@ -448,11 +448,16 @@ id = the collection id):
|
|
|
448
448
|
re-registered (an operator's pause stands).
|
|
449
449
|
4. **scan** — the claims filed before the hire, started now.
|
|
450
450
|
|
|
451
|
-
A **
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
451
|
+
A **grants feed** runs every minute so a lost webhook never strands an ask: it reads the
|
|
452
|
+
meta-grants made to this oracle from Blocksync (`authzGrants`, oldest block first, from the height
|
|
453
|
+
it stopped at — one read when nothing is new) and hires each inviting admin's open, unwatched
|
|
454
|
+
collections, through `admit`. Its position (`openhands_state` row `grants`) moves only after a
|
|
455
|
+
page's hires started, so a failed hire is retried next minute; at most 5 pages of 100 grants a
|
|
456
|
+
minute. Its first run starts at height 0 — Blocksync keeps live grants only, so that is a one-off
|
|
457
|
+
sweep of the invitations that stand today — then follows the chain forward. A **backstop** runs
|
|
458
|
+
every five minutes: it re-mints a watched collection whose poster raised the ceiling or whose quota
|
|
459
|
+
fell below 50, and lifts an `engine-no-grant` pause once the chain shows quota again (at least
|
|
460
|
+
5 min after the last read — the engine's grant cache). Its window reads only the watched collections that can need it — never read, hired or claimed in the
|
|
456
461
|
last day, quota below a top-up, or not read for a week — so a quiet ask costs one read a week (a
|
|
457
462
|
raised ceiling on one arrives by the hire webhook, or within that week). Each
|
|
458
463
|
collection gets at most three hire reruns a day from the backstop and three from the webhook, on
|
|
@@ -1629,7 +1634,7 @@ once deployed. Every value is validated by Zod at isolate start, so a bad env fa
|
|
|
1629
1634
|
| `EVAL_ENGINE_HOSTNAME` | vars | per network | The engine you ask for decisions. A host you **call** — its `did:web` is the invocation audience. Set it for a local engine or a tunnel |
|
|
1630
1635
|
| `CLAIM_BOT_URL_OVERRIDE` | `.dev.vars` | derived | Local harnesses only — the bot URL is normally derived as `https://claim.bot.<homeserver domain>` |
|
|
1631
1636
|
| `IXO_CLIENT_SEQUENCE_MIN_DELAY_MS` | vars | `1000` | Read by the sequence keeper off `env`: the minimum gap between two sequence allocations |
|
|
1632
|
-
| `ORACLE_HOSTNAME` | vars | **required** | *Your* canonical `did:web` host. Every inbound invocation's audience is pinned to this, never the request `Host`; it is also the issuer of every invocation you mint. It must equal the Custom Domain in `routes` for that env |
|
|
1637
|
+
| `ORACLE_HOSTNAME` | vars | **required** | *Your* canonical `did:web` host. Every inbound invocation's audience is pinned to this, never the request `Host`; it is also the issuer of every invocation you mint. It must equal the Custom Domain in `routes` for that env, or, with no `routes`, the env's `<worker>.<account>.workers.dev` host |
|
|
1633
1638
|
| `ORACLE_DID` | vars | **required** | `did:ixo:<address>` — the runtime chain identity |
|
|
1634
1639
|
| `ORACLE_ADDRESS` | vars | **required** | Must be the `ORACLE_SECP_MNEMONIC` wallet's address — asserted at first use, fails loud |
|
|
1635
1640
|
| `ORACLE_MATRIX_USER_ID` | vars | **required** | The MXID derived from `ORACLE_DID` (cross-checked, never re-derived) |
|
|
@@ -2410,7 +2415,7 @@ trigger is handled in its own `scheduled` before it delegates to the oracle's.
|
|
|
2410
2415
|
|
|
2411
2416
|
| Trigger | Tier | Jobs |
|
|
2412
2417
|
| --- | --- | --- |
|
|
2413
|
-
| `* * * * *` | minute | 1, 2, 4 (the resume) and 5 below; `claims-feed` (6) before the rotation `scan`; with `API_LANE` the lane's source resume, webhook deliveries and retries, review-batch emails and backlog gauges; with `openhands`, `openhands-scans` (the coalesced `/openhands/scan` calls and the scans that found nothing, three retries each, 50 a minute) |
|
|
2418
|
+
| `* * * * *` | minute | 1, 2, 4 (the resume) and 5 below; `claims-feed` (6) before the rotation `scan`; with `API_LANE` the lane's source resume, webhook deliveries and retries, review-batch emails and backlog gauges; with `openhands`, `openhands-scans` (the coalesced `/openhands/scan` calls and the scans that found nothing, three retries each, 50 a minute) and `openhands-grants-feed` (new meta-grants → hires) |
|
|
2414
2419
|
| `*/5 * * * *` | five | `ai-cost-backfill`; with a facilitator, `payments-reconcile` and `balance-watch`; with `openhands`, `openhands-backstop` ("The OpenHands add-on", §2) |
|
|
2415
2420
|
| `0 * * * *` | hour | `claims-replay` (6), 3 below; with `API_LANE` `retention` (housekeeping), `header-seal`, `review-billing-reminders`, `review-reminders`, `review-expiry`, `review-rooms`, `collection-links` |
|
|
2416
2421
|
|
package/docs/guide.md
CHANGED
|
@@ -103,9 +103,12 @@ asserted against the mnemonic before the first signature: a hand-typed one that
|
|
|
103
103
|
never signs as someone else.
|
|
104
104
|
|
|
105
105
|
Also set, in `wrangler.jsonc` `vars`: `IXO_NETWORK`, and `ORACLE_HOSTNAME` — the host your
|
|
106
|
-
`did:web` is served from (`localhost:8787` while developing). **It must
|
|
107
|
-
|
|
108
|
-
`https://<host>/.well-known/did.json`.
|
|
106
|
+
`did:web` is served from (`localhost:8787` while developing). **It must be the host each
|
|
107
|
+
environment you deploy is served from**, because callers resolve you by fetching
|
|
108
|
+
`https://<host>/.well-known/did.json`. A custom domain is optional: delete that env's `routes`
|
|
109
|
+
entry and the Worker is served on its free `<worker name>.<account subdomain>.workers.dev` host —
|
|
110
|
+
set `ORACLE_HOSTNAME` to that. With a custom domain, it must equal the Custom Domain in `routes`.
|
|
111
|
+
Pick the host before `oracle init` (§10): it is the oracle's identity. And in `.dev.vars`: `UNIQUE_HMAC_KEY`, any long random
|
|
109
112
|
string, if the rubric you serve declares a `unique` rule.
|
|
110
113
|
|
|
111
114
|
Both of these keys are, at this point, only strings in your files. `decision-oracle oracle init` (§10)
|
|
@@ -983,8 +986,9 @@ Before shipping an environment, check all four:
|
|
|
983
986
|
|
|
984
987
|
1. the **D1 and KV ids** in that env's block are real (named envs inherit nothing — every binding
|
|
985
988
|
and the whole `vars` block is redeclared per env);
|
|
986
|
-
2.
|
|
987
|
-
|
|
989
|
+
2. that env's `ORACLE_HOSTNAME` is, character for character, the host it is served from — the
|
|
990
|
+
**Custom Domain** in `routes`, or, with no `routes`, its `workers.dev` host — callers resolve
|
|
991
|
+
your `did:web` by fetching it;
|
|
988
992
|
3. every **secret** is set with `wrangler secret put` for that env — including
|
|
989
993
|
`ORACLE_MATRIX_ACCESS_TOKEN`, the one `oracle init` wrote into your local `.dev.vars`
|
|
990
994
|
(`wrangler secret put ORACLE_MATRIX_ACCESS_TOKEN`, then paste it);
|
|
@@ -1037,7 +1041,8 @@ Then you register nothing by hand. When a poster picks you, their posting transa
|
|
|
1037
1041
|
oracle the right to authorize itself on the new collection, and the app calls
|
|
1038
1042
|
`POST /openhands/hire/<collectionId>` on your host. The oracle checks that grant on chain, mints its
|
|
1039
1043
|
own evaluate grant under it, registers the collection through the same four gates above, and scans
|
|
1040
|
-
it. A
|
|
1044
|
+
it. A grants feed every minute catches a call that never arrived (it follows the meta-grants
|
|
1045
|
+
made to your oracle on Blocksync), and a backstop every five minutes keeps every hired ask
|
|
1041
1046
|
topped up. `GET /v1/info` lists the two webhooks under `openhands` — that is how the app knows
|
|
1042
1047
|
you are an OpenHands checker. (api.md §2, "The OpenHands add-on", has every step and answer.)
|
|
1043
1048
|
|
|
@@ -1529,7 +1534,7 @@ own retries, and a terminal failure clears it.
|
|
|
1529
1534
|
|
|
1530
1535
|
| Symptom | Cause | Fix |
|
|
1531
1536
|
| --- | --- | --- |
|
|
1532
|
-
| `401` on any `/v1` call | The invocation's audience is not `did:web:<ORACLE_HOSTNAME>`, or `/.well-known/did.json` is not served from that host | Make `ORACLE_HOSTNAME`, the Custom Domain and the audience the same string. Check `SERVICE_ED25519_MNEMONIC` is set |
|
|
1537
|
+
| `401` on any `/v1` call | The invocation's audience is not `did:web:<ORACLE_HOSTNAME>`, or `/.well-known/did.json` is not served from that host | Make `ORACLE_HOSTNAME`, the served host (Custom Domain or `workers.dev`) and the audience the same string. Check `SERVICE_ED25519_MNEMONIC` is set |
|
|
1533
1538
|
| `401` from the claim bot, the UCAN Store or the VFS claims lane (`claim.store-denied`), on an invocation minted as `did:ixo:…` | That DID has no IID document, or the `SERVICE_ED25519_MNEMONIC` key is not a verification method on it — the resolver has nothing to check the signature against | Re-run `oracle init --protocol <protocol did> --kit-url https://<your host> --yes`: every step already done says `skip`, so only the missing `iid` / `key` writes anything. (`--protocol` and `--kit-url` are always required, and `--only <step>` without `--yes` is still just a dry run) |
|
|
1534
1539
|
| `bunx @ixo/decision-oracle@<version>` says `No version matching … found (but package exists)` right after a release | bun's cached copy of the package list is older than the release | `bun pm cache rm`, then run it again — or `BUN_INSTALL_CACHE_DIR=$(mktemp -d) bunx @ixo/decision-oracle@<version> …` |
|
|
1535
1540
|
| A protocol shows as "Unnamed" in the portal, the console or the Openhands app | It has no `#pro` profile: `publish-protocol` writes one only with `--name` | `publish-protocol --phase profile --entity <protocol did> --rubric <file> --form <file> --name "<name>" [--description "<text>"] --yes` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ixo/decision-oracle",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.23",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Run an IXO evaluation oracle: pull claims, produce facts with your handlers, let the decision engine decide, sign on chain",
|
|
6
6
|
"keywords": [
|
|
@@ -12,14 +12,7 @@
|
|
|
12
12
|
"hono",
|
|
13
13
|
"d1"
|
|
14
14
|
],
|
|
15
|
-
"
|
|
16
|
-
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/ixoworld/eval-oralce.git"
|
|
18
|
-
},
|
|
19
|
-
"bugs": {
|
|
20
|
-
"url": "https://github.com/ixoworld/eval-oralce/issues"
|
|
21
|
-
},
|
|
22
|
-
"homepage": "https://github.com/ixoworld/eval-oralce#readme",
|
|
15
|
+
"homepage": "https://docs.ixo.world/build-an-oracle/decision-oracle",
|
|
23
16
|
"type": "module",
|
|
24
17
|
"exports": {
|
|
25
18
|
".": {
|
|
@@ -12,8 +12,9 @@ When a poster picks yours, their posting transaction grants your oracle a **meta
|
|
|
12
12
|
(the right to authorize itself on the new collection) and the app calls
|
|
13
13
|
`POST https://<your host>/openhands/hire/<collectionId>`. The package's **OpenHands add-on**
|
|
14
14
|
answers that call: it checks the grant on chain, mints the oracle's own evaluate grant under it,
|
|
15
|
-
registers the collection through the normal four gates and scans it —
|
|
16
|
-
|
|
15
|
+
registers the collection through the normal four gates and scans it — a grants feed every minute
|
|
16
|
+
catches a call that never arrived, and a backstop every five minutes keeps every hired ask
|
|
17
|
+
topped up. The engine still
|
|
17
18
|
decides; nothing here judges.
|
|
18
19
|
|
|
19
20
|
A checker judges asks on ITS OWN protocol: the poster's ask uses your protocol as it is — your
|
|
@@ -97,8 +97,14 @@ it in an agent session, or the mnemonic lands in the transcript.
|
|
|
97
97
|
`wrangler.jsonc` `vars` (top level and every env), not `.dev.vars`.
|
|
98
98
|
|
|
99
99
|
`ORACLE_HOSTNAME` (the host the did:web is served from) is `localhost:8787` in `.dev.vars` for local
|
|
100
|
-
dev ONLY. Each deployed env's host lives in that env's `wrangler.jsonc` `vars` and must
|
|
101
|
-
|
|
100
|
+
dev ONLY. Each deployed env's host lives in that env's `wrangler.jsonc` `vars` and must be the
|
|
101
|
+
host that env is served from. **A custom domain is optional**: without one, delete that env's
|
|
102
|
+
`routes` entry (with no `routes`, wrangler serves the Worker on `workers.dev`; `"workers_dev": true`
|
|
103
|
+
says so explicitly) and set `ORACLE_HOSTNAME` to the free `<worker name>.<account subdomain>.workers.dev`
|
|
104
|
+
host — the env's `name` (e.g. `<project>-devnet`) plus the account's workers.dev subdomain
|
|
105
|
+
(dashboard → Workers & Pages; the first deploy prints the URL). With a custom domain,
|
|
106
|
+
`ORACLE_HOSTNAME` must equal the Custom Domain in `routes`. Choose before `oracle init`: the host IS
|
|
107
|
+
the did:web, so changing it later is a new identity. A per-env secrets file (`.dev.vars.<env>`) must NOT carry a localhost
|
|
102
108
|
`ORACLE_HOSTNAME`, or `engine register --env-file .dev.vars.<env>` registers localhost. Also put
|
|
103
109
|
`UNIQUE_HMAC_KEY` in `.dev.vars` (any long random string; rotating it orphans every registered
|
|
104
110
|
duplicate digest). `derive "<existing mnemonic>"` uses a wallet the provider already holds instead of
|
|
@@ -322,8 +328,9 @@ bun run deploy:devnet # or deploy:testnet / deploy:production (`--env
|
|
|
322
328
|
wrangler secret put ORACLE_MATRIX_ACCESS_TOKEN # the value step 8 wrote into .dev.vars
|
|
323
329
|
```
|
|
324
330
|
|
|
325
|
-
Before deploying: the D1/KV ids for that env are real,
|
|
326
|
-
|
|
331
|
+
Before deploying: the D1/KV ids for that env are real, that env's `ORACLE_HOSTNAME` is the host
|
|
332
|
+
it will be served from (its Custom Domain in `routes`, or, with no `routes`, its `workers.dev`
|
|
333
|
+
host), and every secret is set with `wrangler secret put`. **Then run step 8 again with
|
|
327
334
|
`--kit-url https://<the deployed host>` and `--yes`**: the `service` step re-points `#eval` at the
|
|
328
335
|
real host and `profile` anchors the `#pro` it had to skip. `fund` may act again too — it is a floor
|
|
329
336
|
check, so a wallet the first run's own `iid`/`key` transactions left below 1 IXO is topped back
|
|
@@ -389,7 +396,7 @@ the required fee (`pricing.byProtocol` for that collection's protocol, else the
|
|
|
389
396
|
| Identity | a fresh wallet, or an existing mnemonic to derive from | `derive`, `.dev.vars` + `wrangler.jsonc` vars |
|
|
390
397
|
| Owner | who owns this oracle — the AuthHub login whose subscription pays the engine | `login`, `delegation --for engine` |
|
|
391
398
|
| Funding | nothing to ask — `oracle init` keeps the wallet topped up to 1 IXO for gas | `oracle init` (the `fund` step) |
|
|
392
|
-
| Hosts | the did:web host per env (it IS the identity) | `ORACLE_HOSTNAME`, `routes` |
|
|
399
|
+
| Hosts | the did:web host per env (it IS the identity): a custom domain, or the free `workers.dev` host | `ORACLE_HOSTNAME`, `routes` (none for `workers.dev`) |
|
|
393
400
|
| Contact | the address that gets pause / review notices | `register --contact-email` |
|
|
394
401
|
|
|
395
402
|
## Safety rules
|
|
@@ -417,7 +424,7 @@ the required fee (`pricing.byProtocol` for that collection's protocol, else the
|
|
|
417
424
|
| Guessing `EVALUATION_MIN_AMOUNT` | ask what the collection's on-chain evaluation payment is (or will be) — set too high and register 402s |
|
|
418
425
|
| No `EVALUATION_DENOM` in the mainnet env | the worker refuses to start — set both vars in every env you deploy |
|
|
419
426
|
| `allowAiChecks: false` while the work order declares AI checks | every `ai` fact freezes `error` and the rubric's `onError` decides — ask first |
|
|
420
|
-
| `ORACLE_HOSTNAME` ≠ the
|
|
427
|
+
| `ORACLE_HOSTNAME` ≠ the host the env is served from (its Custom Domain, or its `workers.dev` host) | callers resolve the did:web by fetching that host — they must be the same string |
|
|
421
428
|
| `ORACLE_ENTITY_DID` left unset after `oracle init` (or set only at the top level) | the deployed oracle fails `/health/ready` (`identity`); the Matrix review card can't resolve it, so reviews only work from the portal page |
|
|
422
429
|
| Running `oracle init --yes` with nothing serving `--kit-url` | `profile`, `domain` and `acard` skip (all three are built from the live `GET /v1/info`) — start `bun run dev`, or deploy, before the run that should anchor them |
|
|
423
430
|
| Skipping `--logo` without asking | the identity is still complete, but the portal, the console and the Openhands app show a placeholder — ask the provider for a logo (URL or image file) and pass `--logo` |
|
|
@@ -46,7 +46,7 @@ is the package CLI.
|
|
|
46
46
|
### 0. Prerequisites
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
bunx wrangler whoami # the Cloudflare account
|
|
49
|
+
bunx wrangler whoami # the Cloudflare account the oracle deploys to
|
|
50
50
|
bunx decision-oracle login --network devnet # the OWNER's AuthHub session — once
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@ bunx decision-oracle login --network devnet # the OWNER's AuthHub session
|
|
|
55
55
|
Put the session's OWN DID (`did:ixo:<address>` — `login` prints the address) in
|
|
56
56
|
`ORACLE_ADMIN_DIDS` in every `vars` block of `wrangler.jsonc`. The example ships IXO's DID there —
|
|
57
57
|
a copy of it must replace it with the owner's.
|
|
58
|
-
-
|
|
58
|
+
- A custom domain is optional. Without one, delete each env's `routes` entry and set that env's `ORACLE_HOSTNAME` to the Worker's free `<worker name>.<account subdomain>.workers.dev` host (the first deploy prints it). With one, the account must hold the zone of the host, or the Custom Domain cannot attach — if `whoami` shows another account, stop and say so (**HUMAN**). Either way the host IS the did:web: pick it before `oracle init`.
|
|
59
59
|
|
|
60
60
|
### 1. The protocol (example: publish `protocol/`; a provider: their protocol's DID)
|
|
61
61
|
|
|
@@ -313,13 +313,13 @@ Decision Console shows the price and card eligibility read-only.
|
|
|
313
313
|
|
|
314
314
|
| Symptom | Cause → fix |
|
|
315
315
|
| --- | --- |
|
|
316
|
-
| Console / CLI 401 `UNAUTHORIZED` on a UCAN call | audience mismatch: the invocation names the did:web read from `<host>/.well-known/did.json` — `ORACLE_HOSTNAME` must equal the Custom Domain, and `--kit` must be that host |
|
|
316
|
+
| Console / CLI 401 `UNAUTHORIZED` on a UCAN call | audience mismatch: the invocation names the did:web read from `<host>/.well-known/did.json` — `ORACLE_HOSTNAME` must equal the host the env is served from (its Custom Domain, or its `workers.dev` host), and `--kit` must be that host |
|
|
317
317
|
| Worker 500s on every request after deploy; logs say `WEBHOOK_ENCRYPTION_KEY: required when API_LANE is on` | the secret is missing in that env — `bunx wrangler secret put WEBHOOK_ENCRYPTION_KEY --env <env>` (for a new deployment only; never replace an existing one) |
|
|
318
318
|
| `PROTOCOL_NOT_ALLOWED` on submit | the source's allow-list lacks it — empty means NONE; `api admin protocols <src> <did> --yes` |
|
|
319
319
|
| 503 `SOURCE_PAUSED` `payments-disabled` | `API_PAYMENTS` is off and the source bills `x402` — turn payments on, or `api admin billing-mode <src> none` |
|
|
320
320
|
| 402 again after a `PAYMENT-SIGNATURE` | the facilitator refused the payer: no deed / no `SendAuthorization` / not enough PAY — the fresh 402's error says which |
|
|
321
321
|
| offers refused `plan_inactive`, `accepts: []` | the facilitator finds no active plan for the oracle: it is not registered with the engine (step 6 — registered, it runs on Standard at once), or, for an IXO-run oracle, IXO has not activated its plan (**HUMAN**: ask IXO). A way to pay whose payee is unset (`EARNINGS_ADDRESS` for PAY / USDC on IXO, `EARNINGS_BASE_WALLET` for USDC on Base) is simply not offered |
|
|
322
|
-
| Not listed in the console | not registered with the engine (step 6), or not payable (the row above); or
|
|
322
|
+
| Not listed in the console | not registered with the engine (step 6), or not payable (the row above); or `https://<ORACLE_HOSTNAME>/.well-known/did.json` does not answer; or `CORS_ORIGINS` lacks `https://decision-console.devnet.ixo.earth` |
|
|
323
323
|
| Every API claim rejects with `frequency` | the caller sends no `submitter` — an uncountable window fails closed; send the courier id |
|
|
324
324
|
| 409 `REVIEW_EXPIRED` on a review answer | the paid claim's `answerBy` (its x402 reservation's expiry: extended up to 30 days for the review, else 24 h after verify) has passed — it can no longer be paid, and nothing was written. Answer paid reviews before the date the emails state |
|
|
325
325
|
| Claims go `pending_review` on `SD-RT-CHECKS` (example) | an errored fact (onError `review`) held them for a person: the AI provider unavailable (the photo check — no gateway credits, or `OPENROUTER_API_KEY` missing on `openrouter`), or the orders endpoint unreachable (`DEMO_ORDERS` off, or an `ORD-…-E` order) — read the claim's report; fix it, and new claims decide again (the held ones are answered in the console). A rubric without a claim-level ReviewTask parks such claims `review` with NO task — give it one |
|
|
@@ -143,8 +143,10 @@ under `/v1` requires a UCAN invocation addressed to `did:web:<ORACLE_HOSTNAME>`.
|
|
|
143
143
|
bun run deploy:devnet # or deploy:testnet / deploy:production
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
it, and that is how anyone verifies who you are.
|
|
146
|
+
`ORACLE_HOSTNAME` must be the host the env is served from — the did:web document is served from
|
|
147
|
+
it, and that is how anyone verifies who you are. A custom domain is optional: with no `routes`
|
|
148
|
+
entry, the Worker is served on its free `<worker name>.<account subdomain>.workers.dev` host, and
|
|
149
|
+
`ORACLE_HOSTNAME` is that host. With one, it must equal the Custom Domain in `routes`.
|
|
148
150
|
|
|
149
151
|
`GET /v1/info` only answers a portal that already knows your host. For discovery that starts from
|
|
150
152
|
the protocol, declare yourself on chain — an oracle entity, a `#eval` service pointing at your
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"compatibility_date": "2026-07-07",
|
|
6
6
|
"compatibility_flags": ["nodejs_compat"],
|
|
7
7
|
|
|
8
|
-
// The
|
|
8
|
+
// The host IS the did:web identity — ORACLE_HOSTNAME below must be the host the Worker is served
|
|
9
|
+
// from. A custom domain is optional: with no `routes`, the Worker is served on its free
|
|
10
|
+
// `<name>.<account subdomain>.workers.dev` host — set ORACLE_HOSTNAME to that.
|
|
9
11
|
// "routes": [{ "pattern": "<your ORACLE_HOSTNAME>", "custom_domain": true }],
|
|
10
12
|
|
|
11
13
|
// D1 is the oracle's database: the ledger tables the package owns. `migrations_dir` points INTO
|
|
@@ -156,7 +158,8 @@
|
|
|
156
158
|
|
|
157
159
|
// THIS oracle's did:web host — the audience every inbound UCAN invocation must name, and the
|
|
158
160
|
// issuer of every invocation this oracle mints. It must equal the Custom Domain in `routes`
|
|
159
|
-
// for the env you deploy: callers resolve
|
|
161
|
+
// (or, with no `routes`, the env's `workers.dev` host) for the env you deploy: callers resolve
|
|
162
|
+
// you by fetching https://<host>/.well-known/did.json.
|
|
160
163
|
"ORACLE_HOSTNAME": "<REPLACE: the host your did:web is served from>",
|
|
161
164
|
|
|
162
165
|
// This oracle's PUBLIC chain identifiers, printed together by `bunx decision-oracle derive`.
|
|
@@ -231,7 +234,8 @@
|
|
|
231
234
|
// keeps the deployed name explicit and independent of the top-level one.
|
|
232
235
|
"name": "{{name}}-devnet",
|
|
233
236
|
// The Custom Domain IS the identity: it must equal ORACLE_HOSTNAME below. Declared here so
|
|
234
|
-
// the deploy attaches it (and its DNS record) instead of it being a dashboard step.
|
|
237
|
+
// the deploy attaches it (and its DNS record) instead of it being a dashboard step. Optional:
|
|
238
|
+
// delete `routes` to serve on the free workers.dev host, and set ORACLE_HOSTNAME to that.
|
|
235
239
|
"routes": [{ "pattern": "<REPLACE: your devnet host>", "custom_domain": true }],
|
|
236
240
|
"vars": {
|
|
237
241
|
"ENVIRONMENT": "staging",
|
|
@@ -340,7 +344,8 @@
|
|
|
340
344
|
// keeps the deployed name explicit and independent of the top-level one.
|
|
341
345
|
"name": "{{name}}-testnet",
|
|
342
346
|
// The Custom Domain IS the identity: it must equal ORACLE_HOSTNAME below. Declared here so
|
|
343
|
-
// the deploy attaches it (and its DNS record) instead of it being a dashboard step.
|
|
347
|
+
// the deploy attaches it (and its DNS record) instead of it being a dashboard step. Optional:
|
|
348
|
+
// delete `routes` to serve on the free workers.dev host, and set ORACLE_HOSTNAME to that.
|
|
344
349
|
"routes": [{ "pattern": "<REPLACE: your testnet host>", "custom_domain": true }],
|
|
345
350
|
"vars": {
|
|
346
351
|
"ENVIRONMENT": "staging",
|