@mycadet/web 0.0.1 → 0.12.6-dev.202610081023.3a27b77

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 (503) hide show
  1. package/README.md +222 -3
  2. package/dist/THIRD-PARTY-LICENSES.md +486 -0
  3. package/dist/activation-mascots.svg +115 -0
  4. package/dist/activation-pill-mascots.svg +74 -0
  5. package/dist/assets/DMMono-Medium-BM4x6WFW.ttf +0 -0
  6. package/dist/assets/DMMono-Regular-DbtWzYYn.ttf +0 -0
  7. package/dist/assets/DMSans-Regular-C1Em6CGS.ttf +0 -0
  8. package/dist/assets/InstrumentSerif-Regular-DXer19By.ttf +0 -0
  9. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  10. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  11. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  12. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  13. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  14. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  15. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  16. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  17. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  18. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  19. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  20. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  21. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  22. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  23. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  24. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  25. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  26. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  27. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  28. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  29. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  30. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  31. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  32. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  33. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  34. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  35. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  36. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  37. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  38. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  39. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  40. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  41. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  44. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  45. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  46. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  47. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  48. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  49. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  50. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  51. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  52. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  53. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  54. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  55. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  56. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  57. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  58. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  59. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  60. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  61. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  62. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  63. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  64. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  65. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  66. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  67. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  68. package/dist/assets/a2a-invite-Cb5L7aFX.js +1 -0
  69. package/dist/assets/about-page-CB5pBqUQ.js +1 -0
  70. package/dist/assets/account-9ifOctCs.js +1 -0
  71. package/dist/assets/account-C59_ZVEY.js +1 -0
  72. package/dist/assets/account-CnqVfERR.js +1 -0
  73. package/dist/assets/account-DVdolNcP.js +1 -0
  74. package/dist/assets/account-page-BzMhFe10.js +1 -0
  75. package/dist/assets/account-shell-FXKRg1fk.js +1 -0
  76. package/dist/assets/acp-run-detail-panel-Ddfvk9dJ.js +3 -0
  77. package/dist/assets/activation-C91KPzrh.js +1 -0
  78. package/dist/assets/activation-Dd7eAIHs.js +1 -0
  79. package/dist/assets/activation-ReimSfhn.js +1 -0
  80. package/dist/assets/activation-list-route-ChRtdypT.js +1 -0
  81. package/dist/assets/activation-tasks-CcT0Rqfx.js +1 -0
  82. package/dist/assets/activation-tasks-CjUCWfbQ.js +1 -0
  83. package/dist/assets/activation-tasks-rViOqW7C.js +1 -0
  84. package/dist/assets/activation-tasks-wtMwJ0EV.js +1 -0
  85. package/dist/assets/activation-yoBQ36AY.js +1 -0
  86. package/dist/assets/activity-redirect-page-3lAJfb78.js +1 -0
  87. package/dist/assets/activity-steps-panel-DMe6vxVH.js +1 -0
  88. package/dist/assets/add-credits-modal-7-AFM9IQ.js +1 -0
  89. package/dist/assets/add-credits-modal-_SwGWD1A.js +1 -0
  90. package/dist/assets/ai-page-DpzMA4Hh.js +1 -0
  91. package/dist/assets/all-chats-page-route-0m3TBFf6.js +1 -0
  92. package/dist/assets/android-billing-handoff-Dv_rAEHd.js +1 -0
  93. package/dist/assets/animated-stat-square-DP1YC8Yc.js +1 -0
  94. package/dist/assets/api-key-screen-DtEu2ScO.js +1 -0
  95. package/dist/assets/app-BXG8yk9C.css +1 -0
  96. package/dist/assets/app-CwqzrbFf.js +401 -0
  97. package/dist/assets/app-info-S-9J8w_J.js +1 -0
  98. package/dist/assets/app-types-DLSc4FO-.js +1 -0
  99. package/dist/assets/archive-redirect-page-BbbT1uRr.js +1 -0
  100. package/dist/assets/assistant-handle-modal-BhhjSLFN.js +1 -0
  101. package/dist/assets/assistant-inbox-CAvCHzi9.js +1 -0
  102. package/dist/assets/assistant-inbox-CQdSXLLi.js +1 -0
  103. package/dist/assets/assistant-inbox-DslyrhIn.js +1 -0
  104. package/dist/assets/assistant-inbox-page-route-D1pFmm0f.js +8 -0
  105. package/dist/assets/assistant-inbox-qWeVmA1L.js +1 -0
  106. package/dist/assets/assistant-status-panel-C5ruONrB.js +1 -0
  107. package/dist/assets/auth-store-BvEKpM_3.js +1 -0
  108. package/dist/assets/auth-welcome-screen-D46CdsFl.js +1 -0
  109. package/dist/assets/avatar-bundled-components-DR8fQnrQ.js +1 -0
  110. package/dist/assets/avatar-random-CcqNsIy7.js +2 -0
  111. package/dist/assets/await-org-header-settled-CD30PJhg.js +1 -0
  112. package/dist/assets/background-task-detail-panel-C2GGDXK-.js +1 -0
  113. package/dist/assets/billing-page-DY1DoUsN.js +3 -0
  114. package/dist/assets/billing-redirect-page-BB_ywQeI.js +1 -0
  115. package/dist/assets/bookmarks-page-Dbrc_CDX.js +1 -0
  116. package/dist/assets/build.umd-B0ATW5UM.js +7 -0
  117. package/dist/assets/bundle-confirm-page-CPFiWVE3.js +1 -0
  118. package/dist/assets/channel-transcript-panel-DBjlA1Gm.js +1 -0
  119. package/dist/assets/channels-BTbV4MWS.js +9 -0
  120. package/dist/assets/channels-Bp2JIVff.js +9 -0
  121. package/dist/assets/channels-D1SpbqXl.js +9 -0
  122. package/dist/assets/channels-D6K1KGr-.js +9 -0
  123. package/dist/assets/channels-page-route-_CUWKKSI.js +1 -0
  124. package/dist/assets/chat-6mEQwXrT.js +5 -0
  125. package/dist/assets/chat-Bi8jqwGX.js +5 -0
  126. package/dist/assets/chat-D2mr40mK.js +5 -0
  127. package/dist/assets/chat-DI0DKw32.js +5 -0
  128. package/dist/assets/chat-info-panel-CVK22vfL.js +1 -0
  129. package/dist/assets/checkout-continuation-CVaALTqi.js +1 -0
  130. package/dist/assets/checkout-page-DucRi2nu.js +1 -0
  131. package/dist/assets/checkout-return-target-D-rQ8UA8.js +1 -0
  132. package/dist/assets/command-palette-B1DNAtkf.js +1 -0
  133. package/dist/assets/command-palette-CkB0y8U4.js +1 -0
  134. package/dist/assets/command-palette-window-page-CFJ7MtFn.js +1 -0
  135. package/dist/assets/common-Bl28_zx0.js +1 -0
  136. package/dist/assets/common-CjxF28nX.js +1 -0
  137. package/dist/assets/common-DFAGeqca.js +1 -0
  138. package/dist/assets/common-ENHobhEF.js +1 -0
  139. package/dist/assets/community-page-BvU7QY1-.js +1 -0
  140. package/dist/assets/companion-accent-C6L1Km-E.js +1 -0
  141. package/dist/assets/companion-dock-zones-page-BE0Wj1Ft.js +1 -0
  142. package/dist/assets/companion-layout-Cw05HJM6.js +1 -0
  143. package/dist/assets/companion-popover-CIF_tZn4.js +1 -0
  144. package/dist/assets/companion-popover-page-6c8L5Piz.js +1 -0
  145. package/dist/assets/companion-surface-CxdvLyJt.js +1 -0
  146. package/dist/assets/companion-surface-page-D7K_cXPo.js +1 -0
  147. package/dist/assets/companion-tour-entry-DhcdrDXL.js +1 -0
  148. package/dist/assets/companion-watch-frame-page-CIv820YV.js +1 -0
  149. package/dist/assets/connect-page-CVKqKk8P.js +1 -0
  150. package/dist/assets/consent-controls-Cez9oaPe.js +1 -0
  151. package/dist/assets/contacts-BTmOfEVL.js +1 -0
  152. package/dist/assets/contacts-Cxz-DyYF.js +1 -0
  153. package/dist/assets/contacts-DgC-8PHB.js +1 -0
  154. package/dist/assets/contacts-gateway-DI5Kn8D9.js +1 -0
  155. package/dist/assets/contacts-mijLgegD.js +1 -0
  156. package/dist/assets/contacts-page-route-dHY7bXHb.js +1 -0
  157. package/dist/assets/copy-button-CBa1Xsz8.js +1 -0
  158. package/dist/assets/credential-entry-page-CFbtAWfA.js +1 -0
  159. package/dist/assets/credential-requests-CmFaXPwz.js +1 -0
  160. package/dist/assets/credential-requests-D3J3i5oa.js +1 -0
  161. package/dist/assets/credential-requests-gl4lfjL4.js +1 -0
  162. package/dist/assets/credential-requests-h908NRpv.js +1 -0
  163. package/dist/assets/credentials-page-DcsJCfr1.js +1 -0
  164. package/dist/assets/csv-preview-8v1DfyrT.js +1 -0
  165. package/dist/assets/danger-zone-redirect-page-DY-Jq2Zl.js +1 -0
  166. package/dist/assets/debug-page-DujNjASA.js +4 -0
  167. package/dist/assets/debug-page-TdnZ7DQy.css +1 -0
  168. package/dist/assets/definitions-BUCExH-9.js +1 -0
  169. package/dist/assets/definitions-DpZNNWA7.js +1 -0
  170. package/dist/assets/deploy-dialogs-CXWBu3Bb.js +1 -0
  171. package/dist/assets/deploy-dialogs-Ci-YAins.js +1 -0
  172. package/dist/assets/desktop-preview-content-DQkv8ZUT.js +2 -0
  173. package/dist/assets/desktop-status-Dy_rNzx5.js +1 -0
  174. package/dist/assets/desktop-viewer-BjgXYPX-.js +5 -0
  175. package/dist/assets/detail-card-lWS_EV_0.js +1 -0
  176. package/dist/assets/detail-panel-stop-button-DXbc7SNQ.js +1 -0
  177. package/dist/assets/detail-primitives-COKNzP54.js +1 -0
  178. package/dist/assets/developer-page-DuzJjwyk.js +1 -0
  179. package/dist/assets/devices-redirect-page-BLu1rQ8I.js +1 -0
  180. package/dist/assets/dictation-overlay-page-DmGoKS_E.js +1 -0
  181. package/dist/assets/diff-rows-DD2i4Iv8.js +1 -0
  182. package/dist/assets/document-load-BflV81J3.js +1 -0
  183. package/dist/assets/document-load-WGIPqo3G.js +1 -0
  184. package/dist/assets/document-viewer-page-CQ-O4nnM.js +1 -0
  185. package/dist/assets/ellipsis-vertical-DXwTXFid.js +1 -0
  186. package/dist/assets/emails-page-BszxVPSf.js +1 -0
  187. package/dist/assets/emoji-catalog-data-jMbpElmp.js +1 -0
  188. package/dist/assets/esm-3p9EjCxv.js +1 -0
  189. package/dist/assets/esm-81hjkY91.js +2 -0
  190. package/dist/assets/esm-B7eDjVec.js +1 -0
  191. package/dist/assets/esm-Bg5pAsee.js +2 -0
  192. package/dist/assets/esm-Bo2YRP0H.js +2 -0
  193. package/dist/assets/esm-Bogq5bK5.js +1 -0
  194. package/dist/assets/esm-OhpYdKED.js +1 -0
  195. package/dist/assets/esm-Qn-Ugt7M.js +2 -0
  196. package/dist/assets/esm-p-XTJuu2.js +2 -0
  197. package/dist/assets/esm-zzDLmzCb.js +2 -0
  198. package/dist/assets/file-diff-view-BqdKCDqS.js +3 -0
  199. package/dist/assets/file-view-mode-Djm5ZazK.js +3 -0
  200. package/dist/assets/format-countdown-jXi9FZ2J.js +1 -0
  201. package/dist/assets/format-file-size-zh148z6P.js +1 -0
  202. package/dist/assets/general-page-BPWtCGvi.js +2 -0
  203. package/dist/assets/hatching-screen-Cpp5Tg1t.js +1 -0
  204. package/dist/assets/home-BI-fzzA0.js +1 -0
  205. package/dist/assets/home-BZGFmZ0D.js +1 -0
  206. package/dist/assets/home-CM9kRnjx.js +1 -0
  207. package/dist/assets/home-D4Knhe9B.js +1 -0
  208. package/dist/assets/hosting-screen-Sgf2HwYg.js +1 -0
  209. package/dist/assets/icons-Dwi7aA1Y.js +1 -0
  210. package/dist/assets/identity-page-route-D4uwxAQ0.js +7 -0
  211. package/dist/assets/inspect-page-CkkqXMKP.js +8 -0
  212. package/dist/assets/integrations-page-CuRXFl5Y.js +1 -0
  213. package/dist/assets/intelligence-BzXuH7C3.js +5 -0
  214. package/dist/assets/intelligence-CRQIvpoS.js +5 -0
  215. package/dist/assets/intelligence-D6JLt55y.js +5 -0
  216. package/dist/assets/intelligence-EUWmzIF9.js +5 -0
  217. package/dist/assets/intelligence-layout-VRnCbIwb.js +1 -0
  218. package/dist/assets/intelligence-layout-slots-store-0pTDdylK.js +1 -0
  219. package/dist/assets/is-record-VoZP3nYK.js +1 -0
  220. package/dist/assets/jszip.min-4SBnqRxq.js +2 -0
  221. package/dist/assets/katex-CfUWwwYf.css +1 -0
  222. package/dist/assets/keyboard-shortcuts-redirect-page-BQlTLdsA.js +1 -0
  223. package/dist/assets/latest-assistant-text-2elAy0dG.js +24 -0
  224. package/dist/assets/library-B5UBdwOv.js +1 -0
  225. package/dist/assets/library-CGTnSkcA.js +1 -0
  226. package/dist/assets/library-DEPrqINm.js +1 -0
  227. package/dist/assets/library-DNEpT1eD.js +1 -0
  228. package/dist/assets/library-detail-page-B-EVkAjl.js +1 -0
  229. package/dist/assets/library-page-B25m2pmq.js +1 -0
  230. package/dist/assets/link-click-BJkFvMTf.js +1 -0
  231. package/dist/assets/list-detail-navigation-Bc3JpBO4.js +1 -0
  232. package/dist/assets/local-mode-Bdah2ONM.js +1 -0
  233. package/dist/assets/login-page-xnhw1RiU.js +1 -0
  234. package/dist/assets/logout-page-BdpvdBtF.js +1 -0
  235. package/dist/assets/logs-BKfLoluH.js +1 -0
  236. package/dist/assets/logs-BufZKV9C.js +1 -0
  237. package/dist/assets/logs-CAOgfUOH.js +1 -0
  238. package/dist/assets/logs-CW8mXm9O.js +1 -0
  239. package/dist/assets/logs-layout-uz-x1e70.js +1 -0
  240. package/dist/assets/machine-sizes-DZLd-6DF.js +1 -0
  241. package/dist/assets/managed-export-D_4_p4a3.js +1 -0
  242. package/dist/assets/markdown-preview-BSdnj6yk.js +1 -0
  243. package/dist/assets/media-preview-BSlmc16B.js +1 -0
  244. package/dist/assets/memory-page-route-jdx--Pa_.js +2 -0
  245. package/dist/assets/memory-router-playground-page-B7dcxvqq.js +1 -0
  246. package/dist/assets/message-files-panel-5-HCgUE8.js +1 -0
  247. package/dist/assets/mutation-error-BJDINriN.js +1 -0
  248. package/dist/assets/native-attachment-pickers-BL2SDdtg.js +1 -0
  249. package/dist/assets/native-file-BqJWmXTm.js +1 -0
  250. package/dist/assets/notifications-page-BHFv1q0R.js +1 -0
  251. package/dist/assets/oauth-complete-page-D4OFmuD2.js +105 -0
  252. package/dist/assets/oauth-popup-complete-page-Bfph03iM.js +105 -0
  253. package/dist/assets/onboarding-BnvKZweH.js +1 -0
  254. package/dist/assets/onboarding-ClaQ9TbS.js +1 -0
  255. package/dist/assets/onboarding-D5ZYk-vE.js +1 -0
  256. package/dist/assets/onboarding-DmjIVIBS.js +1 -0
  257. package/dist/assets/onboarding-step-layout-Vb0tyqKa.js +1 -0
  258. package/dist/assets/paired-platform-identity-CGnO45_q.js +1 -0
  259. package/dist/assets/pairing-page-C-PTs7cy.js +1 -0
  260. package/dist/assets/password-reset-page-cdeuTnPx.js +1 -0
  261. package/dist/assets/pcm-downsample-worklet-CwNZrVLe.js +1 -0
  262. package/dist/assets/pdf-C1Mi1b5E.js +56 -0
  263. package/dist/assets/pdf-file-preview-RLJfGBN5.js +1 -0
  264. package/dist/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
  265. package/dist/assets/peeking-eyes-CYWm-sDJ.js +1 -0
  266. package/dist/assets/permission-guide-page-D6FWkh5j.css +1 -0
  267. package/dist/assets/permission-guide-page-X3vmBH1i.js +1 -0
  268. package/dist/assets/permission-setup-qca9hY0O.js +1 -0
  269. package/dist/assets/personality-page-BeVLUmr9.js +1 -0
  270. package/dist/assets/personality-page-CXghu3qY.js +1 -0
  271. package/dist/assets/personality-sliders-DXsveApd.js +1 -0
  272. package/dist/assets/plans-page-DEx4ZEkr.js +1 -0
  273. package/dist/assets/platform-loopback-page-iVfYiqwj.js +1 -0
  274. package/dist/assets/plugin-attribution-CTeP_GNV.js +1 -0
  275. package/dist/assets/plugin-detail-page-DpceQnSE.js +1 -0
  276. package/dist/assets/plugins-page-DWIO1-fX.js +1 -0
  277. package/dist/assets/plugins-surface-CX9A0G4N.js +1 -0
  278. package/dist/assets/preview-error-WVRxj9kK.js +1 -0
  279. package/dist/assets/privacy-page-BWimyMYo.js +1 -0
  280. package/dist/assets/privacy-screen-Ct8wjNPF.js +1 -0
  281. package/dist/assets/profile-card-D_f9qUFv.js +1 -0
  282. package/dist/assets/provider-callback-page-CqeaIP5k.js +1 -0
  283. package/dist/assets/provider-key-DjSFVZZ-.js +1 -0
  284. package/dist/assets/provider-signup-page-aHY_EhPL.js +1 -0
  285. package/dist/assets/provisioning-targets-DKc5ORwj.js +1 -0
  286. package/dist/assets/quick-input-page-jpk5rKXu.js +1 -0
  287. package/dist/assets/radio-card-nav-d-b41vKg.js +1 -0
  288. package/dist/assets/react-BJ4PZBJN.js +12 -0
  289. package/dist/assets/rehype-katex-CzhvmWzz.js +259 -0
  290. package/dist/assets/remote-web-B4U_dWd7.js +1 -0
  291. package/dist/assets/remote-web-BDCxnZ9y.js +1 -0
  292. package/dist/assets/remote-web-CVtBV7uq.js +1 -0
  293. package/dist/assets/remote-web-N0Odpq2-.js +1 -0
  294. package/dist/assets/research-mock-page-cXhCXlnq.js +1 -0
  295. package/dist/assets/research-onboarding-route-BP8slwTM.js +50 -0
  296. package/dist/assets/review-terms-screen-B8DpfPms.js +1 -0
  297. package/dist/assets/rolldown-runtime-BM3Ffeng.js +1 -0
  298. package/dist/assets/routes-wJSwFH9l.js +1 -0
  299. package/dist/assets/schedules-Bk7XGnqS.js +1 -0
  300. package/dist/assets/schedules-CGU7CKaM.js +1 -0
  301. package/dist/assets/schedules-Cp6NtEFb.js +1 -0
  302. package/dist/assets/schedules-J687h0Fh.js +1 -0
  303. package/dist/assets/schedules-JnprnWDo.js +1 -0
  304. package/dist/assets/schedules-page-CtIUz36s.js +1 -0
  305. package/dist/assets/security-redirect-page-D494rPh_.js +1 -0
  306. package/dist/assets/select-assistant-screen-D3NHx0fP.js +1 -0
  307. package/dist/assets/self-hosted-servers-u4-ZQjXb.js +1 -0
  308. package/dist/assets/service-form-controls-Bftrx7Mu.js +1 -0
  309. package/dist/assets/setting-row-oGk_qX0f.js +1 -0
  310. package/dist/assets/settings-BAUjyIUb.js +5 -0
  311. package/dist/assets/settings-BEOMP91r.js +5 -0
  312. package/dist/assets/settings-BYrm7GEM.js +5 -0
  313. package/dist/assets/settings-C1JmohiF.js +5 -0
  314. package/dist/assets/settings-divider-BG062qVE.js +1 -0
  315. package/dist/assets/settings-layout-DRDDJscG.js +1 -0
  316. package/dist/assets/share-feedback-modal-B9x3V8Gi.js +1 -0
  317. package/dist/assets/share-feedback-modal-C3FpRro4.js +2 -0
  318. package/dist/assets/sidebar-tree-_vU-v_tk.js +1 -0
  319. package/dist/assets/signup-onboarding-handoff-aEYZuuHr.js +1 -0
  320. package/dist/assets/signup-page-D-KwKdjC.js +1 -0
  321. package/dist/assets/signup-shell-DaA0Rkxz.js +1 -0
  322. package/dist/assets/signup-shell-iu1RtjJg.css +1 -0
  323. package/dist/assets/skill-detail-page-CmO6_rS2.js +2 -0
  324. package/dist/assets/skill-detail-panel-CtVOvX8y.js +1 -0
  325. package/dist/assets/skill-icon-H-0SEc1H.js +1 -0
  326. package/dist/assets/skill-removal-dialog-AiL8UR6B.js +1 -0
  327. package/dist/assets/skills-page-BGhZ224Q.js +1 -0
  328. package/dist/assets/sounds-page-C55ejZ9q.js +1 -0
  329. package/dist/assets/start-screen-Bdw1y_Sy.js +1 -0
  330. package/dist/assets/status-badge-pill-CND5rJPR.js +1 -0
  331. package/dist/assets/step-detail-header-OvZIZ_hN.js +1 -0
  332. package/dist/assets/stt-language-picker-modal-CxP5ZNXV.js +1 -0
  333. package/dist/assets/subagent-detail-panel-NrIMuVOE.js +1 -0
  334. package/dist/assets/superpowers-page-CanTF9dB.js +1 -0
  335. package/dist/assets/system-events-page-DkvlTHFB.js +1 -0
  336. package/dist/assets/system-events-redirect-page-HGFgRZnS.js +1 -0
  337. package/dist/assets/tabular-grid-D-rK6Urd.js +4 -0
  338. package/dist/assets/teleport-gateway-client-DTMp6hK0.js +1 -0
  339. package/dist/assets/terminal-BV6xg9ZA.js +1 -0
  340. package/dist/assets/terminal-BjOF3LBT.js +1 -0
  341. package/dist/assets/terminal-CYHsl1AH.js +1 -0
  342. package/dist/assets/terminal-Cxm0NKaj.js +1 -0
  343. package/dist/assets/text-preview-DodpvhBk.js +1 -0
  344. package/dist/assets/theme-stage-page-BdViPYyc.js +1 -0
  345. package/dist/assets/tiptap-document-editor-BXmZeNa9.js +323 -0
  346. package/dist/assets/tool-detail-panel-Bc1cp1aw.js +1 -0
  347. package/dist/assets/tool-detail-panel-QFcw3_is.js +16 -0
  348. package/dist/assets/trait-cycle-row-Ck7HxbJE.js +1 -0
  349. package/dist/assets/upgrade-cancel-page-DX-JNOcM.js +1 -0
  350. package/dist/assets/upgrade-success-page-DOzCZzZm.js +1 -0
  351. package/dist/assets/usage-redirect-page-BGhRgxwl.js +1 -0
  352. package/dist/assets/usage-window-Dk_XVv4Y.js +1 -0
  353. package/dist/assets/use-app-delete-Dl30EH4x.js +1 -0
  354. package/dist/assets/use-assistant-identity-details-CWI0e_y_.js +1 -0
  355. package/dist/assets/use-async-read-deCq0DBg.js +1 -0
  356. package/dist/assets/use-channel-trust-floors-2hclMfGD.js +1 -0
  357. package/dist/assets/use-checkout-dismiss-refresh-D9_Q6waf.js +1 -0
  358. package/dist/assets/use-debounced-value-CPLEzsNt.js +1 -0
  359. package/dist/assets/use-edge-swipe-back-DT-9-eHs.js +1 -0
  360. package/dist/assets/use-hotkey-recorder-C8jylWeK.js +1 -0
  361. package/dist/assets/use-invite-link-dialog-B4DWPtt2.js +1 -0
  362. package/dist/assets/use-plugins-list-O_srhYRq.js +1 -0
  363. package/dist/assets/use-return-to-short-circuit-DcBMxWLc.js +1 -0
  364. package/dist/assets/use-side-list-room-ZV3Ebn00.js +1 -0
  365. package/dist/assets/use-skill-actions-Cnfs7Ss2.js +1 -0
  366. package/dist/assets/use-skill-detail-files-CmU-F530.js +1 -0
  367. package/dist/assets/use-supports-credentials-settings-Byz38P_8.js +1 -0
  368. package/dist/assets/use-truncated-blob-text-D16QRG1n.js +1 -0
  369. package/dist/assets/vendor-CezcraPH.js +125 -0
  370. package/dist/assets/voice-page-teUFHIpC.js +1 -0
  371. package/dist/assets/wake-detail-panel-DDZGrNBx.js +1 -0
  372. package/dist/assets/weather-forecast-display-BIavxof5.js +1 -0
  373. package/dist/assets/web-BA_SEIKY.js +1 -0
  374. package/dist/assets/web-BGBSTUE5.js +1 -0
  375. package/dist/assets/web-BOoSclHV.js +1 -0
  376. package/dist/assets/web-Cnoc-36d.js +1 -0
  377. package/dist/assets/web-D36IPmll.js +1 -0
  378. package/dist/assets/web-DaDJItvE.js +1 -0
  379. package/dist/assets/web-GjGo6RCY.js +1 -0
  380. package/dist/assets/web-ZoqYnuKe.js +1 -0
  381. package/dist/assets/web-mirSqNWL.js +1 -0
  382. package/dist/assets/welcome-screen-DK1SS4Wo.js +1 -0
  383. package/dist/assets/workflow-detail-panel-mH9E0KPC.js +1 -0
  384. package/dist/assets/workspace-Bcvg2VfS.js +1 -0
  385. package/dist/assets/workspace-BscXtFFU.js +1 -0
  386. package/dist/assets/workspace-C-huZiu_.js +1 -0
  387. package/dist/assets/workspace-P8HaFDdu.js +1 -0
  388. package/dist/assets/workspace-page-B69xlDXE.js +1 -0
  389. package/dist/assets/workspace-page-Cdm9g2X4.css +1 -0
  390. package/dist/assets/xlsx-preview-ScDGohb3.js +1 -0
  391. package/dist/assets/xterm-Pyzkt_-B.js +7 -0
  392. package/dist/assets/xterm-addon-fit-HaY_WHvm.js +1 -0
  393. package/dist/cadet-logo-white.svg +10 -0
  394. package/dist/cadet-logo.svg +8 -0
  395. package/dist/cadet-scene-cut.mp4 +0 -0
  396. package/dist/favicon.svg +28 -0
  397. package/dist/fonts/InstrumentSerif-Regular.ttf +0 -0
  398. package/dist/images/integrations/airtable.svg +1 -0
  399. package/dist/images/integrations/amplemarket-mcp.png +0 -0
  400. package/dist/images/integrations/apple-notes.svg +1 -0
  401. package/dist/images/integrations/asana.svg +1 -0
  402. package/dist/images/integrations/ashby-mcp.png +0 -0
  403. package/dist/images/integrations/atlassian-mcp.png +0 -0
  404. package/dist/images/integrations/attio-mcp.png +0 -0
  405. package/dist/images/integrations/brex-mcp.png +0 -0
  406. package/dist/images/integrations/calendly-mcp.png +0 -0
  407. package/dist/images/integrations/calendly.svg +1 -0
  408. package/dist/images/integrations/circleback-mcp.png +0 -0
  409. package/dist/images/integrations/clay-mcp.png +0 -0
  410. package/dist/images/integrations/craft-mcp.png +0 -0
  411. package/dist/images/integrations/customer-io-mcp.png +0 -0
  412. package/dist/images/integrations/discord.svg +1 -0
  413. package/dist/images/integrations/dropbox.svg +1 -0
  414. package/dist/images/integrations/eventbrite.svg +1 -0
  415. package/dist/images/integrations/excel.svg +1 -0
  416. package/dist/images/integrations/fathom-mcp.png +0 -0
  417. package/dist/images/integrations/figma.svg +8 -0
  418. package/dist/images/integrations/fireflies-mcp.png +0 -0
  419. package/dist/images/integrations/gamma-mcp.png +0 -0
  420. package/dist/images/integrations/github-dark.svg +1 -0
  421. package/dist/images/integrations/github.svg +1 -0
  422. package/dist/images/integrations/gmail.svg +7 -0
  423. package/dist/images/integrations/google-calendar.svg +11 -0
  424. package/dist/images/integrations/google-drive.svg +8 -0
  425. package/dist/images/integrations/guru-mcp.png +0 -0
  426. package/dist/images/integrations/hubspot.svg +1 -0
  427. package/dist/images/integrations/interactive-brokers-mcp.png +0 -0
  428. package/dist/images/integrations/intercom-mcp.png +0 -0
  429. package/dist/images/integrations/jira.svg +4 -0
  430. package/dist/images/integrations/jotform-mcp.png +0 -0
  431. package/dist/images/integrations/juicebox-mcp.png +0 -0
  432. package/dist/images/integrations/klaviyo-mcp.png +0 -0
  433. package/dist/images/integrations/linear-light-logo.svg +1 -0
  434. package/dist/images/integrations/linear-mcp.png +0 -0
  435. package/dist/images/integrations/mailerlite-mcp.png +0 -0
  436. package/dist/images/integrations/meltwater-mcp.png +0 -0
  437. package/dist/images/integrations/mem-mcp.png +0 -0
  438. package/dist/images/integrations/mercury-mcp.png +0 -0
  439. package/dist/images/integrations/monday.svg +1 -0
  440. package/dist/images/integrations/navan-mcp.png +0 -0
  441. package/dist/images/integrations/notion-mcp.png +0 -0
  442. package/dist/images/integrations/notion.svg +7 -0
  443. package/dist/images/integrations/otter-mcp.png +0 -0
  444. package/dist/images/integrations/outlook.png +0 -0
  445. package/dist/images/integrations/profound-mcp.png +0 -0
  446. package/dist/images/integrations/quickbooks.svg +1 -0
  447. package/dist/images/integrations/ramp-mcp.png +0 -0
  448. package/dist/images/integrations/readwise-mcp.png +0 -0
  449. package/dist/images/integrations/salesforce.svg +5 -0
  450. package/dist/images/integrations/sanity.svg +1 -0
  451. package/dist/images/integrations/semrush-mcp.png +0 -0
  452. package/dist/images/integrations/sentry-mcp.png +0 -0
  453. package/dist/images/integrations/shopify.svg +1 -0
  454. package/dist/images/integrations/slack.svg +22 -0
  455. package/dist/images/integrations/spotify.svg +1 -0
  456. package/dist/images/integrations/stripe-link.svg +1 -0
  457. package/dist/images/integrations/stripe-mcp.png +0 -0
  458. package/dist/images/integrations/telegram.svg +1 -0
  459. package/dist/images/integrations/todoist-mcp.png +0 -0
  460. package/dist/images/integrations/todoist.svg +1 -0
  461. package/dist/images/integrations/typeform-mcp.png +0 -0
  462. package/dist/images/integrations/upwork-mcp.png +0 -0
  463. package/dist/images/integrations/webull-mcp.png +0 -0
  464. package/dist/images/integrations/wix-mcp.png +0 -0
  465. package/dist/images/integrations/x.svg +1 -0
  466. package/dist/images/prior-assistants/chatgpt.svg +3 -0
  467. package/dist/images/prior-assistants/claude.svg +3 -0
  468. package/dist/images/prior-assistants/copilot.svg +3 -0
  469. package/dist/images/prior-assistants/gemini.svg +10 -0
  470. package/dist/images/prior-assistants/hermes.png +0 -0
  471. package/dist/images/prior-assistants/manus.svg +6 -0
  472. package/dist/images/prior-assistants/openclaw.png +0 -0
  473. package/dist/index.html +371 -0
  474. package/dist/login-background-characters.svg +41 -0
  475. package/dist/skills/amazon/assets/icon.svg +38 -0
  476. package/dist/skills/api-mapping/assets/icon.svg +18 -0
  477. package/dist/skills/cadet-github-app-setup/assets/icon.svg +1 -0
  478. package/dist/skills/chat-complex-documents/assets/icon.svg +26 -0
  479. package/dist/skills/deepgram-voice/assets/icon.svg +1 -0
  480. package/dist/skills/discord-app-setup/assets/icon.svg +1 -0
  481. package/dist/skills/doordash/assets/icon.svg +1 -0
  482. package/dist/skills/elevenlabs-voice/assets/icon.svg +1 -0
  483. package/dist/skills/frontend-design/assets/icon.svg +16 -0
  484. package/dist/skills/gmail/assets/icon.svg +1 -0
  485. package/dist/skills/google-calendar/assets/icon.svg +1 -0
  486. package/dist/skills/inbox-cleanup/assets/icon.svg +1 -0
  487. package/dist/skills/inbox-management/assets/icon.svg +1 -0
  488. package/dist/skills/linear-app-setup/assets/icon.svg +1 -0
  489. package/dist/skills/macos-automation/assets/icon.svg +12 -0
  490. package/dist/skills/mailgun-setup/assets/icon.svg +1 -0
  491. package/dist/skills/notion/assets/icon.svg +1 -0
  492. package/dist/skills/outlook/assets/icon.svg +2 -0
  493. package/dist/skills/outlook-calendar/assets/icon.svg +2 -0
  494. package/dist/skills/slack/assets/icon.svg +6 -0
  495. package/dist/skills/start-the-day/assets/icon.svg +13 -0
  496. package/dist/skills/stripe-app-setup/assets/icon.svg +1 -0
  497. package/dist/skills/stripe-link-wallet/assets/icon.svg +1 -0
  498. package/dist/skills/telegram-setup/assets/icon.svg +1 -0
  499. package/dist/skills/twilio-setup/assets/icon.svg +1 -0
  500. package/dist/skills/vercel-token-setup/assets/icon.svg +1 -0
  501. package/dist/skills/voice-setup/assets/icon.svg +20 -0
  502. package/dist/skills/weather/assets/icon.svg +24 -0
  503. package/package.json +7 -7
