@ixo/openhands-sdk 0.4.1 → 0.6.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 +2 -2
- package/dist/cjs/campaign/cleanup.js +1 -1
- package/dist/cjs/campaign/cleanup.js.map +1 -1
- package/dist/cjs/campaign/funding.js +3 -3
- package/dist/cjs/campaign/funding.js.map +1 -1
- package/dist/cjs/campaign/spot.d.ts.map +1 -1
- package/dist/cjs/campaign/spot.js +2 -1
- package/dist/cjs/campaign/spot.js.map +1 -1
- package/dist/cjs/chain/ask.d.ts +72 -2
- package/dist/cjs/chain/ask.d.ts.map +1 -1
- package/dist/cjs/chain/ask.js +68 -34
- package/dist/cjs/chain/ask.js.map +1 -1
- package/dist/cjs/chain/broadcast.d.ts.map +1 -1
- package/dist/cjs/chain/broadcast.js +6 -4
- package/dist/cjs/chain/broadcast.js.map +1 -1
- package/dist/cjs/chain/claimVerdict.d.ts +26 -0
- package/dist/cjs/chain/claimVerdict.d.ts.map +1 -0
- package/dist/cjs/chain/claimVerdict.js +33 -0
- package/dist/cjs/chain/claimVerdict.js.map +1 -0
- package/dist/cjs/chain/delegate.d.ts +54 -13
- package/dist/cjs/chain/delegate.d.ts.map +1 -1
- package/dist/cjs/chain/delegate.js +77 -28
- package/dist/cjs/chain/delegate.js.map +1 -1
- package/dist/cjs/chain/entityShape.d.ts +2 -0
- package/dist/cjs/chain/entityShape.d.ts.map +1 -1
- package/dist/cjs/chain/entityShape.js +8 -1
- package/dist/cjs/chain/entityShape.js.map +1 -1
- package/dist/cjs/chain/env.d.ts +1 -0
- package/dist/cjs/chain/env.d.ts.map +1 -1
- package/dist/cjs/chain/env.js +9 -1
- package/dist/cjs/chain/env.js.map +1 -1
- package/dist/cjs/chain/inviteMessages.d.ts +224 -0
- package/dist/cjs/chain/inviteMessages.d.ts.map +1 -0
- package/dist/cjs/chain/inviteMessages.js +347 -0
- package/dist/cjs/chain/inviteMessages.js.map +1 -0
- package/dist/cjs/chain/inviteProof.d.ts +121 -0
- package/dist/cjs/chain/inviteProof.d.ts.map +1 -0
- package/dist/cjs/chain/inviteProof.js +297 -0
- package/dist/cjs/chain/inviteProof.js.map +1 -0
- package/dist/cjs/chain/lane.d.ts +148 -0
- package/dist/cjs/chain/lane.d.ts.map +1 -0
- package/dist/cjs/chain/lane.js +220 -0
- package/dist/cjs/chain/lane.js.map +1 -0
- package/dist/cjs/chain/money.d.ts +24 -17
- package/dist/cjs/chain/money.d.ts.map +1 -1
- package/dist/cjs/chain/money.js +28 -29
- package/dist/cjs/chain/money.js.map +1 -1
- package/dist/cjs/chain/oracle.d.ts +2 -0
- package/dist/cjs/chain/oracle.d.ts.map +1 -1
- package/dist/cjs/chain/oracle.js +1 -1
- package/dist/cjs/chain/oracle.js.map +1 -1
- package/dist/cjs/chain/orgReviewBilling.d.ts +1 -1
- package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -1
- package/dist/cjs/chain/orgReviewBilling.js +16 -15
- package/dist/cjs/chain/orgReviewBilling.js.map +1 -1
- package/dist/cjs/chain/payoutTerms.d.ts.map +1 -1
- package/dist/cjs/chain/payoutTerms.js +1 -1
- package/dist/cjs/chain/payoutTerms.js.map +1 -1
- package/dist/cjs/chain/personReview.d.ts +218 -0
- package/dist/cjs/chain/personReview.d.ts.map +1 -0
- package/dist/cjs/chain/personReview.js +379 -0
- package/dist/cjs/chain/personReview.js.map +1 -0
- package/dist/cjs/chain/postFee.d.ts +11 -0
- package/dist/cjs/chain/postFee.d.ts.map +1 -0
- package/dist/cjs/chain/postFee.js +14 -0
- package/dist/cjs/chain/postFee.js.map +1 -0
- package/dist/cjs/chain/query.d.ts +55 -2
- package/dist/cjs/chain/query.d.ts.map +1 -1
- package/dist/cjs/chain/query.js +144 -8
- package/dist/cjs/chain/query.js.map +1 -1
- package/dist/cjs/chain/reviewBilling.d.ts +3 -27
- package/dist/cjs/chain/reviewBilling.d.ts.map +1 -1
- package/dist/cjs/chain/reviewBilling.js +5 -112
- package/dist/cjs/chain/reviewBilling.js.map +1 -1
- package/dist/cjs/chain/rewardDenom.d.ts +6 -0
- package/dist/cjs/chain/rewardDenom.d.ts.map +1 -0
- package/dist/cjs/chain/rewardDenom.js +9 -0
- package/dist/cjs/chain/rewardDenom.js.map +1 -0
- package/dist/cjs/chain/sponsor.d.ts +1 -1
- package/dist/cjs/chain/sponsor.d.ts.map +1 -1
- package/dist/cjs/chain/sponsor.js +8 -4
- package/dist/cjs/chain/sponsor.js.map +1 -1
- package/dist/cjs/chain.d.ts +1 -1
- package/dist/cjs/chain.d.ts.map +1 -1
- package/dist/cjs/chain.js +5 -4
- package/dist/cjs/chain.js.map +1 -1
- package/dist/cjs/config.d.ts +12 -3
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +5 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/data/agent.d.ts +2 -0
- package/dist/cjs/data/agent.d.ts.map +1 -1
- package/dist/cjs/data/agent.js +1 -0
- package/dist/cjs/data/agent.js.map +1 -1
- package/dist/cjs/data/board/assemble.d.ts +7 -2
- package/dist/cjs/data/board/assemble.d.ts.map +1 -1
- package/dist/cjs/data/board/assemble.js +76 -10
- package/dist/cjs/data/board/assemble.js.map +1 -1
- package/dist/cjs/data/board/facts.d.ts +10 -0
- package/dist/cjs/data/board/facts.d.ts.map +1 -1
- package/dist/cjs/data/board/facts.js +14 -1
- package/dist/cjs/data/board/facts.js.map +1 -1
- package/dist/cjs/data/board/read.d.ts +46 -3
- package/dist/cjs/data/board/read.d.ts.map +1 -1
- package/dist/cjs/data/board/read.js +145 -9
- package/dist/cjs/data/board/read.js.map +1 -1
- package/dist/cjs/data/board/types.d.ts +82 -5
- package/dist/cjs/data/board/types.d.ts.map +1 -1
- package/dist/cjs/data/board/types.js +5 -3
- package/dist/cjs/data/board/types.js.map +1 -1
- package/dist/cjs/data/checkers.d.ts +169 -0
- package/dist/cjs/data/checkers.d.ts.map +1 -0
- package/dist/cjs/data/checkers.js +354 -0
- package/dist/cjs/data/checkers.js.map +1 -0
- package/dist/cjs/data/checkersRead.d.ts +58 -0
- package/dist/cjs/data/checkersRead.d.ts.map +1 -0
- package/dist/cjs/data/checkersRead.js +263 -0
- package/dist/cjs/data/checkersRead.js.map +1 -0
- package/dist/cjs/data/denoms.d.ts.map +1 -1
- package/dist/cjs/data/denoms.js +1 -0
- package/dist/cjs/data/denoms.js.map +1 -1
- package/dist/cjs/data/docUrls.d.ts +3 -0
- package/dist/cjs/data/docUrls.d.ts.map +1 -1
- package/dist/cjs/data/docUrls.js +12 -1
- package/dist/cjs/data/docUrls.js.map +1 -1
- package/dist/cjs/data/docs.d.ts +3 -1
- package/dist/cjs/data/docs.d.ts.map +1 -1
- package/dist/cjs/data/docs.js +15 -2
- package/dist/cjs/data/docs.js.map +1 -1
- package/dist/cjs/data/engine.d.ts.map +1 -1
- package/dist/cjs/data/engine.js +12 -5
- package/dist/cjs/data/engine.js.map +1 -1
- package/dist/cjs/data/engineUrl.js +1 -1
- package/dist/cjs/data/engineUrl.js.map +1 -1
- package/dist/cjs/data/envelope.d.ts +18 -0
- package/dist/cjs/data/envelope.d.ts.map +1 -1
- package/dist/cjs/data/envelope.js +16 -1
- package/dist/cjs/data/envelope.js.map +1 -1
- package/dist/cjs/data/format.d.ts +32 -10
- package/dist/cjs/data/format.d.ts.map +1 -1
- package/dist/cjs/data/format.js +62 -19
- package/dist/cjs/data/format.js.map +1 -1
- package/dist/cjs/data/index.d.ts +2 -2
- package/dist/cjs/data/index.d.ts.map +1 -1
- package/dist/cjs/data/index.js +2 -1
- package/dist/cjs/data/index.js.map +1 -1
- package/dist/cjs/data/install.d.ts +46 -49
- package/dist/cjs/data/install.d.ts.map +1 -1
- package/dist/cjs/data/install.js +62 -61
- package/dist/cjs/data/install.js.map +1 -1
- package/dist/cjs/data/money.d.ts +36 -0
- package/dist/cjs/data/money.d.ts.map +1 -0
- package/dist/cjs/data/money.js +95 -0
- package/dist/cjs/data/money.js.map +1 -0
- package/dist/cjs/data/openness.d.ts +17 -1
- package/dist/cjs/data/openness.d.ts.map +1 -1
- package/dist/cjs/data/openness.js +16 -26
- package/dist/cjs/data/openness.js.map +1 -1
- package/dist/cjs/data/queue.d.ts +26 -0
- package/dist/cjs/data/queue.d.ts.map +1 -1
- package/dist/cjs/data/queue.js +57 -12
- package/dist/cjs/data/queue.js.map +1 -1
- package/dist/cjs/data/receipt.d.ts +19 -0
- package/dist/cjs/data/receipt.d.ts.map +1 -1
- package/dist/cjs/data/receipt.js +22 -5
- package/dist/cjs/data/receipt.js.map +1 -1
- package/dist/cjs/data/sponsors.d.ts +94 -0
- package/dist/cjs/data/sponsors.d.ts.map +1 -0
- package/dist/cjs/data/sponsors.js +147 -0
- package/dist/cjs/data/sponsors.js.map +1 -0
- package/dist/cjs/data/threads.d.ts +4 -0
- package/dist/cjs/data/threads.d.ts.map +1 -1
- package/dist/cjs/data/threads.js +5 -1
- package/dist/cjs/data/threads.js.map +1 -1
- package/dist/cjs/data/traceWords.js +8 -8
- package/dist/cjs/data/traceWords.js.map +1 -1
- package/dist/cjs/data/types.d.ts +6 -1
- package/dist/cjs/data/types.d.ts.map +1 -1
- package/dist/cjs/data/types.js.map +1 -1
- package/dist/cjs/data/whyReceipt.d.ts.map +1 -1
- package/dist/cjs/data/whyReceipt.js +10 -1
- package/dist/cjs/data/whyReceipt.js.map +1 -1
- package/dist/cjs/data/work.d.ts +5 -0
- package/dist/cjs/data/work.d.ts.map +1 -1
- package/dist/cjs/data/work.js +11 -5
- package/dist/cjs/data/work.js.map +1 -1
- package/dist/cjs/discovery.d.ts +64 -0
- package/dist/cjs/discovery.d.ts.map +1 -0
- package/dist/cjs/discovery.js +85 -0
- package/dist/cjs/discovery.js.map +1 -0
- package/dist/cjs/envRead.d.ts +1 -1
- package/dist/cjs/envRead.d.ts.map +1 -1
- package/dist/cjs/envRead.js +2 -1
- package/dist/cjs/envRead.js.map +1 -1
- package/dist/cjs/given.d.ts +14 -0
- package/dist/cjs/given.d.ts.map +1 -1
- package/dist/cjs/given.js +14 -2
- package/dist/cjs/given.js.map +1 -1
- package/dist/cjs/network.d.ts +3 -1
- package/dist/cjs/network.d.ts.map +1 -1
- package/dist/cjs/network.js +11 -3
- package/dist/cjs/network.js.map +1 -1
- package/dist/cjs/rubric/bridge.d.ts +8 -0
- package/dist/cjs/rubric/bridge.d.ts.map +1 -1
- package/dist/cjs/rubric/bridge.js +107 -8
- package/dist/cjs/rubric/bridge.js.map +1 -1
- package/dist/cjs/rubric/call.d.ts +35 -8
- package/dist/cjs/rubric/call.d.ts.map +1 -1
- package/dist/cjs/rubric/call.js +62 -20
- package/dist/cjs/rubric/call.js.map +1 -1
- package/dist/cjs/rubric/callChecks.d.ts +14 -0
- package/dist/cjs/rubric/callChecks.d.ts.map +1 -0
- package/dist/cjs/rubric/callChecks.js +43 -0
- package/dist/cjs/rubric/callChecks.js.map +1 -0
- package/dist/cjs/rubric/callLimits.d.ts +28 -0
- package/dist/cjs/rubric/callLimits.d.ts.map +1 -0
- package/dist/cjs/rubric/callLimits.js +36 -0
- package/dist/cjs/rubric/callLimits.js.map +1 -0
- package/dist/cjs/rubric/callTag.d.ts +5 -0
- package/dist/cjs/rubric/callTag.d.ts.map +1 -0
- package/dist/cjs/rubric/callTag.js +17 -0
- package/dist/cjs/rubric/callTag.js.map +1 -0
- package/dist/cjs/rubric/compose.d.ts.map +1 -1
- package/dist/cjs/rubric/compose.js +5 -3
- package/dist/cjs/rubric/compose.js.map +1 -1
- package/dist/cjs/rubric/draft.d.ts +9 -1
- package/dist/cjs/rubric/draft.d.ts.map +1 -1
- package/dist/cjs/rubric/draft.js +25 -3
- package/dist/cjs/rubric/draft.js.map +1 -1
- package/dist/cjs/rubric/feeLine.d.ts +26 -0
- package/dist/cjs/rubric/feeLine.d.ts.map +1 -0
- package/dist/cjs/rubric/feeLine.js +46 -0
- package/dist/cjs/rubric/feeLine.js.map +1 -0
- package/dist/cjs/rubric/gateMet.d.ts +17 -0
- package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
- package/dist/cjs/rubric/gateMet.js +36 -3
- package/dist/cjs/rubric/gateMet.js.map +1 -1
- package/dist/cjs/rubric/leg.js +3 -3
- package/dist/cjs/rubric/leg.js.map +1 -1
- package/dist/cjs/rubric/marketPlan.d.ts +2 -0
- package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
- package/dist/cjs/rubric/marketPlan.js.map +1 -1
- package/dist/cjs/rubric/planAsk.d.ts +23 -0
- package/dist/cjs/rubric/planAsk.d.ts.map +1 -0
- package/dist/cjs/rubric/planAsk.js +24 -0
- package/dist/cjs/rubric/planAsk.js.map +1 -0
- package/dist/cjs/rubric/report.d.ts +208 -0
- package/dist/cjs/rubric/report.d.ts.map +1 -0
- package/dist/cjs/rubric/report.js +411 -0
- package/dist/cjs/rubric/report.js.map +1 -0
- package/dist/cjs/rubric/reportLine.d.ts +31 -0
- package/dist/cjs/rubric/reportLine.d.ts.map +1 -0
- package/dist/cjs/rubric/reportLine.js +45 -0
- package/dist/cjs/rubric/reportLine.js.map +1 -0
- package/dist/cjs/rubric/reportTemplate.d.ts +30 -0
- package/dist/cjs/rubric/reportTemplate.d.ts.map +1 -0
- package/dist/cjs/rubric/reportTemplate.js +78 -0
- package/dist/cjs/rubric/reportTemplate.js.map +1 -0
- package/dist/cjs/rubric/share.d.ts +46 -0
- package/dist/cjs/rubric/share.d.ts.map +1 -0
- package/dist/cjs/rubric/share.js +65 -0
- package/dist/cjs/rubric/share.js.map +1 -0
- package/dist/cjs/rubric/terms.d.ts +89 -25
- package/dist/cjs/rubric/terms.d.ts.map +1 -1
- package/dist/cjs/rubric/terms.js +91 -29
- package/dist/cjs/rubric/terms.js.map +1 -1
- package/dist/cjs/verification/profile.d.ts +28 -0
- package/dist/cjs/verification/profile.d.ts.map +1 -0
- package/dist/cjs/verification/profile.js +126 -0
- package/dist/cjs/verification/profile.js.map +1 -0
- package/dist/cjs/verification/schema.d.ts +54 -0
- package/dist/cjs/verification/schema.d.ts.map +1 -0
- package/dist/cjs/verification/schema.js +49 -0
- package/dist/cjs/verification/schema.js.map +1 -0
- package/dist/esm/campaign/cleanup.js +1 -1
- package/dist/esm/campaign/cleanup.js.map +1 -1
- package/dist/esm/campaign/funding.js +3 -3
- package/dist/esm/campaign/funding.js.map +1 -1
- package/dist/esm/campaign/spot.d.ts.map +1 -1
- package/dist/esm/campaign/spot.js +2 -1
- package/dist/esm/campaign/spot.js.map +1 -1
- package/dist/esm/chain/ask.d.ts +72 -2
- package/dist/esm/chain/ask.d.ts.map +1 -1
- package/dist/esm/chain/ask.js +69 -36
- package/dist/esm/chain/ask.js.map +1 -1
- package/dist/esm/chain/broadcast.d.ts.map +1 -1
- package/dist/esm/chain/broadcast.js +7 -5
- package/dist/esm/chain/broadcast.js.map +1 -1
- package/dist/esm/chain/claimVerdict.d.ts +26 -0
- package/dist/esm/chain/claimVerdict.d.ts.map +1 -0
- package/dist/esm/chain/claimVerdict.js +30 -0
- package/dist/esm/chain/claimVerdict.js.map +1 -0
- package/dist/esm/chain/delegate.d.ts +54 -13
- package/dist/esm/chain/delegate.d.ts.map +1 -1
- package/dist/esm/chain/delegate.js +69 -27
- package/dist/esm/chain/delegate.js.map +1 -1
- package/dist/esm/chain/entityShape.d.ts +2 -0
- package/dist/esm/chain/entityShape.d.ts.map +1 -1
- package/dist/esm/chain/entityShape.js +6 -0
- package/dist/esm/chain/entityShape.js.map +1 -1
- package/dist/esm/chain/env.d.ts +1 -0
- package/dist/esm/chain/env.d.ts.map +1 -1
- package/dist/esm/chain/env.js +7 -0
- package/dist/esm/chain/env.js.map +1 -1
- package/dist/esm/chain/inviteMessages.d.ts +224 -0
- package/dist/esm/chain/inviteMessages.d.ts.map +1 -0
- package/dist/esm/chain/inviteMessages.js +296 -0
- package/dist/esm/chain/inviteMessages.js.map +1 -0
- package/dist/esm/chain/inviteProof.d.ts +121 -0
- package/dist/esm/chain/inviteProof.d.ts.map +1 -0
- package/dist/esm/chain/inviteProof.js +278 -0
- package/dist/esm/chain/inviteProof.js.map +1 -0
- package/dist/esm/chain/lane.d.ts +148 -0
- package/dist/esm/chain/lane.d.ts.map +1 -0
- package/dist/esm/chain/lane.js +170 -0
- package/dist/esm/chain/lane.js.map +1 -0
- package/dist/esm/chain/money.d.ts +24 -17
- package/dist/esm/chain/money.d.ts.map +1 -1
- package/dist/esm/chain/money.js +34 -25
- package/dist/esm/chain/money.js.map +1 -1
- package/dist/esm/chain/oracle.d.ts +2 -0
- package/dist/esm/chain/oracle.d.ts.map +1 -1
- package/dist/esm/chain/oracle.js +1 -1
- package/dist/esm/chain/oracle.js.map +1 -1
- package/dist/esm/chain/orgReviewBilling.d.ts +1 -1
- package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -1
- package/dist/esm/chain/orgReviewBilling.js +16 -15
- package/dist/esm/chain/orgReviewBilling.js.map +1 -1
- package/dist/esm/chain/payoutTerms.d.ts.map +1 -1
- package/dist/esm/chain/payoutTerms.js +1 -1
- package/dist/esm/chain/payoutTerms.js.map +1 -1
- package/dist/esm/chain/personReview.d.ts +218 -0
- package/dist/esm/chain/personReview.d.ts.map +1 -0
- package/dist/esm/chain/personReview.js +322 -0
- package/dist/esm/chain/personReview.js.map +1 -0
- package/dist/esm/chain/postFee.d.ts +11 -0
- package/dist/esm/chain/postFee.d.ts.map +1 -0
- package/dist/esm/chain/postFee.js +11 -0
- package/dist/esm/chain/postFee.js.map +1 -0
- package/dist/esm/chain/query.d.ts +55 -2
- package/dist/esm/chain/query.d.ts.map +1 -1
- package/dist/esm/chain/query.js +136 -8
- package/dist/esm/chain/query.js.map +1 -1
- package/dist/esm/chain/reviewBilling.d.ts +3 -27
- package/dist/esm/chain/reviewBilling.d.ts.map +1 -1
- package/dist/esm/chain/reviewBilling.js +5 -108
- package/dist/esm/chain/reviewBilling.js.map +1 -1
- package/dist/esm/chain/rewardDenom.d.ts +6 -0
- package/dist/esm/chain/rewardDenom.d.ts.map +1 -0
- package/dist/esm/chain/rewardDenom.js +5 -0
- package/dist/esm/chain/rewardDenom.js.map +1 -0
- package/dist/esm/chain/sponsor.d.ts +1 -1
- package/dist/esm/chain/sponsor.d.ts.map +1 -1
- package/dist/esm/chain/sponsor.js +8 -4
- package/dist/esm/chain/sponsor.js.map +1 -1
- package/dist/esm/chain.d.ts +1 -1
- package/dist/esm/chain.d.ts.map +1 -1
- package/dist/esm/chain.js +1 -1
- package/dist/esm/chain.js.map +1 -1
- package/dist/esm/config.d.ts +12 -3
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +6 -2
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/data/agent.d.ts +2 -0
- package/dist/esm/data/agent.d.ts.map +1 -1
- package/dist/esm/data/agent.js +1 -0
- package/dist/esm/data/agent.js.map +1 -1
- package/dist/esm/data/board/assemble.d.ts +7 -2
- package/dist/esm/data/board/assemble.d.ts.map +1 -1
- package/dist/esm/data/board/assemble.js +73 -9
- package/dist/esm/data/board/assemble.js.map +1 -1
- package/dist/esm/data/board/facts.d.ts +10 -0
- package/dist/esm/data/board/facts.d.ts.map +1 -1
- package/dist/esm/data/board/facts.js +13 -1
- package/dist/esm/data/board/facts.js.map +1 -1
- package/dist/esm/data/board/read.d.ts +46 -3
- package/dist/esm/data/board/read.d.ts.map +1 -1
- package/dist/esm/data/board/read.js +143 -10
- package/dist/esm/data/board/read.js.map +1 -1
- package/dist/esm/data/board/types.d.ts +82 -5
- package/dist/esm/data/board/types.d.ts.map +1 -1
- package/dist/esm/data/board/types.js +5 -3
- package/dist/esm/data/board/types.js.map +1 -1
- package/dist/esm/data/checkers.d.ts +169 -0
- package/dist/esm/data/checkers.d.ts.map +1 -0
- package/dist/esm/data/checkers.js +304 -0
- package/dist/esm/data/checkers.js.map +1 -0
- package/dist/esm/data/checkersRead.d.ts +58 -0
- package/dist/esm/data/checkersRead.d.ts.map +1 -0
- package/dist/esm/data/checkersRead.js +252 -0
- package/dist/esm/data/checkersRead.js.map +1 -0
- package/dist/esm/data/denoms.d.ts.map +1 -1
- package/dist/esm/data/denoms.js +1 -0
- package/dist/esm/data/denoms.js.map +1 -1
- package/dist/esm/data/docUrls.d.ts +3 -0
- package/dist/esm/data/docUrls.d.ts.map +1 -1
- package/dist/esm/data/docUrls.js +9 -0
- package/dist/esm/data/docUrls.js.map +1 -1
- package/dist/esm/data/docs.d.ts +3 -1
- package/dist/esm/data/docs.d.ts.map +1 -1
- package/dist/esm/data/docs.js +15 -2
- package/dist/esm/data/docs.js.map +1 -1
- package/dist/esm/data/engine.d.ts.map +1 -1
- package/dist/esm/data/engine.js +12 -5
- package/dist/esm/data/engine.js.map +1 -1
- package/dist/esm/data/engineUrl.js +2 -2
- package/dist/esm/data/engineUrl.js.map +1 -1
- package/dist/esm/data/envelope.d.ts +18 -0
- package/dist/esm/data/envelope.d.ts.map +1 -1
- package/dist/esm/data/envelope.js +14 -0
- package/dist/esm/data/envelope.js.map +1 -1
- package/dist/esm/data/format.d.ts +32 -10
- package/dist/esm/data/format.d.ts.map +1 -1
- package/dist/esm/data/format.js +58 -18
- package/dist/esm/data/format.js.map +1 -1
- package/dist/esm/data/index.d.ts +2 -2
- package/dist/esm/data/index.d.ts.map +1 -1
- package/dist/esm/data/index.js +1 -1
- package/dist/esm/data/index.js.map +1 -1
- package/dist/esm/data/install.d.ts +46 -49
- package/dist/esm/data/install.d.ts.map +1 -1
- package/dist/esm/data/install.js +58 -60
- package/dist/esm/data/install.js.map +1 -1
- package/dist/esm/data/money.d.ts +36 -0
- package/dist/esm/data/money.d.ts.map +1 -0
- package/dist/esm/data/money.js +90 -0
- package/dist/esm/data/money.js.map +1 -0
- package/dist/esm/data/openness.d.ts +17 -1
- package/dist/esm/data/openness.d.ts.map +1 -1
- package/dist/esm/data/openness.js +16 -26
- package/dist/esm/data/openness.js.map +1 -1
- package/dist/esm/data/queue.d.ts +26 -0
- package/dist/esm/data/queue.d.ts.map +1 -1
- package/dist/esm/data/queue.js +50 -9
- package/dist/esm/data/queue.js.map +1 -1
- package/dist/esm/data/receipt.d.ts +19 -0
- package/dist/esm/data/receipt.d.ts.map +1 -1
- package/dist/esm/data/receipt.js +20 -4
- package/dist/esm/data/receipt.js.map +1 -1
- package/dist/esm/data/sponsors.d.ts +94 -0
- package/dist/esm/data/sponsors.d.ts.map +1 -0
- package/dist/esm/data/sponsors.js +137 -0
- package/dist/esm/data/sponsors.js.map +1 -0
- package/dist/esm/data/threads.d.ts +4 -0
- package/dist/esm/data/threads.d.ts.map +1 -1
- package/dist/esm/data/threads.js +6 -2
- package/dist/esm/data/threads.js.map +1 -1
- package/dist/esm/data/traceWords.js +8 -8
- package/dist/esm/data/traceWords.js.map +1 -1
- package/dist/esm/data/types.d.ts +6 -1
- package/dist/esm/data/types.d.ts.map +1 -1
- package/dist/esm/data/types.js.map +1 -1
- package/dist/esm/data/whyReceipt.d.ts.map +1 -1
- package/dist/esm/data/whyReceipt.js +10 -1
- package/dist/esm/data/whyReceipt.js.map +1 -1
- package/dist/esm/data/work.d.ts +5 -0
- package/dist/esm/data/work.d.ts.map +1 -1
- package/dist/esm/data/work.js +11 -5
- package/dist/esm/data/work.js.map +1 -1
- package/dist/esm/discovery.d.ts +64 -0
- package/dist/esm/discovery.d.ts.map +1 -0
- package/dist/esm/discovery.js +74 -0
- package/dist/esm/discovery.js.map +1 -0
- package/dist/esm/envRead.d.ts +1 -1
- package/dist/esm/envRead.d.ts.map +1 -1
- package/dist/esm/envRead.js +1 -1
- package/dist/esm/envRead.js.map +1 -1
- package/dist/esm/given.d.ts +14 -0
- package/dist/esm/given.d.ts.map +1 -1
- package/dist/esm/given.js +11 -1
- package/dist/esm/given.js.map +1 -1
- package/dist/esm/network.d.ts +3 -1
- package/dist/esm/network.d.ts.map +1 -1
- package/dist/esm/network.js +10 -3
- package/dist/esm/network.js.map +1 -1
- package/dist/esm/rubric/bridge.d.ts +8 -0
- package/dist/esm/rubric/bridge.d.ts.map +1 -1
- package/dist/esm/rubric/bridge.js +105 -7
- package/dist/esm/rubric/bridge.js.map +1 -1
- package/dist/esm/rubric/call.d.ts +35 -8
- package/dist/esm/rubric/call.d.ts.map +1 -1
- package/dist/esm/rubric/call.js +57 -16
- package/dist/esm/rubric/call.js.map +1 -1
- package/dist/esm/rubric/callChecks.d.ts +14 -0
- package/dist/esm/rubric/callChecks.d.ts.map +1 -0
- package/dist/esm/rubric/callChecks.js +36 -0
- package/dist/esm/rubric/callChecks.js.map +1 -0
- package/dist/esm/rubric/callLimits.d.ts +28 -0
- package/dist/esm/rubric/callLimits.d.ts.map +1 -0
- package/dist/esm/rubric/callLimits.js +33 -0
- package/dist/esm/rubric/callLimits.js.map +1 -0
- package/dist/esm/rubric/callTag.d.ts +5 -0
- package/dist/esm/rubric/callTag.d.ts.map +1 -0
- package/dist/esm/rubric/callTag.js +12 -0
- package/dist/esm/rubric/callTag.js.map +1 -0
- package/dist/esm/rubric/compose.d.ts.map +1 -1
- package/dist/esm/rubric/compose.js +5 -3
- package/dist/esm/rubric/compose.js.map +1 -1
- package/dist/esm/rubric/draft.d.ts +9 -1
- package/dist/esm/rubric/draft.d.ts.map +1 -1
- package/dist/esm/rubric/draft.js +24 -3
- package/dist/esm/rubric/draft.js.map +1 -1
- package/dist/esm/rubric/feeLine.d.ts +26 -0
- package/dist/esm/rubric/feeLine.d.ts.map +1 -0
- package/dist/esm/rubric/feeLine.js +42 -0
- package/dist/esm/rubric/feeLine.js.map +1 -0
- package/dist/esm/rubric/gateMet.d.ts +17 -0
- package/dist/esm/rubric/gateMet.d.ts.map +1 -1
- package/dist/esm/rubric/gateMet.js +34 -2
- package/dist/esm/rubric/gateMet.js.map +1 -1
- package/dist/esm/rubric/leg.js +4 -4
- package/dist/esm/rubric/leg.js.map +1 -1
- package/dist/esm/rubric/marketPlan.d.ts +2 -0
- package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
- package/dist/esm/rubric/marketPlan.js.map +1 -1
- package/dist/esm/rubric/planAsk.d.ts +23 -0
- package/dist/esm/rubric/planAsk.d.ts.map +1 -0
- package/dist/esm/rubric/planAsk.js +20 -0
- package/dist/esm/rubric/planAsk.js.map +1 -0
- package/dist/esm/rubric/report.d.ts +208 -0
- package/dist/esm/rubric/report.d.ts.map +1 -0
- package/dist/esm/rubric/report.js +398 -0
- package/dist/esm/rubric/report.js.map +1 -0
- package/dist/esm/rubric/reportLine.d.ts +31 -0
- package/dist/esm/rubric/reportLine.d.ts.map +1 -0
- package/dist/esm/rubric/reportLine.js +40 -0
- package/dist/esm/rubric/reportLine.js.map +1 -0
- package/dist/esm/rubric/reportTemplate.d.ts +30 -0
- package/dist/esm/rubric/reportTemplate.d.ts.map +1 -0
- package/dist/esm/rubric/reportTemplate.js +74 -0
- package/dist/esm/rubric/reportTemplate.js.map +1 -0
- package/dist/esm/rubric/share.d.ts +46 -0
- package/dist/esm/rubric/share.d.ts.map +1 -0
- package/dist/esm/rubric/share.js +58 -0
- package/dist/esm/rubric/share.js.map +1 -0
- package/dist/esm/rubric/terms.d.ts +89 -25
- package/dist/esm/rubric/terms.d.ts.map +1 -1
- package/dist/esm/rubric/terms.js +83 -25
- package/dist/esm/rubric/terms.js.map +1 -1
- package/dist/esm/verification/profile.d.ts +28 -0
- package/dist/esm/verification/profile.d.ts.map +1 -0
- package/dist/esm/verification/profile.js +122 -0
- package/dist/esm/verification/profile.js.map +1 -0
- package/dist/esm/verification/schema.d.ts +54 -0
- package/dist/esm/verification/schema.d.ts.map +1 -0
- package/dist/esm/verification/schema.js +46 -0
- package/dist/esm/verification/schema.js.map +1 -0
- package/package.json +22 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/data/board/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/data/board/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export interface CheckField {
|
|
2
|
+
name: string;
|
|
3
|
+
label: string;
|
|
4
|
+
type: "string" | "number" | "integer" | "boolean" | "date" | "file";
|
|
5
|
+
required: boolean;
|
|
6
|
+
description?: string;
|
|
7
|
+
enum?: string[];
|
|
8
|
+
/** A web address (SurveyJS `inputType: "url"`, JSON Schema `format: "uri"`): one line, and it must start http(s)://. */
|
|
9
|
+
url?: true;
|
|
10
|
+
/** A file field's media types (SurveyJS `acceptedTypes`), as the picker's `accept`: "application/pdf". */
|
|
11
|
+
accept?: string;
|
|
12
|
+
}
|
|
13
|
+
/** One of a check's rules in its author's words: a rule every answer must pass (`measure`), what an AI checks (`judge`), or what a person decides (`attest`). */
|
|
14
|
+
export interface CheckRule {
|
|
15
|
+
text: string;
|
|
16
|
+
kind: "measure" | "judge" | "attest";
|
|
17
|
+
}
|
|
18
|
+
export interface CheckerCheck {
|
|
19
|
+
did: string;
|
|
20
|
+
name: string;
|
|
21
|
+
what: string;
|
|
22
|
+
fields: CheckField[];
|
|
23
|
+
personStep: boolean;
|
|
24
|
+
priceBase: number | null;
|
|
25
|
+
priceDenom: string | null;
|
|
26
|
+
/** Its rules, from its rubric (`#rub`), else the engine's work order; absent when neither could be read. */
|
|
27
|
+
rules?: CheckRule[];
|
|
28
|
+
}
|
|
29
|
+
export interface Checker {
|
|
30
|
+
did: string;
|
|
31
|
+
name: string;
|
|
32
|
+
what: string;
|
|
33
|
+
url: string | null;
|
|
34
|
+
expert: boolean;
|
|
35
|
+
recommended?: true;
|
|
36
|
+
checks: CheckerCheck[];
|
|
37
|
+
/** The account that signs its verdicts: the grantee an ask names (`terms.checker`). Empty when `unavailable`. */
|
|
38
|
+
address: string;
|
|
39
|
+
/** Its `/v1/info` says it bills each review to the poster's Console credits (`reviewBilling.mode: "x402"`). */
|
|
40
|
+
perReview: boolean;
|
|
41
|
+
unavailable?: string;
|
|
42
|
+
/** Its price per check by default (`/v1/info` `pricing.evaluation`), in base units of its own coin; a check may set its own. */
|
|
43
|
+
price?: {
|
|
44
|
+
base: number;
|
|
45
|
+
denom: string;
|
|
46
|
+
};
|
|
47
|
+
/** Its logo, from its domain card (`#dmn`) or profile, on IXO's own stores only; absent when it publishes none. Read by `checkerByAddress` only. */
|
|
48
|
+
logo?: string;
|
|
49
|
+
/** Its `/v1/info` `openhands` routes (the Openhands add-on), paths with `:collectionId`; absent on our own two oracles. */
|
|
50
|
+
routes?: OpenhandsRoutes;
|
|
51
|
+
}
|
|
52
|
+
export interface OpenhandsRoutes {
|
|
53
|
+
hire: string;
|
|
54
|
+
scan?: string;
|
|
55
|
+
}
|
|
56
|
+
/** Ask the World's checker, by the address it signs as (devnet IXO-5583; testnet 2026-10-17). */
|
|
57
|
+
export declare const ASK_THE_WORLD_CHECKERS: ReadonlySet<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Asky Checker: IXO's checker for Expert Review calls (call kind `review`), and their checker wherever it is deployed
|
|
60
|
+
* (2026-10-26). By its oracle's URL and the account it signs verdicts as (its `/v1/info` `address`, the ask's
|
|
61
|
+
* `terms.checker`), per network. Empty where it is not deployed yet.
|
|
62
|
+
*/
|
|
63
|
+
export declare const ASKY_CHECKER_URLS: Readonly<Record<string, string>>;
|
|
64
|
+
export declare const ASKY_CHECKER_ADDRESSES: Readonly<Record<string, string>>;
|
|
65
|
+
/**
|
|
66
|
+
* Its fee per check, escrowed on the ask in this coin, which is also the review's reward coin (owner and S3, 2026-10-26:
|
|
67
|
+
* Expert Reviews pay in PAY, 1 PAY a check, on both networks as each /v1/info publishes it).
|
|
68
|
+
*/
|
|
69
|
+
export declare const ASKY_CHECKER_FEES: Readonly<Record<string, {
|
|
70
|
+
base: number;
|
|
71
|
+
denom: "upay";
|
|
72
|
+
}>>;
|
|
73
|
+
export declare const ASKY_CHECKER_NAME = "Asky Checker";
|
|
74
|
+
export declare const askyCheckerUrl: (network: string) => string | null;
|
|
75
|
+
/** Asky Checker on `network`, to post a review call to, nudge and pay per check; null where it is not deployed. */
|
|
76
|
+
export declare const askyChecker: (network: string) => {
|
|
77
|
+
url: string;
|
|
78
|
+
address: string;
|
|
79
|
+
fee: {
|
|
80
|
+
base: number;
|
|
81
|
+
denom: "upay";
|
|
82
|
+
};
|
|
83
|
+
} | null;
|
|
84
|
+
/**
|
|
85
|
+
* The coin a checker's fee is escrowed in (owner ruling): its own, as its /v1/info publishes it (IXO, or USDC on mainnet).
|
|
86
|
+
* PAY is the fee only for IXO-managed checkers (our own two); any other checker naming it is refused.
|
|
87
|
+
*/
|
|
88
|
+
export declare function feeCoinOf(denom: string | null | undefined, managed: boolean): {
|
|
89
|
+
denom: string;
|
|
90
|
+
} | {
|
|
91
|
+
refused: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Whether an oracle is an Openhands checker: its builder turned the Openhands add-on on at init, so its `/v1/info`
|
|
95
|
+
* names the hire route (`openhands: { hire, scan }`); or it is one of our own two (the deployment's oracle, Ask the
|
|
96
|
+
* World's checker), which serve the routes without saying so. Every other oracle is not listed at all.
|
|
97
|
+
*/
|
|
98
|
+
export declare const isOpenhandsChecker: (info: {
|
|
99
|
+
openhands?: {
|
|
100
|
+
hire?: unknown;
|
|
101
|
+
} | null;
|
|
102
|
+
} | null | undefined, own?: boolean) => boolean;
|
|
103
|
+
/** The add-on's routes from `/v1/info`, when it names them. */
|
|
104
|
+
export declare function openhandsRoutes(info: {
|
|
105
|
+
openhands?: {
|
|
106
|
+
hire?: unknown;
|
|
107
|
+
scan?: unknown;
|
|
108
|
+
} | null;
|
|
109
|
+
} | null | undefined): OpenhandsRoutes | undefined;
|
|
110
|
+
/** The path to nudge for `event` on this ask: the oracle's own route, else `/openhands/<event>/<id>` (our own two). */
|
|
111
|
+
export declare const openhandsPath: (routes: OpenhandsRoutes | null | undefined, event: "hire" | "scan", collectionId: string) => string;
|
|
112
|
+
export interface CheckerOpts {
|
|
113
|
+
engineUrl?: string;
|
|
114
|
+
fetch?: typeof fetch;
|
|
115
|
+
}
|
|
116
|
+
/** Every checker on the network that publishes a card: the experts with their checks, and the Openhands ones (no checks). */
|
|
117
|
+
export declare function listCheckers(opts?: CheckerOpts): Promise<Checker[]>;
|
|
118
|
+
/** One checker by the address that signs for it (any carded oracle that is an Openhands checker), as its domain card presents it: name, blurb, logo. Null when none. */
|
|
119
|
+
export declare function checkerByAddress(address: string, opts?: CheckerOpts): Promise<Checker | null>;
|
|
120
|
+
/** One protocol's check: its form's fields (hash-checked `#vct`) and whether its rubric has a person step. Null when unreadable. */
|
|
121
|
+
export declare function checkOfProtocol(protocolDid: string, opts?: CheckerOpts): Promise<CheckerCheck | null>;
|
|
122
|
+
/** The checker and check a protocol belongs to, among `checkers`. */
|
|
123
|
+
export declare function checkerOfProtocol(checkers: readonly Checker[], protocolDid: string): {
|
|
124
|
+
checker: Checker;
|
|
125
|
+
check: CheckerCheck;
|
|
126
|
+
} | null;
|
|
127
|
+
/**
|
|
128
|
+
* The expert checker a person named (its DID or plain name, any case) and the check (`check`: a DID or name; left
|
|
129
|
+
* out when it offers only one). A refusal in plain words otherwise.
|
|
130
|
+
*/
|
|
131
|
+
export declare function pickCheck(checkers: readonly Checker[], checker: string, check?: string | null): {
|
|
132
|
+
checker: Checker;
|
|
133
|
+
check: CheckerCheck;
|
|
134
|
+
} | {
|
|
135
|
+
refused: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* The questions a protocol's claim form (`#vct`) asks, as simple fields: a SurveyJS template (bare, or inside the
|
|
139
|
+
* `surveyTemplate` envelope's `question`) or a JSON Schema's `properties`. Display elements and hidden questions are
|
|
140
|
+
* left out; a question shown only on a condition is never required.
|
|
141
|
+
*/
|
|
142
|
+
export declare function fieldsFromClaimForm(vct: unknown): CheckField[];
|
|
143
|
+
/** A file answer as the writer holds it: where the stored bytes are. */
|
|
144
|
+
export interface CheckFile {
|
|
145
|
+
name: string;
|
|
146
|
+
type: string;
|
|
147
|
+
url: string;
|
|
148
|
+
}
|
|
149
|
+
/** Plain-word problems with `values` against `fields`; empty = ok. */
|
|
150
|
+
export declare function validateFields(fields: CheckField[], values: Record<string, unknown>): string[];
|
|
151
|
+
export interface CheckEnvelopeInput {
|
|
152
|
+
fields: CheckField[];
|
|
153
|
+
values: Record<string, unknown>;
|
|
154
|
+
collectionId: string;
|
|
155
|
+
/** Whose answer it is (the person); `delegate` the key that sent it for them. */
|
|
156
|
+
submitter: string;
|
|
157
|
+
delegate?: string;
|
|
158
|
+
alias?: string;
|
|
159
|
+
via?: "mcp";
|
|
160
|
+
ts?: string;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The claim body of an answer to an expert ask, the same from the website and the MCP. The checker's engine reads
|
|
164
|
+
* the claim body verbatim as its `answers`, so every form answer sits at the root under its own name; the Openhands
|
|
165
|
+
* envelope fields ride beside them, with `deliverable` as the answers in words for Openhands' own pages. Throws the
|
|
166
|
+
* plain-word problems when the values do not fit the form.
|
|
167
|
+
*/
|
|
168
|
+
export declare function checkEnvelope(input: CheckEnvelopeInput): Record<string, unknown>;
|
|
169
|
+
//# sourceMappingURL=checkers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkers.d.ts","sourceRoot":"","sources":["../../../src/data/checkers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Expert checkers: oracles that check answers by their OWN rules (each of their protocols' claim form `#vct` and
|
|
4
|
+
* rubric `#rub`), as opposed to Openhands, which writes fresh rules for every ask. An oracle is an expert when its
|
|
5
|
+
* `GET /v1/info` lists a non-empty `supportedProtocols` (eval-oracle's register gate 3 refuses every other protocol).
|
|
6
|
+
*
|
|
7
|
+
* Client-safe: the pure helpers (`fieldsFromClaimForm`, `validateFields`, `checkEnvelope`) import nothing; the chain
|
|
8
|
+
* and network reads load `checkersRead.ts` lazily, server-side.
|
|
9
|
+
*
|
|
10
|
+
* Posting an ask on a checker's own rules (no per-ask protocol, no `#rub` of the ask's own):
|
|
11
|
+
* - website: `createAskEntities(session, { ...input, protocol })` mints the deed alone and answers
|
|
12
|
+
* `claimProtocolDid: protocol`; then `postAsk(..., { shape: { claimProtocolDid: protocol, ... } })` with NO
|
|
13
|
+
* `claimDomainCard` (the poster does not control someone else's protocol) and `terms.checker` = the checker's
|
|
14
|
+
* `address`, `checkRewardUixo` = the check's `priceBase` (0 when it bills per review) and `feeDenom` = its
|
|
15
|
+
* `priceDenom` (a checker names its own coin; devnet's are IXO, not the network's PAY).
|
|
16
|
+
* - MCP / worker agent: `createAsk(actor, { ...ask, protocol, feeDenom })`.
|
|
17
|
+
* The collection then points at that protocol, so the engine resolves the checker's `#vct` and `#rub`; the checker
|
|
18
|
+
* is hired like every ask's oracle, by its hire nudge (`/openhands/hire/:collectionId`).
|
|
19
|
+
*
|
|
20
|
+
* An answer to such an ask is `checkEnvelope(...)`: the form's answers at the root (what the checker's rubric reads,
|
|
21
|
+
* `$.<name>`), beside the usual Openhands envelope fields.
|
|
22
|
+
*/
|
|
23
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
+
}
|
|
29
|
+
Object.defineProperty(o, k2, desc);
|
|
30
|
+
}) : (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
o[k2] = m[k];
|
|
33
|
+
}));
|
|
34
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}) : function(o, v) {
|
|
37
|
+
o["default"] = v;
|
|
38
|
+
});
|
|
39
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
+
var ownKeys = function(o) {
|
|
41
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
+
var ar = [];
|
|
43
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
+
return ar;
|
|
45
|
+
};
|
|
46
|
+
return ownKeys(o);
|
|
47
|
+
};
|
|
48
|
+
return function (mod) {
|
|
49
|
+
if (mod && mod.__esModule) return mod;
|
|
50
|
+
var result = {};
|
|
51
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
+
__setModuleDefault(result, mod);
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
})();
|
|
56
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
+
exports.openhandsPath = exports.isOpenhandsChecker = exports.askyChecker = exports.askyCheckerUrl = exports.ASKY_CHECKER_NAME = exports.ASKY_CHECKER_FEES = exports.ASKY_CHECKER_ADDRESSES = exports.ASKY_CHECKER_URLS = exports.ASK_THE_WORLD_CHECKERS = void 0;
|
|
58
|
+
exports.feeCoinOf = feeCoinOf;
|
|
59
|
+
exports.openhandsRoutes = openhandsRoutes;
|
|
60
|
+
exports.listCheckers = listCheckers;
|
|
61
|
+
exports.checkerByAddress = checkerByAddress;
|
|
62
|
+
exports.checkOfProtocol = checkOfProtocol;
|
|
63
|
+
exports.checkerOfProtocol = checkerOfProtocol;
|
|
64
|
+
exports.pickCheck = pickCheck;
|
|
65
|
+
exports.fieldsFromClaimForm = fieldsFromClaimForm;
|
|
66
|
+
exports.validateFields = validateFields;
|
|
67
|
+
exports.checkEnvelope = checkEnvelope;
|
|
68
|
+
/** Ask the World's checker, by the address it signs as (devnet IXO-5583; testnet 2026-10-17). */
|
|
69
|
+
exports.ASK_THE_WORLD_CHECKERS = new Set(["ixo1qrk9dp4r2u8q5l9cs42yh4dne4pj3wynp4enwq", "ixo12mvzayzrzsvaud86jf9shy6q2nvkea3tygxhsh"]);
|
|
70
|
+
/**
|
|
71
|
+
* Asky Checker: IXO's checker for Expert Review calls (call kind `review`), and their checker wherever it is deployed
|
|
72
|
+
* (2026-10-26). By its oracle's URL and the account it signs verdicts as (its `/v1/info` `address`, the ask's
|
|
73
|
+
* `terms.checker`), per network. Empty where it is not deployed yet.
|
|
74
|
+
*/
|
|
75
|
+
exports.ASKY_CHECKER_URLS = { devnet: "", testnet: "https://asky-checker.testnet.ixo.earth", mainnet: "https://asky-checker.ixo.earth" };
|
|
76
|
+
exports.ASKY_CHECKER_ADDRESSES = { devnet: "", testnet: "ixo149t76xlqg5u5dmpz7sjhlz7y0qktafv4z6qg9u", mainnet: "ixo1gmt3rxksd0ukzd228u67p3a34ew7sfl2shff9f" };
|
|
77
|
+
/**
|
|
78
|
+
* Its fee per check, escrowed on the ask in this coin, which is also the review's reward coin (owner and S3, 2026-10-26:
|
|
79
|
+
* Expert Reviews pay in PAY, 1 PAY a check, on both networks as each /v1/info publishes it).
|
|
80
|
+
*/
|
|
81
|
+
exports.ASKY_CHECKER_FEES = { testnet: { base: 1_000_000, denom: "upay" }, mainnet: { base: 1_000_000, denom: "upay" } };
|
|
82
|
+
exports.ASKY_CHECKER_NAME = "Asky Checker";
|
|
83
|
+
const askyCheckerUrl = (network) => exports.ASKY_CHECKER_URLS[network] || null;
|
|
84
|
+
exports.askyCheckerUrl = askyCheckerUrl;
|
|
85
|
+
/** Asky Checker on `network`, to post a review call to, nudge and pay per check; null where it is not deployed. */
|
|
86
|
+
const askyChecker = (network) => exports.ASKY_CHECKER_URLS[network] && exports.ASKY_CHECKER_ADDRESSES[network] && exports.ASKY_CHECKER_FEES[network] ? { url: exports.ASKY_CHECKER_URLS[network], address: exports.ASKY_CHECKER_ADDRESSES[network], fee: exports.ASKY_CHECKER_FEES[network] } : null;
|
|
87
|
+
exports.askyChecker = askyChecker;
|
|
88
|
+
/**
|
|
89
|
+
* The coin a checker's fee is escrowed in (owner ruling): its own, as its /v1/info publishes it (IXO, or USDC on mainnet).
|
|
90
|
+
* PAY is the fee only for IXO-managed checkers (our own two); any other checker naming it is refused.
|
|
91
|
+
*/
|
|
92
|
+
function feeCoinOf(denom, managed) {
|
|
93
|
+
if (!denom)
|
|
94
|
+
return { refused: "This verifier has not published a fee currency" };
|
|
95
|
+
if (denom === "upay" && !managed)
|
|
96
|
+
return { refused: "This verifier asks to be paid in review credit, which only IXO's verifiers may charge on this network" };
|
|
97
|
+
return { denom };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Whether an oracle is an Openhands checker: its builder turned the Openhands add-on on at init, so its `/v1/info`
|
|
101
|
+
* names the hire route (`openhands: { hire, scan }`); or it is one of our own two (the deployment's oracle, Ask the
|
|
102
|
+
* World's checker), which serve the routes without saying so. Every other oracle is not listed at all.
|
|
103
|
+
*/
|
|
104
|
+
const isOpenhandsChecker = (info, own = false) => own || typeof info?.openhands?.hire === "string";
|
|
105
|
+
exports.isOpenhandsChecker = isOpenhandsChecker;
|
|
106
|
+
/** The add-on's routes from `/v1/info`, when it names them. */
|
|
107
|
+
function openhandsRoutes(info) {
|
|
108
|
+
const hire = info?.openhands?.hire;
|
|
109
|
+
const scan = info?.openhands?.scan;
|
|
110
|
+
return typeof hire === "string" && hire.startsWith("/") ? { hire, ...(typeof scan === "string" && scan.startsWith("/") ? { scan } : {}) } : undefined;
|
|
111
|
+
}
|
|
112
|
+
/** The path to nudge for `event` on this ask: the oracle's own route, else `/openhands/<event>/<id>` (our own two). */
|
|
113
|
+
const openhandsPath = (routes, event, collectionId) => (routes?.[event] ?? `/openhands/${event}/:collectionId`).replace(":collectionId", encodeURIComponent(collectionId));
|
|
114
|
+
exports.openhandsPath = openhandsPath;
|
|
115
|
+
/** Every checker on the network that publishes a card: the experts with their checks, and the Openhands ones (no checks). */
|
|
116
|
+
async function listCheckers(opts = {}) {
|
|
117
|
+
return (await Promise.resolve().then(() => __importStar(require("./checkersRead.js")))).readCheckers(opts);
|
|
118
|
+
}
|
|
119
|
+
/** One checker by the address that signs for it (any carded oracle that is an Openhands checker), as its domain card presents it: name, blurb, logo. Null when none. */
|
|
120
|
+
async function checkerByAddress(address, opts = {}) {
|
|
121
|
+
return (await Promise.resolve().then(() => __importStar(require("./checkersRead.js")))).readCheckerByAddress(address, opts);
|
|
122
|
+
}
|
|
123
|
+
/** One protocol's check: its form's fields (hash-checked `#vct`) and whether its rubric has a person step. Null when unreadable. */
|
|
124
|
+
async function checkOfProtocol(protocolDid, opts = {}) {
|
|
125
|
+
return (await Promise.resolve().then(() => __importStar(require("./checkersRead.js")))).readCheckOfProtocol(protocolDid, opts);
|
|
126
|
+
}
|
|
127
|
+
/** The checker and check a protocol belongs to, among `checkers`. */
|
|
128
|
+
function checkerOfProtocol(checkers, protocolDid) {
|
|
129
|
+
for (const checker of checkers) {
|
|
130
|
+
const check = checker.checks.find((one) => one.did === protocolDid);
|
|
131
|
+
if (check)
|
|
132
|
+
return { checker, check };
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const plain = (text) => text.trim().toLowerCase();
|
|
137
|
+
/**
|
|
138
|
+
* The expert checker a person named (its DID or plain name, any case) and the check (`check`: a DID or name; left
|
|
139
|
+
* out when it offers only one). A refusal in plain words otherwise.
|
|
140
|
+
*/
|
|
141
|
+
function pickCheck(checkers, checker, check) {
|
|
142
|
+
const experts = checkers.filter((one) => one.expert);
|
|
143
|
+
/* A card's name may carry a tagline ("VeriTrack — invoice verification"): the part before the dash is a name too. */
|
|
144
|
+
const found = experts.find((one) => one.did === checker.trim()) ?? experts.find((one) => plain(one.name) === plain(checker)) ?? experts.find((one) => plain(one.name.split(/\s+[—–-]\s+/)[0]) === plain(checker));
|
|
145
|
+
if (!found)
|
|
146
|
+
return { refused: `there is no verifier called "${checker}" on this network${experts.length ? ` (there are: ${experts.map((one) => one.name).join(", ")})` : ""}` };
|
|
147
|
+
if (found.unavailable || !found.address)
|
|
148
|
+
return { refused: `${found.name} cannot take asks just now${found.unavailable ? ` (${found.unavailable})` : ""}` };
|
|
149
|
+
const picked = check ? (found.checks.find((one) => one.did === check.trim()) ?? found.checks.find((one) => plain(one.name) === plain(check))) : found.checks.length === 1 ? found.checks[0] : undefined;
|
|
150
|
+
if (!picked)
|
|
151
|
+
return { refused: check ? `${found.name} has no check called "${check}" (it has: ${found.checks.map((one) => one.name).join(", ")})` : `${found.name} offers several checks: say which with check (one of: ${found.checks.map((one) => one.name).join(", ")})` };
|
|
152
|
+
return { checker: found, check: picked };
|
|
153
|
+
}
|
|
154
|
+
const list = (value) => (Array.isArray(value) ? value : []);
|
|
155
|
+
const str = (value) => (typeof value === "string" && value.trim() ? value.trim() : undefined);
|
|
156
|
+
/** SurveyJS text may be localised: `{ default: "…", fr: "…" }`. */
|
|
157
|
+
const words = (value) => str(value) ?? (value && typeof value === "object" ? str(value.default) : undefined);
|
|
158
|
+
const choiceValue = (choice) => String(choice && typeof choice === "object" && "value" in choice ? choice.value : choice);
|
|
159
|
+
/** Display-only SurveyJS elements: they answer nothing. */
|
|
160
|
+
const NOT_ANSWERS = new Set(["html", "expression", "image"]);
|
|
161
|
+
function surveyField(q, name, conditional) {
|
|
162
|
+
const inputType = q.inputType;
|
|
163
|
+
const choices = list(q.choices).map(choiceValue);
|
|
164
|
+
let type;
|
|
165
|
+
switch (q.type) {
|
|
166
|
+
case "text":
|
|
167
|
+
type = inputType === "number" || inputType === "range" ? "number" : inputType === "date" ? "date" : "string";
|
|
168
|
+
break;
|
|
169
|
+
case "comment":
|
|
170
|
+
case "dropdown":
|
|
171
|
+
case "radiogroup":
|
|
172
|
+
type = "string";
|
|
173
|
+
break;
|
|
174
|
+
case "boolean":
|
|
175
|
+
type = "boolean";
|
|
176
|
+
break;
|
|
177
|
+
case "rating":
|
|
178
|
+
case "slider":
|
|
179
|
+
type = "number";
|
|
180
|
+
break;
|
|
181
|
+
case "file":
|
|
182
|
+
case "signaturepad":
|
|
183
|
+
type = "file";
|
|
184
|
+
break;
|
|
185
|
+
default:
|
|
186
|
+
/* shortcut: multi-choice, matrix and dynamic-panel questions are not offered on the simple form; add them when a checker's form needs them. */
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
const description = words(q.description);
|
|
190
|
+
const accept = type === "file" ? str(q.acceptedTypes) : undefined;
|
|
191
|
+
return {
|
|
192
|
+
name,
|
|
193
|
+
label: words(q.title) ?? name,
|
|
194
|
+
type,
|
|
195
|
+
/* A question shown only on a condition may be left out, whatever its `isRequired` says (eval-oracle's work order). */
|
|
196
|
+
required: q.isRequired === true && !conditional,
|
|
197
|
+
...(description ? { description } : {}),
|
|
198
|
+
...((q.type === "dropdown" || q.type === "radiogroup") && choices.length ? { enum: choices } : {}),
|
|
199
|
+
...(q.type === "text" && inputType === "url" ? { url: true } : {}),
|
|
200
|
+
...(accept ? { accept } : {})
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
function surveyFields(elements, conditional, seen) {
|
|
204
|
+
const out = [];
|
|
205
|
+
for (const element of elements) {
|
|
206
|
+
if (!element || typeof element !== "object")
|
|
207
|
+
continue;
|
|
208
|
+
const q = element;
|
|
209
|
+
if (q.visible === false)
|
|
210
|
+
continue;
|
|
211
|
+
const cond = conditional || q.visibleIf !== undefined;
|
|
212
|
+
if (q.type === "panel") {
|
|
213
|
+
out.push(...surveyFields(list(q.elements), cond, seen));
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
const name = str(q.name);
|
|
217
|
+
if (!name || NOT_ANSWERS.has(String(q.type)) || seen.has(name))
|
|
218
|
+
continue;
|
|
219
|
+
seen.add(name);
|
|
220
|
+
const field = surveyField(q, name, cond);
|
|
221
|
+
if (field)
|
|
222
|
+
out.push(field);
|
|
223
|
+
}
|
|
224
|
+
return out;
|
|
225
|
+
}
|
|
226
|
+
function schemaFields(schema) {
|
|
227
|
+
const required = new Set(list(schema.required).filter((one) => typeof one === "string"));
|
|
228
|
+
return Object.entries((schema.properties ?? {})).flatMap(([name, prop]) => {
|
|
229
|
+
const kind = prop?.type;
|
|
230
|
+
const type = kind === "string" ? (prop.format === "date" ? "date" : "string") : kind === "number" ? "number" : kind === "integer" ? "integer" : kind === "boolean" ? "boolean" : null;
|
|
231
|
+
if (!type)
|
|
232
|
+
return [];
|
|
233
|
+
const description = str(prop.description);
|
|
234
|
+
const choices = list(prop.enum).map(String);
|
|
235
|
+
const url = type === "string" && (prop.format === "uri" || prop.format === "url");
|
|
236
|
+
return [{ name, label: str(prop.title) ?? name, type, required: required.has(name), ...(description ? { description } : {}), ...(choices.length ? { enum: choices } : {}), ...(url ? { url: true } : {}) }];
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* The questions a protocol's claim form (`#vct`) asks, as simple fields: a SurveyJS template (bare, or inside the
|
|
241
|
+
* `surveyTemplate` envelope's `question`) or a JSON Schema's `properties`. Display elements and hidden questions are
|
|
242
|
+
* left out; a question shown only on a condition is never required.
|
|
243
|
+
*/
|
|
244
|
+
function fieldsFromClaimForm(vct) {
|
|
245
|
+
if (!vct || typeof vct !== "object")
|
|
246
|
+
return [];
|
|
247
|
+
const root = vct;
|
|
248
|
+
const survey = (root.question && typeof root.question === "object" ? root.question : root);
|
|
249
|
+
if (survey.properties && typeof survey.properties === "object")
|
|
250
|
+
return schemaFields(survey);
|
|
251
|
+
const seen = new Set();
|
|
252
|
+
const pages = list(survey.pages).flatMap((page) => {
|
|
253
|
+
const p = (page ?? {});
|
|
254
|
+
return p.visible === false ? [] : surveyFields(list(p.elements), p.visibleIf !== undefined, seen);
|
|
255
|
+
});
|
|
256
|
+
return [...pages, ...surveyFields(list(survey.elements), false, seen)];
|
|
257
|
+
}
|
|
258
|
+
const isEmpty = (value) => value === undefined || value === null || (typeof value === "string" && value.trim() === "") || (Array.isArray(value) && value.length === 0);
|
|
259
|
+
const filesOf = (value) => (Array.isArray(value) ? value : [value]);
|
|
260
|
+
const isFile = (value) => {
|
|
261
|
+
const file = value;
|
|
262
|
+
return Boolean(file && typeof file === "object" && typeof file.name === "string" && typeof file.type === "string" && typeof file.url === "string" && /^https:\/\//.test(file.url));
|
|
263
|
+
};
|
|
264
|
+
/** A number typed into a box arrives as text: "12.5" counts. */
|
|
265
|
+
const numberOf = (value) => (typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value) : NaN);
|
|
266
|
+
/** Plain-word problems with `values` against `fields`; empty = ok. */
|
|
267
|
+
function validateFields(fields, values) {
|
|
268
|
+
const problems = [];
|
|
269
|
+
for (const field of fields) {
|
|
270
|
+
const value = values[field.name];
|
|
271
|
+
if (isEmpty(value)) {
|
|
272
|
+
if (field.required)
|
|
273
|
+
problems.push(`${field.label} is needed.`);
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
switch (field.type) {
|
|
277
|
+
case "number":
|
|
278
|
+
case "integer": {
|
|
279
|
+
const number = numberOf(value);
|
|
280
|
+
if (!Number.isFinite(number))
|
|
281
|
+
problems.push(`${field.label} must be a number.`);
|
|
282
|
+
else if (field.type === "integer" && !Number.isInteger(number))
|
|
283
|
+
problems.push(`${field.label} must be a whole number.`);
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
case "boolean":
|
|
287
|
+
if (typeof value !== "boolean")
|
|
288
|
+
problems.push(`${field.label} must be yes or no.`);
|
|
289
|
+
break;
|
|
290
|
+
case "date":
|
|
291
|
+
if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}$/.test(value) || Number.isNaN(Date.parse(value)))
|
|
292
|
+
problems.push(`${field.label} must be a date (year-month-day).`);
|
|
293
|
+
break;
|
|
294
|
+
case "file":
|
|
295
|
+
if (!filesOf(value).every(isFile))
|
|
296
|
+
problems.push(`${field.label} must be a file that has been uploaded.`);
|
|
297
|
+
break;
|
|
298
|
+
default:
|
|
299
|
+
if (typeof value !== "string")
|
|
300
|
+
problems.push(`${field.label} must be text.`);
|
|
301
|
+
else if (field.url && !/^https?:\/\/\S+$/i.test(value.trim()))
|
|
302
|
+
problems.push(`${field.label} must be a web address starting with https://.`);
|
|
303
|
+
}
|
|
304
|
+
if (field.enum && !field.enum.includes(String(value)))
|
|
305
|
+
problems.push(`${field.label} must be one of: ${field.enum.join(", ")}.`);
|
|
306
|
+
}
|
|
307
|
+
const known = new Set(fields.map((field) => field.name));
|
|
308
|
+
for (const name of Object.keys(values))
|
|
309
|
+
if (!known.has(name) && !isEmpty(values[name]))
|
|
310
|
+
problems.push(`"${name}" is not a question on this form.`);
|
|
311
|
+
return problems;
|
|
312
|
+
}
|
|
313
|
+
/** The answer's value as the checker's rubric reads it: numbers as numbers, files as SurveyJS file answers. */
|
|
314
|
+
function answerOf(field, value) {
|
|
315
|
+
if (field.type === "number" || field.type === "integer")
|
|
316
|
+
return numberOf(value);
|
|
317
|
+
if (field.type === "file")
|
|
318
|
+
return filesOf(value).map((file) => ({ name: file.name, type: file.type, content: file.url }));
|
|
319
|
+
return typeof value === "string" ? value.trim() : value;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* The claim body of an answer to an expert ask, the same from the website and the MCP. The checker's engine reads
|
|
323
|
+
* the claim body verbatim as its `answers`, so every form answer sits at the root under its own name; the Openhands
|
|
324
|
+
* envelope fields ride beside them, with `deliverable` as the answers in words for Openhands' own pages. Throws the
|
|
325
|
+
* plain-word problems when the values do not fit the form.
|
|
326
|
+
*/
|
|
327
|
+
function checkEnvelope(input) {
|
|
328
|
+
const problems = validateFields(input.fields, input.values);
|
|
329
|
+
if (problems.length)
|
|
330
|
+
throw new Error(problems.join(" "));
|
|
331
|
+
const answered = input.fields.filter((field) => !isEmpty(input.values[field.name]));
|
|
332
|
+
const answers = Object.fromEntries(answered.map((field) => [field.name, answerOf(field, input.values[field.name])]));
|
|
333
|
+
const said = (field) => {
|
|
334
|
+
const value = input.values[field.name];
|
|
335
|
+
if (field.type === "file")
|
|
336
|
+
return filesOf(value).map((file) => file.name).join(", ");
|
|
337
|
+
if (field.type === "boolean")
|
|
338
|
+
return value ? "yes" : "no";
|
|
339
|
+
return String(answers[field.name]);
|
|
340
|
+
};
|
|
341
|
+
return {
|
|
342
|
+
v: 2,
|
|
343
|
+
collectionId: input.collectionId,
|
|
344
|
+
ts: input.ts ?? new Date().toISOString(),
|
|
345
|
+
submitter: input.submitter,
|
|
346
|
+
...(input.delegate ? { delegate: input.delegate } : {}),
|
|
347
|
+
...(input.alias ? { alias: input.alias } : {}),
|
|
348
|
+
...(input.via ? { via: input.via } : {}),
|
|
349
|
+
deliverable: answered.map((field) => `${field.label}: ${said(field)}`).join("\n"),
|
|
350
|
+
/* Last: a form question that shares an envelope field's name keeps the person's answer, which is what the checker reads. */
|
|
351
|
+
...answers
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=checkers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkers.js","sourceRoot":"","sources":["../../../src/data/checkers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** The network reads behind `checkers.ts`. Server-side; loaded lazily so a page that only validates a form never carries them. */
|
|
2
|
+
import type { Checker, CheckerCheck, CheckerOpts, CheckRule } from "./checkers.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Whether these bytes are what a linked resource's `proof` promised: a sha256 hex (an engine `#vct`/`#rub`) or a
|
|
5
|
+
* CIDv1 raw sha256 (a Portal-published form). Anything else fails closed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function proofMatches(proof: string, text: string): Promise<boolean>;
|
|
8
|
+
/** The engine's work order says a person answers before the verdict: `review.taskDetails` (or the older `review.tasks`). */
|
|
9
|
+
export declare const hasPersonStep: (manifest: unknown) => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* A check's rules in its author's words: each gate's reason (a rule every answer must pass), each AI check's
|
|
12
|
+
* instructions, each review task's question (a person decides). From the rubric (`#rub`); the engine's work order
|
|
13
|
+
* (`/v1/rubrics/manifest`) stands in for the AI checks and review tasks when the rubric could not be read (it carries
|
|
14
|
+
* no gate reasons).
|
|
15
|
+
*/
|
|
16
|
+
export declare function rulesOf(rubric: unknown, manifest: unknown): CheckRule[];
|
|
17
|
+
export declare function readCheckOfProtocol(protocolDid: string, opts?: CheckerOpts): Promise<CheckerCheck | null>;
|
|
18
|
+
interface InfoDoc {
|
|
19
|
+
supportedProtocols?: unknown;
|
|
20
|
+
openhands?: {
|
|
21
|
+
hire?: unknown;
|
|
22
|
+
scan?: unknown;
|
|
23
|
+
} | null;
|
|
24
|
+
pricing?: {
|
|
25
|
+
evaluation?: {
|
|
26
|
+
denom?: unknown;
|
|
27
|
+
minAmount?: unknown;
|
|
28
|
+
};
|
|
29
|
+
byProtocol?: Record<string, {
|
|
30
|
+
denom?: unknown;
|
|
31
|
+
minAmount?: unknown;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
protocols?: unknown;
|
|
35
|
+
reviewBilling?: {
|
|
36
|
+
mode?: unknown;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** The fee a collection of `protocolDid` is held to: `protocols[].fee` for that protocol, else `pricing.byProtocol[did]`, else `pricing.evaluation` (eval-oracle `publishedPrice`). */
|
|
40
|
+
export declare function priceOf(info: InfoDoc, protocolDid: string): {
|
|
41
|
+
priceBase: number | null;
|
|
42
|
+
priceDenom: string | null;
|
|
43
|
+
};
|
|
44
|
+
export declare function readCheckers(opts?: CheckerOpts): Promise<Checker[]>;
|
|
45
|
+
/**
|
|
46
|
+
* How a checker presents itself, from its domain card (`#dmn` `credentialSubject`) and profile (`#pro`): its name and
|
|
47
|
+
* blurb, and its logo (`logo.contentUrl`, else `image[0].contentUrl`, else the profile's `logo`/`image`). A logo is
|
|
48
|
+
* kept only on IXO's own stores, so a page shows it through <img> from a host it already trusts. Pure.
|
|
49
|
+
*/
|
|
50
|
+
export declare function lookOf(domainCard: unknown, profile: unknown): {
|
|
51
|
+
name?: string;
|
|
52
|
+
what?: string;
|
|
53
|
+
logo?: string;
|
|
54
|
+
};
|
|
55
|
+
/** One checker by its signing address, as its domain card presents it (name, blurb, logo); null when none. */
|
|
56
|
+
export declare function readCheckerByAddress(address: string, opts?: CheckerOpts): Promise<Checker | null>;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=checkersRead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkersRead.d.ts","sourceRoot":"","sources":["../../../src/data/checkersRead.ts"],"names":[],"mappings":"AAAA,kIAAkI;AAElI,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAuDnF;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKhF;AAED,4HAA4H;AAC5H,eAAO,MAAM,aAAa,GAAI,UAAU,OAAO,KAAG,OAGjD,CAAC;AAOF;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,CAevE;AAcD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwCnH;AAiBD,UAAU,OAAO;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC3I,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACpC;AAED,uLAAuL;AACvL,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAMnH;AAyCD,wBAAsB,YAAY,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAI7E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ7G;AAED,8GAA8G;AAC9G,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAc3G"}
|