@ixo/decision-oracle 0.0.0-stage → 0.2.0
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 +794 -2
- package/dist/act.d.ts +87 -0
- package/dist/act.d.ts.map +1 -0
- package/dist/act.js +20 -0
- package/dist/act.js.map +1 -0
- package/dist/app.d.ts +22 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +128 -0
- package/dist/app.js.map +1 -0
- package/dist/c2pa.wasm +0 -0
- package/dist/cli/commands/api.d.ts +50 -0
- package/dist/cli/commands/api.d.ts.map +1 -0
- package/dist/cli/commands/api.js +737 -0
- package/dist/cli/commands/api.js.map +1 -0
- package/dist/cli/commands/create-collection.d.ts +40 -0
- package/dist/cli/commands/create-collection.d.ts.map +1 -0
- package/dist/cli/commands/create-collection.js +318 -0
- package/dist/cli/commands/create-collection.js.map +1 -0
- package/dist/cli/commands/create-deed.d.ts +31 -0
- package/dist/cli/commands/create-deed.d.ts.map +1 -0
- package/dist/cli/commands/create-deed.js +208 -0
- package/dist/cli/commands/create-deed.js.map +1 -0
- package/dist/cli/commands/delegation.d.ts +26 -0
- package/dist/cli/commands/delegation.d.ts.map +1 -0
- package/dist/cli/commands/delegation.js +162 -0
- package/dist/cli/commands/delegation.js.map +1 -0
- package/dist/cli/commands/derive.d.ts +22 -0
- package/dist/cli/commands/derive.d.ts.map +1 -0
- package/dist/cli/commands/derive.js +53 -0
- package/dist/cli/commands/derive.js.map +1 -0
- package/dist/cli/commands/engine.d.ts +25 -0
- package/dist/cli/commands/engine.d.ts.map +1 -0
- package/dist/cli/commands/engine.js +107 -0
- package/dist/cli/commands/engine.js.map +1 -0
- package/dist/cli/commands/erase.d.ts +17 -0
- package/dist/cli/commands/erase.d.ts.map +1 -0
- package/dist/cli/commands/erase.js +117 -0
- package/dist/cli/commands/erase.js.map +1 -0
- package/dist/cli/commands/facts-run.d.ts +30 -0
- package/dist/cli/commands/facts-run.d.ts.map +1 -0
- package/dist/cli/commands/facts-run.js +409 -0
- package/dist/cli/commands/facts-run.js.map +1 -0
- package/dist/cli/commands/facts-scaffold.d.ts +22 -0
- package/dist/cli/commands/facts-scaffold.d.ts.map +1 -0
- package/dist/cli/commands/facts-scaffold.js +208 -0
- package/dist/cli/commands/facts-scaffold.js.map +1 -0
- package/dist/cli/commands/init.d.ts +18 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +34 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.d.ts +9 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +16 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +10 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +28 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/manifest.d.ts +12 -0
- package/dist/cli/commands/manifest.d.ts.map +1 -0
- package/dist/cli/commands/manifest.js +48 -0
- package/dist/cli/commands/manifest.js.map +1 -0
- package/dist/cli/commands/oracle-init.d.ts +48 -0
- package/dist/cli/commands/oracle-init.d.ts.map +1 -0
- package/dist/cli/commands/oracle-init.js +1122 -0
- package/dist/cli/commands/oracle-init.js.map +1 -0
- package/dist/cli/commands/org.d.ts +28 -0
- package/dist/cli/commands/org.d.ts.map +1 -0
- package/dist/cli/commands/org.js +309 -0
- package/dist/cli/commands/org.js.map +1 -0
- package/dist/cli/commands/protocol-review.d.ts +20 -0
- package/dist/cli/commands/protocol-review.d.ts.map +1 -0
- package/dist/cli/commands/protocol-review.js +162 -0
- package/dist/cli/commands/protocol-review.js.map +1 -0
- package/dist/cli/commands/publish-protocol.d.ts +43 -0
- package/dist/cli/commands/publish-protocol.d.ts.map +1 -0
- package/dist/cli/commands/publish-protocol.js +345 -0
- package/dist/cli/commands/publish-protocol.js.map +1 -0
- package/dist/cli/commands/register.d.ts +16 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +54 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/relink.d.ts +11 -0
- package/dist/cli/commands/relink.d.ts.map +1 -0
- package/dist/cli/commands/relink.js +36 -0
- package/dist/cli/commands/relink.js.map +1 -0
- package/dist/cli/commands/rubric-fetch-form.d.ts +16 -0
- package/dist/cli/commands/rubric-fetch-form.d.ts.map +1 -0
- package/dist/cli/commands/rubric-fetch-form.js +83 -0
- package/dist/cli/commands/rubric-fetch-form.js.map +1 -0
- package/dist/cli/commands/rubric-validate.d.ts +72 -0
- package/dist/cli/commands/rubric-validate.d.ts.map +1 -0
- package/dist/cli/commands/rubric-validate.js +163 -0
- package/dist/cli/commands/rubric-validate.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +13 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +39 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +11 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +19 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/submit-claim.d.ts +25 -0
- package/dist/cli/commands/submit-claim.d.ts.map +1 -0
- package/dist/cli/commands/submit-claim.js +155 -0
- package/dist/cli/commands/submit-claim.js.map +1 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +206 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/agent-card-schema.d.ts +8 -0
- package/dist/cli/lib/agent-card-schema.d.ts.map +1 -0
- package/dist/cli/lib/agent-card-schema.js +169 -0
- package/dist/cli/lib/agent-card-schema.js.map +1 -0
- package/dist/cli/lib/ai-rest.d.ts +12 -0
- package/dist/cli/lib/ai-rest.d.ts.map +1 -0
- package/dist/cli/lib/ai-rest.js +36 -0
- package/dist/cli/lib/ai-rest.js.map +1 -0
- package/dist/cli/lib/args.d.ts +33 -0
- package/dist/cli/lib/args.d.ts.map +1 -0
- package/dist/cli/lib/args.js +24 -0
- package/dist/cli/lib/args.js.map +1 -0
- package/dist/cli/lib/authhub.d.ts +7 -0
- package/dist/cli/lib/authhub.d.ts.map +1 -0
- package/dist/cli/lib/authhub.js +210 -0
- package/dist/cli/lib/authhub.js.map +1 -0
- package/dist/cli/lib/chain.d.ts +264 -0
- package/dist/cli/lib/chain.d.ts.map +1 -0
- package/dist/cli/lib/chain.js +584 -0
- package/dist/cli/lib/chain.js.map +1 -0
- package/dist/cli/lib/devvars.d.ts +59 -0
- package/dist/cli/lib/devvars.d.ts.map +1 -0
- package/dist/cli/lib/devvars.js +206 -0
- package/dist/cli/lib/devvars.js.map +1 -0
- package/dist/cli/lib/engine.d.ts +54 -0
- package/dist/cli/lib/engine.d.ts.map +1 -0
- package/dist/cli/lib/engine.js +112 -0
- package/dist/cli/lib/engine.js.map +1 -0
- package/dist/cli/lib/identity-cards.d.ts +188 -0
- package/dist/cli/lib/identity-cards.d.ts.map +1 -0
- package/dist/cli/lib/identity-cards.js +261 -0
- package/dist/cli/lib/identity-cards.js.map +1 -0
- package/dist/cli/lib/matrix-account.d.ts +79 -0
- package/dist/cli/lib/matrix-account.d.ts.map +1 -0
- package/dist/cli/lib/matrix-account.js +228 -0
- package/dist/cli/lib/matrix-account.js.map +1 -0
- package/dist/cli/lib/oracle-account.d.ts +108 -0
- package/dist/cli/lib/oracle-account.d.ts.map +1 -0
- package/dist/cli/lib/oracle-account.js +207 -0
- package/dist/cli/lib/oracle-account.js.map +1 -0
- package/dist/cli/lib/project.d.ts +22 -0
- package/dist/cli/lib/project.d.ts.map +1 -0
- package/dist/cli/lib/project.js +62 -0
- package/dist/cli/lib/project.js.map +1 -0
- package/dist/cli/lib/session.d.ts +109 -0
- package/dist/cli/lib/session.d.ts.map +1 -0
- package/dist/cli/lib/session.js +354 -0
- package/dist/cli/lib/session.js.map +1 -0
- package/dist/cli/lib/workorder.d.ts +57 -0
- package/dist/cli/lib/workorder.d.ts.map +1 -0
- package/dist/cli/lib/workorder.js +101 -0
- package/dist/cli/lib/workorder.js.map +1 -0
- package/dist/config.d.ts +221 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +431 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +88 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +9 -0
- package/dist/context.js.map +1 -0
- package/dist/contracts/api.d.ts +3367 -0
- package/dist/contracts/api.d.ts.map +1 -0
- package/dist/contracts/api.js +1303 -0
- package/dist/contracts/api.js.map +1 -0
- package/dist/contracts/capabilities.d.ts +126 -0
- package/dist/contracts/capabilities.d.ts.map +1 -0
- package/dist/contracts/capabilities.js +164 -0
- package/dist/contracts/capabilities.js.map +1 -0
- package/dist/contracts/claim-source.d.ts +98 -0
- package/dist/contracts/claim-source.d.ts.map +1 -0
- package/dist/contracts/claim-source.js +17 -0
- package/dist/contracts/claim-source.js.map +1 -0
- package/dist/contracts/errors.d.ts +150 -0
- package/dist/contracts/errors.d.ts.map +1 -0
- package/dist/contracts/errors.js +121 -0
- package/dist/contracts/errors.js.map +1 -0
- package/dist/contracts/index.d.ts +15 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +11 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/payment-gate.d.ts +129 -0
- package/dist/contracts/payment-gate.d.ts.map +1 -0
- package/dist/contracts/payment-gate.js +24 -0
- package/dist/contracts/payment-gate.js.map +1 -0
- package/dist/contracts/start-api-claim.d.ts +90 -0
- package/dist/contracts/start-api-claim.d.ts.map +1 -0
- package/dist/contracts/start-api-claim.js +22 -0
- package/dist/contracts/start-api-claim.js.map +1 -0
- package/dist/contracts/webhooks.d.ts +1487 -0
- package/dist/contracts/webhooks.d.ts.map +1 -0
- package/dist/contracts/webhooks.js +71 -0
- package/dist/contracts/webhooks.js.map +1 -0
- package/dist/contracts/work-order.d.ts +29 -0
- package/dist/contracts/work-order.d.ts.map +1 -0
- package/dist/contracts/work-order.js +12 -0
- package/dist/contracts/work-order.js.map +1 -0
- package/dist/cron/ai-cost.d.ts +29 -0
- package/dist/cron/ai-cost.d.ts.map +1 -0
- package/dist/cron/ai-cost.js +80 -0
- package/dist/cron/ai-cost.js.map +1 -0
- package/dist/cron/api-lane.d.ts +39 -0
- package/dist/cron/api-lane.d.ts.map +1 -0
- package/dist/cron/api-lane.js +203 -0
- package/dist/cron/api-lane.js.map +1 -0
- package/dist/cron/backlog.d.ts +50 -0
- package/dist/cron/backlog.d.ts.map +1 -0
- package/dist/cron/backlog.js +115 -0
- package/dist/cron/backlog.js.map +1 -0
- package/dist/cron/billing.d.ts +11 -0
- package/dist/cron/billing.d.ts.map +1 -0
- package/dist/cron/billing.js +69 -0
- package/dist/cron/billing.js.map +1 -0
- package/dist/cron/collection.d.ts +50 -0
- package/dist/cron/collection.d.ts.map +1 -0
- package/dist/cron/collection.js +118 -0
- package/dist/cron/collection.js.map +1 -0
- package/dist/cron/funding.d.ts +16 -0
- package/dist/cron/funding.d.ts.map +1 -0
- package/dist/cron/funding.js +262 -0
- package/dist/cron/funding.js.map +1 -0
- package/dist/cron/payer-billing.d.ts +38 -0
- package/dist/cron/payer-billing.d.ts.map +1 -0
- package/dist/cron/payer-billing.js +119 -0
- package/dist/cron/payer-billing.js.map +1 -0
- package/dist/cron/scan.d.ts +43 -0
- package/dist/cron/scan.d.ts.map +1 -0
- package/dist/cron/scan.js +250 -0
- package/dist/cron/scan.js.map +1 -0
- package/dist/db/client.d.ts +14 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +14 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +7 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +6738 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +1433 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/define-oracle.d.ts +32 -0
- package/dist/define-oracle.d.ts.map +1 -0
- package/dist/define-oracle.js +80 -0
- package/dist/define-oracle.js.map +1 -0
- package/dist/dev-oracle.d.ts +9 -0
- package/dist/dev-oracle.d.ts.map +1 -0
- package/dist/dev-oracle.js +19 -0
- package/dist/dev-oracle.js.map +1 -0
- package/dist/dev-worker.d.ts +10 -0
- package/dist/dev-worker.d.ts.map +1 -0
- package/dist/dev-worker.js +12 -0
- package/dist/dev-worker.js.map +1 -0
- package/dist/env.d.ts +146 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +10 -0
- package/dist/env.js.map +1 -0
- package/dist/facts/exif.d.ts +43 -0
- package/dist/facts/exif.d.ts.map +1 -0
- package/dist/facts/exif.js +224 -0
- package/dist/facts/exif.js.map +1 -0
- package/dist/facts/fact.d.ts +62 -0
- package/dist/facts/fact.d.ts.map +1 -0
- package/dist/facts/fact.js +105 -0
- package/dist/facts/fact.js.map +1 -0
- package/dist/facts/geo.d.ts +55 -0
- package/dist/facts/geo.d.ts.map +1 -0
- package/dist/facts/geo.js +267 -0
- package/dist/facts/geo.js.map +1 -0
- package/dist/facts/index.d.ts +31 -0
- package/dist/facts/index.d.ts.map +1 -0
- package/dist/facts/index.js +27 -0
- package/dist/facts/index.js.map +1 -0
- package/dist/facts/linked-doc.d.ts +60 -0
- package/dist/facts/linked-doc.d.ts.map +1 -0
- package/dist/facts/linked-doc.js +101 -0
- package/dist/facts/linked-doc.js.map +1 -0
- package/dist/facts/types.d.ts +278 -0
- package/dist/facts/types.d.ts.map +1 -0
- package/dist/facts/types.js +19 -0
- package/dist/facts/types.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-lane/accept.d.ts +29 -0
- package/dist/lib/api-lane/accept.d.ts.map +1 -0
- package/dist/lib/api-lane/accept.js +218 -0
- package/dist/lib/api-lane/accept.js.map +1 -0
- package/dist/lib/api-lane/claim-list.d.ts +44 -0
- package/dist/lib/api-lane/claim-list.d.ts.map +1 -0
- package/dist/lib/api-lane/claim-list.js +92 -0
- package/dist/lib/api-lane/claim-list.js.map +1 -0
- package/dist/lib/api-lane/company.d.ts +56 -0
- package/dist/lib/api-lane/company.d.ts.map +1 -0
- package/dist/lib/api-lane/company.js +103 -0
- package/dist/lib/api-lane/company.js.map +1 -0
- package/dist/lib/api-lane/events.d.ts +21 -0
- package/dist/lib/api-lane/events.d.ts.map +1 -0
- package/dist/lib/api-lane/events.js +111 -0
- package/dist/lib/api-lane/events.js.map +1 -0
- package/dist/lib/api-lane/ids.d.ts +39 -0
- package/dist/lib/api-lane/ids.d.ts.map +1 -0
- package/dist/lib/api-lane/ids.js +78 -0
- package/dist/lib/api-lane/ids.js.map +1 -0
- package/dist/lib/api-lane/index.d.ts +16 -0
- package/dist/lib/api-lane/index.d.ts.map +1 -0
- package/dist/lib/api-lane/index.js +16 -0
- package/dist/lib/api-lane/index.js.map +1 -0
- package/dist/lib/api-lane/linked.d.ts +264 -0
- package/dist/lib/api-lane/linked.d.ts.map +1 -0
- package/dist/lib/api-lane/linked.js +272 -0
- package/dist/lib/api-lane/linked.js.map +1 -0
- package/dist/lib/api-lane/media-type.d.ts +15 -0
- package/dist/lib/api-lane/media-type.d.ts.map +1 -0
- package/dist/lib/api-lane/media-type.js +73 -0
- package/dist/lib/api-lane/media-type.js.map +1 -0
- package/dist/lib/api-lane/member-emails.d.ts +83 -0
- package/dist/lib/api-lane/member-emails.d.ts.map +1 -0
- package/dist/lib/api-lane/member-emails.js +213 -0
- package/dist/lib/api-lane/member-emails.js.map +1 -0
- package/dist/lib/api-lane/members.d.ts +42 -0
- package/dist/lib/api-lane/members.d.ts.map +1 -0
- package/dist/lib/api-lane/members.js +75 -0
- package/dist/lib/api-lane/members.js.map +1 -0
- package/dist/lib/api-lane/notify.d.ts +47 -0
- package/dist/lib/api-lane/notify.d.ts.map +1 -0
- package/dist/lib/api-lane/notify.js +240 -0
- package/dist/lib/api-lane/notify.js.map +1 -0
- package/dist/lib/api-lane/pause.d.ts +41 -0
- package/dist/lib/api-lane/pause.d.ts.map +1 -0
- package/dist/lib/api-lane/pause.js +155 -0
- package/dist/lib/api-lane/pause.js.map +1 -0
- package/dist/lib/api-lane/record.d.ts +76 -0
- package/dist/lib/api-lane/record.d.ts.map +1 -0
- package/dist/lib/api-lane/record.js +337 -0
- package/dist/lib/api-lane/record.js.map +1 -0
- package/dist/lib/api-lane/retention.d.ts +43 -0
- package/dist/lib/api-lane/retention.d.ts.map +1 -0
- package/dist/lib/api-lane/retention.js +176 -0
- package/dist/lib/api-lane/retention.js.map +1 -0
- package/dist/lib/api-lane/review.d.ts +76 -0
- package/dist/lib/api-lane/review.d.ts.map +1 -0
- package/dist/lib/api-lane/review.js +355 -0
- package/dist/lib/api-lane/review.js.map +1 -0
- package/dist/lib/api-lane/reviewers.d.ts +109 -0
- package/dist/lib/api-lane/reviewers.d.ts.map +1 -0
- package/dist/lib/api-lane/reviewers.js +755 -0
- package/dist/lib/api-lane/reviewers.js.map +1 -0
- package/dist/lib/api-lane/source-delete.d.ts +16 -0
- package/dist/lib/api-lane/source-delete.d.ts.map +1 -0
- package/dist/lib/api-lane/source-delete.js +50 -0
- package/dist/lib/api-lane/source-delete.js.map +1 -0
- package/dist/lib/api-lane/source.d.ts +19 -0
- package/dist/lib/api-lane/source.d.ts.map +1 -0
- package/dist/lib/api-lane/source.js +226 -0
- package/dist/lib/api-lane/source.js.map +1 -0
- package/dist/lib/api-lane/submitter.d.ts +22 -0
- package/dist/lib/api-lane/submitter.d.ts.map +1 -0
- package/dist/lib/api-lane/submitter.js +34 -0
- package/dist/lib/api-lane/submitter.js.map +1 -0
- package/dist/lib/api-lane/timeline.d.ts +20 -0
- package/dist/lib/api-lane/timeline.d.ts.map +1 -0
- package/dist/lib/api-lane/timeline.js +23 -0
- package/dist/lib/api-lane/timeline.js.map +1 -0
- package/dist/lib/api-lane/webhook-crypto.d.ts +44 -0
- package/dist/lib/api-lane/webhook-crypto.d.ts.map +1 -0
- package/dist/lib/api-lane/webhook-crypto.js +103 -0
- package/dist/lib/api-lane/webhook-crypto.js.map +1 -0
- package/dist/lib/api-lane/webhooks.d.ts +117 -0
- package/dist/lib/api-lane/webhooks.d.ts.map +1 -0
- package/dist/lib/api-lane/webhooks.js +503 -0
- package/dist/lib/api-lane/webhooks.js.map +1 -0
- package/dist/lib/archive.d.ts +64 -0
- package/dist/lib/archive.d.ts.map +1 -0
- package/dist/lib/archive.js +305 -0
- package/dist/lib/archive.js.map +1 -0
- package/dist/lib/bech32.d.ts +8 -0
- package/dist/lib/bech32.d.ts.map +1 -0
- package/dist/lib/bech32.js +39 -0
- package/dist/lib/bech32.js.map +1 -0
- package/dist/lib/claim-erase.d.ts +22 -0
- package/dist/lib/claim-erase.d.ts.map +1 -0
- package/dist/lib/claim-erase.js +44 -0
- package/dist/lib/claim-erase.js.map +1 -0
- package/dist/lib/cursor.d.ts +11 -0
- package/dist/lib/cursor.d.ts.map +1 -0
- package/dist/lib/cursor.js +20 -0
- package/dist/lib/cursor.js.map +1 -0
- package/dist/lib/email/send.d.ts +43 -0
- package/dist/lib/email/send.d.ts.map +1 -0
- package/dist/lib/email/send.js +71 -0
- package/dist/lib/email/send.js.map +1 -0
- package/dist/lib/email/template.d.ts +217 -0
- package/dist/lib/email/template.d.ts.map +1 -0
- package/dist/lib/email/template.js +713 -0
- package/dist/lib/email/template.js.map +1 -0
- package/dist/lib/engine/adr36.d.ts +56 -0
- package/dist/lib/engine/adr36.d.ts.map +1 -0
- package/dist/lib/engine/adr36.js +76 -0
- package/dist/lib/engine/adr36.js.map +1 -0
- package/dist/lib/engine/client.d.ts +162 -0
- package/dist/lib/engine/client.d.ts.map +1 -0
- package/dist/lib/engine/client.js +473 -0
- package/dist/lib/engine/client.js.map +1 -0
- package/dist/lib/engine/types.d.ts +1356 -0
- package/dist/lib/engine/types.d.ts.map +1 -0
- package/dist/lib/engine/types.js +562 -0
- package/dist/lib/engine/types.js.map +1 -0
- package/dist/lib/errors.d.ts +73 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +96 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/facts/builder.d.ts +88 -0
- package/dist/lib/facts/builder.d.ts.map +1 -0
- package/dist/lib/facts/builder.js +239 -0
- package/dist/lib/facts/builder.js.map +1 -0
- package/dist/lib/facts/ctx.d.ts +34 -0
- package/dist/lib/facts/ctx.d.ts.map +1 -0
- package/dist/lib/facts/ctx.js +51 -0
- package/dist/lib/facts/ctx.js.map +1 -0
- package/dist/lib/facts/expected.d.ts +23 -0
- package/dist/lib/facts/expected.d.ts.map +1 -0
- package/dist/lib/facts/expected.js +16 -0
- package/dist/lib/facts/expected.js.map +1 -0
- package/dist/lib/facts/fact-cache.d.ts +469 -0
- package/dist/lib/facts/fact-cache.d.ts.map +1 -0
- package/dist/lib/facts/fact-cache.js +52 -0
- package/dist/lib/facts/fact-cache.js.map +1 -0
- package/dist/lib/facts/factset.d.ts +608 -0
- package/dist/lib/facts/factset.d.ts.map +1 -0
- package/dist/lib/facts/factset.js +226 -0
- package/dist/lib/facts/factset.js.map +1 -0
- package/dist/lib/facts/producer.d.ts +190 -0
- package/dist/lib/facts/producer.d.ts.map +1 -0
- package/dist/lib/facts/producer.js +15 -0
- package/dist/lib/facts/producer.js.map +1 -0
- package/dist/lib/facts/runner.d.ts +111 -0
- package/dist/lib/facts/runner.d.ts.map +1 -0
- package/dist/lib/facts/runner.js +438 -0
- package/dist/lib/facts/runner.js.map +1 -0
- package/dist/lib/facts/stock/ai-check.d.ts +100 -0
- package/dist/lib/facts/stock/ai-check.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-check.js +526 -0
- package/dist/lib/facts/stock/ai-check.js.map +1 -0
- package/dist/lib/facts/stock/ai-inputs.d.ts +104 -0
- package/dist/lib/facts/stock/ai-inputs.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-inputs.js +332 -0
- package/dist/lib/facts/stock/ai-inputs.js.map +1 -0
- package/dist/lib/facts/stock/ai-provider.d.ts +105 -0
- package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-provider.js +250 -0
- package/dist/lib/facts/stock/ai-provider.js.map +1 -0
- package/dist/lib/facts/stock/ai-unique.d.ts +85 -0
- package/dist/lib/facts/stock/ai-unique.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-unique.js +208 -0
- package/dist/lib/facts/stock/ai-unique.js.map +1 -0
- package/dist/lib/facts/stock/archive.d.ts +63 -0
- package/dist/lib/facts/stock/archive.d.ts.map +1 -0
- package/dist/lib/facts/stock/archive.js +349 -0
- package/dist/lib/facts/stock/archive.js.map +1 -0
- package/dist/lib/facts/stock/c2pa-trust-list.d.ts +16 -0
- package/dist/lib/facts/stock/c2pa-trust-list.d.ts.map +1 -0
- package/dist/lib/facts/stock/c2pa-trust-list.js +637 -0
- package/dist/lib/facts/stock/c2pa-trust-list.js.map +1 -0
- package/dist/lib/facts/stock/c2pa.d.ts +56 -0
- package/dist/lib/facts/stock/c2pa.d.ts.map +1 -0
- package/dist/lib/facts/stock/c2pa.js +234 -0
- package/dist/lib/facts/stock/c2pa.js.map +1 -0
- package/dist/lib/facts/stock/call.d.ts +91 -0
- package/dist/lib/facts/stock/call.d.ts.map +1 -0
- package/dist/lib/facts/stock/call.js +281 -0
- package/dist/lib/facts/stock/call.js.map +1 -0
- package/dist/lib/facts/stock/capability.d.ts +39 -0
- package/dist/lib/facts/stock/capability.d.ts.map +1 -0
- package/dist/lib/facts/stock/capability.js +59 -0
- package/dist/lib/facts/stock/capability.js.map +1 -0
- package/dist/lib/facts/stock/ext-source.d.ts +51 -0
- package/dist/lib/facts/stock/ext-source.d.ts.map +1 -0
- package/dist/lib/facts/stock/ext-source.js +201 -0
- package/dist/lib/facts/stock/ext-source.js.map +1 -0
- package/dist/lib/facts/stock/frequency-fact.d.ts +59 -0
- package/dist/lib/facts/stock/frequency-fact.d.ts.map +1 -0
- package/dist/lib/facts/stock/frequency-fact.js +86 -0
- package/dist/lib/facts/stock/frequency-fact.js.map +1 -0
- package/dist/lib/facts/stock/frequency.d.ts +32 -0
- package/dist/lib/facts/stock/frequency.d.ts.map +1 -0
- package/dist/lib/facts/stock/frequency.js +48 -0
- package/dist/lib/facts/stock/frequency.js.map +1 -0
- package/dist/lib/facts/stock/index.d.ts +27 -0
- package/dist/lib/facts/stock/index.d.ts.map +1 -0
- package/dist/lib/facts/stock/index.js +28 -0
- package/dist/lib/facts/stock/index.js.map +1 -0
- package/dist/lib/facts/stock/normalize.d.ts +45 -0
- package/dist/lib/facts/stock/normalize.d.ts.map +1 -0
- package/dist/lib/facts/stock/normalize.js +135 -0
- package/dist/lib/facts/stock/normalize.js.map +1 -0
- package/dist/lib/facts/stock/phash.d.ts +55 -0
- package/dist/lib/facts/stock/phash.d.ts.map +1 -0
- package/dist/lib/facts/stock/phash.js +256 -0
- package/dist/lib/facts/stock/phash.js.map +1 -0
- package/dist/lib/facts/stock/rule-defaults.d.ts +72 -0
- package/dist/lib/facts/stock/rule-defaults.d.ts.map +1 -0
- package/dist/lib/facts/stock/rule-defaults.js +55 -0
- package/dist/lib/facts/stock/rule-defaults.js.map +1 -0
- package/dist/lib/facts/stock/send.d.ts +52 -0
- package/dist/lib/facts/stock/send.d.ts.map +1 -0
- package/dist/lib/facts/stock/send.js +148 -0
- package/dist/lib/facts/stock/send.js.map +1 -0
- package/dist/lib/facts/stock/unique-score.d.ts +138 -0
- package/dist/lib/facts/stock/unique-score.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique-score.js +257 -0
- package/dist/lib/facts/stock/unique-score.js.map +1 -0
- package/dist/lib/facts/stock/unique-store.d.ts +420 -0
- package/dist/lib/facts/stock/unique-store.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique-store.js +328 -0
- package/dist/lib/facts/stock/unique-store.js.map +1 -0
- package/dist/lib/facts/stock/unique.d.ts +35 -0
- package/dist/lib/facts/stock/unique.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique.js +327 -0
- package/dist/lib/facts/stock/unique.js.map +1 -0
- package/dist/lib/facts/tools.d.ts +57 -0
- package/dist/lib/facts/tools.d.ts.map +1 -0
- package/dist/lib/facts/tools.js +325 -0
- package/dist/lib/facts/tools.js.map +1 -0
- package/dist/lib/facts/validate.d.ts +33 -0
- package/dist/lib/facts/validate.d.ts.map +1 -0
- package/dist/lib/facts/validate.js +137 -0
- package/dist/lib/facts/validate.js.map +1 -0
- package/dist/lib/hash.d.ts +44 -0
- package/dist/lib/hash.d.ts.map +1 -0
- package/dist/lib/hash.js +80 -0
- package/dist/lib/hash.js.map +1 -0
- package/dist/lib/http/client.d.ts +113 -0
- package/dist/lib/http/client.d.ts.map +1 -0
- package/dist/lib/http/client.js +330 -0
- package/dist/lib/http/client.js.map +1 -0
- package/dist/lib/ids.d.ts +17 -0
- package/dist/lib/ids.d.ts.map +1 -0
- package/dist/lib/ids.js +26 -0
- package/dist/lib/ids.js.map +1 -0
- package/dist/lib/ixo/attachments.d.ts +116 -0
- package/dist/lib/ixo/attachments.d.ts.map +1 -0
- package/dist/lib/ixo/attachments.js +290 -0
- package/dist/lib/ixo/attachments.js.map +1 -0
- package/dist/lib/ixo/authz.d.ts +40 -0
- package/dist/lib/ixo/authz.d.ts.map +1 -0
- package/dist/lib/ixo/authz.js +113 -0
- package/dist/lib/ixo/authz.js.map +1 -0
- package/dist/lib/ixo/blocksync/index.d.ts +90 -0
- package/dist/lib/ixo/blocksync/index.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/index.js +251 -0
- package/dist/lib/ixo/blocksync/index.js.map +1 -0
- package/dist/lib/ixo/blocksync/queries.d.ts +15 -0
- package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/queries.js +144 -0
- package/dist/lib/ixo/blocksync/queries.js.map +1 -0
- package/dist/lib/ixo/blocksync/types.d.ts +184 -0
- package/dist/lib/ixo/blocksync/types.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/types.js +108 -0
- package/dist/lib/ixo/blocksync/types.js.map +1 -0
- package/dist/lib/ixo/cellnode.d.ts +35 -0
- package/dist/lib/ixo/cellnode.d.ts.map +1 -0
- package/dist/lib/ixo/cellnode.js +43 -0
- package/dist/lib/ixo/cellnode.js.map +1 -0
- package/dist/lib/ixo/chain-write.d.ts +130 -0
- package/dist/lib/ixo/chain-write.d.ts.map +1 -0
- package/dist/lib/ixo/chain-write.js +460 -0
- package/dist/lib/ixo/chain-write.js.map +1 -0
- package/dist/lib/ixo/chain.d.ts +1046 -0
- package/dist/lib/ixo/chain.d.ts.map +1 -0
- package/dist/lib/ixo/chain.js +279 -0
- package/dist/lib/ixo/chain.js.map +1 -0
- package/dist/lib/ixo/claim-bot.d.ts +49 -0
- package/dist/lib/ixo/claim-bot.d.ts.map +1 -0
- package/dist/lib/ixo/claim-bot.js +141 -0
- package/dist/lib/ixo/claim-bot.js.map +1 -0
- package/dist/lib/ixo/delegation-verify.d.ts +44 -0
- package/dist/lib/ixo/delegation-verify.d.ts.map +1 -0
- package/dist/lib/ixo/delegation-verify.js +101 -0
- package/dist/lib/ixo/delegation-verify.js.map +1 -0
- package/dist/lib/ixo/did.d.ts +13 -0
- package/dist/lib/ixo/did.d.ts.map +1 -0
- package/dist/lib/ixo/did.js +85 -0
- package/dist/lib/ixo/did.js.map +1 -0
- package/dist/lib/ixo/grant-chain.d.ts +55 -0
- package/dist/lib/ixo/grant-chain.d.ts.map +1 -0
- package/dist/lib/ixo/grant-chain.js +185 -0
- package/dist/lib/ixo/grant-chain.js.map +1 -0
- package/dist/lib/ixo/identity.d.ts +32 -0
- package/dist/lib/ixo/identity.d.ts.map +1 -0
- package/dist/lib/ixo/identity.js +104 -0
- package/dist/lib/ixo/identity.js.map +1 -0
- package/dist/lib/ixo/index.d.ts +118 -0
- package/dist/lib/ixo/index.d.ts.map +1 -0
- package/dist/lib/ixo/index.js +395 -0
- package/dist/lib/ixo/index.js.map +1 -0
- package/dist/lib/ixo/payment.d.ts +104 -0
- package/dist/lib/ixo/payment.d.ts.map +1 -0
- package/dist/lib/ixo/payment.js +136 -0
- package/dist/lib/ixo/payment.js.map +1 -0
- package/dist/lib/ixo/ucan-store.d.ts +30 -0
- package/dist/lib/ixo/ucan-store.d.ts.map +1 -0
- package/dist/lib/ixo/ucan-store.js +134 -0
- package/dist/lib/ixo/ucan-store.js.map +1 -0
- package/dist/lib/ixo/ucan.d.ts +96 -0
- package/dist/lib/ixo/ucan.d.ts.map +1 -0
- package/dist/lib/ixo/ucan.js +216 -0
- package/dist/lib/ixo/ucan.js.map +1 -0
- package/dist/lib/ixo/verified-read.d.ts +43 -0
- package/dist/lib/ixo/verified-read.d.ts.map +1 -0
- package/dist/lib/ixo/verified-read.js +73 -0
- package/dist/lib/ixo/verified-read.js.map +1 -0
- package/dist/lib/ixo/vfs.d.ts +27 -0
- package/dist/lib/ixo/vfs.d.ts.map +1 -0
- package/dist/lib/ixo/vfs.js +42 -0
- package/dist/lib/ixo/vfs.js.map +1 -0
- package/dist/lib/ixo/web-did.d.ts +7 -0
- package/dist/lib/ixo/web-did.d.ts.map +1 -0
- package/dist/lib/ixo/web-did.js +9 -0
- package/dist/lib/ixo/web-did.js.map +1 -0
- package/dist/lib/logger.d.ts +34 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +126 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/matrix/api.d.ts +57 -0
- package/dist/lib/matrix/api.d.ts.map +1 -0
- package/dist/lib/matrix/api.js +58 -0
- package/dist/lib/matrix/api.js.map +1 -0
- package/dist/lib/matrix/client.d.ts +41 -0
- package/dist/lib/matrix/client.d.ts.map +1 -0
- package/dist/lib/matrix/client.js +104 -0
- package/dist/lib/matrix/client.js.map +1 -0
- package/dist/lib/matrix/deliver.d.ts +224 -0
- package/dist/lib/matrix/deliver.d.ts.map +1 -0
- package/dist/lib/matrix/deliver.js +788 -0
- package/dist/lib/matrix/deliver.js.map +1 -0
- package/dist/lib/matrix/events.d.ts +114 -0
- package/dist/lib/matrix/events.d.ts.map +1 -0
- package/dist/lib/matrix/events.js +143 -0
- package/dist/lib/matrix/events.js.map +1 -0
- package/dist/lib/matrix/mxid.d.ts +24 -0
- package/dist/lib/matrix/mxid.d.ts.map +1 -0
- package/dist/lib/matrix/mxid.js +47 -0
- package/dist/lib/matrix/mxid.js.map +1 -0
- package/dist/lib/metrics.d.ts +105 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +204 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/oauth/approvals.d.ts +160 -0
- package/dist/lib/oauth/approvals.d.ts.map +1 -0
- package/dist/lib/oauth/approvals.js +273 -0
- package/dist/lib/oauth/approvals.js.map +1 -0
- package/dist/lib/oauth/standing.d.ts +152 -0
- package/dist/lib/oauth/standing.d.ts.map +1 -0
- package/dist/lib/oauth/standing.js +299 -0
- package/dist/lib/oauth/standing.js.map +1 -0
- package/dist/lib/oauth/token.d.ts +60 -0
- package/dist/lib/oauth/token.d.ts.map +1 -0
- package/dist/lib/oauth/token.js +129 -0
- package/dist/lib/oauth/token.js.map +1 -0
- package/dist/lib/payments/extend.d.ts +42 -0
- package/dist/lib/payments/extend.d.ts.map +1 -0
- package/dist/lib/payments/extend.js +98 -0
- package/dist/lib/payments/extend.js.map +1 -0
- package/dist/lib/payments/facilitator.d.ts +220 -0
- package/dist/lib/payments/facilitator.d.ts.map +1 -0
- package/dist/lib/payments/facilitator.js +451 -0
- package/dist/lib/payments/facilitator.js.map +1 -0
- package/dist/lib/payments/gate.d.ts +207 -0
- package/dist/lib/payments/gate.d.ts.map +1 -0
- package/dist/lib/payments/gate.js +481 -0
- package/dist/lib/payments/gate.js.map +1 -0
- package/dist/lib/payments/header-seal.d.ts +33 -0
- package/dist/lib/payments/header-seal.d.ts.map +1 -0
- package/dist/lib/payments/header-seal.js +76 -0
- package/dist/lib/payments/header-seal.js.map +1 -0
- package/dist/lib/payments/index.d.ts +12 -0
- package/dist/lib/payments/index.d.ts.map +1 -0
- package/dist/lib/payments/index.js +11 -0
- package/dist/lib/payments/index.js.map +1 -0
- package/dist/lib/payments/price.d.ts +25 -0
- package/dist/lib/payments/price.d.ts.map +1 -0
- package/dist/lib/payments/price.js +43 -0
- package/dist/lib/payments/price.js.map +1 -0
- package/dist/lib/payments/reconcile.d.ts +77 -0
- package/dist/lib/payments/reconcile.d.ts.map +1 -0
- package/dist/lib/payments/reconcile.js +317 -0
- package/dist/lib/payments/reconcile.js.map +1 -0
- package/dist/lib/payments/refund.d.ts +34 -0
- package/dist/lib/payments/refund.d.ts.map +1 -0
- package/dist/lib/payments/refund.js +123 -0
- package/dist/lib/payments/refund.js.map +1 -0
- package/dist/lib/payments/review-billing.d.ts +222 -0
- package/dist/lib/payments/review-billing.d.ts.map +1 -0
- package/dist/lib/payments/review-billing.js +609 -0
- package/dist/lib/payments/review-billing.js.map +1 -0
- package/dist/lib/payments/settle.d.ts +44 -0
- package/dist/lib/payments/settle.d.ts.map +1 -0
- package/dist/lib/payments/settle.js +306 -0
- package/dist/lib/payments/settle.js.map +1 -0
- package/dist/lib/payments/terms.d.ts +27 -0
- package/dist/lib/payments/terms.d.ts.map +1 -0
- package/dist/lib/payments/terms.js +21 -0
- package/dist/lib/payments/terms.js.map +1 -0
- package/dist/lib/payouts.d.ts +20 -0
- package/dist/lib/payouts.d.ts.map +1 -0
- package/dist/lib/payouts.js +30 -0
- package/dist/lib/payouts.js.map +1 -0
- package/dist/lib/readiness.d.ts +42 -0
- package/dist/lib/readiness.d.ts.map +1 -0
- package/dist/lib/readiness.js +130 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/redact.d.ts +23 -0
- package/dist/lib/redact.d.ts.map +1 -0
- package/dist/lib/redact.js +67 -0
- package/dist/lib/redact.js.map +1 -0
- package/dist/lib/register.d.ts +85 -0
- package/dist/lib/register.d.ts.map +1 -0
- package/dist/lib/register.js +390 -0
- package/dist/lib/register.js.map +1 -0
- package/dist/lib/review/attestation.d.ts +92 -0
- package/dist/lib/review/attestation.d.ts.map +1 -0
- package/dist/lib/review/attestation.js +264 -0
- package/dist/lib/review/attestation.js.map +1 -0
- package/dist/lib/review/reviewer-grant.d.ts +146 -0
- package/dist/lib/review/reviewer-grant.d.ts.map +1 -0
- package/dist/lib/review/reviewer-grant.js +359 -0
- package/dist/lib/review/reviewer-grant.js.map +1 -0
- package/dist/lib/review/tasks.d.ts +18 -0
- package/dist/lib/review/tasks.d.ts.map +1 -0
- package/dist/lib/review/tasks.js +36 -0
- package/dist/lib/review/tasks.js.map +1 -0
- package/dist/lib/sentry.d.ts +89 -0
- package/dist/lib/sentry.d.ts.map +1 -0
- package/dist/lib/sentry.js +284 -0
- package/dist/lib/sentry.js.map +1 -0
- package/dist/lib/spans.d.ts +14 -0
- package/dist/lib/spans.d.ts.map +1 -0
- package/dist/lib/spans.js +28 -0
- package/dist/lib/spans.js.map +1 -0
- package/dist/lib/tracing.d.ts +31 -0
- package/dist/lib/tracing.d.ts.map +1 -0
- package/dist/lib/tracing.js +66 -0
- package/dist/lib/tracing.js.map +1 -0
- package/dist/lib/ttl-cache.d.ts +26 -0
- package/dist/lib/ttl-cache.d.ts.map +1 -0
- package/dist/lib/ttl-cache.js +61 -0
- package/dist/lib/ttl-cache.js.map +1 -0
- package/dist/lib/validator.d.ts +19 -0
- package/dist/lib/validator.d.ts.map +1 -0
- package/dist/lib/validator.js +32 -0
- package/dist/lib/validator.js.map +1 -0
- package/dist/lib/work-order/form.d.ts +40 -0
- package/dist/lib/work-order/form.d.ts.map +1 -0
- package/dist/lib/work-order/form.js +316 -0
- package/dist/lib/work-order/form.js.map +1 -0
- package/dist/lib/work-order/index.d.ts +20 -0
- package/dist/lib/work-order/index.d.ts.map +1 -0
- package/dist/lib/work-order/index.js +66 -0
- package/dist/lib/work-order/index.js.map +1 -0
- package/dist/middleware/api/audit.d.ts +9 -0
- package/dist/middleware/api/audit.d.ts.map +1 -0
- package/dist/middleware/api/audit.js +38 -0
- package/dist/middleware/api/audit.js.map +1 -0
- package/dist/middleware/api/auth.d.ts +29 -0
- package/dist/middleware/api/auth.d.ts.map +1 -0
- package/dist/middleware/api/auth.js +105 -0
- package/dist/middleware/api/auth.js.map +1 -0
- package/dist/middleware/api/console.d.ts +92 -0
- package/dist/middleware/api/console.d.ts.map +1 -0
- package/dist/middleware/api/console.js +446 -0
- package/dist/middleware/api/console.js.map +1 -0
- package/dist/middleware/api/errors.d.ts +48 -0
- package/dist/middleware/api/errors.d.ts.map +1 -0
- package/dist/middleware/api/errors.js +133 -0
- package/dist/middleware/api/errors.js.map +1 -0
- package/dist/middleware/api/idempotency.d.ts +23 -0
- package/dist/middleware/api/idempotency.d.ts.map +1 -0
- package/dist/middleware/api/idempotency.js +158 -0
- package/dist/middleware/api/idempotency.js.map +1 -0
- package/dist/middleware/api/keys.d.ts +14 -0
- package/dist/middleware/api/keys.d.ts.map +1 -0
- package/dist/middleware/api/keys.js +66 -0
- package/dist/middleware/api/keys.js.map +1 -0
- package/dist/middleware/api/membership.d.ts +32 -0
- package/dist/middleware/api/membership.d.ts.map +1 -0
- package/dist/middleware/api/membership.js +48 -0
- package/dist/middleware/api/membership.js.map +1 -0
- package/dist/middleware/api/oauth.d.ts +28 -0
- package/dist/middleware/api/oauth.d.ts.map +1 -0
- package/dist/middleware/api/oauth.js +109 -0
- package/dist/middleware/api/oauth.js.map +1 -0
- package/dist/middleware/api/rate-limit.d.ts +23 -0
- package/dist/middleware/api/rate-limit.d.ts.map +1 -0
- package/dist/middleware/api/rate-limit.js +70 -0
- package/dist/middleware/api/rate-limit.js.map +1 -0
- package/dist/middleware/api/types.d.ts +92 -0
- package/dist/middleware/api/types.d.ts.map +1 -0
- package/dist/middleware/api/types.js +7 -0
- package/dist/middleware/api/types.js.map +1 -0
- package/dist/middleware/api/wait.d.ts +21 -0
- package/dist/middleware/api/wait.d.ts.map +1 -0
- package/dist/middleware/api/wait.js +85 -0
- package/dist/middleware/api/wait.js.map +1 -0
- package/dist/middleware/capability.d.ts +32 -0
- package/dist/middleware/capability.d.ts.map +1 -0
- package/dist/middleware/capability.js +113 -0
- package/dist/middleware/capability.js.map +1 -0
- package/dist/middleware/database.d.ts +14 -0
- package/dist/middleware/database.d.ts.map +1 -0
- package/dist/middleware/database.js +18 -0
- package/dist/middleware/database.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +13 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +127 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/observability.d.ts +32 -0
- package/dist/middleware/observability.d.ts.map +1 -0
- package/dist/middleware/observability.js +134 -0
- package/dist/middleware/observability.js.map +1 -0
- package/dist/middleware/rate-limit.d.ts +16 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/middleware/rate-limit.js +56 -0
- package/dist/middleware/rate-limit.js.map +1 -0
- package/dist/middleware/ucan-auth.d.ts +39 -0
- package/dist/middleware/ucan-auth.d.ts.map +1 -0
- package/dist/middleware/ucan-auth.js +278 -0
- package/dist/middleware/ucan-auth.js.map +1 -0
- package/dist/networks.d.ts +34 -0
- package/dist/networks.d.ts.map +1 -0
- package/dist/networks.js +49 -0
- package/dist/networks.js.map +1 -0
- package/dist/oracle.d.ts +193 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/oracle.js +245 -0
- package/dist/oracle.js.map +1 -0
- package/dist/routes/health.d.ts +16 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +29 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/v1/admin.d.ts +18 -0
- package/dist/routes/v1/admin.d.ts.map +1 -0
- package/dist/routes/v1/admin.js +101 -0
- package/dist/routes/v1/admin.js.map +1 -0
- package/dist/routes/v1/api/admin-claims.d.ts +14 -0
- package/dist/routes/v1/api/admin-claims.d.ts.map +1 -0
- package/dist/routes/v1/api/admin-claims.js +82 -0
- package/dist/routes/v1/api/admin-claims.js.map +1 -0
- package/dist/routes/v1/api/admin-facilitator.d.ts +20 -0
- package/dist/routes/v1/api/admin-facilitator.d.ts.map +1 -0
- package/dist/routes/v1/api/admin-facilitator.js +64 -0
- package/dist/routes/v1/api/admin-facilitator.js.map +1 -0
- package/dist/routes/v1/api/admin.d.ts +9 -0
- package/dist/routes/v1/api/admin.d.ts.map +1 -0
- package/dist/routes/v1/api/admin.js +110 -0
- package/dist/routes/v1/api/admin.js.map +1 -0
- package/dist/routes/v1/api/audit.d.ts +8 -0
- package/dist/routes/v1/api/audit.d.ts.map +1 -0
- package/dist/routes/v1/api/audit.js +56 -0
- package/dist/routes/v1/api/audit.js.map +1 -0
- package/dist/routes/v1/api/batch.d.ts +17 -0
- package/dist/routes/v1/api/batch.d.ts.map +1 -0
- package/dist/routes/v1/api/batch.js +192 -0
- package/dist/routes/v1/api/batch.js.map +1 -0
- package/dist/routes/v1/api/claims-read.d.ts +43 -0
- package/dist/routes/v1/api/claims-read.d.ts.map +1 -0
- package/dist/routes/v1/api/claims-read.js +123 -0
- package/dist/routes/v1/api/claims-read.js.map +1 -0
- package/dist/routes/v1/api/claims.d.ts +131 -0
- package/dist/routes/v1/api/claims.d.ts.map +1 -0
- package/dist/routes/v1/api/claims.js +407 -0
- package/dist/routes/v1/api/claims.js.map +1 -0
- package/dist/routes/v1/api/collections-link.d.ts +14 -0
- package/dist/routes/v1/api/collections-link.d.ts.map +1 -0
- package/dist/routes/v1/api/collections-link.js +97 -0
- package/dist/routes/v1/api/collections-link.js.map +1 -0
- package/dist/routes/v1/api/export.d.ts +48 -0
- package/dist/routes/v1/api/export.d.ts.map +1 -0
- package/dist/routes/v1/api/export.js +251 -0
- package/dist/routes/v1/api/export.js.map +1 -0
- package/dist/routes/v1/api/index.d.ts +16 -0
- package/dist/routes/v1/api/index.d.ts.map +1 -0
- package/dist/routes/v1/api/index.js +68 -0
- package/dist/routes/v1/api/index.js.map +1 -0
- package/dist/routes/v1/api/keys.d.ts +9 -0
- package/dist/routes/v1/api/keys.d.ts.map +1 -0
- package/dist/routes/v1/api/keys.js +95 -0
- package/dist/routes/v1/api/keys.js.map +1 -0
- package/dist/routes/v1/api/me.d.ts +21 -0
- package/dist/routes/v1/api/me.d.ts.map +1 -0
- package/dist/routes/v1/api/me.js +122 -0
- package/dist/routes/v1/api/me.js.map +1 -0
- package/dist/routes/v1/api/members.d.ts +17 -0
- package/dist/routes/v1/api/members.d.ts.map +1 -0
- package/dist/routes/v1/api/members.js +406 -0
- package/dist/routes/v1/api/members.js.map +1 -0
- package/dist/routes/v1/api/meta.d.ts +12 -0
- package/dist/routes/v1/api/meta.d.ts.map +1 -0
- package/dist/routes/v1/api/meta.js +59 -0
- package/dist/routes/v1/api/meta.js.map +1 -0
- package/dist/routes/v1/api/openapi.gen.d.ts +2 -0
- package/dist/routes/v1/api/openapi.gen.d.ts.map +1 -0
- package/dist/routes/v1/api/openapi.gen.js +7 -0
- package/dist/routes/v1/api/openapi.gen.js.map +1 -0
- package/dist/routes/v1/api/protocols.d.ts +22 -0
- package/dist/routes/v1/api/protocols.d.ts.map +1 -0
- package/dist/routes/v1/api/protocols.js +153 -0
- package/dist/routes/v1/api/protocols.js.map +1 -0
- package/dist/routes/v1/api/review-billing.d.ts +18 -0
- package/dist/routes/v1/api/review-billing.d.ts.map +1 -0
- package/dist/routes/v1/api/review-billing.js +196 -0
- package/dist/routes/v1/api/review-billing.js.map +1 -0
- package/dist/routes/v1/api/review.d.ts +30 -0
- package/dist/routes/v1/api/review.d.ts.map +1 -0
- package/dist/routes/v1/api/review.js +302 -0
- package/dist/routes/v1/api/review.js.map +1 -0
- package/dist/routes/v1/api/sources.d.ts +10 -0
- package/dist/routes/v1/api/sources.d.ts.map +1 -0
- package/dist/routes/v1/api/sources.js +293 -0
- package/dist/routes/v1/api/sources.js.map +1 -0
- package/dist/routes/v1/api/uploads.d.ts +37 -0
- package/dist/routes/v1/api/uploads.d.ts.map +1 -0
- package/dist/routes/v1/api/uploads.js +414 -0
- package/dist/routes/v1/api/uploads.js.map +1 -0
- package/dist/routes/v1/api/views.d.ts +18 -0
- package/dist/routes/v1/api/views.d.ts.map +1 -0
- package/dist/routes/v1/api/views.js +95 -0
- package/dist/routes/v1/api/views.js.map +1 -0
- package/dist/routes/v1/api/webhooks.d.ts +14 -0
- package/dist/routes/v1/api/webhooks.d.ts.map +1 -0
- package/dist/routes/v1/api/webhooks.js +282 -0
- package/dist/routes/v1/api/webhooks.js.map +1 -0
- package/dist/routes/v1/api/work-orders.d.ts +45 -0
- package/dist/routes/v1/api/work-orders.d.ts.map +1 -0
- package/dist/routes/v1/api/work-orders.js +171 -0
- package/dist/routes/v1/api/work-orders.js.map +1 -0
- package/dist/routes/v1/claims.d.ts +21 -0
- package/dist/routes/v1/claims.d.ts.map +1 -0
- package/dist/routes/v1/claims.js +153 -0
- package/dist/routes/v1/claims.js.map +1 -0
- package/dist/routes/v1/collections.d.ts +45 -0
- package/dist/routes/v1/collections.d.ts.map +1 -0
- package/dist/routes/v1/collections.js +201 -0
- package/dist/routes/v1/collections.js.map +1 -0
- package/dist/routes/v1/index.d.ts +13 -0
- package/dist/routes/v1/index.d.ts.map +1 -0
- package/dist/routes/v1/index.js +41 -0
- package/dist/routes/v1/index.js.map +1 -0
- package/dist/routes/v1/info.d.ts +14 -0
- package/dist/routes/v1/info.d.ts.map +1 -0
- package/dist/routes/v1/info.js +75 -0
- package/dist/routes/v1/info.js.map +1 -0
- package/dist/routes/v1/mcp/index.d.ts +33 -0
- package/dist/routes/v1/mcp/index.d.ts.map +1 -0
- package/dist/routes/v1/mcp/index.js +252 -0
- package/dist/routes/v1/mcp/index.js.map +1 -0
- package/dist/routes/v1/mcp/oauth.d.ts +27 -0
- package/dist/routes/v1/mcp/oauth.d.ts.map +1 -0
- package/dist/routes/v1/mcp/oauth.js +500 -0
- package/dist/routes/v1/mcp/oauth.js.map +1 -0
- package/dist/routes/v1/mcp/tools.d.ts +71 -0
- package/dist/routes/v1/mcp/tools.d.ts.map +1 -0
- package/dist/routes/v1/mcp/tools.js +432 -0
- package/dist/routes/v1/mcp/tools.js.map +1 -0
- package/dist/routes/v1/mcp/ui.d.ts +45 -0
- package/dist/routes/v1/mcp/ui.d.ts.map +1 -0
- package/dist/routes/v1/mcp/ui.js +454 -0
- package/dist/routes/v1/mcp/ui.js.map +1 -0
- package/dist/routes/v1/oauth.d.ts +29 -0
- package/dist/routes/v1/oauth.d.ts.map +1 -0
- package/dist/routes/v1/oauth.js +256 -0
- package/dist/routes/v1/oauth.js.map +1 -0
- package/dist/routes/v1/reviewers.d.ts +22 -0
- package/dist/routes/v1/reviewers.d.ts.map +1 -0
- package/dist/routes/v1/reviewers.js +165 -0
- package/dist/routes/v1/reviewers.js.map +1 -0
- package/dist/routes/v1/reviews.d.ts +38 -0
- package/dist/routes/v1/reviews.d.ts.map +1 -0
- package/dist/routes/v1/reviews.js +234 -0
- package/dist/routes/v1/reviews.js.map +1 -0
- package/dist/routes/v1/shared.d.ts +586 -0
- package/dist/routes/v1/shared.d.ts.map +1 -0
- package/dist/routes/v1/shared.js +229 -0
- package/dist/routes/v1/shared.js.map +1 -0
- package/dist/routes/well-known.d.ts +15 -0
- package/dist/routes/well-known.d.ts.map +1 -0
- package/dist/routes/well-known.js +35 -0
- package/dist/routes/well-known.js.map +1 -0
- package/dist/runtime.d.ts +100 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +144 -0
- package/dist/runtime.js.map +1 -0
- package/dist/testing/fake-tools.d.ts +104 -0
- package/dist/testing/fake-tools.d.ts.map +1 -0
- package/dist/testing/fake-tools.js +213 -0
- package/dist/testing/fake-tools.js.map +1 -0
- package/dist/testing/index.d.ts +54 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +104 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/samples.d.ts +70 -0
- package/dist/testing/samples.d.ts.map +1 -0
- package/dist/testing/samples.js +92 -0
- package/dist/testing/samples.js.map +1 -0
- package/dist/workflows/claim-ingest.d.ts +250 -0
- package/dist/workflows/claim-ingest.d.ts.map +1 -0
- package/dist/workflows/claim-ingest.js +1020 -0
- package/dist/workflows/claim-ingest.js.map +1 -0
- package/dist/workflows/claim-source.d.ts +25 -0
- package/dist/workflows/claim-source.d.ts.map +1 -0
- package/dist/workflows/claim-source.js +107 -0
- package/dist/workflows/claim-source.js.map +1 -0
- package/dist/workflows/review-complete.d.ts +82 -0
- package/dist/workflows/review-complete.d.ts.map +1 -0
- package/dist/workflows/review-complete.js +455 -0
- package/dist/workflows/review-complete.js.map +1 -0
- package/dist/workflows/steps.d.ts +125 -0
- package/dist/workflows/steps.d.ts.map +1 -0
- package/dist/workflows/steps.js +325 -0
- package/dist/workflows/steps.js.map +1 -0
- package/docs/api.md +2595 -0
- package/docs/guide.md +1525 -0
- package/migrations/0000_init.sql +108 -0
- package/migrations/0001_review_attestation.sql +1 -0
- package/migrations/0002_decisions_facts.sql +1 -0
- package/migrations/0003_api_lane.sql +171 -0
- package/migrations/0004_api_v1_1.sql +19 -0
- package/migrations/0005_member_notify.sql +3 -0
- package/migrations/0006_source_collections.sql +16 -0
- package/migrations/0007_api_settlement.sql +27 -0
- package/migrations/0008_review_extend.sql +1 -0
- package/migrations/0009_card_refunds.sql +4 -0
- package/migrations/0010_even_scorpion.sql +16 -0
- package/migrations/0011_mcp_oauth.sql +27 -0
- package/migrations/0012_mcp_standing.sql +21 -0
- package/migrations/0013_unknown_krista_starr.sql +2 -0
- package/migrations/0014_last_carnage.sql +14 -0
- package/migrations/0015_company_authority.sql +26 -0
- package/migrations/0016_owner_only_links.sql +6 -0
- package/migrations/0017_organisations.sql +35 -0
- package/migrations/0018_remove_app_signed.sql +4 -0
- package/migrations/0019_submitted_via.sql +2 -0
- package/migrations/0020_drop_decision_to_pay.sql +4 -0
- package/migrations/0021_manual_erase.sql +25 -0
- package/migrations/0022_errored_facts.sql +1 -0
- package/migrations/0023_review_billing.sql +20 -0
- package/migrations/0024_pending_task_details.sql +1 -0
- package/migrations/meta/0000_snapshot.json +707 -0
- package/migrations/meta/0001_snapshot.json +714 -0
- package/migrations/meta/0002_snapshot.json +721 -0
- package/migrations/meta/0003_snapshot.json +1845 -0
- package/migrations/meta/0004_snapshot.json +1969 -0
- package/migrations/meta/0005_snapshot.json +1991 -0
- package/migrations/meta/0006_snapshot.json +2097 -0
- package/migrations/meta/0007_snapshot.json +2128 -0
- package/migrations/meta/0008_snapshot.json +2133 -0
- package/migrations/meta/0009_snapshot.json +2161 -0
- package/migrations/meta/0010_snapshot.json +2265 -0
- package/migrations/meta/0011_snapshot.json +2448 -0
- package/migrations/meta/0012_snapshot.json +2577 -0
- package/migrations/meta/0013_snapshot.json +2594 -0
- package/migrations/meta/0014_snapshot.json +2602 -0
- package/migrations/meta/0015_snapshot.json +2778 -0
- package/migrations/meta/0016_snapshot.json +2778 -0
- package/migrations/meta/0017_snapshot.json +2792 -0
- package/migrations/meta/0018_snapshot.json +2778 -0
- package/migrations/meta/0019_snapshot.json +2792 -0
- package/migrations/meta/0020_snapshot.json +2785 -0
- package/migrations/meta/0021_snapshot.json +2762 -0
- package/migrations/meta/0022_snapshot.json +2769 -0
- package/migrations/meta/0023_snapshot.json +2900 -0
- package/migrations/meta/0024_snapshot.json +2907 -0
- package/migrations/meta/_journal.json +181 -0
- package/openapi/decision-api.yaml +12204 -0
- package/package.json +121 -4
- package/skills/README.md +19 -0
- package/skills/add-openhands-support/SKILL.md +113 -0
- package/skills/create-collection/SKILL.md +199 -0
- package/skills/create-collection/reference/claims-stack.md +106 -0
- package/skills/create-collection/reference/collection.md +111 -0
- package/skills/create-oracle/SKILL.md +400 -0
- package/skills/create-rubric/SKILL.md +130 -0
- package/skills/create-rubric/reference/format-cheatsheet.md +186 -0
- package/skills/create-rubric/templates/claim-form.example.json +60 -0
- package/skills/decision-api-client/SKILL.md +236 -0
- package/skills/decision-api-oracle/SKILL.md +336 -0
- package/skills/publish-protocol/SKILL.md +151 -0
- package/skills/publish-protocol/reference/publishing.md +116 -0
- package/skills/reference/engine-contract.md +222 -0
- package/skills/write-facts/SKILL.md +221 -0
- package/skills/write-facts/reference/examples/http-vendor.ts +88 -0
- package/skills/write-facts/reference/examples/price-matches-agreement.ts +67 -0
- package/skills/write-facts/reference/facts-api.md +232 -0
- package/templates/project/.dev.vars.example +93 -0
- package/templates/project/.editorconfig +9 -0
- package/templates/project/CLAUDE.md +45 -0
- package/templates/project/README.md +199 -0
- package/templates/project/biome.json +37 -0
- package/templates/project/gitignore +29 -0
- package/templates/project/package.json +32 -0
- package/templates/project/src/facts/index.ts +19 -0
- package/templates/project/src/index.ts +25 -0
- package/templates/project/test/api-lane.test.ts +57 -0
- package/templates/project/test/facts.test.ts +14 -0
- package/templates/project/tsconfig.json +25 -0
- package/templates/project/vitest.config.ts +13 -0
- package/templates/project/wrangler.jsonc +446 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Rubric format cheatsheet
|
|
2
|
+
|
|
3
|
+
Condensed from the engine's own spec, and never the authority: **the engine's `GET /v1/rubric-schema`
|
|
4
|
+
is what parses, and `bunx decision-oracle rubric validate` binds a draft against the real form.** Where
|
|
5
|
+
this page and the engine disagree, the engine wins — validate, don't argue. Older prose about the
|
|
6
|
+
format still shows `constants` / `@const` refs; those do not exist (inline literals, or use
|
|
7
|
+
`derived`).
|
|
8
|
+
|
|
9
|
+
## Envelope + top level
|
|
10
|
+
|
|
11
|
+
```jsonc
|
|
12
|
+
{
|
|
13
|
+
"@context": { "ixo": "https://w3id.org/ixo/ns/protocol/", "@id": "@type", "type": "@type", "@protected": true },
|
|
14
|
+
"type": "ixo:entity#rubric",
|
|
15
|
+
"rubric": {
|
|
16
|
+
"@type": "Rubric",
|
|
17
|
+
"title": "…", "description": "…", // display-only
|
|
18
|
+
"claimSchema": { "@type": "ClaimSchemaBinding", "protocol": "did:ixo:entity:…", "resource": "#vct",
|
|
19
|
+
"proof": "<the protocol's #vct LinkedResource proof, VERBATIM — a CID, compared as a string>" },
|
|
20
|
+
"derived": [ … ], "gates": [ … ], "scoring": { … }, "review": { … }, "settlement": { … },
|
|
21
|
+
"sources": [ … ], "aiChecks": [ … ], "unique": { … }, "frequency": { … }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Required: envelope keys, `@type`, `claimSchema`, and at least one of `gates` / `scoring`. Everything else optional.
|
|
27
|
+
**Unknown keys anywhere = schema error.** The rubric's id is `sha256(raw file bytes)`.
|
|
28
|
+
|
|
29
|
+
## Field refs and kinds
|
|
30
|
+
|
|
31
|
+
`$name` a top-level answer · `$ixo:name` namespaced · `$q.row.col` matrixdropdown cell · `$rows[*].col` a column over
|
|
32
|
+
repeating rows · `$q.key` multipletext · `.col` row-relative (inside `forEach` only) · `~name` derived · `ctx.now`,
|
|
33
|
+
`ctx.collection.startDate|endDate`, `ctx.claim.submitter|submissionDate` · `ext.<source>.<field>` · `ai.<check>.valid|reason`.
|
|
34
|
+
|
|
35
|
+
| SurveyJS question | kind | notes |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| `text` (default/email/url/tel), `comment` | text | |
|
|
38
|
+
| `text` `inputType:"number"`, `rating`, `slider` | number | |
|
|
39
|
+
| `text` `inputType:"date"` / `"datetime-local"` | date | ISO string |
|
|
40
|
+
| `dropdown`, `radiogroup`, `imagepicker` | choice | rules compare against choice `value`, not `text` |
|
|
41
|
+
| `checkbox`, `tagbox`, `ranking` | multichoice | string[] |
|
|
42
|
+
| `boolean` | boolean | |
|
|
43
|
+
| `file` | file | `[{name,type,content}]` — content is human-only |
|
|
44
|
+
| `signaturepad` | signature | human-only |
|
|
45
|
+
| `matrix` / `matrixdropdown` / `matrixdynamic`, `paneldynamic` / `multipletext` | keyed choice / cells / rows / keyed text | |
|
|
46
|
+
| `html`, `expression` | — | not submitter input; cannot be referenced |
|
|
47
|
+
|
|
48
|
+
A string literal that starts with `$ @ ~` or `ctx.` must be written `{"@value": "…"}`.
|
|
49
|
+
|
|
50
|
+
## Operators by kind
|
|
51
|
+
|
|
52
|
+
| kinds | operators |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| all | `present`, `empty` |
|
|
55
|
+
| text, number, date, choice, boolean | `==`, `!=` |
|
|
56
|
+
| number, date | `>` `>=` `<` `<=`, `between` `[min,max]` |
|
|
57
|
+
| number | `approx` (+ `tolerance`) |
|
|
58
|
+
| text, number, choice | `in`, `notIn` (array) |
|
|
59
|
+
| text | `matches` (safe regex), `startsWith`, `endsWith` (literal only), `lengthBetween` |
|
|
60
|
+
| multichoice | `contains`, `containsAll`, `containsAny`, `subsetOf`, `countBetween` |
|
|
61
|
+
| multichoice, rows | `countBetween` |
|
|
62
|
+
| boolean | `isTrue`, `isFalse` |
|
|
63
|
+
| date | `before`, `after` (literal, `$field`, `ctx.*`), `withinWindow` (collection period), `withinDays` (n vs `ctx.now`), `notInFuture` |
|
|
64
|
+
| file, signature | `mediaTypeIn` (MIME globs), `maxSizeMB` |
|
|
65
|
+
| geo | `withinBoundary`, `withinRadius` |
|
|
66
|
+
|
|
67
|
+
Any `value` may be a `$field` of a compatible kind (cross-field checks), except `startsWith`/`endsWith`.
|
|
68
|
+
|
|
69
|
+
## Conditions (the one composable node)
|
|
70
|
+
|
|
71
|
+
```jsonc
|
|
72
|
+
{ "@type": "Condition", "field": "$clinicId", "op": "in", "value": ["CL-A", "CL-B"] }
|
|
73
|
+
{ "@type": "Condition", "all": [ … ] } { "@type": "Condition", "any": [ … ] }
|
|
74
|
+
{ "@type": "Condition", "not": { … } } { "@type": "Condition", "atLeast": 2, "of": [ … ] }
|
|
75
|
+
{ "@type": "Condition", "forEach": "$readings", "every": { "@type": "Condition", "field": ".celsius", "op": "between", "value": [2, 8] } }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Null rule:** a missing answer makes `present` false, `empty` true, and every other operator **false** — never an
|
|
79
|
+
error. "Optional, but valid if given" = `appliesWhen: {field, op: "present"}` on the gate/criterion.
|
|
80
|
+
|
|
81
|
+
## Gates — must-pass, in document order, first failure terminates
|
|
82
|
+
|
|
83
|
+
```jsonc
|
|
84
|
+
{ "@type": "Gate", "code": "MED-201-CLINIC", "reason": "Not one of our clinics",
|
|
85
|
+
"appliesWhen": { … optional … },
|
|
86
|
+
"when": { "@type": "Condition", "field": "$clinicId", "op": "in", "value": ["CL-A", "CL-B", "CL-C"] },
|
|
87
|
+
"onFail": "reject", // "reject" (default) | "review"
|
|
88
|
+
"class": "out_of_authority" } // reject: refuted | invalid_evidence | out_of_authority · review: insufficient_evidence | requires_human_review
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Codes: `^[A-Z0-9]+-[0-9]+-[A-Z0-9-]+$`, unique per rubric. `reason` is what the claimant reads — write it like a human.
|
|
92
|
+
|
|
93
|
+
## Scoring
|
|
94
|
+
|
|
95
|
+
```jsonc
|
|
96
|
+
"scoring": { "@type": "Scoring", "method": "weighted_average", // | all_pass | minimum | quorum (+ "quorum": {need, of})
|
|
97
|
+
"approveAt": 7000, "partialFloor": 4000, "reviewFloor": 4000, // bps; approveAt > partialFloor ≥ reviewFloor
|
|
98
|
+
"criteria": [
|
|
99
|
+
{ "@type": "Criterion", "code": "MED-301-QTY", "reason": "Units delivered vs target",
|
|
100
|
+
"weight": 3, // 1..5, read ONLY under weighted_average
|
|
101
|
+
"critical": true, "min": 2500, // optional: below min ⇒ reject on its own
|
|
102
|
+
"appliesWhen": { … }, "requireSource": "server_verified", "trustCap": 8000, // all optional
|
|
103
|
+
"score": { … exactly one node … } } ] }
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The 7 score nodes (all points in bps 0–10000):
|
|
107
|
+
|
|
108
|
+
```jsonc
|
|
109
|
+
{ "@type": "BooleanScore", "when": { … }, "onTrue": 10000, "onFalse": 0 }
|
|
110
|
+
{ "@type": "BandsScore", "value": "$score", "bands": [ { "op": ">=", "value": 90, "points": 10000 }, { "else": true, "points": 0 } ] }
|
|
111
|
+
{ "@type": "LinearScore", "value": "$quantity", "zeroAt": 0, "fullAt": 200, "clamp": true } // anchors may be numbers or ~derived
|
|
112
|
+
{ "@type": "LevelsScore", "levels": [ { "name": "ok", "when": { … }, "points": 10000 }, { "name": "bad", "else": true, "points": 0 } ] }
|
|
113
|
+
{ "@type": "MapScore", "value": "$rating", "map": { "low": 10000, "high": 0 }, "default": 0 }
|
|
114
|
+
{ "@type": "DeductionsScore", "start": 10000, "floor": 0, "deduct": [ { "when": { … }, "points": 2000, "code": "MED-311-LATE" } ] }
|
|
115
|
+
{ "@type": "ManualScore", "field": "$deliveryPhoto", "whenMissing": 0, "reviewTask": "MED-RT-PHOTO" }
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
`ManualScore`: a human scores it, but ONLY when the field is present; missing ⇒ `whenMissing`, nobody is asked. **File
|
|
119
|
+
content is never machine-judged** — anything about what a photo/document shows is `ManualScore` + a `ReviewTask`.
|
|
120
|
+
|
|
121
|
+
Decision order: gates → any critical criterion below `min` ⇒ reject → total vs thresholds → pending manual
|
|
122
|
+
tasks downgrade approve/partial to review → verdict → action.
|
|
123
|
+
|
|
124
|
+
## Human review
|
|
125
|
+
|
|
126
|
+
```jsonc
|
|
127
|
+
"review": { "@type": "HumanReview",
|
|
128
|
+
"assignTo": { "role": "reviewer" }, // add "assigneeDid": "did:…" to name ONE person
|
|
129
|
+
"route": { "matrixRoom": "!room:server" }, // optional: a REAL Matrix room id/alias
|
|
130
|
+
"slaHours": 48, "onTimeout": "reject", // fail closed
|
|
131
|
+
"tasks": [ { "@type": "ReviewTask", "id": "MED-RT-PHOTO", "forCriterion": "MED-401-PHOTO",
|
|
132
|
+
"prompt": "Does the photo clearly show the supplies at the clinic?",
|
|
133
|
+
"show": ["$deliveryPhoto", "$clinicId", "$deliveryDate"],
|
|
134
|
+
"answer": { "type": "boolean" }, // | { "type": "enum", "options": [ … ] } — nothing else
|
|
135
|
+
"map": { "true": "approve", "false": "reject" } } ] } // EVERY possible answer mapped
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Derived values
|
|
139
|
+
|
|
140
|
+
```jsonc
|
|
141
|
+
{ "@type": "Derived", "name": "deliveredPct", "expr": "clamp($quantity / 200, 0, 1)" }
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Grammar: `+ - * /`, numbers, `$refs`, `~earlier`, `ctx.*`, calls from `min max clamp abs floor ceil round sum avg count
|
|
145
|
+
countWhere daysBetween hoursBetween yearsBetween distanceMeters length`. `countWhere($rows[*].col, "==", "SKU_1")` is the
|
|
146
|
+
only place a string/boolean literal is legal. Division by zero ⇒ null.
|
|
147
|
+
|
|
148
|
+
## Settlement
|
|
149
|
+
|
|
150
|
+
```jsonc
|
|
151
|
+
"settlement": { "@type": "Settlement", "onApprove": { "pay": "approval" },
|
|
152
|
+
"onPartial": { "pay": "approval", "prorateBy": "~deliveredPct" } } // | "total" | "none"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Proration exists on **partial** only; a full approve pays in full. Whether anything moves on chain is the
|
|
156
|
+
collection's setting, never the rubric's.
|
|
157
|
+
|
|
158
|
+
## External sources and AI checks (facts the ORACLE produces; the manifest tells it to)
|
|
159
|
+
|
|
160
|
+
```jsonc
|
|
161
|
+
"sources": [ { "@type": "ExternalSource", "name": "batchCheck", "endpoint": "https://verify.example/batch",
|
|
162
|
+
"audience": "did:web:verify.example", // MUST be did:web:<endpoint host>
|
|
163
|
+
"send": { "batch": "$batchNumber" }, "expect": "boolean", // | "score"
|
|
164
|
+
"provenance": "attested", "onError": "review", "timeoutMs": 5000 } ] // referenced as ext.batchCheck.valid
|
|
165
|
+
"aiChecks": [ { "@type": "AiCheck", "name": "photoLooksReal", "send": { "photo": "$deliveryPhoto" },
|
|
166
|
+
"instructions": ["Shows medical supplies inside a clinic", "Is not a stock image"],
|
|
167
|
+
"expect": "boolean", "onError": "review" } ] // referenced as ai.photoLooksReal.valid
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
No secrets in a rubric (it is public). `send` carries declared refs only, never the whole claim.
|
|
171
|
+
`audience` must be the endpoint's own did:web (`did:web:<host>`, a port as `%3A<port>`) or no
|
|
172
|
+
oracle's stock lane calls the source. Leave `capability` out: the schema accepts it, but an oracle
|
|
173
|
+
ignores it — what an oracle's key grants is its developer's choice, never the protocol's.
|
|
174
|
+
|
|
175
|
+
## Duplicate and rate rules (declared here, detected by the oracle)
|
|
176
|
+
|
|
177
|
+
```jsonc
|
|
178
|
+
"unique": { "@type": "Unique", "id": "MED-DUP-1", "by": ["$clinicId", { "ref": "$deliveryDate", "granularity": "day" }],
|
|
179
|
+
"countPrior": ["approved", "pending_review", "queued"], "attachments": true,
|
|
180
|
+
"ai": { "enabled": true, "maxPairs": 3 }, "thresholds": { "rejectAtBps": 9000, "reviewAtBps": 5000 } }
|
|
181
|
+
"frequency": { "@type": "Frequency", "id": "MED-FREQ-1", "max": 5, "per": "day", "onBreach": "reject" } // per: day|week|month|year; onBreach defaults to reject, and a breach is a FINAL REJECT whichever it says (schema.ts Frequency.onBreach)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`id` is any non-empty string (a code-style id is a convention, not the gate/criterion pattern). `by` absent ⇒ the
|
|
185
|
+
whole canonical claim body is the identity. Every `unique` field but `id` has a default; a
|
|
186
|
+
`frequency` needs `max` + `per`. Both surface to the oracle through the manifest with defaults applied.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": {
|
|
3
|
+
"ixo": "https://w3id.org/ixo/ns/protocol/",
|
|
4
|
+
"@id": "@type",
|
|
5
|
+
"type": "@type",
|
|
6
|
+
"@protected": true
|
|
7
|
+
},
|
|
8
|
+
"type": "ixo:entity#surveyTemplate",
|
|
9
|
+
"question": {
|
|
10
|
+
"pages": [
|
|
11
|
+
{
|
|
12
|
+
"name": "delivery",
|
|
13
|
+
"elements": [
|
|
14
|
+
{
|
|
15
|
+
"type": "dropdown",
|
|
16
|
+
"name": "clinicId",
|
|
17
|
+
"title": "Clinic",
|
|
18
|
+
"isRequired": true,
|
|
19
|
+
"choices": [
|
|
20
|
+
{ "value": "CL-A", "text": "Clinic A" },
|
|
21
|
+
{ "value": "CL-B", "text": "Clinic B" },
|
|
22
|
+
{ "value": "CL-C", "text": "Clinic C" }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "text",
|
|
27
|
+
"inputType": "datetime-local",
|
|
28
|
+
"name": "deliveryDate",
|
|
29
|
+
"title": "Delivery date",
|
|
30
|
+
"isRequired": true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "text",
|
|
34
|
+
"inputType": "number",
|
|
35
|
+
"name": "quantity",
|
|
36
|
+
"title": "Units delivered",
|
|
37
|
+
"isRequired": true
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "file",
|
|
41
|
+
"name": "deliveryPhoto",
|
|
42
|
+
"title": "Delivery photo",
|
|
43
|
+
"acceptedTypes": "image/*"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "file",
|
|
47
|
+
"name": "deliveryNote",
|
|
48
|
+
"title": "Signed delivery note",
|
|
49
|
+
"acceptedTypes": "application/pdf,image/*"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "comment",
|
|
53
|
+
"name": "notes",
|
|
54
|
+
"title": "Notes"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decision-api-client
|
|
3
|
+
description: Use when testing a Decision API oracle from the CUSTOMER side — minting a test source, API key and payment delegation on devnet, running the TypeScript SDK (@ixo/decision-oracle-client) or its CLI against a live oracle, connecting Claude Code to an oracle's hosted MCP server (/v1/mcp), running the docs agent test — or when debugging a client-side failure (402 not paid, SCOPE, DELEGATION_EXPIRED, terms_mismatch, a receipt that will not verify).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# The Decision API from the customer side, on devnet
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
A Decision API oracle (`API_LANE` on; set one up with `decision-api-oracle`) is used by customers
|
|
11
|
+
through three doors, all over the same `/v1/api` routes with an API key:
|
|
12
|
+
|
|
13
|
+
- the SDK and CLI, `@ixo/decision-oracle-client` (`packages/client` in this repo);
|
|
14
|
+
- the hosted MCP server at `https://<oracle>/v1/mcp` (four tools, the same key, or a sign-in
|
|
15
|
+
through AuthHub with an approval per submit);
|
|
16
|
+
- plain HTTP, with the docs (`site`, and its `llms-full.txt` for agents).
|
|
17
|
+
|
|
18
|
+
A source in billing mode `x402` answers a submit with `402`. The payer pays it with the
|
|
19
|
+
customer's **payment delegation**, a UCAN to the facilitator carrying a `billing/pay` cap. The
|
|
20
|
+
price is held when the claim is accepted and paid only on the engine's receipt.
|
|
21
|
+
|
|
22
|
+
The worked target is IXO's devnet example: SwiftDrop, at `https://shipment-delivery-oracle.devnet.ixo.earth`,
|
|
23
|
+
protocol `did:ixo:entity:c2f5a188d28f3d4bf6351873d3d268ea`, price 20¢. Its `/demo/orders?route=<id>`
|
|
24
|
+
issues a fresh courier route per id, with real order ids and delivery codes. Use a new route per
|
|
25
|
+
test claim, so the duplicate lane never sees a repeat.
|
|
26
|
+
|
|
27
|
+
**Core principle: run it, don't recite it.** Every step below is an action you perform. A test
|
|
28
|
+
claim spends real devnet PAY from the session's deed, so say how many claims you will send before
|
|
29
|
+
sending them.
|
|
30
|
+
|
|
31
|
+
## When to use
|
|
32
|
+
|
|
33
|
+
- "Test the SDK / CLI / MCP against devnet", "does the paid flow still work", "mint a test key".
|
|
34
|
+
- Before a client release, or after a facilitator or engine change the payer depends on.
|
|
35
|
+
- Any symptom in the table at the end.
|
|
36
|
+
|
|
37
|
+
Not for: standing up or deploying the oracle (`decision-api-oracle`), or the chain lane
|
|
38
|
+
(`create-collection`).
|
|
39
|
+
|
|
40
|
+
## The run: in order
|
|
41
|
+
|
|
42
|
+
### 0. The session
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
bunx decision-oracle login --network devnet # once; a browser step for the human (HUMAN)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The session's DID must be in the oracle's `ORACLE_ADMIN_DIDS` to set a source's billing mode and
|
|
49
|
+
protocols. For IXO's example it already is. Its deed needs devnet PAY; top up in the console
|
|
50
|
+
(`decision-console.devnet.ixo.earth`, Credits).
|
|
51
|
+
|
|
52
|
+
### 1. Credentials: a source, two keys and a delegation
|
|
53
|
+
|
|
54
|
+
**In this repo** (one command; secrets are written to the file with mode 600 and never printed):
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
cd packages/client
|
|
58
|
+
bun run devnet:credentials -- --oracle https://shipment-delivery-oracle.devnet.ixo.earth \
|
|
59
|
+
--protocol did:ixo:entity:c2f5a188d28f3d4bf6351873d3d268ea --out ~/.ixo/decision-api-devnet.env
|
|
60
|
+
# --source src_… reuse an existing source; --max-pay 2 (PAY); --days 7
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
It writes `IXO_ORACLE_URL`, `IXO_PROTOCOL_DID`, `IXO_SOURCE_ID`, `IXO_API_KEY` (claims:write,
|
|
64
|
+
claims:read, webhooks:manage), `IXO_API_KEY_READONLY` (claims:read) and `IXO_PAYMENT_DELEGATION`.
|
|
65
|
+
|
|
66
|
+
**Anywhere else:**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
eo() { bunx decision-oracle "$@" --kit https://<oracle> --network devnet --json; }
|
|
70
|
+
eo api source create --name <n> --contact <email> # sourceId + webhookSecret, shown once
|
|
71
|
+
eo api admin billing-mode <sourceId> x402 --yes # operator only
|
|
72
|
+
eo api admin protocols <sourceId> <protocolDid> --yes # operator only
|
|
73
|
+
eo api key create --source <sourceId> --scopes claims:write,claims:read --name test
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
For the delegation, use the console's Keys page ("Payment delegation"), which shows
|
|
77
|
+
`IXO_PAYMENT_DELEGATION` once.
|
|
78
|
+
|
|
79
|
+
Revoke keys you no longer need: `eo api key revoke --source <id> <8-char prefix> --yes`.
|
|
80
|
+
|
|
81
|
+
### 2. The SDK smoke (this repo)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
cd packages/client && bun run build && node dev/devnet-smoke.ts # --env <file> --photo <jpg>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
It runs under plain node, through the BUILT dist. That is what a customer installs. It checks:
|
|
88
|
+
|
|
89
|
+
- the work order and its price;
|
|
90
|
+
- an upload;
|
|
91
|
+
- a paid submit: a 402, then `PAYMENT-SIGNATURE`, then one resend, with `PAYMENT-RESPONSE` naming the settlement;
|
|
92
|
+
- a decision, and a payment on the record;
|
|
93
|
+
- `verifyReceipt` against the engine's did.json;
|
|
94
|
+
- events;
|
|
95
|
+
- a replay with the same key naming the same claim;
|
|
96
|
+
- `SCOPE` for the read-only key;
|
|
97
|
+
- the CLI reading the claim.
|
|
98
|
+
|
|
99
|
+
It spends one claim. Every line must read `PASS`. Any verdict counts (`reject` is normal for a
|
|
100
|
+
parcel photo that doesn't match).
|
|
101
|
+
|
|
102
|
+
### 3. The CLI by hand
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
set -a; . ~/.ixo/decision-api-devnet.env; set +a
|
|
106
|
+
node packages/client/dist/cli/index.js submit claim.json # waits up to 60 s; pays the 402
|
|
107
|
+
node packages/client/dist/cli/index.js watch apc_… # the timeline to the decision
|
|
108
|
+
node packages/client/dist/cli/index.js keys # the source's keys, masked
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Outside this repo: `npx @ixo/decision-oracle-client …` (once published).
|
|
112
|
+
|
|
113
|
+
### 4. MCP from Claude Code
|
|
114
|
+
|
|
115
|
+
The route ships with the oracle package, so the oracle must be deployed from a version that has
|
|
116
|
+
`src/routes/v1/mcp`. Check with `curl -s -o /dev/null -w "%{http_code}" -X POST https://<oracle>/v1/mcp`:
|
|
117
|
+
`401` means it is there and wants a key; `404` means it is not deployed.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
claude mcp add --transport http ixo-devnet https://<oracle>/v1/mcp \
|
|
121
|
+
--header "Authorization: Bearer $IXO_API_KEY" \
|
|
122
|
+
--header "X-Payment-Delegation: $IXO_PAYMENT_DELEGATION"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
In a Claude Code session, ask it to:
|
|
126
|
+
|
|
127
|
+
1. list the protocols;
|
|
128
|
+
2. read SwiftDrop's work order (`list_protocols` with the DID);
|
|
129
|
+
3. submit a claim built from a fresh `/demo/orders?route=…` order;
|
|
130
|
+
4. get the decision;
|
|
131
|
+
5. verify its receipt.
|
|
132
|
+
|
|
133
|
+
All four tools must answer. Refusals come back as `isError` results with a `code`. With the
|
|
134
|
+
read-only key, `submit_claim` must be `SCOPE`. Remove the server afterwards with
|
|
135
|
+
`claude mcp remove ixo-devnet`.
|
|
136
|
+
|
|
137
|
+
**Signing in instead of a key (OAuth).** Add the server with the URL alone, then run `/mcp` in
|
|
138
|
+
Claude Code and choose *Authenticate*: the browser opens AuthHub (devnet: `dev.auth.ixo.earth`).
|
|
139
|
+
Sign in with the account that owns the test source and allow the app. The oracle's discovery
|
|
140
|
+
document must name AuthHub:
|
|
141
|
+
`curl -s https://<oracle>/.well-known/oauth-protected-resource/v1/mcp` → `authorization_servers`.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
claude mcp add --transport http ixo-oauth https://<oracle>/v1/mcp
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Then ask for a submit. The first `submit_claim` must come back `APPROVAL_REQUIRED` with an
|
|
148
|
+
`approveUrl` — as a normal result, `status: "approval_required"` (not `isError`), its text starting
|
|
149
|
+
`NOT SUBMITTED.`; in Claude desktop it shows as a card with *Approve on IXO*. Open it, check the oracle, protocol and price, and click *Approve*. Ask the AI to call
|
|
150
|
+
`submit_claim` again with the same arguments: it must pay once and return the decision. A second
|
|
151
|
+
call before you approve must be `APPROVAL_PENDING`, and a changed body must be a new approval. An
|
|
152
|
+
account with several sources gets `SOURCE_REQUIRED` (pass `sourceId`); one with none gets
|
|
153
|
+
`NO_SOURCE`. Revoke the app on AuthHub's *Connected apps* page afterwards.
|
|
154
|
+
|
|
155
|
+
**Auto-approve.** On the approve page, tick "Don't ask again" (verified apps only) with small limits.
|
|
156
|
+
The next claim within them must come back with `autoApproved: true` and `autoApproveRemaining`, and
|
|
157
|
+
no link; one above the per-claim limit must be `APPROVAL_REQUIRED`. Turning it off on AuthHub (or in
|
|
158
|
+
the console) must make the next claim ask again. "Don't ask again" works only on an oracle whose
|
|
159
|
+
`policies.allowStandingApprovals` is `true`; otherwise setting it is refused (`403`, reason
|
|
160
|
+
`standing_approvals_off`) and every claim asks.
|
|
161
|
+
|
|
162
|
+
### 5. The docs agent test (this repo)
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
(cd site && bun install && bun run build)
|
|
166
|
+
set -a; . ~/.ixo/decision-api-devnet.env; set +a
|
|
167
|
+
bun site/agent-test/run.ts # exit 0 pass · 1 fail · 2 skipped (no credentials)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
A Claude model gets only the site's `llms-full.txt`, the key, the delegation and one
|
|
171
|
+
`http_request` tool locked to the oracle's origin. It must reach a decision it paid for itself.
|
|
172
|
+
The script checks the result, not the model's word. It costs a few cents of model usage plus
|
|
173
|
+
one claim.
|
|
174
|
+
|
|
175
|
+
### 6. Card scenarios (devnet, Stripe test mode)
|
|
176
|
+
|
|
177
|
+
Card needs an oracle whose protocol costs **≥ 50¢ per claim** (Stripe's minimum capture; SwiftDrop is
|
|
178
|
+
60¢ for this) and whose plan accepts `card`. Which scenario runs is set on the **facilitator side**:
|
|
179
|
+
the payer's default saved card and default way to pay. Saving a test card and completing 3-D Secure
|
|
180
|
+
need the facilitator's Stripe test key, so that half belongs to whoever owns the facilitator
|
|
181
|
+
(ixo-pay-facilitator `.claude/skills/devnet-card-check`). This half pays:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
cd packages/client && bun run build
|
|
185
|
+
node dev/devnet-card.ts submit card # prefer card; `upay` = PAY first; `none` = the console default
|
|
186
|
+
node dev/devnet-card.ts resume # after a 3-D Secure confirm: the SAME offer, same key
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
| Payer's default card (facilitator side) | Run | Expect |
|
|
190
|
+
| --- | --- | --- |
|
|
191
|
+
| `pm_card_authenticationRequired` | `submit card` | `CARD_AUTHENTICATION_REQUIRED` + `confirmUrl`; once confirmed, `resume` → paid with the SAME PaymentIntent. Left unconfirmed, the facilitator cancels it ~17 min later, never charged |
|
|
192
|
+
| `pm_card_chargeCustomerFail` | `submit card` | declined at authorize → paid with PAY for the same 402 |
|
|
193
|
+
| `pm_card_createDispute` | `submit card`, then again once the dispute is open | paid by card; then `card_blocked` → PAY (no PaymentIntent created); after the dispute is won, card again |
|
|
194
|
+
| `pm_card_visa`, preference `card` | `submit none` | the SDK reads `/v1/payer/preferences` with the delegation → card |
|
|
195
|
+
|
|
196
|
+
Every claim's record names the rail: `stripe-manual-capture` / `usd` / cents, or `ixo-pay` / `upay`.
|
|
197
|
+
A run that answers `SPEND_CAP` has used up the delegation's `maxAmount`: mint a new one. Proven end to
|
|
198
|
+
end on 2026-10-01, pre-company-authority (2026-10-10) (SwiftDrop at 60¢; each card capture paid IXO
|
|
199
|
+
its 20% fee).
|
|
200
|
+
|
|
201
|
+
## Working on the client in this repo (maintainers)
|
|
202
|
+
|
|
203
|
+
- **`@ixo/x402-ixo-pay` comes from npm** (0.5.2, published from ixo-pay-facilitator
|
|
204
|
+
`packages/x402-ixo-pay`) as an ordinary runtime dependency; the client's `dist/` imports it. A
|
|
205
|
+
facilitator wire change means a new version published there, then a bump here.
|
|
206
|
+
- **`packages/client/scripts/pack-test.sh`** (run first by `pack-smoke.sh`) proves the tarball
|
|
207
|
+
stands alone: every dependency is a registry version (no git, `file:` or workspace spec), it
|
|
208
|
+
installs with git turned off, and it pays and runs its bin under plain node.
|
|
209
|
+
- **Types come from the OpenAPI.** Run `bun run generate` after the OpenAPI changes. It uses
|
|
210
|
+
`npx` with TypeScript 5, because TS 7 has no JS compiler API and openapi-typescript needs one.
|
|
211
|
+
|
|
212
|
+
## When something fails
|
|
213
|
+
|
|
214
|
+
| Symptom | Cause · fix |
|
|
215
|
+
| --- | --- |
|
|
216
|
+
| `402 PAYMENT_REQUIRED` thrown, never paid | No `paymentDelegation` / `IXO_PAYMENT_DELEGATION` given, or the payer was not configured. |
|
|
217
|
+
| `PaymentError DELEGATION_EXPIRED` / `INVALID_DELEGATION` | The delegation expired or isn't the base64 CAR. Mint a new one (step 1). On testnet/mainnet, `INVALID_DELEGATION` also means it names no oracles. |
|
|
218
|
+
| MCP `SUBMITTER_REQUIRED` | The protocol has a frequency rule (its work order says `facts.frequency: true`), so `submit_claim` needs `submitter`, your stable id for the person (e.g. the courier id). Without it the engine would reject the claim, so it is refused before any approval or charge. |
|
|
219
|
+
| The AI asks you to upload a photo | There is no upload over sign-in. Give it an https link; `submit_claim` attaches `{ question, url }` and the oracle fetches it. No `mediaType` is needed: the oracle reads it from the URL's extension, else a `HEAD`, when it accepts the claim. |
|
|
220
|
+
| Claude Code refuses `submit_claim` ("real-world transaction") | Its safety check is holding back a tool that may spend. Allow only this tool: `/permissions` › Allow › `mcp__<server>__submit_claim`. Never turn the safety check off. Every charge still needs the user's AuthHub approval or their auto-approve limits. |
|
|
221
|
+
| `PaymentError DELEGATION_WRONG_ORACLE` | The delegation is bound to other oracles. Re-sign it naming this oracle's `did:web` (console Keys › Payment delegation; `devnet:credentials` binds to `--oracle`). |
|
|
222
|
+
| `PaymentError CARD_NOT_SAVED` | The payer has no saved card and the 402 took card only (or `prefer: "card"` with no PAY to fall back to). Save a card on the console's card page, or pay with PAY. |
|
|
223
|
+
| `PaymentError CARD_AUTHENTICATION_REQUIRED` | The bank wants 3-D Secure. Open `err.confirmUrl` and confirm within 15 min, then resubmit with `{ idempotencyKey: err.idempotencyKey, resumePayment: err.paymentRequired }` — never a fresh offer. `OFFER_EXPIRED` on the resume: the gate no longer takes that offer; submit afresh. `INVALID_RESUME`: the offer passed is not this oracle's card 402. |
|
|
224
|
+
| `402 INSUFFICIENT_CREDITS` (+ `fundingUrl`) | The session's deed has too little devnet PAY. Top up in the console. |
|
|
225
|
+
| `402 SPEND_CAP` | The key's daily cap or the delegation's `maxAmount` is spent. Mint a delegation with a higher `--max-pay`. |
|
|
226
|
+
| `403 PAYER_NOT_MEMBER` | The delegation's issuer isn't the source's owner or a member. Mint it from the owner's session. |
|
|
227
|
+
| `409 IDEMPOTENCY_MISMATCH` | Same `Idempotency-Key`, different body. Use a new key per new claim. |
|
|
228
|
+
| `terms_mismatch` on the paid resend | `accepted` wasn't the offer entry verbatim. Hand-built headers must copy it byte for byte. |
|
|
229
|
+
| `403 SCOPE` | The key lacks `claims:write`, as intended for the read-only key. |
|
|
230
|
+
| Receipt `untrusted_issuer` | Only IXO's three engines are trusted by default. Pass `issuers` for another. |
|
|
231
|
+
| MCP 404 on `/v1/mcp` | The deployed oracle predates the MCP route. Redeploy (`decision-api-oracle`). |
|
|
232
|
+
| MCP OAuth: the client never opens AuthHub | The oracle predates MCP over OAuth (no `/.well-known/oauth-protected-resource/v1/mcp`, and the `401` has no `resource_metadata`). Redeploy. |
|
|
233
|
+
| MCP `401` with `error="invalid_token"` | The sign-in expired or is for another oracle or network. Reconnect (`/mcp` › *Authenticate*). |
|
|
234
|
+
| `APPROVAL_STALE` | The price changed after the approval; nothing was charged. Approve the new link. |
|
|
235
|
+
| `SPEND_CAP` over OAuth | The app's grant reached $20.00 today. Wait, or use a key. |
|
|
236
|
+
| "Don't ask again" refused: `403`, reason `standing_approvals_off` | The oracle's `policies.allowStandingApprovals` is `false`, so a standing approval never pays there. Approve each claim, or have the operator turn it on and redeploy. |
|