@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.
Files changed (586) hide show
  1. package/README.md +4 -2
  2. package/docs/app-to-agent.md +48 -46
  3. package/package.json +6 -5
  4. package/site/dist/assets/AccountNotFoundScreen-C4njXc69-DyVH4CEz.js +1 -0
  5. package/site/dist/assets/AddFundsSelectionScreen-RAoCn7ej-Dz1--SS9.js +31 -0
  6. package/site/dist/assets/Address-H8kD1d9O-BdFZmRwI.js +17 -0
  7. package/site/dist/assets/AffirmativeConsentScreen-BG0MJxku-CxaCAisL.js +6 -0
  8. package/site/dist/assets/AllowlistRejectionScreen-Cae6e1Od-JGk7vndN.js +1 -0
  9. package/site/dist/assets/ApiController-CTLbMCcH.js +5 -0
  10. package/site/dist/assets/ArrowsRightLeftIcon-B8g9adpz.js +1 -0
  11. package/site/dist/assets/AuthenticateWithWalletScreen-CU6hIcFT-CXD9_OP8.js +1 -0
  12. package/site/dist/assets/AwaitingEvmToSolBridgingScreen-D0e_sZMS-BtJCglvU.js +1 -0
  13. package/site/dist/assets/AwaitingExternalEthereumTransferScreen-ur5HL4R7-BgC2TsqH.js +1 -0
  14. package/site/dist/assets/AwaitingPasswordlessCodeScreen-DRHz76mM-B9OzLeEO.js +103 -0
  15. package/site/dist/assets/AwaitingSolToEvmBridgingScreen-CdLRrGD2-C7r5snUL.js +1 -0
  16. package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-BTV0NRio.js +68 -0
  17. package/site/dist/assets/CaptchaScreen-DbpvkIGx-7rSZIuM-.js +1 -0
  18. package/site/dist/assets/CheckCircleIcon-B1l17ioc.js +1 -0
  19. package/site/dist/assets/CheckCircleIcon-BGSI8nKf.js +1 -0
  20. package/site/dist/assets/Checkbox-D1EDeo41-BUfq0w99.js +52 -0
  21. package/site/dist/assets/ChevronDownIcon-B6uJvPHu.js +1 -0
  22. package/site/dist/assets/Chip-CZKIKt9K-r9Nk__0-.js +26 -0
  23. package/site/dist/assets/CoinbaseOnrampStatusScreen-BbyCJDXL-DWWNHxmR.js +16 -0
  24. package/site/dist/assets/ConnectEmailForm-B-VRE0MN-CRQwS0Xu.js +3 -0
  25. package/site/dist/assets/ConnectLedgerScreen-DWHABGot-CZcCt31O.js +10 -0
  26. package/site/dist/assets/ConnectOnlyLandingScreen-CZYx9Bmp-C5IOf-SQ.js +1 -0
  27. package/site/dist/assets/ConnectOnlyStatusScreen-DCRzjxHx-cwg74F3A.js +1 -0
  28. package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-D28oeK6b.js +1 -0
  29. package/site/dist/assets/ConnectPhoneForm-Dek5xn4C-EEdkKeTp.js +95 -0
  30. package/site/dist/assets/ConnectWalletView-DqI-PTvX-C2mEzukj.js +74 -0
  31. package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-CH_7r8iV.js +7 -0
  32. package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-Z33kis0B.js +1 -0
  33. package/site/dist/assets/ConnectorUtil-DH4NePk5.js +21 -0
  34. package/site/dist/assets/ConstantsUtil-DmLsRHAl.js +198 -0
  35. package/site/dist/assets/CopyToClipboard-i_OQSBJr-_G88JCVR.js +39 -0
  36. package/site/dist/assets/CopyableText-CQapvaMr-CGGfc_zM.js +28 -0
  37. package/site/dist/assets/CrossAppAuthScreen-CLw7ymZq-C9Okoc0V.js +1 -0
  38. package/site/dist/assets/CustomLandingScreenView-Cm_MBSyX-D2l6hdSl.js +22 -0
  39. package/site/dist/assets/DelegatedActionsConsentScreen-DYF2U4y5-Dda3KKqS.js +1 -0
  40. package/site/dist/assets/DelegatedActionsRevokeScreen-bPp6Uwyh-DG8kJPt1.js +1 -0
  41. package/site/dist/assets/DepositAddressAddressStepView-4vdkb55L-CcOUfn6f.js +187 -0
  42. package/site/dist/assets/DepositAddressScreen-DBLRs7aI-DeituDNh.js +8 -0
  43. package/site/dist/assets/DepositAddressV3Screen-CDqIEMQw-FDg6K14-.js +1 -0
  44. package/site/dist/assets/{EmailInputForm-Cqo1mda8-CZD4r5LM.js → EmailInputForm-Cqo1mda8-BmbxvPHC.js} +11 -11
  45. package/site/dist/assets/EmbeddedWalletConnectingScreen-D4T7DUzs-B05CQ9rx.js +1 -0
  46. package/site/dist/assets/EmbeddedWalletCreatedScreen-D7WhW5ve-Cxd1b9XH.js +1 -0
  47. package/site/dist/assets/EmbeddedWalletKeyExportScreen-CqV4NYQ3-CrJy0ViX.js +23 -0
  48. package/site/dist/assets/EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-Bakaa3zu.js +1 -0
  49. package/site/dist/assets/EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-j78vKrcj.js +1 -0
  50. package/site/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-D3dr7W9_.js +1 -0
  51. package/site/dist/assets/EnrollTotp-Dibew4dp-BXbYV8nI.js +66 -0
  52. package/site/dist/assets/EnvelopeIcon-DjPofnRI.js +1 -0
  53. package/site/dist/assets/ErrorBanner-BcpGRt0h-BhH6_V-9.js +21 -0
  54. package/site/dist/assets/{ErrorMessage-D8VaAP5m-oSruKN8L.js → ErrorMessage-D8VaAP5m-Bs7uX2a9.js} +2 -2
  55. package/site/dist/assets/ErrorScreen-DipdTWzE-BgPRgnOb.js +4 -0
  56. package/site/dist/assets/ErrorScreen-DipdTWzE-CvxXC6pz.js +1 -0
  57. package/site/dist/assets/ExclamationCircleIcon-BE-WGrut.js +1 -0
  58. package/site/dist/assets/ExclamationTriangleIcon-Ca1Xlc_f.js +1 -0
  59. package/site/dist/assets/FarcasterConnectStatusScreen-51tjUxqq-De2JvZdV.js +75 -0
  60. package/site/dist/assets/FarcasterSignerStatusScreen-6x-Uh95G-bLp3hXoO.js +28 -0
  61. package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-Jr6D6JiZ.js +491 -0
  62. package/site/dist/assets/FingerPrintIcon-DOCbS93y.js +1 -0
  63. package/site/dist/assets/FundSolWalletWithExternalSolanaWallet-WtLwYaOl-A_G5kfa1.js +1 -0
  64. package/site/dist/assets/FundWalletMethodHeader-BWNkokCT-LPv35wkD.js +1 -0
  65. package/site/dist/assets/FundWithBankDepositScreen-DajkHxBD-0hfGrfvf.js +58 -0
  66. package/site/dist/assets/FundingEditAmountScreen-CpvpiO4M-Dz0s_NWR.js +1 -0
  67. package/site/dist/assets/FundingMethodSelectionScreen-Db7vhRlE-ZGm-3-Io.js +1 -0
  68. package/site/dist/assets/GlobeAltIcon-BBRl2MMn.js +1 -0
  69. package/site/dist/assets/GooglePay-B53WnudL-BGiVpB8y.js +1 -0
  70. package/site/dist/assets/HCaptchaWrapper-CUi9LJsp-CHdfIeD_.js +4 -0
  71. package/site/dist/assets/InAppBrowserLoginNotPossible-BMR9br1T-Cgoiow3m.js +1 -0
  72. package/site/dist/assets/InfoBanner-Cb3p1z12-_YqQmRiu.js +22 -0
  73. package/site/dist/assets/InjectedWalletIcon-DLcYOGDj-tuIrKQHH.js +1 -0
  74. package/site/dist/assets/InstallWalletScreen-DTA8dwLv-BMU_wa61.js +1 -0
  75. package/site/dist/assets/{JsonTree-BHzNC-ic-pAEq1bl9.js → JsonTree-BHzNC-ic-DcVr0YF0.js} +3 -3
  76. package/site/dist/assets/{LabelXs-oqZNqbm_-D09YjVR4.js → LabelXs-oqZNqbm_-CNprGVQM.js} +2 -2
  77. package/site/dist/assets/LandingScreen-CGWUoSUG-fH6rsQen.js +1 -0
  78. package/site/dist/assets/{Layouts-BMRfo5hw-D2u1-w8g.js → Layouts-BMRfo5hw-e-sepi6F.js} +16 -16
  79. package/site/dist/assets/Link-BdDilT2T-BdwlRJch.js +40 -0
  80. package/site/dist/assets/LinkConflictScreen-C3ZEPsgl-BXKN2Qm5.js +77 -0
  81. package/site/dist/assets/LinkEmailScreen-dKo9frwc-Cyn7Q8p1.js +1 -0
  82. package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-CWiqnwLM.js +117 -0
  83. package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-YmDevJzf.js +1 -0
  84. package/site/dist/assets/LinkPhoneScreen-oIUpfj0w-h7shW-Ay.js +1 -0
  85. package/site/dist/assets/Loader-UAZqxsnw-DJEVblm1.js +62 -0
  86. package/site/dist/assets/{LoadingSkeleton-BMsgO5PV-BRMh4Fv4.js → LoadingSkeleton-BMsgO5PV-D2atjsP5.js} +6 -6
  87. package/site/dist/assets/LockClosedIcon-9EFzWK1C.js +1 -0
  88. package/site/dist/assets/LoginFailedScreen-CN0dJV6U-By3Si77a.js +1 -0
  89. package/site/dist/assets/ManualTransferScreen-CHqcuqbs-BAHPY8rs.js +1 -0
  90. package/site/dist/assets/MfaAuthEnrollmentFlowScreen-Dj7gPTRC-CLjffFG1.js +1 -0
  91. package/site/dist/assets/MfaAuthVerifyFlowScreen-DbFpyWMy-BmQg1Y61.js +1 -0
  92. package/site/dist/assets/MfaEnrollmentFlowScreen-DhLnGgnr-DmBtTtlw.js +1 -0
  93. package/site/dist/assets/MfaVerifyFlowScreen-C_XPjMRP-4a683Bmf.js +1 -0
  94. package/site/dist/assets/ModalFooter-BCuEK_nz-C_71qsaz.js +403 -0
  95. package/site/dist/assets/MoonpayStatusScreen-CzTUtokc-DEHHcEf8.js +16 -0
  96. package/site/dist/assets/OAuthStatusScreen-ufbOa-da-BjAb_WsY.js +1 -0
  97. package/site/dist/assets/OpenLink-CUpJ1mOr-BLWFsPOW.js +39 -0
  98. package/site/dist/assets/PasskeySelectSignupOrLogin-xh2ScC_l-2PJTJxX-.js +1 -0
  99. package/site/dist/assets/PasskeyStatusScreen-Bla8MaOk-DCEg761l.js +6 -0
  100. package/site/dist/assets/PasswordRecoveryScreen-awGXZkQk-8nVjNc8k.js +20 -0
  101. package/site/dist/assets/{PhArrowCircleDown-BtlNV0TZ.js → PhArrowCircleDown-D97G-BOA.js} +5 -5
  102. package/site/dist/assets/PhArrowClockwise-DVgyFuez.js +14 -0
  103. package/site/dist/assets/PhArrowDown-87b1BizM.js +14 -0
  104. package/site/dist/assets/PhArrowLeft-Da0MfnbK.js +14 -0
  105. package/site/dist/assets/PhArrowRight-AdrIL4DW.js +14 -0
  106. package/site/dist/assets/{PhArrowSquareOut-DnQ7n_B4.js → PhArrowSquareOut-Bk2CMG3I.js} +5 -5
  107. package/site/dist/assets/PhArrowUp-4sgyKPGx.js +14 -0
  108. package/site/dist/assets/PhArrowUpRight-BNghD2zq.js +14 -0
  109. package/site/dist/assets/{PhArrowsClockwise-Brtx2Re-.js → PhArrowsClockwise-BXRn1GEl.js} +5 -5
  110. package/site/dist/assets/{PhArrowsDownUp-PZosTqZG.js → PhArrowsDownUp-DM09Jo_3.js} +5 -5
  111. package/site/dist/assets/PhArrowsLeftRight-MuKBLUoF.js +14 -0
  112. package/site/dist/assets/{PhBank-hhPAIPVb.js → PhBank-fHbgCqqZ.js} +5 -5
  113. package/site/dist/assets/PhBrowser-2-9m-AkM.js +14 -0
  114. package/site/dist/assets/PhCaretDown-BDNabFuL.js +14 -0
  115. package/site/dist/assets/PhCaretLeft-CI460R-A.js +14 -0
  116. package/site/dist/assets/PhCaretRight-D7ZS3Ls8.js +14 -0
  117. package/site/dist/assets/PhCaretUp-C-iIfyvO.js +14 -0
  118. package/site/dist/assets/PhCheck-DxQXn57r.js +14 -0
  119. package/site/dist/assets/{PhCircleHalf-Bk9C4DvT.js → PhCircleHalf-MJZeRBGF.js} +5 -5
  120. package/site/dist/assets/PhClock-x3MS3Mwi.js +14 -0
  121. package/site/dist/assets/{PhCompass-Df1ugFO-.js → PhCompass-hYn3HhGN.js} +5 -5
  122. package/site/dist/assets/PhCopy-CWNYcABI.js +14 -0
  123. package/site/dist/assets/{PhCreditCard-CZpdid2n.js → PhCreditCard-Fy4pzwtt.js} +5 -5
  124. package/site/dist/assets/{PhCurrencyDollar-B6IKKjue.js → PhCurrencyDollar-BgiaenCi.js} +5 -5
  125. package/site/dist/assets/{PhDesktop-BuCDXYJj.js → PhDesktop-CxrzCSv5.js} +5 -5
  126. package/site/dist/assets/PhDeviceMobile-CsyA5Goi.js +14 -0
  127. package/site/dist/assets/PhDotsThree-D-k1BiYg.js +14 -0
  128. package/site/dist/assets/PhEnvelope-D8kzeNox.js +14 -0
  129. package/site/dist/assets/PhFunnelSimple-CfQs5DAW.js +14 -0
  130. package/site/dist/assets/{PhGlobe-q1mqj65V.js → PhGlobe-DvmSc9_A.js} +5 -5
  131. package/site/dist/assets/{PhIdentificationCard-BeLXJpfZ.js → PhIdentificationCard-CfkZm-5K.js} +5 -5
  132. package/site/dist/assets/{PhImage-BYrKfN9k.js → PhImage-Cf0J2ZfJ.js} +5 -5
  133. package/site/dist/assets/{PhInfo-X33f06Ej.js → PhInfo-Bwi51-2X.js} +5 -5
  134. package/site/dist/assets/{PhLightbulb-DMZJsowR.js → PhLightbulb-C4FZV7Es.js} +5 -5
  135. package/site/dist/assets/PhMagnifyingGlass-C9u8jSCJ.js +14 -0
  136. package/site/dist/assets/{PhPaperPlaneRight-Dvo-nXr9.js → PhPaperPlaneRight-zxQVvPLX.js} +5 -5
  137. package/site/dist/assets/PhPlus-C4UoW-2n.js +14 -0
  138. package/site/dist/assets/{PhPower-D8-AcNM6.js → PhPower-CFyWDmgD.js} +5 -5
  139. package/site/dist/assets/{PhPuzzlePiece-C-7mYqGO.js → PhPuzzlePiece-BjoNVfST.js} +5 -5
  140. package/site/dist/assets/{PhQrCode-uIXlI5ER.js → PhQrCode-CP3tFauY.js} +5 -5
  141. package/site/dist/assets/{PhQuestion-rUoqC2sC.js → PhQuestion-wOWJBd3G.js} +5 -5
  142. package/site/dist/assets/{PhQuestionMark-W55Txvvb.js → PhQuestionMark-CV0k9C0Y.js} +5 -5
  143. package/site/dist/assets/{PhSealCheck-BeVLq9PH.js → PhSealCheck-vIKzREuN.js} +5 -5
  144. package/site/dist/assets/{PhSignOut-Cq2PivQ6.js → PhSignOut-CxELV-i0.js} +5 -5
  145. package/site/dist/assets/{PhSpinner-CZMtAFdX.js → PhSpinner-CGDmbzUd.js} +5 -5
  146. package/site/dist/assets/{PhTrash-BamrmMsN.js → PhTrash-C9PD0SAt.js} +5 -5
  147. package/site/dist/assets/{PhUser-A2fxqIV0.js → PhUser-0sWNXQeZ.js} +5 -5
  148. package/site/dist/assets/{PhVault-B8m1usHw.js → PhVault-6JTskUcC.js} +5 -5
  149. package/site/dist/assets/{PhWarning-CpkID9oi.js → PhWarning-CoKs3gz6.js} +5 -5
  150. package/site/dist/assets/PhWarningCircle-BXHw1fCt.js +14 -0
  151. package/site/dist/assets/PhX-DX0SFIqC.js +14 -0
  152. package/site/dist/assets/PhoneIcon-CZ47md80.js +1 -0
  153. package/site/dist/assets/PinInput-DbZ0b1i1-BrTXu3Km.js +247 -0
  154. package/site/dist/assets/PrivyPluginContext-DA-yS5vO-CY60yubk.js +1 -0
  155. package/site/dist/assets/QrCode-DbnZwlkH-CcMrWV5D.js +22 -0
  156. package/site/dist/assets/RecoveryOAuthStatusScreen-CsgtTI2x-DgeDnHOK.js +1 -0
  157. package/site/dist/assets/RecoveryPasswordCreateScreen-Be-qJ-LU-CvJJwLhK.js +1 -0
  158. package/site/dist/assets/RecoverySelectionScreen-D1iGtpmi-CADtGtSV.js +7 -0
  159. package/site/dist/assets/SIWXUtil-Cpiv91-M.js +1 -0
  160. package/site/dist/assets/{Screen-D30meWsY-DDum2qlY.js → Screen-D30meWsY-vEusJ7KX.js} +22 -22
  161. package/site/dist/assets/{ScreenHeader-CHmc4-Lu-BqrAEXbV.js → ScreenHeader-CHmc4-Lu-BvGTLg53.js} +4 -4
  162. package/site/dist/assets/ScreenLayout-OwaQQcxH-cfOTmyl0.js +1 -0
  163. package/site/dist/assets/{SelectSourceAsset-CWFog6gm-8iXuqbAs.js → SelectSourceAsset-CWFog6gm-DxYklZYs.js} +18 -18
  164. package/site/dist/assets/SetAutomaticRecoveryScreen-BO_OEqAZ-oeqeo05x.js +14 -0
  165. package/site/dist/assets/SetWalletPasswordForm-DwCTVtAh-BxFee9UA.js +11 -0
  166. package/site/dist/assets/ShieldCheckIcon-eFjsosCA.js +1 -0
  167. package/site/dist/assets/SignRequestScreen-BHKv32KR-z8ixfIma.js +26 -0
  168. package/site/dist/assets/SolanaWalletConnector-C7Lqk-Wz-Bc_lvdiF.js +1 -0
  169. package/site/dist/assets/{StackedContainer-B2vaEl56-C-ojzCoQ.js → StackedContainer-B2vaEl56-Do5dXB8-.js} +2 -2
  170. package/site/dist/assets/StandardSignAndSendTransactionScreen-CfhIXVtd-DudetZAc.js +20 -0
  171. package/site/dist/assets/{Subtitle-CV-2yKE4-o-1FQLlX.js → Subtitle-CV-2yKE4-DV0o1av3.js} +2 -2
  172. package/site/dist/assets/TelegramAuthScreen-UL9zLfO8-Bo3sONvf.js +1 -0
  173. package/site/dist/assets/{Title-BnzYV3Is-RX1f0RV-.js → Title-BnzYV3Is-C3qOPnO_.js} +2 -2
  174. package/site/dist/assets/TodoList-DnyULl18-BvxvubbF.js +36 -0
  175. package/site/dist/assets/TransactionDetails-e9nesl30-WWflkOIi.js +109 -0
  176. package/site/dist/assets/TransactionErrorView-BDBNqA_f-CotYKcgf.js +178 -0
  177. package/site/dist/assets/TransferFromWalletScreen-Qvn1Yuno-sVFlWqa8.js +31 -0
  178. package/site/dist/assets/TransferOrBridgeLoadingScreen-Dl1I_iIz-CV2-mY19.js +6 -0
  179. package/site/dist/assets/TurnstileWrapper-B7sNddys-oPbuMTQt.js +1 -0
  180. package/site/dist/assets/UpdateEmailScreen-DVOhPV0H-D_mjSpAy.js +1 -0
  181. package/site/dist/assets/UpdatePhoneScreen-CXRswTNZ-6RLG0ahv.js +1 -0
  182. package/site/dist/assets/UserLimitReachedScreen-5we2DHn8-CaVN0bti.js +1 -0
  183. package/site/dist/assets/{Value-DTgR824E-DZpvBCWi.js → Value-DTgR824E-Bp6WGZZm.js} +7 -7
  184. package/site/dist/assets/WalletCards-DH1rqayz-D3cOTb9x.js +1 -0
  185. package/site/dist/assets/WalletIcon-DOIZhb2l.js +1 -0
  186. package/site/dist/assets/WalletInfoCard-sq_2wgFg-bOqfl5MA.js +29 -0
  187. package/site/dist/assets/WalletInterstitialScreen-Sh7LfsAh-DWaVkMCA.js +1 -0
  188. package/site/dist/assets/WalletLink-DK5LB5Ha-DjUZvqs-.js +20 -0
  189. package/site/dist/assets/WalletOverflowButton-bfCnp-9T-B6P7DQXA.js +1 -0
  190. package/site/dist/assets/WarningBanner-ZZqCEtZK-Bc2YKZb7.js +21 -0
  191. package/site/dist/assets/__vite-browser-external-NciY4Vu1.js +1 -0
  192. package/site/dist/assets/_esm-BZP3cXTv.js +1 -0
  193. package/site/dist/assets/_esm-ZmzBJpEs.js +6 -0
  194. package/site/dist/assets/accounts-D4AXF17G.js +1 -0
  195. package/site/dist/assets/accounts-IkdFx9nq.js +1 -0
  196. package/site/dist/assets/analytics-mkkvFRju-BRBcadka.js +1 -0
  197. package/site/dist/assets/baseSepolia-Bn1j1Ysw.js +1 -0
  198. package/site/dist/assets/basic-Cz1YiCSk.js +1575 -0
  199. package/site/dist/assets/capitalizeFirstLetter-DmLYqXsO-DtOXx-2n.js +1 -0
  200. package/site/dist/assets/ccip-B1J3oTZx.js +7 -0
  201. package/site/dist/assets/ccip-Bd7261zy.js +1 -0
  202. package/site/dist/assets/ccip-D6EHKpjI.js +1 -0
  203. package/site/dist/assets/chain-scefkYIH.js +5 -0
  204. package/site/dist/assets/check-DHnllI8N.js +1 -0
  205. package/site/dist/assets/chevron-down-1y-r4bGO.js +1 -0
  206. package/site/dist/assets/circle-alert-OwxamXUX.js +1 -0
  207. package/site/dist/assets/circle-check-big-3sZGVC10.js +1 -0
  208. package/site/dist/assets/circle-x-DQjNUV9J.js +1 -0
  209. package/site/dist/assets/client-B-BpRtwY.js +1 -0
  210. package/site/dist/assets/client-BfIR1FvH.js +9 -0
  211. package/site/dist/assets/coinbase-DCPC2L_R-YEuIn3jh.js +3 -0
  212. package/site/dist/assets/copy-DMOX_yn7.js +1 -0
  213. package/site/dist/assets/core-GIEmxmAa.js +12 -0
  214. package/site/dist/assets/createLucideIcon-BsERoFTA.js +1 -0
  215. package/site/dist/assets/defineChain-B-SQDLTG.js +1 -0
  216. package/site/dist/assets/dijkstra-CY95afk4.js +1 -0
  217. package/site/dist/assets/dist-CoS6E-3x.js +1 -0
  218. package/site/dist/assets/dist-Cp6IXeJd.js +1 -0
  219. package/site/dist/assets/dist-CrNxmdZj.js +1 -0
  220. package/site/dist/assets/dist-DYGtf4F0.js +16 -0
  221. package/site/dist/assets/embed.worker-Cnl4VGr3.js +1 -0
  222. package/site/dist/assets/errors-BQ3N-RVt-CZPAWCgC.js +1 -0
  223. package/site/dist/assets/esm-C3DslVJx.js +1 -0
  224. package/site/dist/assets/esm-Ci1ogKuK.js +1 -0
  225. package/site/dist/assets/esm-Co94ENUV.js +37 -0
  226. package/site/dist/assets/esm-bb8SANZh.js +1 -0
  227. package/site/dist/assets/esm-n2lWo7kz.js +1 -0
  228. package/site/dist/assets/ethers-zTjbodk5-Cs648CnD.js +1 -0
  229. package/site/dist/assets/eventemitter3-Dzc_0Uq2.js +1 -0
  230. package/site/dist/assets/external-link-BBPG3rG7.js +1 -0
  231. package/site/dist/assets/farcaster-DPlSjvF5-CzBCmgyL.js +1 -0
  232. package/site/dist/assets/features-CuiHbgEJ.js +2 -0
  233. package/site/dist/assets/fingerprint-pattern-CjLtyIxB.js +1 -0
  234. package/site/dist/assets/floating-ui.react-DmaCfayr.js +1 -0
  235. package/site/dist/assets/floating-ui.react-dom-CaoMF8mP.js +1 -0
  236. package/site/dist/assets/formatErc20TokenAmount-BuPk9xcy-BVqOKQif.js +1 -0
  237. package/site/dist/assets/formatter-CVbp4SlJ.js +1 -0
  238. package/site/dist/assets/get-entropy-details-for-user-dHRH5Gpi-BNiOFXbK.js +1 -0
  239. package/site/dist/assets/getChainName-DjpPdUSc-DUyKDrnp.js +1 -0
  240. package/site/dist/assets/getErc20Balance-jXNpFf0N-q4bV8kQq.js +1 -0
  241. package/site/dist/assets/getErc20TokenInfo-BNTrzLMP-DcnTFrXN.js +1 -0
  242. package/site/dist/assets/getFormattedUsdFromLamports-De3U9GlO-Gx4_wxON.js +1 -0
  243. package/site/dist/assets/getUsdcMintAddress-BVgm9GRo-r2UnDeEy.js +1 -0
  244. package/site/dist/assets/guards-BIW-GiMJ-D3tWTQAR.js +1 -0
  245. package/site/dist/assets/hooks.module-BYZGfwDl.js +1 -0
  246. package/site/dist/assets/hourglass-D_GfQdJr.js +1 -0
  247. package/site/dist/assets/id-UqEwL2BI-CTlvRMA5.js +1 -0
  248. package/site/dist/assets/index-BdEw5wyl-kLbhqLbv.js +1 -0
  249. package/site/dist/assets/index-C2h3EneX.js +8 -0
  250. package/site/dist/assets/{index-CWARkn2w-D6ikWJWj.js → index-CWARkn2w-DxuckIFn.js} +7 -7
  251. package/site/dist/assets/index-DvMddJcd-CNBb4VUn.js +12 -0
  252. package/site/dist/assets/index-YiCw0Y_x-Czl0tWfF.js +436 -0
  253. package/site/dist/assets/index.browser-B-i-Lj3J.js +1 -0
  254. package/site/dist/assets/index.browser-BMmUcykv.js +1 -0
  255. package/site/dist/assets/index.es-Crd0TyUS.js +2 -0
  256. package/site/dist/assets/index.es-DQbup1WG.js +3 -0
  257. package/site/dist/assets/isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js +1 -0
  258. package/site/dist/assets/jsx-runtime-CndCZlyt.js +1 -0
  259. package/site/dist/assets/landmark-BZPqMFEf.js +1 -0
  260. package/site/dist/assets/lib-DGtzi2DK.js +1 -0
  261. package/site/dist/assets/localBatchGatewayRequest-B71J8sQ9.js +29 -0
  262. package/site/dist/assets/lock-DyN_c-ud.js +1 -0
  263. package/site/dist/assets/logger-CsXm3oIv-B0UYpNFI.js +1 -0
  264. package/site/dist/assets/mail-V_mcPb64.js +1 -0
  265. package/site/dist/assets/modal-context-CwmSeFcv-DPWNJrfK.js +1 -0
  266. package/site/dist/assets/native-BKj27wfc.js +1 -0
  267. package/site/dist/assets/ofetch.CWycOUEr-Duby3iHT.js +1 -0
  268. package/site/dist/assets/parseAbi-Csg-8t59.js +2 -0
  269. package/site/dist/assets/parseAbiParameters-BWbIMYe4.js +1 -0
  270. package/site/dist/assets/parseEther-CHS0GNkM.js +1 -0
  271. package/site/dist/assets/pkce-DXF0yKjP-7_VY-d83.js +1 -0
  272. package/site/dist/assets/preload-helper-CRzLMJPS.js +1 -0
  273. package/site/dist/assets/privy-context-81KmsBw2-DiR6-Yq8.js +2 -0
  274. package/site/dist/assets/property-DuZ9DLP4.js +3 -0
  275. package/site/dist/assets/react-BfYA1q0G.js +1 -0
  276. package/site/dist/assets/react-CK2HRI1t.js +1 -0
  277. package/site/dist/assets/react-DxGeY8B8.js +1 -0
  278. package/site/dist/assets/react-auth-sHnipzbS.js +1 -0
  279. package/site/dist/assets/react-dom-BI2Koe4o.js +1 -0
  280. package/site/dist/assets/reservoir-x-nGuZkT-BguVFH3D.js +1 -0
  281. package/site/dist/assets/roles-BDPDWrwo.js +1 -0
  282. package/site/dist/assets/roles-DKPW79Ca.js +1 -0
  283. package/site/dist/assets/rolldown-runtime-Bjp52BOI.js +1 -0
  284. package/site/dist/assets/safe-url-D7SRPu33-CkMedGro.js +1 -0
  285. package/site/dist/assets/secp256k1-BeYL8aZl.js +1 -0
  286. package/site/dist/assets/secp256k1-Bh4MSkhz.js +1 -0
  287. package/site/dist/assets/secp256k1-Ci4cqHl0.js +1 -0
  288. package/site/dist/assets/secp256k1-DsxXqbXv.js +1 -0
  289. package/site/dist/assets/secp256k1-N9RUmafO.js +1 -0
  290. package/site/dist/assets/serializeAuthorizationList-DGMik9Wx.js +1 -0
  291. package/site/dist/assets/serializeSignature-CWKpxoab.js +2 -0
  292. package/site/dist/assets/sha2-C6s7zZmb.js +1 -0
  293. package/site/dist/assets/{shared-DRZUmnL5-MWD-C-pp.js → shared-DRZUmnL5-BewE5wK8.js} +33 -33
  294. package/site/dist/assets/{shared-FM0rljBt-c4eSjzGj.js → shared-FM0rljBt-CxLACri_.js} +6 -6
  295. package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js +1 -0
  296. package/site/dist/assets/simulateTransaction-CfuOrae4-PjA_tGjX.js +1 -0
  297. package/site/dist/assets/smartphone-3p8nFSTE.js +1 -0
  298. package/site/dist/assets/src-BBjkfi-Q.js +1 -0
  299. package/site/dist/assets/storage-Ufl800Ne-1qCR2JMO.js +8 -0
  300. package/site/dist/assets/stringify-DqUj9VzO.js +20 -0
  301. package/site/dist/assets/stripe.esm-DEi2D291.js +2 -0
  302. package/site/dist/assets/styles-BsotlekN-Aq27nZGc.js +9 -0
  303. package/site/dist/assets/{styles-Cm9H63WO-Cv1TbqYi.js → styles-Cm9H63WO-p_ic_dxE.js} +17 -17
  304. package/site/dist/assets/{styles-DVyDvTdj-CI4xZNHp.js → styles-DVyDvTdj-CjsWqAld.js} +8 -8
  305. package/site/dist/assets/{styles-hslXy6xG-DeVcFoDD.js → styles-hslXy6xG-D5QHIrJU.js} +23 -23
  306. package/site/dist/assets/telegram-B-JqnkqZ-Dqkm4rDn.js +1 -0
  307. package/site/dist/assets/to-ui-error-DWe-qwS3-Bi1HUQI9.js +4 -0
  308. package/site/dist/assets/toViemAccount-B5iDGq1b-CdFZwv07.js +2 -0
  309. package/site/dist/assets/transaction-BNTP-bFm-M5tJx8vY.js +1 -0
  310. package/site/dist/assets/transfer-6YztDh-t-BVQkTvG-.js +1 -0
  311. package/site/dist/assets/transformers.web-BTyOEJ0C.js +40 -0
  312. package/site/dist/assets/transformers.web-CUZUFjAK.js +49 -0
  313. package/site/dist/assets/triangle-alert-BG3Qw-Hq.js +1 -0
  314. package/site/dist/assets/twitch-5IOe4sIQ-CaXHFlAu.js +1 -0
  315. package/site/dist/assets/types-4CuOD23i.js +1 -0
  316. package/site/dist/assets/use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js +1 -0
  317. package/site/dist/assets/use-unlink-wallet-BKK4_5Ur-C0xQN_Lp.js +1 -0
  318. package/site/dist/assets/useActiveWallet-B-yZYGc6-BkK6rFBm.js +123 -0
  319. package/site/dist/assets/useGetSolPrice-x7gfUIHJ-CLVXqv6I.js +1 -0
  320. package/site/dist/assets/useGetTokenPrice-CaoUkb79-DAXXs3rs.js +1 -0
  321. package/site/dist/assets/useI18n-C-5n_noF-CGpkgIVy.js +1 -0
  322. package/site/dist/assets/useWalletBalance-CZnP5f_f-Cfd64m4n.js +1 -0
  323. package/site/dist/assets/useWallets-X1ndvJ_U-CAYqg7Za.js +1 -0
  324. package/site/dist/assets/utils-BkR7EQjg.js +1 -0
  325. package/site/dist/assets/utils-DJhBNOZA.js +1 -0
  326. package/site/dist/assets/utils-DdckVfQr.js +1 -0
  327. package/site/dist/assets/w3m-modal-B4H_uiPH.js +1174 -0
  328. package/site/dist/assets/wallet-BNI12IYk.js +1 -0
  329. package/site/dist/assets/wallet-CITSaPlB.js +2 -0
  330. package/site/dist/assets/wallet-connect-BvJtUsDt-CVlSNIXP.js +1 -0
  331. package/site/dist/assets/walletconnect-registry-xxG8XLCb-BpzpBq5s.js +1 -0
  332. package/site/dist/assets/walletconnect-v2-3frQFwbg-CzZ6oybX.js +12 -0
  333. package/site/dist/assets/{index-CztIxJB6.js → wui-ux-by-reown-XyHdtV1O.js} +296 -296
  334. package/site/dist/assets/x-gjDrY2rk.js +1 -0
  335. package/site/dist/index.html +5 -117
  336. package/site/worker.js +6 -30
  337. package/src/agent/mcp.js +47 -15
  338. package/src/agent/view-tools.js +3 -11
  339. package/src/agent/x402.js +3 -42
  340. package/src/discover/apps.js +37 -2
  341. package/src/discover/explore.js +19 -13
  342. package/src/publish/init.js +74 -0
  343. package/src/publish/ship.js +36 -79
  344. package/src/publish/view-cli.js +6 -3
  345. package/src/publish/view.js +27 -43
  346. package/template/.github/workflows/ship.yml +33 -0
  347. package/template/README.md +38 -0
  348. package/template/app.json +27 -0
  349. package/template/ci/ship.sh +21 -0
  350. package/template/eval/goals.md +7 -0
  351. package/template/eval/golden.jsonl +0 -0
  352. package/template/gitignore +3 -0
  353. package/template/package.json +8 -0
  354. package/site/dist/assets/AccountNotFoundScreen-C4njXc69-RUyAWRzV.js +0 -1
  355. package/site/dist/assets/AddFundsSelectionScreen-RAoCn7ej-ZV-LlYBe.js +0 -31
  356. package/site/dist/assets/Address-H8kD1d9O-CGQnt7Pu.js +0 -17
  357. package/site/dist/assets/AffirmativeConsentScreen-BG0MJxku-CKn2JLwq.js +0 -6
  358. package/site/dist/assets/AllowlistRejectionScreen-Cae6e1Od-9oIP9fma.js +0 -1
  359. package/site/dist/assets/ArrowsRightLeftIcon-BEhBD_6N.js +0 -1
  360. package/site/dist/assets/AuthenticateWithWalletScreen-CU6hIcFT-D1wLlSJs.js +0 -1
  361. package/site/dist/assets/AwaitingEvmToSolBridgingScreen-D0e_sZMS-CSBbHTyz.js +0 -1
  362. package/site/dist/assets/AwaitingExternalEthereumTransferScreen-ur5HL4R7-BsRq-xBt.js +0 -1
  363. package/site/dist/assets/AwaitingPasswordlessCodeScreen-DRHz76mM-BPdhsKvN.js +0 -103
  364. package/site/dist/assets/AwaitingSolToEvmBridgingScreen-CdLRrGD2-CEGNdrkr.js +0 -1
  365. package/site/dist/assets/BridgeNetworkSelectionView-CFGjB2nO-Da9P7eSx.js +0 -68
  366. package/site/dist/assets/CaptchaScreen-DbpvkIGx-BecgMnD_.js +0 -1
  367. package/site/dist/assets/CheckCircleIcon-DBiWFjO6.js +0 -1
  368. package/site/dist/assets/CheckCircleIcon-DzG2ROJZ.js +0 -1
  369. package/site/dist/assets/Checkbox-D1EDeo41-DMHcj9o_.js +0 -52
  370. package/site/dist/assets/ChevronDownIcon-2Os56gUt.js +0 -1
  371. package/site/dist/assets/Chip-CZKIKt9K-BWzs9fj5.js +0 -26
  372. package/site/dist/assets/CoinbaseOnrampStatusScreen-BbyCJDXL-CFvcSiDs.js +0 -16
  373. package/site/dist/assets/ConnectEmailForm-B-VRE0MN-BozkCg8q.js +0 -3
  374. package/site/dist/assets/ConnectLedgerScreen-DWHABGot-DaCnbBzh.js +0 -10
  375. package/site/dist/assets/ConnectOnlyLandingScreen-CZYx9Bmp-DUkCLkxD.js +0 -1
  376. package/site/dist/assets/ConnectOnlyStatusScreen-DCRzjxHx-Dv_5nMkZ.js +0 -1
  377. package/site/dist/assets/ConnectOrCreateScreen-CUUYUO07-DSGEeB3Y.js +0 -1
  378. package/site/dist/assets/ConnectPhoneForm-Dek5xn4C-C-s4s_Lq.js +0 -95
  379. package/site/dist/assets/ConnectWalletView-DqI-PTvX-BKX7fdYr.js +0 -74
  380. package/site/dist/assets/ConnectionStatusScreen-fUfROm9m-DSoAuMFZ.js +0 -7
  381. package/site/dist/assets/CopyToClipboard-i_OQSBJr-CZTXyfV0.js +0 -39
  382. package/site/dist/assets/CopyableText-CQapvaMr-DHO818I0.js +0 -28
  383. package/site/dist/assets/CrossAppAuthScreen-CLw7ymZq-DW4nRGfz.js +0 -1
  384. package/site/dist/assets/CustomLandingScreenView-Cm_MBSyX-DH8Nnb4Y.js +0 -22
  385. package/site/dist/assets/DelegatedActionsConsentScreen-DYF2U4y5-gfUS_uV5.js +0 -1
  386. package/site/dist/assets/DelegatedActionsRevokeScreen-bPp6Uwyh-DZj9HTHc.js +0 -1
  387. package/site/dist/assets/DepositAddressAddressStepView-4vdkb55L-eHYsDK9W.js +0 -187
  388. package/site/dist/assets/DepositAddressScreen-DBLRs7aI-DK_XVgVk.js +0 -8
  389. package/site/dist/assets/DepositAddressV3Screen-CDqIEMQw-6gRZzhLe.js +0 -1
  390. package/site/dist/assets/EmbeddedWalletConnectingScreen-D4T7DUzs-BZu2ae0k.js +0 -1
  391. package/site/dist/assets/EmbeddedWalletCreatedScreen-D7WhW5ve-86pviemJ.js +0 -1
  392. package/site/dist/assets/EmbeddedWalletKeyExportScreen-CqV4NYQ3-vDcvT53Y.js +0 -23
  393. package/site/dist/assets/EmbeddedWalletOnAccountCreateScreen-BoKb3Q2S-rNJAtSJc.js +0 -1
  394. package/site/dist/assets/EmbeddedWalletPasswordUpdateScreen-D3rMlqS7-I8Q95280.js +0 -1
  395. package/site/dist/assets/EmbeddedWalletPasswordUpdateSplashScreen-BPFkWJeE-Coi7OxoI.js +0 -1
  396. package/site/dist/assets/EnrollTotp-Dibew4dp-DC7FrDgo.js +0 -66
  397. package/site/dist/assets/EnvelopeIcon-DY6ERnW7.js +0 -1
  398. package/site/dist/assets/ErrorBanner-BcpGRt0h-BvESwN99.js +0 -21
  399. package/site/dist/assets/ErrorScreen-DipdTWzE-DnKGxH1Z.js +0 -4
  400. package/site/dist/assets/ExclamationCircleIcon-BZhlqH0r.js +0 -1
  401. package/site/dist/assets/ExclamationTriangleIcon-CkAOJIYV.js +0 -1
  402. package/site/dist/assets/FarcasterConnectStatusScreen-51tjUxqq-4pi7jooW.js +0 -75
  403. package/site/dist/assets/FarcasterSignerStatusScreen-6x-Uh95G-z2XCMaLL.js +0 -28
  404. package/site/dist/assets/FiatOnrampScreen-BAhYeiTI-CBVA9v1-.js +0 -491
  405. package/site/dist/assets/FingerPrintIcon-ra2dqmJO.js +0 -1
  406. package/site/dist/assets/FundSolWalletWithExternalSolanaWallet-WtLwYaOl-DwAwc6Ny.js +0 -1
  407. package/site/dist/assets/FundWalletMethodHeader-BWNkokCT-CZszQsZf.js +0 -1
  408. package/site/dist/assets/FundWithBankDepositScreen-DajkHxBD-DfX6nvFQ.js +0 -58
  409. package/site/dist/assets/FundingEditAmountScreen-CpvpiO4M-CDS_sk_t.js +0 -1
  410. package/site/dist/assets/FundingMethodSelectionScreen-Db7vhRlE-CPfNQemT.js +0 -1
  411. package/site/dist/assets/GlobeAltIcon-SEUEIe_E.js +0 -1
  412. package/site/dist/assets/GooglePay-B53WnudL-aap7zwag.js +0 -1
  413. package/site/dist/assets/HCaptchaWrapper-CUi9LJsp-DgSjCjQI.js +0 -4
  414. package/site/dist/assets/InAppBrowserLoginNotPossible-BMR9br1T-DO4wICml.js +0 -1
  415. package/site/dist/assets/InfoBanner-Cb3p1z12-CDWt2ADo.js +0 -22
  416. package/site/dist/assets/InjectedWalletIcon-DLcYOGDj-Ba19XoBr.js +0 -1
  417. package/site/dist/assets/InstallWalletScreen-DTA8dwLv-DGpewEch.js +0 -1
  418. package/site/dist/assets/LandingScreen-CGWUoSUG-CUOCWUXd.js +0 -1
  419. package/site/dist/assets/Link-BdDilT2T-BYiP1zvW.js +0 -40
  420. package/site/dist/assets/LinkConflictScreen-C3ZEPsgl-Tb6cAepT.js +0 -77
  421. package/site/dist/assets/LinkEmailScreen-dKo9frwc-pq0NF2JO.js +0 -1
  422. package/site/dist/assets/LinkPasskeyScreen-zbrl_AI_-D9MOmDqg.js +0 -117
  423. package/site/dist/assets/LinkPhoneScreen-oIUpfj0w-B80UJqAZ.js +0 -1
  424. package/site/dist/assets/LockClosedIcon-BqkoEL9J.js +0 -1
  425. package/site/dist/assets/LoginFailedScreen-CN0dJV6U-DlnOM-Kh.js +0 -1
  426. package/site/dist/assets/ManualTransferScreen-CHqcuqbs-DSShupq9.js +0 -1
  427. package/site/dist/assets/MfaAuthEnrollmentFlowScreen-Dj7gPTRC-DUPV_SLA.js +0 -1
  428. package/site/dist/assets/MfaAuthVerifyFlowScreen-DbFpyWMy-D96GpzXX.js +0 -1
  429. package/site/dist/assets/MfaEnrollmentFlowScreen-DhLnGgnr-CYQDa4ND.js +0 -1
  430. package/site/dist/assets/MfaVerifyFlowScreen-C_XPjMRP-CJtSAXGN.js +0 -1
  431. package/site/dist/assets/ModalFooter-BCuEK_nz-D2I8KWtk.js +0 -403
  432. package/site/dist/assets/MoonpayStatusScreen-CzTUtokc-Bx5aHy-z.js +0 -16
  433. package/site/dist/assets/OAuthStatusScreen-ufbOa-da-CS6988X2.js +0 -1
  434. package/site/dist/assets/OpenLink-CUpJ1mOr-EZWVSX2r.js +0 -39
  435. package/site/dist/assets/PasskeySelectSignupOrLogin-xh2ScC_l-BY4eK5Jh.js +0 -1
  436. package/site/dist/assets/PasskeyStatusScreen-Bla8MaOk-LXys76u9.js +0 -6
  437. package/site/dist/assets/PasswordRecoveryScreen-awGXZkQk-RczvLvmo.js +0 -20
  438. package/site/dist/assets/PhArrowClockwise-mOiWYLMV.js +0 -14
  439. package/site/dist/assets/PhArrowDown-CkoOD89h.js +0 -14
  440. package/site/dist/assets/PhArrowLeft-C0jlxVhM.js +0 -14
  441. package/site/dist/assets/PhArrowRight-BI-V03Xf.js +0 -14
  442. package/site/dist/assets/PhArrowUp-izKvURUW.js +0 -14
  443. package/site/dist/assets/PhArrowUpRight-Bn-JhHsY.js +0 -14
  444. package/site/dist/assets/PhArrowsLeftRight-CYsRQ2qh.js +0 -14
  445. package/site/dist/assets/PhBrowser-BjzAmrHO.js +0 -14
  446. package/site/dist/assets/PhCaretDown-ddSjwcwm.js +0 -14
  447. package/site/dist/assets/PhCaretLeft-B7YLoNEF.js +0 -14
  448. package/site/dist/assets/PhCaretRight-BY8D5MIg.js +0 -14
  449. package/site/dist/assets/PhCaretUp-BG10nSut.js +0 -14
  450. package/site/dist/assets/PhCheck-DrKd7pBC.js +0 -14
  451. package/site/dist/assets/PhClock-Sj17weCB.js +0 -14
  452. package/site/dist/assets/PhCopy-rgttky8E.js +0 -14
  453. package/site/dist/assets/PhDeviceMobile-CnybhXY-.js +0 -14
  454. package/site/dist/assets/PhDotsThree-CSAEcba1.js +0 -14
  455. package/site/dist/assets/PhEnvelope-SmaNeXoQ.js +0 -14
  456. package/site/dist/assets/PhFunnelSimple-DKx35ITq.js +0 -14
  457. package/site/dist/assets/PhMagnifyingGlass-B6D0sWFL.js +0 -14
  458. package/site/dist/assets/PhPlus-CBvZvLax.js +0 -14
  459. package/site/dist/assets/PhWarningCircle-Cm58gXb9.js +0 -14
  460. package/site/dist/assets/PhX-C3b4cCEy.js +0 -14
  461. package/site/dist/assets/PhoneIcon-CzbssTb8.js +0 -1
  462. package/site/dist/assets/PinInput-DbZ0b1i1-1DtLWL81.js +0 -247
  463. package/site/dist/assets/QrCode-DbnZwlkH-ChwcUk_h.js +0 -22
  464. package/site/dist/assets/RecoveryOAuthStatusScreen-CsgtTI2x-C79jd345.js +0 -1
  465. package/site/dist/assets/RecoveryPasswordCreateScreen-Be-qJ-LU-C9c0x-yq.js +0 -1
  466. package/site/dist/assets/RecoverySelectionScreen-D1iGtpmi-PNqHb6CI.js +0 -7
  467. package/site/dist/assets/ScreenLayout-OwaQQcxH-B4Z8FjFp.js +0 -1
  468. package/site/dist/assets/SetAutomaticRecoveryScreen-BO_OEqAZ-CUpQZ9wq.js +0 -14
  469. package/site/dist/assets/SetWalletPasswordForm-DwCTVtAh-ZzvPLj2s.js +0 -15
  470. package/site/dist/assets/ShieldCheckIcon-Bjwe_-PV.js +0 -1
  471. package/site/dist/assets/SignRequestScreen-BHKv32KR-0qGeNipB.js +0 -26
  472. package/site/dist/assets/StandardSignAndSendTransactionScreen-CfhIXVtd-C3lgJb68.js +0 -20
  473. package/site/dist/assets/TelegramAuthScreen-UL9zLfO8-l35_C2DG.js +0 -1
  474. package/site/dist/assets/TodoList-DnyULl18-JxWWU9KA.js +0 -36
  475. package/site/dist/assets/TransactionDetails-e9nesl30-C91nJPM9.js +0 -109
  476. package/site/dist/assets/TransactionErrorView-BDBNqA_f-Cpm-4xzm.js +0 -178
  477. package/site/dist/assets/TransferFromWalletScreen-Qvn1Yuno-BWCH7-Si.js +0 -31
  478. package/site/dist/assets/TransferOrBridgeLoadingScreen-Dl1I_iIz-BWMeJabk.js +0 -6
  479. package/site/dist/assets/TurnstileWrapper-B7sNddys-Dgr80Gih.js +0 -1
  480. package/site/dist/assets/UpdateEmailScreen-DVOhPV0H-Clk4zk-8.js +0 -1
  481. package/site/dist/assets/UpdatePhoneScreen-CXRswTNZ-BgRsoR3B.js +0 -1
  482. package/site/dist/assets/UserLimitReachedScreen-5we2DHn8-D-SU-vAz.js +0 -1
  483. package/site/dist/assets/WalletCards-DH1rqayz-UuZ4i_Ze.js +0 -1
  484. package/site/dist/assets/WalletIcon-B1i03Vqc.js +0 -1
  485. package/site/dist/assets/WalletInfoCard-sq_2wgFg-TXTxmb8L.js +0 -29
  486. package/site/dist/assets/WalletInterstitialScreen-Sh7LfsAh-CbrFb0ON.js +0 -1
  487. package/site/dist/assets/WalletLink-DK5LB5Ha-BYQZV7UV.js +0 -20
  488. package/site/dist/assets/WalletOverflowButton-bfCnp-9T-CNgSPnTS.js +0 -1
  489. package/site/dist/assets/WarningBanner-ZZqCEtZK-DNZUUOph.js +0 -21
  490. package/site/dist/assets/__vite-browser-external-BIHI7g3E.js +0 -1
  491. package/site/dist/assets/analytics-mkkvFRju-DOXuftJB.js +0 -1
  492. package/site/dist/assets/basic-C9wn6QoQ.js +0 -1575
  493. package/site/dist/assets/bytes-CjWw8TJh.js +0 -1
  494. package/site/dist/assets/capitalizeFirstLetter-DmLYqXsO-tV1Idewc.js +0 -1
  495. package/site/dist/assets/ccip-BhHEqVIW.js +0 -1
  496. package/site/dist/assets/check-C_DTyjLS.js +0 -1
  497. package/site/dist/assets/chevron-down-iklXXH-z.js +0 -1
  498. package/site/dist/assets/circle-alert-KEOUF48T.js +0 -1
  499. package/site/dist/assets/circle-check-big-BJ_ADwB4.js +0 -1
  500. package/site/dist/assets/circle-x-BSfWmhYk.js +0 -1
  501. package/site/dist/assets/client-BnDcP42J.js +0 -9
  502. package/site/dist/assets/client-DH86IrJA.js +0 -125
  503. package/site/dist/assets/coinbase-DCPC2L_R-2ivYfoMv.js +0 -3
  504. package/site/dist/assets/copy-sK00DOfH.js +0 -1
  505. package/site/dist/assets/core-CRE213RM.js +0 -211
  506. package/site/dist/assets/createLucideIcon-D9OK_uxG.js +0 -1
  507. package/site/dist/assets/custom-V1wex-Di.js +0 -1
  508. package/site/dist/assets/dijkstra-COg3n3zL.js +0 -1
  509. package/site/dist/assets/embed.worker-BRIYO7m8.js +0 -1
  510. package/site/dist/assets/encodePacked-DyXYq3Cc.js +0 -1
  511. package/site/dist/assets/ethers-zTjbodk5-DSYOi6tU.js +0 -1
  512. package/site/dist/assets/external-link-Cdp8NBio.js +0 -1
  513. package/site/dist/assets/fallback-DiFue5Zm.js +0 -1
  514. package/site/dist/assets/farcaster-DPlSjvF5-DP2DLoHZ.js +0 -1
  515. package/site/dist/assets/features-B6BTj_BL.js +0 -5
  516. package/site/dist/assets/fingerprint-pattern-gFJTz5e4.js +0 -1
  517. package/site/dist/assets/floating-ui.react-D9ndYqYK.js +0 -1
  518. package/site/dist/assets/floating-ui.react-dom-CNbOgOFt.js +0 -1
  519. package/site/dist/assets/formatErc20TokenAmount-BuPk9xcy-CkAr4Oc0.js +0 -1
  520. package/site/dist/assets/getChainName-DjpPdUSc-c2urPd0g.js +0 -1
  521. package/site/dist/assets/getErc20Balance-jXNpFf0N-mFQ9Iqk-.js +0 -1
  522. package/site/dist/assets/getErc20TokenInfo-BNTrzLMP-Dx5he_uG.js +0 -1
  523. package/site/dist/assets/getFormattedUsdFromLamports-De3U9GlO-C446pzMl.js +0 -1
  524. package/site/dist/assets/getTransactionCount-80UHlwAV.js +0 -1
  525. package/site/dist/assets/getUsdcMintAddress-BVgm9GRo-FDalV59C.js +0 -1
  526. package/site/dist/assets/hashTypedData-Beq57Ogb.js +0 -22
  527. package/site/dist/assets/hooks.module-ClpaQ1Tg.js +0 -1
  528. package/site/dist/assets/hourglass-CB7z_I9H.js +0 -1
  529. package/site/dist/assets/http-BocEfKYb.js +0 -19
  530. package/site/dist/assets/index-0knDOgU9.js +0 -1
  531. package/site/dist/assets/index-9jNeS_nC.js +0 -1
  532. package/site/dist/assets/index-B--T-Fmt.js +0 -16
  533. package/site/dist/assets/index-BDkarAkX.js +0 -2
  534. package/site/dist/assets/index-BMfMy017.js +0 -679
  535. package/site/dist/assets/index-BOd8jv8-.js +0 -1
  536. package/site/dist/assets/index-BdEw5wyl-2VGMzHIs.js +0 -1
  537. package/site/dist/assets/index-C8ThRelw.js +0 -9
  538. package/site/dist/assets/index-D4LdLFDC.js +0 -1
  539. package/site/dist/assets/index-D6T-s6sR.js +0 -1
  540. package/site/dist/assets/index-D7396TWe.js +0 -1
  541. package/site/dist/assets/index-DdxtHe81.js +0 -2
  542. package/site/dist/assets/index-DvMddJcd-D7AEQrzj.js +0 -12
  543. package/site/dist/assets/index-nibyPLVP.js +0 -1
  544. package/site/dist/assets/index.browser-B6Bt5URJ.js +0 -1
  545. package/site/dist/assets/isPaymentRequestAvailable-Bq1cemEn-D7xtzRqA.js +0 -1
  546. package/site/dist/assets/landmark-CMLKifhk.js +0 -1
  547. package/site/dist/assets/lock-BkyjNE8h.js +0 -1
  548. package/site/dist/assets/mail-B6-Tq9Ld.js +0 -1
  549. package/site/dist/assets/native-CJ5et6AR.js +0 -1
  550. package/site/dist/assets/nonceManager-zkW7cM66.js +0 -1
  551. package/site/dist/assets/parseEther-C7aOvuze.js +0 -1
  552. package/site/dist/assets/parseSignature-BIjcuWdB.js +0 -1
  553. package/site/dist/assets/preload-helper-PPVm8Dsz.js +0 -1
  554. package/site/dist/assets/privateKeyToAccount-CRvvpHWf.js +0 -1
  555. package/site/dist/assets/property-CnFDNXw5.js +0 -3
  556. package/site/dist/assets/react-auth_false-DedQs79w.js +0 -1
  557. package/site/dist/assets/reservoir-x-nGuZkT-DFxAFt2v.js +0 -1
  558. package/site/dist/assets/roles-DV_6FRBZ.js +0 -1
  559. package/site/dist/assets/safe-url-D7SRPu33-A8zMgOTd.js +0 -1
  560. package/site/dist/assets/serializeErc6492Signature-CeJeL3h6.js +0 -1
  561. package/site/dist/assets/serializeTransaction-L-_Ej-jW.js +0 -8
  562. package/site/dist/assets/shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-CF2QteTJ.js +0 -1
  563. package/site/dist/assets/simulateTransaction-CfuOrae4-BHUMPf6Q.js +0 -1
  564. package/site/dist/assets/smartphone-DAN5rY0T.js +0 -1
  565. package/site/dist/assets/stripe.esm-Dv8C3q95.js +0 -2
  566. package/site/dist/assets/styles-BsotlekN-Cjuu2SDV.js +0 -9
  567. package/site/dist/assets/telegram-B-JqnkqZ-DTjJLkIF.js +0 -1
  568. package/site/dist/assets/to-ui-error-DWe-qwS3-Dx3yzcV0.js +0 -4
  569. package/site/dist/assets/toAccount-Bq6rbpbI.js +0 -1
  570. package/site/dist/assets/transaction-BNTP-bFm-CrebgH-D.js +0 -1
  571. package/site/dist/assets/transactionReceipt-BwJl-gjg.js +0 -1
  572. package/site/dist/assets/transfer-6YztDh-t-DU6hH7CZ.js +0 -1
  573. package/site/dist/assets/transformers.web-BEKVh7pD.js +0 -40
  574. package/site/dist/assets/transformers.web-aWa49tv1.js +0 -40
  575. package/site/dist/assets/triangle-alert-ndoiBs4y.js +0 -1
  576. package/site/dist/assets/twitch-5IOe4sIQ-BXviIywg.js +0 -1
  577. package/site/dist/assets/useGetSolPrice-x7gfUIHJ-C7axYJ--.js +0 -1
  578. package/site/dist/assets/useGetTokenPrice-CaoUkb79-CR4CrguU.js +0 -1
  579. package/site/dist/assets/useI18n-C-5n_noF-C_t8QqBJ.js +0 -1
  580. package/site/dist/assets/useWalletBalance-CZnP5f_f-BnSHLVI_.js +0 -1
  581. package/site/dist/assets/w3m-modal-Bz5KWTQ-.js +0 -1174
  582. package/site/dist/assets/wallet-DTM31trz.js +0 -2
  583. package/site/dist/assets/wallet-UESEqPei.js +0 -1
  584. package/site/dist/assets/wallet-connect-BvJtUsDt-CnvUnFbz.js +0 -1
  585. package/site/dist/assets/walletconnect-v2-3frQFwbg-CzQk99gS.js +0 -15
  586. package/site/dist/assets/x-B2_XdOVQ.js +0 -1
