@agent-native/core 0.82.0 → 0.84.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/README.md +2 -2
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +34 -0
- package/corpus/core/README.md +2 -2
- package/corpus/core/docs/content/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ar-SA/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/de-DE/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/es-ES/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/fr-FR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/hi-IN/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ja-JP/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/ko-KR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/pt-BR/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-CN/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
- package/corpus/core/docs/content/locales/zh-TW/faq.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +1 -1
- package/corpus/core/docs/content/template-chat.mdx +1 -1
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/engine/builtin.ts +1 -1
- package/corpus/core/src/agent/engine/output-tokens.ts +1 -1
- package/corpus/core/src/agent/harness/acp-adapter.ts +28 -4
- package/corpus/core/src/agent/harness/ai-sdk-adapter.ts +3 -0
- package/corpus/core/src/agent/harness/translate.ts +3 -0
- package/corpus/core/src/agent/harness/types.ts +1 -0
- package/corpus/core/src/agent/model-config.ts +34 -13
- package/corpus/core/src/agent/production-agent.ts +87 -10
- package/corpus/core/src/agent/thread-data-builder.ts +29 -4
- package/corpus/core/src/agent/tool-call-journal.ts +109 -48
- package/corpus/core/src/agent/types.ts +6 -1
- package/corpus/core/src/cli/design-connect.ts +106 -0
- package/corpus/core/src/cli/gateway-helpers.ts +17 -0
- package/corpus/core/src/cli/recap.ts +0 -2
- package/corpus/core/src/cli/skills.ts +54 -16
- package/corpus/core/src/cli/workspace-dev.ts +29 -5
- package/corpus/core/src/client/AssistantChat.tsx +89 -42
- package/corpus/core/src/client/CommandMenu.tsx +34 -12
- package/corpus/core/src/client/DefaultSpinner.tsx +8 -1
- package/corpus/core/src/client/chat/message-components.tsx +49 -1
- package/corpus/core/src/client/chat/repo-helpers.ts +71 -0
- package/corpus/core/src/client/chat/run-recovery.tsx +15 -5
- package/corpus/core/src/client/components/ApiKeySettings.tsx +8 -8
- package/corpus/core/src/client/components/CodeRequiredDialog.tsx +26 -15
- package/corpus/core/src/client/components/MissingKeyCard.tsx +13 -6
- package/corpus/core/src/client/composer/TiptapComposer.tsx +4 -3
- package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +0 -1
- package/corpus/core/src/client/guided-questions.tsx +21 -27
- package/corpus/core/src/client/integrations/IntegrationCard.tsx +1 -1
- package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +1 -1
- package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +2 -2
- package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +23 -19
- package/corpus/core/src/client/resources/ResourceEditor.tsx +18 -10
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
- package/corpus/core/src/client/settings/SettingsPanel.tsx +8 -3
- package/corpus/core/src/client/settings/useBuilderStatus.ts +8 -41
- package/corpus/core/src/client/useProductionAgent.ts +6 -2
- package/corpus/core/src/deploy/build.ts +1 -1
- package/corpus/core/src/observability/traces.ts +3 -3
- package/corpus/core/src/onboarding/default-steps.ts +1 -1
- package/corpus/core/src/scripts/agent-engines/manage-agent-engine.ts +1 -1
- package/corpus/core/src/scripts/agent-engines/set-agent-engine.ts +1 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +177 -81
- package/corpus/core/src/server/core-routes-plugin.ts +7 -1
- package/corpus/core/src/server/open-route.ts +59 -40
- package/corpus/core/src/shared/reasoning-effort.ts +2 -0
- package/corpus/core/src/sharing/access.ts +22 -2
- package/corpus/core/src/sharing/registry.ts +18 -0
- package/corpus/core/src/styles/agent-native.css +104 -20
- package/corpus/core/src/styles/rich-markdown-editor.css +11 -10
- package/corpus/templates/analytics/actions/hubspot-deals.ts +64 -4
- package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +10 -10
- package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +10 -10
- package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +6 -5
- package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +9 -9
- package/corpus/templates/analytics/app/global.css +4 -0
- package/corpus/templates/analytics/app/lib/chart-theme.ts +13 -0
- package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +22 -24
- package/corpus/templates/analytics/changelog/2026-06-30-dashboard-charts-now-use-theme-aware-tooltip-and-grid-colors.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-30-fixed-ask-composer-spacing-so-the-chat-field-has-a-comfortab.md +6 -0
- package/corpus/templates/calendar/AGENTS.md +4 -0
- package/corpus/templates/calendar/actions/connect-google-calendar.ts +80 -0
- package/corpus/templates/calendar/changelog/2026-06-30-calendar-now-gives-the-agent-a-safe-google-connection-link-i.md +6 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +4 -0
- package/corpus/templates/content/.env.local.example +6 -0
- package/corpus/templates/content/AGENTS.md +10 -1
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +14 -1
- package/corpus/templates/content/actions/_builder-cms-source-adapter.ts +43 -0
- package/corpus/templates/content/actions/_builder-cms-write-adapter.ts +79 -7
- package/corpus/templates/content/actions/_database-source-utils.ts +987 -22
- package/corpus/templates/content/actions/_database-utils.ts +41 -0
- package/corpus/templates/content/actions/_local-file-documents.ts +74 -1
- package/corpus/templates/content/actions/attach-content-database-source.ts +33 -8
- package/corpus/templates/content/actions/change-content-database-source-role.ts +14 -0
- package/corpus/templates/content/actions/disconnect-content-database-source.ts +3 -0
- package/corpus/templates/content/actions/execute-builder-source-execution.ts +71 -3
- package/corpus/templates/content/actions/list-content-databases.ts +41 -33
- package/corpus/templates/content/actions/process-builder-body-hydration.ts +47 -0
- package/corpus/templates/content/actions/update-document.ts +93 -0
- package/corpus/templates/content/app/blocks/SourceComponentBlock.tsx +277 -0
- package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +2 -0
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +45 -4
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +5 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +92 -0
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +5 -3
- package/corpus/templates/content/app/components/editor/extensions/registryBlocks.ts +41 -0
- package/corpus/templates/content/app/components/editor/registrySlashItems.ts +4 -0
- package/corpus/templates/content/app/global.css +16 -8
- package/corpus/templates/content/app/hooks/use-content-database.ts +24 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +24 -0
- package/corpus/templates/content/app/i18n-data.ts +212 -0
- package/corpus/templates/content/app/lib/content-command-search.ts +64 -0
- package/corpus/templates/content/app/root.tsx +236 -8
- package/corpus/templates/content/changelog/2026-06-29-builder-cms-sources-now-sync-article-bodies-through-content.md +6 -0
- package/corpus/templates/content/changelog/2026-06-30-builder-article-media-now-render-as-images-and-embeds-when-r.md +6 -0
- package/corpus/templates/content/changelog/2026-06-30-builder-source-components-now-render-as-preserved-preview-bl.md +6 -0
- package/corpus/templates/content/changelog/2026-06-30-cmd-k-search-now-opens-from-the-editor-and-finds-real-content.md +6 -0
- package/corpus/templates/content/changelog/2026-06-30-editor-floating-toolbars-now-use-theme-aware-colors-in-light.md +6 -0
- package/corpus/templates/content/package.json +3 -1
- package/corpus/templates/content/scripts/check-native-deps.mjs +57 -0
- package/corpus/templates/content/scripts/dev-database.mjs +83 -0
- package/corpus/templates/content/scripts/seed-demo-user.mjs +107 -0
- package/corpus/templates/content/server/db/schema.ts +27 -0
- package/corpus/templates/content/server/plugins/db.ts +33 -0
- package/corpus/templates/content/shared/api.ts +45 -0
- package/corpus/templates/content/shared/builder-mdx.ts +905 -5
- package/corpus/templates/content/shared/nfm-registry.ts +2 -0
- package/corpus/templates/content/shared/source-component-block.ts +141 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +6 -1
- package/corpus/templates/design/actions/add-localhost-screens.ts +63 -8
- package/corpus/templates/design/actions/apply-motion-edit.ts +12 -46
- package/corpus/templates/design/actions/list-design-native-assets.ts +2 -1
- package/corpus/templates/design/actions/migrate-board-objects-to-file.ts +49 -1
- package/corpus/templates/design/actions/navigate.ts +3 -12
- package/corpus/templates/design/actions/open-visual-edit.ts +341 -0
- package/corpus/templates/design/actions/view-screen.ts +1 -1
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +1 -1
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +350 -15
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +71 -91
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +25 -27
- package/corpus/templates/design/app/components/design/DeviceFrame.tsx +1 -1
- package/corpus/templates/design/app/components/design/DrawOverlay.tsx +2 -2
- package/corpus/templates/design/app/components/design/EditPanel.tsx +1111 -570
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +162 -32
- package/corpus/templates/design/app/components/design/MotionDock.tsx +268 -240
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +1193 -207
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +1 -1
- package/corpus/templates/design/app/components/design/ReviewPanel.tsx +81 -102
- package/corpus/templates/design/app/components/design/StatesPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/TokensPanel.tsx +11 -11
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +9 -7
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +1225 -154
- package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +130 -37
- package/corpus/templates/design/app/components/design/canvas-primitive-style.ts +24 -11
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +184 -162
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +137 -79
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +13 -13
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +8 -8
- package/corpus/templates/design/app/components/design/inspector/GradientEditor.tsx +2 -2
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +4 -4
- package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +13 -7
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -11
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +4 -4
- package/corpus/templates/design/app/components/design/inspector/index.ts +2 -0
- package/corpus/templates/design/app/components/design/types.ts +19 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +61 -78
- package/corpus/templates/design/app/components/layout/Header.tsx +0 -1
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -2
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +0 -2
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +5 -4
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +1 -1
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +2 -2
- package/corpus/templates/design/app/global.css +56 -0
- package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -5
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -7
- package/corpus/templates/design/app/hooks/use-question-flow.ts +3 -2
- package/corpus/templates/design/app/hooks/useAgentEditRequest.ts +6 -4
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +6 -3
- package/corpus/templates/design/app/i18n/zh-TW.ts +5 -14
- package/corpus/templates/design/app/i18n-data.ts +63 -188
- package/corpus/templates/design/app/lib/agent-chat.ts +13 -0
- package/corpus/templates/design/app/pages/DesignEditor.tsx +1755 -401
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +9 -5
- package/corpus/templates/design/app/pages/DesignSystems.tsx +2 -2
- package/corpus/templates/design/app/pages/Index.tsx +49 -26
- package/corpus/templates/design/app/pages/NotFound.tsx +25 -8
- package/corpus/templates/design/app/pages/VisualEdit.tsx +17 -5
- package/corpus/templates/design/app/routes/examples.tsx +1 -7
- package/corpus/templates/design/app/routes/templates.tsx +7 -4
- package/corpus/templates/design/changelog/2026-06-30-board-shapes-and-auto-layout-controls-are-clearer.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-canvas-editing-now-keeps-undo-redo-and-cross-screen-layer-mo.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-component-selections-now-use-purple-component-chrome-and-sho.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-constraints-now-stay-tucked-into-a-compact-inspector-preview.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-creating-a-component-now-opens-in-a-compact-inspector-popove.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-cards-no-longer-show-legacy-project-type-badges.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-chat-now-keeps-new-turns-in-the-visible-design-agent-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-editor-panels-now-keep-their-compact-text-sizing-cons.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-no-longer-shows-the-connected-local-code-warning-bann.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-now-opens-to-the-files-panel-unless-a-generation-is-a.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-opens-with-a-cleaner-empty-canvas-and-loading-preview.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-design-tools-use-simpler-less-decorative-icons.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-dragging-absolute-elements-no-longer-shows-coordinate-labels.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-all-screens-opening-too-zoomed-in-by-default.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-the-public-design-assets-sidebar-so-native-components-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-fixed-the-screen-overview-board-so-empty-board-space-no-long.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-full-view-screens-can-now-scroll-while-remaining-editable.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-inspector-element-headers-show-the-selected-html-tag-and-the.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-inspector-inputs-stay-compact-across-desktop-breakpoints.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-layers-can-be-multi-selected-from-the-canvas-and-edited-toge.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-local-visual-edit-links-can-edit-localhost-frames-without-si.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-localhost-visual-edit-frames-can-now-be-selected-and-edited.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-marquee-selection-now-works-inside-screens-multi-selected-la.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-motion-is-now-available-from-the-persistent-left-rail-and-th.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-motion-timeline-collapse-and-reopen-animations-feel-smoother.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-multi-select-outlines-now-stay-consistent-across-all-screens.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-board-shapes-now-start-with-neutral-gray-styling.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-designs-open-into-a-steadier-loading-state-before-the-ed.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-new-designs-show-a-loading-state-during-handoff-and-keep-edi.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-public-visual-edit-design-links-now-open-directly-instead-of.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-removed-the-confusing-states-section-from-the-design-editor-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-removed-the-templates-gallery-from-design-navigation.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-share-stays-visible-as-soon-as-editable-designs-load.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-signed-out-save-and-share-controls-use-simpler-labels-and-op.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-text-added-on-the-canvas-now-focuses-cleanly-with-the-right-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-is-simpler-and-its-bottom.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-editor-loading-skeleton-now-follows-the-current-t.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-child-layout-controls-o.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-inspector-no-longer-shows-the-ask-ai-section-abov.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-design-review-panel-no-longer-shows-a-separate-inline-au.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-empty-designs-page-now-focuses-on-a-single-primary-new-d.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-layers-panel-header-stays-as-layers-while-multiple-items.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-missing-design-screen-now-uses-a-neutral-back-button.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-motion-timeline-now-closes-without-squeezing-the-canvas-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-new-design-connect-ai-setup-now-lines-up-with-the-compos.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-the-screen-overview-board-now-blends-into-the-canvas-and-new.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-drops-now-show-screen-guides.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-keep-a-transparent-backdrop-and-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-top-level-canvas-layers-now-select-reliably-from-all-screens.md +6 -0
- package/corpus/templates/design/changelog/2026-06-30-visual-edit-can-open-and-refresh-localhost-screens-in-one-au.md +6 -0
- package/corpus/templates/design/e2e/helpers.ts +15 -4
- package/corpus/templates/design/server/db/index.ts +52 -0
- package/corpus/templates/design/server/plugins/agent-chat.ts +5 -0
- package/corpus/templates/design/server/plugins/auth.ts +1 -0
- package/corpus/templates/design/server/plugins/core-routes.ts +4 -0
- package/corpus/templates/design/shared/board-file.ts +380 -5
- package/corpus/templates/design/shared/board-objects.ts +2 -2
- package/corpus/templates/design/shared/code-layer.ts +50 -6
- package/corpus/templates/design/shared/motion-compiler.ts +27 -0
- package/corpus/templates/macros/app/components/DailyProgress.tsx +41 -37
- package/corpus/templates/macros/app/components/ExerciseCard.tsx +2 -2
- package/corpus/templates/macros/app/components/MealCard.tsx +2 -2
- package/corpus/templates/macros/app/components/VoiceDictation.tsx +1 -1
- package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -1
- package/corpus/templates/macros/app/components/WeightCard.tsx +2 -2
- package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -1
- package/corpus/templates/macros/app/routes/_index.tsx +5 -5
- package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
- package/corpus/templates/macros/changelog/2026-06-30-dashboard-loading-and-chart-surfaces-now-use-theme-aware-col.md +6 -0
- package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +14 -11
- package/corpus/templates/mail/app/global.css +3 -2
- package/corpus/templates/mail/changelog/2026-06-30-compose-floating-toolbars-now-use-theme-aware-colors-in-ligh.md +6 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +3 -3
- package/corpus/templates/slides/app/global.css +10 -0
- package/corpus/templates/slides/app/pages/Index.tsx +55 -51
- package/corpus/templates/slides/changelog/2026-06-30-deck-thumbnails-collapse-cleanly-to-one-column-when-the-chat.md +6 -0
- package/dist/agent/engine/anthropic-engine.d.ts +2 -2
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.d.ts +2 -2
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/engine/builtin.js +1 -1
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/output-tokens.js +1 -1
- package/dist/agent/engine/output-tokens.js.map +1 -1
- package/dist/agent/harness/acp-adapter.d.ts +4 -1
- package/dist/agent/harness/acp-adapter.d.ts.map +1 -1
- package/dist/agent/harness/acp-adapter.js +19 -2
- package/dist/agent/harness/acp-adapter.js.map +1 -1
- package/dist/agent/harness/ai-sdk-adapter.d.ts.map +1 -1
- package/dist/agent/harness/ai-sdk-adapter.js +3 -0
- package/dist/agent/harness/ai-sdk-adapter.js.map +1 -1
- package/dist/agent/harness/translate.d.ts.map +1 -1
- package/dist/agent/harness/translate.js +3 -0
- package/dist/agent/harness/translate.js.map +1 -1
- package/dist/agent/harness/types.d.ts +1 -0
- package/dist/agent/harness/types.d.ts.map +1 -1
- package/dist/agent/harness/types.js.map +1 -1
- package/dist/agent/model-config.d.ts +21 -20
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +31 -13
- package/dist/agent/model-config.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +85 -10
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +27 -6
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/tool-call-journal.d.ts +11 -9
- package/dist/agent/tool-call-journal.d.ts.map +1 -1
- package/dist/agent/tool-call-journal.js +92 -40
- package/dist/agent/tool-call-journal.js.map +1 -1
- package/dist/agent/types.d.ts +5 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +84 -0
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/gateway-helpers.d.ts +4 -0
- package/dist/cli/gateway-helpers.d.ts.map +1 -1
- package/dist/cli/gateway-helpers.js +9 -0
- package/dist/cli/gateway-helpers.js.map +1 -1
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +0 -2
- package/dist/cli/recap.js.map +1 -1
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +54 -16
- package/dist/cli/skills.js.map +1 -1
- package/dist/cli/workspace-dev.d.ts.map +1 -1
- package/dist/cli/workspace-dev.js +33 -6
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +72 -26
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/CommandMenu.d.ts +6 -2
- package/dist/client/CommandMenu.d.ts.map +1 -1
- package/dist/client/CommandMenu.js +25 -14
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/DefaultSpinner.d.ts.map +1 -1
- package/dist/client/DefaultSpinner.js +8 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/chat/message-components.d.ts +7 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +37 -1
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/repo-helpers.d.ts +1 -0
- package/dist/client/chat/repo-helpers.d.ts.map +1 -1
- package/dist/client/chat/repo-helpers.js +59 -0
- package/dist/client/chat/repo-helpers.js.map +1 -1
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +4 -4
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/components/ApiKeySettings.js +8 -8
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
- package/dist/client/components/CodeRequiredDialog.js +24 -15
- package/dist/client/components/CodeRequiredDialog.js.map +1 -1
- package/dist/client/components/MissingKeyCard.d.ts.map +1 -1
- package/dist/client/components/MissingKeyCard.js +11 -6
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +4 -3
- package/dist/client/composer/TiptapComposer.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/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +6 -6
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js +1 -1
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js +2 -2
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +23 -19
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
- package/dist/client/resources/ResourceEditor.js +13 -10
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +2 -1
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +8 -3
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
- package/dist/client/settings/useBuilderStatus.js +6 -38
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts +2 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/deploy/build.js +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +3 -3
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js.map +1 -1
- package/dist/onboarding/default-steps.js +1 -1
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +3 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +134 -72
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts +3 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +4 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/open-route.d.ts +9 -0
- package/dist/server/open-route.d.ts.map +1 -1
- package/dist/server/open-route.js +48 -38
- package/dist/server/open-route.js.map +1 -1
- package/dist/shared/reasoning-effort.js +3 -0
- package/dist/shared/reasoning-effort.js.map +1 -1
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +18 -2
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/registry.d.ts +10 -0
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/styles/agent-native.css +104 -20
- package/dist/styles/rich-markdown-editor.css +11 -10
- package/docs/content/cloneable-saas.mdx +2 -2
- package/docs/content/faq.mdx +1 -1
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ar-SA/faq.mdx +1 -1
- package/docs/content/locales/ar-SA/template-chat.mdx +1 -1
- package/docs/content/locales/de-DE/cloneable-saas.mdx +2 -2
- package/docs/content/locales/de-DE/faq.mdx +1 -1
- package/docs/content/locales/de-DE/template-chat.mdx +1 -1
- package/docs/content/locales/es-ES/cloneable-saas.mdx +2 -2
- package/docs/content/locales/es-ES/faq.mdx +1 -1
- package/docs/content/locales/es-ES/template-chat.mdx +1 -1
- package/docs/content/locales/fr-FR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/fr-FR/faq.mdx +1 -1
- package/docs/content/locales/fr-FR/template-chat.mdx +1 -1
- package/docs/content/locales/hi-IN/cloneable-saas.mdx +2 -2
- package/docs/content/locales/hi-IN/faq.mdx +1 -1
- package/docs/content/locales/hi-IN/template-chat.mdx +1 -1
- package/docs/content/locales/ja-JP/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ja-JP/faq.mdx +1 -1
- package/docs/content/locales/ja-JP/template-chat.mdx +1 -1
- package/docs/content/locales/ko-KR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/ko-KR/faq.mdx +1 -1
- package/docs/content/locales/ko-KR/template-chat.mdx +1 -1
- package/docs/content/locales/pt-BR/cloneable-saas.mdx +2 -2
- package/docs/content/locales/pt-BR/faq.mdx +1 -1
- package/docs/content/locales/pt-BR/template-chat.mdx +1 -1
- package/docs/content/locales/zh-CN/cloneable-saas.mdx +2 -2
- package/docs/content/locales/zh-CN/faq.mdx +1 -1
- package/docs/content/locales/zh-CN/template-chat.mdx +1 -1
- package/docs/content/locales/zh-TW/cloneable-saas.mdx +2 -2
- package/docs/content/locales/zh-TW/faq.mdx +1 -1
- package/docs/content/locales/zh-TW/template-chat.mdx +1 -1
- package/docs/content/template-chat.mdx +1 -1
- package/package.json +1 -1
- package/corpus/templates/design/app/components/design/LocalSourceEditBanner.tsx +0 -157
- package/corpus/templates/design/app/lib/design-templates.ts +0 -1305
- package/corpus/templates/design/app/pages/Templates.tsx +0 -279
|
@@ -162,7 +162,9 @@ export function CodeRequiredDialog({
|
|
|
162
162
|
Object.assign(e.currentTarget.style, s.optionCardHover)
|
|
163
163
|
}
|
|
164
164
|
onMouseLeave={(e) =>
|
|
165
|
-
Object.assign(e.currentTarget.style, {
|
|
165
|
+
Object.assign(e.currentTarget.style, {
|
|
166
|
+
borderColor: "hsl(var(--border))",
|
|
167
|
+
})
|
|
166
168
|
}
|
|
167
169
|
>
|
|
168
170
|
<div style={s.optionIcon}>
|
|
@@ -190,7 +192,9 @@ export function CodeRequiredDialog({
|
|
|
190
192
|
Object.assign(e.currentTarget.style, s.optionCardHover)
|
|
191
193
|
}
|
|
192
194
|
onMouseLeave={(e) =>
|
|
193
|
-
Object.assign(e.currentTarget.style, {
|
|
195
|
+
Object.assign(e.currentTarget.style, {
|
|
196
|
+
borderColor: "hsl(var(--border))",
|
|
197
|
+
})
|
|
194
198
|
}
|
|
195
199
|
onClick={handleBuilderAgent}
|
|
196
200
|
>
|
|
@@ -254,7 +258,7 @@ export function CodeRequiredDialog({
|
|
|
254
258
|
}
|
|
255
259
|
onMouseLeave={(e) =>
|
|
256
260
|
Object.assign(e.currentTarget.style, {
|
|
257
|
-
borderColor: "
|
|
261
|
+
borderColor: "hsl(var(--border))",
|
|
258
262
|
})
|
|
259
263
|
}
|
|
260
264
|
>
|
|
@@ -294,7 +298,13 @@ export function CodeRequiredDialog({
|
|
|
294
298
|
)}
|
|
295
299
|
|
|
296
300
|
{error && (
|
|
297
|
-
<p
|
|
301
|
+
<p
|
|
302
|
+
style={{
|
|
303
|
+
color: "hsl(var(--destructive))",
|
|
304
|
+
fontSize: 12,
|
|
305
|
+
marginTop: 12,
|
|
306
|
+
}}
|
|
307
|
+
>
|
|
298
308
|
{error}
|
|
299
309
|
</p>
|
|
300
310
|
)}
|
|
@@ -326,8 +336,9 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
326
336
|
},
|
|
327
337
|
dialog: {
|
|
328
338
|
position: "relative",
|
|
329
|
-
background: "
|
|
339
|
+
background: "hsl(var(--popover))",
|
|
330
340
|
borderRadius: "12px",
|
|
341
|
+
border: "1px solid hsl(var(--border))",
|
|
331
342
|
maxWidth: "460px",
|
|
332
343
|
width: "100%",
|
|
333
344
|
padding: "24px",
|
|
@@ -335,7 +346,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
335
346
|
"0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1)",
|
|
336
347
|
fontFamily:
|
|
337
348
|
'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
338
|
-
color: "
|
|
349
|
+
color: "hsl(var(--popover-foreground))",
|
|
339
350
|
},
|
|
340
351
|
header: {
|
|
341
352
|
display: "flex",
|
|
@@ -348,11 +359,11 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
348
359
|
width: "40px",
|
|
349
360
|
height: "40px",
|
|
350
361
|
borderRadius: "10px",
|
|
351
|
-
background: "
|
|
362
|
+
background: "hsl(var(--muted))",
|
|
352
363
|
display: "flex",
|
|
353
364
|
alignItems: "center",
|
|
354
365
|
justifyContent: "center",
|
|
355
|
-
color: "
|
|
366
|
+
color: "hsl(var(--muted-foreground))",
|
|
356
367
|
},
|
|
357
368
|
title: {
|
|
358
369
|
margin: 0,
|
|
@@ -363,7 +374,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
363
374
|
subtitle: {
|
|
364
375
|
margin: "4px 0 0",
|
|
365
376
|
fontSize: "13px",
|
|
366
|
-
color: "
|
|
377
|
+
color: "hsl(var(--muted-foreground))",
|
|
367
378
|
lineHeight: "1.5",
|
|
368
379
|
},
|
|
369
380
|
options: {
|
|
@@ -377,7 +388,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
377
388
|
alignItems: "flex-start",
|
|
378
389
|
gap: "14px",
|
|
379
390
|
padding: "14px",
|
|
380
|
-
border: "1px solid
|
|
391
|
+
border: "1px solid hsl(var(--border))",
|
|
381
392
|
borderRadius: "10px",
|
|
382
393
|
background: "transparent",
|
|
383
394
|
cursor: "pointer",
|
|
@@ -388,7 +399,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
388
399
|
color: "inherit",
|
|
389
400
|
},
|
|
390
401
|
optionCardHover: {
|
|
391
|
-
borderColor: "
|
|
402
|
+
borderColor: "hsl(var(--ring))",
|
|
392
403
|
},
|
|
393
404
|
optionLink: {
|
|
394
405
|
textDecoration: "none",
|
|
@@ -410,7 +421,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
410
421
|
},
|
|
411
422
|
optionDesc: {
|
|
412
423
|
fontSize: "12px",
|
|
413
|
-
color: "
|
|
424
|
+
color: "hsl(var(--muted-foreground))",
|
|
414
425
|
lineHeight: "1.5",
|
|
415
426
|
},
|
|
416
427
|
badge: {
|
|
@@ -420,7 +431,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
420
431
|
fontSize: "10px",
|
|
421
432
|
fontWeight: 600,
|
|
422
433
|
color: "#00B5FF",
|
|
423
|
-
background: "
|
|
434
|
+
background: "hsl(var(--primary) / 0.08)",
|
|
424
435
|
padding: "2px 8px",
|
|
425
436
|
borderRadius: "99px",
|
|
426
437
|
textTransform: "uppercase",
|
|
@@ -435,7 +446,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
435
446
|
cursor: "pointer",
|
|
436
447
|
padding: "6px",
|
|
437
448
|
borderRadius: "6px",
|
|
438
|
-
color: "
|
|
449
|
+
color: "hsl(var(--muted-foreground))",
|
|
439
450
|
display: "flex",
|
|
440
451
|
alignItems: "center",
|
|
441
452
|
justifyContent: "center",
|
|
@@ -445,7 +456,7 @@ const s: Record<string, React.CSSProperties> = {
|
|
|
445
456
|
padding: "12px",
|
|
446
457
|
borderRadius: "8px",
|
|
447
458
|
border: "1px solid #22c55e40",
|
|
448
|
-
background: "
|
|
459
|
+
background: "rgba(34,197,94,0.08)",
|
|
449
460
|
display: "flex",
|
|
450
461
|
flexDirection: "column",
|
|
451
462
|
gap: "4px",
|
|
@@ -12,12 +12,13 @@ export function MissingKeyCard({
|
|
|
12
12
|
return (
|
|
13
13
|
<div
|
|
14
14
|
style={{
|
|
15
|
-
border: "1px solid
|
|
15
|
+
border: "1px solid hsl(var(--border))",
|
|
16
16
|
borderRadius: 8,
|
|
17
17
|
padding: "24px 28px",
|
|
18
18
|
maxWidth: 420,
|
|
19
19
|
margin: "32px auto",
|
|
20
|
-
background: "
|
|
20
|
+
background: "hsl(var(--card))",
|
|
21
|
+
color: "hsl(var(--card-foreground))",
|
|
21
22
|
textAlign: "center",
|
|
22
23
|
}}
|
|
23
24
|
>
|
|
@@ -25,13 +26,19 @@ export function MissingKeyCard({
|
|
|
25
26
|
style={{
|
|
26
27
|
fontSize: 14,
|
|
27
28
|
fontWeight: 600,
|
|
28
|
-
color: "
|
|
29
|
+
color: "hsl(var(--card-foreground))",
|
|
29
30
|
marginBottom: 8,
|
|
30
31
|
}}
|
|
31
32
|
>
|
|
32
33
|
{label}
|
|
33
34
|
</div>
|
|
34
|
-
<p
|
|
35
|
+
<p
|
|
36
|
+
style={{
|
|
37
|
+
fontSize: 13,
|
|
38
|
+
color: "hsl(var(--muted-foreground))",
|
|
39
|
+
margin: "0 0 16px",
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
35
42
|
{message}
|
|
36
43
|
</p>
|
|
37
44
|
<a
|
|
@@ -41,8 +48,8 @@ export function MissingKeyCard({
|
|
|
41
48
|
padding: "8px 16px",
|
|
42
49
|
fontSize: 13,
|
|
43
50
|
fontWeight: 500,
|
|
44
|
-
color: "
|
|
45
|
-
background: "
|
|
51
|
+
color: "hsl(var(--primary-foreground))",
|
|
52
|
+
background: "hsl(var(--primary))",
|
|
46
53
|
borderRadius: 6,
|
|
47
54
|
textDecoration: "none",
|
|
48
55
|
}}
|
|
@@ -750,6 +750,7 @@ const FRIENDLY_MODEL_NAMES: Record<string, string> = {
|
|
|
750
750
|
"qwen3-coder": "Qwen3 Coder",
|
|
751
751
|
"kimi-k2-5": "Kimi K2.5",
|
|
752
752
|
"deepseek-v3-1": "DeepSeek v3.1",
|
|
753
|
+
"z-ai/glm-5.2": "GLM 5.2",
|
|
753
754
|
};
|
|
754
755
|
|
|
755
756
|
export const MODEL_SELECTOR_POPOVER_STYLE = {
|
|
@@ -759,13 +760,13 @@ export const MODEL_SELECTOR_POPOVER_STYLE = {
|
|
|
759
760
|
|
|
760
761
|
function friendlyModelName(model: string): string {
|
|
761
762
|
if (FRIENDLY_MODEL_NAMES[model]) return FRIENDLY_MODEL_NAMES[model];
|
|
762
|
-
// Claude: claude-{tier}-{major}-
|
|
763
|
+
// Claude: claude-{tier}-{major}[-minor][-dateYYYYMMDD] → Tier Major[.Minor]
|
|
763
764
|
const claude = model.match(
|
|
764
|
-
/^claude-(opus|sonnet|haiku)-(\d+)
|
|
765
|
+
/^claude-(opus|sonnet|haiku)-(\d+)(?:-(\d+))?(?:-\d{8,})?$/,
|
|
765
766
|
);
|
|
766
767
|
if (claude) {
|
|
767
768
|
const tier = claude[1][0].toUpperCase() + claude[1].slice(1);
|
|
768
|
-
return `${tier} ${claude[2]}
|
|
769
|
+
return `${tier} ${claude[2]}${claude[3] ? `.${claude[3]}` : ""}`;
|
|
769
770
|
}
|
|
770
771
|
// GPT: gpt-{major}-{minor}[-suffix] or gpt-{major}.{minor}[-suffix]
|
|
771
772
|
if (model.startsWith("gpt-")) {
|
|
@@ -596,7 +596,6 @@ function ExtensionSortMenu({
|
|
|
596
596
|
<DropdownMenuRadioItem value="alphabetical">
|
|
597
597
|
{copy.alphabetical}
|
|
598
598
|
</DropdownMenuRadioItem>
|
|
599
|
-
<DropdownMenuSeparator />
|
|
600
599
|
<DropdownMenuRadioItem value="manual">
|
|
601
600
|
{copy.manualOrder}
|
|
602
601
|
</DropdownMenuRadioItem>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IconCheck,
|
|
3
3
|
IconChevronRight,
|
|
4
|
-
IconHelpCircle,
|
|
5
4
|
IconUpload,
|
|
6
5
|
IconX,
|
|
7
6
|
} from "@tabler/icons-react";
|
|
@@ -433,8 +432,8 @@ export function GuidedQuestionFlow({
|
|
|
433
432
|
questions,
|
|
434
433
|
onSubmit,
|
|
435
434
|
onSkip,
|
|
436
|
-
title = "
|
|
437
|
-
description = "
|
|
435
|
+
title = "Before I generate",
|
|
436
|
+
description = "Use Other for custom details, or let the agent decide.",
|
|
438
437
|
skipLabel = "Skip",
|
|
439
438
|
submitLabel = "Continue",
|
|
440
439
|
className,
|
|
@@ -465,28 +464,23 @@ export function GuidedQuestionFlow({
|
|
|
465
464
|
return (
|
|
466
465
|
<div
|
|
467
466
|
className={cn(
|
|
468
|
-
"flex h-full w-full items-center justify-center bg-background text-foreground",
|
|
467
|
+
"guided-question-flow flex h-full w-full items-center justify-center bg-background text-foreground",
|
|
469
468
|
className,
|
|
470
469
|
)}
|
|
471
470
|
>
|
|
472
|
-
<div className="flex max-h-full w-full max-w-3xl flex-col px-
|
|
473
|
-
<div className="
|
|
474
|
-
<
|
|
475
|
-
|
|
476
|
-
</
|
|
477
|
-
|
|
478
|
-
<
|
|
479
|
-
{
|
|
480
|
-
</
|
|
481
|
-
|
|
482
|
-
<p className="mt-1 max-w-2xl text-sm leading-5 text-muted-foreground">
|
|
483
|
-
{description}
|
|
484
|
-
</p>
|
|
485
|
-
)}
|
|
486
|
-
</div>
|
|
471
|
+
<div className="guided-question-flow-inner flex max-h-full w-full max-w-3xl flex-col px-3 py-4">
|
|
472
|
+
<div className="guided-question-flow-header mb-4 min-w-0">
|
|
473
|
+
<h2 className="guided-question-flow-title text-lg font-semibold leading-tight tracking-normal text-foreground">
|
|
474
|
+
{title}
|
|
475
|
+
</h2>
|
|
476
|
+
{description && (
|
|
477
|
+
<p className="guided-question-flow-description mt-1 max-w-2xl text-sm leading-5 text-muted-foreground">
|
|
478
|
+
{description}
|
|
479
|
+
</p>
|
|
480
|
+
)}
|
|
487
481
|
</div>
|
|
488
482
|
|
|
489
|
-
<div className="min-h-0 flex-1
|
|
483
|
+
<div className="guided-question-flow-list min-h-0 flex-1 overflow-y-auto pe-1">
|
|
490
484
|
{questions.map((question, index) => (
|
|
491
485
|
<QuestionCard
|
|
492
486
|
key={question.id}
|
|
@@ -501,7 +495,7 @@ export function GuidedQuestionFlow({
|
|
|
501
495
|
))}
|
|
502
496
|
</div>
|
|
503
497
|
|
|
504
|
-
<div className="mt-
|
|
498
|
+
<div className="guided-question-flow-footer mt-4 flex shrink-0 items-center justify-between gap-3 border-t border-border pt-3">
|
|
505
499
|
<div className="flex items-center gap-1.5">
|
|
506
500
|
{questions.map((question, index) => (
|
|
507
501
|
<span
|
|
@@ -553,9 +547,9 @@ function QuestionCard({
|
|
|
553
547
|
onSubmitAnswer: (value: unknown) => void;
|
|
554
548
|
}) {
|
|
555
549
|
return (
|
|
556
|
-
<section className="
|
|
557
|
-
<div className="mb-
|
|
558
|
-
<div className="
|
|
550
|
+
<section className="guided-question-card border-t border-border/60 py-3 first:border-t-0 first:pt-0 last:pb-0">
|
|
551
|
+
<div className="mb-2 flex gap-2.5">
|
|
552
|
+
<div className="guided-question-index mt-0.5 min-w-4 text-xs font-medium tabular-nums text-muted-foreground">
|
|
559
553
|
{index + 1}
|
|
560
554
|
</div>
|
|
561
555
|
<div className="min-w-0">
|
|
@@ -670,8 +664,8 @@ function TextOptions({
|
|
|
670
664
|
const allowOther = question.allowOther !== false;
|
|
671
665
|
|
|
672
666
|
return (
|
|
673
|
-
<div className="space-y-
|
|
674
|
-
<div className="
|
|
667
|
+
<div className="space-y-2.5">
|
|
668
|
+
<div className="guided-question-flow-options grid grid-cols-1 gap-2">
|
|
675
669
|
{options.map((option) => (
|
|
676
670
|
<OptionButton
|
|
677
671
|
key={`${option.value}:${option.label}`}
|
|
@@ -724,7 +718,7 @@ function OptionButton({
|
|
|
724
718
|
onClick={onClick}
|
|
725
719
|
aria-pressed={selected}
|
|
726
720
|
className={cn(
|
|
727
|
-
"group flex min-h-
|
|
721
|
+
"group flex min-h-11 min-w-0 cursor-pointer items-start gap-2 rounded-md border px-2.5 py-2 text-start transition-colors",
|
|
728
722
|
selected
|
|
729
723
|
? "border-primary bg-primary/10 text-foreground ring-2 ring-primary/25"
|
|
730
724
|
: "border-border bg-muted/30 text-muted-foreground hover:border-muted-foreground/50 hover:bg-muted/45 hover:text-foreground",
|
|
@@ -53,8 +53,8 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
53
53
|
width: "100%",
|
|
54
54
|
padding: "8px 12px",
|
|
55
55
|
border: "none",
|
|
56
|
-
borderBottom: "1px solid
|
|
57
|
-
background: "
|
|
56
|
+
borderBottom: "1px solid hsl(var(--border) / 0.7)",
|
|
57
|
+
background: "hsl(var(--primary) / 0.06)",
|
|
58
58
|
color: "inherit",
|
|
59
59
|
fontSize: 12,
|
|
60
60
|
cursor: "pointer",
|
|
@@ -749,9 +749,9 @@ function buttonPrimary(primary: boolean | undefined): React.CSSProperties {
|
|
|
749
749
|
borderRadius: 6,
|
|
750
750
|
border: primary
|
|
751
751
|
? "1px solid transparent"
|
|
752
|
-
: "1px solid
|
|
753
|
-
background: primary ? "
|
|
754
|
-
color: primary ? "
|
|
752
|
+
: "1px solid hsl(var(--border) / 0.8)",
|
|
753
|
+
background: primary ? "hsl(var(--primary))" : "hsl(var(--muted) / 0.4)",
|
|
754
|
+
color: primary ? "hsl(var(--primary-foreground))" : "inherit",
|
|
755
755
|
fontSize: 12,
|
|
756
756
|
fontWeight: 500,
|
|
757
757
|
cursor: "pointer",
|
|
@@ -761,9 +761,9 @@ function buttonPrimary(primary: boolean | undefined): React.CSSProperties {
|
|
|
761
761
|
function buttonDisabled(primary: boolean | undefined): React.CSSProperties {
|
|
762
762
|
return {
|
|
763
763
|
...buttonPrimary(primary),
|
|
764
|
-
border: "1px solid
|
|
765
|
-
background:
|
|
766
|
-
color: "
|
|
764
|
+
border: "1px solid hsl(var(--border) / 0.6)",
|
|
765
|
+
background: "hsl(var(--muted) / 0.35)",
|
|
766
|
+
color: "hsl(var(--muted-foreground))",
|
|
767
767
|
cursor: "not-allowed",
|
|
768
768
|
};
|
|
769
769
|
}
|
|
@@ -792,8 +792,8 @@ function badgeStyle(
|
|
|
792
792
|
|
|
793
793
|
const styles: Record<string, React.CSSProperties> = {
|
|
794
794
|
root: {
|
|
795
|
-
borderBottom: "1px solid
|
|
796
|
-
background: "
|
|
795
|
+
borderBottom: "1px solid hsl(var(--border) / 0.7)",
|
|
796
|
+
background: "hsl(var(--muted) / 0.25)",
|
|
797
797
|
fontSize: 12,
|
|
798
798
|
display: "flex",
|
|
799
799
|
flexDirection: "column",
|
|
@@ -804,7 +804,7 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
804
804
|
display: "flex",
|
|
805
805
|
alignItems: "center",
|
|
806
806
|
justifyContent: "space-between",
|
|
807
|
-
borderBottom: "1px solid
|
|
807
|
+
borderBottom: "1px solid hsl(var(--border) / 0.7)",
|
|
808
808
|
background: "rgba(34,197,94,0.04)",
|
|
809
809
|
fontSize: 12,
|
|
810
810
|
},
|
|
@@ -915,7 +915,7 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
915
915
|
width: 16,
|
|
916
916
|
height: 16,
|
|
917
917
|
borderRadius: "50%",
|
|
918
|
-
border: "1px solid
|
|
918
|
+
border: "1px solid hsl(var(--border))",
|
|
919
919
|
},
|
|
920
920
|
cardBody: {
|
|
921
921
|
paddingBlock: "0 10px",
|
|
@@ -937,9 +937,9 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
937
937
|
},
|
|
938
938
|
method: {
|
|
939
939
|
padding: "8px 10px",
|
|
940
|
-
border: "1px solid
|
|
940
|
+
border: "1px solid hsl(var(--border) / 0.65)",
|
|
941
941
|
borderRadius: 6,
|
|
942
|
-
background: "
|
|
942
|
+
background: "hsl(var(--card) / 0.55)",
|
|
943
943
|
display: "flex",
|
|
944
944
|
flexDirection: "column",
|
|
945
945
|
gap: 6,
|
|
@@ -967,8 +967,8 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
967
967
|
gap: 8,
|
|
968
968
|
padding: "7px 8px",
|
|
969
969
|
borderRadius: 6,
|
|
970
|
-
border: "1px solid
|
|
971
|
-
background: "
|
|
970
|
+
border: "1px solid hsl(var(--border) / 0.7)",
|
|
971
|
+
background: "hsl(var(--muted) / 0.35)",
|
|
972
972
|
color: "inherit",
|
|
973
973
|
cursor: "pointer",
|
|
974
974
|
fontSize: 11,
|
|
@@ -996,8 +996,8 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
996
996
|
padding: "6px 8px",
|
|
997
997
|
fontSize: 12,
|
|
998
998
|
borderRadius: 5,
|
|
999
|
-
border: "1px solid
|
|
1000
|
-
background: "
|
|
999
|
+
border: "1px solid hsl(var(--input))",
|
|
1000
|
+
background: "hsl(var(--background))",
|
|
1001
1001
|
color: "inherit",
|
|
1002
1002
|
outline: "none",
|
|
1003
1003
|
boxSizing: "border-box" as const,
|
|
@@ -1007,13 +1007,17 @@ const styles: Record<string, React.CSSProperties> = {
|
|
|
1007
1007
|
padding: "6px 8px",
|
|
1008
1008
|
fontSize: 12,
|
|
1009
1009
|
borderRadius: 5,
|
|
1010
|
-
border: "1px solid
|
|
1011
|
-
background: "
|
|
1010
|
+
border: "1px solid hsl(var(--input))",
|
|
1011
|
+
background: "hsl(var(--background))",
|
|
1012
1012
|
color: "inherit",
|
|
1013
1013
|
outline: "none",
|
|
1014
1014
|
boxSizing: "border-box" as const,
|
|
1015
1015
|
},
|
|
1016
|
-
methodHint: {
|
|
1016
|
+
methodHint: {
|
|
1017
|
+
margin: 0,
|
|
1018
|
+
fontSize: 11,
|
|
1019
|
+
color: "hsl(var(--muted-foreground))",
|
|
1020
|
+
},
|
|
1017
1021
|
errText: { margin: 0, fontSize: 11, color: "#f87171" },
|
|
1018
1022
|
footer: {
|
|
1019
1023
|
padding: "0 12px 10px",
|
|
@@ -11,6 +11,10 @@ import React, {
|
|
|
11
11
|
} from "react";
|
|
12
12
|
import { Markdown } from "tiptap-markdown";
|
|
13
13
|
|
|
14
|
+
import {
|
|
15
|
+
CLAUDE_SONNET_MODEL_ID,
|
|
16
|
+
CLAUDE_SONNET_MODEL_LABEL,
|
|
17
|
+
} from "../../agent/model-config.js";
|
|
14
18
|
import {
|
|
15
19
|
type ParsedFrontmatter,
|
|
16
20
|
getRemoteAgentIdFromPath,
|
|
@@ -189,7 +193,9 @@ function FrontmatterBar({
|
|
|
189
193
|
<option value="inherit">Default model</option>
|
|
190
194
|
<option value="claude-fable-5">Claude Fable 5</option>
|
|
191
195
|
<option value="claude-opus-4-8">Claude Opus 4.8</option>
|
|
192
|
-
<option value=
|
|
196
|
+
<option value={CLAUDE_SONNET_MODEL_ID}>
|
|
197
|
+
{CLAUDE_SONNET_MODEL_LABEL}
|
|
198
|
+
</option>
|
|
193
199
|
<option value="claude-haiku-4-5-20251001">Claude Haiku 4.5</option>
|
|
194
200
|
</select>
|
|
195
201
|
) : null}
|
|
@@ -665,7 +671,7 @@ function InlineBubbleToolbar({ editor }: { editor: any }) {
|
|
|
665
671
|
onClick={handleSetLink}
|
|
666
672
|
style={{
|
|
667
673
|
fontSize: 11,
|
|
668
|
-
color: "
|
|
674
|
+
color: "hsl(var(--primary))",
|
|
669
675
|
padding: "2px 6px",
|
|
670
676
|
fontWeight: 500,
|
|
671
677
|
background: "none",
|
|
@@ -689,7 +695,7 @@ function InlineBubbleToolbar({ editor }: { editor: any }) {
|
|
|
689
695
|
style={{
|
|
690
696
|
width: 1,
|
|
691
697
|
height: 16,
|
|
692
|
-
background: "
|
|
698
|
+
background: "hsl(var(--border))",
|
|
693
699
|
margin: "0 2px",
|
|
694
700
|
}}
|
|
695
701
|
/>
|
|
@@ -1437,28 +1443,30 @@ const editorStyles = `
|
|
|
1437
1443
|
.re-bubble-toolbar {
|
|
1438
1444
|
display: flex;
|
|
1439
1445
|
align-items: center;
|
|
1440
|
-
background: hsl(
|
|
1446
|
+
background: hsl(var(--popover));
|
|
1447
|
+
color: hsl(var(--popover-foreground));
|
|
1448
|
+
border: 1px solid hsl(var(--border));
|
|
1441
1449
|
border-radius: 6px;
|
|
1442
1450
|
padding: 3px;
|
|
1443
|
-
box-shadow: 0 4px 16px rgb(0 0 0 / 0.
|
|
1451
|
+
box-shadow: 0 4px 16px rgb(0 0 0 / 0.12);
|
|
1444
1452
|
}
|
|
1445
1453
|
.re-bubble-btn {
|
|
1446
1454
|
padding: 3px 6px;
|
|
1447
1455
|
border-radius: 4px;
|
|
1448
1456
|
font-size: 12px;
|
|
1449
|
-
color:
|
|
1457
|
+
color: hsl(var(--muted-foreground));
|
|
1450
1458
|
background: none;
|
|
1451
1459
|
border: none;
|
|
1452
1460
|
cursor: pointer;
|
|
1453
1461
|
line-height: 1;
|
|
1454
1462
|
}
|
|
1455
1463
|
.re-bubble-btn:hover {
|
|
1456
|
-
background:
|
|
1457
|
-
color:
|
|
1464
|
+
background: hsl(var(--accent));
|
|
1465
|
+
color: hsl(var(--accent-foreground));
|
|
1458
1466
|
}
|
|
1459
1467
|
.re-bubble-btn--active {
|
|
1460
|
-
background:
|
|
1461
|
-
color:
|
|
1468
|
+
background: hsl(var(--accent));
|
|
1469
|
+
color: hsl(var(--accent-foreground));
|
|
1462
1470
|
}
|
|
1463
1471
|
|
|
1464
1472
|
/* Slash command menu */
|
|
@@ -22,6 +22,10 @@ import React, {
|
|
|
22
22
|
useMemo,
|
|
23
23
|
} from "react";
|
|
24
24
|
|
|
25
|
+
import {
|
|
26
|
+
CLAUDE_SONNET_MODEL_ID,
|
|
27
|
+
CLAUDE_SONNET_MODEL_LABEL,
|
|
28
|
+
} from "../../agent/model-config.js";
|
|
25
29
|
import { serializeFrontmatter } from "../../resources/metadata.js";
|
|
26
30
|
import { sendToAgentChat } from "../agent-chat.js";
|
|
27
31
|
import { agentNativePath } from "../api-path.js";
|
|
@@ -90,7 +94,7 @@ const AGENT_MODEL_OPTIONS = [
|
|
|
90
94
|
{ value: "inherit", label: "Default model" },
|
|
91
95
|
{ value: "claude-fable-5", label: "Claude Fable 5" },
|
|
92
96
|
{ value: "claude-opus-4-8", label: "Claude Opus 4.8" },
|
|
93
|
-
{ value:
|
|
97
|
+
{ value: CLAUDE_SONNET_MODEL_ID, label: CLAUDE_SONNET_MODEL_LABEL },
|
|
94
98
|
{ value: "claude-haiku-4-5-20251001", label: "Claude Haiku 4.5" },
|
|
95
99
|
] as const;
|
|
96
100
|
|
|
@@ -499,12 +499,13 @@ function ManualSetupCard({
|
|
|
499
499
|
// ─── LLM helpers ────────────────────────────────────────────────────────────
|
|
500
500
|
|
|
501
501
|
function friendlyModelName(model: string): string {
|
|
502
|
+
if (model === "z-ai/glm-5.2") return "GLM 5.2";
|
|
502
503
|
const claude = model.match(
|
|
503
|
-
/^claude-(opus|sonnet|haiku)-(\d+)
|
|
504
|
+
/^claude-(opus|sonnet|haiku)-(\d+)(?:-(\d+))?(?:-\d{8,})?$/,
|
|
504
505
|
);
|
|
505
506
|
if (claude) {
|
|
506
507
|
const tier = claude[1][0].toUpperCase() + claude[1].slice(1);
|
|
507
|
-
return `${tier} ${claude[2]}
|
|
508
|
+
return `${tier} ${claude[2]}${claude[3] ? `.${claude[3]}` : ""}`;
|
|
508
509
|
}
|
|
509
510
|
if (model.startsWith("gpt-")) return `GPT-${model.slice(4)}`;
|
|
510
511
|
if (/^o\d/.test(model)) return model;
|
|
@@ -718,6 +719,10 @@ function LLMSectionInner({
|
|
|
718
719
|
envVar,
|
|
719
720
|
builderConnected,
|
|
720
721
|
});
|
|
722
|
+
const manualSetupHint =
|
|
723
|
+
selectedEngine === "ai-sdk:openrouter"
|
|
724
|
+
? "Provide an OpenRouter key to use OpenRouter models like GLM 5.2."
|
|
725
|
+
: "Choose your AI provider and model.";
|
|
721
726
|
|
|
722
727
|
const engineChanged =
|
|
723
728
|
selectedEngine !== currentEngine || selectedModel !== currentModel;
|
|
@@ -889,7 +894,7 @@ function LLMSectionInner({
|
|
|
889
894
|
/>
|
|
890
895
|
{!builderConnected && (
|
|
891
896
|
<ManualSetupCard
|
|
892
|
-
hint=
|
|
897
|
+
hint={manualSetupHint}
|
|
893
898
|
docsUrl={PROVIDER_DOCS[selectedEngine]}
|
|
894
899
|
sourceBadge={sourceBadge}
|
|
895
900
|
docsLabel="Get an API key"
|