@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,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FactSet v1 — the WIRE shape this oracle asserts to the eval engine (`POST /v1/decisions`
|
|
3
|
+
* `facts`, README "How a claim flows" steps 4–5). Everything the engine's `decide()` needs from us: claim answers,
|
|
4
|
+
* attachment descriptors, the frozen ctx snapshot, and the ext/ai answers with their transcripts.
|
|
5
|
+
* After the builder returns it there is no network, no clock, and no AI anywhere in the decision —
|
|
6
|
+
* the boundary between resolve and decide is the determinism/replay guarantee (evaluator-spec §1),
|
|
7
|
+
* now drawn between two services: this oracle resolves + FREEZES, the engine decides.
|
|
8
|
+
*
|
|
9
|
+
* The engine accepts `facts` as a STRICT object (unknown keys ⇒ 400), so this schema is strict at
|
|
10
|
+
* every level and the TypeScript types are inferred from it — the two cannot drift. What is NOT on
|
|
11
|
+
* the wire, deliberately: `derived` and `formProof` (the engine computes both itself from the same
|
|
12
|
+
* chain-anchored `#rub`/`#vct`; the oracle computes neither — it never binds). `unique` and
|
|
13
|
+
* `frequency` ARE on it — optional, present iff the rubric declares the rule (duplicate detection
|
|
14
|
+
* is oracle-side) — validated here to exactly what the engine's `decide()`
|
|
15
|
+
* reads and LOOSE beyond that (the producer's forensic fields ride into the engine's trace).
|
|
16
|
+
* `frozenAt` IS `ctx.now`: one clock read per build, asserted below. Only `ext`, `ai`, `unique`
|
|
17
|
+
* and `frequency` are oracle-specific (producer.ts); every other key is plumbing the builder
|
|
18
|
+
* assembles.
|
|
19
|
+
*
|
|
20
|
+
* Facts are ASSERTED, not trusted (plan §9): the engine records `factsDigest` + this oracle's DID on
|
|
21
|
+
* its ledger and receipt, so the digest below is what a decision is bound to.
|
|
22
|
+
*/
|
|
23
|
+
import { z } from "zod";
|
|
24
|
+
import { canonicalJson, sha256Hex } from "../hash.js";
|
|
25
|
+
/** A CID reference — never bytes (§3: attachments are references, the files stay in their store). */
|
|
26
|
+
export const AttachmentFact = z.strictObject({
|
|
27
|
+
question: z.string(),
|
|
28
|
+
name: z.string(),
|
|
29
|
+
mediaType: z.string(),
|
|
30
|
+
cid: z.string().nullable(),
|
|
31
|
+
/** Bytes, from the media response's content-length — null when unknown (null rule applies). */
|
|
32
|
+
size: z.number().int().nonnegative().nullable(),
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* The engine validates every wire date as `z.iso.datetime({ offset: true })` — it ACCEPTS an
|
|
36
|
+
* offset form (`+00:00`) since its Task 7 (docs/ENGINE-CONTRACT.md "Reconciled"). The kit stays
|
|
37
|
+
* stricter on purpose: Z-suffixed only, so one instant has one spelling and `factsDigest` cannot
|
|
38
|
+
* drift on formatting — lib/facts/ctx.ts normalizes what Blocksync hands over, and
|
|
39
|
+
* `toISOString()` output is exactly this.
|
|
40
|
+
*/
|
|
41
|
+
const Iso = z.iso.datetime();
|
|
42
|
+
export const CtxFacts = z.strictObject({
|
|
43
|
+
/** The evaluation instant — ONE clock read, frozen. */
|
|
44
|
+
now: Iso,
|
|
45
|
+
collection: z.strictObject({
|
|
46
|
+
startDate: Iso.nullable(),
|
|
47
|
+
endDate: Iso.nullable(),
|
|
48
|
+
}),
|
|
49
|
+
claim: z.strictObject({
|
|
50
|
+
submitter: z.string().nullable(),
|
|
51
|
+
/** The claim's on-chain agentAddress — the payout target. */
|
|
52
|
+
submitterAddress: z.string().nullable(),
|
|
53
|
+
submissionDate: Iso.nullable(),
|
|
54
|
+
/**
|
|
55
|
+
* Escrow-governed payout (lib/ixo/payment.ts). Frozen here so the engine's S12 rule stays pure
|
|
56
|
+
* and a review fold — which replays the frozen facts VERBATIM — reads it unchanged.
|
|
57
|
+
*/
|
|
58
|
+
useIntent: z.boolean().optional(),
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* The oracle's policy for the ai/image lanes (the oracle config (`defineOracle`) `policies`) — recorded so every
|
|
63
|
+
* FactSet is self-explaining ("why didn't AI run?"). Gates resolve only, never decide.
|
|
64
|
+
*/
|
|
65
|
+
export const FactSettings = z.strictObject({
|
|
66
|
+
allowAiChecks: z.boolean(),
|
|
67
|
+
allowImageChecks: z.boolean(),
|
|
68
|
+
});
|
|
69
|
+
/** What a C2PA "Content Credentials" read established about one image (lib/facts/stock/c2pa.ts). */
|
|
70
|
+
export const Provenance = z.strictObject({
|
|
71
|
+
vendor: z.enum(["google", "openai", "other", "unknown"]),
|
|
72
|
+
/** Meaningless unless `trusted` — anyone can self-sign a manifest naming any issuer. */
|
|
73
|
+
issuer: z.string().optional(),
|
|
74
|
+
/** OpenAI sets this ("gpt-image"); Google does not — never assume it's present. */
|
|
75
|
+
model: z.string().optional(),
|
|
76
|
+
modelVersion: z.string().optional(),
|
|
77
|
+
aiGenerated: z.boolean(),
|
|
78
|
+
watermarked: z.boolean(),
|
|
79
|
+
signedAt: z.string().optional(),
|
|
80
|
+
/** The cert chain verified against the trust list — the ONLY thing that makes the claim real. */
|
|
81
|
+
trusted: z.boolean(),
|
|
82
|
+
/** Validation failure codes (e.g. `signingCredential.untrusted`) — empty on a clean read. */
|
|
83
|
+
failures: z.array(z.string()),
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* The §A.14.1 "why did the engine decide this" record — frozen per call. Optional on the wire; the
|
|
87
|
+
* stock connectors always produce one, and the engine stores it in its trace.
|
|
88
|
+
*/
|
|
89
|
+
export const Transcript = z.strictObject({
|
|
90
|
+
request: z.strictObject({
|
|
91
|
+
url: z.string(),
|
|
92
|
+
/** What we sent (the declared payload / the composed prompt) — erasable PII surface. */
|
|
93
|
+
body: z.unknown(),
|
|
94
|
+
/** Safe subset only — never the authorization header. */
|
|
95
|
+
headers: z.record(z.string(), z.string()),
|
|
96
|
+
}),
|
|
97
|
+
/** null = no HTTP response at all (network error / timeout on every attempt). */
|
|
98
|
+
response: z.strictObject({ status: z.int(), body: z.unknown() }).nullable(),
|
|
99
|
+
// Integers on the engine (`z.int()`), so integers here — the stock connectors measure with
|
|
100
|
+
// `Date.now()` diffs; an override measuring with `performance.now()` must round.
|
|
101
|
+
attempts: z.int().nonnegative(),
|
|
102
|
+
/** Whole-budget wall time (backoffs included). */
|
|
103
|
+
elapsedMs: z.int().nonnegative(),
|
|
104
|
+
/** The last HTTP attempt's own latency (fetch → body read). */
|
|
105
|
+
latencyMs: z.int().nonnegative().optional(),
|
|
106
|
+
/** The provider's call id (ai checks): OpenRouter's generation id, or the AI Gateway log id. */
|
|
107
|
+
genId: z.string().nullable().optional(),
|
|
108
|
+
/** USD + tokens when the provider reports cost at call time (OpenRouter); null on the gateway — its USD is backfilled into `ai_calls`. */
|
|
109
|
+
usage: z
|
|
110
|
+
.strictObject({
|
|
111
|
+
promptTokens: z.number(),
|
|
112
|
+
completionTokens: z.number(),
|
|
113
|
+
/** Prompt tokens served from the provider's prompt cache (the static-prefix payoff). */
|
|
114
|
+
cachedTokens: z.number(),
|
|
115
|
+
/** USD charged for this generation, as reported by the provider. */
|
|
116
|
+
costUsd: z.number(),
|
|
117
|
+
})
|
|
118
|
+
.nullable()
|
|
119
|
+
.optional(),
|
|
120
|
+
/**
|
|
121
|
+
* C2PA screening record, one entry per image the provenance gate READ (ai checks, image lane) —
|
|
122
|
+
* inconclusive reads (`result: null`) are recorded too: "no hidden label found" is an outcome.
|
|
123
|
+
*/
|
|
124
|
+
provenance: z
|
|
125
|
+
.array(z.strictObject({
|
|
126
|
+
key: z.string(),
|
|
127
|
+
cid: z.string().nullable(),
|
|
128
|
+
result: Provenance.nullable(),
|
|
129
|
+
}))
|
|
130
|
+
.optional(),
|
|
131
|
+
});
|
|
132
|
+
const OnError = z.enum(["review", "reject"]);
|
|
133
|
+
/** Facts as probabilities, uniformly (plan §9): integer basis points. Optional — the stock connectors don't set it. */
|
|
134
|
+
const Confidence = z.number().int().min(0).max(10000).optional();
|
|
135
|
+
export const ExtFact = z.discriminatedUnion("status", [
|
|
136
|
+
z.strictObject({
|
|
137
|
+
status: z.literal("ok"),
|
|
138
|
+
value: z.union([z.boolean(), z.number()]),
|
|
139
|
+
reason: z.string().nullable(),
|
|
140
|
+
confidence: Confidence,
|
|
141
|
+
transcript: Transcript.optional(),
|
|
142
|
+
}),
|
|
143
|
+
z.strictObject({
|
|
144
|
+
status: z.literal("error"),
|
|
145
|
+
onError: OnError,
|
|
146
|
+
detail: z.string(),
|
|
147
|
+
transcript: Transcript.optional(),
|
|
148
|
+
}),
|
|
149
|
+
]);
|
|
150
|
+
export const AiFact = z.discriminatedUnion("status", [
|
|
151
|
+
z.strictObject({
|
|
152
|
+
status: z.literal("ok"),
|
|
153
|
+
/** DERIVED in code: no rule failed — the model's `valid` is ignored. */
|
|
154
|
+
value: z.boolean(),
|
|
155
|
+
/** Failed rules mapped back to their instruction texts ("Failed R2: …"); null when valid. */
|
|
156
|
+
reason: z.string().nullable(),
|
|
157
|
+
failedRules: z.array(z.string()),
|
|
158
|
+
/** The model's confidence in the verdict, clamped 0..100 (already ≥ the floor). */
|
|
159
|
+
score: z.number().int().min(0).max(100),
|
|
160
|
+
confidence: Confidence,
|
|
161
|
+
transcript: Transcript.optional(),
|
|
162
|
+
}),
|
|
163
|
+
z.strictObject({
|
|
164
|
+
status: z.literal("error"),
|
|
165
|
+
onError: OnError,
|
|
166
|
+
detail: z.string(),
|
|
167
|
+
transcript: Transcript.optional(),
|
|
168
|
+
}),
|
|
169
|
+
]);
|
|
170
|
+
/**
|
|
171
|
+
* The frozen duplicate-detection fact, validated to the exact shape of every field the engine's
|
|
172
|
+
* `decide()` reads (decision-engine `schemas.ts` @ 444aeae: `ruleId`, `digest`, `scoreBps`,
|
|
173
|
+
* `band`); everything else the producer freezes (winner, candidates, aiOutcome, aiPairs, …) rides
|
|
174
|
+
* through LOOSE into the engine's trace — the audit trail behind the receipt's `unique:<ruleId>`
|
|
175
|
+
* check. `band` is a closed enum: the engine branches on `band !== "pass"`, so a typo must fail
|
|
176
|
+
* here, never misroute there.
|
|
177
|
+
*/
|
|
178
|
+
export const UniqueFact = z.looseObject({
|
|
179
|
+
ruleId: z.string(),
|
|
180
|
+
digest: z.string(),
|
|
181
|
+
scoreBps: z.number().int().min(0).max(10000),
|
|
182
|
+
band: z.enum(["pass", "review", "reject"]),
|
|
183
|
+
});
|
|
184
|
+
/**
|
|
185
|
+
* The frozen submission-rate fact — `count`/`max` compose the engine's reason text, `breach` /
|
|
186
|
+
* `unresolved` are its branches (a Blocksync outage freezes `unresolved`, which the engine fails
|
|
187
|
+
* closed); `per` and the window bounds are wording, typed when present. Loose beyond that.
|
|
188
|
+
*/
|
|
189
|
+
export const FrequencyFact = z.looseObject({
|
|
190
|
+
ruleId: z.string(),
|
|
191
|
+
count: z.int(),
|
|
192
|
+
max: z.int(),
|
|
193
|
+
per: z.enum(["day", "week", "month", "year"]).optional(),
|
|
194
|
+
windowStartISO: Iso.nullable().optional(),
|
|
195
|
+
windowEndISO: Iso.nullable().optional(),
|
|
196
|
+
breach: z.boolean(),
|
|
197
|
+
unresolved: z.literal(true).optional(),
|
|
198
|
+
});
|
|
199
|
+
/** The wire contract — exactly what `POST /v1/decisions` receives as `facts`, nothing else. */
|
|
200
|
+
export const FactSetV1 = z
|
|
201
|
+
.strictObject({
|
|
202
|
+
version: z.literal(1),
|
|
203
|
+
/** The one clock read of the build — identical to `ctx.now`. */
|
|
204
|
+
frozenAt: Iso,
|
|
205
|
+
/** credentialSubject — needed by the rules, never persisted by the engine (trace = facts − answers). */
|
|
206
|
+
answers: z.record(z.string(), z.unknown()),
|
|
207
|
+
attachments: z.array(AttachmentFact),
|
|
208
|
+
ctx: CtxFacts,
|
|
209
|
+
ext: z.record(z.string(), ExtFact),
|
|
210
|
+
ai: z.record(z.string(), AiFact),
|
|
211
|
+
/** Present iff the rubric declares the rule (producer.ts) — the engine decides on them. */
|
|
212
|
+
unique: UniqueFact.optional(),
|
|
213
|
+
frequency: FrequencyFact.optional(),
|
|
214
|
+
/** The policy in effect for this build — recorded, self-explaining. */
|
|
215
|
+
settings: FactSettings,
|
|
216
|
+
})
|
|
217
|
+
.refine((f) => f.frozenAt === f.ctx.now, "frozenAt must equal ctx.now — one clock read per build");
|
|
218
|
+
/**
|
|
219
|
+
* `sha256(canonicalJson(facts))` — what the engine records as `factsDigest` and what a decision is
|
|
220
|
+
* bound to. Canonical JSON (sorted keys, no whitespace) makes it independent of key order, so a
|
|
221
|
+
* FactSet that round-trips through JSON digests identically on both sides.
|
|
222
|
+
*/
|
|
223
|
+
export function factsDigest(facts) {
|
|
224
|
+
return sha256Hex(canonicalJson(facts));
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=factset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factset.js","sourceRoot":"","sources":["../../../src/lib/facts/factset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The whole-producer seam: each oracle produces its facts ITS OWN WAY.
|
|
3
|
+
* The kit hands a producer the pulled claim and the rubric's work order (expected.ts — the engine's
|
|
4
|
+
* manifest) and gets back
|
|
5
|
+
* `ext` / `ai` — the only oracle-specific content of a FactSet. Everything else (`answers`, `ctx`,
|
|
6
|
+
* `attachments`, `settings`, `frozenAt`) is plumbing the kit assembles around it (builder.ts), and
|
|
7
|
+
* validate.ts holds what comes back to the work order before anything is sent.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately one function, not a registry: the oracle config (`defineOracle`) `facts` is either absent (the
|
|
10
|
+
* stock producer in stock/ runs every declared source and check) or a function in this shape. Wrap
|
|
11
|
+
* the stock producer to replace one fact, or ignore it entirely — the kit doesn't care how a value
|
|
12
|
+
* was made, only that every declared name comes back as an ok/error fact of the declared type.
|
|
13
|
+
*/
|
|
14
|
+
import type { Config } from "../../config.js";
|
|
15
|
+
import type { ClaimSource } from "../../contracts/index.js";
|
|
16
|
+
import type { Database } from "../../db/client.js";
|
|
17
|
+
import type { OracleEnv } from "../../env.js";
|
|
18
|
+
import type { EngineClient } from "../engine/client.js";
|
|
19
|
+
import type { PulledClaim } from "../ixo/index.js";
|
|
20
|
+
import type { Logger } from "../logger.js";
|
|
21
|
+
import type { Metrics } from "../metrics.js";
|
|
22
|
+
import type { TraceContext } from "../tracing.js";
|
|
23
|
+
import type { ExpectedFacts } from "./expected.js";
|
|
24
|
+
import type { AiFact, CtxFacts, ExtFact, FactSettings, FrequencyFact, UniqueFact } from "./factset.js";
|
|
25
|
+
import type { SameEventJudgement } from "./stock/ai-unique.js";
|
|
26
|
+
/** What a producer returns — frozen verbatim into the FactSet once validate.ts has passed it. */
|
|
27
|
+
export interface ProducedFacts {
|
|
28
|
+
ext: Record<string, ExtFact>;
|
|
29
|
+
ai: Record<string, AiFact>;
|
|
30
|
+
/**
|
|
31
|
+
* The duplicate-detection fact — REQUIRED iff the manifest declares `unique` (detection is
|
|
32
|
+
* oracle-side; docs/ENGINE-CONTRACT.md "Fact coverage + manifest"), refused otherwise.
|
|
33
|
+
* The engine reads `band` (and `aiOutcome`); the stock producer's full forensic shape
|
|
34
|
+
* (stock/unique-score.ts) rides through loose into its trace. A custom producer may detect
|
|
35
|
+
* duplicates any way it likes — a vendor registry, its own store — and return the minimum.
|
|
36
|
+
*/
|
|
37
|
+
unique?: UniqueFact;
|
|
38
|
+
/** The submission-rate fact — REQUIRED iff the manifest declares `frequency` (with `max`/`per`). */
|
|
39
|
+
frequency?: FrequencyFact;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The connector-result cache (db/schema.ts `fact_cache`; lib/facts/fact-cache.ts): resolved
|
|
43
|
+
* `ext`/`ai` facts a PRIOR crashed attempt of this same build already paid for, consulted before a
|
|
44
|
+
* connector runs so a workflow-step retry never re-buys an AI/ext call that already answered.
|
|
45
|
+
* `unique`/`frequency` must never go through it — registry state and calendar windows have to be
|
|
46
|
+
* fresh per attempt (the one cached piece of the duplicate lane is the judge's per-pair verdict,
|
|
47
|
+
* `unique-judge`, never the candidate set). Both sides are fail-soft by contract: the cache is an optimization, so a read
|
|
48
|
+
* error means "no cache" and a write error means "not cached" — never a failed fact.
|
|
49
|
+
*/
|
|
50
|
+
export interface FactCache {
|
|
51
|
+
/** Every cached row for the claim — ONE read per build, before any connector runs. */
|
|
52
|
+
read(claimId: string): Promise<FactCacheEntry[]>;
|
|
53
|
+
/** One resolved row as it lands. Fail-soft: a cache write error never fails the fact. */
|
|
54
|
+
write<K extends FactCacheEntry["kind"]>(claimId: string, kind: K, name: string, fact: Extract<FactCacheEntry, {
|
|
55
|
+
kind: K;
|
|
56
|
+
}>["fact"]): Promise<void>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* One `fact_cache` row (db/schema.ts): a connector's fact, or one same-event judge verdict per
|
|
60
|
+
* candidate (stock/unique.ts `judgePairs` — the duplicate lane's only cached part).
|
|
61
|
+
*/
|
|
62
|
+
export type FactCacheEntry = {
|
|
63
|
+
kind: "ext";
|
|
64
|
+
name: string;
|
|
65
|
+
fact: ExtFact;
|
|
66
|
+
} | {
|
|
67
|
+
kind: "ai";
|
|
68
|
+
name: string;
|
|
69
|
+
fact: AiFact;
|
|
70
|
+
} | {
|
|
71
|
+
kind: "unique-judge";
|
|
72
|
+
name: string;
|
|
73
|
+
fact: SameEventJudgement;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Where the claim came from, as far as the facts lane cares (Go Prod §7.1): the ctx window and the
|
|
77
|
+
* frequency lane's count. The workflow hands over its `ClaimSource`; absent (tests, the CLI) ⇒ the
|
|
78
|
+
* chain lane's own Blocksync reads.
|
|
79
|
+
*/
|
|
80
|
+
export type ClaimScope = Pick<ClaimSource, "window" | "countSubmissions" | "submitterKey">;
|
|
81
|
+
/** Runs `fn` inside a named trace span — on Workers, lib/spans.ts's `inSpan`. Attributes are
|
|
82
|
+
* metric labels only. */
|
|
83
|
+
export type SpanFn = <T>(name: string, attrs: Record<string, string | undefined>, fn: () => Promise<T>) => Promise<T>;
|
|
84
|
+
/** Model → what this build spent on it. */
|
|
85
|
+
export type AiSpend = Map<string,
|
|
86
|
+
/** `microUsd` null ⇒ the provider reports no cost at call time (the gateway — backfilled). */
|
|
87
|
+
{
|
|
88
|
+
promptTokens: number;
|
|
89
|
+
completionTokens: number;
|
|
90
|
+
microUsd: number | null;
|
|
91
|
+
}>;
|
|
92
|
+
/** One AI Gateway call awaiting its USD (cron/ai-cost.ts) — written once by builder.ts into `ai_calls`. */
|
|
93
|
+
export interface AiCall {
|
|
94
|
+
callId: string;
|
|
95
|
+
fact: string;
|
|
96
|
+
model: string;
|
|
97
|
+
promptTokens: number | null;
|
|
98
|
+
completionTokens: number | null;
|
|
99
|
+
cachedTokens: number | null;
|
|
100
|
+
}
|
|
101
|
+
/** What every producer (stock or custom) gets to work with. */
|
|
102
|
+
export interface ProducerDeps {
|
|
103
|
+
config: Config;
|
|
104
|
+
logger: Logger;
|
|
105
|
+
trace: TraceContext;
|
|
106
|
+
/**
|
|
107
|
+
* The claim's media store for on-demand attachment reads (size probes, AI-check bytes) — never
|
|
108
|
+
* logged, never persisted. Null on the cellnode lane (those claims carry no file answers).
|
|
109
|
+
*/
|
|
110
|
+
media: PulledClaim["media"];
|
|
111
|
+
/** Reused CACHE_KV — the C2PA trust list. Optional: absent in tests. */
|
|
112
|
+
cache?: KVNamespace;
|
|
113
|
+
/**
|
|
114
|
+
* What the facts lane may READ from the eval engine — today the buyer statement
|
|
115
|
+
* (`getAgreement`, docs/ENGINE-CONTRACT.md "Agreements"): a producer answering agreement facts
|
|
116
|
+
* (`priceMatchesAgreement`, `serviceWasAgreed`, …) calls
|
|
117
|
+
* `deps.engine.getAgreement(claim.collectionId, claim.metadata.agentAddress)` right BEFORE
|
|
118
|
+
* returning its fact — the engine records the snapshot current at decision time on its receipt,
|
|
119
|
+
* so reading it last is what makes the receipt name the version the facts used. The FactSet
|
|
120
|
+
* itself is unchanged: the agreement never rides the wire, only the facts read off it.
|
|
121
|
+
* Optional: absent in tests and producer dry runs.
|
|
122
|
+
*/
|
|
123
|
+
engine?: Pick<EngineClient, "getAgreement">;
|
|
124
|
+
/**
|
|
125
|
+
* This oracle's D1 (`getDb(env)`) — the stock `unique` lane's duplicate registries
|
|
126
|
+
* (stock/unique-store.ts) live there. Optional: absent in tests and producer dry runs; the
|
|
127
|
+
* stock lane fails loudly the moment a rule needs it. A custom producer may use it for its own
|
|
128
|
+
* tables or ignore it.
|
|
129
|
+
*/
|
|
130
|
+
db?: Database;
|
|
131
|
+
/**
|
|
132
|
+
* The connector-result cache over that D1 (wired by builder.ts `factDeps`) — see `FactCache`.
|
|
133
|
+
* Optional: absent in tests and producer dry runs; a custom producer may use it the same way the
|
|
134
|
+
* stock one does, or ignore it.
|
|
135
|
+
*/
|
|
136
|
+
factCache?: FactCache;
|
|
137
|
+
/**
|
|
138
|
+
* The step's worker env — bindings and vars as wrangler hands them over, so a handler reaching
|
|
139
|
+
* for its OWN binding (a provider's KV, a queue, an AI binding) has one. Reaches a handler as
|
|
140
|
+
* `tools.env`. Optional: absent in tests and producer dry runs, where reading it is loud.
|
|
141
|
+
*/
|
|
142
|
+
env?: OracleEnv;
|
|
143
|
+
/** The claim's scope reads (`ClaimScope`) — optional: absent ⇒ Blocksync, as before the seam. */
|
|
144
|
+
scope?: ClaimScope;
|
|
145
|
+
/**
|
|
146
|
+
* The step's metrics (`facts.handler`) — injected, never imported, so this lane stays node-safe.
|
|
147
|
+
* Optional: absent in tests and dry runs ⇒ nothing recorded.
|
|
148
|
+
*/
|
|
149
|
+
metrics?: Metrics;
|
|
150
|
+
/**
|
|
151
|
+
* The step's trace span around each handler call (`facts.handler`, observability spec §4) —
|
|
152
|
+
* injected like `metrics`, since a Workers Traces span needs `cloudflare:workers`. Optional:
|
|
153
|
+
* absent ⇒ the call runs bare.
|
|
154
|
+
*/
|
|
155
|
+
span?: SpanFn;
|
|
156
|
+
/**
|
|
157
|
+
* The build's model spend, summed per model by the judge (stock/ai-check.ts) and written once by
|
|
158
|
+
* builder.ts as `ai.tokens` / `ai.cost_micro_usd` — one set of points per model, not per check.
|
|
159
|
+
*/
|
|
160
|
+
aiSpend?: AiSpend;
|
|
161
|
+
/** The build's AI Gateway calls (stock/ai-provider.ts `recordSpend`) — builder.ts writes them once. */
|
|
162
|
+
aiCalls?: AiCall[];
|
|
163
|
+
/** The protocol the work order is for — the metrics' `id` label. Optional, like `metrics`. */
|
|
164
|
+
protocolDid?: string;
|
|
165
|
+
/**
|
|
166
|
+
* The evaluate step's LAST attempt (claim-ingest.ts): transient trouble a handler throws is frozen
|
|
167
|
+
* as the rubric's `onError` instead of retried (runner.ts `detailForThrow`), so an outage that
|
|
168
|
+
* outlives the step's retries ends as the fallback, never as a dead ingest or a retry for ever.
|
|
169
|
+
*/
|
|
170
|
+
finalAttempt?: boolean;
|
|
171
|
+
/** The oracle's policy for the ai/image lanes (the oracle config (`defineOracle`) `policies`) — recorded in the FactSet. */
|
|
172
|
+
settings: FactSettings;
|
|
173
|
+
/**
|
|
174
|
+
* The kit's `ctx` — the build's ONE clock read (`ctx.now` = `frozenAt`), the collection window
|
|
175
|
+
* and the claim's chain plane, resolved by builder.ts BEFORE the producer runs and handed over
|
|
176
|
+
* read-only: a producer never reads the clock or Blocksync for ctx, so what a `send` payload
|
|
177
|
+
* quotes (`ctx.now`, the window) is byte-for-byte what the engine's rules will read. Producers
|
|
178
|
+
* may of course timestamp their own transcripts.
|
|
179
|
+
*/
|
|
180
|
+
ctx: CtxFacts;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* `(claim, expected, deps) => { ext, ai, unique?, frequency? }` — produce every name in
|
|
184
|
+
* `expected.ext` / `expected.ai`, the `unique`/`frequency` fact iff the manifest declares the rule,
|
|
185
|
+
* and nothing else. An unreachable source is `status: "error"` with the rubric's `onError` — never
|
|
186
|
+
* an approve; a value comes from what actually happened; a transcript (optional on the wire, the
|
|
187
|
+
* engine keeps it as the "why") says what was sent and received and never carries a secret.
|
|
188
|
+
*/
|
|
189
|
+
export type FactsProducer = (claim: PulledClaim, expected: ExpectedFacts, deps: ProducerDeps) => Promise<ProducedFacts>;
|
|
190
|
+
//# sourceMappingURL=producer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producer.d.ts","sourceRoot":"","sources":["../../../src/lib/facts/producer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oGAAoG;IACpG,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,sFAAsF;IACtF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,yFAAyF;IACzF,KAAK,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,MAAM,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,kBAAkB,GAAG,cAAc,CAAC,CAAC;AAE3F;0BAC0B;AAC1B,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACzC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACjB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,2CAA2C;AAC3C,MAAM,MAAM,OAAO,GAAG,GAAG,CACvB,MAAM;AACN,8FAA8F;AAC9F;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAC5E,CAAC;AAEF,2GAA2G;AAC3G,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,wEAAwE;IACxE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,iGAAiG;IACjG,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uGAAuG;IACvG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4HAA4H;IAC5H,QAAQ,EAAE,YAAY,CAAC;IACvB;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,YAAY,KACf,OAAO,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The whole-producer seam: each oracle produces its facts ITS OWN WAY.
|
|
3
|
+
* The kit hands a producer the pulled claim and the rubric's work order (expected.ts — the engine's
|
|
4
|
+
* manifest) and gets back
|
|
5
|
+
* `ext` / `ai` — the only oracle-specific content of a FactSet. Everything else (`answers`, `ctx`,
|
|
6
|
+
* `attachments`, `settings`, `frozenAt`) is plumbing the kit assembles around it (builder.ts), and
|
|
7
|
+
* validate.ts holds what comes back to the work order before anything is sent.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately one function, not a registry: the oracle config (`defineOracle`) `facts` is either absent (the
|
|
10
|
+
* stock producer in stock/ runs every declared source and check) or a function in this shape. Wrap
|
|
11
|
+
* the stock producer to replace one fact, or ignore it entirely — the kit doesn't care how a value
|
|
12
|
+
* was made, only that every declared name comes back as an ok/error fact of the declared type.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=producer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producer.js","sourceRoot":"","sources":["../../../src/lib/facts/producer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The facts runner — ONE place that runs a handler, whoever wrote it (spec §3.4). The stock
|
|
3
|
+
* producer is this with an empty handler table; a provider's `defineFacts({ ext, ai, … })` is the
|
|
4
|
+
* same run with some names routed elsewhere. That is the point: the guarantees below hold
|
|
5
|
+
* identically for both, because there is only one code path.
|
|
6
|
+
*
|
|
7
|
+
* What the runner guarantees around every handler:
|
|
8
|
+
* - **Normalization** — a plain `true` / `8200` becomes an `ok` fact; a `fact.error(...)` draft
|
|
9
|
+
* becomes a full error fact.
|
|
10
|
+
* - **Fail closed** — an error fact carries the MANIFEST's `onError`, stamped here, overriding
|
|
11
|
+
* whatever the handler put there. A THROW is the same thing: an error fact, never an approve,
|
|
12
|
+
* never a lost claim. A handler cannot upgrade its own failure.
|
|
13
|
+
* - **One retry signal** — `fact.retryLater()`, the kit's own loud `AppError`s, and a retryable
|
|
14
|
+
* `EngineError` (the eval engine's own 5xx / `UNAVAILABLE` / `RATE_LIMITED`, e.g.
|
|
15
|
+
* `tools.agreement()`'s read) all get out, as `unavailable`, so the workflow step retries
|
|
16
|
+
* instead of freezing a verdict — the stock ext and AI lanes throw the same way for an outage.
|
|
17
|
+
* BOUNDED: on the step's last attempt (`finalAttempt`) the transient ones freeze as the
|
|
18
|
+
* rubric's `onError` instead, so an outage that outlives the retries still ends as a fact. The rule (task-14, 2026-09-14): a deterministic failure is a
|
|
19
|
+
* fact; a transient one is a retry — claims are decided once, so a claim held for review over
|
|
20
|
+
* trouble the engine never actually judged can never be re-run. A NON-retryable `EngineError`
|
|
21
|
+
* (a real 404 / wrong-shaped document / counterparty mismatch) is still a fact: that IS the
|
|
22
|
+
* engine's answer.
|
|
23
|
+
* - **The fact cache** — a prior crashed attempt's paid answer is returned verbatim and the
|
|
24
|
+
* handler never runs (producer.ts `FactCache`; `unique`/`frequency` never go through it).
|
|
25
|
+
* - **The fan-out cap** — at most `MAX_CONCURRENT_CONNECTORS` ext/ai handlers in flight.
|
|
26
|
+
*
|
|
27
|
+
* NODE-SAFE by construction: this module is what `@ixo/decision-oracle/facts` and a provider's test
|
|
28
|
+
* suite pull in, so it imports only types, the pure `send.ts` / `rule-defaults.ts` readers, the
|
|
29
|
+
* `fact` helpers and `AppError`. Nothing here may reach `cloudflare:*`, a `.wasm`, D1 or KV — the
|
|
30
|
+
* stock lanes arrive as `deps.stock`, already built by whoever has a runtime.
|
|
31
|
+
*/
|
|
32
|
+
import type { AiHandler, AiInput, AiResult, ExtHandler, ExtInput, ExtResult, FactInputBase, FactsConfig, FactTools, FrequencyHandler, UniqueHandler } from "../../facts/types.js";
|
|
33
|
+
import { type Manifest, type ManifestAi, type ManifestExt } from "../engine/types.js";
|
|
34
|
+
import type { PulledClaim } from "../ixo/index.js";
|
|
35
|
+
import type { Logger } from "../logger.js";
|
|
36
|
+
import type { Metrics } from "../metrics.js";
|
|
37
|
+
import type { AiFact, CtxFacts, ExtFact, FactSettings } from "./factset.js";
|
|
38
|
+
import type { FactCache, ProducedFacts, SpanFn } from "./producer.js";
|
|
39
|
+
/** The default lane per kind — what an unlisted name runs (lib/facts/tools.ts wires the real ones). */
|
|
40
|
+
export interface StockLanes {
|
|
41
|
+
ext: ExtHandler;
|
|
42
|
+
ai: AiHandler;
|
|
43
|
+
unique: UniqueHandler;
|
|
44
|
+
frequency: FrequencyHandler;
|
|
45
|
+
}
|
|
46
|
+
/** Which fact a `tools` instance is for — `tools.stock()` runs THAT fact's stock lane. */
|
|
47
|
+
export type FactTarget = {
|
|
48
|
+
kind: "ext";
|
|
49
|
+
name: string;
|
|
50
|
+
expected: ManifestExt;
|
|
51
|
+
} | {
|
|
52
|
+
kind: "ai";
|
|
53
|
+
name: string;
|
|
54
|
+
check: ManifestAi;
|
|
55
|
+
}
|
|
56
|
+
/** A grouped handler — several sources at once, so there is no single lane for `stock()` to run. */
|
|
57
|
+
| {
|
|
58
|
+
kind: "group";
|
|
59
|
+
names: string[];
|
|
60
|
+
} | {
|
|
61
|
+
kind: "unique";
|
|
62
|
+
} | {
|
|
63
|
+
kind: "frequency";
|
|
64
|
+
};
|
|
65
|
+
export interface RunnerDeps {
|
|
66
|
+
logger: Logger;
|
|
67
|
+
/** The build's frozen ctx — resolved by the builder before any handler runs. */
|
|
68
|
+
ctx: CtxFacts;
|
|
69
|
+
settings: FactSettings;
|
|
70
|
+
/** Per-fact tools (the target says which stock lane `tools.stock()` runs). */
|
|
71
|
+
tools: (target: FactTarget) => FactTools;
|
|
72
|
+
stock: StockLanes;
|
|
73
|
+
factCache?: FactCache;
|
|
74
|
+
/** Injected by whoever has a runtime (tools.ts) — this module stays node-safe. Absent ⇒ no metric. */
|
|
75
|
+
metrics?: Metrics;
|
|
76
|
+
/** Injected the same way (lib/spans.ts on Workers). Absent ⇒ no span. */
|
|
77
|
+
span?: SpanFn;
|
|
78
|
+
/** The metrics' `id` label. */
|
|
79
|
+
protocolDid?: string;
|
|
80
|
+
/** The step's last attempt (producer.ts `finalAttempt`): a retry signal freezes as onError. */
|
|
81
|
+
finalAttempt?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Connector fan-out cap over the ext+ai lanes: a rubric declaring 30 AI checks must not open 30
|
|
85
|
+
* model calls at once — the isolate allows 6 simultaneous outbound connections, OpenRouter
|
|
86
|
+
* throttles bursts, and a misauthored rubric should degrade to "slower", never to a socket/429
|
|
87
|
+
* storm. 4 keeps a typical rubric fully parallel; results are keyed by name, so order never
|
|
88
|
+
* matters. `unique`/`frequency` run beside the pool — one registry/count read each, not fan-out.
|
|
89
|
+
*/
|
|
90
|
+
export declare const MAX_CONCURRENT_CONNECTORS = 4;
|
|
91
|
+
/**
|
|
92
|
+
* The basics every handler input is built from — one object, built once per run, spread into each
|
|
93
|
+
* ext/ai/unique/frequency input. Exported because `tools.stock()` (lib/facts/tools.ts) has to hand
|
|
94
|
+
* a stock lane the SAME input the runner would have: two builders would drift.
|
|
95
|
+
*/
|
|
96
|
+
export declare function factInputBase(claim: PulledClaim, manifest: Manifest, deps: Pick<RunnerDeps, "ctx" | "settings">): FactInputBase;
|
|
97
|
+
/** One declared source's input: the `send` map resolved, the `~derived` refs reported. */
|
|
98
|
+
export declare function buildExtInput(base: FactInputBase, name: string, expected: ManifestExt): ExtInput;
|
|
99
|
+
/** One declared check's input — plus the `send` map as the model's typed, ordered inputs. */
|
|
100
|
+
export declare function buildAiInput(base: FactInputBase, name: string, check: ManifestAi): AiInput;
|
|
101
|
+
/** A plain return becomes an `ok` fact; anything that failed carries the manifest's `onError`. */
|
|
102
|
+
export declare function normalizeExt(result: ExtResult, onError: "review" | "reject"): ExtFact;
|
|
103
|
+
/** Same, for an AI check: a bare `true`/`false` is a verdict nothing failed under. */
|
|
104
|
+
export declare function normalizeAi(result: AiResult, onError: "review" | "reject"): AiFact;
|
|
105
|
+
/**
|
|
106
|
+
* Produce every fact the work order names: `facts.<kind>[name]` if the provider listed it, the
|
|
107
|
+
* stock lane otherwise. The result is exactly what a `FactsProducer` returns — validate.ts holds
|
|
108
|
+
* it to the order before anything is frozen.
|
|
109
|
+
*/
|
|
110
|
+
export declare function runHandlers(facts: FactsConfig, claim: PulledClaim, manifest: Manifest, deps: RunnerDeps): Promise<ProducedFacts>;
|
|
111
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/lib/facts/runner.ts"],"names":[],"mappings":"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"}
|