@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,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The saved ixo AuthHub session — the ONLY signing identity the CLI's chain commands use. `login`
|
|
3
|
+
* (authhub.ts) writes `~/.ixo/publish-session-<network>.json`; everything else loads it here and
|
|
4
|
+
* signs with it.
|
|
5
|
+
*
|
|
6
|
+
* The session shape and the smart-account signing quirks below are transcribed from impacts-x-web
|
|
7
|
+
* (`lib/authHub/index.ts`, `lib/authHub/signAndBroadcastWithSessionKey.ts`) — the portal's own
|
|
8
|
+
* AuthHub client — not re-derived, because every quirk here is load-bearing and silently wrong if
|
|
9
|
+
* guessed:
|
|
10
|
+
*
|
|
11
|
+
* - `getAccounts()` on the signing wallet MUST report the smart-account address with an EMPTY
|
|
12
|
+
* pubkey. That emptiness is the signal the chain reads to authenticate via the smart-account's
|
|
13
|
+
* selected authenticator instead of a standard secp256k1 signature check.
|
|
14
|
+
* - The real messages go into `txBodyBytes` (hand-encoded, carrying a
|
|
15
|
+
* `/ixo.smartaccount.v1beta1.TxExtension` `nonCriticalExtensionOption` naming the session's
|
|
16
|
+
* `sessionAuthenticatorId`) — `signAndBroadcast` is then called with an EMPTY message array and
|
|
17
|
+
* `txBodyBytes` as its last argument, never both.
|
|
18
|
+
* - Fee simulation (`getUsedFee`) MUST be called with the plain messages, NEVER `txBodyBytes` —
|
|
19
|
+
* the chain can't simulate a tx carrying `nonCriticalExtensionOptions` yet, and passing it throws.
|
|
20
|
+
*
|
|
21
|
+
* Nothing here touches the wallet or the network until a command actually broadcasts (`--yes`): both
|
|
22
|
+
* `getPubkey()` and `client.signAndBroadcast()` are lazy so a dry-run plan-print never derives a
|
|
23
|
+
* key or opens an RPC connection — see `buildSessionSigner`.
|
|
24
|
+
*/
|
|
25
|
+
import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
26
|
+
import { homedir } from "node:os";
|
|
27
|
+
import { dirname, join } from "node:path";
|
|
28
|
+
// `long` is a small, dependency-free package (unlike the SDK/cosmjs imports below, which stay
|
|
29
|
+
// dynamic to avoid dragging heavy proto/crypto deps into commands that never sign) — a plain static
|
|
30
|
+
// import here is simpler and gives the real `Long` class type (`fromString` etc.) directly.
|
|
31
|
+
import Long from "long";
|
|
32
|
+
import { API_ACTIONS } from "../../contracts/capabilities.js";
|
|
33
|
+
import { canonicalJson } from "../../lib/hash.js";
|
|
34
|
+
import { actionFor } from "../../middleware/capability.js";
|
|
35
|
+
import { NETWORKS } from "../../networks.js";
|
|
36
|
+
import { fail } from "./chain.js";
|
|
37
|
+
/** One file per network, mode 0600 — the same path the portal-side publish tooling uses, so a
|
|
38
|
+
* provider who has logged in once anywhere is logged in here too. */
|
|
39
|
+
export function sessionPath(network) {
|
|
40
|
+
return join(homedir(), ".ixo", `publish-session-${network}.json`);
|
|
41
|
+
}
|
|
42
|
+
/** Written only by `login`; every other command reads it. */
|
|
43
|
+
export async function saveSession(network, session) {
|
|
44
|
+
const path = sessionPath(network);
|
|
45
|
+
await mkdir(dirname(path), { recursive: true });
|
|
46
|
+
await writeFile(path, JSON.stringify(session, null, 2), { mode: 0o600 });
|
|
47
|
+
await chmod(path, 0o600); // belt & suspenders — writeFile's mode is subject to umask
|
|
48
|
+
return path;
|
|
49
|
+
}
|
|
50
|
+
/** Reads and minimally validates the saved session — fails with the exact re-login command on any
|
|
51
|
+
* problem (missing file, bad JSON, missing the fields signing needs). Login is meant to run ONCE
|
|
52
|
+
* per network: whenever this file exists and is well-formed, every command reuses it silently —
|
|
53
|
+
* this function never triggers a login itself, it only reads what `login` already saved. */
|
|
54
|
+
export async function loadSession(network) {
|
|
55
|
+
const path = sessionPath(network);
|
|
56
|
+
const loginHint = `bunx decision-oracle login --network ${network}`;
|
|
57
|
+
const noSessionMessage = `no AuthHub session for ${network} — log in ONCE with: ${loginHint}\n` +
|
|
58
|
+
" (after that, this and every other chain command reuses the saved session automatically — " +
|
|
59
|
+
"no repeated logins).";
|
|
60
|
+
let raw;
|
|
61
|
+
try {
|
|
62
|
+
raw = await readFile(path, "utf8");
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
fail(noSessionMessage);
|
|
66
|
+
}
|
|
67
|
+
let session;
|
|
68
|
+
try {
|
|
69
|
+
session = JSON.parse(raw);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
fail(`${path} is not valid JSON — re-run: ${loginHint}`);
|
|
73
|
+
}
|
|
74
|
+
if (!session.address || !session.did) {
|
|
75
|
+
fail(`${path} is missing address/did — re-run: ${loginHint}`);
|
|
76
|
+
}
|
|
77
|
+
return session;
|
|
78
|
+
}
|
|
79
|
+
/** `network → loadSession → buildSessionSigner` — the ONE signer builder every chain command uses. */
|
|
80
|
+
export async function buildSigner(network) {
|
|
81
|
+
return buildSessionSigner(network, await loadSession(network));
|
|
82
|
+
}
|
|
83
|
+
// --- session signer ---------------------------------------------------------------------------------
|
|
84
|
+
/**
|
|
85
|
+
* The mnemonic-driven twin of the passkey/SignX signers in impacts-x-web's `useSignX` — the
|
|
86
|
+
* difference is only where the key lives (a session mnemonic here vs. the device enclave for a
|
|
87
|
+
* passkey). `getAccounts()` MUST report the smart-account address with an EMPTY pubkey; that's what
|
|
88
|
+
* tells the chain to authenticate via the selected authenticator instead of standard sig
|
|
89
|
+
* verification. Ported from impacts-x-web's `SessionKeySigner`.
|
|
90
|
+
*/
|
|
91
|
+
class SmartAccountSessionSigner {
|
|
92
|
+
wallet;
|
|
93
|
+
smartAccountAddress;
|
|
94
|
+
constructor(wallet, smartAccountAddress) {
|
|
95
|
+
this.wallet = wallet;
|
|
96
|
+
this.smartAccountAddress = smartAccountAddress;
|
|
97
|
+
}
|
|
98
|
+
async getAccounts() {
|
|
99
|
+
return [{ address: this.smartAccountAddress, algo: "secp256k1", pubkey: new Uint8Array() }];
|
|
100
|
+
}
|
|
101
|
+
async signDirect(_signerAddress, signDoc) {
|
|
102
|
+
const [account] = await this.wallet.getAccounts();
|
|
103
|
+
if (!account)
|
|
104
|
+
throw new Error("session wallet yielded no account");
|
|
105
|
+
return this.wallet.signDirect(account.address, signDoc);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** Sequence/signer-data cache `createSigningClient` needs — an in-memory replacement for the
|
|
109
|
+
* portal's localStorage-backed store (`lib/cosmos/signerSequenceStore.ts`). No JSON
|
|
110
|
+
* serialization round-trip is needed (unlike localStorage, a `Map` holds the object directly), so
|
|
111
|
+
* the "poisoned by a stringified object" bug that store works around can't happen here. Scoped to
|
|
112
|
+
* one command invocation: intentionally forgotten when the process exits. */
|
|
113
|
+
function createInMemorySignerStore() {
|
|
114
|
+
const memory = new Map();
|
|
115
|
+
return {
|
|
116
|
+
getLocalData: async (key) => memory.get(key) ?? null,
|
|
117
|
+
setLocalData: (key, data) => {
|
|
118
|
+
memory.set(key, data);
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/** The `uixo`-denominated amount from a Coin[] spend-limit array, or `undefined` when there's no
|
|
123
|
+
* such limit (an empty/missing array, or one with no `uixo` entry) — mirrors the portal's
|
|
124
|
+
* `decodeGrants` extraction (`utils/feegrant.ts`), which treats "no limit found" as unlimited. */
|
|
125
|
+
function uixoSpendLimit(coins) {
|
|
126
|
+
const coin = coins?.find((c) => c.denom === "uixo");
|
|
127
|
+
return coin ? Number(coin.amount) : undefined;
|
|
128
|
+
}
|
|
129
|
+
/** Ported from impacts-x-web's `isAllowanceLimitReached` (`utils/feegrant.ts`): `undefined` (no
|
|
130
|
+
* limit found at all) is never "reached" — an unlimited allowance is always usable. A defined
|
|
131
|
+
* limit counts as drained at effectively zero (`<= 0.0005`), the portal's own threshold, not
|
|
132
|
+
* strictly `=== 0`. */
|
|
133
|
+
function isSpendLimitReached(limit) {
|
|
134
|
+
return limit !== undefined && limit <= 0.0005;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Best-effort feegrant lookup (ported from impacts-x-web's `getAddressFeegrantGranter`, minus the
|
|
138
|
+
* faucet top-up the portal does alongside it — out of scope for a chain-authoring command). Returns
|
|
139
|
+
* the granter of the first unexpired allowance found, or `undefined` on no grant / any failure — a
|
|
140
|
+
* chain-read hiccup here must never block a real broadcast.
|
|
141
|
+
*/
|
|
142
|
+
async function lookupFeegrantGranter(network, granteeAddress) {
|
|
143
|
+
try {
|
|
144
|
+
const { createQueryClient, createRegistry } = await import("@ixo/impactxclient-sdk");
|
|
145
|
+
const queryClient = await createQueryClient(NETWORKS[network].rpc);
|
|
146
|
+
const { allowances } = await queryClient.cosmos.feegrant.v1beta1.allowances({
|
|
147
|
+
grantee: granteeAddress,
|
|
148
|
+
});
|
|
149
|
+
if (!allowances || allowances.length === 0)
|
|
150
|
+
return undefined;
|
|
151
|
+
const registry = createRegistry();
|
|
152
|
+
const now = Date.now();
|
|
153
|
+
for (const grant of allowances) {
|
|
154
|
+
try {
|
|
155
|
+
// biome-ignore lint/suspicious/noExplicitAny: decoded shape varies by allowance type (Basic/Periodic/...)
|
|
156
|
+
const decoded = registry.decode(grant.allowance);
|
|
157
|
+
const expiration = decoded?.expiration ?? decoded?.basic?.expiration;
|
|
158
|
+
if (expiration) {
|
|
159
|
+
const expiresAtMs = Number(expiration.seconds) * 1000 + Math.floor((expiration.nanos ?? 0) / 1e6);
|
|
160
|
+
if (expiresAtMs < now)
|
|
161
|
+
continue; // expired — try the next allowance
|
|
162
|
+
}
|
|
163
|
+
// Periodic allowances cap spend per-period (periodCanSpend) ON TOP OF the lifetime cap
|
|
164
|
+
// (basic.spendLimit) — prefer the per-period figure when present, the same priority the
|
|
165
|
+
// portal's decodeGrants uses, since it's the tighter, more current number.
|
|
166
|
+
const periodCoins = decoded?.periodCanSpend;
|
|
167
|
+
const spendLimitCoins = periodCoins?.length
|
|
168
|
+
? periodCoins
|
|
169
|
+
: (decoded?.spendLimit ?? decoded?.basic?.spendLimit);
|
|
170
|
+
if (isSpendLimitReached(uixoSpendLimit(spendLimitCoins)))
|
|
171
|
+
continue; // drained — try the next
|
|
172
|
+
if (grant.granter)
|
|
173
|
+
return grant.granter;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// an allowance type this lookup doesn't decode — skip it, not fatal
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** The actual signing + broadcast, built fresh per call (never cached) — this is the ONLY place a
|
|
186
|
+
* session mnemonic gets turned into a live wallet + RPC connection, and it only runs from inside
|
|
187
|
+
* `client.signAndBroadcast`, i.e. after `confirm()`'s `--yes` gate has already passed. */
|
|
188
|
+
async function signAndBroadcastWithSession(network, session, msgs, memo) {
|
|
189
|
+
const mnemonic = session.sessionMnemonic ?? fail("AuthHub session has no sessionMnemonic — re-run login");
|
|
190
|
+
const authenticatorId = session.sessionAuthenticatorId ??
|
|
191
|
+
fail("AuthHub session has no sessionAuthenticatorId — re-run login");
|
|
192
|
+
const [{ createSigningClient, ixo }, { DirectSecp256k1HdWallet }, { GasPrice }] = await Promise.all([
|
|
193
|
+
import("@ixo/impactxclient-sdk"),
|
|
194
|
+
import("@cosmjs/proto-signing"),
|
|
195
|
+
import("@cosmjs/stargate"),
|
|
196
|
+
]);
|
|
197
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "ixo" });
|
|
198
|
+
const offlineSigner = new SmartAccountSessionSigner(wallet, session.address);
|
|
199
|
+
const client = await createSigningClient(NETWORKS[network].rpc, offlineSigner, false, { gasPrice: GasPrice.fromString("0.025uixo") }, createInMemorySignerStore());
|
|
200
|
+
const sigAuthId = Long.fromString(authenticatorId);
|
|
201
|
+
const txBodyBytes = client.registry.encodeTxBody({
|
|
202
|
+
messages: msgs,
|
|
203
|
+
memo,
|
|
204
|
+
nonCriticalExtensionOptions: [
|
|
205
|
+
{
|
|
206
|
+
typeUrl: "/ixo.smartaccount.v1beta1.TxExtension",
|
|
207
|
+
value: ixo.smartaccount.v1beta1.TxExtension.encode({
|
|
208
|
+
selectedAuthenticators: msgs.map(() => sigAuthId),
|
|
209
|
+
}).finish(),
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
});
|
|
213
|
+
// NEVER pass txBodyBytes here — the chain can't simulate a tx carrying
|
|
214
|
+
// nonCriticalExtensionOptions yet, and doing so throws. Plain messages only.
|
|
215
|
+
let usedFee = await client.getUsedFee(session.address, msgs, "auto", memo);
|
|
216
|
+
const granter = await lookupFeegrantGranter(network, session.address);
|
|
217
|
+
if (granter)
|
|
218
|
+
usedFee = { ...usedFee, granter };
|
|
219
|
+
// Empty message array — the real messages already live inside txBodyBytes (with the
|
|
220
|
+
// TxExtension); passing them again here would double-encode the tx body.
|
|
221
|
+
return client.signAndBroadcast(session.address, [], usedFee, memo, undefined, txBodyBytes);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* `session → PublishSigner`. Deliberately does NOT touch the wallet or the network here — both
|
|
225
|
+
* `getPubkey()` and `client.signAndBroadcast()` defer everything session-mnemonic-related until
|
|
226
|
+
* actually called, which only happens after `confirm()`'s `--yes` gate. A dry-run invocation that
|
|
227
|
+
* only ever calls `confirm()` (and exits before it returns) never constructs a wallet, never opens
|
|
228
|
+
* an RPC connection — even with a garbage `sessionMnemonic` in the session file.
|
|
229
|
+
*/
|
|
230
|
+
export async function buildSessionSigner(network, session) {
|
|
231
|
+
let cachedPubkey;
|
|
232
|
+
return {
|
|
233
|
+
network,
|
|
234
|
+
address: session.address,
|
|
235
|
+
did: session.did,
|
|
236
|
+
session,
|
|
237
|
+
async getPubkey() {
|
|
238
|
+
if (cachedPubkey)
|
|
239
|
+
return cachedPubkey;
|
|
240
|
+
const mnemonic = session.sessionMnemonic ?? fail("AuthHub session has no sessionMnemonic — re-run login");
|
|
241
|
+
const { DirectSecp256k1HdWallet } = await import("@cosmjs/proto-signing");
|
|
242
|
+
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { prefix: "ixo" });
|
|
243
|
+
const [account] = await wallet.getAccounts();
|
|
244
|
+
if (!account)
|
|
245
|
+
fail("session mnemonic yielded no account");
|
|
246
|
+
cachedPubkey = account.pubkey;
|
|
247
|
+
return cachedPubkey;
|
|
248
|
+
},
|
|
249
|
+
client: {
|
|
250
|
+
async signAndBroadcast(_address, msgs, _fee, memo = "") {
|
|
251
|
+
return signAndBroadcastWithSession(network, session, msgs, memo);
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
// --- calling this oracle's own API as the session -------------------------------------------------
|
|
257
|
+
/**
|
|
258
|
+
* One self-signed `@ixo/ucan` invocation from the session's DID to the oracle's did:web (read off
|
|
259
|
+
* its own `/.well-known/did.json`), `{ can: <the route's action>, with: "ixo:eval-oracle" }` — the
|
|
260
|
+
* action from the chain lane's own table (`middleware/capability.ts` `ROUTE_ACTIONS`), exactly what
|
|
261
|
+
* the oracle verifies, with a fresh nonce per call so two calls never share a CID. This is the
|
|
262
|
+
* COMMISSIONER's identity (the wallet that created the collection), which is what `register` and
|
|
263
|
+
* `scan` are gated on.
|
|
264
|
+
*
|
|
265
|
+
* `api` makes it a Decision API console invocation (`middleware/api/console.ts`): the `with` is
|
|
266
|
+
* derived from the oracle's did:web (`ixo:oracle/<did:web>[/source/<id>]`) and the `can` is the
|
|
267
|
+
* route's `op` action from the lane's own table (`contracts/capabilities.ts` `API_ACTIONS`).
|
|
268
|
+
*/
|
|
269
|
+
export async function kitFetch(session, kitUrl, path, init = {}, api) {
|
|
270
|
+
const method = init.method ?? "POST";
|
|
271
|
+
// A path with no chain-lane action is a CLI bug, never a reason to sign `*`.
|
|
272
|
+
const route = api ? null : actionFor(method, path.split("?")[0] ?? path);
|
|
273
|
+
if (!api && !route) {
|
|
274
|
+
throw new Error(`no chain-lane action for ${method} ${path} (middleware/capability.ts)`);
|
|
275
|
+
}
|
|
276
|
+
const can = api ? API_ACTIONS[api.op] : route?.action;
|
|
277
|
+
const { token, did } = await sessionInvocation(session, kitUrl, "oracle", (audience) => ({
|
|
278
|
+
can,
|
|
279
|
+
with: api?.resource(audience) ?? "ixo:eval-oracle",
|
|
280
|
+
}));
|
|
281
|
+
const res = await fetch(`${kitUrl}${path}`, {
|
|
282
|
+
...init,
|
|
283
|
+
method,
|
|
284
|
+
headers: {
|
|
285
|
+
...(init.headers ?? {}),
|
|
286
|
+
authorization: `Bearer ${token}`,
|
|
287
|
+
"x-auth-type": "ucan",
|
|
288
|
+
"content-type": "application/json",
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
return { res, did };
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* One self-signed invocation from the session's DID to the service at `serviceUrl` — the oracle
|
|
295
|
+
* (`kitFetch`) or the engine (`api source link`'s `company/link`): audience its did:web, read off
|
|
296
|
+
* its own `/.well-known/did.json`, the ONE capability the caller names, 120 s, no proofs (the
|
|
297
|
+
* session invokes as itself), a fresh nonce so two calls never share a CID.
|
|
298
|
+
*/
|
|
299
|
+
export async function sessionInvocation(session, serviceUrl, label, capability) {
|
|
300
|
+
const edSigningMnemonic = session.edSigningMnemonic ?? fail("AuthHub session has no edSigningMnemonic — re-run login");
|
|
301
|
+
const { createInvocation, serializeInvocation, signerFromMnemonic } = await import("@ixo/ucan");
|
|
302
|
+
const { signer, did } = await signerFromMnemonic(edSigningMnemonic, session.did);
|
|
303
|
+
// Reading the service's own did.json is also the reachability check — naming the URL here is
|
|
304
|
+
// the whole diagnostic when a provider points this at something that isn't running.
|
|
305
|
+
const audience = await fetch(`${serviceUrl}/.well-known/did.json`)
|
|
306
|
+
.then(async (res) => (await res.json()).id)
|
|
307
|
+
.catch((err) => fail(`${label} unreachable at ${serviceUrl} — is it running? (${err instanceof Error ? err.message : String(err)})`));
|
|
308
|
+
const { can, with: resource } = capability(audience);
|
|
309
|
+
const invocation = await createInvocation({
|
|
310
|
+
issuer: signer,
|
|
311
|
+
audience,
|
|
312
|
+
capability: { can: can, with: resource },
|
|
313
|
+
proofs: [],
|
|
314
|
+
expiration: Math.floor(Date.now() / 1000) + 120,
|
|
315
|
+
facts: [{ nonce: crypto.randomUUID() }],
|
|
316
|
+
});
|
|
317
|
+
return { token: await serializeInvocation(invocation), did, audience };
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* The organisation's company link (docs/ENGINE-CONTRACT.md "The company link"), signed as the
|
|
321
|
+
* session — a current controller of `entityDid` — the way the Decision Console's "Add oracle" does
|
|
322
|
+
* it (eval-engine-dashboard `lib/companyLink.ts`): a compact JWS in the review-attestation format,
|
|
323
|
+
* `kid` the did:key of the session's Ed25519 key (the one its IID publishes, the same key every
|
|
324
|
+
* invocation signs with), the payload canonical JSON (the engine re-serializes it and refuses any
|
|
325
|
+
* other bytes). `payeeField` null: the console's "Add oracle" names none either.
|
|
326
|
+
*/
|
|
327
|
+
export async function signCompanyLink(session, link, now = new Date()) {
|
|
328
|
+
const edSigningMnemonic = session.edSigningMnemonic ?? fail("AuthHub session has no edSigningMnemonic — re-run login");
|
|
329
|
+
const { signerFromMnemonic } = await import("@ixo/ucan");
|
|
330
|
+
const { signer } = await signerFromMnemonic(edSigningMnemonic, session.did);
|
|
331
|
+
const issuedAt = now.toISOString();
|
|
332
|
+
const header = { alg: "EdDSA", typ: "vc+jwt", cty: "vc", kid: signer.toDIDKey() };
|
|
333
|
+
const payload = {
|
|
334
|
+
"@context": ["https://www.w3.org/ns/credentials/v2"],
|
|
335
|
+
type: ["VerifiableCredential", "SourceCompanyLink"],
|
|
336
|
+
issuer: session.did,
|
|
337
|
+
validFrom: issuedAt,
|
|
338
|
+
credentialSubject: {
|
|
339
|
+
id: link.entityDid,
|
|
340
|
+
entityDid: link.entityDid,
|
|
341
|
+
oracleDid: link.oracleDid,
|
|
342
|
+
sourceId: link.sourceId,
|
|
343
|
+
payeeField: null,
|
|
344
|
+
issuedAt,
|
|
345
|
+
nonce: b64url(crypto.getRandomValues(new Uint8Array(16))),
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
const utf8 = (s) => new TextEncoder().encode(s);
|
|
349
|
+
const input = `${b64url(utf8(canonicalJson(header)))}.${b64url(utf8(canonicalJson(payload)))}`;
|
|
350
|
+
const signature = await signer.sign(utf8(input));
|
|
351
|
+
return `${input}.${b64url(signature.raw)}`;
|
|
352
|
+
}
|
|
353
|
+
const b64url = (bytes) => Buffer.from(bytes).toString("base64url");
|
|
354
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/lib/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rubric's work order sorted into the only two piles a provider cares about: names the STOCK
|
|
3
|
+
* lane can answer as declared, and names that need a handler of their own. Pure — manifest in,
|
|
4
|
+
* classification out — so `protocol review` prints it and `facts scaffold` writes files from it,
|
|
5
|
+
* and the two can never disagree about which is which.
|
|
6
|
+
*
|
|
7
|
+
* There is exactly one MECHANICAL "needs a handler": a `send` map that quotes a `~derived` value.
|
|
8
|
+
* The engine computes derived values and this oracle never binds a rubric, so the stock lane can
|
|
9
|
+
* only ever answer such a source with an error — that is a fact about the format, not a guess.
|
|
10
|
+
*
|
|
11
|
+
* And one mechanical REFUSAL, which no handler fixes: a source whose audience is not its
|
|
12
|
+
* endpoint's own did:web. The stock lane never signs for it (stock/ext-source.ts), and a handler
|
|
13
|
+
* signing for the URL it calls would not be answering the source the rubric declared — the
|
|
14
|
+
* rubric is wrong, so its author fixes it. Nothing is scaffolded for it.
|
|
15
|
+
* Everything else is a judgement the provider has to make about their own endpoint or judge, and it
|
|
16
|
+
* rides in `why` as a caveat rather than as a false certainty either way.
|
|
17
|
+
*/
|
|
18
|
+
import type { Manifest, ManifestExt } from "../../lib/engine/types.js";
|
|
19
|
+
/** What the kit's own lane does with a declared rule: answers it, was never asked, or can't run it. */
|
|
20
|
+
export type RuleCoverage = "none" | "stock" | "unrunnable";
|
|
21
|
+
export interface FactWork {
|
|
22
|
+
kind: "ext" | "ai";
|
|
23
|
+
name: string;
|
|
24
|
+
/** false ⇒ nothing but a handler can answer this name (unless `refused`). */
|
|
25
|
+
stock: boolean;
|
|
26
|
+
/** The rubric declares a source the oracle will not call (audience ≠ endpoint) — fix the rubric. */
|
|
27
|
+
refused: boolean;
|
|
28
|
+
/** The `~derived` refs its `send` map quotes — empty unless `stock` is false. */
|
|
29
|
+
derived: string[];
|
|
30
|
+
/** One sentence: what makes it stock-shaped, or what a handler has to do instead. */
|
|
31
|
+
why: string;
|
|
32
|
+
/** The rules that read the fact — `gate:<code>` / `criterion:<code>`. */
|
|
33
|
+
usedBy: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface WorkOrder {
|
|
36
|
+
/** The verified rubric id the engine bound — sha256 of its bytes. */
|
|
37
|
+
rubricId: string;
|
|
38
|
+
/** The pinned `#vct` proof no longer matches the live form (the engine's call, informational). */
|
|
39
|
+
formDrifted: boolean;
|
|
40
|
+
ext: FactWork[];
|
|
41
|
+
ai: FactWork[];
|
|
42
|
+
unique: RuleCoverage;
|
|
43
|
+
frequency: RuleCoverage;
|
|
44
|
+
/** `ext.<name>` / `ai.<name>` for every name a handler must answer — what `facts scaffold` writes. */
|
|
45
|
+
handlersNeeded: string[];
|
|
46
|
+
/** `ext.<name>` for every source the oracle refuses to call — the rubric must change. */
|
|
47
|
+
refused: string[];
|
|
48
|
+
}
|
|
49
|
+
/** The endpoint's own did:web when the source's audience is NOT it — the stock lane refuses to sign. */
|
|
50
|
+
export declare function audienceMismatch(source: ManifestExt): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* What the oracle will sign and send for one source, plus what it refuses from the rubric — the
|
|
53
|
+
* lines `protocol review` and `rubric validate` print under each ext name.
|
|
54
|
+
*/
|
|
55
|
+
export declare function extCallLines(source: ManifestExt): string[];
|
|
56
|
+
export declare function classify(manifest: Manifest): WorkOrder;
|
|
57
|
+
//# sourceMappingURL=workorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workorder.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/workorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAc,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIhF,uGAAuG;AACvG,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf,oGAAoG;IACpG,OAAO,EAAE,OAAO,CAAC;IACjB,iFAAiF;IACjF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qFAAqF;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,kGAAkG;IAClG,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,EAAE,EAAE,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,sGAAsG;IACtG,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yFAAyF;IACzF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAa1D;AAoCD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAqBtD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rubric's work order sorted into the only two piles a provider cares about: names the STOCK
|
|
3
|
+
* lane can answer as declared, and names that need a handler of their own. Pure — manifest in,
|
|
4
|
+
* classification out — so `protocol review` prints it and `facts scaffold` writes files from it,
|
|
5
|
+
* and the two can never disagree about which is which.
|
|
6
|
+
*
|
|
7
|
+
* There is exactly one MECHANICAL "needs a handler": a `send` map that quotes a `~derived` value.
|
|
8
|
+
* The engine computes derived values and this oracle never binds a rubric, so the stock lane can
|
|
9
|
+
* only ever answer such a source with an error — that is a fact about the format, not a guess.
|
|
10
|
+
*
|
|
11
|
+
* And one mechanical REFUSAL, which no handler fixes: a source whose audience is not its
|
|
12
|
+
* endpoint's own did:web. The stock lane never signs for it (stock/ext-source.ts), and a handler
|
|
13
|
+
* signing for the URL it calls would not be answering the source the rubric declared — the
|
|
14
|
+
* rubric is wrong, so its author fixes it. Nothing is scaffolded for it.
|
|
15
|
+
* Everything else is a judgement the provider has to make about their own endpoint or judge, and it
|
|
16
|
+
* rides in `why` as a caveat rather than as a false certainty either way.
|
|
17
|
+
*/
|
|
18
|
+
import { DEFAULT_CAPABILITY, urlAudience } from "../../lib/facts/stock/capability.js";
|
|
19
|
+
import { derivedSendRefs } from "../../lib/facts/stock/send.js";
|
|
20
|
+
const CONTRACT = { boolean: "{ valid: boolean }", score: "{ score: 0..10000 }" };
|
|
21
|
+
/** The endpoint's own did:web when the source's audience is NOT it — the stock lane refuses to sign. */
|
|
22
|
+
export function audienceMismatch(source) {
|
|
23
|
+
let expected;
|
|
24
|
+
try {
|
|
25
|
+
expected = urlAudience(source.endpoint);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null; // the endpoint policy refuses it first, with its own detail
|
|
29
|
+
}
|
|
30
|
+
return source.audience === expected ? null : expected;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* What the oracle will sign and send for one source, plus what it refuses from the rubric — the
|
|
34
|
+
* lines `protocol review` and `rubric validate` print under each ext name.
|
|
35
|
+
*/
|
|
36
|
+
export function extCallLines(source) {
|
|
37
|
+
const expected = audienceMismatch(source);
|
|
38
|
+
const lines = [
|
|
39
|
+
expected
|
|
40
|
+
? `ERROR: this source will not be called: its audience ${source.audience} is not the endpoint's own did:web (${expected}) — the oracle signs only for the host it calls`
|
|
41
|
+
: `calls POST ${source.endpoint} — UCAN from this oracle's did:web to ${source.audience}, capability ${DEFAULT_CAPABILITY.with} (a handler may set its own)`,
|
|
42
|
+
];
|
|
43
|
+
if (source.capability) {
|
|
44
|
+
lines.push(`WARNING: the rubric declares capability ${JSON.stringify(source.capability)} — ignored: the oracle's developer owns the capability`);
|
|
45
|
+
}
|
|
46
|
+
return lines;
|
|
47
|
+
}
|
|
48
|
+
function extWork(name, source) {
|
|
49
|
+
const derived = derivedSendRefs(source.send);
|
|
50
|
+
const expected = audienceMismatch(source);
|
|
51
|
+
return {
|
|
52
|
+
kind: "ext",
|
|
53
|
+
name,
|
|
54
|
+
stock: derived.length === 0 && expected === null,
|
|
55
|
+
refused: expected !== null,
|
|
56
|
+
derived,
|
|
57
|
+
why: expected
|
|
58
|
+
? `audience ${source.audience} is not the endpoint's did:web ${expected}`
|
|
59
|
+
: derived.length > 0
|
|
60
|
+
? `reads ${derived.join(", ")}`
|
|
61
|
+
: `stock-coverable IF ${source.endpoint} accepts a self-signed UCAN POST (audience ${source.audience}) and answers the strict ${CONTRACT[source.expect]} contract — a vendor API with another shape or auth needs a handler`,
|
|
62
|
+
usedBy: source.usedBy,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function aiWork(name, check) {
|
|
66
|
+
const derived = derivedSendRefs(check.send);
|
|
67
|
+
return {
|
|
68
|
+
kind: "ai",
|
|
69
|
+
name,
|
|
70
|
+
stock: derived.length === 0,
|
|
71
|
+
refused: false,
|
|
72
|
+
derived,
|
|
73
|
+
why: derived.length > 0
|
|
74
|
+
? `reads ${derived.join(", ")}`
|
|
75
|
+
: "stock-coverable: an AI check against these instructions (needs the AI provider configured — AI_PROVIDER + its binding/key — and policies.allowAiChecks) — only a vendor-specific model or vision API needs a handler",
|
|
76
|
+
usedBy: check.usedBy,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function classify(manifest) {
|
|
80
|
+
const ext = Object.entries(manifest.ext).map(([name, source]) => extWork(name, source));
|
|
81
|
+
const ai = Object.entries(manifest.ai).map(([name, check]) => aiWork(name, check));
|
|
82
|
+
return {
|
|
83
|
+
rubricId: manifest.rubricId,
|
|
84
|
+
formDrifted: manifest.formProof.drifted,
|
|
85
|
+
ext,
|
|
86
|
+
ai,
|
|
87
|
+
unique: manifest.unique ? "stock" : "none",
|
|
88
|
+
// A frequency rule the engine sent without `max`/`per` cannot be run by anyone — the stock lane
|
|
89
|
+
// produces nothing and the build is refused (lib/facts/stock/rule-defaults.ts).
|
|
90
|
+
frequency: manifest.frequency
|
|
91
|
+
? manifest.frequency.max !== undefined && manifest.frequency.per !== undefined
|
|
92
|
+
? "stock"
|
|
93
|
+
: "unrunnable"
|
|
94
|
+
: "none",
|
|
95
|
+
handlersNeeded: [...ext, ...ai]
|
|
96
|
+
.filter((w) => !w.stock && !w.refused)
|
|
97
|
+
.map((w) => `${w.kind}.${w.name}`),
|
|
98
|
+
refused: ext.filter((w) => w.refused).map((w) => `${w.kind}.${w.name}`),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=workorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workorder.js","sourceRoot":"","sources":["../../../src/cli/lib/workorder.ts"],"names":[],"mappings":"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"}
|