@agent-native/core 0.117.1 → 0.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +3 -3
- package/corpus/core/CHANGELOG.md +40 -0
- package/corpus/core/docs/content/custom-design-system.mdx +445 -0
- package/corpus/core/docs/content/toolkit-ui.mdx +16 -0
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/a2a/types.ts +1 -0
- package/corpus/core/src/agent/types.ts +1 -1
- package/corpus/core/src/cli/context-xray-local.ts +1 -1
- package/corpus/core/src/client/AgentPanel.tsx +90 -107
- package/corpus/core/src/client/AssistantChat.tsx +30 -13
- package/corpus/core/src/client/CommandMenu.tsx +68 -178
- package/corpus/core/src/client/agent-chat-adapter.ts +3 -1
- package/corpus/core/src/client/app-providers.tsx +1 -1
- package/corpus/core/src/client/chat/message-components.tsx +116 -10
- package/corpus/core/src/client/chat/tool-call-display.tsx +26 -5
- package/corpus/core/src/client/chat/widgets/InlineExtensionWidget.tsx +14 -40
- package/corpus/core/src/client/components/ui/message-scroller.tsx +15 -1
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +4 -4
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +11 -11
- package/corpus/core/src/client/extensions/agent-native-extension-runtime.ts +1 -1
- package/corpus/core/src/client/extensions/delete-extension.ts +2 -2
- package/corpus/core/src/client/i18n.tsx +22 -0
- package/corpus/core/src/client/index.ts +17 -0
- package/corpus/core/src/client/org/OrgSwitcher.tsx +25 -1
- package/corpus/core/src/client/org/TeamPage.tsx +257 -153
- package/corpus/core/src/client/progress/RunsTray.tsx +89 -88
- package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +5 -2
- package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +34 -13
- package/corpus/core/src/client/resources/mcp-integration-catalog.ts +13 -0
- package/corpus/core/src/client/settings/DemoModeSection.tsx +6 -18
- package/corpus/core/src/client/settings/SecretsSection.tsx +97 -52
- package/corpus/core/src/client/settings/SettingsPanel.tsx +302 -254
- package/corpus/core/src/client/settings/SettingsTabsPage.tsx +23 -2
- package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
- package/corpus/core/src/client/settings/index.ts +7 -0
- package/corpus/core/src/client/settings/useSettingsPanelController.ts +155 -0
- package/corpus/core/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
- package/corpus/core/src/client/setup-connections/index.ts +10 -0
- package/corpus/core/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
- package/corpus/core/src/client/sharing/ShareButton.tsx +71 -592
- package/corpus/core/src/client/sharing/ShareDialog.tsx +299 -633
- package/corpus/core/src/client/sharing/index.ts +42 -0
- package/corpus/core/src/client/sharing/share-controller-helpers.ts +318 -0
- package/corpus/core/src/client/sharing/useShareButtonController.ts +600 -0
- package/corpus/core/src/client/sharing/useShareDialogController.ts +559 -0
- package/corpus/core/src/client/sse-event-processor.ts +23 -0
- package/corpus/core/src/client/tool-display.ts +71 -0
- package/corpus/core/src/client/use-agent-engine-configured.ts +12 -19
- package/corpus/core/src/client/use-chat-threads.ts +33 -12
- package/corpus/core/src/db/client.ts +13 -10
- package/corpus/core/src/extensions/actions.ts +13 -5
- package/corpus/core/src/extensions/local.ts +1 -0
- package/corpus/core/src/extensions/routes.ts +10 -5
- package/corpus/core/src/extensions/schema.ts +5 -0
- package/corpus/core/src/extensions/slots/store.ts +14 -4
- package/corpus/core/src/extensions/store.ts +55 -19
- package/corpus/core/src/extensions/theme.ts +1 -1
- package/corpus/core/src/file-upload/registry.ts +9 -0
- package/corpus/core/src/index.browser.ts +5 -0
- package/corpus/core/src/index.ts +1 -0
- package/corpus/core/src/localization/default-messages.ts +28 -6
- package/corpus/core/src/mcp-client/oauth-routes.ts +16 -2
- package/corpus/core/src/scripts/call-agent.ts +5 -1
- package/corpus/core/src/server/action-discovery.ts +8 -0
- package/corpus/core/src/server/better-auth-instance.ts +7 -2
- package/corpus/core/src/server/email-template.ts +18 -0
- package/corpus/core/src/server/email-templates.ts +3 -0
- package/corpus/core/src/server/email.ts +40 -4
- package/corpus/core/src/server/realtime-voice.ts +1 -1
- package/corpus/core/src/sharing/actions/share-resource.ts +1 -0
- package/corpus/core/src/styles/agent-native.css +0 -24
- package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/core/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/core/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/core/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/core/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
- package/corpus/core/src/templates/default/app/design-system.ts +3 -0
- package/corpus/core/src/templates/default/app/global.css +1 -1
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -6
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +7 -7
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +7 -7
- package/corpus/core/src/templates/default/app/root.tsx +5 -2
- package/corpus/core/src/templates/default/package.json +1 -0
- package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/core/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/core/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/core/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/core/src/user-profile/actions/get-user-profile.ts +16 -0
- package/corpus/core/src/user-profile/actions/update-user-profile.ts +24 -0
- package/corpus/core/src/user-profile/index.ts +5 -0
- package/corpus/core/src/user-profile/shared.ts +14 -0
- package/corpus/core/src/user-profile/store.ts +50 -0
- package/corpus/core/src/vite/client.ts +39 -0
- package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/analytics/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/analytics/app/design-system.ts +3 -0
- package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/assets/app/components/ui/alert.tsx +1 -0
- package/corpus/templates/assets/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/assets/app/design-system.ts +3 -0
- package/corpus/templates/assets/app/global.css +1 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +26 -30
- package/corpus/templates/assets/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/brain/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/brain/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/brain/app/design-system.ts +3 -0
- package/corpus/templates/brain/app/global.css +2 -2
- package/corpus/templates/brain/app/lib/brain.ts +2 -2
- package/corpus/templates/brain/app/root.tsx +2 -2
- package/corpus/templates/brain/app/routes/sources.tsx +8 -8
- package/corpus/templates/brain/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +6 -2
- package/corpus/templates/calendar/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/calendar/app/design-system.ts +3 -0
- package/corpus/templates/calendar/app/global.css +1 -1
- package/corpus/templates/calendar/app/root.tsx +2 -2
- package/corpus/templates/calendar/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/chat/app/design-system.ts +3 -0
- package/corpus/templates/chat/app/global.css +1 -1
- package/corpus/templates/chat/app/root.tsx +2 -2
- package/corpus/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/clips/actions/export-to-brain.ts +1 -1
- package/corpus/templates/clips/actions/invite-member.ts +1 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +20 -11
- package/corpus/templates/clips/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/clips/app/design-system.ts +3 -0
- package/corpus/templates/clips/app/global.css +1 -1
- package/corpus/templates/clips/app/root.tsx +7 -2
- package/corpus/templates/clips/app/routes/_app.library._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/record.tsx +2 -88
- package/corpus/templates/clips/changelog/2026-07-22-builder-connected-recordings-start-resumable-upload-sessions.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-clip-thumbnails-now-come-from-the-recording-instead-of-the-p.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-clips-emails-now-render-the-agent-native-logo-in-gmail-and-o.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-dismissed-zoom-and-teams-meeting-note-prompts-now-stay-dismi.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-fixed-windows-recordings-aborting-during-the-countdown.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-permissions-and-rewind-controls-are-now-grouped-with-clearer.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-quieter-permissions-and-rewind-controls.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-the-desktop-popover-opens-centered-under-the-menu-bar-icon-o.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +100 -62
- package/corpus/templates/clips/desktop/src/lib/meeting-notification-dismissal.ts +31 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +4 -167
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +10 -1
- package/corpus/templates/clips/desktop/src/styles.css +111 -36
- package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +67 -4
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +11 -2
- package/corpus/templates/clips/desktop/src-tauri/src/meetings_watcher.rs +51 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +5 -1
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +0 -189
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +62 -0
- package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +37 -2
- package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +18 -0
- package/corpus/templates/clips/server/plugins/db.ts +6 -2
- package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +41 -59
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
- package/corpus/templates/content/app/components/editor/database/GalleryView.tsx +2 -1
- package/corpus/templates/content/app/components/editor/database/ListView.tsx +2 -1
- package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +9 -9
- package/corpus/templates/content/app/components/editor/database/sidebar.tsx +7 -7
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +11 -11
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +3 -3
- package/corpus/templates/content/app/components/ui/checkbox.tsx +1 -0
- package/corpus/templates/content/app/components/ui/collapsible.tsx +1 -0
- package/corpus/templates/content/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/content/app/design-system.ts +3 -0
- package/corpus/templates/content/app/global.css +30 -4
- package/corpus/templates/content/app/root.tsx +2 -2
- package/corpus/templates/content/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/content/changelog/2026-07-22-page-actions-are-grouped-into-the-three-dots-menu-for-a-clea.md +6 -0
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/crm/app/components/crm/CreateCrmRecordDialog.tsx +10 -10
- package/corpus/templates/crm/app/components/crm/CrmDashboardPanel.tsx +1 -6
- package/corpus/templates/crm/app/components/crm/CrmSignalsPanel.tsx +3 -2
- package/corpus/templates/crm/app/components/crm/IntelligenceSettings.tsx +13 -12
- package/corpus/templates/crm/app/components/crm/RecordActions.tsx +17 -17
- package/corpus/templates/crm/app/components/crm/RecordGrid.tsx +8 -8
- package/corpus/templates/crm/app/components/crm/RecordWorkspace.tsx +3 -8
- package/corpus/templates/crm/app/components/crm/SavedViewDataProgram.tsx +2 -1
- package/corpus/templates/crm/app/components/crm/Surface.tsx +3 -2
- package/corpus/templates/crm/app/components/crm/WorkOverview.tsx +2 -2
- package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +7 -7
- package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +1 -1
- package/corpus/templates/crm/app/components/ui/alert-dialog.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/badge.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/button.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/card.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/dialog.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/input.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/label.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/select.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/sheet.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/skeleton.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/table.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/tabs.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/crm/app/components/ui/toolkit-provider.tsx +17 -0
- package/corpus/templates/crm/app/design-system.ts +3 -0
- package/corpus/templates/crm/app/global.css +1 -1
- package/corpus/templates/crm/app/root.tsx +9 -6
- package/corpus/templates/crm/app/routes/dashboard.tsx +1 -1
- package/corpus/templates/crm/app/routes/proposals.tsx +13 -13
- package/corpus/templates/crm/app/routes/setup.tsx +9 -9
- package/corpus/templates/crm/app/routes/tasks.tsx +14 -14
- package/corpus/templates/crm/app/routes/views.tsx +16 -16
- package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +19 -1
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +12 -1
- package/corpus/templates/design/app/components/design/EditPanel.tsx +177 -52
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +179 -59
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +74 -27
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +2 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +8 -8
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/design/app/components/ui/command.tsx +1 -0
- package/corpus/templates/design/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/design/app/design-system.ts +3 -0
- package/corpus/templates/design/app/global.css +1 -1
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -5
- package/corpus/templates/design/app/root.tsx +2 -2
- package/corpus/templates/design/changelog/2026-07-22-design-owners-can-keep-editing-their-designs-after-switching.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-inspector-tabs-keep-their-text-labels-at-narrow-widths.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-narrow-breakpoint-previews-keep-their-device-labels-readable.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-removed-the-draft-status-chip-from-the-design-editor.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-responsive-breakpoint-controls-stay-within-narrow-sidebars.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-responsive-peers-now-use-a-softer-selection-highlight-withou.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-rotate-from-context-menu.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-the-selection-outline-now-stays-attached-while-moving-screen.md +6 -0
- package/corpus/templates/design/changelog/2026-07-22-view-only-designs-now-support-figma-style-layer-inspection-w.md +6 -0
- package/corpus/templates/design/server/db/index.ts +4 -0
- package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/dispatch/app/components/ui/button.tsx +1 -0
- package/corpus/templates/dispatch/app/components/ui/toolkit-provider.tsx +17 -0
- package/corpus/templates/dispatch/app/design-system.ts +3 -0
- package/corpus/templates/dispatch/app/dispatch-extensions.tsx +2 -2
- package/corpus/templates/dispatch/app/global.css +1 -1
- package/corpus/templates/dispatch/app/root.tsx +12 -9
- package/corpus/templates/dispatch/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/dispatch/package.json +1 -0
- package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/forms/app/design-system.ts +3 -0
- package/corpus/templates/forms/app/global.css +1 -1
- package/corpus/templates/forms/app/hooks/use-forms.ts +55 -2
- package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +3 -3
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +23 -6
- package/corpus/templates/forms/app/root.tsx +2 -2
- package/corpus/templates/forms/changelog/2026-07-22-forms-now-archive-with-optimistic-feedback.md +6 -0
- package/corpus/templates/forms/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/forms/server/plugins/agent-chat.ts +1 -1
- package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/macros/app/design-system.ts +3 -0
- package/corpus/templates/macros/app/root.tsx +2 -2
- package/corpus/templates/macros/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/mail/app/components/email/EmailThread.tsx +134 -93
- package/corpus/templates/mail/app/components/email/email-iframe-document.ts +8 -2
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +3 -3
- package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/textarea.tsx +1 -21
- package/corpus/templates/mail/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/mail/app/design-system.ts +3 -0
- package/corpus/templates/mail/app/global.css +1 -1
- package/corpus/templates/mail/changelog/2026-07-22-email-messages-no-longer-flash-with-an-unstyled-page-while-l.md +6 -0
- package/corpus/templates/mail/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/plan/app/design-system.ts +3 -0
- package/corpus/templates/plan/app/global.css +1 -1
- package/corpus/templates/plan/app/root.tsx +2 -2
- package/corpus/templates/plan/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/toolkit-provider.tsx +6 -1
- package/corpus/templates/slides/app/design-system.ts +3 -0
- package/corpus/templates/slides/app/root.tsx +2 -2
- package/corpus/templates/slides/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-22-slides-no-longer-fail-intermittently-on-fresh-server-instances.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-22-uploaded-screenshots-can-now-be-analyzed-and-recreated-as-ed.md +6 -0
- package/corpus/templates/slides/server/lib/chat-attachments.ts +7 -3
- package/corpus/templates/slides/server/plugins/db.ts +44 -17
- package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +22 -2
- package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/corpus/templates/tasks/app/components/ui/toolkit-provider.tsx +17 -0
- package/corpus/templates/tasks/app/design-system.ts +3 -0
- package/corpus/templates/tasks/app/global.css +1 -1
- package/corpus/templates/tasks/app/root.tsx +5 -2
- package/corpus/toolkit/CHANGELOG.md +14 -0
- package/corpus/toolkit/agent-native.eject.json +71 -0
- package/corpus/toolkit/package.json +31 -1
- package/corpus/toolkit/src/chat-history/ChatHistoryRail.tsx +100 -39
- package/corpus/toolkit/src/chat-history/index.ts +9 -0
- package/corpus/toolkit/src/chat-history/useChatHistoryRailController.ts +76 -0
- package/corpus/toolkit/src/chat-history.css +2 -0
- package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +11 -8
- package/corpus/toolkit/src/composer/PromptComposer.tsx +27 -6
- package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +107 -22
- package/corpus/toolkit/src/conformance/__fixtures__/css-in-js-adapter.tsx +401 -0
- package/corpus/toolkit/src/conformance/index.ts +3 -0
- package/corpus/toolkit/src/conformance/runner.tsx +710 -0
- package/corpus/toolkit/src/conformance/types.ts +45 -0
- package/corpus/toolkit/src/conformance/version.ts +22 -0
- package/corpus/toolkit/src/design-system/components.tsx +146 -0
- package/corpus/toolkit/src/design-system/context.tsx +31 -0
- package/corpus/toolkit/src/design-system/default-adapter.tsx +915 -0
- package/corpus/toolkit/src/design-system/definition.ts +14 -0
- package/corpus/toolkit/src/design-system/error-boundary.tsx +37 -0
- package/corpus/toolkit/src/design-system/index.ts +7 -0
- package/corpus/toolkit/src/design-system/theme.ts +145 -0
- package/corpus/toolkit/src/design-system/types.ts +363 -0
- package/corpus/toolkit/src/provider.tsx +98 -5
- package/corpus/toolkit/src/ui/button.tsx +95 -6
- package/corpus/toolkit/src/ui/dialog.tsx +48 -23
- package/corpus/toolkit/src/ui/popover.tsx +16 -2
- package/corpus/toolkit/src/ui/select.tsx +7 -3
- package/corpus/toolkit/src/ui/sidebar.tsx +47 -48
- package/corpus/toolkit/src/ui/tooltip.tsx +7 -3
- package/dist/a2a/types.d.ts +1 -1
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/agent/types.d.ts +1 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/context-xray-local.js +1 -1
- package/dist/cli/context-xray-local.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +14 -14
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +26 -15
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +18 -106
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +2 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/app-providers.d.ts.map +1 -1
- package/dist/client/app-providers.js +1 -1
- package/dist/client/app-providers.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +9 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +62 -7
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +20 -5
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/widgets/InlineExtensionWidget.d.ts.map +1 -1
- package/dist/client/chat/widgets/InlineExtensionWidget.js +9 -12
- package/dist/client/chat/widgets/InlineExtensionWidget.js.map +1 -1
- package/dist/client/components/ui/message-scroller.d.ts +1 -1
- package/dist/client/components/ui/message-scroller.d.ts.map +1 -1
- package/dist/client/components/ui/message-scroller.js +4 -3
- package/dist/client/components/ui/message-scroller.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +2 -2
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/extensions/ExtensionsSidebarSection.js +11 -11
- package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
- package/dist/client/extensions/agent-native-extension-runtime.js +1 -1
- package/dist/client/extensions/agent-native-extension-runtime.js.map +1 -1
- package/dist/client/extensions/delete-extension.d.ts +1 -1
- package/dist/client/extensions/delete-extension.d.ts.map +1 -1
- package/dist/client/extensions/delete-extension.js +1 -1
- package/dist/client/extensions/delete-extension.js.map +1 -1
- package/dist/client/i18n.d.ts.map +1 -1
- package/dist/client/i18n.js +9 -0
- package/dist/client/i18n.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts +3 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +12 -4
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/TeamPage.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +41 -33
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/progress/RunsTray.d.ts.map +1 -1
- package/dist/client/progress/RunsTray.js +9 -10
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -1
- package/dist/client/resources/McpConnectionSuggestion.js +5 -4
- package/dist/client/resources/McpConnectionSuggestion.js.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.js +10 -8
- package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.d.ts +1 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.js +13 -0
- package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
- package/dist/client/settings/DemoModeSection.d.ts.map +1 -1
- package/dist/client/settings/DemoModeSection.js +2 -5
- package/dist/client/settings/DemoModeSection.js.map +1 -1
- package/dist/client/settings/SecretsSection.d.ts.map +1 -1
- package/dist/client/settings/SecretsSection.js +18 -6
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +87 -119
- 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 +16 -1
- package/dist/client/settings/SettingsTabsPage.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +2 -5
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/index.d.ts +1 -0
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +1 -0
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/settings/useSettingsPanelController.d.ts +22 -0
- package/dist/client/settings/useSettingsPanelController.d.ts.map +1 -0
- package/dist/client/settings/useSettingsPanelController.js +103 -0
- package/dist/client/settings/useSettingsPanelController.js.map +1 -0
- package/dist/client/setup-connections/BuilderConnectCard.d.ts +14 -6
- package/dist/client/setup-connections/BuilderConnectCard.d.ts.map +1 -1
- package/dist/client/setup-connections/BuilderConnectCard.js +24 -16
- package/dist/client/setup-connections/BuilderConnectCard.js.map +1 -1
- package/dist/client/setup-connections/index.d.ts +2 -1
- package/dist/client/setup-connections/index.d.ts.map +1 -1
- package/dist/client/setup-connections/index.js +2 -1
- package/dist/client/setup-connections/index.js.map +1 -1
- package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +34 -0
- package/dist/client/setup-connections/useBuilderConnectCardController.d.ts.map +1 -0
- package/dist/client/setup-connections/useBuilderConnectCardController.js +39 -0
- package/dist/client/setup-connections/useBuilderConnectCardController.js.map +1 -0
- package/dist/client/sharing/ShareButton.d.ts +5 -5
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +19 -464
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.d.ts +6 -6
- package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
- package/dist/client/sharing/ShareDialog.js +69 -283
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/client/sharing/index.d.ts +3 -0
- package/dist/client/sharing/index.d.ts.map +1 -1
- package/dist/client/sharing/index.js +3 -0
- package/dist/client/sharing/index.js.map +1 -1
- package/dist/client/sharing/share-controller-helpers.d.ts +70 -0
- package/dist/client/sharing/share-controller-helpers.d.ts.map +1 -0
- package/dist/client/sharing/share-controller-helpers.js +224 -0
- package/dist/client/sharing/share-controller-helpers.js.map +1 -0
- package/dist/client/sharing/useShareButtonController.d.ts +91 -0
- package/dist/client/sharing/useShareButtonController.d.ts.map +1 -0
- package/dist/client/sharing/useShareButtonController.js +397 -0
- package/dist/client/sharing/useShareButtonController.js.map +1 -0
- package/dist/client/sharing/useShareDialogController.d.ts +109 -0
- package/dist/client/sharing/useShareDialogController.d.ts.map +1 -0
- package/dist/client/sharing/useShareDialogController.js +348 -0
- package/dist/client/sharing/useShareDialogController.js.map +1 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +21 -0
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/tool-display.d.ts +16 -0
- package/dist/client/tool-display.d.ts.map +1 -1
- package/dist/client/tool-display.js +52 -0
- package/dist/client/tool-display.js.map +1 -1
- package/dist/client/use-agent-engine-configured.d.ts +3 -2
- package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
- package/dist/client/use-agent-engine-configured.js +7 -19
- package/dist/client/use-agent-engine-configured.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +21 -8
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/db/client.d.ts +7 -7
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +13 -10
- package/dist/db/client.js.map +1 -1
- package/dist/extensions/actions.d.ts.map +1 -1
- package/dist/extensions/actions.js +8 -5
- package/dist/extensions/actions.js.map +1 -1
- package/dist/extensions/local.d.ts.map +1 -1
- package/dist/extensions/local.js +1 -0
- package/dist/extensions/local.js.map +1 -1
- package/dist/extensions/routes.d.ts.map +1 -1
- package/dist/extensions/routes.js +9 -4
- package/dist/extensions/routes.js.map +1 -1
- package/dist/extensions/schema.d.ts +23 -2
- package/dist/extensions/schema.d.ts.map +1 -1
- package/dist/extensions/schema.js +5 -0
- package/dist/extensions/schema.js.map +1 -1
- package/dist/extensions/slots/store.d.ts +1 -1
- package/dist/extensions/slots/store.d.ts.map +1 -1
- package/dist/extensions/slots/store.js +4 -4
- package/dist/extensions/slots/store.js.map +1 -1
- package/dist/extensions/store.d.ts +1 -0
- package/dist/extensions/store.d.ts.map +1 -1
- package/dist/extensions/store.js +38 -21
- package/dist/extensions/store.js.map +1 -1
- package/dist/extensions/theme.js +1 -1
- package/dist/extensions/theme.js.map +1 -1
- package/dist/file-upload/registry.d.ts.map +1 -1
- package/dist/file-upload/registry.js +9 -0
- package/dist/file-upload/registry.js.map +1 -1
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -0
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/localization/default-messages.d.ts +20 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +26 -6
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp-client/oauth-routes.d.ts +2 -0
- package/dist/mcp-client/oauth-routes.d.ts.map +1 -1
- package/dist/mcp-client/oauth-routes.js +12 -2
- package/dist/mcp-client/oauth-routes.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/provider-api/actions/custom-provider-registration.d.ts +3 -3
- package/dist/provider-api/actions/provider-api.d.ts +11 -11
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +5 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +8 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +7 -2
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/email-template.d.ts +3 -0
- package/dist/server/email-template.d.ts.map +1 -1
- package/dist/server/email-template.js +13 -0
- package/dist/server/email-template.js.map +1 -1
- package/dist/server/email-templates.d.ts.map +1 -1
- package/dist/server/email-templates.js +3 -0
- package/dist/server/email-templates.js.map +1 -1
- package/dist/server/email.d.ts.map +1 -1
- package/dist/server/email.js +27 -4
- package/dist/server/email.js.map +1 -1
- package/dist/server/realtime-voice.js +1 -1
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/sharing/actions/share-resource.js +1 -0
- package/dist/sharing/actions/share-resource.js.map +1 -1
- package/dist/styles/agent-native.css +0 -24
- package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
- package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +2 -2
- package/dist/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
- package/dist/templates/chat/app/design-system.ts +3 -0
- package/dist/templates/chat/app/global.css +1 -1
- package/dist/templates/chat/app/root.tsx +2 -2
- package/dist/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
- package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/dist/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
- package/dist/templates/default/app/design-system.ts +3 -0
- package/dist/templates/default/app/global.css +1 -1
- package/dist/templates/default/app/i18n/ar-SA.ts +6 -6
- package/dist/templates/default/app/i18n/de-DE.ts +6 -6
- package/dist/templates/default/app/i18n/en-US.ts +6 -6
- package/dist/templates/default/app/i18n/es-ES.ts +6 -6
- package/dist/templates/default/app/i18n/fr-FR.ts +6 -6
- package/dist/templates/default/app/i18n/hi-IN.ts +6 -6
- package/dist/templates/default/app/i18n/ja-JP.ts +6 -6
- package/dist/templates/default/app/i18n/ko-KR.ts +6 -6
- package/dist/templates/default/app/i18n/pt-BR.ts +6 -6
- package/dist/templates/default/app/i18n/zh-CN.ts +7 -7
- package/dist/templates/default/app/i18n/zh-TW.ts +7 -7
- package/dist/templates/default/app/root.tsx +5 -2
- package/dist/templates/default/package.json +1 -0
- package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
- package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/dist/user-profile/actions/get-user-profile.d.ts +4 -0
- package/dist/user-profile/actions/get-user-profile.d.ts.map +1 -0
- package/dist/user-profile/actions/get-user-profile.js +14 -0
- package/dist/user-profile/actions/get-user-profile.js.map +1 -0
- package/dist/user-profile/actions/update-user-profile.d.ts +6 -0
- package/dist/user-profile/actions/update-user-profile.d.ts.map +1 -0
- package/dist/user-profile/actions/update-user-profile.js +20 -0
- package/dist/user-profile/actions/update-user-profile.js.map +1 -0
- package/dist/user-profile/index.d.ts +2 -0
- package/dist/user-profile/index.d.ts.map +1 -0
- package/dist/user-profile/index.js +2 -0
- package/dist/user-profile/index.js.map +1 -0
- package/dist/user-profile/shared.d.ts +7 -0
- package/dist/user-profile/shared.d.ts.map +1 -0
- package/dist/user-profile/shared.js +6 -0
- package/dist/user-profile/shared.js.map +1 -0
- package/dist/user-profile/store.d.ts +4 -0
- package/dist/user-profile/store.d.ts.map +1 -0
- package/dist/user-profile/store.js +38 -0
- package/dist/user-profile/store.js.map +1 -0
- package/dist/vite/client.d.ts +3 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +31 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/custom-design-system.mdx +445 -0
- package/docs/content/toolkit-ui.mdx +16 -0
- package/package.json +3 -2
- package/src/a2a/types.ts +1 -0
- package/src/agent/types.ts +1 -1
- package/src/cli/context-xray-local.ts +1 -1
- package/src/client/AgentPanel.tsx +90 -107
- package/src/client/AssistantChat.tsx +30 -13
- package/src/client/CommandMenu.tsx +68 -178
- package/src/client/agent-chat-adapter.ts +3 -1
- package/src/client/app-providers.tsx +1 -1
- package/src/client/chat/message-components.tsx +116 -10
- package/src/client/chat/tool-call-display.tsx +26 -5
- package/src/client/chat/widgets/InlineExtensionWidget.tsx +14 -40
- package/src/client/components/ui/message-scroller.tsx +15 -1
- package/src/client/extensions/ExtensionViewer.tsx +4 -4
- package/src/client/extensions/ExtensionsSidebarSection.tsx +11 -11
- package/src/client/extensions/agent-native-extension-runtime.ts +1 -1
- package/src/client/extensions/delete-extension.ts +2 -2
- package/src/client/i18n.tsx +22 -0
- package/src/client/index.ts +17 -0
- package/src/client/org/OrgSwitcher.tsx +25 -1
- package/src/client/org/TeamPage.tsx +257 -153
- package/src/client/progress/RunsTray.tsx +89 -88
- package/src/client/resources/McpConnectionSuggestion.tsx +5 -2
- package/src/client/resources/McpIntegrationDialog.tsx +34 -13
- package/src/client/resources/mcp-integration-catalog.ts +13 -0
- package/src/client/settings/DemoModeSection.tsx +6 -18
- package/src/client/settings/SecretsSection.tsx +97 -52
- package/src/client/settings/SettingsPanel.tsx +302 -254
- package/src/client/settings/SettingsTabsPage.tsx +23 -2
- package/src/client/settings/VoiceTranscriptionSection.tsx +7 -18
- package/src/client/settings/index.ts +7 -0
- package/src/client/settings/useSettingsPanelController.ts +155 -0
- package/src/client/setup-connections/BuilderConnectCard.tsx +116 -51
- package/src/client/setup-connections/index.ts +10 -0
- package/src/client/setup-connections/useBuilderConnectCardController.ts +82 -0
- package/src/client/sharing/ShareButton.tsx +71 -592
- package/src/client/sharing/ShareDialog.tsx +299 -633
- package/src/client/sharing/index.ts +42 -0
- package/src/client/sharing/share-controller-helpers.ts +318 -0
- package/src/client/sharing/useShareButtonController.ts +600 -0
- package/src/client/sharing/useShareDialogController.ts +559 -0
- package/src/client/sse-event-processor.ts +23 -0
- package/src/client/tool-display.ts +71 -0
- package/src/client/use-agent-engine-configured.ts +12 -19
- package/src/client/use-chat-threads.ts +33 -12
- package/src/db/client.ts +13 -10
- package/src/extensions/actions.ts +13 -5
- package/src/extensions/local.ts +1 -0
- package/src/extensions/routes.ts +10 -5
- package/src/extensions/schema.ts +5 -0
- package/src/extensions/slots/store.ts +14 -4
- package/src/extensions/store.ts +55 -19
- package/src/extensions/theme.ts +1 -1
- package/src/file-upload/registry.ts +9 -0
- package/src/index.browser.ts +5 -0
- package/src/index.ts +1 -0
- package/src/localization/default-messages.ts +28 -6
- package/src/mcp-client/oauth-routes.ts +16 -2
- package/src/scripts/call-agent.ts +5 -1
- package/src/server/action-discovery.ts +8 -0
- package/src/server/better-auth-instance.ts +7 -2
- package/src/server/email-template.ts +18 -0
- package/src/server/email-templates.ts +3 -0
- package/src/server/email.ts +40 -4
- package/src/server/realtime-voice.ts +1 -1
- package/src/sharing/actions/share-resource.ts +1 -0
- package/src/styles/agent-native.css +0 -24
- package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +22 -2
- package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/src/templates/chat/app/components/layout/Sidebar.tsx +2 -2
- package/src/templates/chat/app/components/ui/toolkit-provider.tsx +6 -1
- package/src/templates/chat/app/design-system.ts +3 -0
- package/src/templates/chat/app/global.css +1 -1
- package/src/templates/chat/app/root.tsx +2 -2
- package/src/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
- package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +22 -2
- package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/src/templates/default/app/components/ui/toolkit-provider.tsx +10 -0
- package/src/templates/default/app/design-system.ts +3 -0
- package/src/templates/default/app/global.css +1 -1
- package/src/templates/default/app/i18n/ar-SA.ts +6 -6
- package/src/templates/default/app/i18n/de-DE.ts +6 -6
- package/src/templates/default/app/i18n/en-US.ts +6 -6
- package/src/templates/default/app/i18n/es-ES.ts +6 -6
- package/src/templates/default/app/i18n/fr-FR.ts +6 -6
- package/src/templates/default/app/i18n/hi-IN.ts +6 -6
- package/src/templates/default/app/i18n/ja-JP.ts +6 -6
- package/src/templates/default/app/i18n/ko-KR.ts +6 -6
- package/src/templates/default/app/i18n/pt-BR.ts +6 -6
- package/src/templates/default/app/i18n/zh-CN.ts +7 -7
- package/src/templates/default/app/i18n/zh-TW.ts +7 -7
- package/src/templates/default/app/root.tsx +5 -2
- package/src/templates/default/package.json +1 -0
- package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +43 -2
- package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +86 -11
- package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +22 -2
- package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +28 -4
- package/src/user-profile/actions/get-user-profile.ts +16 -0
- package/src/user-profile/actions/update-user-profile.ts +24 -0
- package/src/user-profile/index.ts +5 -0
- package/src/user-profile/shared.ts +14 -0
- package/src/user-profile/store.ts +50 -0
- package/src/vite/client.ts +39 -0
- package/corpus/templates/analytics/app/components/ui/calendar.tsx +0 -70
- package/corpus/templates/analytics/app/components/ui/chart.tsx +0 -386
- package/corpus/templates/calendar/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/forms/app/components/ui/calendar.tsx +0 -214
- package/corpus/templates/forms/app/components/ui/chart.tsx +0 -379
- package/corpus/templates/forms/app/components/ui/command.tsx +0 -153
- package/corpus/templates/forms/app/components/ui/context-menu.tsx +0 -198
- package/corpus/templates/forms/app/components/ui/menubar.tsx +0 -254
- package/corpus/templates/macros/app/components/ui/menubar.tsx +0 -238
- package/corpus/templates/macros/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/mail/app/components/ui/calendar.tsx +0 -211
- package/corpus/templates/mail/app/components/ui/chart.tsx +0 -379
- package/corpus/templates/mail/app/components/ui/command.tsx +0 -153
- package/corpus/templates/mail/app/components/ui/context-menu.tsx +0 -198
- package/corpus/templates/mail/app/components/ui/menubar.tsx +0 -254
- package/corpus/templates/tasks/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/tasks/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/tasks/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/tasks/app/components/ui/calendar.tsx +0 -70
- package/corpus/templates/tasks/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/tasks/app/components/ui/chart.tsx +0 -379
- package/corpus/templates/tasks/app/components/ui/form.tsx +0 -177
- package/corpus/templates/tasks/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/tasks/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/tasks/app/components/ui/menubar.tsx +0 -254
- package/corpus/templates/tasks/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/tasks/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/tasks/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/tasks/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/tasks/app/components/ui/toggle.tsx +0 -43
|
@@ -57,10 +57,26 @@ Default to Apple/Linear-level restraint: make the primary workflow obvious, then
|
|
|
57
57
|
|
|
58
58
|
## Agent-Native UI Rules
|
|
59
59
|
|
|
60
|
-
- Agent-native apps use React
|
|
61
|
-
|
|
60
|
+
- Agent-native apps use React and Vite. The default adapter uses Tailwind CSS,
|
|
61
|
+
shadcn/ui, and `@tabler/icons-react`, but an app may register a different
|
|
62
|
+
company design system in `app/design-system.ts`.
|
|
63
|
+
- **Use the app's design-system seam for standard UI.** Inspect
|
|
64
|
+
`app/design-system.ts`, `ToolkitProvider`, and the local UI adapter directory
|
|
65
|
+
before choosing a primitive. Use shadcn primitives when they are the active
|
|
66
|
+
adapter; use the registered company components when they are not.
|
|
62
67
|
- **When touching shadcn/ui components, also read `shadcn-ui` if it exists.** That skill covers `components.json`, CLI docs, component composition, theming, and registry workflows.
|
|
63
68
|
- Check `app/components/ui/` before importing a shadcn component. If a primitive is missing, add it from the app root with `pnpm dlx shadcn@latest add <component>`, then review the generated file.
|
|
69
|
+
- Pages, routes, and domain components must import controls through the app's
|
|
70
|
+
local adapter path, usually `@/components/ui/*`. Never import
|
|
71
|
+
`@agent-native/toolkit/ui/*` directly in app product code.
|
|
72
|
+
- Toolkit/Core feature presentation flows through the semantic components from
|
|
73
|
+
`@agent-native/toolkit/design-system`. Their props express intent, emphasis,
|
|
74
|
+
size, controlled values, and behavior; they do not require Tailwind, CVA, or
|
|
75
|
+
`className`.
|
|
76
|
+
- For deeper feature customization, consume the feature-level headless
|
|
77
|
+
controller through its product render slot. The same controller must power
|
|
78
|
+
the default and custom views. Eject the smallest supported unit only after
|
|
79
|
+
tokens, semantic components, controllers, and slots are insufficient.
|
|
64
80
|
- Do not build custom dropdowns, menus, popovers, modals, or confirmations with manual absolute positioning and click-outside effects.
|
|
65
81
|
- Never use browser dialogs (`window.alert`, `window.confirm`, `window.prompt`). Use `AlertDialog`, `Dialog`, or app-specific confirmation UI.
|
|
66
82
|
- Use Tabler icons for all first-party UI icons. Do not add Lucide, Heroicons, inline SVG icon sets, or emoji icons.
|
|
@@ -103,10 +119,14 @@ For substantial frontend work:
|
|
|
103
119
|
2. Start the dev server when the app needs one.
|
|
104
120
|
3. Verify with browser screenshots at desktop and mobile widths.
|
|
105
121
|
4. Check interactive states: hover, focus, loading, empty, error, and destructive confirmations.
|
|
122
|
+
5. When registering or changing a company adapter, run
|
|
123
|
+
`@agent-native/toolkit/conformance`, including mixed-overlay focus,
|
|
124
|
+
`portalContainer`, and z-index stacking checks.
|
|
106
125
|
|
|
107
126
|
## Related Skills
|
|
108
127
|
|
|
109
128
|
- **shadcn-ui** — shadcn CLI, component docs, composition rules, theming, and registries
|
|
129
|
+
- **customizing-agent-native** — Design-system registration, feature controllers, product slots, conformance, and ejection
|
|
110
130
|
- **self-modifying-code** — The agent can edit source code to apply design changes
|
|
111
131
|
- **storing-data** — All data lives in SQL; use actions for data access
|
|
112
132
|
- **actions** — `useActionQuery`/`useActionMutation` hooks for frontend data fetching
|
|
@@ -17,10 +17,33 @@ This skill keeps shadcn/ui work project-aware. Components are source files in th
|
|
|
17
17
|
## First Steps
|
|
18
18
|
|
|
19
19
|
1. Work from the app root that owns `components.json`.
|
|
20
|
-
2.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
2. In an Agent Native app, inspect `app/design-system.ts` and
|
|
21
|
+
`ToolkitProvider` before choosing a primitive. A registered company design
|
|
22
|
+
system takes precedence over the default shadcn adapter.
|
|
23
|
+
3. Run `pnpm dlx shadcn@latest info --json` when you need current project context: framework, Tailwind version, aliases, icon library, installed components, and resolved paths.
|
|
24
|
+
4. Use the actual aliases from `components.json` or `shadcn info`; do not assume `@/components/ui` if the project says otherwise.
|
|
25
|
+
5. Check `app/components/ui/` or the resolved `ui` path before importing a component.
|
|
26
|
+
6. For unfamiliar components, run `pnpm dlx shadcn@latest docs <component>` and read the returned docs or examples before coding.
|
|
27
|
+
|
|
28
|
+
## Agent Native Adapter Rule
|
|
29
|
+
|
|
30
|
+
Pages, routes, and domain components import controls through the app's local UI
|
|
31
|
+
adapter layer. Never import `@agent-native/toolkit/ui/*` directly in app product
|
|
32
|
+
code. Direct imports bypass `app/design-system.ts` and make Toolkit/Core
|
|
33
|
+
surfaces use different controls from the app.
|
|
34
|
+
|
|
35
|
+
When shadcn is the app's adapter, add or update the local primitive and keep
|
|
36
|
+
product code on that local import. When a company design system is registered,
|
|
37
|
+
adapt its components to the semantic contracts from
|
|
38
|
+
`@agent-native/toolkit/design-system`; do not recreate a parallel shadcn
|
|
39
|
+
surface. The semantic API is styling-runtime agnostic, so do not require
|
|
40
|
+
Tailwind, CVA, or `className` in customer adapters.
|
|
41
|
+
|
|
42
|
+
For shared Toolkit features, customize presentation through semantic
|
|
43
|
+
components, a feature-level controller, and product-level render slots. Keep
|
|
44
|
+
the same controller for default and custom views. Use the conformance kit for
|
|
45
|
+
behavior components whose focus, portal, keyboard, dismissal, or stacking
|
|
46
|
+
behavior comes from the company design system.
|
|
24
47
|
|
|
25
48
|
## Adding Or Updating Components
|
|
26
49
|
|
|
@@ -91,5 +114,6 @@ Do not wrap triggers in extra divs just to place a Button or Link inside them.
|
|
|
91
114
|
## Related Skills
|
|
92
115
|
|
|
93
116
|
- **frontend-design** — Product UX, visual direction, responsive polish, and verification
|
|
117
|
+
- **customizing-agent-native** — Registered design systems, controllers, slots, conformance, and ejection
|
|
94
118
|
- **actions** — Data fetching and mutation patterns for agent-native apps
|
|
95
119
|
- **security** — User data, forms, external input, and action safety
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ToolkitProvider, type ToolkitComponents } from "@agent-native/toolkit";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
import { Button } from "@/components/ui/button";
|
|
5
|
+
import { designSystem } from "@/design-system";
|
|
6
|
+
|
|
7
|
+
const components: ToolkitComponents = {
|
|
8
|
+
Button: Button as ToolkitComponents["Button"],
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export function AppToolkitProvider({ children }: { children: ReactNode }) {
|
|
12
|
+
return (
|
|
13
|
+
<ToolkitProvider components={components} designSystem={designSystem}>
|
|
14
|
+
{children}
|
|
15
|
+
</ToolkitProvider>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -20,6 +20,7 @@ import type { LinksFunction } from "react-router";
|
|
|
20
20
|
|
|
21
21
|
import { Layout as AppLayout } from "@/components/layout/Layout";
|
|
22
22
|
import { Toaster } from "@/components/ui/sonner";
|
|
23
|
+
import { AppToolkitProvider } from "@/components/ui/toolkit-provider";
|
|
23
24
|
import { useNavigationState } from "@/hooks/use-navigation-state";
|
|
24
25
|
import { i18nCatalog } from "@/i18n";
|
|
25
26
|
import { APP_TITLE } from "@/lib/app-config";
|
|
@@ -155,8 +156,10 @@ export default function Root() {
|
|
|
155
156
|
const [queryClient] = useState(() => createAgentNativeQueryClient());
|
|
156
157
|
return (
|
|
157
158
|
<AppProviders queryClient={queryClient} i18n={{ catalog: i18nCatalog }}>
|
|
158
|
-
<
|
|
159
|
-
|
|
159
|
+
<AppToolkitProvider>
|
|
160
|
+
<DbSyncSetup />
|
|
161
|
+
<AppContent />
|
|
162
|
+
</AppToolkitProvider>
|
|
160
163
|
</AppProviders>
|
|
161
164
|
);
|
|
162
165
|
}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @agent-native/toolkit
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f0da2e0: Add the styling-runtime-agnostic custom design system contract, safe component adapters, semantic theme tokens, and build-time theme CSS generation. New scaffolded apps now include the explicit design-system module, ToolkitProvider seam, and toolkit dependency so custom adapters can be registered from the first render.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- f0da2e0: Harden custom design system color gamut handling, semantic default-adapter behavior, sharing controller reuse, and build-time theme cascade ordering. Add complete MUI and Ant Design Chat examples that exercise the public conformance contract, and route normalized settings, sharing, sidebar, and agent-panel chrome through the registered semantic adapters.
|
|
12
|
+
- f0da2e0: Preserve normalized core control icon sizing and semantic button styling while keeping settings defaults and sharing overlays consistent.
|
|
13
|
+
- f0da2e0: Serialize realtime voice responses and recover from overlapping response requests without ending the voice session.
|
|
14
|
+
- f0da2e0: Make the Dispatch chat composer recover from unavailable AI status checks and keep its Add menu clickable.
|
|
15
|
+
- f0da2e0: Route the Builder connection card and chat history rail through semantic design-system components while preserving their default presentation and shared controller paths.
|
|
16
|
+
|
|
3
17
|
## 0.9.1
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"class-variance-authority",
|
|
63
63
|
"clsx",
|
|
64
64
|
"cmdk",
|
|
65
|
+
"culori",
|
|
65
66
|
"date-fns",
|
|
66
67
|
"embla-carousel-react",
|
|
67
68
|
"highlight.js",
|
|
@@ -130,8 +131,20 @@
|
|
|
130
131
|
}
|
|
131
132
|
],
|
|
132
133
|
"dependencies": [
|
|
134
|
+
"@radix-ui/react-avatar",
|
|
135
|
+
"@radix-ui/react-checkbox",
|
|
136
|
+
"@radix-ui/react-dialog",
|
|
137
|
+
"@radix-ui/react-dropdown-menu",
|
|
138
|
+
"@radix-ui/react-popover",
|
|
139
|
+
"@radix-ui/react-select",
|
|
140
|
+
"@radix-ui/react-slot",
|
|
141
|
+
"@radix-ui/react-switch",
|
|
142
|
+
"@radix-ui/react-tabs",
|
|
143
|
+
"@radix-ui/react-tooltip",
|
|
133
144
|
"@tabler/icons-react",
|
|
145
|
+
"class-variance-authority",
|
|
134
146
|
"clsx",
|
|
147
|
+
"culori",
|
|
135
148
|
"react",
|
|
136
149
|
"recharts",
|
|
137
150
|
"tailwind-merge"
|
|
@@ -169,6 +182,23 @@
|
|
|
169
182
|
],
|
|
170
183
|
"verification": ["pnpm typecheck"]
|
|
171
184
|
},
|
|
185
|
+
{
|
|
186
|
+
"id": "toolkit/conformance",
|
|
187
|
+
"label": "Design system conformance kit",
|
|
188
|
+
"catalog": "toolkit-ui",
|
|
189
|
+
"catalogItems": ["conformance"],
|
|
190
|
+
"entrypoints": ["./conformance", "./conformance/*"],
|
|
191
|
+
"strategy": "source-copy",
|
|
192
|
+
"sourceEntries": [
|
|
193
|
+
"src/conformance/index.ts",
|
|
194
|
+
"src/conformance/runner.tsx",
|
|
195
|
+
"src/conformance/types.ts",
|
|
196
|
+
"src/conformance/version.ts"
|
|
197
|
+
],
|
|
198
|
+
"targetRoot": "app/components/agent-native/toolkit",
|
|
199
|
+
"dependencies": ["react", "react-dom"],
|
|
200
|
+
"verification": ["pnpm typecheck"]
|
|
201
|
+
},
|
|
172
202
|
{
|
|
173
203
|
"id": "toolkit/context-ui",
|
|
174
204
|
"label": "Context inspection UI",
|
|
@@ -207,6 +237,44 @@
|
|
|
207
237
|
],
|
|
208
238
|
"verification": ["pnpm typecheck"]
|
|
209
239
|
},
|
|
240
|
+
{
|
|
241
|
+
"id": "toolkit/design-system",
|
|
242
|
+
"label": "Design system bridge",
|
|
243
|
+
"catalog": "toolkit-ui",
|
|
244
|
+
"catalogItems": ["design-system"],
|
|
245
|
+
"entrypoints": ["./design-system", "./design-system/*"],
|
|
246
|
+
"strategy": "source-copy",
|
|
247
|
+
"sourceEntries": [
|
|
248
|
+
"src/design-system/components.tsx",
|
|
249
|
+
"src/design-system/context.tsx",
|
|
250
|
+
"src/design-system/default-adapter.tsx",
|
|
251
|
+
"src/design-system/definition.ts",
|
|
252
|
+
"src/design-system/error-boundary.tsx",
|
|
253
|
+
"src/design-system/index.ts",
|
|
254
|
+
"src/design-system/theme.ts",
|
|
255
|
+
"src/design-system/types.ts"
|
|
256
|
+
],
|
|
257
|
+
"targetRoot": "app/components/agent-native/toolkit",
|
|
258
|
+
"dependencies": [
|
|
259
|
+
"@radix-ui/react-avatar",
|
|
260
|
+
"@radix-ui/react-checkbox",
|
|
261
|
+
"@radix-ui/react-dialog",
|
|
262
|
+
"@radix-ui/react-dropdown-menu",
|
|
263
|
+
"@radix-ui/react-popover",
|
|
264
|
+
"@radix-ui/react-select",
|
|
265
|
+
"@radix-ui/react-slot",
|
|
266
|
+
"@radix-ui/react-switch",
|
|
267
|
+
"@radix-ui/react-tabs",
|
|
268
|
+
"@radix-ui/react-tooltip",
|
|
269
|
+
"@tabler/icons-react",
|
|
270
|
+
"class-variance-authority",
|
|
271
|
+
"clsx",
|
|
272
|
+
"culori",
|
|
273
|
+
"react",
|
|
274
|
+
"tailwind-merge"
|
|
275
|
+
],
|
|
276
|
+
"verification": ["pnpm typecheck"]
|
|
277
|
+
},
|
|
210
278
|
{
|
|
211
279
|
"id": "toolkit/dashboard",
|
|
212
280
|
"label": "Dashboard kit",
|
|
@@ -222,6 +290,7 @@
|
|
|
222
290
|
"@tabler/icons-react",
|
|
223
291
|
"class-variance-authority",
|
|
224
292
|
"clsx",
|
|
293
|
+
"culori",
|
|
225
294
|
"react",
|
|
226
295
|
"recharts",
|
|
227
296
|
"tailwind-merge"
|
|
@@ -329,6 +398,7 @@
|
|
|
329
398
|
"@radix-ui/react-slot",
|
|
330
399
|
"class-variance-authority",
|
|
331
400
|
"clsx",
|
|
401
|
+
"culori",
|
|
332
402
|
"react",
|
|
333
403
|
"tailwind-merge"
|
|
334
404
|
],
|
|
@@ -387,6 +457,7 @@
|
|
|
387
457
|
"class-variance-authority",
|
|
388
458
|
"clsx",
|
|
389
459
|
"cmdk",
|
|
460
|
+
"culori",
|
|
390
461
|
"date-fns",
|
|
391
462
|
"embla-carousel-react",
|
|
392
463
|
"input-otp",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Reusable app-building UI and helpers for Agent-Native apps.",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -103,6 +103,20 @@
|
|
|
103
103
|
"import": "./dist/composer/*.js",
|
|
104
104
|
"default": "./dist/composer/*.js"
|
|
105
105
|
},
|
|
106
|
+
"./conformance": {
|
|
107
|
+
"types": "./dist/conformance/index.d.ts",
|
|
108
|
+
"browser": "./dist/conformance/index.js",
|
|
109
|
+
"development": "./dist/conformance/index.js",
|
|
110
|
+
"import": "./dist/conformance/index.js",
|
|
111
|
+
"default": "./dist/conformance/index.js"
|
|
112
|
+
},
|
|
113
|
+
"./conformance/*": {
|
|
114
|
+
"types": "./dist/conformance/*.d.ts",
|
|
115
|
+
"browser": "./dist/conformance/*.js",
|
|
116
|
+
"development": "./dist/conformance/*.js",
|
|
117
|
+
"import": "./dist/conformance/*.js",
|
|
118
|
+
"default": "./dist/conformance/*.js"
|
|
119
|
+
},
|
|
106
120
|
"./context-ui": {
|
|
107
121
|
"types": "./dist/context-ui/index.d.ts",
|
|
108
122
|
"browser": "./dist/context-ui/index.js",
|
|
@@ -117,6 +131,20 @@
|
|
|
117
131
|
"import": "./dist/design-tweaks/index.js",
|
|
118
132
|
"default": "./dist/design-tweaks/index.js"
|
|
119
133
|
},
|
|
134
|
+
"./design-system": {
|
|
135
|
+
"types": "./dist/design-system/index.d.ts",
|
|
136
|
+
"browser": "./dist/design-system/index.js",
|
|
137
|
+
"development": "./dist/design-system/index.js",
|
|
138
|
+
"import": "./dist/design-system/index.js",
|
|
139
|
+
"default": "./dist/design-system/index.js"
|
|
140
|
+
},
|
|
141
|
+
"./design-system/*": {
|
|
142
|
+
"types": "./dist/design-system/*.d.ts",
|
|
143
|
+
"browser": "./dist/design-system/*.js",
|
|
144
|
+
"development": "./dist/design-system/*.js",
|
|
145
|
+
"import": "./dist/design-system/*.js",
|
|
146
|
+
"default": "./dist/design-system/*.js"
|
|
147
|
+
},
|
|
120
148
|
"./editor": {
|
|
121
149
|
"types": "./dist/editor/index.d.ts",
|
|
122
150
|
"browser": "./dist/editor/index.js",
|
|
@@ -267,6 +295,7 @@
|
|
|
267
295
|
"class-variance-authority": "^0.7.1",
|
|
268
296
|
"clsx": "catalog:",
|
|
269
297
|
"cmdk": "^1.1.1",
|
|
298
|
+
"culori": "^4.0.2",
|
|
270
299
|
"date-fns": "^4.4.0",
|
|
271
300
|
"embla-carousel-react": "^8.6.0",
|
|
272
301
|
"highlight.js": "catalog:",
|
|
@@ -285,6 +314,7 @@
|
|
|
285
314
|
"yjs": "catalog:"
|
|
286
315
|
},
|
|
287
316
|
"devDependencies": {
|
|
317
|
+
"@types/culori": "^4.0.1",
|
|
288
318
|
"@types/react": "^19.2.14",
|
|
289
319
|
"@types/react-dom": "^19.2.3",
|
|
290
320
|
"typescript-7": "catalog:",
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { IconDots, IconPlus } from "@tabler/icons-react";
|
|
2
|
-
import {
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
3
|
|
|
4
|
+
import { ActionButton, IconButton } from "../design-system/components.js";
|
|
5
|
+
import { DesignSystemErrorBoundary } from "../design-system/error-boundary.js";
|
|
4
6
|
import {
|
|
5
7
|
ChatHistoryList,
|
|
6
8
|
type ChatHistoryItem,
|
|
7
9
|
type ChatHistoryListProps,
|
|
8
10
|
} from "./ChatHistoryList.js";
|
|
11
|
+
import {
|
|
12
|
+
type ChatHistoryRailController,
|
|
13
|
+
useChatHistoryRailController,
|
|
14
|
+
} from "./useChatHistoryRailController.js";
|
|
9
15
|
|
|
10
16
|
export interface ChatHistoryRailLabels {
|
|
11
17
|
newChat: string;
|
|
@@ -22,63 +28,71 @@ export interface ChatHistoryRailProps extends Omit<
|
|
|
22
28
|
railLabels: ChatHistoryRailLabels;
|
|
23
29
|
previewCount?: number;
|
|
24
30
|
expandedCount?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Product-level presentation slot for design systems that want to replace
|
|
33
|
+
* the rail wholesale. State and actions still come from the same controller
|
|
34
|
+
* as the default view.
|
|
35
|
+
*/
|
|
36
|
+
renderRail?: (context: ChatHistoryRailRenderContext) => ReactNode;
|
|
25
37
|
}
|
|
26
38
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
railLabels,
|
|
35
|
-
previewCount = 5,
|
|
36
|
-
expandedCount = 15,
|
|
37
|
-
className,
|
|
38
|
-
emptyLabel,
|
|
39
|
-
...listProps
|
|
40
|
-
}: ChatHistoryRailProps) {
|
|
41
|
-
const [expanded, setExpanded] = useState(false);
|
|
42
|
-
const collapsedLimit = Math.max(1, previewCount);
|
|
43
|
-
const expandedLimit = Math.max(collapsedLimit, expandedCount);
|
|
44
|
-
const canExpand = items.length > collapsedLimit;
|
|
45
|
-
const visibleItems = useMemo(
|
|
46
|
-
() => items.slice(0, expanded ? expandedLimit : collapsedLimit),
|
|
47
|
-
[collapsedLimit, expanded, expandedLimit, items],
|
|
48
|
-
);
|
|
39
|
+
export interface ChatHistoryRailRenderContext {
|
|
40
|
+
controller: ChatHistoryRailController<ChatHistoryItem>;
|
|
41
|
+
listProps: Omit<
|
|
42
|
+
ChatHistoryListProps,
|
|
43
|
+
"footer" | "items" | "sections" | "variant"
|
|
44
|
+
>;
|
|
45
|
+
}
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
export type DefaultChatHistoryRailViewProps = ChatHistoryRailRenderContext;
|
|
48
|
+
|
|
49
|
+
export function DefaultChatHistoryRailView({
|
|
50
|
+
controller,
|
|
51
|
+
listProps,
|
|
52
|
+
}: ChatHistoryRailRenderContext) {
|
|
53
|
+
const {
|
|
54
|
+
canExpand,
|
|
55
|
+
disclosureLabel,
|
|
56
|
+
expanded,
|
|
57
|
+
newChatLabel,
|
|
58
|
+
onNewChat,
|
|
59
|
+
toggleExpanded,
|
|
60
|
+
visibleItems,
|
|
61
|
+
} = controller;
|
|
62
|
+
const { className, emptyLabel, ...rest } = listProps;
|
|
53
63
|
|
|
54
64
|
const footer = (
|
|
55
65
|
<div className="an-chat-history-rail__footer">
|
|
56
|
-
<
|
|
66
|
+
<ActionButton
|
|
57
67
|
type="button"
|
|
58
68
|
className="an-chat-history-rail__new-chat"
|
|
59
|
-
|
|
69
|
+
emphasis="ghost"
|
|
70
|
+
size="compact"
|
|
71
|
+
leadingIcon={
|
|
72
|
+
<IconPlus size={13} strokeWidth={1.8} aria-hidden="true" />
|
|
73
|
+
}
|
|
74
|
+
onPress={onNewChat}
|
|
60
75
|
>
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
</button>
|
|
76
|
+
<span>{newChatLabel}</span>
|
|
77
|
+
</ActionButton>
|
|
64
78
|
{canExpand && (
|
|
65
|
-
<
|
|
79
|
+
<IconButton
|
|
66
80
|
type="button"
|
|
67
81
|
className="an-chat-history-rail__disclosure"
|
|
68
|
-
|
|
82
|
+
size="compact"
|
|
83
|
+
icon={<IconDots size={14} strokeWidth={1.8} aria-hidden="true" />}
|
|
84
|
+
onPress={toggleExpanded}
|
|
69
85
|
aria-expanded={expanded}
|
|
70
|
-
|
|
71
|
-
title={
|
|
72
|
-
|
|
73
|
-
<IconDots size={14} strokeWidth={1.8} aria-hidden="true" />
|
|
74
|
-
</button>
|
|
86
|
+
label={disclosureLabel}
|
|
87
|
+
title={disclosureLabel}
|
|
88
|
+
/>
|
|
75
89
|
)}
|
|
76
90
|
</div>
|
|
77
91
|
);
|
|
78
92
|
|
|
79
93
|
return (
|
|
80
94
|
<ChatHistoryList
|
|
81
|
-
{...
|
|
95
|
+
{...rest}
|
|
82
96
|
items={visibleItems}
|
|
83
97
|
footer={footer}
|
|
84
98
|
emptyLabel={emptyLabel ?? null}
|
|
@@ -87,3 +101,50 @@ export function ChatHistoryRail({
|
|
|
87
101
|
/>
|
|
88
102
|
);
|
|
89
103
|
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Compact recent-chat rail for app sidebars. Hosts own thread persistence,
|
|
107
|
+
* sorting, routing, and mutations; the rail only owns progressive disclosure.
|
|
108
|
+
*/
|
|
109
|
+
export function ChatHistoryRail({
|
|
110
|
+
items,
|
|
111
|
+
onNewChat,
|
|
112
|
+
railLabels,
|
|
113
|
+
previewCount = 5,
|
|
114
|
+
expandedCount = 15,
|
|
115
|
+
renderRail,
|
|
116
|
+
className,
|
|
117
|
+
emptyLabel,
|
|
118
|
+
...listProps
|
|
119
|
+
}: ChatHistoryRailProps) {
|
|
120
|
+
const controller = useChatHistoryRailController({
|
|
121
|
+
items,
|
|
122
|
+
onNewChat,
|
|
123
|
+
labels: railLabels,
|
|
124
|
+
previewCount,
|
|
125
|
+
expandedCount,
|
|
126
|
+
});
|
|
127
|
+
const context: ChatHistoryRailRenderContext = {
|
|
128
|
+
controller,
|
|
129
|
+
listProps: { ...listProps, className, emptyLabel },
|
|
130
|
+
};
|
|
131
|
+
const fallback = <DefaultChatHistoryRailView {...context} />;
|
|
132
|
+
|
|
133
|
+
return renderRail ? (
|
|
134
|
+
<DesignSystemErrorBoundary component="ChatHistoryRail" fallback={fallback}>
|
|
135
|
+
<ChatHistoryRailCustomView renderRail={renderRail} context={context} />
|
|
136
|
+
</DesignSystemErrorBoundary>
|
|
137
|
+
) : (
|
|
138
|
+
fallback
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function ChatHistoryRailCustomView({
|
|
143
|
+
renderRail,
|
|
144
|
+
context,
|
|
145
|
+
}: {
|
|
146
|
+
renderRail: NonNullable<ChatHistoryRailProps["renderRail"]>;
|
|
147
|
+
context: ChatHistoryRailRenderContext;
|
|
148
|
+
}) {
|
|
149
|
+
return renderRail(context);
|
|
150
|
+
}
|
|
@@ -7,6 +7,15 @@ export {
|
|
|
7
7
|
} from "./ChatHistoryList.js";
|
|
8
8
|
export {
|
|
9
9
|
ChatHistoryRail,
|
|
10
|
+
DefaultChatHistoryRailView,
|
|
11
|
+
type DefaultChatHistoryRailViewProps,
|
|
10
12
|
type ChatHistoryRailLabels,
|
|
11
13
|
type ChatHistoryRailProps,
|
|
14
|
+
type ChatHistoryRailRenderContext,
|
|
12
15
|
} from "./ChatHistoryRail.js";
|
|
16
|
+
export {
|
|
17
|
+
type ChatHistoryRailController,
|
|
18
|
+
type ChatHistoryRailControllerLabels,
|
|
19
|
+
type UseChatHistoryRailControllerOptions,
|
|
20
|
+
useChatHistoryRailController,
|
|
21
|
+
} from "./useChatHistoryRailController.js";
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
|
+
|
|
3
|
+
export interface ChatHistoryRailControllerLabels {
|
|
4
|
+
newChat: string;
|
|
5
|
+
showMore: string;
|
|
6
|
+
showLess: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface UseChatHistoryRailControllerOptions<Item> {
|
|
10
|
+
items: readonly Item[];
|
|
11
|
+
onNewChat: () => void;
|
|
12
|
+
labels: ChatHistoryRailControllerLabels;
|
|
13
|
+
previewCount?: number;
|
|
14
|
+
expandedCount?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ChatHistoryRailController<Item> {
|
|
18
|
+
expanded: boolean;
|
|
19
|
+
collapsedLimit: number;
|
|
20
|
+
expandedLimit: number;
|
|
21
|
+
visibleItems: Item[];
|
|
22
|
+
canExpand: boolean;
|
|
23
|
+
newChatLabel: string;
|
|
24
|
+
disclosureLabel: string;
|
|
25
|
+
onNewChat: () => void;
|
|
26
|
+
toggleExpanded: () => void;
|
|
27
|
+
resetExpanded: () => void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function normalizeLimit(value: number | undefined, fallback: number): number {
|
|
31
|
+
if (value === undefined || !Number.isFinite(value)) return fallback;
|
|
32
|
+
return Math.max(1, Math.floor(value));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function useChatHistoryRailController<Item>({
|
|
36
|
+
items,
|
|
37
|
+
onNewChat,
|
|
38
|
+
labels,
|
|
39
|
+
previewCount,
|
|
40
|
+
expandedCount,
|
|
41
|
+
}: UseChatHistoryRailControllerOptions<Item>): ChatHistoryRailController<Item> {
|
|
42
|
+
const [expandedState, setExpandedState] = useState(false);
|
|
43
|
+
const collapsedLimit = normalizeLimit(previewCount, 5);
|
|
44
|
+
const expandedLimit = Math.max(
|
|
45
|
+
collapsedLimit,
|
|
46
|
+
normalizeLimit(expandedCount, 15),
|
|
47
|
+
);
|
|
48
|
+
const canExpand = items.length > collapsedLimit;
|
|
49
|
+
const expanded = canExpand && expandedState;
|
|
50
|
+
const visibleItems = useMemo(
|
|
51
|
+
() => items.slice(0, expanded ? expandedLimit : collapsedLimit),
|
|
52
|
+
[collapsedLimit, expanded, expandedLimit, items],
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!canExpand) setExpandedState(false);
|
|
57
|
+
}, [canExpand]);
|
|
58
|
+
|
|
59
|
+
const toggleExpanded = useCallback(() => {
|
|
60
|
+
if (canExpand) setExpandedState((current) => !current);
|
|
61
|
+
}, [canExpand]);
|
|
62
|
+
const resetExpanded = useCallback(() => setExpandedState(false), []);
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
expanded,
|
|
66
|
+
collapsedLimit,
|
|
67
|
+
expandedLimit,
|
|
68
|
+
visibleItems,
|
|
69
|
+
canExpand,
|
|
70
|
+
newChatLabel: labels.newChat,
|
|
71
|
+
disclosureLabel: expanded ? labels.showLess : labels.showMore,
|
|
72
|
+
onNewChat,
|
|
73
|
+
toggleExpanded,
|
|
74
|
+
resetExpanded,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -113,12 +113,14 @@
|
|
|
113
113
|
justify-content: center;
|
|
114
114
|
flex: 0 0 auto;
|
|
115
115
|
width: 30px;
|
|
116
|
+
height: auto;
|
|
116
117
|
min-height: 30px;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
.an-chat-history-rail__new-chat {
|
|
120
121
|
flex: 1 1 auto;
|
|
121
122
|
gap: 8px;
|
|
123
|
+
height: auto;
|
|
122
124
|
min-width: 0;
|
|
123
125
|
min-height: 30px;
|
|
124
126
|
padding: 6px 10px;
|
|
@@ -490,14 +490,17 @@ function ComposerPlusMenuFull({
|
|
|
490
490
|
<Popover open={open} onOpenChange={setOpen}>
|
|
491
491
|
<Tooltip>
|
|
492
492
|
<TooltipTrigger asChild>
|
|
493
|
-
<
|
|
494
|
-
<
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
493
|
+
<span className="inline-flex shrink-0">
|
|
494
|
+
<PopoverTrigger asChild>
|
|
495
|
+
<button
|
|
496
|
+
type="button"
|
|
497
|
+
aria-label="Add..."
|
|
498
|
+
className="shrink-0 flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-accent/50 disabled:opacity-30 disabled:cursor-not-allowed"
|
|
499
|
+
>
|
|
500
|
+
<IconPlus className="h-4 w-4" />
|
|
501
|
+
</button>
|
|
502
|
+
</PopoverTrigger>
|
|
503
|
+
</span>
|
|
501
504
|
</TooltipTrigger>
|
|
502
505
|
<TooltipContent>Add...</TooltipContent>
|
|
503
506
|
</Tooltip>
|