package/README.md CHANGED
@@ -6,7 +6,8 @@ Everything you need to get started building Fangorn apps, and the free tier that
6
6
  to a Fangorn app and ERC-8004 agent that any agent can discover, verify and drive.
7
7
 
8
8
  **Just want to query apps from Claude or another MCP client?** [docs/mcp.md](docs/mcp.md)
9
- installs `fangorn-mcp` in one command.
9
+ installs `fangorn-mcp` in one command; in Claude Code, `claude plugin marketplace add
10
+ fangorn-network/westmarch && claude plugin install fangorn-index@fangorn` adds it with its skill.
10
11
 
11
12
 
12
13
  ## The free tier: one Worker per app
@@ -59,7 +60,8 @@ src/
59
60
  envelope.js · manifest.js · cli.js · view.js · ship.js · eval.ts
60
61
  lint.js …and whether any of that WORKED
61
62
  site/ the stock page every `westmarch-ship` app deploys
62
- plugin/ the Claude Code plugin: skills + fangorn-fx
63
+ plugin/ Claude Code plugin fangorn-index: its skill, fangorn-fx, the fangorn MCP server
64
+ plugin-builder/ Claude Code plugin fangorn-builder: fangorn-app, fangorn-improve
63
65
  examples/ demo/ (a second consumer + fixtures) · publisher/ (the smallest publisher)
