@ixo/openhands-sdk 0.3.0 → 0.4.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/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 +3 -0
- 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 +2 -1
- package/dist/cjs/campaign/pool.js.map +1 -1
- package/dist/cjs/campaign/spots.d.ts.map +1 -1
- package/dist/cjs/campaign/spots.js +8 -6
- package/dist/cjs/campaign/spots.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 +27 -2
- package/dist/cjs/chain/entityShape.d.ts.map +1 -1
- package/dist/cjs/chain/entityShape.js +57 -7
- 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 +47 -2
- package/dist/cjs/chain/money.d.ts.map +1 -1
- package/dist/cjs/chain/money.js +63 -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 +19 -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 +8 -0
- package/dist/cjs/data/install.d.ts.map +1 -1
- package/dist/cjs/data/install.js +9 -1
- 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 +3 -0
- 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 +2 -1
- package/dist/esm/campaign/pool.js.map +1 -1
- package/dist/esm/campaign/spots.d.ts.map +1 -1
- package/dist/esm/campaign/spots.js +8 -6
- package/dist/esm/campaign/spots.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 +27 -2
- package/dist/esm/chain/entityShape.d.ts.map +1 -1
- package/dist/esm/chain/entityShape.js +53 -6
- 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 +47 -2
- package/dist/esm/chain/money.d.ts.map +1 -1
- package/dist/esm/chain/money.js +54 -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 +8 -0
- package/dist/esm/data/install.d.ts.map +1 -1
- package/dist/esm/data/install.js +8 -0
- 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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A claim's MsgSubmitClaim, encoded. It never names a coin, on any ask: the
|
|
3
|
+
* chain then pays the collection's own approval leg. A claim carrying a coin
|
|
4
|
+
* would be paid that from the collection's admin account — and on an ask paid
|
|
5
|
+
* off chain (#payoutTerms, an empty approval leg) it would park as
|
|
6
|
+
* admin-unfunded instead of being paid by the company's facilitator.
|
|
7
|
+
*/
|
|
8
|
+
export declare const submitClaimBytes: (args: {
|
|
9
|
+
collectionId: string;
|
|
10
|
+
claimId: string;
|
|
11
|
+
agentDid: string;
|
|
12
|
+
agentAddress: string;
|
|
13
|
+
adminAddress: string;
|
|
14
|
+
}) => Uint8Array;
|
|
15
|
+
//# sourceMappingURL=claimSubmit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimSubmit.d.ts","sourceRoot":"","sources":["../../../src/chain/claimSubmit.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,UACa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ixo } from "@ixo/impactxclient-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* A claim's MsgSubmitClaim, encoded. It never names a coin, on any ask: the
|
|
4
|
+
* chain then pays the collection's own approval leg. A claim carrying a coin
|
|
5
|
+
* would be paid that from the collection's admin account — and on an ask paid
|
|
6
|
+
* off chain (#payoutTerms, an empty approval leg) it would park as
|
|
7
|
+
* admin-unfunded instead of being paid by the company's facilitator.
|
|
8
|
+
*/
|
|
9
|
+
export const submitClaimBytes = (args) => ixo.claims.v1beta1.MsgSubmitClaim.encode(ixo.claims.v1beta1.MsgSubmitClaim.fromPartial({ ...args, useIntent: false, amount: [], cw20Payment: [] })).finish();
|
|
10
|
+
//# sourceMappingURL=claimSubmit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimSubmit.js","sourceRoot":"","sources":["../../../src/chain/claimSubmit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAA6G,EAAc,EAAE,CAC5J,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC"}
|
|
@@ -29,12 +29,36 @@ import { type PhonePrompt } from "./signWith.ts";
|
|
|
29
29
|
* it is deliberately not here.
|
|
30
30
|
*/
|
|
31
31
|
/** The messages a connected agent may sign as the person. Order is the display order. */
|
|
32
|
-
|
|
32
|
+
/** The four grants that ARE a connection: holding every one of them is what "connected" means. */
|
|
33
|
+
export declare const CORE_DELEGATED_MSGS: readonly ["/ixo.entity.v1beta1.MsgCreateEntity", "/ixo.claims.v1beta1.MsgCreateCollection", "/ixo.entity.v1beta1.MsgGrantEntityAccountAuthz", "/ixo.claims.v1beta1.MsgSubmitClaim"];
|
|
34
|
+
/**
|
|
35
|
+
* The IXO shape edits the deed's IID in tap 2 (its claim link, its card, an
|
|
36
|
+
* org's requestedBy link, a payout-terms resource) — as the person, when an
|
|
37
|
+
* agent posts for one. Granted by every connection (every new ask is the
|
|
38
|
+
* IXO shape), and revoked with it. The chain cannot narrow these to one
|
|
39
|
+
* entity: they let the agent ADD a link or a resource to any IID the person's
|
|
40
|
+
* key authenticates for (never remove one).
|
|
41
|
+
* A connection made without them (before the IXO shape) is still a connection (`delegationsAmong` reads
|
|
42
|
+
* `iidEdits: false`), but the worker refuses to post the IXO shape as that
|
|
43
|
+
* person until they reconnect.
|
|
44
|
+
*/
|
|
45
|
+
export declare const IID_EDIT_MSGS: readonly ["/ixo.iid.v1beta1.MsgAddLinkedEntity", "/ixo.iid.v1beta1.MsgAddLinkedResource"];
|
|
46
|
+
/**
|
|
47
|
+
* Replacing a linked resource (an org's `#payoutSettings`, set by the MCP's
|
|
48
|
+
* set_payout_settings) is delete + add. Granted with the IID edits (IXO shape only) by every
|
|
49
|
+
* connection made since 2026-10-14's settings tool; one made before has the IID edits without it
|
|
50
|
+
* (`Delegation.iidDeletes` false), and the tool asks the person to reconnect.
|
|
51
|
+
*/
|
|
52
|
+
export declare const IID_DELETE_MSGS: readonly ["/ixo.iid.v1beta1.MsgDeleteLinkedResource"];
|
|
53
|
+
/** Everything a connection MAY grant: the core four, then the IID edits and the delete (IXO shape only). Order is the display order. */
|
|
54
|
+
export declare const DELEGATED_MSGS: readonly ["/ixo.entity.v1beta1.MsgCreateEntity", "/ixo.claims.v1beta1.MsgCreateCollection", "/ixo.entity.v1beta1.MsgGrantEntityAccountAuthz", "/ixo.claims.v1beta1.MsgSubmitClaim", "/ixo.iid.v1beta1.MsgAddLinkedEntity", "/ixo.iid.v1beta1.MsgAddLinkedResource", "/ixo.iid.v1beta1.MsgDeleteLinkedResource"];
|
|
33
55
|
/** The one grant the gate reads as "may work as me". */
|
|
34
56
|
export declare const WORKS_AS_ME = "/ixo.claims.v1beta1.MsgSubmitClaim";
|
|
35
57
|
export declare const DEFAULT_DAYS = 30;
|
|
36
58
|
/** Gas the person lends the agent, when they hold the gas coin: enough for a few hundred transactions. */
|
|
37
59
|
export declare const GAS_LOAN_UIXO = "300000";
|
|
60
|
+
/** The gas coin an account must hold for the connect page to lend any (a PAY-only account lends none). */
|
|
61
|
+
export declare const GAS_LEND_MIN_UIXO = 500000;
|
|
38
62
|
export interface ConnectTerms {
|
|
39
63
|
/** The spend cap, in base units of `denom`. */
|
|
40
64
|
capBase: string;
|
|
@@ -47,17 +71,20 @@ export interface ConnectTerms {
|
|
|
47
71
|
/**
|
|
48
72
|
* The connect batch: one transaction the person signs once.
|
|
49
73
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
74
|
+
* The four core grants — six under the IXO shape, which adds the two IID
|
|
75
|
+
* edits tap 2 needs — the spend cap, and, when they hold the gas coin, a gas
|
|
76
|
+
* allowance, all expiring together. Rebuilt from the same expiry so the
|
|
52
77
|
* connection ends at one moment, not in pieces.
|
|
53
78
|
*/
|
|
54
79
|
export declare function connectMsgs(principal: string, agent: string, terms: ConnectTerms): EncodeObject[];
|
|
55
80
|
/**
|
|
56
81
|
* The disconnect batch: every grant the connection made, revoked. `gas` says
|
|
57
|
-
* whether a gas allowance was lent
|
|
58
|
-
*
|
|
82
|
+
* whether a gas allowance was lent and `iidEdits` whether the IID-edit grants
|
|
83
|
+
* were made (a connection from before 2026-10-14 has none) — revoking a grant
|
|
84
|
+
* that was never given fails the whole transaction, so the caller says what
|
|
85
|
+
* it read (`Delegation.iidEdits`).
|
|
59
86
|
*/
|
|
60
|
-
export declare function disconnectMsgs(principal: string, agent: string, gas: boolean): EncodeObject[];
|
|
87
|
+
export declare function disconnectMsgs(principal: string, agent: string, gas: boolean, iidEdits?: boolean | readonly string[]): EncodeObject[];
|
|
61
88
|
/** One authz grant as the REST gateway prints it. */
|
|
62
89
|
export interface GrantRow {
|
|
63
90
|
granter?: string;
|
|
@@ -82,6 +109,10 @@ export interface Delegation {
|
|
|
82
109
|
denom: string;
|
|
83
110
|
remainingBase: string;
|
|
84
111
|
} | null;
|
|
112
|
+
/** Whether the agent may edit the person's IIDs too (`IID_EDIT_MSGS`) — what the IXO shape's tap 2 needs. False on a connection from before 2026-10-14. */
|
|
113
|
+
iidEdits: boolean;
|
|
114
|
+
/** Whether the agent may also delete a linked resource (`IID_DELETE_MSGS`) — what replacing an org's settings needs. */
|
|
115
|
+
iidDeletes: boolean;
|
|
85
116
|
}
|
|
86
117
|
/**
|
|
87
118
|
* The connections among some grant rows, pure: a pair is connected when the
|
|
@@ -138,6 +169,14 @@ export declare function readDelegation(agent: string, fetchImpl?: typeof fetch):
|
|
|
138
169
|
* them.
|
|
139
170
|
*/
|
|
140
171
|
export declare function readDelegationFor(agent: string, expectedPrincipal: string, fetchImpl?: typeof fetch): Promise<Delegation | null>;
|
|
172
|
+
/**
|
|
173
|
+
* Which IID-edit grants from `principal` to `agent` stand on chain —
|
|
174
|
+
* read from the grant rows themselves, not from a full connection, so a
|
|
175
|
+
* disconnect revokes them even when a core grant is already gone. Throws
|
|
176
|
+
* when the node cannot be read: "could not look" must not become "never
|
|
177
|
+
* granted", which would leave them live until they expire.
|
|
178
|
+
*/
|
|
179
|
+
export declare function heldIidEdits(principal: string, agent: string, fetchImpl?: typeof fetch, now?: number): Promise<string[]>;
|
|
141
180
|
/** The agents acting for this person. */
|
|
142
181
|
export declare function delegatesOf(principal: string, fetchImpl?: typeof fetch): Promise<Delegation[]>;
|
|
143
182
|
/** Whether a gas allowance from `principal` to `agent` stands — read before revoking, never assumed. */
|
|
@@ -149,6 +188,12 @@ export declare function gasLent(principal: string, agent: string, fetchImpl?: ty
|
|
|
149
188
|
* never signed anything here gets their IID document on the way in.
|
|
150
189
|
*/
|
|
151
190
|
export declare function connectAgent(session: QiSession, agent: string, terms: ConnectTerms, prompt?: PhonePrompt): Promise<import("./signWith.ts").SignResult>;
|
|
152
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Disconnect it: every grant revoked — the gas allowance when one was lent,
|
|
193
|
+
* the IID edits when the connection made them. Revoking a grant that was
|
|
194
|
+
* never given fails the whole transaction, so both are read first; and a
|
|
195
|
+
* read of the IID edits that fails stops the disconnect rather than signing
|
|
196
|
+
* one that would leave them live.
|
|
197
|
+
*/
|
|
153
198
|
export declare function disconnectAgent(session: QiSession, agent: string, prompt?: PhonePrompt): Promise<import("./signWith.ts").SignResult>;
|
|
154
199
|
//# sourceMappingURL=delegate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/chain/delegate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAO1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,yFAAyF;AACzF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../../src/chain/delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,12 +32,36 @@ import { signWithSession } from "./signWith.js";
|
|
|
32
32
|
* it is deliberately not here.
|
|
33
33
|
*/
|
|
34
34
|
/** The messages a connected agent may sign as the person. Order is the display order. */
|
|
35
|
-
|
|
35
|
+
/** The four grants that ARE a connection: holding every one of them is what "connected" means. */
|
|
36
|
+
export const CORE_DELEGATED_MSGS = [
|
|
36
37
|
"/ixo.entity.v1beta1.MsgCreateEntity",
|
|
37
38
|
"/ixo.claims.v1beta1.MsgCreateCollection",
|
|
38
39
|
"/ixo.entity.v1beta1.MsgGrantEntityAccountAuthz",
|
|
39
40
|
"/ixo.claims.v1beta1.MsgSubmitClaim"
|
|
40
41
|
];
|
|
42
|
+
/**
|
|
43
|
+
* The IXO shape edits the deed's IID in tap 2 (its claim link, its card, an
|
|
44
|
+
* org's requestedBy link, a payout-terms resource) — as the person, when an
|
|
45
|
+
* agent posts for one. Granted by every connection (every new ask is the
|
|
46
|
+
* IXO shape), and revoked with it. The chain cannot narrow these to one
|
|
47
|
+
* entity: they let the agent ADD a link or a resource to any IID the person's
|
|
48
|
+
* key authenticates for (never remove one).
|
|
49
|
+
* A connection made without them (before the IXO shape) is still a connection (`delegationsAmong` reads
|
|
50
|
+
* `iidEdits: false`), but the worker refuses to post the IXO shape as that
|
|
51
|
+
* person until they reconnect.
|
|
52
|
+
*/
|
|
53
|
+
export const IID_EDIT_MSGS = ["/ixo.iid.v1beta1.MsgAddLinkedEntity", "/ixo.iid.v1beta1.MsgAddLinkedResource"];
|
|
54
|
+
/**
|
|
55
|
+
* Replacing a linked resource (an org's `#payoutSettings`, set by the MCP's
|
|
56
|
+
* set_payout_settings) is delete + add. Granted with the IID edits (IXO shape only) by every
|
|
57
|
+
* connection made since 2026-10-14's settings tool; one made before has the IID edits without it
|
|
58
|
+
* (`Delegation.iidDeletes` false), and the tool asks the person to reconnect.
|
|
59
|
+
*/
|
|
60
|
+
export const IID_DELETE_MSGS = ["/ixo.iid.v1beta1.MsgDeleteLinkedResource"];
|
|
61
|
+
/** Everything a connection MAY grant: the core four, then the IID edits and the delete (IXO shape only). Order is the display order. */
|
|
62
|
+
export const DELEGATED_MSGS = [...CORE_DELEGATED_MSGS, ...IID_EDIT_MSGS, ...IID_DELETE_MSGS];
|
|
63
|
+
/** The IID grants beyond the core four: what a disconnect reads and revokes. */
|
|
64
|
+
const IID_MAY_MSGS = [...IID_EDIT_MSGS, ...IID_DELETE_MSGS];
|
|
41
65
|
/** The one grant the gate reads as "may work as me". */
|
|
42
66
|
export const WORKS_AS_ME = "/ixo.claims.v1beta1.MsgSubmitClaim";
|
|
43
67
|
const GENERIC = "/cosmos.authz.v1beta1.GenericAuthorization";
|
|
@@ -47,12 +71,15 @@ const BASIC_ALLOWANCE = "/cosmos.feegrant.v1beta1.BasicAllowance";
|
|
|
47
71
|
export const DEFAULT_DAYS = 30;
|
|
48
72
|
/** Gas the person lends the agent, when they hold the gas coin: enough for a few hundred transactions. */
|
|
49
73
|
export const GAS_LOAN_UIXO = "300000";
|
|
74
|
+
/** The gas coin an account must hold for the connect page to lend any (a PAY-only account lends none). */
|
|
75
|
+
export const GAS_LEND_MIN_UIXO = 500_000;
|
|
50
76
|
const DAY_MS = 24 * 3600 * 1000;
|
|
51
77
|
/**
|
|
52
78
|
* The connect batch: one transaction the person signs once.
|
|
53
79
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
80
|
+
* The four core grants — six under the IXO shape, which adds the two IID
|
|
81
|
+
* edits tap 2 needs — the spend cap, and, when they hold the gas coin, a gas
|
|
82
|
+
* allowance, all expiring together. Rebuilt from the same expiry so the
|
|
56
83
|
* connection ends at one moment, not in pieces.
|
|
57
84
|
*/
|
|
58
85
|
export function connectMsgs(principal, agent, terms) {
|
|
@@ -83,15 +110,19 @@ export function connectMsgs(principal, agent, terms) {
|
|
|
83
110
|
}
|
|
84
111
|
/**
|
|
85
112
|
* The disconnect batch: every grant the connection made, revoked. `gas` says
|
|
86
|
-
* whether a gas allowance was lent
|
|
87
|
-
*
|
|
113
|
+
* whether a gas allowance was lent and `iidEdits` whether the IID-edit grants
|
|
114
|
+
* were made (a connection from before 2026-10-14 has none) — revoking a grant
|
|
115
|
+
* that was never given fails the whole transaction, so the caller says what
|
|
116
|
+
* it read (`Delegation.iidEdits`).
|
|
88
117
|
*/
|
|
89
|
-
export function disconnectMsgs(principal, agent, gas) {
|
|
118
|
+
export function disconnectMsgs(principal, agent, gas, iidEdits = false) {
|
|
90
119
|
const revoke = (msgTypeUrl) => ({
|
|
91
120
|
typeUrl: "/cosmos.authz.v1beta1.MsgRevoke",
|
|
92
121
|
value: cosmos.authz.v1beta1.MsgRevoke.fromPartial({ granter: principal, grantee: agent, msgTypeUrl })
|
|
93
122
|
});
|
|
94
|
-
|
|
123
|
+
/* Exactly the IID edits (and the delete) that stand: all of them, none, or the ones a read found. */
|
|
124
|
+
const held = iidEdits === true ? IID_MAY_MSGS : iidEdits === false ? [] : IID_MAY_MSGS.filter((msg) => iidEdits.includes(msg));
|
|
125
|
+
const messages = [...CORE_DELEGATED_MSGS.map(revoke), ...held.map(revoke), revoke(MSG_SEND)];
|
|
95
126
|
if (gas)
|
|
96
127
|
messages.push({ typeUrl: "/cosmos.feegrant.v1beta1.MsgRevokeAllowance", value: cosmos.feegrant.v1beta1.MsgRevokeAllowance.fromPartial({ granter: principal, grantee: agent }) });
|
|
97
128
|
return messages;
|
|
@@ -117,17 +148,19 @@ export function delegationsAmong(rows, now = Date.now()) {
|
|
|
117
148
|
for (const grant of live)
|
|
118
149
|
if (grant.authorization?.["@type"] === GENERIC && grant.authorization.msg)
|
|
119
150
|
typed.set(grant.authorization.msg, grant);
|
|
120
|
-
if (!
|
|
151
|
+
if (!CORE_DELEGATED_MSGS.every((msg) => typed.has(msg)))
|
|
121
152
|
continue;
|
|
122
153
|
const [principal, agent] = key.split(" ");
|
|
123
154
|
const send = live.find((grant) => grant.authorization?.["@type"] === SEND);
|
|
124
155
|
const limit = send?.authorization?.spend_limit?.[0];
|
|
125
|
-
const expiries =
|
|
156
|
+
const expiries = CORE_DELEGATED_MSGS.map((msg) => typed.get(msg)?.expiration).filter((one) => Boolean(one));
|
|
126
157
|
out.push({
|
|
127
158
|
principal,
|
|
128
159
|
agent,
|
|
129
160
|
expiresAt: expiries.length ? expiries.sort()[0] : null,
|
|
130
|
-
cap: limit && Number(limit.amount) > 0 ? { denom: limit.denom, remainingBase: limit.amount } : null
|
|
161
|
+
cap: limit && Number(limit.amount) > 0 ? { denom: limit.denom, remainingBase: limit.amount } : null,
|
|
162
|
+
iidEdits: IID_EDIT_MSGS.every((msg) => typed.has(msg)),
|
|
163
|
+
iidDeletes: IID_DELETE_MSGS.every((msg) => typed.has(msg))
|
|
131
164
|
});
|
|
132
165
|
}
|
|
133
166
|
return out;
|
|
@@ -202,6 +235,18 @@ export async function readDelegationFor(agent, expectedPrincipal, fetchImpl = fe
|
|
|
202
235
|
const paired = rows.map((row) => ({ ...row, granter: expectedPrincipal, grantee: agent }));
|
|
203
236
|
return delegationsAmong(paired).find((one) => one.principal === expectedPrincipal && one.agent === agent) ?? null;
|
|
204
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Which IID-edit grants from `principal` to `agent` stand on chain —
|
|
240
|
+
* read from the grant rows themselves, not from a full connection, so a
|
|
241
|
+
* disconnect revokes them even when a core grant is already gone. Throws
|
|
242
|
+
* when the node cannot be read: "could not look" must not become "never
|
|
243
|
+
* granted", which would leave them live until they expire.
|
|
244
|
+
*/
|
|
245
|
+
export async function heldIidEdits(principal, agent, fetchImpl = fetch, now = Date.now()) {
|
|
246
|
+
const rows = await grantRows(`/cosmos/authz/v1beta1/grants?granter=${encodeURIComponent(principal)}&grantee=${encodeURIComponent(agent)}`, fetchImpl);
|
|
247
|
+
const live = new Set(rows.filter((row) => (!row.expiration || Date.parse(row.expiration) > now) && row.authorization?.["@type"] === GENERIC).map((row) => row.authorization?.msg));
|
|
248
|
+
return IID_MAY_MSGS.filter((msg) => live.has(msg));
|
|
249
|
+
}
|
|
205
250
|
/** The agents acting for this person. */
|
|
206
251
|
export async function delegatesOf(principal, fetchImpl = fetch) {
|
|
207
252
|
return delegationsAmong(await grantRows(`/cosmos/authz/v1beta1/grants/granter/${encodeURIComponent(principal)}`, fetchImpl));
|
|
@@ -222,9 +267,15 @@ export async function connectAgent(session, agent, terms, prompt) {
|
|
|
222
267
|
await ensureIidDocument(session, prompt);
|
|
223
268
|
return signWithSession(session, connectMsgs(session.address, agent, terms), "Connect an agent to this account", prompt);
|
|
224
269
|
}
|
|
225
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* Disconnect it: every grant revoked — the gas allowance when one was lent,
|
|
272
|
+
* the IID edits when the connection made them. Revoking a grant that was
|
|
273
|
+
* never given fails the whole transaction, so both are read first; and a
|
|
274
|
+
* read of the IID edits that fails stops the disconnect rather than signing
|
|
275
|
+
* one that would leave them live.
|
|
276
|
+
*/
|
|
226
277
|
export async function disconnectAgent(session, agent, prompt) {
|
|
227
|
-
const gas = await gasLent(session.address, agent).catch(() => false);
|
|
228
|
-
return signWithSession(session, disconnectMsgs(session.address, agent, gas), "Disconnect the agent", prompt);
|
|
278
|
+
const [gas, iidEdits] = await Promise.all([gasLent(session.address, agent).catch(() => false), heldIidEdits(session.address, agent)]);
|
|
279
|
+
return signWithSession(session, disconnectMsgs(session.address, agent, gas, iidEdits), "Disconnect the agent", prompt);
|
|
229
280
|
}
|
|
230
281
|
//# sourceMappingURL=delegate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../src/chain/delegate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAoB,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,yFAAyF;AACzF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../../src/chain/delegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The nudge to the IXO domain indexer (W10 of the alignment plan).
|
|
3
|
+
*
|
|
4
|
+
* The indexer (`ixoworld/domain-indexer`, one per network) is how IXO
|
|
5
|
+
* surfaces find a domain: it polls blocksync for every EntityCreated and
|
|
6
|
+
* EntityUpdated event (`src/blocksync/chain-event-poller.ts`, two-second
|
|
7
|
+
* cadence) and indexes any entity that carries a `#dmn`, so a shaped ask
|
|
8
|
+
* reaches it on its own within moments of tap 2. A nudge buys only the wait:
|
|
9
|
+
* `POST /index {did}` runs the pipeline now, synchronously, and the card is at
|
|
10
|
+
* `GET /domain-cards/<did>` by the time the poster's page lands on the ask.
|
|
11
|
+
* No auth, best effort, never awaited by the flows that call it.
|
|
12
|
+
*
|
|
13
|
+
* Read from its source on 2026-10-13: on a card whose checksum is unchanged
|
|
14
|
+
* the indexer only bumps a timestamp (`EntityIndexer.ts`, "STEP 1.5"), so
|
|
15
|
+
* nothing here refreshes a card that already exists — a verifier setting
|
|
16
|
+
* `entityVerified` is not seen by the indexer until its own cron looks again.
|
|
17
|
+
* The legacy shape has no `#dmn`, so a nudge for a legacy ask indexes nothing
|
|
18
|
+
* and is not sent.
|
|
19
|
+
*/
|
|
20
|
+
export interface NudgeOptions {
|
|
21
|
+
baseUrl?: string;
|
|
22
|
+
fetch?: typeof fetch;
|
|
23
|
+
}
|
|
24
|
+
/** True when the indexer answered 2xx; false on every other outcome, never a throw. */
|
|
25
|
+
export declare function nudgeDomainIndexer(entityDid: string, options?: NudgeOptions): Promise<boolean>;
|
|
26
|
+
//# sourceMappingURL=domainIndexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainIndexer.d.ts","sourceRoot":"","sources":["../../../src/chain/domainIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,uFAAuF;AACvF,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The nudge to the IXO domain indexer (W10 of the alignment plan).
|
|
3
|
+
*
|
|
4
|
+
* The indexer (`ixoworld/domain-indexer`, one per network) is how IXO
|
|
5
|
+
* surfaces find a domain: it polls blocksync for every EntityCreated and
|
|
6
|
+
* EntityUpdated event (`src/blocksync/chain-event-poller.ts`, two-second
|
|
7
|
+
* cadence) and indexes any entity that carries a `#dmn`, so a shaped ask
|
|
8
|
+
* reaches it on its own within moments of tap 2. A nudge buys only the wait:
|
|
9
|
+
* `POST /index {did}` runs the pipeline now, synchronously, and the card is at
|
|
10
|
+
* `GET /domain-cards/<did>` by the time the poster's page lands on the ask.
|
|
11
|
+
* No auth, best effort, never awaited by the flows that call it.
|
|
12
|
+
*
|
|
13
|
+
* Read from its source on 2026-10-13: on a card whose checksum is unchanged
|
|
14
|
+
* the indexer only bumps a timestamp (`EntityIndexer.ts`, "STEP 1.5"), so
|
|
15
|
+
* nothing here refreshes a card that already exists — a verifier setting
|
|
16
|
+
* `entityVerified` is not seen by the indexer until its own cron looks again.
|
|
17
|
+
* The legacy shape has no `#dmn`, so a nudge for a legacy ask indexes nothing
|
|
18
|
+
* and is not sent.
|
|
19
|
+
*/
|
|
20
|
+
import { domainIndexerUrl } from "./env.js";
|
|
21
|
+
import { isEntityDid } from "./entityShape.js";
|
|
22
|
+
/* The indexer answers when its pipeline is done — content fetch, summaries,
|
|
23
|
+
embedding — which is seconds, not milliseconds. The browser's keepalive
|
|
24
|
+
lets the page move on meanwhile. */
|
|
25
|
+
const TIMEOUT_MS = 15_000;
|
|
26
|
+
/** True when the indexer answered 2xx; false on every other outcome, never a throw. */
|
|
27
|
+
export async function nudgeDomainIndexer(entityDid, options = {}) {
|
|
28
|
+
const base = (options.baseUrl ?? domainIndexerUrl()).replace(/\/+$/, "");
|
|
29
|
+
if (!base || !isEntityDid(entityDid))
|
|
30
|
+
return false;
|
|
31
|
+
const send = options.fetch ?? globalThis.fetch;
|
|
32
|
+
if (typeof send !== "function")
|
|
33
|
+
return false;
|
|
34
|
+
try {
|
|
35
|
+
const response = await send(`${base}/index`, {
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: { "content-type": "application/json" },
|
|
38
|
+
body: JSON.stringify({ did: entityDid }),
|
|
39
|
+
keepalive: true,
|
|
40
|
+
signal: AbortSignal.timeout(TIMEOUT_MS)
|
|
41
|
+
});
|
|
42
|
+
return response.ok;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=domainIndexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domainIndexer.js","sourceRoot":"","sources":["../../../src/chain/domainIndexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;sCAEsC;AACtC,MAAM,UAAU,GAAG,MAAM,CAAC;AAO1B,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,UAAwB,EAAE;IACpF,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAC/C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -18,7 +18,11 @@
|
|
|
18
18
|
* where the kind calls for them. `serviceEndpoint` is where the bytes are,
|
|
19
19
|
* `proof` their content address.
|
|
20
20
|
* - `linkedEntity` links a deed to its claim protocol (`verifiableClaim`) and
|
|
21
|
-
* a campaign ask to its campaign protocol (`partOf`). No link to any DAO
|
|
21
|
+
* a campaign ask to its campaign protocol (`partOf`). No link to any DAO —
|
|
22
|
+
* with one exception, agreed 2026-10-14 for OpenHands HQ: a deed posted FOR
|
|
23
|
+
* an org carries `requestedBy` → that org (`dao`), and the org lists the deed
|
|
24
|
+
* back as `request`; the engine takes the company from the pair, since each
|
|
25
|
+
* side can only be written by its own keys. Without an org, nothing.
|
|
22
26
|
*/
|
|
23
27
|
export declare const IXO_CONTEXT_URL = "https://w3id.org/ixo/context/v1";
|
|
24
28
|
/** A DID of the entity module's shape, `did:ixo:entity:<32 hex>`. */
|
|
@@ -74,6 +78,28 @@ export interface LinkedEntityShape {
|
|
|
74
78
|
export declare const verifiableClaimLink: (protocolDid: string) => LinkedEntityShape;
|
|
75
79
|
/** A campaign ask → its campaign `protocol/deed`. Never a DAO: the only `partOf` this estate writes. */
|
|
76
80
|
export declare const campaignLink: (campaignProtocolDid: string) => LinkedEntityShape;
|
|
81
|
+
/**
|
|
82
|
+
* The deed's half of the two-sided org link (OpenHands HQ, 2026-10-14): the
|
|
83
|
+
* org's IID lists the deed as `request`, the deed lists the org as
|
|
84
|
+
* `requestedBy`, and the engine counts the company only when both agree. The
|
|
85
|
+
* one DAO link the shape has, and only on a deed posted for an org.
|
|
86
|
+
*/
|
|
87
|
+
export declare const requestedByLink: (orgDid: string) => LinkedEntityShape;
|
|
88
|
+
/** The org's half: on the org's IID, the deed it requested. Written by a key with authentication on the org (OpenHands HQ). */
|
|
89
|
+
export declare const requestLink: (deedDid: string) => LinkedEntityShape;
|
|
90
|
+
/** A caller's own linked resource for a deed — e.g. `#payoutTerms` for an off-chain rail — before it is checked and completed. */
|
|
91
|
+
export interface ExtraResource {
|
|
92
|
+
/** `{id}#<fragment>`; the shape's own fragments are refused. */
|
|
93
|
+
id: string;
|
|
94
|
+
type: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
mediaType: string;
|
|
97
|
+
serviceEndpoint: string;
|
|
98
|
+
/** The content address of the exact bytes at `serviceEndpoint` (CIDv1 raw sha-256, as every document here). */
|
|
99
|
+
proof: string;
|
|
100
|
+
}
|
|
101
|
+
/** Checks a caller's resource and completes it to the chain's shape. */
|
|
102
|
+
export declare function extraResource(input: ExtraResource): ResourceShape;
|
|
77
103
|
export interface ProfileInput {
|
|
78
104
|
name: string;
|
|
79
105
|
description?: string;
|
|
@@ -83,7 +109,6 @@ export interface ProfileInput {
|
|
|
83
109
|
image?: string;
|
|
84
110
|
logo?: string;
|
|
85
111
|
}
|
|
86
|
-
/** The `#pro` document, exactly the shape the portal writes (`createEntity.ts`) and every reader expects (`type: "profile"`, `name`). */
|
|
87
112
|
export declare function buildProfile(input: ProfileInput): {
|
|
88
113
|
"@context": {
|
|
89
114
|
ixo: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityShape.d.ts","sourceRoot":"","sources":["../../../src/chain/entityShape.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"entityShape.d.ts","sourceRoot":"","sources":["../../../src/chain/entityShape.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,11 @@
|
|
|
18
18
|
* where the kind calls for them. `serviceEndpoint` is where the bytes are,
|
|
19
19
|
* `proof` their content address.
|
|
20
20
|
* - `linkedEntity` links a deed to its claim protocol (`verifiableClaim`) and
|
|
21
|
-
* a campaign ask to its campaign protocol (`partOf`). No link to any DAO
|
|
21
|
+
* a campaign ask to its campaign protocol (`partOf`). No link to any DAO —
|
|
22
|
+
* with one exception, agreed 2026-10-14 for OpenHands HQ: a deed posted FOR
|
|
23
|
+
* an org carries `requestedBy` → that org (`dao`), and the org lists the deed
|
|
24
|
+
* back as `request`; the engine takes the company from the pair, since each
|
|
25
|
+
* side can only be written by its own keys. Without an org, nothing.
|
|
22
26
|
*/
|
|
23
27
|
export const IXO_CONTEXT_URL = "https://w3id.org/ixo/context/v1";
|
|
24
28
|
/** A DID of the entity module's shape, `did:ixo:entity:<32 hex>`. */
|
|
@@ -48,7 +52,14 @@ export const domainCardResource = (doc) => resource("dmn", "domainCard", "Domain
|
|
|
48
52
|
/** `#done` — the ask's terms; readers match the type, not the fragment. */
|
|
49
53
|
export const doneMeansResource = (doc) => resource("done", "DoneMeans", "What would count as done, published before the work", "application/json", doc);
|
|
50
54
|
/** `#rub` — the evals-engine rubric; the engine matches `type === "rubric"` at an id ending `#rub`, and the proof is its hex sha256. */
|
|
51
|
-
export const rubricResource = (doc) =>
|
|
55
|
+
export const rubricResource = (doc) => {
|
|
56
|
+
/* The engine refuses anything else (hash_mismatch / endpoint): an https address, never ipfs: or a CID proof. */
|
|
57
|
+
if (!/^https:\/\//.test(doc.url))
|
|
58
|
+
throw new Error(`#rub needs an https address, got ${JSON.stringify(doc.url)}`);
|
|
59
|
+
if (!/^[0-9a-f]{64}$/.test(doc.proof))
|
|
60
|
+
throw new Error(`#rub's proof is the lowercase sha256 hex of its bytes, got ${JSON.stringify(doc.proof)}`);
|
|
61
|
+
return resource("rub", "rubric", "The same terms, in the evals-engine's rubric format", "application/ld+json", doc);
|
|
62
|
+
};
|
|
52
63
|
/** `#vct` — the claim form a rubric binds to; the engine finds it by id suffix on the collection's protocol. */
|
|
53
64
|
export const claimFormResource = (doc) => resource("vct", "surveyTemplate", "The claim form this protocol's rubrics are bound to", "application/ld+json", doc);
|
|
54
65
|
/** A deed → the `protocol/verifiableClaim` its collections point at. */
|
|
@@ -63,9 +74,45 @@ export const campaignLink = (campaignProtocolDid) => {
|
|
|
63
74
|
throw new Error(`partOf link needs an entity DID, got ${JSON.stringify(campaignProtocolDid)}`);
|
|
64
75
|
return { id: campaignProtocolDid, type: "protocol/deed", relationship: "partOf", service: "" };
|
|
65
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* The deed's half of the two-sided org link (OpenHands HQ, 2026-10-14): the
|
|
79
|
+
* org's IID lists the deed as `request`, the deed lists the org as
|
|
80
|
+
* `requestedBy`, and the engine counts the company only when both agree. The
|
|
81
|
+
* one DAO link the shape has, and only on a deed posted for an org.
|
|
82
|
+
*/
|
|
83
|
+
export const requestedByLink = (orgDid) => {
|
|
84
|
+
if (!isEntityDid(orgDid))
|
|
85
|
+
throw new Error(`requestedBy link needs the org's entity DID, got ${JSON.stringify(orgDid)}`);
|
|
86
|
+
return { id: orgDid, type: "dao", relationship: "requestedBy", service: "" };
|
|
87
|
+
};
|
|
88
|
+
/** The org's half: on the org's IID, the deed it requested. Written by a key with authentication on the org (OpenHands HQ). */
|
|
89
|
+
export const requestLink = (deedDid) => {
|
|
90
|
+
if (!isEntityDid(deedDid))
|
|
91
|
+
throw new Error(`request link needs the deed's entity DID, got ${JSON.stringify(deedDid)}`);
|
|
92
|
+
return { id: deedDid, type: "deed/request", relationship: "request", service: "" };
|
|
93
|
+
};
|
|
94
|
+
const OWN_FRAGMENTS = new Set(["pro", "dmn", "done", "rub", "vct", "rules"]);
|
|
95
|
+
/** Checks a caller's resource and completes it to the chain's shape. */
|
|
96
|
+
export function extraResource(input) {
|
|
97
|
+
const match = /^\{id\}#([A-Za-z][A-Za-z0-9_-]{0,63})$/.exec(input.id);
|
|
98
|
+
if (!match)
|
|
99
|
+
throw new Error(`an extra resource's id is "{id}#<fragment>", got ${JSON.stringify(input.id)}`);
|
|
100
|
+
if (OWN_FRAGMENTS.has(match[1]))
|
|
101
|
+
throw new Error(`#${match[1]} is the shape's own fragment; an extra resource may not take it`);
|
|
102
|
+
if (!input.type?.trim() || !input.mediaType?.trim())
|
|
103
|
+
throw new Error(`#${match[1]} needs a type and a mediaType`);
|
|
104
|
+
const url = (input.serviceEndpoint ?? "").trim();
|
|
105
|
+
if (url && !/^https:\/\/\S+$/.test(url))
|
|
106
|
+
throw new Error(`#${match[1]} needs an https serviceEndpoint, got ${JSON.stringify(input.serviceEndpoint)}`);
|
|
107
|
+
return resource(match[1], input.type.trim(), (input.description ?? "").trim(), input.mediaType.trim(), { url: input.serviceEndpoint, proof: input.proof });
|
|
108
|
+
}
|
|
66
109
|
/** The `#pro` document, exactly the shape the portal writes (`createEntity.ts`) and every reader expects (`type: "profile"`, `name`). */
|
|
110
|
+
/* Names and descriptions are an ask's own words — a stranger's — and reach IXO's
|
|
111
|
+
index and portals through the card. Bounded here, whatever the door was. */
|
|
112
|
+
const NAME_MAX = 140;
|
|
113
|
+
const DESCRIPTION_MAX = 1000;
|
|
67
114
|
export function buildProfile(input) {
|
|
68
|
-
const name = input.name.trim();
|
|
115
|
+
const name = input.name.trim().slice(0, NAME_MAX);
|
|
69
116
|
if (!name)
|
|
70
117
|
throw new Error("a profile needs a name");
|
|
71
118
|
return {
|
|
@@ -78,7 +125,7 @@ export function buildProfile(input) {
|
|
|
78
125
|
logo: input.logo ?? "",
|
|
79
126
|
brand: (input.brand ?? "Openhands").trim(),
|
|
80
127
|
location: (input.location ?? "Global").trim(),
|
|
81
|
-
description: (input.description ?? "").trim(),
|
|
128
|
+
description: (input.description ?? "").trim().slice(0, DESCRIPTION_MAX),
|
|
82
129
|
attributes: [],
|
|
83
130
|
metrics: []
|
|
84
131
|
};
|
|
@@ -107,14 +154,14 @@ const imageObject = (url) => ({ type: "schema:ImageObject", id: url, contentUrl:
|
|
|
107
154
|
export function buildDomainCard(input) {
|
|
108
155
|
if (!isEntityDid(input.did))
|
|
109
156
|
throw new Error(`a domain card needs the entity's DID, got ${JSON.stringify(input.did)}`);
|
|
110
|
-
const name = input.name.trim();
|
|
157
|
+
const name = input.name.trim().slice(0, NAME_MAX);
|
|
111
158
|
if (!name)
|
|
112
159
|
throw new Error("a domain card needs a name");
|
|
113
160
|
const subject = {
|
|
114
161
|
id: input.did,
|
|
115
162
|
type: [input.type],
|
|
116
163
|
name,
|
|
117
|
-
description: input.description.trim()
|
|
164
|
+
description: input.description.trim().slice(0, DESCRIPTION_MAX)
|
|
118
165
|
};
|
|
119
166
|
if (input.url)
|
|
120
167
|
subject.url = input.url;
|