@agent-native/core 0.90.2 → 0.90.3

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 (429) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +12 -0
  3. package/corpus/core/docs/content/agent-native-toolkit.mdx +87 -80
  4. package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
  5. package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
  6. package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
  7. package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
  8. package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
  9. package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
  10. package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
  11. package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
  12. package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
  13. package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
  14. package/corpus/core/docs/content/toolkit-agent-ux.mdx +43 -0
  15. package/corpus/core/docs/content/toolkit-app-adapters.mdx +9 -0
  16. package/corpus/core/docs/content/toolkit-collaboration-ui.mdx +12 -0
  17. package/corpus/core/docs/content/toolkit-collaboration.mdx +74 -0
  18. package/corpus/core/docs/content/toolkit-command-navigation.mdx +106 -0
  19. package/corpus/core/docs/content/toolkit-comments-review.mdx +98 -0
  20. package/corpus/core/docs/content/toolkit-history.mdx +95 -0
  21. package/corpus/core/docs/content/toolkit-observability.mdx +41 -0
  22. package/corpus/core/docs/content/toolkit-org-team.mdx +80 -0
  23. package/corpus/core/docs/content/toolkit-resources.mdx +57 -0
  24. package/corpus/core/docs/content/toolkit-settings.mdx +65 -0
  25. package/corpus/core/docs/content/toolkit-setup-connections.mdx +109 -0
  26. package/corpus/core/docs/content/toolkit-sharing-ui.mdx +18 -6
  27. package/corpus/core/docs/content/toolkit-sharing.mdx +81 -0
  28. package/corpus/core/docs/content/toolkit-shell-hooks.mdx +9 -0
  29. package/corpus/core/docs/content/toolkit-ui.mdx +9 -0
  30. package/corpus/core/package.json +35 -1
  31. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +19 -1
  32. package/corpus/core/src/agent/engine/anthropic-engine.ts +25 -1
  33. package/corpus/core/src/agent/engine/registry.ts +23 -16
  34. package/corpus/core/src/agent/production-agent.ts +37 -6
  35. package/corpus/core/src/client/command-navigation/index.ts +15 -0
  36. package/corpus/core/src/client/comments-review/index.ts +1 -0
  37. package/corpus/core/src/client/history/VersionHistoryPanel.tsx +145 -0
  38. package/corpus/core/src/client/history/index.ts +18 -0
  39. package/corpus/core/src/client/history/use-history.ts +86 -0
  40. package/corpus/core/src/client/index.ts +76 -9
  41. package/corpus/core/src/client/org/OrgSwitcher.tsx +6 -6
  42. package/corpus/core/src/client/org/RequireActiveOrg.tsx +2 -2
  43. package/corpus/core/src/client/org/TeamPage.tsx +3 -3
  44. package/corpus/core/src/client/org/hooks.ts +32 -0
  45. package/corpus/core/src/client/org/index.ts +30 -1
  46. package/corpus/core/src/client/org-team/index.ts +1 -0
  47. package/corpus/core/src/client/review/ReviewStatusBadge.tsx +39 -0
  48. package/corpus/core/src/client/review/ReviewThreadPanel.tsx +278 -0
  49. package/corpus/core/src/client/review/index.ts +25 -0
  50. package/corpus/core/src/client/review/use-review.ts +114 -0
  51. package/corpus/core/src/client/settings/index.ts +11 -1
  52. package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +94 -0
  53. package/corpus/core/src/client/setup-connections/ProviderReadinessBadge.tsx +73 -0
  54. package/corpus/core/src/client/setup-connections/SetupConnectionsPage.tsx +94 -0
  55. package/corpus/core/src/client/setup-connections/index.ts +46 -0
  56. package/corpus/core/src/client/sharing/ShareButton.tsx +20 -14
  57. package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
  58. package/corpus/core/src/command-navigation/actions.ts +100 -0
  59. package/corpus/core/src/command-navigation/index.ts +12 -0
  60. package/corpus/core/src/comments-review/index.ts +1 -0
  61. package/corpus/core/src/file-upload/builder.ts +24 -3
  62. package/corpus/core/src/file-upload/types.ts +3 -1
  63. package/corpus/core/src/history/actions/create-resource-version.ts +89 -0
  64. package/corpus/core/src/history/actions/get-resource-version.ts +60 -0
  65. package/corpus/core/src/history/actions/list-resource-history.ts +53 -0
  66. package/corpus/core/src/history/actions/list-resource-versions.ts +43 -0
  67. package/corpus/core/src/history/actions/restore-resource-version.ts +96 -0
  68. package/corpus/core/src/history/index.ts +27 -0
  69. package/corpus/core/src/history/registry.ts +99 -0
  70. package/corpus/core/src/history/store.ts +348 -0
  71. package/corpus/core/src/history/types.ts +69 -0
  72. package/corpus/core/src/index.ts +10 -0
  73. package/corpus/core/src/navigation/index.ts +170 -0
  74. package/corpus/core/src/org/index.ts +8 -0
  75. package/corpus/core/src/org/permissions.ts +30 -0
  76. package/corpus/core/src/org-team/index.ts +1 -0
  77. package/corpus/core/src/private-blob/registry.ts +1 -0
  78. package/corpus/core/src/review/actions/consume-review-feedback.ts +38 -0
  79. package/corpus/core/src/review/actions/create-review-comment.ts +107 -0
  80. package/corpus/core/src/review/actions/delete-review-comment.ts +55 -0
  81. package/corpus/core/src/review/actions/get-review-feedback.ts +54 -0
  82. package/corpus/core/src/review/actions/list-review-comments.ts +53 -0
  83. package/corpus/core/src/review/actions/reply-review-comment.ts +107 -0
  84. package/corpus/core/src/review/actions/resolve-review-thread.ts +60 -0
  85. package/corpus/core/src/review/actions/set-review-status.ts +58 -0
  86. package/corpus/core/src/review/index.ts +36 -0
  87. package/corpus/core/src/review/mentions.ts +44 -0
  88. package/corpus/core/src/review/registry.ts +99 -0
  89. package/corpus/core/src/review/store.ts +687 -0
  90. package/corpus/core/src/review/types.ts +97 -0
  91. package/corpus/core/src/server/action-discovery.ts +54 -0
  92. package/corpus/core/src/server/agent-engine-api-key-route.ts +5 -0
  93. package/corpus/core/src/server/credential-provider.ts +108 -0
  94. package/corpus/core/src/setup-connections/index.ts +89 -0
  95. package/corpus/core/src/setup-connections/onboarding.ts +47 -0
  96. package/corpus/core/src/transcription/builder-transcription.ts +9 -2
  97. package/corpus/core/src/vite/action-types-plugin.ts +52 -0
  98. package/corpus/templates/analytics/app/components/layout/Layout.tsx +2 -1
  99. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +2 -2
  100. package/corpus/templates/analytics/app/global.css +22 -10
  101. package/corpus/templates/analytics/app/i18n/zh-TW.ts +6 -1
  102. package/corpus/templates/analytics/app/i18n-data.ts +81 -13
  103. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +2 -2
  104. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +2 -2
  105. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +528 -108
  106. package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +466 -183
  107. package/corpus/templates/analytics/changelog/2026-07-07-session-replays-load-sooner-show-clearer-activity-timelines-.md +6 -0
  108. package/corpus/templates/brain/app/routes/settings.tsx +2 -2
  109. package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +32 -6
  110. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +120 -40
  111. package/corpus/templates/calendar/app/hooks/use-people.ts +55 -0
  112. package/corpus/templates/calendar/changelog/2026-07-07-guest-suggestions-now-find-coworkers-from-your-google-worksp.md +6 -0
  113. package/corpus/templates/calendar/changelog/2026-07-07-zoom-stays-selected-after-connecting-it-from-a-draft-event.md +6 -0
  114. package/corpus/templates/clips/actions/create-recording.ts +5 -1
  115. package/corpus/templates/clips/actions/finalize-recording.ts +140 -1
  116. package/corpus/templates/clips/actions/import-loom-recording.ts +1 -0
  117. package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +1 -0
  118. package/corpus/templates/clips/actions/request-transcript.ts +31 -0
  119. package/corpus/templates/clips/actions/set-thumbnail.ts +2 -0
  120. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +2 -2
  121. package/corpus/templates/clips/app/components/player/scrubber-position.ts +9 -0
  122. package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -2
  123. package/corpus/templates/clips/app/components/player/share-dialog.tsx +69 -41
  124. package/corpus/templates/clips/app/components/player/video-player.tsx +38 -1
  125. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +3 -3
  126. package/corpus/templates/clips/app/components/sharing/slack-share-hint.tsx +9 -19
  127. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +9 -3
  128. package/corpus/templates/clips/app/routes/record.tsx +21 -12
  129. package/corpus/templates/clips/changelog/2026-07-02-recordings-now-wait-for-storage-media-to-serve-before-finishing.md +6 -0
  130. package/corpus/templates/clips/changelog/2026-07-07-a-pending-app-update-no-longer-blocks-screen-recording-updat.md +6 -0
  131. package/corpus/templates/clips/changelog/2026-07-07-chrome-extension-recordings-keep-audio-after-refreshing-tab.md +6 -0
  132. package/corpus/templates/clips/changelog/2026-07-07-clip-playback-progress-now-starts-and-finishes-at-the-right-times.md +6 -0
  133. package/corpus/templates/clips/changelog/2026-07-07-sharing-public-clips-now-stays-focused-on-the-normal-link-wi.md +6 -0
  134. package/corpus/templates/clips/chrome-extension/src/background.ts +18 -0
  135. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +23 -8
  136. package/corpus/templates/clips/desktop/src/app.tsx +40 -3
  137. package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +19 -7
  138. package/corpus/templates/clips/desktop/src/lib/permissions.ts +2 -0
  139. package/corpus/templates/clips/desktop/src/lib/updater.ts +25 -2
  140. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +7 -0
  141. package/corpus/templates/clips/server/routes/api/recordings/[recordingId]/thumbnail.post.ts +1 -0
  142. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +22 -5
  143. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +8 -0
  144. package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +13 -6
  145. package/corpus/templates/clips/shared/finalize-recovery.ts +12 -0
  146. package/corpus/templates/content/actions/delete-document.ts +337 -52
  147. package/corpus/templates/content/changelog/2026-07-07-permanently-deleting-trashed-databases-now-finishes-reliably.md +6 -0
  148. package/corpus/templates/slides/app/pages/DeckEditor.tsx +2 -2
  149. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  150. package/dist/agent/engine/ai-sdk-engine.js +15 -1
  151. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  152. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  153. package/dist/agent/engine/anthropic-engine.js +20 -1
  154. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  155. package/dist/agent/engine/registry.d.ts.map +1 -1
  156. package/dist/agent/engine/registry.js +22 -14
  157. package/dist/agent/engine/registry.js.map +1 -1
  158. package/dist/agent/production-agent.d.ts.map +1 -1
  159. package/dist/agent/production-agent.js +27 -7
  160. package/dist/agent/production-agent.js.map +1 -1
  161. package/dist/client/command-navigation/index.d.ts +4 -0
  162. package/dist/client/command-navigation/index.d.ts.map +1 -0
  163. package/dist/client/command-navigation/index.js +4 -0
  164. package/dist/client/command-navigation/index.js.map +1 -0
  165. package/dist/client/comments-review/index.d.ts +2 -0
  166. package/dist/client/comments-review/index.d.ts.map +1 -0
  167. package/dist/client/comments-review/index.js +2 -0
  168. package/dist/client/comments-review/index.js.map +1 -0
  169. package/dist/client/history/VersionHistoryPanel.d.ts +18 -0
  170. package/dist/client/history/VersionHistoryPanel.d.ts.map +1 -0
  171. package/dist/client/history/VersionHistoryPanel.js +24 -0
  172. package/dist/client/history/VersionHistoryPanel.js.map +1 -0
  173. package/dist/client/history/index.d.ts +3 -0
  174. package/dist/client/history/index.d.ts.map +1 -0
  175. package/dist/client/history/index.js +3 -0
  176. package/dist/client/history/index.js.map +1 -0
  177. package/dist/client/history/use-history.d.ts +46 -0
  178. package/dist/client/history/use-history.d.ts.map +1 -0
  179. package/dist/client/history/use-history.js +18 -0
  180. package/dist/client/history/use-history.js.map +1 -0
  181. package/dist/client/index.d.ts +6 -4
  182. package/dist/client/index.d.ts.map +1 -1
  183. package/dist/client/index.js +6 -4
  184. package/dist/client/index.js.map +1 -1
  185. package/dist/client/org/OrgSwitcher.js +5 -5
  186. package/dist/client/org/OrgSwitcher.js.map +1 -1
  187. package/dist/client/org/RequireActiveOrg.js +2 -2
  188. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  189. package/dist/client/org/TeamPage.js +3 -3
  190. package/dist/client/org/TeamPage.js.map +1 -1
  191. package/dist/client/org/hooks.d.ts +12 -1
  192. package/dist/client/org/hooks.d.ts.map +1 -1
  193. package/dist/client/org/hooks.js +15 -0
  194. package/dist/client/org/hooks.js.map +1 -1
  195. package/dist/client/org/index.d.ts +4 -2
  196. package/dist/client/org/index.d.ts.map +1 -1
  197. package/dist/client/org/index.js +3 -1
  198. package/dist/client/org/index.js.map +1 -1
  199. package/dist/client/org-team/index.d.ts +2 -0
  200. package/dist/client/org-team/index.d.ts.map +1 -0
  201. package/dist/client/org-team/index.js +2 -0
  202. package/dist/client/org-team/index.js.map +1 -0
  203. package/dist/client/review/ReviewStatusBadge.d.ts +7 -0
  204. package/dist/client/review/ReviewStatusBadge.d.ts.map +1 -0
  205. package/dist/client/review/ReviewStatusBadge.js +19 -0
  206. package/dist/client/review/ReviewStatusBadge.js.map +1 -0
  207. package/dist/client/review/ReviewThreadPanel.d.ts +20 -0
  208. package/dist/client/review/ReviewThreadPanel.d.ts.map +1 -0
  209. package/dist/client/review/ReviewThreadPanel.js +84 -0
  210. package/dist/client/review/ReviewThreadPanel.js.map +1 -0
  211. package/dist/client/review/index.d.ts +4 -0
  212. package/dist/client/review/index.d.ts.map +1 -0
  213. package/dist/client/review/index.js +4 -0
  214. package/dist/client/review/index.js.map +1 -0
  215. package/dist/client/review/use-review.d.ts +68 -0
  216. package/dist/client/review/use-review.d.ts.map +1 -0
  217. package/dist/client/review/use-review.js +22 -0
  218. package/dist/client/review/use-review.js.map +1 -0
  219. package/dist/client/settings/index.d.ts +1 -1
  220. package/dist/client/settings/index.d.ts.map +1 -1
  221. package/dist/client/settings/index.js +1 -1
  222. package/dist/client/settings/index.js.map +1 -1
  223. package/dist/client/setup-connections/BuilderConnectCard.d.ts +9 -0
  224. package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -0
  225. package/dist/client/setup-connections/BuilderConnectCard.js +25 -0
  226. package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -0
  227. package/dist/client/setup-connections/ProviderReadinessBadge.d.ts +8 -0
  228. package/dist/client/setup-connections/ProviderReadinessBadge.d.ts.map +1 -0
  229. package/dist/client/setup-connections/ProviderReadinessBadge.js +32 -0
  230. package/dist/client/setup-connections/ProviderReadinessBadge.js.map +1 -0
  231. package/dist/client/setup-connections/SetupConnectionsPage.d.ts +17 -0
  232. package/dist/client/setup-connections/SetupConnectionsPage.d.ts.map +1 -0
  233. package/dist/client/setup-connections/SetupConnectionsPage.js +10 -0
  234. package/dist/client/setup-connections/SetupConnectionsPage.js.map +1 -0
  235. package/dist/client/setup-connections/index.d.ts +7 -0
  236. package/dist/client/setup-connections/index.d.ts.map +1 -0
  237. package/dist/client/setup-connections/index.js +7 -0
  238. package/dist/client/setup-connections/index.js.map +1 -0
  239. package/dist/client/sharing/ShareButton.d.ts +4 -4
  240. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  241. package/dist/client/sharing/ShareButton.js +13 -7
  242. package/dist/client/sharing/ShareButton.js.map +1 -1
  243. package/dist/client/sharing/ShareDialog.js +3 -3
  244. package/dist/client/sharing/ShareDialog.js.map +1 -1
  245. package/dist/collab/struct-routes.d.ts +1 -1
  246. package/dist/command-navigation/actions.d.ts +25 -0
  247. package/dist/command-navigation/actions.d.ts.map +1 -0
  248. package/dist/command-navigation/actions.js +64 -0
  249. package/dist/command-navigation/actions.js.map +1 -0
  250. package/dist/command-navigation/index.d.ts +4 -0
  251. package/dist/command-navigation/index.d.ts.map +1 -0
  252. package/dist/command-navigation/index.js +4 -0
  253. package/dist/command-navigation/index.js.map +1 -0
  254. package/dist/comments-review/index.d.ts +2 -0
  255. package/dist/comments-review/index.d.ts.map +1 -0
  256. package/dist/comments-review/index.js +2 -0
  257. package/dist/comments-review/index.js.map +1 -0
  258. package/dist/file-upload/builder.d.ts.map +1 -1
  259. package/dist/file-upload/builder.js +18 -2
  260. package/dist/file-upload/builder.js.map +1 -1
  261. package/dist/file-upload/types.d.ts +3 -0
  262. package/dist/file-upload/types.d.ts.map +1 -1
  263. package/dist/file-upload/types.js.map +1 -1
  264. package/dist/history/actions/create-resource-version.d.ts +10 -0
  265. package/dist/history/actions/create-resource-version.d.ts.map +1 -0
  266. package/dist/history/actions/create-resource-version.js +65 -0
  267. package/dist/history/actions/create-resource-version.js.map +1 -0
  268. package/dist/history/actions/get-resource-version.d.ts +10 -0
  269. package/dist/history/actions/get-resource-version.d.ts.map +1 -0
  270. package/dist/history/actions/get-resource-version.js +38 -0
  271. package/dist/history/actions/get-resource-version.js.map +1 -0
  272. package/dist/history/actions/list-resource-history.d.ts +10 -0
  273. package/dist/history/actions/list-resource-history.d.ts.map +1 -0
  274. package/dist/history/actions/list-resource-history.js +45 -0
  275. package/dist/history/actions/list-resource-history.js.map +1 -0
  276. package/dist/history/actions/list-resource-versions.d.ts +10 -0
  277. package/dist/history/actions/list-resource-versions.d.ts.map +1 -0
  278. package/dist/history/actions/list-resource-versions.js +35 -0
  279. package/dist/history/actions/list-resource-versions.js.map +1 -0
  280. package/dist/history/actions/restore-resource-version.d.ts +11 -0
  281. package/dist/history/actions/restore-resource-version.d.ts.map +1 -0
  282. package/dist/history/actions/restore-resource-version.js +59 -0
  283. package/dist/history/actions/restore-resource-version.js.map +1 -0
  284. package/dist/history/index.d.ts +4 -0
  285. package/dist/history/index.d.ts.map +1 -0
  286. package/dist/history/index.js +3 -0
  287. package/dist/history/index.js.map +1 -0
  288. package/dist/history/registry.d.ts +10 -0
  289. package/dist/history/registry.d.ts.map +1 -0
  290. package/dist/history/registry.js +61 -0
  291. package/dist/history/registry.js.map +1 -0
  292. package/dist/history/store.d.ts +34 -0
  293. package/dist/history/store.d.ts.map +1 -0
  294. package/dist/history/store.js +265 -0
  295. package/dist/history/store.js.map +1 -0
  296. package/dist/history/types.d.ts +55 -0
  297. package/dist/history/types.d.ts.map +1 -0
  298. package/dist/history/types.js +2 -0
  299. package/dist/history/types.js.map +1 -0
  300. package/dist/index.d.ts +6 -0
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +6 -0
  303. package/dist/index.js.map +1 -1
  304. package/dist/navigation/index.d.ts +53 -0
  305. package/dist/navigation/index.d.ts.map +1 -0
  306. package/dist/navigation/index.js +105 -0
  307. package/dist/navigation/index.js.map +1 -0
  308. package/dist/org/index.d.ts +1 -0
  309. package/dist/org/index.d.ts.map +1 -1
  310. package/dist/org/index.js +1 -0
  311. package/dist/org/index.js.map +1 -1
  312. package/dist/org/permissions.d.ts +7 -0
  313. package/dist/org/permissions.d.ts.map +1 -0
  314. package/dist/org/permissions.js +21 -0
  315. package/dist/org/permissions.js.map +1 -0
  316. package/dist/org-team/index.d.ts +2 -0
  317. package/dist/org-team/index.d.ts.map +1 -0
  318. package/dist/org-team/index.js +2 -0
  319. package/dist/org-team/index.js.map +1 -0
  320. package/dist/private-blob/registry.d.ts.map +1 -1
  321. package/dist/private-blob/registry.js +1 -0
  322. package/dist/private-blob/registry.js.map +1 -1
  323. package/dist/resources/handlers.d.ts +2 -2
  324. package/dist/review/actions/consume-review-feedback.d.ts +9 -0
  325. package/dist/review/actions/consume-review-feedback.d.ts.map +1 -0
  326. package/dist/review/actions/consume-review-feedback.js +29 -0
  327. package/dist/review/actions/consume-review-feedback.js.map +1 -0
  328. package/dist/review/actions/create-review-comment.d.ts +18 -0
  329. package/dist/review/actions/create-review-comment.d.ts.map +1 -0
  330. package/dist/review/actions/create-review-comment.js +81 -0
  331. package/dist/review/actions/create-review-comment.js.map +1 -0
  332. package/dist/review/actions/delete-review-comment.d.ts +10 -0
  333. package/dist/review/actions/delete-review-comment.d.ts.map +1 -0
  334. package/dist/review/actions/delete-review-comment.js +45 -0
  335. package/dist/review/actions/delete-review-comment.js.map +1 -0
  336. package/dist/review/actions/get-review-feedback.d.ts +10 -0
  337. package/dist/review/actions/get-review-feedback.d.ts.map +1 -0
  338. package/dist/review/actions/get-review-feedback.js +45 -0
  339. package/dist/review/actions/get-review-feedback.js.map +1 -0
  340. package/dist/review/actions/list-review-comments.d.ts +13 -0
  341. package/dist/review/actions/list-review-comments.d.ts.map +1 -0
  342. package/dist/review/actions/list-review-comments.js +44 -0
  343. package/dist/review/actions/list-review-comments.js.map +1 -0
  344. package/dist/review/actions/reply-review-comment.d.ts +16 -0
  345. package/dist/review/actions/reply-review-comment.d.ts.map +1 -0
  346. package/dist/review/actions/reply-review-comment.js +84 -0
  347. package/dist/review/actions/reply-review-comment.js.map +1 -0
  348. package/dist/review/actions/resolve-review-thread.d.ts +11 -0
  349. package/dist/review/actions/resolve-review-thread.d.ts.map +1 -0
  350. package/dist/review/actions/resolve-review-thread.js +46 -0
  351. package/dist/review/actions/resolve-review-thread.js.map +1 -0
  352. package/dist/review/actions/set-review-status.d.ts +9 -0
  353. package/dist/review/actions/set-review-status.d.ts.map +1 -0
  354. package/dist/review/actions/set-review-status.js +43 -0
  355. package/dist/review/actions/set-review-status.js.map +1 -0
  356. package/dist/review/index.d.ts +5 -0
  357. package/dist/review/index.d.ts.map +1 -0
  358. package/dist/review/index.js +4 -0
  359. package/dist/review/index.js.map +1 -0
  360. package/dist/review/mentions.d.ts +4 -0
  361. package/dist/review/mentions.d.ts.map +1 -0
  362. package/dist/review/mentions.js +39 -0
  363. package/dist/review/mentions.js.map +1 -0
  364. package/dist/review/registry.d.ts +10 -0
  365. package/dist/review/registry.d.ts.map +1 -0
  366. package/dist/review/registry.js +61 -0
  367. package/dist/review/registry.js.map +1 -0
  368. package/dist/review/store.d.ts +63 -0
  369. package/dist/review/store.d.ts.map +1 -0
  370. package/dist/review/store.js +558 -0
  371. package/dist/review/store.js.map +1 -0
  372. package/dist/review/types.d.ts +77 -0
  373. package/dist/review/types.d.ts.map +1 -0
  374. package/dist/review/types.js +2 -0
  375. package/dist/review/types.js.map +1 -0
  376. package/dist/server/action-discovery.d.ts.map +1 -1
  377. package/dist/server/action-discovery.js +54 -0
  378. package/dist/server/action-discovery.js.map +1 -1
  379. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  380. package/dist/server/agent-engine-api-key-route.d.ts.map +1 -1
  381. package/dist/server/agent-engine-api-key-route.js +5 -0
  382. package/dist/server/agent-engine-api-key-route.js.map +1 -1
  383. package/dist/server/credential-provider.d.ts +26 -0
  384. package/dist/server/credential-provider.d.ts.map +1 -1
  385. package/dist/server/credential-provider.js +82 -0
  386. package/dist/server/credential-provider.js.map +1 -1
  387. package/dist/setup-connections/index.d.ts +6 -0
  388. package/dist/setup-connections/index.d.ts.map +1 -0
  389. package/dist/setup-connections/index.js +6 -0
  390. package/dist/setup-connections/index.js.map +1 -0
  391. package/dist/setup-connections/onboarding.d.ts +14 -0
  392. package/dist/setup-connections/onboarding.d.ts.map +1 -0
  393. package/dist/setup-connections/onboarding.js +23 -0
  394. package/dist/setup-connections/onboarding.js.map +1 -0
  395. package/dist/transcription/builder-transcription.d.ts +1 -0
  396. package/dist/transcription/builder-transcription.d.ts.map +1 -1
  397. package/dist/transcription/builder-transcription.js +5 -2
  398. package/dist/transcription/builder-transcription.js.map +1 -1
  399. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  400. package/dist/vite/action-types-plugin.js +52 -0
  401. package/dist/vite/action-types-plugin.js.map +1 -1
  402. package/docs/content/agent-native-toolkit.mdx +87 -80
  403. package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
  404. package/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
  405. package/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
  406. package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
  407. package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
  408. package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
  409. package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
  410. package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
  411. package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
  412. package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
  413. package/docs/content/toolkit-agent-ux.mdx +43 -0
  414. package/docs/content/toolkit-app-adapters.mdx +9 -0
  415. package/docs/content/toolkit-collaboration-ui.mdx +12 -0
  416. package/docs/content/toolkit-collaboration.mdx +74 -0
  417. package/docs/content/toolkit-command-navigation.mdx +106 -0
  418. package/docs/content/toolkit-comments-review.mdx +98 -0
  419. package/docs/content/toolkit-history.mdx +95 -0
  420. package/docs/content/toolkit-observability.mdx +41 -0
  421. package/docs/content/toolkit-org-team.mdx +80 -0
  422. package/docs/content/toolkit-resources.mdx +57 -0
  423. package/docs/content/toolkit-settings.mdx +65 -0
  424. package/docs/content/toolkit-setup-connections.mdx +109 -0
  425. package/docs/content/toolkit-sharing-ui.mdx +18 -6
  426. package/docs/content/toolkit-sharing.mdx +81 -0
  427. package/docs/content/toolkit-shell-hooks.mdx +9 -0
  428. package/docs/content/toolkit-ui.mdx +9 -0
  429. package/package.json +36 -2
