@agent-native/core 0.86.1 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1282) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +18 -0
  3. package/corpus/core/docs/content/agent-native-toolkit.mdx +162 -0
  4. package/corpus/core/docs/content/components.mdx +13 -0
  5. package/corpus/core/docs/content/creating-templates.mdx +7 -0
  6. package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +73 -0
  7. package/corpus/core/docs/content/locales/ar-SA/components.mdx +9 -0
  8. package/corpus/core/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
  9. package/corpus/core/docs/content/locales/ar-SA/sharing.mdx +15 -7
  10. package/corpus/core/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
  11. package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +7 -0
  12. package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +6 -0
  13. package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +77 -0
  14. package/corpus/core/docs/content/locales/de-DE/components.mdx +9 -0
  15. package/corpus/core/docs/content/locales/de-DE/creating-templates.mdx +2 -0
  16. package/corpus/core/docs/content/locales/de-DE/sharing.mdx +15 -7
  17. package/corpus/core/docs/content/locales/de-DE/template-analytics.mdx +6 -0
  18. package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +7 -0
  19. package/corpus/core/docs/content/locales/de-DE/tracking.mdx +6 -0
  20. package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +77 -0
  21. package/corpus/core/docs/content/locales/es-ES/components.mdx +9 -0
  22. package/corpus/core/docs/content/locales/es-ES/creating-templates.mdx +2 -0
  23. package/corpus/core/docs/content/locales/es-ES/sharing.mdx +15 -7
  24. package/corpus/core/docs/content/locales/es-ES/template-analytics.mdx +6 -0
  25. package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +7 -0
  26. package/corpus/core/docs/content/locales/es-ES/tracking.mdx +6 -0
  27. package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +79 -0
  28. package/corpus/core/docs/content/locales/fr-FR/components.mdx +9 -0
  29. package/corpus/core/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
  30. package/corpus/core/docs/content/locales/fr-FR/sharing.mdx +15 -7
  31. package/corpus/core/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
  32. package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +7 -0
  33. package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +6 -0
  34. package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +74 -0
  35. package/corpus/core/docs/content/locales/hi-IN/components.mdx +9 -0
  36. package/corpus/core/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
  37. package/corpus/core/docs/content/locales/hi-IN/sharing.mdx +15 -7
  38. package/corpus/core/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
  39. package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +7 -0
  40. package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +6 -0
  41. package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +67 -0
  42. package/corpus/core/docs/content/locales/ja-JP/components.mdx +9 -0
  43. package/corpus/core/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
  44. package/corpus/core/docs/content/locales/ja-JP/sharing.mdx +15 -7
  45. package/corpus/core/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
  46. package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +7 -0
  47. package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +6 -0
  48. package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +63 -0
  49. package/corpus/core/docs/content/locales/ko-KR/components.mdx +9 -0
  50. package/corpus/core/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
  51. package/corpus/core/docs/content/locales/ko-KR/sharing.mdx +15 -7
  52. package/corpus/core/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
  53. package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +7 -0
  54. package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +6 -0
  55. package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +77 -0
  56. package/corpus/core/docs/content/locales/pt-BR/components.mdx +9 -0
  57. package/corpus/core/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
  58. package/corpus/core/docs/content/locales/pt-BR/sharing.mdx +15 -7
  59. package/corpus/core/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
  60. package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +7 -0
  61. package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +6 -0
  62. package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +61 -0
  63. package/corpus/core/docs/content/locales/zh-CN/components.mdx +9 -0
  64. package/corpus/core/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
  65. package/corpus/core/docs/content/locales/zh-CN/sharing.mdx +15 -7
  66. package/corpus/core/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
  67. package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +7 -0
  68. package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +6 -0
  69. package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +61 -0
  70. package/corpus/core/docs/content/locales/zh-TW/components.mdx +9 -0
  71. package/corpus/core/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
  72. package/corpus/core/docs/content/locales/zh-TW/sharing.mdx +15 -7
  73. package/corpus/core/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
  74. package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +7 -0
  75. package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +6 -0
  76. package/corpus/core/docs/content/sharing.mdx +39 -7
  77. package/corpus/core/docs/content/template-analytics.mdx +6 -0
  78. package/corpus/core/docs/content/template-clips.mdx +7 -0
  79. package/corpus/core/docs/content/tracking.mdx +6 -0
  80. package/corpus/core/package.json +9 -1
  81. package/corpus/core/src/application-state/emitter.ts +37 -5
  82. package/corpus/core/src/cli/create.ts +55 -3
  83. package/corpus/core/src/cli/workspacify.ts +10 -4
  84. package/corpus/core/src/client/components/ui/dialog.tsx +1 -91
  85. package/corpus/core/src/client/components/ui/dropdown-menu.tsx +1 -191
  86. package/corpus/core/src/client/components/ui/hover-card.tsx +1 -29
  87. package/corpus/core/src/client/components/ui/popover.tsx +1 -31
  88. package/corpus/core/src/client/components/ui/sheet.tsx +1 -96
  89. package/corpus/core/src/client/components/ui/tooltip.tsx +1 -53
  90. package/corpus/core/src/secrets/crypto.ts +47 -9
  91. package/corpus/core/src/server/action-discovery.ts +4 -0
  92. package/corpus/core/src/server/action-routes.ts +8 -1
  93. package/corpus/core/src/server/agent-access.ts +72 -0
  94. package/corpus/core/src/server/h3-helpers.ts +14 -2
  95. package/corpus/core/src/server/index.ts +28 -0
  96. package/corpus/core/src/server/request-context.ts +64 -7
  97. package/corpus/core/src/shared/agent-access.ts +112 -0
  98. package/corpus/core/src/shared/agent-readable-resource.ts +111 -0
  99. package/corpus/core/src/shared/index.ts +23 -0
  100. package/corpus/core/src/sharing/actions/create-agent-resource-link.ts +91 -0
  101. package/corpus/core/src/sharing/registry.ts +19 -0
  102. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +92 -0
  103. package/corpus/core/src/vite/client.ts +1 -0
  104. package/corpus/templates/analytics/AGENTS.md +4 -0
  105. package/corpus/templates/analytics/actions/get-sql-dashboard.ts +9 -113
  106. package/corpus/templates/analytics/app/components/InlineMetric.tsx +2 -2
  107. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +7 -2
  108. package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +16 -11
  109. package/corpus/templates/analytics/app/components/dashboard/DateRangePicker.tsx +2 -1
  110. package/corpus/templates/analytics/app/components/dashboard/MetricCard.tsx +7 -2
  111. package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +6 -3
  112. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +6 -1
  113. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +7 -2
  114. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +15 -11
  115. package/corpus/templates/analytics/app/components/dashboard/StatsCard.tsx +7 -1
  116. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +7 -2
  117. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +16 -16
  118. package/corpus/templates/analytics/app/components/layout/HeaderActions.tsx +1 -2
  119. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +5 -2
  120. package/corpus/templates/analytics/app/components/layout/NewAnalysisDialog.tsx +6 -6
  121. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +3 -4
  122. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +12 -9
  123. package/corpus/templates/analytics/app/components/ui/calendar.tsx +1 -1
  124. package/corpus/templates/analytics/app/pages/Agents.tsx +19 -19
  125. package/corpus/templates/analytics/app/pages/DataDictionary.tsx +21 -21
  126. package/corpus/templates/analytics/app/pages/DataSources.tsx +28 -28
  127. package/corpus/templates/analytics/app/pages/NotFound.tsx +1 -2
  128. package/corpus/templates/analytics/app/pages/Placeholder.tsx +1 -2
  129. package/corpus/templates/analytics/app/pages/Settings.tsx +16 -16
  130. package/corpus/templates/analytics/app/pages/adhoc/DashboardSkeleton.tsx +2 -3
  131. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +13 -8
  132. package/corpus/templates/analytics/app/pages/adhoc/_shared/components/DateRangeInput.tsx +2 -1
  133. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ChartTypePicker.tsx +4 -2
  134. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/DateRangePicker.tsx +2 -1
  135. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventCombobox.tsx +7 -7
  136. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventPanel.tsx +1 -2
  137. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventRow.tsx +1 -2
  138. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ExplorerChart.tsx +8 -3
  139. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/FilterBuilder.tsx +4 -5
  140. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/GroupByPicker.tsx +1 -2
  141. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyCombobox.tsx +7 -7
  142. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyValueCombobox.tsx +7 -7
  143. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +1 -1
  144. package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +16 -16
  145. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +21 -16
  146. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +32 -32
  147. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +14 -14
  148. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +13 -14
  149. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +21 -13
  150. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +28 -23
  151. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewSqlPopover.tsx +12 -12
  152. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +15 -15
  153. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -29
  154. package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +7 -8
  155. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +19 -19
  156. package/corpus/templates/analytics/app/pages/analyses/LegacyFusionAnalysis.tsx +15 -11
  157. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +42 -23
  158. package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +12 -7
  159. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +12 -12
  160. package/corpus/templates/analytics/app/pages/settings/AlertRulesSettingsCard.tsx +25 -25
  161. package/corpus/templates/analytics/app/root.tsx +2 -2
  162. package/corpus/templates/analytics/app/routes/catalog.tsx +8 -8
  163. package/corpus/templates/analytics/package.json +1 -0
  164. package/corpus/templates/analytics/server/db/index.ts +14 -0
  165. package/corpus/templates/analytics/server/lib/agent-readable-resource-context.ts +156 -0
  166. package/corpus/templates/analytics/server/lib/session-replay-agent-context.ts +59 -59
  167. package/corpus/templates/analytics/server/routes/[...page].get.ts +92 -25
  168. package/corpus/templates/analytics/server/routes/api/analysis-agent-context.json.get.ts +94 -0
  169. package/corpus/templates/analytics/server/routes/api/dashboard-agent-context.json.get.ts +109 -0
  170. package/corpus/templates/analytics/shared/resource-agent-access.ts +6 -0
  171. package/corpus/templates/analytics/shared/session-replay-agent-access.ts +14 -3
  172. package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +2 -3
  173. package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +9 -9
  174. package/corpus/templates/assets/app/components/layout/Header.tsx +4 -2
  175. package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -1
  176. package/corpus/templates/assets/app/components/layout/PageShell.tsx +5 -6
  177. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
  178. package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +8 -8
  179. package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +7 -7
  180. package/corpus/templates/assets/app/components/library/LibraryCard.tsx +8 -8
  181. package/corpus/templates/assets/app/components/library/LibraryPresetGrid.tsx +2 -3
  182. package/corpus/templates/assets/app/root.tsx +1 -1
  183. package/corpus/templates/assets/app/routes/asset.$id.tsx +19 -19
  184. package/corpus/templates/assets/app/routes/audit.tsx +14 -15
  185. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +54 -49
  186. package/corpus/templates/assets/app/routes/library.tsx +31 -31
  187. package/corpus/templates/assets/app/routes/settings.tsx +18 -18
  188. package/corpus/templates/assets/package.json +1 -0
  189. package/corpus/templates/brain/app/components/brain/CanonicalPreviewSheet.tsx +5 -6
  190. package/corpus/templates/brain/app/components/brain/Surface.tsx +8 -3
  191. package/corpus/templates/brain/app/components/layout/Layout.tsx +7 -7
  192. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +6 -6
  193. package/corpus/templates/brain/app/routes/knowledge.tsx +19 -19
  194. package/corpus/templates/brain/app/routes/ops.tsx +18 -18
  195. package/corpus/templates/brain/app/routes/review.tsx +27 -22
  196. package/corpus/templates/brain/app/routes/search.tsx +20 -20
  197. package/corpus/templates/brain/app/routes/settings.tsx +22 -22
  198. package/corpus/templates/brain/app/routes/sources.tsx +23 -23
  199. package/corpus/templates/brain/package.json +1 -0
  200. package/corpus/templates/calendar/app/components/ThemeToggle.tsx +5 -5
  201. package/corpus/templates/calendar/app/components/TimezoneCombobox.tsx +6 -6
  202. package/corpus/templates/calendar/app/components/booking/BookingConfirmation.tsx +1 -2
  203. package/corpus/templates/calendar/app/components/booking/BookingForm.tsx +8 -9
  204. package/corpus/templates/calendar/app/components/booking/DatePicker.tsx +2 -2
  205. package/corpus/templates/calendar/app/components/booking/TimeSlotPicker.tsx +2 -3
  206. package/corpus/templates/calendar/app/components/calendar/AddCalendarDialog.tsx +15 -10
  207. package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +6 -6
  208. package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +27 -27
  209. package/corpus/templates/calendar/app/components/calendar/DeleteEventDialog.tsx +12 -9
  210. package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +13 -10
  211. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -7
  212. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +21 -21
  213. package/corpus/templates/calendar/app/components/calendar/EventDialog.tsx +11 -11
  214. package/corpus/templates/calendar/app/components/calendar/EventOptionControls.tsx +9 -9
  215. package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +9 -9
  216. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
  217. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
  218. package/corpus/templates/calendar/app/components/calendar/GoogleSyncButton.tsx +1 -1
  219. package/corpus/templates/calendar/app/components/calendar/GuestNotificationDialog.tsx +10 -8
  220. package/corpus/templates/calendar/app/components/calendar/IntegrationsSidebar.tsx +12 -12
  221. package/corpus/templates/calendar/app/components/calendar/KeyboardShortcutsHelp.tsx +2 -2
  222. package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +1 -1
  223. package/corpus/templates/calendar/app/components/calendar/PeopleSearchDialog.tsx +6 -6
  224. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +6 -6
  225. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -2
  226. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -16
  227. package/corpus/templates/calendar/app/pages/AvailabilitySettings.tsx +11 -11
  228. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +50 -45
  229. package/corpus/templates/calendar/app/pages/BookingPage.tsx +2 -2
  230. package/corpus/templates/calendar/app/pages/BookingsList.tsx +12 -12
  231. package/corpus/templates/calendar/app/pages/CalendarView.tsx +17 -17
  232. package/corpus/templates/calendar/app/pages/ManageBookingPage.tsx +13 -13
  233. package/corpus/templates/calendar/app/pages/Settings.tsx +12 -12
  234. package/corpus/templates/calendar/app/routes/event.tsx +2 -2
  235. package/corpus/templates/calendar/package.json +1 -0
  236. package/corpus/templates/chat/app/components/layout/Header.tsx +4 -2
  237. package/corpus/templates/chat/app/components/layout/Layout.tsx +7 -7
  238. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +12 -12
  239. package/corpus/templates/chat/app/routes/database.tsx +1 -2
  240. package/corpus/templates/chat/app/routes/observability.tsx +1 -1
  241. package/corpus/templates/chat/app/routes/settings.tsx +5 -5
  242. package/corpus/templates/chat/package.json +1 -0
  243. package/corpus/templates/clips/AGENTS.md +5 -0
  244. package/corpus/templates/clips/actions/create-recording-agent-link.ts +15 -20
  245. package/corpus/templates/clips/actions/delete-recording-permanent.ts +74 -34
  246. package/corpus/templates/clips/app/components/capture-install-options.tsx +6 -6
  247. package/corpus/templates/clips/app/components/editable-recording-title.tsx +2 -2
  248. package/corpus/templates/clips/app/components/editor/chapters-editor.tsx +7 -7
  249. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +165 -3
  250. package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +101 -57
  251. package/corpus/templates/clips/app/components/editor/split-button.tsx +4 -5
  252. package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +9 -9
  253. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +16 -11
  254. package/corpus/templates/clips/app/components/editor/timeline.tsx +4 -6
  255. package/corpus/templates/clips/app/components/editor/transcript-editor.tsx +5 -5
  256. package/corpus/templates/clips/app/components/editor/trim-handles.tsx +4 -7
  257. package/corpus/templates/clips/app/components/editor/waveform.tsx +13 -4
  258. package/corpus/templates/clips/app/components/layout/Header.tsx +4 -2
  259. package/corpus/templates/clips/app/components/layout/Layout.tsx +2 -3
  260. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +4 -4
  261. package/corpus/templates/clips/app/components/library/create-space-dialog.tsx +8 -8
  262. package/corpus/templates/clips/app/components/library/empty-state.tsx +1 -2
  263. package/corpus/templates/clips/app/components/library/folder-tree.tsx +14 -14
  264. package/corpus/templates/clips/app/components/library/library-grid.tsx +7 -7
  265. package/corpus/templates/clips/app/components/library/library-layout.tsx +16 -16
  266. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +11 -11
  267. package/corpus/templates/clips/app/components/library/recording-card.tsx +16 -12
  268. package/corpus/templates/clips/app/components/library/search-bar.tsx +5 -5
  269. package/corpus/templates/clips/app/components/library/sort-menu.tsx +3 -4
  270. package/corpus/templates/clips/app/components/library/tag-input.tsx +4 -4
  271. package/corpus/templates/clips/app/components/meetings/attendee-stack.tsx +6 -2
  272. package/corpus/templates/clips/app/components/meetings/auto-record-prompt.tsx +1 -1
  273. package/corpus/templates/clips/app/components/meetings/bullet-link.tsx +4 -4
  274. package/corpus/templates/clips/app/components/meetings/canvas-editor.tsx +5 -5
  275. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +3 -3
  276. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +9 -9
  277. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +11 -6
  278. package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +4 -4
  279. package/corpus/templates/clips/app/components/player/access-password-prompt.tsx +2 -3
  280. package/corpus/templates/clips/app/components/player/comments-panel.tsx +14 -14
  281. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +6 -7
  282. package/corpus/templates/clips/app/components/player/insights-panel.tsx +1 -2
  283. package/corpus/templates/clips/app/components/player/player-controls.tsx +15 -15
  284. package/corpus/templates/clips/app/components/player/reactions-tray.tsx +3 -3
  285. package/corpus/templates/clips/app/components/player/settings-panel.tsx +12 -13
  286. package/corpus/templates/clips/app/components/player/share-dialog.tsx +20 -11
  287. package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +2 -3
  288. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +2 -2
  289. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +7 -7
  290. package/corpus/templates/clips/app/components/player/video-player.tsx +9 -9
  291. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +1 -1
  292. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
  293. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +21 -21
  294. package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +5 -6
  295. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +6 -7
  296. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +10 -10
  297. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +9 -5
  298. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +19 -9
  299. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +9 -10
  300. package/corpus/templates/clips/app/components/workspace/members-list.tsx +10 -11
  301. package/corpus/templates/clips/app/components/workspace/notifications-list.tsx +1 -2
  302. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +2 -3
  303. package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -3
  304. package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +1 -2
  305. package/corpus/templates/clips/app/root.tsx +10 -10
  306. package/corpus/templates/clips/app/routes/_app.dictate.tsx +13 -13
  307. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +35 -26
  308. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +20 -20
  309. package/corpus/templates/clips/app/routes/_app.notifications.tsx +3 -3
  310. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +31 -31
  311. package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +13 -8
  312. package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +1 -1
  313. package/corpus/templates/clips/app/routes/_app.trash.tsx +10 -10
  314. package/corpus/templates/clips/app/routes/bug-report.done.tsx +1 -1
  315. package/corpus/templates/clips/app/routes/bug-report.tsx +11 -11
  316. package/corpus/templates/clips/app/routes/download.tsx +2 -2
  317. package/corpus/templates/clips/app/routes/embed.$shareId.tsx +1 -1
  318. package/corpus/templates/clips/app/routes/invite.$token.tsx +13 -8
  319. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +28 -23
  320. package/corpus/templates/clips/app/routes/record.tsx +3 -3
  321. package/corpus/templates/clips/app/routes/share.$shareId.tsx +41 -20
  322. package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +2 -2
  323. package/corpus/templates/clips/changelog/2026-07-05-desktop-full-screen-recordings-with-system-audio-now-finaliz.md +6 -0
  324. package/corpus/templates/clips/changelog/2026-07-05-desktop-recording-shortcut-start-stop.md +6 -0
  325. package/corpus/templates/clips/changelog/2026-07-05-desktop-recordings-no-longer-fail-when-saved-capture-constra.md +6 -0
  326. package/corpus/templates/clips/changelog/2026-07-05-permanently-deleted-clips-now-clean-up-s3-media-objects.md +6 -0
  327. package/corpus/templates/clips/changelog/2026-07-05-timeline-zoom-controls-are-now-visible-in-the-clip-editor-an.md +6 -0
  328. package/corpus/templates/clips/desktop/src/app.tsx +98 -1
  329. package/corpus/templates/clips/desktop/src/components/MediaDeviceRow.tsx +3 -2
  330. package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +121 -0
  331. package/corpus/templates/clips/desktop/src/lib/recorder.ts +55 -84
  332. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +77 -39
  333. package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +60 -8
  334. package/corpus/templates/clips/package.json +1 -0
  335. package/corpus/templates/clips/server/lib/public-agent-context.ts +17 -12
  336. package/corpus/templates/clips/server/lib/recording-media-cleanup.ts +110 -0
  337. package/corpus/templates/clips/server/lib/s3-upload-provider.ts +126 -0
  338. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +47 -11
  339. package/corpus/templates/clips/shared/agent-context.ts +23 -21
  340. package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -4
  341. package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
  342. package/corpus/templates/content/app/components/ThemeToggle.tsx +6 -6
  343. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
  344. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +5 -5
  345. package/corpus/templates/content/app/components/editor/ContentReferencePreview.tsx +1 -1
  346. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +36 -36
  347. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +3 -3
  348. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +29 -29
  349. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +23 -23
  350. package/corpus/templates/content/app/components/editor/EmojiPicker.tsx +4 -5
  351. package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +4 -5
  352. package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
  353. package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +2 -2
  354. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +5 -5
  355. package/corpus/templates/content/app/components/editor/TableHoverControls.tsx +13 -13
  356. package/corpus/templates/content/app/components/editor/VersionHistoryPanel.tsx +10 -10
  357. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
  358. package/corpus/templates/content/app/components/editor/database/shared.tsx +19 -19
  359. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +8 -9
  360. package/corpus/templates/content/app/components/editor/extensions/AudioBlock.tsx +18 -19
  361. package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +20 -21
  362. package/corpus/templates/content/app/components/editor/extensions/LocalMdxComponentNode.tsx +8 -8
  363. package/corpus/templates/content/app/components/editor/extensions/VideoBlock.tsx +18 -19
  364. package/corpus/templates/content/app/components/layout/Header.tsx +4 -2
  365. package/corpus/templates/content/app/components/layout/Layout.tsx +3 -3
  366. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +22 -22
  367. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +22 -22
  368. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +11 -11
  369. package/corpus/templates/content/app/root.tsx +4 -5
  370. package/corpus/templates/content/app/routes/_app._index.tsx +1 -1
  371. package/corpus/templates/content/app/routes/_app.local-files.tsx +11 -11
  372. package/corpus/templates/content/app/routes/_app.settings.tsx +3 -3
  373. package/corpus/templates/content/app/routes/p.$id.tsx +114 -9
  374. package/corpus/templates/content/package.json +1 -0
  375. package/corpus/templates/content/server/db/index.ts +9 -0
  376. package/corpus/templates/content/server/routes/api/document-agent-context.json.get.ts +90 -0
  377. package/corpus/templates/content/shared/agent-readable.ts +56 -0
  378. package/corpus/templates/design/app/components/ThemeToggle.tsx +6 -6
  379. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +11 -11
  380. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +2 -2
  381. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +21 -16
  382. package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +3 -3
  383. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +7 -7
  384. package/corpus/templates/design/app/components/design/EditPanel.tsx +30 -30
  385. package/corpus/templates/design/app/components/design/FusionAppBanner.tsx +8 -9
  386. package/corpus/templates/design/app/components/design/LayersPanel.tsx +14 -14
  387. package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +5 -6
  388. package/corpus/templates/design/app/components/design/MotionDock.tsx +15 -15
  389. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +3 -3
  390. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +3 -3
  391. package/corpus/templates/design/app/components/design/StatesPanel.tsx +13 -13
  392. package/corpus/templates/design/app/components/design/TokensPanel.tsx +14 -14
  393. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -6
  394. package/corpus/templates/design/app/components/design/code-workbench/ActivityBar.tsx +3 -3
  395. package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +3 -3
  396. package/corpus/templates/design/app/components/design/code-workbench/editor/EditorTabs.tsx +6 -6
  397. package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +1 -2
  398. package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +17 -17
  399. package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +6 -6
  400. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +3 -3
  401. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +7 -7
  402. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +3 -3
  403. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +18 -18
  404. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +6 -6
  405. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +6 -6
  406. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +7 -7
  407. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +7 -7
  408. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -14
  409. package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +9 -9
  410. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +6 -6
  411. package/corpus/templates/design/app/components/design-system/DesignSystemCard.tsx +2 -3
  412. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +18 -15
  413. package/corpus/templates/design/app/components/layout/Header.tsx +4 -2
  414. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
  415. package/corpus/templates/design/app/components/layout/Sidebar.tsx +5 -5
  416. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +7 -7
  417. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +7 -7
  418. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +3 -3
  419. package/corpus/templates/design/app/pages/DesignEditor.tsx +51 -47
  420. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +8 -8
  421. package/corpus/templates/design/app/pages/DesignSystems.tsx +32 -32
  422. package/corpus/templates/design/app/pages/Index.tsx +28 -28
  423. package/corpus/templates/design/app/pages/NotFound.tsx +1 -2
  424. package/corpus/templates/design/app/pages/Present.tsx +1 -2
  425. package/corpus/templates/design/app/pages/VisualEdit.tsx +1 -2
  426. package/corpus/templates/design/app/root.tsx +1 -1
  427. package/corpus/templates/design/app/routes/settings.tsx +3 -3
  428. package/corpus/templates/design/package.json +1 -0
  429. package/corpus/templates/design/server/db/index.ts +8 -0
  430. package/corpus/templates/design/server/routes/[...page].get.ts +94 -1
  431. package/corpus/templates/design/server/routes/api/design-agent-context.json.get.ts +84 -0
  432. package/corpus/templates/design/shared/agent-readable.ts +2 -0
  433. package/corpus/templates/forms/app/components/CloudUpgrade.tsx +10 -10
  434. package/corpus/templates/forms/app/components/ThemeToggle.tsx +5 -5
  435. package/corpus/templates/forms/app/components/builder/FieldPropertiesPanel.tsx +10 -11
  436. package/corpus/templates/forms/app/components/builder/FieldRenderer.tsx +13 -10
  437. package/corpus/templates/forms/app/components/layout/Header.tsx +4 -2
  438. package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
  439. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +15 -15
  440. package/corpus/templates/forms/app/components/ui/calendar.tsx +1 -1
  441. package/corpus/templates/forms/app/components/ui/command.tsx +1 -1
  442. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +24 -24
  443. package/corpus/templates/forms/app/pages/FormFillPage.tsx +2 -2
  444. package/corpus/templates/forms/app/pages/FormsListPage.tsx +25 -25
  445. package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +11 -11
  446. package/corpus/templates/forms/app/pages/ResponsesPage.tsx +4 -4
  447. package/corpus/templates/forms/app/routes/_app.settings.tsx +5 -5
  448. package/corpus/templates/forms/app/routes/form-preview.tsx +3 -3
  449. package/corpus/templates/forms/package.json +1 -0
  450. package/corpus/templates/macros/app/components/AddExerciseDialog.tsx +1 -1
  451. package/corpus/templates/macros/app/components/AddMealDialog.tsx +1 -1
  452. package/corpus/templates/macros/app/components/AddWeightDialog.tsx +1 -1
  453. package/corpus/templates/macros/app/components/DailyProgress.tsx +7 -7
  454. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -2
  455. package/corpus/templates/macros/app/components/WeightCard.tsx +10 -10
  456. package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
  457. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +11 -7
  458. package/corpus/templates/macros/app/components/layout/Header.tsx +4 -2
  459. package/corpus/templates/macros/app/root.tsx +1 -1
  460. package/corpus/templates/macros/app/routes/_index.tsx +1 -1
  461. package/corpus/templates/macros/app/routes/analytics.tsx +9 -9
  462. package/corpus/templates/macros/app/routes/settings.tsx +2 -2
  463. package/corpus/templates/macros/package.json +1 -0
  464. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +1 -1
  465. package/corpus/templates/mail/app/components/ThemeToggle.tsx +6 -6
  466. package/corpus/templates/mail/app/components/agent-engine-picker.tsx +10 -10
  467. package/corpus/templates/mail/app/components/email/CodeBlockLangPicker.tsx +3 -4
  468. package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +5 -5
  469. package/corpus/templates/mail/app/components/email/ComposeEditor.tsx +9 -9
  470. package/corpus/templates/mail/app/components/email/ComposeModal.tsx +18 -18
  471. package/corpus/templates/mail/app/components/email/EmailList.tsx +17 -17
  472. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
  473. package/corpus/templates/mail/app/components/email/EmailThread.tsx +6 -6
  474. package/corpus/templates/mail/app/components/email/InlineReplyComposer.tsx +11 -11
  475. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +13 -13
  476. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +13 -13
  477. package/corpus/templates/mail/app/components/email/RecipientInput.tsx +13 -13
  478. package/corpus/templates/mail/app/components/email/SendLaterButton.tsx +4 -5
  479. package/corpus/templates/mail/app/components/email/SnoozeModal.tsx +1 -1
  480. package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +6 -6
  481. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +12 -12
  482. package/corpus/templates/mail/app/components/layout/SearchBar.tsx +5 -5
  483. package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +23 -23
  484. package/corpus/templates/mail/app/components/ui/calendar.tsx +1 -1
  485. package/corpus/templates/mail/app/components/ui/command.tsx +1 -1
  486. package/corpus/templates/mail/app/pages/DraftQueuePage.tsx +14 -14
  487. package/corpus/templates/mail/app/pages/NotFound.tsx +1 -2
  488. package/corpus/templates/mail/app/pages/SettingsPage.tsx +25 -25
  489. package/corpus/templates/mail/app/root.tsx +1 -1
  490. package/corpus/templates/mail/app/routes/_index.tsx +1 -2
  491. package/corpus/templates/mail/app/routes/email.tsx +2 -2
  492. package/corpus/templates/mail/package.json +1 -0
  493. package/corpus/templates/plan/app/components/layout/Header.tsx +4 -2
  494. package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -6
  495. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +20 -20
  496. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +2 -3
  497. package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +2 -2
  498. package/corpus/templates/plan/app/components/plan/GuestModeBanner.tsx +1 -2
  499. package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +8 -8
  500. package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
  501. package/corpus/templates/plan/app/components/plan/PlanImageViewer.tsx +83 -82
  502. package/corpus/templates/plan/app/components/plan/PlanVisualSurface.tsx +3 -3
  503. package/corpus/templates/plan/app/components/plan/planBlocks.tsx +4 -4
  504. package/corpus/templates/plan/app/pages/PlansPage.tsx +84 -77
  505. package/corpus/templates/plan/app/root.tsx +1 -1
  506. package/corpus/templates/plan/app/routes/_index.tsx +2 -1
  507. package/corpus/templates/plan/app/routes/local-plans.$slug.tsx +1 -1
  508. package/corpus/templates/plan/app/routes/plans.$id.tsx +2 -1
  509. package/corpus/templates/plan/app/routes/plans.tsx +2 -1
  510. package/corpus/templates/plan/app/routes/recaps.$id.tsx +2 -1
  511. package/corpus/templates/plan/app/routes/recaps.tsx +2 -1
  512. package/corpus/templates/plan/app/routes/settings.tsx +5 -5
  513. package/corpus/templates/plan/changelog/2026-07-05-images-in-plan-documents-open-reliably-in-the-full-size-prev.md +6 -0
  514. package/corpus/templates/plan/package.json +1 -0
  515. package/corpus/templates/plan/server/db/index.ts +12 -0
  516. package/corpus/templates/plan/server/plans.ts +25 -1
  517. package/corpus/templates/plan/server/routes/[...page].get.ts +107 -1
  518. package/corpus/templates/plan/server/routes/api/plan-agent-context.json.get.ts +65 -0
  519. package/corpus/templates/plan/shared/agent-readable.ts +2 -0
  520. package/corpus/templates/slides/app/components/ThemeToggle.tsx +6 -6
  521. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +5 -5
  522. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +7 -7
  523. package/corpus/templates/slides/app/components/deck/ExcalidrawSlide.tsx +1 -2
  524. package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +1 -1
  525. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -3
  526. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +13 -14
  527. package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +7 -7
  528. package/corpus/templates/slides/app/components/editor/BlockBubbleMenu.tsx +5 -5
  529. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +6 -6
  530. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +13 -13
  531. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +9 -10
  532. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +5 -6
  533. package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +12 -12
  534. package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +3 -4
  535. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +4 -5
  536. package/corpus/templates/slides/app/components/editor/ImportButton.tsx +3 -4
  537. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +1 -2
  538. package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +10 -10
  539. package/corpus/templates/slides/app/components/editor/SlideBubbleMenu.tsx +10 -10
  540. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +6 -6
  541. package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +1 -2
  542. package/corpus/templates/slides/app/components/editor/TweaksPanel.tsx +1 -1
  543. package/corpus/templates/slides/app/components/layout/Header.tsx +4 -2
  544. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  545. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
  546. package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +6 -6
  547. package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +7 -7
  548. package/corpus/templates/slides/app/pages/DeckEditor.tsx +3 -3
  549. package/corpus/templates/slides/app/pages/DesignSystems.tsx +5 -5
  550. package/corpus/templates/slides/app/pages/Index.tsx +18 -15
  551. package/corpus/templates/slides/app/root.tsx +3 -3
  552. package/corpus/templates/slides/app/routes/p.$id.tsx +126 -12
  553. package/corpus/templates/slides/app/routes/settings.tsx +5 -5
  554. package/corpus/templates/slides/app/routes/share.$token.tsx +55 -8
  555. package/corpus/templates/slides/package.json +1 -0
  556. package/corpus/templates/slides/server/db/index.ts +9 -0
  557. package/corpus/templates/slides/server/routes/api/deck-agent-context.json.get.ts +97 -0
  558. package/corpus/templates/slides/shared/agent-readable.ts +2 -0
  559. package/dist/application-state/emitter.d.ts +9 -2
  560. package/dist/application-state/emitter.d.ts.map +1 -1
  561. package/dist/application-state/emitter.js +25 -3
  562. package/dist/application-state/emitter.js.map +1 -1
  563. package/dist/cli/create.d.ts +2 -1
  564. package/dist/cli/create.d.ts.map +1 -1
  565. package/dist/cli/create.js +52 -4
  566. package/dist/cli/create.js.map +1 -1
  567. package/dist/cli/workspacify.d.ts +2 -0
  568. package/dist/cli/workspacify.d.ts.map +1 -1
  569. package/dist/cli/workspacify.js +8 -4
  570. package/dist/cli/workspacify.js.map +1 -1
  571. package/dist/client/components/ui/dialog.d.ts +1 -13
  572. package/dist/client/components/ui/dialog.d.ts.map +1 -1
  573. package/dist/client/components/ui/dialog.js +1 -20
  574. package/dist/client/components/ui/dialog.js.map +1 -1
  575. package/dist/client/components/ui/dropdown-menu.d.ts +1 -27
  576. package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -1
  577. package/dist/client/components/ui/dropdown-menu.js +1 -33
  578. package/dist/client/components/ui/dropdown-menu.js.map +1 -1
  579. package/dist/client/components/ui/hover-card.d.ts +1 -6
  580. package/dist/client/components/ui/hover-card.d.ts.map +1 -1
  581. package/dist/client/components/ui/hover-card.js +1 -9
  582. package/dist/client/components/ui/hover-card.js.map +1 -1
  583. package/dist/client/components/ui/popover.d.ts +1 -7
  584. package/dist/client/components/ui/popover.d.ts.map +1 -1
  585. package/dist/client/components/ui/popover.js +1 -10
  586. package/dist/client/components/ui/popover.js.map +1 -1
  587. package/dist/client/components/ui/sheet.d.ts +1 -15
  588. package/dist/client/components/ui/sheet.d.ts.map +1 -1
  589. package/dist/client/components/ui/sheet.js +1 -22
  590. package/dist/client/components/ui/sheet.js.map +1 -1
  591. package/dist/client/components/ui/tooltip.d.ts +1 -8
  592. package/dist/client/components/ui/tooltip.d.ts.map +1 -1
  593. package/dist/client/components/ui/tooltip.js +1 -17
  594. package/dist/client/components/ui/tooltip.js.map +1 -1
  595. package/dist/collab/routes.d.ts +1 -1
  596. package/dist/collab/struct-routes.d.ts +1 -1
  597. package/dist/observability/routes.d.ts +5 -5
  598. package/dist/progress/routes.d.ts +1 -1
  599. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  600. package/dist/secrets/crypto.d.ts.map +1 -1
  601. package/dist/secrets/crypto.js +37 -4
  602. package/dist/secrets/crypto.js.map +1 -1
  603. package/dist/secrets/routes.d.ts +9 -9
  604. package/dist/server/action-discovery.d.ts.map +1 -1
  605. package/dist/server/action-discovery.js +4 -0
  606. package/dist/server/action-discovery.js.map +1 -1
  607. package/dist/server/action-routes.d.ts.map +1 -1
  608. package/dist/server/action-routes.js +8 -2
  609. package/dist/server/action-routes.js.map +1 -1
  610. package/dist/server/agent-access.d.ts +16 -0
  611. package/dist/server/agent-access.d.ts.map +1 -0
  612. package/dist/server/agent-access.js +25 -0
  613. package/dist/server/agent-access.js.map +1 -0
  614. package/dist/server/h3-helpers.d.ts.map +1 -1
  615. package/dist/server/h3-helpers.js +12 -2
  616. package/dist/server/h3-helpers.js.map +1 -1
  617. package/dist/server/index.d.ts +2 -0
  618. package/dist/server/index.d.ts.map +1 -1
  619. package/dist/server/index.js +2 -0
  620. package/dist/server/index.js.map +1 -1
  621. package/dist/server/request-context.d.ts +17 -0
  622. package/dist/server/request-context.d.ts.map +1 -1
  623. package/dist/server/request-context.js +46 -6
  624. package/dist/server/request-context.js.map +1 -1
  625. package/dist/server/transcribe-voice.d.ts +1 -1
  626. package/dist/shared/agent-access.d.ts +29 -0
  627. package/dist/shared/agent-access.d.ts.map +1 -0
  628. package/dist/shared/agent-access.js +57 -0
  629. package/dist/shared/agent-access.js.map +1 -0
  630. package/dist/shared/agent-readable-resource.d.ts +29 -0
  631. package/dist/shared/agent-readable-resource.d.ts.map +1 -0
  632. package/dist/shared/agent-readable-resource.js +60 -0
  633. package/dist/shared/agent-readable-resource.js.map +1 -0
  634. package/dist/shared/index.d.ts +2 -0
  635. package/dist/shared/index.d.ts.map +1 -1
  636. package/dist/shared/index.js +2 -0
  637. package/dist/shared/index.js.map +1 -1
  638. package/dist/sharing/actions/create-agent-resource-link.d.ts +13 -0
  639. package/dist/sharing/actions/create-agent-resource-link.d.ts.map +1 -0
  640. package/dist/sharing/actions/create-agent-resource-link.js +72 -0
  641. package/dist/sharing/actions/create-agent-resource-link.js.map +1 -0
  642. package/dist/sharing/registry.d.ts +17 -0
  643. package/dist/sharing/registry.d.ts.map +1 -1
  644. package/dist/sharing/registry.js.map +1 -1
  645. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +92 -0
  646. package/dist/vite/client.d.ts.map +1 -1
  647. package/dist/vite/client.js +1 -0
  648. package/dist/vite/client.js.map +1 -1
  649. package/docs/content/agent-native-toolkit.mdx +162 -0
  650. package/docs/content/components.mdx +13 -0
  651. package/docs/content/creating-templates.mdx +7 -0
  652. package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +73 -0
  653. package/docs/content/locales/ar-SA/components.mdx +9 -0
  654. package/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
  655. package/docs/content/locales/ar-SA/sharing.mdx +15 -7
  656. package/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
  657. package/docs/content/locales/ar-SA/template-clips.mdx +7 -0
  658. package/docs/content/locales/ar-SA/tracking.mdx +6 -0
  659. package/docs/content/locales/de-DE/agent-native-toolkit.mdx +77 -0
  660. package/docs/content/locales/de-DE/components.mdx +9 -0
  661. package/docs/content/locales/de-DE/creating-templates.mdx +2 -0
  662. package/docs/content/locales/de-DE/sharing.mdx +15 -7
  663. package/docs/content/locales/de-DE/template-analytics.mdx +6 -0
  664. package/docs/content/locales/de-DE/template-clips.mdx +7 -0
  665. package/docs/content/locales/de-DE/tracking.mdx +6 -0
  666. package/docs/content/locales/es-ES/agent-native-toolkit.mdx +77 -0
  667. package/docs/content/locales/es-ES/components.mdx +9 -0
  668. package/docs/content/locales/es-ES/creating-templates.mdx +2 -0
  669. package/docs/content/locales/es-ES/sharing.mdx +15 -7
  670. package/docs/content/locales/es-ES/template-analytics.mdx +6 -0
  671. package/docs/content/locales/es-ES/template-clips.mdx +7 -0
  672. package/docs/content/locales/es-ES/tracking.mdx +6 -0
  673. package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +79 -0
  674. package/docs/content/locales/fr-FR/components.mdx +9 -0
  675. package/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
  676. package/docs/content/locales/fr-FR/sharing.mdx +15 -7
  677. package/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
  678. package/docs/content/locales/fr-FR/template-clips.mdx +7 -0
  679. package/docs/content/locales/fr-FR/tracking.mdx +6 -0
  680. package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +74 -0
  681. package/docs/content/locales/hi-IN/components.mdx +9 -0
  682. package/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
  683. package/docs/content/locales/hi-IN/sharing.mdx +15 -7
  684. package/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
  685. package/docs/content/locales/hi-IN/template-clips.mdx +7 -0
  686. package/docs/content/locales/hi-IN/tracking.mdx +6 -0
  687. package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +67 -0
  688. package/docs/content/locales/ja-JP/components.mdx +9 -0
  689. package/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
  690. package/docs/content/locales/ja-JP/sharing.mdx +15 -7
  691. package/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
  692. package/docs/content/locales/ja-JP/template-clips.mdx +7 -0
  693. package/docs/content/locales/ja-JP/tracking.mdx +6 -0
  694. package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +63 -0
  695. package/docs/content/locales/ko-KR/components.mdx +9 -0
  696. package/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
  697. package/docs/content/locales/ko-KR/sharing.mdx +15 -7
  698. package/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
  699. package/docs/content/locales/ko-KR/template-clips.mdx +7 -0
  700. package/docs/content/locales/ko-KR/tracking.mdx +6 -0
  701. package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +77 -0
  702. package/docs/content/locales/pt-BR/components.mdx +9 -0
  703. package/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
  704. package/docs/content/locales/pt-BR/sharing.mdx +15 -7
  705. package/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
  706. package/docs/content/locales/pt-BR/template-clips.mdx +7 -0
  707. package/docs/content/locales/pt-BR/tracking.mdx +6 -0
  708. package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +61 -0
  709. package/docs/content/locales/zh-CN/components.mdx +9 -0
  710. package/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
  711. package/docs/content/locales/zh-CN/sharing.mdx +15 -7
  712. package/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
  713. package/docs/content/locales/zh-CN/template-clips.mdx +7 -0
  714. package/docs/content/locales/zh-CN/tracking.mdx +6 -0
  715. package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +61 -0
  716. package/docs/content/locales/zh-TW/components.mdx +9 -0
  717. package/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
  718. package/docs/content/locales/zh-TW/sharing.mdx +15 -7
  719. package/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
  720. package/docs/content/locales/zh-TW/template-clips.mdx +7 -0
  721. package/docs/content/locales/zh-TW/tracking.mdx +6 -0
  722. package/docs/content/sharing.mdx +39 -7
  723. package/docs/content/template-analytics.mdx +6 -0
  724. package/docs/content/template-clips.mdx +7 -0
  725. package/docs/content/tracking.mdx +6 -0
  726. package/package.json +10 -2
  727. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +92 -0
  728. package/corpus/templates/analytics/app/components/ui/accordion.tsx +0 -56
  729. package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +0 -139
  730. package/corpus/templates/analytics/app/components/ui/alert.tsx +0 -59
  731. package/corpus/templates/analytics/app/components/ui/aspect-ratio.tsx +0 -5
  732. package/corpus/templates/analytics/app/components/ui/avatar.tsx +0 -48
  733. package/corpus/templates/analytics/app/components/ui/badge.tsx +0 -37
  734. package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +0 -115
  735. package/corpus/templates/analytics/app/components/ui/button.tsx +0 -57
  736. package/corpus/templates/analytics/app/components/ui/card.tsx +0 -86
  737. package/corpus/templates/analytics/app/components/ui/carousel.tsx +0 -260
  738. package/corpus/templates/analytics/app/components/ui/checkbox.tsx +0 -28
  739. package/corpus/templates/analytics/app/components/ui/collapsible.tsx +0 -9
  740. package/corpus/templates/analytics/app/components/ui/command.tsx +0 -154
  741. package/corpus/templates/analytics/app/components/ui/context-menu.tsx +0 -202
  742. package/corpus/templates/analytics/app/components/ui/date-picker.tsx +0 -68
  743. package/corpus/templates/analytics/app/components/ui/dialog.tsx +0 -130
  744. package/corpus/templates/analytics/app/components/ui/drawer.tsx +0 -116
  745. package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +0 -212
  746. package/corpus/templates/analytics/app/components/ui/form.tsx +0 -177
  747. package/corpus/templates/analytics/app/components/ui/hover-card.tsx +0 -27
  748. package/corpus/templates/analytics/app/components/ui/input-otp.tsx +0 -69
  749. package/corpus/templates/analytics/app/components/ui/input.tsx +0 -22
  750. package/corpus/templates/analytics/app/components/ui/label.tsx +0 -24
  751. package/corpus/templates/analytics/app/components/ui/menubar.tsx +0 -234
  752. package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +0 -128
  753. package/corpus/templates/analytics/app/components/ui/pagination.tsx +0 -121
  754. package/corpus/templates/analytics/app/components/ui/popover.tsx +0 -44
  755. package/corpus/templates/analytics/app/components/ui/progress.tsx +0 -26
  756. package/corpus/templates/analytics/app/components/ui/radio-group.tsx +0 -42
  757. package/corpus/templates/analytics/app/components/ui/resizable.tsx +0 -43
  758. package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +0 -46
  759. package/corpus/templates/analytics/app/components/ui/select.tsx +0 -158
  760. package/corpus/templates/analytics/app/components/ui/separator.tsx +0 -29
  761. package/corpus/templates/analytics/app/components/ui/sheet.tsx +0 -160
  762. package/corpus/templates/analytics/app/components/ui/sidebar.tsx +0 -782
  763. package/corpus/templates/analytics/app/components/ui/skeleton.tsx +0 -15
  764. package/corpus/templates/analytics/app/components/ui/slider.tsx +0 -26
  765. package/corpus/templates/analytics/app/components/ui/sonner.tsx +0 -58
  766. package/corpus/templates/analytics/app/components/ui/spinner.tsx +0 -17
  767. package/corpus/templates/analytics/app/components/ui/switch.tsx +0 -27
  768. package/corpus/templates/analytics/app/components/ui/table.tsx +0 -117
  769. package/corpus/templates/analytics/app/components/ui/tabs.tsx +0 -53
  770. package/corpus/templates/analytics/app/components/ui/textarea.tsx +0 -23
  771. package/corpus/templates/analytics/app/components/ui/toast.tsx +0 -127
  772. package/corpus/templates/analytics/app/components/ui/toaster.tsx +0 -33
  773. package/corpus/templates/analytics/app/components/ui/toggle-group.tsx +0 -59
  774. package/corpus/templates/analytics/app/components/ui/toggle.tsx +0 -43
  775. package/corpus/templates/analytics/app/components/ui/tooltip.tsx +0 -30
  776. package/corpus/templates/analytics/app/components/ui/use-toast.ts +0 -3
  777. package/corpus/templates/analytics/app/hooks/use-mobile.tsx +0 -21
  778. package/corpus/templates/analytics/app/hooks/use-toast.ts +0 -188
  779. package/corpus/templates/assets/app/components/layout/HeaderActions.tsx +0 -84
  780. package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +0 -139
  781. package/corpus/templates/assets/app/components/ui/alert.tsx +0 -59
  782. package/corpus/templates/assets/app/components/ui/avatar.tsx +0 -48
  783. package/corpus/templates/assets/app/components/ui/badge.tsx +0 -37
  784. package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +0 -115
  785. package/corpus/templates/assets/app/components/ui/button.tsx +0 -57
  786. package/corpus/templates/assets/app/components/ui/card.tsx +0 -86
  787. package/corpus/templates/assets/app/components/ui/checkbox.tsx +0 -28
  788. package/corpus/templates/assets/app/components/ui/dialog.tsx +0 -130
  789. package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +0 -212
  790. package/corpus/templates/assets/app/components/ui/hover-card.tsx +0 -27
  791. package/corpus/templates/assets/app/components/ui/input.tsx +0 -22
  792. package/corpus/templates/assets/app/components/ui/label.tsx +0 -24
  793. package/corpus/templates/assets/app/components/ui/pagination.tsx +0 -121
  794. package/corpus/templates/assets/app/components/ui/popover.tsx +0 -44
  795. package/corpus/templates/assets/app/components/ui/progress.tsx +0 -26
  796. package/corpus/templates/assets/app/components/ui/scroll-area.tsx +0 -46
  797. package/corpus/templates/assets/app/components/ui/select.tsx +0 -158
  798. package/corpus/templates/assets/app/components/ui/separator.tsx +0 -29
  799. package/corpus/templates/assets/app/components/ui/sheet.tsx +0 -160
  800. package/corpus/templates/assets/app/components/ui/skeleton.tsx +0 -15
  801. package/corpus/templates/assets/app/components/ui/slider.tsx +0 -26
  802. package/corpus/templates/assets/app/components/ui/sonner.tsx +0 -58
  803. package/corpus/templates/assets/app/components/ui/spinner.tsx +0 -17
  804. package/corpus/templates/assets/app/components/ui/table.tsx +0 -117
  805. package/corpus/templates/assets/app/components/ui/tabs.tsx +0 -53
  806. package/corpus/templates/assets/app/components/ui/tooltip.tsx +0 -30
  807. package/corpus/templates/brain/app/components/ui/badge.tsx +0 -37
  808. package/corpus/templates/brain/app/components/ui/button.tsx +0 -57
  809. package/corpus/templates/brain/app/components/ui/card.tsx +0 -86
  810. package/corpus/templates/brain/app/components/ui/input.tsx +0 -22
  811. package/corpus/templates/brain/app/components/ui/label.tsx +0 -24
  812. package/corpus/templates/brain/app/components/ui/progress.tsx +0 -26
  813. package/corpus/templates/brain/app/components/ui/select.tsx +0 -158
  814. package/corpus/templates/brain/app/components/ui/separator.tsx +0 -29
  815. package/corpus/templates/brain/app/components/ui/sheet.tsx +0 -160
  816. package/corpus/templates/brain/app/components/ui/skeleton.tsx +0 -15
  817. package/corpus/templates/brain/app/components/ui/sonner.tsx +0 -58
  818. package/corpus/templates/brain/app/components/ui/switch.tsx +0 -27
  819. package/corpus/templates/brain/app/components/ui/table.tsx +0 -117
  820. package/corpus/templates/brain/app/components/ui/textarea.tsx +0 -23
  821. package/corpus/templates/brain/app/components/ui/tooltip.tsx +0 -30
  822. package/corpus/templates/calendar/app/components/ui/accordion.tsx +0 -56
  823. package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +0 -139
  824. package/corpus/templates/calendar/app/components/ui/alert.tsx +0 -59
  825. package/corpus/templates/calendar/app/components/ui/aspect-ratio.tsx +0 -5
  826. package/corpus/templates/calendar/app/components/ui/avatar.tsx +0 -48
  827. package/corpus/templates/calendar/app/components/ui/badge.tsx +0 -37
  828. package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +0 -115
  829. package/corpus/templates/calendar/app/components/ui/button.tsx +0 -57
  830. package/corpus/templates/calendar/app/components/ui/calendar.tsx +0 -68
  831. package/corpus/templates/calendar/app/components/ui/card.tsx +0 -86
  832. package/corpus/templates/calendar/app/components/ui/carousel.tsx +0 -260
  833. package/corpus/templates/calendar/app/components/ui/chart.tsx +0 -375
  834. package/corpus/templates/calendar/app/components/ui/checkbox.tsx +0 -28
  835. package/corpus/templates/calendar/app/components/ui/collapsible.tsx +0 -9
  836. package/corpus/templates/calendar/app/components/ui/command.tsx +0 -154
  837. package/corpus/templates/calendar/app/components/ui/context-menu.tsx +0 -202
  838. package/corpus/templates/calendar/app/components/ui/dialog.tsx +0 -130
  839. package/corpus/templates/calendar/app/components/ui/drawer.tsx +0 -116
  840. package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +0 -212
  841. package/corpus/templates/calendar/app/components/ui/form.tsx +0 -177
  842. package/corpus/templates/calendar/app/components/ui/hover-card.tsx +0 -27
  843. package/corpus/templates/calendar/app/components/ui/input-otp.tsx +0 -69
  844. package/corpus/templates/calendar/app/components/ui/input.tsx +0 -22
  845. package/corpus/templates/calendar/app/components/ui/label.tsx +0 -24
  846. package/corpus/templates/calendar/app/components/ui/menubar.tsx +0 -234
  847. package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +0 -128
  848. package/corpus/templates/calendar/app/components/ui/pagination.tsx +0 -121
  849. package/corpus/templates/calendar/app/components/ui/popover.tsx +0 -44
  850. package/corpus/templates/calendar/app/components/ui/progress.tsx +0 -26
  851. package/corpus/templates/calendar/app/components/ui/radio-group.tsx +0 -42
  852. package/corpus/templates/calendar/app/components/ui/resizable.tsx +0 -43
  853. package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +0 -46
  854. package/corpus/templates/calendar/app/components/ui/select.tsx +0 -158
  855. package/corpus/templates/calendar/app/components/ui/separator.tsx +0 -29
  856. package/corpus/templates/calendar/app/components/ui/sheet.tsx +0 -160
  857. package/corpus/templates/calendar/app/components/ui/sidebar.tsx +0 -782
  858. package/corpus/templates/calendar/app/components/ui/skeleton.tsx +0 -15
  859. package/corpus/templates/calendar/app/components/ui/slider.tsx +0 -26
  860. package/corpus/templates/calendar/app/components/ui/spinner.tsx +0 -17
  861. package/corpus/templates/calendar/app/components/ui/switch.tsx +0 -27
  862. package/corpus/templates/calendar/app/components/ui/table.tsx +0 -117
  863. package/corpus/templates/calendar/app/components/ui/tabs.tsx +0 -53
  864. package/corpus/templates/calendar/app/components/ui/textarea.tsx +0 -23
  865. package/corpus/templates/calendar/app/components/ui/toast.tsx +0 -127
  866. package/corpus/templates/calendar/app/components/ui/toaster.tsx +0 -33
  867. package/corpus/templates/calendar/app/components/ui/toggle-group.tsx +0 -59
  868. package/corpus/templates/calendar/app/components/ui/toggle.tsx +0 -43
  869. package/corpus/templates/calendar/app/components/ui/tooltip.tsx +0 -30
  870. package/corpus/templates/calendar/app/components/ui/use-toast.ts +0 -3
  871. package/corpus/templates/calendar/app/hooks/use-mobile.tsx +0 -21
  872. package/corpus/templates/calendar/app/hooks/use-toast.ts +0 -188
  873. package/corpus/templates/chat/app/components/layout/HeaderActions.tsx +0 -84
  874. package/corpus/templates/chat/app/components/ui/accordion.tsx +0 -56
  875. package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +0 -139
  876. package/corpus/templates/chat/app/components/ui/alert.tsx +0 -59
  877. package/corpus/templates/chat/app/components/ui/aspect-ratio.tsx +0 -5
  878. package/corpus/templates/chat/app/components/ui/avatar.tsx +0 -48
  879. package/corpus/templates/chat/app/components/ui/badge.tsx +0 -37
  880. package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +0 -115
  881. package/corpus/templates/chat/app/components/ui/button.tsx +0 -57
  882. package/corpus/templates/chat/app/components/ui/calendar.tsx +0 -68
  883. package/corpus/templates/chat/app/components/ui/card.tsx +0 -86
  884. package/corpus/templates/chat/app/components/ui/carousel.tsx +0 -260
  885. package/corpus/templates/chat/app/components/ui/chart.tsx +0 -375
  886. package/corpus/templates/chat/app/components/ui/checkbox.tsx +0 -28
  887. package/corpus/templates/chat/app/components/ui/collapsible.tsx +0 -9
  888. package/corpus/templates/chat/app/components/ui/command.tsx +0 -154
  889. package/corpus/templates/chat/app/components/ui/context-menu.tsx +0 -202
  890. package/corpus/templates/chat/app/components/ui/dialog.tsx +0 -130
  891. package/corpus/templates/chat/app/components/ui/drawer.tsx +0 -116
  892. package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +0 -212
  893. package/corpus/templates/chat/app/components/ui/form.tsx +0 -177
  894. package/corpus/templates/chat/app/components/ui/hover-card.tsx +0 -27
  895. package/corpus/templates/chat/app/components/ui/input-otp.tsx +0 -69
  896. package/corpus/templates/chat/app/components/ui/input.tsx +0 -22
  897. package/corpus/templates/chat/app/components/ui/label.tsx +0 -24
  898. package/corpus/templates/chat/app/components/ui/menubar.tsx +0 -234
  899. package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +0 -128
  900. package/corpus/templates/chat/app/components/ui/pagination.tsx +0 -121
  901. package/corpus/templates/chat/app/components/ui/popover.tsx +0 -44
  902. package/corpus/templates/chat/app/components/ui/progress.tsx +0 -26
  903. package/corpus/templates/chat/app/components/ui/radio-group.tsx +0 -42
  904. package/corpus/templates/chat/app/components/ui/resizable.tsx +0 -43
  905. package/corpus/templates/chat/app/components/ui/scroll-area.tsx +0 -46
  906. package/corpus/templates/chat/app/components/ui/select.tsx +0 -158
  907. package/corpus/templates/chat/app/components/ui/separator.tsx +0 -29
  908. package/corpus/templates/chat/app/components/ui/sheet.tsx +0 -160
  909. package/corpus/templates/chat/app/components/ui/sidebar.tsx +0 -782
  910. package/corpus/templates/chat/app/components/ui/skeleton.tsx +0 -15
  911. package/corpus/templates/chat/app/components/ui/slider.tsx +0 -26
  912. package/corpus/templates/chat/app/components/ui/sonner.tsx +0 -58
  913. package/corpus/templates/chat/app/components/ui/spinner.tsx +0 -17
  914. package/corpus/templates/chat/app/components/ui/switch.tsx +0 -27
  915. package/corpus/templates/chat/app/components/ui/table.tsx +0 -117
  916. package/corpus/templates/chat/app/components/ui/tabs.tsx +0 -53
  917. package/corpus/templates/chat/app/components/ui/textarea.tsx +0 -23
  918. package/corpus/templates/chat/app/components/ui/toast.tsx +0 -127
  919. package/corpus/templates/chat/app/components/ui/toaster.tsx +0 -33
  920. package/corpus/templates/chat/app/components/ui/toggle-group.tsx +0 -59
  921. package/corpus/templates/chat/app/components/ui/toggle.tsx +0 -43
  922. package/corpus/templates/chat/app/components/ui/tooltip.tsx +0 -30
  923. package/corpus/templates/chat/app/components/ui/use-toast.ts +0 -3
  924. package/corpus/templates/chat/app/hooks/use-mobile.tsx +0 -21
  925. package/corpus/templates/chat/app/hooks/use-toast.ts +0 -188
  926. package/corpus/templates/clips/app/components/layout/HeaderActions.tsx +0 -84
  927. package/corpus/templates/clips/app/components/ui/accordion.tsx +0 -56
  928. package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +0 -139
  929. package/corpus/templates/clips/app/components/ui/alert.tsx +0 -59
  930. package/corpus/templates/clips/app/components/ui/aspect-ratio.tsx +0 -5
  931. package/corpus/templates/clips/app/components/ui/avatar.tsx +0 -48
  932. package/corpus/templates/clips/app/components/ui/badge.tsx +0 -37
  933. package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +0 -115
  934. package/corpus/templates/clips/app/components/ui/button.tsx +0 -57
  935. package/corpus/templates/clips/app/components/ui/calendar.tsx +0 -68
  936. package/corpus/templates/clips/app/components/ui/card.tsx +0 -86
  937. package/corpus/templates/clips/app/components/ui/carousel.tsx +0 -260
  938. package/corpus/templates/clips/app/components/ui/chart.tsx +0 -375
  939. package/corpus/templates/clips/app/components/ui/checkbox.tsx +0 -28
  940. package/corpus/templates/clips/app/components/ui/collapsible.tsx +0 -9
  941. package/corpus/templates/clips/app/components/ui/command.tsx +0 -154
  942. package/corpus/templates/clips/app/components/ui/context-menu.tsx +0 -202
  943. package/corpus/templates/clips/app/components/ui/dialog.tsx +0 -130
  944. package/corpus/templates/clips/app/components/ui/drawer.tsx +0 -116
  945. package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +0 -212
  946. package/corpus/templates/clips/app/components/ui/form.tsx +0 -177
  947. package/corpus/templates/clips/app/components/ui/hover-card.tsx +0 -27
  948. package/corpus/templates/clips/app/components/ui/input-otp.tsx +0 -69
  949. package/corpus/templates/clips/app/components/ui/input.tsx +0 -22
  950. package/corpus/templates/clips/app/components/ui/label.tsx +0 -24
  951. package/corpus/templates/clips/app/components/ui/menubar.tsx +0 -234
  952. package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +0 -128
  953. package/corpus/templates/clips/app/components/ui/pagination.tsx +0 -121
  954. package/corpus/templates/clips/app/components/ui/popover.tsx +0 -44
  955. package/corpus/templates/clips/app/components/ui/progress.tsx +0 -26
  956. package/corpus/templates/clips/app/components/ui/radio-group.tsx +0 -42
  957. package/corpus/templates/clips/app/components/ui/resizable.tsx +0 -43
  958. package/corpus/templates/clips/app/components/ui/scroll-area.tsx +0 -46
  959. package/corpus/templates/clips/app/components/ui/select.tsx +0 -158
  960. package/corpus/templates/clips/app/components/ui/separator.tsx +0 -29
  961. package/corpus/templates/clips/app/components/ui/sheet.tsx +0 -160
  962. package/corpus/templates/clips/app/components/ui/sidebar.tsx +0 -782
  963. package/corpus/templates/clips/app/components/ui/skeleton.tsx +0 -15
  964. package/corpus/templates/clips/app/components/ui/slider.tsx +0 -26
  965. package/corpus/templates/clips/app/components/ui/sonner.tsx +0 -58
  966. package/corpus/templates/clips/app/components/ui/spinner.tsx +0 -17
  967. package/corpus/templates/clips/app/components/ui/switch.tsx +0 -27
  968. package/corpus/templates/clips/app/components/ui/table.tsx +0 -117
  969. package/corpus/templates/clips/app/components/ui/tabs.tsx +0 -53
  970. package/corpus/templates/clips/app/components/ui/textarea.tsx +0 -23
  971. package/corpus/templates/clips/app/components/ui/toast.tsx +0 -127
  972. package/corpus/templates/clips/app/components/ui/toaster.tsx +0 -33
  973. package/corpus/templates/clips/app/components/ui/toggle-group.tsx +0 -59
  974. package/corpus/templates/clips/app/components/ui/toggle.tsx +0 -43
  975. package/corpus/templates/clips/app/components/ui/tooltip.tsx +0 -30
  976. package/corpus/templates/clips/app/components/ui/use-toast.ts +0 -3
  977. package/corpus/templates/clips/app/hooks/use-mobile.tsx +0 -21
  978. package/corpus/templates/clips/app/hooks/use-toast.ts +0 -188
  979. package/corpus/templates/content/app/components/layout/HeaderActions.tsx +0 -84
  980. package/corpus/templates/content/app/components/ui/alert-dialog.tsx +0 -139
  981. package/corpus/templates/content/app/components/ui/button.tsx +0 -57
  982. package/corpus/templates/content/app/components/ui/dialog.tsx +0 -130
  983. package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +0 -212
  984. package/corpus/templates/content/app/components/ui/input.tsx +0 -22
  985. package/corpus/templates/content/app/components/ui/label.tsx +0 -24
  986. package/corpus/templates/content/app/components/ui/popover.tsx +0 -44
  987. package/corpus/templates/content/app/components/ui/separator.tsx +0 -29
  988. package/corpus/templates/content/app/components/ui/sheet.tsx +0 -160
  989. package/corpus/templates/content/app/components/ui/skeleton.tsx +0 -15
  990. package/corpus/templates/content/app/components/ui/sonner.tsx +0 -58
  991. package/corpus/templates/content/app/components/ui/spinner.tsx +0 -17
  992. package/corpus/templates/content/app/components/ui/table.tsx +0 -117
  993. package/corpus/templates/content/app/components/ui/toast.tsx +0 -127
  994. package/corpus/templates/content/app/components/ui/toaster.tsx +0 -33
  995. package/corpus/templates/content/app/components/ui/toggle.tsx +0 -43
  996. package/corpus/templates/content/app/components/ui/tooltip.tsx +0 -30
  997. package/corpus/templates/content/app/components/ui/use-toast.ts +0 -3
  998. package/corpus/templates/content/app/hooks/use-mobile.tsx +0 -21
  999. package/corpus/templates/content/app/hooks/use-toast.ts +0 -188
  1000. package/corpus/templates/design/app/components/layout/HeaderActions.tsx +0 -84
  1001. package/corpus/templates/design/app/components/ui/accordion.tsx +0 -56
  1002. package/corpus/templates/design/app/components/ui/alert-dialog.tsx +0 -139
  1003. package/corpus/templates/design/app/components/ui/alert.tsx +0 -59
  1004. package/corpus/templates/design/app/components/ui/aspect-ratio.tsx +0 -5
  1005. package/corpus/templates/design/app/components/ui/avatar.tsx +0 -48
  1006. package/corpus/templates/design/app/components/ui/badge.tsx +0 -37
  1007. package/corpus/templates/design/app/components/ui/breadcrumb.tsx +0 -115
  1008. package/corpus/templates/design/app/components/ui/button.tsx +0 -57
  1009. package/corpus/templates/design/app/components/ui/calendar.tsx +0 -68
  1010. package/corpus/templates/design/app/components/ui/card.tsx +0 -86
  1011. package/corpus/templates/design/app/components/ui/carousel.tsx +0 -260
  1012. package/corpus/templates/design/app/components/ui/chart.tsx +0 -375
  1013. package/corpus/templates/design/app/components/ui/checkbox.tsx +0 -28
  1014. package/corpus/templates/design/app/components/ui/collapsible.tsx +0 -9
  1015. package/corpus/templates/design/app/components/ui/command.tsx +0 -154
  1016. package/corpus/templates/design/app/components/ui/context-menu.tsx +0 -202
  1017. package/corpus/templates/design/app/components/ui/dialog.tsx +0 -130
  1018. package/corpus/templates/design/app/components/ui/drawer.tsx +0 -116
  1019. package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +0 -212
  1020. package/corpus/templates/design/app/components/ui/form.tsx +0 -177
  1021. package/corpus/templates/design/app/components/ui/hover-card.tsx +0 -27
  1022. package/corpus/templates/design/app/components/ui/input-otp.tsx +0 -69
  1023. package/corpus/templates/design/app/components/ui/input.tsx +0 -22
  1024. package/corpus/templates/design/app/components/ui/label.tsx +0 -24
  1025. package/corpus/templates/design/app/components/ui/menubar.tsx +0 -234
  1026. package/corpus/templates/design/app/components/ui/navigation-menu.tsx +0 -128
  1027. package/corpus/templates/design/app/components/ui/pagination.tsx +0 -121
  1028. package/corpus/templates/design/app/components/ui/popover.tsx +0 -44
  1029. package/corpus/templates/design/app/components/ui/progress.tsx +0 -26
  1030. package/corpus/templates/design/app/components/ui/radio-group.tsx +0 -42
  1031. package/corpus/templates/design/app/components/ui/resizable.tsx +0 -43
  1032. package/corpus/templates/design/app/components/ui/scroll-area.tsx +0 -46
  1033. package/corpus/templates/design/app/components/ui/select.tsx +0 -158
  1034. package/corpus/templates/design/app/components/ui/separator.tsx +0 -29
  1035. package/corpus/templates/design/app/components/ui/sheet.tsx +0 -160
  1036. package/corpus/templates/design/app/components/ui/sidebar.tsx +0 -782
  1037. package/corpus/templates/design/app/components/ui/skeleton.tsx +0 -15
  1038. package/corpus/templates/design/app/components/ui/slider.tsx +0 -26
  1039. package/corpus/templates/design/app/components/ui/sonner.tsx +0 -58
  1040. package/corpus/templates/design/app/components/ui/spinner.tsx +0 -17
  1041. package/corpus/templates/design/app/components/ui/switch.tsx +0 -27
  1042. package/corpus/templates/design/app/components/ui/table.tsx +0 -117
  1043. package/corpus/templates/design/app/components/ui/tabs.tsx +0 -53
  1044. package/corpus/templates/design/app/components/ui/textarea.tsx +0 -23
  1045. package/corpus/templates/design/app/components/ui/toast.tsx +0 -127
  1046. package/corpus/templates/design/app/components/ui/toaster.tsx +0 -33
  1047. package/corpus/templates/design/app/components/ui/toggle-group.tsx +0 -59
  1048. package/corpus/templates/design/app/components/ui/toggle.tsx +0 -43
  1049. package/corpus/templates/design/app/components/ui/tooltip.tsx +0 -30
  1050. package/corpus/templates/design/app/components/ui/use-toast.ts +0 -3
  1051. package/corpus/templates/design/app/hooks/use-mobile.tsx +0 -21
  1052. package/corpus/templates/design/app/hooks/use-toast.ts +0 -188
  1053. package/corpus/templates/forms/app/components/layout/HeaderActions.tsx +0 -84
  1054. package/corpus/templates/forms/app/components/ui/accordion.tsx +0 -56
  1055. package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +0 -139
  1056. package/corpus/templates/forms/app/components/ui/alert.tsx +0 -59
  1057. package/corpus/templates/forms/app/components/ui/aspect-ratio.tsx +0 -5
  1058. package/corpus/templates/forms/app/components/ui/avatar.tsx +0 -48
  1059. package/corpus/templates/forms/app/components/ui/badge.tsx +0 -37
  1060. package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +0 -115
  1061. package/corpus/templates/forms/app/components/ui/button.tsx +0 -57
  1062. package/corpus/templates/forms/app/components/ui/card.tsx +0 -86
  1063. package/corpus/templates/forms/app/components/ui/carousel.tsx +0 -260
  1064. package/corpus/templates/forms/app/components/ui/checkbox.tsx +0 -28
  1065. package/corpus/templates/forms/app/components/ui/collapsible.tsx +0 -9
  1066. package/corpus/templates/forms/app/components/ui/dialog.tsx +0 -130
  1067. package/corpus/templates/forms/app/components/ui/drawer.tsx +0 -116
  1068. package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +0 -212
  1069. package/corpus/templates/forms/app/components/ui/form.tsx +0 -177
  1070. package/corpus/templates/forms/app/components/ui/hover-card.tsx +0 -27
  1071. package/corpus/templates/forms/app/components/ui/input-otp.tsx +0 -69
  1072. package/corpus/templates/forms/app/components/ui/input.tsx +0 -22
  1073. package/corpus/templates/forms/app/components/ui/label.tsx +0 -24
  1074. package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +0 -128
  1075. package/corpus/templates/forms/app/components/ui/pagination.tsx +0 -121
  1076. package/corpus/templates/forms/app/components/ui/popover.tsx +0 -44
  1077. package/corpus/templates/forms/app/components/ui/progress.tsx +0 -26
  1078. package/corpus/templates/forms/app/components/ui/radio-group.tsx +0 -42
  1079. package/corpus/templates/forms/app/components/ui/resizable.tsx +0 -43
  1080. package/corpus/templates/forms/app/components/ui/scroll-area.tsx +0 -46
  1081. package/corpus/templates/forms/app/components/ui/select.tsx +0 -158
  1082. package/corpus/templates/forms/app/components/ui/separator.tsx +0 -29
  1083. package/corpus/templates/forms/app/components/ui/sheet.tsx +0 -160
  1084. package/corpus/templates/forms/app/components/ui/sidebar.tsx +0 -782
  1085. package/corpus/templates/forms/app/components/ui/skeleton.tsx +0 -15
  1086. package/corpus/templates/forms/app/components/ui/slider.tsx +0 -26
  1087. package/corpus/templates/forms/app/components/ui/sonner.tsx +0 -58
  1088. package/corpus/templates/forms/app/components/ui/spinner.tsx +0 -17
  1089. package/corpus/templates/forms/app/components/ui/switch.tsx +0 -27
  1090. package/corpus/templates/forms/app/components/ui/table.tsx +0 -117
  1091. package/corpus/templates/forms/app/components/ui/tabs.tsx +0 -53
  1092. package/corpus/templates/forms/app/components/ui/textarea.tsx +0 -23
  1093. package/corpus/templates/forms/app/components/ui/toast.tsx +0 -127
  1094. package/corpus/templates/forms/app/components/ui/toaster.tsx +0 -33
  1095. package/corpus/templates/forms/app/components/ui/toggle-group.tsx +0 -59
  1096. package/corpus/templates/forms/app/components/ui/toggle.tsx +0 -43
  1097. package/corpus/templates/forms/app/components/ui/tooltip.tsx +0 -30
  1098. package/corpus/templates/forms/app/hooks/use-mobile.tsx +0 -21
  1099. package/corpus/templates/forms/app/hooks/use-toast.ts +0 -188
  1100. package/corpus/templates/macros/app/components/layout/HeaderActions.tsx +0 -84
  1101. package/corpus/templates/macros/app/components/ui/accordion.tsx +0 -56
  1102. package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +0 -139
  1103. package/corpus/templates/macros/app/components/ui/alert.tsx +0 -59
  1104. package/corpus/templates/macros/app/components/ui/aspect-ratio.tsx +0 -5
  1105. package/corpus/templates/macros/app/components/ui/avatar.tsx +0 -48
  1106. package/corpus/templates/macros/app/components/ui/badge.tsx +0 -37
  1107. package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +0 -115
  1108. package/corpus/templates/macros/app/components/ui/chart.tsx +0 -375
  1109. package/corpus/templates/macros/app/components/ui/checkbox.tsx +0 -28
  1110. package/corpus/templates/macros/app/components/ui/collapsible.tsx +0 -9
  1111. package/corpus/templates/macros/app/components/ui/command.tsx +0 -154
  1112. package/corpus/templates/macros/app/components/ui/context-menu.tsx +0 -202
  1113. package/corpus/templates/macros/app/components/ui/drawer.tsx +0 -116
  1114. package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +0 -212
  1115. package/corpus/templates/macros/app/components/ui/form.tsx +0 -177
  1116. package/corpus/templates/macros/app/components/ui/hover-card.tsx +0 -27
  1117. package/corpus/templates/macros/app/components/ui/label.tsx +0 -24
  1118. package/corpus/templates/macros/app/components/ui/logo.tsx +0 -36
  1119. package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +0 -128
  1120. package/corpus/templates/macros/app/components/ui/pagination.tsx +0 -121
  1121. package/corpus/templates/macros/app/components/ui/popover.tsx +0 -44
  1122. package/corpus/templates/macros/app/components/ui/radio-group.tsx +0 -42
  1123. package/corpus/templates/macros/app/components/ui/scroll-area.tsx +0 -46
  1124. package/corpus/templates/macros/app/components/ui/select.tsx +0 -158
  1125. package/corpus/templates/macros/app/components/ui/separator.tsx +0 -29
  1126. package/corpus/templates/macros/app/components/ui/sheet.tsx +0 -160
  1127. package/corpus/templates/macros/app/components/ui/skeleton.tsx +0 -15
  1128. package/corpus/templates/macros/app/components/ui/slider.tsx +0 -26
  1129. package/corpus/templates/macros/app/components/ui/sonner.tsx +0 -58
  1130. package/corpus/templates/macros/app/components/ui/switch.tsx +0 -27
  1131. package/corpus/templates/macros/app/components/ui/table.tsx +0 -117
  1132. package/corpus/templates/macros/app/components/ui/toast.tsx +0 -127
  1133. package/corpus/templates/macros/app/components/ui/toggle-group.tsx +0 -59
  1134. package/corpus/templates/macros/app/components/ui/toggle.tsx +0 -43
  1135. package/corpus/templates/macros/app/components/ui/tooltip.tsx +0 -30
  1136. package/corpus/templates/mail/app/components/ui/accordion.tsx +0 -56
  1137. package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +0 -139
  1138. package/corpus/templates/mail/app/components/ui/alert.tsx +0 -59
  1139. package/corpus/templates/mail/app/components/ui/aspect-ratio.tsx +0 -5
  1140. package/corpus/templates/mail/app/components/ui/avatar.tsx +0 -48
  1141. package/corpus/templates/mail/app/components/ui/badge.tsx +0 -37
  1142. package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +0 -115
  1143. package/corpus/templates/mail/app/components/ui/button.tsx +0 -57
  1144. package/corpus/templates/mail/app/components/ui/card.tsx +0 -86
  1145. package/corpus/templates/mail/app/components/ui/carousel.tsx +0 -260
  1146. package/corpus/templates/mail/app/components/ui/checkbox.tsx +0 -28
  1147. package/corpus/templates/mail/app/components/ui/collapsible.tsx +0 -9
  1148. package/corpus/templates/mail/app/components/ui/dialog.tsx +0 -130
  1149. package/corpus/templates/mail/app/components/ui/drawer.tsx +0 -116
  1150. package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +0 -212
  1151. package/corpus/templates/mail/app/components/ui/form.tsx +0 -177
  1152. package/corpus/templates/mail/app/components/ui/hover-card.tsx +0 -27
  1153. package/corpus/templates/mail/app/components/ui/input-otp.tsx +0 -69
  1154. package/corpus/templates/mail/app/components/ui/label.tsx +0 -24
  1155. package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +0 -128
  1156. package/corpus/templates/mail/app/components/ui/pagination.tsx +0 -121
  1157. package/corpus/templates/mail/app/components/ui/popover.tsx +0 -44
  1158. package/corpus/templates/mail/app/components/ui/progress.tsx +0 -26
  1159. package/corpus/templates/mail/app/components/ui/radio-group.tsx +0 -42
  1160. package/corpus/templates/mail/app/components/ui/resizable.tsx +0 -43
  1161. package/corpus/templates/mail/app/components/ui/scroll-area.tsx +0 -46
  1162. package/corpus/templates/mail/app/components/ui/select.tsx +0 -158
  1163. package/corpus/templates/mail/app/components/ui/separator.tsx +0 -29
  1164. package/corpus/templates/mail/app/components/ui/sheet.tsx +0 -160
  1165. package/corpus/templates/mail/app/components/ui/sidebar.tsx +0 -782
  1166. package/corpus/templates/mail/app/components/ui/skeleton.tsx +0 -15
  1167. package/corpus/templates/mail/app/components/ui/slider.tsx +0 -26
  1168. package/corpus/templates/mail/app/components/ui/spinner.tsx +0 -17
  1169. package/corpus/templates/mail/app/components/ui/switch.tsx +0 -27
  1170. package/corpus/templates/mail/app/components/ui/table.tsx +0 -117
  1171. package/corpus/templates/mail/app/components/ui/tabs.tsx +0 -53
  1172. package/corpus/templates/mail/app/components/ui/toast.tsx +0 -127
  1173. package/corpus/templates/mail/app/components/ui/toaster.tsx +0 -33
  1174. package/corpus/templates/mail/app/components/ui/toggle-group.tsx +0 -59
  1175. package/corpus/templates/mail/app/components/ui/toggle.tsx +0 -43
  1176. package/corpus/templates/mail/app/components/ui/tooltip.tsx +0 -30
  1177. package/corpus/templates/mail/app/hooks/use-toast.ts +0 -188
  1178. package/corpus/templates/plan/app/components/layout/HeaderActions.tsx +0 -84
  1179. package/corpus/templates/plan/app/components/ui/accordion.tsx +0 -56
  1180. package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +0 -139
  1181. package/corpus/templates/plan/app/components/ui/alert.tsx +0 -59
  1182. package/corpus/templates/plan/app/components/ui/aspect-ratio.tsx +0 -5
  1183. package/corpus/templates/plan/app/components/ui/avatar.tsx +0 -48
  1184. package/corpus/templates/plan/app/components/ui/badge.tsx +0 -37
  1185. package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +0 -115
  1186. package/corpus/templates/plan/app/components/ui/button.tsx +0 -57
  1187. package/corpus/templates/plan/app/components/ui/calendar.tsx +0 -68
  1188. package/corpus/templates/plan/app/components/ui/card.tsx +0 -86
  1189. package/corpus/templates/plan/app/components/ui/carousel.tsx +0 -260
  1190. package/corpus/templates/plan/app/components/ui/chart.tsx +0 -375
  1191. package/corpus/templates/plan/app/components/ui/checkbox.tsx +0 -28
  1192. package/corpus/templates/plan/app/components/ui/collapsible.tsx +0 -9
  1193. package/corpus/templates/plan/app/components/ui/command.tsx +0 -154
  1194. package/corpus/templates/plan/app/components/ui/context-menu.tsx +0 -202
  1195. package/corpus/templates/plan/app/components/ui/dialog.tsx +0 -130
  1196. package/corpus/templates/plan/app/components/ui/drawer.tsx +0 -116
  1197. package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +0 -212
  1198. package/corpus/templates/plan/app/components/ui/form.tsx +0 -177
  1199. package/corpus/templates/plan/app/components/ui/hover-card.tsx +0 -27
  1200. package/corpus/templates/plan/app/components/ui/input-otp.tsx +0 -69
  1201. package/corpus/templates/plan/app/components/ui/input.tsx +0 -22
  1202. package/corpus/templates/plan/app/components/ui/label.tsx +0 -24
  1203. package/corpus/templates/plan/app/components/ui/menubar.tsx +0 -234
  1204. package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +0 -128
  1205. package/corpus/templates/plan/app/components/ui/pagination.tsx +0 -121
  1206. package/corpus/templates/plan/app/components/ui/popover.tsx +0 -44
  1207. package/corpus/templates/plan/app/components/ui/progress.tsx +0 -26
  1208. package/corpus/templates/plan/app/components/ui/radio-group.tsx +0 -42
  1209. package/corpus/templates/plan/app/components/ui/resizable.tsx +0 -43
  1210. package/corpus/templates/plan/app/components/ui/scroll-area.tsx +0 -46
  1211. package/corpus/templates/plan/app/components/ui/select.tsx +0 -158
  1212. package/corpus/templates/plan/app/components/ui/separator.tsx +0 -29
  1213. package/corpus/templates/plan/app/components/ui/sheet.tsx +0 -160
  1214. package/corpus/templates/plan/app/components/ui/sidebar.tsx +0 -782
  1215. package/corpus/templates/plan/app/components/ui/skeleton.tsx +0 -15
  1216. package/corpus/templates/plan/app/components/ui/slider.tsx +0 -26
  1217. package/corpus/templates/plan/app/components/ui/sonner.tsx +0 -58
  1218. package/corpus/templates/plan/app/components/ui/spinner.tsx +0 -17
  1219. package/corpus/templates/plan/app/components/ui/switch.tsx +0 -27
  1220. package/corpus/templates/plan/app/components/ui/table.tsx +0 -117
  1221. package/corpus/templates/plan/app/components/ui/textarea.tsx +0 -23
  1222. package/corpus/templates/plan/app/components/ui/toast.tsx +0 -127
  1223. package/corpus/templates/plan/app/components/ui/toaster.tsx +0 -33
  1224. package/corpus/templates/plan/app/components/ui/toggle-group.tsx +0 -59
  1225. package/corpus/templates/plan/app/components/ui/toggle.tsx +0 -43
  1226. package/corpus/templates/plan/app/components/ui/tooltip.tsx +0 -30
  1227. package/corpus/templates/plan/app/components/ui/use-toast.ts +0 -3
  1228. package/corpus/templates/plan/app/hooks/use-mobile.tsx +0 -21
  1229. package/corpus/templates/plan/app/hooks/use-toast.ts +0 -188
  1230. package/corpus/templates/slides/app/components/layout/HeaderActions.tsx +0 -84
  1231. package/corpus/templates/slides/app/components/ui/accordion.tsx +0 -56
  1232. package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +0 -139
  1233. package/corpus/templates/slides/app/components/ui/alert.tsx +0 -59
  1234. package/corpus/templates/slides/app/components/ui/aspect-ratio.tsx +0 -5
  1235. package/corpus/templates/slides/app/components/ui/avatar.tsx +0 -48
  1236. package/corpus/templates/slides/app/components/ui/badge.tsx +0 -37
  1237. package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +0 -115
  1238. package/corpus/templates/slides/app/components/ui/button.tsx +0 -57
  1239. package/corpus/templates/slides/app/components/ui/calendar.tsx +0 -68
  1240. package/corpus/templates/slides/app/components/ui/card.tsx +0 -86
  1241. package/corpus/templates/slides/app/components/ui/carousel.tsx +0 -260
  1242. package/corpus/templates/slides/app/components/ui/chart.tsx +0 -375
  1243. package/corpus/templates/slides/app/components/ui/checkbox.tsx +0 -28
  1244. package/corpus/templates/slides/app/components/ui/collapsible.tsx +0 -9
  1245. package/corpus/templates/slides/app/components/ui/command.tsx +0 -154
  1246. package/corpus/templates/slides/app/components/ui/context-menu.tsx +0 -202
  1247. package/corpus/templates/slides/app/components/ui/dialog.tsx +0 -130
  1248. package/corpus/templates/slides/app/components/ui/drawer.tsx +0 -116
  1249. package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +0 -212
  1250. package/corpus/templates/slides/app/components/ui/form.tsx +0 -177
  1251. package/corpus/templates/slides/app/components/ui/hover-card.tsx +0 -27
  1252. package/corpus/templates/slides/app/components/ui/input-otp.tsx +0 -69
  1253. package/corpus/templates/slides/app/components/ui/input.tsx +0 -22
  1254. package/corpus/templates/slides/app/components/ui/label.tsx +0 -24
  1255. package/corpus/templates/slides/app/components/ui/menubar.tsx +0 -234
  1256. package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +0 -128
  1257. package/corpus/templates/slides/app/components/ui/pagination.tsx +0 -121
  1258. package/corpus/templates/slides/app/components/ui/popover.tsx +0 -44
  1259. package/corpus/templates/slides/app/components/ui/progress.tsx +0 -26
  1260. package/corpus/templates/slides/app/components/ui/radio-group.tsx +0 -42
  1261. package/corpus/templates/slides/app/components/ui/resizable.tsx +0 -43
  1262. package/corpus/templates/slides/app/components/ui/scroll-area.tsx +0 -46
  1263. package/corpus/templates/slides/app/components/ui/select.tsx +0 -158
  1264. package/corpus/templates/slides/app/components/ui/separator.tsx +0 -29
  1265. package/corpus/templates/slides/app/components/ui/sheet.tsx +0 -160
  1266. package/corpus/templates/slides/app/components/ui/sidebar.tsx +0 -782
  1267. package/corpus/templates/slides/app/components/ui/skeleton.tsx +0 -15
  1268. package/corpus/templates/slides/app/components/ui/slider.tsx +0 -26
  1269. package/corpus/templates/slides/app/components/ui/sonner.tsx +0 -58
  1270. package/corpus/templates/slides/app/components/ui/spinner.tsx +0 -17
  1271. package/corpus/templates/slides/app/components/ui/switch.tsx +0 -27
  1272. package/corpus/templates/slides/app/components/ui/table.tsx +0 -117
  1273. package/corpus/templates/slides/app/components/ui/tabs.tsx +0 -53
  1274. package/corpus/templates/slides/app/components/ui/textarea.tsx +0 -23
  1275. package/corpus/templates/slides/app/components/ui/toast.tsx +0 -127
  1276. package/corpus/templates/slides/app/components/ui/toaster.tsx +0 -33
  1277. package/corpus/templates/slides/app/components/ui/toggle-group.tsx +0 -59
  1278. package/corpus/templates/slides/app/components/ui/toggle.tsx +0 -43
  1279. package/corpus/templates/slides/app/components/ui/tooltip.tsx +0 -30
  1280. package/corpus/templates/slides/app/components/ui/use-toast.ts +0 -3
  1281. package/corpus/templates/slides/app/hooks/use-mobile.tsx +0 -21
  1282. package/corpus/templates/slides/app/hooks/use-toast.ts +0 -188
