@agent-native/core 0.90.2 → 0.90.4

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 (530) hide show
  1. package/bin/agent-native.js +25 -3
  2. package/corpus/README.md +2 -2
  3. package/corpus/core/CHANGELOG.md +21 -0
  4. package/corpus/core/bin/agent-native.js +25 -3
  5. package/corpus/core/docs/content/agent-native-toolkit.mdx +87 -80
  6. package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
  7. package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
  8. package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
  9. package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
  10. package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
  11. package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
  12. package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
  13. package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
  14. package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
  15. package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
  16. package/corpus/core/docs/content/toolkit-agent-ux.mdx +43 -0
  17. package/corpus/core/docs/content/toolkit-app-adapters.mdx +9 -0
  18. package/corpus/core/docs/content/toolkit-collaboration-ui.mdx +12 -0
  19. package/corpus/core/docs/content/toolkit-collaboration.mdx +74 -0
  20. package/corpus/core/docs/content/toolkit-command-navigation.mdx +106 -0
  21. package/corpus/core/docs/content/toolkit-comments-review.mdx +98 -0
  22. package/corpus/core/docs/content/toolkit-history.mdx +95 -0
  23. package/corpus/core/docs/content/toolkit-observability.mdx +41 -0
  24. package/corpus/core/docs/content/toolkit-org-team.mdx +80 -0
  25. package/corpus/core/docs/content/toolkit-resources.mdx +57 -0
  26. package/corpus/core/docs/content/toolkit-settings.mdx +65 -0
  27. package/corpus/core/docs/content/toolkit-setup-connections.mdx +109 -0
  28. package/corpus/core/docs/content/toolkit-sharing-ui.mdx +18 -6
  29. package/corpus/core/docs/content/toolkit-sharing.mdx +81 -0
  30. package/corpus/core/docs/content/toolkit-shell-hooks.mdx +9 -0
  31. package/corpus/core/docs/content/toolkit-ui.mdx +9 -0
  32. package/corpus/core/package.json +35 -1
  33. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +19 -1
  34. package/corpus/core/src/agent/engine/anthropic-engine.ts +25 -1
  35. package/corpus/core/src/agent/engine/index.ts +1 -0
  36. package/corpus/core/src/agent/engine/registry.ts +86 -18
  37. package/corpus/core/src/agent/production-agent.ts +37 -6
  38. package/corpus/core/src/cli/create.ts +35 -0
  39. package/corpus/core/src/cli/design-connect.ts +248 -0
  40. package/corpus/core/src/cli/index.ts +84 -7
  41. package/corpus/core/src/cli/workspacify.ts +34 -0
  42. package/corpus/core/src/client/command-navigation/index.ts +15 -0
  43. package/corpus/core/src/client/comments-review/index.ts +1 -0
  44. package/corpus/core/src/client/history/VersionHistoryPanel.tsx +175 -0
  45. package/corpus/core/src/client/history/index.ts +21 -0
  46. package/corpus/core/src/client/history/use-history.ts +114 -0
  47. package/corpus/core/src/client/index.ts +84 -9
  48. package/corpus/core/src/client/org/OrgSwitcher.tsx +6 -6
  49. package/corpus/core/src/client/org/RequireActiveOrg.tsx +2 -2
  50. package/corpus/core/src/client/org/TeamPage.tsx +3 -3
  51. package/corpus/core/src/client/org/hooks.ts +32 -0
  52. package/corpus/core/src/client/org/index.ts +30 -1
  53. package/corpus/core/src/client/org-team/index.ts +1 -0
  54. package/corpus/core/src/client/review/ReviewStatusBadge.tsx +39 -0
  55. package/corpus/core/src/client/review/ReviewThreadPanel.tsx +278 -0
  56. package/corpus/core/src/client/review/index.ts +30 -0
  57. package/corpus/core/src/client/review/use-review.ts +152 -0
  58. package/corpus/core/src/client/settings/index.ts +11 -1
  59. package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +94 -0
  60. package/corpus/core/src/client/setup-connections/ProviderReadinessBadge.tsx +73 -0
  61. package/corpus/core/src/client/setup-connections/SetupConnectionsPage.tsx +94 -0
  62. package/corpus/core/src/client/setup-connections/index.ts +46 -0
  63. package/corpus/core/src/client/sharing/ShareButton.tsx +20 -14
  64. package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
  65. package/corpus/core/src/command-navigation/actions.ts +100 -0
  66. package/corpus/core/src/command-navigation/index.ts +12 -0
  67. package/corpus/core/src/comments-review/index.ts +1 -0
  68. package/corpus/core/src/file-upload/builder.ts +24 -3
  69. package/corpus/core/src/file-upload/types.ts +3 -1
  70. package/corpus/core/src/history/actions/create-resource-version.ts +92 -0
  71. package/corpus/core/src/history/actions/get-resource-version.ts +60 -0
  72. package/corpus/core/src/history/actions/list-resource-history.ts +53 -0
  73. package/corpus/core/src/history/actions/list-resource-versions.ts +43 -0
  74. package/corpus/core/src/history/actions/restore-resource-version.ts +96 -0
  75. package/corpus/core/src/history/index.ts +26 -0
  76. package/corpus/core/src/history/registry.ts +111 -0
  77. package/corpus/core/src/history/store.ts +379 -0
  78. package/corpus/core/src/history/types.ts +69 -0
  79. package/corpus/core/src/index.ts +10 -0
  80. package/corpus/core/src/navigation/index.ts +170 -0
  81. package/corpus/core/src/org/index.ts +8 -0
  82. package/corpus/core/src/org/permissions.ts +30 -0
  83. package/corpus/core/src/org-team/index.ts +1 -0
  84. package/corpus/core/src/private-blob/registry.ts +1 -0
  85. package/corpus/core/src/review/actions/consume-review-feedback.ts +48 -0
  86. package/corpus/core/src/review/actions/create-review-comment.ts +107 -0
  87. package/corpus/core/src/review/actions/delete-review-comment.ts +67 -0
  88. package/corpus/core/src/review/actions/get-review-feedback.ts +54 -0
  89. package/corpus/core/src/review/actions/list-review-comments.ts +53 -0
  90. package/corpus/core/src/review/actions/reply-review-comment.ts +107 -0
  91. package/corpus/core/src/review/actions/resolve-review-thread.ts +67 -0
  92. package/corpus/core/src/review/actions/set-review-status.ts +58 -0
  93. package/corpus/core/src/review/index.ts +31 -0
  94. package/corpus/core/src/review/mentions.ts +44 -0
  95. package/corpus/core/src/review/registry.ts +111 -0
  96. package/corpus/core/src/review/store.ts +690 -0
  97. package/corpus/core/src/review/types.ts +97 -0
  98. package/corpus/core/src/server/action-discovery.ts +54 -0
  99. package/corpus/core/src/server/agent-chat-plugin.ts +6 -0
  100. package/corpus/core/src/server/agent-engine-api-key-route.ts +5 -0
  101. package/corpus/core/src/server/credential-provider.ts +118 -0
  102. package/corpus/core/src/setup-connections/index.ts +89 -0
  103. package/corpus/core/src/setup-connections/onboarding.ts +47 -0
  104. package/corpus/core/src/transcription/builder-transcription.ts +9 -2
  105. package/corpus/core/src/vite/action-types-plugin.ts +52 -0
  106. package/corpus/templates/analytics/app/components/layout/Layout.tsx +2 -1
  107. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +2 -2
  108. package/corpus/templates/analytics/app/global.css +22 -10
  109. package/corpus/templates/analytics/app/i18n/zh-TW.ts +6 -1
  110. package/corpus/templates/analytics/app/i18n-data.ts +81 -13
  111. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +2 -2
  112. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +2 -2
  113. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +528 -108
  114. package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +466 -183
  115. package/corpus/templates/analytics/changelog/2026-07-07-session-replays-load-sooner-show-clearer-activity-timelines-.md +6 -0
  116. package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +11 -11
  117. package/corpus/templates/assets/actions/generate-image.ts +64 -28
  118. package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +1 -1
  119. package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +91 -74
  120. package/corpus/templates/assets/server/lib/generation.ts +29 -4
  121. package/corpus/templates/assets/server/lib/image-processing.ts +131 -0
  122. package/corpus/templates/brain/app/routes/settings.tsx +2 -2
  123. package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +24 -2
  124. package/corpus/templates/calendar/AGENTS.md +3 -0
  125. package/corpus/templates/calendar/actions/create-event.ts +8 -34
  126. package/corpus/templates/calendar/actions/event-action-helpers.ts +52 -0
  127. package/corpus/templates/calendar/actions/manage-event-draft.ts +7 -34
  128. package/corpus/templates/calendar/actions/update-event.ts +10 -23
  129. package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +79 -6
  130. package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +23 -0
  131. package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +59 -2
  132. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +40 -1
  133. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +154 -41
  134. package/corpus/templates/calendar/app/hooks/use-events.ts +6 -0
  135. package/corpus/templates/calendar/app/hooks/use-people.ts +55 -0
  136. package/corpus/templates/calendar/app/i18n/zh-TW.ts +4 -0
  137. package/corpus/templates/calendar/app/i18n-data.ts +40 -0
  138. package/corpus/templates/calendar/changelog/2026-07-07-guest-suggestions-now-find-coworkers-from-your-google-worksp.md +6 -0
  139. package/corpus/templates/calendar/changelog/2026-07-07-you-can-mark-event-guests-as-optional-while-inviting-them-or.md +6 -0
  140. package/corpus/templates/calendar/changelog/2026-07-07-zoom-stays-selected-after-connecting-it-from-a-draft-event.md +6 -0
  141. package/corpus/templates/calendar/server/handlers/events.ts +1 -0
  142. package/corpus/templates/calendar/server/lib/google-calendar.ts +4 -0
  143. package/corpus/templates/calendar/server/plugins/agent-chat.ts +1 -1
  144. package/corpus/templates/calendar/shared/api.ts +2 -0
  145. package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +29 -3
  146. package/corpus/templates/clips/actions/create-recording.ts +5 -1
  147. package/corpus/templates/clips/actions/finalize-recording.ts +140 -1
  148. package/corpus/templates/clips/actions/generate-workflow.ts +19 -8
  149. package/corpus/templates/clips/actions/get-clips-ai-prefs.ts +36 -0
  150. package/corpus/templates/clips/actions/import-loom-recording.ts +1 -0
  151. package/corpus/templates/clips/actions/lib/clips-ai-prefs.ts +28 -0
  152. package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +1 -0
  153. package/corpus/templates/clips/actions/regenerate-chapters.ts +21 -7
  154. package/corpus/templates/clips/actions/regenerate-summary.ts +26 -8
  155. package/corpus/templates/clips/actions/regenerate-title.ts +44 -7
  156. package/corpus/templates/clips/actions/request-transcript.ts +31 -0
  157. package/corpus/templates/clips/actions/set-thumbnail.ts +2 -0
  158. package/corpus/templates/clips/actions/update-clips-ai-prefs.ts +50 -0
  159. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +2 -2
  160. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +7 -2
  161. package/corpus/templates/clips/app/components/player/scrubber-position.ts +9 -0
  162. package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -2
  163. package/corpus/templates/clips/app/components/player/share-dialog.tsx +69 -41
  164. package/corpus/templates/clips/app/components/player/video-player.tsx +38 -1
  165. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +3 -3
  166. package/corpus/templates/clips/app/components/sharing/slack-share-hint.tsx +9 -19
  167. package/corpus/templates/clips/app/hooks/use-auto-title.ts +25 -10
  168. package/corpus/templates/clips/app/i18n/ar-SA.ts +28 -6
  169. package/corpus/templates/clips/app/i18n/de-DE.ts +28 -6
  170. package/corpus/templates/clips/app/i18n/en-US.ts +29 -6
  171. package/corpus/templates/clips/app/i18n/es-ES.ts +29 -6
  172. package/corpus/templates/clips/app/i18n/fr-FR.ts +30 -6
  173. package/corpus/templates/clips/app/i18n/hi-IN.ts +26 -6
  174. package/corpus/templates/clips/app/i18n/ja-JP.ts +27 -6
  175. package/corpus/templates/clips/app/i18n/ko-KR.ts +28 -6
  176. package/corpus/templates/clips/app/i18n/pt-BR.ts +28 -6
  177. package/corpus/templates/clips/app/i18n/zh-CN.ts +26 -6
  178. package/corpus/templates/clips/app/i18n/zh-TW.ts +25 -6
  179. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +73 -0
  180. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -0
  181. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +79 -5
  182. package/corpus/templates/clips/app/routes/record.tsx +21 -12
  183. package/corpus/templates/clips/changelog/2026-07-02-recordings-now-wait-for-storage-media-to-serve-before-finishing.md +6 -0
  184. package/corpus/templates/clips/changelog/2026-07-07-a-pending-app-update-no-longer-blocks-screen-recording-updat.md +6 -0
  185. package/corpus/templates/clips/changelog/2026-07-07-ai-tools-can-include-the-full-video-not-just-the-transcript-.md +6 -0
  186. package/corpus/templates/clips/changelog/2026-07-07-chrome-extension-recordings-keep-audio-after-refreshing-tab.md +6 -0
  187. package/corpus/templates/clips/changelog/2026-07-07-clip-playback-progress-now-starts-and-finishes-at-the-right-times.md +6 -0
  188. package/corpus/templates/clips/changelog/2026-07-07-clips-desktop-now-surfaces-meetings-and-dictate-directly-in-.md +6 -0
  189. package/corpus/templates/clips/changelog/2026-07-07-meeting-notes-now-explain-exactly-how-to-start-granola-style.md +6 -0
  190. package/corpus/templates/clips/changelog/2026-07-07-meeting-start-alerts-now-include-separate-start-notes-and-jo.md +6 -0
  191. package/corpus/templates/clips/changelog/2026-07-07-recordings-start-more-predictably-and-newly-saved-clips-refr.md +6 -0
  192. package/corpus/templates/clips/changelog/2026-07-07-sharing-public-clips-now-stays-focused-on-the-normal-link-wi.md +6 -0
  193. package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
  194. package/corpus/templates/clips/chrome-extension/src/background.ts +18 -0
  195. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +23 -8
  196. package/corpus/templates/clips/desktop/src/app.tsx +475 -108
  197. package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +19 -7
  198. package/corpus/templates/clips/desktop/src/lib/permissions.ts +2 -0
  199. package/corpus/templates/clips/desktop/src/lib/recorder.ts +27 -21
  200. package/corpus/templates/clips/desktop/src/lib/updater.ts +25 -2
  201. package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +23 -22
  202. package/corpus/templates/clips/desktop/src/styles.css +167 -2
  203. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +8 -1
  204. package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +3 -7
  205. package/corpus/templates/clips/desktop/src-tauri/src/tray_meetings.rs +5 -4
  206. package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.put.ts +16 -8
  207. package/corpus/templates/clips/server/routes/api/recordings/[recordingId]/thumbnail.post.ts +1 -0
  208. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +22 -5
  209. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +8 -0
  210. package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +13 -6
  211. package/corpus/templates/clips/shared/clips-ai-prefs.ts +81 -0
  212. package/corpus/templates/clips/shared/finalize-recovery.ts +12 -0
  213. package/corpus/templates/content/actions/delete-document.ts +337 -52
  214. package/corpus/templates/content/changelog/2026-07-07-permanently-deleting-trashed-databases-now-finishes-reliably.md +6 -0
  215. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +16 -1
  216. package/corpus/templates/design/actions/add-localhost-screens.ts +1 -0
  217. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -11
  218. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +89 -14
  219. package/corpus/templates/design/app/components/design/bridge-security.ts +7 -1
  220. package/corpus/templates/design/app/components/design/multi-screen/types.ts +1 -1
  221. package/corpus/templates/design/app/i18n/zh-TW.ts +3 -0
  222. package/corpus/templates/design/app/i18n-data.ts +41 -0
  223. package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-uses-live-app-iframes-for-click-to-edit-pr.md +6 -0
  224. package/corpus/templates/slides/app/pages/DeckEditor.tsx +2 -2
  225. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  226. package/dist/agent/engine/ai-sdk-engine.js +15 -1
  227. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  228. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  229. package/dist/agent/engine/anthropic-engine.js +20 -1
  230. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  231. package/dist/agent/engine/index.d.ts +1 -1
  232. package/dist/agent/engine/index.d.ts.map +1 -1
  233. package/dist/agent/engine/index.js +1 -1
  234. package/dist/agent/engine/index.js.map +1 -1
  235. package/dist/agent/engine/registry.d.ts +14 -0
  236. package/dist/agent/engine/registry.d.ts.map +1 -1
  237. package/dist/agent/engine/registry.js +78 -16
  238. package/dist/agent/engine/registry.js.map +1 -1
  239. package/dist/agent/production-agent.d.ts.map +1 -1
  240. package/dist/agent/production-agent.js +27 -7
  241. package/dist/agent/production-agent.js.map +1 -1
  242. package/dist/cli/create.d.ts.map +1 -1
  243. package/dist/cli/create.js +31 -0
  244. package/dist/cli/create.js.map +1 -1
  245. package/dist/cli/design-connect.d.ts.map +1 -1
  246. package/dist/cli/design-connect.js +186 -0
  247. package/dist/cli/design-connect.js.map +1 -1
  248. package/dist/cli/index.js +76 -9
  249. package/dist/cli/index.js.map +1 -1
  250. package/dist/cli/workspacify.d.ts.map +1 -1
  251. package/dist/cli/workspacify.js +30 -0
  252. package/dist/cli/workspacify.js.map +1 -1
  253. package/dist/client/command-navigation/index.d.ts +4 -0
  254. package/dist/client/command-navigation/index.d.ts.map +1 -0
  255. package/dist/client/command-navigation/index.js +4 -0
  256. package/dist/client/command-navigation/index.js.map +1 -0
  257. package/dist/client/comments-review/index.d.ts +2 -0
  258. package/dist/client/comments-review/index.d.ts.map +1 -0
  259. package/dist/client/comments-review/index.js +2 -0
  260. package/dist/client/comments-review/index.js.map +1 -0
  261. package/dist/client/history/VersionHistoryPanel.d.ts +18 -0
  262. package/dist/client/history/VersionHistoryPanel.d.ts.map +1 -0
  263. package/dist/client/history/VersionHistoryPanel.js +31 -0
  264. package/dist/client/history/VersionHistoryPanel.js.map +1 -0
  265. package/dist/client/history/index.d.ts +3 -0
  266. package/dist/client/history/index.d.ts.map +1 -0
  267. package/dist/client/history/index.js +3 -0
  268. package/dist/client/history/index.js.map +1 -0
  269. package/dist/client/history/use-history.d.ts +58 -0
  270. package/dist/client/history/use-history.d.ts.map +1 -0
  271. package/dist/client/history/use-history.js +24 -0
  272. package/dist/client/history/use-history.js.map +1 -0
  273. package/dist/client/index.d.ts +6 -4
  274. package/dist/client/index.d.ts.map +1 -1
  275. package/dist/client/index.js +6 -4
  276. package/dist/client/index.js.map +1 -1
  277. package/dist/client/org/OrgSwitcher.js +5 -5
  278. package/dist/client/org/OrgSwitcher.js.map +1 -1
  279. package/dist/client/org/RequireActiveOrg.js +2 -2
  280. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  281. package/dist/client/org/TeamPage.js +3 -3
  282. package/dist/client/org/TeamPage.js.map +1 -1
  283. package/dist/client/org/hooks.d.ts +12 -1
  284. package/dist/client/org/hooks.d.ts.map +1 -1
  285. package/dist/client/org/hooks.js +15 -0
  286. package/dist/client/org/hooks.js.map +1 -1
  287. package/dist/client/org/index.d.ts +4 -2
  288. package/dist/client/org/index.d.ts.map +1 -1
  289. package/dist/client/org/index.js +3 -1
  290. package/dist/client/org/index.js.map +1 -1
  291. package/dist/client/org-team/index.d.ts +2 -0
  292. package/dist/client/org-team/index.d.ts.map +1 -0
  293. package/dist/client/org-team/index.js +2 -0
  294. package/dist/client/org-team/index.js.map +1 -0
  295. package/dist/client/review/ReviewStatusBadge.d.ts +7 -0
  296. package/dist/client/review/ReviewStatusBadge.d.ts.map +1 -0
  297. package/dist/client/review/ReviewStatusBadge.js +19 -0
  298. package/dist/client/review/ReviewStatusBadge.js.map +1 -0
  299. package/dist/client/review/ReviewThreadPanel.d.ts +20 -0
  300. package/dist/client/review/ReviewThreadPanel.d.ts.map +1 -0
  301. package/dist/client/review/ReviewThreadPanel.js +84 -0
  302. package/dist/client/review/ReviewThreadPanel.js.map +1 -0
  303. package/dist/client/review/index.d.ts +4 -0
  304. package/dist/client/review/index.d.ts.map +1 -0
  305. package/dist/client/review/index.js +4 -0
  306. package/dist/client/review/index.js.map +1 -0
  307. package/dist/client/review/use-review.d.ts +91 -0
  308. package/dist/client/review/use-review.d.ts.map +1 -0
  309. package/dist/client/review/use-review.js +30 -0
  310. package/dist/client/review/use-review.js.map +1 -0
  311. package/dist/client/settings/index.d.ts +1 -1
  312. package/dist/client/settings/index.d.ts.map +1 -1
  313. package/dist/client/settings/index.js +1 -1
  314. package/dist/client/settings/index.js.map +1 -1
  315. package/dist/client/setup-connections/BuilderConnectCard.d.ts +9 -0
  316. package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -0
  317. package/dist/client/setup-connections/BuilderConnectCard.js +25 -0
  318. package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -0
  319. package/dist/client/setup-connections/ProviderReadinessBadge.d.ts +8 -0
  320. package/dist/client/setup-connections/ProviderReadinessBadge.d.ts.map +1 -0
  321. package/dist/client/setup-connections/ProviderReadinessBadge.js +32 -0
  322. package/dist/client/setup-connections/ProviderReadinessBadge.js.map +1 -0
  323. package/dist/client/setup-connections/SetupConnectionsPage.d.ts +17 -0
  324. package/dist/client/setup-connections/SetupConnectionsPage.d.ts.map +1 -0
  325. package/dist/client/setup-connections/SetupConnectionsPage.js +10 -0
  326. package/dist/client/setup-connections/SetupConnectionsPage.js.map +1 -0
  327. package/dist/client/setup-connections/index.d.ts +7 -0
  328. package/dist/client/setup-connections/index.d.ts.map +1 -0
  329. package/dist/client/setup-connections/index.js +7 -0
  330. package/dist/client/setup-connections/index.js.map +1 -0
  331. package/dist/client/sharing/ShareButton.d.ts +4 -4
  332. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  333. package/dist/client/sharing/ShareButton.js +13 -7
  334. package/dist/client/sharing/ShareButton.js.map +1 -1
  335. package/dist/client/sharing/ShareDialog.js +3 -3
  336. package/dist/client/sharing/ShareDialog.js.map +1 -1
  337. package/dist/collab/awareness.d.ts +2 -2
  338. package/dist/collab/awareness.d.ts.map +1 -1
  339. package/dist/collab/routes.d.ts +1 -1
  340. package/dist/collab/struct-routes.d.ts +1 -1
  341. package/dist/command-navigation/actions.d.ts +25 -0
  342. package/dist/command-navigation/actions.d.ts.map +1 -0
  343. package/dist/command-navigation/actions.js +64 -0
  344. package/dist/command-navigation/actions.js.map +1 -0
  345. package/dist/command-navigation/index.d.ts +4 -0
  346. package/dist/command-navigation/index.d.ts.map +1 -0
  347. package/dist/command-navigation/index.js +4 -0
  348. package/dist/command-navigation/index.js.map +1 -0
  349. package/dist/comments-review/index.d.ts +2 -0
  350. package/dist/comments-review/index.d.ts.map +1 -0
  351. package/dist/comments-review/index.js +2 -0
  352. package/dist/comments-review/index.js.map +1 -0
  353. package/dist/file-upload/builder.d.ts.map +1 -1
  354. package/dist/file-upload/builder.js +18 -2
  355. package/dist/file-upload/builder.js.map +1 -1
  356. package/dist/file-upload/types.d.ts +3 -0
  357. package/dist/file-upload/types.d.ts.map +1 -1
  358. package/dist/file-upload/types.js.map +1 -1
  359. package/dist/history/actions/create-resource-version.d.ts +10 -0
  360. package/dist/history/actions/create-resource-version.d.ts.map +1 -0
  361. package/dist/history/actions/create-resource-version.js +68 -0
  362. package/dist/history/actions/create-resource-version.js.map +1 -0
  363. package/dist/history/actions/get-resource-version.d.ts +10 -0
  364. package/dist/history/actions/get-resource-version.d.ts.map +1 -0
  365. package/dist/history/actions/get-resource-version.js +38 -0
  366. package/dist/history/actions/get-resource-version.js.map +1 -0
  367. package/dist/history/actions/list-resource-history.d.ts +10 -0
  368. package/dist/history/actions/list-resource-history.d.ts.map +1 -0
  369. package/dist/history/actions/list-resource-history.js +45 -0
  370. package/dist/history/actions/list-resource-history.js.map +1 -0
  371. package/dist/history/actions/list-resource-versions.d.ts +10 -0
  372. package/dist/history/actions/list-resource-versions.d.ts.map +1 -0
  373. package/dist/history/actions/list-resource-versions.js +35 -0
  374. package/dist/history/actions/list-resource-versions.js.map +1 -0
  375. package/dist/history/actions/restore-resource-version.d.ts +11 -0
  376. package/dist/history/actions/restore-resource-version.d.ts.map +1 -0
  377. package/dist/history/actions/restore-resource-version.js +59 -0
  378. package/dist/history/actions/restore-resource-version.js.map +1 -0
  379. package/dist/history/index.d.ts +4 -0
  380. package/dist/history/index.d.ts.map +1 -0
  381. package/dist/history/index.js +3 -0
  382. package/dist/history/index.js.map +1 -0
  383. package/dist/history/registry.d.ts +10 -0
  384. package/dist/history/registry.d.ts.map +1 -0
  385. package/dist/history/registry.js +63 -0
  386. package/dist/history/registry.js.map +1 -0
  387. package/dist/history/store.d.ts +34 -0
  388. package/dist/history/store.d.ts.map +1 -0
  389. package/dist/history/store.js +290 -0
  390. package/dist/history/store.js.map +1 -0
  391. package/dist/history/types.d.ts +55 -0
  392. package/dist/history/types.d.ts.map +1 -0
  393. package/dist/history/types.js +2 -0
  394. package/dist/history/types.js.map +1 -0
  395. package/dist/index.d.ts +6 -0
  396. package/dist/index.d.ts.map +1 -1
  397. package/dist/index.js +6 -0
  398. package/dist/index.js.map +1 -1
  399. package/dist/navigation/index.d.ts +53 -0
  400. package/dist/navigation/index.d.ts.map +1 -0
  401. package/dist/navigation/index.js +105 -0
  402. package/dist/navigation/index.js.map +1 -0
  403. package/dist/observability/routes.d.ts +3 -3
  404. package/dist/org/index.d.ts +1 -0
  405. package/dist/org/index.d.ts.map +1 -1
  406. package/dist/org/index.js +1 -0
  407. package/dist/org/index.js.map +1 -1
  408. package/dist/org/permissions.d.ts +7 -0
  409. package/dist/org/permissions.d.ts.map +1 -0
  410. package/dist/org/permissions.js +21 -0
  411. package/dist/org/permissions.js.map +1 -0
  412. package/dist/org-team/index.d.ts +2 -0
  413. package/dist/org-team/index.d.ts.map +1 -0
  414. package/dist/org-team/index.js +2 -0
  415. package/dist/org-team/index.js.map +1 -0
  416. package/dist/private-blob/registry.d.ts.map +1 -1
  417. package/dist/private-blob/registry.js +1 -0
  418. package/dist/private-blob/registry.js.map +1 -1
  419. package/dist/progress/routes.d.ts +1 -1
  420. package/dist/resources/handlers.d.ts +2 -2
  421. package/dist/review/actions/consume-review-feedback.d.ts +10 -0
  422. package/dist/review/actions/consume-review-feedback.d.ts.map +1 -0
  423. package/dist/review/actions/consume-review-feedback.js +35 -0
  424. package/dist/review/actions/consume-review-feedback.js.map +1 -0
  425. package/dist/review/actions/create-review-comment.d.ts +18 -0
  426. package/dist/review/actions/create-review-comment.d.ts.map +1 -0
  427. package/dist/review/actions/create-review-comment.js +81 -0
  428. package/dist/review/actions/create-review-comment.js.map +1 -0
  429. package/dist/review/actions/delete-review-comment.d.ts +11 -0
  430. package/dist/review/actions/delete-review-comment.d.ts.map +1 -0
  431. package/dist/review/actions/delete-review-comment.js +53 -0
  432. package/dist/review/actions/delete-review-comment.js.map +1 -0
  433. package/dist/review/actions/get-review-feedback.d.ts +10 -0
  434. package/dist/review/actions/get-review-feedback.d.ts.map +1 -0
  435. package/dist/review/actions/get-review-feedback.js +45 -0
  436. package/dist/review/actions/get-review-feedback.js.map +1 -0
  437. package/dist/review/actions/list-review-comments.d.ts +13 -0
  438. package/dist/review/actions/list-review-comments.d.ts.map +1 -0
  439. package/dist/review/actions/list-review-comments.js +44 -0
  440. package/dist/review/actions/list-review-comments.js.map +1 -0
  441. package/dist/review/actions/reply-review-comment.d.ts +16 -0
  442. package/dist/review/actions/reply-review-comment.d.ts.map +1 -0
  443. package/dist/review/actions/reply-review-comment.js +84 -0
  444. package/dist/review/actions/reply-review-comment.js.map +1 -0
  445. package/dist/review/actions/resolve-review-thread.d.ts +12 -0
  446. package/dist/review/actions/resolve-review-thread.d.ts.map +1 -0
  447. package/dist/review/actions/resolve-review-thread.js +49 -0
  448. package/dist/review/actions/resolve-review-thread.js.map +1 -0
  449. package/dist/review/actions/set-review-status.d.ts +9 -0
  450. package/dist/review/actions/set-review-status.d.ts.map +1 -0
  451. package/dist/review/actions/set-review-status.js +43 -0
  452. package/dist/review/actions/set-review-status.js.map +1 -0
  453. package/dist/review/index.d.ts +5 -0
  454. package/dist/review/index.d.ts.map +1 -0
  455. package/dist/review/index.js +4 -0
  456. package/dist/review/index.js.map +1 -0
  457. package/dist/review/mentions.d.ts +4 -0
  458. package/dist/review/mentions.d.ts.map +1 -0
  459. package/dist/review/mentions.js +39 -0
  460. package/dist/review/mentions.js.map +1 -0
  461. package/dist/review/registry.d.ts +10 -0
  462. package/dist/review/registry.d.ts.map +1 -0
  463. package/dist/review/registry.js +63 -0
  464. package/dist/review/registry.js.map +1 -0
  465. package/dist/review/store.d.ts +63 -0
  466. package/dist/review/store.d.ts.map +1 -0
  467. package/dist/review/store.js +561 -0
  468. package/dist/review/store.js.map +1 -0
  469. package/dist/review/types.d.ts +77 -0
  470. package/dist/review/types.d.ts.map +1 -0
  471. package/dist/review/types.js +2 -0
  472. package/dist/review/types.js.map +1 -0
  473. package/dist/secrets/routes.d.ts +9 -9
  474. package/dist/server/action-discovery.d.ts.map +1 -1
  475. package/dist/server/action-discovery.js +54 -0
  476. package/dist/server/action-discovery.js.map +1 -1
  477. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  478. package/dist/server/agent-chat-plugin.js +5 -0
  479. package/dist/server/agent-chat-plugin.js.map +1 -1
  480. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  481. package/dist/server/agent-engine-api-key-route.d.ts.map +1 -1
  482. package/dist/server/agent-engine-api-key-route.js +5 -0
  483. package/dist/server/agent-engine-api-key-route.js.map +1 -1
  484. package/dist/server/credential-provider.d.ts +28 -0
  485. package/dist/server/credential-provider.d.ts.map +1 -1
  486. package/dist/server/credential-provider.js +92 -0
  487. package/dist/server/credential-provider.js.map +1 -1
  488. package/dist/setup-connections/index.d.ts +6 -0
  489. package/dist/setup-connections/index.d.ts.map +1 -0
  490. package/dist/setup-connections/index.js +6 -0
  491. package/dist/setup-connections/index.js.map +1 -0
  492. package/dist/setup-connections/onboarding.d.ts +14 -0
  493. package/dist/setup-connections/onboarding.d.ts.map +1 -0
  494. package/dist/setup-connections/onboarding.js +23 -0
  495. package/dist/setup-connections/onboarding.js.map +1 -0
  496. package/dist/transcription/builder-transcription.d.ts +1 -0
  497. package/dist/transcription/builder-transcription.d.ts.map +1 -1
  498. package/dist/transcription/builder-transcription.js +5 -2
  499. package/dist/transcription/builder-transcription.js.map +1 -1
  500. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  501. package/dist/vite/action-types-plugin.js +52 -0
  502. package/dist/vite/action-types-plugin.js.map +1 -1
  503. package/docs/content/agent-native-toolkit.mdx +87 -80
  504. package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
  505. package/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
  506. package/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
  507. package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
  508. package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
  509. package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
  510. package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
  511. package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
  512. package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
  513. package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
  514. package/docs/content/toolkit-agent-ux.mdx +43 -0
  515. package/docs/content/toolkit-app-adapters.mdx +9 -0
  516. package/docs/content/toolkit-collaboration-ui.mdx +12 -0
  517. package/docs/content/toolkit-collaboration.mdx +74 -0
  518. package/docs/content/toolkit-command-navigation.mdx +106 -0
  519. package/docs/content/toolkit-comments-review.mdx +98 -0
  520. package/docs/content/toolkit-history.mdx +95 -0
  521. package/docs/content/toolkit-observability.mdx +41 -0
  522. package/docs/content/toolkit-org-team.mdx +80 -0
  523. package/docs/content/toolkit-resources.mdx +57 -0
  524. package/docs/content/toolkit-settings.mdx +65 -0
  525. package/docs/content/toolkit-setup-connections.mdx +109 -0
  526. package/docs/content/toolkit-sharing-ui.mdx +18 -6
  527. package/docs/content/toolkit-sharing.mdx +81 -0
  528. package/docs/content/toolkit-shell-hooks.mdx +9 -0
  529. package/docs/content/toolkit-ui.mdx +9 -0
  530. package/package.json +36 -2
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: "Settings Kit"
3
+ description: "A standard settings-page contract for app, agent, provider, team, and language settings."
4
+ ---
5
+
6
+ # Settings Kit
7
+
8
+ The Settings Kit gives every app one predictable settings surface. Users should
9
+ not have to wonder whether model keys live in an app settings page, a giant
10
+ agent sidebar panel, or a provider-specific setup card. The app route owns the
11
+ page; framework tabs can be mounted inside it.
12
+
13
+ <WireframeBlock id="doc-block-toolkit-settings">
14
+ <Screen
15
+ surface="desktop"
16
+ html={
17
+ "<div style='min-height:540px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:220px 1fr;gap:18px'><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Settings</strong><div class='wf-pill'>General</div><div class='wf-pill'>AI and models</div><div class='wf-pill'>Connections</div><div class='wf-pill'>Team</div><div class='wf-pill'>Developer</div></aside><main class='wf-card' style='display:flex;flex-direction:column;gap:14px'><h2 style='margin:0'>AI and models</h2><div class='wf-box'>Default model: GPT-5</div><div class='wf-box'>LLM keys: OpenAI configured, Anthropic missing</div><div class='wf-box'>Provider readiness: Builder connected</div><div style='display:flex;gap:10px'><button>Open agent settings</button><button class='primary'>Save changes</button></div></main></div>"
18
+ }
19
+ />
20
+ </WireframeBlock>
21
+
22
+ ## Pieces {#pieces}
23
+
24
+ | Piece | Purpose |
25
+ | ------------------------ | ------------------------------------------------------------------------------------- |
26
+ | `<SettingsTabsPage>` | Standard tabbed settings route surface. |
27
+ | `useAgentSettingsTabs()` | Framework-provided agent, model, key, automation, and voice tabs that apps can mount. |
28
+ | `<LanguagePicker>` | Standard language selector for app settings. |
29
+ | `openAgentSettings()` | Compatibility escape hatch for opening the sidebar settings tab when needed. |
30
+ | Hash deep links | Stable links such as `/settings#secrets:OPENAI_API_KEY` and `/settings#connections`. |
31
+
32
+ ## Page Contract {#page-contract}
33
+
34
+ Every app should expose `/settings`. App-specific tabs can sit beside framework
35
+ tabs; framework tabs should not be hidden in a second settings universe.
36
+
37
+ ```tsx
38
+ import {
39
+ LanguagePicker,
40
+ SettingsTabsPage,
41
+ useAgentSettingsTabs,
42
+ } from "@agent-native/core/client";
43
+
44
+ export default function SettingsRoute() {
45
+ const agentSettingsTabs = useAgentSettingsTabs();
46
+ return (
47
+ <SettingsTabsPage
48
+ extraTabs={agentSettingsTabs}
49
+ general={<LanguagePicker label="Interface language" />}
50
+ />
51
+ );
52
+ }
53
+ ```
54
+
55
+ ## UX Standard {#ux-standard}
56
+
57
+ - Keep model keys, OAuth connections, Builder connect, language, team, and app
58
+ preferences in one route.
59
+ - Link to tabs by hash so setup prompts can send users to the exact missing
60
+ credential.
61
+ - Use the agent sidebar settings only as a compact access point, not as the
62
+ primary home for every setting.
63
+
64
+ Related docs: [Internationalization](/docs/internationalization),
65
+ [Onboarding](/docs/onboarding), [Workspace Connections](/docs/workspace-connections).
@@ -0,0 +1,109 @@
1
+ ---
2
+ title: "Setup & Connections Kit"
3
+ description: "Onboarding, secrets, workspace connections, OAuth/provider readiness, and Builder connect."
4
+ ---
5
+
6
+ # Setup & Connections Kit
7
+
8
+ The Setup & Connections Kit turns missing credentials into a guided product
9
+ flow. It covers onboarding steps, encrypted secrets, workspace-scoped
10
+ connections, OAuth/provider readiness, and Builder connect so apps can explain
11
+ what is missing and link users to the exact fix.
12
+
13
+ <WireframeBlock id="doc-block-toolkit-setup-connections">
14
+ <Screen
15
+ surface="desktop"
16
+ html={
17
+ "<div style='min-height:540px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:1fr 330px;gap:18px'><main class='wf-card' style='display:flex;flex-direction:column;gap:14px'><h2 style='margin:0'>Setup checklist</h2><div class='wf-box'>1. Connect Builder - complete</div><div class='wf-box'>2. Add OpenAI key - needs attention</div><div class='wf-box'>3. Connect Slack workspace - optional</div><div class='wf-box'>4. Enable GitHub OAuth - ready</div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:12px'><strong>Provider readiness</strong><div class='wf-box'>Builder: connected</div><div class='wf-box'>LLM: missing key</div><div class='wf-box'>GitHub: OAuth ready</div><button class='primary'>Open Settings</button></aside></div>"
18
+ }
19
+ />
20
+ </WireframeBlock>
21
+
22
+ ## Pieces {#pieces}
23
+
24
+ | Piece | Purpose |
25
+ | --------------------- | ----------------------------------------------------------------------- |
26
+ | Onboarding registry | Declares setup steps and completion checks. |
27
+ | Secrets UI | Writes encrypted user, org, or workspace secrets. |
28
+ | Workspace connections | Shared provider connections with scoped grants. |
29
+ | OAuth flows | Provider authorization, callback handling, and token storage. |
30
+ | Provider readiness | App-visible status for missing keys, expired auth, or incomplete setup. |
31
+ | Builder connect | First-party Builder identity and managed gateway setup. |
32
+
33
+ ## API {#api}
34
+
35
+ Use the integrated core kit for the server-side registry/store and the client
36
+ page/components for the standard settings surface.
37
+
38
+ ```tsx
39
+ import {
40
+ ProviderReadinessBadge,
41
+ SetupConnectionsPage,
42
+ } from "@agent-native/core/client/setup-connections";
43
+
44
+ export function SettingsConnectionsTab() {
45
+ return (
46
+ <SetupConnectionsPage
47
+ providerReadiness={
48
+ <div className="flex items-center gap-2">
49
+ <span>GitHub</span>
50
+ <ProviderReadinessBadge status="ready" />
51
+ </div>
52
+ }
53
+ />
54
+ );
55
+ }
56
+ ```
57
+
58
+ Register setup steps close to the feature that needs them. Link users to the
59
+ standard settings tab instead of building bespoke credential forms.
60
+
61
+ ```ts
62
+ import { registerOnboardingStep } from "@agent-native/core/onboarding";
63
+
64
+ registerOnboardingStep({
65
+ id: "openai-key",
66
+ title: "Add an OpenAI key",
67
+ description: "Store an OpenAI key so the agent can use OpenAI models.",
68
+ order: 10,
69
+ required: true,
70
+ methods: [
71
+ {
72
+ id: "settings",
73
+ kind: "link",
74
+ label: "Open settings",
75
+ primary: true,
76
+ payload: { url: "/settings#secrets" },
77
+ },
78
+ ],
79
+ isComplete: async () => hasOpenAIKey(),
80
+ });
81
+ ```
82
+
83
+ Workspace/provider setup can use the kit helper:
84
+
85
+ ```ts
86
+ import { registerWorkspaceConnectionOnboardingStep } from "@agent-native/core/setup-connections";
87
+
88
+ registerWorkspaceConnectionOnboardingStep({
89
+ providerId: "github",
90
+ providerLabel: "GitHub",
91
+ required: true,
92
+ isComplete: async () => hasGitHubWorkspaceConnection(),
93
+ });
94
+ ```
95
+
96
+ For app settings, compose `SettingsTabsPage` with `SetupConnectionsPage` and the
97
+ standard Settings Kit tabs so keys, connections, Builder connect, and team
98
+ settings live in one predictable place.
99
+
100
+ ## UX Standard {#ux-standard}
101
+
102
+ - Errors explain the missing connection and offer the direct settings link.
103
+ - Secrets are never stored in app tables or pasted into docs/examples.
104
+ - App setup pages and settings tabs use the same readiness source.
105
+ - Builder connect is offered as a first-class path, not buried as an env-var
106
+ fallback.
107
+
108
+ Related docs: [Onboarding](/docs/onboarding),
109
+ [Workspace Connections](/docs/workspace-connections), [Security](/docs/security).
@@ -5,8 +5,20 @@ description: "Reusable sharing display components with core-owned sharing runtim
5
5
 