64
66
  scripts/ test.js (`npm test`) · build-bin.js (single-file fangorn-mcp)
65
67
  ```
@@ -19,9 +19,9 @@ which anything can produce: a scraper, a database export, a converted spreadshee
19
19
 
20
20
  ```
21
21
  your data ─► data/graph.json ─► fangorn commit/push ─┐
22
- schema/graph.json ─► fangorn commit/push ────────────┤ (namespace fangorn.schema)
23
22
  ▼
24
23
  chain ─► westmarch-view ─► site/view/
24
+ app.json types ──────────────────────────────────────────────┘
25
25
  (embeds only what changed, applies the schema)
26
26
  app/ (page) ─► vite build ─► site/ ◄── the page loads site/view
27
27
  pipeline/agent-card.mjs ─► site/.well-known/agent-card.json (views: [site/view]) ─► deploy
@@ -69,7 +69,7 @@ update: each step checks the chain (or Cloudflare) first and acts only on a diff
69
69
  ```
70
70
 
71
71
  ```sh
72
- npx westmarch-ship app.json # claim, join, schema, crawl + publish, view, site, card, deploy, agent
72
+ npx westmarch-ship app.json # claim, join, crawl + publish, view, site, card, deploy, agent
73
73
  npx westmarch-ship app.json --dry-run # every step, printed, none done
