@ixo/decision-oracle 0.2.11 → 0.2.12

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 (36) hide show
  1. package/README.md +13 -13
  2. package/dist/cli/commands/derive.d.ts +6 -2
  3. package/dist/cli/commands/derive.d.ts.map +1 -1
  4. package/dist/cli/commands/derive.js +33 -3
  5. package/dist/cli/commands/derive.js.map +1 -1
  6. package/dist/cli/commands/engine.d.ts.map +1 -1
  7. package/dist/cli/commands/engine.js +9 -2
  8. package/dist/cli/commands/engine.js.map +1 -1
  9. package/dist/cli/commands/init.js +2 -2
  10. package/dist/cli/commands/oracle-init.d.ts.map +1 -1
  11. package/dist/cli/commands/oracle-init.js +2 -2
  12. package/dist/cli/commands/oracle-init.js.map +1 -1
  13. package/dist/cli/index.js +24 -85
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/lib/usage.d.ts +11 -0
  16. package/dist/cli/lib/usage.d.ts.map +1 -0
  17. package/dist/cli/lib/usage.js +112 -0
  18. package/dist/cli/lib/usage.js.map +1 -0
  19. package/dist/config.d.ts +9 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +15 -1
  22. package/dist/config.js.map +1 -1
  23. package/dist/middleware/error-handler.d.ts.map +1 -1
  24. package/dist/middleware/error-handler.js +11 -0
  25. package/dist/middleware/error-handler.js.map +1 -1
  26. package/docs/api.md +5 -0
  27. package/docs/guide.md +12 -9
  28. package/package.json +1 -1
  29. package/skills/create-oracle/SKILL.md +17 -13
  30. package/skills/create-rubric/reference/format-cheatsheet.md +20 -0
  31. package/skills/decision-api-oracle/SKILL.md +2 -2
  32. package/templates/project/README.md +4 -3
  33. package/templates/project/package.json +1 -0
  34. package/templates/project/src/facts/index.ts +6 -2
  35. package/templates/project/src/index.ts +3 -1
  36. package/templates/project/wrangler.jsonc +116 -11
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The CLI's usage text, and one command's slice of it for `decision-oracle <command> --help`.
3
+ */
4
+ export declare const USAGE = "usage: decision-oracle <command> [options]\n\nproject\n init <dir> [--name <project-name>] [--openhands] generate a new oracle project (never installs for you);\n --openhands makes it an OpenHands checker\n skills sync [--dir <path>] refresh the package's Claude skills (default .claude/skills)\n\nidentity\n derive (\"<mnemonic>\" | --new) [--write <file> [--as <VAR>]]\n the ORACLE_* lines for .dev.vars, from a chain mnemonic;\n --write appends the key to that file (0600) instead of\n printing it, under --as (default ORACLE_SECP_MNEMONIC)\n login sign in to ixo AuthHub \u2014 once per network\n logout forget that network's saved session ({ removed, path })\n delegation --audience <did> --out <file> mint an owner\u2192oracle claim-bot delegation CAR\n (--for engine mints the billing one instead)\n\nchain (needs a login; nothing is signed without --yes)\n oracle init --protocol <did> --kit-url <url> [--logo <url|file>] [--openhands]\n provision this oracle (13 steps): fund its wallet,\n its IID + Ed25519 key, its Matrix account, its\n entity + profile + domain card + agent card\n publish-protocol --rubric <file> --form <file> publish a protocol entity + its #vct and #rub\n publish-protocol --phase rub --protocol <did> --rubric <file> --form <file>\n anchor/replace #rub alone on a protocol that\n already has its form\n create-deed --protocol <did> --title <name> create a deed linked to that protocol\n create-collection --entity <deed> --protocol <did> --eval-amount <uixo>\n create/fund/grant a claim collection\n submit-claim --collection <id> --answers <file> submit a test claim as the logged-in wallet\n org create --name <name> [--logo <url>] create an organisation (a dao entity) your login\n controls \u2014 or print the one it owns by that name\n org balance --entity <did> an organisation's admin account and its balances\n org fund --entity <did> --amount <n> [--coin ixo|usdc]\n send coins from your wallet to that admin account\n\nthis oracle\n register --collection <id> enrol a collection with this oracle, as its owner\n scan --collection <id> make this oracle scan an enrolled collection now\n relink [--collection <id>]\u2026 operator: link watched collections to their company's\n Decision API sources, as register does (ORACLE_ADMIN_DIDS)\n erase (<claimId>\u2026 | --collection <id>) [--yes]\n as the collection's owner, erase claims' transcripts and\n registry text (the oracle never deletes them on its own)\n manifest <protocol did> the engine's work order for a protocol's rubric\n engine register [--env <name>] [--env-file <path>] [--yes]\n register this oracle with the engine now (payable at the\n Standard plan at once), not lazily at the first decide\n\nthe Decision API (API_LANE on; signed as your login, --kit <url> or .dev.vars' host)\n api source create --name <n> --contact <email> --entity <did>\n add this oracle to your organisation \u2014 its\n webhook secret shown ONCE; pending-link\n api source link <sourceId> sign the organisation's link at the engine and\n sync it: pending-link \u2192 active\n api sources the sources your login belongs to\n api key create --source <id> --scopes <s,\u2026> [--name <n>] [--max-spend-cents <n>]\n mint an API key \u2014 shown ONCE\n api keys --source <id> a source's keys, masked\n api key revoke --source <id> <prefix|masked key> [--grace-days <n>]\n api admin sources every source (your DID in ORACLE_ADMIN_DIDS)\n api admin pause <sourceId> [--note <text>]\n api admin resume <sourceId>\n api admin protocols <sourceId> <did,\u2026>|--none replace a source's allowed protocols\n api admin billing-mode <sourceId> x402|none\n (a source link, a key revoke and every admin change is a dry run without --yes; --json prints the raw answer;\n api --help for the flags)\n\nyour handlers\n protocol review <protocol did> what a protocol's rubric asks your oracle to produce\n facts scaffold <protocol did> [--all] a stub handler + a test per name needing one\n facts run --protocol <did> --claim <file> [--preview] [--no-ai]\n run your handlers against a claim file (its answers, or\n { answers, attachments }) \u2014 no chain, no credits; a rubric's\n dup lane needs D1, so here it stands in as \"review\"\n\nrubric authoring\n rubric fetch-form --protocol <did> --out <file> download a protocol's live claim form (#vct)\n rubric validate --rubric <file> --form <file> check a rubric with the engine's own binder\n\nevery network-facing command takes --network devnet|testnet|mainnet (default devnet); every\nengine-facing one takes --engine-url <url>.\n";
5
+ /**
6
+ * The usage lines for one command — every entry whose text starts with it (`engine` → `engine
7
+ * register …`), each with its continuation lines — or null when none does. An entry is a line
8
+ * indented two spaces; a continuation is a deeper-indented line under it.
9
+ */
10
+ export declare function usageFor(command: string): string | null;
11
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,KAAK,i1LAkFjB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBvD"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * The CLI's usage text, and one command's slice of it for `decision-oracle <command> --help`.
3
+ */
4
+ export const USAGE = `usage: decision-oracle <command> [options]
5
+
6
+ project
7
+ init <dir> [--name <project-name>] [--openhands] generate a new oracle project (never installs for you);
8
+ --openhands makes it an OpenHands checker
9
+ skills sync [--dir <path>] refresh the package's Claude skills (default .claude/skills)
10
+
11
+ identity
12
+ derive ("<mnemonic>" | --new) [--write <file> [--as <VAR>]]
13
+ the ORACLE_* lines for .dev.vars, from a chain mnemonic;
14
+ --write appends the key to that file (0600) instead of
15
+ printing it, under --as (default ORACLE_SECP_MNEMONIC)
16
+ login sign in to ixo AuthHub — once per network
17
+ logout forget that network's saved session ({ removed, path })
18
+ delegation --audience <did> --out <file> mint an owner→oracle claim-bot delegation CAR
19
+ (--for engine mints the billing one instead)
20
+
21
+ chain (needs a login; nothing is signed without --yes)
22
+ oracle init --protocol <did> --kit-url <url> [--logo <url|file>] [--openhands]
23
+ provision this oracle (13 steps): fund its wallet,
24
+ its IID + Ed25519 key, its Matrix account, its
25
+ entity + profile + domain card + agent card
26
+ publish-protocol --rubric <file> --form <file> publish a protocol entity + its #vct and #rub
27
+ publish-protocol --phase rub --protocol <did> --rubric <file> --form <file>
28
+ anchor/replace #rub alone on a protocol that
29
+ already has its form
30
+ create-deed --protocol <did> --title <name> create a deed linked to that protocol
31
+ create-collection --entity <deed> --protocol <did> --eval-amount <uixo>
32
+ create/fund/grant a claim collection
33
+ submit-claim --collection <id> --answers <file> submit a test claim as the logged-in wallet
34
+ org create --name <name> [--logo <url>] create an organisation (a dao entity) your login
35
+ controls — or print the one it owns by that name
36
+ org balance --entity <did> an organisation's admin account and its balances
37
+ org fund --entity <did> --amount <n> [--coin ixo|usdc]
38
+ send coins from your wallet to that admin account
39
+
40
+ this oracle
41
+ register --collection <id> enrol a collection with this oracle, as its owner
42
+ scan --collection <id> make this oracle scan an enrolled collection now
43
+ relink [--collection <id>]… operator: link watched collections to their company's
44
+ Decision API sources, as register does (ORACLE_ADMIN_DIDS)
45
+ erase (<claimId>… | --collection <id>) [--yes]
46
+ as the collection's owner, erase claims' transcripts and
47
+ registry text (the oracle never deletes them on its own)
48
+ manifest <protocol did> the engine's work order for a protocol's rubric
49
+ engine register [--env <name>] [--env-file <path>] [--yes]
50
+ register this oracle with the engine now (payable at the
51
+ Standard plan at once), not lazily at the first decide
52
+
53
+ the Decision API (API_LANE on; signed as your login, --kit <url> or .dev.vars' host)
54
+ api source create --name <n> --contact <email> --entity <did>
55
+ add this oracle to your organisation — its
56
+ webhook secret shown ONCE; pending-link
57
+ api source link <sourceId> sign the organisation's link at the engine and
58
+ sync it: pending-link → active
59
+ api sources the sources your login belongs to
60
+ api key create --source <id> --scopes <s,…> [--name <n>] [--max-spend-cents <n>]
61
+ mint an API key — shown ONCE
62
+ api keys --source <id> a source's keys, masked
63
+ api key revoke --source <id> <prefix|masked key> [--grace-days <n>]
64
+ api admin sources every source (your DID in ORACLE_ADMIN_DIDS)
65
+ api admin pause <sourceId> [--note <text>]
66
+ api admin resume <sourceId>
67
+ api admin protocols <sourceId> <did,…>|--none replace a source's allowed protocols
68
+ api admin billing-mode <sourceId> x402|none
69
+ (a source link, a key revoke and every admin change is a dry run without --yes; --json prints the raw answer;
70
+ api --help for the flags)
71
+
72
+ your handlers
73
+ protocol review <protocol did> what a protocol's rubric asks your oracle to produce
74
+ facts scaffold <protocol did> [--all] a stub handler + a test per name needing one
75
+ facts run --protocol <did> --claim <file> [--preview] [--no-ai]
76
+ run your handlers against a claim file (its answers, or
77
+ { answers, attachments }) — no chain, no credits; a rubric's
78
+ dup lane needs D1, so here it stands in as "review"
79
+
80
+ rubric authoring
81
+ rubric fetch-form --protocol <did> --out <file> download a protocol's live claim form (#vct)
82
+ rubric validate --rubric <file> --form <file> check a rubric with the engine's own binder
83
+
84
+ every network-facing command takes --network devnet|testnet|mainnet (default devnet); every
85
+ engine-facing one takes --engine-url <url>.
86
+ `;
87
+ /**
88
+ * The usage lines for one command — every entry whose text starts with it (`engine` → `engine
89
+ * register …`), each with its continuation lines — or null when none does. An entry is a line
90
+ * indented two spaces; a continuation is a deeper-indented line under it.
91
+ */
92
+ export function usageFor(command) {
93
+ const out = [];
94
+ let taking = false;
95
+ for (const line of USAGE.split("\n")) {
96
+ const entry = /^ {2}(\S.*)$/.exec(line);
97
+ if (entry?.[1]) {
98
+ const text = entry[1];
99
+ taking = text === command || text.startsWith(`${command} `);
100
+ if (taking)
101
+ out.push(line);
102
+ }
103
+ else if (taking && /^ {3,}\S/.test(line)) {
104
+ out.push(line);
105
+ }
106
+ else {
107
+ taking = false;
108
+ }
109
+ }
110
+ return out.length > 0 ? `usage: decision-oracle ${command} …\n\n${out.join("\n")}` : null;
111
+ }
112
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/cli/lib/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YAC5D,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5F,CAAC"}
package/dist/config.d.ts CHANGED
@@ -214,6 +214,15 @@ declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
214
214
  EMAIL_FROM_NAME?: string | undefined;