6
6
  # Toolkit Sharing UI
7
7
 
8
- `@agent-native/toolkit/sharing` contains sharing UI that does not perform access
9
- checks or mutations. Today it exports `VisibilityBadge`:
8
+ `@agent-native/toolkit/sharing` contains presentational sharing UI for badges,
9
+ share rows, role pickers, and base dialogs. It does not perform access checks or
10
+ mutations; core and app wrappers inject data and callbacks.
11
+
12
+ <WireframeBlock id="doc-block-toolkit-sharing-ui">
13
+ <Screen
14
+ surface="desktop"
15
+ html={
16
+ "<div style='min-height:480px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:1fr 300px;gap:16px'><main class='wf-card' style='display:flex;flex-direction:column;gap:12px'><div style='display:flex;align-items:center;gap:10px'><h2 style='margin:0'>Resource header</h2><span class='wf-pill'>Org visible</span><div style='flex:1'></div><button>Share</button></div><div class='wf-box' style='height:120px'>Share list row</div><div class='wf-box' style='height:180px'>Shared resource preview</div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Presentational pieces</strong><div class='wf-box'>VisibilityBadge</div><div class='wf-box'>Grant row</div><div class='wf-box'>Role selector</div><div class='wf-box'>Policy hint</div></aside></div>"
17
+ }
18
+ />
19
+ </WireframeBlock>
20
+
21
+ The most common low-level import is:
10
22
 