@@ -0,0 +1,15 @@
1
+ export {
2
+ CommandMenu,
3
+ openAgentSettings,
4
+ openAgentSidebar,
5
+ submitToAgent,
6
+ useCommandMenuShortcut,
7
+ type CommandDocsGroupProps,
8
+ type CommandGroupProps,
9
+ type CommandItemProps,
10
+ type CommandMenuDoc,
11
+ type CommandMenuProps,
12
+ type CommandShortcutProps,
13
+ } from "../CommandMenu.js";
14
+ export { focusAgentChat } from "../AgentPanel.js";
15
+ export * from "../../navigation/index.js";
@@ -0,0 +1 @@
1
+ export * from "../review/index.js";
@@ -0,0 +1,145 @@
1
+ import { IconClock, IconRestore, IconTimeline } from "@tabler/icons-react";
2
+ import type { ReactNode } from "react";
3
+
4
+ import type { ResourceVersion } from "../../history/types.js";
5
+ import { cn } from "../utils.js";
6
+ import {
7
+ useResourceVersions,
8
+ useRestoreResourceVersion,
9
+ } from "./use-history.js";
10
+
11
+ export interface VersionHistoryPanelProps {
12
+ resourceType: string;
13
+ resourceId: string;
14
+ title?: string;
15
+ className?: string;
16
+ limit?: number;
17
+ emptyState?: ReactNode;
18
+ renderVersion?: (version: ResourceVersion) => ReactNode;
19
+ onRestored?: (version: ResourceVersion, result: unknown) => void;
20
+ }
21
+
22
+ export function VersionHistoryPanel({
23
+ resourceType,
24
+ resourceId,
25
+ title = "Version history",
26
+ className,
27
+ limit = 20,
28
+ emptyState = "No saved versions yet.",
29
+ renderVersion,
30
+ onRestored,
31
+ }: VersionHistoryPanelProps) {
32
+ const versions = useResourceVersions({ resourceType, resourceId, limit });
33
+ const restore = useRestoreResourceVersion();
34
+
35
+ return (
36
+ <section
37
+ className={cn(
38
+ "rounded-lg border border-border bg-card text-card-foreground",
39
+ className,
40
+ )}
41
+ >
42
+ <div className="flex items-center gap-2 border-b border-border px-4 py-3">
43
+ <IconTimeline className="h-4 w-4 text-muted-foreground" />
44
+ <h2 className="text-sm font-medium">{title}</h2>
45
+ </div>
46
+ <div className="divide-y divide-border">
47
+ {versions.isLoading ? (
48
+ <div className="px-4 py-6 text-sm text-muted-foreground">
49
+ Loading versions...
50
+ </div>
51
+ ) : versions.data?.versions.length ? (
52
+ versions.data.versions.map((version) => (
53
+ <article key={version.id} className="flex gap-3 px-4 py-3">
54
+ <div className="mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-muted">
55
+ <IconClock className="h-4 w-4 text-muted-foreground" />
56
+ </div>
57
+ <div className="min-w-0 flex-1">
58
+ {renderVersion ? (
59
+ renderVersion(version)
60
+ ) : (
61
+ <>
62
+ <div className="flex flex-wrap items-center gap-x-2 gap-y-1">
63
+ <h3 className="truncate text-sm font-medium">
64
+ {version.title ?? `Version ${version.versionNumber}`}
65
+ </h3>
66
+ <span className="text-xs text-muted-foreground">
67
+ {formatVersionDate(version.createdAt)}
68
+ </span>
69
+ </div>
70
+ {version.summary ? (
71
+ <p className="mt-1 text-sm text-muted-foreground">
72
+ {version.summary}
73
+ </p>
74
+ ) : null}
75
+ </>
76
+ )}
77
+ </div>
78
+ <button
79
+ type="button"
80
+ className="inline-flex h-8 items-center gap-1.5 rounded-md border border-input px-2.5 text-xs font-medium hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50"
81
+ disabled={restore.isPending}
82
+ onClick={() =>
83
+ restore.mutate(
84
+ { id: version.id },
85
+ {
86
+ onSuccess: (result) => {
87
+ onRestored?.(result.version, result.result);
88
+ },
89
+ },
90
+ )
91
+ }
92
+ >
93
+ <IconRestore className="h-3.5 w-3.5" />
94
+ Restore
95
+ </button>
96
+ </article>
97
+ ))
98
+ ) : (
99
+ <div className="px-4 py-6 text-sm text-muted-foreground">
100
+ {emptyState}
101
+ </div>
102
+ )}
103
+ </div>
104
+ </section>
105
+ );
106
+ }
107
+
108
+ export function HistoryTimeline({
109
+ versions,
110
+ className,
111
+ }: {
112
+ versions: ResourceVersion[];
113
+ className?: string;
114
+ }) {
115
+ return (
116
+ <ol className={cn("space-y-3", className)}>
117
+ {versions.map((version) => (
118
+ <li key={version.id} className="flex gap-3">
119
+ <div className="mt-1 h-2 w-2 rounded-full bg-primary" />
120
+ <div className="min-w-0">
121
+ <div className="truncate text-sm font-medium">
122
+ {version.title ?? `Version ${version.versionNumber}`}
123
+ </div>
124
+ <div className="text-xs text-muted-foreground">
125
+ {formatVersionDate(version.createdAt)}
126
+ </div>
127
+ {version.summary ? (
128
+ <p className="mt-1 text-sm text-muted-foreground">
129
+ {version.summary}
130
+ </p>
131
+ ) : null}
132
+ </div>
133
+ </li>
134
+ ))}
135
+ </ol>
136
+ );
137
+ }
138
+
139
+ function formatVersionDate(value: string): string {
140
+ const date = new Date(value);
141
+ if (Number.isNaN(date.getTime())) {
142
+ return value;
143
+ }
144
+ return date.toLocaleString();
145
+ }
@@ -0,0 +1,18 @@
1
+ export {
2
+ HistoryTimeline,
3
+ VersionHistoryPanel,
4
+ type VersionHistoryPanelProps,
5
+ } from "./VersionHistoryPanel.js";
6
+ export {
7
+ useCreateResourceVersion,
8
+ useResourceHistory,
9
+ useResourceVersions,
10
+ useRestoreResourceVersion,
11
+ type CreateResourceVersionInput,
12
+ type ListResourceHistoryResult,
13
+ type ListResourceVersionsResult,
14
+ type ResourceHistoryParams,
15
+ type ResourceVersionsParams,
16
+ type RestoreResourceVersionInput,
17
+ type RestoreResourceVersionResult,
18
+ } from "./use-history.js";
@@ -0,0 +1,86 @@
1
+ import type { ResourceVersion } from "../../history/types.js";
2
+ import { useActionMutation, useActionQuery } from "../use-action.js";
3
+
4
+ export interface ResourceVersionsParams {
5
+ resourceType: string;
6
+ resourceId: string;
7
+ limit?: number;
8
+ offset?: number;
9
+ }
10
+
11
+ export interface ResourceHistoryParams {
12
+ resourceType: string;
13
+ resourceId: string;
14
+ limit?: number;
15
+ }
16
+
17
+ export interface CreateResourceVersionInput {
18
+ resourceType: string;
19
+ resourceId: string;
20
+ title?: string;
21
+ summary?: string;
22
+ snapshot?: unknown;
23
+ metadata?: Record<string, unknown>;
24
+ }
25
+
26
+ export interface RestoreResourceVersionInput {
27
+ id?: string;
28
+ resourceType?: string;
29
+ resourceId?: string;
30
+ versionNumber?: number;
31
+ }
32
+
33
+ export interface ListResourceVersionsResult {
34
+ versions: ResourceVersion[];
35
+ }
36
+
37
+ export interface ListResourceHistoryResult {
38
+ versions: ResourceVersion[];
39
+ auditEvents: unknown[];
40
+ }
41
+
42
+ export interface RestoreResourceVersionResult {
43
+ version: ResourceVersion;
44
+ result: unknown;
45
+ }
46
+
47
+ export function useResourceVersions(
48
+ params: ResourceVersionsParams,
49
+ options?: { enabled?: boolean },
50
+ ) {
51
+ return useActionQuery<ListResourceVersionsResult>(
52
+ "list-resource-versions",
53
+ params,
54
+ {
55
+ enabled:
56
+ options?.enabled ?? Boolean(params.resourceType && params.resourceId),
57
+ },
58
+ );
59
+ }
60
+
61
+ export function useResourceHistory(
62
+ params: ResourceHistoryParams,
63
+ options?: { enabled?: boolean },
64
+ ) {
65
+ return useActionQuery<ListResourceHistoryResult>(
66
+ "list-resource-history",
67
+ params,
68
+ {
69
+ enabled:
70
+ options?.enabled ?? Boolean(params.resourceType && params.resourceId),
71
+ },
72
+ );
73
+ }
74
+
75
+ export function useCreateResourceVersion() {
76
+ return useActionMutation<ResourceVersion, CreateResourceVersionInput>(
77
+ "create-resource-version",
78
+ );
79
+ }
80
+
81
+ export function useRestoreResourceVersion() {
82
+ return useActionMutation<
83
+ RestoreResourceVersionResult,
84
+ RestoreResourceVersionInput
85
+ >("restore-resource-version");
86
+ }
@@ -639,19 +639,22 @@ export { AgentNativeIcon } from "./components/icons/AgentNativeIcon.js";
639
639
  export {
640
640
  SettingsPanel,
641
641
  SettingsTabsPage,
642
- useAgentSettingsTabs,
643
- type SettingsPanelProps,
644
- type SettingsTabItem,
645
- type SettingsTabsPageProps,
646
- } from "./settings/index.js";
647
- export { useBuilderStatus } from "./settings/useBuilderStatus.js";
648
- export {
642
+ SecretsSection,
649
643
  openBuilderConnectPopup,
644
+ useAgentSettingsTabs,
650
645
  useBuilderConnectFlow,
646
+ useBuilderStatus,
647
+ withBuilderConnectTrackingParams,
651
648
  type BuilderConnectFlow,
652
649
  type BuilderConnectFlowOptions,
650
+ type BuilderConnectStartOptions,
651
+ type BuilderStatus,
653
652
  type OpenBuilderConnectPopupOptions,
654
- } from "./settings/useBuilderStatus.js";
653
+ type SecretsSectionProps,
654
+ type SettingsPanelProps,
655
+ type SettingsTabItem,
656
+ type SettingsTabsPageProps,
657
+ } from "./settings/index.js";
655
658
  // Deprecated — use AgentSidebar + AgentToggleButton instead
