@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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { execSync, spawn } from "child_process";
|
|
4
4
|
import fs from "fs";
|
|
5
|
+
import { createRequire } from "module";
|
|
5
6
|
import path from "path";
|
|
6
7
|
import { fileURLToPath } from "url";
|
|
7
8
|
|
|
@@ -253,11 +254,20 @@ function handleScaffoldImportError(err: any): never {
|
|
|
253
254
|
throw err;
|
|
254
255
|
}
|
|
255
256
|
|
|
257
|
+
function findBinUpwards(binName: string): string | undefined {
|
|
258
|
+
let dir = process.cwd();
|
|
259
|
+
for (let i = 0; i < 20; i++) {
|
|
260
|
+
const candidate = path.join(dir, "node_modules", ".bin", binName);
|
|
261
|
+
if (fs.existsSync(candidate)) return candidate;
|
|
262
|
+
const parent = path.dirname(dir);
|
|
263
|
+
if (parent === dir) break;
|
|
264
|
+
dir = parent;
|
|
265
|
+
}
|
|
266
|
+
return undefined;
|
|
267
|
+
}
|
|
268
|
+
|
|
256
269
|
function findViteBin(): string {
|
|
257
|
-
|
|
258
|
-
const localVite = path.resolve("node_modules/.bin/vite");
|
|
259
|
-
if (fs.existsSync(localVite)) return localVite;
|
|
260
|
-
return "vite"; // fallback to PATH
|
|
270
|
+
return findBinUpwards("vite") ?? "vite";
|
|
261
271
|
}
|
|
262
272
|
|
|
263
273
|
function findTsxBin(): string {
|
|
@@ -277,9 +287,7 @@ function findTypeScriptCompilerBin(): string {
|
|
|
277
287
|
}
|
|
278
288
|
|
|
279
289
|
function findReactRouterBin(): string {
|
|
280
|
-
|
|
281
|
-
if (fs.existsSync(localBin)) return localBin;
|
|
282
|
-
return "react-router";
|
|
290
|
+
return findBinUpwards("react-router") ?? "react-router";
|
|
283
291
|
}
|
|
284
292
|
|
|
285
293
|
/** Check if the project uses React Router framework mode (has react-router.config.ts) */
|
|
@@ -290,6 +298,73 @@ function isReactRouterFramework(): boolean {
|
|
|
290
298
|
);
|
|
291
299
|
}
|
|
292
300
|
|
|
301
|
+
function canResolveFromProject(specifier: string): boolean {
|
|
302
|
+
try {
|
|
303
|
+
const requireFromProject = createRequire(path.resolve("package.json"));
|
|
304
|
+
requireFromProject.resolve(specifier);
|
|
305
|
+
return true;
|
|
306
|
+
} catch {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
function projectUsesFsRoutes(): boolean {
|
|
312
|
+
for (const file of [
|
|
313
|
+
path.resolve("app/routes.ts"),
|
|
314
|
+
path.resolve("app/routes.tsx"),
|
|
315
|
+
path.resolve("routes.ts"),
|
|
316
|
+
path.resolve("routes.tsx"),
|
|
317
|
+
]) {
|
|
318
|
+
try {
|
|
319
|
+
if (
|
|
320
|
+
fs.existsSync(file) &&
|
|
321
|
+
fs.readFileSync(file, "utf-8").includes("@react-router/fs-routes")
|
|
322
|
+
) {
|
|
323
|
+
return true;
|
|
324
|
+
}
|
|
325
|
+
} catch {}
|
|
326
|
+
}
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
function validateReactRouterBuildDependencies(): void {
|
|
331
|
+
const required: Array<[packageName: string, specifier: string]> = [
|
|
332
|
+
["react-router", "react-router"],
|
|
333
|
+
["@react-router/dev", "@react-router/dev/vite"],
|
|
334
|
+
["vite", "vite"],
|
|
335
|
+
];
|
|
336
|
+
if (projectUsesFsRoutes()) {
|
|
337
|
+
required.push(["@react-router/fs-routes", "@react-router/fs-routes"]);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
const missing = required
|
|
341
|
+
.filter(([, specifier]) => !canResolveFromProject(specifier))
|
|
342
|
+
.map(([packageName]) => packageName);
|
|
343
|
+
|
|
344
|
+
if (missing.length === 0) return;
|
|
345
|
+
|
|
346
|
+
const packageManager = fs.existsSync(path.resolve("pnpm-lock.yaml"))
|
|
347
|
+
? "pnpm"
|
|
348
|
+
: fs.existsSync(path.resolve("yarn.lock"))
|
|
349
|
+
? "yarn"
|
|
350
|
+
: "npm";
|
|
351
|
+
const installCommand =
|
|
352
|
+
packageManager === "pnpm"
|
|
353
|
+
? `pnpm add ${missing.join(" ")}`
|
|
354
|
+
: packageManager === "yarn"
|
|
355
|
+
? `yarn add ${missing.join(" ")}`
|
|
356
|
+
: `npm install ${missing.join(" ")}`;
|
|
357
|
+
|
|
358
|
+
console.error(
|
|
359
|
+
[
|
|
360
|
+
"React Router framework mode requires build packages that are not installed from this app root.",
|
|
361
|
+
`Missing: ${missing.join(", ")}`,
|
|
362
|
+
`Install them with: ${installCommand}`,
|
|
363
|
+
].join("\n"),
|
|
364
|
+
);
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
|
|
293
368
|
function isWorkspaceRoot(): boolean {
|
|
294
369
|
const pkgPath = path.resolve("package.json");
|
|
295
370
|
if (!fs.existsSync(pkgPath)) return false;
|
|
@@ -488,6 +563,7 @@ switch (command) {
|
|
|
488
563
|
// continuation only runs on success.
|
|
489
564
|
(async () => {
|
|
490
565
|
if (isReactRouterFramework()) {
|
|
566
|
+
validateReactRouterBuildDependencies();
|
|
491
567
|
const rr = findReactRouterBin();
|
|
492
568
|
console.log("Building (React Router framework mode)...");
|
|
493
569
|
await runBuildStep(rr, ["build"], { label: "react-router-build" });
|
|
@@ -592,6 +668,7 @@ switch (command) {
|
|
|
592
668
|
// Run TypeScript type checking
|
|
593
669
|
// React Router framework mode generates route types first
|
|
594
670
|
if (isReactRouterFramework()) {
|
|
671
|
+
validateReactRouterBuildDependencies();
|
|
595
672
|
const rr = findReactRouterBin();
|
|
596
673
|
try {
|
|
597
674
|
execSync(`${rr} typegen`, { stdio: "inherit" });
|
|
@@ -24,6 +24,12 @@ import fs from "fs";
|
|
|
24
24
|
import path from "path";
|
|
25
25
|
|
|
26
26
|
const POSTGRES_DEPENDENCY_VERSION = "^3.4.9";
|
|
27
|
+
const REACT_ROUTER_BUILD_DEPENDENCIES = [
|
|
28
|
+
"@react-router/dev",
|
|
29
|
+
"@react-router/fs-routes",
|
|
30
|
+
"react-router",
|
|
31
|
+
"vite",
|
|
32
|
+
] as const;
|
|
27
33
|
|
|
28
34
|
export interface WorkspacifyOptions {
|
|
29
35
|
/** Target app directory (already populated with the copied template) */
|
|
@@ -87,6 +93,7 @@ export function workspacifyApp(opts: WorkspacifyOptions): void {
|
|
|
87
93
|
// Add the runtime package to workspace apps so production bundles do
|
|
88
94
|
// not fail only after a hosted Postgres database is configured.
|
|
89
95
|
pkg.dependencies.postgres ??= POSTGRES_DEPENDENCY_VERSION;
|
|
96
|
+
ensureReactRouterBuildDependencies(pkg);
|
|
90
97
|
// pnpm build-script approvals belong at the workspace root. Leaving the
|
|
91
98
|
// template's per-app setting in place makes pnpm warn on every install.
|
|
92
99
|
if (pkg.pnpm && typeof pkg.pnpm === "object") {
|
|
@@ -156,6 +163,33 @@ export function workspacifyApp(opts: WorkspacifyOptions): void {
|
|
|
156
163
|
}
|
|
157
164
|
}
|
|
158
165
|
|
|
166
|
+
function ensureReactRouterBuildDependencies(pkg: Record<string, any>): void {
|
|
167
|
+
const allDeps = {
|
|
168
|
+
...pkg.dependencies,
|
|
169
|
+
...pkg.devDependencies,
|
|
170
|
+
...pkg.peerDependencies,
|
|
171
|
+
};
|
|
172
|
+
if (
|
|
173
|
+
!allDeps["@react-router/dev"] &&
|
|
174
|
+
!allDeps["react-router"] &&
|
|
175
|
+
!allDeps["@react-router/fs-routes"]
|
|
176
|
+
) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
pkg.dependencies = pkg.dependencies ?? {};
|
|
181
|
+
for (const key of REACT_ROUTER_BUILD_DEPENDENCIES) {
|
|
182
|
+
const existing =
|
|
183
|
+
pkg.dependencies[key] ??
|
|
184
|
+
pkg.devDependencies?.[key] ??
|
|
185
|
+
pkg.peerDependencies?.[key];
|
|
186
|
+
if (!existing) continue;
|
|
187
|
+
pkg.dependencies[key] = existing;
|
|
188
|
+
delete pkg.devDependencies?.[key];
|
|
189
|
+
delete pkg.peerDependencies?.[key];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
159
193
|
function writeInheritedChatPlugin(
|
|
160
194
|
appDir: string,
|
|
161
195
|
workspaceCoreName: string,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export {
|
|
2
|
+
CommandMenu,
|
|
3
|
+
openAgentSettings,
|
|
4
|
+
openAgentSidebar,
|
|
5
|
+
submitToAgent,
|
|
6
|
+
useCommandMenuShortcut,
|
|
7
|
+
type CommandDocsGroupProps,
|
|
8
|
+
type CommandGroupProps,
|
|
9
|
+
type CommandItemProps,
|
|
10
|
+
type CommandMenuDoc,
|
|
11
|
+
type CommandMenuProps,
|
|
12
|
+
type CommandShortcutProps,
|
|
13
|
+
} from "../CommandMenu.js";
|
|
14
|
+
export { focusAgentChat } from "../AgentPanel.js";
|
|
15
|
+
export * from "../../navigation/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../review/index.js";
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { IconClock, IconRestore, IconTimeline } from "@tabler/icons-react";
|
|
2
|
+
import { useState, type ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
import type { ResourceVersion } from "../../history/types.js";
|
|
5
|
+
import { cn } from "../utils.js";
|
|
6
|
+
import {
|
|
7
|
+
useResourceVersions,
|
|
8
|
+
useRestoreResourceVersion,
|
|
9
|
+
} from "./use-history.js";
|
|
10
|
+
|
|
11
|
+
export interface VersionHistoryPanelProps {
|
|
12
|
+
resourceType: string;
|
|
13
|
+
resourceId: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
className?: string;
|
|
16
|
+
limit?: number;
|
|
17
|
+
emptyState?: ReactNode;
|
|
18
|
+
renderVersion?: (version: ResourceVersion) => ReactNode;
|
|
19
|
+
onRestored?: (version: ResourceVersion, result: unknown) => void;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function VersionHistoryPanel({
|
|
23
|
+
resourceType,
|
|
24
|
+
resourceId,
|
|
25
|
+
title = "Version history",
|
|
26
|
+
className,
|
|
27
|
+
limit = 20,
|
|
28
|
+
emptyState = "No saved versions yet.",
|
|
29
|
+
renderVersion,
|
|
30
|
+
onRestored,
|
|
31
|
+
}: VersionHistoryPanelProps) {
|
|
32
|
+
const versions = useResourceVersions({ resourceType, resourceId, limit });
|
|
33
|
+
const restore = useRestoreResourceVersion();
|
|
34
|
+
const [confirmRestoreId, setConfirmRestoreId] = useState<string | null>(null);
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<section
|
|
38
|
+
className={cn(
|
|
39
|
+
"rounded-lg border border-border bg-card text-card-foreground",
|
|
40
|
+
className,
|
|
41
|
+
)}
|
|
42
|
+
>
|
|
43
|
+
<div className="flex items-center gap-2 border-b border-border px-4 py-3">
|
|
44
|
+
<IconTimeline className="h-4 w-4 text-muted-foreground" />
|
|
45
|
+
<h2 className="text-sm font-medium">{title}</h2>
|
|
46
|
+
</div>
|
|
47
|
+
<div className="divide-y divide-border">
|
|
48
|
+
{versions.isLoading ? (
|
|
49
|
+
<div className="px-4 py-6 text-sm text-muted-foreground">
|
|
50
|
+
Loading versions...
|
|
51
|
+
</div>
|
|
52
|
+
) : versions.data?.versions.length ? (
|
|
53
|
+
versions.data.versions.map((version) => {
|
|
54
|
+
const confirming = confirmRestoreId === version.id;
|
|
55
|
+
return (
|
|
56
|
+
<article key={version.id} className="flex gap-3 px-4 py-3">
|
|
57
|
+
<div className="mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-muted">
|
|
58
|
+
<IconClock className="h-4 w-4 text-muted-foreground" />
|
|
59
|
+
</div>
|
|
60
|
+
<div className="min-w-0 flex-1">
|
|
61
|
+
{renderVersion ? (
|
|
62
|
+
renderVersion(version)
|
|
63
|
+
) : (
|
|
64
|
+
<>
|
|
65
|
+
<div className="flex flex-wrap items-center gap-x-2 gap-y-1">
|
|
66
|
+
<h3 className="truncate text-sm font-medium">
|
|
67
|
+
{version.title ?? `Version ${version.versionNumber}`}
|
|
68
|
+
</h3>
|
|
69
|
+
<span className="text-xs text-muted-foreground">
|
|
70
|
+
{formatVersionDate(version.createdAt)}
|
|
71
|
+
</span>
|
|
72
|
+
</div>
|
|
73
|
+
{version.summary ? (
|
|
74
|
+
<p className="mt-1 text-sm text-muted-foreground">
|
|
75
|
+
{version.summary}
|
|
76
|
+
</p>
|
|
77
|
+
) : null}
|
|
78
|
+
</>
|
|
79
|
+
)}
|
|
80
|
+
</div>
|
|
81
|
+
<div className="flex shrink-0 items-center gap-2">
|
|
82
|
+
{confirming ? (
|
|
83
|
+
<>
|
|
84
|
+
<button
|
|
85
|
+
type="button"
|
|
86
|
+
className="inline-flex h-8 items-center rounded-md border border-input px-2.5 text-xs font-medium hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50"
|
|
87
|
+
disabled={restore.isPending}
|
|
88
|
+
onClick={() => setConfirmRestoreId(null)}
|
|
89
|
+
>
|
|
90
|
+
Cancel
|
|
91
|
+
</button>
|
|
92
|
+
<button
|
|
93
|
+
type="button"
|
|
94
|
+
className="inline-flex h-8 items-center gap-1.5 rounded-md border border-destructive bg-destructive px-2.5 text-xs font-medium text-destructive-foreground hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50"
|
|
95
|
+
disabled={restore.isPending}
|
|
96
|
+
onClick={() =>
|
|
97
|
+
restore.mutate(
|
|
98
|
+
{ id: version.id },
|
|
99
|
+
{
|
|
100
|
+
onSuccess: (result) => {
|
|
101
|
+
setConfirmRestoreId(null);
|
|
102
|
+
onRestored?.(result.version, result.result);
|
|
103
|
+
},
|
|
104
|
+
onError: () => setConfirmRestoreId(null),
|
|
105
|
+
},
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
>
|
|
109
|
+
<IconRestore className="h-3.5 w-3.5" />
|
|
110
|
+
Confirm restore
|
|
111
|
+
</button>
|
|
112
|
+
</>
|
|
113
|
+
) : (
|
|
114
|
+
<button
|
|
115
|
+
type="button"
|
|
116
|
+
className="inline-flex h-8 items-center gap-1.5 rounded-md border border-input px-2.5 text-xs font-medium hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50"
|
|
117
|
+
disabled={restore.isPending}
|
|
118
|
+
onClick={() => setConfirmRestoreId(version.id)}
|
|
119
|
+
>
|
|
120
|
+
<IconRestore className="h-3.5 w-3.5" />
|
|
121
|
+
Restore
|
|
122
|
+
</button>
|
|
123
|
+
)}
|
|
124
|
+
</div>
|
|
125
|
+
</article>
|
|
126
|
+
);
|
|
127
|
+
})
|
|
128
|
+
) : (
|
|
129
|
+
<div className="px-4 py-6 text-sm text-muted-foreground">
|
|
130
|
+
{emptyState}
|
|
131
|
+
</div>
|
|
132
|
+
)}
|
|
133
|
+
</div>
|
|
134
|
+
</section>
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function HistoryTimeline({
|
|
139
|
+
versions,
|
|
140
|
+
className,
|
|
141
|
+
}: {
|
|
142
|
+
versions: ResourceVersion[];
|
|
143
|
+
className?: string;
|
|
144
|
+
}) {
|
|
145
|
+
return (
|
|
146
|
+
<ol className={cn("space-y-3", className)}>
|
|
147
|
+
{versions.map((version) => (
|
|
148
|
+
<li key={version.id} className="flex gap-3">
|
|
149
|
+
<div className="mt-1 h-2 w-2 rounded-full bg-primary" />
|
|
150
|
+
<div className="min-w-0">
|
|
151
|
+
<div className="truncate text-sm font-medium">
|
|
152
|
+
{version.title ?? `Version ${version.versionNumber}`}
|
|
153
|
+
</div>
|
|
154
|
+
<div className="text-xs text-muted-foreground">
|
|
155
|
+
{formatVersionDate(version.createdAt)}
|
|
156
|
+
</div>
|
|
157
|
+
{version.summary ? (
|
|
158
|
+
<p className="mt-1 text-sm text-muted-foreground">
|
|
159
|
+
{version.summary}
|
|
160
|
+
</p>
|
|
161
|
+
) : null}
|
|
162
|
+
</div>
|
|
163
|
+
</li>
|
|
164
|
+
))}
|
|
165
|
+
</ol>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function formatVersionDate(value: string): string {
|
|
170
|
+
const date = new Date(value);
|
|
171
|
+
if (Number.isNaN(date.getTime())) {
|
|
172
|
+
return value;
|
|
173
|
+
}
|
|
174
|
+
return date.toLocaleString();
|
|
175
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export {
|
|
2
|
+
HistoryTimeline,
|
|
3
|
+
VersionHistoryPanel,
|
|
4
|
+
type VersionHistoryPanelProps,
|
|
5
|
+
} from "./VersionHistoryPanel.js";
|
|
6
|
+
export {
|
|
7
|
+
useCreateResourceVersion,
|
|
8
|
+
useResourceHistory,
|
|
9
|
+
useResourceVersion,
|
|
10
|
+
useResourceVersions,
|
|
11
|
+
useRestoreResourceVersion,
|
|
12
|
+
type CreateResourceVersionInput,
|
|
13
|
+
type GetResourceVersionInput,
|
|
14
|
+
type GetResourceVersionResult,
|
|
15
|
+
type ListResourceHistoryResult,
|
|
16
|
+
type ListResourceVersionsResult,
|
|
17
|
+
type ResourceHistoryParams,
|
|
18
|
+
type ResourceVersionsParams,
|
|
19
|
+
type RestoreResourceVersionInput,
|
|
20
|
+
type RestoreResourceVersionResult,
|
|
21
|
+
} from "./use-history.js";
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { ResourceVersion } from "../../history/types.js";
|
|
2
|
+
import { useActionMutation, useActionQuery } from "../use-action.js";
|
|
3
|
+
|
|
4
|
+
export interface ResourceVersionsParams {
|
|
5
|
+
resourceType: string;
|
|
6
|
+
resourceId: string;
|
|
7
|
+
limit?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface ResourceHistoryParams {
|
|
12
|
+
resourceType: string;
|
|
13
|
+
resourceId: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface CreateResourceVersionInput {
|
|
18
|
+
resourceType: string;
|
|
19
|
+
resourceId: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
summary?: string;
|
|
22
|
+
snapshot?: unknown;
|
|
23
|
+
metadata?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface RestoreResourceVersionInput {
|
|
27
|
+
id?: string;
|
|
28
|
+
resourceType?: string;
|
|
29
|
+
resourceId?: string;
|
|
30
|
+
versionNumber?: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface GetResourceVersionInput {
|
|
34
|
+
id?: string;
|
|
35
|
+
resourceType?: string;
|
|
36
|
+
resourceId?: string;
|
|
37
|
+
versionNumber?: number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface ListResourceVersionsResult {
|
|
41
|
+
versions: ResourceVersion[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ListResourceHistoryResult {
|
|
45
|
+
versions: ResourceVersion[];
|
|
46
|
+
auditEvents: unknown[];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface GetResourceVersionResult {
|
|
50
|
+
version: ResourceVersion;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface RestoreResourceVersionResult {
|
|
54
|
+
version: ResourceVersion;
|
|
55
|
+
result: unknown;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function useResourceVersions(
|
|
59
|
+
params: ResourceVersionsParams,
|
|
60
|
+
options?: { enabled?: boolean },
|
|
61
|
+
) {
|
|
62
|
+
return useActionQuery<ListResourceVersionsResult>(
|
|
63
|
+
"list-resource-versions",
|
|
64
|
+
params,
|
|
65
|
+
{
|
|
66
|
+
enabled:
|
|
67
|
+
options?.enabled ?? Boolean(params.resourceType && params.resourceId),
|
|
68
|
+
},
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function useResourceHistory(
|
|
73
|
+
params: ResourceHistoryParams,
|
|
74
|
+
options?: { enabled?: boolean },
|
|
75
|
+
) {
|
|
76
|
+
return useActionQuery<ListResourceHistoryResult>(
|
|
77
|
+
"list-resource-history",
|
|
78
|
+
params,
|
|
79
|
+
{
|
|
80
|
+
enabled:
|
|
81
|
+
options?.enabled ?? Boolean(params.resourceType && params.resourceId),
|
|
82
|
+
},
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function useResourceVersion(
|
|
87
|
+
params: GetResourceVersionInput,
|
|
88
|
+
options?: { enabled?: boolean },
|
|
89
|
+
) {
|
|
90
|
+
const enabled =
|
|
91
|
+
options?.enabled ??
|
|
92
|
+
Boolean(
|
|
93
|
+
params.id ||
|
|
94
|
+
(params.resourceType && params.resourceId && params.versionNumber),
|
|
95
|
+
);
|
|
96
|
+
return useActionQuery<GetResourceVersionResult>(
|
|
97
|
+
"get-resource-version",
|
|
98
|
+
params,
|
|
99
|
+
{ enabled },
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function useCreateResourceVersion() {
|
|
104
|
+
return useActionMutation<ResourceVersion, CreateResourceVersionInput>(
|
|
105
|
+
"create-resource-version",
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export function useRestoreResourceVersion() {
|
|
110
|
+
return useActionMutation<
|
|
111
|
+
RestoreResourceVersionResult,
|
|
112
|
+
RestoreResourceVersionInput
|
|
113
|
+
>("restore-resource-version");
|
|
114
|
+
}
|
|
@@ -639,19 +639,22 @@ export { AgentNativeIcon } from "./components/icons/AgentNativeIcon.js";
|
|
|
639
639
|
export {
|
|
640
640
|
SettingsPanel,
|
|
641
641
|
SettingsTabsPage,
|
|
642
|
-
|
|
643
|
-
type SettingsPanelProps,
|
|
644
|
-
type SettingsTabItem,
|
|
645
|
-
type SettingsTabsPageProps,
|
|
646
|
-
} from "./settings/index.js";
|
|
647
|
-
export { useBuilderStatus } from "./settings/useBuilderStatus.js";
|
|
648
|
-
export {
|
|
642
|
+
SecretsSection,
|
|
649
643
|
openBuilderConnectPopup,
|
|
644
|
+
useAgentSettingsTabs,
|
|
650
645
|
useBuilderConnectFlow,
|
|
646
|
+
useBuilderStatus,
|
|
647
|
+
withBuilderConnectTrackingParams,
|
|
651
648
|
type BuilderConnectFlow,
|
|
652
649
|
type BuilderConnectFlowOptions,
|
|
650
|
+
type BuilderConnectStartOptions,
|
|
651
|
+
type BuilderStatus,
|
|
653
652
|
type OpenBuilderConnectPopupOptions,
|
|
654
|
-
|
|
653
|
+
type SecretsSectionProps,
|
|
654
|
+
type SettingsPanelProps,
|
|
655
|
+
type SettingsTabItem,
|
|
656
|
+
type SettingsTabsPageProps,
|
|
657
|
+
} from "./settings/index.js";
|
|
655
658
|
// Deprecated — use AgentSidebar + AgentToggleButton instead
|
|
656
659
|
export {
|
|
657
660
|
ProductionAgentPanel,
|
|
@@ -783,6 +786,51 @@ export {
|
|
|
783
786
|
type ResourceTreeProps,
|
|
784
787
|
type ResourceEditorProps,
|
|
785
788
|
} from "./resources/index.js";
|
|
789
|
+
export {
|
|
790
|
+
HistoryTimeline,
|
|
791
|
+
VersionHistoryPanel,
|
|
792
|
+
useCreateResourceVersion,
|
|
793
|
+
useResourceHistory,
|
|
794
|
+
useResourceVersion,
|
|
795
|
+
useResourceVersions,
|
|
796
|
+
useRestoreResourceVersion,
|
|
797
|
+
type CreateResourceVersionInput,
|
|
798
|
+
type GetResourceVersionInput,
|
|
799
|
+
type GetResourceVersionResult,
|
|
800
|
+
type ListResourceHistoryResult,
|
|
801
|
+
type ListResourceVersionsResult,
|
|
802
|
+
type ResourceHistoryParams,
|
|
803
|
+
type ResourceVersionsParams,
|
|
804
|
+
type RestoreResourceVersionInput,
|
|
805
|
+
type RestoreResourceVersionResult,
|
|
806
|
+
type VersionHistoryPanelProps,
|
|
807
|
+
} from "./history/index.js";
|
|
808
|
+
export {
|
|
809
|
+
ReviewStatusBadge,
|
|
810
|
+
ReviewThreadPanel,
|
|
811
|
+
buildReviewThreads,
|
|
812
|
+
useConsumeReviewFeedback,
|
|
813
|
+
useCreateReviewComment,
|
|
814
|
+
useDeleteReviewComment,
|
|
815
|
+
useReplyReviewComment,
|
|
816
|
+
useResolveReviewThread,
|
|
817
|
+
useReviewComments,
|
|
818
|
+
useReviewFeedback,
|
|
819
|
+
useSetReviewStatus,
|
|
820
|
+
type ConsumeReviewFeedbackInput,
|
|
821
|
+
type CreateReviewCommentInput,
|
|
822
|
+
type DeleteReviewCommentInput,
|
|
823
|
+
type GetReviewFeedbackParams,
|
|
824
|
+
type GetReviewFeedbackResult,
|
|
825
|
+
type ListReviewCommentsParams,
|
|
826
|
+
type ListReviewCommentsResult,
|
|
827
|
+
type ReplyReviewCommentInput,
|
|
828
|
+
type ResolveReviewThreadInput,
|
|
829
|
+
type ReviewStatusBadgeProps,
|
|
830
|
+
type ReviewThread,
|
|
831
|
+
type ReviewThreadPanelProps,
|
|
832
|
+
type SetReviewStatusInput,
|
|
833
|
+
} from "./review/index.js";
|
|
786
834
|
export type {
|
|
787
835
|
AppToFrameMessage,
|
|
788
836
|
FrameToAppMessage,
|
|
@@ -792,10 +840,10 @@ export type {
|
|
|
792
840
|
} from "./frame-protocol.js";
|
|
793
841
|
export {
|
|
794
842
|
CommandMenu,
|
|
795
|
-
useCommandMenuShortcut,
|
|
796
843
|
openAgentSidebar,
|
|
797
844
|
openAgentSettings,
|
|
798
845
|
submitToAgent,
|
|
846
|
+
useCommandMenuShortcut,
|
|
799
847
|
type CommandMenuProps,
|
|
800
848
|
type CommandMenuDoc,
|
|
801
849
|
type CommandDocsGroupProps,
|
|
@@ -803,6 +851,33 @@ export {
|
|
|
803
851
|
type CommandItemProps,
|
|
804
852
|
type CommandShortcutProps,
|
|
805
853
|
} from "./CommandMenu.js";
|
|
854
|
+
export {
|
|
855
|
+
buildOpenRouteLink,
|
|
856
|
+
buildOpenRoutePath,
|
|
857
|
+
buildResourceRoute,
|
|
858
|
+
buildSettingsRoute,
|
|
859
|
+
buildStandardAppRoute,
|
|
860
|
+
buildTeamRoute,
|
|
861
|
+
createStandardOpenPathResolver,
|
|
862
|
+
STANDARD_APP_ROUTES,
|
|
863
|
+
STANDARD_SETTINGS_TABS,
|
|
864
|
+
type BuildResourceRouteOptions,
|
|
865
|
+
type BuildStandardAppRouteOptions,
|
|
866
|
+
type NavigationLink,
|
|
867
|
+
type NavigationTarget,
|
|
868
|
+
type StandardAppRouteId,
|
|
869
|
+
type StandardOpenPathResolverOptions,
|
|
870
|
+
type StandardOpenPathRoute,
|
|
871
|
+
type StandardSettingsTabId,
|
|
872
|
+
} from "../navigation/index.js";
|
|
873
|
+
export {
|
|
874
|
+
BuilderConnectCard,
|
|
875
|
+
ProviderReadinessBadge,
|
|
876
|
+
SetupConnectionsPage,
|
|
877
|
+
type BuilderConnectCardProps,
|
|
878
|
+
type ProviderReadinessBadgeProps,
|
|
879
|
+
type SetupConnectionsPageProps,
|
|
880
|
+
} from "./setup-connections/index.js";
|
|
806
881
|
export {
|
|
807
882
|
ChangelogDialog,
|
|
808
883
|
ChangelogSettingsCard,
|