@agent-native/core 0.90.2 → 0.90.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +12 -0
- 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/registry.ts +23 -16
- package/corpus/core/src/agent/production-agent.ts +37 -6
- 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 +145 -0
- package/corpus/core/src/client/history/index.ts +18 -0
- package/corpus/core/src/client/history/use-history.ts +86 -0
- package/corpus/core/src/client/index.ts +76 -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 +25 -0
- package/corpus/core/src/client/review/use-review.ts +114 -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 +89 -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 +27 -0
- package/corpus/core/src/history/registry.ts +99 -0
- package/corpus/core/src/history/store.ts +348 -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 +38 -0
- package/corpus/core/src/review/actions/create-review-comment.ts +107 -0
- package/corpus/core/src/review/actions/delete-review-comment.ts +55 -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 +60 -0
- package/corpus/core/src/review/actions/set-review-status.ts +58 -0
- package/corpus/core/src/review/index.ts +36 -0
- package/corpus/core/src/review/mentions.ts +44 -0
- package/corpus/core/src/review/registry.ts +99 -0
- package/corpus/core/src/review/store.ts +687 -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-engine-api-key-route.ts +5 -0
- package/corpus/core/src/server/credential-provider.ts +108 -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/brain/app/routes/settings.tsx +2 -2
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +32 -6
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +120 -40
- package/corpus/templates/calendar/app/hooks/use-people.ts +55 -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-zoom-stays-selected-after-connecting-it-from-a-draft-event.md +6 -0
- 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/import-loom-recording.ts +1 -0
- package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +1 -0
- package/corpus/templates/clips/actions/request-transcript.ts +31 -0
- package/corpus/templates/clips/actions/set-thumbnail.ts +2 -0
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +2 -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/routes/r.$recordingId.tsx +9 -3
- 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-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-sharing-public-clips-now-stays-focused-on-the-normal-link-wi.md +6 -0
- 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 +40 -3
- 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/updater.ts +25 -2
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +7 -0
- 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/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/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/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +22 -14
- 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/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 +24 -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 +46 -0
- package/dist/client/history/use-history.d.ts.map +1 -0
- package/dist/client/history/use-history.js +18 -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 +68 -0
- package/dist/client/review/use-review.d.ts.map +1 -0
- package/dist/client/review/use-review.js +22 -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/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 +65 -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 +61 -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 +265 -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/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/resources/handlers.d.ts +2 -2
- package/dist/review/actions/consume-review-feedback.d.ts +9 -0
- package/dist/review/actions/consume-review-feedback.d.ts.map +1 -0
- package/dist/review/actions/consume-review-feedback.js +29 -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 +10 -0
- package/dist/review/actions/delete-review-comment.d.ts.map +1 -0
- package/dist/review/actions/delete-review-comment.js +45 -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 +11 -0
- package/dist/review/actions/resolve-review-thread.d.ts.map +1 -0
- package/dist/review/actions/resolve-review-thread.js +46 -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 +61 -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 +558 -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/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-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 +26 -0
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +82 -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
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Visibility } from "../sharing/schema.js";
|
|
2
|
+
|
|
3
|
+
export type ReviewResourceRole = "viewer" | "editor" | "admin" | "owner";
|
|
4
|
+
export type ReviewCommentKind =
|
|
5
|
+
| "comment"
|
|
6
|
+
| "annotation"
|
|
7
|
+
| "correction"
|
|
8
|
+
| "question"
|
|
9
|
+
| "decision"
|
|
10
|
+
| "review";
|
|
11
|
+
export type ReviewCommentStatus = "open" | "resolved" | "deleted";
|
|
12
|
+
export type ReviewResolutionTarget = "agent" | "human";
|
|
13
|
+
export type ReviewStatus =
|
|
14
|
+
| "draft"
|
|
15
|
+
| "in_review"
|
|
16
|
+
| "approved"
|
|
17
|
+
| "changes_requested";
|
|
18
|
+
export type ReviewActorKind = "human" | "agent" | "import" | "system";
|
|
19
|
+
|
|
20
|
+
export interface ReviewResourceAccess {
|
|
21
|
+
role: ReviewResourceRole;
|
|
22
|
+
ownerEmail?: string | null;
|
|
23
|
+
orgId?: string | null;
|
|
24
|
+
visibility?: Visibility | null;
|
|
25
|
+
resource?: unknown;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface ReviewResourceContext {
|
|
29
|
+
userEmail?: string | null;
|
|
30
|
+
orgId?: string | null;
|
|
31
|
+
caller?: string | null;
|
|
32
|
+
request?: unknown;
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface ReviewableResourceRegistration {
|
|
37
|
+
type: string;
|
|
38
|
+
displayName?: string;
|
|
39
|
+
resolveAccess?: (
|
|
40
|
+
resourceId: string,
|
|
41
|
+
ctx?: ReviewResourceContext,
|
|
42
|
+
) => Promise<ReviewResourceAccess | null> | ReviewResourceAccess | null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface ReviewMention {
|
|
46
|
+
label: string;
|
|
47
|
+
email?: string | null;
|
|
48
|
+
id?: string | null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface ReviewComment {
|
|
52
|
+
id: string;
|
|
53
|
+
resourceType: string;
|
|
54
|
+
resourceId: string;
|
|
55
|
+
threadId: string;
|
|
56
|
+
parentCommentId: string | null;
|
|
57
|
+
targetId: string | null;
|
|
58
|
+
kind: ReviewCommentKind;
|
|
59
|
+
status: ReviewCommentStatus;
|
|
60
|
+
anchor: unknown | null;
|
|
61
|
+
body: string;
|
|
62
|
+
authorEmail: string | null;
|
|
63
|
+
authorName: string | null;
|
|
64
|
+
createdBy: ReviewActorKind;
|
|
65
|
+
resolutionTarget: ReviewResolutionTarget | null;
|
|
66
|
+
mentions: ReviewMention[];
|
|
67
|
+
ownerEmail: string | null;
|
|
68
|
+
orgId: string | null;
|
|
69
|
+
visibility: Visibility;
|
|
70
|
+
resolvedBy: string | null;
|
|
71
|
+
resolvedAt: string | null;
|
|
72
|
+
consumedAt: string | null;
|
|
73
|
+
deletedBy: string | null;
|
|
74
|
+
deletedAt: string | null;
|
|
75
|
+
createdAt: string;
|
|
76
|
+
updatedAt: string;
|
|
77
|
+
metadata: Record<string, unknown> | null;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ReviewStatusEntry {
|
|
81
|
+
id: string;
|
|
82
|
+
resourceType: string;
|
|
83
|
+
resourceId: string;
|
|
84
|
+
status: ReviewStatus;
|
|
85
|
+
note: string | null;
|
|
86
|
+
updatedBy: string | null;
|
|
87
|
+
updatedAt: string;
|
|
88
|
+
ownerEmail: string | null;
|
|
89
|
+
orgId: string | null;
|
|
90
|
+
visibility: Visibility;
|
|
91
|
+
metadata: Record<string, unknown> | null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface ReviewScope {
|
|
95
|
+
userEmail?: string | null;
|
|
96
|
+
orgId?: string | null;
|
|
97
|
+
}
|
|
@@ -606,6 +606,60 @@ export async function mergeCoreSharingActions(
|
|
|
606
606
|
() => import("../audit/actions/list-audit-events.js"),
|
|
607
607
|
],
|
|
608
608
|
["get-audit-event", () => import("../audit/actions/get-audit-event.js")],
|
|
609
|
+
// History kit — reusable version snapshots and restore surface.
|
|
610
|
+
[
|
|
611
|
+
"create-resource-version",
|
|
612
|
+
() => import("../history/actions/create-resource-version.js"),
|
|
613
|
+
],
|
|
614
|
+
[
|
|
615
|
+
"list-resource-versions",
|
|
616
|
+
() => import("../history/actions/list-resource-versions.js"),
|
|
617
|
+
],
|
|
618
|
+
[
|
|
619
|
+
"get-resource-version",
|
|
620
|
+
() => import("../history/actions/get-resource-version.js"),
|
|
621
|
+
],
|
|
622
|
+
[
|
|
623
|
+
"restore-resource-version",
|
|
624
|
+
() => import("../history/actions/restore-resource-version.js"),
|
|
625
|
+
],
|
|
626
|
+
[
|
|
627
|
+
"list-resource-history",
|
|
628
|
+
() => import("../history/actions/list-resource-history.js"),
|
|
629
|
+
],
|
|
630
|
+
// Comments/review kit — reusable inline comments, feedback, and review status.
|
|
631
|
+
[
|
|
632
|
+
"list-review-comments",
|
|
633
|
+
() => import("../review/actions/list-review-comments.js"),
|
|
634
|
+
],
|
|
635
|
+
[
|
|
636
|
+
"create-review-comment",
|
|
637
|
+
() => import("../review/actions/create-review-comment.js"),
|
|
638
|
+
],
|
|
639
|
+
[
|
|
640
|
+
"reply-review-comment",
|
|
641
|
+
() => import("../review/actions/reply-review-comment.js"),
|
|
642
|
+
],
|
|
643
|
+
[
|
|
644
|
+
"resolve-review-thread",
|
|
645
|
+
() => import("../review/actions/resolve-review-thread.js"),
|
|
646
|
+
],
|
|
647
|
+
[
|
|
648
|
+
"delete-review-comment",
|
|
649
|
+
() => import("../review/actions/delete-review-comment.js"),
|
|
650
|
+
],
|
|
651
|
+
[
|
|
652
|
+
"consume-review-feedback",
|
|
653
|
+
() => import("../review/actions/consume-review-feedback.js"),
|
|
654
|
+
],
|
|
655
|
+
[
|
|
656
|
+
"get-review-feedback",
|
|
657
|
+
() => import("../review/actions/get-review-feedback.js"),
|
|
658
|
+
],
|
|
659
|
+
[
|
|
660
|
+
"set-review-status",
|
|
661
|
+
() => import("../review/actions/set-review-status.js"),
|
|
662
|
+
],
|
|
609
663
|
// Org service tokens (CI credentials, e.g. PLAN_RECAP_TOKEN). Mint/revoke
|
|
610
664
|
// are toolCallable:false — preserved via preserveActionFlags below.
|
|
611
665
|
[
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import { getOrgContext } from "../org/context.js";
|
|
14
14
|
import { deleteAppSecret, writeAppSecret } from "../secrets/storage.js";
|
|
15
15
|
import { getSession } from "./auth.js";
|
|
16
|
+
import { clearProviderCredentialAuthFailure } from "./credential-provider.js";
|
|
16
17
|
import { readBody } from "./h3-helpers.js";
|
|
17
18
|
|
|
18
19
|
const PROVIDER_TO_ENV_VAR = new Map(
|
|
@@ -202,6 +203,10 @@ export function createAgentEngineApiKeyHandler() {
|
|
|
202
203
|
scope: resolved.target.scope,
|
|
203
204
|
scopeId: resolved.target.scopeId,
|
|
204
205
|
});
|
|
206
|
+
await clearProviderCredentialAuthFailure({
|
|
207
|
+
key: payload.key,
|
|
208
|
+
value: payload.value,
|
|
209
|
+
});
|
|
205
210
|
}
|
|
206
211
|
|
|
207
212
|
if (payload.baseUrl) {
|
|
@@ -720,6 +720,114 @@ export async function clearBuilderCredentialAuthFailure(creds: {
|
|
|
720
720
|
}
|
|
721
721
|
}
|
|
722
722
|
|
|
723
|
+
const PROVIDER_AUTH_FAILURE_SETTING_PREFIX = "provider-auth-failure:";
|
|
724
|
+
|
|
725
|
+
export interface ProviderCredentialAuthFailure {
|
|
726
|
+
fingerprint: string;
|
|
727
|
+
key: string;
|
|
728
|
+
message: string;
|
|
729
|
+
status?: number;
|
|
730
|
+
code?: string;
|
|
731
|
+
at: number;
|
|
732
|
+
ownerEmail?: string | null;
|
|
733
|
+
orgId?: string | null;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
export function providerCredentialFingerprint(
|
|
737
|
+
key?: string | null,
|
|
738
|
+
value?: string | null,
|
|
739
|
+
): string | null {
|
|
740
|
+
const normalizedKey = key?.trim().toUpperCase();
|
|
741
|
+
const normalizedValue = value?.trim();
|
|
742
|
+
if (!normalizedKey || !normalizedValue) return null;
|
|
743
|
+
return createHash("sha256")
|
|
744
|
+
.update(normalizedKey)
|
|
745
|
+
.update("\0")
|
|
746
|
+
.update(normalizedValue)
|
|
747
|
+
.digest("hex")
|
|
748
|
+
.slice(0, 24);
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
function providerAuthFailureSettingKey(fingerprint: string): string {
|
|
752
|
+
return `${PROVIDER_AUTH_FAILURE_SETTING_PREFIX}${fingerprint}`;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
export async function getProviderCredentialAuthFailure(opts: {
|
|
756
|
+
key?: string | null;
|
|
757
|
+
value?: string | null;
|
|
758
|
+
}): Promise<ProviderCredentialAuthFailure | null> {
|
|
759
|
+
const key = opts.key?.trim().toUpperCase() ?? "";
|
|
760
|
+
const fingerprint = providerCredentialFingerprint(key, opts.value);
|
|
761
|
+
if (!fingerprint) return null;
|
|
762
|
+
try {
|
|
763
|
+
const { getSetting } = await import("../settings/store.js");
|
|
764
|
+
const row = await getSetting(providerAuthFailureSettingKey(fingerprint));
|
|
765
|
+
if (!row) return null;
|
|
766
|
+
if (row.fingerprint !== fingerprint) return null;
|
|
767
|
+
return {
|
|
768
|
+
fingerprint,
|
|
769
|
+
key:
|
|
770
|
+
typeof row.key === "string" && row.key
|
|
771
|
+
? row.key
|
|
772
|
+
: key || "UNKNOWN_PROVIDER_KEY",
|
|
773
|
+
message:
|
|
774
|
+
typeof row.message === "string" && row.message
|
|
775
|
+
? row.message
|
|
776
|
+
: "The model provider rejected the saved API key.",
|
|
777
|
+
status: typeof row.status === "number" ? row.status : undefined,
|
|
778
|
+
code: typeof row.code === "string" ? row.code : undefined,
|
|
779
|
+
at: typeof row.at === "number" ? row.at : Date.now(),
|
|
780
|
+
ownerEmail:
|
|
781
|
+
typeof row.ownerEmail === "string" ? row.ownerEmail : undefined,
|
|
782
|
+
orgId: typeof row.orgId === "string" ? row.orgId : undefined,
|
|
783
|
+
};
|
|
784
|
+
} catch {
|
|
785
|
+
return null;
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
export async function recordProviderCredentialAuthFailure(opts: {
|
|
790
|
+
key?: string | null;
|
|
791
|
+
value?: string | null;
|
|
792
|
+
status?: number;
|
|
793
|
+
code?: string;
|
|
794
|
+
message?: string;
|
|
795
|
+
}): Promise<void> {
|
|
796
|
+
try {
|
|
797
|
+
const key = opts.key?.trim().toUpperCase() ?? "";
|
|
798
|
+
const value = opts.value?.trim();
|
|
799
|
+
const fingerprint = providerCredentialFingerprint(key, value);
|
|
800
|
+
if (!fingerprint) return;
|
|
801
|
+
const { putSetting } = await import("../settings/store.js");
|
|
802
|
+
await putSetting(providerAuthFailureSettingKey(fingerprint), {
|
|
803
|
+
fingerprint,
|
|
804
|
+
key,
|
|
805
|
+
message: opts.message || "The model provider rejected the saved API key.",
|
|
806
|
+
...(typeof opts.status === "number" && { status: opts.status }),
|
|
807
|
+
...(opts.code && { code: opts.code }),
|
|
808
|
+
at: Date.now(),
|
|
809
|
+
ownerEmail: getRequestUserEmail() ?? null,
|
|
810
|
+
orgId: getRequestOrgId() ?? null,
|
|
811
|
+
});
|
|
812
|
+
} catch {
|
|
813
|
+
// Best-effort marker only; the chat error is still returned to the user.
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
export async function clearProviderCredentialAuthFailure(opts: {
|
|
818
|
+
key?: string | null;
|
|
819
|
+
value?: string | null;
|
|
820
|
+
}): Promise<void> {
|
|
821
|
+
const fingerprint = providerCredentialFingerprint(opts.key, opts.value);
|
|
822
|
+
if (!fingerprint) return;
|
|
823
|
+
try {
|
|
824
|
+
const { deleteSetting } = await import("../settings/store.js");
|
|
825
|
+
await deleteSetting(providerAuthFailureSettingKey(fingerprint));
|
|
826
|
+
} catch {
|
|
827
|
+
// A stale failure marker should not block writing or using fresh keys.
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
|
|
723
831
|
/**
|
|
724
832
|
* Write Builder credentials to `app_secrets`.
|
|
725
833
|
*
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export {
|
|
2
|
+
registerOnboardingStep,
|
|
3
|
+
listOnboardingSteps,
|
|
4
|
+
createOnboardingPlugin,
|
|
5
|
+
defaultOnboardingPlugin,
|
|
6
|
+
registerDefaultOnboardingSteps,
|
|
7
|
+
type OnboardingFormField,
|
|
8
|
+
type OnboardingMethod,
|
|
9
|
+
type OnboardingMethodBadge,
|
|
10
|
+
type OnboardingPluginOptions,
|
|
11
|
+
type OnboardingStep,
|
|
12
|
+
type OnboardingStepStatus,
|
|
13
|
+
} from "../onboarding/index.js";
|
|
14
|
+
export {
|
|
15
|
+
deleteAppSecret,
|
|
16
|
+
getAppSecretMeta,
|
|
17
|
+
getRequiredSecret,
|
|
18
|
+
last4,
|
|
19
|
+
listAppSecretsForScope,
|
|
20
|
+
listRequiredSecrets,
|
|
21
|
+
maybeRegisterSecretOnboardingStep,
|
|
22
|
+
readAppSecret,
|
|
23
|
+
readAppSecretMeta,
|
|
24
|
+
registerRequiredSecret,
|
|
25
|
+
resolveKeyReferences,
|
|
26
|
+
validateUrlAllowlist,
|
|
27
|
+
writeAppSecret,
|
|
28
|
+
type ReadSecretResult,
|
|
29
|
+
type RegisteredSecret,
|
|
30
|
+
type SecretKind,
|
|
31
|
+
type SecretMeta,
|
|
32
|
+
type SecretRef,
|
|
33
|
+
type SecretScope,
|
|
34
|
+
type SecretValidator,
|
|
35
|
+
type ValidatorResult,
|
|
36
|
+
type WriteSecretArgs,
|
|
37
|
+
} from "../secrets/index.js";
|
|
38
|
+
export {
|
|
39
|
+
WORKSPACE_CONNECTION_PROVIDERS,
|
|
40
|
+
defineWorkspaceConnectionProvider,
|
|
41
|
+
getWorkspaceConnectionProvider,
|
|
42
|
+
isWorkspaceConnectionProviderId,
|
|
43
|
+
listWorkspaceConnectionProviders,
|
|
44
|
+
listWorkspaceConnectionProvidersForCapability,
|
|
45
|
+
listWorkspaceConnectionProvidersForTemplate,
|
|
46
|
+
workspaceConnectionProviderSupports,
|
|
47
|
+
type ListWorkspaceConnectionProvidersOptions,
|
|
48
|
+
type WorkspaceConnectionCapability,
|
|
49
|
+
type WorkspaceConnectionCredentialKey,
|
|
50
|
+
type WorkspaceConnectionProvider,
|
|
51
|
+
type WorkspaceConnectionProviderId,
|
|
52
|
+
type WorkspaceConnectionTemplateUse,
|
|
53
|
+
} from "../connections/index.js";
|
|
54
|
+
export {
|
|
55
|
+
deleteWorkspaceConnection,
|
|
56
|
+
getWorkspaceConnection,
|
|
57
|
+
listWorkspaceConnectionProviderCatalogForApp,
|
|
58
|
+
listWorkspaceConnectionGrants,
|
|
59
|
+
listWorkspaceConnections,
|
|
60
|
+
listWorkspaceConnectionsForApp,
|
|
61
|
+
markWorkspaceConnectionUsed,
|
|
62
|
+
resolveWorkspaceConnectionCredentialForApp,
|
|
63
|
+
resolveWorkspaceConnectionCredentialsForApp,
|
|
64
|
+
resolveWorkspaceConnectionForApp,
|
|
65
|
+
revokeWorkspaceConnectionGrant,
|
|
66
|
+
summarizeWorkspaceConnectionProviderForApp,
|
|
67
|
+
summarizeWorkspaceConnectionProviderReadiness,
|
|
68
|
+
upsertWorkspaceConnection,
|
|
69
|
+
upsertWorkspaceConnectionGrant,
|
|
70
|
+
type ListWorkspaceConnectionProviderCatalogForAppOptions,
|
|
71
|
+
type ResolvedWorkspaceConnectionForApp,
|
|
72
|
+
type ResolveWorkspaceConnectionForAppOptions,
|
|
73
|
+
type SerializedWorkspaceConnection,
|
|
74
|
+
type SerializedWorkspaceConnectionGrant,
|
|
75
|
+
type SummarizeWorkspaceConnectionProviderReadinessOptions,
|
|
76
|
+
type UpsertWorkspaceConnectionGrantInput,
|
|
77
|
+
type UpsertWorkspaceConnectionInput,
|
|
78
|
+
type WorkspaceConnection,
|
|
79
|
+
type WorkspaceConnectionForAppSummary,
|
|
80
|
+
type WorkspaceConnectionGrant,
|
|
81
|
+
type WorkspaceConnectionProviderCatalogForApp,
|
|
82
|
+
type WorkspaceConnectionProviderCatalogForAppItem,
|
|
83
|
+
type WorkspaceConnectionProviderReadiness,
|
|
84
|
+
type WorkspaceConnectionProviderReadinessStatus,
|
|
85
|
+
} from "../workspace-connections/index.js";
|
|
86
|
+
export {
|
|
87
|
+
registerWorkspaceConnectionOnboardingStep,
|
|
88
|
+
type RegisterWorkspaceConnectionOnboardingStepOptions,
|
|
89
|
+
} from "./onboarding.js";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { registerOnboardingStep } from "../onboarding/registry.js";
|
|
2
|
+
import type { OnboardingStep } from "../onboarding/types.js";
|
|
3
|
+
|
|
4
|
+
export interface RegisterWorkspaceConnectionOnboardingStepOptions {
|
|
5
|
+
id?: string;
|
|
6
|
+
providerId: string;
|
|
7
|
+
providerLabel?: string;
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
order?: number;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
settingsUrl?: string;
|
|
13
|
+
isComplete: OnboardingStep["isComplete"];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function registerWorkspaceConnectionOnboardingStep({
|
|
17
|
+
id,
|
|
18
|
+
providerId,
|
|
19
|
+
providerLabel,
|
|
20
|
+
title,
|
|
21
|
+
description,
|
|
22
|
+
order = 50,
|
|
23
|
+
required = false,
|
|
24
|
+
settingsUrl = "/settings#connections",
|
|
25
|
+
isComplete,
|
|
26
|
+
}: RegisterWorkspaceConnectionOnboardingStepOptions): void {
|
|
27
|
+
const label = providerLabel ?? providerId;
|
|
28
|
+
registerOnboardingStep({
|
|
29
|
+
id: id ?? `${providerId}-connection`,
|
|
30
|
+
title: title ?? `Connect ${label}`,
|
|
31
|
+
description:
|
|
32
|
+
description ??
|
|
33
|
+
`Connect ${label} so the app and agent can use the shared workspace connection.`,
|
|
34
|
+
order,
|
|
35
|
+
required,
|
|
36
|
+
methods: [
|
|
37
|
+
{
|
|
38
|
+
id: "settings",
|
|
39
|
+
kind: "link",
|
|
40
|
+
label: "Open connections",
|
|
41
|
+
primary: true,
|
|
42
|
+
payload: { url: settingsUrl },
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
isComplete,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -12,6 +12,7 @@ export interface BuilderTranscribeOptions {
|
|
|
12
12
|
maxSpeakers?: number;
|
|
13
13
|
language?: string;
|
|
14
14
|
instructions?: string;
|
|
15
|
+
timeoutMs?: number;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export interface BuilderTranscribeResult {
|
|
@@ -69,8 +70,12 @@ export async function transcribeWithBuilder(
|
|
|
69
70
|
opts.audioBytes.byteOffset + opts.audioBytes.byteLength,
|
|
70
71
|
) as ArrayBuffer;
|
|
71
72
|
|
|
73
|
+
const timeoutMs =
|
|
74
|
+
typeof opts.timeoutMs === "number" && Number.isFinite(opts.timeoutMs)
|
|
75
|
+
? Math.max(1, Math.floor(opts.timeoutMs))
|
|
76
|
+
: 45_000;
|
|
72
77
|
const controller = new AbortController();
|
|
73
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
78
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
74
79
|
let res: Response;
|
|
75
80
|
try {
|
|
76
81
|
res = await fetch(url, {
|
|
@@ -84,7 +89,9 @@ export async function transcribeWithBuilder(
|
|
|
84
89
|
});
|
|
85
90
|
} catch (err) {
|
|
86
91
|
if ((err as Error)?.name === "AbortError") {
|
|
87
|
-
throw new Error(
|
|
92
|
+
throw new Error(
|
|
93
|
+
`Builder transcription timed out after ${Math.ceil(timeoutMs / 1000)} seconds.`,
|
|
94
|
+
);
|
|
88
95
|
}
|
|
89
96
|
throw new Error(
|
|
90
97
|
`Builder transcription request failed before response: ${describeError(err)}`,
|
|
@@ -89,6 +89,58 @@ const CORE_SHARING_ACTIONS: Array<{ name: string; specifier: string }> = [
|
|
|
89
89
|
specifier:
|
|
90
90
|
"@agent-native/core/localization/actions/set-localization-preference",
|
|
91
91
|
},
|
|
92
|
+
{
|
|
93
|
+
name: "create-resource-version",
|
|
94
|
+
specifier: "@agent-native/core/history/actions/create-resource-version",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "list-resource-versions",
|
|
98
|
+
specifier: "@agent-native/core/history/actions/list-resource-versions",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "get-resource-version",
|
|
102
|
+
specifier: "@agent-native/core/history/actions/get-resource-version",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "restore-resource-version",
|
|
106
|
+
specifier: "@agent-native/core/history/actions/restore-resource-version",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: "list-resource-history",
|
|
110
|
+
specifier: "@agent-native/core/history/actions/list-resource-history",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: "list-review-comments",
|
|
114
|
+
specifier: "@agent-native/core/review/actions/list-review-comments",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "create-review-comment",
|
|
118
|
+
specifier: "@agent-native/core/review/actions/create-review-comment",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: "reply-review-comment",
|
|
122
|
+
specifier: "@agent-native/core/review/actions/reply-review-comment",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "resolve-review-thread",
|
|
126
|
+
specifier: "@agent-native/core/review/actions/resolve-review-thread",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "delete-review-comment",
|
|
130
|
+
specifier: "@agent-native/core/review/actions/delete-review-comment",
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: "consume-review-feedback",
|
|
134
|
+
specifier: "@agent-native/core/review/actions/consume-review-feedback",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "get-review-feedback",
|
|
138
|
+
specifier: "@agent-native/core/review/actions/get-review-feedback",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: "set-review-status",
|
|
142
|
+
specifier: "@agent-native/core/review/actions/set-review-status",
|
|
143
|
+
},
|
|
92
144
|
];
|
|
93
145
|
|
|
94
146
|
function isRuntimeSourceFile(filename: string): boolean {
|
|
@@ -146,6 +146,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
146
146
|
location.pathname === "/extensions" ||
|
|
147
147
|
location.pathname.startsWith("/extensions/");
|
|
148
148
|
const isSessionsRoute = isAnalyticsSessionsRoute(location.pathname);
|
|
149
|
+
const isSessionDetailRoute = /^\/sessions\/[^/]+/.test(location.pathname);
|
|
149
150
|
const isAskRoute = location.pathname === "/ask";
|
|
150
151
|
const chatHomeHandoffActive = useAgentChatHomeHandoff({
|
|
151
152
|
storageKey: ANALYTICS_CHAT_STORAGE_KEY,
|
|
@@ -221,7 +222,7 @@ export function Layout({ children }: LayoutProps) {
|
|
|
221
222
|
const contentFrame = (
|
|
222
223
|
<div className="flex h-full flex-1 flex-col overflow-hidden">
|
|
223
224
|
<MobileNav showNewChat={isAskRoute} />
|
|
224
|
-
{!isExtensionsRoute && !isAskRoute && <Header />}
|
|
225
|
+
{!isExtensionsRoute && !isAskRoute && !isSessionDetailRoute && <Header />}
|
|
225
226
|
<InvitationBanner />
|
|
226
227
|
<main
|
|
227
228
|
className={
|
|
@@ -17,10 +17,10 @@ import {
|
|
|
17
17
|
IconActivity,
|
|
18
18
|
IconPin,
|
|
19
19
|
IconPlus,
|
|
20
|
-
IconBuilding,
|
|
21
20
|
IconLock,
|
|
22
21
|
IconLink,
|
|
23
22
|
IconMessageCircle,
|
|
23
|
+
IconUsersGroup,
|
|
24
24
|
IconEye,
|
|
25
25
|
IconEyeOff,
|
|
26
26
|
IconPlayerPlay,
|
|
@@ -704,7 +704,7 @@ function SortableRow({
|
|
|
704
704
|
}}
|
|
705
705
|
>
|
|
706
706
|
{visibility === "private" ? (
|
|
707
|
-
<
|
|
707
|
+
<IconUsersGroup className="me-2 h-3.5 w-3.5" />
|
|
708
708
|
) : (
|
|
709
709
|
<IconLock className="me-2 h-3.5 w-3.5" />
|
|
710
710
|
)}
|
|
@@ -243,27 +243,39 @@
|
|
|
243
243
|
.an-replay-stage-root .replayer-mouse {
|
|
244
244
|
position: absolute;
|
|
245
245
|
z-index: 2;
|
|
246
|
-
width:
|
|
247
|
-
height:
|
|
248
|
-
border-radius:
|
|
249
|
-
background:
|
|
246
|
+
width: 1.125rem;
|
|
247
|
+
height: 1.5rem;
|
|
248
|
+
border-radius: 0;
|
|
249
|
+
background: transparent;
|
|
250
250
|
background-image: none;
|
|
251
|
-
box-shadow:
|
|
252
|
-
|
|
253
|
-
0 1px 6px hsl(0 0% 0% / 0.35);
|
|
254
|
-
transform: translate(-50%, -50%);
|
|
251
|
+
box-shadow: none;
|
|
252
|
+
transform: none;
|
|
255
253
|
transition:
|
|
256
254
|
left 80ms linear,
|
|
257
255
|
top 80ms linear;
|
|
258
256
|
pointer-events: none;
|
|
259
257
|
}
|
|
260
258
|
|
|
261
|
-
.an-replay-stage-root .replayer-mouse::
|
|
259
|
+
.an-replay-stage-root .replayer-mouse::before {
|
|
262
260
|
content: "";
|
|
263
261
|
position: absolute;
|
|
264
262
|
inset: 0;
|
|
263
|
+
background: hsl(0 0% 100%);
|
|
264
|
+
clip-path: polygon(0 0, 0 77%, 30% 57%, 48% 100%, 68% 92%, 50% 51%, 92% 51%);
|
|
265
|
+
filter: drop-shadow(0 0 1px hsl(0 0% 0% / 0.95))
|
|
266
|
+
drop-shadow(0 1px 3px hsl(0 0% 0% / 0.35));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.an-replay-stage-root .replayer-mouse::after {
|
|
270
|
+
content: "";
|
|
271
|
+
position: absolute;
|
|
272
|
+
left: -0.5rem;
|
|
273
|
+
top: -0.5rem;
|
|
274
|
+
width: 1rem;
|
|
275
|
+
height: 1rem;
|
|
265
276
|
border-radius: 9999px;
|
|
266
|
-
|
|
277
|
+
border: 2px solid hsl(217 91% 60%);
|
|
278
|
+
background: transparent;
|
|
267
279
|
opacity: 0;
|
|
268
280
|
}
|
|
269
281
|
|
|
@@ -937,6 +937,11 @@ const messages = {
|
|
|
937
937
|
copyForAgent: "複製給 Agent",
|
|
938
938
|
copiedForAgent: "已複製",
|
|
939
939
|
askAgent: "詢問代理此工作階段",
|
|
940
|
+
devtoolsMessage: "訊息",
|
|
941
|
+
devtoolsResize: "調整開發者工具大小",
|
|
942
|
+
replayLoadingProgress: "已載入 {{loaded}} / {{total}} 個回放分塊",
|
|
943
|
+
askAgentTooltip: "向 Analytics 代理詢問有關此回放的問題。",
|
|
944
|
+
copyForAgentTooltip: "複製一個臨時私人連結,供代理檢查此回放。",
|
|
940
945
|
askSessionTitle: "詢問此工作階段",
|
|
941
946
|
askSessionDescription: "將此回放作為脈絡,向 Analytics 代理傳送聚焦提示。",
|
|
942
947
|
askSessionPlaceholder: "此工作階段發生了什麼?",
|
|
@@ -952,7 +957,7 @@ const messages = {
|
|
|
952
957
|
replayEventCount: "{{events}} 個回放事件",
|
|
953
958
|
timeline: "事件時間線",
|
|
954
959
|
replayTimeline: "回放時間線",
|
|
955
|
-
timelineDescription: "
|
|
960
|
+
timelineDescription: "顯示 {{count}} / {{total}} 個有用事件。",
|
|
956
961
|
noTimelineEvents: "未找到時間線標記",
|
|
957
962
|
sequence: "Sequence",
|
|
958
963
|
size: "Size",
|