215
215
  }>>;
216
216
  export type Config = z.infer<typeof ConfigSchema>;
217
+ /**
218
+ * A deployment's vars failed validation. `vars` names them (never their values), so the 500 a
219
+ * request gets can say WHICH var to fix (middleware/error-handler.ts) — the full issue text, which
220
+ * may describe a value, goes to the log only.
221
+ */
222
+ export declare class ConfigError extends Error {
223
+ readonly vars: string[];
224
+ constructor(message: string, vars: string[]);
225
+ }
217
226
  export declare function loadConfig(env: OracleEnv): Config;
218
227
  export declare function corsOrigins(config: Config): "*" | string[];
219
228
  export declare const isProduction: (config: Config) => boolean;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwZd,CAAC;AAIL,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAKlD,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAcjD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,CAO1D;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,OAA8C,CAAC"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwZd,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
@@ -404,6 +404,19 @@ const ConfigSchema = z
404
404
  });
405
405
  // Memoize per Env object so we validate once per isolate, not once per request.
406
406
  const cache = new WeakMap();
407
+ /**
408
+ * A deployment's vars failed validation. `vars` names them (never their values), so the 500 a
409
+ * request gets can say WHICH var to fix (middleware/error-handler.ts) — the full issue text, which
410
+ * may describe a value, goes to the log only.
411
+ */
412
+ export class ConfigError extends Error {
413
+ vars;
414
+ constructor(message, vars) {
415
+ super(message);
416
+ this.vars = vars;
417
+ this.name = "ConfigError";
418
+ }
419
+ }
407
420
  export function loadConfig(env) {
408
421
  const cached = cache.get(env);
409
422
  if (cached)
@@ -413,7 +426,8 @@ export function loadConfig(env) {
413
426
  const issues = parsed.error.issues
414
427
  .map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`)
415
428
  .join("; ");
416
- throw new Error(`Invalid environment configuration: ${issues}`);
429
+ const vars = [...new Set(parsed.error.issues.map((i) => i.path.join(".") || "(root)"))];
430
+ throw new ConfigError(`Invalid environment configuration: ${issues}`, vars);
417
431
  }
418
432
  cache.set(env, parsed.data);
419
433
  return parsed.data;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAI1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmDzC,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,MAAM,CAmExC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,MAAM,CAW5C,CAAC"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAK1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA8DzC,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,MAAM,CAmExC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,MAAM,CAW5C,CAAC"}
@@ -9,6 +9,7 @@
9
9
  import { HTTPException } from "hono/http-exception";
10
10
  import { routePath } from "hono/route";
11
11
  import { ZodError } from "zod";
12
+ import { ConfigError } from "../config.js";
12
13
  import { AppError, toErrorBody, VALIDATION_FAILED } from "../lib/errors.js";
13
14
  import { createLogger } from "../lib/logger.js";
14
15
  import { reportError } from "../lib/sentry.js";
@@ -25,6 +26,16 @@ function normalize(err) {
25
26
  })),
26
27
  });
27
28
  }
29
+ // A broken deployment config: say which vars (names only) so the operator can fix it; the issue
30
+ // text itself stays in the log.
31
+ if (err instanceof ConfigError) {
32
+ return new AppError(`This oracle's configuration is invalid — check: ${err.vars.join(", ")}`, {
33
+ code: "INTERNAL",
34
+ status: 500,
35
+ expose: true,
36
+ cause: err,
37
+ });
38
+ }
28
39
  if (err instanceof HTTPException) {
29
40
  const expose = err.status < 500;
30
41
  return new AppError(err.message || "Request failed", {
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"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"}
package/docs/api.md CHANGED
@@ -2557,6 +2557,11 @@ Every HTTP error is one envelope:
2557
2557
  Inside a handler, throwing anything other than `fact.retryLater()` is an error fact, not an error
2558
2558
  response — see §7.
2559
2559
 
2560
+ A deployment whose vars fail validation (an `ENVIRONMENT` outside development / staging /
2561
+ production, a missing mainnet `EVALUATION_DENOM`, …) answers every request `500 INTERNAL` with the
2562
+ message `This oracle's configuration is invalid — check: <VAR>, …` — the var NAMES only; the full
2563
+ validation text, which may describe a value, is in the log (`request_failed`).
2564
+
2560
2565
  ### CLI exit codes
2561
2566
 
2562
2567
  | Code | Meaning |
package/docs/guide.md CHANGED
@@ -70,7 +70,7 @@ bun run cf-typegen
70
70
  | `test/facts.test.ts`, `test/facts/*.test.ts` | **yours** | Plain vitest in node, with `@ixo/decision-oracle/testing` |
71
71
  | `wrangler.jsonc` | **yours to fill** | Bindings, vars, the cron, the custom domains. Binding and var **names are the package's contract** — never rename one |
72
72
  | `.dev.vars` | **yours, never committed** | Local secrets. `.dev.vars.example` lists every one with what it does |
73
- | `tsconfig.json`, `biome.json`, `vitest.config.ts`, `package.json` | generated | Scripts: `dev`, `deploy`, `deploy:testnet`, `deploy:production`, `build`, `cf-typegen`, `db:migrate`, `db:migrate:remote`, `test`, `typecheck`, `lint`, `check` |
73
+ | `tsconfig.json`, `biome.json`, `vitest.config.ts`, `package.json` | generated | Scripts: `dev`, `deploy`, `deploy:devnet`, `deploy:testnet`, `deploy:production`, `build`, `cf-typegen`, `db:migrate`, `db:migrate:remote`, `test`, `typecheck`, `lint`, `check` |
74
74
  | `.claude/skills/` | shipped | The six skills below. Refresh after an upgrade: `bunx decision-oracle skills sync` |
75
75
  | `CLAUDE.md` | shipped | The two rules, and where the package docs live |
76
76
 
@@ -83,16 +83,19 @@ write, billing pauses, Matrix and email notices — is the package. See
83
83
  ## 3. Identities — two keys, two jobs
84
84
 
85
85
  ```bash
86
- bunx decision-oracle derive --new # run this TWICE
86
+ bunx decision-oracle derive --new --write .dev.vars --as SERVICE_ED25519_MNEMONIC
87
+ bunx decision-oracle derive --new --write .dev.vars
87
88
  ```
88
89
 
89
- **Run one** gives you the `did:web` key. Take the mnemonic line and paste it into `.dev.vars`
90
- **relabelled** as `SERVICE_ED25519_MNEMONIC=` — `derive` always prints it as
91
- `ORACLE_SECP_MNEMONIC=`, so a verbatim paste silently sets the wrong key. This one signs every UCAN
92
- invocation the oracle mints (to the engine, to external sources, to the claim bot, to the UCAN
93
- Store, to the VFS) and backs `/.well-known/did.json`. Ignore the `ORACLE_*` lines this run prints.
90
+ `--write` appends the mnemonic to the file (0600) under `--as` (default `ORACLE_SECP_MNEMONIC`) and
91
+ never prints it; a name the file already holds is refused (replacing a key changes the oracle's
92
+ identity). Without `--write`, `derive` prints the mnemonic as an `ORACLE_SECP_MNEMONIC=` line.
94
93
 
95
- **Run two** gives you the chain account key. Its mnemonic is `ORACLE_SECP_MNEMONIC` (a secret), and
94
+ **The first** is the `did:web` key. It signs every UCAN invocation the oracle mints (to the engine,
95
+ to external sources, to the claim bot, to the UCAN Store, to the VFS) and backs
96
+ `/.well-known/did.json`.
97
+
98
+ **The second** is the chain account key. Its mnemonic is `ORACLE_SECP_MNEMONIC` (a secret), and
96
99
  the same run prints `ORACLE_ADDRESS`, `ORACLE_DID` and `ORACLE_MATRIX_USER_ID` — those three are
97
100
  **public config**, so they go in `wrangler.jsonc` `vars`. This key signs `MsgEvaluateClaim`, holds
98
101
  the on-chain grant, and is the audience of the owner's claim-bot delegation. `ORACLE_ADDRESS` is
@@ -852,7 +855,7 @@ bunx decision-oracle oracle init --protocol <protocol did> --kit-url http://loca
852
855
  ```
853
856
 
854
857
  **A full on-chain identity is mandatory** for every oracle built with this kit — the entity, its
855
- `#pro` profile, its `#dmn` domain card and its `#acard` Agent Card. `--logo` — an https URL, or a local .png/.jpg/.webp/.svg file the CLI stores on the IXO Vault (the dry run shows its content-addressed URL, `--yes` uploads it) — is the one input to ask for: without it the domain card carries no logo, and the portal, the console and the Openhands app show a placeholder.
858
+ `#pro` profile, its `#dmn` domain card and its `#acard` Agent Card. `--logo` — an https URL, or a local .png/.jpg/.webp/.svg file (up to 5 MB) the CLI stores on the IXO Vault (the dry run shows its content-addressed URL, `--yes` uploads it) — is the one input to ask for: without it the domain card carries no logo, and the portal, the console and the Openhands app show a placeholder.
856
859
 
857
860
  Thirteen steps, always in this order, each printing `do` or `skip (<why>)`:
858
861
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ixo/decision-oracle",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
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": [
@@ -62,7 +62,7 @@ bunx @ixo/decision-oracle init <dir> [--name <project-name>] [--openhands]
62
62
  cd <dir> && bun install
63
63
  bun run cf-typegen # after ANY wrangler.jsonc binding/var change, too
64
64
  wrangler d1 create <project-name> # paste the id into wrangler.jsonc
65
- wrangler kv namespace create CACHE_KV # paste the id into wrangler.jsonc
65
+ wrangler kv namespace create <project>-cache # paste the id into wrangler.jsonc (KV names are per account)
66
66
  bun run db:migrate # the package's own migrations, applied to the local D1
67
67
  cp .dev.vars.example .dev.vars # git-ignored; secrets only
68
68
  ```
@@ -77,19 +77,23 @@ every env) — then follow `add-openhands-support` for who pays, registering and
77
77
  ### 1. Identity — two keys
78
78
 
79
79
  ```bash
80
- bunx decision-oracle derive --new # run TWICE
80
+ bunx decision-oracle derive --new --write .dev.vars --as SERVICE_ED25519_MNEMONIC
81
+ bunx decision-oracle derive --new --write .dev.vars
81
82
  ```
82
83
 
83
- - Run one: take the mnemonic line and paste it into `.dev.vars` **relabelled** as
84
- `SERVICE_ED25519_MNEMONIC=` — `derive` always prints it as `ORACLE_SECP_MNEMONIC=`, so a verbatim
85
- paste silently sets the wrong key. This is the did:web key that signs every UCAN invocation this
86
- oracle mints and backs `/.well-known/did.json`; ignore the `ORACLE_*` lines this run prints.
87
- - Run two: the mnemonic is `ORACLE_SECP_MNEMONIC` (the chain wallet that signs `MsgEvaluateClaim`);
88
- the same run prints `ORACLE_ADDRESS`, `ORACLE_DID` and `ORACLE_MATRIX_USER_ID` — those three are
89
- **public vars**, so they go in `wrangler.jsonc` `vars`, not `.dev.vars`.
84
+ `--write` appends the key to the file (0600) and never prints it — never run `derive --new` without
85
+ it in an agent session, or the mnemonic lands in the transcript.
90
86
 
91
- Also set `ORACLE_HOSTNAME` (the host the did:web is served from — `localhost:8787` locally, and it
92
- must equal the Custom Domain in `routes` for any env you deploy), `IXO_NETWORK`, and
87
+ - The first is `SERVICE_ED25519_MNEMONIC`: the did:web key that signs every UCAN invocation this
88
+ oracle mints and backs `/.well-known/did.json`.
89
+ - The second is `ORACLE_SECP_MNEMONIC` (the chain wallet that signs `MsgEvaluateClaim`); it prints
90
+ `ORACLE_ADDRESS`, `ORACLE_DID` and `ORACLE_MATRIX_USER_ID` — **public vars**, so they go in
91
+ `wrangler.jsonc` `vars` (top level and every env), not `.dev.vars`.
92
+
93
+ `ORACLE_HOSTNAME` (the host the did:web is served from) is `localhost:8787` in `.dev.vars` for local
94
+ dev ONLY. Each deployed env's host lives in that env's `wrangler.jsonc` `vars` and must equal its
95
+ Custom Domain in `routes`; a per-env secrets file (`.dev.vars.<env>`) must NOT carry a localhost
96
+ `ORACLE_HOSTNAME`, or `engine register --env-file .dev.vars.<env>` registers localhost. Also put
93
97
  `UNIQUE_HMAC_KEY` in `.dev.vars` (any long random string; rotating it orphans every registered
94
98
  duplicate digest). `derive "<existing mnemonic>"` uses a wallet the provider already holds instead of
95
99
  minting one. `ORACLE_ADDRESS` is asserted against the mnemonic before the first proof or signature:
@@ -308,7 +312,7 @@ where a live token would have skipped (it mints a new Matrix device — not a ca
308
312
  ```bash
309
313
  bun run db:migrate:remote # BEFORE the first deploy of the default env; for a named env:
310
314
  # bunx wrangler d1 migrations apply DB --remote --env <env>
311
- bun run deploy # or deploy:testnet / deploy:production
315
+ bun run deploy:devnet # or deploy:testnet / deploy:production (`--env <env>`)
312
316
  wrangler secret put ORACLE_MATRIX_ACCESS_TOKEN # the value step 8 wrote into .dev.vars
313
317
  ```
314
318
 
@@ -332,7 +336,7 @@ failed check — `identity` means `ORACLE_ENTITY_DID` is missing from that env's
332
336
  **Then register with the engine — do it now, don't wait for the first claim:**
333
337
 
334
338
  ```bash
335
- bunx decision-oracle engine register --env <env> --env-file .dev.vars
339
+ bunx decision-oracle engine register --env <env> --env-file .dev.vars.<env>
336
340
  ```
337
341
 
338
342
  The chain lane proves its address lazily, on its first `decide`; until then the engine — and the
@@ -135,6 +135,26 @@ tasks downgrade approve/partial to review → verdict → action.
135
135
  "map": { "true": "approve", "false": "reject" } } ] } // EVERY possible answer mapped
136
136
  ```
137
137
 
138
+ `assignTo.role` is **routing, not access**: any non-empty name for the lane the review goes to (default
139
+ `"reviewer"`; who may answer is the review gate's business — the company's reviewer grants — never this
140
+ field). `assigneeDid` names ONE person instead; `route.matrixRoom` sends it to a room. Use one or the other.
141
+
142
+ **Claim-level task** — a `ReviewTask` with NO `forCriterion` that no `ManualScore` binds: the "a person
143
+ gives the final OK" question.
144
+
145
+ ```jsonc
146
+ { "@type": "ReviewTask", "id": "MED-RT-FINAL", "prompt": "Do you accept this delivery as done?",
147
+ "show": ["$deliveryPhoto", "$clinicId"], "answer": { "type": "boolean" },
148
+ "map": { "true": "approve", "false": "reject" } }
149
+ ```
150
+
151
+ - **When it is asked:** on the claim's first decision, whenever the verdict is `review` — beside anything
152
+ else pending (a held ManualScore, a duplicate hold, a gate with `onFail: "review"`, an errored
153
+ `onError: "review"` check). A claim the machine approves or rejects outright is never asked.
154
+ - **What the answer does:** its `map` IS the final verdict (several claim-level answers: reject beats
155
+ partial beats approve). It settles even a capped or errored-check hold — it is the final human authority.
156
+ - To make EVERY claim go to a person, pair it with a gate whose `onFail` is `"review"` and that always holds.
157
+
138
158
  ## Derived values
139
159
 
140
160
  ```jsonc
@@ -84,7 +84,7 @@ It must list `ext.orderKnown`, `ext.deliveryCodeValid`, `ext.cashReconciled`,
84
84
 
85
85
  ### 2. Identity
86
86
 
87
- Do `create-oracle` step 1 (two `derive --new` runs; relabel the first as `SERVICE_ED25519_MNEMONIC`;
87
+ Do `create-oracle` step 1 (two `derive --new --write` runs, the first `--as SERVICE_ED25519_MNEMONIC`;
88
88
  the second is `ORACLE_SECP_MNEMONIC`) and step 6 (the owner's engine delegation), with:
89
89
 
90
90
  - the three public lines (`ORACLE_ADDRESS`, `ORACLE_DID`, `ORACLE_MATRIX_USER_ID`) written into BOTH
@@ -125,7 +125,7 @@ deploy — `devnet` in the example, `testnet` / `production` in the template):
125
125
 
126
126
  ```bash
127
127
  bunx wrangler d1 create shipment-delivery-oracle-devnet # → env.<env> d1 database_id
128
- bunx wrangler kv namespace create CACHE_KV --env devnet # → env.<env> kv id
128
+ bunx wrangler kv namespace create <project>-cache-devnet # → env.<env> kv id
129
129
  bunx wrangler r2 bucket create shipment-delivery-oracle-uploads-devnet
130
130
  ```
131
131
 
@@ -30,7 +30,7 @@ Create the two bindings and paste their ids into `wrangler.jsonc` (once per env
30
30
 
31
31
  ```bash
32
32
  wrangler d1 create {{name}}
33
- wrangler kv namespace create CACHE_KV
33
+ wrangler kv namespace create {{name}}-cache
34
34
  bun run db:migrate # applies the package's migrations to the local D1
35
35
  ```
36
36
 
@@ -39,7 +39,8 @@ never write a migration.
39
39
 
40
40
  ## 3. Identity — two keys, two DIDs
41
41
 
42
- `bunx decision-oracle derive --new` prints a fresh mnemonic and the three public vars derived from it.
42
+ `bunx decision-oracle derive --new --write .dev.vars [--as SERVICE_ED25519_MNEMONIC]` writes a fresh
43
+ mnemonic into `.dev.vars` (never printed) and prints the three public vars derived from it.
43
44
  Secrets go in `.dev.vars` locally (`cp .dev.vars.example .dev.vars`) and via
44
45
  `wrangler secret put <NAME>` once deployed; their public halves are `vars` in `wrangler.jsonc`.
45
46
 
@@ -139,7 +140,7 @@ under `/v1` requires a UCAN invocation addressed to `did:web:<ORACLE_HOSTNAME>`.
139
140
  ## 7. Deploy and declare yourself on chain
140
141
 
141
142
  ```bash
142
- bun run deploy # or deploy:testnet / deploy:production
143
+ bun run deploy:devnet # or deploy:testnet / deploy:production
143
144
  ```
144
145
 
145
146
  The Custom Domain in `routes` must equal `ORACLE_HOSTNAME` — the did:web document is served from
@@ -5,6 +5,7 @@
5
5
  "scripts": {
6
6
  "dev": "wrangler dev --test-scheduled",
7
7
  "deploy": "wrangler deploy",
8
+ "deploy:devnet": "wrangler deploy --env devnet",
8
9
  "deploy:testnet": "wrangler deploy --env testnet",
9
10
  "deploy:production": "wrangler deploy --env production",
10
11
  "build": "wrangler deploy --dry-run --outdir dist",
@@ -3,7 +3,8 @@ import { defineFacts } from "@ixo/decision-oracle/facts";
3
3
  /**
4
4
  * How this oracle produces the facts a rubric asks for. List only the names you answer yourself;
5
5
  * every other declared source runs the stock lane (a UCAN-signed POST to the declared endpoint)
6
- * and every other AI check runs OpenRouter with the rubric's own instructions.
6
+ * and every other AI check runs the stock judge with the rubric's own instructions (the Cloudflare
7
+ * AI Gateway by default; OpenRouter with AI_PROVIDER=openrouter).
7
8
  *
8
9
  * bunx decision-oracle protocol review <protocol did> — what the rubric declares, and which names need a handler
9
10
  * bunx decision-oracle facts scaffold <protocol did> — stubs + tests for those names
@@ -12,7 +13,10 @@ export const facts = defineFacts({
12
13
  ext: {
13
14
  // deliveryConfirmed: async ({ send }, tools) => {
14
15
  // const res = await tools.http.json(`https://courier.example/deliveries/${send.reference}`);
15
- // return res.ok && res.body?.status === "delivered";
16
+ // // An outage is not a "no": a throw becomes an error fact with the rubric's onError
17
+ // // (`throw fact.retryLater(…)` instead retries the whole step later).
18
+ // if (!res.ok) throw new Error(`courier answered ${res.status ?? "nothing"}`);
19
+ // return res.body?.status === "delivered";
16
20
  // },
17
21
  },
18
22
  ai: {},
@@ -10,7 +10,9 @@ const oracle = defineOracle({
10
10
  description: "Evaluates claims against the collection's rubric via the IXO decision engine.",
11
11
  // The protocol entity DIDs this oracle serves (GET /v1/info; enforced at register). [] ⇒ any.
12
12
  supportedProtocols: [],
13
- // The minimum on-chain evaluation payment a collection must carry (integer base units).
13
+ // The minimum on-chain evaluation payment a collection must carry (integer base units) — the one
14
+ // place to change it, except on mainnet, where wrangler.jsonc's EVALUATION_DENOM /
15
+ // EVALUATION_MIN_AMOUNT (required there, real USDC) replace it. Never PAY: only IXO-run oracles.
14
16
  pricing: { evaluation: { denom: "uixo", minAmount: "1000000" } },
15
17
  policies: {
16
18
  autoSign: true,