11
23
  ```tsx
12
24
  import { VisibilityBadge } from "@agent-native/toolkit/sharing";
@@ -14,7 +26,8 @@ import { VisibilityBadge } from "@agent-native/toolkit/sharing";
14
26
 
15
27
  Core still owns the sharing runtime: share tables, resource registration, access
16
28
  filters, visibility changes, invites, roles, and private access tokens for
17
- agent-readable public surfaces.
29
+ agent-readable public surfaces. See the [Sharing Kit](/docs/toolkit-sharing) for
30
+ the full behaviorful contract.
18
31
 
19
32
  Use core wrappers when a component needs to call sharing actions:
20
33
 
@@ -22,9 +35,8 @@ Use core wrappers when a component needs to call sharing actions:
22
35
  import { ShareButton, ShareDialog } from "@agent-native/core/client";
23
36
  ```
24
37
 
25
- Those imports remain compatible. As more sharing UI is split into presentational
26
- base components, core wrappers should keep doing the runtime work and pass data
27
- and callbacks into Toolkit-owned UI.
38
+ Those imports remain compatible. Core wrappers keep doing the runtime work and
39
+ pass data and callbacks into Toolkit-owned UI.
28
40
 
29
41
  ## Boundary {#boundary}
30
42
 
@@ -0,0 +1,81 @@
1
+ ---
2
+ title: "Sharing Kit"
3
+ description: "Ownable resources, share dialogs, visibility badges, and standard share actions for agent-native apps."
4
+ ---
5
+
6
+ # Sharing Kit
7
+
8
+ The Sharing Kit makes user-authored resources private by default, then gives
9
+ users and agents the same controlled ways to share them: specific people, the
10
+ active organization, public links when allowed, and agent-readable resource
11
+ links.
12
+
13
+ <WireframeBlock id="doc-block-toolkit-sharing">
14
+ <Screen
15
+ surface="desktop"
16
+ html={
17
+ "<div style='min-height:540px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:1fr 320px;gap:18px'><main class='wf-card' style='display:flex;flex-direction:column;gap:14px'><div style='display:flex;align-items:center;gap:10px'><h2 style='margin:0'>Q3 Forecast</h2><span class='wf-pill'>Org visible</span><div style='flex:1'></div><button>Share</button></div><div class='wf-box' style='height:92px'>Dashboard preview</div><div class='wf-box' style='height:260px'>Resource content</div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:12px'><strong>Share resource</strong><div class='wf-box'>Visibility: Organization</div><div class='wf-box'>Invite teammate@example.com</div><div class='wf-box'>Role: Editor</div><button class='primary'>Send invite</button><div class='wf-box'>Public link disabled by policy</div></aside></div>"
18
+ }
19
+ />
20
+ </WireframeBlock>
21
+
22
+ ## Pieces {#pieces}
23
+
24
+ | Piece | Purpose |
25
+ | --------------------------------- | -------------------------------------------------------------------------------------- |
26
+ | `ownableColumns()` | Adds owner, organization, visibility, and timestamps to the resource table. |
27
+ | `createSharesTable()` | Creates the per-resource grants table. |
28
+ | `registerShareableResource()` | Registers the resource type so framework share actions know how to read and mutate it. |
29
+ | `<ShareButton>` / `<ShareDialog>` | Renders the standard share control and calls the share actions. |
30
+ | `<VisibilityBadge>` | Shows private, shared, org, or public state in lists and headers. |
31
+ | `share-resource` | Grants a user or organization role. |
32
+ | `unshare-resource` | Removes a grant. |
33
+ | `list-resource-shares` | Reads current visibility, grants, and policy. |
34
+ | `set-resource-visibility` | Changes private, org, or public visibility when policy allows it. |
35
+
36
+ ## API {#api}
37
+
38
+ Make every shareable table ownable, register it at server startup, and guard
39
+ reads and writes with the same access helpers the UI and agent actions use.
40
+
41
+ ```ts
42
+ import { ownableColumns, createSharesTable } from "@agent-native/core/sharing";
43
+ import { registerShareableResource } from "@agent-native/core/sharing";
44
+
45
+ export const dashboards = table("dashboards", {
46
+ id: text("id").primaryKey(),
47
+ title: text("title").notNull(),
48
+ ...ownableColumns(),
49
+ });
50
+
51
+ export const dashboardShares = createSharesTable(
52
+ "dashboard_shares",
53
+ dashboards,
54
+ );
55
+
56
+ registerShareableResource({
57
+ type: "dashboard",
58
+ displayName: "Dashboard",
59
+ table: dashboards,
60
+ sharesTable: dashboardShares,
61
+ });
62
+ ```
63
+
64
+ Render the standard controls where users decide access:
65
+
66
+ ```tsx
67
+ import { ShareButton, VisibilityBadge } from "@agent-native/core/client";
68
+
69
+ <VisibilityBadge visibility={dashboard.visibility} />
70
+ <ShareButton resourceType="dashboard" resourceId={dashboard.id} />
71
+ ```
72
+
73
+ ## UX Standard {#ux-standard}
74
+
75
+ - Every resource header should show a visibility badge and a share button.
76
+ - Lists should make private vs shared state scannable.
77
+ - Public access must be an explicit policy choice, not an accidental URL leak.
78
+ - Agents use the same share actions as the UI and cannot bypass resource policy.
79
+
80
+ Related docs: [Sharing & Privacy](/docs/sharing), [Security](/docs/security),
81
+ [Audit Log](/docs/audit-log).
@@ -7,6 +7,15 @@ description: "Shared shell helpers and hooks that templates can compose through
7
7
 