package/README.md CHANGED
@@ -1,5 +1,224 @@
1
- # MyCadet
1
+ # clients/web
2
2
 
3
- Placeholder reserving the `mycadet` package name for [MyCadet](https://mycadet.ai).
3
+ Vite + [React Router v7](https://reactrouter.com/) SPA for the
4
+ Cadet assistant web app (chat, settings, library, docs).
4
5
 
5
- A Python SDK will ship here in the future. Do not depend on this package yet.
6
+ ## Stack
7
+
8
+ - [Vite](https://vite.dev/) for dev server and build.
9
+ - [React 19](https://react.dev/) +
10
+ [React Router v7](https://reactrouter.com/start/modes) in
11
+ **library / data-router mode** (`createBrowserRouter` +
12
+ `<RouterProvider>`).
13
+ - [Zustand](https://zustand.docs.pmnd.rs/) for shared client state
14
+ (messages, streaming, interactions, conversations). See
15
+ [`docs/STATE_MANAGEMENT.md`](./docs/STATE_MANAGEMENT.md) for store patterns.
16
+ - [TanStack React Query](https://tanstack.com/query/latest) for server
17
+ state (API calls, caching, mutations).
18
+ - [HeyAPI](https://heyapi.dev/) for OpenAPI client generation with
19
+ React Query plugin.
20
+ - TypeScript with `Bundler` module resolution — no `.js` extensions on
21
+ imports (bundler-only package; see [`clients/AGENTS.md`](../AGENTS.md)).
22
+ - Bun for dependency management; self-contained `bun.lock` per
23
+ [`clients/AGENTS.md`](../AGENTS.md).
24
+
25
+ ## Local development
26
+
27
+ ```bash
28
+ cd clients/web
29
+ bun install # installs the whole workspace
30
+ bun run openapi-ts # generate API client (required before typecheck/dev)
31
+ bun run dev # Vite dev server on localhost:3000
32
+ ```
33
+
34
+ ### Connecting to a backend
35
+
36
+ The Vite dev server includes a built-in
37
+ [reverse proxy](https://vite.dev/config/server-options#server-proxy)
38
+ that forwards API paths (`/v1/*`, `/_allauth/*`, `/accounts/*`) to the
39
+ Django backend. This keeps all requests same-origin so session cookies
40
+ work automatically — no CORS configuration or HTTPS setup needed.
41
+
42
+ By default the proxy targets `http://localhost:8000`. To change it,
43
+ set `API_PROXY_TARGET` in a `.env` file (see
44
+ [`.env.example`](./.env.example)):
45
+
46
+ ```bash
47
+ # .env (not committed)
48
+ API_PROXY_TARGET=http://localhost:8000
49
+ ```
50
+
51
+ Browse to **http://localhost:3000** and log in normally.
52
+
53
+ > **Note:** Some API endpoints (avatar, feed, assistant state) return
54
+ > 404 unless the assistant daemon is running. This is expected in
55
+ > frontend-only mode — the core UI and auth flow work without the
56
+ > daemon.
57
+
58
+ ### How the proxy works
59
+
60
+ The client makes relative API requests (e.g. `fetch("/v1/feed")`).
61
+ In development, Vite's proxy intercepts these and forwards them to
62
+ the backend. In production, an infrastructure reverse proxy (nginx,
63
+ cloud LB, etc.) does the same routing. The client code is identical
64
+ in both environments — no environment-specific base URLs.
65
+
66
+ ```
67
+ Development: Browser ─► Vite :3000 ─(proxy)─► Django :8000
68
+ Production: Browser ─► Reverse proxy ─► Django
69
+ ```
70
+
71
+ Reference: [Vite server.proxy docs](https://vite.dev/config/server-options#server-proxy)
72
+
73
+ ### Other commands
74
+
75
+ ```bash
76
+ bun run build # Production build to dist/
77
+ bun run preview # Serve the production build locally
78
+ bun run typecheck # bunx tsc --noEmit
79
+ bun run lint # eslint
80
+ ```
81
+
82
+ ## Storybook
83
+
84
+ [Storybook](https://storybook.js.org/) provides isolated component
85
+ development for `clients/web` components — the ones tied to the app
86
+ (routing, stores, layout) that don't belong in
87
+ `@mycadet/design-library`. Design-system primitives live in their own
88
+ Storybook (`packages/design-library`, port 6006).
89
+
90
+ Both Storybooks are published off `main` and cross-link to each other
91
+ from the toolbar above the canvas:
92
+
93
+ - Web: <https://storybook.mycadet.ai/web/main/>
94
+ - Design library: <https://storybook.mycadet.ai/design-library/main/>
95
+
96
+ ```bash
97
+ cd clients/web
98
+ bun run storybook # dev server → http://localhost:6007
99
+ bun run build-storybook # static build → storybook-static/
100
+ ```
101
+
102
+ Stories are colocated next to their components (`*.stories.tsx`).
103
+ Autodocs generates prop tables from TypeScript types automatically.
104
+
105
+ Use the **Theme** toolbar to switch between Light, Dark, and Velvet —
106
+ the wiring matches the design library Storybook so components render
107
+ with the same `data-theme` tokens they get in the running app. A
108
+ `MemoryRouter` decorator wraps every story so components using
109
+ `react-router` work without setup.
110
+
111
+ The Storybook also runs automatically as part of `vel up` (alongside
112
+ the design library Storybook on `:6006`) — see the
113
+ [`vel` README](https://github.com/vargasjr-dev/mycadet-platform/blob/main/vel/README.md)
114
+ for the multi-service workflow.
115
+
116
+ ## Testing
117
+
118
+ ```bash
119
+ bun test # run all tests (single process, fast)
120
+ bun test src/path/to/file.test.ts # run one file
121
+ bun run test:ci # run each file in its own process (CI)
122
+ ```
123
+
124
+ Tests use [Bun's built-in test runner](https://bun.sh/docs/test) with
125
+ [happy-dom](https://github.com/nicedoc/happy-dom) providing browser
126
+ globals (`window`, `document`, `localStorage`, `fetch`, etc.) so
127
+ component and hook tests run without a real browser.
128
+
129
+ ### Why `test:ci`?
130
+
131
+ Bun's
132
+ [`mock.module()`](https://bun.sh/docs/test/mocking#mock-module)
133
+ mutates a process-global module registry — mocks set in one test file
134
+ leak into every subsequent file in the same process. `bun run test:ci`
135
+ runs each file in its own subprocess for full isolation. Use it when
136
+ the standard `bun test` shows cross-file contamination, or in CI where
137
+ deterministic results are required.
138
+
139
+ ## Architecture
140
+
141
+ See [`docs/CONVENTIONS.md`](./docs/CONVENTIONS.md) for code organization
142
+ (domain-based architecture), component conventions, and framework strategy.
143
+ See [`docs/STATE_MANAGEMENT.md`](./docs/STATE_MANAGEMENT.md) for state
144
+ patterns (Zustand + TanStack Query).
145
+
146
+ See [`docs/STYLE_GUIDE.md`](./docs/STYLE_GUIDE.md) for naming, imports,
147
+ TypeScript rules, and formatting.
148
+
149
+ **Feature boundaries are enforced by lint.** Each folder under
150
+ `src/domains/` is meant to be a self-contained feature — its own data,
151
+ components, hooks, and tests. When one feature reaches into another's
152
+ internals, that creates a hidden coupling: changing the source can
153
+ break the consumer, even though they're supposed to be independent.
154
+ The custom ESLint rule [`local/no-cross-domain-imports`](./eslint-rules/no-cross-domain-imports.mjs)
155
+ fails CI on any new `@/domains/<y>/...` import from inside
156
+ `src/domains/<x>/...` when `x !== y`. Existing legacy imports are
157
+ listed in [`.cross-domain-allowlist.json`](./.cross-domain-allowlist.json)
158
+ while we lift the shared pieces up to the top-level shared directories
159
+ (`hooks/`, `stores/`, `utils/`, `types/`, `components/`). That file
160
+ shrinks toward zero over time — fix violations rather than adding
161
+ entries to it. See [docs/CONVENTIONS.md](./docs/CONVENTIONS.md#how-to-decide-where-the-domain-split-is)
162
+ for the full reasoning and the lift-vs-compose decision tree.
163
+
164
+ ## Directory structure
165
+
166
+ ```
167
+ src/
168
+ App.tsx # root layout component
169
+ main.tsx # entry point (createRoot, RouterProvider)
170
+ routes.tsx # route tree (createBrowserRouter)
171
+ assistant/ # core domain — the assistant itself
172
+ stores/ # app-level Zustand stores (cross-domain)
173
+ domains/ # feature modules
174
+ messages/ # message lifecycle
175
+ conversations/ # conversation CRUD, grouping, selection
176
+ streaming/ # SSE transport, event parsing
177
+ interactions/ # user-facing prompts
178
+ hooks/ # cross-domain shared hooks
179
+ utils/ # cross-domain shared utilities
180
+ types/ # cross-domain shared types
181
+ lib/ # configured third-party wrappers
182
+ runtime/ # framework adapters, platform bridges
183
+ components/ # cross-domain shared UI
184
+ pages/ # route-level page components
185
+ generated/ # auto-generated code (HeyAPI) — gitignored
186
+ ```
187
+
188
+ ## Path alias
189
+
190
+ Use `@/` to import from `src/`:
191
+
192
+ ```ts
193
+ import { useMessageStore } from "@/domains/messages/message-store.js";
194
+ ```
195
+
196
+ Configured in both `vite.config.ts` (`resolve.alias`) and
197
+ `tsconfig.json` (`paths`) for editor support.
198
+
199
+ ## Why library mode?
200
+
201
+ React Router v7 ships two
202
+ [modes](https://reactrouter.com/start/modes): _library / data-router_
203
+ mode (pure-client SPA built around `createBrowserRouter`) and
204
+ _framework_ mode (file-based routes, generated types, per-route code
205
+ splitting).
206
+
207
+ Library mode is the established React SPA pattern. Fewer conventions
208
+ to learn, fewer build-time plugins, no generated types directory — the
209
+ more recognizable shape for contributors. Framework mode is a
210
+ defensible alternative when the app grows enough that per-route code
211
+ splitting becomes worth its conventions; the React Router API used in
212
+ day-to-day code (`<Link>`, `<Outlet>`, `useParams`, `useNavigate`) is
213
+ the same in both modes, so switching later is a restructure rather
214
+ than a rewrite.
215
+
216
+ ## SSR/build-safe rendering
217
+
218
+ Even though this is an SPA, route and layout components must not
219
+ access `window` / `localStorage` / `document` during synchronous
220
+ render. Client-only reads belong in `useEffect` or in a runtime
221
+ adapter implementation. This keeps the door open for future static
222
+ prerendering or hybrid runtimes. See Vite's
223
+ [SSR guidance](https://vite.dev/guide/ssr.html) for the underlying
224
+ reasoning.