656
659
  export {
657
660
  ProductionAgentPanel,
@@ -783,6 +786,43 @@ export {
783
786
  type ResourceTreeProps,
784
787
  type ResourceEditorProps,
785
788
  } from "./resources/index.js";
789
+ export {
790
+ HistoryTimeline,
791
+ VersionHistoryPanel,
792
+ useCreateResourceVersion,
793
+ useResourceHistory,
794
+ useResourceVersions,
795
+ useRestoreResourceVersion,
796
+ type CreateResourceVersionInput,
797
+ type ListResourceHistoryResult,
798
+ type ListResourceVersionsResult,
799
+ type ResourceHistoryParams,
800
+ type ResourceVersionsParams,
801
+ type RestoreResourceVersionInput,
802
+ type RestoreResourceVersionResult,
803
+ type VersionHistoryPanelProps,
804
+ } from "./history/index.js";
805
+ export {
806
+ ReviewStatusBadge,
807
+ ReviewThreadPanel,
808
+ buildReviewThreads,
809
+ useCreateReviewComment,
810
+ useDeleteReviewComment,
811
+ useReplyReviewComment,
812
+ useResolveReviewThread,
813
+ useReviewComments,
814
+ useSetReviewStatus,
815
+ type CreateReviewCommentInput,
816
+ type DeleteReviewCommentInput,
817
+ type ListReviewCommentsParams,
818
+ type ListReviewCommentsResult,
819
+ type ReplyReviewCommentInput,
820
+ type ResolveReviewThreadInput,
821
+ type ReviewStatusBadgeProps,
822
+ type ReviewThread,
823
+ type ReviewThreadPanelProps,
824
+ type SetReviewStatusInput,
825
+ } from "./review/index.js";
786
826
  export type {
787
827
  AppToFrameMessage,
788
828
  FrameToAppMessage,
@@ -792,10 +832,10 @@ export type {
792
832
  } from "./frame-protocol.js";
793
833
  export {
794
834
  CommandMenu,
795
- useCommandMenuShortcut,
796
835
  openAgentSidebar,
797
836
  openAgentSettings,
798
837
  submitToAgent,
838
+ useCommandMenuShortcut,
799
839
  type CommandMenuProps,
800
840
  type CommandMenuDoc,
801
841
  type CommandDocsGroupProps,
@@ -803,6 +843,33 @@ export {
803
843
  type CommandItemProps,
804
844
  type CommandShortcutProps,
805
845
  } from "./CommandMenu.js";
846
+ export {
847
+ buildOpenRouteLink,
848
+ buildOpenRoutePath,
849
+ buildResourceRoute,
850
+ buildSettingsRoute,
851
+ buildStandardAppRoute,
852
+ buildTeamRoute,
853
+ createStandardOpenPathResolver,
854
+ STANDARD_APP_ROUTES,
855
+ STANDARD_SETTINGS_TABS,
856
+ type BuildResourceRouteOptions,
857
+ type BuildStandardAppRouteOptions,
858
+ type NavigationLink,
859
+ type NavigationTarget,
860
+ type StandardAppRouteId,
861
+ type StandardOpenPathResolverOptions,
862
+ type StandardOpenPathRoute,
863
+ type StandardSettingsTabId,
864
+ } from "../navigation/index.js";
865
+ export {
866
+ BuilderConnectCard,
867
+ ProviderReadinessBadge,
868
+ SetupConnectionsPage,
869
+ type BuilderConnectCardProps,
870
+ type ProviderReadinessBadgeProps,
871
+ type SetupConnectionsPageProps,
872
+ } from "./setup-connections/index.js";
806
873
  export {
807
874
  ChangelogDialog,
808
875
  ChangelogSettingsCard,
@@ -5,7 +5,6 @@ import {
5
5
  IconBrain,
6
6
  IconBrandJira,
7
7
  IconBrush,
8
- IconBuilding,
9
8
  IconCalendar,
10
9
  IconCalendarTime,
11
10
  IconChartBar,
@@ -33,6 +32,7 @@ import {
33
32
  IconUser,
34
33
  IconUserPlus,
35
34
  IconUsers,
35
+ IconUsersGroup,
36
36
  IconWorld,
37
37
  } from "@tabler/icons-react";
38
38
  import { useState } from "react";
@@ -285,7 +285,7 @@ function OrgSwitcherLoadingPlaceholder({ className }: { className?: string }) {
285
285
  aria-label="Loading organization"
286
286
  className={`${SWITCHER_BUTTON_CLASS} animate-pulse ${className ?? ""}`}
287
287
  >
288
- <IconBuilding className="h-3.5 w-3.5 shrink-0 opacity-60" />
288
+ <IconUsersGroup className="h-3.5 w-3.5 shrink-0 opacity-60" />
289
289
  <span className="h-3 min-w-0 flex-1 rounded-sm bg-muted-foreground/20" />
290
290
  <IconSelector className="h-3 w-3 shrink-0 opacity-30" />
291
291
  </button>
@@ -376,7 +376,7 @@ export function OrgSwitcher({
376
376
  const personalLabel = personalLabelFromEmail(org.email);
377
377
  const inOrg = !!org.orgId;
378
378
  const buttonLabel = org.orgName ?? "Personal";
379
- const ButtonIcon = inOrg ? IconBuilding : IconUser;
379
+ const ButtonIcon = inOrg ? IconUsersGroup : IconUser;
380
380
  const organizationSettingsHref = settingsPath
381
381
  ? organizationSettingsPath(settingsPath)
382
382
  : null;
@@ -440,7 +440,7 @@ export function OrgSwitcher({
440
440
  disabled={switchOrg.isPending}
441
441
  className={`${ITEM_CLASS} cursor-pointer`}
442
442
  >
443
- <IconBuilding className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
443
+ <IconUsersGroup className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
444
444
  <span className="truncate flex-1 text-start">
445
445
  {o.orgName}
446
446
  </span>
@@ -459,7 +459,7 @@ export function OrgSwitcher({
459
459
  key={inv.id}
460
460
  className="flex items-center gap-2 px-2.5 py-1.5 text-xs"
461
461
  >
462
- <IconBuilding className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
462
+ <IconUsersGroup className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
463
463
  <span className="truncate flex-1 text-foreground">
464
464
  {inv.orgName}
465
465
  </span>
@@ -501,7 +501,7 @@ export function OrgSwitcher({
501
501
  key={match.orgId}
502
502
  className="flex items-center gap-2 px-2.5 py-1.5 text-xs"
503
503
  >
504
- <IconBuilding className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
504
+ <IconUsersGroup className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
505
505
  <span className="truncate flex-1 text-foreground">
506
506
  {match.orgName}
507
507
  </span>
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  IconAlertTriangle,
3
- IconBuilding,
4
3
  IconLoader2,
5
4
  IconUserPlus,
6
5
  IconAt,
6
+ IconUsersGroup,
7
7
  } from "@tabler/icons-react";
8
8
  import { ReactNode, useState } from "react";
9
9
 
@@ -177,7 +177,7 @@ function CreateOrgPane({
177
177
  >
178
178
  <div className="my-auto w-full max-w-md rounded-2xl border border-border bg-card p-8 shadow-lg">
179
179
  <div className="mb-6 flex items-center gap-2">
180
- <IconBuilding className="h-5 w-5 text-muted-foreground" />
180
+ <IconUsersGroup className="h-5 w-5 text-muted-foreground" />
181
181
  <h1 className="text-lg font-semibold">{title}</h1>
182
182
  </div>
183
183
  <p className="mb-6 text-sm text-muted-foreground">{description}</p>
@@ -1,5 +1,4 @@
1
1
  import {
2
- IconBuilding,
3
2
  IconUserPlus,
4
3
  IconTrash,
5
4
  IconCrown,
@@ -18,6 +17,7 @@ import {
18
17
  IconFileImport,
19
18
  IconPlus,
20
19
  IconAlertTriangle,
20
+ IconUsersGroup,
21
21
  } from "@tabler/icons-react";
22
22
  import { useMemo, useRef, useState, type ReactNode } from "react";
23
23
 
@@ -153,7 +153,7 @@ function JoinByDomainCard({ matches }: { matches: DomainMatchOrg[] }) {
153
153
  >
154
154
  <div className="flex items-center gap-2.5">
155
155
  <div className="flex h-8 w-8 items-center justify-center rounded-md bg-blue-600/10">
156
- <IconBuilding className="h-4 w-4 text-blue-600" />
156
+ <IconUsersGroup className="h-4 w-4 text-blue-600" />
157
157
  </div>
158
158
  <div className="text-sm font-medium">{m.orgName}</div>
159
159
  </div>
@@ -324,7 +324,7 @@ function MembersCard() {
324
324
  <div className="flex items-center justify-between">
325
325
  <div className="flex items-center gap-3">
326
326
  <div className="flex h-9 w-9 items-center justify-center rounded-lg bg-blue-600/10">
327
- <IconBuilding className="h-5 w-5 text-blue-600" />
327
+ <IconUsersGroup className="h-5 w-5 text-blue-600" />
328
328
  </div>
329
329
  <div>
330
330
  <OrgNameDisplay name={org.orgName ?? ""} canEdit={isOwnerOrAdmin} />
@@ -1,9 +1,15 @@
1
1
  import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
2
2
 
3
+ import {
4
+ canInviteOrgMembers,
5
+ canManageOrg,
6
+ canManageOrgDomain,
7
+ } from "../../org/permissions.js";
3
8
  import type {
4
9
  OrgInfo,
5
10
  OrgMember,
6
11
  OrgPendingInvitation,
12
+ OrgRole,
7
13
  } from "../../org/types.js";
8
14
  import { agentNativePath } from "../api-path.js";
9
15
 
@@ -48,6 +54,32 @@ export function useOrg() {
48
54
  });
49
55
  }
50
56
 
57
+ export interface UseOrgRoleResult {
58
+ org: OrgInfo | undefined;
59
+ role: OrgRole | null;
60
+ isOwner: boolean;
61
+ canManageOrg: boolean;
62
+ canInviteMembers: boolean;
63
+ canManageDomain: boolean;
64
+ isLoading: boolean;
65
+ error: Error | null;
66
+ }
67
+
68
+ export function useOrgRole(): UseOrgRoleResult {
69
+ const query = useOrg();
70
+ const role = query.data?.role ?? null;
71
+ return {
72
+ org: query.data,
73
+ role,
74
+ isOwner: role === "owner",
75
+ canManageOrg: canManageOrg(role),
76
+ canInviteMembers: canInviteOrgMembers(role),
77
+ canManageDomain: canManageOrgDomain(role),
78
+ isLoading: query.isLoading,
79
+ error: query.error,
80
+ };
81
+ }
82
+
51
83
  export function useOrgMembers() {
52
84
  // Scope the cache by active orgId so switching or creating an org forces a
53
85
  // fresh fetch rather than briefly showing the previous org's members.
@@ -14,9 +14,18 @@ export {
14
14
  useSwitchOrg,
15
15
  useJoinByDomain,
16
16
  useSetOrgDomain,
17
+ useSetA2ASecret,
18
+ useSyncA2ASecret,
19
+ useOrgRole,
17
20
  } from "./hooks.js";
18
21
 
19
- export type { InviteRole, InviteVars, BulkInviteResult } from "./hooks.js";
22
+ export type {
23
+ InviteRole,
24
+ InviteVars,
25
+ BulkInviteResult,
26
+ SyncA2ASecretResult,
27
+ UseOrgRoleResult,
28
+ } from "./hooks.js";
20
29
 
21
30
  export { OrgSwitcher, type OrgSwitcherProps } from "./OrgSwitcher.js";
22
31
  export {
@@ -28,6 +37,26 @@ export {
28
37
  RequireActiveOrg,
29
38
  type RequireActiveOrgProps,
30
39
  } from "./RequireActiveOrg.js";
40
+ export {
41
+ defaultOrgAppLinks,
42
+ dispatchAppsHref,
43
+ dispatchOverviewHref,
44
+ isWorkspaceAppEnvironment,
45
+ parseWorkspaceAppLinks,
46
+ parseWorkspaceAppLinksJson,
47
+ visibleOrgAppLinks,
48
+ ORG_SWITCHER_MAX_APP_LINKS,
49
+ type OrgSwitcherAppLink,
50
+ type UseOrgSwitcherAppLinksResult,
51
+ type VisibleOrgAppLinks,
52
+ } from "./workspace-app-links.js";
53
+ export {
54
+ canInviteOrgMembers,
55
+ canManageOrg,
56
+ canManageOrgDomain,
57
+ orgRoleAtLeast,
58
+ orgRoleRank,
59
+ } from "../../org/permissions.js";
31
60
 
32
61
  // Re-export the shared types so consumers can import them from one place.
33
62
  export type {
@@ -0,0 +1 @@
1
+ export * from "../org/index.js";
@@ -0,0 +1,39 @@
1
+ import type { ReviewStatus } from "../../review/types.js";
2
+ import { cn } from "../utils.js";
3
+
4
+ export interface ReviewStatusBadgeProps {
5
+ status: ReviewStatus | null | undefined;
6
+ className?: string;
7
+ }
8
+
9
+ const STATUS_LABELS: Record<ReviewStatus, string> = {
10
+ draft: "Draft",
11
+ in_review: "In review",
12
+ approved: "Approved",
13
+ changes_requested: "Changes requested",
14
+ };
15
+
16
+ const STATUS_CLASSES: Record<ReviewStatus, string> = {
17
+ draft: "border-muted bg-muted text-muted-foreground",
18
+ in_review: "border-blue-200 bg-blue-50 text-blue-700",
19
+ approved: "border-emerald-200 bg-emerald-50 text-emerald-700",
20
+ changes_requested: "border-amber-200 bg-amber-50 text-amber-800",
21
+ };
22
+
23
+ export function ReviewStatusBadge({
24
+ status,
25
+ className,
26
+ }: ReviewStatusBadgeProps) {
27
+ const normalized = status ?? "draft";
28
+ return (
29
+ <span
30
+ className={cn(
31
+ "inline-flex items-center rounded-full border px-2 py-0.5 text-xs font-medium",
32
+ STATUS_CLASSES[normalized],
33
+ className,
34
+ )}
35
+ >
36
+ {STATUS_LABELS[normalized]}
37
+ </span>
38
+ );
39
+ }