@agent-native/core 0.90.11 → 0.91.0
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 +22 -0
- package/corpus/core/docs/content/toolkit-settings.mdx +56 -3
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/agent/run-ownership.ts +29 -1
- package/corpus/core/src/changelog/parse.ts +78 -0
- package/corpus/core/src/chat-threads/schema.ts +43 -0
- package/corpus/core/src/chat-threads/store.ts +144 -12
- package/corpus/core/src/cli/workspace-dev.ts +25 -5
- package/corpus/core/src/client/AgentPanel.tsx +79 -14
- package/corpus/core/src/client/AssistantChat.tsx +359 -425
- package/corpus/core/src/client/analytics-session.ts +70 -0
- package/corpus/core/src/client/analytics.ts +175 -49
- package/corpus/core/src/client/chat/message-components.tsx +22 -2
- package/corpus/core/src/client/components/ui/message-scroller.tsx +131 -0
- package/corpus/core/src/client/conversation/AgentConversation.tsx +63 -41
- package/corpus/core/src/client/error-capture.ts +616 -0
- package/corpus/core/src/client/index.ts +12 -0
- package/corpus/core/src/client/session-replay.ts +57 -7
- package/corpus/core/src/client/settings/SettingsPanel.tsx +123 -1
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +292 -45
- package/corpus/core/src/client/settings/index.ts +1 -0
- package/corpus/core/src/client/sharing/ShareButton.tsx +14 -11
- package/corpus/core/src/client/sharing/ShareDialog.tsx +13 -10
- package/corpus/core/src/mcp/builtin-tools.ts +29 -2
- package/corpus/core/src/server/agent-chat-plugin.ts +174 -79
- package/corpus/core/src/server/onboarding-html.ts +28 -16
- package/corpus/core/src/sharing/actions/list-resource-shares.ts +45 -1
- package/corpus/core/src/sharing/actions/share-resource.ts +9 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
- package/corpus/core/src/vite/client.ts +217 -35
- package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +8 -7
- package/corpus/templates/analytics/.agents/skills/analysis-workspace/SKILL.md +14 -10
- package/corpus/templates/analytics/.agents/skills/bigquery/SKILL.md +15 -15
- package/corpus/templates/analytics/.agents/skills/cross-source-analysis/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +38 -22
- package/corpus/templates/analytics/.agents/skills/data-programs/SKILL.md +114 -61
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +7 -7
- package/corpus/templates/analytics/.agents/skills/hubspot/SKILL.md +1 -0
- package/corpus/templates/analytics/.agents/skills/prometheus/SKILL.md +1 -1
- package/corpus/templates/analytics/.builder/skills/bigquery/SKILL.md +17 -17
- package/corpus/templates/analytics/.builder/skills/gcloud/SKILL.md +5 -5
- package/corpus/templates/analytics/.builder/skills/github/SKILL.md +7 -7
- package/corpus/templates/analytics/.builder/skills/gong/SKILL.md +12 -12
- package/corpus/templates/analytics/.builder/skills/grafana/SKILL.md +7 -7
- package/corpus/templates/analytics/.builder/skills/sentry/SKILL.md +7 -7
- package/corpus/templates/analytics/.builder/skills/slack/SKILL.md +6 -6
- package/corpus/templates/analytics/.builder/skills/stripe/SKILL.md +7 -7
- package/corpus/templates/analytics/AGENTS.md +47 -2
- package/corpus/templates/analytics/actions/add-status-page-monitor.ts +36 -0
- package/corpus/templates/analytics/actions/capture-test-error.ts +33 -0
- package/corpus/templates/analytics/actions/delete-monitor.ts +24 -0
- package/corpus/templates/analytics/actions/delete-status-page.ts +23 -0
- package/corpus/templates/analytics/actions/get-error-issue.ts +36 -0
- package/corpus/templates/analytics/actions/get-monitor-stats.ts +55 -0
- package/corpus/templates/analytics/actions/get-monitor.ts +27 -0
- package/corpus/templates/analytics/actions/get-public-status-page.ts +41 -0
- package/corpus/templates/analytics/actions/get-status-page.ts +29 -0
- package/corpus/templates/analytics/actions/list-error-issues.ts +40 -0
- package/corpus/templates/analytics/actions/list-monitors.ts +21 -0
- package/corpus/templates/analytics/actions/list-status-pages.ts +21 -0
- package/corpus/templates/analytics/actions/match-error-issues.ts +51 -0
- package/corpus/templates/analytics/actions/navigate.ts +58 -4
- package/corpus/templates/analytics/actions/remove-status-page-monitor.ts +22 -0
- package/corpus/templates/analytics/actions/reorder-status-page-monitors.ts +25 -0
- package/corpus/templates/analytics/actions/resolve-error-issue.ts +38 -0
- package/corpus/templates/analytics/actions/run-monitor-check.ts +23 -0
- package/corpus/templates/analytics/actions/save-analysis.ts +1 -0
- package/corpus/templates/analytics/actions/save-monitor.ts +145 -0
- package/corpus/templates/analytics/actions/save-status-page.ts +47 -0
- package/corpus/templates/analytics/actions/view-screen.ts +212 -0
- package/corpus/templates/analytics/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +10 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +134 -39
- package/corpus/templates/analytics/app/components/monitoring/PublicStatusView.tsx +351 -0
- package/corpus/templates/analytics/app/components/monitoring/ResponseTimeChart.tsx +174 -0
- package/corpus/templates/analytics/app/components/monitoring/UptimeStatCards.tsx +85 -0
- package/corpus/templates/analytics/app/components/monitoring/UptimeTimelineBars.tsx +106 -0
- package/corpus/templates/analytics/app/components/monitoring/chart-utils.ts +101 -0
- package/corpus/templates/analytics/app/components/monitoring/index.ts +28 -0
- package/corpus/templates/analytics/app/components/monitoring/types.ts +42 -0
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +34 -0
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +6 -0
- package/corpus/templates/analytics/app/i18n-data.ts +33 -0
- package/corpus/templates/analytics/app/pages/DataSources.tsx +28 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +77 -9
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +3 -3
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-layout.ts +7 -0
- package/corpus/templates/analytics/app/pages/monitoring/ErrorsPanel.tsx +205 -0
- package/corpus/templates/analytics/app/pages/monitoring/MonitoringPage.tsx +100 -0
- package/corpus/templates/analytics/app/pages/monitoring/UptimePanel.tsx +475 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/IssueDetail.tsx +372 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/IssueList.tsx +360 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/Sparkline.tsx +55 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/i18n.ts +106 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/types.ts +75 -0
- package/corpus/templates/analytics/app/pages/monitoring/errors/utils.ts +132 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorDetail.tsx +535 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorFormPage.tsx +1026 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/MonitorList.tsx +311 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/i18n.ts +235 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/StatusPageEditor.tsx +661 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/StatusPagesView.tsx +355 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/i18n.ts +106 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/slug.ts +24 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-pages/types.ts +20 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/status-summary.ts +87 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/types.ts +161 -0
- package/corpus/templates/analytics/app/pages/monitoring/uptime/utils.ts +210 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +76 -1
- package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +74 -9
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +197 -20
- package/corpus/templates/analytics/app/root.tsx +33 -1
- package/corpus/templates/analytics/app/routes/monitoring._index.tsx +10 -0
- package/corpus/templates/analytics/app/routes/status.$slug.tsx +118 -0
- package/corpus/templates/analytics/changelog/2026-07-08-add-uptime-monitors-that-ping-your-urls-and-alert-you-when-t.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-analytics-chats-keep-large-data-dictionaries-compact-so-prov.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-create-public-status-pages-that-share-the-live-health-of-cho.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-dashboard-extension-panels-use-clearer-open-copy.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-error-capture.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-fixed-single-panel-dashboard-drags-so-they-no-longer-rewrite.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-jump-straight-from-an-error-in-a-session-recording-to-its-fu.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-monitor-detail-and-list-now-show-colorful-uptime-timelines-r.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-pinned-ask-chats-now-show-a-pin-icon-in-the-sidebar.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-publish-a-public-uptime-status-page-with-colorful-uptime-tim.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-sessions-now-hide-visitor-emails-in-demo-mode-and-show-clean.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-08-settings-are-cleaner-searchable-and-alerts-have-their-own-tab.md +5 -0
- package/corpus/templates/analytics/changelog/2026-07-08-sidebar-sections-stay-collapsed-until-opened.md +5 -0
- package/corpus/templates/analytics/changelog/2026-07-08-the-uptime-monitor-list-now-has-a-current-status-overview-wi.md +6 -0
- package/corpus/templates/analytics/docs/error-capture.md +172 -0
- package/corpus/templates/analytics/docs/uptime-monitoring.md +150 -0
- package/corpus/templates/analytics/server/db/schema-errors.ts +150 -0
- package/corpus/templates/analytics/server/db/schema-monitoring.ts +177 -0
- package/corpus/templates/analytics/server/db/schema.ts +6 -0
- package/corpus/templates/analytics/server/jobs/uptime-monitors.ts +123 -0
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +41 -0
- package/corpus/templates/analytics/server/lib/data-dictionary-context.ts +55 -12
- package/corpus/templates/analytics/server/lib/error-capture.ts +1331 -0
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +47 -1
- package/corpus/templates/analytics/server/lib/monitor-stats.ts +494 -0
- package/corpus/templates/analytics/server/lib/status-pages.ts +798 -0
- package/corpus/templates/analytics/server/lib/uptime-monitors.ts +1665 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +7 -37
- package/corpus/templates/analytics/server/plugins/auth.ts +11 -1
- package/corpus/templates/analytics/server/plugins/db.ts +408 -0
- package/corpus/templates/analytics/server/plugins/uptime-monitor-jobs.ts +63 -0
- package/corpus/templates/assets/app/routes/_index.tsx +1 -1
- package/corpus/templates/assets/app/routes/settings.tsx +22 -1
- package/corpus/templates/assets/changelog/2026-07-08-recent-drafts-keep-comfortable-side-padding.md +6 -0
- package/corpus/templates/assets/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/brain/app/routes/settings.tsx +43 -5
- package/corpus/templates/brain/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/calendar/app/pages/Settings.tsx +44 -6
- package/corpus/templates/calendar/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/chat/app/routes/settings.tsx +16 -1
- package/corpus/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/clips/actions/lib/audio-only-transcription.ts +79 -37
- package/corpus/templates/clips/app/components/player/player-controls.tsx +35 -0
- package/corpus/templates/clips/app/components/player/video-player.tsx +162 -18
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +63 -6
- package/corpus/templates/clips/app/routes/record.tsx +18 -1
- package/corpus/templates/clips/changelog/2026-07-07-shared-clips-start-playback-reliably-from-the-first-play-click.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-camera-and-microphone-menus-now-show-which-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-copies-new-clip-links-after-saving.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-chrome-extension-recordings-now-continue-after-granting-came.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-mobile-shared-clips-now-have-loom-style-tap-and-skip-controls.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-recordings-and-uploads-copy-links-after-saving.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-08-settings-are-cleaner-searchable-and-collapse-s3-with-builder.md +5 -0
- package/corpus/templates/clips/changelog/2026-07-08-transcripts-are-more-reliable-for-longer-desktop-recordings-.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -0
- package/corpus/templates/clips/chrome-extension/src/background.ts +162 -13
- package/corpus/templates/clips/chrome-extension/src/content-script.ts +14 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +36 -0
- package/corpus/templates/clips/chrome-extension/src/overlay.ts +99 -25
- package/corpus/templates/clips/chrome-extension/src/permission.ts +63 -14
- package/corpus/templates/clips/chrome-extension/src/popup.ts +123 -23
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +47 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +33 -4
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +214 -29
- package/corpus/templates/content/actions/attach-content-database-source.ts +3 -0
- package/corpus/templates/content/actions/change-content-database-source-role.ts +1 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +42 -32
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +352 -81
- package/corpus/templates/content/app/components/editor/database/settings.tsx +49 -24
- package/corpus/templates/content/app/routes/_app.settings.tsx +19 -1
- package/corpus/templates/content/changelog/2026-07-07-builder-source-tag-fields-now-import-as-multi-select.md +6 -0
- package/corpus/templates/content/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/content/shared/api.ts +3 -0
- package/corpus/templates/content/shared/properties.ts +42 -0
- package/corpus/templates/design/actions/generate-design.ts +3 -0
- package/corpus/templates/design/actions/get-design-system.ts +147 -1
- package/corpus/templates/design/app/routes/settings.tsx +16 -1
- package/corpus/templates/design/changelog/2026-07-08-design-generation-now-follows-hydrated-builder-design-system.md +6 -0
- package/corpus/templates/design/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/dispatch/app/routes/settings.tsx +23 -2
- package/corpus/templates/dispatch/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/forms/app/routes/_app.settings.tsx +16 -1
- package/corpus/templates/forms/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/macros/app/routes/settings.tsx +16 -1
- package/corpus/templates/macros/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +1 -1
- package/corpus/templates/mail/app/components/settings/SnippetsSection.tsx +1 -1
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +123 -105
- package/corpus/templates/mail/changelog/2026-07-08-settings-redesigned-with-a-consistent-searchable-layout.md +5 -0
- package/corpus/templates/plan/app/routes/settings.tsx +23 -2
- package/corpus/templates/plan/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/corpus/templates/slides/actions/add-slide.ts +1 -0
- package/corpus/templates/slides/actions/get-design-system.ts +147 -1
- package/corpus/templates/slides/app/pages/Index.tsx +46 -1
- package/corpus/templates/slides/app/routes/settings.tsx +16 -1
- package/corpus/templates/slides/changelog/2026-07-08-deck-generation-now-follows-hydrated-builder-design-system-g.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
- package/dist/agent/run-ownership.d.ts +6 -0
- package/dist/agent/run-ownership.d.ts.map +1 -1
- package/dist/agent/run-ownership.js +11 -1
- package/dist/agent/run-ownership.js.map +1 -1
- package/dist/changelog/parse.d.ts +7 -0
- package/dist/changelog/parse.d.ts.map +1 -1
- package/dist/changelog/parse.js +64 -0
- package/dist/changelog/parse.js.map +1 -1
- package/dist/chat-threads/schema.d.ts +445 -0
- package/dist/chat-threads/schema.d.ts.map +1 -0
- package/dist/chat-threads/schema.js +39 -0
- package/dist/chat-threads/schema.js.map +1 -0
- package/dist/chat-threads/store.d.ts +12 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +99 -10
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/workspace-dev.d.ts.map +1 -1
- package/dist/cli/workspace-dev.js +20 -5
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +35 -7
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +105 -183
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/analytics-session.d.ts +3 -0
- package/dist/client/analytics-session.d.ts.map +1 -0
- package/dist/client/analytics-session.js +66 -0
- package/dist/client/analytics-session.js.map +1 -0
- package/dist/client/analytics.d.ts +32 -0
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +116 -46
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +2 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +16 -6
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/components/ui/message-scroller.d.ts +16 -0
- package/dist/client/components/ui/message-scroller.d.ts.map +1 -0
- package/dist/client/components/ui/message-scroller.js +25 -0
- package/dist/client/components/ui/message-scroller.js.map +1 -0
- package/dist/client/conversation/AgentConversation.d.ts +1 -1
- package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
- package/dist/client/conversation/AgentConversation.js +3 -8
- package/dist/client/conversation/AgentConversation.js.map +1 -1
- package/dist/client/error-capture.d.ts +99 -0
- package/dist/client/error-capture.d.ts.map +1 -0
- package/dist/client/error-capture.js +437 -0
- package/dist/client/error-capture.js.map +1 -0
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/session-replay.d.ts +22 -0
- package/dist/client/session-replay.d.ts.map +1 -1
- package/dist/client/session-replay.js +45 -4
- package/dist/client/session-replay.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +100 -5
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts +49 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +131 -19
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- 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.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +13 -8
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
- package/dist/client/sharing/ShareDialog.js +12 -7
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/mcp/builtin-tools.d.ts.map +1 -1
- package/dist/mcp/builtin-tools.js +21 -2
- package/dist/mcp/builtin-tools.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/org/schema.d.ts +15 -15
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +109 -73
- 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/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +28 -16
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/sharing/actions/list-resource-shares.js +30 -1
- package/dist/sharing/actions/list-resource-shares.js.map +1 -1
- package/dist/sharing/actions/share-resource.js +6 -0
- package/dist/sharing/actions/share-resource.js.map +1 -1
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
- package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +192 -30
- package/dist/vite/client.js.map +1 -1
- package/docs/content/toolkit-settings.mdx +56 -3
- package/package.json +2 -1
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +4 -2
- package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +9 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./
|
|
2
|
+
getOrCreateAnalyticsAnonymousId,
|
|
3
|
+
getOrCreateAnalyticsSessionId,
|
|
4
|
+
} from "./analytics-session.js";
|
|
5
|
+
import { scrubUrl } from "./url-scrub.js";
|
|
6
6
|
|
|
7
7
|
type ReplayEvent = Record<string, unknown>;
|
|
8
8
|
type QueuedReplayEvent = {
|
|
@@ -842,7 +842,7 @@ function buildReplayBody(
|
|
|
842
842
|
): ReplayUploadPayload | null {
|
|
843
843
|
const options = state.options;
|
|
844
844
|
if (!options || !state.replayId) return null;
|
|
845
|
-
const sessionId =
|
|
845
|
+
const sessionId = getOrCreateAnalyticsSessionId();
|
|
846
846
|
if (!sessionId) return null;
|
|
847
847
|
const properties = replayPropertiesForUpload(state, options);
|
|
848
848
|
const userEmail = replayUserEmail(properties);
|
|
@@ -864,7 +864,7 @@ function buildReplayBody(
|
|
|
864
864
|
sessionId,
|
|
865
865
|
...(userId ? { userId } : {}),
|
|
866
866
|
...(userEmail ? { userEmail } : {}),
|
|
867
|
-
anonymousId:
|
|
867
|
+
anonymousId: getOrCreateAnalyticsAnonymousId(),
|
|
868
868
|
sequence: state.sequence,
|
|
869
869
|
reason,
|
|
870
870
|
status: isFinalFlushReason(reason) ? "completed" : "active",
|
|
@@ -1956,7 +1956,7 @@ export async function startSessionReplay(
|
|
|
1956
1956
|
const normalized = normalizeOptions(options);
|
|
1957
1957
|
if (!normalized) return { started: false, reason: "missing-public-key" };
|
|
1958
1958
|
|
|
1959
|
-
const sessionId =
|
|
1959
|
+
const sessionId = getOrCreateAnalyticsSessionId();
|
|
1960
1960
|
if (!sessionId) return { started: false, reason: "missing-session-id" };
|
|
1961
1961
|
const sampled = shouldSampleSessionReplay(
|
|
1962
1962
|
sessionId,
|
|
@@ -2169,3 +2169,53 @@ export function maybeStartSessionReplay(
|
|
|
2169
2169
|
export function isSessionReplayActive(): boolean {
|
|
2170
2170
|
return getState().active;
|
|
2171
2171
|
}
|
|
2172
|
+
|
|
2173
|
+
/**
|
|
2174
|
+
* The active session replay id when a recording is running, or the last one
|
|
2175
|
+
* persisted for this analytics session in `localStorage`. First-party error
|
|
2176
|
+
* capture uses this to tie each captured exception to the replay it happened
|
|
2177
|
+
* in, so triage can jump straight to `/sessions/<recordingId>`.
|
|
2178
|
+
*/
|
|
2179
|
+
export function getSessionReplayId(): string | null {
|
|
2180
|
+
const state = getState();
|
|
2181
|
+
if (state.active && state.replayId) return state.replayId;
|
|
2182
|
+
const stored = readStoredReplaySession();
|
|
2183
|
+
return stored?.replayId ?? null;
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
/**
|
|
2187
|
+
* Surface a manually captured exception on the active session replay timeline
|
|
2188
|
+
* as an `agent-native.console` custom event, reusing the diagnostics contract
|
|
2189
|
+
* (`level`, `source: "console"`, `message`, `stack`, `url`). No-op when no
|
|
2190
|
+
* recording is active. Auto-captured `window.onerror` / `unhandledrejection`
|
|
2191
|
+
* are intentionally NOT routed here — the recorder already logs those as
|
|
2192
|
+
* `window-error` / `unhandledrejection`, so re-emitting would double-count.
|
|
2193
|
+
*/
|
|
2194
|
+
export function emitSessionReplayException(input: {
|
|
2195
|
+
type: string;
|
|
2196
|
+
message: string;
|
|
2197
|
+
level?: "fatal" | "error" | "warning" | "info" | "debug";
|
|
2198
|
+
stack?: string;
|
|
2199
|
+
url?: string;
|
|
2200
|
+
}): void {
|
|
2201
|
+
const state = getState();
|
|
2202
|
+
if (!state.active || !state.addCustomEvent) return;
|
|
2203
|
+
const level =
|
|
2204
|
+
input.level === "warning"
|
|
2205
|
+
? "warn"
|
|
2206
|
+
: input.level === "info" || input.level === "debug"
|
|
2207
|
+
? input.level
|
|
2208
|
+
: "error";
|
|
2209
|
+
emitReplayCustomEvent(state, SESSION_REPLAY_CONSOLE_EVENT_TAG, {
|
|
2210
|
+
level,
|
|
2211
|
+
source: "console",
|
|
2212
|
+
message: `${input.type}: ${input.message}`.slice(
|
|
2213
|
+
0,
|
|
2214
|
+
MAX_CONSOLE_MESSAGE_LENGTH,
|
|
2215
|
+
),
|
|
2216
|
+
...(input.stack
|
|
2217
|
+
? { stack: input.stack.slice(0, MAX_CONSOLE_STACK_LENGTH) }
|
|
2218
|
+
: {}),
|
|
2219
|
+
...(input.url ? { url: input.url } : {}),
|
|
2220
|
+
});
|
|
2221
|
+
}
|
|
@@ -53,7 +53,10 @@ import { AutomationsSection } from "./AutomationsSection.js";
|
|
|
53
53
|
import { DemoModeSection } from "./DemoModeSection.js";
|
|
54
54
|
import { SecretsSection } from "./SecretsSection.js";
|
|
55
55
|
import { SettingsSection } from "./SettingsSection.js";
|
|
56
|
-
import type {
|
|
56
|
+
import type {
|
|
57
|
+
SettingsSearchEntry,
|
|
58
|
+
SettingsTabItem,
|
|
59
|
+
} from "./SettingsTabsPage.js";
|
|
57
60
|
import { UsageSection } from "./UsageSection.js";
|
|
58
61
|
import {
|
|
59
62
|
type BuilderConnectFlow,
|
|
@@ -873,6 +876,7 @@ function LLMSectionInner({
|
|
|
873
876
|
|
|
874
877
|
return (
|
|
875
878
|
<SettingsSection
|
|
879
|
+
id={settingsSectionDomId("llm")}
|
|
876
880
|
icon={<IconBrain size={14} />}
|
|
877
881
|
title="LLM"
|
|
878
882
|
subtitle="Connect any major LLM — Claude, GPT, Gemini, and more."
|
|
@@ -1541,6 +1545,7 @@ function EmailSectionInner({
|
|
|
1541
1545
|
|
|
1542
1546
|
return (
|
|
1543
1547
|
<SettingsSection
|
|
1548
|
+
id={settingsSectionDomId("email")}
|
|
1544
1549
|
icon={<IconMail size={14} />}
|
|
1545
1550
|
title="Email"
|
|
1546
1551
|
subtitle="Needed before deploy for password resets, team invitations, share notifications, and dashboard email reports. Local development can run without it."
|
|
@@ -1859,6 +1864,7 @@ function AgentLimitsSectionInner({
|
|
|
1859
1864
|
|
|
1860
1865
|
return (
|
|
1861
1866
|
<SettingsSection
|
|
1867
|
+
id={settingsSectionDomId("limits")}
|
|
1862
1868
|
icon={<IconGauge size={14} />}
|
|
1863
1869
|
title="Agent Limits"
|
|
1864
1870
|
subtitle="Control how long a single agent response can work before pausing."
|
|
@@ -2053,6 +2059,103 @@ const WORKSPACE_SETTINGS_SECTIONS: readonly SettingsSectionId[] = [
|
|
|
2053
2059
|
"auth",
|
|
2054
2060
|
];
|
|
2055
2061
|
|
|
2062
|
+
// Search metadata for each section so settings search can deep-link straight
|
|
2063
|
+
// to a section from any tab. Labels mirror the section headers; keywords add
|
|
2064
|
+
// synonyms and provider names the header doesn't spell out.
|
|
2065
|
+
const SETTINGS_SECTION_SEARCH_META: Record<
|
|
2066
|
+
SettingsSectionId,
|
|
2067
|
+
{ label: string; keywords: string; description?: string }
|
|
2068
|
+
> = {
|
|
2069
|
+
account: {
|
|
2070
|
+
label: "Account",
|
|
2071
|
+
keywords: "profile photo avatar identity signed in email name",
|
|
2072
|
+
},
|
|
2073
|
+
llm: {
|
|
2074
|
+
label: "LLM",
|
|
2075
|
+
keywords:
|
|
2076
|
+
"model claude gpt openai anthropic gemini api key provider ai engine llm",
|
|
2077
|
+
},
|
|
2078
|
+
"app-models": {
|
|
2079
|
+
label: "App Default Model",
|
|
2080
|
+
keywords: "default model provider app template composer",
|
|
2081
|
+
},
|
|
2082
|
+
limits: {
|
|
2083
|
+
label: "Agent Limits",
|
|
2084
|
+
keywords: "max iterations budget loop timeout runtime",
|
|
2085
|
+
},
|
|
2086
|
+
voice: {
|
|
2087
|
+
label: "Voice Transcription",
|
|
2088
|
+
keywords: "microphone dictation speech to text whisper",
|
|
2089
|
+
},
|
|
2090
|
+
"demo-mode": {
|
|
2091
|
+
label: "Demo mode",
|
|
2092
|
+
keywords: "fake data anonymize redact screenshot privacy mask",
|
|
2093
|
+
},
|
|
2094
|
+
automations: {
|
|
2095
|
+
label: "Automations",
|
|
2096
|
+
keywords: "triggers scheduled events cron jobs",
|
|
2097
|
+
},
|
|
2098
|
+
secrets: {
|
|
2099
|
+
label: "API Keys & Connections",
|
|
2100
|
+
keywords: "secrets credentials tokens api keys environment variables",
|
|
2101
|
+
},
|
|
2102
|
+
hosting: {
|
|
2103
|
+
label: "Hosting",
|
|
2104
|
+
keywords: "deploy netlify vercel cloudflare builder nitro",
|
|
2105
|
+
},
|
|
2106
|
+
database: {
|
|
2107
|
+
label: "Database",
|
|
2108
|
+
keywords: "postgres sqlite neon supabase turso storage sql pglite",
|
|
2109
|
+
},
|
|
2110
|
+
uploads: {
|
|
2111
|
+
label: "File uploads",
|
|
2112
|
+
keywords: "files storage s3 avatars attachments bucket blob",
|
|
2113
|
+
},
|
|
2114
|
+
auth: {
|
|
2115
|
+
label: "Authentication",
|
|
2116
|
+
keywords: "login signup oauth google github better auth access sso",
|
|
2117
|
+
},
|
|
2118
|
+
email: {
|
|
2119
|
+
label: "Email",
|
|
2120
|
+
keywords: "resend sendgrid smtp transactional notifications reports",
|
|
2121
|
+
},
|
|
2122
|
+
browser: {
|
|
2123
|
+
label: "Browser Automation",
|
|
2124
|
+
keywords: "web scraping playwright chrome headless",
|
|
2125
|
+
},
|
|
2126
|
+
background: {
|
|
2127
|
+
label: "Background Agent",
|
|
2128
|
+
keywords: "code changes branches builder production async",
|
|
2129
|
+
},
|
|
2130
|
+
integrations: {
|
|
2131
|
+
label: "Integrations",
|
|
2132
|
+
keywords: "slack telegram whatsapp discord messaging connect",
|
|
2133
|
+
},
|
|
2134
|
+
usage: {
|
|
2135
|
+
label: "Usage",
|
|
2136
|
+
keywords: "tokens cost spend billing consumption",
|
|
2137
|
+
},
|
|
2138
|
+
a2a: {
|
|
2139
|
+
label: "Connected Agents (A2A)",
|
|
2140
|
+
keywords: "remote agents protocol a2a connected",
|
|
2141
|
+
},
|
|
2142
|
+
};
|
|
2143
|
+
|
|
2144
|
+
function buildSectionSearchEntries(
|
|
2145
|
+
sections: readonly SettingsSectionId[],
|
|
2146
|
+
): SettingsSearchEntry[] {
|
|
2147
|
+
return sections.map((section) => {
|
|
2148
|
+
const meta = SETTINGS_SECTION_SEARCH_META[section];
|
|
2149
|
+
return {
|
|
2150
|
+
id: `section:${section}`,
|
|
2151
|
+
label: meta.label,
|
|
2152
|
+
keywords: meta.keywords,
|
|
2153
|
+
description: meta.description,
|
|
2154
|
+
hash: section,
|
|
2155
|
+
};
|
|
2156
|
+
});
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2056
2159
|
function normalizeSettingsSection(
|
|
2057
2160
|
value?: string | null,
|
|
2058
2161
|
): SettingsSectionId | null {
|
|
@@ -2238,6 +2341,7 @@ function AccountSectionInner({
|
|
|
2238
2341
|
|
|
2239
2342
|
return (
|
|
2240
2343
|
<SettingsSection
|
|
2344
|
+
id={settingsSectionDomId("account")}
|
|
2241
2345
|
icon={<IconUserCircle size={14} />}
|
|
2242
2346
|
title="Account"
|
|
2243
2347
|
subtitle="Your profile photo and signed-in identity."
|
|
@@ -2488,6 +2592,7 @@ function SettingsPanelContent({
|
|
|
2488
2592
|
{/* Voice transcription */}
|
|
2489
2593
|
{shouldShowSection("voice") && (
|
|
2490
2594
|
<SettingsSection
|
|
2595
|
+
id={settingsSectionDomId("voice")}
|
|
2491
2596
|
icon={<IconMicrophone size={14} />}
|
|
2492
2597
|
title="Voice Transcription"
|
|
2493
2598
|
subtitle="How the composer microphone turns your voice into text."
|
|
@@ -2501,6 +2606,7 @@ function SettingsPanelContent({
|
|
|
2501
2606
|
{/* Demo mode */}
|
|
2502
2607
|
{shouldShowSection("demo-mode") && (
|
|
2503
2608
|
<SettingsSection
|
|
2609
|
+
id={settingsSectionDomId("demo-mode")}
|
|
2504
2610
|
icon={<IconEyeOff size={14} />}
|
|
2505
2611
|
title="Demo mode"
|
|
2506
2612
|
subtitle="Replace names, emails, and numbers with realistic fake data everywhere — in the UI and what the agent sees. IDs and structure are preserved so the app keeps working."
|
|
@@ -2514,6 +2620,7 @@ function SettingsPanelContent({
|
|
|
2514
2620
|
{/* Automations */}
|
|
2515
2621
|
{shouldShowSection("automations") && (
|
|
2516
2622
|
<SettingsSection
|
|
2623
|
+
id={settingsSectionDomId("automations")}
|
|
2517
2624
|
icon={<IconBolt size={14} />}
|
|
2518
2625
|
title="Automations"
|
|
2519
2626
|
subtitle="Event-triggered and scheduled automations."
|
|
@@ -2541,6 +2648,7 @@ function SettingsPanelContent({
|
|
|
2541
2648
|
{/* Hosting */}
|
|
2542
2649
|
{shouldShowSection("hosting") && (
|
|
2543
2650
|
<SettingsSection
|
|
2651
|
+
id={settingsSectionDomId("hosting")}
|
|
2544
2652
|
icon={<IconCloud size={14} />}
|
|
2545
2653
|
title="Hosting"
|
|
2546
2654
|
subtitle="Deploy your app to the cloud."
|
|
@@ -2571,6 +2679,7 @@ function SettingsPanelContent({
|
|
|
2571
2679
|
{/* Database */}
|
|
2572
2680
|
{shouldShowSection("database") && (
|
|
2573
2681
|
<SettingsSection
|
|
2682
|
+
id={settingsSectionDomId("database")}
|
|
2574
2683
|
icon={<IconDatabase size={14} />}
|
|
2575
2684
|
title="Database"
|
|
2576
2685
|
subtitle="Connect a cloud database for persistent storage."
|
|
@@ -2601,6 +2710,7 @@ function SettingsPanelContent({
|
|
|
2601
2710
|
{/* File uploads */}
|
|
2602
2711
|
{shouldShowSection("uploads") && (
|
|
2603
2712
|
<SettingsSection
|
|
2713
|
+
id={settingsSectionDomId("uploads")}
|
|
2604
2714
|
icon={<IconUpload size={14} />}
|
|
2605
2715
|
title="File uploads"
|
|
2606
2716
|
subtitle="Where user-uploaded files (avatars, chat attachments) are stored."
|
|
@@ -2631,6 +2741,7 @@ function SettingsPanelContent({
|
|
|
2631
2741
|
{/* Authentication */}
|
|
2632
2742
|
{shouldShowSection("auth") && (
|
|
2633
2743
|
<SettingsSection
|
|
2744
|
+
id={settingsSectionDomId("auth")}
|
|
2634
2745
|
icon={<IconShield size={14} />}
|
|
2635
2746
|
title="Authentication"
|
|
2636
2747
|
subtitle="Set up user authentication and access control."
|
|
@@ -2669,6 +2780,7 @@ function SettingsPanelContent({
|
|
|
2669
2780
|
{/* Browser Automation */}
|
|
2670
2781
|
{shouldShowSection("browser") && (
|
|
2671
2782
|
<SettingsSection
|
|
2783
|
+
id={settingsSectionDomId("browser")}
|
|
2672
2784
|
icon={<IconBrowser size={14} />}
|
|
2673
2785
|
title="Browser Automation"
|
|
2674
2786
|
subtitle="Let agents control a real browser for web tasks."
|
|
@@ -2691,6 +2803,7 @@ function SettingsPanelContent({
|
|
|
2691
2803
|
|
|
2692
2804
|
{builderBranchesAvailable && shouldShowSection("background") && (
|
|
2693
2805
|
<SettingsSection
|
|
2806
|
+
id={settingsSectionDomId("background")}
|
|
2694
2807
|
icon={<IconGitBranch size={14} />}
|
|
2695
2808
|
title="Background Agent"
|
|
2696
2809
|
subtitle="Make code changes from production mode via Builder."
|
|
@@ -2714,6 +2827,7 @@ function SettingsPanelContent({
|
|
|
2714
2827
|
{/* Integrations */}
|
|
2715
2828
|
{shouldShowSection("integrations") && (
|
|
2716
2829
|
<SettingsSection
|
|
2830
|
+
id={settingsSectionDomId("integrations")}
|
|
2717
2831
|
icon={<IconPlugConnected size={14} />}
|
|
2718
2832
|
title="Integrations"
|
|
2719
2833
|
subtitle="Connect messaging platforms and external services."
|
|
@@ -2729,6 +2843,7 @@ function SettingsPanelContent({
|
|
|
2729
2843
|
{/* Usage & spend */}
|
|
2730
2844
|
{shouldShowSection("usage") && (
|
|
2731
2845
|
<SettingsSection
|
|
2846
|
+
id={settingsSectionDomId("usage")}
|
|
2732
2847
|
icon={<IconCoin size={14} />}
|
|
2733
2848
|
title="Usage"
|
|
2734
2849
|
subtitle="Track token consumption and estimated cost — broken down by chat, automations, and background jobs."
|
|
@@ -2742,6 +2857,7 @@ function SettingsPanelContent({
|
|
|
2742
2857
|
{/* A2A Agents */}
|
|
2743
2858
|
{shouldShowSection("a2a") && (
|
|
2744
2859
|
<SettingsSection
|
|
2860
|
+
id={settingsSectionDomId("a2a")}
|
|
2745
2861
|
icon={<IconTopologyRing2 size={14} />}
|
|
2746
2862
|
title="Connected Agents (A2A)"
|
|
2747
2863
|
subtitle="Manage remote agents connected via the A2A protocol."
|
|
@@ -2778,6 +2894,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
|
|
|
2778
2894
|
id: "agent",
|
|
2779
2895
|
label: "Agent",
|
|
2780
2896
|
icon: IconBrain,
|
|
2897
|
+
keywords: "agent model llm limits voice automations",
|
|
2898
|
+
searchEntries: buildSectionSearchEntries(AGENT_SETTINGS_SECTIONS),
|
|
2781
2899
|
content: (
|
|
2782
2900
|
<SettingsPanelContent
|
|
2783
2901
|
{...baseProps}
|
|
@@ -2791,6 +2909,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
|
|
|
2791
2909
|
id: "connections",
|
|
2792
2910
|
label: "Connections",
|
|
2793
2911
|
icon: IconPlugConnected,
|
|
2912
|
+
keywords: "connections secrets integrations email browser usage",
|
|
2913
|
+
searchEntries: buildSectionSearchEntries(CONNECTION_SETTINGS_SECTIONS),
|
|
2794
2914
|
content: (
|
|
2795
2915
|
<SettingsPanelContent
|
|
2796
2916
|
{...baseProps}
|
|
@@ -2804,6 +2924,8 @@ export function useAgentSettingsTabs(): SettingsTabItem[] {
|
|
|
2804
2924
|
id: "workspace",
|
|
2805
2925
|
label: "Workspace",
|
|
2806
2926
|
icon: IconCloud,
|
|
2927
|
+
keywords: "workspace account hosting database uploads auth",
|
|
2928
|
+
searchEntries: buildSectionSearchEntries(WORKSPACE_SETTINGS_SECTIONS),
|
|
2807
2929
|
content: (
|
|
2808
2930
|
<SettingsPanelContent
|
|
2809
2931
|
{...baseProps}
|