@agent-native/core 0.88.0 → 0.90.1
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 +82 -2
- package/corpus/core/docs/content/agent-native-toolkit.mdx +87 -146
- package/corpus/core/docs/content/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/components.mdx +16 -4
- package/corpus/core/docs/content/data-programs.mdx +329 -0
- package/corpus/core/docs/content/deployment.mdx +9 -9
- package/corpus/core/docs/content/extensions.mdx +8 -7
- package/corpus/core/docs/content/generative-ui.mdx +5 -3
- package/corpus/core/docs/content/key-concepts.mdx +6 -9
- package/corpus/core/docs/content/locales/ar-SA/agent-native-toolkit.mdx +100 -70
- package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/ar-SA/components.mdx +12 -2
- package/corpus/core/docs/content/locales/ar-SA/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/ar-SA/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/ar-SA/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/ar-SA/key-concepts.mdx +7 -9
- package/corpus/core/docs/content/locales/ar-SA/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/de-DE/agent-native-toolkit.mdx +100 -74
- package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/de-DE/components.mdx +12 -2
- package/corpus/core/docs/content/locales/de-DE/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/de-DE/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/de-DE/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/de-DE/key-concepts.mdx +8 -10
- package/corpus/core/docs/content/locales/de-DE/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/es-ES/agent-native-toolkit.mdx +100 -74
- package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/es-ES/components.mdx +12 -2
- package/corpus/core/docs/content/locales/es-ES/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/es-ES/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/es-ES/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/es-ES/key-concepts.mdx +8 -10
- package/corpus/core/docs/content/locales/es-ES/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/fr-FR/agent-native-toolkit.mdx +100 -76
- package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/fr-FR/components.mdx +12 -2
- package/corpus/core/docs/content/locales/fr-FR/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/fr-FR/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/fr-FR/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/fr-FR/key-concepts.mdx +8 -10
- package/corpus/core/docs/content/locales/fr-FR/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/hi-IN/agent-native-toolkit.mdx +100 -71
- package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/hi-IN/components.mdx +20 -10
- package/corpus/core/docs/content/locales/hi-IN/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/hi-IN/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/hi-IN/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/hi-IN/key-concepts.mdx +8 -10
- package/corpus/core/docs/content/locales/hi-IN/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/ja-JP/agent-native-toolkit.mdx +100 -64
- package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/ja-JP/components.mdx +12 -2
- package/corpus/core/docs/content/locales/ja-JP/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/ja-JP/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/ja-JP/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/ja-JP/key-concepts.mdx +9 -11
- package/corpus/core/docs/content/locales/ja-JP/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/ko-KR/agent-native-toolkit.mdx +100 -60
- package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/ko-KR/components.mdx +20 -10
- package/corpus/core/docs/content/locales/ko-KR/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/ko-KR/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/ko-KR/extensions.mdx +16 -14
- package/corpus/core/docs/content/locales/ko-KR/key-concepts.mdx +9 -11
- package/corpus/core/docs/content/locales/ko-KR/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/pt-BR/agent-native-toolkit.mdx +100 -74
- package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/pt-BR/components.mdx +12 -2
- package/corpus/core/docs/content/locales/pt-BR/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/pt-BR/deployment.mdx +8 -9
- package/corpus/core/docs/content/locales/pt-BR/extensions.mdx +6 -4
- package/corpus/core/docs/content/locales/pt-BR/key-concepts.mdx +8 -11
- package/corpus/core/docs/content/locales/pt-BR/real-time-collaboration.mdx +9 -10
- package/corpus/core/docs/content/locales/zh-CN/agent-native-toolkit.mdx +100 -58
- package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/zh-CN/components.mdx +20 -10
- package/corpus/core/docs/content/locales/zh-CN/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/zh-CN/deployment.mdx +7 -9
- package/corpus/core/docs/content/locales/zh-CN/extensions.mdx +16 -14
- package/corpus/core/docs/content/locales/zh-CN/key-concepts.mdx +7 -11
- package/corpus/core/docs/content/locales/zh-CN/real-time-collaboration.mdx +10 -11
- package/corpus/core/docs/content/locales/zh-TW/agent-native-toolkit.mdx +100 -58
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +19 -19
- package/corpus/core/docs/content/locales/zh-TW/components.mdx +20 -10
- package/corpus/core/docs/content/locales/zh-TW/data-programs.mdx +329 -0
- package/corpus/core/docs/content/locales/zh-TW/deployment.mdx +7 -9
- package/corpus/core/docs/content/locales/zh-TW/extensions.mdx +16 -14
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.mdx +7 -11
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.mdx +10 -11
- package/corpus/core/docs/content/real-time-collaboration.mdx +10 -11
- package/corpus/core/docs/content/toolkit-app-adapters.mdx +46 -0
- package/corpus/core/docs/content/toolkit-collaboration-ui.mdx +48 -0
- package/corpus/core/docs/content/toolkit-sharing-ui.mdx +33 -0
- package/corpus/core/docs/content/toolkit-shell-hooks.mdx +27 -0
- package/corpus/core/docs/content/toolkit-ui.mdx +69 -0
- package/corpus/core/package.json +5 -1
- package/corpus/core/src/agent/durable-background.ts +53 -0
- package/corpus/core/src/agent/engine/ai-sdk-engine.ts +7 -1
- package/corpus/core/src/agent/engine/anthropic-engine.ts +29 -1
- package/corpus/core/src/agent/engine/builder-engine.ts +1 -0
- package/corpus/core/src/agent/engine/output-tokens.ts +26 -13
- package/corpus/core/src/agent/engine/registry.ts +45 -26
- package/corpus/core/src/agent/engine/translate-ai-sdk.ts +56 -7
- package/corpus/core/src/agent/engine/translate-anthropic.ts +43 -1
- package/corpus/core/src/agent/engine/types.ts +16 -0
- package/corpus/core/src/agent/model-config.ts +100 -0
- package/corpus/core/src/agent/production-agent.ts +492 -241
- package/corpus/core/src/agent/runtime-context.ts +50 -12
- package/corpus/core/src/agent/tool-result-images.ts +178 -0
- package/corpus/core/src/brand-kit/fig/index.ts +8 -4
- package/corpus/core/src/client/AgentPanel.tsx +88 -31
- package/corpus/core/src/client/AssistantChat.tsx +95 -46
- package/corpus/core/src/client/KeepTabOpenNotice.tsx +176 -0
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +7 -0
- package/corpus/core/src/client/RunStuckBanner.tsx +13 -1
- package/corpus/core/src/client/chat/run-recovery.tsx +7 -1
- package/corpus/core/src/client/clipboard.ts +17 -13
- package/corpus/core/src/client/components/AgentPresenceChip.tsx +4 -69
- package/corpus/core/src/client/components/LiveCursorOverlay.tsx +5 -240
- package/corpus/core/src/client/components/PresenceBar.tsx +4 -346
- package/corpus/core/src/client/components/RecentEditHighlights.tsx +4 -219
- package/corpus/core/src/client/components/RemoteSelectionRings.tsx +5 -220
- package/corpus/core/src/client/composer/TiptapComposer.tsx +94 -38
- package/corpus/core/src/client/db-admin/SqlEditor.tsx +13 -3
- package/corpus/core/src/client/dynamic-suggestions.ts +6 -1
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +0 -14
- package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +29 -30
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +2 -1
- package/corpus/core/src/client/host-bridge.ts +29 -8
- package/corpus/core/src/client/i18n.tsx +7 -1
- package/corpus/core/src/client/index.ts +5 -0
- package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +34 -69
- package/corpus/core/src/client/rich-markdown-editor/SharedRichEditor.tsx +4 -0
- package/corpus/core/src/client/rich-markdown-editor/useCollabReconcile.ts +7 -1
- package/corpus/core/src/client/settings/SettingsPanel.tsx +409 -230
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +5 -7
- package/corpus/core/src/client/settings/index.ts +5 -1
- package/corpus/core/src/client/sharing/VisibilityBadge.tsx +4 -37
- package/corpus/core/src/client/use-run-stuck-detection.ts +10 -1
- package/corpus/core/src/coding-tools/run-code.ts +473 -74
- package/corpus/core/src/coding-tools/sandbox/background.ts +406 -0
- package/corpus/core/src/coding-tools/sandbox/executions-store.ts +517 -0
- package/corpus/core/src/coding-tools/sandbox/index.ts +53 -13
- package/corpus/core/src/coding-tools/sandbox/local-child-process-adapter.ts +61 -4
- package/corpus/core/src/collab/client.ts +870 -562
- package/corpus/core/src/collab/presence.ts +12 -23
- package/corpus/core/src/collab/recent-edits.ts +13 -32
- package/corpus/core/src/data-programs/actions.ts +335 -0
- package/corpus/core/src/data-programs/contract.ts +284 -0
- package/corpus/core/src/data-programs/execute.ts +693 -0
- package/corpus/core/src/data-programs/index.ts +72 -0
- package/corpus/core/src/data-programs/schema.ts +148 -0
- package/corpus/core/src/data-programs/store.ts +755 -0
- package/corpus/core/src/deploy/build.ts +34 -0
- package/corpus/core/src/extensions/actions.ts +2 -2
- package/corpus/core/src/file-upload/builder.ts +11 -0
- package/corpus/core/src/integrations/webhook-handler.ts +27 -8
- package/corpus/core/src/local-artifacts/index.ts +1 -1
- package/corpus/core/src/localization/default-messages.ts +1 -2
- package/corpus/core/src/mcp-client/index.ts +29 -0
- package/corpus/core/src/onboarding/default-steps.ts +5 -2
- package/corpus/core/src/resources/store.ts +34 -3
- package/corpus/core/src/scripts/agent-engines/list-agent-engines.ts +4 -8
- package/corpus/core/src/scripts/agent-engines/test-agent-engine.ts +9 -2
- package/corpus/core/src/scripts/db/tool-mode.ts +2 -2
- package/corpus/core/src/scripts/resources/migrate-learnings.ts +9 -13
- package/corpus/core/src/server/agent-chat-plugin.ts +154 -62
- package/corpus/core/src/server/agent-discovery.ts +67 -7
- package/corpus/core/src/server/auth.ts +90 -3
- package/corpus/core/src/server/builder-design-systems.ts +2 -2
- package/corpus/core/src/server/core-routes-plugin.ts +119 -22
- package/corpus/core/src/server/credential-provider.ts +28 -8
- package/corpus/core/src/server/csrf.ts +3 -0
- package/corpus/core/src/server/oauth-helpers.ts +11 -1
- package/corpus/core/src/server/onboarding-html.ts +80 -48
- package/corpus/core/src/server/prompts/shared-rules.ts +2 -2
- package/corpus/core/src/server/transcribe-voice.ts +93 -9
- package/corpus/core/src/styles/agent-native.css +57 -45
- package/corpus/core/src/templates/default/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/core/src/templates/default/AGENTS.md +11 -14
- package/corpus/core/src/templates/default/actions/navigate.ts +1 -1
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +0 -1
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +0 -1
- package/corpus/core/src/templates/default/app/routes/settings.tsx +22 -33
- package/corpus/core/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +20 -7
- package/corpus/core/src/templates/headless/AGENTS.md +9 -6
- package/corpus/core/src/templates/workspace-core/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +128 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +10 -4
- package/corpus/core/src/vite/agents-bundle-plugin.ts +26 -1
- package/corpus/core/src/vite/client.ts +12 -0
- package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/analytics/.agents/skills/analysis-workspace/SKILL.md +8 -0
- package/corpus/templates/analytics/.agents/skills/data-programs/SKILL.md +348 -0
- package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +10 -0
- package/corpus/templates/analytics/AGENTS.md +31 -32
- package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +1 -1
- package/corpus/templates/analytics/actions/delete-data-source-credentials.ts +32 -0
- package/corpus/templates/analytics/actions/ensure-risk-meeting-dashboard.ts +247 -0
- package/corpus/templates/analytics/actions/update-data-source-credentials.ts +123 -0
- package/corpus/templates/analytics/app/components/InlineMetric.tsx +2 -2
- package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +2 -7
- package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +11 -16
- package/corpus/templates/analytics/app/components/dashboard/DateRangePicker.tsx +1 -2
- package/corpus/templates/analytics/app/components/dashboard/MetricCard.tsx +2 -7
- package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +3 -6
- package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +1 -6
- package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +2 -7
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +11 -15
- package/corpus/templates/analytics/app/components/dashboard/StatsCard.tsx +1 -7
- package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +2 -7
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +16 -16
- package/corpus/templates/analytics/app/components/layout/Header.tsx +2 -2
- package/corpus/templates/analytics/app/components/layout/HeaderActions.tsx +2 -1
- package/corpus/templates/analytics/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +33 -17
- package/corpus/templates/analytics/app/components/layout/NewAnalysisDialog.tsx +6 -6
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +4 -3
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +119 -68
- package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/avatar.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/button.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/card.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/command.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/input.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/label.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/progress.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/select.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/table.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/toaster.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/toggle-group.tsx +1 -0
- package/corpus/templates/analytics/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/analytics/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/analytics/app/global.css +26 -3
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +27 -4
- package/corpus/templates/analytics/app/i18n-data.ts +277 -42
- package/corpus/templates/analytics/app/pages/Agents.tsx +19 -19
- package/corpus/templates/analytics/app/pages/DataDictionary.tsx +21 -21
- package/corpus/templates/analytics/app/pages/DataSources.tsx +31 -54
- package/corpus/templates/analytics/app/pages/NotFound.tsx +2 -1
- package/corpus/templates/analytics/app/pages/Placeholder.tsx +2 -1
- package/corpus/templates/analytics/app/pages/Settings.tsx +19 -37
- package/corpus/templates/analytics/app/pages/adhoc/DashboardSkeleton.tsx +3 -2
- package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +8 -13
- package/corpus/templates/analytics/app/pages/adhoc/_shared/components/DateRangeInput.tsx +1 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ChartTypePicker.tsx +2 -4
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/DateRangePicker.tsx +1 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventPanel.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventRow.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ExplorerChart.tsx +3 -8
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/FilterBuilder.tsx +5 -4
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/GroupByPicker.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyValueCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +16 -16
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +16 -21
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +32 -32
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +14 -14
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +14 -13
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +200 -52
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +23 -28
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewSqlPopover.tsx +13 -12
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +15 -15
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +32 -36
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +2 -1
- package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +8 -7
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +19 -19
- package/corpus/templates/analytics/app/pages/analyses/LegacyFusionAnalysis.tsx +11 -15
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +14 -14
- package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +7 -12
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +12 -12
- package/corpus/templates/analytics/app/pages/settings/AlertRulesSettingsCard.tsx +25 -25
- package/corpus/templates/analytics/app/root.tsx +22 -19
- package/corpus/templates/analytics/app/routes/catalog.tsx +8 -8
- package/corpus/templates/analytics/changelog/2026-07-06-dashboard-lists-and-headers-stay-compact.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-06-dashboards-can-now-chart-data-programs-saved-server-side-scr.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-06-extension-pages-and-mobile-headers-now-share-one-background-shade.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-06-mobile-chat-header-is-more-compact-and-the-menu-button-opens-navigation.md +5 -0
- package/corpus/templates/analytics/learnings.defaults.md +36 -0
- package/corpus/templates/analytics/seeds/data-programs/risk-meeting-cohort.js +254 -0
- package/corpus/templates/analytics/seeds/data-programs/risk-meeting-pylon-early-warning.js +184 -0
- package/corpus/templates/analytics/server/handlers/sql-query.ts +1 -1
- package/corpus/templates/analytics/server/lib/dashboard-panel-query.ts +109 -1
- package/corpus/templates/assets/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +3 -2
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +16 -10
- package/corpus/templates/assets/app/components/layout/Header.tsx +1 -1
- package/corpus/templates/assets/app/components/layout/PageShell.tsx +4 -4
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +8 -8
- package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +7 -7
- package/corpus/templates/assets/app/components/library/LibraryCard.tsx +8 -8
- package/corpus/templates/assets/app/components/library/LibraryPresetGrid.tsx +3 -2
- package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/button.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/card.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/input.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/label.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/select.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/assets/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/assets/app/global.css +1 -0
- package/corpus/templates/assets/app/root.tsx +12 -9
- package/corpus/templates/assets/app/routes/asset.$id.tsx +19 -19
- package/corpus/templates/assets/app/routes/audit.tsx +15 -14
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +49 -54
- package/corpus/templates/assets/app/routes/library.tsx +31 -31
- package/corpus/templates/assets/app/routes/settings.tsx +21 -35
- package/corpus/templates/assets/changelog/2026-07-06-mobile-layouts-no-longer-stack-two-top-headers.md +5 -0
- package/corpus/templates/brain/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/brain/.agents/skills/ask-across-everything/SKILL.md +6 -1
- package/corpus/templates/brain/.agents/skills/brain/SKILL.md +63 -5
- package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +112 -0
- package/corpus/templates/brain/AGENTS.md +93 -8
- package/corpus/templates/brain/app/components/brain/CanonicalPreviewSheet.tsx +6 -5
- package/corpus/templates/brain/app/components/brain/Surface.tsx +3 -8
- package/corpus/templates/brain/app/components/layout/Layout.tsx +7 -7
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +6 -6
- package/corpus/templates/brain/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/button.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/card.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/input.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/label.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/progress.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/select.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/table.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/brain/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/brain/app/global.css +1 -0
- package/corpus/templates/brain/app/hooks/use-distillation-bridge.ts +9 -4
- package/corpus/templates/brain/app/root.tsx +11 -8
- package/corpus/templates/brain/app/routes/knowledge.tsx +19 -19
- package/corpus/templates/brain/app/routes/ops.tsx +18 -18
- package/corpus/templates/brain/app/routes/review.tsx +22 -27
- package/corpus/templates/brain/app/routes/search.tsx +20 -20
- package/corpus/templates/brain/app/routes/settings.tsx +25 -40
- package/corpus/templates/brain/app/routes/sources.tsx +23 -23
- package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/calendar/actions/find-a-time.ts +29 -16
- package/corpus/templates/calendar/actions/list-bookings.ts +33 -2
- package/corpus/templates/calendar/actions/list-events.ts +34 -8
- package/corpus/templates/calendar/actions/update-calendar-visual-preferences.ts +105 -34
- package/corpus/templates/calendar/app/components/ThemeToggle.tsx +5 -5
- package/corpus/templates/calendar/app/components/TimezoneCombobox.tsx +6 -6
- package/corpus/templates/calendar/app/components/booking/BookingConfirmation.tsx +2 -1
- package/corpus/templates/calendar/app/components/booking/BookingForm.tsx +9 -8
- package/corpus/templates/calendar/app/components/booking/DatePicker.tsx +2 -2
- package/corpus/templates/calendar/app/components/booking/TimeSlotPicker.tsx +3 -2
- package/corpus/templates/calendar/app/components/calendar/AddCalendarDialog.tsx +10 -15
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/CommandPalette.tsx +73 -3
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +27 -27
- package/corpus/templates/calendar/app/components/calendar/DayView.tsx +553 -267
- package/corpus/templates/calendar/app/components/calendar/DeleteEventDialog.tsx +9 -12
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +10 -13
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -7
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +21 -21
- package/corpus/templates/calendar/app/components/calendar/EventDialog.tsx +11 -11
- package/corpus/templates/calendar/app/components/calendar/EventOptionControls.tsx +9 -9
- package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +9 -9
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
- package/corpus/templates/calendar/app/components/calendar/GoogleSyncButton.tsx +1 -1
- package/corpus/templates/calendar/app/components/calendar/GuestNotificationDialog.tsx +8 -10
- package/corpus/templates/calendar/app/components/calendar/IntegrationsSidebar.tsx +12 -12
- package/corpus/templates/calendar/app/components/calendar/KeyboardShortcutsHelp.tsx +2 -2
- package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +93 -41
- package/corpus/templates/calendar/app/components/calendar/PeopleSearchDialog.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +530 -299
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +229 -134
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +135 -108
- package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/button.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/card.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/command.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/input.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/label.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/radio-group.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/select.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/table.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/calendar/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/calendar/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/calendar/app/global.css +1 -0
- package/corpus/templates/calendar/app/hooks/use-event-drag.ts +63 -9
- package/corpus/templates/calendar/app/hooks/use-google-auth.ts +15 -27
- package/corpus/templates/calendar/app/hooks/use-grid-create-drag.ts +254 -0
- package/corpus/templates/calendar/app/hooks/use-mobile.ts +1 -0
- package/corpus/templates/calendar/app/hooks/use-view-preferences.ts +287 -21
- package/corpus/templates/calendar/app/hooks/use-zoom-auth.ts +56 -19
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/calendar/app/i18n-data.ts +31 -0
- package/corpus/templates/calendar/app/lib/event-colors.ts +29 -8
- package/corpus/templates/calendar/app/pages/AvailabilitySettings.tsx +11 -11
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +45 -50
- package/corpus/templates/calendar/app/pages/BookingPage.tsx +2 -2
- package/corpus/templates/calendar/app/pages/BookingsList.tsx +12 -12
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +438 -271
- package/corpus/templates/calendar/app/pages/ManageBookingPage.tsx +13 -13
- package/corpus/templates/calendar/app/pages/Settings.tsx +15 -29
- package/corpus/templates/calendar/app/root.tsx +19 -15
- package/corpus/templates/calendar/app/routes/event.tsx +2 -2
- package/corpus/templates/calendar/changelog/2026-07-06-calendar-now-loads-view-preferences-much-more-efficiently.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-connected-calendars-keep-their-own-color-when-you-customize-.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-create-events-from-the-command-menu-with-natural-phrases-lik.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-drag-across-empty-week-or-day-slots-to-create-an-event-with-.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-dragging-and-resizing-events-is-much-smoother-especially-on-.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-each-connected-google-account-can-now-have-its-own-calendar-.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-events-spanning-multiple-days-now-show-on-every-day-they-cov.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-google-calendar-now-finishes-connecting-correctly-after-sign.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-public-booking-pages-respond-faster.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-06-the-app-header-no-longer-shows-the-global-notifications-bell.md +6 -0
- package/corpus/templates/calendar/package.json +1 -0
- package/corpus/templates/calendar/server/handlers/bookings.ts +46 -52
- package/corpus/templates/calendar/server/handlers/google-auth.ts +21 -5
- package/corpus/templates/calendar/server/lib/google-calendar.ts +32 -3
- package/corpus/templates/calendar/shared/calendar-view-preferences.ts +66 -2
- package/corpus/templates/chat/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/chat/app/components/layout/Layout.tsx +6 -6
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/chat/app/components/ui/button.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/card.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/input.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/label.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/chat/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/chat/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/chat/app/global.css +1 -0
- package/corpus/templates/chat/app/root.tsx +7 -4
- package/corpus/templates/chat/app/routes/settings.tsx +6 -21
- package/corpus/templates/clips/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +18 -4
- package/corpus/templates/clips/.env.example +8 -0
- package/corpus/templates/clips/actions/accept-invite.ts +3 -0
- package/corpus/templates/clips/actions/add-recording-to-space.ts +55 -27
- package/corpus/templates/clips/actions/add-vocabulary-term.ts +3 -1
- package/corpus/templates/clips/actions/archive-recording.ts +5 -12
- package/corpus/templates/clips/actions/cleanup-transcript.ts +5 -4
- package/corpus/templates/clips/actions/clear-edits.ts +42 -29
- package/corpus/templates/clips/actions/create-meeting.ts +87 -40
- package/corpus/templates/clips/actions/create-recording.ts +6 -3
- package/corpus/templates/clips/actions/delete-meeting.ts +25 -0
- package/corpus/templates/clips/actions/delete-recording-permanent.ts +3 -0
- package/corpus/templates/clips/actions/disconnect-calendar.ts +10 -4
- package/corpus/templates/clips/actions/export-insights-csv.ts +28 -8
- package/corpus/templates/clips/actions/finalize-meeting.ts +106 -33
- package/corpus/templates/clips/actions/finalize-recording.ts +201 -3
- package/corpus/templates/clips/actions/get-organization-insights.ts +51 -7
- package/corpus/templates/clips/actions/import-loom-recording.ts +17 -0
- package/corpus/templates/clips/actions/lib/audio-only-transcription.ts +18 -1
- package/corpus/templates/clips/actions/lib/create-recording-schema.ts +7 -1
- package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +16 -0
- package/corpus/templates/clips/actions/list-clip-views.ts +60 -0
- package/corpus/templates/clips/actions/regenerate-summary.ts +10 -0
- package/corpus/templates/clips/actions/remove-vocabulary-term.ts +59 -0
- package/corpus/templates/clips/actions/request-transcript.ts +170 -25
- package/corpus/templates/clips/actions/restore-recording.ts +5 -12
- package/corpus/templates/clips/actions/save-browser-transcript.ts +13 -2
- package/corpus/templates/clips/actions/set-chapters.ts +6 -15
- package/corpus/templates/clips/actions/set-thumbnail.ts +77 -36
- package/corpus/templates/clips/actions/split-recording.ts +49 -35
- package/corpus/templates/clips/actions/stitch-recordings.ts +7 -4
- package/corpus/templates/clips/actions/stop-meeting-recording.ts +15 -1
- package/corpus/templates/clips/actions/sync-calendars.ts +10 -108
- package/corpus/templates/clips/actions/trash-recording.ts +43 -14
- package/corpus/templates/clips/actions/trim-recording.ts +48 -27
- package/corpus/templates/clips/actions/undo-edit.ts +49 -37
- package/corpus/templates/clips/app/components/capture-install-options.tsx +6 -6
- package/corpus/templates/clips/app/components/dictate/vocabulary-section.tsx +208 -0
- package/corpus/templates/clips/app/components/editable-recording-title.tsx +2 -2
- package/corpus/templates/clips/app/components/editor/chapters-editor.tsx +7 -7
- package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +26 -26
- package/corpus/templates/clips/app/components/editor/split-button.tsx +5 -4
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +9 -9
- package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +11 -16
- package/corpus/templates/clips/app/components/editor/timeline.tsx +3 -3
- package/corpus/templates/clips/app/components/editor/transcript-editor.tsx +5 -5
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +4 -4
- package/corpus/templates/clips/app/components/library/create-space-dialog.tsx +8 -8
- package/corpus/templates/clips/app/components/library/empty-state.tsx +2 -1
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +14 -14
- package/corpus/templates/clips/app/components/library/library-grid.tsx +24 -98
- package/corpus/templates/clips/app/components/library/library-layout.tsx +18 -19
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +11 -11
- package/corpus/templates/clips/app/components/library/recording-card.tsx +44 -50
- package/corpus/templates/clips/app/components/library/search-bar.tsx +5 -5
- package/corpus/templates/clips/app/components/library/sort-menu.tsx +4 -3
- package/corpus/templates/clips/app/components/library/tag-input.tsx +4 -4
- package/corpus/templates/clips/app/components/meetings/attendee-stack.tsx +2 -6
- package/corpus/templates/clips/app/components/meetings/auto-record-prompt.tsx +1 -1
- package/corpus/templates/clips/app/components/meetings/bullet-link.tsx +4 -4
- package/corpus/templates/clips/app/components/meetings/canvas-editor.tsx +5 -5
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +3 -3
- package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +17 -9
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +6 -11
- package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +215 -21
- package/corpus/templates/clips/app/components/player/access-password-prompt.tsx +3 -2
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +14 -14
- package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +7 -6
- package/corpus/templates/clips/app/components/player/insights-panel.tsx +18 -6
- package/corpus/templates/clips/app/components/player/player-controls.tsx +42 -36
- package/corpus/templates/clips/app/components/player/reactions-tray.tsx +4 -4
- package/corpus/templates/clips/app/components/player/settings-panel.tsx +13 -12
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +80 -49
- package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +3 -2
- package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +2 -2
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +7 -7
- package/corpus/templates/clips/app/components/player/video-player.tsx +182 -15
- package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +49 -36
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +285 -24
- package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +6 -5
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +7 -6
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +10 -10
- package/corpus/templates/clips/app/components/sharing/viewed-by-popover.tsx +132 -0
- package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/avatar.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/button.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/card.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/context-menu.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/input.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/label.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/select.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/slider.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/table.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/clips/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/clips/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +5 -9
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +9 -19
- package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +10 -9
- package/corpus/templates/clips/app/components/workspace/members-list.tsx +11 -10
- package/corpus/templates/clips/app/components/workspace/notifications-list.tsx +2 -1
- package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +3 -2
- package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +3 -2
- package/corpus/templates/clips/app/global.css +1 -0
- package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +2 -1
- package/corpus/templates/clips/app/hooks/use-mobile.ts +1 -0
- package/corpus/templates/clips/app/hooks/use-player-shortcuts.ts +14 -10
- package/corpus/templates/clips/app/hooks/use-view-tracking.ts +14 -0
- package/corpus/templates/clips/app/i18n/ar-SA.ts +56 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +53 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +52 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +53 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +53 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +52 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +53 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +52 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +53 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +51 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +51 -0
- package/corpus/templates/clips/app/lib/recorder-preferences.ts +4 -0
- package/corpus/templates/clips/app/lib/timestamp-mapping.ts +5 -0
- package/corpus/templates/clips/app/root.tsx +26 -23
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +39 -23
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +134 -39
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +20 -20
- package/corpus/templates/clips/app/routes/_app.notifications.tsx +3 -3
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +92 -60
- package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +8 -13
- package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.trash.tsx +96 -31
- package/corpus/templates/clips/app/routes/bug-report.done.tsx +1 -1
- package/corpus/templates/clips/app/routes/bug-report.tsx +11 -11
- package/corpus/templates/clips/app/routes/download.tsx +2 -2
- package/corpus/templates/clips/app/routes/embed.$shareId.tsx +2 -1
- package/corpus/templates/clips/app/routes/invite.$token.tsx +8 -13
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +263 -251
- package/corpus/templates/clips/app/routes/record.tsx +28 -10
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +51 -29
- package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +71 -16
- package/corpus/templates/clips/changelog/2026-07-05-mobile-clip-pages-use-a-tighter-viewer-layout-with-inline-ac.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-ai-setup-now-switches-to-your-saved-provider-key-and-uses-fa.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-browsers-that-can-t-play-a-clip-s-video-format-now-see-a-cle.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-calendar-connections-no-longer-ask-you-to-reconnect-after-te.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-chrome-extension-recordings-keep-your-selected-microphone.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-clip-recordings-now-use-streaming-uploads-by-default.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-clip-titles-in-the-library-grid-now-open-the-clip-instead-of.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-desktop-countdown-now-dims-the-screen-before-recording.md +5 -0
- package/corpus/templates/clips/changelog/2026-07-06-desktop-popover-no-longer-drops-bluetooth-headphones-into-call-quality-mode.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-desktop-recorder-now-refreshes-cameras-and-mics-when-the-pop.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-desktop-recordings-keep-microphone-volume-clear-while-recor.md +5 -0
- package/corpus/templates/clips/changelog/2026-07-06-desktop-recordings-no-longer-get-stuck-optimizing-when-scree.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-dictation-history-from-the-desktop-app-now-appears-in-the-di.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-dictation-no-longer-overwrites-your-clipboard-and-messaging-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-double-tap-your-dictation-key-for-hands-free-dictation-tap-a.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-fixed-desktop-recordings-sometimes-uploading-without-audio-a.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-fixed-desktop-recordings-that-could-get-stuck-uploading-and-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-fixed-recordings-sometimes-capturing-from-the-wrong-micropho.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-hands-free-dictation-and-meeting-cleanup-recover-more-reliab.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-live-meetings-show-time-remaining-and-you-can-end-a-meeting-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-manage-your-personal-dictation-dictionary-from-the-dictate-t.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-meetings-interrupted-by-quitting-or-crashing-now-close-out-c.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-mic-only-desktop-recordings-now-use-the-selected-microphone-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-paste-your-last-dictation-anytime-with-cmd-ctrl-v-or-from-th.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-press-esc-to-cancel-a-dictation-in-progress.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-recordings-whose-video-file-contains-no-audio-track-no-longe.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-search-inside-meeting-transcripts.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-see-who-viewed-your-shared-clips-and-when-click-the-view-cou.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-share-links-for-agents-now-appear-as-soon-as-the-share-menu-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-share-popovers-now-stay-above-video-playback-controls.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-shared-clip-pages-now-recover-automatically-from-transient-v.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-the-desktop-app-now-walks-you-through-permissions-on-first-l.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-transcript-cleanup-preferences-now-save-per-user.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-transcripts-now-retry-automatically-after-transient-failures.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-06-video-compression-now-runs-in-the-background-without-blocking.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-native-microphone-recordings-now-reduce-steady-background-noise.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-recording-transcripts-now-line-up-with-the-video-start-afte.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/chrome-extension/src/background.ts +141 -48
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +383 -59
- package/corpus/templates/clips/chrome-extension/src/overlay.ts +51 -10
- package/corpus/templates/clips/chrome-extension/src/popup.ts +57 -6
- package/corpus/templates/clips/desktop/package.json +1 -1
- package/corpus/templates/clips/desktop/scripts/sign-macos-local.ts +67 -0
- package/corpus/templates/clips/desktop/src/app.tsx +38 -13
- package/corpus/templates/clips/desktop/src/components/SourceRow.tsx +1 -0
- package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +88 -28
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +165 -55
- package/corpus/templates/clips/desktop/src/hooks/useMicMeter.ts +35 -10
- package/corpus/templates/clips/desktop/src/lib/backtrack.ts +12 -0
- package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +129 -34
- package/corpus/templates/clips/desktop/src/lib/media-device-selection.ts +157 -0
- package/corpus/templates/clips/desktop/src/lib/permissions.ts +2 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +109 -47
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +22 -2
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +29 -1
- package/corpus/templates/clips/desktop/src/lib/updater.ts +6 -0
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +372 -31
- package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +90 -0
- package/corpus/templates/clips/desktop/src/overlays/flow-bar.tsx +4 -6
- package/corpus/templates/clips/desktop/src/overlays/onboarding.tsx +214 -9
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +37 -52
- package/corpus/templates/clips/desktop/src/styles.css +1 -1
- package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +7 -0
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +371 -43
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +79 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1418 -260
- package/corpus/templates/clips/desktop/src-tauri/src/native_speech.rs +188 -44
- package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +197 -8
- package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +64 -8
- package/corpus/templates/clips/desktop/src-tauri/src/state.rs +3 -2
- package/corpus/templates/clips/desktop/src-tauri/src/system_audio.rs +10 -0
- package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +29 -8
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +136 -13
- package/corpus/templates/clips/desktop/vite.config.ts +3 -0
- package/corpus/templates/clips/package.json +1 -1
- package/corpus/templates/clips/server/db/schema.ts +26 -0
- package/corpus/templates/clips/server/jobs/builder-media-compression.ts +41 -0
- package/corpus/templates/clips/server/jobs/stale-meeting-sweeper.ts +294 -0
- package/corpus/templates/clips/server/lib/builder-media-compression.ts +976 -0
- package/corpus/templates/clips/server/lib/calendar-event-meetings.ts +107 -56
- package/corpus/templates/clips/server/lib/env-flags.ts +4 -0
- package/corpus/templates/clips/server/lib/google-calendar-client.ts +8 -1
- package/corpus/templates/clips/server/lib/media-worker.ts +153 -0
- package/corpus/templates/clips/server/lib/s3-upload-provider.ts +58 -17
- package/corpus/templates/clips/server/lib/streaming-upload-mode.ts +17 -5
- package/corpus/templates/clips/server/lib/video-remux.ts +90 -0
- package/corpus/templates/clips/server/plugins/calendar-jobs.ts +4 -0
- package/corpus/templates/clips/server/plugins/db.ts +196 -0
- package/corpus/templates/clips/server/register-secrets.ts +78 -0
- package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.get.ts +15 -0
- package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.put.ts +27 -0
- package/corpus/templates/clips/server/routes/api/media-worker/callback.post.ts +88 -0
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +87 -7
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +7 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +35 -10
- package/corpus/templates/clips/server/routes/api/video/[recordingId].get.ts +24 -42
- package/corpus/templates/clips/server/routes/api/view-event.post.ts +29 -1
- package/corpus/templates/clips/shared/media-device-selection.ts +157 -0
- package/corpus/templates/clips/shared/media-worker-contract.ts +146 -0
- package/corpus/templates/content/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/content/.agents/skills/notion-integration/SKILL.md +67 -2
- package/corpus/templates/content/AGENTS.md +22 -14
- package/corpus/templates/content/actions/_local-file-documents.ts +90 -1
- package/corpus/templates/content/actions/_notion-action-utils.ts +6 -2
- package/corpus/templates/content/actions/delete-document.ts +8 -0
- package/corpus/templates/content/actions/remove-local-file-source.ts +100 -0
- package/corpus/templates/content/actions/sync-notion-comments.ts +174 -20
- package/corpus/templates/content/actions/update-document.ts +91 -5
- package/corpus/templates/content/app/blocks/SourceComponentBlock.tsx +31 -3
- package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -4
- package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
- package/corpus/templates/content/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/ContentReferencePreview.tsx +1 -1
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +10 -14630
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +72 -51
- package/corpus/templates/content/app/components/editor/DocumentEditorSkeleton.tsx +36 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +29 -29
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +29 -44
- package/corpus/templates/content/app/components/editor/EmojiPicker.tsx +5 -4
- package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +5 -4
- package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
- package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +2 -2
- package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +5 -5
- package/corpus/templates/content/app/components/editor/TableHoverControls.tsx +13 -13
- package/corpus/templates/content/app/components/editor/VersionHistoryPanel.tsx +10 -10
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +24 -7
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +2856 -8389
- package/corpus/templates/content/app/components/editor/database/navigation-state.ts +36 -1
- package/corpus/templates/content/app/components/editor/database/settings.tsx +3224 -0
- package/corpus/templates/content/app/components/editor/database/shared.tsx +19 -19
- package/corpus/templates/content/app/components/editor/database/text.ts +23 -0
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +9 -8
- package/corpus/templates/content/app/components/editor/extensions/AudioBlock.tsx +19 -18
- package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +21 -20
- package/corpus/templates/content/app/components/editor/extensions/LocalMdxComponentNode.tsx +8 -8
- package/corpus/templates/content/app/components/editor/extensions/NotionExtensions.tsx +9 -0
- package/corpus/templates/content/app/components/editor/extensions/VideoBlock.tsx +19 -18
- package/corpus/templates/content/app/components/layout/Header.tsx +1 -5
- package/corpus/templates/content/app/components/layout/Layout.tsx +25 -8
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +203 -55
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +22 -22
- package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +11 -11
- package/corpus/templates/content/app/components/sidebar/document-sidebar-sections.ts +109 -1
- package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/content/app/components/ui/button.tsx +1 -0
- package/corpus/templates/content/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/content/app/components/ui/input.tsx +1 -0
- package/corpus/templates/content/app/components/ui/label.tsx +1 -0
- package/corpus/templates/content/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/content/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/content/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/content/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/content/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/content/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/content/app/components/ui/table.tsx +1 -0
- package/corpus/templates/content/app/components/ui/toaster.tsx +1 -0
- package/corpus/templates/content/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/content/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/content/app/global.css +1 -0
- package/corpus/templates/content/app/hooks/use-documents.ts +89 -37
- package/corpus/templates/content/app/hooks/use-mobile.ts +1 -0
- package/corpus/templates/content/app/hooks/use-notion.ts +73 -5
- package/corpus/templates/content/app/i18n/zh-TW.ts +14 -0
- package/corpus/templates/content/app/i18n-data.ts +153 -0
- package/corpus/templates/content/app/root.tsx +35 -29
- package/corpus/templates/content/app/routes/_app._index.tsx +1 -1
- package/corpus/templates/content/app/routes/_app.local-files.tsx +268 -81
- package/corpus/templates/content/app/routes/_app.settings.tsx +4 -21
- package/corpus/templates/content/changelog/2026-07-01-builder-source-components-show-preservation-and-review-states.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-document-headers-and-page-bodies-now-share-one-background-shade.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-export-submenus-stay-visible-outside-the-page-actions-menu.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-fixed-collaborative-documents-reapplying-content-before-save.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-local-files-now-remember-sidebar-collapse-state-and-include-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-notion-comment-sync-now-preserves-threads-replies-stay-attac.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-notion-sync-is-far-more-reliable-auto-sync-no-longer-overwri.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-opening-pages-now-highlights-the-sidebar-item-and-shows-the-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-presence-markers-in-the-editor-are-now-compact-instead-of-co.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-sidebar-collapse-now-keeps-the-same-background-shade-as-the-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-06-the-content-header-no-longer-shows-the-global-notifications-.md +6 -0
- package/corpus/templates/content/parity/matrix.md +24 -24
- package/corpus/templates/content/parity/matrix.ts +7 -3
- package/corpus/templates/content/server/db/schema.ts +15 -0
- package/corpus/templates/content/server/lib/notion-sync.ts +481 -39
- package/corpus/templates/content/server/lib/notion.ts +212 -48
- package/corpus/templates/content/server/plugins/db.ts +20 -0
- package/corpus/templates/content/server/routes/api/documents/[id]/notion/resolve.post.ts +14 -2
- package/corpus/templates/content/server/routes/api/notion/callback.get.ts +54 -6
- package/corpus/templates/content/shared/builder-mdx.ts +68 -12
- package/corpus/templates/content/shared/builder-source-component-registry.ts +177 -0
- package/corpus/templates/content/shared/nfm.ts +459 -66
- package/corpus/templates/content/shared/source-component-block.ts +72 -6
- package/corpus/templates/content/vite.config.ts +17 -1
- package/corpus/templates/design/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +21 -12
- package/corpus/templates/design/AGENTS.md +3 -2
- package/corpus/templates/design/actions/import-design-source.ts +8 -58
- package/corpus/templates/design/actions/run-design-audit.ts +127 -1
- package/corpus/templates/design/actions/take-design-screenshot.ts +673 -0
- package/corpus/templates/design/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +11 -11
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +2 -2
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +16 -21
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +6 -97
- package/corpus/templates/design/app/components/design/DrawOverlay.tsx +7 -7
- package/corpus/templates/design/app/components/design/EditPanel.tsx +30 -30
- package/corpus/templates/design/app/components/design/FusionAppBanner.tsx +9 -8
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +14 -14
- package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +6 -5
- package/corpus/templates/design/app/components/design/MotionDock.tsx +15 -15
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +3 -3
- package/corpus/templates/design/app/components/design/ReviewPanel.tsx +3 -3
- package/corpus/templates/design/app/components/design/StatesPanel.tsx +13 -13
- package/corpus/templates/design/app/components/design/TokensPanel.tsx +14 -14
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +39 -9
- package/corpus/templates/design/app/components/design/code-workbench/ActivityBar.tsx +3 -3
- package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +4 -7
- package/corpus/templates/design/app/components/design/code-workbench/editor/EditorTabs.tsx +6 -6
- package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +2 -1
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +17 -17
- package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +18 -18
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -14
- package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +9 -9
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design-system/DesignSystemCard.tsx +3 -2
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +15 -18
- package/corpus/templates/design/app/components/layout/Header.tsx +2 -2
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/design/app/components/ui/avatar.tsx +1 -0
- package/corpus/templates/design/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/design/app/components/ui/button.tsx +1 -0
- package/corpus/templates/design/app/components/ui/card.tsx +1 -0
- package/corpus/templates/design/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/design/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/design/app/components/ui/context-menu.tsx +1 -0
- package/corpus/templates/design/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/design/app/components/ui/input.tsx +1 -0
- package/corpus/templates/design/app/components/ui/label.tsx +1 -0
- package/corpus/templates/design/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/design/app/components/ui/select.tsx +1 -0
- package/corpus/templates/design/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/design/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/design/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/design/app/components/ui/slider.tsx +1 -0
- package/corpus/templates/design/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/design/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/design/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/design/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/design/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/design/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/design/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +7 -7
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +7 -7
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +3 -3
- package/corpus/templates/design/app/global.css +1 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +3 -4
- package/corpus/templates/design/app/i18n-data.ts +38 -35
- package/corpus/templates/design/app/pages/DesignEditor.tsx +47 -51
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +6 -6
- package/corpus/templates/design/app/pages/DesignSystems.tsx +31 -31
- package/corpus/templates/design/app/pages/Index.tsx +25 -29
- package/corpus/templates/design/app/pages/NotFound.tsx +2 -1
- package/corpus/templates/design/app/pages/Present.tsx +2 -1
- package/corpus/templates/design/app/pages/VisualEdit.tsx +2 -1
- package/corpus/templates/design/app/root.tsx +7 -4
- package/corpus/templates/design/app/routes/settings.tsx +22 -49
- package/corpus/templates/design/changelog/2026-07-05-code-sidebar-tabs-now-use-a-quieter-active-highlight-that-ma.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-fig-files-now-stay-on-the-builder-indexing-path-through-desi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-06-mobile-layouts-no-longer-stack-two-top-headers.md +5 -0
- package/corpus/templates/design/changelog/2026-07-06-the-design-agent-now-visually-reviews-rendered-screenshots-o.md +6 -0
- package/corpus/templates/design/server/handlers/import-design-file.ts +4 -43
- package/corpus/templates/design/server/handlers/index-design-system-with-builder.ts +2 -2
- package/corpus/templates/design/server/lib/visible-clipboard-html.ts +32 -0
- package/corpus/templates/design/shared/design-review.ts +1 -0
- package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/dispatch/actions/list-staged-datasets.ts +3 -0
- package/corpus/templates/dispatch/app/routes/settings.tsx +3 -17
- package/corpus/templates/forms/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/forms/app/components/CloudUpgrade.tsx +10 -10
- package/corpus/templates/forms/app/components/ThemeToggle.tsx +5 -5
- package/corpus/templates/forms/app/components/builder/FieldPropertiesPanel.tsx +11 -10
- package/corpus/templates/forms/app/components/builder/FieldRenderer.tsx +10 -13
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +17 -17
- package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/button.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/card.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/command.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/input.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/label.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/radio-group.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/select.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/slider.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/table.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/forms/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/forms/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/forms/app/global.css +1 -0
- package/corpus/templates/forms/app/hooks/use-mobile.ts +1 -0
- package/corpus/templates/forms/app/hooks/use-navigation-state.ts +0 -1
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +24 -26
- package/corpus/templates/forms/app/pages/FormFillPage.tsx +2 -2
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +21 -21
- package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +11 -11
- package/corpus/templates/forms/app/pages/ResponsesPage.tsx +4 -4
- package/corpus/templates/forms/app/root.tsx +11 -8
- package/corpus/templates/forms/app/routes/_app.settings.tsx +6 -21
- package/corpus/templates/forms/app/routes/form-preview.tsx +3 -3
- package/corpus/templates/forms/changelog/2026-07-06-the-form-builder-header-no-longer-shows-the-global-notificat.md +6 -0
- package/corpus/templates/macros/app/components/AddExerciseDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/AddMealDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/AddWeightDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/DailyProgress.tsx +7 -7
- package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +2 -1
- package/corpus/templates/macros/app/components/WeightCard.tsx +10 -10
- package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +6 -10
- package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/label.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/select.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/macros/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/macros/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/macros/app/global.css +1 -0
- package/corpus/templates/macros/app/root.tsx +17 -14
- package/corpus/templates/macros/app/routes/_index.tsx +1 -1
- package/corpus/templates/macros/app/routes/analytics.tsx +8 -8
- package/corpus/templates/macros/app/routes/settings.tsx +4 -19
- package/corpus/templates/mail/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/mail/.agents/skills/contacts-and-crm/SKILL.md +67 -0
- package/corpus/templates/mail/.agents/skills/draft-queue/SKILL.md +35 -1
- package/corpus/templates/mail/.agents/skills/email-drafts/SKILL.md +74 -33
- package/corpus/templates/mail/AGENTS.md +102 -16
- package/corpus/templates/mail/actions/archive-email.ts +67 -11
- package/corpus/templates/mail/actions/manage-snippets.ts +106 -0
- package/corpus/templates/mail/actions/mark-read.ts +45 -11
- package/corpus/templates/mail/actions/send-queued-drafts.ts +77 -42
- package/corpus/templates/mail/actions/star-email.ts +55 -10
- package/corpus/templates/mail/actions/trash-email.ts +48 -9
- package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +1 -1
- package/corpus/templates/mail/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/mail/app/components/agent-engine-picker.tsx +10 -10
- package/corpus/templates/mail/app/components/email/CodeBlockLangPicker.tsx +4 -3
- package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +5 -5
- package/corpus/templates/mail/app/components/email/ComposeEditor.tsx +109 -10
- package/corpus/templates/mail/app/components/email/ComposeModal.tsx +44 -19
- package/corpus/templates/mail/app/components/email/ComposeSlashMenu.tsx +139 -17
- package/corpus/templates/mail/app/components/email/EmailList.tsx +522 -314
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +130 -45
- package/corpus/templates/mail/app/components/email/EmailThread.tsx +9 -9
- package/corpus/templates/mail/app/components/email/InlineReplyComposer.tsx +35 -13
- package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +13 -13
- package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +13 -13
- package/corpus/templates/mail/app/components/email/RecipientInput.tsx +53 -42
- package/corpus/templates/mail/app/components/email/SendLaterButton.tsx +5 -4
- package/corpus/templates/mail/app/components/email/SnoozeModal.tsx +1 -1
- package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +6 -6
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +19 -23
- package/corpus/templates/mail/app/components/layout/HeaderActions.tsx +12 -4
- package/corpus/templates/mail/app/components/layout/SearchBar.tsx +138 -18
- package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +23 -23
- package/corpus/templates/mail/app/components/settings/SnippetsSection.tsx +303 -0
- package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/button.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/command.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/select.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/mail/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/mail/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/mail/app/global.css +20 -3
- package/corpus/templates/mail/app/hooks/use-emails.ts +187 -0
- package/corpus/templates/mail/app/hooks/use-snippets.ts +103 -0
- package/corpus/templates/mail/app/i18n/ar-SA.ts +17 -0
- package/corpus/templates/mail/app/i18n/de-DE.ts +18 -0
- package/corpus/templates/mail/app/i18n/en-US.ts +17 -0
- package/corpus/templates/mail/app/i18n/es-ES.ts +17 -0
- package/corpus/templates/mail/app/i18n/fr-FR.ts +18 -0
- package/corpus/templates/mail/app/i18n/hi-IN.ts +17 -0
- package/corpus/templates/mail/app/i18n/ja-JP.ts +18 -0
- package/corpus/templates/mail/app/i18n/ko-KR.ts +17 -0
- package/corpus/templates/mail/app/i18n/pt-BR.ts +17 -0
- package/corpus/templates/mail/app/i18n/zh-CN.ts +16 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +16 -0
- package/corpus/templates/mail/app/pages/DraftQueuePage.tsx +14 -14
- package/corpus/templates/mail/app/pages/InboxPage.tsx +3 -3
- package/corpus/templates/mail/app/pages/NotFound.tsx +2 -1
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +64 -66
- package/corpus/templates/mail/app/root.tsx +21 -18
- package/corpus/templates/mail/app/routes/_index.tsx +2 -1
- package/corpus/templates/mail/app/routes/email.tsx +2 -2
- package/corpus/templates/mail/changelog/2026-07-06-a-queued-draft-can-no-longer-be-sent-twice-by-simultaneous-s.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-bulk-archive-trash-star-and-mark-read-now-complete-in-one-fa.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-dark-mode-sidebars-and-notifications-now-use-the-softer-gray.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-inbox-automations-pick-up-new-mail-faster.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-inbox-lists-stay-fast-as-scheduled-and-snoozed-mail-accumula.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-long-inboxes-scroll-smoothly-and-stay-fast-as-more-mail-load.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-paste-or-drop-images-straight-into-the-composer-to-send-them.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-save-reusable-snippets-and-insert-them-from-the-compose-slas.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-scrolling-older-mail-keeps-loading-correctly-when-no-gmail-a.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-search-shows-instant-matches-from-already-loaded-mail-while-.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-sends-now-fail-with-a-clear-error-instead-of-quietly-missing.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-06-the-mail-header-no-longer-shows-the-global-notifications-bel.md +6 -0
- package/corpus/templates/mail/package.json +1 -0
- package/corpus/templates/mail/server/db/schema.ts +11 -0
- package/corpus/templates/mail/server/handlers/emails.ts +20 -1
- package/corpus/templates/mail/server/lib/automation-engine.ts +53 -25
- package/corpus/templates/mail/server/lib/google-auth.ts +140 -9
- package/corpus/templates/mail/server/lib/jobs.ts +22 -6
- package/corpus/templates/mail/server/lib/outgoing-email.ts +11 -2
- package/corpus/templates/mail/server/lib/queued-drafts.ts +145 -4
- package/corpus/templates/mail/server/plugins/db.ts +29 -0
- package/corpus/templates/plan/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/plan/app/components/editor/PlanDocumentEditor.tsx +42 -3
- package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -4
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +20 -20
- package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +3 -2
- package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +2 -2
- package/corpus/templates/plan/app/components/plan/GuestModeBanner.tsx +2 -1
- package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +8 -8
- package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +6 -1
- package/corpus/templates/plan/app/components/plan/PlanImageViewer.tsx +8 -12
- package/corpus/templates/plan/app/components/plan/PlanMarkdownEditor.tsx +6 -1
- package/corpus/templates/plan/app/components/plan/PlanVisualSurface.tsx +3 -3
- package/corpus/templates/plan/app/components/plan/planBlocks.tsx +4 -4
- package/corpus/templates/plan/app/components/plan/wireframe/kit/rough.tsx +61 -27
- package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/avatar.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/button.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/card.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/input.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/label.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/select.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/sonner.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/toggle-group.tsx +1 -0
- package/corpus/templates/plan/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/plan/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/plan/app/global.css +13 -0
- package/corpus/templates/plan/app/hooks/use-plan-presence.ts +11 -1
- package/corpus/templates/plan/app/lib/plan-access-prompt.ts +74 -0
- package/corpus/templates/plan/app/lib/plan-annotation-runtime.ts +1435 -0
- package/corpus/templates/plan/app/lib/plan-comment-editor-helpers.ts +142 -0
- package/corpus/templates/plan/app/lib/plan-local-bridge.ts +376 -0
- package/corpus/templates/plan/app/lib/plan-native-anchors.ts +682 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +216 -2747
- package/corpus/templates/plan/app/root.tsx +13 -10
- package/corpus/templates/plan/app/routes/_index.tsx +1 -2
- package/corpus/templates/plan/app/routes/local-plans.$slug.tsx +1 -1
- package/corpus/templates/plan/app/routes/plans.$id.tsx +1 -2
- package/corpus/templates/plan/app/routes/plans.tsx +1 -2
- package/corpus/templates/plan/app/routes/recaps.$id.tsx +1 -2
- package/corpus/templates/plan/app/routes/recaps.tsx +1 -2
- package/corpus/templates/plan/app/routes/settings.tsx +7 -21
- package/corpus/templates/plan/changelog/2026-07-05-plan-pages-open-at-the-top-unless-a-shared-link-targets-a-sp.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-06-fixed-collaborative-plan-editing-so-content-no-longer-duplic.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-06-fixed-visual-reports-using-excessive-cpu-while-rendering-ske.md +6 -0
- package/corpus/templates/slides/.agents/skills/actions/SKILL.md +55 -0
- package/corpus/templates/slides/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +5 -5
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +7 -7
- package/corpus/templates/slides/app/components/deck/ExcalidrawSlide.tsx +2 -1
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +1 -1
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +3 -2
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +15 -14
- package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +7 -7
- package/corpus/templates/slides/app/components/editor/BlockBubbleMenu.tsx +5 -5
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +6 -6
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +14 -14
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +10 -9
- package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +6 -5
- package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +12 -12
- package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +4 -3
- package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +5 -4
- package/corpus/templates/slides/app/components/editor/ImportButton.tsx +4 -3
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +2 -1
- package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +10 -10
- package/corpus/templates/slides/app/components/editor/SlideBubbleMenu.tsx +10 -10
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +6 -6
- package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +2 -1
- package/corpus/templates/slides/app/components/editor/TweaksPanel.tsx +1 -1
- package/corpus/templates/slides/app/components/layout/Header.tsx +2 -2
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/button.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/card.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/input.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/label.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/popover.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/select.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/separator.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/spinner.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/toast.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/toaster.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/toggle-group.tsx +1 -0
- package/corpus/templates/slides/app/components/ui/toolkit-provider.tsx +12 -0
- package/corpus/templates/slides/app/components/ui/tooltip.tsx +1 -0
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +6 -6
- package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +7 -7
- package/corpus/templates/slides/app/global.css +1 -0
- package/corpus/templates/slides/app/hooks/use-toast.ts +1 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +3 -3
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +1 -1
- package/corpus/templates/slides/app/pages/Index.tsx +14 -17
- package/corpus/templates/slides/app/root.tsx +13 -10
- package/corpus/templates/slides/app/routes/settings.tsx +6 -21
- package/corpus/templates/slides/changelog/2026-07-06-mobile-layouts-no-longer-stack-two-top-headers.md +5 -0
- package/corpus/templates/slides/server/handlers/uploads.ts +7 -2
- package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
- package/dist/agent/durable-background.d.ts +29 -0
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +46 -0
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +7 -2
- 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 +28 -2
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +1 -1
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/output-tokens.d.ts +3 -3
- package/dist/agent/engine/output-tokens.d.ts.map +1 -1
- package/dist/agent/engine/output-tokens.js +16 -14
- package/dist/agent/engine/output-tokens.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +3 -3
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +28 -25
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.d.ts +14 -2
- package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.js +33 -18
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
- package/dist/agent/engine/translate-anthropic.d.ts.map +1 -1
- package/dist/agent/engine/translate-anthropic.js +42 -1
- package/dist/agent/engine/translate-anthropic.js.map +1 -1
- package/dist/agent/engine/types.d.ts +15 -0
- package/dist/agent/engine/types.d.ts.map +1 -1
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/model-config.d.ts +8 -0
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +86 -0
- package/dist/agent/model-config.js.map +1 -1
- package/dist/agent/production-agent.d.ts +91 -5
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +389 -180
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/runtime-context.d.ts +29 -0
- package/dist/agent/runtime-context.d.ts.map +1 -1
- package/dist/agent/runtime-context.js +40 -11
- package/dist/agent/runtime-context.js.map +1 -1
- package/dist/agent/tool-result-images.d.ts +49 -0
- package/dist/agent/tool-result-images.d.ts.map +1 -0
- package/dist/agent/tool-result-images.js +141 -0
- package/dist/agent/tool-result-images.js.map +1 -0
- package/dist/brand-kit/fig/index.d.ts.map +1 -1
- package/dist/brand-kit/fig/index.js +6 -3
- package/dist/brand-kit/fig/index.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +66 -17
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +72 -40
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/KeepTabOpenNotice.d.ts +55 -0
- package/dist/client/KeepTabOpenNotice.d.ts.map +1 -0
- package/dist/client/KeepTabOpenNotice.js +85 -0
- package/dist/client/KeepTabOpenNotice.js.map +1 -0
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +2 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts +7 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +7 -2
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +7 -1
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/clipboard.d.ts.map +1 -1
- package/dist/client/clipboard.js +5 -6
- package/dist/client/clipboard.js.map +1 -1
- package/dist/client/components/AgentPresenceChip.d.ts +1 -11
- package/dist/client/components/AgentPresenceChip.d.ts.map +1 -1
- package/dist/client/components/AgentPresenceChip.js +1 -41
- package/dist/client/components/AgentPresenceChip.js.map +1 -1
- package/dist/client/components/LiveCursorOverlay.d.ts +1 -44
- package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
- package/dist/client/components/LiveCursorOverlay.js +1 -123
- package/dist/client/components/LiveCursorOverlay.js.map +1 -1
- package/dist/client/components/PresenceBar.d.ts +1 -26
- package/dist/client/components/PresenceBar.d.ts.map +1 -1
- package/dist/client/components/PresenceBar.js +1 -164
- package/dist/client/components/PresenceBar.js.map +1 -1
- package/dist/client/components/RecentEditHighlights.d.ts +1 -42
- package/dist/client/components/RecentEditHighlights.d.ts.map +1 -1
- package/dist/client/components/RecentEditHighlights.js +1 -145
- package/dist/client/components/RecentEditHighlights.js.map +1 -1
- package/dist/client/components/RemoteSelectionRings.d.ts +1 -51
- package/dist/client/components/RemoteSelectionRings.d.ts.map +1 -1
- package/dist/client/components/RemoteSelectionRings.js +1 -129
- package/dist/client/components/RemoteSelectionRings.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +4 -0
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +74 -26
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/db-admin/SqlEditor.d.ts.map +1 -1
- package/dist/client/db-admin/SqlEditor.js +13 -3
- package/dist/client/db-admin/SqlEditor.js.map +1 -1
- package/dist/client/dynamic-suggestions.d.ts.map +1 -1
- package/dist/client/dynamic-suggestions.js +7 -1
- package/dist/client/dynamic-suggestions.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +7 -7
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.js +5 -7
- package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/host-bridge.d.ts +2 -0
- package/dist/client/host-bridge.d.ts.map +1 -1
- package/dist/client/host-bridge.js +26 -10
- package/dist/client/host-bridge.js.map +1 -1
- package/dist/client/i18n.d.ts +1 -0
- package/dist/client/i18n.d.ts.map +1 -1
- package/dist/client/i18n.js +3 -1
- package/dist/client/i18n.js.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.js +12 -31
- package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts +3 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.js +2 -1
- package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts +3 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
- package/dist/client/rich-markdown-editor/useCollabReconcile.js +6 -2
- package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts +3 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +103 -9
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsTabsPage.d.ts.map +1 -1
- package/dist/client/settings/SettingsTabsPage.js +5 -5
- 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 +1 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/sharing/VisibilityBadge.d.ts +1 -10
- package/dist/client/sharing/VisibilityBadge.d.ts.map +1 -1
- package/dist/client/sharing/VisibilityBadge.js +1 -18
- package/dist/client/sharing/VisibilityBadge.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts +8 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +3 -2
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/coding-tools/run-code.d.ts +36 -0
- package/dist/coding-tools/run-code.d.ts.map +1 -1
- package/dist/coding-tools/run-code.js +333 -62
- package/dist/coding-tools/run-code.js.map +1 -1
- package/dist/coding-tools/sandbox/background.d.ts +141 -0
- package/dist/coding-tools/sandbox/background.d.ts.map +1 -0
- package/dist/coding-tools/sandbox/background.js +279 -0
- package/dist/coding-tools/sandbox/background.js.map +1 -0
- package/dist/coding-tools/sandbox/executions-store.d.ts +138 -0
- package/dist/coding-tools/sandbox/executions-store.d.ts.map +1 -0
- package/dist/coding-tools/sandbox/executions-store.js +380 -0
- package/dist/coding-tools/sandbox/executions-store.js.map +1 -0
- package/dist/coding-tools/sandbox/index.d.ts +22 -13
- package/dist/coding-tools/sandbox/index.d.ts.map +1 -1
- package/dist/coding-tools/sandbox/index.js +31 -13
- package/dist/coding-tools/sandbox/index.js.map +1 -1
- package/dist/coding-tools/sandbox/local-child-process-adapter.d.ts.map +1 -1
- package/dist/coding-tools/sandbox/local-child-process-adapter.js +61 -4
- package/dist/coding-tools/sandbox/local-child-process-adapter.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/client.d.ts +16 -12
- package/dist/collab/client.d.ts.map +1 -1
- package/dist/collab/client.js +744 -496
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/presence.d.ts +2 -20
- package/dist/collab/presence.d.ts.map +1 -1
- package/dist/collab/presence.js +3 -0
- package/dist/collab/presence.js.map +1 -1
- package/dist/collab/recent-edits.d.ts +2 -37
- package/dist/collab/recent-edits.d.ts.map +1 -1
- package/dist/collab/recent-edits.js +2 -9
- package/dist/collab/recent-edits.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/data-programs/actions.d.ts +19 -0
- package/dist/data-programs/actions.d.ts.map +1 -0
- package/dist/data-programs/actions.js +279 -0
- package/dist/data-programs/actions.js.map +1 -0
- package/dist/data-programs/contract.d.ts +70 -0
- package/dist/data-programs/contract.d.ts.map +1 -0
- package/dist/data-programs/contract.js +225 -0
- package/dist/data-programs/contract.js.map +1 -0
- package/dist/data-programs/execute.d.ts +96 -0
- package/dist/data-programs/execute.d.ts.map +1 -0
- package/dist/data-programs/execute.js +454 -0
- package/dist/data-programs/execute.js.map +1 -0
- package/dist/data-programs/index.d.ts +11 -0
- package/dist/data-programs/index.d.ts.map +1 -0
- package/dist/data-programs/index.js +11 -0
- package/dist/data-programs/index.js.map +1 -0
- package/dist/data-programs/schema.d.ts +517 -0
- package/dist/data-programs/schema.d.ts.map +1 -0
- package/dist/data-programs/schema.js +138 -0
- package/dist/data-programs/schema.js.map +1 -0
- package/dist/data-programs/store.d.ts +158 -0
- package/dist/data-programs/store.d.ts.map +1 -0
- package/dist/data-programs/store.js +493 -0
- package/dist/data-programs/store.js.map +1 -0
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +34 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/extensions/actions.js +2 -2
- package/dist/extensions/actions.js.map +1 -1
- package/dist/file-upload/builder.d.ts.map +1 -1
- package/dist/file-upload/builder.js +9 -0
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +21 -10
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/local-artifacts/index.js +1 -1
- package/dist/local-artifacts/index.js.map +1 -1
- package/dist/localization/default-messages.d.ts +0 -1
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +1 -2
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp-client/index.d.ts +9 -0
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +23 -0
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +2 -2
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/store.d.ts.map +1 -1
- package/dist/resources/store.js +35 -3
- package/dist/resources/store.js.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +4 -8
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/agent-engines/test-agent-engine.d.ts.map +1 -1
- package/dist/scripts/agent-engines/test-agent-engine.js +7 -2
- package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -1
- package/dist/scripts/db/tool-mode.js +3 -3
- package/dist/scripts/db/tool-mode.js.map +1 -1
- package/dist/scripts/resources/migrate-learnings.d.ts +5 -1
- package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
- package/dist/scripts/resources/migrate-learnings.js +8 -10
- package/dist/scripts/resources/migrate-learnings.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat-plugin.d.ts +20 -6
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +138 -59
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.d.ts.map +1 -1
- package/dist/server/agent-discovery.js +62 -8
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +75 -3
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-design-systems.js +2 -2
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +100 -20
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/credential-provider.d.ts +6 -3
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +25 -8
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/csrf.js +3 -0
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/oauth-helpers.d.ts.map +1 -1
- package/dist/server/oauth-helpers.js +9 -1
- package/dist/server/oauth-helpers.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +80 -48
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/prompts/shared-rules.js +2 -2
- package/dist/server/prompts/shared-rules.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +77 -15
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/styles/agent-native.css +57 -45
- package/dist/templates/default/.agents/skills/actions/SKILL.md +55 -0
- package/dist/templates/default/AGENTS.md +11 -14
- package/dist/templates/default/actions/navigate.ts +1 -1
- package/dist/templates/default/app/i18n/ar-SA.ts +0 -1
- package/dist/templates/default/app/i18n/de-DE.ts +0 -1
- package/dist/templates/default/app/i18n/en-US.ts +0 -1
- package/dist/templates/default/app/i18n/es-ES.ts +0 -1
- package/dist/templates/default/app/i18n/fr-FR.ts +0 -1
- package/dist/templates/default/app/i18n/hi-IN.ts +0 -1
- package/dist/templates/default/app/i18n/ja-JP.ts +0 -1
- package/dist/templates/default/app/i18n/ko-KR.ts +0 -1
- package/dist/templates/default/app/i18n/pt-BR.ts +0 -1
- package/dist/templates/default/app/i18n/zh-CN.ts +0 -1
- package/dist/templates/default/app/i18n/zh-TW.ts +0 -1
- package/dist/templates/default/app/routes/settings.tsx +22 -33
- package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +20 -7
- package/dist/templates/headless/AGENTS.md +9 -6
- package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +55 -0
- package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +128 -0
- package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +10 -4
- package/dist/vite/agents-bundle-plugin.d.ts.map +1 -1
- package/dist/vite/agents-bundle-plugin.js +26 -1
- package/dist/vite/agents-bundle-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +11 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/agent-native-toolkit.mdx +87 -146
- package/docs/content/cloneable-saas.mdx +19 -19
- package/docs/content/components.mdx +16 -4
- package/docs/content/data-programs.mdx +329 -0
- package/docs/content/deployment.mdx +9 -9
- package/docs/content/extensions.mdx +8 -7
- package/docs/content/generative-ui.mdx +5 -3
- package/docs/content/key-concepts.mdx +6 -9
- package/docs/content/locales/ar-SA/agent-native-toolkit.mdx +100 -70
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +19 -19
- package/docs/content/locales/ar-SA/components.mdx +12 -2
- package/docs/content/locales/ar-SA/data-programs.mdx +329 -0
- package/docs/content/locales/ar-SA/deployment.mdx +8 -9
- package/docs/content/locales/ar-SA/extensions.mdx +6 -4
- package/docs/content/locales/ar-SA/key-concepts.mdx +7 -9
- package/docs/content/locales/ar-SA/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/de-DE/agent-native-toolkit.mdx +100 -74
- package/docs/content/locales/de-DE/cloneable-saas.mdx +19 -19
- package/docs/content/locales/de-DE/components.mdx +12 -2
- package/docs/content/locales/de-DE/data-programs.mdx +329 -0
- package/docs/content/locales/de-DE/deployment.mdx +8 -9
- package/docs/content/locales/de-DE/extensions.mdx +6 -4
- package/docs/content/locales/de-DE/key-concepts.mdx +8 -10
- package/docs/content/locales/de-DE/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/es-ES/agent-native-toolkit.mdx +100 -74
- package/docs/content/locales/es-ES/cloneable-saas.mdx +19 -19
- package/docs/content/locales/es-ES/components.mdx +12 -2
- package/docs/content/locales/es-ES/data-programs.mdx +329 -0
- package/docs/content/locales/es-ES/deployment.mdx +8 -9
- package/docs/content/locales/es-ES/extensions.mdx +6 -4
- package/docs/content/locales/es-ES/key-concepts.mdx +8 -10
- package/docs/content/locales/es-ES/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/fr-FR/agent-native-toolkit.mdx +100 -76
- package/docs/content/locales/fr-FR/cloneable-saas.mdx +19 -19
- package/docs/content/locales/fr-FR/components.mdx +12 -2
- package/docs/content/locales/fr-FR/data-programs.mdx +329 -0
- package/docs/content/locales/fr-FR/deployment.mdx +8 -9
- package/docs/content/locales/fr-FR/extensions.mdx +6 -4
- package/docs/content/locales/fr-FR/key-concepts.mdx +8 -10
- package/docs/content/locales/fr-FR/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/hi-IN/agent-native-toolkit.mdx +100 -71
- package/docs/content/locales/hi-IN/cloneable-saas.mdx +19 -19
- package/docs/content/locales/hi-IN/components.mdx +20 -10
- package/docs/content/locales/hi-IN/data-programs.mdx +329 -0
- package/docs/content/locales/hi-IN/deployment.mdx +8 -9
- package/docs/content/locales/hi-IN/extensions.mdx +6 -4
- package/docs/content/locales/hi-IN/key-concepts.mdx +8 -10
- package/docs/content/locales/hi-IN/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/ja-JP/agent-native-toolkit.mdx +100 -64
- package/docs/content/locales/ja-JP/cloneable-saas.mdx +19 -19
- package/docs/content/locales/ja-JP/components.mdx +12 -2
- package/docs/content/locales/ja-JP/data-programs.mdx +329 -0
- package/docs/content/locales/ja-JP/deployment.mdx +8 -9
- package/docs/content/locales/ja-JP/extensions.mdx +6 -4
- package/docs/content/locales/ja-JP/key-concepts.mdx +9 -11
- package/docs/content/locales/ja-JP/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/ko-KR/agent-native-toolkit.mdx +100 -60
- package/docs/content/locales/ko-KR/cloneable-saas.mdx +19 -19
- package/docs/content/locales/ko-KR/components.mdx +20 -10
- package/docs/content/locales/ko-KR/data-programs.mdx +329 -0
- package/docs/content/locales/ko-KR/deployment.mdx +8 -9
- package/docs/content/locales/ko-KR/extensions.mdx +16 -14
- package/docs/content/locales/ko-KR/key-concepts.mdx +9 -11
- package/docs/content/locales/ko-KR/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/pt-BR/agent-native-toolkit.mdx +100 -74
- package/docs/content/locales/pt-BR/cloneable-saas.mdx +19 -19
- package/docs/content/locales/pt-BR/components.mdx +12 -2
- package/docs/content/locales/pt-BR/data-programs.mdx +329 -0
- package/docs/content/locales/pt-BR/deployment.mdx +8 -9
- package/docs/content/locales/pt-BR/extensions.mdx +6 -4
- package/docs/content/locales/pt-BR/key-concepts.mdx +8 -11
- package/docs/content/locales/pt-BR/real-time-collaboration.mdx +9 -10
- package/docs/content/locales/zh-CN/agent-native-toolkit.mdx +100 -58
- package/docs/content/locales/zh-CN/cloneable-saas.mdx +19 -19
- package/docs/content/locales/zh-CN/components.mdx +20 -10
- package/docs/content/locales/zh-CN/data-programs.mdx +329 -0
- package/docs/content/locales/zh-CN/deployment.mdx +7 -9
- package/docs/content/locales/zh-CN/extensions.mdx +16 -14
- package/docs/content/locales/zh-CN/key-concepts.mdx +7 -11
- package/docs/content/locales/zh-CN/real-time-collaboration.mdx +10 -11
- package/docs/content/locales/zh-TW/agent-native-toolkit.mdx +100 -58
- package/docs/content/locales/zh-TW/cloneable-saas.mdx +19 -19
- package/docs/content/locales/zh-TW/components.mdx +20 -10
- package/docs/content/locales/zh-TW/data-programs.mdx +329 -0
- package/docs/content/locales/zh-TW/deployment.mdx +7 -9
- package/docs/content/locales/zh-TW/extensions.mdx +16 -14
- package/docs/content/locales/zh-TW/key-concepts.mdx +7 -11
- package/docs/content/locales/zh-TW/real-time-collaboration.mdx +10 -11
- package/docs/content/real-time-collaboration.mdx +10 -11
- package/docs/content/toolkit-app-adapters.mdx +46 -0
- package/docs/content/toolkit-collaboration-ui.mdx +48 -0
- package/docs/content/toolkit-sharing-ui.mdx +33 -0
- package/docs/content/toolkit-shell-hooks.mdx +27 -0
- package/docs/content/toolkit-ui.mdx +69 -0
- package/package.json +6 -2
- package/src/templates/default/.agents/skills/actions/SKILL.md +55 -0
- package/src/templates/default/AGENTS.md +11 -14
- package/src/templates/default/actions/navigate.spec.ts +53 -0
- package/src/templates/default/actions/navigate.ts +1 -1
- package/src/templates/default/app/i18n/ar-SA.ts +0 -1
- package/src/templates/default/app/i18n/de-DE.ts +0 -1
- package/src/templates/default/app/i18n/en-US.ts +0 -1
- package/src/templates/default/app/i18n/es-ES.ts +0 -1
- package/src/templates/default/app/i18n/fr-FR.ts +0 -1
- package/src/templates/default/app/i18n/hi-IN.ts +0 -1
- package/src/templates/default/app/i18n/ja-JP.ts +0 -1
- package/src/templates/default/app/i18n/ko-KR.ts +0 -1
- package/src/templates/default/app/i18n/pt-BR.ts +0 -1
- package/src/templates/default/app/i18n/zh-CN.ts +0 -1
- package/src/templates/default/app/i18n/zh-TW.ts +0 -1
- package/src/templates/default/app/routes/settings.tsx +22 -33
- package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +20 -7
- package/src/templates/headless/AGENTS.md +9 -6
- package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +55 -0
- package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +128 -0
- package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +10 -4
- package/corpus/templates/design/server/lib/figma-import/clipboard.ts +0 -122
- package/corpus/templates/design/server/lib/figma-import/decode.ts +0 -455
- package/corpus/templates/design/server/lib/figma-import/processor.ts +0 -116
- package/corpus/templates/design/server/lib/figma-import/render-html.ts +0 -397
- package/corpus/templates/design/server/lib/figma-import/types.ts +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bridge.d.ts","sourceRoot":"","sources":["../../src/client/host-bridge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,UAAU,CAAC;AAExD,eAAO,MAAM,+BAA+B;aAC1C,KAAK,EAAE,wBAAwB;aAC/B,IAAI,EAAE,uBAAuB;aAC7B,WAAW,EAAE,6BAA6B;aAC1C,OAAO,EAAE,0BAA0B;aACnC,IAAI,EAAE,uBAAuB;aAC7B,YAAY,EAAE,8BAA8B;aAC5C,OAAO,EAAE,0BAA0B;aACnC,UAAU,EAAE,4BAA4B;aACxC,aAAa,EAAE,+BAA+B;aAC9C,OAAO,EAAE,0BAA0B;aACnC,cAAc,EAAE,gCAAgC;aAChD,KAAK,EAAE,wBAAwB;CACvB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,OAAO,+BAA+B,CAAC,CAAC;AAEzF,MAAM,MAAM,6BAA6B,GACrC,UAAU,GACV,aAAa,GACb,cAAc,GACd,aAAa,GACb,cAAc,GACd,YAAY,GACZ,aAAa,GACb,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,cAAc,GACd,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,YAAY,CAAC,EAAE,6BAA6B,GAAG,MAAM,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,GAAG,qCAAqC,CAAC;IACnE,QAAQ,CAAC,EAAE,qCAAqC,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qCAAqC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,sBAAsB,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,uBAAuB,CACtC,KAAK,GAAG,OAAO,EACf,OAAO,GAAG,OAAO,CACjB,SAAQ,8BAA8B;IACtC,GAAG,CACD,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,8BAA8B,GACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,6BAA6B,GAAG,MACxC,uBAAuB,EAAE,GACzB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAEvC,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,EAAE,GACzB,6BAA6B,CAAC;AAElC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACtE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,SAAS,CAAC,EAAE,+BAA+B,CAAC;IAC5C,QAAQ,CAAC,EAAE,8BAA8B,CAAC;IAC1C,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAC/C,YAAY,CAAC,EAAE,2BAA2B,GAAG,MAAM,EAAE,CAAC;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,0BAA0B,GAC1B,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,4BAA4B,GAAG,MACvC,sBAAsB,GACtB,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEpC,MAAM,WAAW,6BAA6B,CAAC,QAAQ,GAAG,OAAO;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,6BAA6B,CACvC,QAAQ,GAAG,OAAO,EAClB,OAAO,GAAG,OAAO,IACf,CACF,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,EAChD,KAAK,EAAE,YAAY,KAChB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,MAAM,8BAA8B,GAAG,MAAM,CACjD,MAAM,EACN,6BAA6B,GAAG,SAAS,CAC1C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnD,iFAAiF;IACjF,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,EAAE,8BAA8B,CAAC;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,IAAI,qBAAqB,CAAC;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AA6GD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,SAAS,CAAC,EAAE,+BAA+B,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3D,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkDD,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,gCAAqC,GAC7C,sBAAsB,CAyCxB;
|
|
1
|
+
{"version":3,"file":"host-bridge.d.ts","sourceRoot":"","sources":["../../src/client/host-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,22 +222,38 @@ function dispatchHostEvent(type, payload) {
|
|
|
222
222
|
}));
|
|
223
223
|
return { dispatched: true };
|
|
224
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Cooldown for host-issued `hardReload` / `hard-reload` commands. A reload is
|
|
227
|
+
* already in flight after the first command, so repeats inside this window are
|
|
228
|
+
* acknowledged (`{ reloading: true }` — the page IS reloading) but do not call
|
|
229
|
+
* `window.location.reload()` again. Without this, an embedding host that sends
|
|
230
|
+
* the command on a loop (health checks, per-edit refresh logic) can keep the
|
|
231
|
+
* page permanently mid-reload.
|
|
232
|
+
*/
|
|
233
|
+
const HARD_RELOAD_COOLDOWN_MS = 2_000;
|
|
234
|
+
let lastHardReloadAt = 0;
|
|
235
|
+
/** @internal Exported for tests only. */
|
|
236
|
+
export function _resetHostHardReloadCooldownForTests() {
|
|
237
|
+
lastHardReloadAt = 0;
|
|
238
|
+
}
|
|
239
|
+
function runGuardedHardReload() {
|
|
240
|
+
if (typeof window !== "undefined") {
|
|
241
|
+
const now = Date.now();
|
|
242
|
+
if (now - lastHardReloadAt >= HARD_RELOAD_COOLDOWN_MS) {
|
|
243
|
+
lastHardReloadAt = now;
|
|
244
|
+
window.location.reload();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return { reloading: true };
|
|
248
|
+
}
|
|
225
249
|
export const defaultAgentNativeHostCommands = {
|
|
226
250
|
navigate: ({ payload }) => dispatchHostEvent("agentNative:navigate", payload),
|
|
227
251
|
refreshData: ({ payload }) => dispatchHostEvent("agentNative:refresh-data", payload),
|
|
228
252
|
"refresh-data": ({ payload }) => dispatchHostEvent("agentNative:refresh-data", payload),
|
|
229
253
|
remountView: ({ payload }) => dispatchHostEvent("agentNative:remount-view", payload),
|
|
230
254
|
"remount-view": ({ payload }) => dispatchHostEvent("agentNative:remount-view", payload),
|
|
231
|
-
hardReload: () =>
|
|
232
|
-
|
|
233
|
-
window.location.reload();
|
|
234
|
-
return { reloading: true };
|
|
235
|
-
},
|
|
236
|
-
"hard-reload": () => {
|
|
237
|
-
if (typeof window !== "undefined")
|
|
238
|
-
window.location.reload();
|
|
239
|
-
return { reloading: true };
|
|
240
|
-
},
|
|
255
|
+
hardReload: () => runGuardedHardReload(),
|
|
256
|
+
"hard-reload": () => runGuardedHardReload(),
|
|
241
257
|
openResource: ({ payload }) => dispatchHostEvent("agentNative:open-resource", payload),
|
|
242
258
|
"open-resource": ({ payload }) => dispatchHostEvent("agentNative:open-resource", payload),
|
|
243
259
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../src/client/host-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["export const AGENT_NATIVE_HOST_BRIDGE_VERSION = \"0.1.0\";\n\nexport const AGENT_NATIVE_HOST_MESSAGE_TYPES = {\n READY: \"agentNative.host.ready\",\n INIT: \"agentNative.host.init\",\n GET_CONTEXT: \"agentNative.host.getContext\",\n CONTEXT: \"agentNative.host.context\",\n AUTH: \"agentNative.host.auth\",\n LIST_ACTIONS: \"agentNative.host.listActions\",\n ACTIONS: \"agentNative.host.actions\",\n RUN_ACTION: \"agentNative.host.runAction\",\n ACTION_RESULT: \"agentNative.host.actionResult\",\n COMMAND: \"agentNative.host.command\",\n COMMAND_RESULT: \"agentNative.host.commandResult\",\n ERROR: \"agentNative.host.error\",\n} as const;\n\nexport type AgentNativeHostMessageType =\n (typeof AGENT_NATIVE_HOST_MESSAGE_TYPES)[keyof typeof AGENT_NATIVE_HOST_MESSAGE_TYPES];\n\nexport type BuiltInAgentNativeHostCommand =\n | \"navigate\"\n | \"refreshData\"\n | \"refresh-data\"\n | \"remountView\"\n | \"remount-view\"\n | \"hardReload\"\n | \"hard-reload\"\n | \"openResource\"\n | \"open-resource\"\n | \"requestApproval\"\n | \"request-approval\";\n\nexport type AgentNativeJsonSchema = Record<string, unknown>;\n\nexport type AgentNativeActionAvailability =\n | \"browser-session\"\n | \"current-page\"\n | \"backend\"\n | \"always\";\n\nexport interface AgentNativeActionManifestEntry {\n name: string;\n description: string;\n schema?: AgentNativeJsonSchema;\n /** Alias for schema for function-calling/tooling runtimes. */\n parameters?: AgentNativeJsonSchema;\n title?: string;\n source?: \"client\" | \"backend\" | string;\n availability?: AgentNativeActionAvailability | string;\n destructive?: boolean;\n requiresApproval?: boolean | AgentNativeClientActionApprovalConfig;\n approval?: AgentNativeClientActionApprovalConfig;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeClientActionApprovalConfig {\n title?: string;\n description?: string;\n confirmLabel?: string;\n risk?: \"low\" | \"medium\" | \"high\" | string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostSession {\n id: string;\n label?: string;\n connectedAt: string;\n url?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeClientActionRuntime {\n requestId?: string;\n origin: string;\n context: AgentNativeHostContext;\n session: AgentNativeHostSession;\n event: MessageEvent;\n refresh(payload?: unknown): Promise<unknown>;\n command(command: string, payload?: unknown): Promise<unknown>;\n}\n\nexport interface AgentNativeClientAction<\n TArgs = unknown,\n TResult = unknown,\n> extends AgentNativeActionManifestEntry {\n run(\n args: TArgs,\n runtime: AgentNativeClientActionRuntime,\n ): TResult | Promise<TResult>;\n}\n\nexport type AgentNativeClientActionGetter = () =>\n | AgentNativeClientAction[]\n | Promise<AgentNativeClientAction[]>;\n\nexport type AgentNativeClientActions =\n | AgentNativeClientAction[]\n | AgentNativeClientActionGetter;\n\nexport interface AgentNativeHostRouteContext {\n pathname?: string;\n search?: string;\n hash?: string;\n name?: string;\n params?: Record<string, string | number | boolean | null | undefined>;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostSelectionContext {\n type?: string;\n text?: string;\n ids?: string[];\n ranges?: unknown[];\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostResourceContext {\n type?: string;\n id?: string;\n name?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostPrincipalContext {\n id?: string;\n email?: string;\n name?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostCapabilities {\n commands?: string[];\n actions?: string[];\n refresh?: boolean;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostContext {\n url?: string;\n title?: string;\n route?: AgentNativeHostRouteContext;\n screen?: AgentNativeScreenSnapshot;\n session?: AgentNativeHostSession;\n selection?: AgentNativeHostSelectionContext;\n resource?: AgentNativeHostResourceContext;\n user?: AgentNativeHostPrincipalContext;\n organization?: AgentNativeHostPrincipalContext;\n capabilities?: AgentNativeHostCapabilities | string[];\n data?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostAuthPayload {\n token?: string;\n headers?: Record<string, string>;\n userId?: string;\n organizationId?: string;\n [key: string]: unknown;\n}\n\nexport type AgentNativeHostAuthValue =\n | string\n | AgentNativeHostAuthPayload\n | null\n | undefined;\n\nexport type AgentNativeHostAuth =\n | AgentNativeHostAuthValue\n | (() => AgentNativeHostAuthValue | Promise<AgentNativeHostAuthValue>);\n\nexport type AgentNativeHostContextGetter = () =>\n | AgentNativeHostContext\n | Promise<AgentNativeHostContext>;\n\nexport interface AgentNativeHostCommandRequest<TPayload = unknown> {\n command: string;\n payload?: TPayload;\n requestId?: string;\n origin: string;\n}\n\nexport type AgentNativeHostCommandHandler<\n TPayload = unknown,\n TResult = unknown,\n> = (\n request: AgentNativeHostCommandRequest<TPayload>,\n event: MessageEvent,\n) => TResult | Promise<TResult>;\n\nexport type AgentNativeHostCommandHandlers = Record<\n string,\n AgentNativeHostCommandHandler | undefined\n>;\n\nexport type AgentNativeHostBridgeEvent =\n | { type: \"ready\"; requestId?: string; origin: string }\n | { type: \"init\"; requestId?: string; origin?: string }\n | { type: \"context\"; requestId?: string; origin?: string }\n | { type: \"auth\"; requestId?: string; origin?: string }\n | { type: \"actions\"; requestId?: string; count: number; origin?: string }\n | {\n type: \"action\";\n name: string;\n requestId?: string;\n origin: string;\n }\n | {\n type: \"command\";\n command: string;\n requestId?: string;\n origin: string;\n }\n | {\n type: \"ignored\";\n reason: \"origin\" | \"source\" | \"message\";\n origin: string;\n }\n | { type: \"error\"; requestId?: string; error: Error; origin?: string };\n\nexport interface AgentNativeHostBridgeOptions {\n /**\n * The iframe/content window that runs the agent sidecar. Can be set later\n * with `bridge.setTargetWindow(iframe.contentWindow)`.\n */\n targetWindow?: Window | null;\n /**\n * Exact origin allowed to talk to the host, or a full URL whose origin should\n * be trusted. Pass \"*\" only for local prototypes.\n */\n agentOrigin?: string;\n /** Stable browser-session identity. Used by the sidecar to distinguish tabs. */\n session?: string | Partial<AgentNativeHostSession>;\n /** Return current route, selected resource, user/org, and host-specific data. */\n getContext?: AgentNativeHostContextGetter;\n /**\n * Commands the sidecar may ask the host app to perform. If omitted, the\n * bridge still supports safe event-dispatch defaults for navigation/refresh.\n */\n commands?: AgentNativeHostCommandHandlers;\n /**\n * Optional bearer token or headers for the iframe sidecar. Only sent via\n * postMessage to the trusted `agentOrigin`.\n */\n auth?: AgentNativeHostAuth;\n /**\n * Live browser-session actions. These can change per render/page context and\n * are only callable while this host page is connected.\n */\n actions?: AgentNativeClientActions;\n onEvent?: (event: AgentNativeHostBridgeEvent) => void;\n}\n\nexport interface AgentNativeHostBridge {\n start(): AgentNativeHostBridge;\n stop(): void;\n setTargetWindow(targetWindow: Window | null): void;\n post(message: Record<string, unknown>): boolean;\n sendInit(requestId?: string): Promise<boolean>;\n sendContext(requestId?: string): Promise<boolean>;\n refreshContext(): Promise<boolean>;\n sendAuth(requestId?: string): Promise<boolean>;\n sendActions(requestId?: string): Promise<boolean>;\n}\n\ntype IncomingHostMessage =\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.READY;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION;\n requestId?: string;\n name?: string;\n args?: unknown;\n payload?: unknown;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND;\n requestId?: string;\n command?: string;\n payload?: unknown;\n };\n\ntype HostResponse<TValue> =\n | { ok: true; value: TValue }\n | { ok: false; error: Error };\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeOrigin(value: string | null | undefined): string | null {\n if (!value) return null;\n if (value === \"*\") return \"*\";\n try {\n return new URL(value).origin;\n } catch {\n return null;\n }\n}\n\nfunction getWindowFromSource(source: MessageEventSource | null): Window | null {\n if (!source || !(\"postMessage\" in source)) return null;\n return source as Window;\n}\n\nfunction messageError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction serializeForMessage<T>(value: T, label: string): T {\n if (value === undefined) return value;\n try {\n return JSON.parse(JSON.stringify(value)) as T;\n } catch {\n throw new Error(`${label} must be JSON-serializable`);\n }\n}\n\nfunction requestId(): string {\n return `host-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction sessionId(): string {\n return `session-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction createHostSession(\n session: AgentNativeHostBridgeOptions[\"session\"],\n): AgentNativeHostSession {\n const now = new Date().toISOString();\n const base =\n typeof session === \"string\"\n ? { id: session }\n : session && typeof session === \"object\"\n ? session\n : {};\n return {\n id: base.id || sessionId(),\n connectedAt: base.connectedAt || now,\n url:\n base.url ||\n (typeof window !== \"undefined\" ? window.location.href : undefined),\n ...base,\n };\n}\n\nfunction attachSession(\n context: AgentNativeHostContext,\n session: AgentNativeHostSession,\n): AgentNativeHostContext {\n return serializeForMessage(\n {\n ...context,\n session: {\n ...session,\n ...(context.session ?? {}),\n },\n },\n \"Host context\",\n );\n}\n\nexport interface AgentNativeScreenSnapshot {\n url?: string;\n title?: string;\n route?: AgentNativeHostRouteContext;\n selection?: AgentNativeHostSelectionContext;\n visibleText?: string;\n html?: string;\n viewport?: {\n width: number;\n height: number;\n scrollX: number;\n scrollY: number;\n };\n}\n\nexport interface AgentNativeScreenSnapshotOptions {\n /**\n * Root element to read from. Defaults to document.body, then documentElement.\n */\n root?: Element | null | (() => Element | null | undefined);\n /** Include textContent from the root element. Defaults to true. */\n includeVisibleText?: boolean;\n /** Include outerHTML from the root element. Defaults to false. */\n includeDomHtml?: boolean;\n /** Max characters of visible text to include. Defaults to 6000. */\n maxTextLength?: number;\n /** Max characters of DOM html to include. Defaults to 20000. */\n maxHtmlLength?: number;\n}\n\nfunction truncate(\n value: string | undefined,\n maxLength: number,\n): string | undefined {\n if (!value) return undefined;\n const normalized = value.replace(/\\s+/g, \" \").trim();\n if (normalized.length <= maxLength) return normalized;\n return `${normalized.slice(0, Math.max(0, maxLength - 1))}…`;\n}\n\nfunction resolveSnapshotRoot(\n root: AgentNativeScreenSnapshotOptions[\"root\"],\n): Element | null {\n if (typeof document === \"undefined\") return null;\n if (typeof root === \"function\") return root() ?? null;\n return root ?? document.body ?? document.documentElement;\n}\n\nfunction readElementText(root: Element): string | undefined {\n if (typeof document === \"undefined\") return root.textContent ?? undefined;\n try {\n const showText =\n typeof NodeFilter === \"undefined\" ? 4 : NodeFilter.SHOW_TEXT;\n const walker = document.createTreeWalker(root, showText);\n const parts: string[] = [];\n while (walker.nextNode()) {\n const text = walker.currentNode.textContent?.trim();\n if (text) parts.push(text);\n }\n return parts.join(\" \");\n } catch {\n return root.textContent ?? undefined;\n }\n}\n\nfunction defaultContext(): AgentNativeHostContext {\n if (typeof window === \"undefined\") return {};\n return {\n url: window.location.href,\n title: typeof document !== \"undefined\" ? document.title : undefined,\n route: {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n },\n };\n}\n\nexport function readAgentNativeScreenContext(\n options: AgentNativeScreenSnapshotOptions = {},\n): AgentNativeHostContext {\n const base = defaultContext();\n if (typeof window === \"undefined\") return base;\n\n const root = resolveSnapshotRoot(options.root);\n const selectionText =\n typeof window.getSelection === \"function\"\n ? window.getSelection()?.toString().trim() || undefined\n : undefined;\n const maxTextLength = options.maxTextLength ?? 6000;\n const maxHtmlLength = options.maxHtmlLength ?? 20000;\n const includeVisibleText = options.includeVisibleText ?? true;\n const includeDomHtml = options.includeDomHtml ?? false;\n const selection = selectionText\n ? { ...(base.selection ?? {}), type: \"text\", text: selectionText }\n : base.selection;\n\n return {\n ...base,\n selection,\n screen: {\n url: base.url,\n title: base.title,\n route: base.route,\n selection,\n visibleText:\n includeVisibleText && root\n ? truncate(readElementText(root), maxTextLength)\n : undefined,\n html:\n includeDomHtml && root\n ? truncate(root.outerHTML ?? undefined, maxHtmlLength)\n : undefined,\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollX: window.scrollX,\n scrollY: window.scrollY,\n },\n },\n };\n}\n\nasync function resolveHostContext(\n getContext: AgentNativeHostContextGetter | undefined,\n): Promise<AgentNativeHostContext> {\n const base = defaultContext();\n const custom = getContext ? await getContext() : undefined;\n if (!custom) return serializeForMessage(base, \"Host context\");\n const merged = {\n ...base,\n ...custom,\n route:\n base.route || custom.route\n ? { ...(base.route ?? {}), ...(custom.route ?? {}) }\n : undefined,\n };\n return serializeForMessage(merged, \"Host context\");\n}\n\nasync function resolveHostAuth(\n auth: AgentNativeHostAuth | undefined,\n): Promise<AgentNativeHostAuthPayload | undefined> {\n const value = typeof auth === \"function\" ? await auth() : auth;\n if (!value) return undefined;\n const payload = typeof value === \"string\" ? { token: value } : value;\n if (!payload || typeof payload !== \"object\") return undefined;\n const headers =\n payload.headers && typeof payload.headers === \"object\"\n ? Object.fromEntries(\n Object.entries(payload.headers).map(([key, val]) => [\n key,\n String(val),\n ]),\n )\n : undefined;\n return serializeForMessage(\n { ...payload, headers },\n \"Host auth payload\",\n ) as AgentNativeHostAuthPayload;\n}\n\nasync function resolveClientActions(\n actions: AgentNativeClientActions | undefined,\n): Promise<AgentNativeClientAction[]> {\n const value = typeof actions === \"function\" ? await actions() : actions;\n return Array.isArray(value) ? value : [];\n}\n\nfunction toActionManifest(\n action: AgentNativeClientAction,\n): AgentNativeActionManifestEntry | null {\n if (!action?.name || !action.description) return null;\n const { run: _run, ...manifest } = action;\n return serializeForMessage(\n {\n source: \"client\",\n availability: \"browser-session\",\n ...manifest,\n schema: manifest.schema ?? manifest.parameters,\n },\n \"Client action manifest\",\n );\n}\n\nasync function resolveActionManifest(\n actions: AgentNativeClientActions | undefined,\n): Promise<AgentNativeActionManifestEntry[]> {\n const resolved = await resolveClientActions(actions);\n return resolved\n .map(toActionManifest)\n .filter(Boolean) as AgentNativeActionManifestEntry[];\n}\n\nasync function findClientAction(\n actions: AgentNativeClientActions | undefined,\n name: string,\n): Promise<AgentNativeClientAction | undefined> {\n const resolved = await resolveClientActions(actions);\n return resolved.find((action) => action.name === name);\n}\n\nfunction dispatchHostEvent(\n type: string,\n payload: unknown,\n): { dispatched: true } {\n if (typeof window === \"undefined\") return { dispatched: true };\n window.dispatchEvent(\n new CustomEvent(type, {\n detail: payload,\n }),\n );\n return { dispatched: true };\n}\n\nexport const defaultAgentNativeHostCommands: AgentNativeHostCommandHandlers = {\n navigate: ({ payload }) => dispatchHostEvent(\"agentNative:navigate\", payload),\n refreshData: ({ payload }) =>\n dispatchHostEvent(\"agentNative:refresh-data\", payload),\n \"refresh-data\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:refresh-data\", payload),\n remountView: ({ payload }) =>\n dispatchHostEvent(\"agentNative:remount-view\", payload),\n \"remount-view\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:remount-view\", payload),\n hardReload: () => {\n if (typeof window !== \"undefined\") window.location.reload();\n return { reloading: true };\n },\n \"hard-reload\": () => {\n if (typeof window !== \"undefined\") window.location.reload();\n return { reloading: true };\n },\n openResource: ({ payload }) =>\n dispatchHostEvent(\"agentNative:open-resource\", payload),\n \"open-resource\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:open-resource\", payload),\n};\n\nfunction isIncomingHostMessage(value: unknown): value is IncomingHostMessage {\n if (!isRecord(value)) return false;\n return (\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.READY ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND\n );\n}\n\nexport function createAgentNativeHostBridge(\n options: AgentNativeHostBridgeOptions,\n): AgentNativeHostBridge {\n let targetWindow = options.targetWindow ?? null;\n let started = false;\n const allowedOrigin = normalizeOrigin(options.agentOrigin);\n const targetOrigin =\n allowedOrigin && allowedOrigin !== \"*\" ? allowedOrigin : \"*\";\n const session = createHostSession(options.session);\n\n function emit(event: AgentNativeHostBridgeEvent) {\n options.onEvent?.(event);\n }\n\n function trusted(event: MessageEvent): boolean {\n if (\n allowedOrigin &&\n allowedOrigin !== \"*\" &&\n event.origin !== allowedOrigin\n ) {\n emit({ type: \"ignored\", reason: \"origin\", origin: event.origin });\n return false;\n }\n if (targetWindow && event.source !== targetWindow) {\n emit({ type: \"ignored\", reason: \"source\", origin: event.origin });\n return false;\n }\n return true;\n }\n\n function post(message: Record<string, unknown>): boolean {\n if (!targetWindow) return false;\n targetWindow.postMessage(message, targetOrigin);\n return true;\n }\n\n async function sendInit(requestId?: string): Promise<boolean> {\n const message: Record<string, unknown> = {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.INIT,\n version: AGENT_NATIVE_HOST_BRIDGE_VERSION,\n requestId,\n };\n try {\n message.session = session;\n message.context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n } catch (error) {\n message.contextError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n try {\n message.auth = await resolveHostAuth(options.auth);\n } catch (error) {\n message.authError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n try {\n message.actions = await resolveActionManifest(options.actions);\n } catch (error) {\n message.actionsError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n const sent = post(message);\n if (sent) emit({ type: \"init\", requestId });\n return sent;\n }\n\n async function sendContext(requestId?: string): Promise<boolean> {\n try {\n const context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n ok: true,\n requestId,\n context,\n });\n if (sent) emit({ type: \"context\", requestId });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function sendAuth(requestId?: string): Promise<boolean> {\n try {\n const auth = await resolveHostAuth(options.auth);\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.AUTH,\n ok: true,\n requestId,\n auth,\n });\n if (sent) emit({ type: \"auth\", requestId });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.AUTH,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function sendActions(requestId?: string): Promise<boolean> {\n try {\n const actions = await resolveActionManifest(options.actions);\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n ok: true,\n requestId,\n actions,\n });\n if (sent) emit({ type: \"actions\", requestId, count: actions.length });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function runHostCommand(\n command: string,\n payload: unknown,\n requestId: string | undefined,\n event: MessageEvent,\n ): Promise<unknown> {\n const handler =\n options.commands?.[command] ?? defaultAgentNativeHostCommands[command];\n if (!handler) {\n throw new Error(`No host command handler registered for \"${command}\"`);\n }\n return handler(\n {\n command,\n payload,\n requestId,\n origin: event.origin,\n },\n event,\n );\n }\n\n function needsApproval(action: AgentNativeClientAction): boolean {\n return (\n action.destructive === true ||\n action.requiresApproval === true ||\n typeof action.requiresApproval === \"object\" ||\n Boolean(action.approval)\n );\n }\n\n function approvalConfig(\n action: AgentNativeClientAction,\n ): AgentNativeClientActionApprovalConfig | undefined {\n if (action.approval) return action.approval;\n return typeof action.requiresApproval === \"object\"\n ? action.requiresApproval\n : undefined;\n }\n\n async function assertActionApproved(\n action: AgentNativeClientAction,\n args: unknown,\n context: AgentNativeHostContext,\n requestId: string | undefined,\n event: MessageEvent,\n ): Promise<void> {\n if (!needsApproval(action)) return;\n const manifest = toActionManifest(action);\n const response = await runHostCommand(\n \"requestApproval\",\n {\n action: manifest,\n args,\n context,\n session,\n approval: approvalConfig(action),\n },\n requestId,\n event,\n );\n const approved =\n response === true ||\n (isRecord(response) &&\n (response.approved === true || response.ok === true));\n if (!approved)\n throw new Error(`Client action \"${action.name}\" was not approved`);\n }\n\n async function handleAction(\n message: IncomingHostMessage,\n event: MessageEvent,\n ) {\n if (message.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION) return;\n const name = typeof message.name === \"string\" ? message.name : \"\";\n const requestId = message.requestId;\n const args = \"args\" in message ? message.args : message.payload;\n try {\n if (!name) throw new Error(\"Missing client action name\");\n const action = await findClientAction(options.actions, name);\n if (!action) {\n throw new Error(`No client action registered for \"${name}\"`);\n }\n const context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n await assertActionApproved(action, args, context, requestId, event);\n emit({ type: \"action\", name, requestId, origin: event.origin });\n const result = await action.run(args, {\n requestId,\n origin: event.origin,\n context,\n session,\n event,\n refresh: (payload) =>\n runHostCommand(\"refreshData\", payload, requestId, event),\n command: (command, payload) =>\n runHostCommand(command, payload, requestId, event),\n });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n ok: true,\n requestId,\n result: serializeForMessage(result, \"Client action result\"),\n });\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err, origin: event.origin });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function handleCommand(\n message: IncomingHostMessage,\n event: MessageEvent,\n ) {\n if (message.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND) return;\n const command = typeof message.command === \"string\" ? message.command : \"\";\n const requestId = message.requestId;\n try {\n if (!command) throw new Error(\"Missing host command\");\n emit({ type: \"command\", command, requestId, origin: event.origin });\n const result = await runHostCommand(\n command,\n message.payload,\n requestId,\n event,\n );\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n ok: true,\n requestId,\n result: serializeForMessage(result, \"Host command result\"),\n });\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err, origin: event.origin });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n function onMessage(event: MessageEvent) {\n const message = event.data;\n if (!isIncomingHostMessage(message)) return;\n if (!trusted(event)) return;\n\n const sourceWindow = getWindowFromSource(event.source);\n if (!targetWindow && sourceWindow) targetWindow = sourceWindow;\n\n if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.READY) {\n emit({\n type: \"ready\",\n requestId: message.requestId,\n origin: event.origin,\n });\n void sendInit(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT) {\n void sendContext(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS) {\n void sendActions(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION) {\n void handleAction(message, event);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND) {\n void handleCommand(message, event);\n } else {\n emit({ type: \"ignored\", reason: \"message\", origin: event.origin });\n }\n }\n\n const bridge: AgentNativeHostBridge = {\n start() {\n if (started || typeof window === \"undefined\") return bridge;\n window.addEventListener(\"message\", onMessage);\n started = true;\n return bridge;\n },\n stop() {\n if (!started || typeof window === \"undefined\") return;\n window.removeEventListener(\"message\", onMessage);\n started = false;\n },\n setTargetWindow(nextTargetWindow) {\n targetWindow = nextTargetWindow;\n },\n post,\n sendInit,\n sendContext,\n refreshContext: sendContext,\n sendAuth,\n sendActions,\n };\n\n return bridge;\n}\n\nexport interface AgentNativeHostRequestOptions {\n /** Origin to send messages to. Defaults to \"*\" so prototypes can start. */\n targetOrigin?: string;\n /** Optional exact origin expected in replies from the host app. */\n hostOrigin?: string;\n timeoutMs?: number;\n targetWindow?: Window;\n}\n\nfunction getFrameTargetWindow(targetWindow?: Window): Window | null {\n if (targetWindow) return targetWindow;\n if (typeof window === \"undefined\") return null;\n try {\n return window.parent !== window ? window.parent : window;\n } catch {\n return window.parent;\n }\n}\n\nfunction isTrustedHostResponse(\n event: MessageEvent,\n targetWindow: Window,\n hostOrigin?: string,\n): boolean {\n if (event.source !== targetWindow) return false;\n const origin = normalizeOrigin(hostOrigin);\n if (origin && origin !== \"*\" && event.origin !== origin) return false;\n return true;\n}\n\nfunction requestFromHost<TValue>(\n message: Record<string, unknown>,\n responseType: AgentNativeHostMessageType,\n pick: (message: Record<string, unknown>) => HostResponse<TValue>,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TValue> {\n return new Promise((resolve, reject) => {\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow || typeof window === \"undefined\") {\n reject(new Error(\"No host window is available\"));\n return;\n }\n\n const id =\n typeof message.requestId === \"string\" ? message.requestId : requestId();\n const timeoutMs = options.timeoutMs ?? 3000;\n let settled = false;\n\n const cleanup = () => {\n window.removeEventListener(\"message\", onMessage);\n clearTimeout(timer);\n };\n\n const finish = (fn: () => void) => {\n if (settled) return;\n settled = true;\n cleanup();\n fn();\n };\n\n const timer = setTimeout(() => {\n finish(() => reject(new Error(\"Timed out waiting for host response\")));\n }, timeoutMs);\n\n function onMessage(event: MessageEvent) {\n // targetWindow is non-null: the null branch returned early above\n if (!isTrustedHostResponse(event, targetWindow!, options.hostOrigin)) {\n return;\n }\n if (!isRecord(event.data)) return;\n if (event.data.type !== responseType) return;\n if (event.data.requestId !== id) return;\n\n const response = pick(event.data);\n if (response.ok === true) {\n finish(() => resolve(response.value));\n } else {\n const error = response.error;\n finish(() => reject(error));\n }\n }\n\n window.addEventListener(\"message\", onMessage);\n targetWindow.postMessage(\n { ...message, requestId: id },\n options.targetOrigin ?? options.hostOrigin ?? \"*\",\n );\n });\n}\n\nexport function announceAgentNativeFrameReady(\n options: AgentNativeHostRequestOptions = {},\n): void {\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow) return;\n targetWindow.postMessage(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.READY,\n version: AGENT_NATIVE_HOST_BRIDGE_VERSION,\n requestId: requestId(),\n },\n options.targetOrigin ?? options.hostOrigin ?? \"*\",\n );\n}\n\nexport function requestAgentNativeHostContext(\n options: AgentNativeHostRequestOptions = {},\n): Promise<AgentNativeHostContext> {\n return requestFromHost(\n { type: AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host context request failed\",\n ),\n };\n }\n return {\n ok: true,\n value: (message.context ?? {}) as AgentNativeHostContext,\n };\n },\n options,\n );\n}\n\nexport function requestAgentNativeHostActions(\n options: AgentNativeHostRequestOptions = {},\n): Promise<AgentNativeActionManifestEntry[]> {\n return requestFromHost(\n { type: AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host actions request failed\",\n ),\n };\n }\n return {\n ok: true,\n value: Array.isArray(message.actions)\n ? (message.actions as AgentNativeActionManifestEntry[])\n : [],\n };\n },\n options,\n );\n}\n\nexport function runAgentNativeHostAction<TArgs = unknown, TResult = unknown>(\n name: string,\n args?: TArgs,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TResult> {\n return requestFromHost(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION,\n name,\n args,\n },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host action failed\",\n ),\n };\n }\n return { ok: true, value: message.result as TResult };\n },\n options,\n );\n}\n\nexport function sendAgentNativeHostCommand<\n TPayload = unknown,\n TResult = unknown,\n>(\n command: BuiltInAgentNativeHostCommand | string,\n payload?: TPayload,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TResult> {\n return requestFromHost(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND,\n command,\n payload,\n },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host command failed\",\n ),\n };\n }\n return { ok: true, value: message.result as TResult };\n },\n options,\n );\n}\n\nexport interface AgentNativeHostInit {\n version?: string;\n context?: AgentNativeHostContext;\n auth?: AgentNativeHostAuthPayload;\n actions?: AgentNativeActionManifestEntry[];\n session?: AgentNativeHostSession;\n contextError?: string;\n authError?: string;\n actionsError?: string;\n}\n\nexport function onAgentNativeHostInit(\n handler: (init: AgentNativeHostInit) => void,\n options: Pick<\n AgentNativeHostRequestOptions,\n \"hostOrigin\" | \"targetWindow\"\n > = {},\n): () => void {\n if (typeof window === \"undefined\") return () => {};\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow) return () => {};\n\n function onMessage(event: MessageEvent) {\n // targetWindow is non-null: the null branch returned early above\n if (!isTrustedHostResponse(event, targetWindow!, options.hostOrigin)) {\n return;\n }\n if (!isRecord(event.data)) return;\n if (event.data.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.INIT) return;\n handler({\n version:\n typeof event.data.version === \"string\" ? event.data.version : undefined,\n context: isRecord(event.data.context)\n ? (event.data.context as AgentNativeHostContext)\n : undefined,\n auth: isRecord(event.data.auth)\n ? (event.data.auth as AgentNativeHostAuthPayload)\n : undefined,\n actions: Array.isArray(event.data.actions)\n ? (event.data.actions as AgentNativeActionManifestEntry[])\n : undefined,\n session: isRecord(event.data.session)\n ? (event.data.session as AgentNativeHostSession)\n : undefined,\n contextError:\n typeof event.data.contextError === \"string\"\n ? event.data.contextError\n : undefined,\n authError:\n typeof event.data.authError === \"string\"\n ? event.data.authError\n : undefined,\n actionsError:\n typeof event.data.actionsError === \"string\"\n ? event.data.actionsError\n : undefined,\n });\n }\n\n window.addEventListener(\"message\", onMessage);\n return () => window.removeEventListener(\"message\", onMessage);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../src/client/host-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["export const AGENT_NATIVE_HOST_BRIDGE_VERSION = \"0.1.0\";\n\nexport const AGENT_NATIVE_HOST_MESSAGE_TYPES = {\n READY: \"agentNative.host.ready\",\n INIT: \"agentNative.host.init\",\n GET_CONTEXT: \"agentNative.host.getContext\",\n CONTEXT: \"agentNative.host.context\",\n AUTH: \"agentNative.host.auth\",\n LIST_ACTIONS: \"agentNative.host.listActions\",\n ACTIONS: \"agentNative.host.actions\",\n RUN_ACTION: \"agentNative.host.runAction\",\n ACTION_RESULT: \"agentNative.host.actionResult\",\n COMMAND: \"agentNative.host.command\",\n COMMAND_RESULT: \"agentNative.host.commandResult\",\n ERROR: \"agentNative.host.error\",\n} as const;\n\nexport type AgentNativeHostMessageType =\n (typeof AGENT_NATIVE_HOST_MESSAGE_TYPES)[keyof typeof AGENT_NATIVE_HOST_MESSAGE_TYPES];\n\nexport type BuiltInAgentNativeHostCommand =\n | \"navigate\"\n | \"refreshData\"\n | \"refresh-data\"\n | \"remountView\"\n | \"remount-view\"\n | \"hardReload\"\n | \"hard-reload\"\n | \"openResource\"\n | \"open-resource\"\n | \"requestApproval\"\n | \"request-approval\";\n\nexport type AgentNativeJsonSchema = Record<string, unknown>;\n\nexport type AgentNativeActionAvailability =\n | \"browser-session\"\n | \"current-page\"\n | \"backend\"\n | \"always\";\n\nexport interface AgentNativeActionManifestEntry {\n name: string;\n description: string;\n schema?: AgentNativeJsonSchema;\n /** Alias for schema for function-calling/tooling runtimes. */\n parameters?: AgentNativeJsonSchema;\n title?: string;\n source?: \"client\" | \"backend\" | string;\n availability?: AgentNativeActionAvailability | string;\n destructive?: boolean;\n requiresApproval?: boolean | AgentNativeClientActionApprovalConfig;\n approval?: AgentNativeClientActionApprovalConfig;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeClientActionApprovalConfig {\n title?: string;\n description?: string;\n confirmLabel?: string;\n risk?: \"low\" | \"medium\" | \"high\" | string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostSession {\n id: string;\n label?: string;\n connectedAt: string;\n url?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeClientActionRuntime {\n requestId?: string;\n origin: string;\n context: AgentNativeHostContext;\n session: AgentNativeHostSession;\n event: MessageEvent;\n refresh(payload?: unknown): Promise<unknown>;\n command(command: string, payload?: unknown): Promise<unknown>;\n}\n\nexport interface AgentNativeClientAction<\n TArgs = unknown,\n TResult = unknown,\n> extends AgentNativeActionManifestEntry {\n run(\n args: TArgs,\n runtime: AgentNativeClientActionRuntime,\n ): TResult | Promise<TResult>;\n}\n\nexport type AgentNativeClientActionGetter = () =>\n | AgentNativeClientAction[]\n | Promise<AgentNativeClientAction[]>;\n\nexport type AgentNativeClientActions =\n | AgentNativeClientAction[]\n | AgentNativeClientActionGetter;\n\nexport interface AgentNativeHostRouteContext {\n pathname?: string;\n search?: string;\n hash?: string;\n name?: string;\n params?: Record<string, string | number | boolean | null | undefined>;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostSelectionContext {\n type?: string;\n text?: string;\n ids?: string[];\n ranges?: unknown[];\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostResourceContext {\n type?: string;\n id?: string;\n name?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostPrincipalContext {\n id?: string;\n email?: string;\n name?: string;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostCapabilities {\n commands?: string[];\n actions?: string[];\n refresh?: boolean;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostContext {\n url?: string;\n title?: string;\n route?: AgentNativeHostRouteContext;\n screen?: AgentNativeScreenSnapshot;\n session?: AgentNativeHostSession;\n selection?: AgentNativeHostSelectionContext;\n resource?: AgentNativeHostResourceContext;\n user?: AgentNativeHostPrincipalContext;\n organization?: AgentNativeHostPrincipalContext;\n capabilities?: AgentNativeHostCapabilities | string[];\n data?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface AgentNativeHostAuthPayload {\n token?: string;\n headers?: Record<string, string>;\n userId?: string;\n organizationId?: string;\n [key: string]: unknown;\n}\n\nexport type AgentNativeHostAuthValue =\n | string\n | AgentNativeHostAuthPayload\n | null\n | undefined;\n\nexport type AgentNativeHostAuth =\n | AgentNativeHostAuthValue\n | (() => AgentNativeHostAuthValue | Promise<AgentNativeHostAuthValue>);\n\nexport type AgentNativeHostContextGetter = () =>\n | AgentNativeHostContext\n | Promise<AgentNativeHostContext>;\n\nexport interface AgentNativeHostCommandRequest<TPayload = unknown> {\n command: string;\n payload?: TPayload;\n requestId?: string;\n origin: string;\n}\n\nexport type AgentNativeHostCommandHandler<\n TPayload = unknown,\n TResult = unknown,\n> = (\n request: AgentNativeHostCommandRequest<TPayload>,\n event: MessageEvent,\n) => TResult | Promise<TResult>;\n\nexport type AgentNativeHostCommandHandlers = Record<\n string,\n AgentNativeHostCommandHandler | undefined\n>;\n\nexport type AgentNativeHostBridgeEvent =\n | { type: \"ready\"; requestId?: string; origin: string }\n | { type: \"init\"; requestId?: string; origin?: string }\n | { type: \"context\"; requestId?: string; origin?: string }\n | { type: \"auth\"; requestId?: string; origin?: string }\n | { type: \"actions\"; requestId?: string; count: number; origin?: string }\n | {\n type: \"action\";\n name: string;\n requestId?: string;\n origin: string;\n }\n | {\n type: \"command\";\n command: string;\n requestId?: string;\n origin: string;\n }\n | {\n type: \"ignored\";\n reason: \"origin\" | \"source\" | \"message\";\n origin: string;\n }\n | { type: \"error\"; requestId?: string; error: Error; origin?: string };\n\nexport interface AgentNativeHostBridgeOptions {\n /**\n * The iframe/content window that runs the agent sidecar. Can be set later\n * with `bridge.setTargetWindow(iframe.contentWindow)`.\n */\n targetWindow?: Window | null;\n /**\n * Exact origin allowed to talk to the host, or a full URL whose origin should\n * be trusted. Pass \"*\" only for local prototypes.\n */\n agentOrigin?: string;\n /** Stable browser-session identity. Used by the sidecar to distinguish tabs. */\n session?: string | Partial<AgentNativeHostSession>;\n /** Return current route, selected resource, user/org, and host-specific data. */\n getContext?: AgentNativeHostContextGetter;\n /**\n * Commands the sidecar may ask the host app to perform. If omitted, the\n * bridge still supports safe event-dispatch defaults for navigation/refresh.\n */\n commands?: AgentNativeHostCommandHandlers;\n /**\n * Optional bearer token or headers for the iframe sidecar. Only sent via\n * postMessage to the trusted `agentOrigin`.\n */\n auth?: AgentNativeHostAuth;\n /**\n * Live browser-session actions. These can change per render/page context and\n * are only callable while this host page is connected.\n */\n actions?: AgentNativeClientActions;\n onEvent?: (event: AgentNativeHostBridgeEvent) => void;\n}\n\nexport interface AgentNativeHostBridge {\n start(): AgentNativeHostBridge;\n stop(): void;\n setTargetWindow(targetWindow: Window | null): void;\n post(message: Record<string, unknown>): boolean;\n sendInit(requestId?: string): Promise<boolean>;\n sendContext(requestId?: string): Promise<boolean>;\n refreshContext(): Promise<boolean>;\n sendAuth(requestId?: string): Promise<boolean>;\n sendActions(requestId?: string): Promise<boolean>;\n}\n\ntype IncomingHostMessage =\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.READY;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS;\n requestId?: string;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION;\n requestId?: string;\n name?: string;\n args?: unknown;\n payload?: unknown;\n }\n | {\n type: typeof AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND;\n requestId?: string;\n command?: string;\n payload?: unknown;\n };\n\ntype HostResponse<TValue> =\n | { ok: true; value: TValue }\n | { ok: false; error: Error };\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction normalizeOrigin(value: string | null | undefined): string | null {\n if (!value) return null;\n if (value === \"*\") return \"*\";\n try {\n return new URL(value).origin;\n } catch {\n return null;\n }\n}\n\nfunction getWindowFromSource(source: MessageEventSource | null): Window | null {\n if (!source || !(\"postMessage\" in source)) return null;\n return source as Window;\n}\n\nfunction messageError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction serializeForMessage<T>(value: T, label: string): T {\n if (value === undefined) return value;\n try {\n return JSON.parse(JSON.stringify(value)) as T;\n } catch {\n throw new Error(`${label} must be JSON-serializable`);\n }\n}\n\nfunction requestId(): string {\n return `host-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction sessionId(): string {\n return `session-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction createHostSession(\n session: AgentNativeHostBridgeOptions[\"session\"],\n): AgentNativeHostSession {\n const now = new Date().toISOString();\n const base =\n typeof session === \"string\"\n ? { id: session }\n : session && typeof session === \"object\"\n ? session\n : {};\n return {\n id: base.id || sessionId(),\n connectedAt: base.connectedAt || now,\n url:\n base.url ||\n (typeof window !== \"undefined\" ? window.location.href : undefined),\n ...base,\n };\n}\n\nfunction attachSession(\n context: AgentNativeHostContext,\n session: AgentNativeHostSession,\n): AgentNativeHostContext {\n return serializeForMessage(\n {\n ...context,\n session: {\n ...session,\n ...(context.session ?? {}),\n },\n },\n \"Host context\",\n );\n}\n\nexport interface AgentNativeScreenSnapshot {\n url?: string;\n title?: string;\n route?: AgentNativeHostRouteContext;\n selection?: AgentNativeHostSelectionContext;\n visibleText?: string;\n html?: string;\n viewport?: {\n width: number;\n height: number;\n scrollX: number;\n scrollY: number;\n };\n}\n\nexport interface AgentNativeScreenSnapshotOptions {\n /**\n * Root element to read from. Defaults to document.body, then documentElement.\n */\n root?: Element | null | (() => Element | null | undefined);\n /** Include textContent from the root element. Defaults to true. */\n includeVisibleText?: boolean;\n /** Include outerHTML from the root element. Defaults to false. */\n includeDomHtml?: boolean;\n /** Max characters of visible text to include. Defaults to 6000. */\n maxTextLength?: number;\n /** Max characters of DOM html to include. Defaults to 20000. */\n maxHtmlLength?: number;\n}\n\nfunction truncate(\n value: string | undefined,\n maxLength: number,\n): string | undefined {\n if (!value) return undefined;\n const normalized = value.replace(/\\s+/g, \" \").trim();\n if (normalized.length <= maxLength) return normalized;\n return `${normalized.slice(0, Math.max(0, maxLength - 1))}…`;\n}\n\nfunction resolveSnapshotRoot(\n root: AgentNativeScreenSnapshotOptions[\"root\"],\n): Element | null {\n if (typeof document === \"undefined\") return null;\n if (typeof root === \"function\") return root() ?? null;\n return root ?? document.body ?? document.documentElement;\n}\n\nfunction readElementText(root: Element): string | undefined {\n if (typeof document === \"undefined\") return root.textContent ?? undefined;\n try {\n const showText =\n typeof NodeFilter === \"undefined\" ? 4 : NodeFilter.SHOW_TEXT;\n const walker = document.createTreeWalker(root, showText);\n const parts: string[] = [];\n while (walker.nextNode()) {\n const text = walker.currentNode.textContent?.trim();\n if (text) parts.push(text);\n }\n return parts.join(\" \");\n } catch {\n return root.textContent ?? undefined;\n }\n}\n\nfunction defaultContext(): AgentNativeHostContext {\n if (typeof window === \"undefined\") return {};\n return {\n url: window.location.href,\n title: typeof document !== \"undefined\" ? document.title : undefined,\n route: {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n },\n };\n}\n\nexport function readAgentNativeScreenContext(\n options: AgentNativeScreenSnapshotOptions = {},\n): AgentNativeHostContext {\n const base = defaultContext();\n if (typeof window === \"undefined\") return base;\n\n const root = resolveSnapshotRoot(options.root);\n const selectionText =\n typeof window.getSelection === \"function\"\n ? window.getSelection()?.toString().trim() || undefined\n : undefined;\n const maxTextLength = options.maxTextLength ?? 6000;\n const maxHtmlLength = options.maxHtmlLength ?? 20000;\n const includeVisibleText = options.includeVisibleText ?? true;\n const includeDomHtml = options.includeDomHtml ?? false;\n const selection = selectionText\n ? { ...(base.selection ?? {}), type: \"text\", text: selectionText }\n : base.selection;\n\n return {\n ...base,\n selection,\n screen: {\n url: base.url,\n title: base.title,\n route: base.route,\n selection,\n visibleText:\n includeVisibleText && root\n ? truncate(readElementText(root), maxTextLength)\n : undefined,\n html:\n includeDomHtml && root\n ? truncate(root.outerHTML ?? undefined, maxHtmlLength)\n : undefined,\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollX: window.scrollX,\n scrollY: window.scrollY,\n },\n },\n };\n}\n\nasync function resolveHostContext(\n getContext: AgentNativeHostContextGetter | undefined,\n): Promise<AgentNativeHostContext> {\n const base = defaultContext();\n const custom = getContext ? await getContext() : undefined;\n if (!custom) return serializeForMessage(base, \"Host context\");\n const merged = {\n ...base,\n ...custom,\n route:\n base.route || custom.route\n ? { ...(base.route ?? {}), ...(custom.route ?? {}) }\n : undefined,\n };\n return serializeForMessage(merged, \"Host context\");\n}\n\nasync function resolveHostAuth(\n auth: AgentNativeHostAuth | undefined,\n): Promise<AgentNativeHostAuthPayload | undefined> {\n const value = typeof auth === \"function\" ? await auth() : auth;\n if (!value) return undefined;\n const payload = typeof value === \"string\" ? { token: value } : value;\n if (!payload || typeof payload !== \"object\") return undefined;\n const headers =\n payload.headers && typeof payload.headers === \"object\"\n ? Object.fromEntries(\n Object.entries(payload.headers).map(([key, val]) => [\n key,\n String(val),\n ]),\n )\n : undefined;\n return serializeForMessage(\n { ...payload, headers },\n \"Host auth payload\",\n ) as AgentNativeHostAuthPayload;\n}\n\nasync function resolveClientActions(\n actions: AgentNativeClientActions | undefined,\n): Promise<AgentNativeClientAction[]> {\n const value = typeof actions === \"function\" ? await actions() : actions;\n return Array.isArray(value) ? value : [];\n}\n\nfunction toActionManifest(\n action: AgentNativeClientAction,\n): AgentNativeActionManifestEntry | null {\n if (!action?.name || !action.description) return null;\n const { run: _run, ...manifest } = action;\n return serializeForMessage(\n {\n source: \"client\",\n availability: \"browser-session\",\n ...manifest,\n schema: manifest.schema ?? manifest.parameters,\n },\n \"Client action manifest\",\n );\n}\n\nasync function resolveActionManifest(\n actions: AgentNativeClientActions | undefined,\n): Promise<AgentNativeActionManifestEntry[]> {\n const resolved = await resolveClientActions(actions);\n return resolved\n .map(toActionManifest)\n .filter(Boolean) as AgentNativeActionManifestEntry[];\n}\n\nasync function findClientAction(\n actions: AgentNativeClientActions | undefined,\n name: string,\n): Promise<AgentNativeClientAction | undefined> {\n const resolved = await resolveClientActions(actions);\n return resolved.find((action) => action.name === name);\n}\n\nfunction dispatchHostEvent(\n type: string,\n payload: unknown,\n): { dispatched: true } {\n if (typeof window === \"undefined\") return { dispatched: true };\n window.dispatchEvent(\n new CustomEvent(type, {\n detail: payload,\n }),\n );\n return { dispatched: true };\n}\n\n/**\n * Cooldown for host-issued `hardReload` / `hard-reload` commands. A reload is\n * already in flight after the first command, so repeats inside this window are\n * acknowledged (`{ reloading: true }` — the page IS reloading) but do not call\n * `window.location.reload()` again. Without this, an embedding host that sends\n * the command on a loop (health checks, per-edit refresh logic) can keep the\n * page permanently mid-reload.\n */\nconst HARD_RELOAD_COOLDOWN_MS = 2_000;\nlet lastHardReloadAt = 0;\n\n/** @internal Exported for tests only. */\nexport function _resetHostHardReloadCooldownForTests(): void {\n lastHardReloadAt = 0;\n}\n\nfunction runGuardedHardReload(): { reloading: true } {\n if (typeof window !== \"undefined\") {\n const now = Date.now();\n if (now - lastHardReloadAt >= HARD_RELOAD_COOLDOWN_MS) {\n lastHardReloadAt = now;\n window.location.reload();\n }\n }\n return { reloading: true };\n}\n\nexport const defaultAgentNativeHostCommands: AgentNativeHostCommandHandlers = {\n navigate: ({ payload }) => dispatchHostEvent(\"agentNative:navigate\", payload),\n refreshData: ({ payload }) =>\n dispatchHostEvent(\"agentNative:refresh-data\", payload),\n \"refresh-data\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:refresh-data\", payload),\n remountView: ({ payload }) =>\n dispatchHostEvent(\"agentNative:remount-view\", payload),\n \"remount-view\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:remount-view\", payload),\n hardReload: () => runGuardedHardReload(),\n \"hard-reload\": () => runGuardedHardReload(),\n openResource: ({ payload }) =>\n dispatchHostEvent(\"agentNative:open-resource\", payload),\n \"open-resource\": ({ payload }) =>\n dispatchHostEvent(\"agentNative:open-resource\", payload),\n};\n\nfunction isIncomingHostMessage(value: unknown): value is IncomingHostMessage {\n if (!isRecord(value)) return false;\n return (\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.READY ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION ||\n value.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND\n );\n}\n\nexport function createAgentNativeHostBridge(\n options: AgentNativeHostBridgeOptions,\n): AgentNativeHostBridge {\n let targetWindow = options.targetWindow ?? null;\n let started = false;\n const allowedOrigin = normalizeOrigin(options.agentOrigin);\n const targetOrigin =\n allowedOrigin && allowedOrigin !== \"*\" ? allowedOrigin : \"*\";\n const session = createHostSession(options.session);\n\n function emit(event: AgentNativeHostBridgeEvent) {\n options.onEvent?.(event);\n }\n\n function trusted(event: MessageEvent): boolean {\n if (\n allowedOrigin &&\n allowedOrigin !== \"*\" &&\n event.origin !== allowedOrigin\n ) {\n emit({ type: \"ignored\", reason: \"origin\", origin: event.origin });\n return false;\n }\n if (targetWindow && event.source !== targetWindow) {\n emit({ type: \"ignored\", reason: \"source\", origin: event.origin });\n return false;\n }\n return true;\n }\n\n function post(message: Record<string, unknown>): boolean {\n if (!targetWindow) return false;\n targetWindow.postMessage(message, targetOrigin);\n return true;\n }\n\n async function sendInit(requestId?: string): Promise<boolean> {\n const message: Record<string, unknown> = {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.INIT,\n version: AGENT_NATIVE_HOST_BRIDGE_VERSION,\n requestId,\n };\n try {\n message.session = session;\n message.context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n } catch (error) {\n message.contextError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n try {\n message.auth = await resolveHostAuth(options.auth);\n } catch (error) {\n message.authError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n try {\n message.actions = await resolveActionManifest(options.actions);\n } catch (error) {\n message.actionsError = messageError(error).message;\n emit({ type: \"error\", requestId, error: messageError(error) });\n }\n const sent = post(message);\n if (sent) emit({ type: \"init\", requestId });\n return sent;\n }\n\n async function sendContext(requestId?: string): Promise<boolean> {\n try {\n const context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n ok: true,\n requestId,\n context,\n });\n if (sent) emit({ type: \"context\", requestId });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function sendAuth(requestId?: string): Promise<boolean> {\n try {\n const auth = await resolveHostAuth(options.auth);\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.AUTH,\n ok: true,\n requestId,\n auth,\n });\n if (sent) emit({ type: \"auth\", requestId });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.AUTH,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function sendActions(requestId?: string): Promise<boolean> {\n try {\n const actions = await resolveActionManifest(options.actions);\n const sent = post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n ok: true,\n requestId,\n actions,\n });\n if (sent) emit({ type: \"actions\", requestId, count: actions.length });\n return sent;\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err });\n return post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function runHostCommand(\n command: string,\n payload: unknown,\n requestId: string | undefined,\n event: MessageEvent,\n ): Promise<unknown> {\n const handler =\n options.commands?.[command] ?? defaultAgentNativeHostCommands[command];\n if (!handler) {\n throw new Error(`No host command handler registered for \"${command}\"`);\n }\n return handler(\n {\n command,\n payload,\n requestId,\n origin: event.origin,\n },\n event,\n );\n }\n\n function needsApproval(action: AgentNativeClientAction): boolean {\n return (\n action.destructive === true ||\n action.requiresApproval === true ||\n typeof action.requiresApproval === \"object\" ||\n Boolean(action.approval)\n );\n }\n\n function approvalConfig(\n action: AgentNativeClientAction,\n ): AgentNativeClientActionApprovalConfig | undefined {\n if (action.approval) return action.approval;\n return typeof action.requiresApproval === \"object\"\n ? action.requiresApproval\n : undefined;\n }\n\n async function assertActionApproved(\n action: AgentNativeClientAction,\n args: unknown,\n context: AgentNativeHostContext,\n requestId: string | undefined,\n event: MessageEvent,\n ): Promise<void> {\n if (!needsApproval(action)) return;\n const manifest = toActionManifest(action);\n const response = await runHostCommand(\n \"requestApproval\",\n {\n action: manifest,\n args,\n context,\n session,\n approval: approvalConfig(action),\n },\n requestId,\n event,\n );\n const approved =\n response === true ||\n (isRecord(response) &&\n (response.approved === true || response.ok === true));\n if (!approved)\n throw new Error(`Client action \"${action.name}\" was not approved`);\n }\n\n async function handleAction(\n message: IncomingHostMessage,\n event: MessageEvent,\n ) {\n if (message.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION) return;\n const name = typeof message.name === \"string\" ? message.name : \"\";\n const requestId = message.requestId;\n const args = \"args\" in message ? message.args : message.payload;\n try {\n if (!name) throw new Error(\"Missing client action name\");\n const action = await findClientAction(options.actions, name);\n if (!action) {\n throw new Error(`No client action registered for \"${name}\"`);\n }\n const context = attachSession(\n await resolveHostContext(options.getContext),\n session,\n );\n await assertActionApproved(action, args, context, requestId, event);\n emit({ type: \"action\", name, requestId, origin: event.origin });\n const result = await action.run(args, {\n requestId,\n origin: event.origin,\n context,\n session,\n event,\n refresh: (payload) =>\n runHostCommand(\"refreshData\", payload, requestId, event),\n command: (command, payload) =>\n runHostCommand(command, payload, requestId, event),\n });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n ok: true,\n requestId,\n result: serializeForMessage(result, \"Client action result\"),\n });\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err, origin: event.origin });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n async function handleCommand(\n message: IncomingHostMessage,\n event: MessageEvent,\n ) {\n if (message.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND) return;\n const command = typeof message.command === \"string\" ? message.command : \"\";\n const requestId = message.requestId;\n try {\n if (!command) throw new Error(\"Missing host command\");\n emit({ type: \"command\", command, requestId, origin: event.origin });\n const result = await runHostCommand(\n command,\n message.payload,\n requestId,\n event,\n );\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n ok: true,\n requestId,\n result: serializeForMessage(result, \"Host command result\"),\n });\n } catch (error) {\n const err = messageError(error);\n emit({ type: \"error\", requestId, error: err, origin: event.origin });\n post({\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n ok: false,\n requestId,\n error: err.message,\n });\n }\n }\n\n function onMessage(event: MessageEvent) {\n const message = event.data;\n if (!isIncomingHostMessage(message)) return;\n if (!trusted(event)) return;\n\n const sourceWindow = getWindowFromSource(event.source);\n if (!targetWindow && sourceWindow) targetWindow = sourceWindow;\n\n if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.READY) {\n emit({\n type: \"ready\",\n requestId: message.requestId,\n origin: event.origin,\n });\n void sendInit(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT) {\n void sendContext(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS) {\n void sendActions(message.requestId);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION) {\n void handleAction(message, event);\n } else if (message.type === AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND) {\n void handleCommand(message, event);\n } else {\n emit({ type: \"ignored\", reason: \"message\", origin: event.origin });\n }\n }\n\n const bridge: AgentNativeHostBridge = {\n start() {\n if (started || typeof window === \"undefined\") return bridge;\n window.addEventListener(\"message\", onMessage);\n started = true;\n return bridge;\n },\n stop() {\n if (!started || typeof window === \"undefined\") return;\n window.removeEventListener(\"message\", onMessage);\n started = false;\n },\n setTargetWindow(nextTargetWindow) {\n targetWindow = nextTargetWindow;\n },\n post,\n sendInit,\n sendContext,\n refreshContext: sendContext,\n sendAuth,\n sendActions,\n };\n\n return bridge;\n}\n\nexport interface AgentNativeHostRequestOptions {\n /** Origin to send messages to. Defaults to \"*\" so prototypes can start. */\n targetOrigin?: string;\n /** Optional exact origin expected in replies from the host app. */\n hostOrigin?: string;\n timeoutMs?: number;\n targetWindow?: Window;\n}\n\nfunction getFrameTargetWindow(targetWindow?: Window): Window | null {\n if (targetWindow) return targetWindow;\n if (typeof window === \"undefined\") return null;\n try {\n return window.parent !== window ? window.parent : window;\n } catch {\n return window.parent;\n }\n}\n\nfunction isTrustedHostResponse(\n event: MessageEvent,\n targetWindow: Window,\n hostOrigin?: string,\n): boolean {\n if (event.source !== targetWindow) return false;\n const origin = normalizeOrigin(hostOrigin);\n if (origin && origin !== \"*\" && event.origin !== origin) return false;\n return true;\n}\n\nfunction requestFromHost<TValue>(\n message: Record<string, unknown>,\n responseType: AgentNativeHostMessageType,\n pick: (message: Record<string, unknown>) => HostResponse<TValue>,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TValue> {\n return new Promise((resolve, reject) => {\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow || typeof window === \"undefined\") {\n reject(new Error(\"No host window is available\"));\n return;\n }\n\n const id =\n typeof message.requestId === \"string\" ? message.requestId : requestId();\n const timeoutMs = options.timeoutMs ?? 3000;\n let settled = false;\n\n const cleanup = () => {\n window.removeEventListener(\"message\", onMessage);\n clearTimeout(timer);\n };\n\n const finish = (fn: () => void) => {\n if (settled) return;\n settled = true;\n cleanup();\n fn();\n };\n\n const timer = setTimeout(() => {\n finish(() => reject(new Error(\"Timed out waiting for host response\")));\n }, timeoutMs);\n\n function onMessage(event: MessageEvent) {\n // targetWindow is non-null: the null branch returned early above\n if (!isTrustedHostResponse(event, targetWindow!, options.hostOrigin)) {\n return;\n }\n if (!isRecord(event.data)) return;\n if (event.data.type !== responseType) return;\n if (event.data.requestId !== id) return;\n\n const response = pick(event.data);\n if (response.ok === true) {\n finish(() => resolve(response.value));\n } else {\n const error = response.error;\n finish(() => reject(error));\n }\n }\n\n window.addEventListener(\"message\", onMessage);\n targetWindow.postMessage(\n { ...message, requestId: id },\n options.targetOrigin ?? options.hostOrigin ?? \"*\",\n );\n });\n}\n\nexport function announceAgentNativeFrameReady(\n options: AgentNativeHostRequestOptions = {},\n): void {\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow) return;\n targetWindow.postMessage(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.READY,\n version: AGENT_NATIVE_HOST_BRIDGE_VERSION,\n requestId: requestId(),\n },\n options.targetOrigin ?? options.hostOrigin ?? \"*\",\n );\n}\n\nexport function requestAgentNativeHostContext(\n options: AgentNativeHostRequestOptions = {},\n): Promise<AgentNativeHostContext> {\n return requestFromHost(\n { type: AGENT_NATIVE_HOST_MESSAGE_TYPES.GET_CONTEXT },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.CONTEXT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host context request failed\",\n ),\n };\n }\n return {\n ok: true,\n value: (message.context ?? {}) as AgentNativeHostContext,\n };\n },\n options,\n );\n}\n\nexport function requestAgentNativeHostActions(\n options: AgentNativeHostRequestOptions = {},\n): Promise<AgentNativeActionManifestEntry[]> {\n return requestFromHost(\n { type: AGENT_NATIVE_HOST_MESSAGE_TYPES.LIST_ACTIONS },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTIONS,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host actions request failed\",\n ),\n };\n }\n return {\n ok: true,\n value: Array.isArray(message.actions)\n ? (message.actions as AgentNativeActionManifestEntry[])\n : [],\n };\n },\n options,\n );\n}\n\nexport function runAgentNativeHostAction<TArgs = unknown, TResult = unknown>(\n name: string,\n args?: TArgs,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TResult> {\n return requestFromHost(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.RUN_ACTION,\n name,\n args,\n },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.ACTION_RESULT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host action failed\",\n ),\n };\n }\n return { ok: true, value: message.result as TResult };\n },\n options,\n );\n}\n\nexport function sendAgentNativeHostCommand<\n TPayload = unknown,\n TResult = unknown,\n>(\n command: BuiltInAgentNativeHostCommand | string,\n payload?: TPayload,\n options: AgentNativeHostRequestOptions = {},\n): Promise<TResult> {\n return requestFromHost(\n {\n type: AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND,\n command,\n payload,\n },\n AGENT_NATIVE_HOST_MESSAGE_TYPES.COMMAND_RESULT,\n (message) => {\n if (message.ok === false) {\n return {\n ok: false,\n error: new Error(\n typeof message.error === \"string\"\n ? message.error\n : \"Host command failed\",\n ),\n };\n }\n return { ok: true, value: message.result as TResult };\n },\n options,\n );\n}\n\nexport interface AgentNativeHostInit {\n version?: string;\n context?: AgentNativeHostContext;\n auth?: AgentNativeHostAuthPayload;\n actions?: AgentNativeActionManifestEntry[];\n session?: AgentNativeHostSession;\n contextError?: string;\n authError?: string;\n actionsError?: string;\n}\n\nexport function onAgentNativeHostInit(\n handler: (init: AgentNativeHostInit) => void,\n options: Pick<\n AgentNativeHostRequestOptions,\n \"hostOrigin\" | \"targetWindow\"\n > = {},\n): () => void {\n if (typeof window === \"undefined\") return () => {};\n const targetWindow = getFrameTargetWindow(options.targetWindow);\n if (!targetWindow) return () => {};\n\n function onMessage(event: MessageEvent) {\n // targetWindow is non-null: the null branch returned early above\n if (!isTrustedHostResponse(event, targetWindow!, options.hostOrigin)) {\n return;\n }\n if (!isRecord(event.data)) return;\n if (event.data.type !== AGENT_NATIVE_HOST_MESSAGE_TYPES.INIT) return;\n handler({\n version:\n typeof event.data.version === \"string\" ? event.data.version : undefined,\n context: isRecord(event.data.context)\n ? (event.data.context as AgentNativeHostContext)\n : undefined,\n auth: isRecord(event.data.auth)\n ? (event.data.auth as AgentNativeHostAuthPayload)\n : undefined,\n actions: Array.isArray(event.data.actions)\n ? (event.data.actions as AgentNativeActionManifestEntry[])\n : undefined,\n session: isRecord(event.data.session)\n ? (event.data.session as AgentNativeHostSession)\n : undefined,\n contextError:\n typeof event.data.contextError === \"string\"\n ? event.data.contextError\n : undefined,\n authError:\n typeof event.data.authError === \"string\"\n ? event.data.authError\n : undefined,\n actionsError:\n typeof event.data.actionsError === \"string\"\n ? event.data.actionsError\n : undefined,\n });\n }\n\n window.addEventListener(\"message\", onMessage);\n return () => window.removeEventListener(\"message\", onMessage);\n}\n"]}
|
package/dist/client/i18n.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/client/i18n.tsx"],"names":[],"mappings":"AAGA,OAAO,KAQN,MAAM,OAAO,CAAC;AAQf,OAAO,EAUL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAAC;IAC9D,eAAe,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,uBAAuB,CAAC,EAAE,sBAAsB,CAAC;KAClD;CACF;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/client/i18n.tsx"],"names":[],"mappings":"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"}
|
package/dist/client/i18n.js
CHANGED
|
@@ -11,7 +11,9 @@ import { callAction } from "./use-action.js";
|
|
|
11
11
|
import { cn } from "./utils.js";
|
|
12
12
|
export { DEFAULT_LOCALE, LOCALE_HYDRATION_GLOBAL, LOCALE_METADATA, LOCALE_STORAGE_KEY, SUPPORTED_LOCALES, localeDirection, normalizeLocaleCode, normalizeLocalePreference, normalizeLocalizationPreference, resolveLocaleFromCandidates, resolveLocaleFromPreference, } from "../localization/shared.js";
|
|
13
13
|
export { getLocaleInitScript } from "../localization/server.js";
|
|
14
|
-
const LocaleContext =
|
|
14
|
+
const LocaleContext = globalThis.__AGENT_NATIVE_LOCALE_CONTEXT__ ??
|
|
15
|
+
(globalThis.__AGENT_NATIVE_LOCALE_CONTEXT__ =
|
|
16
|
+
createContext(null));
|
|
15
17
|
const LANGUAGE_PICKER_COPY = {
|
|
16
18
|
"en-US": {
|
|
17
19
|
label: "Language",
|