@ixo/decision-oracle 0.0.0-stage → 0.2.1
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/LICENSE +201 -0
- 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 +123 -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 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/contracts/webhooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAOL,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,QAAiC,CAAC;AACtE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,4GAA4G;AAC5G,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;wFACwF;AACxF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAS3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,4FAA4F;AAC5F,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAW5D,mGAAmG;AACnG,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAY1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The webhook wire contract (go-prod spec §4.5, Appendix B): what a receiver is POSTed and how it
|
|
3
|
+
* proves the POST came from this oracle. Signing and delivery are S2/S7's — this file is only the
|
|
4
|
+
* shape a receiver codes against.
|
|
5
|
+
*
|
|
6
|
+
* Signature: `Oracle-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 over "<t>.<raw body>">`,
|
|
7
|
+
* keyed by the endpoint's `whsec_…` secret. The timestamp is inside the MAC so a captured POST
|
|
8
|
+
* cannot be replayed later with a fresh `t`; receivers should refuse a `t` older than 5 minutes.
|
|
9
|
+
* During a secret rotation the header carries one `v1=` per live secret. `Oracle-Event-Id` equals
|
|
10
|
+
* the envelope's `id` — delivery is at-least-once, so receivers de-duplicate on it.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
import { BaseUnitAmount, ClaimId, ClaimRecord, EventId, SettlementId, SourceId, WebhookEventType, } from "./api.js";
|
|
14
|
+
import { SourcePausedReason } from "./errors.js";
|
|
15
|
+
export { WebhookEventType };
|
|
16
|
+
export const ORACLE_SIGNATURE_HEADER = "Oracle-Signature";
|
|
17
|
+
export const ORACLE_EVENT_ID_HEADER = "Oracle-Event-Id";
|
|
18
|
+
/** One `t=` and one or more `v1=` (several while a rotated secret overlaps). */
|
|
19
|
+
export const ORACLE_SIGNATURE_FORMAT = /^t=(\d+)(,v1=[0-9a-f]{64})+$/;
|
|
20
|
+
export const WEBHOOK_API_VERSION = "v1";
|
|
21
|
+
/** §4.5: 8 attempts over 24 h — 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h after the first. */
|
|
22
|
+
export const WEBHOOK_MAX_ATTEMPTS = 8;
|
|
23
|
+
/** A receiver that has not answered 2xx within this is a failed attempt, retried. */
|
|
24
|
+
export const WEBHOOK_TIMEOUT_MS = 10_000;
|
|
25
|
+
/** `source.*` data: the source's state after the change; `issues` are the engine's on `rubric-unusable`. */
|
|
26
|
+
export const SourceEventData = z.object({
|
|
27
|
+
sourceId: SourceId,
|
|
28
|
+
status: z.enum(["active", "paused"]),
|
|
29
|
+
pausedReason: SourcePausedReason.nullable(),
|
|
30
|
+
issues: z.array(z.object({ code: z.string(), message: z.string(), path: z.string() })).optional(),
|
|
31
|
+
});
|
|
32
|
+
/** `payment.settled` data — the facilitator accepted the claim's receipt and settled its reservation
|
|
33
|
+
* (contracts v1.3: once per claim, `settlementId` replaces the hold id `chargeId`). */
|
|
34
|
+
export const PaymentEventData = z.object({
|
|
35
|
+
claimId: ClaimId,
|
|
36
|
+
settlementId: SettlementId,
|
|
37
|
+
/** How it was paid (v1.4): PAY in upay, card in US cents, or USDC on Base (`exact`) in USDC
|
|
38
|
+
* base units (1 unit = 1 micro-USD = 1 upay). */
|
|
39
|
+
scheme: z.enum(["ixo-pay", "stripe-manual-capture", "exact"]),
|
|
40
|
+
amount: BaseUnitAmount,
|
|
41
|
+
asset: z.enum(["upay", "usd", "usdc"]),
|
|
42
|
+
status: z.literal("settled"),
|
|
43
|
+
});
|
|
44
|
+
/** `balance.low`: the deed's credits fell under the source's `refillFloorCents` (§12.4). */
|
|
45
|
+
export const BalanceLowData = z.object({
|
|
46
|
+
sourceId: SourceId,
|
|
47
|
+
balanceCents: z.int(),
|
|
48
|
+
floorCents: z.int().min(0),
|
|
49
|
+
});
|
|
50
|
+
const envelope = (type, data) => z.object({
|
|
51
|
+
id: EventId,
|
|
52
|
+
type: z.literal(type),
|
|
53
|
+
createdAt: z.iso.datetime(),
|
|
54
|
+
apiVersion: z.literal(WEBHOOK_API_VERSION),
|
|
55
|
+
data,
|
|
56
|
+
});
|
|
57
|
+
/** `{ id, type, createdAt, apiVersion, data }`; `claim.*` carry the §4.4 record, never answers. */
|
|
58
|
+
export const WebhookEnvelope = z.discriminatedUnion("type", [
|
|
59
|
+
envelope("claim.accepted", ClaimRecord),
|
|
60
|
+
envelope("claim.decided", ClaimRecord),
|
|
61
|
+
envelope("claim.review_required", ClaimRecord),
|
|
62
|
+
envelope("claim.folded", ClaimRecord),
|
|
63
|
+
envelope("claim.unusable", ClaimRecord),
|
|
64
|
+
envelope("claim.failed", ClaimRecord),
|
|
65
|
+
envelope("claim.review_expired", ClaimRecord),
|
|
66
|
+
envelope("source.paused", SourceEventData),
|
|
67
|
+
envelope("source.resumed", SourceEventData),
|
|
68
|
+
envelope("payment.settled", PaymentEventData),
|
|
69
|
+
envelope("balance.low", BalanceLowData),
|
|
70
|
+
]);
|
|
71
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/contracts/webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `WorkOrderBuilder` seam — what a developer must send for a protocol (`GET
|
|
3
|
+
* /v1/api/protocols/:did`, Go Prod §4.2, §13.1 "know before you send"). Implemented by S8
|
|
4
|
+
* (`src/lib/work-order/**`); called by S3's protocols route, which adds the `price` from
|
|
5
|
+
* `PaymentGate.quote`.
|
|
6
|
+
*
|
|
7
|
+
* Built from the protocol's claim form (`#vct`) and the engine's manifest (`engine.getManifest`) —
|
|
8
|
+
* the manifest is still the only reading of the rubric (CLAUDE.md "the oracle never parses a
|
|
9
|
+
* rubric"): facts are NAMES only, review tasks come from `manifest.review.taskDetails`.
|
|
10
|
+
*/
|
|
11
|
+
import type { OracleEnv } from "../env.js";
|
|
12
|
+
import type { ProtocolWorkOrder } from "./api.js";
|
|
13
|
+
export type WorkOrder = Omit<ProtocolWorkOrder, "price">;
|
|
14
|
+
export type WorkOrderResult = {
|
|
15
|
+
ok: true;
|
|
16
|
+
workOrder: WorkOrder;
|
|
17
|
+
}
|
|
18
|
+
/** The engine's manifest says the rubric cannot bind — the route answers it as `unusable` with the issues. */
|
|
19
|
+
| {
|
|
20
|
+
ok: false;
|
|
21
|
+
reason: "rubric-unusable";
|
|
22
|
+
issues: unknown;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Throws only on transient trouble (engine or chain unreachable) — the route answers 503. Callers
|
|
26
|
+
* may cache the result per protocol for as long as the manifest cache (5 min).
|
|
27
|
+
*/
|
|
28
|
+
export type WorkOrderBuilder = (env: OracleEnv, protocolDid: string) => Promise<WorkOrderResult>;
|
|
29
|
+
//# sourceMappingURL=work-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-order.d.ts","sourceRoot":"","sources":["../../src/contracts/work-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAEzD,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE;AACpC,8GAA8G;GAC5G;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `WorkOrderBuilder` seam — what a developer must send for a protocol (`GET
|
|
3
|
+
* /v1/api/protocols/:did`, Go Prod §4.2, §13.1 "know before you send"). Implemented by S8
|
|
4
|
+
* (`src/lib/work-order/**`); called by S3's protocols route, which adds the `price` from
|
|
5
|
+
* `PaymentGate.quote`.
|
|
6
|
+
*
|
|
7
|
+
* Built from the protocol's claim form (`#vct`) and the engine's manifest (`engine.getManifest`) —
|
|
8
|
+
* the manifest is still the only reading of the rubric (CLAUDE.md "the oracle never parses a
|
|
9
|
+
* rubric"): facts are NAMES only, review tasks come from `manifest.review.taskDetails`.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=work-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-order.js","sourceRoot":"","sources":["../../src/contracts/work-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The AI Gateway's USD, after the fact (spec 2026-10-02 §6.2). A gateway call's cost is not in its
|
|
3
|
+
* response — it is on the gateway's log entry, readable a few seconds later. The facts lane writes
|
|
4
|
+
* the call to `ai_calls` (builder.ts); this job, every fifth minute, reads each pending row's log
|
|
5
|
+
* and records `cost` as micro-USD. For operators and admin apps only — no verdict reads it.
|
|
6
|
+
*
|
|
7
|
+
* Bounded: 50 rows a run, oldest first, none younger than 60 s (the log may not be written yet).
|
|
8
|
+
* A log not found for an hour is `unavailable` (logging off, retention), as is a log with no cost
|
|
9
|
+
* (a model the gateway has no price for). The log API itself failing (anything but "not found")
|
|
10
|
+
* stops the run — one report, no hammering, nothing closed, the next run asks again — and only a
|
|
11
|
+
* row it has refused for a day is closed, so nothing blocks the queue for good.
|
|
12
|
+
* Never an alert: missing analytics is not a person's emergency. No `AI` binding ⇒ a no-op.
|
|
13
|
+
*/
|
|
14
|
+
import type { Config } from "../config.js";
|
|
15
|
+
import type { Database } from "../db/client.js";
|
|
16
|
+
import type { OracleEnv } from "../env.js";
|
|
17
|
+
import type { Logger } from "../lib/logger.js";
|
|
18
|
+
import type { Metrics } from "../lib/metrics.js";
|
|
19
|
+
export declare function backfillAiCosts(deps: {
|
|
20
|
+
db: Database;
|
|
21
|
+
env: OracleEnv;
|
|
22
|
+
config: Config;
|
|
23
|
+
logger: Logger;
|
|
24
|
+
metrics?: Metrics;
|
|
25
|
+
}, now?: number): Promise<{
|
|
26
|
+
ok: number;
|
|
27
|
+
unavailable: number;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=ai-cost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-cost.d.ts","sourceRoot":"","sources":["../../src/cron/ai-cost.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW9C,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EACzF,GAAG,SAAa,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAqD9C"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The AI Gateway's USD, after the fact (spec 2026-10-02 §6.2). A gateway call's cost is not in its
|
|
3
|
+
* response — it is on the gateway's log entry, readable a few seconds later. The facts lane writes
|
|
4
|
+
* the call to `ai_calls` (builder.ts); this job, every fifth minute, reads each pending row's log
|
|
5
|
+
* and records `cost` as micro-USD. For operators and admin apps only — no verdict reads it.
|
|
6
|
+
*
|
|
7
|
+
* Bounded: 50 rows a run, oldest first, none younger than 60 s (the log may not be written yet).
|
|
8
|
+
* A log not found for an hour is `unavailable` (logging off, retention), as is a log with no cost
|
|
9
|
+
* (a model the gateway has no price for). The log API itself failing (anything but "not found")
|
|
10
|
+
* stops the run — one report, no hammering, nothing closed, the next run asks again — and only a
|
|
11
|
+
* row it has refused for a day is closed, so nothing blocks the queue for good.
|
|
12
|
+
* Never an alert: missing analytics is not a person's emergency. No `AI` binding ⇒ a no-op.
|
|
13
|
+
*/
|
|
14
|
+
import { and, asc, eq, lt } from "drizzle-orm";
|
|
15
|
+
import { aiCalls } from "../db/schema.js";
|
|
16
|
+
import { reportError } from "../lib/sentry.js";
|
|
17
|
+
const BATCH = 50;
|
|
18
|
+
const SETTLE_MS = 60_000;
|
|
19
|
+
/** A log still not found after this is gone (logging off, retention). */
|
|
20
|
+
const GIVE_UP_MS = 60 * 60_000;
|
|
21
|
+
/** The log API refusing a row this long is not a blip — close it so the queue moves. */
|
|
22
|
+
const API_GIVE_UP_MS = 24 * 60 * 60_000;
|
|
23
|
+
const RETAIN_MS = 90 * 24 * 60 * 60_000;
|
|
24
|
+
export async function backfillAiCosts(deps, now = Date.now()) {
|
|
25
|
+
const done = { ok: 0, unavailable: 0 };
|
|
26
|
+
const ai = deps.env.AI;
|
|
27
|
+
const gatewayId = deps.config.AI_GATEWAY_ID;
|
|
28
|
+
if (!ai || !gatewayId)
|
|
29
|
+
return done;
|
|
30
|
+
const { db, logger } = deps;
|
|
31
|
+
await db.delete(aiCalls).where(lt(aiCalls.createdAt, new Date(now - RETAIN_MS)));
|
|
32
|
+
const due = await db
|
|
33
|
+
.select()
|
|
34
|
+
.from(aiCalls)
|
|
35
|
+
.where(and(eq(aiCalls.costStatus, "pending"), lt(aiCalls.createdAt, new Date(now - SETTLE_MS))))
|
|
36
|
+
.orderBy(asc(aiCalls.createdAt))
|
|
37
|
+
.limit(BATCH);
|
|
38
|
+
const gateway = ai.gateway(gatewayId);
|
|
39
|
+
for (const row of due) {
|
|
40
|
+
let cost;
|
|
41
|
+
try {
|
|
42
|
+
cost = (await gateway.getLog(row.callId)).cost;
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
46
|
+
const age = now - row.createdAt.getTime();
|
|
47
|
+
if (/not ?found/i.test(detail)) {
|
|
48
|
+
if (age < GIVE_UP_MS)
|
|
49
|
+
continue; // not written yet — the next run asks again
|
|
50
|
+
}
|
|
51
|
+
else if (age < API_GIVE_UP_MS) {
|
|
52
|
+
// The log API itself is failing (an outage, a permission): stop here rather than hammer it
|
|
53
|
+
// for the rest of the batch. Nothing is closed — a blip must not cost the analytics.
|
|
54
|
+
logger.warn("ai.cost.read-failed", { callId: row.callId, detail });
|
|
55
|
+
reportError(err, { lane: "cron", step: "ai-cost" });
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
cost = null; // gone, or refused for a day: close it so it never blocks the queue
|
|
59
|
+
}
|
|
60
|
+
if (typeof cost === "number" && Number.isFinite(cost)) {
|
|
61
|
+
const micro = Math.round(cost * 1_000_000);
|
|
62
|
+
await db
|
|
63
|
+
.update(aiCalls)
|
|
64
|
+
.set({ costMicroUsd: micro, costStatus: "ok", costAt: new Date(now) })
|
|
65
|
+
.where(eq(aiCalls.callId, row.callId));
|
|
66
|
+
deps.metrics?.count("ai.cost_micro_usd", micro, { op: row.model, outcome: "cloudflare" });
|
|
67
|
+
done.ok++;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
await db
|
|
71
|
+
.update(aiCalls)
|
|
72
|
+
.set({ costStatus: "unavailable", costAt: new Date(now) })
|
|
73
|
+
.where(eq(aiCalls.callId, row.callId));
|
|
74
|
+
logger.info("ai.cost.unavailable", { callId: row.callId, model: row.model });
|
|
75
|
+
done.unavailable++;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return done;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=ai-cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-cost.js","sourceRoot":"","sources":["../../src/cron/ai-cost.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Decision API lane's share of each cron tier (Go Prod §7.3; the tiers are cron/scan.ts
|
|
3
|
+
* `CRON_TIERS`), a no-op unless `API_LANE` is on.
|
|
4
|
+
*
|
|
5
|
+
* minute:
|
|
6
|
+
* - resume: sources paused `engine-credits` come back once the engine's `/me` says ok (one read,
|
|
7
|
+
* only while one is paused) — the sources' half of `cron/billing.ts`; and per-review
|
|
8
|
+
* collections paused for payment (cron/payer-billing.ts);
|
|
9
|
+
* - webhook retry: every delivery whose `nextAttemptAt` has come (lib/api-lane/webhooks.ts); an
|
|
10
|
+
* event enqueued without an inline attempt (`source.*`, `payment.settled`, `balance.low`) gets
|
|
11
|
+
* its first one here;
|
|
12
|
+
* - review batches: the review emails held for a member's 15-minute window go out as one once
|
|
13
|
+
* it has run out (lib/api-lane/reviewers.ts, §10.1) — at most `FLUSH_MEMBERS` members a tick;
|
|
14
|
+
* - the lane's backlog gauges (cron/backlog.ts), after the retry so they show what it left.
|
|
15
|
+
* five (with a facilitator configured — `X402_FACILITATOR_URL`, not `API_PAYMENTS`, whose off must
|
|
16
|
+
* never strand a claim already paid), the payment crons (lib/payments/reconcile.ts):
|
|
17
|
+
* - the reconcile (start reserved claims whose start was lost, re-settle decided claims until
|
|
18
|
+
* their transfer is paid), then the unsettled-charge gauge, which shows what it left;
|
|
19
|
+
* - the balance watch (`balance.low`).
|
|
20
|
+
* hour:
|
|
21
|
+
* - housekeeping: the operational records' trim and the uploads an organisation's own action
|
|
22
|
+
* marked (lib/api-lane/retention.ts) — never a claim's content or personal data, which only the
|
|
23
|
+
* organisation erases. A missed hour is caught up by the next — the sweep reads by time;
|
|
24
|
+
* - the legacy payment-header seal and the review-billing delegation reminders;
|
|
25
|
+
* - reviewers: the 3- and 14-day reminders for claims nobody answered (§10.4), the
|
|
26
|
+
* `claim.review_expired` announcement for a paid review closed unanswered at its `answerBy`
|
|
27
|
+
* (lib/api-lane/notify.ts), and the review rooms' membership (kick whoever's grant ended;
|
|
28
|
+
* `ROOMS_PER_PASS` rooms an hour, least recently synced first) — all read by time;
|
|
29
|
+
* - linked collections: each link's linker must still be a member who may link and the
|
|
30
|
+
* collection's owner on chain (a company link: the engine still names that company), else the
|
|
31
|
+
* link goes (every link an hour up to `RECHECK_CAP`, least recently checked first; a failed
|
|
32
|
+
* read keeps the link but leaves it unverified — lib/api-lane/linked.ts).
|
|
33
|
+
* Each job is contained: one failing never stops the others.
|
|
34
|
+
*/
|
|
35
|
+
import type { CronCtx } from "./collection.js";
|
|
36
|
+
import type { CronTier } from "./scan.js";
|
|
37
|
+
/** `tier`: the trigger that fired (cron/scan.ts) — only its jobs run. */
|
|
38
|
+
export declare function runApiLaneTick(ctx: CronCtx, tier: CronTier, now?: Date): Promise<void>;
|
|
39
|
+
//# sourceMappingURL=api-lane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-lane.d.ts","sourceRoot":"","sources":["../../src/cron/api-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAkBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,yEAAyE;AACzE,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,QAAQ,EACd,GAAG,OAAa,GACf,OAAO,CAAC,IAAI,CAAC,CAsJf"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Decision API lane's share of each cron tier (Go Prod §7.3; the tiers are cron/scan.ts
|
|
3
|
+
* `CRON_TIERS`), a no-op unless `API_LANE` is on.
|
|
4
|
+
*
|
|
5
|
+
* minute:
|
|
6
|
+
* - resume: sources paused `engine-credits` come back once the engine's `/me` says ok (one read,
|
|
7
|
+
* only while one is paused) — the sources' half of `cron/billing.ts`; and per-review
|
|
8
|
+
* collections paused for payment (cron/payer-billing.ts);
|
|
9
|
+
* - webhook retry: every delivery whose `nextAttemptAt` has come (lib/api-lane/webhooks.ts); an
|
|
10
|
+
* event enqueued without an inline attempt (`source.*`, `payment.settled`, `balance.low`) gets
|
|
11
|
+
* its first one here;
|
|
12
|
+
* - review batches: the review emails held for a member's 15-minute window go out as one once
|
|
13
|
+
* it has run out (lib/api-lane/reviewers.ts, §10.1) — at most `FLUSH_MEMBERS` members a tick;
|
|
14
|
+
* - the lane's backlog gauges (cron/backlog.ts), after the retry so they show what it left.
|
|
15
|
+
* five (with a facilitator configured — `X402_FACILITATOR_URL`, not `API_PAYMENTS`, whose off must
|
|
16
|
+
* never strand a claim already paid), the payment crons (lib/payments/reconcile.ts):
|
|
17
|
+
* - the reconcile (start reserved claims whose start was lost, re-settle decided claims until
|
|
18
|
+
* their transfer is paid), then the unsettled-charge gauge, which shows what it left;
|
|
19
|
+
* - the balance watch (`balance.low`).
|
|
20
|
+
* hour:
|
|
21
|
+
* - housekeeping: the operational records' trim and the uploads an organisation's own action
|
|
22
|
+
* marked (lib/api-lane/retention.ts) — never a claim's content or personal data, which only the
|
|
23
|
+
* organisation erases. A missed hour is caught up by the next — the sweep reads by time;
|
|
24
|
+
* - the legacy payment-header seal and the review-billing delegation reminders;
|
|
25
|
+
* - reviewers: the 3- and 14-day reminders for claims nobody answered (§10.4), the
|
|
26
|
+
* `claim.review_expired` announcement for a paid review closed unanswered at its `answerBy`
|
|
27
|
+
* (lib/api-lane/notify.ts), and the review rooms' membership (kick whoever's grant ended;
|
|
28
|
+
* `ROOMS_PER_PASS` rooms an hour, least recently synced first) — all read by time;
|
|
29
|
+
* - linked collections: each link's linker must still be a member who may link and the
|
|
30
|
+
* collection's owner on chain (a company link: the engine still names that company), else the
|
|
31
|
+
* link goes (every link an hour up to `RECHECK_CAP`, least recently checked first; a failed
|
|
32
|
+
* read keeps the link but leaves it unverified — lib/api-lane/linked.ts).
|
|
33
|
+
* Each job is contained: one failing never stops the others.
|
|
34
|
+
*/
|
|
35
|
+
import { and, eq } from "drizzle-orm";
|
|
36
|
+
import { loadConfig } from "../config.js";
|
|
37
|
+
import { apiSources } from "../db/schema.js";
|
|
38
|
+
import { recheckCollectionLinks } from "../lib/api-lane/linked.js";
|
|
39
|
+
import { announceExpiredReviews } from "../lib/api-lane/notify.js";
|
|
40
|
+
import { resumeCreditPausedSources } from "../lib/api-lane/pause.js";
|
|
41
|
+
import { sweepHousekeeping } from "../lib/api-lane/retention.js";
|
|
42
|
+
import { flushReviewBatches, remindReviewers, syncReviewRooms } from "../lib/api-lane/reviewers.js";
|
|
43
|
+
import { deliverDueWebhooks } from "../lib/api-lane/webhooks.js";
|
|
44
|
+
import { createEngineClient } from "../lib/engine/client.js";
|
|
45
|
+
import { timeCronJob } from "../lib/metrics.js";
|
|
46
|
+
import { sealLegacyHeaders } from "../lib/payments/header-seal.js";
|
|
47
|
+
import { reconcilePayments, watchBalances } from "../lib/payments/reconcile.js";
|
|
48
|
+
import { remindCapDelegations, remindExpiringDelegations } from "../lib/payments/review-billing.js";
|
|
49
|
+
import { reportAlert, reportError } from "../lib/sentry.js";
|
|
50
|
+
import { apiBacklog, chargeBacklog } from "./backlog.js";
|
|
51
|
+
import { resumePayerBilling } from "./payer-billing.js";
|
|
52
|
+
/** `tier`: the trigger that fired (cron/scan.ts) — only its jobs run. */
|
|
53
|
+
export async function runApiLaneTick(ctx, tier, now = new Date()) {
|
|
54
|
+
const config = loadConfig(ctx.env);
|
|
55
|
+
if (!config.API_LANE)
|
|
56
|
+
return;
|
|
57
|
+
const { db, logger } = ctx;
|
|
58
|
+
const alerts = { config, cache: ctx.env.CACHE_KV, logger };
|
|
59
|
+
const job = async (name, run) => {
|
|
60
|
+
try {
|
|
61
|
+
await timeCronJob(ctx.metrics, `api-lane.${name}`, run);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
logger.error(`cron.api-lane.${name}.failed`, {
|
|
65
|
+
detail: err instanceof Error ? err.message : String(err),
|
|
66
|
+
});
|
|
67
|
+
// A job that fails here fails every minute until someone looks — the retries, the reconcile
|
|
68
|
+
// and the housekeeping sweep have no other owner.
|
|
69
|
+
reportError(err, { lane: "api-lane", step: name });
|
|
70
|
+
await reportAlert(alerts, `api-lane.job-failed.${name}`, { job: name });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const reviewers = {
|
|
74
|
+
db,
|
|
75
|
+
config,
|
|
76
|
+
logger,
|
|
77
|
+
metrics: ctx.metrics,
|
|
78
|
+
trace: ctx.deps.trace,
|
|
79
|
+
cache: ctx.env.CACHE_KV,
|
|
80
|
+
email: ctx.env.EMAIL,
|
|
81
|
+
};
|
|
82
|
+
if (tier === "minute") {
|
|
83
|
+
await minute();
|
|
84
|
+
}
|
|
85
|
+
else if (tier === "five") {
|
|
86
|
+
await five();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
await hour();
|
|
90
|
+
}
|
|
91
|
+
async function minute() {
|
|
92
|
+
await job("resume", async () => {
|
|
93
|
+
const paused = await db
|
|
94
|
+
.select({ sourceId: apiSources.sourceId })
|
|
95
|
+
.from(apiSources)
|
|
96
|
+
.where(and(eq(apiSources.status, "paused"), eq(apiSources.pausedReason, "engine-credits")))
|
|
97
|
+
.limit(1);
|
|
98
|
+
if (paused.length === 0)
|
|
99
|
+
return;
|
|
100
|
+
const engine = createEngineClient({
|
|
101
|
+
config,
|
|
102
|
+
trace: ctx.deps.trace,
|
|
103
|
+
logger,
|
|
104
|
+
cache: ctx.env.CACHE_KV,
|
|
105
|
+
});
|
|
106
|
+
// Unreachable is not "funded": stay paused until the engine says so (warn, as billing.ts does).
|
|
107
|
+
const me = await engine.me().catch((err) => {
|
|
108
|
+
logger.warn("cron.api-lane.engine-credits.unreadable", { detail: String(err) });
|
|
109
|
+
return null;
|
|
110
|
+
});
|
|
111
|
+
if (me?.billingStatus === "ok")
|
|
112
|
+
await resumeCreditPausedSources(db, logger);
|
|
113
|
+
});
|
|
114
|
+
// Per-review collections paused for payment (cron/payer-billing.ts): only while one is.
|
|
115
|
+
await job("payer-billing-resume", async () => {
|
|
116
|
+
const resumed = await resumePayerBilling({
|
|
117
|
+
db,
|
|
118
|
+
config,
|
|
119
|
+
logger,
|
|
120
|
+
metrics: ctx.metrics,
|
|
121
|
+
trace: ctx.deps.trace,
|
|
122
|
+
cache: ctx.env.CACHE_KV,
|
|
123
|
+
env: ctx.env,
|
|
124
|
+
});
|
|
125
|
+
if (resumed.length > 0)
|
|
126
|
+
logger.info("cron.payer-billing.resumed-all", { resumed });
|
|
127
|
+
});
|
|
128
|
+
await job("webhooks", async () => {
|
|
129
|
+
const attempted = await deliverDueWebhooks({
|
|
130
|
+
db,
|
|
131
|
+
config,
|
|
132
|
+
logger,
|
|
133
|
+
metrics: ctx.metrics,
|
|
134
|
+
cache: ctx.env.CACHE_KV,
|
|
135
|
+
});
|
|
136
|
+
if (attempted > 0)
|
|
137
|
+
logger.info("cron.webhooks.attempted", { attempted });
|
|
138
|
+
});
|
|
139
|
+
await apiBacklog(ctx, now);
|
|
140
|
+
await job("review-batches", async () => {
|
|
141
|
+
const sent = await flushReviewBatches(reviewers, now);
|
|
142
|
+
if (sent > 0)
|
|
143
|
+
logger.info("cron.review-batches.sent", { sent });
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function five() {
|
|
147
|
+
if (!config.X402_FACILITATOR_URL)
|
|
148
|
+
return;
|
|
149
|
+
const pay = { config, logger, trace: ctx.deps.trace, cache: ctx.env.CACHE_KV, db };
|
|
150
|
+
await job("payments-reconcile", () => reconcilePayments({ ...pay, env: ctx.env }, now));
|
|
151
|
+
// After the reconcile, so it shows what arm (b) left; not every minute (cron/backlog.ts says why).
|
|
152
|
+
await chargeBacklog(ctx, now);
|
|
153
|
+
await job("balance-watch", () => watchBalances({ ...pay, metrics: ctx.metrics, email: ctx.env.EMAIL }, now));
|
|
154
|
+
}
|
|
155
|
+
async function hour() {
|
|
156
|
+
// Still named "retention": the `api-lane.retention` timing and the `api-lane.job-failed.retention`
|
|
157
|
+
// alert (decision-engine ops/runbooks) key on it. The job is the housekeeping sweep.
|
|
158
|
+
await job("retention", async () => {
|
|
159
|
+
const swept = await sweepHousekeeping(db, ctx.env.API_UPLOADS, now);
|
|
160
|
+
logger.info("cron.housekeeping.swept", swept);
|
|
161
|
+
});
|
|
162
|
+
// Charge rows written before payment headers were sealed (payments/header-seal.ts): a page an
|
|
163
|
+
// hour until none is left in the clear.
|
|
164
|
+
await job("header-seal", async () => {
|
|
165
|
+
const sealed = await sealLegacyHeaders(db, config);
|
|
166
|
+
if (sealed > 0)
|
|
167
|
+
logger.info("cron.header-seal.sealed", { sealed });
|
|
168
|
+
});
|
|
169
|
+
await job("review-billing-reminders", async () => {
|
|
170
|
+
await remindExpiringDelegations(reviewers, now);
|
|
171
|
+
await remindCapDelegations(reviewers, now);
|
|
172
|
+
});
|
|
173
|
+
await job("review-reminders", async () => {
|
|
174
|
+
const sent = await remindReviewers(reviewers, now);
|
|
175
|
+
if (sent > 0)
|
|
176
|
+
logger.info("cron.review-reminders.sent", { sent });
|
|
177
|
+
});
|
|
178
|
+
await job("review-expiry", async () => {
|
|
179
|
+
const expired = await announceExpiredReviews(db, now);
|
|
180
|
+
if (expired > 0)
|
|
181
|
+
logger.info("cron.review-expiry.announced", { expired });
|
|
182
|
+
});
|
|
183
|
+
await job("review-rooms", () => syncReviewRooms(reviewers, now));
|
|
184
|
+
await job("collection-links", async () => {
|
|
185
|
+
// A company link (register's) is held to the engine's company answer, not a member's.
|
|
186
|
+
const engine = createEngineClient({
|
|
187
|
+
config,
|
|
188
|
+
trace: ctx.deps.trace,
|
|
189
|
+
logger,
|
|
190
|
+
cache: ctx.env.CACHE_KV,
|
|
191
|
+
});
|
|
192
|
+
const dropped = await recheckCollectionLinks({
|
|
193
|
+
db,
|
|
194
|
+
config,
|
|
195
|
+
logger,
|
|
196
|
+
trace: ctx.deps.trace,
|
|
197
|
+
companyOf: (id) => engine.getCollectionCompany(id),
|
|
198
|
+
}, now);
|
|
199
|
+
logger.info("cron.collection-links.rechecked", { dropped });
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=api-lane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-lane.js","sourceRoot":"","sources":["../../src/cron/api-lane.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The backlog gauges, once per minute tick (observability spec §2.2): what is waiting, and how
|
|
3
|
+
* long the oldest of it has waited — the numbers an operator alerts on before a customer notices.
|
|
4
|
+
* Every query is served by an existing index or reads a table with one row per customer, so a
|
|
5
|
+
* tick costs a handful of index reads however large the ledgers grow:
|
|
6
|
+
* - `collections.paused` — `watched_collections (status, lastScannedAt)`;
|
|
7
|
+
* - `review.pending` — `decisions (status, createdAt)` (a fold moves the row off `pending_review`);
|
|
8
|
+
* - `backlog.webhook.*` — `matrix_deliveries (kind, status, nextAttemptAt)`, the retry cron's own;
|
|
9
|
+
* - `sources.paused` — `api_sources`, one row per source;
|
|
10
|
+
* - `backlog.charge.unsettled.oldest_age_s` (with a facilitator configured) — a decided claim
|
|
11
|
+
* with a receipt whose charge is still `reserved`: the facilitator has not accepted the receipt
|
|
12
|
+
* (the reconcile's arm (b)). `api_charges (status, updatedAt)` narrows to the `reserved` rows
|
|
13
|
+
* and each joins `decisions` by its primary key — but the reserved set is every live
|
|
14
|
+
* reservation (claims in flight, reviews held for up to 30 days, failed claims waiting out
|
|
15
|
+
* their 24 h), which grows with traffic, so this one is read after the five-minute reconcile
|
|
16
|
+
* rather than every minute. Age from the decision row's `updatedAt` (the receipt landed with it).
|
|
17
|
+
* Not here: the oldest queued / processing ingest, for want of an index (`claim_ingests` has no
|
|
18
|
+
* `status` index, and migrations are not this lane's to add) — it would scan the whole ledger every
|
|
19
|
+
* minute.
|
|
20
|
+
*
|
|
21
|
+
* Best-effort: a gauge that cannot be read is a warn, never a failed tick.
|
|
22
|
+
*/
|
|
23
|
+
import type { Database } from "../db/client.js";
|
|
24
|
+
import type { CronCtx } from "./collection.js";
|
|
25
|
+
/** Paused rows per reason (`unknown` for none), plus a `total` that is always present. */
|
|
26
|
+
export type ByReason = Record<string, number> & {
|
|
27
|
+
total: number;
|
|
28
|
+
};
|
|
29
|
+
export interface ChainBacklog {
|
|
30
|
+
reviewPending: number;
|
|
31
|
+
collectionsPaused: ByReason;
|
|
32
|
+
}
|
|
33
|
+
export interface ApiBacklog {
|
|
34
|
+
webhookDue: number;
|
|
35
|
+
webhookOldestAgeS: number;
|
|
36
|
+
sourcesPaused: ByReason;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The chain lane's share: paused collections by reason, decisions waiting for a reviewer. Read
|
|
40
|
+
* here, emitted by `chainBacklog` — the operator status route (routes/v1/admin.ts) serves the same
|
|
41
|
+
* numbers live.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readChainBacklog(db: Database): Promise<ChainBacklog>;
|
|
44
|
+
/** The Decision API lane's share: webhooks due for an attempt, and paused sources by reason. */
|
|
45
|
+
export declare function readApiBacklog(db: Database, now: Date): Promise<ApiBacklog>;
|
|
46
|
+
export declare function chainBacklog(ctx: CronCtx): Promise<void>;
|
|
47
|
+
export declare function apiBacklog(ctx: CronCtx, now: Date): Promise<void>;
|
|
48
|
+
/** Decided claims whose receipt the facilitator has not accepted: how long the oldest has waited. */
|
|
49
|
+
export declare function chargeBacklog(ctx: CronCtx, now: Date): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=backlog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/cron/backlog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAS7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,0FAA0F;AAC1F,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,QAAQ,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAU1E;AAED,gGAAgG;AAChG,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAwBjF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9D;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvE;AAWD,qGAAqG;AACrG,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1E"}
|