@ixo/openhands-sdk 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/campaign/campaign.js +3 -2
- package/dist/cjs/campaign/campaign.js.map +1 -1
- package/dist/cjs/campaign/funding.d.ts.map +1 -1
- package/dist/cjs/campaign/funding.js +4 -1
- package/dist/cjs/campaign/funding.js.map +1 -1
- package/dist/cjs/campaign/pool.d.ts.map +1 -1
- package/dist/cjs/campaign/pool.js +4 -3
- package/dist/cjs/campaign/pool.js.map +1 -1
- package/dist/cjs/campaign/record.d.ts.map +1 -1
- package/dist/cjs/campaign/record.js +1 -1
- package/dist/cjs/campaign/record.js.map +1 -1
- package/dist/cjs/campaign/spots.d.ts.map +1 -1
- package/dist/cjs/campaign/spots.js +10 -8
- package/dist/cjs/campaign/spots.js.map +1 -1
- package/dist/cjs/campaign/treasurySends.d.ts.map +1 -1
- package/dist/cjs/campaign/treasurySends.js +3 -3
- package/dist/cjs/campaign/treasurySends.js.map +1 -1
- package/dist/cjs/chain/ask.d.ts +104 -14
- package/dist/cjs/chain/ask.d.ts.map +1 -1
- package/dist/cjs/chain/ask.js +151 -78
- package/dist/cjs/chain/ask.js.map +1 -1
- package/dist/cjs/chain/askImage.d.ts +19 -0
- package/dist/cjs/chain/askImage.d.ts.map +1 -0
- package/dist/cjs/chain/askImage.js +56 -0
- package/dist/cjs/chain/askImage.js.map +1 -0
- package/dist/cjs/chain/bridge.d.ts +7 -33
- package/dist/cjs/chain/bridge.d.ts.map +1 -1
- package/dist/cjs/chain/bridge.js +10 -25
- package/dist/cjs/chain/bridge.js.map +1 -1
- package/dist/cjs/chain/claimSubmit.d.ts +15 -0
- package/dist/cjs/chain/claimSubmit.d.ts.map +1 -0
- package/dist/cjs/chain/claimSubmit.js +14 -0
- package/dist/cjs/chain/claimSubmit.js.map +1 -0
- package/dist/cjs/chain/delegate.d.ts +52 -7
- package/dist/cjs/chain/delegate.d.ts.map +1 -1
- package/dist/cjs/chain/delegate.js +66 -14
- package/dist/cjs/chain/delegate.js.map +1 -1
- package/dist/cjs/chain/domainIndexer.d.ts +26 -0
- package/dist/cjs/chain/domainIndexer.d.ts.map +1 -0
- package/dist/cjs/chain/domainIndexer.js +51 -0
- package/dist/cjs/chain/domainIndexer.js.map +1 -0
- package/dist/cjs/chain/entityShape.d.ts +31 -2
- package/dist/cjs/chain/entityShape.d.ts.map +1 -1
- package/dist/cjs/chain/entityShape.js +71 -8
- package/dist/cjs/chain/entityShape.js.map +1 -1
- package/dist/cjs/chain/env.d.ts +33 -3
- package/dist/cjs/chain/env.d.ts.map +1 -1
- package/dist/cjs/chain/env.js +38 -6
- package/dist/cjs/chain/env.js.map +1 -1
- package/dist/cjs/chain/guest.d.ts +14 -0
- package/dist/cjs/chain/guest.d.ts.map +1 -1
- package/dist/cjs/chain/guest.js +9 -9
- package/dist/cjs/chain/guest.js.map +1 -1
- package/dist/cjs/chain/money.d.ts +53 -2
- package/dist/cjs/chain/money.d.ts.map +1 -1
- package/dist/cjs/chain/money.js +73 -6
- package/dist/cjs/chain/money.js.map +1 -1
- package/dist/cjs/chain/orgReviewBilling.d.ts +124 -0
- package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -0
- package/dist/cjs/chain/orgReviewBilling.js +290 -0
- package/dist/cjs/chain/orgReviewBilling.js.map +1 -0
- package/dist/cjs/chain/orgReviewBillingSign.d.ts +63 -0
- package/dist/cjs/chain/orgReviewBillingSign.d.ts.map +1 -0
- package/dist/cjs/chain/orgReviewBillingSign.js +166 -0
- package/dist/cjs/chain/orgReviewBillingSign.js.map +1 -0
- package/dist/cjs/chain/payoutSettings.d.ts +97 -0
- package/dist/cjs/chain/payoutSettings.d.ts.map +1 -0
- package/dist/cjs/chain/payoutSettings.js +123 -0
- package/dist/cjs/chain/payoutSettings.js.map +1 -0
- package/dist/cjs/chain/payoutTerms.d.ts +72 -0
- package/dist/cjs/chain/payoutTerms.d.ts.map +1 -0
- package/dist/cjs/chain/payoutTerms.js +141 -0
- package/dist/cjs/chain/payoutTerms.js.map +1 -0
- package/dist/cjs/chain/query.d.ts +14 -0
- package/dist/cjs/chain/query.d.ts.map +1 -1
- package/dist/cjs/chain/query.js +27 -0
- package/dist/cjs/chain/query.js.map +1 -1
- package/dist/cjs/chain/reviewBilling.d.ts +86 -0
- package/dist/cjs/chain/reviewBilling.d.ts.map +1 -0
- package/dist/cjs/chain/reviewBilling.js +265 -0
- package/dist/cjs/chain/reviewBilling.js.map +1 -0
- package/dist/cjs/chain/store.d.ts +7 -6
- package/dist/cjs/chain/store.d.ts.map +1 -1
- package/dist/cjs/chain/store.js +7 -6
- package/dist/cjs/chain/store.js.map +1 -1
- package/dist/cjs/chain/subscription.d.ts +0 -7
- package/dist/cjs/chain/subscription.d.ts.map +1 -1
- package/dist/cjs/chain/subscription.js +4 -47
- package/dist/cjs/chain/subscription.js.map +1 -1
- package/dist/cjs/chain/takeBack.d.ts +12 -0
- package/dist/cjs/chain/takeBack.d.ts.map +1 -1
- package/dist/cjs/chain/takeBack.js +24 -10
- package/dist/cjs/chain/takeBack.js.map +1 -1
- package/dist/cjs/chain/why.d.ts +44 -0
- package/dist/cjs/chain/why.d.ts.map +1 -0
- package/dist/cjs/chain/why.js +153 -0
- package/dist/cjs/chain/why.js.map +1 -0
- package/dist/cjs/chain/whyMint.d.ts +8 -0
- package/dist/cjs/chain/whyMint.d.ts.map +1 -0
- package/dist/cjs/chain/whyMint.js +53 -0
- package/dist/cjs/chain/whyMint.js.map +1 -0
- package/dist/cjs/chain.d.ts +8 -4
- package/dist/cjs/chain.d.ts.map +1 -1
- package/dist/cjs/chain.js +21 -9
- package/dist/cjs/chain.js.map +1 -1
- package/dist/cjs/config.d.ts +11 -5
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +2 -0
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/data/askEntity.d.ts +40 -0
- package/dist/cjs/data/askEntity.d.ts.map +1 -0
- package/dist/cjs/data/askEntity.js +48 -0
- package/dist/cjs/data/askEntity.js.map +1 -0
- package/dist/cjs/data/askLinks.d.ts +6 -0
- package/dist/cjs/data/askLinks.d.ts.map +1 -0
- package/dist/cjs/data/askLinks.js +21 -0
- package/dist/cjs/data/askLinks.js.map +1 -0
- package/dist/cjs/data/board/assemble.d.ts.map +1 -1
- package/dist/cjs/data/board/assemble.js +15 -2
- package/dist/cjs/data/board/assemble.js.map +1 -1
- package/dist/cjs/data/board/facts.d.ts +11 -0
- package/dist/cjs/data/board/facts.d.ts.map +1 -1
- package/dist/cjs/data/board/facts.js +16 -0
- package/dist/cjs/data/board/facts.js.map +1 -1
- package/dist/cjs/data/board/read.d.ts.map +1 -1
- package/dist/cjs/data/board/read.js +2 -1
- package/dist/cjs/data/board/read.js.map +1 -1
- package/dist/cjs/data/board/types.d.ts +9 -0
- package/dist/cjs/data/board/types.d.ts.map +1 -1
- package/dist/cjs/data/board/types.js.map +1 -1
- package/dist/cjs/data/docs.d.ts +10 -2
- package/dist/cjs/data/docs.d.ts.map +1 -1
- package/dist/cjs/data/docs.js +43 -3
- package/dist/cjs/data/docs.js.map +1 -1
- package/dist/cjs/data/format.js +1 -1
- package/dist/cjs/data/format.js.map +1 -1
- package/dist/cjs/data/install.d.ts +43 -2
- package/dist/cjs/data/install.d.ts.map +1 -1
- package/dist/cjs/data/install.js +60 -10
- package/dist/cjs/data/install.js.map +1 -1
- package/dist/cjs/data/oracleInfo.d.ts +6 -1
- package/dist/cjs/data/oracleInfo.d.ts.map +1 -1
- package/dist/cjs/data/oracleInfo.js +22 -3
- package/dist/cjs/data/oracleInfo.js.map +1 -1
- package/dist/cjs/data/oracles.d.ts +62 -5
- package/dist/cjs/data/oracles.d.ts.map +1 -1
- package/dist/cjs/data/oracles.js +90 -11
- package/dist/cjs/data/oracles.js.map +1 -1
- package/dist/cjs/data/orgPayouts.d.ts +87 -0
- package/dist/cjs/data/orgPayouts.d.ts.map +1 -0
- package/dist/cjs/data/orgPayouts.js +183 -0
- package/dist/cjs/data/orgPayouts.js.map +1 -0
- package/dist/cjs/data/plans.d.ts +8 -0
- package/dist/cjs/data/plans.d.ts.map +1 -0
- package/dist/cjs/data/plans.js +12 -0
- package/dist/cjs/data/plans.js.map +1 -0
- package/dist/cjs/data/profiles.d.ts +20 -0
- package/dist/cjs/data/profiles.d.ts.map +1 -1
- package/dist/cjs/data/profiles.js +63 -4
- package/dist/cjs/data/profiles.js.map +1 -1
- package/dist/cjs/data/receipt.d.ts +7 -0
- package/dist/cjs/data/receipt.d.ts.map +1 -1
- package/dist/cjs/data/receipt.js +19 -4
- package/dist/cjs/data/receipt.js.map +1 -1
- package/dist/cjs/data/resources.d.ts +3 -0
- package/dist/cjs/data/resources.d.ts.map +1 -1
- package/dist/cjs/data/resources.js +4 -1
- package/dist/cjs/data/resources.js.map +1 -1
- package/dist/cjs/data/threads.d.ts +14 -0
- package/dist/cjs/data/threads.d.ts.map +1 -1
- package/dist/cjs/data/threads.js +32 -20
- package/dist/cjs/data/threads.js.map +1 -1
- package/dist/cjs/data/trace.d.ts +8 -0
- package/dist/cjs/data/trace.d.ts.map +1 -1
- package/dist/cjs/data/trace.js +1 -1
- package/dist/cjs/data/trace.js.map +1 -1
- package/dist/cjs/data/traceWords.d.ts +4 -1
- package/dist/cjs/data/traceWords.d.ts.map +1 -1
- package/dist/cjs/data/traceWords.js +8 -2
- package/dist/cjs/data/traceWords.js.map +1 -1
- package/dist/cjs/data/why.d.ts +38 -0
- package/dist/cjs/data/why.d.ts.map +1 -0
- package/dist/cjs/data/why.js +86 -0
- package/dist/cjs/data/why.js.map +1 -0
- package/dist/cjs/data/whyReceipt.d.ts +33 -0
- package/dist/cjs/data/whyReceipt.d.ts.map +1 -0
- package/dist/cjs/data/whyReceipt.js +291 -0
- package/dist/cjs/data/whyReceipt.js.map +1 -0
- package/dist/cjs/geo/exifcarry.d.ts +9 -0
- package/dist/cjs/geo/exifcarry.d.ts.map +1 -1
- package/dist/cjs/geo/exifcarry.js +35 -0
- package/dist/cjs/geo/exifcarry.js.map +1 -1
- package/dist/cjs/geo/geohash.d.ts +11 -0
- package/dist/cjs/geo/geohash.d.ts.map +1 -1
- package/dist/cjs/geo/geohash.js +53 -3
- package/dist/cjs/geo/geohash.js.map +1 -1
- package/dist/cjs/geo/provenance.d.ts +41 -0
- package/dist/cjs/geo/provenance.d.ts.map +1 -0
- package/dist/cjs/geo/provenance.js +134 -0
- package/dist/cjs/geo/provenance.js.map +1 -0
- package/dist/cjs/rubric/bridge.d.ts +98 -2
- package/dist/cjs/rubric/bridge.d.ts.map +1 -1
- package/dist/cjs/rubric/bridge.js +132 -15
- package/dist/cjs/rubric/bridge.js.map +1 -1
- package/dist/cjs/rubric/card.d.ts +28 -14
- package/dist/cjs/rubric/card.d.ts.map +1 -1
- package/dist/cjs/rubric/card.js +28 -7
- package/dist/cjs/rubric/card.js.map +1 -1
- package/dist/cjs/rubric/claimForm.d.ts +116 -0
- package/dist/cjs/rubric/claimForm.d.ts.map +1 -1
- package/dist/cjs/rubric/claimForm.js +12 -1
- package/dist/cjs/rubric/claimForm.js.map +1 -1
- package/dist/cjs/rubric/compose.d.ts +5 -0
- package/dist/cjs/rubric/compose.d.ts.map +1 -1
- package/dist/cjs/rubric/compose.js +9 -3
- package/dist/cjs/rubric/compose.js.map +1 -1
- package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
- package/dist/cjs/rubric/gateMet.js +4 -2
- package/dist/cjs/rubric/gateMet.js.map +1 -1
- package/dist/cjs/rubric/leg.d.ts +2 -2
- package/dist/cjs/rubric/leg.d.ts.map +1 -1
- package/dist/cjs/rubric/leg.js +7 -5
- package/dist/cjs/rubric/leg.js.map +1 -1
- package/dist/cjs/rubric/marketPlan.d.ts +41 -3
- package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
- package/dist/cjs/rubric/marketPlan.js +110 -10
- package/dist/cjs/rubric/marketPlan.js.map +1 -1
- package/dist/cjs/rubric/observation.d.ts +56 -14
- package/dist/cjs/rubric/observation.d.ts.map +1 -1
- package/dist/cjs/rubric/observation.js +61 -11
- package/dist/cjs/rubric/observation.js.map +1 -1
- package/dist/cjs/rubric/survey.d.ts +65 -0
- package/dist/cjs/rubric/survey.d.ts.map +1 -0
- package/dist/cjs/rubric/survey.js +101 -0
- package/dist/cjs/rubric/survey.js.map +1 -0
- package/dist/cjs/rubric/terms.d.ts +7 -0
- package/dist/cjs/rubric/terms.d.ts.map +1 -1
- package/dist/cjs/rubric/terms.js +12 -1
- package/dist/cjs/rubric/terms.js.map +1 -1
- package/dist/cjs/rubric.d.ts +1 -1
- package/dist/cjs/rubric.d.ts.map +1 -1
- package/dist/cjs/rubric.js +4 -2
- package/dist/cjs/rubric.js.map +1 -1
- package/dist/esm/campaign/campaign.js +4 -3
- package/dist/esm/campaign/campaign.js.map +1 -1
- package/dist/esm/campaign/funding.d.ts.map +1 -1
- package/dist/esm/campaign/funding.js +5 -2
- package/dist/esm/campaign/funding.js.map +1 -1
- package/dist/esm/campaign/pool.d.ts.map +1 -1
- package/dist/esm/campaign/pool.js +4 -3
- package/dist/esm/campaign/pool.js.map +1 -1
- package/dist/esm/campaign/record.d.ts.map +1 -1
- package/dist/esm/campaign/record.js +2 -2
- package/dist/esm/campaign/record.js.map +1 -1
- package/dist/esm/campaign/spots.d.ts.map +1 -1
- package/dist/esm/campaign/spots.js +10 -8
- package/dist/esm/campaign/spots.js.map +1 -1
- package/dist/esm/campaign/treasurySends.d.ts.map +1 -1
- package/dist/esm/campaign/treasurySends.js +4 -4
- package/dist/esm/campaign/treasurySends.js.map +1 -1
- package/dist/esm/chain/ask.d.ts +104 -14
- package/dist/esm/chain/ask.d.ts.map +1 -1
- package/dist/esm/chain/ask.js +152 -80
- package/dist/esm/chain/ask.js.map +1 -1
- package/dist/esm/chain/askImage.d.ts +19 -0
- package/dist/esm/chain/askImage.d.ts.map +1 -0
- package/dist/esm/chain/askImage.js +50 -0
- package/dist/esm/chain/askImage.js.map +1 -0
- package/dist/esm/chain/bridge.d.ts +7 -33
- package/dist/esm/chain/bridge.d.ts.map +1 -1
- package/dist/esm/chain/bridge.js +10 -24
- package/dist/esm/chain/bridge.js.map +1 -1
- package/dist/esm/chain/claimSubmit.d.ts +15 -0
- package/dist/esm/chain/claimSubmit.d.ts.map +1 -0
- package/dist/esm/chain/claimSubmit.js +10 -0
- package/dist/esm/chain/claimSubmit.js.map +1 -0
- package/dist/esm/chain/delegate.d.ts +52 -7
- package/dist/esm/chain/delegate.d.ts.map +1 -1
- package/dist/esm/chain/delegate.js +64 -13
- package/dist/esm/chain/delegate.js.map +1 -1
- package/dist/esm/chain/domainIndexer.d.ts +26 -0
- package/dist/esm/chain/domainIndexer.d.ts.map +1 -0
- package/dist/esm/chain/domainIndexer.js +48 -0
- package/dist/esm/chain/domainIndexer.js.map +1 -0
- package/dist/esm/chain/entityShape.d.ts +31 -2
- package/dist/esm/chain/entityShape.d.ts.map +1 -1
- package/dist/esm/chain/entityShape.js +65 -7
- package/dist/esm/chain/entityShape.js.map +1 -1
- package/dist/esm/chain/env.d.ts +33 -3
- package/dist/esm/chain/env.d.ts.map +1 -1
- package/dist/esm/chain/env.js +33 -5
- package/dist/esm/chain/env.js.map +1 -1
- package/dist/esm/chain/guest.d.ts +14 -0
- package/dist/esm/chain/guest.d.ts.map +1 -1
- package/dist/esm/chain/guest.js +7 -8
- package/dist/esm/chain/guest.js.map +1 -1
- package/dist/esm/chain/money.d.ts +53 -2
- package/dist/esm/chain/money.d.ts.map +1 -1
- package/dist/esm/chain/money.js +63 -4
- package/dist/esm/chain/money.js.map +1 -1
- package/dist/esm/chain/orgReviewBilling.d.ts +124 -0
- package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -0
- package/dist/esm/chain/orgReviewBilling.js +241 -0
- package/dist/esm/chain/orgReviewBilling.js.map +1 -0
- package/dist/esm/chain/orgReviewBillingSign.d.ts +63 -0
- package/dist/esm/chain/orgReviewBillingSign.d.ts.map +1 -0
- package/dist/esm/chain/orgReviewBillingSign.js +124 -0
- package/dist/esm/chain/orgReviewBillingSign.js.map +1 -0
- package/dist/esm/chain/payoutSettings.d.ts +97 -0
- package/dist/esm/chain/payoutSettings.d.ts.map +1 -0
- package/dist/esm/chain/payoutSettings.js +111 -0
- package/dist/esm/chain/payoutSettings.js.map +1 -0
- package/dist/esm/chain/payoutTerms.d.ts +72 -0
- package/dist/esm/chain/payoutTerms.d.ts.map +1 -0
- package/dist/esm/chain/payoutTerms.js +127 -0
- package/dist/esm/chain/payoutTerms.js.map +1 -0
- package/dist/esm/chain/query.d.ts +14 -0
- package/dist/esm/chain/query.d.ts.map +1 -1
- package/dist/esm/chain/query.js +25 -0
- package/dist/esm/chain/query.js.map +1 -1
- package/dist/esm/chain/reviewBilling.d.ts +86 -0
- package/dist/esm/chain/reviewBilling.d.ts.map +1 -0
- package/dist/esm/chain/reviewBilling.js +215 -0
- package/dist/esm/chain/reviewBilling.js.map +1 -0
- package/dist/esm/chain/store.d.ts +7 -6
- package/dist/esm/chain/store.d.ts.map +1 -1
- package/dist/esm/chain/store.js +7 -6
- package/dist/esm/chain/store.js.map +1 -1
- package/dist/esm/chain/subscription.d.ts +0 -7
- package/dist/esm/chain/subscription.d.ts.map +1 -1
- package/dist/esm/chain/subscription.js +4 -13
- package/dist/esm/chain/subscription.js.map +1 -1
- package/dist/esm/chain/takeBack.d.ts +12 -0
- package/dist/esm/chain/takeBack.d.ts.map +1 -1
- package/dist/esm/chain/takeBack.js +22 -9
- package/dist/esm/chain/takeBack.js.map +1 -1
- package/dist/esm/chain/why.d.ts +44 -0
- package/dist/esm/chain/why.d.ts.map +1 -0
- package/dist/esm/chain/why.js +111 -0
- package/dist/esm/chain/why.js.map +1 -0
- package/dist/esm/chain/whyMint.d.ts +8 -0
- package/dist/esm/chain/whyMint.d.ts.map +1 -0
- package/dist/esm/chain/whyMint.js +17 -0
- package/dist/esm/chain/whyMint.js.map +1 -0
- package/dist/esm/chain.d.ts +8 -4
- package/dist/esm/chain.d.ts.map +1 -1
- package/dist/esm/chain.js +9 -4
- package/dist/esm/chain.js.map +1 -1
- package/dist/esm/config.d.ts +11 -5
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +3 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/data/askEntity.d.ts +40 -0
- package/dist/esm/data/askEntity.d.ts.map +1 -0
- package/dist/esm/data/askEntity.js +41 -0
- package/dist/esm/data/askEntity.js.map +1 -0
- package/dist/esm/data/askLinks.d.ts +6 -0
- package/dist/esm/data/askLinks.d.ts.map +1 -0
- package/dist/esm/data/askLinks.js +16 -0
- package/dist/esm/data/askLinks.js.map +1 -0
- package/dist/esm/data/board/assemble.d.ts.map +1 -1
- package/dist/esm/data/board/assemble.js +15 -2
- package/dist/esm/data/board/assemble.js.map +1 -1
- package/dist/esm/data/board/facts.d.ts +11 -0
- package/dist/esm/data/board/facts.d.ts.map +1 -1
- package/dist/esm/data/board/facts.js +15 -0
- package/dist/esm/data/board/facts.js.map +1 -1
- package/dist/esm/data/board/read.d.ts.map +1 -1
- package/dist/esm/data/board/read.js +2 -1
- package/dist/esm/data/board/read.js.map +1 -1
- package/dist/esm/data/board/types.d.ts +9 -0
- package/dist/esm/data/board/types.d.ts.map +1 -1
- package/dist/esm/data/board/types.js.map +1 -1
- package/dist/esm/data/docs.d.ts +10 -2
- package/dist/esm/data/docs.d.ts.map +1 -1
- package/dist/esm/data/docs.js +43 -4
- package/dist/esm/data/docs.js.map +1 -1
- package/dist/esm/data/format.js +1 -1
- package/dist/esm/data/format.js.map +1 -1
- package/dist/esm/data/install.d.ts +43 -2
- package/dist/esm/data/install.d.ts.map +1 -1
- package/dist/esm/data/install.js +56 -9
- package/dist/esm/data/install.js.map +1 -1
- package/dist/esm/data/oracleInfo.d.ts +6 -1
- package/dist/esm/data/oracleInfo.d.ts.map +1 -1
- package/dist/esm/data/oracleInfo.js +22 -3
- package/dist/esm/data/oracleInfo.js.map +1 -1
- package/dist/esm/data/oracles.d.ts +62 -5
- package/dist/esm/data/oracles.d.ts.map +1 -1
- package/dist/esm/data/oracles.js +87 -12
- package/dist/esm/data/oracles.js.map +1 -1
- package/dist/esm/data/orgPayouts.d.ts +87 -0
- package/dist/esm/data/orgPayouts.d.ts.map +1 -0
- package/dist/esm/data/orgPayouts.js +170 -0
- package/dist/esm/data/orgPayouts.js.map +1 -0
- package/dist/esm/data/plans.d.ts +8 -0
- package/dist/esm/data/plans.d.ts.map +1 -0
- package/dist/esm/data/plans.js +8 -0
- package/dist/esm/data/plans.js.map +1 -0
- package/dist/esm/data/profiles.d.ts +20 -0
- package/dist/esm/data/profiles.d.ts.map +1 -1
- package/dist/esm/data/profiles.js +60 -4
- package/dist/esm/data/profiles.js.map +1 -1
- package/dist/esm/data/receipt.d.ts +7 -0
- package/dist/esm/data/receipt.d.ts.map +1 -1
- package/dist/esm/data/receipt.js +20 -5
- package/dist/esm/data/receipt.js.map +1 -1
- package/dist/esm/data/resources.d.ts +3 -0
- package/dist/esm/data/resources.d.ts.map +1 -1
- package/dist/esm/data/resources.js +2 -0
- package/dist/esm/data/resources.js.map +1 -1
- package/dist/esm/data/threads.d.ts +14 -0
- package/dist/esm/data/threads.d.ts.map +1 -1
- package/dist/esm/data/threads.js +32 -21
- package/dist/esm/data/threads.js.map +1 -1
- package/dist/esm/data/trace.d.ts +8 -0
- package/dist/esm/data/trace.d.ts.map +1 -1
- package/dist/esm/data/trace.js +1 -1
- package/dist/esm/data/trace.js.map +1 -1
- package/dist/esm/data/traceWords.d.ts +4 -1
- package/dist/esm/data/traceWords.d.ts.map +1 -1
- package/dist/esm/data/traceWords.js +8 -2
- package/dist/esm/data/traceWords.js.map +1 -1
- package/dist/esm/data/why.d.ts +38 -0
- package/dist/esm/data/why.d.ts.map +1 -0
- package/dist/esm/data/why.js +78 -0
- package/dist/esm/data/why.js.map +1 -0
- package/dist/esm/data/whyReceipt.d.ts +33 -0
- package/dist/esm/data/whyReceipt.d.ts.map +1 -0
- package/dist/esm/data/whyReceipt.js +284 -0
- package/dist/esm/data/whyReceipt.js.map +1 -0
- package/dist/esm/geo/exifcarry.d.ts +9 -0
- package/dist/esm/geo/exifcarry.d.ts.map +1 -1
- package/dist/esm/geo/exifcarry.js +34 -0
- package/dist/esm/geo/exifcarry.js.map +1 -1
- package/dist/esm/geo/geohash.d.ts +11 -0
- package/dist/esm/geo/geohash.d.ts.map +1 -1
- package/dist/esm/geo/geohash.js +52 -3
- package/dist/esm/geo/geohash.js.map +1 -1
- package/dist/esm/geo/provenance.d.ts +41 -0
- package/dist/esm/geo/provenance.d.ts.map +1 -0
- package/dist/esm/geo/provenance.js +129 -0
- package/dist/esm/geo/provenance.js.map +1 -0
- package/dist/esm/rubric/bridge.d.ts +98 -2
- package/dist/esm/rubric/bridge.d.ts.map +1 -1
- package/dist/esm/rubric/bridge.js +130 -14
- package/dist/esm/rubric/bridge.js.map +1 -1
- package/dist/esm/rubric/card.d.ts +28 -14
- package/dist/esm/rubric/card.d.ts.map +1 -1
- package/dist/esm/rubric/card.js +24 -5
- package/dist/esm/rubric/card.js.map +1 -1
- package/dist/esm/rubric/claimForm.d.ts +116 -0
- package/dist/esm/rubric/claimForm.d.ts.map +1 -1
- package/dist/esm/rubric/claimForm.js +11 -0
- package/dist/esm/rubric/claimForm.js.map +1 -1
- package/dist/esm/rubric/compose.d.ts +5 -0
- package/dist/esm/rubric/compose.d.ts.map +1 -1
- package/dist/esm/rubric/compose.js +7 -2
- package/dist/esm/rubric/compose.js.map +1 -1
- package/dist/esm/rubric/gateMet.d.ts.map +1 -1
- package/dist/esm/rubric/gateMet.js +4 -2
- package/dist/esm/rubric/gateMet.js.map +1 -1
- package/dist/esm/rubric/leg.d.ts +2 -2
- package/dist/esm/rubric/leg.d.ts.map +1 -1
- package/dist/esm/rubric/leg.js +7 -5
- package/dist/esm/rubric/leg.js.map +1 -1
- package/dist/esm/rubric/marketPlan.d.ts +41 -3
- package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
- package/dist/esm/rubric/marketPlan.js +107 -9
- package/dist/esm/rubric/marketPlan.js.map +1 -1
- package/dist/esm/rubric/observation.d.ts +56 -14
- package/dist/esm/rubric/observation.d.ts.map +1 -1
- package/dist/esm/rubric/observation.js +61 -12
- package/dist/esm/rubric/observation.js.map +1 -1
- package/dist/esm/rubric/survey.d.ts +65 -0
- package/dist/esm/rubric/survey.d.ts.map +1 -0
- package/dist/esm/rubric/survey.js +94 -0
- package/dist/esm/rubric/survey.js.map +1 -0
- package/dist/esm/rubric/terms.d.ts +7 -0
- package/dist/esm/rubric/terms.d.ts.map +1 -1
- package/dist/esm/rubric/terms.js +12 -2
- package/dist/esm/rubric/terms.js.map +1 -1
- package/dist/esm/rubric.d.ts +1 -1
- package/dist/esm/rubric.d.ts.map +1 -1
- package/dist/esm/rubric.js +1 -1
- package/dist/esm/rubric.js.map +1 -1
- package/package.json +8 -2
|
@@ -81,6 +81,30 @@ export declare const INSTALL_WHERE: Record<InstallClient, string>;
|
|
|
81
81
|
export declare const PLUGIN_MARKETPLACE = "ixoworld/ixo-plugins";
|
|
82
82
|
export declare const PLUGIN_NAME = "ixo-openhands";
|
|
83
83
|
export declare const PLUGIN_ID = "ixo-openhands@ixo-plugins";
|
|
84
|
+
/**
|
|
85
|
+
* The hosted MCP (claude.ai, ChatGPT) only reads. Everything that signs runs in
|
|
86
|
+
* Claude Code with the local MCP / HQ plugin, where keys and data stay on the
|
|
87
|
+
* user's machine (owner ruling 2026-10-15). One wording, said everywhere.
|
|
88
|
+
*/
|
|
89
|
+
export declare const HQ_PLUGIN_NAME = "ixo-openhands-hq";
|
|
90
|
+
/** The plugin marketplace's public repository: every plugin's skill, README and version. */
|
|
91
|
+
export declare const PLUGIN_MARKETPLACE_URL = "https://github.com/ixoworld/ixo-plugins";
|
|
92
|
+
/** An npm package's page, where its latest version is. */
|
|
93
|
+
export declare const npmUrl: (name: string) => string;
|
|
94
|
+
/**
|
|
95
|
+
* The packages the plugins run, each with the version range an install pins (npx takes the newest inside it). The
|
|
96
|
+
* guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
|
|
97
|
+
*/
|
|
98
|
+
export declare const RESOURCE_PACKAGES: readonly {
|
|
99
|
+
name: string;
|
|
100
|
+
range: string;
|
|
101
|
+
what: string;
|
|
102
|
+
}[];
|
|
103
|
+
/** One line per package: name@range, what it is, its npm page. */
|
|
104
|
+
export declare const resourceLines: () => string[];
|
|
105
|
+
/** The marketplace also lists two hosted, read-only plugins; their names read like network versions of ixo-openhands, so say what they are. */
|
|
106
|
+
export declare const READ_ONLY_PLUGINS_LINE = "ixo-openhands-mainnet and ixo-openhands-testnet in the same marketplace are read-only: they only look at the board, with no posting, payouts or sign-in. They are not the mainnet or testnet versions of ixo-openhands; for those, install ixo-openhands or ixo-openhands-hq, which start on mainnet and switch to testnet with OPENHANDS_NETWORK=testnet.";
|
|
107
|
+
export declare const READ_ONLY_LINE = "This connector can only read. To post asks, set up payouts, pay for reviews or get paid, use Claude Code with an OpenHands plugin (ixo-openhands-hq for a company, ixo-openhands for a worker or yourself): it runs on your computer, so your keys and data stay with you.";
|
|
84
108
|
/**
|
|
85
109
|
* The network the plugin starts on, and the variable that changes it.
|
|
86
110
|
*
|
|
@@ -102,9 +126,26 @@ export type PluginClient = (typeof PLUGIN_CLIENTS)[number];
|
|
|
102
126
|
*/
|
|
103
127
|
export declare const PLUGIN_INSTALLS: readonly ["claude-code", "claude-code-older", "codex"];
|
|
104
128
|
export type PluginInstall = (typeof PLUGIN_INSTALLS)[number];
|
|
105
|
-
/** One plugin install, a command per line. */
|
|
106
|
-
export declare function pluginLines(install: PluginInstall): string;
|
|
129
|
+
/** One plugin install, a command per line: the worker plugin unless `name` says which. */
|
|
130
|
+
export declare function pluginLines(install: PluginInstall, name?: string): string;
|
|
131
|
+
/** The HQ plugin's two Claude Code lines, which work on every Claude Code version. */
|
|
132
|
+
export declare const HQ_INSTALL_LINES: string;
|
|
133
|
+
/**
|
|
134
|
+
* The two ways in, company first: who each plugin is for and what it does.
|
|
135
|
+
* Every page and tool that shows an install shows both, from here.
|
|
136
|
+
*/
|
|
137
|
+
export declare const PLUGIN_PATHS: readonly [{
|
|
138
|
+
readonly name: "ixo-openhands-hq";
|
|
139
|
+
readonly who: "For a company";
|
|
140
|
+
readonly what: "Set up your company (organisation, how workers are paid, a reviewer, review billing), then post asks.";
|
|
141
|
+
}, {
|
|
142
|
+
readonly name: "ixo-openhands";
|
|
143
|
+
readonly who: "For a worker or yourself";
|
|
144
|
+
readonly what: "Find asks, answer them and get paid. Post asks of your own.";
|
|
145
|
+
}];
|
|
107
146
|
export declare const PLUGIN_WHERE: Record<PluginInstall, string>;
|
|
147
|
+
/** Both plugins as plain text, company first: who it is for, then each install's lines. */
|
|
148
|
+
export declare function pluginPathsText(installs?: readonly PluginInstall[]): string[];
|
|
108
149
|
/**
|
|
109
150
|
* What the plugin brings and which network it starts on, said for the site at
|
|
110
151
|
* `network`: on mainnet, how to get the test network instead; on the test
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,0EAA0E;AAC1E,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAEhD,iGAAiG;AACjG,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,iCAAiC;AACjC,eAAO,MAAM,QAAQ,yBAAgC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,wDAAwD;AACxD,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,KAAG,MAA2D,CAAC;AAEvG,eAAO,MAAM,eAAe,uDAAwD,CAAC;AACrF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAgBD,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAqBnF;AAED,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,SAAS,8BAA+B,CAAC;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAChD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,gGAAgG;AAChG,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc,mCAAoC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,eAAe,wDAAyD,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/data/install.js
CHANGED
|
@@ -91,6 +91,30 @@ export const INSTALL_WHERE = {
|
|
|
91
91
|
export const PLUGIN_MARKETPLACE = "ixoworld/ixo-plugins";
|
|
92
92
|
export const PLUGIN_NAME = "ixo-openhands";
|
|
93
93
|
export const PLUGIN_ID = `${PLUGIN_NAME}@ixo-plugins`;
|
|
94
|
+
/**
|
|
95
|
+
* The hosted MCP (claude.ai, ChatGPT) only reads. Everything that signs runs in
|
|
96
|
+
* Claude Code with the local MCP / HQ plugin, where keys and data stay on the
|
|
97
|
+
* user's machine (owner ruling 2026-10-15). One wording, said everywhere.
|
|
98
|
+
*/
|
|
99
|
+
export const HQ_PLUGIN_NAME = "ixo-openhands-hq";
|
|
100
|
+
/** The plugin marketplace's public repository: every plugin's skill, README and version. */
|
|
101
|
+
export const PLUGIN_MARKETPLACE_URL = `https://github.com/${PLUGIN_MARKETPLACE}`;
|
|
102
|
+
/** An npm package's page, where its latest version is. */
|
|
103
|
+
export const npmUrl = (name) => `https://www.npmjs.com/package/${name}`;
|
|
104
|
+
/**
|
|
105
|
+
* The packages the plugins run, each with the version range an install pins (npx takes the newest inside it). The
|
|
106
|
+
* guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
|
|
107
|
+
*/
|
|
108
|
+
export const RESOURCE_PACKAGES = [
|
|
109
|
+
{ name: MCP_PACKAGE, range: String(MCP_MAJOR), what: `the Openhands tools both plugins run (server name ${MCP_SERVER})` },
|
|
110
|
+
{ name: "@ixo/decision-oracle", range: "0.2", what: `company setup: the organisation, its reviewer and Pay for reviews (used by ${HQ_PLUGIN_NAME})` },
|
|
111
|
+
{ name: "@ixo/payouts-facilitator", range: "0.1", what: `a company's own payouts service, for paying workers USDC on Base (used by ${HQ_PLUGIN_NAME})` }
|
|
112
|
+
];
|
|
113
|
+
/** One line per package: name@range, what it is, its npm page. */
|
|
114
|
+
export const resourceLines = () => RESOURCE_PACKAGES.map((one) => `${one.name}@${one.range}: ${one.what}. ${npmUrl(one.name)}`);
|
|
115
|
+
/** The marketplace also lists two hosted, read-only plugins; their names read like network versions of ixo-openhands, so say what they are. */
|
|
116
|
+
export const READ_ONLY_PLUGINS_LINE = "ixo-openhands-mainnet and ixo-openhands-testnet in the same marketplace are read-only: they only look at the board, with no posting, payouts or sign-in. They are not the mainnet or testnet versions of ixo-openhands; for those, install ixo-openhands or ixo-openhands-hq, which start on mainnet and switch to testnet with OPENHANDS_NETWORK=testnet.";
|
|
117
|
+
export const READ_ONLY_LINE = "This connector can only read. To post asks, set up payouts, pay for reviews or get paid, use Claude Code with an OpenHands plugin (ixo-openhands-hq for a company, ixo-openhands for a worker or yourself): it runs on your computer, so your keys and data stay with you.";
|
|
94
118
|
/**
|
|
95
119
|
* The network the plugin starts on, and the variable that changes it.
|
|
96
120
|
*
|
|
@@ -110,33 +134,56 @@ export const PLUGIN_CLIENTS = ["claude-code", "codex"];
|
|
|
110
134
|
* the two steps an older Claude Code needs, then Codex.
|
|
111
135
|
*/
|
|
112
136
|
export const PLUGIN_INSTALLS = ["claude-code", "claude-code-older", "codex"];
|
|
113
|
-
/** One plugin install, a command per line. */
|
|
114
|
-
export function pluginLines(install) {
|
|
137
|
+
/** One plugin install, a command per line: the worker plugin unless `name` says which. */
|
|
138
|
+
export function pluginLines(install, name = PLUGIN_NAME) {
|
|
139
|
+
const id = `${name}@ixo-plugins`;
|
|
115
140
|
switch (install) {
|
|
116
141
|
case "claude-code":
|
|
117
|
-
return `/plugin install ${
|
|
142
|
+
return `/plugin install ${name} --marketplace ${PLUGIN_MARKETPLACE}`;
|
|
118
143
|
case "claude-code-older":
|
|
119
|
-
return [`/plugin marketplace add ${PLUGIN_MARKETPLACE}`, `/plugin install ${
|
|
144
|
+
return [`/plugin marketplace add ${PLUGIN_MARKETPLACE}`, `/plugin install ${id}`].join("\n");
|
|
120
145
|
case "codex":
|
|
121
|
-
return [`codex plugin marketplace add ${PLUGIN_MARKETPLACE}`, `codex plugin add ${
|
|
146
|
+
return [`codex plugin marketplace add ${PLUGIN_MARKETPLACE}`, `codex plugin add ${id}`].join("\n");
|
|
122
147
|
}
|
|
123
148
|
}
|
|
149
|
+
/** The HQ plugin's two Claude Code lines, which work on every Claude Code version. */
|
|
150
|
+
export const HQ_INSTALL_LINES = pluginLines("claude-code-older", HQ_PLUGIN_NAME);
|
|
151
|
+
/**
|
|
152
|
+
* The two ways in, company first: who each plugin is for and what it does.
|
|
153
|
+
* Every page and tool that shows an install shows both, from here.
|
|
154
|
+
*/
|
|
155
|
+
export const PLUGIN_PATHS = [
|
|
156
|
+
{
|
|
157
|
+
name: HQ_PLUGIN_NAME,
|
|
158
|
+
who: "For a company",
|
|
159
|
+
what: "Set up your company (organisation, how workers are paid, a reviewer, review billing), then post asks."
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
name: PLUGIN_NAME,
|
|
163
|
+
who: "For a worker or yourself",
|
|
164
|
+
what: "Find asks, answer them and get paid. Post asks of your own."
|
|
165
|
+
}
|
|
166
|
+
];
|
|
124
167
|
export const PLUGIN_WHERE = {
|
|
125
168
|
"claude-code": `Claude Code ${CLAUDE_CODE_ONE_STEP} or newer, typed inside a session:`,
|
|
126
169
|
"claude-code-older": "An older Claude Code, two lines inside a session:",
|
|
127
170
|
codex: "Codex, in a terminal:"
|
|
128
171
|
};
|
|
172
|
+
/** Both plugins as plain text, company first: who it is for, then each install's lines. */
|
|
173
|
+
export function pluginPathsText(installs = PLUGIN_INSTALLS) {
|
|
174
|
+
return PLUGIN_PATHS.map((path) => [`${path.who}: ${path.name}. ${path.what}`, ...installs.map((one) => `${PLUGIN_WHERE[one]}\n${pluginLines(one, path.name)}`)].join("\n\n"));
|
|
175
|
+
}
|
|
129
176
|
/**
|
|
130
177
|
* What the plugin brings and which network it starts on, said for the site at
|
|
131
178
|
* `network`: on mainnet, how to get the test network instead; on the test
|
|
132
179
|
* network, that the client has to be started for it.
|
|
133
180
|
*/
|
|
134
181
|
export function pluginNetworkNote(network) {
|
|
135
|
-
const what = "
|
|
136
|
-
const codex = `Codex
|
|
182
|
+
const what = "Each plugin brings the server and its skill.";
|
|
183
|
+
const codex = `In Codex the plugins are always mainnet; for the test network there, use the config.toml lines.`;
|
|
137
184
|
return network === PLUGIN_NETWORK_DEFAULT
|
|
138
|
-
? `${what}
|
|
139
|
-
: `${what} This site is the test network, where
|
|
185
|
+
? `${what} They start on mainnet, where rewards are paid in IXO or USDC. To try the test network, where coins have no value, start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet set in its shell (${PLUGIN_NETWORK_ENV}=testnet claude). ${codex}`
|
|
186
|
+
: `${what} This site is the test network, where coins have no value, and the plugins start on mainnet: start Claude Code with ${PLUGIN_NETWORK_ENV}=testnet (${PLUGIN_NETWORK_ENV}=testnet claude) so it matches. ${codex}`;
|
|
140
187
|
}
|
|
141
188
|
/**
|
|
142
189
|
* The hosted server, for a client that cannot run a local one. It reads the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,14 @@
|
|
|
10
10
|
export interface OracleInfo {
|
|
11
11
|
address: string;
|
|
12
12
|
name: string;
|
|
13
|
-
/** The minimum evaluation leg, in base units of `denom
|
|
13
|
+
/** The minimum evaluation leg, in base units of `denom`; under per-review billing, the price of one check. */
|
|
14
14
|
priceBase: number;
|
|
15
15
|
denom: string;
|
|
16
|
+
/**
|
|
17
|
+
* How the oracle is paid for a check (S3 contract 2026-10-14, `reviewBilling.mode`): "x402" bills each check to the
|
|
18
|
+
* payer's Console credits, so an ask carries an EMPTY evaluation leg; "escrow" (also: absent or malformed) is today's.
|
|
19
|
+
*/
|
|
20
|
+
reviewBilling: "x402" | "escrow";
|
|
16
21
|
}
|
|
17
22
|
export type FetchJson = (url: string) => Promise<unknown>;
|
|
18
23
|
/** Null when there is no oracle URL, it does not answer, or its answer names no price. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracleInfo.d.ts","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"oracleInfo.d.ts","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,8GAA8G;IAC9G,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAeD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAO1D,0FAA0F;AAC1F,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAqB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoBzG"}
|
|
@@ -7,6 +7,20 @@
|
|
|
7
7
|
* the price the oracle will actually hold an ask to, rather than a number a
|
|
8
8
|
* deployment typed once. Server-side only; a browser never calls the oracle.
|
|
9
9
|
*/
|
|
10
|
+
/** `reviewBilling` as published, strictly: `{mode: "x402", pricePerReview: {denom, amount} | null}`, else escrow. */
|
|
11
|
+
function reviewBillingOf(raw) {
|
|
12
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
13
|
+
return null;
|
|
14
|
+
const { mode, pricePerReview: price } = raw;
|
|
15
|
+
if (mode !== "x402")
|
|
16
|
+
return null;
|
|
17
|
+
if (price === null)
|
|
18
|
+
return { mode, price: null };
|
|
19
|
+
const { denom, amount } = (price ?? {});
|
|
20
|
+
if (typeof denom !== "string" || !denom || typeof amount !== "string" || !/^\d{1,20}$/.test(amount))
|
|
21
|
+
return null;
|
|
22
|
+
return { mode, price: { denom, amount: Number(amount) } };
|
|
23
|
+
}
|
|
10
24
|
const TIMEOUT_MS = 5_000;
|
|
11
25
|
const fetchJson = async (url) => {
|
|
12
26
|
const response = await fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS), headers: { accept: "application/json" } });
|
|
@@ -26,10 +40,15 @@ export async function oracleInfo(baseUrl, read = fetchJson) {
|
|
|
26
40
|
}
|
|
27
41
|
const info = doc;
|
|
28
42
|
const address = typeof info?.address === "string" ? info.address : "";
|
|
29
|
-
const
|
|
30
|
-
const
|
|
43
|
+
const perReview = reviewBillingOf(info?.reviewBilling);
|
|
44
|
+
const raw = info?.pricing?.evaluation?.minAmount;
|
|
45
|
+
// Number(null) and Number("") are 0: an unpublished price must not read as a free one.
|
|
46
|
+
const leg = typeof raw === "string" && raw.trim() !== "" ? Number(raw) : typeof raw === "number" ? raw : NaN;
|
|
47
|
+
/* Per review, the price of one check is the one shown; else the evaluation leg the oracle holds an ask to. */
|
|
48
|
+
const denom = perReview?.price?.denom ?? (typeof info?.pricing?.evaluation?.denom === "string" ? info.pricing.evaluation.denom : "");
|
|
49
|
+
const amount = perReview?.price?.amount ?? leg;
|
|
31
50
|
if (!address || !denom || !Number.isFinite(amount) || amount < 0)
|
|
32
51
|
return null;
|
|
33
|
-
return { address, name: typeof info?.name === "string" && info.name ? info.name : "oracle", priceBase: Math.round(amount), denom };
|
|
52
|
+
return { address, name: typeof info?.name === "string" && info.name ? info.name : "oracle", priceBase: Math.round(amount), denom, reviewBilling: perReview ? "x402" : "escrow" };
|
|
34
53
|
}
|
|
35
54
|
//# sourceMappingURL=oracleInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracleInfo.js","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"oracleInfo.js","sourceRoot":"","sources":["../../../src/data/oracleInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,qHAAqH;AACrH,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,GAAmD,CAAC;IAC5F,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,GAAG,KAAK,CAAC;AAIzB,MAAM,SAAS,GAAc,KAAK,EAAE,GAAG,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACxH,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAkB,SAAS;IAC3E,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAiJ,CAAC;IAC/J,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;IACjD,uFAAuF;IACvF,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7G,8GAA8G;IAC9G,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrI,MAAM,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnL,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** Server-side reads of the oracles on chain. Never imported by client code. */
|
|
2
2
|
import { type CardService } from "../rubric/card.ts";
|
|
3
|
+
import type { CriterionKind } from "../rubric/terms.ts";
|
|
3
4
|
/**
|
|
4
5
|
* Who is offering to work, read from the chain rather than from a deploy.
|
|
5
6
|
*
|
|
@@ -14,16 +15,54 @@ import { type CardService } from "../rubric/card.ts";
|
|
|
14
15
|
*/
|
|
15
16
|
export interface Oracle {
|
|
16
17
|
did: string;
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* The account that signs, the grantee named on an ask: the runtime address the
|
|
20
|
+
* entity's `#orz` names, else the entity's owner (see `signingAddress`). Empty
|
|
21
|
+
* when `unavailable`.
|
|
22
|
+
*/
|
|
18
23
|
address: string;
|
|
24
|
+
/** Set when the entity has an `#orz` we could not read or believe: not hireable this read. */
|
|
25
|
+
unavailable?: string;
|
|
19
26
|
name: string;
|
|
20
27
|
description: string;
|
|
21
28
|
services: CardService[];
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
/**
|
|
30
|
+
* The cheapest service price, in base units of the network's checker-fee denom (`checkerFeeDenom`: upay), read from the card's `{currency: "PAY"}` prices. Null when it names none.
|
|
31
|
+
*/
|
|
32
|
+
priceBase: number | null;
|
|
33
|
+
/** Which criterion kinds it can settle, read from its service ids (`check-measure`, `check-judge`, `check-attest`; `check-openhands` settles measured and judged lines). */
|
|
34
|
+
serves: CriterionKind[];
|
|
35
|
+
/** It offers the Openhands check (a `check-openhands` service): listed and hired as an Openhands reviewer. */
|
|
36
|
+
openhands: boolean;
|
|
26
37
|
}
|
|
38
|
+
type Resource = {
|
|
39
|
+
id: string;
|
|
40
|
+
type: string;
|
|
41
|
+
serviceEndpoint: string;
|
|
42
|
+
};
|
|
43
|
+
/** What a picker says for an oracle whose `#orz` could not be confirmed. */
|
|
44
|
+
export declare const UNCONFIRMED_SIGNER = "Couldn't confirm this oracle's signing wallet, try again";
|
|
45
|
+
export type Signer = {
|
|
46
|
+
address: string;
|
|
47
|
+
} | {
|
|
48
|
+
unavailable: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Which account signs for an oracle entity.
|
|
52
|
+
*
|
|
53
|
+
* The entity's owner is who minted it, not necessarily who signs: a company's
|
|
54
|
+
* oracle entity is owned by the company admin while the oracle runs from its own
|
|
55
|
+
* wallet. eval-oracle's `oracle init` anchors `{id}#orz` (type
|
|
56
|
+
* `oracleAuthZConfig`), a JSON doc whose `granteeAddress` is that runtime
|
|
57
|
+
* wallet, so that is the grantee an ask must name.
|
|
58
|
+
*
|
|
59
|
+
* No `#orz` (IXO's oracle, whose owner is its signer): the owner. An `#orz` we
|
|
60
|
+
* cannot read or believe (outage, too big, malformed, bad checksum) is NOT the
|
|
61
|
+
* owner: for a company oracle that grants the wrong account, so the oracle is
|
|
62
|
+
* unavailable for this read and nothing is granted. Accepted risk: a wallet
|
|
63
|
+
* rotated without re-anchoring `#orz` is still named here (stale grantee).
|
|
64
|
+
*/
|
|
65
|
+
export declare function signingAddress(did: string, owner: string, resources: readonly Resource[]): Promise<Signer>;
|
|
27
66
|
/**
|
|
28
67
|
* Every oracle on the network that publishes a card.
|
|
29
68
|
*
|
|
@@ -41,4 +80,22 @@ export declare function loadOracles(limit?: number): Promise<Oracle[]>;
|
|
|
41
80
|
export declare function loadCheckers(limit?: number): Promise<Oracle[]>;
|
|
42
81
|
/** One oracle by the address that signs for it. */
|
|
43
82
|
export declare function oracleByAddress(address: string): Promise<Oracle | null>;
|
|
83
|
+
/** One row of the decision engine's public oracle directory (`GET /v1/oracle-directory`), only what this needs. */
|
|
84
|
+
export interface DirectoryEntry {
|
|
85
|
+
address?: string;
|
|
86
|
+
active?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The signing addresses the engine says are switched off, pure. One address
|
|
90
|
+
* can sign for more than one oracle (devnet's pay-convert and a retired
|
|
91
|
+
* tunnel share one), so it is off only when every entry naming it is.
|
|
92
|
+
*/
|
|
93
|
+
export declare function switchedOffAmong(entries: readonly DirectoryEntry[]): Set<string>;
|
|
94
|
+
/**
|
|
95
|
+
* The same, read from the engine. Empty when no engine is wired or the
|
|
96
|
+
* directory can't be read: a list that hides nothing is the old list, and a
|
|
97
|
+
* failed read must never empty it.
|
|
98
|
+
*/
|
|
99
|
+
export declare function switchedOffOracles(baseUrl?: string): Promise<Set<string>>;
|
|
100
|
+
export {};
|
|
44
101
|
//# sourceMappingURL=oracles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAKhF,OAAO,
|
|
1
|
+
{"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAKhF,OAAO,EAA8D,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4KAA4K;IAC5K,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8GAA8G;IAC9G,SAAS,EAAE,OAAO,CAAC;CACpB;AAuDD,KAAK,QAAQ,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAYtE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,6DAA6D,CAAC;AAE7F,MAAM,MAAM,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhH;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4DhE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIjE;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAI7E;AAED,mHAAmH;AACnH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAGhF;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,MAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAU5F"}
|
package/dist/esm/data/oracles.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
/* Relative rather than the `@ixo/openhands-sdk/rubric` alias so this module also runs
|
|
3
3
|
under plain Node type-stripping — the probe script and any future agent-side
|
|
4
4
|
caller resolve it without Next's path mapping. */
|
|
5
|
-
import { parseAgentCard } from "../rubric/card.js";
|
|
5
|
+
import { parseAgentCard, servesOf, servicePriceBase } from "../rubric/card.js";
|
|
6
|
+
import { fromBech32 } from "@cosmjs/encoding";
|
|
6
7
|
import { clampText, fetchPublicJson } from "./outbound.js";
|
|
8
|
+
import { engineConfigured, engineUrl } from "./engineUrl.js";
|
|
7
9
|
import { gql } from "./gql.js";
|
|
8
10
|
const CARD_TIMEOUT_MS = 8000;
|
|
9
11
|
/*
|
|
@@ -40,6 +42,47 @@ async function fetchCard(url) {
|
|
|
40
42
|
}
|
|
41
43
|
};
|
|
42
44
|
}
|
|
45
|
+
/* An `#orz` doc is ~500 bytes; a few KB is generous and still bounded. */
|
|
46
|
+
const ORZ_MAX_BYTES = 4 * 1024;
|
|
47
|
+
const isAccount = (value) => {
|
|
48
|
+
if (typeof value !== "string" || !/^ixo1[a-z0-9]{38}$/.test(value))
|
|
49
|
+
return false;
|
|
50
|
+
try {
|
|
51
|
+
const decoded = fromBech32(value, 90);
|
|
52
|
+
return decoded.prefix === "ixo" && decoded.data.length === 20;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/** What a picker says for an oracle whose `#orz` could not be confirmed. */
|
|
59
|
+
export const UNCONFIRMED_SIGNER = "Couldn't confirm this oracle's signing wallet, try again";
|
|
60
|
+
/**
|
|
61
|
+
* Which account signs for an oracle entity.
|
|
62
|
+
*
|
|
63
|
+
* The entity's owner is who minted it, not necessarily who signs: a company's
|
|
64
|
+
* oracle entity is owned by the company admin while the oracle runs from its own
|
|
65
|
+
* wallet. eval-oracle's `oracle init` anchors `{id}#orz` (type
|
|
66
|
+
* `oracleAuthZConfig`), a JSON doc whose `granteeAddress` is that runtime
|
|
67
|
+
* wallet, so that is the grantee an ask must name.
|
|
68
|
+
*
|
|
69
|
+
* No `#orz` (IXO's oracle, whose owner is its signer): the owner. An `#orz` we
|
|
70
|
+
* cannot read or believe (outage, too big, malformed, bad checksum) is NOT the
|
|
71
|
+
* owner: for a company oracle that grants the wrong account, so the oracle is
|
|
72
|
+
* unavailable for this read and nothing is granted. Accepted risk: a wallet
|
|
73
|
+
* rotated without re-anchoring `#orz` is still named here (stale grantee).
|
|
74
|
+
*/
|
|
75
|
+
export async function signingAddress(did, owner, resources) {
|
|
76
|
+
const orz = resources.find((resource) => resource.id.endsWith("#orz") || resource.type === "oracleAuthZConfig");
|
|
77
|
+
if (!orz)
|
|
78
|
+
return owner ? { address: owner } : { unavailable: "The oracle has no owner on chain" };
|
|
79
|
+
const doc = orz.serviceEndpoint ? await fetchPublicJson(orz.serviceEndpoint, { timeoutMs: CARD_TIMEOUT_MS, maxBytes: ORZ_MAX_BYTES, revalidate: 300 }) : null;
|
|
80
|
+
const grantee = doc && typeof doc === "object" ? doc.granteeAddress : undefined;
|
|
81
|
+
if (isAccount(grantee))
|
|
82
|
+
return { address: grantee };
|
|
83
|
+
console.warn(`oracle ${did}: #orz ${doc === null ? "could not be read (refused, failed, or too big)" : "names no valid ixo1 granteeAddress"}; not hireable this read`);
|
|
84
|
+
return { unavailable: UNCONFIRMED_SIGNER };
|
|
85
|
+
}
|
|
43
86
|
/**
|
|
44
87
|
* Every oracle on the network that publishes a card.
|
|
45
88
|
*
|
|
@@ -70,26 +113,29 @@ export async function loadOracles(limit = 200) {
|
|
|
70
113
|
const acard = (resources.get(entity.id) ?? []).find((resource) => resource.id.endsWith("#acard") || resource.type === "agentCard");
|
|
71
114
|
if (!acard?.serviceEndpoint)
|
|
72
115
|
return null;
|
|
73
|
-
const card = await fetchCard(acard.serviceEndpoint);
|
|
116
|
+
const [card, signer] = await Promise.all([fetchCard(acard.serviceEndpoint), signingAddress(entity.id, owners.get(entity.id) ?? "", resources.get(entity.id) ?? [])]);
|
|
74
117
|
if (!card)
|
|
75
118
|
return null;
|
|
76
119
|
const services = card.credentialSubject.services ?? [];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
120
|
+
/* Legacy cards (a `uixo`/`upay` price, a `serves` field) are not migrated: their price reads as none, and what
|
|
121
|
+
they settle comes from the ids like any card's. IXO's own oracle card is that shape until S3 re-anchors it. */
|
|
122
|
+
const prices = services.map(servicePriceBase).filter((amount) => amount !== null);
|
|
123
|
+
const kinds = services.map((service) => servesOf(service.id));
|
|
124
|
+
const openhands = kinds.includes("openhands");
|
|
125
|
+
/* The Openhands check runs the engine: measured and judged lines (its catalog card says so). */
|
|
126
|
+
const serves = new Set([...kinds.filter((kind) => kind !== null && kind !== "openhands"), ...(openhands ? ["measure", "judge"] : [])]);
|
|
82
127
|
return {
|
|
83
128
|
did: entity.id,
|
|
84
|
-
address:
|
|
129
|
+
...("address" in signer ? { address: signer.address } : { address: "", unavailable: signer.unavailable }),
|
|
85
130
|
name: card.credentialSubject.name,
|
|
86
131
|
description: card.credentialSubject.description,
|
|
87
132
|
services,
|
|
88
|
-
|
|
89
|
-
serves: [...serves]
|
|
133
|
+
priceBase: prices.length ? Math.min(...prices) : null,
|
|
134
|
+
serves: [...serves],
|
|
135
|
+
openhands
|
|
90
136
|
};
|
|
91
137
|
}));
|
|
92
|
-
return cards.filter((oracle) => Boolean(oracle
|
|
138
|
+
return cards.filter((oracle) => Boolean(oracle && (oracle.address || oracle.unavailable)));
|
|
93
139
|
}
|
|
94
140
|
/**
|
|
95
141
|
* The oracles that will rule on work. A checker must be able to settle machine-
|
|
@@ -98,7 +144,8 @@ export async function loadOracles(limit = 200) {
|
|
|
98
144
|
*/
|
|
99
145
|
export async function loadCheckers(limit = 200) {
|
|
100
146
|
const oracles = await loadOracles(limit);
|
|
101
|
-
|
|
147
|
+
/* A `check-measure` service, as before, or the Openhands check. */
|
|
148
|
+
return oracles.filter((oracle) => oracle.openhands || (oracle.serves.includes("measure") && oracle.services.some((service) => service.id.startsWith("check"))));
|
|
102
149
|
}
|
|
103
150
|
/** One oracle by the address that signs for it. */
|
|
104
151
|
export async function oracleByAddress(address) {
|
|
@@ -107,4 +154,32 @@ export async function oracleByAddress(address) {
|
|
|
107
154
|
const oracles = await loadOracles(200).catch(() => []);
|
|
108
155
|
return oracles.find((oracle) => oracle.address === address) ?? null;
|
|
109
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* The signing addresses the engine says are switched off, pure. One address
|
|
159
|
+
* can sign for more than one oracle (devnet's pay-convert and a retired
|
|
160
|
+
* tunnel share one), so it is off only when every entry naming it is.
|
|
161
|
+
*/
|
|
162
|
+
export function switchedOffAmong(entries) {
|
|
163
|
+
const on = new Set(entries.filter((entry) => entry.address && entry.active !== false).map((entry) => entry.address));
|
|
164
|
+
return new Set(entries.filter((entry) => entry.address && entry.active === false && !on.has(entry.address)).map((entry) => entry.address));
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* The same, read from the engine. Empty when no engine is wired or the
|
|
168
|
+
* directory can't be read: a list that hides nothing is the old list, and a
|
|
169
|
+
* failed read must never empty it.
|
|
170
|
+
*/
|
|
171
|
+
export async function switchedOffOracles(baseUrl = engineUrl()) {
|
|
172
|
+
if (!engineConfigured(baseUrl))
|
|
173
|
+
return new Set();
|
|
174
|
+
try {
|
|
175
|
+
const response = await fetch(`${baseUrl}/v1/oracle-directory`, { signal: AbortSignal.timeout(CARD_TIMEOUT_MS), next: { revalidate: 300 } });
|
|
176
|
+
if (!response.ok)
|
|
177
|
+
return new Set();
|
|
178
|
+
const body = (await response.json());
|
|
179
|
+
return switchedOffAmong(Array.isArray(body.oracles) ? body.oracles : []);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return new Set();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
110
185
|
//# sourceMappingURL=oracles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracles.js","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF;;oDAEoD;AACpD,OAAO,EAAE,cAAc,EAAoC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"oracles.js","sourceRoot":"","sources":["../../../src/data/oracles.ts"],"names":[],"mappings":"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"}
|