@sonordev/site-kit 6.5.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1625) hide show
  1. package/AGENTS.md +18 -3
  2. package/README.md +50 -34
  3. package/agent-manifest.json +282 -52
  4. package/dist/AnalyticsProvider-EMM2TKRE.js +11 -0
  5. package/dist/ArticleFaqSection-3Q26DP7P.js +9 -0
  6. package/dist/ArticleViewTracker-RA64BGL6.js +49 -0
  7. package/dist/BlocksPopup-D25RFNOV.js +43 -0
  8. package/dist/ChatWidget-RYI7BMJJ.js +15 -0
  9. package/dist/DatePicker-JEBV6WYJ.js +2 -0
  10. package/dist/EngageWidget-UKFCN33M.js +11 -0
  11. package/dist/FileField-MUHA7LZR.js +83 -0
  12. package/dist/FormCelebration-OVGAGBKF.js +2 -0
  13. package/dist/FormSpotlight-TCLPWPLL.js +754 -0
  14. package/dist/FormStage-CNYLP6I6.js +418 -0
  15. package/dist/ManagedForm-7ZL5SKTO.js +14 -0
  16. package/dist/ManagedNewsletterForm-33B4JLX7.js +62 -0
  17. package/dist/SignalCore-L5FVDHFE.js +322 -0
  18. package/dist/SiteDesignReporter-4JOFL4FP.js +11 -0
  19. package/dist/SitemapSync-7WKY4HXI.js +8 -0
  20. package/dist/SitemapSync.d.ts +0 -1
  21. package/dist/_client/booking-widget.d.ts +4 -0
  22. package/dist/_client/booking-widget.js +7 -0
  23. package/dist/_client/testimonial-section.d.ts +11 -0
  24. package/dist/_client/testimonial-section.js +5 -0
  25. package/dist/admin-auth/index.d.ts +0 -1
  26. package/dist/admin-auth/index.js +0 -0
  27. package/dist/admin-auth/session.d.ts +0 -1
  28. package/dist/affiliates/AffiliatesWidget.d.ts +0 -1
  29. package/dist/affiliates/api.d.ts +0 -1
  30. package/dist/affiliates/index.d.ts +0 -1
  31. package/dist/affiliates/index.js +149 -0
  32. package/dist/affiliates/types.d.ts +0 -1
  33. package/dist/affiliates/useAffiliates.d.ts +0 -1
  34. package/dist/analytics/AnalyticsProvider.d.ts +0 -1
  35. package/dist/analytics/WebVitals.d.ts +0 -1
  36. package/dist/analytics/dispatch.d.ts +0 -1
  37. package/dist/analytics/index.d.ts +0 -1
  38. package/dist/analytics/index.js +12 -67
  39. package/dist/analytics/measurement-context.d.ts +0 -1
  40. package/dist/analytics/page-observation.d.ts +0 -1
  41. package/dist/analytics/send-gate.d.ts +0 -1
  42. package/dist/analytics/types.d.ts +0 -1
  43. package/dist/analytics/useContactTracking.d.ts +0 -1
  44. package/dist/article-styles-6CM5FUMV.js +590 -0
  45. package/dist/article-tables-AXSZOGNW.js +2 -0
  46. package/dist/articles/Article.d.ts +0 -1
  47. package/dist/articles/ArticleFAQ.d.ts +0 -1
  48. package/dist/articles/ArticleFaqSection.d.ts +0 -1
  49. package/dist/articles/ArticleList.d.ts +0 -1
  50. package/dist/articles/ArticleViewTracker.d.ts +0 -1
  51. package/dist/articles/AuthorCard.d.ts +0 -1
  52. package/dist/articles/AuthorPage.d.ts +0 -1
  53. package/dist/articles/ClusterLandingPage.d.ts +0 -1
  54. package/dist/articles/ClusterNavigation.d.ts +0 -1
  55. package/dist/articles/ManagedNewsletterForm.d.ts +0 -1
  56. package/dist/articles/NewsletterShell.d.ts +0 -1
  57. package/dist/articles/NewsletterWidget.d.ts +0 -1
  58. package/dist/articles/PublicationLayout.d.ts +0 -1
  59. package/dist/articles/PublicationSidebar.d.ts +0 -1
  60. package/dist/articles/RelatedPosts.d.ts +0 -1
  61. package/dist/articles/ServiceCallout.d.ts +0 -1
  62. package/dist/articles/TableOfContents.d.ts +0 -1
  63. package/dist/articles/article-styles.d.ts +0 -1
  64. package/dist/articles/article-tables.d.ts +0 -1
  65. package/dist/articles/artwork.d.ts +0 -1
  66. package/dist/articles/author-schema.d.ts +0 -1
  67. package/dist/articles/author-social.d.ts +0 -1
  68. package/dist/articles/excerpt.d.ts +0 -1
  69. package/dist/articles/index.d.ts +0 -1
  70. package/dist/articles/index.js +87 -147
  71. package/dist/articles/news-sitemap.d.ts +0 -1
  72. package/dist/articles/processArticleHtml.d.ts +0 -1
  73. package/dist/articles/public-reads.d.ts +0 -1
  74. package/dist/articles/reading-time.d.ts +0 -1
  75. package/dist/articles/routes.d.ts +0 -1
  76. package/dist/articles/server-core.d.ts +0 -14
  77. package/dist/articles/server-ui.d.ts +0 -1
  78. package/dist/articles/server-ui.js +221 -265
  79. package/dist/articles/server.d.ts +0 -14
  80. package/dist/articles/server.js +10 -252
  81. package/dist/articles/types.d.ts +0 -1
  82. package/dist/articles/widget-styles.d.ts +0 -1
  83. package/dist/brand/extract-brand-profile.d.ts +0 -1
  84. package/dist/chat/index.d.ts +11 -0
  85. package/dist/chat/index.js +16 -0
  86. package/dist/chunk-24QZEO3Q.js +41 -0
  87. package/dist/chunk-3KUUH2YP.js +148 -0
  88. package/dist/chunk-43OCZ3JA.js +67 -0
  89. package/dist/chunk-4IQ52CXL.js +1803 -0
  90. package/dist/chunk-4KZ6W3ZH.js +8 -0
  91. package/dist/chunk-4RMVXRBO.js +478 -0
  92. package/dist/chunk-4Y5FWDPM.js +97 -0
  93. package/dist/chunk-5SEM2V4A.js +837 -0
  94. package/dist/chunk-5SQK3D53.js +24 -0
  95. package/dist/chunk-6HDT4G4A.js +253 -0
  96. package/dist/chunk-6T6CQVNL.js +37 -0
  97. package/dist/chunk-7KJGO77W.js +1 -0
  98. package/dist/chunk-7L5AARVY.js +68 -0
  99. package/dist/chunk-7ZWO5HDQ.js +1 -0
  100. package/dist/chunk-A4CC4ZG3.js +15 -0
  101. package/dist/chunk-AQSNPZY4.js +92 -0
  102. package/dist/chunk-BMO3VGMR.js +184 -0
  103. package/dist/chunk-BQR4IPBW.js +146 -0
  104. package/dist/chunk-BR4ZKUHH.js +227 -0
  105. package/dist/chunk-BU66S5B7.js +1 -0
  106. package/dist/chunk-C4G3NW2E.js +25 -0
  107. package/dist/chunk-CVTVNC2U.js +99 -0
  108. package/dist/chunk-D7SLSJS4.js +1 -0
  109. package/dist/chunk-DIKNRN34.js +28 -0
  110. package/dist/chunk-DXO6SBMD.js +43 -0
  111. package/dist/chunk-EDYHROQ7.js +77 -0
  112. package/dist/chunk-EGOD74PP.js +129 -0
  113. package/dist/chunk-EKBEOXTH.js +114 -0
  114. package/dist/chunk-FESKKJAS.js +19 -0
  115. package/dist/chunk-FL4EPUWA.js +407 -0
  116. package/dist/chunk-FV2VD7WM.js +347 -0
  117. package/dist/chunk-FYAB6CXS.js +265 -0
  118. package/dist/chunk-FYBZ5SNP.js +1241 -0
  119. package/dist/chunk-G3NHWMP5.js +233 -0
  120. package/dist/chunk-GJWI74ZZ.js +27 -0
  121. package/dist/chunk-GKGSXUVQ.js +218 -0
  122. package/dist/chunk-GLHQ3LRO.js +97 -0
  123. package/dist/chunk-GW7GSBO7.js +66 -0
  124. package/dist/chunk-GYESATRY.js +19 -0
  125. package/dist/chunk-GYF2ULVO.js +14 -0
  126. package/dist/chunk-HGCK465A.js +1071 -0
  127. package/dist/chunk-HXJ54KAM.js +122 -0
  128. package/dist/chunk-IHG36STL.js +286 -0
  129. package/dist/chunk-J4FSB4OG.js +200 -0
  130. package/dist/chunk-JE4A5S4F.js +48 -0
  131. package/dist/chunk-JJ4JS3LD.js +26 -0
  132. package/dist/chunk-JSZN6LDZ.js +338 -0
  133. package/dist/chunk-KPAZG65P.js +138 -0
  134. package/dist/chunk-KV4LOKOU.js +154 -0
  135. package/dist/chunk-KXPBMCFL.js +39 -0
  136. package/dist/chunk-L2V5PUFN.js +15 -0
  137. package/dist/chunk-L3AQCDCY.js +386 -0
  138. package/dist/chunk-L5UOHS6E.js +45 -0
  139. package/dist/chunk-LCDVPAMR.js +24 -0
  140. package/dist/chunk-LE7ZOTHB.js +43 -0
  141. package/dist/chunk-LNSNA3W4.js +217 -0
  142. package/dist/chunk-LQJC5S2M.js +236 -0
  143. package/dist/chunk-LVESVYCE.js +270 -0
  144. package/dist/chunk-MH2DSGC6.js +10 -0
  145. package/dist/chunk-MJP63SSS.js +14 -0
  146. package/dist/chunk-MV2MBTC3.js +177 -0
  147. package/dist/chunk-MVLMXC44.js +9 -0
  148. package/dist/chunk-N2UVOR3X.js +238 -0
  149. package/dist/chunk-NDF4A5JM.js +37 -0
  150. package/dist/chunk-NJCTQH2P.js +62 -0
  151. package/dist/chunk-NZOJHERI.js +32 -0
  152. package/dist/chunk-OFOAHPUV.js +127 -0
  153. package/dist/chunk-OPRBF7VE.js +41 -0
  154. package/dist/chunk-OSYCOC3K.js +21 -0
  155. package/dist/chunk-P4GRY6QP.js +54 -0
  156. package/dist/chunk-P5GB6NEO.js +66 -0
  157. package/dist/chunk-P5J7VMQ3.js +523 -0
  158. package/dist/chunk-PKBMQBKP.js +5 -0
  159. package/dist/chunk-PO2TRJPY.js +40 -0
  160. package/dist/chunk-PSAG45YF.js +451 -0
  161. package/dist/chunk-PXKIGZ2F.js +31 -0
  162. package/dist/chunk-QANVUXKH.js +100 -0
  163. package/dist/chunk-QGHSMJKW.js +4 -0
  164. package/dist/chunk-QLTDFUJ7.js +94 -0
  165. package/dist/chunk-QPEEKFCA.js +533 -0
  166. package/dist/chunk-QXMIKDOL.js +125 -0
  167. package/dist/chunk-QZZIKMAT.js +163 -0
  168. package/dist/chunk-S22FSH7C.js +94 -0
  169. package/dist/chunk-SC4MZGWZ.js +63 -0
  170. package/dist/chunk-SOD2F6C2.js +281 -0
  171. package/dist/chunk-SS636UDN.js +35 -0
  172. package/dist/chunk-SSUQKA7L.js +746 -0
  173. package/dist/chunk-SWKE6FWH.js +47 -0
  174. package/dist/chunk-T22VK4NJ.js +49 -0
  175. package/dist/chunk-T3MC4HOD.js +130 -0
  176. package/dist/chunk-TT63HHIT.js +543 -0
  177. package/dist/chunk-TXBAOEKG.js +1084 -0
  178. package/dist/chunk-UPFU63L4.js +126 -0
  179. package/dist/chunk-UVPGW4R7.js +222 -0
  180. package/dist/chunk-UZN4ZYR2.js +937 -0
  181. package/dist/chunk-V6LSQRTH.js +52 -0
  182. package/dist/chunk-VX5CMNMM.js +26 -0
  183. package/dist/chunk-WATH55UY.js +191 -0
  184. package/dist/chunk-WMVK77ND.js +53 -0
  185. package/dist/chunk-X6F6SO4S.js +135 -0
  186. package/dist/chunk-XTRZGXB2.js +34 -0
  187. package/dist/chunk-Y3INC4QJ.js +133 -0
  188. package/dist/chunk-YC7ELZS3.js +51 -0
  189. package/dist/chunk-YGGDU6C3.js +93 -0
  190. package/dist/chunk-YVKRYQRG.js +70 -0
  191. package/dist/chunk-Z22QVHT4.js +57 -0
  192. package/dist/chunk-ZEGVKVD5.js +80 -0
  193. package/dist/chunk-ZTZQPYP6.js +55 -0
  194. package/dist/client/SiteKitCredential.d.ts +0 -1
  195. package/dist/client/index.d.ts +0 -1
  196. package/dist/client/index.js +13 -53
  197. package/dist/cms/CmsPage.d.ts +0 -1
  198. package/dist/cms/CmsPreview.d.ts +0 -1
  199. package/dist/cms/CmsSection.d.ts +0 -1
  200. package/dist/cms/PortableTextRenderer.d.ts +0 -1
  201. package/dist/cms/index.d.ts +1 -2
  202. package/dist/cms/index.js +5 -410
  203. package/dist/cms/sanity-image.d.ts +0 -1
  204. package/dist/cms/sections/CtaSection.d.ts +0 -1
  205. package/dist/cms/sections/CustomSection.d.ts +0 -1
  206. package/dist/cms/sections/FaqSection.d.ts +0 -1
  207. package/dist/cms/sections/FormSection.d.ts +0 -1
  208. package/dist/cms/sections/GallerySection.d.ts +0 -1
  209. package/dist/cms/sections/HeroSection.d.ts +0 -1
  210. package/dist/cms/sections/RichTextSection.d.ts +0 -1
  211. package/dist/cms/sections/TestimonialsSection.d.ts +0 -1
  212. package/dist/cms/sections/index.d.ts +0 -1
  213. package/dist/cms/server-api.d.ts +0 -1
  214. package/dist/cms/server.d.ts +0 -1
  215. package/dist/cms/server.js +5 -22
  216. package/dist/cms/types.d.ts +0 -1
  217. package/dist/commerce/CalendarView.d.ts +0 -1
  218. package/dist/commerce/CheckoutForm.d.ts +0 -1
  219. package/dist/commerce/EventCalendar.d.ts +0 -1
  220. package/dist/commerce/EventCheckout.d.ts +0 -1
  221. package/dist/commerce/EventEmbed.d.ts +0 -1
  222. package/dist/commerce/EventModal.d.ts +0 -1
  223. package/dist/commerce/EventTile.d.ts +0 -1
  224. package/dist/commerce/EventsAgenda.d.ts +0 -1
  225. package/dist/commerce/EventsWidget.d.ts +0 -1
  226. package/dist/commerce/OfferingCard.d.ts +0 -1
  227. package/dist/commerce/OfferingList.d.ts +0 -1
  228. package/dist/commerce/ProductDetail.d.ts +0 -1
  229. package/dist/commerce/ProductEmbed.d.ts +0 -1
  230. package/dist/commerce/ProductGrid.d.ts +0 -1
  231. package/dist/commerce/ProductPage.d.ts +0 -1
  232. package/dist/commerce/RegistrationForm.d.ts +0 -1
  233. package/dist/commerce/SizeChart.d.ts +0 -1
  234. package/dist/commerce/UpcomingEvents.d.ts +0 -1
  235. package/dist/commerce/api.d.ts +0 -1
  236. package/dist/commerce/events-extras.d.ts +0 -1
  237. package/dist/commerce/index.d.ts +0 -1
  238. package/dist/commerce/index.js +8021 -228
  239. package/dist/commerce/server.d.ts +0 -1
  240. package/dist/commerce/server.js +2 -251
  241. package/dist/commerce/types.d.ts +0 -1
  242. package/dist/commerce/useEventModal.d.ts +0 -1
  243. package/dist/commerce/utils.d.ts +0 -1
  244. package/dist/config/index.d.ts +0 -1
  245. package/dist/config/index.js +7 -11
  246. package/dist/contracts/color.d.ts +38 -0
  247. package/dist/contracts/entries.d.ts +8 -0
  248. package/dist/contracts/fleet.d.ts +96 -0
  249. package/dist/contracts/forms.d.ts +89 -0
  250. package/dist/contracts/llms.d.ts +54 -0
  251. package/dist/contracts/portfolio.d.ts +158 -0
  252. package/dist/contracts/seo-meta.d.ts +56 -0
  253. package/dist/contracts/seo-pages.d.ts +124 -0
  254. package/dist/contracts/sites-normalize.d.ts +35 -0
  255. package/dist/contracts/sites.d.ts +48 -0
  256. package/dist/contracts/slots.d.ts +81 -0
  257. package/dist/contracts/website.d.ts +148 -0
  258. package/dist/cta-bar/CtaBar.d.ts +0 -1
  259. package/dist/cta-bar/CtaBarBehavior.d.ts +0 -1
  260. package/dist/cta-bar/client.d.ts +0 -1
  261. package/dist/cta-bar/client.js +3 -22
  262. package/dist/cta-bar/index.d.ts +0 -1
  263. package/dist/cta-bar/index.js +5 -227
  264. package/dist/cta-bar/styles.d.ts +0 -1
  265. package/dist/discover-3YYOHOQP.js +2 -0
  266. package/dist/engage/ChatWidget.d.ts +0 -1
  267. package/dist/engage/DesignRenderer.d.ts +0 -1
  268. package/dist/engage/EchoUiActions.d.ts +0 -1
  269. package/dist/engage/EngageWidget.d.ts +2 -1
  270. package/dist/engage/brand-color.d.ts +0 -1
  271. package/dist/engage/chat-messages.d.ts +0 -1
  272. package/dist/engage/echo-config.d.ts +0 -1
  273. package/dist/engage/element-rules.d.ts +0 -1
  274. package/dist/engage/index.d.ts +0 -1
  275. package/dist/engage/index.js +20 -37
  276. package/dist/engage/launcher-placement.d.ts +0 -1
  277. package/dist/engage/socket-loader.d.ts +0 -1
  278. package/dist/engage/types.d.ts +18 -1
  279. package/dist/fleet/FleetHeartbeat.d.ts +0 -1
  280. package/dist/fleet/contract.d.ts +1 -98
  281. package/dist/fleet/contract.js +2 -53
  282. package/dist/fleet/heartbeat.d.ts +0 -1
  283. package/dist/fleet/index.d.ts +0 -1
  284. package/dist/fleet/index.js +9 -76
  285. package/dist/forms/DatePicker.d.ts +0 -1
  286. package/dist/forms/FileField.d.ts +0 -1
  287. package/dist/forms/FormCelebration.d.ts +0 -1
  288. package/dist/forms/FormClient.d.ts +0 -1
  289. package/dist/forms/FormEnhancer.d.ts +0 -1
  290. package/dist/forms/FormField.d.ts +0 -1
  291. package/dist/forms/FormSpotlight.d.ts +0 -1
  292. package/dist/forms/FormStage.d.ts +0 -1
  293. package/dist/forms/HoneypotField.d.ts +0 -1
  294. package/dist/forms/ManagedForm.d.ts +0 -1
  295. package/dist/forms/ServerForm.d.ts +0 -1
  296. package/dist/forms/StaticForm.d.ts +0 -1
  297. package/dist/forms/contract.d.ts +1 -91
  298. package/dist/forms/contract.js +2 -37
  299. package/dist/forms/defaultSuccessMessage.d.ts +0 -1
  300. package/dist/forms/delight.d.ts +0 -1
  301. package/dist/forms/experience-chrome.d.ts +0 -1
  302. package/dist/forms/experience-plan.d.ts +0 -1
  303. package/dist/forms/field-controls.d.ts +0 -1
  304. package/dist/forms/field-interactions.d.ts +0 -1
  305. package/dist/forms/field-rules.d.ts +0 -1
  306. package/dist/forms/form-loaded-at.d.ts +12 -0
  307. package/dist/forms/form-values.d.ts +0 -1
  308. package/dist/forms/formsApi.d.ts +0 -1
  309. package/dist/forms/ga4-identity.d.ts +0 -1
  310. package/dist/forms/index.d.ts +0 -1
  311. package/dist/forms/index.js +20 -64
  312. package/dist/forms/normalize-config.d.ts +0 -1
  313. package/dist/forms/recaptcha-warmup.d.ts +0 -1
  314. package/dist/forms/recaptcha.d.ts +0 -1
  315. package/dist/forms/server.d.ts +0 -1
  316. package/dist/forms/server.js +11 -67
  317. package/dist/forms/static.d.ts +0 -1
  318. package/dist/forms/static.js +6 -17
  319. package/dist/forms/submitForm.d.ts +0 -1
  320. package/dist/forms/tracking-session.d.ts +0 -1
  321. package/dist/forms/types.d.ts +0 -1
  322. package/dist/forms/useForm.d.ts +0 -1
  323. package/dist/forms/useFormTracking.d.ts +0 -1
  324. package/dist/images/ManagedFavicon.d.ts +0 -1
  325. package/dist/images/ManagedImage.d.ts +0 -1
  326. package/dist/images/api.d.ts +0 -1
  327. package/dist/images/index.d.ts +0 -1
  328. package/dist/images/index.js +6 -49
  329. package/dist/images/server.d.ts +0 -1
  330. package/dist/images/server.js +3 -21
  331. package/dist/index.d.ts +13 -56
  332. package/dist/index.js +2 -427
  333. package/dist/landing/LandingPage.d.ts +0 -1
  334. package/dist/landing/contract.d.ts +0 -1
  335. package/dist/landing/index.d.ts +0 -1
  336. package/dist/landing/index.js +3 -22
  337. package/dist/landing/metadata.d.ts +0 -1
  338. package/dist/landing/server.d.ts +0 -1
  339. package/dist/landing/server.js +3 -17
  340. package/dist/layout/SiteKitClientProviders.d.ts +12 -3
  341. package/dist/layout/SiteKitLayout.d.ts +19 -4
  342. package/dist/layout/SpeculationRules.d.ts +0 -1
  343. package/dist/layout/client.d.ts +12 -3
  344. package/dist/layout/client.js +16 -27
  345. package/dist/layout/index.d.ts +0 -1
  346. package/dist/layout/index.js +43 -41
  347. package/dist/layout/types.d.ts +13 -1
  348. package/dist/llms/AEOComponents.d.ts +0 -1
  349. package/dist/llms/SpeakableSchema.d.ts +0 -1
  350. package/dist/llms/agent-access.d.ts +43 -0
  351. package/dist/llms/aiRobots.d.ts +0 -10
  352. package/dist/llms/api.d.ts +0 -1
  353. package/dist/llms/client.d.ts +0 -1
  354. package/dist/llms/client.js +4 -66
  355. package/dist/llms/contract.d.ts +1 -42
  356. package/dist/llms/contract.js +2 -41
  357. package/dist/llms/discovery-headers.d.ts +6 -1
  358. package/dist/llms/generateLLMsTxt.d.ts +0 -1
  359. package/dist/llms/handlers.d.ts +0 -1
  360. package/dist/llms/humanize-industry.d.ts +0 -1
  361. package/dist/llms/index.d.ts +3 -2
  362. package/dist/llms/index.js +17 -448
  363. package/dist/llms/links.d.ts +0 -1
  364. package/dist/llms/revalidate.d.ts +0 -1
  365. package/dist/llms/seo-revalidate.d.ts +0 -1
  366. package/dist/llms/sourcedFacts.d.ts +0 -1
  367. package/dist/llms/types.d.ts +6 -1
  368. package/dist/llms/writeLLMsTxt.d.ts +10 -1
  369. package/dist/manifest/index.d.ts +0 -1
  370. package/dist/manifest/index.js +4 -8
  371. package/dist/maps/GoogleMap.d.ts +0 -1
  372. package/dist/maps/NeighborhoodMap.d.ts +0 -1
  373. package/dist/maps/api.d.ts +0 -1
  374. package/dist/maps/index.d.ts +0 -1
  375. package/dist/maps/index.js +85 -92
  376. package/dist/maps/types.d.ts +0 -1
  377. package/dist/mcp/WebMcpTools.d.ts +0 -1
  378. package/dist/mcp/client.d.ts +0 -1
  379. package/dist/mcp/client.js +9 -12
  380. package/dist/mcp/declarative.d.ts +0 -1
  381. package/dist/mcp/handlers.d.ts +15 -2
  382. package/dist/mcp/index.d.ts +2 -3
  383. package/dist/mcp/index.js +50 -298
  384. package/dist/mcp/protocol.d.ts +0 -1
  385. package/dist/mcp/report.d.ts +27 -0
  386. package/dist/mcp/serverCard.d.ts +0 -1
  387. package/dist/mcp/sonor.d.ts +99 -0
  388. package/dist/mcp/sonor.js +484 -0
  389. package/dist/mcp/transport.d.ts +0 -1
  390. package/dist/mcp/transport.js +8 -24
  391. package/dist/mcp/types.d.ts +21 -1
  392. package/dist/motion/CountUp.d.ts +0 -1
  393. package/dist/motion/Parallax.d.ts +0 -1
  394. package/dist/motion/Reveal.d.ts +0 -1
  395. package/dist/motion/ScrollScene.d.ts +0 -1
  396. package/dist/motion/engine.d.ts +0 -1
  397. package/dist/motion/failsafe.d.ts +0 -1
  398. package/dist/motion/gsap.d.ts +0 -1
  399. package/dist/motion/gsap.js +17 -29
  400. package/dist/motion/index.d.ts +0 -1
  401. package/dist/motion/index.js +25 -51
  402. package/dist/motion/three.d.ts +0 -1
  403. package/dist/motion/three.js +16 -23
  404. package/dist/og/config.d.ts +0 -1
  405. package/dist/og/contrast.d.ts +0 -1
  406. package/dist/og/index.d.ts +0 -1
  407. package/dist/og/index.js +4 -43
  408. package/dist/og/pages.d.ts +0 -1
  409. package/dist/og/route-fit.d.ts +0 -1
  410. package/dist/og/route.d.ts +0 -1
  411. package/dist/og/route.js +3 -245
  412. package/dist/og/template.d.ts +0 -1
  413. package/dist/portfolio/contract.d.ts +1 -153
  414. package/dist/portfolio/contract.js +2 -136
  415. package/dist/proxy/index.d.ts +16 -14
  416. package/dist/proxy/index.js +20 -36
  417. package/dist/proxy/securityHeaders.d.ts +0 -1
  418. package/dist/proxy/segment.d.ts +0 -1
  419. package/dist/redirects/index.d.ts +0 -8
  420. package/dist/redirects/index.js +6 -41
  421. package/dist/reputation/TestimonialSection.d.ts +0 -1
  422. package/dist/reputation/api.d.ts +0 -1
  423. package/dist/reputation/index.d.ts +0 -1
  424. package/dist/reputation/index.js +4 -22
  425. package/dist/reputation/server.d.ts +0 -1
  426. package/dist/reputation/server.js +3 -17
  427. package/dist/reputation/types.d.ts +0 -1
  428. package/dist/robots/index.d.ts +1 -2
  429. package/dist/robots/index.js +4 -78
  430. package/dist/robots/indexnow.d.ts +0 -1
  431. package/dist/robots/indexnow.js +4 -39
  432. package/dist/robots/next-internals.d.ts +0 -1
  433. package/dist/seo/ManagedContent.d.ts +0 -1
  434. package/dist/seo/ManagedFAQ.d.ts +0 -1
  435. package/dist/seo/ManagedInternalLinks.d.ts +0 -1
  436. package/dist/seo/ManagedSchema.d.ts +0 -1
  437. package/dist/seo/ManagedScripts.d.ts +0 -1
  438. package/dist/seo/api.d.ts +0 -1
  439. package/dist/seo/client.d.ts +0 -1
  440. package/dist/seo/client.js +8 -19
  441. package/dist/seo/entry-indexnow.d.ts +2 -0
  442. package/dist/seo/entry-llms-client.d.ts +2 -0
  443. package/dist/seo/entry-llms-contract.d.ts +2 -0
  444. package/dist/seo/entry-llms.d.ts +2 -0
  445. package/dist/seo/entry-meta-contract.d.ts +2 -0
  446. package/dist/seo/entry-og-route.d.ts +2 -0
  447. package/dist/seo/entry-og.d.ts +2 -0
  448. package/dist/seo/entry-pages-contract.d.ts +2 -0
  449. package/dist/seo/entry-redirects.d.ts +2 -0
  450. package/dist/seo/entry-robots.d.ts +2 -0
  451. package/dist/seo/entry-sitemap.d.ts +2 -0
  452. package/dist/seo/getManagedMetadata.d.ts +0 -1
  453. package/dist/seo/groundingSchema.d.ts +0 -1
  454. package/dist/seo/index.d.ts +0 -2
  455. package/dist/seo/index.js +88 -318
  456. package/dist/seo/indexnow.d.ts +2 -0
  457. package/dist/seo/indexnow.js +4 -0
  458. package/dist/seo/llms/client.d.ts +2 -0
  459. package/dist/seo/llms/client.js +4 -0
  460. package/dist/seo/llms/contract.d.ts +2 -0
  461. package/dist/seo/llms/contract.js +2 -0
  462. package/dist/seo/llms.d.ts +2 -0
  463. package/dist/seo/llms.js +17 -0
  464. package/dist/seo/load-env.d.ts +12 -0
  465. package/dist/seo/meta/contract.d.ts +2 -0
  466. package/dist/seo/meta/contract.js +2 -0
  467. package/dist/seo/og/route.d.ts +2 -0
  468. package/dist/seo/og/route.js +3 -0
  469. package/dist/seo/og.d.ts +2 -0
  470. package/dist/seo/og.js +4 -0
  471. package/dist/seo/pages/contract.d.ts +2 -0
  472. package/dist/seo/pages/contract.js +4 -0
  473. package/dist/seo/redirects.d.ts +2 -0
  474. package/dist/seo/redirects.js +6 -0
  475. package/dist/seo/register-sitemap-cli-impl.d.ts +6 -1
  476. package/dist/seo/register-sitemap-cli.d.ts +1 -1
  477. package/dist/seo/register-sitemap-cli.js +73 -66
  478. package/dist/seo/register-sitemap-request.d.ts +0 -1
  479. package/dist/seo/robots.d.ts +2 -0
  480. package/dist/seo/robots.js +4 -0
  481. package/dist/seo/routing.d.ts +0 -1
  482. package/dist/seo/safeJsonLd.d.ts +0 -1
  483. package/dist/seo/schema-filter.d.ts +0 -1
  484. package/dist/seo/server-api.d.ts +0 -1
  485. package/dist/seo/server.d.ts +0 -1
  486. package/dist/seo/server.js +10 -80
  487. package/dist/seo/sitemap.d.ts +2 -0
  488. package/dist/seo/sitemap.js +15 -0
  489. package/dist/seo/types.d.ts +0 -1
  490. package/dist/seo/withManagedMetadata.d.ts +0 -1
  491. package/dist/seo-meta/contract.d.ts +1 -60
  492. package/dist/seo-meta/contract.js +2 -41
  493. package/dist/seo-pages/contract.d.ts +1 -61
  494. package/dist/seo-pages/contract.js +4 -49
  495. package/dist/server/index.d.ts +0 -1
  496. package/dist/server/index.js +6 -32
  497. package/dist/server/mint-site-token.d.ts +0 -1
  498. package/dist/server/server-fetch.d.ts +0 -1
  499. package/dist/server-api-GJJQZVG7.js +8 -0
  500. package/dist/shared/build-entries.d.ts +53 -14
  501. package/dist/shared/clock.d.ts +20 -0
  502. package/dist/shared/color.d.ts +1 -39
  503. package/dist/shared/defer.d.ts +0 -1
  504. package/dist/shared/fetchWithRetry.d.ts +0 -1
  505. package/dist/shared/frame.d.ts +1 -9
  506. package/dist/shared/fresh-fetch.d.ts +0 -1
  507. package/dist/shared/glass.d.ts +0 -1
  508. package/dist/shared/identity.d.ts +0 -1
  509. package/dist/shared/markdown.d.ts +40 -0
  510. package/dist/shared/next-files.d.ts +0 -1
  511. package/dist/shared/page-leave.d.ts +0 -1
  512. package/dist/shared/publishCredential.d.ts +0 -1
  513. package/dist/shared/reporting-gate.d.ts +0 -1
  514. package/dist/shared/request-guards.d.ts +0 -1
  515. package/dist/shared/siteToken.d.ts +0 -1
  516. package/dist/shared/sonorFetch.d.ts +0 -1
  517. package/dist/shared/source-graph.d.ts +0 -1
  518. package/dist/shared/uuid.d.ts +0 -1
  519. package/dist/shared/version.d.ts +1 -2
  520. package/dist/shared/visual-viewport-gap.d.ts +0 -1
  521. package/dist/signal/SignalBridge.d.ts +0 -1
  522. package/dist/signal/SignalCore.d.ts +0 -1
  523. package/dist/signal/SignalExperiment.d.ts +0 -1
  524. package/dist/signal/index.d.ts +0 -1
  525. package/dist/signal/index.js +72 -44
  526. package/dist/signal/store.d.ts +0 -1
  527. package/dist/signal/types.d.ts +0 -1
  528. package/dist/site-config/index.d.ts +0 -1
  529. package/dist/site-config/index.js +2 -17
  530. package/dist/sitemap/discover.d.ts +0 -1
  531. package/dist/sitemap/index.d.ts +6 -1
  532. package/dist/sitemap/index.js +15 -553
  533. package/dist/sitemap/shared.d.ts +0 -1
  534. package/dist/sites/contract.d.ts +1 -51
  535. package/dist/sites/contract.js +3 -38
  536. package/dist/sites/normalize.d.ts +1 -36
  537. package/dist/sites/resolve.d.ts +0 -1
  538. package/dist/sites/site-param.d.ts +0 -1
  539. package/dist/slots/ManagedSlot.d.ts +0 -1
  540. package/dist/slots/contract.d.ts +1 -82
  541. package/dist/slots/contract.js +2 -41
  542. package/dist/slots/index.d.ts +0 -1
  543. package/dist/slots/index.js +5 -182
  544. package/dist/slots/revalidate.d.ts +0 -1
  545. package/dist/slots/server-api.d.ts +0 -1
  546. package/dist/socket-loader-R24ZSRSQ.js +12 -0
  547. package/dist/sync/AddToCalendar.d.ts +0 -1
  548. package/dist/sync/BookingWidget.d.ts +0 -1
  549. package/dist/sync/MeetingFormatStep.d.ts +0 -1
  550. package/dist/sync/api.d.ts +0 -1
  551. package/dist/sync/booking-flow.d.ts +0 -1
  552. package/dist/sync/index.d.ts +0 -1
  553. package/dist/sync/index.js +6 -64
  554. package/dist/sync/types.d.ts +0 -1
  555. package/dist/types.d.ts +0 -63
  556. package/dist/web-vitals.attribution-N2PCCF4Q.js +522 -0
  557. package/dist/website/BlocksPopup.d.ts +25 -0
  558. package/dist/website/PopupBlocks.d.ts +57 -0
  559. package/dist/website/SiteDesignReporter.d.ts +28 -0
  560. package/dist/website/cms/server.d.ts +2 -0
  561. package/dist/website/cms/server.js +5 -0
  562. package/dist/website/cms-server.d.ts +2 -0
  563. package/dist/website/cms.d.ts +2 -0
  564. package/dist/website/cms.js +5 -0
  565. package/dist/website/contract.d.ts +1 -0
  566. package/dist/website/contract.js +3 -0
  567. package/dist/website/cta-bar.d.ts +2 -0
  568. package/dist/website/cta-bar.js +5 -0
  569. package/dist/website/design.d.ts +165 -0
  570. package/dist/website/images/server.d.ts +2 -0
  571. package/dist/website/images/server.js +3 -0
  572. package/dist/website/images-server.d.ts +2 -0
  573. package/dist/website/images.d.ts +2 -0
  574. package/dist/website/images.js +6 -0
  575. package/dist/website/index.d.ts +17 -0
  576. package/dist/website/index.js +13 -0
  577. package/dist/website/landing/server.d.ts +2 -0
  578. package/dist/website/landing/server.js +3 -0
  579. package/dist/website/landing-server.d.ts +2 -0
  580. package/dist/website/landing.d.ts +2 -0
  581. package/dist/website/landing.js +3 -0
  582. package/dist/website/popups.d.ts +17 -0
  583. package/dist/website/popups.js +22 -0
  584. package/dist/website/slots/contract.d.ts +2 -0
  585. package/dist/website/slots/contract.js +2 -0
  586. package/dist/website/slots-contract.d.ts +2 -0
  587. package/dist/website/slots.d.ts +3 -0
  588. package/dist/website/slots.js +5 -0
  589. package/dist/writeLLMsTxt-UMHKGNRR.js +11 -0
  590. package/package.json +191 -161
  591. package/skills/site-kit/SKILL.md +9 -3
  592. package/dist/AnalyticsProvider-44PDLORZ.js +0 -34
  593. package/dist/AnalyticsProvider-44PDLORZ.js.map +0 -1
  594. package/dist/AnalyticsProvider-F6KHEAOX.mjs +0 -13
  595. package/dist/AnalyticsProvider-F6KHEAOX.mjs.map +0 -1
  596. package/dist/ArticleFaqSection-3KZ24MFS.js +0 -13
  597. package/dist/ArticleFaqSection-3KZ24MFS.js.map +0 -1
  598. package/dist/ArticleFaqSection-XZPXJVH4.mjs +0 -11
  599. package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +0 -1
  600. package/dist/ArticleViewTracker-MGNVIHZ4.js +0 -54
  601. package/dist/ArticleViewTracker-MGNVIHZ4.js.map +0 -1
  602. package/dist/ArticleViewTracker-NI4UNSY7.mjs +0 -51
  603. package/dist/ArticleViewTracker-NI4UNSY7.mjs.map +0 -1
  604. package/dist/ChatWidget-XSALHDDW.mjs +0 -17
  605. package/dist/ChatWidget-XSALHDDW.mjs.map +0 -1
  606. package/dist/ChatWidget-YBXJRR2Z.js +0 -34
  607. package/dist/ChatWidget-YBXJRR2Z.js.map +0 -1
  608. package/dist/DatePicker-4WNKNNCV.mjs +0 -4
  609. package/dist/DatePicker-4WNKNNCV.mjs.map +0 -1
  610. package/dist/DatePicker-VPZR7RU3.js +0 -13
  611. package/dist/DatePicker-VPZR7RU3.js.map +0 -1
  612. package/dist/EngageWidget-DUEXPVOY.mjs +0 -13
  613. package/dist/EngageWidget-DUEXPVOY.mjs.map +0 -1
  614. package/dist/EngageWidget-MDCRS3BN.js +0 -22
  615. package/dist/EngageWidget-MDCRS3BN.js.map +0 -1
  616. package/dist/FileField-AXU6KBSV.js +0 -91
  617. package/dist/FileField-AXU6KBSV.js.map +0 -1
  618. package/dist/FileField-UTLGR5ZN.mjs +0 -85
  619. package/dist/FileField-UTLGR5ZN.mjs.map +0 -1
  620. package/dist/FormCelebration-7CBANVNS.mjs +0 -4
  621. package/dist/FormCelebration-7CBANVNS.mjs.map +0 -1
  622. package/dist/FormCelebration-O2O5S6JI.js +0 -13
  623. package/dist/FormCelebration-O2O5S6JI.js.map +0 -1
  624. package/dist/FormSpotlight-NWLCZMOT.mjs +0 -756
  625. package/dist/FormSpotlight-NWLCZMOT.mjs.map +0 -1
  626. package/dist/FormSpotlight-RR5KJDIH.js +0 -761
  627. package/dist/FormSpotlight-RR5KJDIH.js.map +0 -1
  628. package/dist/FormStage-GFNX4GLU.js +0 -422
  629. package/dist/FormStage-GFNX4GLU.js.map +0 -1
  630. package/dist/FormStage-V4XKLI6J.mjs +0 -420
  631. package/dist/FormStage-V4XKLI6J.mjs.map +0 -1
  632. package/dist/ManagedForm-4AD3LWSC.js +0 -25
  633. package/dist/ManagedForm-4AD3LWSC.js.map +0 -1
  634. package/dist/ManagedForm-4IWPG6AZ.mjs +0 -16
  635. package/dist/ManagedForm-4IWPG6AZ.mjs.map +0 -1
  636. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs +0 -64
  637. package/dist/ManagedNewsletterForm-ARSY2VHC.mjs.map +0 -1
  638. package/dist/ManagedNewsletterForm-HJZNUABY.js +0 -66
  639. package/dist/ManagedNewsletterForm-HJZNUABY.js.map +0 -1
  640. package/dist/SignalCore-N2LKG4XN.mjs +0 -324
  641. package/dist/SignalCore-N2LKG4XN.mjs.map +0 -1
  642. package/dist/SignalCore-P2JUY2BO.js +0 -326
  643. package/dist/SignalCore-P2JUY2BO.js.map +0 -1
  644. package/dist/SitemapSync-KFY4PJ7G.js +0 -19
  645. package/dist/SitemapSync-KFY4PJ7G.js.map +0 -1
  646. package/dist/SitemapSync-UYDL7T4M.mjs +0 -10
  647. package/dist/SitemapSync-UYDL7T4M.mjs.map +0 -1
  648. package/dist/SitemapSync.d.ts.map +0 -1
  649. package/dist/admin-auth/index.d.ts.map +0 -1
  650. package/dist/admin-auth/index.js.map +0 -1
  651. package/dist/admin-auth/index.mjs +0 -0
  652. package/dist/admin-auth/index.mjs.map +0 -1
  653. package/dist/admin-auth/session.d.ts.map +0 -1
  654. package/dist/affiliates/AffiliatesWidget.d.ts.map +0 -1
  655. package/dist/affiliates/api.d.ts.map +0 -1
  656. package/dist/affiliates/index.d.ts.map +0 -1
  657. package/dist/affiliates/types.d.ts.map +0 -1
  658. package/dist/affiliates/useAffiliates.d.ts.map +0 -1
  659. package/dist/analytics/AnalyticsProvider.d.ts.map +0 -1
  660. package/dist/analytics/WebVitals.d.ts.map +0 -1
  661. package/dist/analytics/dispatch.d.ts.map +0 -1
  662. package/dist/analytics/index.d.ts.map +0 -1
  663. package/dist/analytics/index.js.map +0 -1
  664. package/dist/analytics/index.mjs +0 -15
  665. package/dist/analytics/index.mjs.map +0 -1
  666. package/dist/analytics/measurement-context.d.ts.map +0 -1
  667. package/dist/analytics/page-observation.d.ts.map +0 -1
  668. package/dist/analytics/send-gate.d.ts.map +0 -1
  669. package/dist/analytics/types.d.ts.map +0 -1
  670. package/dist/analytics/useContactTracking.d.ts.map +0 -1
  671. package/dist/api-D745LGGU.mjs +0 -183
  672. package/dist/api-XR5APCH3.js +0 -201
  673. package/dist/article-styles-DACUAOVT.mjs +0 -592
  674. package/dist/article-styles-DACUAOVT.mjs.map +0 -1
  675. package/dist/article-styles-JHHTNHOK.js +0 -595
  676. package/dist/article-styles-JHHTNHOK.js.map +0 -1
  677. package/dist/article-tables-EWXG4LNP.js +0 -17
  678. package/dist/article-tables-EWXG4LNP.js.map +0 -1
  679. package/dist/article-tables-OGE52LNT.mjs +0 -4
  680. package/dist/article-tables-OGE52LNT.mjs.map +0 -1
  681. package/dist/articles/Article.d.ts.map +0 -1
  682. package/dist/articles/ArticleFAQ.d.ts.map +0 -1
  683. package/dist/articles/ArticleFaqSection.d.ts.map +0 -1
  684. package/dist/articles/ArticleList.d.ts.map +0 -1
  685. package/dist/articles/ArticleViewTracker.d.ts.map +0 -1
  686. package/dist/articles/AuthorCard.d.ts.map +0 -1
  687. package/dist/articles/AuthorPage.d.ts.map +0 -1
  688. package/dist/articles/ClusterLandingPage.d.ts.map +0 -1
  689. package/dist/articles/ClusterNavigation.d.ts.map +0 -1
  690. package/dist/articles/ManagedNewsletterForm.d.ts.map +0 -1
  691. package/dist/articles/NewsletterShell.d.ts.map +0 -1
  692. package/dist/articles/NewsletterWidget.d.ts.map +0 -1
  693. package/dist/articles/PublicationLayout.d.ts.map +0 -1
  694. package/dist/articles/PublicationSidebar.d.ts.map +0 -1
  695. package/dist/articles/RelatedPosts.d.ts.map +0 -1
  696. package/dist/articles/ServiceCallout.d.ts.map +0 -1
  697. package/dist/articles/TableOfContents.d.ts.map +0 -1
  698. package/dist/articles/article-styles.d.ts.map +0 -1
  699. package/dist/articles/article-tables.d.ts.map +0 -1
  700. package/dist/articles/artwork.d.ts.map +0 -1
  701. package/dist/articles/author-schema.d.ts.map +0 -1
  702. package/dist/articles/author-social.d.ts.map +0 -1
  703. package/dist/articles/excerpt.d.ts.map +0 -1
  704. package/dist/articles/index.d.ts.map +0 -1
  705. package/dist/articles/index.js.map +0 -1
  706. package/dist/articles/index.mjs +0 -457
  707. package/dist/articles/index.mjs.map +0 -1
  708. package/dist/articles/news-sitemap.d.ts.map +0 -1
  709. package/dist/articles/processArticleHtml.d.ts.map +0 -1
  710. package/dist/articles/public-reads.d.ts.map +0 -1
  711. package/dist/articles/reading-time.d.ts.map +0 -1
  712. package/dist/articles/routes.d.ts.map +0 -1
  713. package/dist/articles/server-core.d.ts.map +0 -1
  714. package/dist/articles/server-ui.d.ts.map +0 -1
  715. package/dist/articles/server-ui.js.map +0 -1
  716. package/dist/articles/server-ui.mjs +0 -1098
  717. package/dist/articles/server-ui.mjs.map +0 -1
  718. package/dist/articles/server.d.ts.map +0 -1
  719. package/dist/articles/server.js.map +0 -1
  720. package/dist/articles/server.mjs +0 -11
  721. package/dist/articles/server.mjs.map +0 -1
  722. package/dist/articles/types.d.ts.map +0 -1
  723. package/dist/articles/widget-styles.d.ts.map +0 -1
  724. package/dist/brand/extract-brand-profile.d.ts.map +0 -1
  725. package/dist/chunk-2FEQ6TYD.mjs +0 -37
  726. package/dist/chunk-2FEQ6TYD.mjs.map +0 -1
  727. package/dist/chunk-34XL7TVH.js +0 -130
  728. package/dist/chunk-34XL7TVH.js.map +0 -1
  729. package/dist/chunk-3AOKYAZ2.js +0 -135
  730. package/dist/chunk-3AOKYAZ2.js.map +0 -1
  731. package/dist/chunk-3BLKKF67.mjs +0 -131
  732. package/dist/chunk-3BLKKF67.mjs.map +0 -1
  733. package/dist/chunk-3DWIYCQX.js +0 -30
  734. package/dist/chunk-3DWIYCQX.js.map +0 -1
  735. package/dist/chunk-3EAS4PAT.js +0 -141
  736. package/dist/chunk-3EAS4PAT.js.map +0 -1
  737. package/dist/chunk-3SDMJMN2.js +0 -71
  738. package/dist/chunk-3SDMJMN2.js.map +0 -1
  739. package/dist/chunk-3T2CVHFO.mjs +0 -453
  740. package/dist/chunk-3T2CVHFO.mjs.map +0 -1
  741. package/dist/chunk-42LLFAJQ.mjs +0 -932
  742. package/dist/chunk-42LLFAJQ.mjs.map +0 -1
  743. package/dist/chunk-4BEGKFMN.js +0 -133
  744. package/dist/chunk-4BEGKFMN.js.map +0 -1
  745. package/dist/chunk-4KAMU5HD.mjs +0 -16
  746. package/dist/chunk-4KAMU5HD.mjs.map +0 -1
  747. package/dist/chunk-4U5NCKQY.mjs +0 -39
  748. package/dist/chunk-4U5NCKQY.mjs.map +0 -1
  749. package/dist/chunk-4WCA2HM6.mjs +0 -57
  750. package/dist/chunk-4WCA2HM6.mjs.map +0 -1
  751. package/dist/chunk-54CARHDR.mjs +0 -95
  752. package/dist/chunk-54CARHDR.mjs.map +0 -1
  753. package/dist/chunk-55J2KE7D.js +0 -60
  754. package/dist/chunk-55J2KE7D.js.map +0 -1
  755. package/dist/chunk-5F2FIM5A.mjs +0 -135
  756. package/dist/chunk-5F2FIM5A.mjs.map +0 -1
  757. package/dist/chunk-5SANRSX3.mjs +0 -17
  758. package/dist/chunk-5SANRSX3.mjs.map +0 -1
  759. package/dist/chunk-5XFFUP6D.js +0 -100
  760. package/dist/chunk-5XFFUP6D.js.map +0 -1
  761. package/dist/chunk-5YA6SI4Z.mjs +0 -14279
  762. package/dist/chunk-5YVQWLSQ.mjs +0 -47
  763. package/dist/chunk-5YVQWLSQ.mjs.map +0 -1
  764. package/dist/chunk-5ZMTEK7U.js +0 -1430
  765. package/dist/chunk-5ZMTEK7U.js.map +0 -1
  766. package/dist/chunk-64BOVMXG.mjs +0 -68
  767. package/dist/chunk-64BOVMXG.mjs.map +0 -1
  768. package/dist/chunk-662YHKWW.mjs +0 -10
  769. package/dist/chunk-662YHKWW.mjs.map +0 -1
  770. package/dist/chunk-6C47333H.mjs +0 -55
  771. package/dist/chunk-6C47333H.mjs.map +0 -1
  772. package/dist/chunk-6EDVCUAG.mjs +0 -29
  773. package/dist/chunk-6EDVCUAG.mjs.map +0 -1
  774. package/dist/chunk-6FNFM7JL.js +0 -113
  775. package/dist/chunk-6FNFM7JL.js.map +0 -1
  776. package/dist/chunk-6OQYRVMI.js +0 -937
  777. package/dist/chunk-6OQYRVMI.js.map +0 -1
  778. package/dist/chunk-6PJTLBRR.mjs +0 -11
  779. package/dist/chunk-6PJTLBRR.mjs.map +0 -1
  780. package/dist/chunk-6XNEGG5B.mjs +0 -137
  781. package/dist/chunk-6XNEGG5B.mjs.map +0 -1
  782. package/dist/chunk-7F66Y4MA.mjs +0 -1073
  783. package/dist/chunk-7F66Y4MA.mjs.map +0 -1
  784. package/dist/chunk-7RLL67F3.js +0 -47
  785. package/dist/chunk-7RLL67F3.js.map +0 -1
  786. package/dist/chunk-7THQ4UW3.js +0 -69
  787. package/dist/chunk-7THQ4UW3.js.map +0 -1
  788. package/dist/chunk-A2HL22BO.mjs +0 -165
  789. package/dist/chunk-A2HL22BO.mjs.map +0 -1
  790. package/dist/chunk-AAZNH3MA.mjs +0 -23
  791. package/dist/chunk-AAZNH3MA.mjs.map +0 -1
  792. package/dist/chunk-AEN7EL6N.js +0 -161
  793. package/dist/chunk-AEN7EL6N.js.map +0 -1
  794. package/dist/chunk-AGIMH67E.mjs +0 -26
  795. package/dist/chunk-AGIMH67E.mjs.map +0 -1
  796. package/dist/chunk-AL4Z6VYF.js +0 -83
  797. package/dist/chunk-AL4Z6VYF.js.map +0 -1
  798. package/dist/chunk-AS2HUIDW.mjs +0 -16
  799. package/dist/chunk-AS2HUIDW.mjs.map +0 -1
  800. package/dist/chunk-B22WSN4L.mjs +0 -59
  801. package/dist/chunk-B22WSN4L.mjs.map +0 -1
  802. package/dist/chunk-B6QPCAEG.mjs +0 -128
  803. package/dist/chunk-B6QPCAEG.mjs.map +0 -1
  804. package/dist/chunk-BBBJHYPH.js +0 -19
  805. package/dist/chunk-BBBJHYPH.js.map +0 -1
  806. package/dist/chunk-BEXTDHO4.mjs +0 -57
  807. package/dist/chunk-BEXTDHO4.mjs.map +0 -1
  808. package/dist/chunk-BHZHWXER.js +0 -791
  809. package/dist/chunk-BHZHWXER.js.map +0 -1
  810. package/dist/chunk-BNKBRLJK.mjs +0 -75
  811. package/dist/chunk-BNKBRLJK.mjs.map +0 -1
  812. package/dist/chunk-BQP6JIE2.mjs +0 -28
  813. package/dist/chunk-BQP6JIE2.mjs.map +0 -1
  814. package/dist/chunk-BZR6RUIN.mjs +0 -128
  815. package/dist/chunk-BZR6RUIN.mjs.map +0 -1
  816. package/dist/chunk-C2CTLLIO.mjs +0 -72
  817. package/dist/chunk-C2CTLLIO.mjs.map +0 -1
  818. package/dist/chunk-C5VITBN7.mjs +0 -220
  819. package/dist/chunk-C5VITBN7.mjs.map +0 -1
  820. package/dist/chunk-CABEVWKJ.mjs +0 -25
  821. package/dist/chunk-CABEVWKJ.mjs.map +0 -1
  822. package/dist/chunk-CDRQYJUT.js +0 -355
  823. package/dist/chunk-CDRQYJUT.js.map +0 -1
  824. package/dist/chunk-CFRJ2MK5.mjs +0 -16
  825. package/dist/chunk-CFRJ2MK5.mjs.map +0 -1
  826. package/dist/chunk-CIM5W3UO.js +0 -26
  827. package/dist/chunk-CIM5W3UO.js.map +0 -1
  828. package/dist/chunk-CLO3K7PF.js +0 -19
  829. package/dist/chunk-CLO3K7PF.js.map +0 -1
  830. package/dist/chunk-CM4AVKXR.js +0 -533
  831. package/dist/chunk-CM4AVKXR.js.map +0 -1
  832. package/dist/chunk-CU6OGBKK.mjs +0 -68
  833. package/dist/chunk-CU6OGBKK.mjs.map +0 -1
  834. package/dist/chunk-CUNZAD46.js +0 -53
  835. package/dist/chunk-CUNZAD46.js.map +0 -1
  836. package/dist/chunk-CXAXZFFW.js +0 -157
  837. package/dist/chunk-CXAXZFFW.js.map +0 -1
  838. package/dist/chunk-D3WJMSTB.mjs +0 -132
  839. package/dist/chunk-D3WJMSTB.mjs.map +0 -1
  840. package/dist/chunk-DA7IANFG.mjs +0 -37
  841. package/dist/chunk-DA7IANFG.mjs.map +0 -1
  842. package/dist/chunk-DV2LJYFD.js +0 -14
  843. package/dist/chunk-DV2LJYFD.js.map +0 -1
  844. package/dist/chunk-DV5KVNA7.js +0 -45
  845. package/dist/chunk-DV5KVNA7.js.map +0 -1
  846. package/dist/chunk-DVYYGHSG.js +0 -285
  847. package/dist/chunk-DVYYGHSG.js.map +0 -1
  848. package/dist/chunk-DWZGW77V.mjs +0 -1669
  849. package/dist/chunk-DWZGW77V.mjs.map +0 -1
  850. package/dist/chunk-EDLNMGQC.mjs +0 -65
  851. package/dist/chunk-EDLNMGQC.mjs.map +0 -1
  852. package/dist/chunk-EHJANA5C.js +0 -231
  853. package/dist/chunk-EHJANA5C.js.map +0 -1
  854. package/dist/chunk-EMHSHAVW.js +0 -19
  855. package/dist/chunk-EMHSHAVW.js.map +0 -1
  856. package/dist/chunk-ESP5RMB7.js +0 -42
  857. package/dist/chunk-ESP5RMB7.js.map +0 -1
  858. package/dist/chunk-FCAHV5P3.mjs +0 -45
  859. package/dist/chunk-FCAHV5P3.mjs.map +0 -1
  860. package/dist/chunk-FPVYKSXE.mjs +0 -154
  861. package/dist/chunk-FPVYKSXE.mjs.map +0 -1
  862. package/dist/chunk-G2KGHIAP.js +0 -176
  863. package/dist/chunk-G2KGHIAP.js.map +0 -1
  864. package/dist/chunk-G6WF4G3E.js +0 -43
  865. package/dist/chunk-G6WF4G3E.js.map +0 -1
  866. package/dist/chunk-GCPPXUAI.js +0 -72
  867. package/dist/chunk-GCPPXUAI.js.map +0 -1
  868. package/dist/chunk-GFSQMK35.mjs +0 -127
  869. package/dist/chunk-GFSQMK35.mjs.map +0 -1
  870. package/dist/chunk-GIGUDKLS.mjs +0 -6
  871. package/dist/chunk-GIGUDKLS.mjs.map +0 -1
  872. package/dist/chunk-GSRT66PA.js +0 -80
  873. package/dist/chunk-GSRT66PA.js.map +0 -1
  874. package/dist/chunk-H4TSADY3.mjs +0 -761
  875. package/dist/chunk-H4TSADY3.mjs.map +0 -1
  876. package/dist/chunk-H6AU3WKF.js +0 -108
  877. package/dist/chunk-H6AU3WKF.js.map +0 -1
  878. package/dist/chunk-HGNSJXWT.js +0 -55
  879. package/dist/chunk-HGNSJXWT.js.map +0 -1
  880. package/dist/chunk-HIZJD7TU.mjs +0 -326
  881. package/dist/chunk-HIZJD7TU.mjs.map +0 -1
  882. package/dist/chunk-HPGPOUHU.mjs +0 -105
  883. package/dist/chunk-HPGPOUHU.mjs.map +0 -1
  884. package/dist/chunk-HXHDOIV6.js +0 -41
  885. package/dist/chunk-HXHDOIV6.js.map +0 -1
  886. package/dist/chunk-I7AZC5ZQ.js +0 -14285
  887. package/dist/chunk-IBJOGXQI.js +0 -33
  888. package/dist/chunk-IBJOGXQI.js.map +0 -1
  889. package/dist/chunk-IMWON7OV.mjs +0 -27
  890. package/dist/chunk-IMWON7OV.mjs.map +0 -1
  891. package/dist/chunk-IO65ROAO.js +0 -134
  892. package/dist/chunk-IO65ROAO.js.map +0 -1
  893. package/dist/chunk-IWSN4DGG.js +0 -132
  894. package/dist/chunk-IWSN4DGG.js.map +0 -1
  895. package/dist/chunk-J7QI3GDX.js +0 -12
  896. package/dist/chunk-J7QI3GDX.js.map +0 -1
  897. package/dist/chunk-JA77WXRE.js +0 -30
  898. package/dist/chunk-JA77WXRE.js.map +0 -1
  899. package/dist/chunk-JCDX37BY.js +0 -58
  900. package/dist/chunk-JCDX37BY.js.map +0 -1
  901. package/dist/chunk-JONWE26J.js +0 -81
  902. package/dist/chunk-JONWE26J.js.map +0 -1
  903. package/dist/chunk-JOYMIGR2.mjs +0 -24842
  904. package/dist/chunk-JP5WGL75.js +0 -62
  905. package/dist/chunk-JP5WGL75.js.map +0 -1
  906. package/dist/chunk-JS75ORH7.js +0 -24860
  907. package/dist/chunk-JSXLTZUP.mjs +0 -255
  908. package/dist/chunk-JSXLTZUP.mjs.map +0 -1
  909. package/dist/chunk-JX3PO2MH.js +0 -53
  910. package/dist/chunk-JX3PO2MH.js.map +0 -1
  911. package/dist/chunk-KHPJ3CEL.js +0 -72
  912. package/dist/chunk-KHPJ3CEL.js.map +0 -1
  913. package/dist/chunk-KP5BFPGT.js +0 -44
  914. package/dist/chunk-KP5BFPGT.js.map +0 -1
  915. package/dist/chunk-KR7ATPAN.js +0 -52
  916. package/dist/chunk-KR7ATPAN.js.map +0 -1
  917. package/dist/chunk-KZVSB5WE.mjs +0 -21
  918. package/dist/chunk-KZVSB5WE.mjs.map +0 -1
  919. package/dist/chunk-LVGSOW2F.js +0 -32
  920. package/dist/chunk-LVGSOW2F.js.map +0 -1
  921. package/dist/chunk-M2N7NY3V.js +0 -103
  922. package/dist/chunk-M2N7NY3V.js.map +0 -1
  923. package/dist/chunk-MDQLON5R.mjs +0 -101
  924. package/dist/chunk-MDQLON5R.mjs.map +0 -1
  925. package/dist/chunk-MHKD34B4.js +0 -1677
  926. package/dist/chunk-MHKD34B4.js.map +0 -1
  927. package/dist/chunk-MLVHVKFT.mjs +0 -148
  928. package/dist/chunk-MLVHVKFT.mjs.map +0 -1
  929. package/dist/chunk-MU3D5IO7.mjs +0 -283
  930. package/dist/chunk-MU3D5IO7.mjs.map +0 -1
  931. package/dist/chunk-MU7DTEUF.mjs +0 -77
  932. package/dist/chunk-MU7DTEUF.mjs.map +0 -1
  933. package/dist/chunk-MVHR77V4.js +0 -205
  934. package/dist/chunk-MVHR77V4.js.map +0 -1
  935. package/dist/chunk-MXJOKOFK.mjs +0 -51
  936. package/dist/chunk-MXJOKOFK.mjs.map +0 -1
  937. package/dist/chunk-NBOBOYMT.js +0 -52
  938. package/dist/chunk-NBOBOYMT.js.map +0 -1
  939. package/dist/chunk-NE6QGHFT.mjs +0 -240
  940. package/dist/chunk-NE6QGHFT.mjs.map +0 -1
  941. package/dist/chunk-NH2P27MA.js +0 -27
  942. package/dist/chunk-NH2P27MA.js.map +0 -1
  943. package/dist/chunk-NN2YE5WT.js +0 -325
  944. package/dist/chunk-NNZDWY3L.mjs +0 -323
  945. package/dist/chunk-NSWO43XW.mjs +0 -39
  946. package/dist/chunk-NSWO43XW.mjs.map +0 -1
  947. package/dist/chunk-NYXENHD2.mjs +0 -96
  948. package/dist/chunk-NYXENHD2.mjs.map +0 -1
  949. package/dist/chunk-O5GHP7UO.js +0 -142
  950. package/dist/chunk-O5GHP7UO.js.map +0 -1
  951. package/dist/chunk-OBKS3CPP.mjs +0 -50
  952. package/dist/chunk-OBKS3CPP.mjs.map +0 -1
  953. package/dist/chunk-OFBEBMXN.mjs +0 -8014
  954. package/dist/chunk-OFBEBMXN.mjs.map +0 -1
  955. package/dist/chunk-OGNX6JT4.js +0 -222
  956. package/dist/chunk-OGNX6JT4.js.map +0 -1
  957. package/dist/chunk-OIPG3EGM.js +0 -771
  958. package/dist/chunk-OIPG3EGM.js.map +0 -1
  959. package/dist/chunk-OSU4QA5M.js +0 -260
  960. package/dist/chunk-OSU4QA5M.js.map +0 -1
  961. package/dist/chunk-OY3PDIB3.js +0 -106
  962. package/dist/chunk-OY3PDIB3.js.map +0 -1
  963. package/dist/chunk-P4Y75QSU.js +0 -19
  964. package/dist/chunk-P4Y75QSU.js.map +0 -1
  965. package/dist/chunk-PENNTSJE.mjs +0 -99
  966. package/dist/chunk-PENNTSJE.mjs.map +0 -1
  967. package/dist/chunk-PFDRQJKJ.js +0 -1079
  968. package/dist/chunk-PFDRQJKJ.js.map +0 -1
  969. package/dist/chunk-PGYOBEPL.mjs +0 -150
  970. package/dist/chunk-PGYOBEPL.mjs.map +0 -1
  971. package/dist/chunk-PIPGH7GA.js +0 -158
  972. package/dist/chunk-PIPGH7GA.js.map +0 -1
  973. package/dist/chunk-PRAHDLKT.js +0 -67
  974. package/dist/chunk-PRAHDLKT.js.map +0 -1
  975. package/dist/chunk-PURI56RE.js +0 -8
  976. package/dist/chunk-PURI56RE.js.map +0 -1
  977. package/dist/chunk-QAQTDHHT.mjs +0 -1102
  978. package/dist/chunk-QAQTDHHT.mjs.map +0 -1
  979. package/dist/chunk-QCS7NWMA.js +0 -161
  980. package/dist/chunk-QCS7NWMA.js.map +0 -1
  981. package/dist/chunk-QRHVMTHF.mjs +0 -94
  982. package/dist/chunk-QRHVMTHF.mjs.map +0 -1
  983. package/dist/chunk-QZF5NTXQ.mjs +0 -28
  984. package/dist/chunk-QZF5NTXQ.mjs.map +0 -1
  985. package/dist/chunk-R5F2JQVX.mjs +0 -41
  986. package/dist/chunk-R5F2JQVX.mjs.map +0 -1
  987. package/dist/chunk-RC4WWQXR.js +0 -47
  988. package/dist/chunk-RC4WWQXR.js.map +0 -1
  989. package/dist/chunk-RCB6HEHM.mjs +0 -349
  990. package/dist/chunk-RCB6HEHM.mjs.map +0 -1
  991. package/dist/chunk-RI6DFQCA.js +0 -539
  992. package/dist/chunk-RI6DFQCA.js.map +0 -1
  993. package/dist/chunk-RLUNEEGM.js +0 -336
  994. package/dist/chunk-RLUNEEGM.js.map +0 -1
  995. package/dist/chunk-RMDH2HMW.js +0 -108
  996. package/dist/chunk-RMDH2HMW.js.map +0 -1
  997. package/dist/chunk-RQROZLH3.js +0 -1153
  998. package/dist/chunk-RQROZLH3.js.map +0 -1
  999. package/dist/chunk-SFMNUVDN.mjs +0 -49
  1000. package/dist/chunk-SFMNUVDN.mjs.map +0 -1
  1001. package/dist/chunk-SG7CWD2R.js +0 -138
  1002. package/dist/chunk-SG7CWD2R.js.map +0 -1
  1003. package/dist/chunk-SHLWA6JY.mjs +0 -26
  1004. package/dist/chunk-SHLWA6JY.mjs.map +0 -1
  1005. package/dist/chunk-SNAQBZPT.js +0 -68
  1006. package/dist/chunk-SNAQBZPT.js.map +0 -1
  1007. package/dist/chunk-SUGBIEYQ.js +0 -195
  1008. package/dist/chunk-SUGBIEYQ.js.map +0 -1
  1009. package/dist/chunk-SVCKJ5KH.mjs +0 -193
  1010. package/dist/chunk-SVCKJ5KH.mjs.map +0 -1
  1011. package/dist/chunk-SWIKKSKL.js +0 -19
  1012. package/dist/chunk-SWIKKSKL.js.map +0 -1
  1013. package/dist/chunk-TBXWJJGT.js +0 -468
  1014. package/dist/chunk-TBXWJJGT.js.map +0 -1
  1015. package/dist/chunk-THO4NS6Z.mjs +0 -1416
  1016. package/dist/chunk-THO4NS6Z.mjs.map +0 -1
  1017. package/dist/chunk-TMVKRQGJ.mjs +0 -64
  1018. package/dist/chunk-TMVKRQGJ.mjs.map +0 -1
  1019. package/dist/chunk-TPEPAHU5.mjs +0 -525
  1020. package/dist/chunk-TPEPAHU5.mjs.map +0 -1
  1021. package/dist/chunk-TST2IKYO.js +0 -264
  1022. package/dist/chunk-TST2IKYO.js.map +0 -1
  1023. package/dist/chunk-TULCHQX2.js +0 -29
  1024. package/dist/chunk-TULCHQX2.js.map +0 -1
  1025. package/dist/chunk-U577ITSA.js +0 -23
  1026. package/dist/chunk-U577ITSA.js.map +0 -1
  1027. package/dist/chunk-UCMMIGC6.mjs +0 -156
  1028. package/dist/chunk-UCMMIGC6.mjs.map +0 -1
  1029. package/dist/chunk-UCQDE5UH.mjs +0 -102
  1030. package/dist/chunk-UCQDE5UH.mjs.map +0 -1
  1031. package/dist/chunk-UHYRVALN.mjs +0 -98
  1032. package/dist/chunk-UHYRVALN.mjs.map +0 -1
  1033. package/dist/chunk-UO6KTHBQ.mjs +0 -125
  1034. package/dist/chunk-UO6KTHBQ.mjs.map +0 -1
  1035. package/dist/chunk-UZKXOZHR.js +0 -23
  1036. package/dist/chunk-UZKXOZHR.js.map +0 -1
  1037. package/dist/chunk-VA2O5OSV.mjs +0 -21
  1038. package/dist/chunk-VA2O5OSV.mjs.map +0 -1
  1039. package/dist/chunk-VIGRGMWR.mjs +0 -229
  1040. package/dist/chunk-VIGRGMWR.mjs.map +0 -1
  1041. package/dist/chunk-VJMPIRSD.js +0 -31
  1042. package/dist/chunk-VJMPIRSD.js.map +0 -1
  1043. package/dist/chunk-VJTKIKZY.mjs +0 -782
  1044. package/dist/chunk-VJTKIKZY.mjs.map +0 -1
  1045. package/dist/chunk-VQL7XDIY.mjs +0 -43
  1046. package/dist/chunk-VQL7XDIY.mjs.map +0 -1
  1047. package/dist/chunk-VS67QHNX.mjs +0 -34
  1048. package/dist/chunk-VS67QHNX.mjs.map +0 -1
  1049. package/dist/chunk-VUAGR6VL.js +0 -483
  1050. package/dist/chunk-VUAGR6VL.js.map +0 -1
  1051. package/dist/chunk-WRRVYPMY.mjs +0 -535
  1052. package/dist/chunk-WRRVYPMY.mjs.map +0 -1
  1053. package/dist/chunk-WS7MH3GD.js +0 -40
  1054. package/dist/chunk-WS7MH3GD.js.map +0 -1
  1055. package/dist/chunk-WSPGXSBU.mjs +0 -202
  1056. package/dist/chunk-WSPGXSBU.mjs.map +0 -1
  1057. package/dist/chunk-XEOIGCUE.mjs +0 -480
  1058. package/dist/chunk-XEOIGCUE.mjs.map +0 -1
  1059. package/dist/chunk-Y2CP5J6Q.js +0 -116
  1060. package/dist/chunk-Y2CP5J6Q.js.map +0 -1
  1061. package/dist/chunk-YBKALLBH.js +0 -46
  1062. package/dist/chunk-YBKALLBH.js.map +0 -1
  1063. package/dist/chunk-YMZNEDFP.js +0 -39
  1064. package/dist/chunk-YMZNEDFP.js.map +0 -1
  1065. package/dist/chunk-YPGUV6BT.mjs +0 -30
  1066. package/dist/chunk-YPGUV6BT.mjs.map +0 -1
  1067. package/dist/chunk-YU7QZ3PP.mjs +0 -45
  1068. package/dist/chunk-YU7QZ3PP.mjs.map +0 -1
  1069. package/dist/chunk-YVJASVVK.js +0 -97
  1070. package/dist/chunk-YVJASVVK.js.map +0 -1
  1071. package/dist/chunk-YZJ22HUQ.js +0 -29
  1072. package/dist/chunk-YZJ22HUQ.js.map +0 -1
  1073. package/dist/chunk-Z2URIOKG.mjs +0 -36
  1074. package/dist/chunk-Z2URIOKG.mjs.map +0 -1
  1075. package/dist/chunk-ZN4HBK5C.mjs +0 -17
  1076. package/dist/chunk-ZN4HBK5C.mjs.map +0 -1
  1077. package/dist/chunk-ZVBLXXNJ.mjs +0 -53
  1078. package/dist/chunk-ZVBLXXNJ.mjs.map +0 -1
  1079. package/dist/chunk-ZXC56JS3.js +0 -8071
  1080. package/dist/chunk-ZXC56JS3.js.map +0 -1
  1081. package/dist/chunk-ZZQAGCSI.mjs +0 -43
  1082. package/dist/chunk-ZZQAGCSI.mjs.map +0 -1
  1083. package/dist/cli/agent/checks.d.ts +0 -96
  1084. package/dist/cli/agent/checks.d.ts.map +0 -1
  1085. package/dist/cli/agent/context.d.ts +0 -50
  1086. package/dist/cli/agent/context.d.ts.map +0 -1
  1087. package/dist/cli/agent/envelope.d.ts +0 -98
  1088. package/dist/cli/agent/envelope.d.ts.map +0 -1
  1089. package/dist/cli/agent/errors.d.ts +0 -36
  1090. package/dist/cli/agent/errors.d.ts.map +0 -1
  1091. package/dist/cli/agent/output.d.ts +0 -41
  1092. package/dist/cli/agent/output.d.ts.map +0 -1
  1093. package/dist/cli/agent/ssr-bailout.d.ts +0 -27
  1094. package/dist/cli/agent/ssr-bailout.d.ts.map +0 -1
  1095. package/dist/cli/api/sonor.d.ts +0 -39
  1096. package/dist/cli/api/sonor.d.ts.map +0 -1
  1097. package/dist/cli/codemod/diff.d.ts +0 -14
  1098. package/dist/cli/codemod/diff.d.ts.map +0 -1
  1099. package/dist/cli/codemod/engine.d.ts +0 -26
  1100. package/dist/cli/codemod/engine.d.ts.map +0 -1
  1101. package/dist/cli/codemod/transforms.d.ts +0 -31
  1102. package/dist/cli/codemod/transforms.d.ts.map +0 -1
  1103. package/dist/cli/commands/api-routes.d.ts +0 -13
  1104. package/dist/cli/commands/api-routes.d.ts.map +0 -1
  1105. package/dist/cli/commands/codemod.d.ts +0 -21
  1106. package/dist/cli/commands/codemod.d.ts.map +0 -1
  1107. package/dist/cli/commands/doctor.d.ts +0 -27
  1108. package/dist/cli/commands/doctor.d.ts.map +0 -1
  1109. package/dist/cli/commands/faqs.d.ts +0 -16
  1110. package/dist/cli/commands/faqs.d.ts.map +0 -1
  1111. package/dist/cli/commands/geo.d.ts +0 -18
  1112. package/dist/cli/commands/geo.d.ts.map +0 -1
  1113. package/dist/cli/commands/images.d.ts +0 -85
  1114. package/dist/cli/commands/images.d.ts.map +0 -1
  1115. package/dist/cli/commands/init.d.ts +0 -21
  1116. package/dist/cli/commands/init.d.ts.map +0 -1
  1117. package/dist/cli/commands/install.d.ts +0 -15
  1118. package/dist/cli/commands/install.d.ts.map +0 -1
  1119. package/dist/cli/commands/locations.d.ts +0 -55
  1120. package/dist/cli/commands/locations.d.ts.map +0 -1
  1121. package/dist/cli/commands/manifest.d.ts +0 -17
  1122. package/dist/cli/commands/manifest.d.ts.map +0 -1
  1123. package/dist/cli/commands/migrate.d.ts +0 -19
  1124. package/dist/cli/commands/migrate.d.ts.map +0 -1
  1125. package/dist/cli/commands/next16.d.ts +0 -10
  1126. package/dist/cli/commands/next16.d.ts.map +0 -1
  1127. package/dist/cli/commands/og.d.ts +0 -117
  1128. package/dist/cli/commands/og.d.ts.map +0 -1
  1129. package/dist/cli/commands/scaffold.d.ts +0 -22
  1130. package/dist/cli/commands/scaffold.d.ts.map +0 -1
  1131. package/dist/cli/commands/scan.d.ts +0 -18
  1132. package/dist/cli/commands/scan.d.ts.map +0 -1
  1133. package/dist/cli/commands/setup.d.ts +0 -35
  1134. package/dist/cli/commands/setup.d.ts.map +0 -1
  1135. package/dist/cli/commands/sync.d.ts +0 -22
  1136. package/dist/cli/commands/sync.d.ts.map +0 -1
  1137. package/dist/cli/commands/upgrade.d.ts +0 -15
  1138. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  1139. package/dist/cli/commands/verify.d.ts +0 -22
  1140. package/dist/cli/commands/verify.d.ts.map +0 -1
  1141. package/dist/cli/config.d.ts +0 -31
  1142. package/dist/cli/config.d.ts.map +0 -1
  1143. package/dist/cli/generators/index.d.ts +0 -60
  1144. package/dist/cli/generators/index.d.ts.map +0 -1
  1145. package/dist/cli/index.d.ts +0 -15
  1146. package/dist/cli/index.d.ts.map +0 -1
  1147. package/dist/cli/index.js +0 -32904
  1148. package/dist/cli/index.mjs +0 -32872
  1149. package/dist/cli/migrator/index.d.ts +0 -92
  1150. package/dist/cli/migrator/index.d.ts.map +0 -1
  1151. package/dist/cli/scanner/index.d.ts +0 -129
  1152. package/dist/cli/scanner/index.d.ts.map +0 -1
  1153. package/dist/cli/state.d.ts +0 -7
  1154. package/dist/cli/state.d.ts.map +0 -1
  1155. package/dist/client/SiteKitCredential.d.ts.map +0 -1
  1156. package/dist/client/index.d.ts.map +0 -1
  1157. package/dist/client/index.js.map +0 -1
  1158. package/dist/client/index.mjs +0 -27
  1159. package/dist/client/index.mjs.map +0 -1
  1160. package/dist/cms/CmsPage.d.ts.map +0 -1
  1161. package/dist/cms/CmsPreview.d.ts.map +0 -1
  1162. package/dist/cms/CmsSection.d.ts.map +0 -1
  1163. package/dist/cms/PortableTextRenderer.d.ts.map +0 -1
  1164. package/dist/cms/index.d.ts.map +0 -1
  1165. package/dist/cms/index.js.map +0 -1
  1166. package/dist/cms/index.mjs +0 -389
  1167. package/dist/cms/index.mjs.map +0 -1
  1168. package/dist/cms/sanity-image.d.ts.map +0 -1
  1169. package/dist/cms/sections/CtaSection.d.ts.map +0 -1
  1170. package/dist/cms/sections/CustomSection.d.ts.map +0 -1
  1171. package/dist/cms/sections/FaqSection.d.ts.map +0 -1
  1172. package/dist/cms/sections/FormSection.d.ts.map +0 -1
  1173. package/dist/cms/sections/GallerySection.d.ts.map +0 -1
  1174. package/dist/cms/sections/HeroSection.d.ts.map +0 -1
  1175. package/dist/cms/sections/RichTextSection.d.ts.map +0 -1
  1176. package/dist/cms/sections/TestimonialsSection.d.ts.map +0 -1
  1177. package/dist/cms/sections/index.d.ts.map +0 -1
  1178. package/dist/cms/server-api.d.ts.map +0 -1
  1179. package/dist/cms/server.d.ts.map +0 -1
  1180. package/dist/cms/server.js.map +0 -1
  1181. package/dist/cms/server.mjs +0 -5
  1182. package/dist/cms/server.mjs.map +0 -1
  1183. package/dist/cms/types.d.ts.map +0 -1
  1184. package/dist/commerce/CalendarView.d.ts.map +0 -1
  1185. package/dist/commerce/CheckoutForm.d.ts.map +0 -1
  1186. package/dist/commerce/EventCalendar.d.ts.map +0 -1
  1187. package/dist/commerce/EventCheckout.d.ts.map +0 -1
  1188. package/dist/commerce/EventEmbed.d.ts.map +0 -1
  1189. package/dist/commerce/EventModal.d.ts.map +0 -1
  1190. package/dist/commerce/EventTile.d.ts.map +0 -1
  1191. package/dist/commerce/EventsAgenda.d.ts.map +0 -1
  1192. package/dist/commerce/EventsWidget.d.ts.map +0 -1
  1193. package/dist/commerce/OfferingCard.d.ts.map +0 -1
  1194. package/dist/commerce/OfferingList.d.ts.map +0 -1
  1195. package/dist/commerce/ProductDetail.d.ts.map +0 -1
  1196. package/dist/commerce/ProductEmbed.d.ts.map +0 -1
  1197. package/dist/commerce/ProductGrid.d.ts.map +0 -1
  1198. package/dist/commerce/ProductPage.d.ts.map +0 -1
  1199. package/dist/commerce/RegistrationForm.d.ts.map +0 -1
  1200. package/dist/commerce/SizeChart.d.ts.map +0 -1
  1201. package/dist/commerce/UpcomingEvents.d.ts.map +0 -1
  1202. package/dist/commerce/api.d.ts.map +0 -1
  1203. package/dist/commerce/events-extras.d.ts.map +0 -1
  1204. package/dist/commerce/index.d.ts.map +0 -1
  1205. package/dist/commerce/index.js.map +0 -1
  1206. package/dist/commerce/index.mjs +0 -16
  1207. package/dist/commerce/index.mjs.map +0 -1
  1208. package/dist/commerce/server.d.ts.map +0 -1
  1209. package/dist/commerce/server.js.map +0 -1
  1210. package/dist/commerce/server.mjs +0 -237
  1211. package/dist/commerce/server.mjs.map +0 -1
  1212. package/dist/commerce/types.d.ts.map +0 -1
  1213. package/dist/commerce/useEventModal.d.ts.map +0 -1
  1214. package/dist/commerce/utils.d.ts.map +0 -1
  1215. package/dist/config/index.d.ts.map +0 -1
  1216. package/dist/config/index.js.map +0 -1
  1217. package/dist/config/index.mjs +0 -116
  1218. package/dist/config/index.mjs.map +0 -1
  1219. package/dist/cta-bar/CtaBar.d.ts.map +0 -1
  1220. package/dist/cta-bar/CtaBarBehavior.d.ts.map +0 -1
  1221. package/dist/cta-bar/client.d.ts.map +0 -1
  1222. package/dist/cta-bar/client.js.map +0 -1
  1223. package/dist/cta-bar/client.mjs +0 -6
  1224. package/dist/cta-bar/client.mjs.map +0 -1
  1225. package/dist/cta-bar/index.d.ts.map +0 -1
  1226. package/dist/cta-bar/index.js.map +0 -1
  1227. package/dist/cta-bar/index.mjs +0 -221
  1228. package/dist/cta-bar/index.mjs.map +0 -1
  1229. package/dist/cta-bar/styles.d.ts.map +0 -1
  1230. package/dist/discover-LPN55L5B.js +0 -21
  1231. package/dist/discover-LPN55L5B.js.map +0 -1
  1232. package/dist/discover-QGA6QFSR.mjs +0 -4
  1233. package/dist/discover-QGA6QFSR.mjs.map +0 -1
  1234. package/dist/engage/ChatWidget.d.ts.map +0 -1
  1235. package/dist/engage/DesignRenderer.d.ts.map +0 -1
  1236. package/dist/engage/EchoUiActions.d.ts.map +0 -1
  1237. package/dist/engage/EngageWidget.d.ts.map +0 -1
  1238. package/dist/engage/brand-color.d.ts.map +0 -1
  1239. package/dist/engage/chat-messages.d.ts.map +0 -1
  1240. package/dist/engage/echo-config.d.ts.map +0 -1
  1241. package/dist/engage/element-rules.d.ts.map +0 -1
  1242. package/dist/engage/index.d.ts.map +0 -1
  1243. package/dist/engage/index.js.map +0 -1
  1244. package/dist/engage/index.mjs +0 -51
  1245. package/dist/engage/index.mjs.map +0 -1
  1246. package/dist/engage/launcher-placement.d.ts.map +0 -1
  1247. package/dist/engage/socket-loader.d.ts.map +0 -1
  1248. package/dist/engage/types.d.ts.map +0 -1
  1249. package/dist/fleet/FleetHeartbeat.d.ts.map +0 -1
  1250. package/dist/fleet/contract.d.ts.map +0 -1
  1251. package/dist/fleet/contract.js.map +0 -1
  1252. package/dist/fleet/contract.mjs +0 -4
  1253. package/dist/fleet/contract.mjs.map +0 -1
  1254. package/dist/fleet/heartbeat.d.ts.map +0 -1
  1255. package/dist/fleet/index.d.ts.map +0 -1
  1256. package/dist/fleet/index.js.map +0 -1
  1257. package/dist/fleet/index.mjs +0 -12
  1258. package/dist/fleet/index.mjs.map +0 -1
  1259. package/dist/forms/DatePicker.d.ts.map +0 -1
  1260. package/dist/forms/FileField.d.ts.map +0 -1
  1261. package/dist/forms/FormCelebration.d.ts.map +0 -1
  1262. package/dist/forms/FormClient.d.ts.map +0 -1
  1263. package/dist/forms/FormEnhancer.d.ts.map +0 -1
  1264. package/dist/forms/FormField.d.ts.map +0 -1
  1265. package/dist/forms/FormSpotlight.d.ts.map +0 -1
  1266. package/dist/forms/FormStage.d.ts.map +0 -1
  1267. package/dist/forms/HoneypotField.d.ts.map +0 -1
  1268. package/dist/forms/ManagedForm.d.ts.map +0 -1
  1269. package/dist/forms/ServerForm.d.ts.map +0 -1
  1270. package/dist/forms/StaticForm.d.ts.map +0 -1
  1271. package/dist/forms/contract.d.ts.map +0 -1
  1272. package/dist/forms/contract.js.map +0 -1
  1273. package/dist/forms/contract.mjs +0 -4
  1274. package/dist/forms/contract.mjs.map +0 -1
  1275. package/dist/forms/defaultSuccessMessage.d.ts.map +0 -1
  1276. package/dist/forms/delight.d.ts.map +0 -1
  1277. package/dist/forms/experience-chrome.d.ts.map +0 -1
  1278. package/dist/forms/experience-plan.d.ts.map +0 -1
  1279. package/dist/forms/field-controls.d.ts.map +0 -1
  1280. package/dist/forms/field-interactions.d.ts.map +0 -1
  1281. package/dist/forms/field-rules.d.ts.map +0 -1
  1282. package/dist/forms/form-values.d.ts.map +0 -1
  1283. package/dist/forms/formsApi.d.ts.map +0 -1
  1284. package/dist/forms/ga4-identity.d.ts.map +0 -1
  1285. package/dist/forms/index.d.ts.map +0 -1
  1286. package/dist/forms/index.js.map +0 -1
  1287. package/dist/forms/index.mjs +0 -341
  1288. package/dist/forms/index.mjs.map +0 -1
  1289. package/dist/forms/normalize-config.d.ts.map +0 -1
  1290. package/dist/forms/recaptcha-warmup.d.ts.map +0 -1
  1291. package/dist/forms/recaptcha.d.ts.map +0 -1
  1292. package/dist/forms/server.d.ts.map +0 -1
  1293. package/dist/forms/server.js.map +0 -1
  1294. package/dist/forms/server.mjs +0 -61
  1295. package/dist/forms/server.mjs.map +0 -1
  1296. package/dist/forms/static.d.ts.map +0 -1
  1297. package/dist/forms/static.js.map +0 -1
  1298. package/dist/forms/static.mjs +0 -8
  1299. package/dist/forms/static.mjs.map +0 -1
  1300. package/dist/forms/submitForm.d.ts.map +0 -1
  1301. package/dist/forms/tracking-session.d.ts.map +0 -1
  1302. package/dist/forms/types.d.ts.map +0 -1
  1303. package/dist/forms/useForm.d.ts.map +0 -1
  1304. package/dist/forms/useFormTracking.d.ts.map +0 -1
  1305. package/dist/images/ManagedFavicon.d.ts.map +0 -1
  1306. package/dist/images/ManagedImage.d.ts.map +0 -1
  1307. package/dist/images/api.d.ts.map +0 -1
  1308. package/dist/images/index.d.ts.map +0 -1
  1309. package/dist/images/index.js.map +0 -1
  1310. package/dist/images/index.mjs +0 -8
  1311. package/dist/images/index.mjs.map +0 -1
  1312. package/dist/images/server.d.ts.map +0 -1
  1313. package/dist/images/server.js.map +0 -1
  1314. package/dist/images/server.mjs +0 -4
  1315. package/dist/images/server.mjs.map +0 -1
  1316. package/dist/index.d.ts.map +0 -1
  1317. package/dist/index.js.map +0 -1
  1318. package/dist/index.mjs +0 -173
  1319. package/dist/index.mjs.map +0 -1
  1320. package/dist/landing/LandingPage.d.ts.map +0 -1
  1321. package/dist/landing/contract.d.ts.map +0 -1
  1322. package/dist/landing/index.d.ts.map +0 -1
  1323. package/dist/landing/index.js.map +0 -1
  1324. package/dist/landing/index.mjs +0 -5
  1325. package/dist/landing/index.mjs.map +0 -1
  1326. package/dist/landing/metadata.d.ts.map +0 -1
  1327. package/dist/landing/server.d.ts.map +0 -1
  1328. package/dist/landing/server.js.map +0 -1
  1329. package/dist/landing/server.mjs +0 -4
  1330. package/dist/landing/server.mjs.map +0 -1
  1331. package/dist/layout/SiteKitClientProviders.d.ts.map +0 -1
  1332. package/dist/layout/SiteKitLayout.d.ts.map +0 -1
  1333. package/dist/layout/SpeculationRules.d.ts.map +0 -1
  1334. package/dist/layout/client.d.ts.map +0 -1
  1335. package/dist/layout/client.js.map +0 -1
  1336. package/dist/layout/client.mjs +0 -19
  1337. package/dist/layout/client.mjs.map +0 -1
  1338. package/dist/layout/index.d.ts.map +0 -1
  1339. package/dist/layout/index.js.map +0 -1
  1340. package/dist/layout/index.mjs +0 -106
  1341. package/dist/layout/index.mjs.map +0 -1
  1342. package/dist/layout/types.d.ts.map +0 -1
  1343. package/dist/lib-6HOOMENJ.js +0 -28
  1344. package/dist/lib-BGAWCSUH.js +0 -31
  1345. package/dist/lib-R7IQ4ZHE.mjs +0 -3
  1346. package/dist/lib-RSDMEKDQ.mjs +0 -4
  1347. package/dist/llms/AEOComponents.d.ts.map +0 -1
  1348. package/dist/llms/SpeakableSchema.d.ts.map +0 -1
  1349. package/dist/llms/aiRobots.d.ts.map +0 -1
  1350. package/dist/llms/api.d.ts.map +0 -1
  1351. package/dist/llms/client.d.ts.map +0 -1
  1352. package/dist/llms/client.js.map +0 -1
  1353. package/dist/llms/client.mjs +0 -5
  1354. package/dist/llms/client.mjs.map +0 -1
  1355. package/dist/llms/contract.d.ts.map +0 -1
  1356. package/dist/llms/contract.js.map +0 -1
  1357. package/dist/llms/contract.mjs +0 -4
  1358. package/dist/llms/contract.mjs.map +0 -1
  1359. package/dist/llms/discovery-headers.d.ts.map +0 -1
  1360. package/dist/llms/generateLLMsTxt.d.ts.map +0 -1
  1361. package/dist/llms/handlers.d.ts.map +0 -1
  1362. package/dist/llms/humanize-industry.d.ts.map +0 -1
  1363. package/dist/llms/index.d.ts.map +0 -1
  1364. package/dist/llms/index.js.map +0 -1
  1365. package/dist/llms/index.mjs +0 -286
  1366. package/dist/llms/index.mjs.map +0 -1
  1367. package/dist/llms/links.d.ts.map +0 -1
  1368. package/dist/llms/revalidate.d.ts.map +0 -1
  1369. package/dist/llms/seo-revalidate.d.ts.map +0 -1
  1370. package/dist/llms/sourcedFacts.d.ts.map +0 -1
  1371. package/dist/llms/types.d.ts.map +0 -1
  1372. package/dist/llms/wiring.d.ts +0 -103
  1373. package/dist/llms/wiring.d.ts.map +0 -1
  1374. package/dist/llms/writeLLMsTxt.d.ts.map +0 -1
  1375. package/dist/manifest/index.d.ts.map +0 -1
  1376. package/dist/manifest/index.js.map +0 -1
  1377. package/dist/manifest/index.mjs +0 -83
  1378. package/dist/manifest/index.mjs.map +0 -1
  1379. package/dist/maps/GoogleMap.d.ts.map +0 -1
  1380. package/dist/maps/NeighborhoodMap.d.ts.map +0 -1
  1381. package/dist/maps/api.d.ts.map +0 -1
  1382. package/dist/maps/index.d.ts.map +0 -1
  1383. package/dist/maps/index.js.map +0 -1
  1384. package/dist/maps/index.mjs +0 -361
  1385. package/dist/maps/index.mjs.map +0 -1
  1386. package/dist/maps/types.d.ts.map +0 -1
  1387. package/dist/mcp/WebMcpTools.d.ts.map +0 -1
  1388. package/dist/mcp/client.d.ts.map +0 -1
  1389. package/dist/mcp/client.js.map +0 -1
  1390. package/dist/mcp/client.mjs +0 -129
  1391. package/dist/mcp/client.mjs.map +0 -1
  1392. package/dist/mcp/declarative.d.ts.map +0 -1
  1393. package/dist/mcp/handlers.d.ts.map +0 -1
  1394. package/dist/mcp/index.d.ts.map +0 -1
  1395. package/dist/mcp/index.js.map +0 -1
  1396. package/dist/mcp/index.mjs +0 -509
  1397. package/dist/mcp/index.mjs.map +0 -1
  1398. package/dist/mcp/protocol.d.ts.map +0 -1
  1399. package/dist/mcp/serverCard.d.ts.map +0 -1
  1400. package/dist/mcp/transport.d.ts.map +0 -1
  1401. package/dist/mcp/transport.js.map +0 -1
  1402. package/dist/mcp/transport.mjs +0 -123
  1403. package/dist/mcp/transport.mjs.map +0 -1
  1404. package/dist/mcp/types.d.ts.map +0 -1
  1405. package/dist/motion/CountUp.d.ts.map +0 -1
  1406. package/dist/motion/Parallax.d.ts.map +0 -1
  1407. package/dist/motion/Reveal.d.ts.map +0 -1
  1408. package/dist/motion/ScrollScene.d.ts.map +0 -1
  1409. package/dist/motion/engine.d.ts.map +0 -1
  1410. package/dist/motion/failsafe.d.ts.map +0 -1
  1411. package/dist/motion/gsap.d.ts.map +0 -1
  1412. package/dist/motion/gsap.js.map +0 -1
  1413. package/dist/motion/gsap.mjs +0 -220
  1414. package/dist/motion/gsap.mjs.map +0 -1
  1415. package/dist/motion/index.d.ts.map +0 -1
  1416. package/dist/motion/index.js.map +0 -1
  1417. package/dist/motion/index.mjs +0 -209
  1418. package/dist/motion/index.mjs.map +0 -1
  1419. package/dist/motion/three.d.ts.map +0 -1
  1420. package/dist/motion/three.js.map +0 -1
  1421. package/dist/motion/three.mjs +0 -145
  1422. package/dist/motion/three.mjs.map +0 -1
  1423. package/dist/og/config.d.ts.map +0 -1
  1424. package/dist/og/contrast.d.ts.map +0 -1
  1425. package/dist/og/index.d.ts.map +0 -1
  1426. package/dist/og/index.js.map +0 -1
  1427. package/dist/og/index.mjs +0 -6
  1428. package/dist/og/index.mjs.map +0 -1
  1429. package/dist/og/pages.d.ts.map +0 -1
  1430. package/dist/og/route-copy.d.ts +0 -34
  1431. package/dist/og/route-copy.d.ts.map +0 -1
  1432. package/dist/og/route-fit.d.ts.map +0 -1
  1433. package/dist/og/route.d.ts.map +0 -1
  1434. package/dist/og/route.js.map +0 -1
  1435. package/dist/og/route.mjs +0 -239
  1436. package/dist/og/route.mjs.map +0 -1
  1437. package/dist/og/template.d.ts.map +0 -1
  1438. package/dist/og/wiring.d.ts +0 -100
  1439. package/dist/og/wiring.d.ts.map +0 -1
  1440. package/dist/portfolio/contract.d.ts.map +0 -1
  1441. package/dist/portfolio/contract.js.map +0 -1
  1442. package/dist/portfolio/contract.mjs +0 -115
  1443. package/dist/portfolio/contract.mjs.map +0 -1
  1444. package/dist/proxy/index.d.ts.map +0 -1
  1445. package/dist/proxy/index.js.map +0 -1
  1446. package/dist/proxy/index.mjs +0 -170
  1447. package/dist/proxy/index.mjs.map +0 -1
  1448. package/dist/proxy/securityHeaders.d.ts.map +0 -1
  1449. package/dist/proxy/segment.d.ts.map +0 -1
  1450. package/dist/redirects/index.d.ts.map +0 -1
  1451. package/dist/redirects/index.js.map +0 -1
  1452. package/dist/redirects/index.mjs +0 -8
  1453. package/dist/redirects/index.mjs.map +0 -1
  1454. package/dist/redirects/not-found.d.ts +0 -31
  1455. package/dist/redirects/not-found.d.ts.map +0 -1
  1456. package/dist/redirects/not-found.js +0 -47
  1457. package/dist/redirects/not-found.js.map +0 -1
  1458. package/dist/redirects/not-found.mjs +0 -45
  1459. package/dist/redirects/not-found.mjs.map +0 -1
  1460. package/dist/reputation/TestimonialSection.d.ts.map +0 -1
  1461. package/dist/reputation/api.d.ts.map +0 -1
  1462. package/dist/reputation/index.d.ts.map +0 -1
  1463. package/dist/reputation/index.js.map +0 -1
  1464. package/dist/reputation/index.mjs +0 -5
  1465. package/dist/reputation/index.mjs.map +0 -1
  1466. package/dist/reputation/server.d.ts.map +0 -1
  1467. package/dist/reputation/server.js.map +0 -1
  1468. package/dist/reputation/server.mjs +0 -4
  1469. package/dist/reputation/server.mjs.map +0 -1
  1470. package/dist/reputation/types.d.ts.map +0 -1
  1471. package/dist/robots/index.d.ts.map +0 -1
  1472. package/dist/robots/index.js.map +0 -1
  1473. package/dist/robots/index.mjs +0 -53
  1474. package/dist/robots/index.mjs.map +0 -1
  1475. package/dist/robots/indexnow.d.ts.map +0 -1
  1476. package/dist/robots/indexnow.js.map +0 -1
  1477. package/dist/robots/indexnow.mjs +0 -34
  1478. package/dist/robots/indexnow.mjs.map +0 -1
  1479. package/dist/robots/next-internals.d.ts.map +0 -1
  1480. package/dist/search/contract.d.ts +0 -62
  1481. package/dist/search/contract.d.ts.map +0 -1
  1482. package/dist/search/contract.js +0 -17
  1483. package/dist/search/contract.js.map +0 -1
  1484. package/dist/search/contract.mjs +0 -4
  1485. package/dist/search/contract.mjs.map +0 -1
  1486. package/dist/search/index.d.ts +0 -52
  1487. package/dist/search/index.d.ts.map +0 -1
  1488. package/dist/search/index.js +0 -105
  1489. package/dist/search/index.js.map +0 -1
  1490. package/dist/search/index.mjs +0 -99
  1491. package/dist/search/index.mjs.map +0 -1
  1492. package/dist/seo/LocationPageContent.d.ts +0 -64
  1493. package/dist/seo/LocationPageContent.d.ts.map +0 -1
  1494. package/dist/seo/ManagedContent.d.ts.map +0 -1
  1495. package/dist/seo/ManagedFAQ.d.ts.map +0 -1
  1496. package/dist/seo/ManagedInternalLinks.d.ts.map +0 -1
  1497. package/dist/seo/ManagedSchema.d.ts.map +0 -1
  1498. package/dist/seo/ManagedScripts.d.ts.map +0 -1
  1499. package/dist/seo/api.d.ts.map +0 -1
  1500. package/dist/seo/client.d.ts.map +0 -1
  1501. package/dist/seo/client.js.map +0 -1
  1502. package/dist/seo/client.mjs +0 -11
  1503. package/dist/seo/client.mjs.map +0 -1
  1504. package/dist/seo/getManagedMetadata.d.ts.map +0 -1
  1505. package/dist/seo/groundingSchema.d.ts.map +0 -1
  1506. package/dist/seo/index.d.ts.map +0 -1
  1507. package/dist/seo/index.js.map +0 -1
  1508. package/dist/seo/index.mjs +0 -702
  1509. package/dist/seo/index.mjs.map +0 -1
  1510. package/dist/seo/register-sitemap-cli-impl.d.ts.map +0 -1
  1511. package/dist/seo/register-sitemap-cli.d.ts.map +0 -1
  1512. package/dist/seo/register-sitemap-cli.mjs +0 -528
  1513. package/dist/seo/register-sitemap-request.d.ts.map +0 -1
  1514. package/dist/seo/routing.d.ts.map +0 -1
  1515. package/dist/seo/safeJsonLd.d.ts.map +0 -1
  1516. package/dist/seo/schema-filter.d.ts.map +0 -1
  1517. package/dist/seo/server-api.d.ts.map +0 -1
  1518. package/dist/seo/server.d.ts.map +0 -1
  1519. package/dist/seo/server.js.map +0 -1
  1520. package/dist/seo/server.mjs +0 -11
  1521. package/dist/seo/server.mjs.map +0 -1
  1522. package/dist/seo/types.d.ts.map +0 -1
  1523. package/dist/seo/withManagedMetadata.d.ts.map +0 -1
  1524. package/dist/seo-meta/contract.d.ts.map +0 -1
  1525. package/dist/seo-meta/contract.js.map +0 -1
  1526. package/dist/seo-meta/contract.mjs +0 -4
  1527. package/dist/seo-meta/contract.mjs.map +0 -1
  1528. package/dist/seo-pages/contract.d.ts.map +0 -1
  1529. package/dist/seo-pages/contract.js.map +0 -1
  1530. package/dist/seo-pages/contract.mjs +0 -45
  1531. package/dist/seo-pages/contract.mjs.map +0 -1
  1532. package/dist/server/index.d.ts.map +0 -1
  1533. package/dist/server/index.js.map +0 -1
  1534. package/dist/server/index.mjs +0 -7
  1535. package/dist/server/index.mjs.map +0 -1
  1536. package/dist/server/mint-site-token.d.ts.map +0 -1
  1537. package/dist/server/server-fetch.d.ts.map +0 -1
  1538. package/dist/server-api-7F5P6CSH.mjs +0 -9
  1539. package/dist/server-api-7F5P6CSH.mjs.map +0 -1
  1540. package/dist/server-api-OC5JNK6R.js +0 -86
  1541. package/dist/server-api-OC5JNK6R.js.map +0 -1
  1542. package/dist/setup/index.d.ts +0 -12
  1543. package/dist/setup/index.d.ts.map +0 -1
  1544. package/dist/setup/index.js +0 -4
  1545. package/dist/setup/index.js.map +0 -1
  1546. package/dist/setup/index.mjs +0 -3
  1547. package/dist/setup/index.mjs.map +0 -1
  1548. package/dist/shared/build-entries.d.ts.map +0 -1
  1549. package/dist/shared/color.d.ts.map +0 -1
  1550. package/dist/shared/defer.d.ts.map +0 -1
  1551. package/dist/shared/fetchWithRetry.d.ts.map +0 -1
  1552. package/dist/shared/frame.d.ts.map +0 -1
  1553. package/dist/shared/fresh-fetch.d.ts.map +0 -1
  1554. package/dist/shared/glass.d.ts.map +0 -1
  1555. package/dist/shared/identity.d.ts.map +0 -1
  1556. package/dist/shared/next-files.d.ts.map +0 -1
  1557. package/dist/shared/page-leave.d.ts.map +0 -1
  1558. package/dist/shared/publishCredential.d.ts.map +0 -1
  1559. package/dist/shared/reporting-gate.d.ts.map +0 -1
  1560. package/dist/shared/request-guards.d.ts.map +0 -1
  1561. package/dist/shared/siteToken.d.ts.map +0 -1
  1562. package/dist/shared/sonorFetch.d.ts.map +0 -1
  1563. package/dist/shared/source-graph.d.ts.map +0 -1
  1564. package/dist/shared/uuid.d.ts.map +0 -1
  1565. package/dist/shared/version.d.ts.map +0 -1
  1566. package/dist/shared/visual-viewport-gap.d.ts.map +0 -1
  1567. package/dist/signal/SignalBridge.d.ts.map +0 -1
  1568. package/dist/signal/SignalCore.d.ts.map +0 -1
  1569. package/dist/signal/SignalExperiment.d.ts.map +0 -1
  1570. package/dist/signal/index.d.ts.map +0 -1
  1571. package/dist/signal/index.js.map +0 -1
  1572. package/dist/signal/index.mjs +0 -6
  1573. package/dist/signal/index.mjs.map +0 -1
  1574. package/dist/signal/store.d.ts.map +0 -1
  1575. package/dist/signal/types.d.ts.map +0 -1
  1576. package/dist/site-config/index.d.ts.map +0 -1
  1577. package/dist/site-config/index.js.map +0 -1
  1578. package/dist/site-config/index.mjs +0 -4
  1579. package/dist/site-config/index.mjs.map +0 -1
  1580. package/dist/sitemap/discover.d.ts.map +0 -1
  1581. package/dist/sitemap/index.d.ts.map +0 -1
  1582. package/dist/sitemap/index.js.map +0 -1
  1583. package/dist/sitemap/index.mjs +0 -549
  1584. package/dist/sitemap/index.mjs.map +0 -1
  1585. package/dist/sitemap/shared.d.ts.map +0 -1
  1586. package/dist/sites/contract.d.ts.map +0 -1
  1587. package/dist/sites/contract.js.map +0 -1
  1588. package/dist/sites/contract.mjs +0 -5
  1589. package/dist/sites/contract.mjs.map +0 -1
  1590. package/dist/sites/normalize.d.ts.map +0 -1
  1591. package/dist/sites/resolve.d.ts.map +0 -1
  1592. package/dist/sites/site-param.d.ts.map +0 -1
  1593. package/dist/slots/ManagedSlot.d.ts.map +0 -1
  1594. package/dist/slots/contract.d.ts.map +0 -1
  1595. package/dist/slots/contract.js.map +0 -1
  1596. package/dist/slots/contract.mjs +0 -4
  1597. package/dist/slots/contract.mjs.map +0 -1
  1598. package/dist/slots/index.d.ts.map +0 -1
  1599. package/dist/slots/index.js.map +0 -1
  1600. package/dist/slots/index.mjs +0 -142
  1601. package/dist/slots/index.mjs.map +0 -1
  1602. package/dist/slots/revalidate.d.ts.map +0 -1
  1603. package/dist/slots/server-api.d.ts.map +0 -1
  1604. package/dist/socket-loader-2NYBMBFQ.js +0 -16
  1605. package/dist/socket-loader-2NYBMBFQ.js.map +0 -1
  1606. package/dist/socket-loader-JA2DI2RT.mjs +0 -14
  1607. package/dist/socket-loader-JA2DI2RT.mjs.map +0 -1
  1608. package/dist/sync/AddToCalendar.d.ts.map +0 -1
  1609. package/dist/sync/BookingWidget.d.ts.map +0 -1
  1610. package/dist/sync/MeetingFormatStep.d.ts.map +0 -1
  1611. package/dist/sync/api.d.ts.map +0 -1
  1612. package/dist/sync/booking-flow.d.ts.map +0 -1
  1613. package/dist/sync/index.d.ts.map +0 -1
  1614. package/dist/sync/index.js.map +0 -1
  1615. package/dist/sync/index.mjs +0 -7
  1616. package/dist/sync/index.mjs.map +0 -1
  1617. package/dist/sync/types.d.ts.map +0 -1
  1618. package/dist/types.d.ts.map +0 -1
  1619. package/dist/web-vitals.attribution-7LKLZ5GR.mjs +0 -524
  1620. package/dist/web-vitals.attribution-7LKLZ5GR.mjs.map +0 -1
  1621. package/dist/web-vitals.attribution-ONVYQNRB.js +0 -535
  1622. package/dist/web-vitals.attribution-ONVYQNRB.js.map +0 -1
  1623. package/dist/writeLLMsTxt-IYJILIU3.mjs +0 -11
  1624. package/dist/writeLLMsTxt-SQG4B63X.js +0 -20
  1625. package/scripts/postinstall.cjs +0 -67
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/mcp/WebMcpTools.tsx"],"names":["useDeferredActivation","useEffect"],"mappings":"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","file":"client.js","sourcesContent":["'use client'\n\n/**\n * @sonordev/site-kit/mcp — WebMCP in-page tool registration\n *\n * The browser half of WebMCP (W3C Web Machine Learning CG). When an agent is\n * driving the page — a browser-integrated assistant, an extension, a\n * headless-Chrome operator — it does not fetch our `.well-known` card and open\n * a network connection. It looks for tools registered on the *document*.\n *\n * `document.modelContext.registerTool()` is the current shape in the explainer;\n * earlier drafts and some flagged builds put the same object on `navigator`,\n * and an even earlier one took a whole tool array via `provideContext()`. All\n * three are probed, because the spec is a live draft and a site that only\n * knows one shape silently exposes nothing in the others.\n *\n * ── Why the handlers are proxied ──────────────────────────────────────────\n * Tools are registered here as thin wrappers that POST `tools/call` to this\n * site's own MCP endpoint. That is deliberate:\n *\n * - one implementation. The tool an agent calls in-page and the tool it\n * calls over HTTP run the SAME server-side handler, so they cannot drift.\n * - no secrets in the bundle. Handlers reach Sonor with `SONOR_API_KEY`.\n * Registering real handlers client-side would drag that key into a\n * `'use client'` graph, which is exactly how a raw `sonor_` key once ended\n * up in a public chunk of an upforge build (see build-entries.ts).\n *\n * Tools that genuinely need live DOM state (reading what's on screen, filling\n * a form the user is looking at) are passed as `localTools` and run in-page.\n */\n\nimport { useEffect } from 'react'\nimport { useDeferredActivation } from '../shared/defer'\nimport type { JsonSchemaObject, McpToolResult } from './types'\n\n// ============================================\n// The WebMCP surface, as far as we rely on it\n// ============================================\n\ninterface WebMcpToolDefinition {\n name: string\n description: string\n inputSchema: JsonSchemaObject\n execute: (args: Record<string, unknown>) => Promise<McpToolResult>\n}\n\ninterface ModelContextLike {\n registerTool?: (\n tool: WebMcpToolDefinition,\n options?: { signal?: AbortSignal },\n ) => Promise<unknown> | unknown\n provideContext?: (context: { tools: WebMcpToolDefinition[] }) => Promise<unknown> | unknown\n}\n\nfunction getModelContext(): ModelContextLike | null {\n if (typeof window === 'undefined') return null\n const doc = document as unknown as { modelContext?: ModelContextLike }\n if (doc.modelContext) return doc.modelContext\n const nav = navigator as unknown as { modelContext?: ModelContextLike }\n return nav.modelContext ?? null\n}\n\n/** True when the visiting browser exposes WebMCP at all. */\nexport function isWebMcpAvailable(): boolean {\n return getModelContext() !== null\n}\n\n// ============================================\n// Props\n// ============================================\n\n/** A tool as it crosses the server→client boundary: JSON, no functions. */\nexport interface WebMcpToolDescriptor {\n name: string\n title?: string\n description: string\n inputSchema: JsonSchemaObject\n}\n\nexport interface WebMcpLocalTool extends WebMcpToolDescriptor {\n /** Runs in the browser. Use for DOM-aware tools only. */\n execute: (args: Record<string, unknown>) => Promise<unknown> | unknown\n}\n\nexport interface WebMcpToolsProps {\n /**\n * Proxied tools — executed server-side via the MCP endpoint.\n *\n * Usually omit this. Passing descriptors from a server component sends the\n * whole tool catalog through the RSC payload of EVERY page, costing every\n * human visitor several KB for a capability only an agent uses. Leave it\n * empty and the component fetches `tools/list` instead — but only after\n * confirming the browser actually exposes WebMCP, so the fetch never\n * happens for ordinary visitors. Pass descriptors only to pin a subset.\n */\n tools?: WebMcpToolDescriptor[]\n /** Tools whose handler runs in the browser. */\n localTools?: WebMcpLocalTool[]\n /** MCP endpoint on this origin (default `/api/mcp`). */\n endpoint?: string\n /**\n * Wait for the page to go quiet before registering (default true).\n *\n * Registration is not user-visible and must never compete with hydration.\n * An agent arriving at the page polls or listens for `toolchange`, so a\n * couple of hundred milliseconds costs nothing; a blocked LCP costs a lot.\n */\n defer?: boolean\n /**\n * Fetch the catalog from the endpoint's `tools/list` when no `tools` are\n * passed (default true). The fetch is gated on WebMCP being present.\n */\n discover?: boolean\n}\n\n// ============================================\n// Component\n// ============================================\n\n/**\n * Register this site's MCP tools with the visiting browser's agent.\n *\n * Renders nothing. Mount it as a CHILDLESS sibling in the layout — never as a\n * wrapper around `{children}`, which would de-opt the whole route to client\n * rendering (the cardinal rule in the root CLAUDE.md).\n *\n * @example\n * ```tsx\n * // app/layout.tsx\n * <SiteKitLayout>{children}</SiteKitLayout>\n * <WebMcpTools endpoint=\"/api/mcp\" />\n * ```\n *\n * Prefer `endpoint` (discovery) over a `tools` list from a server component:\n * descriptors passed as props land in every page's RSC payload.\n */\nexport function WebMcpTools({\n tools = [],\n localTools = [],\n endpoint = '/api/mcp',\n defer = true,\n discover = true,\n}: WebMcpToolsProps) {\n const ready = useDeferredActivation(defer)\n\n useEffect(() => {\n if (!ready) return\n // Gate EVERYTHING on WebMCP being present. A browser without it does no\n // work and issues no request — which is every human visitor today.\n const modelContext = getModelContext()\n if (!modelContext) return\n\n const controller = new AbortController()\n\n const callRemote = async (\n name: string,\n args: Record<string, unknown>,\n ): Promise<McpToolResult> => {\n try {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'Mcp-Method': 'tools/call',\n 'Mcp-Name': name,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: `webmcp-${name}`,\n method: 'tools/call',\n params: { name, arguments: args },\n }),\n signal: controller.signal,\n })\n const payload = (await response.json()) as {\n result?: McpToolResult\n error?: { message?: string }\n }\n if (payload.error) {\n return {\n content: [{ type: 'text', text: payload.error.message ?? 'Tool call failed.' }],\n isError: true,\n }\n }\n return payload.result ?? { content: [{ type: 'text', text: '(no result)' }] }\n } catch (error) {\n if (controller.signal.aborted) throw error\n const detail = error instanceof Error ? error.message : String(error)\n return { content: [{ type: 'text', text: `Tool call failed: ${detail}` }], isError: true }\n }\n }\n\n const normalize = (value: unknown): McpToolResult => {\n if (value && typeof value === 'object' && Array.isArray((value as McpToolResult).content)) {\n return value as McpToolResult\n }\n return {\n content: [\n { type: 'text', text: typeof value === 'string' ? value : JSON.stringify(value, null, 2) },\n ],\n structuredContent: value,\n }\n }\n\n const proxied = (list: WebMcpToolDescriptor[]): WebMcpToolDefinition[] =>\n list.map((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n execute: (args: Record<string, unknown>) => callRemote(tool.name, args ?? {}),\n }))\n\n const local = localTools.map((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n execute: async (args: Record<string, unknown>) => normalize(await tool.execute(args ?? {})),\n }))\n\n /** Ask our own endpoint what it serves, so the two can't disagree. */\n const listRemoteTools = async (): Promise<WebMcpToolDescriptor[]> => {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'Mcp-Method': 'tools/list',\n },\n body: JSON.stringify({ jsonrpc: '2.0', id: 'webmcp-list', method: 'tools/list' }),\n signal: controller.signal,\n })\n const payload = (await response.json()) as {\n result?: { tools?: WebMcpToolDescriptor[] }\n }\n return payload.result?.tools ?? []\n }\n\n let cancelled = false\n void (async () => {\n try {\n const discovered =\n tools.length === 0 && discover ? await listRemoteTools() : tools\n if (cancelled) return\n\n const definitions = [...proxied(discovered), ...local]\n if (definitions.length === 0) return\n\n if (typeof modelContext.registerTool === 'function') {\n for (const definition of definitions) {\n if (cancelled) return\n await modelContext.registerTool(definition, { signal: controller.signal })\n }\n } else if (typeof modelContext.provideContext === 'function') {\n await modelContext.provideContext({ tools: definitions })\n }\n } catch (error) {\n // A draft API that rejects is not a site error. Stay silent in\n // production so a spec change never shows up as console noise on a\n // marketing page.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[site-kit/mcp] WebMCP registration failed:', error)\n }\n }\n })()\n\n return () => {\n cancelled = true\n // Aborting the signal is how WebMCP unregisters — important on client\n // navigation, or the previous page's tools linger on the document.\n controller.abort()\n }\n }, [ready, tools, localTools, endpoint, discover])\n\n return null\n}\n"]}
@@ -1,129 +0,0 @@
1
- 'use client';
2
- import { useDeferredActivation } from '../chunk-ZVBLXXNJ.mjs';
3
- import '../chunk-BEXTDHO4.mjs';
4
- import { useEffect } from 'react';
5
-
6
- function getModelContext() {
7
- if (typeof window === "undefined") return null;
8
- const doc = document;
9
- if (doc.modelContext) return doc.modelContext;
10
- const nav = navigator;
11
- return nav.modelContext ?? null;
12
- }
13
- function isWebMcpAvailable() {
14
- return getModelContext() !== null;
15
- }
16
- function WebMcpTools({
17
- tools = [],
18
- localTools = [],
19
- endpoint = "/api/mcp",
20
- defer = true,
21
- discover = true
22
- }) {
23
- const ready = useDeferredActivation(defer);
24
- useEffect(() => {
25
- if (!ready) return;
26
- const modelContext = getModelContext();
27
- if (!modelContext) return;
28
- const controller = new AbortController();
29
- const callRemote = async (name, args) => {
30
- try {
31
- const response = await fetch(endpoint, {
32
- method: "POST",
33
- headers: {
34
- "Content-Type": "application/json",
35
- Accept: "application/json, text/event-stream",
36
- "Mcp-Method": "tools/call",
37
- "Mcp-Name": name
38
- },
39
- body: JSON.stringify({
40
- jsonrpc: "2.0",
41
- id: `webmcp-${name}`,
42
- method: "tools/call",
43
- params: { name, arguments: args }
44
- }),
45
- signal: controller.signal
46
- });
47
- const payload = await response.json();
48
- if (payload.error) {
49
- return {
50
- content: [{ type: "text", text: payload.error.message ?? "Tool call failed." }],
51
- isError: true
52
- };
53
- }
54
- return payload.result ?? { content: [{ type: "text", text: "(no result)" }] };
55
- } catch (error) {
56
- if (controller.signal.aborted) throw error;
57
- const detail = error instanceof Error ? error.message : String(error);
58
- return { content: [{ type: "text", text: `Tool call failed: ${detail}` }], isError: true };
59
- }
60
- };
61
- const normalize = (value) => {
62
- if (value && typeof value === "object" && Array.isArray(value.content)) {
63
- return value;
64
- }
65
- return {
66
- content: [
67
- { type: "text", text: typeof value === "string" ? value : JSON.stringify(value, null, 2) }
68
- ],
69
- structuredContent: value
70
- };
71
- };
72
- const proxied = (list) => list.map((tool) => ({
73
- name: tool.name,
74
- description: tool.description,
75
- inputSchema: tool.inputSchema,
76
- execute: (args) => callRemote(tool.name, args ?? {})
77
- }));
78
- const local = localTools.map((tool) => ({
79
- name: tool.name,
80
- description: tool.description,
81
- inputSchema: tool.inputSchema,
82
- execute: async (args) => normalize(await tool.execute(args ?? {}))
83
- }));
84
- const listRemoteTools = async () => {
85
- const response = await fetch(endpoint, {
86
- method: "POST",
87
- headers: {
88
- "Content-Type": "application/json",
89
- Accept: "application/json, text/event-stream",
90
- "Mcp-Method": "tools/list"
91
- },
92
- body: JSON.stringify({ jsonrpc: "2.0", id: "webmcp-list", method: "tools/list" }),
93
- signal: controller.signal
94
- });
95
- const payload = await response.json();
96
- return payload.result?.tools ?? [];
97
- };
98
- let cancelled = false;
99
- void (async () => {
100
- try {
101
- const discovered = tools.length === 0 && discover ? await listRemoteTools() : tools;
102
- if (cancelled) return;
103
- const definitions = [...proxied(discovered), ...local];
104
- if (definitions.length === 0) return;
105
- if (typeof modelContext.registerTool === "function") {
106
- for (const definition of definitions) {
107
- if (cancelled) return;
108
- await modelContext.registerTool(definition, { signal: controller.signal });
109
- }
110
- } else if (typeof modelContext.provideContext === "function") {
111
- await modelContext.provideContext({ tools: definitions });
112
- }
113
- } catch (error) {
114
- if (process.env.NODE_ENV !== "production") {
115
- console.warn("[site-kit/mcp] WebMCP registration failed:", error);
116
- }
117
- }
118
- })();
119
- return () => {
120
- cancelled = true;
121
- controller.abort();
122
- };
123
- }, [ready, tools, localTools, endpoint, discover]);
124
- return null;
125
- }
126
-
127
- export { WebMcpTools, isWebMcpAvailable };
128
- //# sourceMappingURL=client.mjs.map
129
- //# sourceMappingURL=client.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/mcp/WebMcpTools.tsx"],"names":[],"mappings":"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","file":"client.mjs","sourcesContent":["'use client'\n\n/**\n * @sonordev/site-kit/mcp — WebMCP in-page tool registration\n *\n * The browser half of WebMCP (W3C Web Machine Learning CG). When an agent is\n * driving the page — a browser-integrated assistant, an extension, a\n * headless-Chrome operator — it does not fetch our `.well-known` card and open\n * a network connection. It looks for tools registered on the *document*.\n *\n * `document.modelContext.registerTool()` is the current shape in the explainer;\n * earlier drafts and some flagged builds put the same object on `navigator`,\n * and an even earlier one took a whole tool array via `provideContext()`. All\n * three are probed, because the spec is a live draft and a site that only\n * knows one shape silently exposes nothing in the others.\n *\n * ── Why the handlers are proxied ──────────────────────────────────────────\n * Tools are registered here as thin wrappers that POST `tools/call` to this\n * site's own MCP endpoint. That is deliberate:\n *\n * - one implementation. The tool an agent calls in-page and the tool it\n * calls over HTTP run the SAME server-side handler, so they cannot drift.\n * - no secrets in the bundle. Handlers reach Sonor with `SONOR_API_KEY`.\n * Registering real handlers client-side would drag that key into a\n * `'use client'` graph, which is exactly how a raw `sonor_` key once ended\n * up in a public chunk of an upforge build (see build-entries.ts).\n *\n * Tools that genuinely need live DOM state (reading what's on screen, filling\n * a form the user is looking at) are passed as `localTools` and run in-page.\n */\n\nimport { useEffect } from 'react'\nimport { useDeferredActivation } from '../shared/defer'\nimport type { JsonSchemaObject, McpToolResult } from './types'\n\n// ============================================\n// The WebMCP surface, as far as we rely on it\n// ============================================\n\ninterface WebMcpToolDefinition {\n name: string\n description: string\n inputSchema: JsonSchemaObject\n execute: (args: Record<string, unknown>) => Promise<McpToolResult>\n}\n\ninterface ModelContextLike {\n registerTool?: (\n tool: WebMcpToolDefinition,\n options?: { signal?: AbortSignal },\n ) => Promise<unknown> | unknown\n provideContext?: (context: { tools: WebMcpToolDefinition[] }) => Promise<unknown> | unknown\n}\n\nfunction getModelContext(): ModelContextLike | null {\n if (typeof window === 'undefined') return null\n const doc = document as unknown as { modelContext?: ModelContextLike }\n if (doc.modelContext) return doc.modelContext\n const nav = navigator as unknown as { modelContext?: ModelContextLike }\n return nav.modelContext ?? null\n}\n\n/** True when the visiting browser exposes WebMCP at all. */\nexport function isWebMcpAvailable(): boolean {\n return getModelContext() !== null\n}\n\n// ============================================\n// Props\n// ============================================\n\n/** A tool as it crosses the server→client boundary: JSON, no functions. */\nexport interface WebMcpToolDescriptor {\n name: string\n title?: string\n description: string\n inputSchema: JsonSchemaObject\n}\n\nexport interface WebMcpLocalTool extends WebMcpToolDescriptor {\n /** Runs in the browser. Use for DOM-aware tools only. */\n execute: (args: Record<string, unknown>) => Promise<unknown> | unknown\n}\n\nexport interface WebMcpToolsProps {\n /**\n * Proxied tools — executed server-side via the MCP endpoint.\n *\n * Usually omit this. Passing descriptors from a server component sends the\n * whole tool catalog through the RSC payload of EVERY page, costing every\n * human visitor several KB for a capability only an agent uses. Leave it\n * empty and the component fetches `tools/list` instead — but only after\n * confirming the browser actually exposes WebMCP, so the fetch never\n * happens for ordinary visitors. Pass descriptors only to pin a subset.\n */\n tools?: WebMcpToolDescriptor[]\n /** Tools whose handler runs in the browser. */\n localTools?: WebMcpLocalTool[]\n /** MCP endpoint on this origin (default `/api/mcp`). */\n endpoint?: string\n /**\n * Wait for the page to go quiet before registering (default true).\n *\n * Registration is not user-visible and must never compete with hydration.\n * An agent arriving at the page polls or listens for `toolchange`, so a\n * couple of hundred milliseconds costs nothing; a blocked LCP costs a lot.\n */\n defer?: boolean\n /**\n * Fetch the catalog from the endpoint's `tools/list` when no `tools` are\n * passed (default true). The fetch is gated on WebMCP being present.\n */\n discover?: boolean\n}\n\n// ============================================\n// Component\n// ============================================\n\n/**\n * Register this site's MCP tools with the visiting browser's agent.\n *\n * Renders nothing. Mount it as a CHILDLESS sibling in the layout — never as a\n * wrapper around `{children}`, which would de-opt the whole route to client\n * rendering (the cardinal rule in the root CLAUDE.md).\n *\n * @example\n * ```tsx\n * // app/layout.tsx\n * <SiteKitLayout>{children}</SiteKitLayout>\n * <WebMcpTools endpoint=\"/api/mcp\" />\n * ```\n *\n * Prefer `endpoint` (discovery) over a `tools` list from a server component:\n * descriptors passed as props land in every page's RSC payload.\n */\nexport function WebMcpTools({\n tools = [],\n localTools = [],\n endpoint = '/api/mcp',\n defer = true,\n discover = true,\n}: WebMcpToolsProps) {\n const ready = useDeferredActivation(defer)\n\n useEffect(() => {\n if (!ready) return\n // Gate EVERYTHING on WebMCP being present. A browser without it does no\n // work and issues no request — which is every human visitor today.\n const modelContext = getModelContext()\n if (!modelContext) return\n\n const controller = new AbortController()\n\n const callRemote = async (\n name: string,\n args: Record<string, unknown>,\n ): Promise<McpToolResult> => {\n try {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'Mcp-Method': 'tools/call',\n 'Mcp-Name': name,\n },\n body: JSON.stringify({\n jsonrpc: '2.0',\n id: `webmcp-${name}`,\n method: 'tools/call',\n params: { name, arguments: args },\n }),\n signal: controller.signal,\n })\n const payload = (await response.json()) as {\n result?: McpToolResult\n error?: { message?: string }\n }\n if (payload.error) {\n return {\n content: [{ type: 'text', text: payload.error.message ?? 'Tool call failed.' }],\n isError: true,\n }\n }\n return payload.result ?? { content: [{ type: 'text', text: '(no result)' }] }\n } catch (error) {\n if (controller.signal.aborted) throw error\n const detail = error instanceof Error ? error.message : String(error)\n return { content: [{ type: 'text', text: `Tool call failed: ${detail}` }], isError: true }\n }\n }\n\n const normalize = (value: unknown): McpToolResult => {\n if (value && typeof value === 'object' && Array.isArray((value as McpToolResult).content)) {\n return value as McpToolResult\n }\n return {\n content: [\n { type: 'text', text: typeof value === 'string' ? value : JSON.stringify(value, null, 2) },\n ],\n structuredContent: value,\n }\n }\n\n const proxied = (list: WebMcpToolDescriptor[]): WebMcpToolDefinition[] =>\n list.map((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n execute: (args: Record<string, unknown>) => callRemote(tool.name, args ?? {}),\n }))\n\n const local = localTools.map((tool) => ({\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n execute: async (args: Record<string, unknown>) => normalize(await tool.execute(args ?? {})),\n }))\n\n /** Ask our own endpoint what it serves, so the two can't disagree. */\n const listRemoteTools = async (): Promise<WebMcpToolDescriptor[]> => {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'Mcp-Method': 'tools/list',\n },\n body: JSON.stringify({ jsonrpc: '2.0', id: 'webmcp-list', method: 'tools/list' }),\n signal: controller.signal,\n })\n const payload = (await response.json()) as {\n result?: { tools?: WebMcpToolDescriptor[] }\n }\n return payload.result?.tools ?? []\n }\n\n let cancelled = false\n void (async () => {\n try {\n const discovered =\n tools.length === 0 && discover ? await listRemoteTools() : tools\n if (cancelled) return\n\n const definitions = [...proxied(discovered), ...local]\n if (definitions.length === 0) return\n\n if (typeof modelContext.registerTool === 'function') {\n for (const definition of definitions) {\n if (cancelled) return\n await modelContext.registerTool(definition, { signal: controller.signal })\n }\n } else if (typeof modelContext.provideContext === 'function') {\n await modelContext.provideContext({ tools: definitions })\n }\n } catch (error) {\n // A draft API that rejects is not a site error. Stay silent in\n // production so a spec change never shows up as console noise on a\n // marketing page.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[site-kit/mcp] WebMCP registration failed:', error)\n }\n }\n })()\n\n return () => {\n cancelled = true\n // Aborting the signal is how WebMCP unregisters — important on client\n // navigation, or the previous page's tools linger on the document.\n controller.abort()\n }\n }, [ready, tools, localTools, endpoint, discover])\n\n return null\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"declarative.d.ts","sourceRoot":"","sources":["../../src/mcp/declarative.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,6BAA6B,CAS/B;AAED,MAAM,WAAW,8BAA8B;IAC7C,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,8BAA8B,CAExF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAKL,+BAA+B,EAG/B,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEL,KAAK,yBAAyB,EAE/B,MAAM,cAAc,CAAA;AAoCrB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAcrE;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IAC/B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7C,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CACjD;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CA8G7E;AAMD,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,0BAA0B,CAkB5B;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAKvC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,+BAA+B,EAC/B,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,sCAAsC,EACtC,wBAAwB,EACxB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAKnB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,aAAa,EACb,SAAS,EACT,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAKrB,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,YAAY,CAAA;AAKnB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/mcp/types.ts","../../src/mcp/protocol.ts","../../src/mcp/serverCard.ts","../../src/mcp/handlers.ts","../../src/mcp/declarative.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/mcp — shared types\n *\n * ONE tool definition, THREE surfaces. A `SiteKitMcpTool` is consumed by:\n *\n * 1. the remote MCP endpoint (`createMcpHandler`) — off-browser agents\n * 2. the in-page WebMCP API (`<WebMcpTools>`) — browser agents\n * 3. the MCP Server Card (`buildMcpServerCard`) — discovery only\n *\n * Keeping the definition in one shape is the whole point: the tool an agent\n * finds by crawling `/.well-known/mcp.json` and the tool it finds by driving a\n * browser to the page are the same tool, with the same schema and the same\n * handler. Two definitions would drift the way the two Square token refreshers\n * drifted (see the root CLAUDE.md \"Consolidate Duplicated Logic\" note).\n */\n\n// ============================================\n// JSON Schema (the subset MCP tool inputs use)\n// ============================================\n\n/** A JSON Schema node. Deliberately loose — MCP passes these through verbatim. */\nexport interface JsonSchemaNode {\n type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null'\n description?: string\n enum?: readonly (string | number | boolean | null)[]\n default?: unknown\n items?: JsonSchemaNode\n properties?: Record<string, JsonSchemaNode>\n required?: readonly string[]\n additionalProperties?: boolean | JsonSchemaNode\n minimum?: number\n maximum?: number\n minLength?: number\n maxLength?: number\n pattern?: string\n format?: string\n /** MCP 2026-07-28: mirror this param into an `Mcp-Param-{name}` HTTP header. */\n 'x-mcp-header'?: string\n [key: string]: unknown\n}\n\n/** Tool input schemas are always objects at the root, per the MCP spec. */\nexport interface JsonSchemaObject extends JsonSchemaNode {\n type: 'object'\n properties?: Record<string, JsonSchemaNode>\n required?: readonly string[]\n}\n\n// ============================================\n// Tool results\n// ============================================\n\nexport interface McpTextContent {\n type: 'text'\n text: string\n}\n\nexport interface McpResourceLinkContent {\n type: 'resource_link'\n uri: string\n name?: string\n description?: string\n mimeType?: string\n}\n\nexport type McpContent = McpTextContent | McpResourceLinkContent\n\nexport interface McpToolResult {\n content: McpContent[]\n /** Machine-readable payload. Agents prefer this over parsing `content`. */\n structuredContent?: unknown\n isError?: boolean\n}\n\n/**\n * What a handler may return. Anything that is not already an `McpToolResult`\n * is normalized by `toToolResult()`: objects become pretty JSON in a text block\n * AND are carried verbatim as `structuredContent`, so an agent can either read\n * the prose or consume the data.\n */\nexport type McpToolHandlerResult =\n | McpToolResult\n // `object` rather than `Record<string, unknown>` on purpose: a plain\n // `interface` has no index signature, so it does NOT satisfy Record and a\n // handler returning a typed shape would fail to compile for no good reason.\n | object\n | string\n | number\n | boolean\n | null\n\n/**\n * Behavioural hints. These are advisory — the spec is explicit that clients\n * must not make security decisions from them — but good agents use them to\n * decide what needs a human in the loop, so setting them honestly matters.\n */\nexport interface McpToolAnnotations {\n title?: string\n /** Tool does not modify anything. Every \"look something up\" tool is one. */\n readOnlyHint?: boolean\n /** Tool may perform irreversible updates. Anything creating a CRM record is. */\n destructiveHint?: boolean\n /** Calling twice with the same args changes nothing extra. */\n idempotentHint?: boolean\n /** Tool touches the open internet / third parties. */\n openWorldHint?: boolean\n}\n\n/** Context handed to every tool handler. */\nexport interface McpToolContext {\n /** Where the call came in from: the remote endpoint or the in-page API. */\n surface: 'http' | 'webmcp'\n /** Absolute site origin, e.g. `https://upforge.io`. */\n baseUrl?: string\n /** The originating Request, when the call arrived over HTTP. */\n request?: Request\n /** Negotiated protocol version, when known. */\n protocolVersion?: string\n /** Abort signal — WebMCP passes one; HTTP passes the request's. */\n signal?: AbortSignal\n}\n\nexport type McpToolHandler<Args = Record<string, unknown>> = (\n args: Args,\n context: McpToolContext,\n) => Promise<McpToolHandlerResult> | McpToolHandlerResult\n\n// ============================================\n// The tool definition\n// ============================================\n\nexport interface SiteKitMcpTool<Args = Record<string, unknown>> {\n /**\n * Machine name. Keep it `snake_case` and verb-led (`get_services`,\n * `request_site_audit`) — this is the string a model reasons about, and the\n * spec only SHOULDs header-safe characters, so stick to `[a-z0-9_]`.\n */\n name: string\n /** Human display name for tool pickers. */\n title?: string\n /**\n * What the tool does, in the voice of someone explaining it to a colleague.\n * This is the single highest-leverage field in the whole module: it is the\n * only thing a model reads when deciding whether to call the tool.\n */\n description: string\n inputSchema: JsonSchemaObject\n /** Optional schema for `structuredContent`. */\n outputSchema?: JsonSchemaObject\n annotations?: McpToolAnnotations\n handler: McpToolHandler<Args>\n /**\n * Set false to keep a tool off the in-page WebMCP surface while still\n * serving it from the remote endpoint (default: true). Useful for tools\n * whose handler needs server-only secrets.\n */\n exposeToWebMcp?: boolean\n /**\n * Set false to keep a tool off the remote HTTP endpoint while still\n * registering it in-page (default: true). Useful for tools that only make\n * sense against live DOM state.\n */\n exposeToHttp?: boolean\n}\n\n/** Identity-function helper: gives you inference + autocomplete on the schema. */\nexport function defineMcpTool<Args = Record<string, unknown>>(\n tool: SiteKitMcpTool<Args>,\n): SiteKitMcpTool<Args> {\n return tool\n}\n\n// ============================================\n// Server identity\n// ============================================\n\nexport interface McpServerInfo {\n /**\n * Reverse-DNS name with exactly one forward slash, per SEP-2127:\n * `io.upforge/site`. The part before the slash is a namespace you control.\n */\n name: string\n /** Semver. No ranges. */\n version: string\n /** Display name. */\n title?: string\n /** One or two sentences an agent reads before connecting. */\n description: string\n websiteUrl?: string\n /** Natural-language guidance for models on how to use this server well. */\n instructions?: string\n}\n\nexport interface McpServerIcon {\n src: string\n mimeType?: string\n sizes?: string\n theme?: 'light' | 'dark'\n}\n","/**\n * @sonordev/site-kit/mcp — MCP wire protocol (transport-agnostic)\n *\n * A dependency-free implementation of the server half of MCP, covering BOTH\n * protocol eras (the spec's own term — see /specification/2026-07-28/basic/versioning):\n *\n * modern (2026-07-28) stateless; every request carries its protocol version\n * in `_meta`, mirrored into the `MCP-Protocol-Version`\n * header. `server/discover` replaces the handshake.\n * No sessions, no GET stream.\n *\n * legacy (<= 2025-11-25) `initialize` handshake, then `tools/list`.\n * Still what most shipped clients and SDKs speak, so\n * dropping it would mean \"spec-compliant and unusable\".\n *\n * We deliberately do NOT depend on `@modelcontextprotocol/sdk`. The server\n * surface we need is a few hundred lines of JSON-RPC, and site-kit ships to\n * every marketing site in the fleet — an SDK in `dependencies` would land in\n * every one of those installs to save code we'd have to wrap anyway.\n *\n * This file is pure: it takes a parsed JSON-RPC message and returns a response\n * object. Anything HTTP-shaped lives in `handlers.ts`.\n */\n\nimport type {\n McpServerInfo,\n McpToolContext,\n McpToolResult,\n SiteKitMcpTool,\n} from './types'\n\n// ============================================\n// Protocol versions\n// ============================================\n\n/** Current revision: stateless, per-request `_meta`, `server/discover`. */\nexport const MCP_PROTOCOL_VERSION_MODERN = '2026-07-28'\n\n/**\n * Handshake-based revisions we still answer. Ordered newest-first — this is\n * also the preference order when a legacy client asks for something we don't\n * know, in which case the spec says to reply with our own best version.\n */\nexport const MCP_PROTOCOL_VERSIONS_LEGACY = ['2025-11-25', '2025-06-18', '2025-03-26'] as const\n\n/** Everything we accept, newest first. Advertised verbatim in errors. */\nexport const MCP_SUPPORTED_PROTOCOL_VERSIONS = [\n MCP_PROTOCOL_VERSION_MODERN,\n ...MCP_PROTOCOL_VERSIONS_LEGACY,\n] as const\n\n/** `_meta` keys defined by the modern revision. */\nexport const META_PROTOCOL_VERSION = 'io.modelcontextprotocol/protocolVersion'\nexport const META_CLIENT_INFO = 'io.modelcontextprotocol/clientInfo'\nexport const META_SERVER_INFO = 'io.modelcontextprotocol/serverInfo'\n\n// ============================================\n// JSON-RPC error codes\n// ============================================\n\nexport const JSONRPC_PARSE_ERROR = -32700\nexport const JSONRPC_INVALID_REQUEST = -32600\nexport const JSONRPC_METHOD_NOT_FOUND = -32601\nexport const JSONRPC_INVALID_PARAMS = -32602\nexport const JSONRPC_INTERNAL_ERROR = -32603\n/** MCP-defined: headers disagree with the body. */\nexport const MCP_ERROR_HEADER_MISMATCH = -32020\n/** MCP-defined: we don't speak the version the client asked for. */\nexport const MCP_ERROR_UNSUPPORTED_PROTOCOL_VERSION = -32022\n\n// ============================================\n// Message shapes\n// ============================================\n\nexport type JsonRpcId = string | number | null\n\nexport interface JsonRpcRequest {\n jsonrpc: '2.0'\n id?: JsonRpcId\n method: string\n params?: Record<string, unknown>\n}\n\nexport interface JsonRpcError {\n code: number\n message: string\n data?: unknown\n}\n\nexport interface JsonRpcResponse {\n jsonrpc: '2.0'\n id: JsonRpcId\n result?: unknown\n error?: JsonRpcError\n}\n\n/**\n * A response plus the HTTP status the transport should use. The spec pins\n * specific statuses to specific errors (404 for unknown method, 400 for\n * version/header problems), so the status is part of the protocol, not a\n * transport detail the caller gets to invent.\n */\nexport interface DispatchOutcome {\n /** null for an accepted notification — the transport answers 202. */\n response: JsonRpcResponse | null\n status: number\n}\n\n// ============================================\n// Result normalization\n// ============================================\n\nconst MAX_JSON_TEXT = 60_000\n\nfunction isToolResult(value: unknown): value is McpToolResult {\n return (\n typeof value === 'object' &&\n value !== null &&\n Array.isArray((value as McpToolResult).content)\n )\n}\n\n/**\n * Normalize whatever a handler returned into a spec-shaped tool result.\n *\n * Structured data is emitted BOTH ways on purpose: as `structuredContent` for\n * agents that parse, and as pretty JSON inside a text block for agents (still\n * the majority) that only read `content`. Returning one or the other is how\n * you end up invisible to half the ecosystem.\n */\nexport function toToolResult(value: unknown): McpToolResult {\n if (isToolResult(value)) return value\n\n if (typeof value === 'string') {\n return { content: [{ type: 'text', text: value }] }\n }\n\n if (value === undefined || value === null) {\n return { content: [{ type: 'text', text: '(no result)' }] }\n }\n\n let text: string\n try {\n text = JSON.stringify(value, null, 2)\n } catch {\n text = String(value)\n }\n if (text.length > MAX_JSON_TEXT) {\n text = `${text.slice(0, MAX_JSON_TEXT)}\\n… (truncated)`\n }\n\n return {\n content: [{ type: 'text', text }],\n structuredContent: value,\n }\n}\n\nexport function toolErrorResult(message: string): McpToolResult {\n return { content: [{ type: 'text', text: message }], isError: true }\n}\n\n// ============================================\n// Tool descriptors\n// ============================================\n\nexport interface McpToolDescriptor {\n name: string\n title?: string\n description: string\n inputSchema: unknown\n outputSchema?: unknown\n annotations?: unknown\n}\n\n/** The public face of a tool — everything except the handler. */\nexport function toToolDescriptor(tool: SiteKitMcpTool<never>): McpToolDescriptor {\n const descriptor: McpToolDescriptor = {\n name: tool.name,\n description: tool.description,\n inputSchema: tool.inputSchema,\n }\n if (tool.title) descriptor.title = tool.title\n if (tool.outputSchema) descriptor.outputSchema = tool.outputSchema\n if (tool.annotations) descriptor.annotations = tool.annotations\n return descriptor\n}\n\n// ============================================\n// Argument validation\n// ============================================\n\n/**\n * Minimal required-field + enum check.\n *\n * Intentionally shallow. A full JSON Schema validator is a dependency and a\n * maintenance surface, and the failure it would catch — a model inventing a\n * field — is better handled by the handler itself returning a helpful\n * `isError` result the model can read and retry against. What we DO enforce is\n * the part a model cannot recover from on its own: a missing required argument.\n */\nexport function validateArgs(\n tool: SiteKitMcpTool<never>,\n args: Record<string, unknown>,\n): string | null {\n const required = tool.inputSchema.required ?? []\n const missing = required.filter((key) => {\n const value = args[key]\n return value === undefined || value === null || value === ''\n })\n if (missing.length > 0) {\n return `Missing required argument${missing.length > 1 ? 's' : ''}: ${missing.join(', ')}.`\n }\n\n for (const [key, schema] of Object.entries(tool.inputSchema.properties ?? {})) {\n const value = args[key]\n if (value === undefined || value === null) continue\n if (schema.enum && !schema.enum.includes(value as string)) {\n return `Invalid value for \"${key}\": ${JSON.stringify(value)}. Expected one of: ${schema.enum\n .map((v) => JSON.stringify(v))\n .join(', ')}.`\n }\n }\n\n return null\n}\n\n// ============================================\n// Server definition\n// ============================================\n\nexport interface McpServerDefinition {\n info: McpServerInfo\n tools: SiteKitMcpTool<never>[]\n /** How long clients may cache `server/discover`, in ms. */\n discoverTtlMs?: number\n}\n\nfunction capabilities() {\n // `listChanged: false` is the honest answer for a statically-defined tool\n // set: there is no subscription stream to notify anyone on.\n return { tools: { listChanged: false } }\n}\n\nfunction serverInfoBlock(info: McpServerInfo) {\n return { name: info.name, version: info.version, ...(info.title ? { title: info.title } : {}) }\n}\n\n// ============================================\n// Version negotiation\n// ============================================\n\nexport function isSupportedVersion(version: string): boolean {\n return (MCP_SUPPORTED_PROTOCOL_VERSIONS as readonly string[]).includes(version)\n}\n\nfunction unsupportedVersionError(id: JsonRpcId, requested: string): DispatchOutcome {\n return {\n status: 400,\n response: {\n jsonrpc: '2.0',\n id,\n error: {\n code: MCP_ERROR_UNSUPPORTED_PROTOCOL_VERSION,\n message: 'Unsupported protocol version',\n data: { supported: [...MCP_SUPPORTED_PROTOCOL_VERSIONS], requested },\n },\n },\n }\n}\n\nexport function errorOutcome(\n id: JsonRpcId,\n code: number,\n message: string,\n status: number,\n data?: unknown,\n): DispatchOutcome {\n return {\n status,\n response: { jsonrpc: '2.0', id, error: { code, message, ...(data ? { data } : {}) } },\n }\n}\n\n// ============================================\n// Dispatch\n// ============================================\n\nexport interface DispatchOptions {\n server: McpServerDefinition\n context: Omit<McpToolContext, 'surface'>\n /**\n * Protocol version taken from the `MCP-Protocol-Version` header, if any.\n * Compared against the body's `_meta` value; a disagreement is a -32020.\n */\n headerProtocolVersion?: string | null\n /** `Mcp-Method` header, already base64-sentinel-decoded. */\n headerMethod?: string | null\n /** `Mcp-Name` header, already base64-sentinel-decoded. */\n headerName?: string | null\n /**\n * Reject modern requests that omit the required mirror headers.\n *\n * Off by default, and that is a considered choice rather than laziness: a\n * public marketing MCP server exists to be reachable, and today's shipped\n * clients overwhelmingly speak a legacy revision or omit the mirrors. We\n * always reject a header that *disagrees* with the body — that is the actual\n * security property the mirrors exist for (an intermediary routing on the\n * header while we execute the body). A merely absent header costs nothing.\n */\n strictHeaders?: boolean\n}\n\nexport async function dispatch(\n message: JsonRpcRequest,\n options: DispatchOptions,\n): Promise<DispatchOutcome> {\n const { server } = options\n const id = message.id ?? null\n const isNotification = message.id === undefined\n const params = (message.params ?? {}) as Record<string, unknown>\n const meta = (params._meta ?? {}) as Record<string, unknown>\n\n // ── Era detection ────────────────────────────────────────────────────────\n // A request is \"modern\" if it carries the per-request protocol version.\n const bodyVersion =\n typeof meta[META_PROTOCOL_VERSION] === 'string'\n ? (meta[META_PROTOCOL_VERSION] as string)\n : null\n const headerVersion = options.headerProtocolVersion || null\n\n if (bodyVersion && headerVersion && bodyVersion !== headerVersion) {\n return errorOutcome(\n id,\n MCP_ERROR_HEADER_MISMATCH,\n `Header mismatch: MCP-Protocol-Version header value '${headerVersion}' does not match body value '${bodyVersion}'`,\n 400,\n )\n }\n\n const requestedVersion = bodyVersion || headerVersion\n if (requestedVersion && !isSupportedVersion(requestedVersion)) {\n return unsupportedVersionError(id, requestedVersion)\n }\n\n // Mirror-header validation. A mismatch is always fatal; absence is fatal\n // only in strict mode (see DispatchOptions.strictHeaders).\n if (options.headerMethod && options.headerMethod !== message.method) {\n return errorOutcome(\n id,\n MCP_ERROR_HEADER_MISMATCH,\n `Header mismatch: Mcp-Method header value '${options.headerMethod}' does not match body value '${message.method}'`,\n 400,\n )\n }\n if (options.headerName) {\n const bodyName =\n typeof params.name === 'string'\n ? params.name\n : typeof params.uri === 'string'\n ? params.uri\n : null\n if (bodyName && options.headerName !== bodyName) {\n return errorOutcome(\n id,\n MCP_ERROR_HEADER_MISMATCH,\n `Header mismatch: Mcp-Name header value '${options.headerName}' does not match body value '${bodyName}'`,\n 400,\n )\n }\n }\n if (options.strictHeaders && bodyVersion) {\n if (!headerVersion) {\n return errorOutcome(\n id,\n MCP_ERROR_HEADER_MISMATCH,\n 'Header mismatch: required MCP-Protocol-Version header is missing',\n 400,\n )\n }\n if (!options.headerMethod) {\n return errorOutcome(\n id,\n MCP_ERROR_HEADER_MISMATCH,\n 'Header mismatch: required Mcp-Method header is missing',\n 400,\n )\n }\n }\n\n const negotiated = requestedVersion || MCP_PROTOCOL_VERSION_MODERN\n\n switch (message.method) {\n // ── Modern discovery (MUST implement) ──────────────────────────────────\n case 'server/discover': {\n return {\n status: 200,\n response: {\n jsonrpc: '2.0',\n id,\n result: {\n resultType: 'complete',\n supportedVersions: [...MCP_SUPPORTED_PROTOCOL_VERSIONS],\n capabilities: capabilities(),\n ...(server.info.instructions ? { instructions: server.info.instructions } : {}),\n ttlMs: server.discoverTtlMs ?? 3_600_000,\n cacheScope: 'public',\n _meta: { [META_SERVER_INFO]: serverInfoBlock(server.info) },\n },\n },\n }\n }\n\n // ── Legacy handshake ───────────────────────────────────────────────────\n case 'initialize': {\n // Echo the client's version when we speak it; otherwise answer with our\n // best legacy version. The spec asks modern-only servers to *name* their\n // versions here because legacy clients have no fall-forward path — we\n // support both eras, so we simply pick something mutually intelligible.\n const asked = typeof params.protocolVersion === 'string' ? params.protocolVersion : ''\n const agreed = isSupportedVersion(asked) ? asked : MCP_PROTOCOL_VERSIONS_LEGACY[0]\n return {\n status: 200,\n response: {\n jsonrpc: '2.0',\n id,\n result: {\n protocolVersion: agreed,\n capabilities: capabilities(),\n serverInfo: serverInfoBlock(server.info),\n ...(server.info.instructions ? { instructions: server.info.instructions } : {}),\n },\n },\n }\n }\n\n case 'notifications/initialized':\n case 'initialized':\n return { status: 202, response: null }\n\n case 'ping':\n return { status: 200, response: { jsonrpc: '2.0', id, result: {} } }\n\n // ── Tools ──────────────────────────────────────────────────────────────\n case 'tools/list': {\n const tools = server.tools\n .filter((t) => t.exposeToHttp !== false)\n .map((t) => toToolDescriptor(t))\n return { status: 200, response: { jsonrpc: '2.0', id, result: { tools } } }\n }\n\n case 'tools/call': {\n const name = typeof params.name === 'string' ? params.name : ''\n const tool = server.tools.find((t) => t.name === name && t.exposeToHttp !== false)\n\n if (!tool) {\n return errorOutcome(\n id,\n JSONRPC_INVALID_PARAMS,\n `Unknown tool: ${name || '(none)'}`,\n 400,\n {\n available: server.tools\n .filter((t) => t.exposeToHttp !== false)\n .map((t) => t.name),\n },\n )\n }\n\n const args = (params.arguments ?? {}) as Record<string, unknown>\n const invalid = validateArgs(tool, args)\n if (invalid) {\n // Returned as a tool result rather than a JSON-RPC error, on purpose:\n // an `isError` result goes back to the MODEL, which can read it and\n // retry with the right arguments. A protocol error goes to the client\n // harness and usually just surfaces as a failure.\n return {\n status: 200,\n response: { jsonrpc: '2.0', id, result: toolErrorResult(invalid) },\n }\n }\n\n try {\n const raw = await (tool.handler as (\n a: Record<string, unknown>,\n c: McpToolContext,\n ) => unknown)(args, {\n ...options.context,\n surface: 'http',\n protocolVersion: negotiated,\n })\n return { status: 200, response: { jsonrpc: '2.0', id, result: toToolResult(raw) } }\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error)\n return {\n status: 200,\n response: {\n jsonrpc: '2.0',\n id,\n result: toolErrorResult(`Tool \"${tool.name}\" failed: ${detail}`),\n },\n }\n }\n }\n\n // Declared unsupported rather than left to fall through, so the error names\n // the reason instead of looking like a typo'd method.\n case 'resources/list':\n return { status: 200, response: { jsonrpc: '2.0', id, result: { resources: [] } } }\n case 'prompts/list':\n return { status: 200, response: { jsonrpc: '2.0', id, result: { prompts: [] } } }\n\n default: {\n if (isNotification) return { status: 202, response: null }\n // 404 — the spec uses the status to distinguish an unknown METHOD on a\n // real MCP endpoint from a 404 for an endpoint that isn't there at all.\n return errorOutcome(id, JSONRPC_METHOD_NOT_FOUND, `Method not found: ${message.method}`, 404)\n }\n }\n}\n","/**\n * @sonordev/site-kit/mcp — MCP Server Card (SEP-2127)\n *\n * The card is a DISCOVERY document, not a capability manifest. SEP-2127 is\n * explicit that primitives (tools/resources/prompts) are omitted on purpose,\n * because what a server exposes can vary with auth state and feature flags —\n * the authoritative list is whatever `tools/list` returns at call time.\n *\n * So the card's job is small and specific: tell an agent that an MCP endpoint\n * exists here, what transport it speaks, and which protocol versions it knows,\n * with enough identity attached that a human reviewing the connection knows\n * what they're approving.\n *\n * ── The two paths ─────────────────────────────────────────────────────────\n * SEP-1649 originally proposed `/.well-known/mcp.json`. The ratified SEP-2127\n * moved to `/.well-known/mcp-server-card`. Plenty of deployed crawlers and\n * validators still probe the old path, and serving one JSON document from two\n * URLs costs nothing, so `createMcpServerCardHandler` is mounted at both.\n * `mcp-server-card` is the canonical one; `mcp.json` is compatibility.\n */\n\nimport type { McpServerIcon, McpServerInfo, SiteKitMcpTool } from './types'\nimport { MCP_SUPPORTED_PROTOCOL_VERSIONS } from './protocol'\n\nexport const MCP_SERVER_CARD_SCHEMA =\n 'https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json'\n\n/** Canonical well-known path (SEP-2127). */\nexport const MCP_SERVER_CARD_PATH = '/.well-known/mcp-server-card'\n/** Superseded SEP-1649 path, still widely probed. */\nexport const MCP_SERVER_CARD_LEGACY_PATH = '/.well-known/mcp.json'\n\n/**\n * Our own `_meta` namespace. `_meta` is the spec-sanctioned extension point,\n * and a reverse-DNS prefix is mandatory there, so a tool *summary* can ride\n * along without pretending to be a standard field. Agents that want the real\n * list still call `tools/list`; this is a hint for crawlers that never connect.\n */\nexport const SITE_KIT_CARD_META_KEY = 'io.sonor.site-kit/tools'\n\nexport interface McpRemote {\n type: 'streamable-http' | 'sse'\n url: string\n supportedProtocolVersions?: string[]\n headers?: {\n name: string\n description?: string\n isRequired?: boolean\n isSecret?: boolean\n default?: string\n choices?: string[]\n }[]\n}\n\nexport interface McpServerCard {\n $schema: string\n name: string\n version: string\n description: string\n title?: string\n websiteUrl?: string\n icons?: McpServerIcon[]\n remotes?: McpRemote[]\n _meta?: Record<string, unknown>\n}\n\nexport interface BuildMcpServerCardOptions {\n info: McpServerInfo\n /** Absolute site origin, e.g. `https://upforge.io` (no trailing slash). */\n baseUrl: string\n /** Path of the MCP endpoint on this origin (default `/api/mcp`). */\n mcpPath?: string\n icons?: McpServerIcon[]\n /** Supply the tool set to publish a name/description summary under `_meta`. */\n tools?: SiteKitMcpTool<never>[]\n /** Extra remotes (e.g. a second endpoint on another host). */\n additionalRemotes?: McpRemote[]\n}\n\nexport function buildMcpServerCard(options: BuildMcpServerCardOptions): McpServerCard {\n const base = options.baseUrl.replace(/\\/$/, '')\n const path = options.mcpPath ?? '/api/mcp'\n const mcpUrl = `${base}${path.startsWith('/') ? path : `/${path}`}`\n\n const card: McpServerCard = {\n $schema: MCP_SERVER_CARD_SCHEMA,\n name: options.info.name,\n version: options.info.version,\n description: options.info.description,\n remotes: [\n {\n type: 'streamable-http',\n url: mcpUrl,\n supportedProtocolVersions: [...MCP_SUPPORTED_PROTOCOL_VERSIONS],\n },\n ...(options.additionalRemotes ?? []),\n ],\n }\n\n if (options.info.title) card.title = options.info.title\n if (options.info.websiteUrl || base) card.websiteUrl = options.info.websiteUrl || base\n if (options.icons?.length) card.icons = options.icons\n\n const meta: Record<string, unknown> = {}\n if (options.info.instructions) {\n meta['io.sonor.site-kit/instructions'] = options.info.instructions\n }\n if (options.tools?.length) {\n meta[SITE_KIT_CARD_META_KEY] = options.tools\n .filter((t) => t.exposeToHttp !== false)\n .map((t) => ({\n name: t.name,\n ...(t.title ? { title: t.title } : {}),\n description: t.description,\n readOnly: t.annotations?.readOnlyHint ?? false,\n }))\n }\n if (Object.keys(meta).length > 0) card._meta = meta\n\n return card\n}\n\n/**\n * Validate a card against the parts of SEP-2127 that are actually checkable.\n * Returns human-readable problems; empty array means it looks conformant.\n * Used by the module's tests and worth calling in a site's own build check.\n */\nexport function validateMcpServerCard(card: McpServerCard): string[] {\n const problems: string[] = []\n\n if (card.$schema !== MCP_SERVER_CARD_SCHEMA) {\n problems.push(`$schema should be \"${MCP_SERVER_CARD_SCHEMA}\"`)\n }\n // Reverse-DNS with EXACTLY one slash. `io.upforge/site` is valid;\n // `upforge` and `io.upforge/site/mcp` are not.\n if (!/^[^/\\s]+\\/[^/\\s]+$/.test(card.name)) {\n problems.push(\n `name \"${card.name}\" must be reverse-DNS with exactly one forward slash, e.g. \"io.example/server\"`,\n )\n }\n if (!/^\\d+\\.\\d+\\.\\d+(?:[-+].+)?$/.test(card.version)) {\n problems.push(`version \"${card.version}\" should be a concrete semver (no ranges)`)\n }\n if (!card.description?.trim()) problems.push('description is required')\n\n for (const remote of card.remotes ?? []) {\n if (!/^https:\\/\\//.test(remote.url) && !/^http:\\/\\/localhost/.test(remote.url)) {\n problems.push(`remote url \"${remote.url}\" must be https (http allowed only on localhost)`)\n }\n }\n\n return problems\n}\n","/**\n * @sonordev/site-kit/mcp — Next.js route handlers (Streamable HTTP + card)\n *\n * Two things get mounted on a site:\n *\n * app/api/mcp/route.ts → createMcpHandler({ server })\n * app/.well-known/mcp-server-card/... → createMcpServerCardHandler({ ... })\n * app/.well-known/mcp.json/route.ts → the same handler (legacy path)\n *\n * The endpoint is stateless. Every request is self-describing, nothing is\n * cached between calls, and no session is minted — which is exactly what the\n * 2026-07-28 revision asks for and also the only thing that works on a\n * serverless host where consecutive requests hit different instances.\n */\n\nimport {\n dispatch,\n errorOutcome,\n JSONRPC_INVALID_REQUEST,\n JSONRPC_PARSE_ERROR,\n MCP_SUPPORTED_PROTOCOL_VERSIONS,\n MCP_PROTOCOL_VERSION_MODERN,\n type JsonRpcRequest,\n type McpServerDefinition,\n} from './protocol'\nimport {\n buildMcpServerCard,\n type BuildMcpServerCardOptions,\n type McpServerCard,\n} from './serverCard'\n\n// ============================================\n// CORS\n// ============================================\n\n/**\n * Headers the MCP wire uses. `Mcp-Session-Id` and `Last-Event-ID` are legacy\n * (dropped in 2026-07-28) but listed so an older client's preflight passes\n * rather than failing opaquely in the browser.\n */\nconst MCP_REQUEST_HEADERS = [\n 'Content-Type',\n 'Accept',\n 'Authorization',\n 'MCP-Protocol-Version',\n 'Mcp-Method',\n 'Mcp-Name',\n 'Mcp-Session-Id',\n 'Last-Event-ID',\n]\n\nfunction corsHeaders(origin: string): Record<string, string> {\n return {\n 'Access-Control-Allow-Origin': origin,\n 'Access-Control-Allow-Methods': 'POST, OPTIONS',\n 'Access-Control-Allow-Headers': MCP_REQUEST_HEADERS.join(', '),\n 'Access-Control-Expose-Headers': 'MCP-Protocol-Version',\n 'Access-Control-Max-Age': '86400',\n }\n}\n\n// ============================================\n// Header decoding\n// ============================================\n\n/**\n * Undo the spec's Base64 sentinel wrapper: `=?base64?{b64}?=`.\n * Values that aren't wrapped come back untouched.\n */\nexport function decodeHeaderValue(value: string | null): string | null {\n if (!value) return value\n const match = /^=\\?base64\\?(.*)\\?=$/.exec(value)\n if (!match) return value\n try {\n if (typeof atob === 'function') {\n const binary = atob(match[1])\n const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0))\n return new TextDecoder().decode(bytes)\n }\n return Buffer.from(match[1], 'base64').toString('utf8')\n } catch {\n return value\n }\n}\n\n// ============================================\n// MCP endpoint\n// ============================================\n\nexport interface McpHandlerOptions {\n server: McpServerDefinition\n /** Absolute site origin, passed to every tool handler as context. */\n baseUrl?: string\n /**\n * Origins allowed to call the endpoint from a browser. Defaults to `*`.\n *\n * A public marketing MCP server is meant to be called by anyone's agent and\n * serves only data that is already on the public site, so the wildcard is\n * the correct setting, not a lapse. The DNS-rebinding attack the spec's\n * Origin rule defends against is about *localhost* servers, where the\n * browser can reach a private origin the attacker otherwise couldn't.\n * Set this explicitly for any endpoint that gains auth or writes.\n */\n allowedOrigins?: string[] | '*'\n /** Reject modern requests missing the mirror headers. See DispatchOptions. */\n strictHeaders?: boolean\n}\n\nexport interface McpRouteHandlers {\n POST: (request: Request) => Promise<Response>\n GET: (request: Request) => Promise<Response>\n DELETE: (request: Request) => Promise<Response>\n OPTIONS: (request: Request) => Promise<Response>\n}\n\nfunction resolveOrigin(request: Request, allowed: string[] | '*' | undefined): string | null {\n const origin = request.headers.get('origin')\n if (!allowed || allowed === '*') return '*'\n if (!origin) return allowed[0] ?? '*'\n return allowed.includes(origin) ? origin : null\n}\n\nfunction json(body: unknown, status: number, headers: Record<string, string>): Response {\n return new Response(JSON.stringify(body), {\n status,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-store',\n ...headers,\n },\n })\n}\n\n/**\n * Create the Streamable HTTP MCP endpoint.\n *\n * @example\n * ```ts\n * // app/api/mcp/route.ts\n * import { createMcpHandler } from '@sonordev/site-kit/mcp'\n * import { mcpServer } from '@/lib/mcp/server'\n *\n * export const { POST, GET, DELETE, OPTIONS } = createMcpHandler({ server: mcpServer })\n * export const dynamic = 'force-dynamic'\n * ```\n */\nexport function createMcpHandler(options: McpHandlerOptions): McpRouteHandlers {\n const { server } = options\n\n async function POST(request: Request): Promise<Response> {\n const origin = resolveOrigin(request, options.allowedOrigins)\n if (origin === null) {\n // Spec: invalid Origin MUST be 403; the body MAY be a JSON-RPC error\n // with no id.\n return json(\n { jsonrpc: '2.0', error: { code: JSONRPC_INVALID_REQUEST, message: 'Origin not allowed' } },\n 403,\n {},\n )\n }\n const cors = corsHeaders(origin)\n\n let payload: unknown\n try {\n payload = await request.json()\n } catch {\n return json(\n { jsonrpc: '2.0', id: null, error: { code: JSONRPC_PARSE_ERROR, message: 'Parse error' } },\n 400,\n cors,\n )\n }\n\n const headerProtocolVersion = request.headers.get('mcp-protocol-version')\n const headerMethod = decodeHeaderValue(request.headers.get('mcp-method'))\n const headerName = decodeHeaderValue(request.headers.get('mcp-name'))\n\n const dispatchOptions = {\n server,\n context: {\n baseUrl: options.baseUrl,\n request,\n signal: request.signal,\n },\n headerProtocolVersion,\n headerMethod,\n headerName,\n strictHeaders: options.strictHeaders,\n }\n\n // The current revision says the body is a single message. Batching was\n // removed in 2025-06-18, but older clients still send arrays and answering\n // them is a few lines, so we do.\n if (Array.isArray(payload)) {\n const outcomes = await Promise.all(\n payload.map((m) => dispatch(m as JsonRpcRequest, dispatchOptions)),\n )\n const responses = outcomes.map((o) => o.response).filter(Boolean)\n if (responses.length === 0) return new Response(null, { status: 202, headers: cors })\n return json(responses, 200, {\n ...cors,\n 'MCP-Protocol-Version': headerProtocolVersion || MCP_PROTOCOL_VERSION_MODERN,\n })\n }\n\n const message = payload as JsonRpcRequest\n if (!message || typeof message !== 'object' || typeof message.method !== 'string') {\n const bad = errorOutcome(null, JSONRPC_INVALID_REQUEST, 'Invalid Request', 400)\n return json(bad.response, bad.status, cors)\n }\n\n const outcome = await dispatch(message, dispatchOptions)\n\n if (outcome.response === null) {\n // Accepted notification — 202 with no body, per the transport spec.\n return new Response(null, { status: 202, headers: cors })\n }\n\n return json(outcome.response, outcome.status, {\n ...cors,\n 'MCP-Protocol-Version': headerProtocolVersion || MCP_PROTOCOL_VERSION_MODERN,\n })\n }\n\n // 2026-07-28 removed the GET stream and DELETE session teardown. The spec\n // names 405 as the response a modern-only server gives older clients that\n // still try them.\n async function methodNotAllowed(request: Request): Promise<Response> {\n const origin = resolveOrigin(request, options.allowedOrigins) ?? '*'\n return new Response(\n JSON.stringify({\n jsonrpc: '2.0',\n error: {\n code: JSONRPC_INVALID_REQUEST,\n message:\n 'This MCP endpoint is stateless and accepts POST only. The GET stream and session teardown were removed in protocol revision 2026-07-28.',\n },\n }),\n {\n status: 405,\n headers: {\n 'Content-Type': 'application/json',\n Allow: 'POST, OPTIONS',\n ...corsHeaders(origin),\n },\n },\n )\n }\n\n async function OPTIONS(request: Request): Promise<Response> {\n const origin = resolveOrigin(request, options.allowedOrigins)\n if (origin === null) return new Response(null, { status: 403 })\n return new Response(null, { status: 204, headers: corsHeaders(origin) })\n }\n\n return { POST, GET: methodNotAllowed, DELETE: methodNotAllowed, OPTIONS }\n}\n\n// ============================================\n// Server card endpoint\n// ============================================\n\nexport interface McpServerCardHandlerOptions extends BuildMcpServerCardOptions {\n /** Seconds for `Cache-Control: public, max-age=…` (default 3600). */\n maxAge?: number\n}\n\nexport interface McpServerCardRouteHandlers {\n GET: () => Promise<Response>\n OPTIONS: () => Promise<Response>\n}\n\n/**\n * Serve the SEP-2127 server card. Mount at BOTH well-known paths.\n *\n * The handler never reads the incoming Request, so the route stays statically\n * prerenderable — the same constraint the llms.txt handlers document, and for\n * the same reason: touching `request.headers` opts the route into dynamic\n * rendering and it stops being served from the CDN.\n *\n * @example\n * ```ts\n * // app/.well-known/mcp-server-card/route.ts\n * import { createMcpServerCardHandler } from '@sonordev/site-kit/mcp'\n * import { mcpServer, SITE_URL } from '@/lib/mcp/server'\n *\n * export const { GET, OPTIONS } = createMcpServerCardHandler({\n * info: mcpServer.info,\n * tools: mcpServer.tools,\n * baseUrl: SITE_URL,\n * })\n * export const revalidate = 3600\n * ```\n */\nexport function createMcpServerCardHandler(\n options: McpServerCardHandlerOptions,\n): McpServerCardRouteHandlers {\n const card: McpServerCard = buildMcpServerCard(options)\n const body = `${JSON.stringify(card, null, 2)}\\n`\n const maxAge = options.maxAge ?? 3600\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Cache-Control': `public, max-age=${maxAge}`,\n // The card is a discovery document — it is meant to be fetched by anyone.\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, OPTIONS',\n 'Access-Control-Allow-Headers': 'Content-Type',\n }\n\n return {\n GET: async () => new Response(body, { status: 200, headers }),\n OPTIONS: async () => new Response(null, { status: 204, headers }),\n }\n}\n\nexport { MCP_SUPPORTED_PROTOCOL_VERSIONS }\n","/**\n * @sonordev/site-kit/mcp — declarative WebMCP (forms as tools)\n *\n * The half of WebMCP that needs no JavaScript. A `<form>` carrying `toolname`\n * and `tooldescription` IS an agent tool: the browser synthesizes the input\n * schema from the form controls, and the agent fills and submits the real\n * form the human would have used.\n *\n * This matters more than the imperative API for one reason — there is exactly\n * one code path. The agent submits the same form, hits the same validation,\n * files the same CRM record. Nothing can drift, because there is nothing to\n * drift from.\n *\n * Attributes (per the W3C declarative-api explainer):\n * toolname on <form> — the tool's machine name\n * tooldescription on <form> — what it does\n * toolautosubmit on <form> — submit without waiting for the human\n * toolparamdescription on a control — describes that field in the schema\n *\n * These are plain HTML attributes; React 19 passes unknown lowercase\n * attributes straight through to the DOM, so the returned objects spread\n * directly onto JSX.\n */\n\nexport interface DeclarativeToolFormOptions {\n /** Machine name, `snake_case`. Match the remote tool it mirrors. */\n name: string\n /** What submitting this form accomplishes, in one sentence. */\n description: string\n /**\n * Let an agent submit without a human confirming.\n *\n * Default false, and leave it false for anything that creates a record,\n * sends a message, or spends money. A booking request or an audit request\n * should be something the person watching agrees to — `toolautosubmit` on a\n * lead form is how an agent files fifty of them by accident.\n */\n autoSubmit?: boolean\n}\n\nexport interface DeclarativeToolFormAttributes {\n toolname: string\n tooldescription: string\n toolautosubmit?: string\n}\n\n/**\n * Attributes that turn a `<form>` into an agent-callable tool.\n *\n * @example\n * ```tsx\n * <form {...declarativeToolForm({\n * name: 'request_site_audit',\n * description: 'Request a free technical SEO and performance audit of a website.',\n * })} action=\"/api/audit\" method=\"post\">\n * ```\n */\nexport function declarativeToolForm(\n options: DeclarativeToolFormOptions,\n): DeclarativeToolFormAttributes {\n const attributes: DeclarativeToolFormAttributes = {\n toolname: options.name,\n tooldescription: options.description,\n }\n // Boolean attribute: present means true. Omit it entirely for false —\n // `toolautosubmit=\"false\"` is still *present*, and so still true.\n if (options.autoSubmit) attributes.toolautosubmit = ''\n return attributes\n}\n\nexport interface DeclarativeToolFieldAttributes {\n toolparamdescription: string\n}\n\n/**\n * Describe one form control for the synthesized input schema.\n *\n * The control's `name` becomes the schema property and `required` marks it\n * required, so this only supplies the prose — but the prose is what the model\n * reads to decide what to put in the field.\n *\n * @example\n * ```tsx\n * <input\n * type=\"url\"\n * name=\"url\"\n * required\n * {...declarativeToolField('The full URL of the website to audit, including https://')}\n * />\n * ```\n */\nexport function declarativeToolField(description: string): DeclarativeToolFieldAttributes {\n return { toolparamdescription: description }\n}\n"]}