@fangorn-network/westmarch 2026.10.20-dev → 2026.10.22-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/docs/app-to-agent.md +48 -46
- package/package.json +6 -5
- package/site/dist/assets/AccountNotFoundScreen-C4njXc69-DyVH4CEz.js +1 -0
- package/site/dist/assets/AddFundsSelectionScreen-RAoCn7ej-Dz1--SS9.js +31 -0
- package/site/dist/assets/Address-H8kD1d9O-BdFZmRwI.js +17 -0
- package/site/dist/assets/AffirmativeConsentScreen-BG0MJxku-CxaCAisL.js +6 -0
- package/site/dist/assets/AllowlistRejectionScreen-Cae6e1Od-JGk7vndN.js +1 -0
- package/site/dist/assets/ApiController-CTLbMCcH.js +5 -0
- package/site/dist/assets/ArrowsRightLeftIcon-B8g9adpz.js +1 -0
- package/site/dist/assets/AuthenticateWithWalletScreen-CU6hIcFT-CXD9_OP8.js +1 -0
- package/site/dist/assets/AwaitingEvmToSolBridgingScreen-D0e_sZMS-BtJCglvU.js +1 -0
- package/site/dist/assets/AwaitingExternalEthereumTransferScreen-ur5HL4R7-BgC2TsqH.js +1 -0
- package/site/dist/assets/AwaitingPasswordlessCodeScreen-DRHz76mM-B9OzLeEO.js +103 -0
- package/site/dist/assets/AwaitingSolToEvmBridgingScreen-CdLRrGD2-C7r5snUL.js +1 -0
- package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-BTV0NRio.js +68 -0
- package/site/dist/assets/CaptchaScreen-DbpvkIGx-7rSZIuM-.js +1 -0
- package/site/dist/assets/CheckCircleIcon-B1l17ioc.js +1 -0
- package/site/dist/assets/CheckCircleIcon-BGSI8nKf.js +1 -0
- package/site/dist/assets/Checkbox-D1EDeo41-BUfq0w99.js +52 -0
- package/site/dist/assets/ChevronDownIcon-B6uJvPHu.js +1 -0
- package/site/dist/assets/Chip-CZKIKt9K-r9Nk__0-.js +26 -0
- package/site/dist/assets/CoinbaseOnrampStatusScreen-BbyCJDXL-DWWNHxmR.js +16 -0
- package/site/dist/assets/ConnectEmailForm-B-VRE0MN-CRQwS0Xu.js +3 -0
- package/site/dist/assets/ConnectLedgerScreen-DWHABGot-CZcCt31O.js +10 -0
- package/site/dist/assets/ConnectOnlyLandingScreen-CZYx9Bmp-C5IOf-SQ.js +1 -0
- package/site/dist/assets/ConnectOnlyStatusScreen-DCRzjxHx-cwg74F3A.js +1 -0
- package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-D28oeK6b.js +1 -0
- package/site/dist/assets/ConnectPhoneForm-Dek5xn4C-EEdkKeTp.js +95 -0
- package/site/dist/assets/ConnectWalletView-DqI-PTvX-C2mEzukj.js +74 -0
- package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-CH_7r8iV.js +7 -0
- package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-Z33kis0B.js +1 -0
- package/site/dist/assets/ConnectorUtil-DH4NePk5.js +21 -0
- package/site/dist/assets/ConstantsUtil-DmLsRHAl.js +198 -0
- package/site/dist/assets/CopyToClipboard-i_OQSBJr-_G88JCVR.js +39 -0
- package/site/dist/assets/CopyableText-CQapvaMr-CGGfc_zM.js +28 -0
- package/site/dist/assets/CrossAppAuthScreen-CLw7ymZq-C9Okoc0V.js +1 -0
- package/site/dist/assets/CustomLandingScreenView-Cm_MBSyX-D2l6hdSl.js +22 -0
- package/site/dist/assets/DelegatedActionsConsentScreen-DYF2U4y5-Dda3KKqS.js +1 -0
- package/site/dist/assets/DelegatedActionsRevokeScreen-bPp6Uwyh-DG8kJPt1.js +1 -0
- package/site/dist/assets/DepositAddressAddressStepView-4vdkb55L-CcOUfn6f.js +187 -0
- package/site/dist/assets/DepositAddressScreen-DBLRs7aI-DeituDNh.js +8 -0
- package/site/dist/assets/DepositAddressV3Screen-CDqIEMQw-FDg6K14-.js +1 -0
- package/site/dist/assets/{EmailInputForm-Cqo1mda8-CZD4r5LM.js → EmailInputForm-Cqo1mda8-BmbxvPHC.js} +11 -11
- package/site/dist/assets/EmbeddedWalletConnectingScreen-D4T7DUzs-B05CQ9rx.js +1 -0
- package/site/dist/assets/EmbeddedWalletCreatedScreen-D7WhW5ve-Cxd1b9XH.js +1 -0
- package/site/dist/assets/EmbeddedWalletKeyExportScreen-CqV4NYQ3-CrJy0ViX.js +23 -0
- package/site/dist/assets/EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-Bakaa3zu.js +1 -0
- package/site/dist/assets/EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-j78vKrcj.js +1 -0
- package/site/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-D3dr7W9_.js +1 -0
- package/site/dist/assets/EnrollTotp-Dibew4dp-BXbYV8nI.js +66 -0
- package/site/dist/assets/EnvelopeIcon-DjPofnRI.js +1 -0
- package/site/dist/assets/ErrorBanner-BcpGRt0h-BhH6_V-9.js +21 -0
- package/site/dist/assets/{ErrorMessage-D8VaAP5m-oSruKN8L.js → ErrorMessage-D8VaAP5m-Bs7uX2a9.js} +2 -2
- package/site/dist/assets/ErrorScreen-DipdTWzE-BgPRgnOb.js +4 -0
- package/site/dist/assets/ErrorScreen-DipdTWzE-CvxXC6pz.js +1 -0
- package/site/dist/assets/ExclamationCircleIcon-BE-WGrut.js +1 -0
- package/site/dist/assets/ExclamationTriangleIcon-Ca1Xlc_f.js +1 -0
- package/site/dist/assets/FarcasterConnectStatusScreen-51tjUxqq-De2JvZdV.js +75 -0
- package/site/dist/assets/FarcasterSignerStatusScreen-6x-Uh95G-bLp3hXoO.js +28 -0
- package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-Jr6D6JiZ.js +491 -0
- package/site/dist/assets/FingerPrintIcon-DOCbS93y.js +1 -0
- package/site/dist/assets/FundSolWalletWithExternalSolanaWallet-WtLwYaOl-A_G5kfa1.js +1 -0
- package/site/dist/assets/FundWalletMethodHeader-BWNkokCT-LPv35wkD.js +1 -0
- package/site/dist/assets/FundWithBankDepositScreen-DajkHxBD-0hfGrfvf.js +58 -0
- package/site/dist/assets/FundingEditAmountScreen-CpvpiO4M-Dz0s_NWR.js +1 -0
- package/site/dist/assets/FundingMethodSelectionScreen-Db7vhRlE-ZGm-3-Io.js +1 -0
- package/site/dist/assets/GlobeAltIcon-BBRl2MMn.js +1 -0
- package/site/dist/assets/GooglePay-B53WnudL-BGiVpB8y.js +1 -0
- package/site/dist/assets/HCaptchaWrapper-CUi9LJsp-CHdfIeD_.js +4 -0
- package/site/dist/assets/InAppBrowserLoginNotPossible-BMR9br1T-Cgoiow3m.js +1 -0
- package/site/dist/assets/InfoBanner-Cb3p1z12-_YqQmRiu.js +22 -0
- package/site/dist/assets/InjectedWalletIcon-DLcYOGDj-tuIrKQHH.js +1 -0
- package/site/dist/assets/InstallWalletScreen-DTA8dwLv-BMU_wa61.js +1 -0
- package/site/dist/assets/{JsonTree-BHzNC-ic-pAEq1bl9.js → JsonTree-BHzNC-ic-DcVr0YF0.js} +3 -3
- package/site/dist/assets/{LabelXs-oqZNqbm_-D09YjVR4.js → LabelXs-oqZNqbm_-CNprGVQM.js} +2 -2
- package/site/dist/assets/LandingScreen-CGWUoSUG-fH6rsQen.js +1 -0
- package/site/dist/assets/{Layouts-BMRfo5hw-D2u1-w8g.js → Layouts-BMRfo5hw-e-sepi6F.js} +16 -16
- package/site/dist/assets/Link-BdDilT2T-BdwlRJch.js +40 -0
- package/site/dist/assets/LinkConflictScreen-C3ZEPsgl-BXKN2Qm5.js +77 -0
- package/site/dist/assets/LinkEmailScreen-dKo9frwc-Cyn7Q8p1.js +1 -0
- package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-CWiqnwLM.js +117 -0
- package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-YmDevJzf.js +1 -0
- package/site/dist/assets/LinkPhoneScreen-oIUpfj0w-h7shW-Ay.js +1 -0
- package/site/dist/assets/Loader-UAZqxsnw-DJEVblm1.js +62 -0
- package/site/dist/assets/{LoadingSkeleton-BMsgO5PV-BRMh4Fv4.js → LoadingSkeleton-BMsgO5PV-D2atjsP5.js} +6 -6
- package/site/dist/assets/LockClosedIcon-9EFzWK1C.js +1 -0
- package/site/dist/assets/LoginFailedScreen-CN0dJV6U-By3Si77a.js +1 -0
- package/site/dist/assets/ManualTransferScreen-CHqcuqbs-BAHPY8rs.js +1 -0
- package/site/dist/assets/MfaAuthEnrollmentFlowScreen-Dj7gPTRC-CLjffFG1.js +1 -0
- package/site/dist/assets/MfaAuthVerifyFlowScreen-DbFpyWMy-BmQg1Y61.js +1 -0
- package/site/dist/assets/MfaEnrollmentFlowScreen-DhLnGgnr-DmBtTtlw.js +1 -0
- package/site/dist/assets/MfaVerifyFlowScreen-C_XPjMRP-4a683Bmf.js +1 -0
- package/site/dist/assets/ModalFooter-BCuEK_nz-C_71qsaz.js +403 -0
- package/site/dist/assets/MoonpayStatusScreen-CzTUtokc-DEHHcEf8.js +16 -0
- package/site/dist/assets/OAuthStatusScreen-ufbOa-da-BjAb_WsY.js +1 -0
- package/site/dist/assets/OpenLink-CUpJ1mOr-BLWFsPOW.js +39 -0
- package/site/dist/assets/PasskeySelectSignupOrLogin-xh2ScC_l-2PJTJxX-.js +1 -0
- package/site/dist/assets/PasskeyStatusScreen-Bla8MaOk-DCEg761l.js +6 -0
- package/site/dist/assets/PasswordRecoveryScreen-awGXZkQk-8nVjNc8k.js +20 -0
- package/site/dist/assets/{PhArrowCircleDown-BtlNV0TZ.js → PhArrowCircleDown-D97G-BOA.js} +5 -5
- package/site/dist/assets/PhArrowClockwise-DVgyFuez.js +14 -0
- package/site/dist/assets/PhArrowDown-87b1BizM.js +14 -0
- package/site/dist/assets/PhArrowLeft-Da0MfnbK.js +14 -0
- package/site/dist/assets/PhArrowRight-AdrIL4DW.js +14 -0
- package/site/dist/assets/{PhArrowSquareOut-DnQ7n_B4.js → PhArrowSquareOut-Bk2CMG3I.js} +5 -5
- package/site/dist/assets/PhArrowUp-4sgyKPGx.js +14 -0
- package/site/dist/assets/PhArrowUpRight-BNghD2zq.js +14 -0
- package/site/dist/assets/{PhArrowsClockwise-Brtx2Re-.js → PhArrowsClockwise-BXRn1GEl.js} +5 -5
- package/site/dist/assets/{PhArrowsDownUp-PZosTqZG.js → PhArrowsDownUp-DM09Jo_3.js} +5 -5
- package/site/dist/assets/PhArrowsLeftRight-MuKBLUoF.js +14 -0
- package/site/dist/assets/{PhBank-hhPAIPVb.js → PhBank-fHbgCqqZ.js} +5 -5
- package/site/dist/assets/PhBrowser-2-9m-AkM.js +14 -0
- package/site/dist/assets/PhCaretDown-BDNabFuL.js +14 -0
- package/site/dist/assets/PhCaretLeft-CI460R-A.js +14 -0
- package/site/dist/assets/PhCaretRight-D7ZS3Ls8.js +14 -0
- package/site/dist/assets/PhCaretUp-C-iIfyvO.js +14 -0
- package/site/dist/assets/PhCheck-DxQXn57r.js +14 -0
- package/site/dist/assets/{PhCircleHalf-Bk9C4DvT.js → PhCircleHalf-MJZeRBGF.js} +5 -5
- package/site/dist/assets/PhClock-x3MS3Mwi.js +14 -0
- package/site/dist/assets/{PhCompass-Df1ugFO-.js → PhCompass-hYn3HhGN.js} +5 -5
- package/site/dist/assets/PhCopy-CWNYcABI.js +14 -0
- package/site/dist/assets/{PhCreditCard-CZpdid2n.js → PhCreditCard-Fy4pzwtt.js} +5 -5
- package/site/dist/assets/{PhCurrencyDollar-B6IKKjue.js → PhCurrencyDollar-BgiaenCi.js} +5 -5
- package/site/dist/assets/{PhDesktop-BuCDXYJj.js → PhDesktop-CxrzCSv5.js} +5 -5
- package/site/dist/assets/PhDeviceMobile-CsyA5Goi.js +14 -0
- package/site/dist/assets/PhDotsThree-D-k1BiYg.js +14 -0
- package/site/dist/assets/PhEnvelope-D8kzeNox.js +14 -0
- package/site/dist/assets/PhFunnelSimple-CfQs5DAW.js +14 -0
- package/site/dist/assets/{PhGlobe-q1mqj65V.js → PhGlobe-DvmSc9_A.js} +5 -5
- package/site/dist/assets/{PhIdentificationCard-BeLXJpfZ.js → PhIdentificationCard-CfkZm-5K.js} +5 -5
- package/site/dist/assets/{PhImage-BYrKfN9k.js → PhImage-Cf0J2ZfJ.js} +5 -5
- package/site/dist/assets/{PhInfo-X33f06Ej.js → PhInfo-Bwi51-2X.js} +5 -5
- package/site/dist/assets/{PhLightbulb-DMZJsowR.js → PhLightbulb-C4FZV7Es.js} +5 -5
- package/site/dist/assets/PhMagnifyingGlass-C9u8jSCJ.js +14 -0
- package/site/dist/assets/{PhPaperPlaneRight-Dvo-nXr9.js → PhPaperPlaneRight-zxQVvPLX.js} +5 -5
- package/site/dist/assets/PhPlus-C4UoW-2n.js +14 -0
- package/site/dist/assets/{PhPower-D8-AcNM6.js → PhPower-CFyWDmgD.js} +5 -5
- package/site/dist/assets/{PhPuzzlePiece-C-7mYqGO.js → PhPuzzlePiece-BjoNVfST.js} +5 -5
- package/site/dist/assets/{PhQrCode-uIXlI5ER.js → PhQrCode-CP3tFauY.js} +5 -5
- package/site/dist/assets/{PhQuestion-rUoqC2sC.js → PhQuestion-wOWJBd3G.js} +5 -5
- package/site/dist/assets/{PhQuestionMark-W55Txvvb.js → PhQuestionMark-CV0k9C0Y.js} +5 -5
- package/site/dist/assets/{PhSealCheck-BeVLq9PH.js → PhSealCheck-vIKzREuN.js} +5 -5
- package/site/dist/assets/{PhSignOut-Cq2PivQ6.js → PhSignOut-CxELV-i0.js} +5 -5
- package/site/dist/assets/{PhSpinner-CZMtAFdX.js → PhSpinner-CGDmbzUd.js} +5 -5
- package/site/dist/assets/{PhTrash-BamrmMsN.js → PhTrash-C9PD0SAt.js} +5 -5
- package/site/dist/assets/{PhUser-A2fxqIV0.js → PhUser-0sWNXQeZ.js} +5 -5
- package/site/dist/assets/{PhVault-B8m1usHw.js → PhVault-6JTskUcC.js} +5 -5
- package/site/dist/assets/{PhWarning-CpkID9oi.js → PhWarning-CoKs3gz6.js} +5 -5
- package/site/dist/assets/PhWarningCircle-BXHw1fCt.js +14 -0
- package/site/dist/assets/PhX-DX0SFIqC.js +14 -0
- package/site/dist/assets/PhoneIcon-CZ47md80.js +1 -0
- package/site/dist/assets/PinInput-DbZ0b1i1-BrTXu3Km.js +247 -0
- package/site/dist/assets/PrivyPluginContext-DA-yS5vO-CY60yubk.js +1 -0
- package/site/dist/assets/QrCode-DbnZwlkH-CcMrWV5D.js +22 -0
- package/site/dist/assets/RecoveryOAuthStatusScreen-CsgtTI2x-DgeDnHOK.js +1 -0
- package/site/dist/assets/RecoveryPasswordCreateScreen-Be-qJ-LU-CvJJwLhK.js +1 -0
- package/site/dist/assets/RecoverySelectionScreen-D1iGtpmi-CADtGtSV.js +7 -0
- package/site/dist/assets/SIWXUtil-Cpiv91-M.js +1 -0
- package/site/dist/assets/{Screen-D30meWsY-DDum2qlY.js → Screen-D30meWsY-vEusJ7KX.js} +22 -22
- package/site/dist/assets/{ScreenHeader-CHmc4-Lu-BqrAEXbV.js → ScreenHeader-CHmc4-Lu-BvGTLg53.js} +4 -4
- package/site/dist/assets/ScreenLayout-OwaQQcxH-cfOTmyl0.js +1 -0
- package/site/dist/assets/{SelectSourceAsset-CWFog6gm-8iXuqbAs.js → SelectSourceAsset-CWFog6gm-DxYklZYs.js} +18 -18
- package/site/dist/assets/SetAutomaticRecoveryScreen-BO_OEqAZ-oeqeo05x.js +14 -0
- package/site/dist/assets/SetWalletPasswordForm-DwCTVtAh-BxFee9UA.js +11 -0
- package/site/dist/assets/ShieldCheckIcon-eFjsosCA.js +1 -0
- package/site/dist/assets/SignRequestScreen-BHKv32KR-z8ixfIma.js +26 -0
- package/site/dist/assets/SolanaWalletConnector-C7Lqk-Wz-Bc_lvdiF.js +1 -0
- package/site/dist/assets/{StackedContainer-B2vaEl56-C-ojzCoQ.js → StackedContainer-B2vaEl56-Do5dXB8-.js} +2 -2
- package/site/dist/assets/StandardSignAndSendTransactionScreen-CfhIXVtd-DudetZAc.js +20 -0
- package/site/dist/assets/{Subtitle-CV-2yKE4-o-1FQLlX.js → Subtitle-CV-2yKE4-DV0o1av3.js} +2 -2
- package/site/dist/assets/TelegramAuthScreen-UL9zLfO8-Bo3sONvf.js +1 -0
- package/site/dist/assets/{Title-BnzYV3Is-RX1f0RV-.js → Title-BnzYV3Is-C3qOPnO_.js} +2 -2
- package/site/dist/assets/TodoList-DnyULl18-BvxvubbF.js +36 -0
- package/site/dist/assets/TransactionDetails-e9nesl30-WWflkOIi.js +109 -0
- package/site/dist/assets/TransactionErrorView-BDBNqA_f-CotYKcgf.js +178 -0
- package/site/dist/assets/TransferFromWalletScreen-Qvn1Yuno-sVFlWqa8.js +31 -0
- package/site/dist/assets/TransferOrBridgeLoadingScreen-Dl1I_iIz-CV2-mY19.js +6 -0
- package/site/dist/assets/TurnstileWrapper-B7sNddys-oPbuMTQt.js +1 -0
- package/site/dist/assets/UpdateEmailScreen-DVOhPV0H-D_mjSpAy.js +1 -0
- package/site/dist/assets/UpdatePhoneScreen-CXRswTNZ-6RLG0ahv.js +1 -0
- package/site/dist/assets/UserLimitReachedScreen-5we2DHn8-CaVN0bti.js +1 -0
- package/site/dist/assets/{Value-DTgR824E-DZpvBCWi.js → Value-DTgR824E-Bp6WGZZm.js} +7 -7
- package/site/dist/assets/WalletCards-DH1rqayz-D3cOTb9x.js +1 -0
- package/site/dist/assets/WalletIcon-DOIZhb2l.js +1 -0
- package/site/dist/assets/WalletInfoCard-sq_2wgFg-bOqfl5MA.js +29 -0
- package/site/dist/assets/WalletInterstitialScreen-Sh7LfsAh-DWaVkMCA.js +1 -0
- package/site/dist/assets/WalletLink-DK5LB5Ha-DjUZvqs-.js +20 -0
- package/site/dist/assets/WalletOverflowButton-bfCnp-9T-B6P7DQXA.js +1 -0
- package/site/dist/assets/WarningBanner-ZZqCEtZK-Bc2YKZb7.js +21 -0
- package/site/dist/assets/__vite-browser-external-NciY4Vu1.js +1 -0
- package/site/dist/assets/_esm-BZP3cXTv.js +1 -0
- package/site/dist/assets/_esm-ZmzBJpEs.js +6 -0
- package/site/dist/assets/accounts-D4AXF17G.js +1 -0
- package/site/dist/assets/accounts-IkdFx9nq.js +1 -0
- package/site/dist/assets/analytics-mkkvFRju-BRBcadka.js +1 -0
- package/site/dist/assets/baseSepolia-Bn1j1Ysw.js +1 -0
- package/site/dist/assets/basic-Cz1YiCSk.js +1575 -0
- package/site/dist/assets/capitalizeFirstLetter-DmLYqXsO-DtOXx-2n.js +1 -0
- package/site/dist/assets/ccip-B1J3oTZx.js +7 -0
- package/site/dist/assets/ccip-Bd7261zy.js +1 -0
- package/site/dist/assets/ccip-D6EHKpjI.js +1 -0
- package/site/dist/assets/chain-scefkYIH.js +5 -0
- package/site/dist/assets/check-DHnllI8N.js +1 -0
- package/site/dist/assets/chevron-down-1y-r4bGO.js +1 -0
- package/site/dist/assets/circle-alert-OwxamXUX.js +1 -0
- package/site/dist/assets/circle-check-big-3sZGVC10.js +1 -0
- package/site/dist/assets/circle-x-DQjNUV9J.js +1 -0
- package/site/dist/assets/client-B-BpRtwY.js +1 -0
- package/site/dist/assets/client-BfIR1FvH.js +9 -0
- package/site/dist/assets/coinbase-DCPC2L_R-YEuIn3jh.js +3 -0
- package/site/dist/assets/copy-DMOX_yn7.js +1 -0
- package/site/dist/assets/core-GIEmxmAa.js +12 -0
- package/site/dist/assets/createLucideIcon-BsERoFTA.js +1 -0
- package/site/dist/assets/defineChain-B-SQDLTG.js +1 -0
- package/site/dist/assets/dijkstra-CY95afk4.js +1 -0
- package/site/dist/assets/dist-CoS6E-3x.js +1 -0
- package/site/dist/assets/dist-Cp6IXeJd.js +1 -0
- package/site/dist/assets/dist-CrNxmdZj.js +1 -0
- package/site/dist/assets/dist-DYGtf4F0.js +16 -0
- package/site/dist/assets/embed.worker-Cnl4VGr3.js +1 -0
- package/site/dist/assets/errors-BQ3N-RVt-CZPAWCgC.js +1 -0
- package/site/dist/assets/esm-C3DslVJx.js +1 -0
- package/site/dist/assets/esm-Ci1ogKuK.js +1 -0
- package/site/dist/assets/esm-Co94ENUV.js +37 -0
- package/site/dist/assets/esm-bb8SANZh.js +1 -0
- package/site/dist/assets/esm-n2lWo7kz.js +1 -0
- package/site/dist/assets/ethers-zTjbodk5-Cs648CnD.js +1 -0
- package/site/dist/assets/eventemitter3-Dzc_0Uq2.js +1 -0
- package/site/dist/assets/external-link-BBPG3rG7.js +1 -0
- package/site/dist/assets/farcaster-DPlSjvF5-CzBCmgyL.js +1 -0
- package/site/dist/assets/features-CuiHbgEJ.js +2 -0
- package/site/dist/assets/fingerprint-pattern-CjLtyIxB.js +1 -0
- package/site/dist/assets/floating-ui.react-DmaCfayr.js +1 -0
- package/site/dist/assets/floating-ui.react-dom-CaoMF8mP.js +1 -0
- package/site/dist/assets/formatErc20TokenAmount-BuPk9xcy-BVqOKQif.js +1 -0
- package/site/dist/assets/formatter-CVbp4SlJ.js +1 -0
- package/site/dist/assets/get-entropy-details-for-user-dHRH5Gpi-BNiOFXbK.js +1 -0
- package/site/dist/assets/getChainName-DjpPdUSc-DUyKDrnp.js +1 -0
- package/site/dist/assets/getErc20Balance-jXNpFf0N-q4bV8kQq.js +1 -0
- package/site/dist/assets/getErc20TokenInfo-BNTrzLMP-DcnTFrXN.js +1 -0
- package/site/dist/assets/getFormattedUsdFromLamports-De3U9GlO-Gx4_wxON.js +1 -0
- package/site/dist/assets/getUsdcMintAddress-BVgm9GRo-r2UnDeEy.js +1 -0
- package/site/dist/assets/guards-BIW-GiMJ-D3tWTQAR.js +1 -0
- package/site/dist/assets/hooks.module-BYZGfwDl.js +1 -0
- package/site/dist/assets/hourglass-D_GfQdJr.js +1 -0
- package/site/dist/assets/id-UqEwL2BI-CTlvRMA5.js +1 -0
- package/site/dist/assets/index-BdEw5wyl-kLbhqLbv.js +1 -0
- package/site/dist/assets/index-C2h3EneX.js +8 -0
- package/site/dist/assets/{index-CWARkn2w-D6ikWJWj.js → index-CWARkn2w-DxuckIFn.js} +7 -7
- package/site/dist/assets/index-DvMddJcd-CNBb4VUn.js +12 -0
- package/site/dist/assets/index-YiCw0Y_x-Czl0tWfF.js +436 -0
- package/site/dist/assets/index.browser-B-i-Lj3J.js +1 -0
- package/site/dist/assets/index.browser-BMmUcykv.js +1 -0
- package/site/dist/assets/index.es-Crd0TyUS.js +2 -0
- package/site/dist/assets/index.es-DQbup1WG.js +3 -0
- package/site/dist/assets/isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js +1 -0
- package/site/dist/assets/jsx-runtime-CndCZlyt.js +1 -0
- package/site/dist/assets/landmark-BZPqMFEf.js +1 -0
- package/site/dist/assets/lib-DGtzi2DK.js +1 -0
- package/site/dist/assets/localBatchGatewayRequest-B71J8sQ9.js +29 -0
- package/site/dist/assets/lock-DyN_c-ud.js +1 -0
- package/site/dist/assets/logger-CsXm3oIv-B0UYpNFI.js +1 -0
- package/site/dist/assets/mail-V_mcPb64.js +1 -0
- package/site/dist/assets/modal-context-CwmSeFcv-DPWNJrfK.js +1 -0
- package/site/dist/assets/native-BKj27wfc.js +1 -0
- package/site/dist/assets/ofetch.CWycOUEr-Duby3iHT.js +1 -0
- package/site/dist/assets/parseAbi-Csg-8t59.js +2 -0
- package/site/dist/assets/parseAbiParameters-BWbIMYe4.js +1 -0
- package/site/dist/assets/parseEther-CHS0GNkM.js +1 -0
- package/site/dist/assets/pkce-DXF0yKjP-7_VY-d83.js +1 -0
- package/site/dist/assets/preload-helper-CRzLMJPS.js +1 -0
- package/site/dist/assets/privy-context-81KmsBw2-DiR6-Yq8.js +2 -0
- package/site/dist/assets/property-DuZ9DLP4.js +3 -0
- package/site/dist/assets/react-BfYA1q0G.js +1 -0
- package/site/dist/assets/react-CK2HRI1t.js +1 -0
- package/site/dist/assets/react-DxGeY8B8.js +1 -0
- package/site/dist/assets/react-auth-sHnipzbS.js +1 -0
- package/site/dist/assets/react-dom-BI2Koe4o.js +1 -0
- package/site/dist/assets/reservoir-x-nGuZkT-BguVFH3D.js +1 -0
- package/site/dist/assets/roles-BDPDWrwo.js +1 -0
- package/site/dist/assets/roles-DKPW79Ca.js +1 -0
- package/site/dist/assets/rolldown-runtime-Bjp52BOI.js +1 -0
- package/site/dist/assets/safe-url-D7SRPu33-CkMedGro.js +1 -0
- package/site/dist/assets/secp256k1-BeYL8aZl.js +1 -0
- package/site/dist/assets/secp256k1-Bh4MSkhz.js +1 -0
- package/site/dist/assets/secp256k1-Ci4cqHl0.js +1 -0
- package/site/dist/assets/secp256k1-DsxXqbXv.js +1 -0
- package/site/dist/assets/secp256k1-N9RUmafO.js +1 -0
- package/site/dist/assets/serializeAuthorizationList-DGMik9Wx.js +1 -0
- package/site/dist/assets/serializeSignature-CWKpxoab.js +2 -0
- package/site/dist/assets/sha2-C6s7zZmb.js +1 -0
- package/site/dist/assets/{shared-DRZUmnL5-MWD-C-pp.js → shared-DRZUmnL5-BewE5wK8.js} +33 -33
- package/site/dist/assets/{shared-FM0rljBt-c4eSjzGj.js → shared-FM0rljBt-CxLACri_.js} +6 -6
- package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js +1 -0
- package/site/dist/assets/simulateTransaction-CfuOrae4-PjA_tGjX.js +1 -0
- package/site/dist/assets/smartphone-3p8nFSTE.js +1 -0
- package/site/dist/assets/src-BBjkfi-Q.js +1 -0
- package/site/dist/assets/storage-Ufl800Ne-1qCR2JMO.js +8 -0
- package/site/dist/assets/stringify-DqUj9VzO.js +20 -0
- package/site/dist/assets/stripe.esm-DEi2D291.js +2 -0
- package/site/dist/assets/styles-BsotlekN-Aq27nZGc.js +9 -0
- package/site/dist/assets/{styles-Cm9H63WO-Cv1TbqYi.js → styles-Cm9H63WO-p_ic_dxE.js} +17 -17
- package/site/dist/assets/{styles-DVyDvTdj-CI4xZNHp.js → styles-DVyDvTdj-CjsWqAld.js} +8 -8
- package/site/dist/assets/{styles-hslXy6xG-DeVcFoDD.js → styles-hslXy6xG-D5QHIrJU.js} +23 -23
- package/site/dist/assets/telegram-B-JqnkqZ-Dqkm4rDn.js +1 -0
- package/site/dist/assets/to-ui-error-DWe-qwS3-Bi1HUQI9.js +4 -0
- package/site/dist/assets/toViemAccount-B5iDGq1b-CdFZwv07.js +2 -0
- package/site/dist/assets/transaction-BNTP-bFm-M5tJx8vY.js +1 -0
- package/site/dist/assets/transfer-6YztDh-t-BVQkTvG-.js +1 -0
- package/site/dist/assets/transformers.web-BTyOEJ0C.js +40 -0
- package/site/dist/assets/transformers.web-CUZUFjAK.js +49 -0
- package/site/dist/assets/triangle-alert-BG3Qw-Hq.js +1 -0
- package/site/dist/assets/twitch-5IOe4sIQ-CaXHFlAu.js +1 -0
- package/site/dist/assets/types-4CuOD23i.js +1 -0
- package/site/dist/assets/use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js +1 -0
- package/site/dist/assets/use-unlink-wallet-BKK4_5Ur-C0xQN_Lp.js +1 -0
- package/site/dist/assets/useActiveWallet-B-yZYGc6-BkK6rFBm.js +123 -0
- package/site/dist/assets/useGetSolPrice-x7gfUIHJ-CLVXqv6I.js +1 -0
- package/site/dist/assets/useGetTokenPrice-CaoUkb79-DAXXs3rs.js +1 -0
- package/site/dist/assets/useI18n-C-5n_noF-CGpkgIVy.js +1 -0
- package/site/dist/assets/useWalletBalance-CZnP5f_f-Cfd64m4n.js +1 -0
- package/site/dist/assets/useWallets-X1ndvJ_U-CAYqg7Za.js +1 -0
- package/site/dist/assets/utils-BkR7EQjg.js +1 -0
- package/site/dist/assets/utils-DJhBNOZA.js +1 -0
- package/site/dist/assets/utils-DdckVfQr.js +1 -0
- package/site/dist/assets/w3m-modal-B4H_uiPH.js +1174 -0
- package/site/dist/assets/wallet-BNI12IYk.js +1 -0
- package/site/dist/assets/wallet-CITSaPlB.js +2 -0
- package/site/dist/assets/wallet-connect-BvJtUsDt-CVlSNIXP.js +1 -0
- package/site/dist/assets/walletconnect-registry-xxG8XLCb-BpzpBq5s.js +1 -0
- package/site/dist/assets/walletconnect-v2-3frQFwbg-CzZ6oybX.js +12 -0
- package/site/dist/assets/{index-CztIxJB6.js → wui-ux-by-reown-XyHdtV1O.js} +296 -296
- package/site/dist/assets/x-gjDrY2rk.js +1 -0
- package/site/dist/index.html +5 -117
- package/site/worker.js +6 -30
- package/src/agent/mcp.js +47 -15
- package/src/agent/view-tools.js +3 -11
- package/src/agent/x402.js +3 -42
- package/src/discover/apps.js +37 -2
- package/src/discover/explore.js +19 -13
- package/src/publish/init.js +74 -0
- package/src/publish/ship.js +36 -79
- package/src/publish/view-cli.js +6 -3
- package/src/publish/view.js +27 -43
- package/template/.github/workflows/ship.yml +33 -0
- package/template/README.md +38 -0
- package/template/app.json +27 -0
- package/template/ci/ship.sh +21 -0
- package/template/eval/goals.md +7 -0
- package/template/eval/golden.jsonl +0 -0
- package/template/gitignore +3 -0
- package/template/package.json +8 -0
- package/site/dist/assets/AccountNotFoundScreen-C4njXc69-RUyAWRzV.js +0 -1
- package/site/dist/assets/AddFundsSelectionScreen-RAoCn7ej-ZV-LlYBe.js +0 -31
- package/site/dist/assets/Address-H8kD1d9O-CGQnt7Pu.js +0 -17
- package/site/dist/assets/AffirmativeConsentScreen-BG0MJxku-CKn2JLwq.js +0 -6
- package/site/dist/assets/AllowlistRejectionScreen-Cae6e1Od-9oIP9fma.js +0 -1
- package/site/dist/assets/ArrowsRightLeftIcon-BEhBD_6N.js +0 -1
- package/site/dist/assets/AuthenticateWithWalletScreen-CU6hIcFT-D1wLlSJs.js +0 -1
- package/site/dist/assets/AwaitingEvmToSolBridgingScreen-D0e_sZMS-CSBbHTyz.js +0 -1
- package/site/dist/assets/AwaitingExternalEthereumTransferScreen-ur5HL4R7-BsRq-xBt.js +0 -1
- package/site/dist/assets/AwaitingPasswordlessCodeScreen-DRHz76mM-BPdhsKvN.js +0 -103
- package/site/dist/assets/AwaitingSolToEvmBridgingScreen-CdLRrGD2-CEGNdrkr.js +0 -1
- package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-Da9P7eSx.js +0 -68
- package/site/dist/assets/CaptchaScreen-DbpvkIGx-BecgMnD_.js +0 -1
- package/site/dist/assets/CheckCircleIcon-DBiWFjO6.js +0 -1
- package/site/dist/assets/CheckCircleIcon-DzG2ROJZ.js +0 -1
- package/site/dist/assets/Checkbox-D1EDeo41-DMHcj9o_.js +0 -52
- package/site/dist/assets/ChevronDownIcon-2Os56gUt.js +0 -1
- package/site/dist/assets/Chip-CZKIKt9K-BWzs9fj5.js +0 -26
- package/site/dist/assets/CoinbaseOnrampStatusScreen-BbyCJDXL-CFvcSiDs.js +0 -16
- package/site/dist/assets/ConnectEmailForm-B-VRE0MN-BozkCg8q.js +0 -3
- package/site/dist/assets/ConnectLedgerScreen-DWHABGot-DaCnbBzh.js +0 -10
- package/site/dist/assets/ConnectOnlyLandingScreen-CZYx9Bmp-DUkCLkxD.js +0 -1
- package/site/dist/assets/ConnectOnlyStatusScreen-DCRzjxHx-Dv_5nMkZ.js +0 -1
- package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-DSGEeB3Y.js +0 -1
- package/site/dist/assets/ConnectPhoneForm-Dek5xn4C-C-s4s_Lq.js +0 -95
- package/site/dist/assets/ConnectWalletView-DqI-PTvX-BKX7fdYr.js +0 -74
- package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-DSoAuMFZ.js +0 -7
- package/site/dist/assets/CopyToClipboard-i_OQSBJr-CZTXyfV0.js +0 -39
- package/site/dist/assets/CopyableText-CQapvaMr-DHO818I0.js +0 -28
- package/site/dist/assets/CrossAppAuthScreen-CLw7ymZq-DW4nRGfz.js +0 -1
- package/site/dist/assets/CustomLandingScreenView-Cm_MBSyX-DH8Nnb4Y.js +0 -22
- package/site/dist/assets/DelegatedActionsConsentScreen-DYF2U4y5-gfUS_uV5.js +0 -1
- package/site/dist/assets/DelegatedActionsRevokeScreen-bPp6Uwyh-DZj9HTHc.js +0 -1
- package/site/dist/assets/DepositAddressAddressStepView-4vdkb55L-eHYsDK9W.js +0 -187
- package/site/dist/assets/DepositAddressScreen-DBLRs7aI-DK_XVgVk.js +0 -8
- package/site/dist/assets/DepositAddressV3Screen-CDqIEMQw-6gRZzhLe.js +0 -1
- package/site/dist/assets/EmbeddedWalletConnectingScreen-D4T7DUzs-BZu2ae0k.js +0 -1
- package/site/dist/assets/EmbeddedWalletCreatedScreen-D7WhW5ve-86pviemJ.js +0 -1
- package/site/dist/assets/EmbeddedWalletKeyExportScreen-CqV4NYQ3-vDcvT53Y.js +0 -23
- package/site/dist/assets/EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-rNJAtSJc.js +0 -1
- package/site/dist/assets/EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-I8Q95280.js +0 -1
- package/site/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-Coi7OxoI.js +0 -1
- package/site/dist/assets/EnrollTotp-Dibew4dp-DC7FrDgo.js +0 -66
- package/site/dist/assets/EnvelopeIcon-DY6ERnW7.js +0 -1
- package/site/dist/assets/ErrorBanner-BcpGRt0h-BvESwN99.js +0 -21
- package/site/dist/assets/ErrorScreen-DipdTWzE-DnKGxH1Z.js +0 -4
- package/site/dist/assets/ExclamationCircleIcon-BZhlqH0r.js +0 -1
- package/site/dist/assets/ExclamationTriangleIcon-CkAOJIYV.js +0 -1
- package/site/dist/assets/FarcasterConnectStatusScreen-51tjUxqq-4pi7jooW.js +0 -75
- package/site/dist/assets/FarcasterSignerStatusScreen-6x-Uh95G-z2XCMaLL.js +0 -28
- package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-CBVA9v1-.js +0 -491
- package/site/dist/assets/FingerPrintIcon-ra2dqmJO.js +0 -1
- package/site/dist/assets/FundSolWalletWithExternalSolanaWallet-WtLwYaOl-DwAwc6Ny.js +0 -1
- package/site/dist/assets/FundWalletMethodHeader-BWNkokCT-CZszQsZf.js +0 -1
- package/site/dist/assets/FundWithBankDepositScreen-DajkHxBD-DfX6nvFQ.js +0 -58
- package/site/dist/assets/FundingEditAmountScreen-CpvpiO4M-CDS_sk_t.js +0 -1
- package/site/dist/assets/FundingMethodSelectionScreen-Db7vhRlE-CPfNQemT.js +0 -1
- package/site/dist/assets/GlobeAltIcon-SEUEIe_E.js +0 -1
- package/site/dist/assets/GooglePay-B53WnudL-aap7zwag.js +0 -1
- package/site/dist/assets/HCaptchaWrapper-CUi9LJsp-DgSjCjQI.js +0 -4
- package/site/dist/assets/InAppBrowserLoginNotPossible-BMR9br1T-DO4wICml.js +0 -1
- package/site/dist/assets/InfoBanner-Cb3p1z12-CDWt2ADo.js +0 -22
- package/site/dist/assets/InjectedWalletIcon-DLcYOGDj-Ba19XoBr.js +0 -1
- package/site/dist/assets/InstallWalletScreen-DTA8dwLv-DGpewEch.js +0 -1
- package/site/dist/assets/LandingScreen-CGWUoSUG-CUOCWUXd.js +0 -1
- package/site/dist/assets/Link-BdDilT2T-BYiP1zvW.js +0 -40
- package/site/dist/assets/LinkConflictScreen-C3ZEPsgl-Tb6cAepT.js +0 -77
- package/site/dist/assets/LinkEmailScreen-dKo9frwc-pq0NF2JO.js +0 -1
- package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-D9MOmDqg.js +0 -117
- package/site/dist/assets/LinkPhoneScreen-oIUpfj0w-B80UJqAZ.js +0 -1
- package/site/dist/assets/LockClosedIcon-BqkoEL9J.js +0 -1
- package/site/dist/assets/LoginFailedScreen-CN0dJV6U-DlnOM-Kh.js +0 -1
- package/site/dist/assets/ManualTransferScreen-CHqcuqbs-DSShupq9.js +0 -1
- package/site/dist/assets/MfaAuthEnrollmentFlowScreen-Dj7gPTRC-DUPV_SLA.js +0 -1
- package/site/dist/assets/MfaAuthVerifyFlowScreen-DbFpyWMy-D96GpzXX.js +0 -1
- package/site/dist/assets/MfaEnrollmentFlowScreen-DhLnGgnr-CYQDa4ND.js +0 -1
- package/site/dist/assets/MfaVerifyFlowScreen-C_XPjMRP-CJtSAXGN.js +0 -1
- package/site/dist/assets/ModalFooter-BCuEK_nz-D2I8KWtk.js +0 -403
- package/site/dist/assets/MoonpayStatusScreen-CzTUtokc-Bx5aHy-z.js +0 -16
- package/site/dist/assets/OAuthStatusScreen-ufbOa-da-CS6988X2.js +0 -1
- package/site/dist/assets/OpenLink-CUpJ1mOr-EZWVSX2r.js +0 -39
- package/site/dist/assets/PasskeySelectSignupOrLogin-xh2ScC_l-BY4eK5Jh.js +0 -1
- package/site/dist/assets/PasskeyStatusScreen-Bla8MaOk-LXys76u9.js +0 -6
- package/site/dist/assets/PasswordRecoveryScreen-awGXZkQk-RczvLvmo.js +0 -20
- package/site/dist/assets/PhArrowClockwise-mOiWYLMV.js +0 -14
- package/site/dist/assets/PhArrowDown-CkoOD89h.js +0 -14
- package/site/dist/assets/PhArrowLeft-C0jlxVhM.js +0 -14
- package/site/dist/assets/PhArrowRight-BI-V03Xf.js +0 -14
- package/site/dist/assets/PhArrowUp-izKvURUW.js +0 -14
- package/site/dist/assets/PhArrowUpRight-Bn-JhHsY.js +0 -14
- package/site/dist/assets/PhArrowsLeftRight-CYsRQ2qh.js +0 -14
- package/site/dist/assets/PhBrowser-BjzAmrHO.js +0 -14
- package/site/dist/assets/PhCaretDown-ddSjwcwm.js +0 -14
- package/site/dist/assets/PhCaretLeft-B7YLoNEF.js +0 -14
- package/site/dist/assets/PhCaretRight-BY8D5MIg.js +0 -14
- package/site/dist/assets/PhCaretUp-BG10nSut.js +0 -14
- package/site/dist/assets/PhCheck-DrKd7pBC.js +0 -14
- package/site/dist/assets/PhClock-Sj17weCB.js +0 -14
- package/site/dist/assets/PhCopy-rgttky8E.js +0 -14
- package/site/dist/assets/PhDeviceMobile-CnybhXY-.js +0 -14
- package/site/dist/assets/PhDotsThree-CSAEcba1.js +0 -14
- package/site/dist/assets/PhEnvelope-SmaNeXoQ.js +0 -14
- package/site/dist/assets/PhFunnelSimple-DKx35ITq.js +0 -14
- package/site/dist/assets/PhMagnifyingGlass-B6D0sWFL.js +0 -14
- package/site/dist/assets/PhPlus-CBvZvLax.js +0 -14
- package/site/dist/assets/PhWarningCircle-Cm58gXb9.js +0 -14
- package/site/dist/assets/PhX-C3b4cCEy.js +0 -14
- package/site/dist/assets/PhoneIcon-CzbssTb8.js +0 -1
- package/site/dist/assets/PinInput-DbZ0b1i1-1DtLWL81.js +0 -247
- package/site/dist/assets/QrCode-DbnZwlkH-ChwcUk_h.js +0 -22
- package/site/dist/assets/RecoveryOAuthStatusScreen-CsgtTI2x-C79jd345.js +0 -1
- package/site/dist/assets/RecoveryPasswordCreateScreen-Be-qJ-LU-C9c0x-yq.js +0 -1
- package/site/dist/assets/RecoverySelectionScreen-D1iGtpmi-PNqHb6CI.js +0 -7
- package/site/dist/assets/ScreenLayout-OwaQQcxH-B4Z8FjFp.js +0 -1
- package/site/dist/assets/SetAutomaticRecoveryScreen-BO_OEqAZ-CUpQZ9wq.js +0 -14
- package/site/dist/assets/SetWalletPasswordForm-DwCTVtAh-ZzvPLj2s.js +0 -15
- package/site/dist/assets/ShieldCheckIcon-Bjwe_-PV.js +0 -1
- package/site/dist/assets/SignRequestScreen-BHKv32KR-0qGeNipB.js +0 -26
- package/site/dist/assets/StandardSignAndSendTransactionScreen-CfhIXVtd-C3lgJb68.js +0 -20
- package/site/dist/assets/TelegramAuthScreen-UL9zLfO8-l35_C2DG.js +0 -1
- package/site/dist/assets/TodoList-DnyULl18-JxWWU9KA.js +0 -36
- package/site/dist/assets/TransactionDetails-e9nesl30-C91nJPM9.js +0 -109
- package/site/dist/assets/TransactionErrorView-BDBNqA_f-Cpm-4xzm.js +0 -178
- package/site/dist/assets/TransferFromWalletScreen-Qvn1Yuno-BWCH7-Si.js +0 -31
- package/site/dist/assets/TransferOrBridgeLoadingScreen-Dl1I_iIz-BWMeJabk.js +0 -6
- package/site/dist/assets/TurnstileWrapper-B7sNddys-Dgr80Gih.js +0 -1
- package/site/dist/assets/UpdateEmailScreen-DVOhPV0H-Clk4zk-8.js +0 -1
- package/site/dist/assets/UpdatePhoneScreen-CXRswTNZ-BgRsoR3B.js +0 -1
- package/site/dist/assets/UserLimitReachedScreen-5we2DHn8-D-SU-vAz.js +0 -1
- package/site/dist/assets/WalletCards-DH1rqayz-UuZ4i_Ze.js +0 -1
- package/site/dist/assets/WalletIcon-B1i03Vqc.js +0 -1
- package/site/dist/assets/WalletInfoCard-sq_2wgFg-TXTxmb8L.js +0 -29
- package/site/dist/assets/WalletInterstitialScreen-Sh7LfsAh-CbrFb0ON.js +0 -1
- package/site/dist/assets/WalletLink-DK5LB5Ha-BYQZV7UV.js +0 -20
- package/site/dist/assets/WalletOverflowButton-bfCnp-9T-CNgSPnTS.js +0 -1
- package/site/dist/assets/WarningBanner-ZZqCEtZK-DNZUUOph.js +0 -21
- package/site/dist/assets/__vite-browser-external-BIHI7g3E.js +0 -1
- package/site/dist/assets/analytics-mkkvFRju-DOXuftJB.js +0 -1
- package/site/dist/assets/basic-C9wn6QoQ.js +0 -1575
- package/site/dist/assets/bytes-CjWw8TJh.js +0 -1
- package/site/dist/assets/capitalizeFirstLetter-DmLYqXsO-tV1Idewc.js +0 -1
- package/site/dist/assets/ccip-BhHEqVIW.js +0 -1
- package/site/dist/assets/check-C_DTyjLS.js +0 -1
- package/site/dist/assets/chevron-down-iklXXH-z.js +0 -1
- package/site/dist/assets/circle-alert-KEOUF48T.js +0 -1
- package/site/dist/assets/circle-check-big-BJ_ADwB4.js +0 -1
- package/site/dist/assets/circle-x-BSfWmhYk.js +0 -1
- package/site/dist/assets/client-BnDcP42J.js +0 -9
- package/site/dist/assets/client-DH86IrJA.js +0 -125
- package/site/dist/assets/coinbase-DCPC2L_R-2ivYfoMv.js +0 -3
- package/site/dist/assets/copy-sK00DOfH.js +0 -1
- package/site/dist/assets/core-CRE213RM.js +0 -211
- package/site/dist/assets/createLucideIcon-D9OK_uxG.js +0 -1
- package/site/dist/assets/custom-V1wex-Di.js +0 -1
- package/site/dist/assets/dijkstra-COg3n3zL.js +0 -1
- package/site/dist/assets/embed.worker-BRIYO7m8.js +0 -1
- package/site/dist/assets/encodePacked-DyXYq3Cc.js +0 -1
- package/site/dist/assets/ethers-zTjbodk5-DSYOi6tU.js +0 -1
- package/site/dist/assets/external-link-Cdp8NBio.js +0 -1
- package/site/dist/assets/fallback-DiFue5Zm.js +0 -1
- package/site/dist/assets/farcaster-DPlSjvF5-DP2DLoHZ.js +0 -1
- package/site/dist/assets/features-B6BTj_BL.js +0 -5
- package/site/dist/assets/fingerprint-pattern-gFJTz5e4.js +0 -1
- package/site/dist/assets/floating-ui.react-D9ndYqYK.js +0 -1
- package/site/dist/assets/floating-ui.react-dom-CNbOgOFt.js +0 -1
- package/site/dist/assets/formatErc20TokenAmount-BuPk9xcy-CkAr4Oc0.js +0 -1
- package/site/dist/assets/getChainName-DjpPdUSc-c2urPd0g.js +0 -1
- package/site/dist/assets/getErc20Balance-jXNpFf0N-mFQ9Iqk-.js +0 -1
- package/site/dist/assets/getErc20TokenInfo-BNTrzLMP-Dx5he_uG.js +0 -1
- package/site/dist/assets/getFormattedUsdFromLamports-De3U9GlO-C446pzMl.js +0 -1
- package/site/dist/assets/getTransactionCount-80UHlwAV.js +0 -1
- package/site/dist/assets/getUsdcMintAddress-BVgm9GRo-FDalV59C.js +0 -1
- package/site/dist/assets/hashTypedData-Beq57Ogb.js +0 -22
- package/site/dist/assets/hooks.module-ClpaQ1Tg.js +0 -1
- package/site/dist/assets/hourglass-CB7z_I9H.js +0 -1
- package/site/dist/assets/http-BocEfKYb.js +0 -19
- package/site/dist/assets/index-0knDOgU9.js +0 -1
- package/site/dist/assets/index-9jNeS_nC.js +0 -1
- package/site/dist/assets/index-B--T-Fmt.js +0 -16
- package/site/dist/assets/index-BDkarAkX.js +0 -2
- package/site/dist/assets/index-BMfMy017.js +0 -679
- package/site/dist/assets/index-BOd8jv8-.js +0 -1
- package/site/dist/assets/index-BdEw5wyl-2VGMzHIs.js +0 -1
- package/site/dist/assets/index-C8ThRelw.js +0 -9
- package/site/dist/assets/index-D4LdLFDC.js +0 -1
- package/site/dist/assets/index-D6T-s6sR.js +0 -1
- package/site/dist/assets/index-D7396TWe.js +0 -1
- package/site/dist/assets/index-DdxtHe81.js +0 -2
- package/site/dist/assets/index-DvMddJcd-D7AEQrzj.js +0 -12
- package/site/dist/assets/index-nibyPLVP.js +0 -1
- package/site/dist/assets/index.browser-B6Bt5URJ.js +0 -1
- package/site/dist/assets/isPaymentRequestAvailable-Bq1cemEn-D7xtzRqA.js +0 -1
- package/site/dist/assets/landmark-CMLKifhk.js +0 -1
- package/site/dist/assets/lock-BkyjNE8h.js +0 -1
- package/site/dist/assets/mail-B6-Tq9Ld.js +0 -1
- package/site/dist/assets/native-CJ5et6AR.js +0 -1
- package/site/dist/assets/nonceManager-zkW7cM66.js +0 -1
- package/site/dist/assets/parseEther-C7aOvuze.js +0 -1
- package/site/dist/assets/parseSignature-BIjcuWdB.js +0 -1
- package/site/dist/assets/preload-helper-PPVm8Dsz.js +0 -1
- package/site/dist/assets/privateKeyToAccount-CRvvpHWf.js +0 -1
- package/site/dist/assets/property-CnFDNXw5.js +0 -3
- package/site/dist/assets/react-auth_false-DedQs79w.js +0 -1
- package/site/dist/assets/reservoir-x-nGuZkT-DFxAFt2v.js +0 -1
- package/site/dist/assets/roles-DV_6FRBZ.js +0 -1
- package/site/dist/assets/safe-url-D7SRPu33-A8zMgOTd.js +0 -1
- package/site/dist/assets/serializeErc6492Signature-CeJeL3h6.js +0 -1
- package/site/dist/assets/serializeTransaction-L-_Ej-jW.js +0 -8
- package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-CF2QteTJ.js +0 -1
- package/site/dist/assets/simulateTransaction-CfuOrae4-BHUMPf6Q.js +0 -1
- package/site/dist/assets/smartphone-DAN5rY0T.js +0 -1
- package/site/dist/assets/stripe.esm-Dv8C3q95.js +0 -2
- package/site/dist/assets/styles-BsotlekN-Cjuu2SDV.js +0 -9
- package/site/dist/assets/telegram-B-JqnkqZ-DTjJLkIF.js +0 -1
- package/site/dist/assets/to-ui-error-DWe-qwS3-Dx3yzcV0.js +0 -4
- package/site/dist/assets/toAccount-Bq6rbpbI.js +0 -1
- package/site/dist/assets/transaction-BNTP-bFm-CrebgH-D.js +0 -1
- package/site/dist/assets/transactionReceipt-BwJl-gjg.js +0 -1
- package/site/dist/assets/transfer-6YztDh-t-DU6hH7CZ.js +0 -1
- package/site/dist/assets/transformers.web-BEKVh7pD.js +0 -40
- package/site/dist/assets/transformers.web-aWa49tv1.js +0 -40
- package/site/dist/assets/triangle-alert-ndoiBs4y.js +0 -1
- package/site/dist/assets/twitch-5IOe4sIQ-BXviIywg.js +0 -1
- package/site/dist/assets/useGetSolPrice-x7gfUIHJ-C7axYJ--.js +0 -1
- package/site/dist/assets/useGetTokenPrice-CaoUkb79-CR4CrguU.js +0 -1
- package/site/dist/assets/useI18n-C-5n_noF-C_t8QqBJ.js +0 -1
- package/site/dist/assets/useWalletBalance-CZnP5f_f-BnSHLVI_.js +0 -1
- package/site/dist/assets/w3m-modal-Bz5KWTQ-.js +0 -1174
- package/site/dist/assets/wallet-DTM31trz.js +0 -2
- package/site/dist/assets/wallet-UESEqPei.js +0 -1
- package/site/dist/assets/wallet-connect-BvJtUsDt-CnvUnFbz.js +0 -1
- package/site/dist/assets/walletconnect-v2-3frQFwbg-CzQk99gS.js +0 -15
- package/site/dist/assets/x-B2_XdOVQ.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as c,r as f}from"./index-9jNeS_nC.js";function i(r,n){for(var o=0;o<n.length;o++){const e=n[o];if(typeof e!="string"&&!Array.isArray(e)){for(const t in e)if(t!=="default"&&!(t in r)){const a=Object.getOwnPropertyDescriptor(e,t);a&&Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var s=f();const p=c(s),g=i({__proto__:null,default:p},[s]);export{g as R,s as r,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as v,u as A,cV as F,cW as w,cX as M,cY as S,cZ as x}from"./index-BMfMy017.js";import{r as u}from"./index-BOd8jv8-.js";import{t as y}from"./analytics-mkkvFRju-DOXuftJB.js";const f="moonpay";function I(t){return parseFloat(t)}function P(t,i=!1){let[g,p]=u.useState(null),{createAnalyticsEvent:s}=v(),{data:a,navigate:c,setModalData:d}=A(),l=a?.funding,r=u.useRef(0);return u.useEffect((()=>{let o=setInterval((async()=>{if(t)try{let[e]=await(async function(h,m){return F(`${m?w:M}/transactions/ext/${h}`,{query:{apiKey:m?S:x}})})(t,i),n=e.status==="waitingAuthorization"&&e.paymentMethod==="credit_debit_card"?"pending":e.status;if(["failed","completed","awaitingAuthorization"].includes(n)&&(s({eventName:y,payload:{status:n,provider:f,paymentMethod:e.paymentMethod,cardPaymentType:e.cardPaymentType,currency:e.currency?.code,baseCurrencyAmount:e.baseCurrencyAmount,quoteCurrencyAmount:e.quoteCurrencyAmount,feeAmount:e.feeAmount,extraFeeAmount:e.extraFeeAmount,networkFeeAmount:e.networkFeeAmount,isSandbox:i}}),clearInterval(o)),n==="failed"||n==="serviceFailure")return d({funding:{...l,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."},solanaFundingData:a?.solanaFundingData}),void c("FundingMethodSelectionScreen");p(n)}catch(e){e.response?.status!==404&&(r.current+=1),r.current>=3&&(s({eventName:y,payload:{status:"serviceFailure",provider:f}}),clearInterval(o),d({funding:{...l,errorMessage:"Something went wrong adding funds from Moonpay. Please try again or use another method to fund your wallet."},solanaFundingData:a?.solanaFundingData}),c("FundingMethodSelectionScreen"))}}),3e3);return()=>clearInterval(o)}),[t,r]),g}export{I as l,P as y};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./wallet-DTM31trz.js","./preload-helper-PPVm8Dsz.js","./serializeTransaction-L-_Ej-jW.js","./transactionReceipt-BwJl-gjg.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as Ce}from"./preload-helper-PPVm8Dsz.js";import{titleOf as J,values as Q,subtitleOf as te,linkOf as zt,briefOf as oo,pick as $n,typeOf as Se,collections as ro,rolesFrom as En,textOf as so}from"./roles-DV_6FRBZ.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();var Sn={};const Qt="onnx-community/embeddinggemma-300m-ONNX",lt=256,ao="task: search result | query: ",io=Sn?.WESTMARCH_EMBED_DTYPE??"q8",co=`embeddinggemma-${lt}`;let lo=null;const uo=()=>lo??=(async()=>{const{AutoModel:e,AutoTokenizer:t}=await Ce(async()=>{const{AutoModel:s,AutoTokenizer:c}=await import("./transformers.web-BEKVh7pD.js");return{AutoModel:s,AutoTokenizer:c}},[],import.meta.url),n=Sn?.WESTMARCH_EMBED_DEVICE,[o,r]=await Promise.all([t.from_pretrained(Qt),e.from_pretrained(Qt,{dtype:io,...n&&{device:n}})]);return async s=>{const{sentence_embedding:c}=await r(await o(s,{padding:!0,truncation:!0})),l=c.dims.at(-1);return s.map((i,u)=>Nn(c.data.slice(u*l,(u+1)*l)))}})();function Nn(e,t=lt){const n=Array.from(e.slice(0,t),Number);let o=0;for(const r of n)o+=r*r;if(o=Math.sqrt(o),o)for(let r=0;r<n.length;r++)n[r]/=o;return n}async function mo(e){const[t]=await(await uo())([ao+e]);return t}const ho=()=>typeof window<"u"&&typeof Worker<"u";let Ee=null,po=0;const Fe=new Map;function fo(){return Ee||(Ee=new Worker(new URL(""+new URL("embed.worker-BRIYO7m8.js",import.meta.url).href,import.meta.url),{type:"module"}),Ee.onmessage=({data:e})=>{const t=Fe.get(e.id);t&&(Fe.delete(e.id),e.error?t.reject(new Error(e.error)):t.resolve(e.vec))},Ee.onerror=e=>{for(const t of Fe.values())t.reject(new Error(`embed worker: ${e?.message??"failed to start"}`));Fe.clear(),Ee=null},Ee)}const wo=(e,t)=>new Promise((n,o)=>{const r=++po;Fe.set(r,{resolve:n,reject:o}),fo().postMessage({id:r,kind:e,text:t})}),go=e=>ho()?wo("query",e):mo(e);function Ne(e){const t=new Uint8Array(e.length);for(let o=0;o<e.length;o++){const r=Math.round(Math.max(-1,Math.min(1,e[o]))*127);t[o]=r<0?r+256:r}let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n)}function se(e){try{const t=atob(e),n=new(globalThis.Float16Array??Float32Array)(t.length);for(let o=0;o<t.length;o++){const r=t.charCodeAt(o);n[o]=(r>127?r-256:r)/127}return n.length?n:null}catch{return null}}function Zt(e){const t=new Uint8Array(Math.ceil(e.length/8));for(let o=0;o<e.length;o++)e[o]>=0&&(t[o>>3]|=128>>(o&7));let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n)}function en(e){try{const t=atob(e.padEnd(Math.ceil(e.length/4)*4,"=")),n=new Float32Array(t.length*8);for(let o=0;o<n.length;o++)n[o]=t.charCodeAt(o>>3)>>7-(o&7)&1?1:-1;return n.length?n:null}catch{return null}}if(typeof process<"u"&&import.meta.url===`file://${process.argv[1]}`&&process.argv[1].endsWith("/embed.js")){const e=Nn(Array.from({length:768},(u,h)=>Math.sin(h)));let t=0;for(const u of e)t+=u*u;if(Math.abs(Math.sqrt(t)-1)>1e-6)throw new Error("matryoshka must L2-normalize");if(e.length!==lt)throw new Error(`matryoshka must truncate to ${lt}`);const n=se(Ne(e));if(n.length!==e.length)throw new Error("pack/unpack changed the dimension");let o=0,r=0;for(let u=0;u<e.length;u++)o+=e[u]*n[u],r+=n[u]*n[u];const s=o/Math.sqrt(r);if(s<.999)throw new Error(`int8 round-trip cosine ${s} — too lossy to rank with`);const c=se(Ne([-1,-.5,0,.5,1]));if(c[0]>-.99||c[1]>-.49||c[1]<-.51)throw new Error(`negative components corrupted: ${[...c]}`);if(se("!!!not base64!!!")!==null)throw new Error("malformed vector must return null, not throw");const l=Zt(e);if(l.length>48)throw new Error(`sign bits must stay link-sized, got ${l.length} chars`);const i=en(l);if(i.length!==e.length)throw new Error("sign round-trip changed the dimension");for(let u=0;u<e.length;u++)if(Math.sign(i[u])!==(e[u]<0?-1:1))throw new Error(`sign flipped at ${u}`);if(Zt(i)!==l)throw new Error("sign packing must be idempotent");if(en("!!!not base64!!!")!==null)throw new Error("malformed bits must return null, not throw");console.log("embed.js self-check ok — matryoshka norm, int8 round-trip, negatives, malformed input, sign bits")}const ee=(e,t,n)=>{let o=0;for(let r=0;r<t.length&&r<e.vector.length;r++)o+=e.vector[r]*t[r];return o/(e.norm*n)},U=e=>{let t=0;for(const n of e)t+=n*n;return Math.sqrt(t)||1},yo=1;function ot(e,t=yo){if(e.length<3)return-1/0;const n=e.reduce((r,s)=>r+s,0)/e.length,o=Math.sqrt(e.reduce((r,s)=>r+(s-n)**2,0)/e.length);return o>1e-6?n+t*o:-1/0}function Ie(e,{limit:t=10,lambda:n=.7,key:o="s"}={}){if(n>=1||e.length<=1)return e.slice(0,t);const r=e.slice(0,Math.max(t*6,30)),s=[];for(;s.length<t&&r.length;){let c=0,l=-1/0;for(let i=0;i<r.length;i++){let u=0;for(const p of s){if(!r[i].row?.vector||!p.row?.vector)continue;const w=ee(r[i].row,p.row.vector,p.row.norm);w>u&&(u=w)}const h=n*r[i][o]-(1-n)*u;h>l&&(l=h,c=i)}s.push(r.splice(c,1)[0])}return s}const bo=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),tn=e=>new RegExp(`\\b${bo(e)}\\b`);function ye(e,t){const n=String(e.text??"").toLowerCase();if(!n)return 0;const o=t.split(/\s+/).filter(Boolean);if(!o.length)return 0;let r=0;for(const c of o)tn(c).test(n)&&r++;if(!r)return 0;const s=n.indexOf(t);return Math.min(1,.5*(r/o.length)+(tn(t).test(n)?.35:0)+(s>=0?.15*(1-s/n.length):0))}function nn(e,t){let n=e[0],o=0;for(const r of e){const s=ye({text:r.text},t);s>o&&(o=s,n=r)}return n}function xn(e=[],t){const n=U(t);return e.map(o=>{const r=o.coverage;if(!r?.vectors?.length)return{...o,affinity:null};let s=-1;for(const c of r.vectors){let l=0,i=0;for(let h=0;h<c.length&&h<t.length;h++)l+=c[h]*t[h],i+=c[h]*c[h];const u=l/((Math.sqrt(i)||1)*n);u>s&&(s=u)}return{...o,affinity:s}}).sort((o,r)=>(r.affinity??-1/0)-(o.affinity??-1/0))}if(typeof process<"u"&&import.meta.url===`file://${process.argv[1]}`&&process.argv[1].endsWith("/rank.js")){if(ye({text:"intoxicated education"},"cat")!==0)throw new Error("substring matched — word boundaries lost");if(ye({text:"a cat sat"},"cat")<=0)throw new Error("whole word must match");const e=ye({text:"cold war submarines"},"cold war"),t=ye({text:"cold nights, the war ended"},"cold war");if(!(e>t))throw new Error(`phrase bonus lost: ${e} vs ${t}`);if(ye({text:"what is c++"},"c++")===void 0)throw new Error("must not throw on regex metachars");if(Math.abs(ee({vector:[1,0,0,0],norm:1},[1,0],1)-1)>1e-9)throw new Error("cosine must truncate to the query");if(ot([.5,.5,.5,.5])!==-1/0)throw new Error("no spread must admit everything, not nothing");if(ot([.4,.4])!==-1/0)throw new Error("too few rows to have a distribution");const o=ot([.4,.41,.42,.9]);if(!(.9>=o&&.42<o))throw new Error(`floor did not separate the outlier: ${o}`);const r=[{text:"opening titles"},{text:"the submarine dives"}];if(nn(r,"submarine").text!=="the submarine dives")throw new Error("wrong passage quoted");if(nn(r,"nothing here").text!=="opening titles")throw new Error("must fall back to the first passage");{const c=(h,p)=>({vector:[h,p],norm:Math.sqrt(h*h+p*p)||1}),l=[{row:{id:"ep1",...c(1,0)},s:.9},{row:{id:"ep2",...c(1,.01)},s:.89},{row:{id:"ep3",...c(1,.02)},s:.88},{row:{id:"other",...c(0,1)},s:.7}],i=Ie(l,{limit:2,lambda:1}).map(h=>h.row.id);if(i.join()!=="ep1,ep2")throw new Error(`lambda 1 must be the old behaviour: ${i}`);const u=Ie(l,{limit:2,lambda:.7}).map(h=>h.row.id);if(u.join()!=="ep1,other")throw new Error(`MMR must not return the same episode twice: ${u}`);if(Ie(l,{limit:4,lambda:.5})[0].row.id!=="ep1")throw new Error("the top hit must survive");if(Ie([{row:{id:"a"},s:1}],{limit:3}).length!==1)throw new Error("vectorless rows must pass through")}const s=xn([{name:"old",coverage:null},{name:"far",coverage:{vectors:[[0,1]]}},{name:"near",coverage:{vectors:[[1,0]]}}],[1,0]);if(s.map(c=>c.name).join(",")!=="near,far,old")throw new Error(`domains misranked: ${s.map(c=>c.name)}`);if(s[2].affinity!==null)throw new Error("an unmeasured domain must be null, not 0");console.log("rank.js self-check ok — word boundaries, matryoshka cosine, z-floor, MMR drops near-duplicates without moving the top hit, passage pick, domain affinity")}let At=null,Pe=null,ve=null;const rt=new Map,st=new Map,_n=new Map;let Mn=e=>[e.name,e.path,e.desc].filter(Boolean).join(" "),Wt=e=>fetch(e),Tt=null,Cn=null;function K({resolveView:e,rowText:t,onManifests:n,fetch:o}={}){e&&(Tt=e),o&&(Wt=o),t&&(Mn=t),n&&(Cn=n)}const Ae=()=>{rt.clear(),st.clear(),_n.clear(),At=null,Pe=null,ve=null};function on(e){Pe=e?On(e):null}const rn=()=>Pe,On=e=>String(e).replace(/\/+$/,"").replace(/\/(stream|cdn)$/,"");function Jt(){return Tt?At??=Promise.resolve().then(()=>Tt()).then(e=>e?On(e):null).catch(e=>{throw At=null,e}):Promise.resolve(null)}function sn(e){const t=(Array.isArray(e)?e:String(e??"").split(",")).map(n=>String(n).trim()).filter(Boolean);ve=t.length?t:null}const vo=e=>!ve||ve.some(t=>e===t||e.split("/").pop()===t||e.startsWith(t)),jn="no quickbeam view configured — pass a view base, or wire one with configure({ resolveView })";async function R(e,t){const n=e??Pe??await Jt();if(!n)throw new Error(jn);let o=st.get(n);o||st.set(n,o=new Set),t&&o.add(t);const r=rt.get(n);if(r)return r;const c=No(n,l=>{for(const i of o)try{i(l)}catch{}}).finally(()=>st.delete(n)).catch(l=>{throw rt.delete(n),l});return rt.set(n,c),c}async function It(e){const t=await Wt(e);if(!t.ok)throw new Error(`shard: HTTP ${t.status} for ${e}`);return An(new Uint8Array(await t.arrayBuffer()))}const An=async e=>e[0]===31&&e[1]===139?await new Response(new Blob([e]).stream().pipeThrough(new DecompressionStream("gzip"))).text():new TextDecoder().decode(e);function ko(e,t){const n=e.fields??{},o=typeof e.v=="string"?se(e.v):Array.isArray(e.embedding)?e.embedding:typeof n.embed?.vec=="string"?se(n.embed.vec):null;let r=0;if(o)for(const s of o)r+=s*s;return{id:e.track_id,owner:e.owner,...n,text:Mn(n,t),vector:o,norm:Math.sqrt(r)||1}}async function $o(e){let t=0;for(const r of e)t+=r.length;const n=new Uint8Array(t);let o=0;for(const r of e)n.set(r,o),o+=r.length;return[...new Uint8Array(await crypto.subtle.digest("SHA-256",n))].map(r=>r.toString(16).padStart(2,"0")).join("")}async function an(e,t,n,o){if(!t)return;if(!o){console.warn(`shard: cannot verify ${e} — the transport decoded it (Content-Encoding), and the manifest digest is over the gzipped bytes`);return}const r=await $o(n);if(r!==t)throw new Error(`shard: ${e} does not match the digest in its manifest (expected ${t.slice(0,12)}…, got ${r.slice(0,12)}…)`)}async function Eo(e,t,n){const o=await Wt(e);if(!o.ok)throw new Error(`shard: HTTP ${o.status} for ${e}`);if(!o.body){const d=new Uint8Array(await o.arrayBuffer());await an(e,n,[d],d[0]===31&&d[1]===139);for(const m of(await An(d)).split(`
|
|
3
|
-
`))t(m);return}const r=o.body.getReader(),s=await r.read(),c=s.value??new Uint8Array,l=n?[]:null,i=new ReadableStream({start(d){c.length&&(l?.push(c),d.enqueue(c)),s.done&&d.close()},async pull(d){const{done:m,value:f}=await r.read();m?d.close():(l?.push(f),d.enqueue(f))},cancel(d){return r.cancel(d)}}),u=c[0]===31&&c[1]===139,h=u?i.pipeThrough(new DecompressionStream("gzip")):i,p=new TextDecoder;let w="";for(const d=h.getReader();;){const{done:m,value:f}=await d.read();w+=m?p.decode():p.decode(f,{stream:!0});const v=w.split(`
|
|
4
|
-
`);w=m?"":v.pop();for(const $ of v)t($);if(m){w&&t(w),await an(e,n,l,u);return}}}const So=250;async function No(e,t){const n=`${e}/cdn`,{domains:o=[]}=JSON.parse(await It(`${n}/catalog`)),r=o.filter(p=>vo(p.name));ve&&r.length!==o.length&&console.info(`shard: pulling ${r.length} of ${o.length} domains (allowlist: ${ve.join(",")})`),ve&&!r.length&&console.warn(`shard: allowlist ${ve.join(",")} matched none of ${o.map(p=>p.name).join(", ")} — nothing will load`),r.length||console.warn(`shard: quickbeam view ${n} has no baked domains yet — nothing to read until the watcher bakes one.`);const s=new Map,c=new Set,l=await Promise.all(r.map(async p=>{const w=`${n}/domains/${encodeURIComponent(p.name)}`,d=JSON.parse(await It(`${w}/manifest`));for(const m of d.tombstones??[])c.add(m);return{at:w,manifest:d,shards:d.shards??[]}})),i=l.map(p=>p.manifest);_n.set(e,i);try{Cn?.(i,e)}catch(p){console.warn("shard: onManifests threw, continuing with the default rowText —",p)}let u=Date.now();const h=p=>{!t||!p&&Date.now()-u<So||(t([...s.values()]),u=Date.now())};return await Promise.all(l.map(async({at:p,shards:w})=>{for(const d of w)await Eo(`${p}/shards/${d.file}`,m=>{if(!m.trim())return;const f=ko(JSON.parse(m),e);c.has(f.id)||s.set(f.id,f),h()},d.sha256),h(!0)})),[...s.values()]}function xo(e,t){let n=null,o=!1;return(async()=>{const r=Pe??await Jt();if(!r||o)return;n=new EventSource(`${r}/stream`);const s=()=>{Ae(),e()};n.addEventListener("added",s),n.addEventListener("change",s)})().catch(()=>{}),()=>{o=!0,n?.close()}}async function _o(e,{url:t}={}){const n=t??Pe??await Jt();if(!n)throw new Error(jn);const{domains:o=[]}=JSON.parse(await It(`${n}/cdn/catalog`));return xn(o,e)}if(typeof process<"u"&&import.meta.url===`file://${process.argv[1]}`&&process.argv[1].endsWith("/shard.js")){const{gzipSync:e}=await Ce(async()=>{const{gzipSync:d}=await import("./__vite-browser-external-BIHI7g3E.js");return{gzipSync:d}},[],import.meta.url),t=console.warn,n=console.info;console.warn=console.info=()=>{};const o=(d,m,f={},v)=>({track_id:`${d}:${m}`,owner:d,...v?{embedding:v}:{},fields:{entityType:"file",name:m.split("/").pop(),path:m,...f}}),r=d=>d.map(m=>JSON.stringify(m)).join(`
|
|
5
|
-
`),s="https://registry.test/q/qb_test",c=d=>{const m=Buffer.from(d),f=Math.max(1,Math.floor(m.length/2));return{ok:!0,headers:new Headers,arrayBuffer:async()=>m,body:new ReadableStream({start(v){v.enqueue(new Uint8Array(m.subarray(0,f))),v.enqueue(new Uint8Array(m.subarray(f))),v.close()}})}},l=async d=>[...new Uint8Array(await crypto.subtle.digest("SHA-256",d))].map(m=>m.toString(16).padStart(2,"0")).join(""),i=async(d,{tombstones:m={},gzipped:f=!0,keep:v=!1,coverage:$={},digest:k=!1,corrupt:O=!1}={})=>{const E=new Map;for(const[_,g]of Object.entries(d)){const b=g.map((M,j)=>`shard-000${j}-${_}.ndjson.gz`),y=new Map(b.map((M,j)=>[M,r(g[j])])),x=k?await Promise.all(b.map(async M=>l(e(Buffer.from(O?y.get(M)+`
|
|
6
|
-
`:y.get(M)))))):b.map(()=>{});E.set(_,{manifest:JSON.stringify({name:_,shards:b.map((M,j)=>({file:M,...x[j]?{sha256:x[j]}:{}})),tombstones:m[_]??[]}),bodies:y})}globalThis.fetch=async _=>{const{pathname:g}=new URL(String(_),"https://app.test");if(g.includes("/stream/"))return{ok:!1,status:404};if(g.endsWith("/cdn/catalog"))return c(JSON.stringify({domains:[...E.keys()].map(y=>({name:y,...$[y]?{coverage:$[y]}:{}}))}));let b=g.match(/\/cdn\/domains\/([^/]+)\/manifest$/);if(b)return E.has(b[1])?c(E.get(b[1]).manifest):{ok:!1,status:404};if(b=g.match(/\/cdn\/domains\/([^/]+)\/shards\/([^/]+)$/),b){const y=E.get(b[1])?.bodies.get(b[2]);return y===void 0?{ok:!1,status:404}:c(f?e(Buffer.from(y)):Buffer.from(y))}return{ok:!1,status:404}},v||Ae(),K({resolveView:()=>`${s}/stream`})},u=async(d,m={})=>i({d0:d},{...m,tombstones:{d0:m.tombstones??[]}}),h=d=>d.map(m=>m.path).sort().join(",");if(await u([[o("0xa","a.md")]]),h(await R())!=="a.md")throw new Error("resolveView never reached the loader");if(await u([[o("0xa","plain.md")]],{gzipped:!1}),h(await R())!=="plain.md")throw new Error("an already-decoded body must still parse");if(await u([[o("0xa","signed.md")]],{digest:!0}),h(await R())!=="signed.md")throw new Error("a shard matching its digest must load");await u([[o("0xa","tampered.md")]],{digest:!0,corrupt:!0});let p=null;try{await R()}catch(d){p=d}if(!p)throw new Error("a shard that does not match its digest must fail the load");if(!/does not match the digest/.test(p.message))throw new Error(`wrong error: ${p.message}`);p=null;try{await R()}catch(d){p=d}if(!p)throw new Error("a failed verification must not leave the rows in the cache");let w="";if(console.warn=d=>{w+=d},await u([[o("0xa","unverifiable.md")]],{digest:!0,gzipped:!1}),h(await R())!=="unverifiable.md")throw new Error("an unverifiable body must still load");if(!/cannot verify/.test(w))throw new Error("an unverifiable shard must say so, not pass silently");if(console.warn=()=>{},await i({aaa:[[o("0xa","a.md",{desc:"alpha"}),o("0xa","gone.md",{desc:"retracted"})]],bbb:[[o("0xb","b.md",{desc:"beta"})]]},{tombstones:{aaa:["0xa:gone.md"]}}),h(await R())!=="a.md,b.md")throw new Error("domains must merge and tombstones retract");for(const d of["bbb",["bbb"],"bb"])if(await i({aaa:[[o("0xa","a.md")]],bbb:[[o("0xb","b.md")]]}),sn(d),h(await R())!=="b.md")throw new Error(`allowlist ${JSON.stringify(d)} did not narrow the load`);if(await i({aaa:[[o("0xa","a.md")]]}),sn(null),h(await R())!=="a.md")throw new Error("a null allowlist must pull everything");await u([[o("0xa","a.md"),o("0xa","gone.md")],[o("0xa","b.md")]],{tombstones:["0xa:gone.md"]});{const d=[],m=await R(void 0,f=>d.push(f.length));if(d.length!==2||d[0]!==1||d[1]!==2)throw new Error(`must emit per shard, got ${d}`);if(m.length!==2)throw new Error("the final rows must still be whole");if(d.some(f=>f>2))throw new Error("a tombstoned row must never surface in a partial emit")}await u([[o("0xa","a.md")],[o("0xa","b.md")]]);{const d=[],m=[],f=R(void 0,$=>d.push($.length)),v=R(void 0,$=>m.push($.length));if(await Promise.all([f,v]),!d.length)throw new Error("the starting caller must still receive partials");if(!m.length)throw new Error("a caller that joins an in-flight load must receive partials too")}if(Ae(),K({resolveView:()=>`${s}/stream`}),globalThis.fetch=async()=>({ok:!1,status:500}),await R().then(()=>{throw new Error("a 500 must reject")},()=>{}),await u([[o("0xa","a.md")]],{keep:!0}),h(await R())!=="a.md")throw new Error("a failed load poisoned the cache — the next read must retry");{const d=[];await i({d0:[[o("0xa","a.md",{blurb:"declared prose"})]]}),K({onManifests:f=>d.push(`manifests:${f[0]?.name}`),rowText:f=>(d.push("rowText"),f.blurb??"")});const m=await R();if(d[0]!=="manifests:d0")throw new Error(`onManifests must fire first, got ${d}`);if(!d.includes("rowText"))throw new Error("rowText never ran");if(m[0].text!=="declared prose")throw new Error("the manifest-derived rowText did not reach toRow");if(Ae(),K({resolveView:()=>`${s}/stream`,onManifests:()=>{throw new Error("boom")}}),(await R()).length!==1)throw new Error("a throwing onManifests must not fail the load");K({onManifests:()=>{}})}if(await u([[o("0xa","ep1.md",{cues:[{text:"the submarine dives"}]})]]),(await R())[0].text.includes("submarine"))throw new Error("the default rowText must not know about cues");if(K({rowText:d=>d.cues?.length?d.cues.map(m=>m.text).join(" "):[d.name,d.path,d.desc].filter(Boolean).join(" ")}),Ae(),K({resolveView:()=>`${s}/stream`}),!(await R())[0].text.includes("submarine"))throw new Error("a configured rowText must reach toRow");{const d=new Set;if(K({rowText:(m,f)=>(d.add(f),m.name??""),onManifests:(m,f)=>{d.add(`m:${f}`)}}),Ae(),K({resolveView:()=>`${s}/stream`}),await R(),!d.has(s))throw new Error(`rowText must receive its trimmed view base, saw ${[...d]}`);if(!d.has(`m:${s}`))throw new Error("onManifests must receive its view");K({rowText:m=>[m.name,m.path,m.desc].filter(Boolean).join(" "),onManifests:()=>{}})}await u([[o("0xa","v.md",{},[3,4]),o("0xa","packed.md",{embed:{vec:"fwA="}}),o("0xa","none.md")]]);{const d=new Map((await R()).map(m=>[m.path,m]));if(Math.abs(d.get("v.md").norm-5)>1e-9)throw new Error("norm must be precomputed from the plain float array");if(!d.get("packed.md").vector)throw new Error("the base64 int8 form a publisher commits must unpack");if(d.get("none.md").vector!==null)throw new Error("a row with no vector must be null, and rank lexically");if(d.get("none.md").norm!==1)throw new Error("a zero norm would divide search by zero")}{await i({d0:[[{track_id:"p1",owner:"0xa",v:"AH+B",fields:{entityType:"file",name:"packed.md",path:"packed.md"}},{track_id:"p2",owner:"0xa",embedding:[0,1,-1],fields:{entityType:"file",name:"old.md",path:"old.md"}}]]});const d=new Map((await R()).map(v=>[v.path,v])),m=d.get("packed.md").vector,f=d.get("old.md").vector;if(!m)throw new Error("the bake's `v` key must unpack");for(let v=0;v<3;v++)if(Math.abs(m[v]-f[v])>1/127)throw new Error(`packed and float forms disagree at ${v}: ${m[v]} vs ${f[v]}`);if(Math.abs(d.get("packed.md").norm-d.get("old.md").norm)>.02)throw new Error("norm must match across wire forms")}await i({near:[[o("0xa","a.md")]],far:[[o("0xb","b.md")]],old:[[o("0xc","c.md")]]},{coverage:{near:{vectors:[[1,0]]},far:{vectors:[[0,1]]}}});{const d=await _o([1,0]);if(d.map(m=>m.name).join(",")!=="near,far,old")throw new Error(`suggestDomains misranked: ${d.map(m=>m.name)}`)}await u([[o("0xa","before.md")]]);{const d=new Map;let m="",f=!1;globalThis.EventSource=class{constructor(k){m=k}addEventListener(k,O){d.set(k,O)}close(){f=!0}};let v=0;const $=xo(()=>{v++});if(await new Promise(k=>setTimeout(k,0)),m!==`${s}/stream`)throw new Error(`watchShard must open the view's SSE stream, got ${m}`);if(d.has("snapshot"))throw new Error("snapshot is the connect-time census, not a change");if(h(await R())!=="before.md")throw new Error("watchShard fixture never loaded");if(await u([[o("0xa","after.md")]],{keep:!0}),d.get("change")(),v!==1)throw new Error("a `change` event must reach the caller");if(h(await R())!=="after.md")throw new Error("a `change` must drop the cache so the next read re-pulls");if($(),!f)throw new Error("the unsubscribe must close the stream")}if(await i({d0:[[o("0xa","home.md")]],other:[[o("0xb","guest.md")]]}),await R(),on(`${s}/cdn`),rn()!==s)throw new Error("setView must trim to the base every route hangs off");if(on(null),rn()!==null)throw new Error("setView(null) must go back to the app default");console.warn=t,console.info=n,console.log("shard.js self-check ok — resolveView, gzip sniff, shard digests, domain merge + tombstones + allowlist, streaming, late subscriber, cache poisoning, rowText, vectors, suggestDomains, watchShard")}const Tn=new Set(["text","vector","norm","id","owner","embed"]),ke=(e,t,n=[])=>{const o=oo(e,t,n),r=zt(e,t);return r?{...o,url:r}:o};function In(e){const t=new Map;let n=0,o=0;for(const r of e){r.vector&&(n++,o||=r.vector.length);for(const s of Object.keys(r))Tn.has(s)||r[s]==null||r[s]===""||t.set(s,(t.get(s)??0)+1)}return{rows:e.length,withVectors:n,vectorDim:o,owners:[...new Set(e.map(r=>r.owner).filter(Boolean))],fields:[...t].sort((r,s)=>s[1]-r[1]).map(([r,s])=>({name:r,on:s,pct:Math.round(100*s/(e.length||1))}))}}const Mo=.15,cn=new WeakMap,ln=(e,t)=>{let n=cn.get(e);return n===void 0&&(n=[J(e,t),te(e,t)??"",...(t.tags??[]).flatMap(o=>Q(e[o]??"")),e.text??""].join(" "),cn.set(e,n)),n};function X(e,t,n,{qv:o=null,limit:r=10,fields:s,where:c,lexBoost:l=Mo}={}){const i=t.trim().toLowerCase();if(!i)return[];const u=o?U(o):1;c&&(e=e.filter(d=>bt(d,c)));const h=e.map(d=>o&&d.vector?{r:d,score:ee(d,o,u)+(l?l*ye({text:ln(d,n)},i):0),mode:"semantic"}:{r:d,score:ye({text:ln(d,n)},i),mode:"lexical"}),p=h.filter(d=>d.mode==="semantic").map(d=>d.score),w=Math.min(ot(p),p.length?Math.max(...p):1/0);return h.filter(d=>d.mode==="semantic"?d.score>=w:d.score>0).sort((d,m)=>m.score-d.score).slice(0,r).map(({r:d,score:m,mode:f})=>({...ke(d,n,s),score:Number(m.toFixed(4)),mode:f}))}const bt=(e,t)=>!t||Object.entries(t).every(([n,o])=>Q(e[n]??"").some(r=>r.toLowerCase()===String(o).toLowerCase()));function Te(e,t,{limit:n=20,where:o}={}){const r=new Map;let s=0;for(const l of e){if(!bt(l,o))continue;const i=l[t];if(i==null||i===""){s++;continue}for(const u of Q(i))r.set(u,(r.get(u)??0)+1)}const c=[...r].sort((l,i)=>i[1]-l[1]);return{field:t,distinct:r.size,missing:s,top:c.slice(0,n).map(([l,i])=>({value:l,count:i}))}}function le(e,t,{type:n,where:o,sort:r,desc:s=!0,limit:c=20,offset:l=0,fields:i}={}){let u=e.filter(p=>(!n||Se(p)?.toLowerCase()===String(n).toLowerCase())&&bt(p,o));const h=u.length;if(r){const p=w=>w==null||w===""?null:Number(w);u=[...u].sort((w,d)=>{const[m,f]=[w[r],d[r]];if((m==null||m==="")!=(f==null||f===""))return m==null||m===""?1:-1;const[v,$]=[p(m),p(f)],k=Number.isFinite(v)&&Number.isFinite($)?v-$:String(m??"").localeCompare(String(f??""));return s?-k:k})}return{total:h,offset:l,returned:Math.min(c,Math.max(0,h-l)),collections:n?void 0:ro(t,e).map(p=>({type:p.type,plural:p.plural,count:p.count})),rows:u.slice(l,l+c).map(p=>ke(p,t,i))}}function at(e,t,n,{limit:o=10,fields:r}={}){const s=e.find(l=>l.id===t);if(!s?.vector)return{seed:s?ke(s,n,r):null,near:[]};const c=s.norm;return{seed:ke(s,n,r),near:e.filter(l=>l.id!==t&&l.vector).map(l=>({r:l,score:ee(l,s.vector,c)})).sort((l,i)=>i.score-l.score).slice(0,o).map(({r:l,score:i})=>({...ke(l,n,r),score:Number(i.toFixed(4))}))}}function De(e,t,{id:n,where:o,min:r=2,limit:s=20,offset:c=0,fields:l=[]}={}){const i=t.thread;if(!i)return{total:0,offset:c,threads:[],error:"this corpus declares no thread relation"};const u=d=>String($n(d,t.temporal)??"").slice(0,10),h=new Map;for(const d of e){const m=d[i]==null?"":String(d[i]);if(!m||n!=null&&m!==String(n)||!bt(d,o))continue;const f=`${u(d)}|${te(d,t)??""}`,v=h.get(m)??h.set(m,new Map).get(m),$=v.get(f);(!$||String(d.text??"").length>String($.text??"").length)&&v.set(f,d)}const p=new Map;for(const d of e)if(d[i]==null)for(const m of Object.values(d))typeof m=="string"&&h.has(m)&&!p.has(m)&&p.set(m,d);const w=[...h].map(([d,m])=>{const f=[...m.values()].sort((k,O)=>u(k).localeCompare(u(O))),v=p.get(d),$=f.at(-1);return{id:d,title:J(v??$,t),url:zt(v??$,t),first:u(f[0]),date:u($),head:v?ke(v,t,l):null,steps:f.map(k=>({...ke(k,t,l),date:u(k)}))}}).filter(d=>d.steps.length>=r||n!=null).sort((d,m)=>m.date.localeCompare(d.date)||d.id.localeCompare(m.id));return{total:w.length,offset:c,threads:w.slice(c,c+s)}}function xe(e,t,n){if(!t)return null;const o=e.find(l=>l.id===t)??(n?.identity?e.find(l=>String(l[n.identity])===String(t)):null)??e.find(l=>l.path===t||l.name===t||J(l,n)===t);if(!o)return null;const{vector:r,norm:s,...c}=o;return{...c,hasVector:!!r,vectorDim:r?.length??0}}if(typeof process<"u"&&import.meta.url===`file://${process.argv[1]}`&&process.argv[1].endsWith("/tools.js")){const{rolesFrom:e}=await Ce(async()=>{const{rolesFrom:k}=await import("./roles-DV_6FRBZ.js");return{rolesFrom:k}},[],import.meta.url),t=(k,O,E)=>({id:k,owner:"0xa",...O,text:[O.name,O.desc].filter(Boolean).join(" "),vector:E??null,norm:E?U(E):1}),n=[t("1",{name:"Duet S01E02",series:"Duet",year:"1987",subject:"['Sitcom', 'Comedy']",desc:"a forgotten fox sitcom"},[1,0,0]),t("2",{name:"Duet S01E03",series:"Duet",year:"1987",subject:"['Sitcom']",desc:"more of the same sitcom"},[.99,.1,0]),t("3",{name:"Atomic Cafe",series:"",year:"1982",subject:"['Documentary', 'Cold War']",desc:"nuclear test footage"},[0,1,0]),t("4",{name:"untitled reel",year:"1954"})],o=e([],n);if(o.title[0]!=="name")throw new Error(`fixture roles wrong: ${o.title}`);const r=In(n);if(r.rows!==4||r.withVectors!==3||r.vectorDim!==3)throw new Error("describe lost the corpus shape");const s=r.fields.find(k=>k.name==="series");if(s.on!==2||s.pct!==50)throw new Error(`empty strings must not count as coverage: ${JSON.stringify(s)}`);if(r.fields.some(k=>Tn.has(k.name)))throw new Error("plumbing fields must not be offered as content");if(r.owners.join()!=="0xa")throw new Error("owners lost");let c=X(n,"sitcom",o,{qv:[1,0,0],limit:10});if(c[0].id!=="1"||c[0].title!=="Duet S01E02")throw new Error(`semantic: wrong top hit ${c[0]?.id}`);if(c[0].mode!=="semantic")throw new Error("mode must be reported, not inferred");if(c.some(k=>k.id==="3"))throw new Error(`the z-floor must drop the unrelated row: ${JSON.stringify(c)}`);const l=[n[0],n[1],n[2]];if(!X(l,"sitcom",o,{qv:[1,0,0]}).length)throw new Error("an exact match must never be filtered out by its own floor");if(c=X(n,"nuclear",o,{limit:10}),c[0]?.id!=="3"||c[0].mode!=="lexical")throw new Error("must degrade to lexical, and say so");if(X(n," ",o).length)throw new Error("an empty query must return nothing, not everything");if(X(n,"untitled reel",o)[0]?.id!=="4")throw new Error("a vectorless row must still be searchable lexically");const i=Te(n,"subject");if(i.top[0].value!=="Sitcom"||i.top[0].count!==2)throw new Error(`list-ish values must split: ${JSON.stringify(i.top)}`);if(i.missing!==1)throw new Error("a field absent from a row must be counted missing, not skipped silently");if(Te(n,"year").distinct!==3)throw new Error("plain values must not be split");if(Q("Sitcom,Comedy,Fox").length!==3)throw new Error("a machine-joined list must split");if(Q("Wilson, Michael G.").length!==1)throw new Error("a comma followed by a space is prose, not a list");if(Q("1987").length!==1)throw new Error("a plain value must stay whole");const u=Te(n,"year",{where:{subject:"Sitcom"}});if(u.distinct!==1||u.top[0].value!=="1987")throw new Error(`where must narrow the facet: ${JSON.stringify(u.top)}`);if(Te(n,"year",{where:{subject:"sitcom"}}).distinct!==1)throw new Error("where must match case-insensitively");if(Te(n,"year",{where:{subject:"Sit"}}).distinct!==0)throw new Error("where must match whole values, not substrings");const h=le(n,o,{limit:2});if(h.total!==4||h.rows.length!==2)throw new Error(`browse must page: ${JSON.stringify(h)}`);if(h.collections.length!==0)throw new Error("a typeless corpus must report zero collections, not invent one");if(le(n,o,{offset:3}).rows.length!==1)throw new Error("offset must page to the tail");if(le(n,o,{offset:99}).rows.length!==0)throw new Error("an offset past the end must be empty, not wrapped");const p=n.map(k=>({...k,entityType:k.id==="3"?"Film":"Episode"})),w=le(p,o,{limit:1}).collections;if(w.map(k=>`${k.type}:${k.count}`).join()!=="Episode:3,Film:1")throw new Error(`collections must count and sort: ${JSON.stringify(w)}`);if(le(p,o,{type:"film"}).total!==1)throw new Error("type must match case-insensitively");if(le(p,o,{type:"film"}).collections!==void 0)throw new Error("a typed browse is already inside a collection");if(le(p,o,{type:"Episode",where:{year:"1987"}}).total!==2)throw new Error("browse must honour where");const d=[{id:"a",rating:"9"},{id:"b",rating:"10"},{id:"c"}],m=le(d,o,{sort:"rating"}).rows.map(k=>k.id);if(m.join()!=="b,a,c")throw new Error(`numeric sort + missing-last wrong: ${m}`);if(le(d,o,{sort:"rating",desc:!1}).rows[0].id!=="a")throw new Error("ascending sort ignored");const f=at(n,"1",o);if(f.near[0].id!=="2")throw new Error("nearest neighbour missed the near-identical row");if(f.near.some(k=>k.id==="1"))throw new Error("a row must not be its own neighbour");if(f.near.some(k=>k.id==="4"))throw new Error("a vectorless row cannot be a neighbour");if(at(n,"4",o).near.length)throw new Error("a vectorless seed must return nothing, not throw");if(at(n,"nope",o).seed!==null)throw new Error("an unknown seed must be null, not undefined");const v=xe(n,"3",o);if(v.name!=="Atomic Cafe"||!v.hasVector||v.vectorDim!==3)throw new Error("getRow lost the record");if("vector"in v||"norm"in v)throw new Error("the raw vector must never reach a tool result");if(xe(n,"nope",o)!==null)throw new Error("an unknown id must be null");const $=ke(t("x",{name:"n",categories:"d".repeat(500)}),e([{role_map:{title:"name",tags:["categories"]}}]));if($.categories.length>200)throw new Error("brief must truncate a long field");if($.title!=="n")throw new Error("brief must title from the declared field");{const k=[{id:"a",name:"cold war thriller",year:1965,vector:[1,0],norm:1},{id:"b",name:"cold war comedy",year:1999,vector:[1,0],norm:1},{id:"c",name:"beach party",year:1964,vector:[0,1],norm:1},{id:"d",name:"surf movie",year:1966,vector:[0,1],norm:1}],O={title:["name"],subtitle:[],tags:[],measures:[]};if(!X(k,"cold war",O,{qv:[1,0],limit:10}).some(b=>b.title==="cold war comedy"))throw new Error("unfiltered search must see every era");const _=X(k,"cold war",O,{qv:[1,0],limit:10,where:{year:1965}});if(_.length!==1||_[0].title!=="cold war thriller")throw new Error(`where must narrow a semantic search: ${JSON.stringify(_)}`);if(X(k,"cold war",O,{qv:[0,1],limit:10,where:{year:1964}})[0]?.title!=="beach party")throw new Error("the floor must be measured over the filtered rows")}{const k=[{id:"a",name:"cold war thriller",vector:[1,0],norm:1}],O={title:["name"],subtitle:[],tags:[],measures:[]},E=X(k,"cold war",O,{qv:[1,0],limit:5});if(!Array.isArray(E))throw new Error("search must return a flat array, not {hits}");if(E[0].score===void 0||E[0].mode===void 0)throw new Error("search rows carry score+mode");for(const _ of[void 0,null,""])if(xe(k,_,O)!==null)throw new Error(`getRow(${JSON.stringify(_)}) must be null`)}{const k={title:["heading","title"],subtitle:["meeting"],temporal:["date"],tags:[],measures:[],thread:"part_of",externalUrl:{}},O=[{id:"1",heading:"Rezone Oak St",meeting:"Plan Commission",date:"2026-01-05",part_of:"p:7",text:"on the agenda"},{id:"2",heading:"Rezone Oak St",meeting:"Plan Commission",date:"2026-01-05",part_of:"p:7",text:"recommended for approval 5-0"},{id:"3",heading:"Rezone Oak St",meeting:"Village Board",date:"2026-01-20",part_of:"p:7",text:"adopted"},{id:"4",heading:"Pool bid",meeting:"Village Board",date:"2026-03-01",part_of:"p:9"},{id:"5",heading:"Pool bid",meeting:"Finance",date:"2026-02-20",part_of:"p:9",place:"A"},{id:"6",heading:"Once",meeting:"Village Board",date:"2026-04-01",part_of:"p:11"},{id:"m7",title:"Rezoning of Oak Street",matter_id:"p:7"}],E=De(O,k);if(E.threads.map(g=>g.id).join()!=="p:9,p:7")throw new Error(`latest-moving first, one step is not a thread: ${E.threads.map(g=>g.id)}`);const _=E.threads[1];if(_.steps.map(g=>g.id).join()!=="2,3"||_.title!=="Rezoning of Oak Street"||_.head?.id!=="m7")throw new Error(`an agenda and its minutes are one step, the head titles the thread: ${JSON.stringify(_)}`);if(De(O,k,{id:"p:11"}).threads[0]?.steps.length!==1)throw new Error("asked for by id, any thread comes back");if(De(O,k,{where:{place:"A"},min:1}).total!==1)throw new Error("where narrows the steps");if(!De(O,{...k,thread:null}).error)throw new Error("no thread role must say so")}console.log("tools.js self-check ok — coverage not schema, semantic/lexical modes + z-floor, list-ish facets + where, neighbours, whole-row fetch, previews truncate, threads")}const dn=e=>new Float32Array(e),dt=e=>new Float32Array(e),Ve=(e,t)=>{const n=new Float32Array(e.length);for(let o=0;o<e.length;o++)n[o]=e[o]+t[o];return n},_e=(e,t)=>{const n=new Float32Array(e.length);for(let o=0;o<e.length;o++)n[o]=e[o]-t[o];return n},me=(e,t)=>{const n=new Float32Array(e.length);for(let o=0;o<e.length;o++)n[o]=e[o]*t;return n},Dn=(e,t)=>{let n=0;for(let o=0;o<e.length;o++)n+=e[o]*t[o];return n},vt=e=>Math.sqrt(Dn(e,e)),Co=(e,t)=>vt(_e(e,t)),Oo=e=>{if(e.length===0)throw new Error("centroid: empty input");const t=e[0].length,n=new Float32Array(t);for(const o of e)for(let r=0;r<t;r++)n[r]+=o[r];for(let o=0;o<t;o++)n[o]/=e.length;return n},jo=(e,t)=>{const n=vt(t);if(n<1e-10)return dt(e);const o=me(t,1/n),r=Dn(e,o);return r<=0?dt(e):_e(e,me(o,r))},Ao=768,q={d:Ao,alpha:.1,beta:.3,lambda_max:.4,sigma_base:.5,sigma_max:1,rho:.8,epsilon:1e-6,prior_k:1,pass_window:20,gamma_base:.15,alpha_facet:.3,facet_decay:.05,pass_facet_pen:.2,beta_group:.7,rho_scalar:.8,delta_pass:1,theta_B:3,fatigue_threshold:.3},To=(e,t)=>{const n=1-t;return Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Object.fromEntries(Object.entries(r).map(([s,c])=>[s,c*n]))]))},Rn=(e,t,n)=>{if(!t)return e;const o={...e};for(const[r,s]of Object.entries(t)){if(!s.length)continue;const c={...o[r]??{}};for(const l of s)c[l]=Math.max((c[l]??0)+n,0);o[r]=c}return o},Io=e=>typeof e=="number"&&e>0&&Number.isFinite(e),Do=e=>{if(e.length===0)return{passCentroid:null,passRadius:0};const t=Oo(e);let n=0;for(const o of e){const r=Co(o,t);r>n&&(n=r)}return{passCentroid:t,passRadius:n}},Ro=(e={})=>{const{sigma_base:t=q.sigma_base,d:n=q.d}=e;return{mu:dn(n),v:dn(n),sigma:t,passes:[],passCentroid:null,passRadius:0,t:0,entropy:.2,facets:{},groups:{},scalarPref:null,neg:{},blacklist:new Set,muted:new Set}},Lo=(e,t={})=>{const{lambda_max:n=q.lambda_max}=t,o=vt(e.v);if(o<1e-10)return dt(e.mu);const r=me(e.v,1/o),s=n*Math.tanh(o);return Ve(e.mu,me(r,s))},Bo=(e,t,n=null,o={})=>{const{alpha:r=q.alpha,beta:s=q.beta,sigma_base:c=q.sigma_base,rho:l=q.rho,prior_k:i=q.prior_k,alpha_facet:u=q.alpha_facet,facet_decay:h=q.facet_decay,beta_group:p=q.beta_group,rho_scalar:w=q.rho_scalar}=o,d=t.embedding,m=e.mu,f=e.t+1,v=r/(1-Math.pow(1-r,f));let $=Ve(m,me(_e(d,m),v));if(n!==null){const b=i/f;$=Ve($,me(_e(n,$),Math.min(b,1)))}const k=e.t===0?e.v:Ve(me(e.v,s),me(_e(d,m),1-s)),O=l*e.sigma+(1-l)*c,E=Rn(To(e.facets,h),t.facets,u),_=t.group===void 0?e.groups:{...e.groups,[t.group]:p*(e.groups[t.group]??0)+(1-p)},g=Io(t.scalar)?e.scalarPref===null?Math.log(t.scalar):w*e.scalarPref+(1-w)*Math.log(t.scalar):e.scalarPref;return{...e,mu:$,v:k,sigma:O,t:f,entropy:Math.max(e.entropy*.95,.05),facets:E,groups:_,scalarPref:g}},qo=(e,t,n={})=>{const{sigma_max:o=q.sigma_max,gamma_base:r=q.gamma_base,pass_window:s=q.pass_window,pass_facet_pen:c=q.pass_facet_pen,beta_group:l=q.beta_group,delta_pass:i=q.delta_pass,theta_B:u=q.theta_B,epsilon:h=q.epsilon,fatigue_threshold:p=q.fatigue_threshold}=n,w=t.embedding,d=e.mu,m=e.entropy,f=t.group;let v=e.neg,$=e.blacklist,k=e.groups,O=e.muted;if(f!==void 0){const B=e.groups[f]??0;B>p?(O=new Set(e.muted),O.add(f)):(v={...e.neg,[f]:(e.neg[f]??0)+i},$=new Set(e.blacklist),v[f]>u&&$.add(f),k={...e.groups,[f]:l*B+(1-l)*-1})}const E=Rn(e.facets,t.facets,-c),_=jo(e.v,_e(w,d)),g=_e(d,w),b=vt(g),y=r*(1+m),x=e.t>0&&b>=h?Ve(d,me(g,y/b)):d,M=[...e.passes,dt(w)];M.length>s&&M.shift();const{passCentroid:j,passRadius:L}=Do(M);return{...e,mu:x,v:_,sigma:Math.min(e.sigma*1.1,o),passes:M,passCentroid:j,passRadius:L,entropy:Math.min(m*1.1+.02,1),facets:E,groups:k,neg:v,blacklist:$,muted:O}},Qe=e=>{if(!e)return null;const t=U(e),n=new Float32Array(e.length);for(let o=0;o<e.length;o++)n[o]=e[o]/t;return n},Po=8,un=4;function P(e=[],t=[],{drift:n=.35}={}){const o=e.filter(i=>i?.vector?.length);if(!o.length)return null;const r={d:o[0].vector.length,alpha:1-2**(-1/Po)},s=i=>({embedding:Float32Array.from(i.vector)});let c=Ro(r);for(const i of o)c=Bo(c,s(i),null,r);o.length<un&&(c={...c,v:new Float32Array(r.d)});const l=t.filter(i=>i?.vector?.length);for(const i of l)c=qo(c,s(i),r);return{mu:Qe(c.mu),v:U(c.v)>1e-6&&o.length>=un?Qe(c.v):null,q:Qe(Lo(c,{lambda_max:n})),no:Qe(c.passCentroid),drift:n,from:o.map(i=>i.title??i.id).slice(-12),rejected:l.map(i=>i.title??i.id).slice(-12),n:o.length}}const Fo=.6,Ht=(e,t)=>{if(!e?.vector||!t)return null;const n=Vo(t),o=e.norm?e:{vector:e.vector,norm:U(e.vector)},r=ee(o,t.q,n.q);return t.no?r-Fo*Math.max(0,ee(o,t.no,n.no)):r},mn=new WeakMap;function Vo(e){let t=mn.get(e);return(!t||t.qv!==e.q||t.nov!==e.no)&&mn.set(e,t={qv:e.q,nov:e.no,q:U(e.q),no:e.no?U(e.no):1}),t}function re(e,t,{limit:n=10,exclude:o=new Set,lambda:r=.7}={}){if(!t)return[];const s=e.filter(c=>c.vector&&!o.has(c.id)).map(c=>({row:c,s:Ht(c,t)})).sort((c,l)=>l.s-c.s);return Ie(s,{limit:n,lambda:r}).map(({row:c,s:l})=>({row:c,score:Number(l.toFixed(4))}))}const Je={lookahead:[.35,"how far past what you like, toward where your recent likes are heading (the kernel's drift)"],variety:[.3,"how different the picks are from each other"],surprise:[0,"how much chance reorders the list; 0 is strict best-first"],reach:[0,"how far out from the closest matches to start: 0 is nearest, 1 skips the nearest ~400"]},Uo=(e,t)=>Math.min(1,Math.max(0,Number.isFinite(Number(e))?Number(e):t));function be(e,t=[],n=[],{limit:o=20,seed:r=1,exclude:s=new Set,...c}={}){const l=Object.fromEntries(Object.entries(Je).map(([f,[v]])=>[f,Uo(c[f],v)])),i=P(t,n,{drift:l.lookahead});if(!i)return{taste:null,knobs:{...l,seed:r},picks:[]};const u=new Set([...s,...t.map(f=>f.id),...n.map(f=>f.id)]),h=e.filter(f=>f.vector&&!u.has(f.id)),p=Math.round(l.reach*Math.min(400,h.length/4)),w=p+300,d=[];for(const f of h){const v=Ht(f,i);if(d.length===w&&!(v>d[w-1].s))continue;let $=d.length;for(;$>0&&d[$-1].s<v;)$--;d.splice($,0,{row:f,s:v}),d.length>w&&d.pop()}let m=d.slice(p);if(l.surprise){let f=Number(r)>>>0||1;const v=()=>{f=f+1831565813>>>0;let $=Math.imul(f^f>>>15,1|f);return $^=$+Math.imul($^$>>>7,61|$),(($^$>>>14)>>>0)/4294967296};m=m.map($=>({...$,s:$.s+.04*l.surprise*-Math.log(-Math.log(v()*.999998+1e-6))})).sort(($,k)=>k.s-$.s)}return{taste:{from:i.from,rejected:i.rejected,heading:!!i.v,n:i.n},knobs:{...l,seed:r},picks:Ie(m,{limit:o,lambda:1-.6*l.variety}).map(({row:f,s:v})=>({row:f,score:Number(v.toFixed(4))}))}}const ge=e=>e&&{v:1,model:co,drift:e.drift,n:e.n,q:Ne(Array.from(e.q)),mu:Ne(Array.from(e.mu)),...e.v?{d:Ne(Array.from(e.v))}:{},...e.no?{no:Ne(Array.from(e.no))}:{},from:e.from,rejected:e.rejected};function Oe(e){if(!e?.q)return null;const t=se(e.q),n=se(e.mu??e.q);return t?{q:t,mu:n??t,v:e.d?se(e.d):null,no:e.no?se(e.no):null,drift:e.drift??.35,from:e.from??[],rejected:e.rejected??[],n:e.n??0}:null}const zo="(remembered";function Ze(e,{carried:t=null,likes:n=[],dislikes:o=[]}={}){if(!e)return e;const r=t??{from:[],rejected:[],n:0},s=l=>l.filter(i=>!String(i?.id??"").startsWith(zo)).map(i=>i.title??i.id),c=s(n);return{...e,v:e.v??r.v??null,from:[...r.from??[],...c].slice(-12),rejected:[...r.rejected??[],...s(o)].slice(-12),n:(r.n??0)+c.length}}if(typeof process<"u"&&import.meta.url===`file://${process.argv[1]}`&&process.argv[1].endsWith("/taste.js")){{const _=re([{id:"a",vector:[1,0],norm:1},{id:"b",vector:[0,1],norm:1}],{q:[1,0]});if(!_.length)throw new Error("recommend must rank rows with vectors");if(_[0].row===void 0)throw new Error("recommend rows carry .row");if(typeof _[0].score!="number")throw new Error("recommend rows carry .score (not .s)")}const e=(E,_,g=E)=>({id:E,title:g,vector:Float32Array.from(_),norm:U(_)}),t=[1,0,0],n=[0,1,0],o=[0,0,1],r=(E,_,g)=>E.map((b,y)=>b*(1-g)+_[y]*g);let s=P([e("a",t),e("b",r(t,o,.2)),e("c",r(t,o,.1))]);if(!s)throw new Error("three likes must make a taste");if(s.v!==null)throw new Error("under four picks there is no older half — direction must not be invented");if(ee({vector:s.q,norm:U(s.q)},Float32Array.from(t),1)<.9)throw new Error("q must sit near what was liked");const c=[e("x",n,"a comedy"),e("y",r(t,o,.15),"a bleak documentary"),e("z",o,"a documentary")];if(re(c,s)[0].row.title!=="a bleak documentary")throw new Error("taste must rank an unseen pool");const l=[e("1",t),e("2",r(t,n,.2)),e("3",r(t,n,.4)),e("4",r(t,n,.6))];if(s=P(l),s.v===null)throw new Error("four picks must yield a direction");const i=ee({vector:s.q,norm:U(s.q)},Float32Array.from(n),1),u=ee({vector:s.mu,norm:U(s.mu)},Float32Array.from(n),1);if(!(i>u))throw new Error(`q must lean further toward where it is heading than mu: ${i} vs ${u}`);const h=P(l,[],{drift:0});if(ee({vector:h.q,norm:U(h.q)},h.mu,U(h.mu))<.999)throw new Error("drift 0 must be mu");const p=[e("p",r(t,n,.7))],w=[e("m",t,"bleak"),e("n",n,"comic")];if(re(w,P(p))[0].row.title!=="comic")throw new Error("sanity: the taste leans comic");if(re(w,P(p,[e("q",n)]))[0].row.title!=="bleak")throw new Error("rejecting comic must flip the ranking to bleak");const d=e("a",t,"the one they liked");if(re([d,e("other",r(t,o,.1),"similar")],P([d]),{exclude:new Set(["a"])}).some(E=>E.row.id==="a"))throw new Error("must not recommend what the taste was built from");s=P(l);const f=ge(s),v=JSON.stringify(f).length,$=Oe(f);if(!$)throw new Error("a taste must survive the round trip");const k=re(c,s).map(E=>E.row.id).join(),O=re(c,$).map(E=>E.row.id).join();if(k!==O)throw new Error(`ranking changed across the wire: ${k} vs ${O}`);if(!f.from.length)throw new Error("a taste must say what it was built from, or it cannot be corrected");if(!s.v)throw new Error("this fixture is meant to have a heading");if(!$.v)throw new Error("a heading must survive the wire — q leans on it, so an export without it lies");if(ee({vector:$.v,norm:U($.v)},s.v,U(s.v))<.98)throw new Error("…and must survive it intact");if(Oe({})!==null||Oe(null)!==null)throw new Error("a malformed taste must be null, not a crash");if(P([])!==null)throw new Error("no likes is no taste, not an empty one");if(re(c,null).length)throw new Error("no taste recommends nothing");if(Ht({vector:null},s)!==null)throw new Error("a vectorless row scores null, not NaN");{const E=(x,M)=>{const j=M*Math.PI/180;return{id:x,vector:[Math.cos(j),Math.sin(j)],norm:1}},_=[E("run1",0),E("run2",.8),E("run3",1.6),E("run4",2.4),E("other",60)],g=P([{id:"seed",...E("seed",30)}]),b=re(_,g,{limit:3,lambda:1}).map(x=>x.row.id);if(b.some(x=>x==="other"))throw new Error(`relevance alone must fill up with the run: ${b}`);const y=re(_,g,{limit:3}).map(x=>x.row.id);if(!y.includes("other"))throw new Error(`MMR must spend a slot on something else: ${y}`);if(y[0]!==b[0])throw new Error(`the best match must still come first: ${y[0]} vs ${b[0]}`)}{const E=P([e("a",t,"The Golem"),e("b",n,"Nosferatu"),e("c",o,"Metropolis")],[e("z",o,"Wrestling")]),_=ge(E);if(_.n!==3||_.from.length!==3)throw new Error("a fresh export carries what it was built from");const g=Oe(_),b=[{id:"(remembered)",title:`what you liked before · ${g.n} picks`,vector:g.q}],y=g.no?[{id:"(remembered-no)",title:"what you passed on before",vector:g.no}]:[];if(ge(P(b,y)).n!==1)throw new Error("this is the loss the next assertion is about");const x=ge(Ze(P(b,y),{carried:g,likes:b,dislikes:y}));if(x.n!==3)throw new Error(`a restored taste must not report itself as one pick: ${x.n}`);if(!x.from.includes("Nosferatu"))throw new Error("…and must still name what it was built from");if(x.from.some(B=>B.startsWith("(remembered")))throw new Error("the synthetic placeholder is not a title");if(!x.rejected.includes("Wrestling"))throw new Error("rejections are provenance too");const M=[...b,e("d",n,"Sunrise")],j=ge(Ze(P(M,y),{carried:g,likes:M,dislikes:y}));if(j.n!==4)throw new Error(`a new pick must count once: ${j.n}`);if(j.from.filter(B=>B==="Nosferatu").length!==1)throw new Error("…and must not duplicate the carried ones");{const B=P([e("p",t,"1"),e("q",r(t,n,.3),"2"),e("r",r(t,n,.6),"3"),e("s",n,"4")]),Z=Oe(ge(B)),T=[{id:"(remembered)",title:"before",vector:Z.q}];if(!Ze(P(T),{carried:Z,likes:T}).v)throw new Error("a restored session must keep the heading its own q was built with");if(P(T).v)throw new Error("…which the kernel alone cannot supply from one entry")}const L=ge(Ze(P(b,y),{carried:Oe(x),likes:b,dislikes:y}));if(L.n!==3||L.from.join()!==x.from.join())throw new Error("a second reload must change nothing")}{const E=Array.from({length:40},(M,j)=>{const L=j*Math.PI/80;return{id:`g${j}`,title:`g${j}`,vector:[Math.cos(L),Math.sin(L)],norm:1}}),_=[E[0]],g=[E[39]],b=M=>M.picks.map(j=>j.row.id).join(),y=be(E,_,g,{limit:5});if(y.picks[0].row.id!=="g1")throw new Error(`nearest first by default: ${b(y)}`);if(y.picks.some(M=>M.row.id==="g0"||M.row.id==="g39"))throw new Error("discover must not return what was voted on");if(be(E,_,[],{limit:5,reach:1}).picks[0].row.id==="g1")throw new Error("reach must skip the nearest");const x=be(E,_,[],{limit:5,surprise:1,seed:7});if(b(x)!==b(be(E,_,[],{limit:5,surprise:1,seed:7})))throw new Error("the same seed must give the same list");if(be(E,[],[],{}).picks.length)throw new Error("no likes, no picks")}console.log(`taste.js self-check ok — discover's knobs, mu/v/q, drift leans forward, rejection steers, portable in ${v}B, ranks a pool it never saw, MMR keeps a run of near-duplicates from filling the list, provenance and heading survive the restore collapse and do not drift on reload`)}const de=e=>({content:[{type:"text",text:JSON.stringify(e)}]}),fe=(e,t=[])=>({type:"object",properties:e,required:t});function Wo(e){const t=document.modelContext;t?.registerTool&&(t.registerTool({name:"describe",description:"What this app holds: its fields and how often each is present. Call it first.",inputSchema:fe({}),execute:async()=>de(In(e.rows))}),t.registerTool({name:"search",description:"Search by meaning: a question in plain words. Optional equality filters in `where`.",inputSchema:fe({query:{type:"string"},limit:{type:"number"},where:{type:"object"}},["query"]),execute:async({query:n,limit:o=10,where:r})=>de(X(e.rows,n,e.roles,{qv:await e.queryVector(n),limit:o,where:r}))}),t.registerTool({name:"get",description:"One record in full, by the id search returns.",inputSchema:fe({id:{type:"string"}},["id"]),execute:async({id:n})=>de(xe(e.rows,n,e.roles)??{error:`no record ${n}`})}),t.registerTool({name:"count",description:"Count the distinct values of a field: the shape of the data before reading it.",inputSchema:fe({field:{type:"string"},where:{type:"object"},limit:{type:"number"}},["field"]),execute:async({field:n,where:o,limit:r=20})=>de(Te(e.rows,n,{where:o,limit:r}))}),t.registerTool({name:"threads",description:"One thing followed across records (a matter from committee to council): each thread's steps in date order, the latest-moving first, with the head record when there is one. `id` for one thread (a step's thread field); `where` narrows the steps.",inputSchema:fe({id:{type:"string"},where:{type:"object"},limit:{type:"number"},offset:{type:"number"}}),execute:async({id:n,where:o,limit:r=20,offset:s=0})=>de(De(e.rows,e.roles,{id:n,where:o,limit:r,offset:s}))}),t.registerTool({name:"session",description:"What the person on this page saved and searched this session, and the taste (a vector over this app's records) their choices make.",inputSchema:fe({}),execute:async()=>de(e.session?.()??{saved:[],searches:[],taste:null})}),t.registerTool({name:"rate",description:"Record that the person liked or disliked a record (or clear it), by the id search returns. Builds the taste discover ranks with.",inputSchema:fe({id:{type:"string"},verdict:{type:"string",enum:["like","dislike","clear"]}},["id","verdict"]),execute:async({id:n,verdict:o})=>de(e.rate?.(n,o)??{error:"this page keeps no taste"})}),t.registerTool({name:"discover",description:"Records for a taste: a kernel over what was liked (newest last) and disliked, not a text search. Pass likes and dislikes (ids from search), or omit them to use the taste on this page. Knobs are 0–1.",inputSchema:fe({likes:{type:"array",items:{type:"string"}},dislikes:{type:"array",items:{type:"string"}},...Object.fromEntries(Object.entries(Je).map(([n,[o,r]])=>[n,{type:"number",minimum:0,maximum:1,default:o,description:r}])),seed:{type:"integer",description:"Same seed, same shuffle"},limit:{type:"integer",minimum:1,maximum:50,default:10}}),execute:async({likes:n,dislikes:o,limit:r=10,...s})=>{const c=u=>u.map(h=>e.rows.find(p=>p.id===xe(e.rows,h,e.roles)?.id)).filter(h=>h?.vector),l=n?{likes:c(n),dislikes:c(o??[])}:e.votes?.()??{likes:[],dislikes:[]};if(!l.likes.length)return de({error:"like at least one record first (ids from search, or rate)"});const i=be(e.rows,l.likes,l.dislikes,{...s,limit:Math.min(50,r)});return de({...i,picks:i.picks.map(({row:u,score:h})=>({...xe(e.rows,u.id,e.roles),score:h}))})}}))}function Ln(e,t){const n=o=>new Set(e.slice(0,5e3).flatMap(r=>Q(r[o]??""))).size;return t.facets?.[0]??t.tags.find(o=>{const r=n(o);return r>=2&&r<=12})??null}function ut(e,t,{facet:n=null,only:o=null,today:r=new Date().toISOString().slice(0,10)}={}){const s=new Map;for(const l of e){const i=String($n(l,t.temporal)??"").slice(0,10);if(!i)continue;const u=n?String(l[n]??""):"";if(o&&u!==o)continue;const h=te(l,t)??"",p=`${u}|${h}|${i}`;let w=s.get(p);w||s.set(p,w={key:p,date:i,place:u,label:h,byTitle:new Map});const d=J(l,t),m=d.toLowerCase(),f=w.byTitle.get(m);(!f||pe(f,t).length<pe(l,t).length)&&w.byTitle.set(m,l)}const c=[...s.values()].map(({byTitle:l,...i})=>({...i,items:[...l.values()]}));return{upcoming:c.filter(l=>l.date>r).sort((l,i)=>l.date.localeCompare(i.date)||l.place.localeCompare(i.place)),past:c.filter(l=>l.date<=r).sort((l,i)=>i.date.localeCompare(l.date)||l.place.localeCompare(i.place))}}function Gt(e,t,n){const o=new Map;for(const r of e)for(const s of Q(r[n]??"")){const c=te(r,t)??null,l=o.get(s);l?(l.n++,l.sub!==c&&(l.sub=null)):o.set(s,{value:s,n:1,sub:c})}return[...o.values()].sort((r,s)=>r.value.localeCompare(s.value,void 0,{numeric:!0}))}function pe(e,t){const n=J(e,t),o=String(e.text??""),r=o.startsWith(n.replace(/\.$/,""))?o.slice(n.replace(/\.$/,"").length).replace(/^[.\s]+/,""):o;return r===n?"":r.trim()}if(typeof process<"u"&&process.argv[1]?.endsWith("/feed.js")){const{rolesFrom:e}=await Ce(async()=>{const{rolesFrom:i}=await import("./roles-DV_6FRBZ.js");return{rolesFrom:i}},[],import.meta.url),t=e([{role_map:{title:"heading",subtitle:"meeting",temporal:"date",tags:["city","body"],text:["text"]},presentation:{facets:["city"]}}]),n=(i,u,h,p=h)=>({city:i,date:u,heading:h,meeting:`Board · ${u}`,body:"Board",text:p}),o=[n("A","2026-01-01","Budget"),n("A","2026-01-01","Budget","Budget. Approved 5-0."),n("A","2026-01-01","Roads"),n("B","2026-02-01","Parks"),n("A","2026-03-01","Zoning"),{heading:"undated"}],r=(i,u,h)=>{if(JSON.stringify(i)!==JSON.stringify(u))throw new Error(`${h}: ${JSON.stringify(i)}`)};r(Ln(o,t),"city","the declared facet wins");const{upcoming:s,past:c}=ut(o,t,{facet:"city",today:"2026-02-15"});r(s.map(i=>i.key),["A|Board · 2026-03-01|2026-03-01"],"a future date is coming up"),r(c.map(i=>`${i.place}${i.date}`),["B2026-02-01","A2026-01-01"],"past, latest first"),r(c[1].items.map(i=>pe(i,t)),["Approved 5-0.",""],"one item per title, the one that says what happened"),r(ut(o,t,{facet:"city",only:"B",today:"2026-02-15"}).past.length,1,"narrowed to one place"),r(Gt([{part:"10",t:"Market Research"},{part:"2",t:"Definitions"},{part:"10",t:"Market Research"},{part:"2",t:"Other"}],e([{role_map:{subtitle:"t"}}]),"part"),[{value:"2",n:2,sub:null},{value:"10",n:2,sub:"Market Research"}],"natural order, counts, a subtitle only when every row shares it"),console.log("feed.js self-check ok — declared facet, upcoming vs past, one item per title keeping the decision, narrowed by place, facet values")}const St=(e,t,n)=>{try{return JSON.parse(e?.getItem(t)??"null")??n}catch{return n}},we=(e,t,n)=>{try{e?.setItem(t,JSON.stringify(n))}catch{}};function Dt({local:e,session:t,app:n="app"}={}){const o={saved:`${n}:saved`,passed:`${n}:passed`,history:`${n}:history`};return{saved:()=>St(e,o.saved,[]),passed:()=>St(e,o.passed,[]),history:()=>St(t,o.history,[]),isSaved(r){return this.saved().some(s=>s.key===r)},toggleSave(r){const s=this.saved(),c=s.findIndex(l=>l.key===r.key);return c>=0?s.splice(c,1):s.push({...r,savedAt:new Date().toISOString()}),we(e,o.saved,s),we(e,o.passed,this.passed().filter(l=>l.key!==r.key)),c<0},pass(r){we(e,o.passed,[...this.passed().filter(s=>s.key!==r.key),r].slice(-50)),we(e,o.saved,this.saved().filter(s=>s.key!==r.key))},unvote(r){we(e,o.saved,this.saved().filter(s=>s.key!==r)),we(e,o.passed,this.passed().filter(s=>s.key!==r))},remember(r){const s=r.trim();s&&we(t,o.history,[{q:s,at:new Date().toISOString()},...this.history().filter(c=>c.q!==s)].slice(0,50))},clear(r){we(r==="history"?t:e,o[r],[])},votes(){const r=s=>({id:s.key,title:s.title,vector:s.v?se(s.v):null});return{likes:this.saved().map(r),dislikes:this.passed().map(r)}},taste(){const{likes:r,dislikes:s}=this.votes();return P(r,s)},bundle({name:r=n,url:s=""}={}){const c=({v:l,...i})=>i;return{app:r,url:s,exported:new Date().toISOString(),saved:this.saved().map(c),searches:this.history(),taste:ge(this.taste())}}}}const Rt=(e,{key:t,title:n,subtitle:o,place:r,date:s,link:c,detail:l})=>({key:t,title:n,subtitle:o,place:r,date:s,url:c??null,detail:l??"",...e.vector?{v:Ne(Array.from(e.vector))}:{}}),Jo=e=>`"${String(e??"").replace(/"/g,'""')}"`,Bn=e=>["title,place,subtitle,date,url,detail",...e.map(t=>[t.title,t.place,t.subtitle,t.date,t.url,t.detail].map(Jo).join(","))].join(`
|
|
7
|
-
`),Ho=(e,t="Saved")=>[`# ${t}`,"",...e.map(n=>`- **${n.url?`[${n.title}](${n.url})`:n.title}** — ${[n.place,n.subtitle].filter(Boolean).join(" · ")}${n.detail?`
|
|
8
|
-
${n.detail}`:""}`)].join(`
|
|
9
|
-
`);if(typeof process<"u"&&process.argv[1]?.endsWith("/store.js")){const e=()=>{const l=new Map;return{getItem:i=>l.get(i)??null,setItem:(i,u)=>l.set(i,u)}},t=Dt({local:e(),session:e(),app:"t"}),n=l=>({vector:Array.from({length:8},(i,u)=>u===l?1:.1)}),o=Rt(n(0),{key:"a",title:"Budget",place:"X",date:"2026-01-01"}),r=Rt(n(1),{key:"b",title:'Roads, "east"',place:"Y"}),s=(l,i,u)=>{if(JSON.stringify(l)!==JSON.stringify(i))throw new Error(`${u}: ${JSON.stringify(l)}`)};if(s(t.taste(),null,"no taste before a save"),t.toggleSave(o),t.toggleSave(r),s(t.saved().map(l=>l.key),["a","b"],"saved in order"),!t.taste()?.q)throw new Error("saves make a taste");t.pass(r),s([t.saved().map(l=>l.key),t.passed().map(l=>l.key)],[["a"],["b"]],"passing on an item unsaves it"),s(t.taste().rejected,['Roads, "east"'],"and it steers the taste away"),t.remember("snow"),t.remember("budget"),t.remember("snow"),s(t.history().map(l=>l.q),["snow","budget"],"history: newest first, no repeats");const c=t.bundle({name:"T"});if(c.saved[0].v||!c.taste?.q||c.searches.length!==2)throw new Error("the bundle carries choices and taste, not raw vectors");if(!Bn([r]).includes('"Roads, ""east"""'))throw new Error("CSV quoting");if(Dt({local:{getItem(){throw new Error("blocked")},setItem(){throw new Error("blocked")}}}).saved().length!==0)throw new Error("blocked storage reads as empty");console.log("store.js self-check ok — saves and passes steer a taste, history dedupes, the bundle carries no raw vectors, CSV quotes, blocked storage is empty not fatal")}const Go="http://www.w3.org/2000/svg",Nt=(e,t={})=>{const n=document.createElementNS(Go,e);for(const[o,r]of Object.entries(t))n.setAttribute(o,r);return n},je=e=>e.toLocaleString(),Yo=new Set(["state"]);function Ko(e,{el:t,show:n,row:o,placeOf:r,ctx:s}){const c=s.roles,l=Object.keys(e.paths);let i=null,u=null,h=null,p={q:"",hits:null};function w(){if(i?.n===s.rows.length)return i;const g=s.rows.map(T=>{const D=Q(T[e.field]??"").filter(W=>e.paths[W]);return D.length?D:[e.places?.[r(T)]].filter(Boolean)}),b=new Map;for(const T of s.rows){const D=Se(T);b.set(D,(b.get(D)??0)+1)}const y=[...b].sort((T,D)=>D[1]-T[1])[0]?.[0],x=new Map(l.map(T=>[T,[]]));s.rows.forEach((T,D)=>{for(const W of g[D])x.get(W)?.push(D)});let M=0,j=null,L=0;const B=new Map;s.rows.forEach((T,D)=>{if(!T.vector||Se(T)!==y||!g[D].length)return;M||=T.vector.length,j??=new Float64Array(M);const W=1/(T.norm||Math.hypot(...T.vector)||1);for(const C of g[D]){const S=B.get(C)??{v:new Float64Array(M),n:0};for(let I=0;I<M;I++)S.v[I]+=T.vector[I]*W;S.n++,B.set(C,S)}for(let C=0;C<M;C++)j[C]+=T.vector[C]*W;L++});const Z=new Map;for(const[T,D]of B){if(D.n<20)continue;const W=D.v.map((S,I)=>S/D.n-j[I]/L),C=Math.hypot(...W)||1;Z.set(T,W.map(S=>S/C))}return i={n:s.rows.length,regionsOf:g,by:x,main:y,types:b,centroid:Z},i}function d(g){const{centroid:b}=w(),y=b.get(g);return y?[...b].filter(([x])=>x!==g).map(([x,M])=>({region:x,score:M.reduce((j,L,B)=>j+L*y[B],0)})).sort((x,M)=>M.score-x.score).slice(0,5):[]}const m=(g,b=2)=>{const y=c.types?.[g];return(b===1?y?.singular:y?.plural)??g??"Records"},f=g=>c.types?.[g]?.icon??"";function v(g){const{regionsOf:b}=w(),y=new Map,x=g??s.rows.map((M,j)=>j);for(const M of x)if(!(h&&Se(s.rows[M])!==h))for(const j of b[M])y.set(j,(y.get(j)??0)+1);return y}async function $(g){if(!g)return null;if(p.q===g&&p.hits)return p.hits;const b=s.queryVector(g),y=await Promise.race([b,new Promise(x=>setTimeout(()=>x(void 0),400))]);return y===void 0&&b.then(x=>{x&&p.q===g&&!p.meaning&&(p={q:g,hits:k(g,x),meaning:!0},E(g,u))}),p={q:g,hits:k(g,y??null),meaning:y!==void 0},p.hits}function k(g,b){const y=new Map(s.rows.map((x,M)=>[x.id,M]));return X(s.rows,g,c,{qv:b,limit:600}).map(x=>y.get(x.id)).filter(x=>x!=null)}const O=(g,b=u)=>{location.hash=`#/map/${encodeURIComponent(g)}${b?`/${encodeURIComponent(b)}`:""}`};async function E(g="",b=null){u=b&&e.paths[b]?b:null;const y=await $(g),x=v(y),M=Math.max(1,...x.values()),j=S=>S?Math.min(5,1+Math.floor((y?S/M:Math.log10(S)/Math.log10(M))*4.999)):0,L=u?new Set(d(u).map(S=>S.region)):new Set,B=Nt("svg",{viewBox:`0 0 ${e.width} ${e.height}`,role:"img","aria-label":y?`Map: where “${g}” comes up`:"Map: where records are",class:"map"});for(const S of l){const I=Nt("path",{d:e.paths[S],class:`h${j(x.get(S)??0)}${S===u?" on":""}${L.has(S)?" near":""}`,tabindex:0,"aria-label":`${S}: ${je(x.get(S)??0)}`});I.append(Nt("title")),I.firstChild.textContent=`${S} · ${je(x.get(S)??0)} ${y?"matching":(h?m(h):"records").toLowerCase()}`;const ce=()=>O(g,u===S?null:S);I.addEventListener("click",ce),I.addEventListener("keydown",Et=>{(Et.key==="Enter"||Et.key===" ")&&(Et.preventDefault(),ce())}),B.append(I)}const Z=t("input",{type:"search",value:g,placeholder:"Search the map: data center, PFAS, solar rezoning…","aria-label":"Search the map"});Z.addEventListener("keydown",S=>{S.key==="Enter"&&O(Z.value.trim())});const T=y?new Map:w().types;for(const S of y??[]){const I=Se(s.rows[S]);T.set(I,(T.get(I)??0)+1)}const D=T.size>1||y?t("div",{className:"chips"},[[null,y?.length??s.rows.length],...T].map(([S,I])=>t("button",{type:"button",className:S===h?"chip on":"chip",onclick:()=>{h=S,E(g,u)}},`${S?`${f(S)} ${m(S,I)}`:"All"} (${je(I)})`))):null,W=l.filter(S=>x.get(S)).length,C=y?`“${g}”: ${je([...x.values()].reduce((S,I)=>S+I,0))} matches in ${W} of ${l.length} regions. Darker is more.${p.meaning?"":" (Matching words; search by meaning is loading.)"}`:`${h?m(h):"Records"} in ${W} of ${l.length} regions. Select a region, or search.`;n(t("div",{className:"mapbar"},Z),D,t("p",{className:"hint"},C),t("div",{className:"mapwrap"},B,t("aside",{className:"panel"},_(u,g,y))),t("p",{className:"hint"},"Legend: ",[0,1,2,3,4,5].map(S=>t("span",{className:`sw h${S}`})),y?" none → most matches":" none → most records"))}function _(g,b,y){if(!g)return[t("h3",{},"Select a region"),t("p",{className:"hint"},"Its records by kind and tag, the ones that match, and the regions most like it.")];const{by:x}=w(),M=new Set(x.get(g)),L=(y?y.filter(C=>M.has(C)):[...M]).filter(C=>!h||Se(s.rows[C])===h).map(C=>s.rows[C]),B=new Map;for(const C of L){const S=Se(C);B.set(S,(B.get(S)??0)+1)}const Z=(c.tags??[]).filter(C=>C!==e.field&&!Yo.has(C)).map(C=>{const S=new Map;for(const I of L)for(const ce of Q(I[C]??""))S.set(ce,(S.get(ce)??0)+1);return[C,[...S].sort((I,ce)=>ce[1]-I[1]).slice(0,6)]}).filter(([,C])=>C.length>1),T=C=>String(C[c.temporal?.[0]]??""),D=(y?L:L.slice().sort((C,S)=>T(S).localeCompare(T(C)))).slice(0,25),W=d(g);return[t("h3",{},g," ",t("button",{type:"button",className:"linkish","aria-label":"Close",onclick:()=>O(b,null)},"✕")),t("p",{className:"hint"},[...B].map(([C,S])=>`${f(C)} ${je(S)} ${m(C,S).toLowerCase()}`).join(" · ")||"Nothing here"+(y?" matches.":" yet.")),W.length?t("div",{className:"chips"},t("small",{title:"Regions whose records are closest in meaning; outlined on the map"},"Reads most like: "),W.map(({region:C})=>t("button",{type:"button",className:"chip",onclick:()=>O(b,C)},C))):null,Z.map(([C,S])=>t("div",{className:"chips"},t("small",{},`${C.replace(/_/g," ")}: `),S.map(([I,ce])=>t("button",{type:"button",className:"chip",title:`Search the map for “${I}”`,onclick:()=>O(I)},`${I} (${ce})`)))),D.length?t("ul",{className:"list"},D.map(C=>o(C))):null,L.length>D.length?t("p",{className:"hint"},`${je(L.length-D.length)} more. `,t("a",{href:`#/search/${encodeURIComponent(b||g)}`},"Open in search")):null]}return{render:E}}const Lt=(e,t=6,n="USDC")=>{const o=Number(e)/10**t;return/^USDC?$/i.test(n)?`$${o<1?o.toFixed(2):o.toFixed(o%1?2:0)}`:`${o} ${n}`};function Xo(e){try{const t=JSON.parse(localStorage.getItem(`${e}:pass`));return t?.token&&t.expires>Date.now()/1e3+60?t:null}catch{return null}}const Qo=(e,t)=>{try{localStorage.setItem(`${e}:pass`,JSON.stringify({token:t.token,expires:t.expires}))}catch{}};async function Zo(e){const t=await fetch(`${e}/view/cdn/catalog`).then(r=>r.ok?r.json():null).catch(()=>null);if(!t)return null;const n=t.domains.reduce((r,s)=>r+(s.count??0),0),o=await fetch(`${e}/mcp`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"tools/call",params:{name:"describe",arguments:{}}})}).then(r=>r.json()).then(r=>JSON.parse(r.result.content[0].text)).catch(()=>null);return{rows:n,views:t.domains.length,updated:t.generated_at?new Date(t.generated_at*1e3):null,about:o?.views?.map(r=>r.description).filter(Boolean)??[]}}function hn(e,t,n){const o=e("code",{},n),r=e("button",{type:"button",className:"chip",onclick:async()=>{try{await navigator.clipboard.writeText(n),r.textContent="Copied"}catch{r.textContent="Select and copy"}setTimeout(()=>{r.textContent="Copy"},1500)}},"Copy");return e("div",{className:"copy"},e("small",{},t),e("pre",{},o),r)}function qn({el:e,origin:t,name:n,access:o,pass:r}){const s=n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),c=r?` --header "Authorization: Bearer ${r.token}"`:"",l=o&&Lt(o.call,o.decimals,o.symbol);return e("section",{className:"agents"},e("h2",{className:"page"},"Use it with an agent"),e("p",{},`${n} is an MCP server: any agent that speaks MCP can search it, read records and follow links, with no install.`),hn(e,"Claude Code",`claude mcp add --transport http ${s} ${t}/mcp${c}`),hn(e,"Any MCP client (streamable HTTP)",JSON.stringify({mcpServers:{[s]:{type:"http",url:`${t}/mcp`,...r?{headers:{Authorization:`Bearer ${r.token}`}}:{}}}},null,2)),o?e("p",{className:"hint"},r?`This line carries your pass, good until ${new Date(r.expires*1e3).toLocaleDateString()}: keep it like a password.`:`describe is free. Every other tool costs ${l} a call, paid by the agent over x402 (its MCP transport), or nothing with a pass: buy one above and this line will carry it.`):null,e("p",{className:"hint"},"Machine-readable: ",e("a",{href:`${t}/.well-known/agent-card.json`},"agent card"),o?[" · ",e("a",{href:`${t}/openapi.json`},"OpenAPI (x402)")]:null))}async function er({el:e,show:t,origin:n,name:o,description:r,slug:s,access:c,wallet:l,inside:i,examples:u=[]}){const h=Lt(c.pass,c.decimals,c.symbol),p=e("p",{className:"hint",role:"status"}),w=e("button",{type:"button",className:"buy"},`Get a ${c.days}-day pass · ${h}`),d=e("p",{className:"hint"});w.onclick=async()=>{w.disabled=!0;try{p.textContent="Signing in…";const m=await l();await m.signIn();const f=await m.balance();if(f!=null&&f<Number(c.pass)/10**(c.decimals??6)){p.textContent=`Your account holds ${Lt(f*10**(c.decimals??6),c.decimals,c.symbol)}; a pass is ${h}.`,d.replaceChildren(e("button",{type:"button",className:"chip",onclick:()=>m.addFunds()},m.faucet?"Get test credit":"Add funds"),m.faucet?` Choose USDC on ${m.chain.name} and send it to ${m.address}.`:"");return}p.textContent="Paying…",Qo(s,await m.buyPass()),p.textContent="Done. Opening the data…",location.reload()}catch(m){p.textContent=`No pass: ${m.message}`}finally{w.disabled=!1}},t(e("section",{className:"gate"},e("h2",{className:"page"},o),e("p",{},r),i?e("p",{className:"stats"},e("strong",{},i.rows.toLocaleString())," records",i.updated?[" · updated ",e("time",{dateTime:i.updated.toISOString()},i.updated.toLocaleDateString())]:null):e("p",{className:"hint"},"The data is being indexed for the first time; check back in a few minutes."),...(i?.about??[]).slice(0,2).map(m=>e("p",{className:"hint"},m)),u.length?[e("h3",{},"Ask it things like"),e("ul",{className:"asks"},u.map(m=>e("li",{},m)))]:null,e("div",{className:"paid"},e("h3",{},"Search it here"),e("p",{className:"detail"},`A pass opens every record and the search by meaning on this page, and in your own agent, for ${c.days} days.`),w,p,d)),qn({el:e,origin:n,name:o,access:c,pass:null}))}const G=e=>document.querySelector(e),a=(e,t={},...n)=>{const o=Object.assign(document.createElement(e),t);return o.append(...n.flat(1/0).filter(r=>r!=null&&r!==!1)),o},Yt=(e,t=220)=>e.length>t?`${e.slice(0,e.lastIndexOf(" ",t))} …`:e,tr=e=>e?new Date(`${String(e).slice(0,10)}T12:00:00`).toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric",year:"numeric"}):"",A={rows:[],roles:En([]),queryVector:e=>go(e).catch(()=>null)};let Pn;const nr=new Promise(e=>{Pn=e});K({onManifests:e=>{A.roles=En(e),Pn()},rowText:e=>so(e,A.roles)});const Re=await fetch("./.well-known/agent-card.json").then(e=>e.json()).catch(()=>({})),xt=(Re.capabilities?.extensions??[]).map(e=>e.params?.paid).find(Boolean)??null,V=xt&&{...xt,url:xt.url.replace(/^https?:\/\/[^/]+/,location.origin)},_t=(Re.capabilities?.extensions??[]).map(e=>e.params?.access).find(Boolean)??null,Ue=_t&&{..._t,pass_url:_t.pass_url.replace(/^https?:\/\/[^/]+/,location.origin)},He=e=>/^USDC?$/i.test(V?.symbol??"USDC")?`$${e.toFixed(2)}`:`${e} ${V.symbol}`,mt=V?Number(V.price)/10**(V.decimals??6):0,ht=V?He(mt):"",ne=Re.name??"Fangorn app";document.title=ne;V&&(G("#accountlink").hidden=!1);G("#name").textContent=ne;fetch("./nav.json").then(e=>e.json()).then(e=>G("#aside").append(...e.map(t=>a("a",{href:t.href},t.label)))).catch(()=>{});const Bt=await fetch("./map.json").then(e=>(e.headers.get("content-type")??"").includes("json")?e.json():null).catch(()=>null);Bt&&G("#primary").prepend(a("a",{href:"#/map"},"Map"));const pn=await fetch("./intro.html").then(e=>e.text()).then(e=>/^\s*<!doctype/i.test(e)?null:Object.assign(a("section",{className:"intro"}),{innerHTML:e})).catch(()=>null),qt=await fetch("./examples.json").then(e=>(e.headers.get("content-type")??"").includes("json")?e.json():[]).catch(()=>[]),$e=G("#q input");$e.disabled=!1;const Me=ne.toLowerCase().replace(/\W+/g,"-"),F=Dt({local:globalThis.localStorage,session:globalThis.sessionStorage,app:Me});A.session=()=>F.bundle({name:ne,url:location.origin});const pt=Ue?Xo(Me):null;pt&&K({fetch:(e,t={})=>fetch(e,{...t,headers:{...t.headers,authorization:`Bearer ${pt.token}`}})});const Fn=()=>qn({el:a,origin:location.origin,name:ne,access:Ue,pass:pt});if(Ue&&!pt){$e.disabled=!0,$e.placeholder="Get a pass to search";const e=await Zo(location.origin),t=(...o)=>{G("#view").replaceChildren(...o.flat().filter(Boolean)),window.scrollTo(0,0)},n=()=>location.hash.startsWith("#/agents")?t(Fn()):er({el:a,show:t,origin:location.origin,name:ne,description:Re.description??"",slug:Me,access:Ue,inside:e,examples:qt,wallet:async()=>(await Ce(async()=>{const{wallet:o}=await import("./wallet-DTM31trz.js").then(r=>r.w);return{wallet:o}},__vite__mapDeps([0,1,2,3]),import.meta.url)).wallet(Ue)});window.addEventListener("hashchange",n),n(),await new Promise(()=>{})}const Vn=new URL("view",location.href).href,fn=await fetch(`${Vn}/cdn/catalog`).then(e=>e.json()).then(e=>e.domains.reduce((t,n)=>t+(n.count??0),0)).catch(()=>0);let Le=!1,wn=0;const or=R(Vn,e=>{A.rows=e,Un(),Date.now()-wn>1500&&/^(#\/?(signals)?)?$/.test(location.hash)&&(wn=Date.now(),Xe())});await nr;const N=A.roles;N.thread&&G("#primary").prepend(a("a",{href:"#/signals"},"Decision tracker"));const Be=e=>String((N.identity&&e[N.identity])??e.id);let Ye=new Map,oe=new Map,Y=null,ze=[],it=null;function Un(){Ye=new Map(A.rows.map(t=>[Be(t),t])),oe=new Map(A.rows.map(t=>[t.id,t])),it=null,Y??=Ln(A.rows,N),ze=Y?[...A.rows.reduce((t,n)=>{const o=ae(n);return o&&t.set(o,(t.get(o)??0)+1),t},new Map)].sort((t,n)=>t[0].localeCompare(n[0])):[];const e=A.rows.length.toLocaleString();$e.placeholder=Le&&!A.rows.length?"No records yet":Le?`Search ${e} records${ze.length>1&&/city|town|place|county|state|region|country/i.test(Y)?` in ${ze.length} places`:""}…`:`Loading ${e}${fn?` of ${fn.toLocaleString()}`:""} records… (search what is here)`}const ae=e=>Y?Q(e[Y]??"")[0]??"":"",z=e=>String(e[N.temporal?.[0]]??"").slice(0,10),Kt=e=>zt(e,N),gn=e=>Rt(e,{key:Be(e),title:J(e,N),subtitle:te(e,N),place:ae(e),date:z(e),link:Kt(e),detail:pe(e,N)}),zn=e=>/[a-z]/.test(e)||!/[A-Z]{5}/.test(e)?e:e.toLowerCase().replace(/\b[a-z]{1,3}\b/g,(t,n)=>/^(and|or|of|the|to|for|in|on|at|by|a|an|as|is|be|no|from)$/.test(t)?t:t.toUpperCase()).replace(/^\W*\w/,t=>t.toUpperCase()).replace(/([.:;!?]\s+|\u2013\s+|-\s+)(\w)/g,(t,n,o)=>n+o.toUpperCase()),Ge=e=>zn(J(e,N)),kt=e=>`#/item/${encodeURIComponent(Be(e))}`,yn=(e,t)=>{if(!t.length)return[e];const n=new RegExp(`(${t.map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")})`,"ig");return String(e).split(n).map((o,r)=>r%2?a("mark",{},o):o)},Wn=e=>F.isSaved(e)?"like":F.passed().some(t=>t.key===e)?"dislike":null;A.rate=(e,t)=>{if(!["like","dislike","clear"].includes(t))return{error:"verdict is like, dislike or clear"};const n=oe.get(e)??Ye.get(String(e))??oe.get(xe(A.rows,e,N)?.id);if(!n)return{error:`no record ${e}`};const o=Be(n);return F.unvote(o),t==="like"&&F.toggleSave(gn(n)),t==="dislike"&&F.pass(gn(n)),Jn(),qe(),/^#\/for-you/.test(location.hash)&&yt(),{likes:F.saved().map(r=>r.title),dislikes:F.passed().map(r=>r.title)}};A.votes=()=>{const e=o=>{const r=Ye.get(o.id);return r?{id:r.id,title:o.title,vector:r.vector}:o},{likes:t,dislikes:n}=F.votes();return{likes:t.map(e).filter(o=>o.vector),dislikes:n.map(e).filter(o=>o.vector)}};const Xt=e=>{const t=a("button",{type:"button",className:"vote star",title:"Save",ariaLabel:`Save: ${J(e,N)}`,onclick:n=>{n.preventDefault(),A.rate(e.id,Wn(Be(e))==="like"?"clear":"like")}});return Object.assign(t.dataset,{key:Be(e),vote:"like"}),a("span",{className:"votes"},t)};function Jn(){for(const e of document.querySelectorAll("button.vote[data-vote]")){const t=Wn(e.dataset.key)===e.dataset.vote;e.setAttribute("aria-pressed",String(t)),e.textContent=t?"★":"☆",e.title=t?"Saved":"Save"}}const ie=(e,{terms:t=[],also:n=0,meta:o=!0}={})=>{const r=pe(e,N);return a("li",{className:"row"},a("div",{className:"main"},a("a",{href:kt(e),className:"title"},yn(Ge(e),t)),o?a("small",{},[ae(e),te(e,N)].filter(Boolean).join(" · ")):null,r?a("p",{className:"detail"},yn(Yt(r),t)):null,n?a("small",{className:"also"},`and ${n} more record${n>1?"s":""} of the same item`):null,rr(e)?a("small",{className:"forsale"},`Decision record · ${ht}`):null),Xt(e))},rr=e=>V&&e.paid_ct,ft=()=>{if(!it){const e=N.thread?De(A.rows,N,{min:1,limit:1/0}).threads:[];it={list:e.filter(t=>t.steps.length>=2),byId:new Map(e.map(t=>[t.id,t])),byHead:new Map(e.filter(t=>t.head).map(t=>[t.head.id,t]))}}return it},Pt=e=>N.thread?e[N.thread]!=null?ft().byId.get(String(e[N.thread])):ft().byHead.get(e.id):null,sr=/agenda|consent|discussion|archiv|miscellan|presentation|published|^items/i,wt=e=>(e?.outcome??(e?.status&&!sr.test(e.status)?e.status:null))?.trim().toLowerCase()||null,gt=e=>e.steps.map(t=>wt(oe.get(t.id))).findLast(Boolean)??null,Hn=e=>(te(e,N)??"").replace(/\s*·\s*\d{4}-\d\d-\d\d$/,""),Gn=e=>e?new Date(`${e}T12:00:00`).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):"",Yn=e=>a("ol",{className:"steps"},e.steps.map(t=>oe.get(t.id)).filter(Boolean).map(t=>a("li",{},a("time",{dateTime:z(t)},Gn(z(t))),a("span",{},a("a",{href:kt(t)},Hn(t)||Ge(t)),wt(t)?` · ${wt(t)}`:""))));let he=null;const $t=()=>ze.length>1?a("label",{className:"picker"},a("span",{},`${Y?Y[0].toUpperCase()+Y.slice(1):"Place"}`),a("select",{id:"place",onchange:e=>{he=e.target.value||null,Xe()}},[[null,A.rows.length],...ze].map(([e,t])=>a("option",{value:e??"",selected:e===he},`${e??"All"} (${t.toLocaleString()})`)))):null,ar=e=>{const t=e.search(/[:.;]\s/);return t<0||t>160?a("p",{className:"about"},e):a("details",{className:"about"},a("summary",{},e.slice(0,t+1).replace(/:$/,".")),a("p",{},e.slice(t+2)))},Ke=e=>!he||ae(e)===he,Kn=G("#view"),H=(...e)=>{Kn.replaceChildren(...e.flat().filter(Boolean)),Jn(),window.scrollTo(0,0)};function ir(e){const n=a("ul",{},e.items.slice(0,5).map(r=>ie(r,{meta:!1}))),o=e.items.length>5?a("button",{type:"button",className:"more",onclick:r=>{n.append(...e.items.slice(5).map(s=>ie(s,{meta:!1}))),r.target.remove()}},`${e.items.length-5} more`):null;return a("article",{},a("header",{},a("time",{dateTime:e.date},tr(e.date)),a("h3",{},[e.place,e.label.replace(/\s*·\s*\d{4}-\d\d-\d\d$/,"")].filter(Boolean).join(" — "))),n,o)}function Xn(e){const t=oe.get(e.steps.at(-1).id),n=e.head&&oe.get(e.head.id),o=V?e.steps.map(s=>oe.get(s.id)).reverse().find(s=>s?.paid_ct):null,r=pe(t,N);return a("article",{className:"signal"},a("div",{className:"meta"},a("span",{},ae(t)),a("span",{},n?te(n,N):Hn(t)),gt(e)?a("span",{className:"stage"},gt(e)):null,a("time",{dateTime:e.date},Gn(e.date))),a("h3",{},a("a",{href:kt(n??t),className:"title"},zn(e.title))),r?a("p",{className:"detail"},Yt(r)):null,e.steps.length>1?Yn(e):null,o?to(o):null,a("div",{className:"acts"},Xt(n??t),e.url?a("a",{href:e.url,target:"_blank",rel:"noopener",className:"act"},"Official record ↗"):null))}let et=null,tt=30;function Ft(){const e=r=>oe.get(r.steps.at(-1).id),{list:t}=ft(),n=[...new Set(t.map(gt).filter(Boolean))].sort(),o=t.filter(r=>Ke(e(r))&&(!et||gt(r)===et));H(a("h2",{className:"page"},"Decision tracker"),a("p",{className:"hint"},"Items that went to more than one meeting, such as from a committee to the council. The most recently updated items are listed first. Each item links to its official record."),a("div",{className:"chips"},$t(),n.length?a("label",{className:"picker"},a("span",{},"Stage"),a("select",{onchange:r=>{et=r.target.value||null,tt=30,Ft()}},[null,...n].map(r=>a("option",{value:r??"",selected:r===et},r??"Any stage")))):null),a("p",{className:"hint"},`${o.length.toLocaleString()} item${o.length===1?"":"s"}`),o.length?o.slice(0,tt).map(Xn):a("p",{className:"empty"},Le?"No items have been followed across meetings yet.":"Loading records…"),o.length>tt?a("button",{type:"button",className:"more",onclick:()=>{tt+=30,Ft()}},"Show more"):null)}function cr(){const t=i=>new Date(i).toISOString().slice(0,10),n=t(Date.now()),o=ft().byHead,r=new Map;for(const i of A.rows){const u=z(i);if(!u||u>n||o.has(i.id)||!Ke(i)||!wt(i))continue;const h=N.thread&&i[N.thread]!=null?String(i[N.thread]):i.id;(!r.has(h)||z(r.get(h))<u)&&r.set(h,i)}const s=[...r.values()].sort((i,u)=>z(u).localeCompare(z(i))),c=s.filter(i=>z(i)>=t(Date.now()-7*864e5)),l=i=>Xn(Pt(i)?.steps.length>1?Pt(i):{id:i.id,title:J(i,N),date:z(i),steps:[{id:i.id}],head:null,url:Kt(i)});return{title:c.length>=3?"Decisions this week":"Recent decisions",list:c.length>=3?c:s,card:l}}let Mt=12;function Qn(){const{likes:e,dislikes:t}=A.votes(),n=be(A.rows.filter(Ke),e,t,{...ue,limit:6}),{upcoming:o}=ut(A.rows,N,{facet:Y,only:he}),r=cr();H(pn?pn.cloneNode(!0):Re.description?ar(Re.description):null,$t(),r.list.length?a("section",{},a("h2",{},r.title),r.list.slice(0,Mt).map(r.card),r.list.length>Mt?a("button",{type:"button",className:"more",onclick:()=>{Mt+=12,Qn()}},"Show more"):null):null,o.length?a("section",{},a("h2",{},"Upcoming meetings"),o.slice(0,6).map(ir)):null,n.picks.length?a("section",{},a("h2",{},"For you"),a("p",{className:"hint"},`From the ${n.taste.n} item${n.taste.n>1?"s":""} you liked. `,a("a",{href:"#/for-you"},"Tune")),a("ul",{className:"list"},n.picks.map(({row:s})=>ie(s)))):null,r.list.length||o.length?null:A.rows.length?lr():a("p",{className:"empty"},Le?"This app is being set up. Its records will appear here after they are published.":"Loading records…"))}const bn=e=>e&&e[0].toUpperCase()+e.slice(1),We=(e,t)=>/^\d/.test(t)?`${bn(e)} ${t}`:bn(t),vn=(e,t)=>`#/browse/${encodeURIComponent(e)}/${encodeURIComponent(t)}`;function lr(){const e=N.temporal?.length?A.rows.filter(n=>z(n)&&Ke(n)).sort((n,o)=>z(o).localeCompare(z(n))).slice(0,8):[],t=(N.facets?.length?N.facets:[Y]).filter(Boolean).map(n=>[n,Gt(A.rows,N,n)]).filter(([,n])=>n.length>1);return[qt.length?a("section",{},a("h2",{},"Try asking"),a("div",{className:"chips"},qt.map(n=>a("a",{href:`#/search/${encodeURIComponent(n)}`,className:"act"},n)))):null,e.length?a("section",{},a("h2",{},"Recently updated"),a("ul",{className:"list"},e.map(n=>ie(n)))):null,...t.map(([n,o])=>a("section",{},a("h2",{},`By ${n.replace(/_/g," ")}`),o.length<=12?a("div",{className:"chips"},o.map(({value:r,n:s})=>a("a",{href:vn(n,r),className:"act"},`${We(n,r)} (${s.toLocaleString()})`))):a("ul",{className:"list"},o.map(({value:r,n:s,sub:c})=>a("li",{className:"row"},a("div",{className:"main"},a("a",{href:vn(n,r),className:"title"},c?`${We(n,r)} · ${c}`:We(n,r)),a("small",{},`${s.toLocaleString()} record${s===1?"":"s"}`)))))))]}let ct=50;function Zn(e,t){const n=A.rows.filter(r=>Q(r[e]??"").includes(t)).sort((r,s)=>Ge(r).localeCompare(Ge(s),void 0,{numeric:!0})),o=Gt(n,N,e)[0]?.sub;H(a("p",{},a("a",{href:"#/"},"← Home")),a("h2",{className:"page"},o?`${We(e,t)} · ${o}`:We(e,t)),a("p",{className:"hint"},`${n.length.toLocaleString()} record${n.length===1?"":"s"}`),n.length?a("ul",{className:"list"},n.slice(0,ct).map(r=>ie(r))):a("p",{className:"empty"},Le?"Nothing here.":"Loading records…"),n.length>ct?a("button",{type:"button",className:"more",onclick:()=>{ct+=50,Zn(e,t)}},"Show more"):null)}let Ct="relevance",Ot=0,dr=null;async function eo(e){document.activeElement!==G("#q input")&&(G("#q input").value=e);const t=++Ot,n=A.queryVector(e),o=await Promise.race([n,new Promise(r=>setTimeout(()=>r(void 0),400))]);t===Ot&&(o===void 0&&n.then(r=>{r&&t===Ot&&Vt(e,r)}),Vt(e,o??null,o===void 0))}function Vt(e,t,n=!1){const o=X(A.rows,e,N,{qv:t,limit:80,...he&&Y?{where:{[Y]:he}}:{}}),r=new Map;for(const i of o){const u=oe.get(i.id);if(!u)continue;const h=`${ae(u)}|${J(u,N).toLowerCase()}`,p=r.get(h);p?(p.also++,pe(u,N).length>pe(p.r,N).length&&(p.r=u)):r.set(h,{r:u,also:0})}let s=[...r.values()];Ct==="newest"&&(s=s.sort((i,u)=>z(u.r).localeCompare(z(i.r))));const c=e.toLowerCase().split(/\W+/).filter(i=>i.length>2),l=a("div",{className:"sort"},"Sort: ",["relevance","newest"].map(i=>a("button",{type:"button",className:i===Ct?"chip on":"chip",onclick:()=>{Ct=i,Vt(e,t,n)}},i)));H($t(),a("div",{className:"resultsbar"},a("span",{},`${s.length} result${s.length===1?"":"s"} for “${e}”${he?` in ${he}`:""}`,n?a("small",{}," · matching words; search by meaning is loading"):null),l),s.length?a("ul",{className:"list"},s.slice(0,40).map(({r:i,also:u})=>ie(i,{terms:c,also:u}))):a("p",{className:"empty"},"No results found. Try different words, or choose All in the place list."))}function ur(e){const t=Ye.get(e);if(!t)return H(a("p",{className:"empty"},"This record is no longer available. ",a("a",{href:"#/"},"Go to the home page")));const n=Kt(t),o=pe(t,N),r=new Set(["id","owner","text","vector","norm","embed","entityType",N.identity,N.thread,...N.title,...N.subtitle,...N.media,...N.temporal??[]]),s=Object.entries(t).filter(([w,d])=>!r.has(w)&&!/(_id|_sha256)$|^paid_/.test(w)&&(typeof d=="string"||typeof d=="number")&&String(d).length<120),c=a("div",{className:"doc"}),l=n?a("button",{type:"button",className:"act",onclick:()=>{if(c.firstChild){c.replaceChildren(),l.textContent="View document";return}c.append(a("iframe",{src:`./doc?u=${encodeURIComponent(n)}${Number(t.page)>1?`#page=${t.page}`:""}`,title:"Source document",loading:"lazy"})),l.textContent="Hide document"}},"View document"):null,i=ut(A.rows.filter(w=>ae(w)===ae(t)&&z(w)===z(t)&&te(w,N)===te(t,N)),N,{facet:Y}),u=[...i.upcoming,...i.past].flatMap(w=>w.items).filter(w=>J(w,N)!==J(t,N)),h=Pt(t),p=at(A.rows,t.id,N,{limit:12}).near.map(w=>oe.get(w.id)).filter(w=>w&&J(w,N)!==J(t,N)).slice(0,6);H(a("p",{},a("a",{href:"#/",onclick:w=>{history.length>1&&(w.preventDefault(),history.back())}},"← Back")),a("article",{className:"record"},a("small",{},[ae(t),te(t,N)].filter(Boolean).join(" · ")),a("h2",{},Ge(t)),o?a("p",{},o):a("p",{className:"hint"},"No decision is recorded under this item (it may be on an agenda, before the meeting)."),s.length?a("dl",{},s.map(([w,d])=>[a("dt",{},w.replace(/_/g," ")),a("dd",{},String(d))])):null,a("div",{className:"acts"},Xt(t),l,n?a("a",{href:n,target:"_blank",rel:"noopener",className:"act"},"Source ↗"):null),V&&t.paid_ct?to(t):null,c),h&&h.steps.length>1?a("section",{},a("h2",{},"Followed across meetings"),Yn(h)):null,u.length?a("section",{},a("h2",{},"Same meeting"),a("ul",{className:"list"},u.slice(0,12).map(w=>ie(w,{meta:!1})))):null,p.length?a("section",{},a("h2",{},"Similar"),a("ul",{className:"list"},p.map(w=>ie(w)))):null)}const jt={get(e){try{return JSON.parse(localStorage.getItem(`${Me}:paid:${e}`))}catch{return null}},set(e,t){try{localStorage.setItem(`${Me}:paid:${e}`,JSON.stringify(t))}catch{}}};function to(e){const t=e[N.identity]??e.id,n=a("section",{className:"paid"}),o=l=>{const i=l.record;n.replaceChildren(...[a("h3",{},"Decision record"),i.summary?a("p",{},i.summary):null,a("dl",{},[["Action",i.action],["Outcome",i.outcome],["Vote",i.vote&&`${i.vote.for}–${i.vote.against}`]].filter(([,u])=>u).map(([u,h])=>[a("dt",{},u),a("dd",{},h)])),i.steps?.length>1?a("ol",{},i.steps.map(u=>a("li",{},u.result?`${u.motion} · ${u.result}`:u.motion))):null,i.amounts?.length?a("ul",{},i.amounts.map(u=>a("li",{},typeof u=="string"?u:[u.amount,u.for?` · ${u.for}`:""]))):null,i.organizations?.length?a("p",{},"Organizations: ",i.organizations.map(u=>typeof u=="string"?u:`${u.name}${u.role!=="other"?` (${u.role})`:""}`).join(", ")):null,a("small",{title:l.receipt?.transaction??""},l.verified?"✓ Verified: matches the record this app published":l.verified===!1?"✗ Does not match the record this app published":"",l.receipt?.transaction?` · Bought for ${ht}`:"")].filter(Boolean))},r=jt.get(t);if(r)return o(r),n;const s=a("small",{}),c=a("button",{type:"button",className:"act"},`Buy the decision record · ${ht}`);return c.onclick=async()=>{c.disabled=!0,s.textContent="Signing you in…";try{const l=await(await Ce(async()=>{const{wallet:p}=await import("./wallet-DTM31trz.js").then(w=>w.w);return{wallet:p}},__vite__mapDeps([0,1,2,3]),import.meta.url)).wallet(V);if(await l.signIn(),(V.membership?await l.member().catch(()=>null):null)?.until>Date.now()/1e3){s.textContent="Opening with your membership…";const p=(await l.read([t],{[t]:e.paid_ct},{[t]:e.paid_sha256})).records[0];if(p.error)throw new Error(p.error);return jt.set(t,p),o(p)}const u=await l.balance().catch(()=>null);if(u!=null&&u<mt)return c.disabled=!1,s.replaceChildren(`Your account balance is ${He(u)}. `,a("a",{href:"#/account"},"Add credit")," to buy this record.");s.textContent="Buying…";const h=await l.buy(t,e.paid_sha256,e.paid_ct);if(h.error)throw new Error(h.error);jt.set(t,h),o(h)}catch(l){c.disabled=!1,s.replaceChildren(`The purchase did not go through: ${l.message}. `,a("a",{href:"#/account"},"Your account"))}},n.append(a("h3",{},"Decision record"),a("p",{className:"hint"},e.paid_includes?`Summarized from the minutes. Includes ${e.paid_includes}.`:"Summarized from the minutes: the action, the outcome, the vote, dollar amounts and who receives them, and the organizations involved."),a("div",{className:"acts"},c,s),V.membership?a("p",{className:"hint"},"Members read every decision record at no charge. ",a("a",{href:"#/account"},"Become a member")):null),n}function nt(e,t,n){const o=a("a",{href:URL.createObjectURL(new Blob([t],{type:n})),download:e});document.body.append(o),o.click(),o.remove()}const no={get(){try{return JSON.parse(localStorage.getItem(`${Me}:knobs`))??{}}catch{return{}}},set(e){try{localStorage.setItem(`${Me}:knobs`,JSON.stringify(e))}catch{}}},ue={...Object.fromEntries(Object.entries(Je).map(([e,[t]])=>[e,t])),...no.get(),seed:1},mr={lookahead:["Lookahead","what you like now","where you're heading"],variety:["Variety","close to each other","all different"],surprise:["Surprise","best first","shuffled"],reach:["Reach","nearest","further out"]};function yt(){const{likes:e,dislikes:t}=A.votes(),n=be(A.rows.filter(Ke),e,t,{...ue,limit:30}),o=s=>{const[c,l,i]=mr[s],u=a("output",{},`${Math.round(ue[s]*100)}%`),h=a("input",{type:"range",min:0,max:1,step:.05,value:ue[s],id:`k-${s}`,title:Je[s][1]});return h.oninput=()=>{u.textContent=`${Math.round(h.value*100)}%`},h.onchange=()=>{ue[s]=Number(h.value),no.set({...ue,seed:void 0}),yt(),document.getElementById(`k-${s}`)?.focus()},a("label",{className:"knob",htmlFor:`k-${s}`},a("span",{},c,u),h,a("small",{},`${l} ↔ ${i}`))},r=(s,c)=>a("li",{className:c?"no":""},s.title,a("button",{type:"button",ariaLabel:`Forget ${s.title}`,onclick:()=>A.rate(s.id,"clear")},"×"));H(a("h2",{className:"page"},"For you"),$t(),a("section",{className:"taste"},e.length||t.length?a("ul",{className:"pills"},e.slice(-30).map(s=>r(s)),t.slice(-10).map(s=>r(s,!0))):a("p",{className:"hint"},"Save records with ☆ and this fills with more like them. Newer saves count more; it all stays in this browser."),n.taste?a("p",{className:"hint"},n.taste.heading?"Your recent likes point somewhere new; Lookahead follows them.":"Like 4 or more and Lookahead can follow where your taste is heading."):null,a("div",{className:"knobs"},Object.keys(Je).map(o)),a("button",{type:"button",className:"act",disabled:!ue.surprise,title:ue.surprise?"":"Turn up Surprise to reroll",onclick:()=>{ue.seed++,yt()}},"Reroll")),n.picks.length?a("ul",{className:"list"},n.picks.map(({row:s})=>ie(s))):null)}function Ut(){const e=F.saved(),t=F.taste(),n=ne.toLowerCase().replace(/\W+/g,"-"),o=()=>JSON.stringify(F.bundle({name:ne,url:location.origin}),null,1),r=a("button",{type:"button",className:"act",onclick:async()=>{try{await navigator.clipboard.writeText(o()),r.textContent="Copied"}catch{nt(`${n}-session.json`,o(),"application/json")}}},"Copy for an agent");H(a("h2",{className:"page"},`Saved (${e.length})`),e.length?a("div",{className:"acts"},a("button",{type:"button",className:"act",onclick:()=>nt(`${n}-saved.json`,o(),"application/json")},"Export JSON"),a("button",{type:"button",className:"act",onclick:()=>nt(`${n}-saved.csv`,Bn(e),"text/csv")},"CSV"),a("button",{type:"button",className:"act",onclick:()=>nt(`${n}-saved.md`,Ho(e,`${ne}: saved`),"text/markdown")},"Markdown"),r,a("a",{href:"#/for-you",className:"act"},"For you: more like these")):a("p",{className:"empty"},"You have not saved any records. Select ☆ on a record to save it. Saved records are stored only on this device."),t?a("p",{className:"hint"},`"For you" is built from these ${t.n}${t.rejected.length?`, and away from ${t.rejected.length} you passed on`:""}. It lives in this browser; the export carries it, so an agent can use it too. `,a("button",{type:"button",className:"linkish",onclick:()=>{F.clear("passed"),Ut(),qe()}},"Forget what I passed on")):null,a("ul",{className:"list"},e.slice().reverse().map(s=>{const c=Ye.get(s.key);return a("li",{className:"row"},a("div",{className:"main"},a("a",{href:c?kt(c):s.url??"#/",className:"title"},s.title),a("small",{},[s.place,s.subtitle].filter(Boolean).join(" · ")),s.detail?a("p",{className:"detail"},Yt(s.detail)):null),a("button",{type:"button",className:"vote",ariaLabel:`Forget ${s.title}`,title:"Forget",onclick:()=>{F.unvote(s.key),Ut(),qe()}},"×"))})))}async function hr(){H(a("p",{className:"empty"},"Opening your account…"));let e;try{e=await(await Ce(async()=>{const{wallet:n}=await import("./wallet-DTM31trz.js").then(o=>o.w);return{wallet:n}},__vite__mapDeps([0,1,2,3]),import.meta.url)).wallet(V)}catch(n){return H(a("p",{className:"empty"},`Accounts are unavailable: ${n.message}`))}const t=async()=>{if(!location.hash.startsWith("#/account"))return;if(!e.authenticated)return H(a("h2",{className:"page"},"Account"),a("p",{},`Sign in to read decision records (${ht} each). Use your email or Google: nothing to install, no password, and the same account works in every Fangorn app.`),a("div",{className:"acts"},a("button",{type:"button",className:"act",onclick:()=>e.signIn()},"Sign in")));const n=e.address?await e.balance().catch(()=>null):null,o=a("button",{type:"button",className:"linkish",onclick:async()=>{await navigator.clipboard.writeText(e.address),o.textContent="Copied"}},"Copy");H(a("h2",{className:"page"},"Account"),a("dl",{},a("dt",{},"Signed in as"),a("dd",{},e.email??"you"),a("dt",{},"Credit"),a("dd",{},e.address?n==null?"…":`${He(n)} · ${Math.floor(n/mt+1e-9).toLocaleString()} record${Math.floor(n/mt+1e-9)===1?"":"s"}`:"setting up your account…")),a("div",{className:"acts"},a("button",{type:"button",className:"act",onclick:async r=>{r.target.disabled=!0;try{const s=await e.addFunds();s?.sent?r.target.textContent=`Added ${He(Number(s.sent)/10**(V.decimals??6))} of test credit`:s?.note&&(r.target.textContent="You already have test credit"),t()}catch(s){r.target.textContent=`Could not add credit: ${s.message}`}}},e.faucet?"Get free test credit":"Add credit"),a("button",{type:"button",className:"act",onclick:()=>e.logout()},"Sign out")),e.faucet&&e.address&&!V.membership?a("section",{},a("p",{className:"hint"},`${ne} is in testing, so credit is free. The button opens Circle's test-credit page: choose USDC on ${e.chain.name}, paste your account number below, and send.`),a("p",{},a("small",{},"Account number: "),a("code",{},e.address)," ",o)):null,V.membership&&e.address?await pr(e):null,a("p",{className:"hint"},"Records you buy are saved on this device."))};e.onChange(()=>{t()})}async function pr(e){const t=a("section",{},a("h3",{},"Membership")),[n,o]=await Promise.all([e.member().catch(()=>null),e.plan().catch(()=>null)]);if(n?.until>Date.now()/1e3)return t.append(a("p",{},`You are a member until ${new Date(n.until*1e3).toLocaleDateString()}. Every decision record opens at no charge.`)),t;if(!o||!o.units)return null;const r=a("small",{}),s=a("button",{type:"button",className:"act"},`Become a member · ${He(o.price)} for ${o.days} days`);return s.onclick=async()=>{s.disabled=!0;try{await e.join(c=>{r.textContent=c}),r.textContent="You are a member.",location.reload()}catch(c){s.disabled=!1,r.textContent=`The membership did not go through: ${c.message}`}},t.append(a("p",{className:"hint"},`A member reads every decision record in ${ne} at no charge for ${o.days} days. Your membership is not linked to your account in public records.`),a("div",{className:"acts"},s,r)),t}function qe(){const e=F.saved().length;G("#nsaved").textContent=e?` (${e})`:"",G("#recent").replaceChildren(...F.history().map(({q:t})=>a("option",{value:t})))}function Xe(){const[,e="",t=""]=location.hash.match(/^#\/([^/]*)\/?(.*)$/)??[],n=decodeURIComponent(t);for(const o of document.querySelectorAll("nav a"))o.classList.toggle("on",o.getAttribute("href")===`#/${e}`);return document.body.classList.toggle("wide",e==="map"),e!=="search"&&(G("#q input").value=""),e==="search"&&n?eo(n):e==="item"&&n?ur(n):e==="browse"&&n?(ct=50,Zn(...t.split("/").map(decodeURIComponent))):e==="signals"&&N.thread?Ft():e==="saved"?Ut():e==="for-you"?yt():(e==="account"||e==="wallet")&&V?hr():e==="agents"?H(Fn()):e==="map"&&Bt?(dr??=Ko(Bt,{el:a,show:H,row:ie,placeOf:ae,ctx:A})).render(...t.split("/").map(decodeURIComponent)):Qn()}let kn;$e.oninput=()=>{clearTimeout(kn);const e=$e.value.trim();kn=setTimeout(()=>{if(!e){location.hash.startsWith("#/search")&&(location.hash="#/");return}history.replaceState(null,"",`#/search/${encodeURIComponent(e)}`),eo(e)},250)};G("#q").onsubmit=e=>{e.preventDefault();const t=$e.value.trim();t&&(F.remember(t),qe(),location.hash=`#/search/${encodeURIComponent(t)}`)};Kn.addEventListener("click",e=>{e.target.closest("a.title")&&location.hash.startsWith("#/search/")&&(F.remember($e.value),qe())});window.onhashchange=Xe;qe();Xe();A.rows=await or;Le=!0;Un();Wo(A);Xe();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cB as p,cC as R,cy as w,cD as I,cE as N,cF as D,cG as v,cH as _,cI as W,cJ as f,cl as m,cm as A,cK as T,cp as u,cq as M,co as j}from"./index-BMfMy017.js";function l(e){const n={};return e.forEach(r=>{if(!n[r.address])n[r.address]=r;else if(n[r.address]!==r)throw new p(R,{address:r.address})}),Object.values(n)}function g(e){return"modifyAndSignTransactions"in e&&typeof e.modifyAndSignTransactions=="function"}function d(e){return"signTransactions"in e&&typeof e.signTransactions=="function"}function b(e){return"signAndSendTransactions"in e&&typeof e.signAndSendTransactions=="function"}function S(e){return d(e)||g(e)||b(e)}function K(e){return l((e.accounts??[]).flatMap(n=>"signer"in n?n.signer:[]))}function h(e){return l([...e.feePayer&&S(e.feePayer)?[e.feePayer]:[],...e.instructions.flatMap(K)])}function Z(e,n){Object.freeze(e);const r={...n,feePayer:e};return Object.freeze(r),r}async function P(e){const n=await D(e.publicKey);return Object.freeze({address:n,keyPair:e,signMessages:i=>Promise.all(i.map(async t=>Object.freeze({[n]:await _(e.privateKey,t.content)}))),signTransactions:i=>Promise.all(i.map(async t=>{const a=await v([e],t);return Object.freeze({[n]:a.signatures[n]})}))})}async function q(e,n){return await P(await I(e,n))}async function U(e,n){return await P(await N(e,n))}async function Y(e,n){const{partialSigners:r,modifyingSigners:i}=k(l(h(e).filter(S)),{identifySendingSigner:!1});return await G(e,i,r,n)}function k(e,n={}){const i=n.identifySendingSigner??!0?z(e):null,t=e.filter(s=>s!==i&&(g(s)||d(s))),a=F(t),c=t.filter(d).filter(s=>!a.includes(s));return Object.freeze({modifyingSigners:a,partialSigners:c,sendingSigner:i})}function z(e){const n=e.filter(b);if(n.length===0)return null;const r=n.filter(i=>!g(i)&&!d(i));return r.length>0?r[0]:n[0]}function F(e){const n=e.filter(g);if(n.length===0)return[];const r=n.filter(i=>!d(i));return r.length>0?r:[n[0]]}async function G(e,n=[],r=[],i){const t=w(e),a=await n.reduce(async(s,o)=>{const[O]=await o.modifyAndSignTransactions([await s],i);return Object.freeze(O)},Promise.resolve(t)),c=await Promise.all(r.map(async s=>{const[o]=await s.signTransactions([a],i);return o}));return Object.freeze({...a,signatures:Object.freeze(c.reduce((s,o)=>({...s,...o}),a.signatures??{}))})}var C="ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",L="TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";function B(e){if(!e)throw new Error("Expected a Address.");return typeof e=="object"&&"address"in e?e.address:Array.isArray(e)?e[0]:e}function E(e,n){return r=>{if(!r.value)return Object.freeze({address:e,role:u.READONLY});const i=r.isWritable?u.WRITABLE:u.READONLY;return Object.freeze({address:B(r.value),role:y(r.value)?M(i):i,...y(r.value)?{signer:r.value}:{}})}}function y(e){return!!e&&typeof e=="object"&&"address"in e&&S(e)}async function X(e,n={}){const{programAddress:r="ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}=n;return await W({programAddress:r,seeds:[f().encode(e.owner),f().encode(e.tokenProgram),f().encode(e.mint)]})}var x=1;function J(){return m(A([["discriminator",T()]]),e=>({...e,discriminator:x}))}function $(e,n){const r=C,t={payer:{value:e.payer??null,isWritable:!0},ata:{value:e.ata??null,isWritable:!0},owner:{value:e.owner??null,isWritable:!1},mint:{value:e.mint??null,isWritable:!1},systemProgram:{value:e.systemProgram??null,isWritable:!1},tokenProgram:{value:e.tokenProgram??null,isWritable:!1}};t.tokenProgram.value||(t.tokenProgram.value="TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),t.systemProgram.value||(t.systemProgram.value="11111111111111111111111111111111");const a=E(r);return Object.freeze({accounts:[a(t.payer),a(t.ata),a(t.owner),a(t.mint),a(t.systemProgram),a(t.tokenProgram)],data:J().encode({}),programAddress:r})}var V=3;function H(){return m(A([["discriminator",T()],["amount",j()]]),e=>({...e,discriminator:V}))}function ee(e,n){const r=L,t={source:{value:e.source??null,isWritable:!0},destination:{value:e.destination??null,isWritable:!0},authority:{value:e.authority??null,isWritable:!1}},a={...e},c=(a.multiSigners??[]).map(o=>({address:o.address,role:u.READONLY_SIGNER,signer:o})),s=E(r);return Object.freeze({accounts:[s(t.source),s(t.destination),s(t.authority),...c],data:H().encode(a),programAddress:r})}export{L as T,ee as a,g as b,d as c,q as d,U as e,X as f,$ as g,S as i,Y as p,Z as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as E}from"./index-9jNeS_nC.js";var o={exports:{}},i={};var _;function R(){if(_)return i;_=1;var u=E();function y(e){var r="https://react.dev/errors/"+e;if(1<arguments.length){r+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)r+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(){}var n={d:{f:c,r:function(){throw Error(y(522))},D:c,C:c,L:c,m:c,X:c,S:c,M:c},p:0,findDOMNode:null},v=Symbol.for("react.portal"),O=Symbol.for("react.recoverable"),d=Symbol.for("react.optimistic_key");function S(e,r,t){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:v,key:f==null?null:f===d?d:""+f,children:e,containerInfo:r,implementation:t}}var a=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(e,r){if(e==="font")return"";if(typeof r=="string")return r==="use-credentials"?r:""}return i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=n,i.browser=function(e){return{$$typeof:O,_reason:e}},i.createPortal=function(e,r){var t=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)throw Error(y(299));return S(e,r,null,t)},i.flushSync=function(e){var r=a.T,t=n.p;try{if(a.T=null,n.p=2,e)return e()}finally{a.T=r,n.p=t,n.d.f()}},i.preconnect=function(e,r){typeof e=="string"&&(r?(r=r.crossOrigin,r=typeof r=="string"?r==="use-credentials"?r:"":void 0):r=null,n.d.C(e,r))},i.prefetchDNS=function(e){typeof e=="string"&&n.d.D(e)},i.preinit=function(e,r){if(typeof e=="string"&&r&&typeof r.as=="string"){var t=r.as,f=g(t,r.crossOrigin),l=typeof r.integrity=="string"?r.integrity:void 0,s=typeof r.fetchPriority=="string"?r.fetchPriority:void 0;t==="style"?n.d.S(e,typeof r.precedence=="string"?r.precedence:void 0,{crossOrigin:f,integrity:l,fetchPriority:s}):t==="script"&&n.d.X(e,{crossOrigin:f,integrity:l,fetchPriority:s,nonce:typeof r.nonce=="string"?r.nonce:void 0})}},i.preinitModule=function(e,r){if(typeof e=="string")if(typeof r=="object"&&r!==null){if(r.as==null||r.as==="script"){var t=g(r.as,r.crossOrigin);n.d.M(e,{crossOrigin:t,integrity:typeof r.integrity=="string"?r.integrity:void 0,nonce:typeof r.nonce=="string"?r.nonce:void 0,fetchPriority:typeof r.fetchPriority=="string"?r.fetchPriority:void 0})}}else r==null&&n.d.M(e)},i.preload=function(e,r){if(typeof e=="string"&&typeof r=="object"&&r!==null&&typeof r.as=="string"){var t=r.as,f=g(t,r.crossOrigin);n.d.L(e,t,{crossOrigin:f,integrity:typeof r.integrity=="string"?r.integrity:void 0,nonce:typeof r.nonce=="string"?r.nonce:void 0,type:typeof r.type=="string"?r.type:void 0,fetchPriority:typeof r.fetchPriority=="string"?r.fetchPriority:void 0,referrerPolicy:typeof r.referrerPolicy=="string"?r.referrerPolicy:void 0,imageSrcSet:typeof r.imageSrcSet=="string"?r.imageSrcSet:void 0,imageSizes:typeof r.imageSizes=="string"?r.imageSizes:void 0,media:typeof r.media=="string"?r.media:void 0})}},i.preloadModule=function(e,r){if(typeof e=="string")if(r){var t=g(r.as,r.crossOrigin);n.d.m(e,{as:typeof r.as=="string"&&r.as!=="script"?r.as:void 0,crossOrigin:t,integrity:typeof r.integrity=="string"?r.integrity:void 0,nonce:typeof r.nonce=="string"?r.nonce:void 0,fetchPriority:typeof r.fetchPriority=="string"?r.fetchPriority:void 0})}else n.d.m(e)},i.requestFormReset=function(e){n.d.r(e)},i.unstable_batchedUpdates=function(e,r){return e(r)},i.useFormState=function(e,r,t){return a.H.useFormState(e,r,t)},i.useFormStatus=function(){return a.H.useHostTransitionStatus()},i.version="19.3.0",i}var m;function P(){if(m)return o.exports;m=1;function u(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(y){console.error(y)}}return u(),o.exports=R(),o.exports}export{P as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{am as Y,an as pe,ao as be,ap as he,aq as Z,ar as ye,as as ge,a5 as Ee,at as xe,au as H,av as we,aw as Ie,ax as Te,ay as ve,az as Ce,aA as Se,aB as L,aC as Q,aD as Ae,aE as oe,aF as Re,aG as M,aH as Pe,aa as j,ad as _,a6 as _e,aI as Be,aJ as ke,aK as Ue,aL as qe,a8 as Ne,aM as Fe,aN as ie,aO as Le,ab as De,aP as Me,aQ as ze,aR as He,aS as Ge,a3 as $e,ai as ir,aj as cr}from"./http-BocEfKYb.js";import{aT as Yr,aU as Zr,aV as Qr,aW as Xr,aX as ea,aY as ta,aZ as ra,a_ as aa,a$ as sa,b0 as na,b1 as oa,b2 as ia,b3 as ca,b4 as ua,b5 as da,b6 as ma,b7 as la,b8 as fa,b9 as pa,ba,bb as ha,bc as ya,bd as ga,be as Ea,bf as xa,bg as wa,bh as Ia,bi as Ta,bj as va,bk as Ca,bl as Sa,bm as Aa,bn as Ra,bo as Pa,bp as _a,bq as Ba,br as ka,bs as Ua,bt as qa,bu as Na,bv as Fa,bw as La,bx as Da,by as Ma,bz as za,bA as Ha,bB as Ga,bC as $a,bD as Oa,bE as ja,bF as Va,bG as Wa,bH as Ka,bI as Ja,bJ as Ya,bK as Za,bL as Qa,bM as Xa,bN as es,bO as ts,bP as rs,bQ as as,bR as ss,bS as ns,bT as os,bU as is,bV as cs,al as us,bW as ds,bX as ms,ag as ls,bY as fs,bZ as ps,b_ as bs,b$ as hs,c0 as ys,c1 as gs,c2 as Es,c3 as xs,c4 as ws,c5 as Is,c6 as Ts,c7 as vs,c8 as Cs,c9 as Ss,ah as As,ca as Rs,cb as Ps,cc as _s,cd as Bs,ce as ks,cf as Us,cg as qs,ch as Ns,cg as Fs,ci as Ls,cj as Ds,ck as Ms,cl as zs,cm as Hs,cn as Gs,co as $s,cp as Os,a7 as js,cq as Vs,cr as Ws,cs as Ks,ct as Js,cu as Ys,cv as Zs,cw as Qs,cf as Xs,cg as en,cw as tn,ch as rn,cg as an,c6 as sn,c7 as nn,cx as on,cy as cn,cz as un,ak as dn}from"./http-BocEfKYb.js";import{j as B,e as k,p as Oe,k as D,l as je,n as Ve,b as We,o as Ke,H as Je,r as U,q as X,d as Ye,t as Ze,u as Qe,v as I,w as z,x as Xe,B as V,a as ee,y as te,z as W,A as et,s as tt,h as re}from"./serializeTransaction-L-_Ej-jW.js";import{C as ln,D as fn,E as pn,F as bn,G as hn,J as yn,K as gn,L as En,M as xn,N as wn,O as In,P as Tn,Q as vn,I as Cn,R as Sn,S as An,T as Rn,U as Pn,V as _n,W as Bn,X as kn,Y as Un,Z as qn,_ as Nn,$ as Fn,a0 as Ln,a1 as Dn,a2 as Mn,a3 as zn,a4 as Hn,a5 as Gn,a6 as $n,a7 as On,a8 as jn,a9 as Vn,aa as Wn,ab as Kn,ac as Jn,ad as Yn,ae as Zn,af as Qn,ag as Xn,ah as eo,ai as to,aj as ro,ak as ao,al as so,am as no,an as oo,ao as io,ap as co,c as uo,f as mo,aq as lo,ar as fo,g as po,as as bo,at as ho,au as yo,i as go,av as Eo,aw as xo,ax as wo,ay as Io,az as To,aA as vo,aB as Co,aC as So,aD as Ao,aE as Ro,aF as Po,aG as _o,aH as Bo,aI as ko,aJ as Uo,aK as qo,aL as No,aM as Fo,aN as Lo,aO as Do,aP as Mo,aQ as zo,aR as Ho,aS as Go,aT as $o,aU as Oo,aV as jo,aW as Vo,aX as Wo,aY as Ko,aZ as Jo,a_ as Yo,a$ as Zo,b0 as Qo,b1 as Xo,b2 as ei,b3 as ti,b4 as ri,b5 as ai,b6 as si,b7 as ni,b8 as oi,b9 as ii,ba as ci,bb as ui,bc as di,bd as mi,be as li,bf as fi,bg as pi,bh as bi,bi as hi,bj as yi,m as gi,bk as Ei,bl as xi,bm as wi,bn as Ii,bo as Ti,bp as vi,bq as Ci,br as Si,bs as Ai,bt as Ri,bu as Pi,bv as _i,bw as Bi,bx as ki,by as Ui,bz as qi,bA as Ni,bB as Fi,bC as Li,bD as Di,bE as Mi,bF as zi,bG as Hi,bH as Gi,bI as $i,bJ as Oi,bK as ji,bL as Vi,bM as Wi,bN as Ki,bO as Ji,bP as Yi,bQ as Zi,bR as Qi,bS as Xi,bT as ec,bU as tc,bV as rc,bW as ac,bX as sc,bY as nc,bZ as oc,b_ as ic,b$ as cc,c0 as uc,c1 as dc,c2 as mc,c3 as lc,c4 as fc,c5 as pc,c6 as bc,c7 as hc,c8 as yc,c9 as gc,ca as Ec}from"./serializeTransaction-L-_Ej-jW.js";import{c as wc}from"./custom-V1wex-Di.js";import{f as Tc,s as vc}from"./fallback-DiFue5Zm.js";import{_ as rt}from"./preload-helper-PPVm8Dsz.js";import{e as at}from"./bytes-CjWw8TJh.js";import{z as Sc}from"./bytes-CjWw8TJh.js";import{a as st,b as nt,A as ot,c as ae,s as ce}from"./hashTypedData-Beq57Ogb.js";import{d as Rc,e as Pc,f as _c,g as Bc,i as kc,j as Uc,k as qc,l as Nc,m as Fc,n as Lc,o as Dc,p as Mc,q as zc,r as Hc,t as Gc,B as $c,D as Oc,u as jc,I as Vc,v as Wc,w as Kc,x as Jc,y as Yc,z as Zc,C as Qc,E as Xc,U as eu,F as tu,G as ru,H as au,J as su,K as nu,L as ou,M as iu,N as cu,M as uu,O as du,P as mu,Q as lu}from"./hashTypedData-Beq57Ogb.js";import{e as pu}from"./encodePacked-DyXYq3Cc.js";import{ccipRequest as it}from"./ccip-BhHEqVIW.js";import{offchainLookup as hu,offchainLookupAbiItem as yu,offchainLookupSignature as gu}from"./ccip-BhHEqVIW.js";import{c as br}from"./transactionReceipt-BwJl-gjg.js";import{b as xu,a as wu,d as Iu,g as Tu,h as vu,i as Cu,f as Su,e as Au,t as Ru}from"./transactionReceipt-BwJl-gjg.js";import{c as _u,n as Bu}from"./nonceManager-zkW7cM66.js";import{p as Uu,p as qu}from"./parseSignature-BIjcuWdB.js";import{s as Fu}from"./serializeErc6492Signature-CeJeL3h6.js";import{p as Du}from"./parseEther-C7aOvuze.js";import"./getTransactionCount-80UHlwAV.js";function yr({chains:e,id:t}){return e.find(r=>r.id===t)}function gr(e){let t;if(typeof e=="string")t=Y(e,{modifiers:Z});else{const r=pe(e),a=e.length;for(let s=0;s<a;s++){const n=e[s];if(!be(n)){t=Y(n,{modifiers:Z,structs:r});break}}}if(!t)throw new he({param:e});return t}function se(e){return!e||typeof e!="object"||!("BYTES_PER_ELEMENT"in e)?!1:e.BYTES_PER_ELEMENT===1&&e.constructor.name==="Uint8Array"}function Er(e){return e.opcode==="CREATE2"?ut(e):ct(e)}function ct(e){const t=B(k(e.from));let r=B(e.nonce);return r[0]===0&&(r=new Uint8Array([])),k(`0x${D(We([t,r],"bytes")).slice(26)}`)}function ut(e){const t=B(k(e.from)),r=Oe(se(e.salt)?e.salt:B(e.salt),{size:32}),a="bytecodeHash"in e?se(e.bytecodeHash)?e.bytecodeHash:B(e.bytecodeHash):D(e.bytecode,"bytes");return k(je(D(Ve([B("0xff"),t,r,a])),12))}function xr({batchGateways:e,ccipRequest:t=it}){return{async request({data:r,sender:a,urls:s}){if(s.includes(ye))return t({data:r,sender:a,urls:e});{const[n,u]=ge({abi:H,functionName:"query",data:await t({data:Ee({abi:H,functionName:"query",args:[[{sender:a,data:r,urls:s}]]}),sender:a,urls:e})});if(n[0]){let d;try{const c=xe({abi:[...H,we],data:u[0]});if(c.errorName==="HttpError")d=new Ie({body:{message:c.args[1]},status:c.args[0],url:s.join(" | ")});else{const o=c.args[0];o&&(d=new Error(o))}}catch{}throw d??new Error("An unknown error occurred.")}return u[0]}}}}const dt=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),ue=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),mt=ue.map(e=>(9*e+5)%16),de=(()=>{const r=[[ue],[mt]];for(let a=0;a<4;a++)for(let s of r)s.push(s[a].map(n=>dt[n]));return r})(),me=de[0],le=de[1],fe=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>Uint8Array.from(e)),lt=me.map((e,t)=>e.map(r=>fe[t][r])),ft=le.map((e,t)=>e.map(r=>fe[t][r])),pt=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),bt=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function ne(e,t,r,a){return e===0?t^r^a:e===1?t&r|~t&a:e===2?(t|~r)^a:e===3?t&a|r&~a:t^(r|~a)}const q=new Uint32Array(16);class ht extends Je{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:r,h2:a,h3:s,h4:n}=this;return[t,r,a,s,n]}set(t,r,a,s,n){this.h0=t|0,this.h1=r|0,this.h2=a|0,this.h3=s|0,this.h4=n|0}process(t,r){for(let i=0;i<16;i++,r+=4)q[i]=t.getUint32(r,!0);let a=this.h0|0,s=a,n=this.h1|0,u=n,d=this.h2|0,c=d,o=this.h3|0,l=o,h=this.h4|0,b=h;for(let i=0;i<5;i++){const f=4-i,p=pt[i],m=bt[i],y=me[i],g=le[i],v=lt[i],C=ft[i];for(let w=0;w<16;w++){const x=U(a+ne(i,n,d,o)+q[y[w]]+p,v[w])+h|0;a=h,h=o,o=U(d,10)|0,d=n,n=x}for(let w=0;w<16;w++){const x=U(s+ne(f,u,c,l)+q[g[w]]+m,C[w])+b|0;s=b,b=l,l=U(c,10)|0,c=u,u=x}}this.set(this.h1+d+l|0,this.h2+o+b|0,this.h3+h+s|0,this.h4+a+u|0,this.h0+n+c|0)}roundClean(){X(q)}destroy(){this.destroyed=!0,X(this.buffer),this.set(0,0,0,0,0)}}const yt=Ke(()=>new ht),gt=yt;function wr(e,t){const r=t||"hex",a=gt(Ye(e,{strict:!1})?B(e):e);return r==="bytes"?a:Ze(a)}const G=new Map;async function Et(e){const{getSocket:t,keepAlive:r=!0,key:a="socket",reconnect:s=!0,url:n}=e,{interval:u=3e4}=typeof r=="object"?r:{},{attempts:d=5,delay:c=2e3}=typeof s=="object"?s:{},o=JSON.stringify({keepAlive:r,key:a,url:n,reconnect:s});let l=G.get(o);if(l)return l;let h=0;const{schedule:b}=Te({id:o,fn:async()=>{const p=new Map,m=new Map;let y,g,v,C,w=!1,x=!1;function K(){if(s&&!x&&h<d){if(w)return;w=!0,h++,g?.close(),C=setTimeout(async()=>{if(C=void 0,x){w=!1;return}await J().catch(console.error),w=!1},c)}else p.clear(),m.clear()}async function J(){const T=await t({onClose(){for(const E of p.values())E.onError?.(new L({url:n}));for(const E of m.values())E.onError?.(new L({url:n}));K()},onError(E){y=E;for(const S of p.values())S.onError?.(y);for(const S of m.values())S.onError?.(y);K()},onOpen(){y=void 0,h=0},onResponse(E){const S=E.method==="eth_subscription",R=S?E.params.subscription:E.id,P=S?m:p,A=P.get(R);A&&A.onResponse(E),S||P.delete(R)}});if(x)return T.close(),T;if(g=T,r&&(v&&clearInterval(v),v=setInterval(()=>g.ping?.(),u)),s&&m.size>0){const E=m.entries();for(const[S,{onResponse:R,body:P,onError:A}]of E)P&&(m.delete(S),l?.request({body:P,onResponse:R,onError:A}))}return T}return await J(),y=void 0,l={close(){x=!0,v&&clearInterval(v),C&&(clearTimeout(C),C=void 0,w=!1),g.close(),G.delete(o)},get socket(){return g},request({body:T,onError:E,onResponse:S}){y&&E&&E(y);const R=T.id??Se.take(),P=A=>{typeof A.id=="number"&&R!==A.id||(T.method==="eth_subscribe"&&typeof A.result=="string"&&m.set(A.result,{onResponse:P,onError:E,body:T}),S(A))};T.method==="eth_unsubscribe"&&m.delete(T.params?.[0]),p.set(R,{onResponse:P,onError:E});try{g.request({body:{jsonrpc:"2.0",id:R,...T}})}catch(A){E?.(A)}},requestAsync({body:T,timeout:E=1e4}){return ve(()=>new Promise((S,R)=>this.request({body:T,onError:R,onResponse:S})),{errorInstance:new Ce({body:T,url:n}),timeout:E})},requests:p,subscriptions:m,url:n},G.set(o,l),[l]}}),[i,[f]]=await b();return f}async function F(e,t={}){const{keepAlive:r,reconnect:a}=t;return Et({async getSocket({onClose:s,onError:n,onOpen:u,onResponse:d}){const c=await rt(()=>import("./native-CJ5et6AR.js"),[],import.meta.url).then(i=>i.WebSocket),o=new c(e);function l(){o.removeEventListener("close",l),o.removeEventListener("message",h),o.removeEventListener("error",n),o.removeEventListener("open",u),s()}function h({data:i}){if(!(typeof i=="string"&&i.trim().length===0))try{const f=JSON.parse(i);d(f)}catch(f){n(f)}}o.addEventListener("close",l),o.addEventListener("message",h),o.addEventListener("error",n),o.addEventListener("open",u),o.readyState===c.CONNECTING&&await new Promise((i,f)=>{o&&(o.onopen=i,o.onerror=f)});const{close:b}=o;return Object.assign(o,{close(){b.bind(o)(),l()},ping(){try{if(o.readyState===o.CLOSED||o.readyState===o.CLOSING)throw new Q({url:o.url,cause:new L({url:o.url})});const i={jsonrpc:"2.0",id:null,method:"net_version",params:[]};o.send(JSON.stringify(i))}catch(i){n(i)}},request({body:i}){if(o.readyState===o.CLOSED||o.readyState===o.CLOSING)throw new Q({body:i,url:o.url,cause:new L({url:o.url})});return o.send(JSON.stringify(i))}})},keepAlive:r,reconnect:a,url:e})}async function xt(e){const t=await F(e);return Object.assign(t.socket,{requests:t.requests,subscriptions:t.subscriptions})}function wt(e){return Qe(e,-32)===at}function It(e){return Ae(e)}function Ir(e){if(!wt(e))return{signature:e};const[t,r,a]=oe([{type:"address"},{type:"bytes"},{type:"bytes"}],e);return{address:t,data:r,signature:a}}function Tr(e){if(!It(e))return{signature:e};const{authorization:t,to:r,...a}=Re(e);return{authorization:{address:t.address,chainId:t.chainId,nonce:Number(t.nonce),r:I(t.r,{size:32}),s:I(t.s,{size:32}),yParity:t.yParity},...r?{address:r}:{},...a}}async function Tt({message:e,signature:t}){return M({hash:st(e),signature:t})}async function vt(e){const{domain:t,message:r,primaryType:a,signature:s,types:n}=e;return M({hash:nt({domain:t,message:r,primaryType:a,types:n}),signature:s})}function vr(e){const{address:t,data:r,signature:a,to:s="hex"}=e,n=Pe({authorization:{address:e.authorization.address,chainId:e.authorization.chainId,nonce:BigInt(e.authorization.nonce),r:BigInt(e.authorization.r),s:BigInt(e.authorization.s),yParity:e.authorization.yParity},data:r,signature:a,to:t});return s==="hex"?n:z(n)}async function Cr({address:e,hash:t,signature:r}){return j(k(e),await M({hash:t,signature:r}))}async function Sr({address:e,message:t,signature:r}){return j(k(e),await Tt({message:t,signature:r}))}async function Ar(e){const{address:t,domain:r,message:a,primaryType:s,signature:n,types:u}=e;return j(k(t),await vt({domain:r,message:a,primaryType:s,signature:n,types:u}))}function Rr(e,t="wei"){return Xe(e,t)}function Pr({abi:e,address:t,client:r}){const a=r,[s,n]=a?"public"in a&&"wallet"in a?[a.public,a.wallet]:"public"in a?[a.public,void 0]:"wallet"in a?[void 0,a.wallet]:[a,a]:[void 0,void 0],u=s!=null,d=n!=null,c={};let o=!1,l=!1,h=!1;for(const b of e)if(b.type==="function"?b.stateMutability==="view"||b.stateMutability==="pure"?o=!0:l=!0:b.type==="event"&&(h=!0),o&&l&&h)break;return u&&(o&&(c.read=new Proxy({},{get(b,i){return(...f)=>{const{args:p,options:m}=N(f);return _(s,_e,"readContract")({abi:e,address:t,functionName:i,args:p,...m})}}})),l&&(c.simulate=new Proxy({},{get(b,i){return(...f)=>{const{args:p,options:m}=N(f);return _(s,Be,"simulateContract")({abi:e,address:t,functionName:i,args:p,...m})}}})),h&&(c.createEventFilter=new Proxy({},{get(b,i){return(...f)=>{const p=e.find(g=>g.type==="event"&&g.name===i),{args:m,options:y}=$(f,p);return _(s,ke,"createContractEventFilter")({abi:e,address:t,eventName:i,args:m,...y})}}}),c.getEvents=new Proxy({},{get(b,i){return(...f)=>{const p=e.find(g=>g.type==="event"&&g.name===i),{args:m,options:y}=$(f,p);return _(s,Ue,"getContractEvents")({abi:e,address:t,eventName:i,args:m,...y})}}}),c.watchEvent=new Proxy({},{get(b,i){return(...f)=>{const p=e.find(g=>g.type==="event"&&g.name===i),{args:m,options:y}=$(f,p);return _(s,qe,"watchContractEvent")({abi:e,address:t,eventName:i,args:m,...y})}}}))),d&&l&&(c.write=new Proxy({},{get(b,i){return(...f)=>{const{args:p,options:m}=N(f);return _(n,Ne,"writeContract")({abi:e,address:t,functionName:i,args:p,...m})}}})),(u||d)&&l&&(c.estimateGas=new Proxy({},{get(b,i){return(...f)=>{const{args:p,options:m}=N(f);return _(s??n,Fe,"estimateContractGas")({abi:e,address:t,functionName:i,args:p,...m,account:m.account??n.account})}}})),c.address=t,c.abi=e,c}function N(e){const t=e.length&&Array.isArray(e[0]),r=t?e[0]:[],a=(t?e[1]:e[0])??{};return{args:r,options:a}}function $(e,t){let r=!1;Array.isArray(e[0])?r=!0:e.length===1?r=t.inputs.some(n=>n.indexed):e.length===2&&(r=!0);const a=r?e[0]:void 0,s=(r?e[1]:e[0])??{};return{args:a,options:s}}function _r(e){const{chains:t,transport:r,...a}=e,s=new Map;return{getClient({chainId:n}){const u=s.get(n);if(u)return u;const d=t.find(l=>l.id===n);if(!d)throw new Ct({chainId:n});const c=typeof r=="function"?r({chainId:n}):r[n];if(!c)throw new St({chainId:n});const o=ie({...a,chain:d,transport:c});return s.set(n,o),o}}}class Ct extends V{constructor({chainId:t}){super(`Chain with id ${t} is not configured.`,{name:"createClientResolver.ChainNotConfiguredError"})}}class St extends V{constructor({chainId:t}){super(`Transport for chain with id ${t} is not configured.`,{name:"createClientResolver.TransportNotConfiguredError"})}}async function At(e,{hash:t}){await e.request({method:`${e.mode}_dropTransaction`,params:[t]})}async function Rt(e){return e.request({method:`${e.mode}_dumpState`})}async function Pt(e){return e.mode==="ganache"?await e.request({method:"eth_mining"}):await e.request({method:`${e.mode}_getAutomine`})}async function _t(e){return await e.request({method:"txpool_content"})}async function Bt(e){const{pending:t,queued:r}=await e.request({method:"txpool_status"});return{pending:ee(t),queued:ee(r)}}async function kt(e,{address:t}){await e.request({method:`${e.mode}_impersonateAccount`,params:[t]})}async function Ut(e,{seconds:t}){return await e.request({method:"evm_increaseTime",params:[I(t)]})}async function qt(e){return await e.request({method:"txpool_inspect"})}async function Nt(e,{state:t}){await e.request({method:`${e.mode}_loadState`,params:[t]})}async function Ft(e,{blocks:t,interval:r}){e.mode==="ganache"?await e.request({method:"evm_mine",params:[{blocks:I(t)}]}):await e.request({method:`${e.mode}_mine`,params:[I(t),I(r||0)]})}async function Lt(e){await e.request({method:`${e.mode}_removeBlockTimestampInterval`})}async function Dt(e,{blockNumber:t,jsonRpcUrl:r}={}){await e.request({method:`${e.mode}_reset`,params:[{forking:{blockNumber:Number(t),jsonRpcUrl:r}}]})}async function Mt(e,{id:t}){await e.request({method:"evm_revert",params:[t]})}async function zt(e,t){const{accessList:r,data:a,from:s,gas:n,gasPrice:u,maxFeePerGas:d,maxPriorityFeePerGas:c,nonce:o,to:l,value:h,...b}=t,i=e.chain?.formatters?.transactionRequest?.format,p=(i||De)({...Le(b,{format:i}),accessList:r,data:a,from:s,gas:n,gasPrice:u,maxFeePerGas:d,maxPriorityFeePerGas:c,nonce:o,to:l,value:h},"sendUnsignedTransaction");return await e.request({method:"eth_sendUnsignedTransaction",params:[p]})}async function Ht(e,t){e.mode==="ganache"?t?await e.request({method:"miner_start"}):await e.request({method:"miner_stop"}):await e.request({method:"evm_setAutomine",params:[t]})}async function Gt(e,{address:t,value:r}){e.mode==="ganache"?await e.request({method:"evm_setAccountBalance",params:[t,I(r)]}):await e.request({method:`${e.mode}_setBalance`,params:[t,I(r)]})}async function $t(e,{gasLimit:t}){await e.request({method:"evm_setBlockGasLimit",params:[I(t)]})}async function Ot(e,{interval:t}){const r=e.mode==="hardhat"?t*1e3:t;await e.request({method:`${e.mode}_setBlockTimestampInterval`,params:[r]})}async function jt(e,{address:t,bytecode:r}){e.mode==="ganache"?await e.request({method:"evm_setAccountCode",params:[t,r]}):await e.request({method:`${e.mode}_setCode`,params:[t,r]})}async function Vt(e,{address:t}){await e.request({method:`${e.mode}_setCoinbase`,params:[t]})}async function Wt(e,{interval:t}){const r=e.mode==="hardhat"?t*1e3:t;await e.request({method:"evm_setIntervalMining",params:[r]})}async function Kt(e,t){await e.request({method:`${e.mode}_setLoggingEnabled`,params:[t]})}async function Jt(e,{gasPrice:t}){await e.request({method:`${e.mode}_setMinGasPrice`,params:[I(t)]})}async function Yt(e,{baseFeePerGas:t}){await e.request({method:`${e.mode}_setNextBlockBaseFeePerGas`,params:[I(t)]})}async function Zt(e,{timestamp:t}){await e.request({method:"evm_setNextBlockTimestamp",params:[I(t)]})}async function Qt(e,{address:t,nonce:r}){await e.request({method:`${e.mode}_setNonce`,params:[t,I(r)]})}async function Xt(e,t){await e.request({method:`${e.mode}_setRpcUrl`,params:[t]})}async function er(e,{address:t,index:r,value:a}){await e.request({method:`${e.mode}_setStorageAt`,params:[t,typeof r=="number"?I(r):r,a]})}async function tr(e){return await e.request({method:"evm_snapshot"})}async function rr(e,{address:t}){await e.request({method:`${e.mode}_stopImpersonatingAccount`,params:[t]})}function ar({mode:e}){return t=>{const r=t.extend(()=>({mode:e}));return{dropTransaction:a=>At(r,a),dumpState:()=>Rt(r),getAutomine:()=>Pt(r),getTxpoolContent:()=>_t(r),getTxpoolStatus:()=>Bt(r),impersonateAccount:a=>kt(r,a),increaseTime:a=>Ut(r,a),inspectTxpool:()=>qt(r),loadState:a=>Nt(r,a),mine:a=>Ft(r,a),removeBlockTimestampInterval:()=>Lt(r),reset:a=>Dt(r,a),revert:a=>Mt(r,a),sendUnsignedTransaction:a=>zt(r,a),setAutomine:a=>Ht(r,a),setBalance:a=>Gt(r,a),setBlockGasLimit:a=>$t(r,a),setBlockTimestampInterval:a=>Ot(r,a),setCode:a=>jt(r,a),setCoinbase:a=>Vt(r,a),setIntervalMining:a=>Wt(r,a),setLoggingEnabled:a=>Kt(r,a),setMinGasPrice:a=>Jt(r,a),setNextBlockBaseFeePerGas:a=>Yt(r,a),setNextBlockTimestamp:a=>Zt(r,a),setNonce:a=>Qt(r,a),setRpcUrl:a=>Xt(r,a),setStorageAt:a=>er(r,a),snapshot:()=>tr(r),stopImpersonatingAccount:a=>rr(r,a)}}}function Br(e){const{key:t="test",name:r="Test Client",mode:a}=e;return ie({...e,key:t,name:r,type:"testClient"}).extend(n=>({mode:a,...ar({mode:a})(n)}))}function kr(e,t={}){const{keepAlive:r,key:a="webSocket",methods:s,name:n="WebSocket JSON-RPC",reconnect:u,retryDelay:d}=t;return({chain:c,retryCount:o,timeout:l})=>{const h=t.retryCount??o,b=l??t.timeout??1e4,i=e||c?.rpcUrls.default.webSocket?.[0],f={keepAlive:r,reconnect:u};if(!i)throw new Me;return ze({key:a,methods:s,name:n,async request({method:p,params:m}){const y={method:p,params:m},g=await F(i,f),{error:v,result:C}=await g.requestAsync({body:y,timeout:b});if(v)throw new He({body:y,error:v,url:i});return C},retryCount:h,retryDelay:d,timeout:b,type:"webSocket"},{getSocket(){return xt(i)},getRpcClient(){return F(i,f)},async subscribe({params:p,onData:m,onError:y}){const g=await F(i,f),{result:v}=await new Promise((C,w)=>g.request({body:{method:"eth_subscribe",params:p},onError(x){w(x),y?.(x)},onResponse(x){if(x.error){w(x.error),y?.(x.error);return}if(typeof x.id=="number"){C(x);return}x.method==="eth_subscription"&&m(x.params)}}));return{subscriptionId:v,async unsubscribe(){return new Promise(C=>g.request({body:{method:"eth_unsubscribe",params:[v]},onResponse:C}))}}}})}}const Ur={gwei:9,wei:18},qr={ether:-9,wei:9},Nr={ether:-18,gwei:-9};class Fr extends V{constructor({value:t}){super(`Number \`${t}\` is not a valid decimal number.`,{name:"InvalidDecimalNumberError"})}}class Lr extends Error{constructor(t,r){super(r),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.details=r}}const O="/docs/contract/decodeDeployData";function Dr(e){const{abi:t,bytecode:r,data:a}=e;if(a===r)return{bytecode:r};const s=t.find(u=>"type"in u&&u.type==="constructor");if(!s)throw new ot({docsPath:O});if(!("inputs"in s))throw new ae({docsPath:O});if(!s.inputs||s.inputs.length===0)throw new ae({docsPath:O});return{args:oe(s.inputs,`0x${a.replace(r,"")}`),bytecode:r}}function Mr(e){const t=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),r=typeof e.blobs[0]=="string"?e.blobs.map(d=>z(d)):e.blobs,a=r.reduce((d,c)=>d+c.length,0),s=te(new Uint8Array(a));let n=!0;for(const[d,c]of r.entries()){const o=te(c),l=d===r.length-1;for(;n&&o.position<c.length;){o.incrementPosition(1);let h=31;c.length-o.position<31&&(h=c.length-o.position);for(const b in Array.from({length:h})){const i=o.readByte();if(l&&i===128&&!o.inspectBytes(o.remaining).includes(128)){n=!1;break}s.pushByte(i)}}}const u=s.bytes.slice(0,s.position);return t==="hex"?W(u):u}function zr(e){const{sidecars:t,version:r}=e,a=e.to??(typeof t[0].blob=="string"?"hex":"bytes"),s=[];for(const{commitment:n}of t)s.push(et({commitment:n,to:a,version:r}));return s}const sr=2147483648;function Hr(e){if(e===1)return 60n;if(e>=sr||e<0)throw new Ge({chainId:e});return BigInt((2147483648|e)>>>0)}function nr({blobToKzgCommitment:e,computeBlobKzgProof:t}){return{blobToKzgCommitment:e,computeBlobKzgProof:t}}function Gr(e,t){try{e.loadTrustedSetup(t)}catch(r){const a=r;if(!a.message.includes("trusted setup is already loaded"))throw a}return nr(e)}function $r({r:e,yParityAndS:t}){const r=z(t),a=r[0]&128?1:0,s=r;return a===1&&(s[0]&=127),{r:e,s:W(s),yParity:a}}function Or(e){const{r:t,s:r}=ce.Signature.fromCompact(e.slice(2,130));return{r:I(t,{size:32}),yParityAndS:I(r,{size:32})}}async function jr(e){const{serializedTransaction:t,signature:r}=e,a=$e(t),s=r??{r:a.r,s:a.s,v:a.v,yParity:a.yParity},n=tt({...a,r:void 0,s:void 0,v:void 0,yParity:void 0,sidecars:void 0});return await M({hash:D(n),signature:s})}function Vr({r:e,yParityAndS:t}){return`0x${new ce.Signature(re(e),re(t)).toCompactHex()}`}function Wr(e){const{r:t,s:r,v:a,yParity:s}=e,n=Number(s??a-27n);let u=r;if(n===1){const d=z(r);d[0]|=128,u=W(d)}return{r:t,yParityAndS:u}}export{ot as AbiConstructorNotFoundError,ae as AbiConstructorParamsNotFoundError,Rc as AbiDecodingDataSizeInvalidError,Pc as AbiDecodingDataSizeTooSmallError,_c as AbiDecodingZeroDataError,Bc as AbiEncodingArrayLengthMismatchError,kc as AbiEncodingBytesSizeMismatchError,Uc as AbiEncodingLengthMismatchError,qc as AbiErrorInputsNotFoundError,Nc as AbiErrorNotFoundError,Fc as AbiErrorSignatureNotFoundError,Lc as AbiEventNotFoundError,Dc as AbiEventSignatureEmptyTopicsError,Mc as AbiEventSignatureNotFoundError,zc as AbiFunctionNotFoundError,Hc as AbiFunctionOutputsNotFoundError,Gc as AbiFunctionSignatureNotFoundError,Yr as AccountStateConflictError,Zr as AtomicReadyWalletRejectedUpgradeError,Qr as AtomicityNotSupportedError,V as BaseError,Xr as BaseFeeScalarError,ea as BlockNotFoundError,ta as BundleFailedError,ra as BundleTooLargeError,$c as BytesSizeMismatchError,aa as CallExecutionError,sa as ChainDisconnectedError,ln as ChainDoesNotSupportContract,fn as ChainMismatchError,Ct as ChainNotConfiguredError,pn as ChainNotFoundError,na as CircularReferenceError,bn as ClientChainNotConfiguredError,oa as ContractFunctionExecutionError,ia as ContractFunctionRevertedError,ca as ContractFunctionZeroDataError,ua as CounterfactualDeploymentFailedError,Oc as DecodeLogDataMismatch,jc as DecodeLogTopicsMismatch,da as DuplicateIdError,Lr as EIP1193ProviderRpcError,ma as Eip1559FeesNotSupportedError,la as EnsAvatarInvalidNftUriError,fa as EnsAvatarUnsupportedNamespaceError,pa as EnsAvatarUriResolutionError,Ge as EnsInvalidChainIdError,ba as EstimateGasExecutionError,hn as ExecutionRevertedError,yn as FeeCapTooHighError,gn as FeeCapTooLowError,En as FeeConflictError,xn as FeePayerNonceMismatchError,ha as FilterTypeNotSupportedError,Ie as HttpRequestError,wn as InsufficientFundsError,In as IntegerOutOfRangeError,ya as InternalRpcError,Tn as IntrinsicGasTooHighError,vn as IntrinsicGasTooLowError,Vc as InvalidAbiDecodingTypeError,Wc as InvalidAbiEncodingTypeError,ga as InvalidAbiItemError,he as InvalidAbiParameterError,Ea as InvalidAbiParametersError,xa as InvalidAbiTypeParameterError,Cn as InvalidAddressError,Kc as InvalidArrayError,Sn as InvalidBytesBooleanError,An as InvalidChainIdError,Fr as InvalidDecimalNumberError,Jc as InvalidDefinitionTypeError,Yc as InvalidDomainError,wa as InvalidFunctionModifierError,Rn as InvalidHexBooleanError,Pn as InvalidHexValueError,Ia as InvalidInputRpcError,_n as InvalidLegacyVError,Ta as InvalidModifierError,va as InvalidParameterError,Ca as InvalidParamsRpcError,Sa as InvalidParenthesisError,Zc as InvalidPrimaryTypeError,Aa as InvalidRequestRpcError,Bn as InvalidSerializableTransactionError,kn as InvalidSerializedTransactionError,Un as InvalidSerializedTransactionTypeError,Ra as InvalidSignatureError,qn as InvalidStorageKeySizeError,Pa as InvalidStructSignatureError,Qc as InvalidStructTypeError,Xc as InvalidTypedDataTypeError,Nn as InvalidYParityError,_a as JsonRpcVersionUnsupportedError,Ba as LimitExceededRpcError,ka as MaxFeePerGasTooLowError,Ua as MethodNotFoundRpcError,qa as MethodNotSupportedRpcError,Fn as NonceMaxValueError,Ln as NonceTooHighError,Dn as NonceTooLowError,Na as ParseRpcError,Fa as ProviderDisconnectedError,La as ProviderRpcError,Da as RawContractError,Ma as ResourceNotFoundRpcError,za as ResourceUnavailableRpcError,Ha as ResponseBodyTooLargeError,Mn as RlpDepthLimitExceededError,zn as RlpListBoundaryExceededError,Hn as RlpTrailingBytesError,Ga as RpcError,He as RpcRequestError,Gn as SizeExceedsPaddingSizeError,$n as SizeOverflowError,On as SliceOffsetOutOfBoundsError,L as SocketClosedError,$a as SolidityProtectedKeywordError,Oa as StateAssignmentConflictError,ja as SwitchChainError,Ce as TimeoutError,jn as TipAboveFeeCapError,Vn as TransactionExecutionError,Wn as TransactionNotFoundError,Kn as TransactionReceiptNotFoundError,Va as TransactionRejectedRpcError,Jn as TransactionTypeNotSupportedError,St as TransportNotConfiguredError,Wa as UnauthorizedProviderError,Ka as UnknownBundleIdError,Yn as UnknownNodeError,Ja as UnknownRpcError,Ya as UnknownSignatureError,Za as UnknownTypeError,Qa as UnsupportedChainIdError,Xa as UnsupportedNonOptionalCapabilityError,eu as UnsupportedPackedAbiType,es as UnsupportedProviderMethodError,Me as UrlRequiredError,ts as UserRejectedRequestError,rs as WaitForCallsStatusTimeoutError,Zn as WaitForTransactionReceiptTimeoutError,Q as WebSocketRequestError,as as assertCurrentChain,ss as assertRequest,Qn as assertTransactionEIP1559,Xn as assertTransactionEIP2930,eo as assertTransactionLegacy,to as blobsToCommitments,ro as blobsToProofs,ao as boolToBytes,so as boolToHex,ns as bytesToBigInt,os as bytesToBool,W as bytesToHex,is as bytesToNumber,no as bytesToRlp,cs as bytesToString,it as ccipFetch,xr as ccipReadTunnel,it as ccipRequest,oo as checksumAddress,et as commitmentToVersionedHash,io as commitmentsToVersionedHashes,Vr as compactSignatureToHex,$r as compactSignatureToSignature,Ve as concat,co as concatBytes,uo as concatHex,ie as createClient,_r as createClientResolver,_u as createNonceManager,ir as createPublicClient,Br as createTestClient,ze as createTransport,us as createWalletClient,wc as custom,oe as decodeAbiParameters,Dr as decodeDeployData,xe as decodeErrorResult,ds as decodeEventLog,ms as decodeFunctionData,ge as decodeFunctionResult,xu as defineBlock,br as defineChain,nr as defineKzg,wu as defineTransaction,Iu as defineTransactionReceipt,ls as defineTransactionRequest,fs as deploylessCallViaBytecodeBytecode,ps as deploylessCallViaFactoryBytecode,tu as domainSeparator,ru as encodeAbiParameters,bs as encodeDeployData,hs as encodeErrorResult,ys as encodeEventTopics,Ee as encodeFunctionData,gs as encodeFunctionResult,pu as encodePacked,Es as erc1155Abi,xs as erc20Abi,ws as erc20Abi_bytes32,Is as erc4626Abi,Ts as erc6492SignatureValidatorAbi,vs as erc6492SignatureValidatorByteCode,Cs as erc721Abi,Ss as ethAddress,Ur as etherUnits,Tu as extendSchema,yr as extractChain,Tc as fallback,vu as formatBlock,mo as formatEther,lo as formatGwei,Cu as formatLog,Su as formatTransaction,Au as formatTransactionReceipt,De as formatTransactionRequest,As as formatUnits,Mr as fromBlobs,Rs as fromBytes,fo as fromHex,Ps as fromRlp,_s as getAbiItem,k as getAddress,Bs as getChainContractAddress,Pr as getContract,Er as getContractAddress,ks as getContractError,ut as getCreate2Address,ct as getCreateAddress,Us as getEventSelector,qs as getEventSignature,Ns as getFunctionSelector,Fs as getFunctionSignature,Ls as getSerializedTransactionType,po as getTransactionType,au as getTypesForEIP712Domain,qr as gweiUnits,su as hashDomain,st as hashMessage,nu as hashStruct,nt as hashTypedData,re as hexToBigInt,bo as hexToBool,z as hexToBytes,Or as hexToCompactSignature,ee as hexToNumber,ho as hexToRlp,Uu as hexToSignature,yo as hexToString,cr as http,go as isAddress,j as isAddressEqual,se as isBytes,wt as isErc6492Signature,It as isErc8010Signature,Ds as isHash,Ye as isHex,D as keccak256,Ms as labelhash,Eo as maxInt104,xo as maxInt112,wo as maxInt120,Io as maxInt128,To as maxInt136,vo as maxInt144,Co as maxInt152,So as maxInt16,Ao as maxInt160,Ro as maxInt168,Po as maxInt176,_o as maxInt184,Bo as maxInt192,ko as maxInt200,Uo as maxInt208,qo as maxInt216,No as maxInt224,Fo as maxInt232,Lo as maxInt24,Do as maxInt240,Mo as maxInt248,zo as maxInt256,Ho as maxInt32,Go as maxInt40,$o as maxInt48,Oo as maxInt56,jo as maxInt64,Vo as maxInt72,Wo as maxInt8,Ko as maxInt80,Jo as maxInt88,Yo as maxInt96,Zo as maxUint104,Qo as maxUint112,Xo as maxUint120,ei as maxUint128,ti as maxUint136,ri as maxUint144,ai as maxUint152,si as maxUint16,ni as maxUint160,oi as maxUint168,ii as maxUint176,ci as maxUint184,ui as maxUint192,di as maxUint200,mi as maxUint208,li as maxUint216,fi as maxUint224,pi as maxUint232,bi as maxUint24,hi as maxUint240,yi as maxUint248,gi as maxUint256,Ei as maxUint32,xi as maxUint40,wi as maxUint48,Ii as maxUint56,Ti as maxUint64,vi as maxUint72,Ci as maxUint8,Si as maxUint80,Ai as maxUint88,Ri as maxUint96,Pi as minInt104,_i as minInt112,Bi as minInt120,ki as minInt128,Ui as minInt136,qi as minInt144,Ni as minInt152,Fi as minInt16,Li as minInt160,Di as minInt168,Mi as minInt176,zi as minInt184,Hi as minInt192,Gi as minInt200,$i as minInt208,Oi as minInt216,ji as minInt224,Vi as minInt232,Wi as minInt24,Ki as minInt240,Ji as minInt248,Yi as minInt256,Zi as minInt32,Qi as minInt40,Xi as minInt48,ec as minInt56,tc as minInt64,rc as minInt72,ac as minInt8,sc as minInt80,nc as minInt88,oc as minInt96,zs as multicall3Abi,Hs as namehash,Bu as nonceManager,ic as numberToBytes,I as numberToHex,hu as offchainLookup,yu as offchainLookupAbiItem,gu as offchainLookupSignature,Oe as pad,cc as padBytes,uc as padHex,Gs as parseAbi,$s as parseAbiItem,gr as parseAbiParameter,Os as parseAbiParameters,Or as parseCompactSignature,Ir as parseErc6492Signature,Tr as parseErc8010Signature,Du as parseEther,js as parseEventLogs,Rr as parseGwei,qu as parseSignature,$e as parseTransaction,Vs as parseUnits,Ws as prepareEncodeFunctionData,ou as presignMessagePrefix,Ks as publicActions,M as recoverAddress,Tt as recoverMessageAddress,Js as recoverPublicKey,jr as recoverTransactionAddress,vt as recoverTypedDataAddress,wr as ripemd160,Ys as rpcSchema,Zs as rpcTransactionType,dc as serializeAccessList,Vr as serializeCompactSignature,Fu as serializeErc6492Signature,vr as serializeErc8010Signature,iu as serializeSignature,tt as serializeTransaction,cu as serializeTypedData,mc as setErrorConfig,Gr as setupKzg,lc as sha256,vc as shouldThrow,zr as sidecarsToVersionedHashes,Wr as signatureToCompactSignature,uu as signatureToHex,fc as size,je as slice,pc as sliceBytes,Qe as sliceHex,bc as stringToBytes,hc as stringToHex,du as stringify,ar as testActions,yc as toBlobSidecars,gc as toBlobs,B as toBytes,Hr as toCoinType,Qs as toEventHash,Xs as toEventSelector,en as toEventSignature,tn as toFunctionHash,rn as toFunctionSelector,an as toFunctionSignature,Ze as toHex,mu as toPrefixedMessage,We as toRlp,Ru as transactionType,Ec as trim,sn as universalSignatureValidatorAbi,nn as universalSignatureValidatorByteCode,lu as validateTypedData,Cr as verifyHash,Sr as verifyMessage,Ar as verifyTypedData,on as walletActions,kr as webSocket,Nr as weiUnits,cn as withCache,un as withRetry,ve as withTimeout,dn as zeroAddress,Sc as zeroHash};
|