@@ -0,0 +1,29 @@
1
+ import { type AgentAccessUrlOptions } from "./agent-access.js";
2
+ export declare const AGENT_READABLE_RESOURCE_SCRIPT_TYPE = "application/agent-native+json";
3
+ export declare const AGENT_READABLE_RESOURCE_PAYLOAD_TYPE = "agent-native.resource.discovery";
4
+ export interface AgentReadableResourceDiscovery {
5
+ type: typeof AGENT_READABLE_RESOURCE_PAYLOAD_TYPE;
6
+ resourceType: string;
7
+ resourceId: string;
8
+ title?: string;
9
+ url?: string;
10
+ contextUrl: string;
11
+ expiresAt?: string;
12
+ instructions?: string;
13
+ }
14
+ export interface BuildAgentReadableResourceDiscoveryOptions extends AgentAccessUrlOptions {
15
+ resourceType: string;
16
+ resourceId: string;
17
+ title?: string | null;
18
+ path?: string | null;
19
+ contextEndpoint: string;
20
+ token?: string | null;
21
+ expiresAt?: string | null;
22
+ instructions?: string | null;
23
+ }
24
+ export declare function safeJsonForHtml(value: unknown): string;
25
+ export declare function buildAgentReadableResourceDiscovery({ resourceType, resourceId, title, path, contextEndpoint, token, expiresAt, instructions, origin, basePath, tokenParam, }: BuildAgentReadableResourceDiscoveryOptions): AgentReadableResourceDiscovery;
26
+ export declare function renderAgentReadableResourceDiscoveryScript(discovery: AgentReadableResourceDiscovery, options?: {
27
+ id?: string;
28
+ }): string;
29
+ //# sourceMappingURL=agent-readable-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-readable-resource.d.ts","sourceRoot":"","sources":["../../src/shared/agent-readable-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAClC,eAAO,MAAM,oCAAoC,oCACd,CAAC;AAEpC,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,OAAO,oCAAoC,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0CAA2C,SAAQ,qBAAqB;IACvF,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBtD;AAED,wBAAgB,mCAAmC,CAAC,EAClD,YAAY,EACZ,UAAU,EACV,KAAK,EACL,IAAI,EACJ,eAAe,EACf,KAAK,EACL,SAAS,EACT,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,UAA+B,GAChC,EAAE,0CAA0C,GAAG,8BAA8B,CA8B7E;AAED,wBAAgB,0CAA0C,CACxD,SAAS,EAAE,8BAA8B,EACzC,OAAO,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5B,MAAM,CAKR"}
@@ -0,0 +1,60 @@
1
+ import { AGENT_ACCESS_PARAM, buildAgentAccessApiUrl, buildAgentAccessUrl, toAgentAccessUrl, } from "./agent-access.js";
2
+ export const AGENT_READABLE_RESOURCE_SCRIPT_TYPE = "application/agent-native+json";
3
+ export const AGENT_READABLE_RESOURCE_PAYLOAD_TYPE = "agent-native.resource.discovery";
4
+ export function safeJsonForHtml(value) {
5
+ return JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (char) => {
6
+ switch (char) {
7
+ case "<":
8
+ return "\\u003c";
9
+ case ">":
10
+ return "\\u003e";
11
+ case "&":
12
+ return "\\u0026";
13
+ case "\u2028":
14
+ return "\\u2028";
15
+ case "\u2029":
16
+ return "\\u2029";
17
+ default:
18
+ return char;
19
+ }
20
+ });
21
+ }
22
+ export function buildAgentReadableResourceDiscovery({ resourceType, resourceId, title, path, contextEndpoint, token, expiresAt, instructions, origin, basePath, tokenParam = AGENT_ACCESS_PARAM, }) {
23
+ return {
24
+ type: AGENT_READABLE_RESOURCE_PAYLOAD_TYPE,
25
+ resourceType,
26
+ resourceId,
27
+ ...(title ? { title } : {}),
28
+ ...(path
29
+ ? {
30
+ url: token
31
+ ? buildAgentAccessUrl({
32
+ path,
33
+ token,
34
+ origin,
35
+ basePath,
36
+ tokenParam,
37
+ })
38
+ : toAgentAccessUrl(path, { origin, basePath }),
39
+ }
40
+ : {}),
41
+ contextUrl: buildAgentAccessApiUrl({
42
+ endpoint: contextEndpoint,
43
+ resourceId,
44
+ token,
45
+ origin,
46
+ basePath,
47
+ tokenParam,
48
+ }),
49
+ ...(expiresAt ? { expiresAt } : {}),
50
+ ...(instructions ? { instructions } : {}),
51
+ };
52
+ }
53
+ export function renderAgentReadableResourceDiscoveryScript(discovery, options = {}) {
54
+ const id = options.id ? ` id="${escapeHtmlAttribute(options.id)}"` : "";
55
+ return `<script type="${AGENT_READABLE_RESOURCE_SCRIPT_TYPE}"${id}>${safeJsonForHtml(discovery)}</script>`;
56
+ }
57
+ function escapeHtmlAttribute(value) {
58
+ return value.replace(/[&"]/g, (char) => (char === "&" ? "&amp;" : "&quot;"));
59
+ }
60
+ //# sourceMappingURL=agent-readable-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-readable-resource.js","sourceRoot":"","sources":["../../src/shared/agent-readable-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,mCAAmC,GAC9C,+BAA+B,CAAC;AAClC,MAAM,CAAC,MAAM,oCAAoC,GAC/C,iCAAiC,CAAC;AAwBpC,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QAClE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC;YACnB,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC;YACnB,KAAK,GAAG;gBACN,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC;YACnB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,EAClD,YAAY,EACZ,UAAU,EACV,KAAK,EACL,IAAI,EACJ,eAAe,EACf,KAAK,EACL,SAAS,EACT,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,UAAU,GAAG,kBAAkB,GACY;IAC3C,OAAO;QACL,IAAI,EAAE,oCAAoC;QAC1C,YAAY;QACZ,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,GAAG,EAAE,KAAK;oBACR,CAAC,CAAC,mBAAmB,CAAC;wBAClB,IAAI;wBACJ,KAAK;wBACL,MAAM;wBACN,QAAQ;wBACR,UAAU;qBACX,CAAC;oBACJ,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aACjD;YACH,CAAC,CAAC,EAAE,CAAC;QACP,UAAU,EAAE,sBAAsB,CAAC;YACjC,QAAQ,EAAE,eAAe;YACzB,UAAU;YACV,KAAK;YACL,MAAM;YACN,QAAQ;YACR,UAAU;SACX,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,SAAyC,EACzC,OAAO,GAAoB,EAAE;IAE7B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,iBAAiB,mCAAmC,IAAI,EAAE,IAAI,eAAe,CAClF,SAAS,CACV,WAAW,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC","sourcesContent":["import {\n AGENT_ACCESS_PARAM,\n buildAgentAccessApiUrl,\n buildAgentAccessUrl,\n toAgentAccessUrl,\n type AgentAccessUrlOptions,\n} from \"./agent-access.js\";\n\nexport const AGENT_READABLE_RESOURCE_SCRIPT_TYPE =\n \"application/agent-native+json\";\nexport const AGENT_READABLE_RESOURCE_PAYLOAD_TYPE =\n \"agent-native.resource.discovery\";\n\nexport interface AgentReadableResourceDiscovery {\n type: typeof AGENT_READABLE_RESOURCE_PAYLOAD_TYPE;\n resourceType: string;\n resourceId: string;\n title?: string;\n url?: string;\n contextUrl: string;\n expiresAt?: string;\n instructions?: string;\n}\n\nexport interface BuildAgentReadableResourceDiscoveryOptions extends AgentAccessUrlOptions {\n resourceType: string;\n resourceId: string;\n title?: string | null;\n path?: string | null;\n contextEndpoint: string;\n token?: string | null;\n expiresAt?: string | null;\n instructions?: string | null;\n}\n\nexport function safeJsonForHtml(value: unknown): string {\n return JSON.stringify(value).replace(/[<>&\\u2028\\u2029]/g, (char) => {\n switch (char) {\n case \"<\":\n return \"\\\\u003c\";\n case \">\":\n return \"\\\\u003e\";\n case \"&\":\n return \"\\\\u0026\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n default:\n return char;\n }\n });\n}\n\nexport function buildAgentReadableResourceDiscovery({\n resourceType,\n resourceId,\n title,\n path,\n contextEndpoint,\n token,\n expiresAt,\n instructions,\n origin,\n basePath,\n tokenParam = AGENT_ACCESS_PARAM,\n}: BuildAgentReadableResourceDiscoveryOptions): AgentReadableResourceDiscovery {\n return {\n type: AGENT_READABLE_RESOURCE_PAYLOAD_TYPE,\n resourceType,\n resourceId,\n ...(title ? { title } : {}),\n ...(path\n ? {\n url: token\n ? buildAgentAccessUrl({\n path,\n token,\n origin,\n basePath,\n tokenParam,\n })\n : toAgentAccessUrl(path, { origin, basePath }),\n }\n : {}),\n contextUrl: buildAgentAccessApiUrl({\n endpoint: contextEndpoint,\n resourceId,\n token,\n origin,\n basePath,\n tokenParam,\n }),\n ...(expiresAt ? { expiresAt } : {}),\n ...(instructions ? { instructions } : {}),\n };\n}\n\nexport function renderAgentReadableResourceDiscoveryScript(\n discovery: AgentReadableResourceDiscovery,\n options: { id?: string } = {},\n): string {\n const id = options.id ? ` id=\"${escapeHtmlAttribute(options.id)}\"` : \"\";\n return `<script type=\"${AGENT_READABLE_RESOURCE_SCRIPT_TYPE}\"${id}>${safeJsonForHtml(\n discovery,\n )}</script>`;\n}\n\nfunction escapeHtmlAttribute(value: string): string {\n return value.replace(/[&\"]/g, (char) => (char === \"&\" ? \"&amp;\" : \"&quot;\"));\n}\n"]}
@@ -8,4 +8,6 @@ export { DEFAULT_WORKSPACE_APP_AUDIENCE, WORKSPACE_APP_AUDIENCES, normalizeWorks
8
8
  export { AGENT_NATIVE_OPEN_PATH, AGENT_SIDEBAR_QUERY_PARAM, AGENT_SIDEBAR_QUERY_VALUE_CLOSED, isAgentNativeOpenDeepLink, withCollapsedAgentSidebarParam, } from "./agent-sidebar-url.js";
9
9
  export { AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE, AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER, AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, defaultSocialImageMeta, withAgentNativeSocialImageCacheBuster, withDefaultSocialImage, type SocialMetaDescriptor, } from "./social-meta.js";
10
10
  export { EMBED_MODE_QUERY_PARAM, EMBED_SESSION_COOKIE, EMBED_START_PATH, EMBED_TOKEN_QUERY_PARAM, } from "./embed-auth.js";
11
+ export { AGENT_ACCESS_PARAM, DEFAULT_AGENT_ACCESS_TTL_SECONDS, appendAgentAccessParam, buildAgentAccessApiUrl, buildAgentAccessUrl, normalizeAgentAccessBasePath, normalizeAgentAccessOrigin, scopedAgentAccessResourceId, toAgentAccessUrl, type AgentAccessApiUrlOptions, type AgentAccessResourceScope, type AgentAccessUrlOptions, } from "./agent-access.js";
12
+ export { AGENT_READABLE_RESOURCE_PAYLOAD_TYPE, AGENT_READABLE_RESOURCE_SCRIPT_TYPE, buildAgentReadableResourceDiscovery, renderAgentReadableResourceDiscoveryScript, safeJsonForHtml, type AgentReadableResourceDiscovery, type BuildAgentReadableResourceDiscoveryOptions, } from "./agent-readable-resource.js";
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,qCAAqC,EACrC,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,qCAAqC,EACrC,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,EAChB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oCAAoC,EACpC,mCAAmC,EACnC,mCAAmC,EACnC,0CAA0C,EAC1C,eAAe,EACf,KAAK,8BAA8B,EACnC,KAAK,0CAA0C,GAChD,MAAM,8BAA8B,CAAC"}
@@ -8,4 +8,6 @@ export { DEFAULT_WORKSPACE_APP_AUDIENCE, WORKSPACE_APP_AUDIENCES, normalizeWorks
8
8
  export { AGENT_NATIVE_OPEN_PATH, AGENT_SIDEBAR_QUERY_PARAM, AGENT_SIDEBAR_QUERY_VALUE_CLOSED, isAgentNativeOpenDeepLink, withCollapsedAgentSidebarParam, } from "./agent-sidebar-url.js";
9
9
  export { AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE, AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER, AGENT_NATIVE_SOCIAL_IMAGE_ALT, AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT, AGENT_NATIVE_SOCIAL_IMAGE_PATH, AGENT_NATIVE_SOCIAL_IMAGE_TYPE, AGENT_NATIVE_SOCIAL_IMAGE_WIDTH, defaultSocialImageMeta, withAgentNativeSocialImageCacheBuster, withDefaultSocialImage, } from "./social-meta.js";
10
10
  export { EMBED_MODE_QUERY_PARAM, EMBED_SESSION_COOKIE, EMBED_START_PATH, EMBED_TOKEN_QUERY_PARAM, } from "./embed-auth.js";
11
+ export { AGENT_ACCESS_PARAM, DEFAULT_AGENT_ACCESS_TTL_SECONDS, appendAgentAccessParam, buildAgentAccessApiUrl, buildAgentAccessUrl, normalizeAgentAccessBasePath, normalizeAgentAccessOrigin, scopedAgentAccessResourceId, toAgentAccessUrl, } from "./agent-access.js";
12
+ export { AGENT_READABLE_RESOURCE_PAYLOAD_TYPE, AGENT_READABLE_RESOURCE_SCRIPT_TYPE, buildAgentReadableResourceDiscovery, renderAgentReadableResourceDiscoveryScript, safeJsonForHtml, } from "./agent-readable-resource.js";
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,GAIvC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,qCAAqC,EACrC,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC","sourcesContent":["export {\n agentChat,\n type AgentChatMessage,\n type AgentChatCallOptions,\n type AgentChatResponse,\n} from \"./agent-chat.js\";\nexport { agentEnv, type EnvVar } from \"./agent-env.js\";\nexport { extractOAuthStateAppId } from \"./oauth-state.js\";\nexport { truncate } from \"./truncate.js\";\nexport {\n llmConnectionTrackingProperties,\n normalizeLlmConnection,\n type LlmConnectionStatus,\n} from \"./llm-connection.js\";\nexport {\n DISPATCH_WORKSPACE_ROOT_REDIRECTS,\n RESERVED_WORKSPACE_APP_IDS,\n assertValidWorkspaceAppId,\n getWorkspaceAppIdValidationError,\n isValidWorkspaceAppIdFormat,\n} from \"./workspace-app-id.js\";\nexport {\n DEFAULT_WORKSPACE_APP_AUDIENCE,\n WORKSPACE_APP_AUDIENCES,\n normalizeWorkspaceAppAudience,\n normalizeWorkspaceAppPathList,\n workspaceAppAudienceFromEnv,\n workspaceAppAudienceFromPackageJson,\n workspaceAppRouteAccessFromEnv,\n workspaceAppRouteAccessFromPackageJson,\n type WorkspaceAppRouteAccess,\n type WorkspaceAppRouteAccessFromConfig,\n type WorkspaceAppAudience,\n} from \"./workspace-app-audience.js\";\nexport {\n AGENT_NATIVE_OPEN_PATH,\n AGENT_SIDEBAR_QUERY_PARAM,\n AGENT_SIDEBAR_QUERY_VALUE_CLOSED,\n isAgentNativeOpenDeepLink,\n withCollapsedAgentSidebarParam,\n} from \"./agent-sidebar-url.js\";\nexport {\n AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE,\n AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER,\n AGENT_NATIVE_SOCIAL_IMAGE_ALT,\n AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT,\n AGENT_NATIVE_SOCIAL_IMAGE_PATH,\n AGENT_NATIVE_SOCIAL_IMAGE_TYPE,\n AGENT_NATIVE_SOCIAL_IMAGE_WIDTH,\n defaultSocialImageMeta,\n withAgentNativeSocialImageCacheBuster,\n withDefaultSocialImage,\n type SocialMetaDescriptor,\n} from \"./social-meta.js\";\nexport {\n EMBED_MODE_QUERY_PARAM,\n EMBED_SESSION_COOKIE,\n EMBED_START_PATH,\n EMBED_TOKEN_QUERY_PARAM,\n} from \"./embed-auth.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iCAAiC,EACjC,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,GAIvC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,qCAAqC,EACrC,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oCAAoC,EACpC,mCAAmC,EACnC,mCAAmC,EACnC,0CAA0C,EAC1C,eAAe,GAGhB,MAAM,8BAA8B,CAAC","sourcesContent":["export {\n agentChat,\n type AgentChatMessage,\n type AgentChatCallOptions,\n type AgentChatResponse,\n} from \"./agent-chat.js\";\nexport { agentEnv, type EnvVar } from \"./agent-env.js\";\nexport { extractOAuthStateAppId } from \"./oauth-state.js\";\nexport { truncate } from \"./truncate.js\";\nexport {\n llmConnectionTrackingProperties,\n normalizeLlmConnection,\n type LlmConnectionStatus,\n} from \"./llm-connection.js\";\nexport {\n DISPATCH_WORKSPACE_ROOT_REDIRECTS,\n RESERVED_WORKSPACE_APP_IDS,\n assertValidWorkspaceAppId,\n getWorkspaceAppIdValidationError,\n isValidWorkspaceAppIdFormat,\n} from \"./workspace-app-id.js\";\nexport {\n DEFAULT_WORKSPACE_APP_AUDIENCE,\n WORKSPACE_APP_AUDIENCES,\n normalizeWorkspaceAppAudience,\n normalizeWorkspaceAppPathList,\n workspaceAppAudienceFromEnv,\n workspaceAppAudienceFromPackageJson,\n workspaceAppRouteAccessFromEnv,\n workspaceAppRouteAccessFromPackageJson,\n type WorkspaceAppRouteAccess,\n type WorkspaceAppRouteAccessFromConfig,\n type WorkspaceAppAudience,\n} from \"./workspace-app-audience.js\";\nexport {\n AGENT_NATIVE_OPEN_PATH,\n AGENT_SIDEBAR_QUERY_PARAM,\n AGENT_SIDEBAR_QUERY_VALUE_CLOSED,\n isAgentNativeOpenDeepLink,\n withCollapsedAgentSidebarParam,\n} from \"./agent-sidebar-url.js\";\nexport {\n AGENT_NATIVE_DEFAULT_SOCIAL_IMAGE,\n AGENT_NATIVE_SOCIAL_IMAGE_CACHE_BUSTER,\n AGENT_NATIVE_SOCIAL_IMAGE_ALT,\n AGENT_NATIVE_SOCIAL_IMAGE_HEIGHT,\n AGENT_NATIVE_SOCIAL_IMAGE_PATH,\n AGENT_NATIVE_SOCIAL_IMAGE_TYPE,\n AGENT_NATIVE_SOCIAL_IMAGE_WIDTH,\n defaultSocialImageMeta,\n withAgentNativeSocialImageCacheBuster,\n withDefaultSocialImage,\n type SocialMetaDescriptor,\n} from \"./social-meta.js\";\nexport {\n EMBED_MODE_QUERY_PARAM,\n EMBED_SESSION_COOKIE,\n EMBED_START_PATH,\n EMBED_TOKEN_QUERY_PARAM,\n} from \"./embed-auth.js\";\nexport {\n AGENT_ACCESS_PARAM,\n DEFAULT_AGENT_ACCESS_TTL_SECONDS,\n appendAgentAccessParam,\n buildAgentAccessApiUrl,\n buildAgentAccessUrl,\n normalizeAgentAccessBasePath,\n normalizeAgentAccessOrigin,\n scopedAgentAccessResourceId,\n toAgentAccessUrl,\n type AgentAccessApiUrlOptions,\n type AgentAccessResourceScope,\n type AgentAccessUrlOptions,\n} from \"./agent-access.js\";\nexport {\n AGENT_READABLE_RESOURCE_PAYLOAD_TYPE,\n AGENT_READABLE_RESOURCE_SCRIPT_TYPE,\n buildAgentReadableResourceDiscovery,\n renderAgentReadableResourceDiscoveryScript,\n safeJsonForHtml,\n type AgentReadableResourceDiscovery,\n type BuildAgentReadableResourceDiscoveryOptions,\n} from \"./agent-readable-resource.js\";\n"]}
@@ -0,0 +1,13 @@
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ resourceType: string;
3
+ resourceId: string;
4
+ }, {
5
+ resourceType: string;
6
+ resourceId: string;
7
+ url: string;
8
+ contextUrl: string;
9
+ expiresAt: string;
10
+ ttlSeconds: number;
11
+ }>;
12
+ export default _default;
13
+ //# sourceMappingURL=create-agent-resource-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-agent-resource-link.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/create-agent-resource-link.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ import { defineAction } from "../../action.js";
3
+ import { buildAgentAccessApiUrl, buildAgentAccessUrl, createScopedAgentAccessGrant, } from "../../server/agent-access.js";
4
+ import { getConfiguredAppBasePath } from "../../server/app-base-path.js";
5
+ import { getRequestContext, getRequestUserEmail, } from "../../server/request-context.js";
6
+ import { ForbiddenError, resolveAccess } from "../access.js";
7
+ import { requireShareableResource } from "../registry.js";
8
+ function appOrigin() {
9
+ const origin = getRequestContext()?.requestOrigin ||
10
+ process.env.APP_URL ||
11
+ process.env.BETTER_AUTH_URL ||
12
+ "http://localhost:3000";
13
+ try {
14
+ return new URL(origin).origin;
15
+ }
16
+ catch {
17
+ return "http://localhost:3000";
18
+ }
19
+ }
20
+ export default defineAction({
21
+ description: "Create a temporary, read-only, agent-readable link for a registered shareable resource. The token is scoped to exactly one resource and does not change the resource visibility.",
22
+ schema: z.object({
23
+ resourceType: z.string().describe("Shareable resource type"),
24
+ resourceId: z.string().describe("Resource ID"),
25
+ }),
26
+ readOnly: true,
27
+ run: async (args) => {
28
+ const reg = requireShareableResource(args.resourceType);
29
+ const agentReadable = reg.agentReadable;
30
+ if (!agentReadable) {
31
+ throw new ForbiddenError(`${reg.displayName} does not expose an agent-readable context endpoint.`);
32
+ }
33
+ const access = await resolveAccess(args.resourceType, args.resourceId);
34
+ if (!access) {
35
+ throw new ForbiddenError(`No access to ${args.resourceType} ${args.resourceId}`);
36
+ }
37
+ const pagePath = agentReadable.getPagePath?.(access.resource) ??
38
+ reg.getResourcePath?.(access.resource);
39
+ const contextPath = agentReadable.getContextPath(access.resource);
40
+ if (!pagePath || !contextPath) {
41
+ throw new ForbiddenError(`${reg.displayName} is not agent-readable yet.`);
42
+ }
43
+ const grant = createScopedAgentAccessGrant({
44
+ resourceKind: agentReadable.resourceKind,
45
+ resourceId: args.resourceId,
46
+ viewerEmail: getRequestUserEmail() || undefined,
47
+ ttlSeconds: agentReadable.ttlSeconds,
48
+ });
49
+ const origin = appOrigin();
50
+ const basePath = getConfiguredAppBasePath();
51
+ return {
52
+ resourceType: args.resourceType,
53
+ resourceId: args.resourceId,
54
+ url: buildAgentAccessUrl({
55
+ path: pagePath,
56
+ origin,
57
+ basePath,
58
+ token: grant.token,
59
+ }),
60
+ contextUrl: buildAgentAccessApiUrl({
61
+ endpoint: contextPath,
62
+ resourceId: args.resourceId,
63
+ origin,
64
+ basePath,
65
+ token: grant.token,
66
+ }),
67
+ expiresAt: grant.expiresAt,
68
+ ttlSeconds: grant.ttlSeconds,
69
+ };
70
+ },
71
+ });
72
+ //# sourceMappingURL=create-agent-resource-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-agent-resource-link.js","sourceRoot":"","sources":["../../../src/sharing/actions/create-agent-resource-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,SAAS,SAAS;IAChB,MAAM,MAAM,GACV,iBAAiB,EAAE,EAAE,aAAa;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,uBAAuB,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC;AAED,eAAe,YAAY,CAAC;IAC1B,WAAW,EACT,kLAAkL;IACpL,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC/C,CAAC;IACF,QAAQ,EAAE,IAAI;IACd,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,CACtB,GAAG,GAAG,CAAC,WAAW,sDAAsD,CACzE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,cAAc,CACtB,gBAAgB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GACZ,aAAa,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC5C,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,cAAc,CAAC,GAAG,GAAG,CAAC,WAAW,6BAA6B,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,4BAA4B,CAAC;YACzC,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,mBAAmB,EAAE,IAAI,SAAS;YAC/C,UAAU,EAAE,aAAa,CAAC,UAAU;SACrC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QAE5C,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,mBAAmB,CAAC;gBACvB,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;YACF,UAAU,EAAE,sBAAsB,CAAC;gBACjC,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM;gBACN,QAAQ;gBACR,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;YACF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC","sourcesContent":["import { z } from \"zod\";\n\nimport { defineAction } from \"../../action.js\";\nimport {\n buildAgentAccessApiUrl,\n buildAgentAccessUrl,\n createScopedAgentAccessGrant,\n} from \"../../server/agent-access.js\";\nimport { getConfiguredAppBasePath } from \"../../server/app-base-path.js\";\nimport {\n getRequestContext,\n getRequestUserEmail,\n} from \"../../server/request-context.js\";\nimport { ForbiddenError, resolveAccess } from \"../access.js\";\nimport { requireShareableResource } from \"../registry.js\";\n\nfunction appOrigin(): string {\n const origin =\n getRequestContext()?.requestOrigin ||\n process.env.APP_URL ||\n process.env.BETTER_AUTH_URL ||\n \"http://localhost:3000\";\n try {\n return new URL(origin).origin;\n } catch {\n return \"http://localhost:3000\";\n }\n}\n\nexport default defineAction({\n description:\n \"Create a temporary, read-only, agent-readable link for a registered shareable resource. The token is scoped to exactly one resource and does not change the resource visibility.\",\n schema: z.object({\n resourceType: z.string().describe(\"Shareable resource type\"),\n resourceId: z.string().describe(\"Resource ID\"),\n }),\n readOnly: true,\n run: async (args) => {\n const reg = requireShareableResource(args.resourceType);\n const agentReadable = reg.agentReadable;\n if (!agentReadable) {\n throw new ForbiddenError(\n `${reg.displayName} does not expose an agent-readable context endpoint.`,\n );\n }\n\n const access = await resolveAccess(args.resourceType, args.resourceId);\n if (!access) {\n throw new ForbiddenError(\n `No access to ${args.resourceType} ${args.resourceId}`,\n );\n }\n\n const pagePath =\n agentReadable.getPagePath?.(access.resource) ??\n reg.getResourcePath?.(access.resource);\n const contextPath = agentReadable.getContextPath(access.resource);\n if (!pagePath || !contextPath) {\n throw new ForbiddenError(`${reg.displayName} is not agent-readable yet.`);\n }\n\n const grant = createScopedAgentAccessGrant({\n resourceKind: agentReadable.resourceKind,\n resourceId: args.resourceId,\n viewerEmail: getRequestUserEmail() || undefined,\n ttlSeconds: agentReadable.ttlSeconds,\n });\n const origin = appOrigin();\n const basePath = getConfiguredAppBasePath();\n\n return {\n resourceType: args.resourceType,\n resourceId: args.resourceId,\n url: buildAgentAccessUrl({\n path: pagePath,\n origin,\n basePath,\n token: grant.token,\n }),\n contextUrl: buildAgentAccessApiUrl({\n endpoint: contextPath,\n resourceId: args.resourceId,\n origin,\n basePath,\n token: grant.token,\n }),\n expiresAt: grant.expiresAt,\n ttlSeconds: grant.ttlSeconds,\n };\n },\n});\n"]}
@@ -99,6 +99,23 @@ export interface ShareableResourceRegistration {
99
99
  * Default: `false`.
100
100
  */
101
101
  ownerAccessIgnoresOrg?: boolean;
102
+ /**
103
+ * Optional external-agent read handoff. When set, the framework-level
104
+ * `create-agent-resource-link` action can mint a short-lived, read-only
105
+ * `agent_access` URL for this resource. The context endpoint is owned by the
106
+ * template so it can expose the same intentionally shareable shape as the
107
+ * public page, not a generic raw database row.
108
+ */
109
+ agentReadable?: false | {
110
+ /** Token scope. Include the app name to avoid cross-app collisions. */
111
+ resourceKind: string;
112
+ /** App-relative JSON endpoint that accepts `id` + `agent_access`. */
113
+ getContextPath: (resource: any) => string | undefined;
114
+ /** Optional override for the page URL. Defaults to getResourcePath. */
115
+ getPagePath?: (resource: any) => string | undefined;
116
+ /** Optional override for the default two-hour token lifetime. */
117
+ ttlSeconds?: number;
118
+ };
102
119
  }
103
120
  export declare function registerShareableResource(entry: ShareableResourceRegistration): void;
104
121
  export declare function getShareableResource(type: string): ShareableResourceRegistration | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sharing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,6BAA6B;IAC5C,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,aAAa,EAAE,GAAG,CAAC;IACnB,qDAAqD;IACrD,WAAW,EAAE,GAAG,CAAC;IACjB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EACb,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,CAAC,CACC,QAAQ,EAAE,GAAG,EACb,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAEzC,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAChD;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QACtE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAuCD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,6BAA6B,GACnC,IAAI,CAGN;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX,6BAA6B,GAAG,SAAS,CAE3C;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX,6BAA6B,CAS/B;AAED,wBAAgB,sBAAsB,IAAI,6BAA6B,EAAE,CAExE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/sharing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,6BAA6B;IAC5C,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,aAAa,EAAE,GAAG,CAAC;IACnB,qDAAqD;IACrD,WAAW,EAAE,GAAG,CAAC;IACjB,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EACb,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,CAAC,CACC,QAAQ,EAAE,GAAG,EACb,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAEzC,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAChD;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QACtE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;OAMG;IACH,aAAa,CAAC,EACV,KAAK,GACL;QACE,uEAAuE;QACvE,YAAY,EAAE,MAAM,CAAC;QACrB,qEAAqE;QACrE,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,SAAS,CAAC;QACtD,uEAAuE;QACvE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,SAAS,CAAC;QACpD,iEAAiE;QACjE,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACP;AAuCD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,6BAA6B,GACnC,IAAI,CAGN;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GACX,6BAA6B,GAAG,SAAS,CAE3C;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX,6BAA6B,CAS/B;AAED,wBAAgB,sBAAsB,IAAI,6BAA6B,EAAE,CAExE"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/sharing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA4FH,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAC/E,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,cAAc,GAClB,UAAiB,CAAC;AAEpB,SAAS,aAAa;IACpB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B;IACnC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,OAAO,oEAAoE,CAAC,IAAI,CAC9E,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,IAAI,GAAG,EAAyC,CAAC;QACrD,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAoC;IAEpC,IAAI,CAAC,aAAa,EAAE,IAAI,4BAA4B,EAAE;QAAE,OAAO;IAC/D,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAY;IAEZ,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAY;IAEZ,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,gDAAgD,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/**\n * Registry of shareable resources.\n *\n * Each template registers its ownable resource(s) once on module load so the\n * framework-level share actions (`share-resource`, `list-resource-shares`,\n * etc.) can dispatch to the correct tables.\n *\n * import { registerShareableResource } from \"@agent-native/core/sharing\";\n * import * as schema from \"./schema.js\";\n *\n * registerShareableResource({\n * type: \"document\",\n * resourceTable: schema.documents,\n * sharesTable: schema.documentShares,\n * displayName: \"Document\",\n * titleColumn: \"title\",\n * });\n */\n\nexport interface ShareableResourceRegistration {\n /** Stable identifier used across actions, UI, and analytics. e.g. \"document\". */\n type: string;\n /** Drizzle table for the parent resource (must have ownableColumns()). */\n resourceTable: any;\n /** Drizzle table produced by createSharesTable(). */\n sharesTable: any;\n /** Human-readable singular label shown in the share dialog. */\n displayName: string;\n /**\n * Column on the resource table that holds a human-readable title for\n * display in the share UI. Default: \"title\".\n */\n titleColumn?: string;\n /**\n * Optional app-relative path to this resource. Used by share notifications\n * when the caller does not pass a more specific resourceUrl.\n */\n getResourcePath?: (resource: any) => string | undefined;\n /**\n * Drizzle DB accessor from the template's server/db/index.ts. Required —\n * the framework-level share actions and access helpers call this to reach\n * the right DB instance (schema is template-specific).\n */\n getDb: () => any;\n /**\n * When `false`, `visibility: \"public\"` is rejected by `set-resource-visibility`,\n * and `accessFilter` / `resolveAccess` treat any stored public row as private\n * (defense in depth — only owner + explicit shares grant access).\n *\n * Use this for resources that execute code or expose privileged data and must\n * never be reachable by a random authenticated user. Extensions set this:\n * extension HTML runs inside an iframe that calls actions / DB / proxied APIs\n * as the *viewer*, so a public extension would be arbitrary code with the\n * viewer's credentials.\n *\n * Default: `true` (matches the historical behavior — most resources can be public).\n */\n allowPublic?: boolean;\n /**\n * Optional role granted by a public-by-link read. Most resources should omit\n * this so public visibility remains viewer-only. Use narrowly for local or\n * otherwise constrained resources where the resource owner intentionally wants\n * unauthenticated link holders to do more than view.\n */\n publicAccessRole?:\n | \"viewer\"\n | \"editor\"\n | \"admin\"\n | ((\n resource: any,\n ctx: { userEmail?: string; orgId?: string },\n ) =>\n | \"viewer\"\n | \"editor\"\n | \"admin\"\n | Promise<\"viewer\" | \"editor\" | \"admin\">);\n /**\n * When `true`, individual user shares (`principalType: \"user\"`) must target\n * an email that is already a member of the same org as the resource, OR has\n * a pending invitation to that org. Cross-org user shares are rejected.\n *\n * Pair with `allowPublic: false` for resources that need a hard \"this org\n * only\" trust boundary. Extensions set this so a malicious caller can't\n * widen reach by sharing a code-executing extension to an outsider email.\n *\n * Default: `false` (matches the historical behavior — any email can be granted).\n */\n requireOrgMemberForUserShares?: boolean;\n /**\n * Optional per-resource access-context adapter. Most resources should use the\n * request user/org unchanged. Templates with an intentional alternate local\n * identity can normalize here so the generic framework sharing actions and\n * access helpers stay in sync with template-owned actions.\n */\n resolveAccessContext?: (ctx: { userEmail?: string; orgId?: string }) => {\n userEmail?: string;\n orgId?: string;\n };\n /**\n * When true, direct ownership is recognized by owner_email regardless of the\n * caller's active org. Use this only for resource types where the template's\n * own actions already treat owner_email as the cross-org authority and list\n * views add their own org filters.\n *\n * Default: `false`.\n */\n ownerAccessIgnoresOrg?: boolean;\n}\n\n// Stash the registry on globalThis so it survives SSR bundle duplication.\n// Vite SSR's `noExternal: /^(?!node:)/` policy means @agent-native/core gets\n// inlined into every server bundle that imports it — and each bundle gets its\n// own module-level state. A plain `new Map()` here would create one Map per\n// bundle, so the template's `registerShareableResource()` (called from the\n// Nitro plugin graph) wouldn't be visible to the framework's auto-mounted\n// share-resource action (loaded via `import(\"../sharing/actions/...js\")` in a\n// different module instance). Using globalThis collapses them back to one Map.\nconst REGISTRY_KEY = \"__agentNativeShareableResources__\";\ntype RegistryStore = Map<string, ShareableResourceRegistration>;\nconst globalRegistry: { [K in typeof REGISTRY_KEY]?: RegistryStore } =\n globalThis as any;\n\nfunction isTestRuntime(): boolean {\n return (\n process.env.NODE_ENV === \"test\" ||\n process.env.VITEST === \"true\" ||\n process.env.VITEST === \"1\"\n );\n}\n\nfunction registrationCameFromTestFile(): boolean {\n const stack = new Error().stack ?? \"\";\n return /[./\\\\](?:[^/\\\\]+[.-])(?:test|spec)\\.[cm]?[jt]sx?(?::\\d+)?(?::\\d+)?/.test(\n stack,\n );\n}\n\nfunction getRegistry(): RegistryStore {\n let r = globalRegistry[REGISTRY_KEY];\n if (!r) {\n r = new Map<string, ShareableResourceRegistration>();\n globalRegistry[REGISTRY_KEY] = r;\n }\n return r;\n}\n\nexport function registerShareableResource(\n entry: ShareableResourceRegistration,\n): void {\n if (!isTestRuntime() && registrationCameFromTestFile()) return;\n getRegistry().set(entry.type, entry);\n}\n\nexport function getShareableResource(\n type: string,\n): ShareableResourceRegistration | undefined {\n return getRegistry().get(type);\n}\n\nexport function requireShareableResource(\n type: string,\n): ShareableResourceRegistration {\n const reg = getRegistry();\n const entry = reg.get(type);\n if (!entry) {\n throw new Error(\n `Unknown shareable resource type: \"${type}\". Did you forget registerShareableResource()?`,\n );\n }\n return entry;\n}\n\nexport function listShareableResources(): ShareableResourceRegistration[] {\n return Array.from(getRegistry().values());\n}\n"]}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/sharing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA+GH,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAC/E,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,cAAc,GAClB,UAAiB,CAAC;AAEpB,SAAS,aAAa;IACpB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;QAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B;IACnC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,OAAO,oEAAoE,CAAC,IAAI,CAC9E,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,IAAI,GAAG,EAAyC,CAAC;QACrD,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAoC;IAEpC,IAAI,CAAC,aAAa,EAAE,IAAI,4BAA4B,EAAE;QAAE,OAAO;IAC/D,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAY;IAEZ,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAY;IAEZ,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,gDAAgD,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/**\n * Registry of shareable resources.\n *\n * Each template registers its ownable resource(s) once on module load so the\n * framework-level share actions (`share-resource`, `list-resource-shares`,\n * etc.) can dispatch to the correct tables.\n *\n * import { registerShareableResource } from \"@agent-native/core/sharing\";\n * import * as schema from \"./schema.js\";\n *\n * registerShareableResource({\n * type: \"document\",\n * resourceTable: schema.documents,\n * sharesTable: schema.documentShares,\n * displayName: \"Document\",\n * titleColumn: \"title\",\n * });\n */\n\nexport interface ShareableResourceRegistration {\n /** Stable identifier used across actions, UI, and analytics. e.g. \"document\". */\n type: string;\n /** Drizzle table for the parent resource (must have ownableColumns()). */\n resourceTable: any;\n /** Drizzle table produced by createSharesTable(). */\n sharesTable: any;\n /** Human-readable singular label shown in the share dialog. */\n displayName: string;\n /**\n * Column on the resource table that holds a human-readable title for\n * display in the share UI. Default: \"title\".\n */\n titleColumn?: string;\n /**\n * Optional app-relative path to this resource. Used by share notifications\n * when the caller does not pass a more specific resourceUrl.\n */\n getResourcePath?: (resource: any) => string | undefined;\n /**\n * Drizzle DB accessor from the template's server/db/index.ts. Required —\n * the framework-level share actions and access helpers call this to reach\n * the right DB instance (schema is template-specific).\n */\n getDb: () => any;\n /**\n * When `false`, `visibility: \"public\"` is rejected by `set-resource-visibility`,\n * and `accessFilter` / `resolveAccess` treat any stored public row as private\n * (defense in depth — only owner + explicit shares grant access).\n *\n * Use this for resources that execute code or expose privileged data and must\n * never be reachable by a random authenticated user. Extensions set this:\n * extension HTML runs inside an iframe that calls actions / DB / proxied APIs\n * as the *viewer*, so a public extension would be arbitrary code with the\n * viewer's credentials.\n *\n * Default: `true` (matches the historical behavior — most resources can be public).\n */\n allowPublic?: boolean;\n /**\n * Optional role granted by a public-by-link read. Most resources should omit\n * this so public visibility remains viewer-only. Use narrowly for local or\n * otherwise constrained resources where the resource owner intentionally wants\n * unauthenticated link holders to do more than view.\n */\n publicAccessRole?:\n | \"viewer\"\n | \"editor\"\n | \"admin\"\n | ((\n resource: any,\n ctx: { userEmail?: string; orgId?: string },\n ) =>\n | \"viewer\"\n | \"editor\"\n | \"admin\"\n | Promise<\"viewer\" | \"editor\" | \"admin\">);\n /**\n * When `true`, individual user shares (`principalType: \"user\"`) must target\n * an email that is already a member of the same org as the resource, OR has\n * a pending invitation to that org. Cross-org user shares are rejected.\n *\n * Pair with `allowPublic: false` for resources that need a hard \"this org\n * only\" trust boundary. Extensions set this so a malicious caller can't\n * widen reach by sharing a code-executing extension to an outsider email.\n *\n * Default: `false` (matches the historical behavior — any email can be granted).\n */\n requireOrgMemberForUserShares?: boolean;\n /**\n * Optional per-resource access-context adapter. Most resources should use the\n * request user/org unchanged. Templates with an intentional alternate local\n * identity can normalize here so the generic framework sharing actions and\n * access helpers stay in sync with template-owned actions.\n */\n resolveAccessContext?: (ctx: { userEmail?: string; orgId?: string }) => {\n userEmail?: string;\n orgId?: string;\n };\n /**\n * When true, direct ownership is recognized by owner_email regardless of the\n * caller's active org. Use this only for resource types where the template's\n * own actions already treat owner_email as the cross-org authority and list\n * views add their own org filters.\n *\n * Default: `false`.\n */\n ownerAccessIgnoresOrg?: boolean;\n /**\n * Optional external-agent read handoff. When set, the framework-level\n * `create-agent-resource-link` action can mint a short-lived, read-only\n * `agent_access` URL for this resource. The context endpoint is owned by the\n * template so it can expose the same intentionally shareable shape as the\n * public page, not a generic raw database row.\n */\n agentReadable?:\n | false\n | {\n /** Token scope. Include the app name to avoid cross-app collisions. */\n resourceKind: string;\n /** App-relative JSON endpoint that accepts `id` + `agent_access`. */\n getContextPath: (resource: any) => string | undefined;\n /** Optional override for the page URL. Defaults to getResourcePath. */\n getPagePath?: (resource: any) => string | undefined;\n /** Optional override for the default two-hour token lifetime. */\n ttlSeconds?: number;\n };\n}\n\n// Stash the registry on globalThis so it survives SSR bundle duplication.\n// Vite SSR's `noExternal: /^(?!node:)/` policy means @agent-native/core gets\n// inlined into every server bundle that imports it — and each bundle gets its\n// own module-level state. A plain `new Map()` here would create one Map per\n// bundle, so the template's `registerShareableResource()` (called from the\n// Nitro plugin graph) wouldn't be visible to the framework's auto-mounted\n// share-resource action (loaded via `import(\"../sharing/actions/...js\")` in a\n// different module instance). Using globalThis collapses them back to one Map.\nconst REGISTRY_KEY = \"__agentNativeShareableResources__\";\ntype RegistryStore = Map<string, ShareableResourceRegistration>;\nconst globalRegistry: { [K in typeof REGISTRY_KEY]?: RegistryStore } =\n globalThis as any;\n\nfunction isTestRuntime(): boolean {\n return (\n process.env.NODE_ENV === \"test\" ||\n process.env.VITEST === \"true\" ||\n process.env.VITEST === \"1\"\n );\n}\n\nfunction registrationCameFromTestFile(): boolean {\n const stack = new Error().stack ?? \"\";\n return /[./\\\\](?:[^/\\\\]+[.-])(?:test|spec)\\.[cm]?[jt]sx?(?::\\d+)?(?::\\d+)?/.test(\n stack,\n );\n}\n\nfunction getRegistry(): RegistryStore {\n let r = globalRegistry[REGISTRY_KEY];\n if (!r) {\n r = new Map<string, ShareableResourceRegistration>();\n globalRegistry[REGISTRY_KEY] = r;\n }\n return r;\n}\n\nexport function registerShareableResource(\n entry: ShareableResourceRegistration,\n): void {\n if (!isTestRuntime() && registrationCameFromTestFile()) return;\n getRegistry().set(entry.type, entry);\n}\n\nexport function getShareableResource(\n type: string,\n): ShareableResourceRegistration | undefined {\n return getRegistry().get(type);\n}\n\nexport function requireShareableResource(\n type: string,\n): ShareableResourceRegistration {\n const reg = getRegistry();\n const entry = reg.get(type);\n if (!entry) {\n throw new Error(\n `Unknown shareable resource type: \"${type}\". Did you forget registerShareableResource()?`,\n );\n }\n return entry;\n}\n\nexport function listShareableResources(): ShareableResourceRegistration[] {\n return Array.from(getRegistry().values());\n}\n"]}