8
8
  Toolkit includes small shell helpers and hooks that are useful across apps:
9
9
 
10
+ <WireframeBlock id="doc-block-toolkit-shell-hooks">
11
+ <Screen
12
+ surface="desktop"
13
+ html={
14
+ "<div style='min-height:480px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:230px 1fr;gap:16px'><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Shell</strong><div class='wf-pill'>Header actions</div><div class='wf-pill'>Mobile state</div><div class='wf-pill'>Toasts</div></aside><main class='wf-card' style='display:flex;flex-direction:column;gap:14px'><div style='display:flex;align-items:center;gap:10px'><h2 style='margin:0'>Page title</h2><div style='flex:1'></div><button>Export</button><button class='primary'>Create</button></div><div class='wf-box' style='height:250px'>App content using shared shell hooks</div><div class='wf-box'>Toast: Saved changes</div></main></div>"
15
+ }
16
+ />
17
+ </WireframeBlock>
18
+
10
19
  ```tsx
11
20
  import { useSetHeaderActions } from "@agent-native/toolkit/app-shell";
12
21
  import { useIsMobile } from "@agent-native/toolkit/hooks/use-mobile";
@@ -8,6 +8,15 @@ description: "How to use @agent-native/toolkit UI primitives without locking app
8
8
  Toolkit UI primitives live under `@agent-native/toolkit/ui/*`. They are the
9
9
  shared shadcn-style building blocks used by templates and reusable kits.
10
10
 
11
+ <WireframeBlock id="doc-block-toolkit-ui-primitives">
12
+ <Screen
13
+ surface="desktop"
14
+ html={
15
+ "<div style='min-height:480px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:220px 1fr;gap:16px'><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Primitives</strong><div class='wf-pill'>Button</div><div class='wf-pill'>Dialog</div><div class='wf-pill'>Popover</div><div class='wf-pill'>Tooltip</div></aside><main class='wf-card' style='display:flex;flex-direction:column;gap:14px'><h2 style='margin:0'>Reusable kit surface</h2><div style='display:flex;gap:10px'><button>Cancel</button><button class='primary'>Save</button></div><div class='wf-box' style='height:96px'>Dialog content</div><div class='wf-box' style='height:150px'>Popover or menu content</div></main></div>"
16
+ }
17
+ />
18
+ </WireframeBlock>
19
+
11
20
  Reusable package code can import them directly:
12
21
 
13
22
  ```tsx
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.90.2",
3
+ "version": "0.90.4",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -87,6 +87,7 @@
87
87
  "./client/route-state": "./dist/client/route-state.js",
88
88
  "./client/observability": "./dist/client/observability/index.js",
89
89
  "./client/onboarding": "./dist/client/onboarding/index.js",
90
+ "./client/setup-connections": "./dist/client/setup-connections/index.js",
90
91
  "./client/i18n": "./dist/client/i18n.js",
91
92
  "./client/settings/useBuilderStatus": "./dist/client/settings/useBuilderStatus.js",
92
93
  "./embedding": "./dist/embedding/index.js",
@@ -124,9 +125,39 @@
124
125
  "./secrets": "./dist/secrets/index.js",
125
126
  "./secrets/crypto": "./dist/secrets/crypto.js",
126
127
  "./org": "./dist/org/index.js",
128
+ "./org-team": "./dist/org-team/index.js",
127
129
  "./client/org": "./dist/client/org/index.js",
130
+ "./client/org-team": "./dist/client/org-team/index.js",
131
+ "./navigation": "./dist/navigation/index.js",
132
+ "./command-navigation": "./dist/command-navigation/index.js",
133
+ "./client/command-navigation": "./dist/client/command-navigation/index.js",
134
+ "./setup-connections": "./dist/setup-connections/index.js",
128
135
  "./client/db-admin": "./dist/client/db-admin/index.js",
129
136
  "./audit": "./dist/audit/index.js",
137
+ "./history": "./dist/history/index.js",
138
+ "./history/actions/create-resource-version": "./dist/history/actions/create-resource-version.js",
139
+ "./history/actions/list-resource-versions": "./dist/history/actions/list-resource-versions.js",
140
+ "./history/actions/get-resource-version": "./dist/history/actions/get-resource-version.js",
141
+ "./history/actions/restore-resource-version": "./dist/history/actions/restore-resource-version.js",
142
+ "./history/actions/list-resource-history": "./dist/history/actions/list-resource-history.js",
143
+ "./review": "./dist/review/index.js",
144
+ "./comments-review": "./dist/comments-review/index.js",
145
+ "./review/actions/list-review-comments": "./dist/review/actions/list-review-comments.js",
146
+ "./review/actions/create-review-comment": "./dist/review/actions/create-review-comment.js",
147
+ "./review/actions/reply-review-comment": "./dist/review/actions/reply-review-comment.js",
148
+ "./review/actions/resolve-review-thread": "./dist/review/actions/resolve-review-thread.js",
149
+ "./review/actions/delete-review-comment": "./dist/review/actions/delete-review-comment.js",
150
+ "./review/actions/consume-review-feedback": "./dist/review/actions/consume-review-feedback.js",
151
+ "./review/actions/get-review-feedback": "./dist/review/actions/get-review-feedback.js",
152
+ "./review/actions/set-review-status": "./dist/review/actions/set-review-status.js",
153
+ "./comments-review/actions/list-review-comments": "./dist/review/actions/list-review-comments.js",
154
+ "./comments-review/actions/create-review-comment": "./dist/review/actions/create-review-comment.js",
155
+ "./comments-review/actions/reply-review-comment": "./dist/review/actions/reply-review-comment.js",
156
+ "./comments-review/actions/resolve-review-thread": "./dist/review/actions/resolve-review-thread.js",
157
+ "./comments-review/actions/delete-review-comment": "./dist/review/actions/delete-review-comment.js",
158
+ "./comments-review/actions/consume-review-feedback": "./dist/review/actions/consume-review-feedback.js",
159
+ "./comments-review/actions/get-review-feedback": "./dist/review/actions/get-review-feedback.js",
160
+ "./comments-review/actions/set-review-status": "./dist/review/actions/set-review-status.js",
130
161
  "./sharing": "./dist/sharing/index.js",
131
162
  "./sharing/actions/share-resource": "./dist/sharing/actions/share-resource.js",
132
163
  "./sharing/actions/unshare-resource": "./dist/sharing/actions/unshare-resource.js",
@@ -134,6 +165,9 @@
134
165
  "./sharing/actions/set-resource-visibility": "./dist/sharing/actions/set-resource-visibility.js",
135
166
  "./sharing/actions/create-agent-resource-link": "./dist/sharing/actions/create-agent-resource-link.js",
136
167
  "./client/sharing": "./dist/client/sharing/index.js",
168
+ "./client/history": "./dist/client/history/index.js",
169
+ "./client/review": "./dist/client/review/index.js",
170
+ "./client/comments-review": "./dist/client/comments-review/index.js",
137
171
  "./client/extensions": "./dist/client/extensions/index.js",
138
172
  "./client/tools": "./dist/client/extensions/index.js",
139
173
  "./client/transcription/use-live-transcription": "./dist/client/transcription/use-live-transcription.js",
@@ -12,7 +12,11 @@
12
12
  * so the core package remains installable without the AI SDK.
13
13
  */
