@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.
- package/bin/agent-native.js +25 -3
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +21 -0
- package/corpus/core/bin/agent-native.js +25 -3
- package/corpus/core/docs/content/agent-native-toolkit.mdx +87 -80
- package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
- package/corpus/core/docs/content/toolkit-agent-ux.mdx +43 -0
- package/corpus/core/docs/content/toolkit-app-adapters.mdx +9 -0
- package/corpus/core/docs/content/toolkit-collaboration-ui.mdx +12 -0
- package/corpus/core/docs/content/toolkit-collaboration.mdx +74 -0
- package/corpus/core/docs/content/toolkit-command-navigation.mdx +106 -0
- package/corpus/core/docs/content/toolkit-comments-review.mdx +98 -0
- package/corpus/core/docs/content/toolkit-history.mdx +95 -0
- package/corpus/core/docs/content/toolkit-observability.mdx +41 -0
- package/corpus/core/docs/content/toolkit-org-team.mdx +80 -0
- package/corpus/core/docs/content/toolkit-resources.mdx +57 -0
- package/corpus/core/docs/content/toolkit-settings.mdx +65 -0
- package/corpus/core/docs/content/toolkit-setup-connections.mdx +109 -0
- package/corpus/core/docs/content/toolkit-sharing-ui.mdx +18 -6
- package/corpus/core/docs/content/toolkit-sharing.mdx +81 -0
- package/corpus/core/docs/content/toolkit-shell-hooks.mdx +9 -0
- package/corpus/core/docs/content/toolkit-ui.mdx +9 -0
- package/corpus/core/package.json +35 -1
- package/corpus/core/src/agent/engine/ai-sdk-engine.ts +19 -1
- package/corpus/core/src/agent/engine/anthropic-engine.ts +25 -1
- package/corpus/core/src/agent/engine/index.ts +1 -0
- package/corpus/core/src/agent/engine/registry.ts +86 -18
- package/corpus/core/src/agent/production-agent.ts +37 -6
- package/corpus/core/src/cli/create.ts +35 -0
- package/corpus/core/src/cli/design-connect.ts +248 -0
- package/corpus/core/src/cli/index.ts +84 -7
- package/corpus/core/src/cli/workspacify.ts +34 -0
- package/corpus/core/src/client/command-navigation/index.ts +15 -0
- package/corpus/core/src/client/comments-review/index.ts +1 -0
- package/corpus/core/src/client/history/VersionHistoryPanel.tsx +175 -0
- package/corpus/core/src/client/history/index.ts +21 -0
- package/corpus/core/src/client/history/use-history.ts +114 -0
- package/corpus/core/src/client/index.ts +84 -9
- package/corpus/core/src/client/org/OrgSwitcher.tsx +6 -6
- package/corpus/core/src/client/org/RequireActiveOrg.tsx +2 -2
- package/corpus/core/src/client/org/TeamPage.tsx +3 -3
- package/corpus/core/src/client/org/hooks.ts +32 -0
- package/corpus/core/src/client/org/index.ts +30 -1
- package/corpus/core/src/client/org-team/index.ts +1 -0
- package/corpus/core/src/client/review/ReviewStatusBadge.tsx +39 -0
- package/corpus/core/src/client/review/ReviewThreadPanel.tsx +278 -0
- package/corpus/core/src/client/review/index.ts +30 -0
- package/corpus/core/src/client/review/use-review.ts +152 -0
- package/corpus/core/src/client/settings/index.ts +11 -1
- package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +94 -0
- package/corpus/core/src/client/setup-connections/ProviderReadinessBadge.tsx +73 -0
- package/corpus/core/src/client/setup-connections/SetupConnectionsPage.tsx +94 -0
- package/corpus/core/src/client/setup-connections/index.ts +46 -0
- package/corpus/core/src/client/sharing/ShareButton.tsx +20 -14
- package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
- package/corpus/core/src/command-navigation/actions.ts +100 -0
- package/corpus/core/src/command-navigation/index.ts +12 -0
- package/corpus/core/src/comments-review/index.ts +1 -0
- package/corpus/core/src/file-upload/builder.ts +24 -3
- package/corpus/core/src/file-upload/types.ts +3 -1
- package/corpus/core/src/history/actions/create-resource-version.ts +92 -0
- package/corpus/core/src/history/actions/get-resource-version.ts +60 -0
- package/corpus/core/src/history/actions/list-resource-history.ts +53 -0
- package/corpus/core/src/history/actions/list-resource-versions.ts +43 -0
- package/corpus/core/src/history/actions/restore-resource-version.ts +96 -0
- package/corpus/core/src/history/index.ts +26 -0
- package/corpus/core/src/history/registry.ts +111 -0
- package/corpus/core/src/history/store.ts +379 -0
- package/corpus/core/src/history/types.ts +69 -0
- package/corpus/core/src/index.ts +10 -0
- package/corpus/core/src/navigation/index.ts +170 -0
- package/corpus/core/src/org/index.ts +8 -0
- package/corpus/core/src/org/permissions.ts +30 -0
- package/corpus/core/src/org-team/index.ts +1 -0
- package/corpus/core/src/private-blob/registry.ts +1 -0
- package/corpus/core/src/review/actions/consume-review-feedback.ts +48 -0
- package/corpus/core/src/review/actions/create-review-comment.ts +107 -0
- package/corpus/core/src/review/actions/delete-review-comment.ts +67 -0
- package/corpus/core/src/review/actions/get-review-feedback.ts +54 -0
- package/corpus/core/src/review/actions/list-review-comments.ts +53 -0
- package/corpus/core/src/review/actions/reply-review-comment.ts +107 -0
- package/corpus/core/src/review/actions/resolve-review-thread.ts +67 -0
- package/corpus/core/src/review/actions/set-review-status.ts +58 -0
- package/corpus/core/src/review/index.ts +31 -0
- package/corpus/core/src/review/mentions.ts +44 -0
- package/corpus/core/src/review/registry.ts +111 -0
- package/corpus/core/src/review/store.ts +690 -0
- package/corpus/core/src/review/types.ts +97 -0
- package/corpus/core/src/server/action-discovery.ts +54 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +6 -0
- package/corpus/core/src/server/agent-engine-api-key-route.ts +5 -0
- package/corpus/core/src/server/credential-provider.ts +118 -0
- package/corpus/core/src/setup-connections/index.ts +89 -0
- package/corpus/core/src/setup-connections/onboarding.ts +47 -0
- package/corpus/core/src/transcription/builder-transcription.ts +9 -2
- package/corpus/core/src/vite/action-types-plugin.ts +52 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +2 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/analytics/app/global.css +22 -10
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +6 -1
- package/corpus/templates/analytics/app/i18n-data.ts +81 -13
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +2 -2
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +2 -2
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +528 -108
- package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +466 -183
- package/corpus/templates/analytics/changelog/2026-07-07-session-replays-load-sooner-show-clearer-activity-timelines-.md +6 -0
- package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +11 -11
- package/corpus/templates/assets/actions/generate-image.ts +64 -28
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +1 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +91 -74
- package/corpus/templates/assets/server/lib/generation.ts +29 -4
- package/corpus/templates/assets/server/lib/image-processing.ts +131 -0
- package/corpus/templates/brain/app/routes/settings.tsx +2 -2
- package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +24 -2
- package/corpus/templates/calendar/AGENTS.md +3 -0
- package/corpus/templates/calendar/actions/create-event.ts +8 -34
- package/corpus/templates/calendar/actions/event-action-helpers.ts +52 -0
- package/corpus/templates/calendar/actions/manage-event-draft.ts +7 -34
- package/corpus/templates/calendar/actions/update-event.ts +10 -23
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +79 -6
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +23 -0
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +59 -2
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +40 -1
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +154 -41
- package/corpus/templates/calendar/app/hooks/use-events.ts +6 -0
- package/corpus/templates/calendar/app/hooks/use-people.ts +55 -0
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/calendar/app/i18n-data.ts +40 -0
- package/corpus/templates/calendar/changelog/2026-07-07-guest-suggestions-now-find-coworkers-from-your-google-worksp.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-07-you-can-mark-event-guests-as-optional-while-inviting-them-or.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-07-zoom-stays-selected-after-connecting-it-from-a-draft-event.md +6 -0
- package/corpus/templates/calendar/server/handlers/events.ts +1 -0
- package/corpus/templates/calendar/server/lib/google-calendar.ts +4 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +1 -1
- package/corpus/templates/calendar/shared/api.ts +2 -0
- package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +29 -3
- package/corpus/templates/clips/actions/create-recording.ts +5 -1
- package/corpus/templates/clips/actions/finalize-recording.ts +140 -1
- package/corpus/templates/clips/actions/generate-workflow.ts +19 -8
- package/corpus/templates/clips/actions/get-clips-ai-prefs.ts +36 -0
- package/corpus/templates/clips/actions/import-loom-recording.ts +1 -0
- package/corpus/templates/clips/actions/lib/clips-ai-prefs.ts +28 -0
- package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +1 -0
- package/corpus/templates/clips/actions/regenerate-chapters.ts +21 -7
- package/corpus/templates/clips/actions/regenerate-summary.ts +26 -8
- package/corpus/templates/clips/actions/regenerate-title.ts +44 -7
- package/corpus/templates/clips/actions/request-transcript.ts +31 -0
- package/corpus/templates/clips/actions/set-thumbnail.ts +2 -0
- package/corpus/templates/clips/actions/update-clips-ai-prefs.ts +50 -0
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +2 -2
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +7 -2
- package/corpus/templates/clips/app/components/player/scrubber-position.ts +9 -0
- package/corpus/templates/clips/app/components/player/scrubber.tsx +5 -2
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +69 -41
- package/corpus/templates/clips/app/components/player/video-player.tsx +38 -1
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +3 -3
- package/corpus/templates/clips/app/components/sharing/slack-share-hint.tsx +9 -19
- package/corpus/templates/clips/app/hooks/use-auto-title.ts +25 -10
- package/corpus/templates/clips/app/i18n/ar-SA.ts +28 -6
- package/corpus/templates/clips/app/i18n/de-DE.ts +28 -6
- package/corpus/templates/clips/app/i18n/en-US.ts +29 -6
- package/corpus/templates/clips/app/i18n/es-ES.ts +29 -6
- package/corpus/templates/clips/app/i18n/fr-FR.ts +30 -6
- package/corpus/templates/clips/app/i18n/hi-IN.ts +26 -6
- package/corpus/templates/clips/app/i18n/ja-JP.ts +27 -6
- package/corpus/templates/clips/app/i18n/ko-KR.ts +28 -6
- package/corpus/templates/clips/app/i18n/pt-BR.ts +28 -6
- package/corpus/templates/clips/app/i18n/zh-CN.ts +26 -6
- package/corpus/templates/clips/app/i18n/zh-TW.ts +25 -6
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +73 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +79 -5
- package/corpus/templates/clips/app/routes/record.tsx +21 -12
- package/corpus/templates/clips/changelog/2026-07-02-recordings-now-wait-for-storage-media-to-serve-before-finishing.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-a-pending-app-update-no-longer-blocks-screen-recording-updat.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-ai-tools-can-include-the-full-video-not-just-the-transcript-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-chrome-extension-recordings-keep-audio-after-refreshing-tab.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-clip-playback-progress-now-starts-and-finishes-at-the-right-times.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-clips-desktop-now-surfaces-meetings-and-dictate-directly-in-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-notes-now-explain-exactly-how-to-start-granola-style.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-start-alerts-now-include-separate-start-notes-and-jo.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-recordings-start-more-predictably-and-newly-saved-clips-refr.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-sharing-public-clips-now-stays-focused-on-the-normal-link-wi.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/chrome-extension/src/background.ts +18 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +23 -8
- package/corpus/templates/clips/desktop/src/app.tsx +475 -108
- package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +19 -7
- package/corpus/templates/clips/desktop/src/lib/permissions.ts +2 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +27 -21
- package/corpus/templates/clips/desktop/src/lib/updater.ts +25 -2
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +23 -22
- package/corpus/templates/clips/desktop/src/styles.css +167 -2
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +8 -1
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +3 -7
- package/corpus/templates/clips/desktop/src-tauri/src/tray_meetings.rs +5 -4
- package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.put.ts +16 -8
- package/corpus/templates/clips/server/routes/api/recordings/[recordingId]/thumbnail.post.ts +1 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +22 -5
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +8 -0
- package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +13 -6
- package/corpus/templates/clips/shared/clips-ai-prefs.ts +81 -0
- package/corpus/templates/clips/shared/finalize-recovery.ts +12 -0
- package/corpus/templates/content/actions/delete-document.ts +337 -52
- package/corpus/templates/content/changelog/2026-07-07-permanently-deleting-trashed-databases-now-finishes-reliably.md +6 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +16 -1
- package/corpus/templates/design/actions/add-localhost-screens.ts +1 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +345 -11
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +89 -14
- package/corpus/templates/design/app/components/design/bridge-security.ts +7 -1
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +1 -1
- package/corpus/templates/design/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +41 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-uses-live-app-iframes-for-click-to-edit-pr.md +6 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +2 -2
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +15 -1
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +20 -1
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +14 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +78 -16
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +27 -7
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +31 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +186 -0
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/index.js +76 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/workspacify.d.ts.map +1 -1
- package/dist/cli/workspacify.js +30 -0
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/command-navigation/index.d.ts +4 -0
- package/dist/client/command-navigation/index.d.ts.map +1 -0
- package/dist/client/command-navigation/index.js +4 -0
- package/dist/client/command-navigation/index.js.map +1 -0
- package/dist/client/comments-review/index.d.ts +2 -0
- package/dist/client/comments-review/index.d.ts.map +1 -0
- package/dist/client/comments-review/index.js +2 -0
- package/dist/client/comments-review/index.js.map +1 -0
- package/dist/client/history/VersionHistoryPanel.d.ts +18 -0
- package/dist/client/history/VersionHistoryPanel.d.ts.map +1 -0
- package/dist/client/history/VersionHistoryPanel.js +31 -0
- package/dist/client/history/VersionHistoryPanel.js.map +1 -0
- package/dist/client/history/index.d.ts +3 -0
- package/dist/client/history/index.d.ts.map +1 -0
- package/dist/client/history/index.js +3 -0
- package/dist/client/history/index.js.map +1 -0
- package/dist/client/history/use-history.d.ts +58 -0
- package/dist/client/history/use-history.d.ts.map +1 -0
- package/dist/client/history/use-history.js +24 -0
- package/dist/client/history/use-history.js.map +1 -0
- package/dist/client/index.d.ts +6 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/org/OrgSwitcher.js +5 -5
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.js +2 -2
- package/dist/client/org/RequireActiveOrg.js.map +1 -1
- package/dist/client/org/TeamPage.js +3 -3
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.d.ts +12 -1
- package/dist/client/org/hooks.d.ts.map +1 -1
- package/dist/client/org/hooks.js +15 -0
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.d.ts +4 -2
- package/dist/client/org/index.d.ts.map +1 -1
- package/dist/client/org/index.js +3 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/org-team/index.d.ts +2 -0
- package/dist/client/org-team/index.d.ts.map +1 -0
- package/dist/client/org-team/index.js +2 -0
- package/dist/client/org-team/index.js.map +1 -0
- package/dist/client/review/ReviewStatusBadge.d.ts +7 -0
- package/dist/client/review/ReviewStatusBadge.d.ts.map +1 -0
- package/dist/client/review/ReviewStatusBadge.js +19 -0
- package/dist/client/review/ReviewStatusBadge.js.map +1 -0
- package/dist/client/review/ReviewThreadPanel.d.ts +20 -0
- package/dist/client/review/ReviewThreadPanel.d.ts.map +1 -0
- package/dist/client/review/ReviewThreadPanel.js +84 -0
- package/dist/client/review/ReviewThreadPanel.js.map +1 -0
- package/dist/client/review/index.d.ts +4 -0
- package/dist/client/review/index.d.ts.map +1 -0
- package/dist/client/review/index.js +4 -0
- package/dist/client/review/index.js.map +1 -0
- package/dist/client/review/use-review.d.ts +91 -0
- package/dist/client/review/use-review.d.ts.map +1 -0
- package/dist/client/review/use-review.js +30 -0
- package/dist/client/review/use-review.js.map +1 -0
- package/dist/client/settings/index.d.ts +1 -1
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +1 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/setup-connections/BuilderConnectCard.d.ts +9 -0
- package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -0
- package/dist/client/setup-connections/BuilderConnectCard.js +25 -0
- package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -0
- package/dist/client/setup-connections/ProviderReadinessBadge.d.ts +8 -0
- package/dist/client/setup-connections/ProviderReadinessBadge.d.ts.map +1 -0
- package/dist/client/setup-connections/ProviderReadinessBadge.js +32 -0
- package/dist/client/setup-connections/ProviderReadinessBadge.js.map +1 -0
- package/dist/client/setup-connections/SetupConnectionsPage.d.ts +17 -0
- package/dist/client/setup-connections/SetupConnectionsPage.d.ts.map +1 -0
- package/dist/client/setup-connections/SetupConnectionsPage.js +10 -0
- package/dist/client/setup-connections/SetupConnectionsPage.js.map +1 -0
- package/dist/client/setup-connections/index.d.ts +7 -0
- package/dist/client/setup-connections/index.d.ts.map +1 -0
- package/dist/client/setup-connections/index.js +7 -0
- package/dist/client/setup-connections/index.js.map +1 -0
- package/dist/client/sharing/ShareButton.d.ts +4 -4
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +13 -7
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.js +3 -3
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/command-navigation/actions.d.ts +25 -0
- package/dist/command-navigation/actions.d.ts.map +1 -0
- package/dist/command-navigation/actions.js +64 -0
- package/dist/command-navigation/actions.js.map +1 -0
- package/dist/command-navigation/index.d.ts +4 -0
- package/dist/command-navigation/index.d.ts.map +1 -0
- package/dist/command-navigation/index.js +4 -0
- package/dist/command-navigation/index.js.map +1 -0
- package/dist/comments-review/index.d.ts +2 -0
- package/dist/comments-review/index.d.ts.map +1 -0
- package/dist/comments-review/index.js +2 -0
- package/dist/comments-review/index.js.map +1 -0
- package/dist/file-upload/builder.d.ts.map +1 -1
- package/dist/file-upload/builder.js +18 -2
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/file-upload/types.d.ts +3 -0
- package/dist/file-upload/types.d.ts.map +1 -1
- package/dist/file-upload/types.js.map +1 -1
- package/dist/history/actions/create-resource-version.d.ts +10 -0
- package/dist/history/actions/create-resource-version.d.ts.map +1 -0
- package/dist/history/actions/create-resource-version.js +68 -0
- package/dist/history/actions/create-resource-version.js.map +1 -0
- package/dist/history/actions/get-resource-version.d.ts +10 -0
- package/dist/history/actions/get-resource-version.d.ts.map +1 -0
- package/dist/history/actions/get-resource-version.js +38 -0
- package/dist/history/actions/get-resource-version.js.map +1 -0
- package/dist/history/actions/list-resource-history.d.ts +10 -0
- package/dist/history/actions/list-resource-history.d.ts.map +1 -0
- package/dist/history/actions/list-resource-history.js +45 -0
- package/dist/history/actions/list-resource-history.js.map +1 -0
- package/dist/history/actions/list-resource-versions.d.ts +10 -0
- package/dist/history/actions/list-resource-versions.d.ts.map +1 -0
- package/dist/history/actions/list-resource-versions.js +35 -0
- package/dist/history/actions/list-resource-versions.js.map +1 -0
- package/dist/history/actions/restore-resource-version.d.ts +11 -0
- package/dist/history/actions/restore-resource-version.d.ts.map +1 -0
- package/dist/history/actions/restore-resource-version.js +59 -0
- package/dist/history/actions/restore-resource-version.js.map +1 -0
- package/dist/history/index.d.ts +4 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +3 -0
- package/dist/history/index.js.map +1 -0
- package/dist/history/registry.d.ts +10 -0
- package/dist/history/registry.d.ts.map +1 -0
- package/dist/history/registry.js +63 -0
- package/dist/history/registry.js.map +1 -0
- package/dist/history/store.d.ts +34 -0
- package/dist/history/store.d.ts.map +1 -0
- package/dist/history/store.js +290 -0
- package/dist/history/store.js.map +1 -0
- package/dist/history/types.d.ts +55 -0
- package/dist/history/types.d.ts.map +1 -0
- package/dist/history/types.js +2 -0
- package/dist/history/types.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/navigation/index.d.ts +53 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +105 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/observability/routes.d.ts +3 -3
- package/dist/org/index.d.ts +1 -0
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +1 -0
- package/dist/org/index.js.map +1 -1
- package/dist/org/permissions.d.ts +7 -0
- package/dist/org/permissions.d.ts.map +1 -0
- package/dist/org/permissions.js +21 -0
- package/dist/org/permissions.js.map +1 -0
- package/dist/org-team/index.d.ts +2 -0
- package/dist/org-team/index.d.ts.map +1 -0
- package/dist/org-team/index.js +2 -0
- package/dist/org-team/index.js.map +1 -0
- package/dist/private-blob/registry.d.ts.map +1 -1
- package/dist/private-blob/registry.js +1 -0
- package/dist/private-blob/registry.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/review/actions/consume-review-feedback.d.ts +10 -0
- package/dist/review/actions/consume-review-feedback.d.ts.map +1 -0
- package/dist/review/actions/consume-review-feedback.js +35 -0
- package/dist/review/actions/consume-review-feedback.js.map +1 -0
- package/dist/review/actions/create-review-comment.d.ts +18 -0
- package/dist/review/actions/create-review-comment.d.ts.map +1 -0
- package/dist/review/actions/create-review-comment.js +81 -0
- package/dist/review/actions/create-review-comment.js.map +1 -0
- package/dist/review/actions/delete-review-comment.d.ts +11 -0
- package/dist/review/actions/delete-review-comment.d.ts.map +1 -0
- package/dist/review/actions/delete-review-comment.js +53 -0
- package/dist/review/actions/delete-review-comment.js.map +1 -0
- package/dist/review/actions/get-review-feedback.d.ts +10 -0
- package/dist/review/actions/get-review-feedback.d.ts.map +1 -0
- package/dist/review/actions/get-review-feedback.js +45 -0
- package/dist/review/actions/get-review-feedback.js.map +1 -0
- package/dist/review/actions/list-review-comments.d.ts +13 -0
- package/dist/review/actions/list-review-comments.d.ts.map +1 -0
- package/dist/review/actions/list-review-comments.js +44 -0
- package/dist/review/actions/list-review-comments.js.map +1 -0
- package/dist/review/actions/reply-review-comment.d.ts +16 -0
- package/dist/review/actions/reply-review-comment.d.ts.map +1 -0
- package/dist/review/actions/reply-review-comment.js +84 -0
- package/dist/review/actions/reply-review-comment.js.map +1 -0
- package/dist/review/actions/resolve-review-thread.d.ts +12 -0
- package/dist/review/actions/resolve-review-thread.d.ts.map +1 -0
- package/dist/review/actions/resolve-review-thread.js +49 -0
- package/dist/review/actions/resolve-review-thread.js.map +1 -0
- package/dist/review/actions/set-review-status.d.ts +9 -0
- package/dist/review/actions/set-review-status.d.ts.map +1 -0
- package/dist/review/actions/set-review-status.js +43 -0
- package/dist/review/actions/set-review-status.js.map +1 -0
- package/dist/review/index.d.ts +5 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +4 -0
- package/dist/review/index.js.map +1 -0
- package/dist/review/mentions.d.ts +4 -0
- package/dist/review/mentions.d.ts.map +1 -0
- package/dist/review/mentions.js +39 -0
- package/dist/review/mentions.js.map +1 -0
- package/dist/review/registry.d.ts +10 -0
- package/dist/review/registry.d.ts.map +1 -0
- package/dist/review/registry.js +63 -0
- package/dist/review/registry.js.map +1 -0
- package/dist/review/store.d.ts +63 -0
- package/dist/review/store.d.ts.map +1 -0
- package/dist/review/store.js +561 -0
- package/dist/review/store.js.map +1 -0
- package/dist/review/types.d.ts +77 -0
- package/dist/review/types.d.ts.map +1 -0
- package/dist/review/types.js +2 -0
- package/dist/review/types.js.map +1 -0
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +54 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +5 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts.map +1 -1
- package/dist/server/agent-engine-api-key-route.js +5 -0
- package/dist/server/agent-engine-api-key-route.js.map +1 -1
- package/dist/server/credential-provider.d.ts +28 -0
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +92 -0
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/setup-connections/index.d.ts +6 -0
- package/dist/setup-connections/index.d.ts.map +1 -0
- package/dist/setup-connections/index.js +6 -0
- package/dist/setup-connections/index.js.map +1 -0
- package/dist/setup-connections/onboarding.d.ts +14 -0
- package/dist/setup-connections/onboarding.d.ts.map +1 -0
- package/dist/setup-connections/onboarding.js +23 -0
- package/dist/setup-connections/onboarding.js.map +1 -0
- package/dist/transcription/builder-transcription.d.ts +1 -0
- package/dist/transcription/builder-transcription.d.ts.map +1 -1
- package/dist/transcription/builder-transcription.js +5 -2
- package/dist/transcription/builder-transcription.js.map +1 -1
- package/dist/vite/action-types-plugin.d.ts.map +1 -1
- package/dist/vite/action-types-plugin.js +52 -0
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/docs/content/agent-native-toolkit.mdx +87 -80
- package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/de-DE/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/es-ES/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +89 -80
- package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +89 -80
- package/docs/content/toolkit-agent-ux.mdx +43 -0
- package/docs/content/toolkit-app-adapters.mdx +9 -0
- package/docs/content/toolkit-collaboration-ui.mdx +12 -0
- package/docs/content/toolkit-collaboration.mdx +74 -0
- package/docs/content/toolkit-command-navigation.mdx +106 -0
- package/docs/content/toolkit-comments-review.mdx +98 -0
- package/docs/content/toolkit-history.mdx +95 -0
- package/docs/content/toolkit-observability.mdx +41 -0
- package/docs/content/toolkit-org-team.mdx +80 -0
- package/docs/content/toolkit-resources.mdx +57 -0
- package/docs/content/toolkit-settings.mdx +65 -0
- package/docs/content/toolkit-setup-connections.mdx +109 -0
- package/docs/content/toolkit-sharing-ui.mdx +18 -6
- package/docs/content/toolkit-sharing.mdx +81 -0
- package/docs/content/toolkit-shell-hooks.mdx +9 -0
- package/docs/content/toolkit-ui.mdx +9 -0
- package/package.json +36 -2
|
@@ -1,103 +1,112 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "
|
|
3
|
-
description: "
|
|
2
|
+
title: "Toolkits"
|
|
3
|
+
description: "Battle-tested reusable building blocks for high-quality agentic applications: collaboration, sharing, settings, teams, setup, navigation, resources, agent UX, history, comments, and observability."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
<!-- i18n-docs-ignore -->
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
SQL, server plugins, agent chat, sharing access checks, and collaboration
|
|
10
|
-
transport. `@agent-native/toolkit` owns reusable app-building pieces that sit on
|
|
11
|
-
top of that runtime: UI primitives, app-local adapters, shell helpers, sharing
|
|
12
|
-
badges, and collaboration UI.
|
|
8
|
+
# Toolkits
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
Toolkits are reusable, battle-tested building blocks for high-quality agentic
|
|
11
|
+
applications. They turn the hard product work that repeats across apps into
|
|
12
|
+
standard surfaces: realtime collaboration between humans and agents, sharing
|
|
13
|
+
with humans and agents, settings, teams, setup, resources, history, review, and
|
|
14
|
+
observability.
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
Each kit packages the UI patterns, action contracts, app-state expectations,
|
|
17
|
+
access boundaries, and agent-visible behavior that users expect to work
|
|
18
|
+
consistently. Apps still own their domain model and visual identity; toolkits
|
|
19
|
+
make the common product systems feel complete from the first version instead of
|
|
20
|
+
being rebuilt in slightly different ways every time.
|
|
21
|
+
|
|
22
|
+
<WireframeBlock id="doc-block-toolkits-index">
|
|
18
23
|
<Screen
|
|
19
24
|
surface="desktop"
|
|
20
25
|
html={
|
|
21
|
-
"<div style='min-height:
|
|
26
|
+
"<div style='min-height:560px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:230px 1fr;gap:18px'><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Toolkits</strong><div class='wf-pill'>Collaboration</div><div class='wf-pill'>Sharing</div><div class='wf-pill'>Settings</div><div class='wf-pill'>Org and Team</div><div class='wf-pill'>Agent UX</div><div class='wf-pill'>Observability</div></aside><main style='display:flex;flex-direction:column;gap:14px'><div class='wf-card' style='padding:18px'><h2 style='margin:0'>Agentic app building blocks</h2><p class='wf-muted' style='margin:8px 0 0'>Reusable systems for humans and agents working in the same product surface.</p></div><div style='display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px'><div class='wf-card'>Realtime editing<br/><span class='wf-muted'>presence and cursors</span></div><div class='wf-card'>Share controls<br/><span class='wf-muted'>humans and agents</span></div><div class='wf-card'>Settings tabs<br/><span class='wf-muted'>keys and providers</span></div><div class='wf-card'>Team workspace<br/><span class='wf-muted'>roles and invites</span></div><div class='wf-card'>Review layer<br/><span class='wf-muted'>comments and history</span></div><div class='wf-card'>Runs tray<br/><span class='wf-muted'>progress and recovery</span></div></div></main></div>"
|
|
22
27
|
}
|
|
23
28
|
/>
|
|
24
29
|
</WireframeBlock>
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Existing imports from `@agent-native/core/client` keep working. Core now exposes
|
|
46
|
-
thin re-export shims for Toolkit-owned visual pieces while keeping runtime
|
|
47
|
-
behavior in core.
|
|
48
|
-
|
|
49
|
-
Those core shims are temporary migration support, not the long-term dependency
|
|
50
|
-
direction. The next major can remove them; after that, reusable app-building
|
|
51
|
-
packages should import Toolkit directly, and behaviorful Toolkit kits may compose
|
|
52
|
-
core runtime APIs as peer/runtime dependencies instead of pushing more UI back
|
|
53
|
-
into core.
|
|
54
|
-
|
|
55
|
-
Extract future behaviorful kits one at a time before broadening the split.
|
|
56
|
-
Sharing is the first candidate to validate that model because it exercises
|
|
57
|
-
access checks, action-backed data, and share-link UI together.
|
|
58
|
-
|
|
59
|
-
That means this keeps working:
|
|
60
|
-
|
|
61
|
-
```tsx
|
|
62
|
-
import { PresenceBar, VisibilityBadge } from "@agent-native/core/client";
|
|
31
|
+
<Diagram id="doc-block-toolkits-boundary" title="How kits fit" summary={"The framework runtime supplies durable guarantees. Toolkits turn those guarantees into reusable product systems. Apps add domain-specific data, routes, and visual identity."}>
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<div class="diagram-row">
|
|
35
|
+
<div class="diagram-card">
|
|
36
|
+
<span class="diagram-pill accent">Runtime</span><br />
|
|
37
|
+
actions, SQL, auth, app state, access checks, realtime transport
|
|
38
|
+
</div>
|
|
39
|
+
<div class="diagram-arrow diagram-muted" aria-hidden="true">→</div>
|
|
40
|
+
<div class="diagram-card">
|
|
41
|
+
<span class="diagram-pill accent">Toolkits</span><br />
|
|
42
|
+
collaboration, sharing, setup, review, history, observability
|
|
43
|
+
</div>
|
|
44
|
+
<div class="diagram-arrow diagram-muted" aria-hidden="true">→</div>
|
|
45
|
+
<div class="diagram-card">
|
|
46
|
+
<span class="diagram-pill accent">Apps</span><br />
|
|
47
|
+
domain schema, routes, actions, branding, specialized workflows
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
63
50
|
```
|
|
64
51
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
52
|
+
```css
|
|
53
|
+
.diagram-row {
|
|
54
|
+
display: flex;
|
|
55
|
+
gap: 12px;
|
|
56
|
+
align-items: stretch;
|
|
57
|
+
flex-wrap: wrap;
|
|
58
|
+
}
|
|
59
|
+
.diagram-row .diagram-card {
|
|
60
|
+
flex: 1 1 210px;
|
|
61
|
+
padding: 14px;
|
|
62
|
+
}
|
|
63
|
+
.diagram-row .diagram-arrow {
|
|
64
|
+
align-self: center;
|
|
65
|
+
font-size: 22px;
|
|
66
|
+
}
|
|
70
67
|
```
|
|
71
68
|
|
|
72
|
-
|
|
69
|
+
</Diagram>
|
|
73
70
|
|
|
74
|
-
|
|
75
|
-
Keep code in core when it owns access control, SQL, actions, request context,
|
|
76
|
-
Yjs transport, auth, or other runtime guarantees.
|
|
71
|
+
## The Kits {#the-kits}
|
|
77
72
|
|
|
78
|
-
|
|
73
|
+
| Kit | Use it for |
|
|
74
|
+
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
75
|
+
| [Sharing](/docs/toolkit-sharing) | Ownable resources, share dialogs, visibility badges, share actions, public/private/org access. |
|
|
76
|
+
| [Collaboration](/docs/toolkit-collaboration) | Realtime editing, presence, live cursors, recent-edit highlights, collaborative undo. |
|
|
77
|
+
| [Settings](/docs/toolkit-settings) | Standard settings pages and tabs so app settings and agent/provider settings live in one predictable place. |
|
|
78
|
+
| [Org & Team](/docs/toolkit-org-team) | Team pages, org switching, invites, org domains, roles, and app switching. |
|
|
79
|
+
| [Setup & Connections](/docs/toolkit-setup-connections) | Onboarding, secrets, workspace connections, OAuth/provider readiness, and Builder connect. |
|
|
80
|
+
| [Command & Navigation](/docs/toolkit-command-navigation) | Command menu, deep links, standard app routes, sidebar and shell patterns. |
|
|
81
|
+
| [Resources](/docs/toolkit-resources) | Resource trees, editors, file picker/search, attachments, and local file mode. |
|
|
82
|
+
| [Agent UX](/docs/toolkit-agent-ux) | Composer, model picker, context chips, approvals, run recovery, and the runs tray. |
|
|
83
|
+
| [History](/docs/toolkit-history) | Version history, audit logs, undo/redo, restore, and "what changed" surfaces. |
|
|
84
|
+
| [Comments & Review](/docs/toolkit-comments-review) | Inline comments, annotations, mentions, resolved threads, review status. |
|
|
85
|
+
| [Observability](/docs/toolkit-observability) | Usage, spend, feedback, replay, errors, and run diagnostics. |
|
|
79
86
|
|
|
80
|
-
|
|
81
|
-
- Display-only helpers and structural prop types.
|
|
82
|
-
- Base components that receive data and callbacks from an app or core wrapper.
|
|
83
|
-
- App-shell hooks and adapters that do not own domain data.
|
|
87
|
+
## Implementation Boundary {#implementation-boundary}
|
|
84
88
|
|
|
85
|
-
|
|
89
|
+
Kits are product surfaces first. Some pieces are runtime-backed
|
|
90
|
+
(`@agent-native/core`), some are presentation primitives
|
|
91
|
+
(`@agent-native/toolkit`), and apps usually wrap both through local adapters.
|
|
92
|
+
Use the package path that owns the needed behavior, but design the user-facing
|
|
93
|
+
settings, collaboration, sharing, team, review, and setup experiences as one
|
|
94
|
+
coherent kit instead of exposing package boundaries in the app.
|
|
86
95
|
|
|
87
|
-
|
|
88
|
-
- Resource-specific mutations and routes.
|
|
89
|
-
- Custom visual systems an app intentionally owns.
|
|
96
|
+
## Foundation Pieces {#foundation-pieces}
|
|
90
97
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
- [UI Primitives](/docs/toolkit-ui) cover shared shadcn-style primitives under
|
|
99
|
+
`@agent-native/toolkit/ui/*`.
|
|
100
|
+
- [App Adapters](/docs/toolkit-app-adapters) show how apps wrap Toolkit pieces
|
|
101
|
+
through local `@/components/*` adapters.
|
|
102
|
+
- [Shell & Hooks](/docs/toolkit-shell-hooks) cover header actions, mobile hooks,
|
|
103
|
+
toasts, and small app-shell helpers.
|
|
104
|
+
- [Component API](/docs/components) remains the lower-level reference for the
|
|
105
|
+
public React exports.
|
|
106
|
+
|
|
107
|
+
## Design Rule {#design-rule}
|
|
108
|
+
|
|
109
|
+
Use a toolkit when the behavior repeats across apps and users expect it to feel
|
|
110
|
+
standard: sharing, settings, teams, comments, history, and agent progress should
|
|
111
|
+
not be slightly different in every template. Keep domain-specific data,
|
|
112
|
+
workflows, labels, and visual styling in the app.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Agent UX Kit"
|
|
3
|
+
description: "Composer, model picker, context chips, approvals, run recovery, progress, and the runs tray."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent UX Kit
|
|
7
|
+
|
|
8
|
+
The Agent UX Kit packages the surfaces that make an app's agent feel trustworthy
|
|
9
|
+
and inspectable: composer, model picker, context chips, approvals, progress,
|
|
10
|
+
run recovery, and the runs tray.
|
|
11
|
+
|
|
12
|
+
<WireframeBlock id="doc-block-toolkit-agent-ux">
|
|
13
|
+
<Screen
|
|
14
|
+
surface="desktop"
|
|
15
|
+
html={
|
|
16
|
+
"<div style='min-height:560px;box-sizing:border-box;padding:26px;display:grid;grid-template-columns:1fr 320px;gap:16px'><main class='wf-card' style='display:flex;flex-direction:column;gap:12px'><h2 style='margin:0'>Ask the agent</h2><div class='wf-box' style='height:250px'>Conversation and native tool widgets</div><div class='wf-card' style='display:flex;flex-direction:column;gap:10px'><span class='wf-muted'>Ask about the current dashboard...</span><div style='display:flex;gap:8px'><span class='wf-pill'>Context: Q3 Forecast</span><span class='wf-pill'>GPT-5</span><span class='wf-pill'>Approval required</span><button class='primary'>Send</button></div></div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Runs tray</strong><div class='wf-box'>Generating report - running</div><div class='wf-box'>Needs approval</div><div class='wf-box'>Recovered run</div></aside></div>"
|
|
17
|
+
}
|
|
18
|
+
/>
|
|
19
|
+
</WireframeBlock>
|
|
20
|
+
|
|
21
|
+
## Pieces {#pieces}
|
|
22
|
+
|
|
23
|
+
| Piece | Purpose |
|
|
24
|
+
| --------------------------------- | ---------------------------------------------------------------------------------- |
|
|
25
|
+
| `<AgentSidebar>` / `<AgentPanel>` | Complete agent surfaces for sidebars, pages, and dialogs. |
|
|
26
|
+
| `<PromptComposer>` | Standard rich composer with attachments, references, pasted text, and voice hooks. |
|
|
27
|
+
| Model picker | Standard model/provider choice in agent settings or composer chrome. |
|
|
28
|
+
| Context chips | Visible route, resource, file, and selection context sent to the agent. |
|
|
29
|
+
| Human approvals | Confirmation gates for sensitive or irreversible operations. |
|
|
30
|
+
| `<RunsTray>` | User-visible background run progress and recovery. |
|
|
31
|
+
| Run recovery | Hydrates dropped/stale foreground and background runs back into the UI. |
|
|
32
|
+
|
|
33
|
+
## UX Standard {#ux-standard}
|
|
34
|
+
|
|
35
|
+
- Show what context the agent will use before the user sends.
|
|
36
|
+
- Model and key setup should link to the Settings Kit.
|
|
37
|
+
- Long-running work belongs in the runs tray, not as a frozen composer spinner.
|
|
38
|
+
- Approval prompts should name the action, data, and risk before proceeding.
|
|
39
|
+
- Recovered runs should be visible and explain what happened.
|
|
40
|
+
|
|
41
|
+
Related docs: [Using Your Agent](/docs/using-your-agent),
|
|
42
|
+
[Human Approval](/docs/human-approval), [Progress](/docs/progress),
|
|
43
|
+
[Native Chat UI](/docs/native-chat-ui).
|
|
@@ -8,6 +8,15 @@ description: "Use app-local wrappers so Toolkit components are reusable without
|
|
|
8
8
|
Every template can expose local UI adapters under `@/components/ui/*` and local
|
|
9
9
|
hook adapters under `@/hooks/*`. Most adapters are intentionally tiny:
|
|
10
10
|
|
|
11
|
+
<WireframeBlock id="doc-block-toolkit-app-adapters">
|
|
12
|
+
<Screen
|
|
13
|
+
surface="desktop"
|
|
14
|
+
html={
|
|
15
|
+
"<div style='min-height:480px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px'><div class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Toolkit primitive</strong><div class='wf-box'>@agent-native/toolkit/ui/button</div><div class='wf-box'>Default behavior and accessibility</div></div><div class='wf-card' style='display:flex;flex-direction:column;gap:10px;border-color:hsl(var(--primary))'><strong>App adapter</strong><div class='wf-box'>@/components/ui/button</div><div class='wf-box'>One stable import path</div></div><div class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>App screens</strong><div class='wf-box'>Settings page</div><div class='wf-box'>Share dialog</div><div class='wf-box'>Command menu</div></div></div>"
|
|
16
|
+
}
|
|
17
|
+
/>
|
|
18
|
+
</WireframeBlock>
|
|
19
|
+
|
|
11
20
|
```tsx
|
|
12
21
|
export * from "@agent-native/toolkit/ui/button";
|
|
13
22
|
```
|
|
@@ -8,6 +8,15 @@ description: "Reusable presence, cursor, selection, and recent-edit UI for colla
|
|
|
8
8
|
`@agent-native/toolkit/collab-ui` contains the presentational collaboration
|
|
9
9
|
pieces that do not own transport or storage:
|
|
10
10
|
|
|
11
|
+
<WireframeBlock id="doc-block-toolkit-collaboration-ui">
|
|
12
|
+
<Screen
|
|
13
|
+
surface="desktop"
|
|
14
|
+
html={
|
|
15
|
+
"<div style='min-height:500px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:1fr 290px;gap:16px'><main class='wf-card' style='position:relative;display:flex;flex-direction:column;gap:12px'><div style='display:flex;align-items:center;gap:8px'><h2 style='margin:0'>Editor canvas</h2><div style='flex:1'></div><span class='wf-pill'>Ava</span><span class='wf-pill'>Agent</span></div><div class='wf-box' style='height:92px;border-color:hsl(var(--primary))'>Remote selection ring</div><div class='wf-box' style='height:220px'>Recent edit highlight</div><span class='wf-pill' style='position:absolute;right:38px;top:205px'>Sam cursor</span></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Display layer</strong><div class='wf-box'>PresenceBar</div><div class='wf-box'>LiveCursorOverlay</div><div class='wf-box'>RecentEditHighlights</div><div class='wf-box'>AgentPresenceChip</div></aside></div>"
|
|
16
|
+
}
|
|
17
|
+
/>
|
|
18
|
+
</WireframeBlock>
|
|
19
|
+
|
|
11
20
|
```tsx
|
|
12
21
|
import {
|
|
13
22
|
AgentPresenceChip,
|
|
@@ -30,6 +39,9 @@ import { PresenceBar } from "@agent-native/toolkit/collab-ui";
|
|
|
30
39
|
Existing imports from `@agent-native/core/client` still work because core
|
|
31
40
|
re-exports these Toolkit components as compatibility shims.
|
|
32
41
|
|
|
42
|
+
See the [Collaboration Kit](/docs/toolkit-collaboration) for the full runtime,
|
|
43
|
+
presence, and undo contract.
|
|
44
|
+
|
|
33
45
|
## Responsibilities {#responsibilities}
|
|
34
46
|
|
|
35
47
|
Toolkit owns:
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Collaboration Kit"
|
|
3
|
+
description: "Realtime editing, presence, live cursors, recent edit highlights, and undo primitives."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Collaboration Kit
|
|
7
|
+
|
|
8
|
+
The Collaboration Kit gives humans and agents the same live workspace:
|
|
9
|
+
collaborative documents, awareness, presence avatars, live cursors, recent edit
|
|
10
|
+
highlights, and undo that respects both CRDT-backed edits and app-local
|
|
11
|
+
operations.
|
|
12
|
+
|
|
13
|
+
<WireframeBlock id="doc-block-toolkit-collaboration">
|
|
14
|
+
<Screen
|
|
15
|
+
surface="desktop"
|
|
16
|
+
html={
|
|
17
|
+
"<div style='min-height:560px;box-sizing:border-box;padding:26px;display:grid;grid-template-columns:1fr 260px;gap:16px'><main class='wf-card' style='position:relative;display:flex;flex-direction:column;gap:12px'><div style='display:flex;align-items:center;gap:8px'><h2 style='margin:0'>Launch plan</h2><div style='flex:1'></div><span class='wf-pill'>Sam</span><span class='wf-pill'>Agent</span></div><div class='wf-box' style='height:84px'>Paragraph edited by Agent</div><div class='wf-box' style='height:84px;border-color:hsl(var(--primary))'>Live selection highlight</div><div class='wf-box' style='height:210px'>Editor canvas</div><span class='wf-pill' style='position:absolute;right:42px;top:190px'>Maya cursor</span></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:12px'><strong>Collaboration</strong><div class='wf-box'>PresenceBar</div><div class='wf-box'>RecentEditHighlights</div><div class='wf-box'>Undo: 3 grouped edits</div><button>Follow Maya</button><button class='primary'>Restore local op</button></aside></div>"
|
|
18
|
+
}
|
|
19
|
+
/>
|
|
20
|
+
</WireframeBlock>
|
|
21
|
+
|
|
22
|
+
## Pieces {#pieces}
|
|
23
|
+
|
|
24
|
+
| Piece | Purpose |
|
|
25
|
+
| ------------------------ | ----------------------------------------------------------------------------------- |
|
|
26
|
+
| `createCollabPlugin()` | Server plugin that persists and syncs a collaborative resource. |
|
|
27
|
+
| `useCollaborativeDoc()` | Client hook for Yjs document, awareness, sync state, and agent presence. |
|
|
28
|
+
| `usePresence()` | Reads and publishes awareness fields such as cursor, selection, viewport, and mode. |
|
|
29
|
+
| `<PresenceBar>` | Shared avatar and agent-presence strip. |
|
|
30
|
+
| `<LiveCursorOverlay>` | Cursor labels over canvas or editor coordinates. |
|
|
31
|
+
| `<RecentEditHighlights>` | Fading highlights for human or agent edits. |
|
|
32
|
+
| `useCollabUndo()` | Yjs undo manager lifecycle for CRDT-backed surfaces. |
|
|
33
|
+
| `useLocalOpUndo()` | Inverse-operation undo for non-Yjs local operations. |
|
|
34
|
+
|
|
35
|
+
## Server And Client Shape {#server-and-client-shape}
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// server/plugins/collab.ts
|
|
39
|
+
import { createCollabPlugin } from "@agent-native/core/server";
|
|
40
|
+
|
|
41
|
+
export default createCollabPlugin({
|
|
42
|
+
resourceType: "document",
|
|
43
|
+
table: "documents",
|
|
44
|
+
contentColumn: "content",
|
|
45
|
+
});
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import {
|
|
50
|
+
useCollaborativeDoc,
|
|
51
|
+
usePresence,
|
|
52
|
+
useCollabUndo,
|
|
53
|
+
} from "@agent-native/core/client/collab";
|
|
54
|
+
import {
|
|
55
|
+
LiveCursorOverlay,
|
|
56
|
+
PresenceBar,
|
|
57
|
+
RecentEditHighlights,
|
|
58
|
+
} from "@agent-native/toolkit/collab-ui";
|
|
59
|
+
|
|
60
|
+
const collab = useCollaborativeDoc({ docId, user });
|
|
61
|
+
const presence = usePresence(collab.awareness, collab.localClientId);
|
|
62
|
+
const undo = useCollabUndo(collab.ydoc, { trackedOrigins: [user.email] });
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## UX Standard {#ux-standard}
|
|
66
|
+
|
|
67
|
+
- Show collaborators in the page header, not buried in a debug panel.
|
|
68
|
+
- Render the agent as a first-class participant when it edits.
|
|
69
|
+
- Highlight recent remote or agent edits long enough for users to orient.
|
|
70
|
+
- Keep undo local and predictable: CRDT undo for document operations, local-op
|
|
71
|
+
undo for app-specific commands.
|
|
72
|
+
|
|
73
|
+
Related docs: [Realtime Collaboration](/docs/real-time-collaboration),
|
|
74
|
+
[Component API](/docs/components#collab-presence).
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Command & Navigation Kit"
|
|
3
|
+
description: "Command menu, deep links, standard routes, and app shell navigation patterns."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Command & Navigation Kit
|
|
7
|
+
|
|
8
|
+
The Command & Navigation Kit makes apps feel consistent under keyboard, sidebar,
|
|
9
|
+
URL, and agent control. It covers the command menu, deep links, standard app
|
|
10
|
+
routes, `navigate` actions, `view-screen`, and shell conventions.
|
|
11
|
+
|
|
12
|
+
<WireframeBlock id="doc-block-toolkit-command-navigation">
|
|
13
|
+
<Screen
|
|
14
|
+
surface="desktop"
|
|
15
|
+
html={
|
|
16
|
+
"<div style='min-height:540px;box-sizing:border-box;padding:28px;display:grid;grid-template-columns:230px 1fr;gap:18px'><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>App</strong><div class='wf-pill'>Home</div><div class='wf-pill'>Documents</div><div class='wf-pill'>Team</div><div class='wf-pill'>Settings</div></aside><main class='wf-card' style='display:flex;align-items:center;justify-content:center'><div class='wf-card' style='width:min(520px,100%);display:flex;flex-direction:column;gap:10px'><strong>Command menu</strong><div class='wf-box'>Open Q3 Forecast</div><div class='wf-box'>Share current resource</div><div class='wf-box'>Go to Settings: Connections</div><div class='wf-box'>Ask agent about this page</div></div></main></div>"
|
|
17
|
+
}
|
|
18
|
+
/>
|
|
19
|
+
</WireframeBlock>
|
|
20
|
+
|
|
21
|
+
## Pieces {#pieces}
|
|
22
|
+
|
|
23
|
+
| Piece | Purpose |
|
|
24
|
+
| -------------------------- | --------------------------------------------------------------------------- |
|
|
25
|
+
| `<CommandMenu>` | Reusable command palette with docs, changelog, actions, and agent fallback. |
|
|
26
|
+
| `useCommandMenuShortcut()` | Standard keyboard shortcut wiring. |
|
|
27
|
+
| `buildDeepLink()` | Server helper for action results that open the app focused on a resource. |
|
|
28
|
+
| `createNavigateAction()` | Generic agent-callable navigation action factory. |
|
|
29
|
+
| `createViewScreenAction()` | Generic current-screen action factory. |
|
|
30
|
+
| Route helpers | Standard settings, team, resource, and open-route builders. |
|
|
31
|
+
| App shell patterns | Persistent sidebar/header layout and route conventions. |
|
|
32
|
+
|
|
33
|
+
## API {#api}
|
|
34
|
+
|
|
35
|
+
Client code imports the command menu and route helpers from the client kit:
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import {
|
|
39
|
+
CommandMenu,
|
|
40
|
+
buildResourceRoute,
|
|
41
|
+
buildSettingsRoute,
|
|
42
|
+
useCommandMenuShortcut,
|
|
43
|
+
} from "@agent-native/core/client/command-navigation";
|
|
44
|
+
|
|
45
|
+
const settingsUrl = buildSettingsRoute("connections");
|
|
46
|
+
const documentUrl = buildResourceRoute("documents", documentId);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Action code uses the server-safe kit:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import {
|
|
53
|
+
buildDeepLink,
|
|
54
|
+
createNavigateAction,
|
|
55
|
+
createViewScreenAction,
|
|
56
|
+
} from "@agent-native/core/command-navigation";
|
|
57
|
+
|
|
58
|
+
export const navigate = createNavigateAction();
|
|
59
|
+
export const viewScreen = createViewScreenAction({
|
|
60
|
+
extraStateKeys: ["selected-resource"],
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
link: {
|
|
65
|
+
label: "Open dashboard",
|
|
66
|
+
url: buildDeepLink({
|
|
67
|
+
app: "analytics",
|
|
68
|
+
view: "dashboard",
|
|
69
|
+
params: { dashboardId },
|
|
70
|
+
}),
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
For `/_agent-native/open`, apps can provide a typed route map instead of
|
|
76
|
+
hand-parsing query strings:
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { createStandardOpenPathResolver } from "@agent-native/core/navigation";
|
|
80
|
+
|
|
81
|
+
export const resolveOpenPath = createStandardOpenPathResolver({
|
|
82
|
+
dashboard: ({ dashboardId }) => `/dashboards/${dashboardId}`,
|
|
83
|
+
settings: "/settings",
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Route Standard {#route-standard}
|
|
88
|
+
|
|
89
|
+
Use a small predictable route set:
|
|
90
|
+
|
|
91
|
+
| Route | Purpose |
|
|
92
|
+
| --------------------------- | -------------------------------------------------------------------------- |
|
|
93
|
+
| `/` | Primary app surface. |
|
|
94
|
+
| `/settings` | Standard settings tabs. |
|
|
95
|
+
| `/team` or `/settings#team` | Team management. |
|
|
96
|
+
| Resource routes | `/documents/:id`, `/dashboards/:id`, or equivalent focused resource pages. |
|
|
97
|
+
|
|
98
|
+
## UX Standard {#ux-standard}
|
|
99
|
+
|
|
100
|
+
- Command menu entries should map to real app routes or actions.
|
|
101
|
+
- Deep links carry pointers, not secret payloads.
|
|
102
|
+
- The agent reads `view-screen` before acting on the current page.
|
|
103
|
+
- The app shell should not remount when users navigate between app routes.
|
|
104
|
+
|
|
105
|
+
Related docs: [Routing](/docs/routing), [Context Awareness](/docs/context-awareness),
|
|
106
|
+
[External Agents](/docs/external-agents).
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Comments & Review Kit"
|
|
3
|
+
description: "Inline comments, annotations, mentions, resolved threads, and review status surfaces."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comments & Review Kit
|
|
7
|
+
|
|
8
|
+
The Comments & Review Kit gives collaborative apps a standard review layer:
|
|
9
|
+
inline comments, canvas annotations, mentions, replies, resolved threads, and
|
|
10
|
+
status such as draft, review, approved, or needs changes.
|
|
11
|
+
|
|
12
|
+
<WireframeBlock id="doc-block-toolkit-comments-review">
|
|
13
|
+
<Screen
|
|
14
|
+
surface="desktop"
|
|
15
|
+
html={
|
|
16
|
+
"<div style='min-height:560px;box-sizing:border-box;padding:26px;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'>Review draft</h2><span class='wf-pill'>In review</span><div style='flex:1'></div><button class='primary'>Approve</button></div><div class='wf-box' style='height:110px'>Inline comment anchor</div><div class='wf-box' style='height:220px'>Annotated wireframe region</div></main><aside class='wf-card' style='display:flex;flex-direction:column;gap:10px'><strong>Comments</strong><div class='wf-box'>@Maya can we tighten this?</div><div class='wf-box'>Agent replied with fix</div><div class='wf-box'>Resolved: CTA copy</div><button>Add comment</button></aside></div>"
|
|
17
|
+
}
|
|
18
|
+
/>
|
|
19
|
+
</WireframeBlock>
|
|
20
|
+
|
|
21
|
+
## Pieces {#pieces}
|
|
22
|
+
|
|
23
|
+
| Piece | Purpose |
|
|
24
|
+
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| `registerReviewableResource()` | Register a resource type and optional access resolver for review actions. |
|
|
26
|
+
| Comment actions | `list-review-comments`, `create-review-comment`, `reply-review-comment`, `resolve-review-thread`, and `delete-review-comment`. |
|
|
27
|
+
| Feedback actions | `get-review-feedback` and `consume-review-feedback` for agent-readable review queues. |
|
|
28
|
+
| Review status action | `set-review-status` for draft, in review, approved, and changes requested states. |
|
|
29
|
+
| `ReviewThreadPanel` | Drop-in React panel with comment composer, replies, resolve, and delete controls. |
|
|
30
|
+
| `ReviewStatusBadge` | Controlled status badge for app headers, sidebars, and review panels. |
|
|
31
|
+
| Review hooks | `useReviewComments()`, `useCreateReviewComment()`, `useReplyReviewComment()`, `useResolveReviewThread()`, `useDeleteReviewComment()`, and `useSetReviewStatus()`. |
|
|
32
|
+
| Mentions helpers | `extractReviewMentions()` and `normalizeReviewMentions()` for `@[Label](mailto:email@example.com)` tokens. |
|
|
33
|
+
|
|
34
|
+
## Shared Model {#shared-model}
|
|
35
|
+
|
|
36
|
+
Comments are resource-scoped, access-scoped, and agent-readable. The UI and
|
|
37
|
+
agent use the same actions to create, resolve, and list threads. Apps can
|
|
38
|
+
specialize anchor shapes, but the common model preserves:
|
|
39
|
+
|
|
40
|
+
- `resourceType` and `resourceId`
|
|
41
|
+
- `author`, `body`, `status`, and timestamps
|
|
42
|
+
- `parentCommentId` for replies
|
|
43
|
+
- optional `mentions`
|
|
44
|
+
- optional `anchor` or `resolutionTarget`
|
|
45
|
+
|
|
46
|
+
## Register A Resource {#register-resource}
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { registerReviewableResource } from "@agent-native/core/comments-review";
|
|
50
|
+
|
|
51
|
+
registerReviewableResource({
|
|
52
|
+
type: "document",
|
|
53
|
+
async resolveAccess(resourceId, ctx) {
|
|
54
|
+
return {
|
|
55
|
+
role: "owner",
|
|
56
|
+
ownerEmail: ctx?.userEmail,
|
|
57
|
+
orgId: ctx?.orgId,
|
|
58
|
+
visibility: "private",
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If the resource is already registered with the Sharing Kit, the review actions
|
|
65
|
+
reuse that access model. Add a review registration when the app needs a custom
|
|
66
|
+
access resolver or wants to make the resource type explicit in setup code.
|
|
67
|
+
|
|
68
|
+
## UI Usage {#ui-usage}
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
import { ReviewThreadPanel } from "@agent-native/core/client/comments-review";
|
|
72
|
+
|
|
73
|
+
export function DocumentReview({ documentId }: { documentId: string }) {
|
|
74
|
+
return (
|
|
75
|
+
<ReviewThreadPanel
|
|
76
|
+
resourceType="document"
|
|
77
|
+
resourceId={documentId}
|
|
78
|
+
targetId="intro-section"
|
|
79
|
+
/>
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The `anchor` field is intentionally `unknown`: editors, canvases, diagrams, and
|
|
85
|
+
documents can store the shape they need while still using the shared review
|
|
86
|
+
actions and thread UI.
|
|
87
|
+
|
|
88
|
+
## UX Standard {#ux-standard}
|
|
89
|
+
|
|
90
|
+
- Comments live next to the thing being reviewed, not only in chat.
|
|
91
|
+
- Mentions resolve against team membership.
|
|
92
|
+
- Resolved threads remain visible in history.
|
|
93
|
+
- Agents can read open review feedback before changing code or content.
|
|
94
|
+
- `consumedAt` and `resolved` are separate. An agent can consume a piece of
|
|
95
|
+
feedback without closing the reviewer-visible thread.
|
|
96
|
+
|
|
97
|
+
Related docs: [Plan](/docs/template-plan), [Content](/docs/template-content),
|
|
98
|
+
[Sharing Kit](/docs/toolkit-sharing), [History Kit](/docs/toolkit-history).
|