@@ -0,0 +1,92 @@
1
+ # Agent-Native Toolkit
2
+
3
+ Use this skill when deciding whether app chrome, settings, collaboration,
4
+ sharing, navigation, organization, setup, history, comments, or agent UX should
5
+ be built app-locally or moved into reusable framework/toolkit pieces.
6
+
7
+ ## Core Rule
8
+
9
+ Apps own domain models, domain actions, and product-specific workflows. The
10
+ framework and `@agent-native/toolkit` own repeated workspace behavior users
11
+ expect to work the same everywhere.
12
+
13
+ Move behavior into shared toolkit primitives when it is:
14
+
15
+ - workspace-wide, such as settings, nav, search, org membership, or setup
16
+ - agent-visible, such as context, actions, run progress, or proof-of-done
17
+ - governed, such as secrets, permissions, sharing, audit, or billing
18
+ - repeated by two or more apps
19
+ - not tied to one domain model
20
+
21
+ Keep behavior app-local when the abstraction would hide important domain
22
+ language or make a simple app-specific workflow harder to understand.
23
+
24
+ ## Settings Direction
25
+
26
+ Durable settings belong in the Settings app or a registered settings route. The
27
+ agent sidebar should not become a second settings app. It can show contextual
28
+ quick controls and deep links such as:
29
+
30
+ - `/settings/ai`
31
+ - `/settings/connections`
32
+ - `/settings/secrets`
33
+ - `/settings/usage`
34
+ - `/settings/apps/:appId`
35
+
36
+ When adding a new API key, OAuth grant, provider connection, model selector, app
37
+ preference, notification preference, or usage/billing surface, register it as a
38
+ settings tab or app settings panel first. Only add sidebar UI when it is needed
39
+ in the moment of agent use.
40
+
41
+ ## Reusable Kits
42
+
43
+ - **Settings kit**: account, workspace, AI models, LLM keys, connections,
44
+ secrets, usage, notifications, changelog, and app-specific panels.
45
+ - **Collaboration kit**: Yjs docs, presence, agent presence, live cursors,
46
+ remote selections, recent edit highlights, real-time sync indicators, and
47
+ undo/redo grouping.
48
+ - **Sharing kit**: private/workspace/org/public-link access, invites, roles,
49
+ expirations, agent-readable links, and resource registration.
50
+ - **Navigation and command kit**: app shell, side nav, breadcrumbs, app switcher,
51
+ command palette entries, recent resources, pinned resources, and global search.
52
+ - **Organization kit**: folders, tags, favorites, archive, trash, ownership,
53
+ membership, and common resource metadata.
54
+ - **Setup and connections kit**: declarative setup requirements, model readiness,
55
+ missing-secret states, OAuth grants, and provider connection health.
56
+ - **Agent UX kit**: sidebar, composer, staged context, mentions, voice, human
57
+ approval, generative UI, progress, and screen-state exposure.
58
+ - **History and recovery kit**: audit log, activity feed, version history,
59
+ checkpoints, undo, redo, restore, and proof-of-done.
60
+ - **Comments and review kit**: anchored comments, pins, mentions, review
61
+ requests, resolved threads, agent follow-up tasks, and notifications.
62
+ - **Workflow and observability kit**: notifications, approvals, scheduled work,
63
+ background runs, recurring jobs, traces, evals, feedback, and run timelines.
64
+
65
+ ## Implementation Checklist
66
+
67
+ When adding or refactoring one of these areas:
68
+
69
+ 1. Search existing framework and template code for duplicated UI or actions.
70
+ 2. Decide the shared contract: data shape, action API, React component/hook, and
71
+ app adapter points.
72
+ 3. Keep shared data provider-agnostic and scoped by auth/sharing rules.
73
+ 4. Expose the same capability to the UI and agent through actions or documented
74
+ client helpers.
75
+ 5. Register app-specific labels, routes, resource adapters, and settings panels
76
+ instead of hardcoding app names in core UI.
77
+ 6. Update docs and relevant skills so future apps discover the shared path.
78
+
79
+ ## Related Skills
80
+
81
+ Read these alongside this skill when the work touches the specific area:
82
+
83
+ - `sharing`
84
+ - `real-time-collab`
85
+ - `real-time-sync`
86
+ - `client-side-routing`
87
+ - `context-awareness`
88
+ - `onboarding`
89
+ - `secrets`
90
+ - `audit-log`
91
+ - `observability`
92
+ - `frontend-design`
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/vite/client.ts"],"names":[],"mappings":"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"}
@@ -1402,6 +1402,7 @@ function ssrStubPlugin(packages) {
1402
1402
  "captureException",
1403
1403
  "common",
1404
1404
  "createLowlight",
1405
+ "createNodeFromContent",
1405
1406
  "defaultUrlTransform",
1406
1407
  "extensions",
1407
1408
  "findTable",