14
14
 
15
- import { readDeployCredentialEnv } from "../../server/credential-provider.js";
15
+ import {
16
+ clearProviderCredentialAuthFailure,
17
+ readDeployCredentialEnv,
18
+ recordProviderCredentialAuthFailure,
19
+ } from "../../server/credential-provider.js";
16
20
  import { normalizeReasoningEffortForModel } from "../../shared/reasoning-effort.js";
17
21
  import { AI_SDK_MODEL_CONFIG, type AISDKProvider } from "../model-config.js";
18
22
  import { resolveMaxOutputTokensForEngine } from "./output-tokens.js";
@@ -354,6 +358,10 @@ class AISDKEngine implements AgentEngine {
354
358
  }
355
359
 
356
360
  yield { type: "assistant-content", parts: assistantContent };
361
+ await clearProviderCredentialAuthFailure({
362
+ key: PROVIDER_ENV_VARS[this.provider][0],
363
+ value: this.apiKey,
364
+ });
357
365
  yield bufferedStop ?? { type: "stop", reason: "end_turn" };
358
366
  } catch (err: any) {
359
367
  // Surface structured fields from AI SDK's APICallError so
@@ -363,10 +371,20 @@ class AISDKEngine implements AgentEngine {
363
371
  typeof err?.statusCode === "number" ? err.statusCode : undefined;
364
372
  const providerRetryable: boolean | undefined =
365
373
  typeof err?.isRetryable === "boolean" ? err.isRetryable : undefined;
374
+ if (statusCode === 401) {
375
+ await recordProviderCredentialAuthFailure({
376
+ key: PROVIDER_ENV_VARS[this.provider][0],
377
+ value: this.apiKey,
378
+ status: statusCode,
379
+ code: "http_401",
380
+ message: err?.message ?? String(err),
381
+ });
382
+ }
366
383
  yield {
367
384
  type: "stop",
368
385
  reason: "error",
369
386
  error: err?.message ?? String(err),
387
+ ...(statusCode === 401 ? { errorCode: "http_401" } : {}),
370
388
  ...(statusCode !== undefined ? { statusCode } : {}),
371
389
  ...(providerRetryable !== undefined ? { providerRetryable } : {}),
372
390
  };
@@ -8,7 +8,11 @@
8
8
  * All providerOptions.anthropic fields are forwarded directly to the SDK.
9
9
  */
10
10
 
11
- import { readDeployCredentialEnv } from "../../server/credential-provider.js";
11
+ import {
12
+ clearProviderCredentialAuthFailure,
13
+ readDeployCredentialEnv,
14
+ recordProviderCredentialAuthFailure,
15
+ } from "../../server/credential-provider.js";
12
16
  import { normalizeReasoningEffortForModel } from "../../shared/reasoning-effort.js";
13
17
  import { ANTHROPIC_MODEL_CONFIG } from "../model-config.js";
14
18
  import {
@@ -187,6 +191,10 @@ class AnthropicEngine implements AgentEngine {
187
191
  }
188
192
 
189
193
  yield { type: "assistant-content", parts: assistantContent };
194
+ await clearProviderCredentialAuthFailure({
195
+ key: "ANTHROPIC_API_KEY",
196
+ value: this.apiKey,
197
+ });
190
198
 
191
199
  // Emit stop reason
192
200
  const stopReason = finalMessage.stop_reason ?? "end_turn";
@@ -200,10 +208,26 @@ class AnthropicEngine implements AgentEngine {
200
208
  : "end_turn",
201
209
  };
202
210
  } catch (err: any) {
211
+ const statusCode: number | undefined =
212
+ typeof err?.status === "number"
213
+ ? err.status
214
+ : typeof err?.statusCode === "number"
215
+ ? err.statusCode
216
+ : undefined;
217
+ if (statusCode === 401) {
218
+ await recordProviderCredentialAuthFailure({
219
+ key: "ANTHROPIC_API_KEY",
220
+ value: this.apiKey,
221
+ status: statusCode,
222
+ code: "http_401",
223
+ message: err?.message ?? String(err),
224
+ });
225
+ }
203
226
  yield {
204
227
  type: "stop",
205
228
  reason: "error",
206
229
  error: err?.message ?? String(err),
230
+ ...(statusCode === 401 ? { errorCode: "http_401", statusCode } : {}),
207
231
  };
208
232
  throw err;
209
233
  }
@@ -25,6 +25,7 @@ export {
25
25
  getStoredModelForEngine,
26
26
  normalizeModelForEngine,
27
27
  detectEngineFromEnv,
28
+ detectEngineFromEnvForRequest,
28
29
  detectEngineFromUserSecrets,
29
30
  isAgentEngineSettingConfigured,
30
31
  isAgentEnginePackageInstalled,