74
74
  npx westmarch-ship app.json --no-crawl # rebuild view, site and card from what is on chain
75
75
  npx westmarch-ship app.json --replace # each source's crawl becomes its namespace's whole state
@@ -81,21 +81,20 @@ Workers AI), the view, `/mcp`, and the page. What `ship` does, in order:
81
81
 
82
82
  1. **claim** the app on the first run, and record the claim block (the card's `fromBlock`);
83
83
  the claimer is the app's first member;
84
- 2. **commit the schema** (`types`, `relations`) to `fangorn.schema`, if the chain's differs;
85
- 3. **run each source**: a command that publishes into `--namespace` when given `--publish`.
84
+ 2. **run each source**: a command that publishes into `--namespace` when given `--publish`.
86
85
  Every quickbeam scraper Source does. A source with `"each": "rows.json"` is a template,
87
86
  one source per row (`{field}`, `{field|slug}`, `{args...}`), so adding a town, a feed or
88
87
  an account is adding a row;
89
- 4. **the site** in `.ship/site`: the stock page (search, plus a feed of what is coming up and
88
+ 3. **the site** in `.ship/site`: the stock page (search, plus a feed of what is coming up and
90
89
  what just happened, by the `temporal` role and the first `facets` field; for rows that are
91
90
  not meetings, an explore page: `site.examples` as searches to try, the latest records by
92
91
  `temporal`, and each declared facet's values to browse), the agent card,
93
92
  `/openapi.json` and `/.well-known/x402` when anything is for sale, and `_headers`;
94
- 5. **deploy the Worker** (`wrangler deploy`): its R2 bucket (created if missing), Workers AI,
95
- the cron (`site.cron`, default every 5 minutes) and its CONFIG. With `paid`, it sells each
93
+ 4. **deploy the Worker** (`wrangler deploy`): its R2 bucket (created if missing), Workers AI,
94
+ the cron (`site.cron`, default every 5 minutes) and its CONFIG, which carries the schema. With `paid`, it sells each
96
95
  record over x402; only records whose sha256 a live row carries are for sale. If the app
97
96
  has no view yet, ship builds the first one here (`--index`) rather than wait for the cron;
98
- 6. **register** the ERC-8004 agent and bind the card, if the chain points elsewhere. An
97
+ 5. **register** the ERC-8004 agent and bind the card, if the chain points elsewhere. An
99
98
  agent is minted once; later runs only rebind.
100
99
 
101
100
  State lives in `.ship/` next to `app.json`. In CI, cache `.ship/cache` and `.ship/stage`
@@ -106,7 +105,8 @@ and commit `.ship/state.json`; Quorum's `.github/workflows/ship.yml` is a workin
106
105
  five towns' meetings crawled, published, embedded and deployed by `westmarch-ship`, then
107
106
  searched and bought (x402, settled on Arbitrum Sepolia) from `fangorn-mcp` in a fresh
108
107
  session. FAR Desk (`https://far-desk.quickbeam.workers.dev`, agent `84532:10323`) is the
109
- private one: 3,113 sealed FAR sections on Base Sepolia, searched per call and with a pass.
108
+ private one: 3,113 sealed FAR sections, registered on Base Sepolia and selling in real USDC on
109
+ Base, searched per call and with a pass; its `search` tool is in PayAI's Bazaar.
110
110
  Kingsfoil, the reference at the end, predates `ship` and was built by hand.
111
111
 
112
112
  ## A private app: the data is the product
@@ -114,6 +114,12 @@ Kingsfoil, the reference at the end, predates `ship` and was built by hand.
114
114
  `"private": { "pass": { "price": "5", "days": 30 }, "call": "0.01" }` in `app.json`, settled like
115
115
  `paid` (`network`, `payTo`, `asset`, `facilitator`). What changes:
116
116
 
117
+ - **Real money.** Settlement is set apart from the app's chain: `"network": "base"` in `private`
118
+ (or `paid`) charges USDC on Base while the app and its agent stay on Base Sepolia, where the
119
+ Fangorn contracts are. Set `payTo` to a wallet you control and have backed up; it defaults to
120
+ the owner key ship signs with. On a mainnet the page's button opens Privy's card funding
121
+ (enable it in the Privy dashboard) instead of the faucet. Try a low price first.
122
+
117
123
  - **Storage.** Each source stages its records (it needs `--output-dir`); ship seals every row whole,
118
124
  `{sealed: base64(nonce ‖ AES-256-GCM(rowKey, row))}` with rowKey = HMAC-SHA256(PAID_SECRET,
119
125
  "fangorn.row.v1"), and commits that. The nonce is derived from the row, so an unchanged row keeps
@@ -131,15 +137,16 @@ Kingsfoil, the reference at the end, predates `ship` and was built by hand.
131
137
  - **Discovery.** The card's Fangorn extension carries `access` (pass URL and prices), and its
132
138
  skills are tagged `x402`, so the ERC-8004 registration says `x402Support: true`.
133
139
  `/openapi.json` and `/.well-known/x402` list `POST /pass` for x402scan; the facilitator's Bazaar
134
- lists `/pass` and each tool (as `type: "mcp"`) after its first sale.
140
+ lists `/pass` and each tool (as `type: "mcp"`, resource `<app>/mcp`) after its first sale, so make
141
+ one paid call yourself (paying from `payTo` is accepted). Check with
142
+ `curl "https://facilitator.payai.network/discovery/resources?payTo=<payTo>"`. Mainnet agents find
143
+ the app here, since its ERC-8004 registration is on Base Sepolia.
135
144
  - **The page.** Without a pass it shows what is inside (the free catalog and `describe`: how many
136
145
  records, when they were updated), a "Get a pass" button (Privy sign-in, then x402; on a testnet
137
146
  it links the faucet when the balance is short), and the lines to add the app to an agent
138
147
  (`#/agents`). The pass is kept on the device and sent with every read, and the agent line
139
148
  carries it too. Add the app's origin to Privy's allowed origins.
140
149
 
141
- Not yet: memberships on a private app's page.
142
-
143
150
  ## Grading a change before it ships
144
151
 
145
152
  New records are facts, and they always ship. What can make an app worse is its
@@ -296,40 +303,30 @@ What makes records work well:
296
303
 
297
304
  ## 5. Declare the schema
298
305
 
299
- The schema says what your data is. You commit it to a reserved namespace,
300
- `fangorn.schema`, in your app:
301
- - **Types:** each is a vertex tagged `fangorn.type.v1`.
302
- - **Relations:** the relations allowed between types are edges between those vertices.
306
+ The schema says what your data is. It lives in `app.json` and nowhere else; nothing is
307
+ committed on chain:
308
+ - **`types`:** one entry per type tag: `description`, `role_map`, `presentation`.
309
+ - **`relations`:** the references allowed between types, `{ "rel", "from", "to" }`.
303
310
 
304
- `westmarch-view` (and hosted quickbeam) read it for every record they embed, so it decides:
311
+ `westmarch-ship` hands it to the Worker in its CONFIG, and `westmarch-view` reads it with
312
+ `--config app.json`. It is applied to every record they embed, so it decides:
305
313
  - **what gets embedded:** the `text` role, plus title, subtitle and tags;
306
314
  - **what readers see:** titles, links, labels;
307
315
  - **what agents can do:** filters, counts, and choosing among views by their description.
308
316
 
309
- `schema/graph.json`:
317
+ In `app.json`:
310
318
 
311
319
  ```json
312
- {
313
- "vertices": [
314
- { "id": "tree", "tag": "fangorn.type.v1", "payload": {
315
- "tag": "my-app.tree.v1",
316
- "description": "Tree species: what they are, where they grow, and what they are good for.",
317
- "role_map": { "identity": "id", "title": "name", "subtitle": "species",
318
- "tags": ["family", "region"], "text": ["description"] },
319
- "presentation": { "externalUrl": { "my-app.tree.v1": "https://en.wikipedia.org/wiki/{species}" } } } }
320
- ],
321
- "edges": []
322
- }
323
- ```
324
-
325
- ```sh
326
- cd schema && fangorn repo init fangorn.schema \
327
- && fangorn commit graph.json -m "schema v1" --replace && fangorn push && cd ..
320
+ "types": {
321
+ "my-app.tree.v1": {
322
+ "description": "Tree species: what they are, where they grow, and what they are good for.",
323
+ "role_map": { "identity": "id", "title": "name", "subtitle": "species",
324
+ "tags": ["family", "region"], "text": ["description"] },
325
+ "presentation": { "externalUrl": { "my-app.tree.v1": "https://en.wikipedia.org/wiki/{species}" } } }
326
+ },
327
+ "relations": []
328
328
  ```
329
329
 
330
- `fangorn repo init` tracks one namespace per directory (in `.fangorn/`), which is why the
331
- schema is committed from its own `schema/` folder.
332
-
333
330
  **`role_map`** says which field is what:
334
331
 
335
332
  | role | means | used for |
@@ -346,13 +343,10 @@ schema is committed from its own `schema/` folder.
346
343
  map inferred from its fields. That works for display and often fails for search: a
347
344
  field called `desc` or `nct` isn't recognized, and a `price` can end up as the date.
348
345
  Declare every type you publish.
349
- - **Only the app owner's schema counts.** Any publisher can write a namespace called
350
- `fangorn.schema`; only the owner's is read.
351
- - **You can change it at any time** with another commit. A view takes the new role map and
352
- description on its next `westmarch-view` run. **Records already embedded keep the text they were embedded
346
+ - **You can change it at any time**: edit `app.json` and ship again. The view takes the new
347
+ role map and description on the Worker's next cron run (or the next `westmarch-view`). **Records already embedded keep the text they were embedded
353
348
  with** until they're re-embedded, so change the `text` role early.
354
- - **Relations** (edges between type vertices, e.g. `{ "rel": "grows_in", "from": "tree",
355
- "to": "region" }`) declare which edges the app allows. Nothing enforces them yet; they
349
+ - **Relations** (e.g. `{ "rel": "grows_in", "from": "my-app.tree.v1", "to": "my-app.region.v1" }`) declare which edges the app allows. Nothing enforces them yet; they
356
350
  are what publisher graphs will be validated against.
357
351
 
358
352
  ## 6. Commit and push the data
@@ -645,7 +639,14 @@ can keep an app current: a cron job, a CI workflow, or an agent that just publis
645
639
  ## Using Fangorn apps from an agent
646
640
 
647
641
  `fangorn-mcp` is one MCP server for every Fangorn app: a new app needs no new
648
- registration. Install it through npm (node ≥ 20):
642
+ registration. In Claude Code, the `fangorn-index` plugin installs it with the skill that uses it:
643
+
644
+ ```sh
645
+ claude plugin marketplace add fangorn-network/westmarch && claude plugin install fangorn-index@fangorn
646
+ ```
647
+
648
+ App owners add `fangorn-builder@fangorn` (the `fangorn-app` and `fangorn-improve` skills).
649
+ Without the plugin, install it through npm (node ≥ 20):
649
650
 
650
651
  ```sh
651
652
  claude mcp add fangorn -- \
@@ -654,8 +655,9 @@ claude mcp add fangorn -- \
654
655
 
655
656
  Without `-p @huggingface/transformers`, the install is ~500 MB lighter and `search` ranks by
656
657
  words, not meaning. It lists the apps on Base Sepolia; add `-e FANGORN_NETWORK=arbitrumSepolia`
657
- before `--` for those still on Arbitrum Sepolia. For private apps, `-e FANGORN_MCP_WALLET_KEY=…`
658
- lets it pay (see [A private app](#a-private-app-the-data-is-the-product)).
658
+ before `--` for those still on Arbitrum Sepolia. For private apps, `FANGORN_MCP_WALLET_KEY` lets it pay
659
+ (see [A private app](#a-private-app-the-data-is-the-product)); the plugin reads it from your
660
+ environment, while `-e` stores it in `~/.claude.json` in plain text.
659
661
 
660
662
  [docs/mcp.md](mcp.md) has the full setup: other MCP clients, every setting, running from
661
663
  source, and troubleshooting. A single-file binary (`bun build-bin.js`) exists but is not
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fangorn-network/westmarch",
3
- "version": "2026.10.20-dev",
4
- "description": "The free tier for a Fangorn app: one Cloudflare Worker that indexes what the app presents, serves it as a view and an MCP server, and hosts its site",
3
+ "version": "2026.10.22-dev",
4
+ "description": "all-in-one builder for fangorn apps",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "exports": {
@@ -45,7 +45,7 @@
45
45
  "@fangorn-network/markov": "^0.1.0"
46
46
  },
47
47
  "peerDependencies": {
48
- "@fangorn-network/sdk": "^2026.10.20-dev",
48
+ "@fangorn-network/sdk": "^2026.10.21-dev",
49
49
  "@huggingface/transformers": "^4.2.0",
50
50
  "@noble/curves": "^1.9.1",
51
51
  "viem": "^2.55.1"
@@ -56,8 +56,7 @@
56
56
  }
57
57
  },
58
58
  "devDependencies": {
59
- "@fangorn-network/barliman": "file:../barliman",
60
- "@fangorn-network/sdk": "^2026.10.20-dev",
59
+ "@fangorn-network/sdk": "^2026.10.21-dev",
61
60
  "@huggingface/transformers": "^4.2.0",
62
61
  "@noble/curves": "^1.9.1",
63
62
  "@privy-io/react-auth": "^3.47.0",
@@ -69,6 +68,7 @@
69
68
  "viem": "^2.56.3"
70
69
  },
71
70
  "bin": {
71
+ "westmarch": "./src/publish/init.js",
72
72
  "westmarch-publish": "./src/publish/cli.js",
73
73
  "westmarch-view": "./src/publish/view-cli.js",
74
74
  "westmarch-ship": "./src/publish/ship.js",
@@ -79,6 +79,7 @@
79
79
  },
80
80
  "files": [
81
81
  "src",
82
+ "template",
82
83
  "docs/app-to-agent.md",
83
84
  "site/agent.js",
84
85
  "site/dist",
@@ -0,0 +1 @@
1
+ import{$ as e,D as t}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as n}from"./jsx-runtime-CndCZlyt.js";import{t as r}from"./createLucideIcon-BsERoFTA.js";import{n as i}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{t as a}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";var o=r(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),s=n(),c=({title:e=`Account not found`,subtitle:t,appName:n=`this app`,ctaText:r=`Try logging in again`,onRetry:i})=>(0,s.jsx)(a,{title:e,subtitle:t||`Please try logging in again or go to ${n} to create an account.`,icon:o,iconVariant:`warning`,primaryCta:{label:r,onClick:i},watermark:!0}),l={component:()=>{let{navigate:n,setModalData:r,data:a}=i(),o=t(),{getAuthMeta:l,client:u}=e();return(0,s.jsx)(c,{appName:o?.name,onRetry:()=>{let e=l();r({...a,login:{...a?.login,...e?.disableSignup?{disableSignup:!0}:{}}}),u?.authFlow&&(u.authFlow=void 0),n(`LandingScreen`)}})}};export{l as AccountNotFoundScreen,l as default,c as AccountNotFoundScreenView};
@@ -0,0 +1,31 @@
1
+ import{s as e}from"./rolldown-runtime-Bjp52BOI.js";import{D as t}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as n}from"./jsx-runtime-CndCZlyt.js";import{t as r}from"./react-BfYA1q0G.js";import{n as i,t as a}from"./landmark-BZPqMFEf.js";import{t as o}from"./wallet-BNI12IYk.js";import{n as s}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{c}from"./Loader-UAZqxsnw-DJEVblm1.js";import{t as l}from"./index-CWARkn2w-DxuckIFn.js";import{n as u,t as d}from"./GooglePay-B53WnudL-BGiVpB8y.js";import{n as f,r as p,t as m}from"./isPaymentRequestAvailable-Bq1cemEn-Cjf3l05I.js";import{r as h}from"./styles-DVyDvTdj-CjsWqAld.js";import{c as g,l as _,p as v}from"./styles-hslXy6xG-D5QHIrJU.js";import{l as y,y as b}from"./use-headless-crypto-deposit-Yn-QRLB3-CQqeyhGY.js";var x=n(),S=e(r(),1),C={component:()=>{let e=b(),{onUserCloseViaDialogOrKeybindRef:n}=s(),r=t(),c=(0,S.useRef)(!1),C=m(f),O=m(p),[k,A]=(0,S.useState)(!1),j=C?`APPLE_PAY`:!1===C&&O?`GOOGLE_PAY`:null,M=!0===C||!1===C&&O!==void 0,N=!e?.startFiat||M||k;(0,S.useEffect)((()=>{let e=window.setTimeout((()=>A(!0)),2e3);return()=>window.clearTimeout(e)}),[]),(0,S.useEffect)((()=>{e&&(c.current=!1)}),[e]);let P=(0,S.useRef)(null);(0,S.useEffect)((()=>{e&&!e.error&&N&&P.current!==e&&(P.current=e,e.recordRowsViewed?.({walletPay:e.startFiat?j:void 0,walletPayTimedOut:e.startFiat?!M:void 0}))}),[N,e,j,M]);let F=(0,S.useCallback)((async()=>{!c.current&&e&&(c.current=!0,y(),await e.onCancel())}),[e]);if((0,S.useEffect)((()=>(n.current=F,()=>{n.current===F&&(n.current=null)})),[F,n]),!e)return null;if(e.error)return(0,x.jsx)(g,{title:`Unable to add funds`,subtitle:e.error,showClose:!0,onClose:F,primaryCta:{label:`Close`,onClick:F}});let I=async t=>{c.current||(c.current=!0,await e.startFiat?.(t))};return(0,x.jsx)(g,{title:`Pay with`,subtitle:`Debit cards typically have higher success rates than credit cards, even with Apple Pay or Google Pay.`,showClose:!0,onClose:F,children:N?(0,x.jsxs)(h,{style:{marginTop:`1rem`},$colorScheme:r.appearance.palette.colorScheme,children:[e.startFiat&&(0,x.jsxs)(_,{onClick:()=>I(`CREDIT_DEBIT_CARD`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(i,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Debit or credit card`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&j===`APPLE_PAY`&&(0,x.jsxs)(_,{onClick:()=>I(`APPLE_PAY`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(u,{width:18,height:18})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Apple Pay`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&j===`GOOGLE_PAY`&&(0,x.jsxs)(_,{onClick:()=>I(`GOOGLE_PAY`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(d,{width:18,height:18})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Google Pay`}),(0,x.jsx)(D,{children:`Less than 10 minutes`})]})]}),e.startFiat&&(0,x.jsxs)(_,{onClick:()=>I(`BANK`),children:[(0,x.jsx)(T,{children:(0,x.jsx)(a,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Bank account`}),(0,x.jsx)(D,{children:`1–2 days`})]})]}),e.startCrypto&&(0,x.jsxs)(_,{onClick:async()=>{c.current||(c.current=!0,await e.startCrypto?.())},children:[(0,x.jsx)(T,{children:(0,x.jsx)(o,{})}),(0,x.jsxs)(E,{children:[(0,x.jsx)(v,{children:`Crypto wallet or exchange`}),(0,x.jsx)(D,{children:`Instant`})]})]})]}):(0,x.jsx)(w,{children:(0,x.jsx)(l,{size:`50px`})})})}},w=c.div`
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ margin-top: 1rem;
6
+ min-height: 8rem;
7
+ `,T=c.span`
8
+ width: 2rem;
9
+ height: 2rem;
10
+ border-radius: var(--privy-border-radius-full);
11
+ background-color: var(--privy-color-background-2);
12
+ color: var(--privy-color-icon-muted);
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ flex-shrink: 0;
17
+ overflow: hidden;
18
+
19
+ svg {
20
+ width: 1.125rem;
21
+ height: 1.125rem;
22
+ }
23
+ `,E=c.span`
24
+ display: flex;
25
+ flex-direction: column;
26
+ align-items: flex-start;
27
+ `,D=c.span`
28
+ font-size: 0.875rem;
29
+ line-height: 1.25rem;
30
+ color: var(--privy-color-foreground-3);
31
+ `;export{C as AddFundsSelectionScreen,C as default};
@@ -0,0 +1,17 @@
1
+ import{s as e}from"./rolldown-runtime-Bjp52BOI.js";import{t}from"./jsx-runtime-CndCZlyt.js";import{t as n}from"./react-BfYA1q0G.js";import{t as r}from"./check-DHnllI8N.js";import{t as i}from"./copy-DMOX_yn7.js";import{c as a}from"./Loader-UAZqxsnw-DJEVblm1.js";import{o}from"./ModalFooter-BCuEK_nz-C_71qsaz.js";import{p as s}from"./storage-Ufl800Ne-1qCR2JMO.js";var c=t(),l=e(n(),1),u=({address:e,showCopyIcon:t,url:n,className:a})=>{let[u,m]=(0,l.useState)(!1);function h(t){t.stopPropagation(),navigator.clipboard.writeText(e).then((()=>m(!0))).catch(console.error)}return(0,l.useEffect)((()=>{if(u){let e=setTimeout((()=>m(!1)),3e3);return()=>clearTimeout(e)}}),[u]),(0,c.jsxs)(d,n?{children:[(0,c.jsx)(p,{title:e,className:a,href:`${n}/address/${e}`,target:`_blank`,children:s(e)}),t&&(0,c.jsx)(o,{onClick:h,size:`sm`,style:{gap:`0.375rem`},children:(0,c.jsxs)(c.Fragment,u?{children:[`Copied`,(0,c.jsx)(r,{size:16})]}:{children:[`Copy`,(0,c.jsx)(i,{size:16})]})})]}:{children:[(0,c.jsx)(f,{title:e,className:a,children:s(e)}),t&&(0,c.jsx)(o,{onClick:h,size:`sm`,style:{gap:`0.375rem`,fontSize:`14px`},children:(0,c.jsxs)(c.Fragment,u?{children:[`Copied`,(0,c.jsx)(r,{size:14})]}:{children:[`Copy`,(0,c.jsx)(i,{size:14})]})})]})},d=a.span`
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: 0.5rem;
5
+ `,f=a.span`
6
+ font-size: 14px;
7
+ font-weight: 500;
8
+ color: var(--privy-color-foreground);
9
+ `,p=a.a`
10
+ font-size: 14px;
11
+ color: var(--privy-color-foreground);
12
+ text-decoration: none;
13
+
14
+ &:hover {
15
+ text-decoration: underline;
16
+ }
17
+ `;export{u as t};
@@ -0,0 +1,6 @@
1
+ import"./rolldown-runtime-Bjp52BOI.js";import{$ as e,D as t,i as n}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t as r}from"./jsx-runtime-CndCZlyt.js";import{t as i}from"./react-BfYA1q0G.js";import{t as a}from"./createLucideIcon-BsERoFTA.js";import{t as o}from"./external-link-BBPG3rG7.js";import{n as s}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{c}from"./Loader-UAZqxsnw-DJEVblm1.js";import{l}from"./ModalFooter-BCuEK_nz-C_71qsaz.js";import{t as u}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";import{t as d}from"./shouldProceedtoEmbeddedWalletCreationFlow-B3vyavrh-BkAKsRNi.js";var f=a(`file-check`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m9 15 2 2 4-4`,key:`1grp1n`}]]),p=r();i();var m={component:()=>{let{user:r,logout:i}=n(),{onUserCloseViaDialogOrKeybindRef:a,setModalData:o,navigate:c}=s(),l=t(),{acceptTerms:u,closePrivyModal:f,createAnalyticsEvent:m}=e(),g=e=>{e?.preventDefault(),f({shouldCallAuthOnSuccess:!1}),i()};return a.current=g,(0,p.jsx)(h,{termsAndConditionsUrl:l?.legal.termsAndConditionsUrl,privacyPolicyUrl:l?.legal.privacyPolicyUrl,onAccept:async e=>{e?.preventDefault(),await u(),r&&d(r,l.embeddedWallets)?(o({createWallet:{onSuccess:()=>{},onFailure:e=>{console.error(e),m({eventName:`embedded_wallet_creation_failure_logout`,payload:{error:e,screen:`AffirmativeConsentScreen`}}),i()},callAuthOnSuccessOnClose:!0}}),c(`EmbeddedWalletOnAccountCreateScreen`)):f()},onDecline:g})}},h=({termsAndConditionsUrl:e,privacyPolicyUrl:t,onAccept:n,onDecline:r,title:i=`One last step`,subtitle:a=`By signing up, you agree to our terms and privacy policy.`})=>(0,p.jsx)(u,{title:i,subtitle:a,icon:f,primaryCta:{label:`Accept`,onClick:n},secondaryCta:{label:`No thanks`,onClick:r},watermark:!0,children:(e||t)&&(0,p.jsxs)(g,{children:[e&&(0,p.jsxs)(l,{variant:`muted`,href:e,target:`_blank`,size:`lg`,style:{justifyContent:`space-between`},as:`a`,children:[`View Terms`,(0,p.jsx)(o,{width:16,height:16,strokeWidth:2.25})]}),t&&(0,p.jsxs)(l,{variant:`muted`,href:t,target:`_blank`,size:`lg`,style:{justifyContent:`space-between`},as:`a`,children:[`View Privacy Policy`,(0,p.jsx)(o,{width:16,height:16,strokeWidth:2.25})]})]})}),g=c.div`
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 12px;
5
+ margin-top: var(--screen-space);
6
+ `;export{m as AffirmativeConsentScreen,m as default,h as AffirmativeConsentScreenView};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-Bjp52BOI.js";import{D as e}from"./privy-context-81KmsBw2-DiR6-Yq8.js";import{t}from"./jsx-runtime-CndCZlyt.js";import{t as n}from"./react-BfYA1q0G.js";import{t as r}from"./lock-DyN_c-ud.js";import{n as i}from"./modal-context-CwmSeFcv-DPWNJrfK.js";import{t as a}from"./ScreenLayout-OwaQQcxH-cfOTmyl0.js";import{t as o}from"./safe-url-D7SRPu33-CkMedGro.js";var s=t();n();var c=({title:e=`You don't have access to this app`,subtitle:t=`Have you been invited?`,ctaText:n=`Try another account`,ctaLink:i,onCtaClick:c})=>(0,s.jsx)(a,{title:e,subtitle:t,icon:r,iconVariant:`warning`,primaryCta:{label:n,onClick:()=>{let e=o(i);e?window.open(e,`_blank`,`noopener,noreferrer`):c?.()}},watermark:!0}),l={component:()=>{let{navigate:t}=i(),n=e(),r=n?.allowlistConfig.errorTitle||`You don't have access to this app`,a=n?.allowlistConfig.errorDetail||`Have you been invited?`,o=n?.allowlistConfig.errorCtaText||`Try another account`,l=n?.allowlistConfig.errorCtaLink;return(0,s.jsx)(c,{title:r,subtitle:a,ctaText:o,ctaLink:l??void 0,onCtaClick:()=>{t(`LandingScreen`)}})}};export{l as AllowlistRejectionScreen,l as default,c as AllowlistRejectionScreenView};