@agent-native/core 0.7.16 → 0.7.18
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/dist/a2a/agent-card.js.map +1 -1
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/server.js.map +1 -1
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/adapters/cli/index.js.map +1 -1
- package/dist/adapters/cli/registry.js.map +1 -1
- package/dist/adapters/cli/shell-adapter.js.map +1 -1
- package/dist/adapters/cli/types.js.map +1 -1
- package/dist/agent/default-model.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/engine/builtin.js.map +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/provider-env-vars.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +5 -3
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +6 -5
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
- package/dist/agent/engine/translate-anthropic.js.map +1 -1
- package/dist/agent/engine/types.js.map +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/application-state/emitter.js.map +1 -1
- package/dist/application-state/handlers.js.map +1 -1
- package/dist/application-state/index.js.map +1 -1
- package/dist/application-state/script-helpers.js.map +1 -1
- package/dist/application-state/store.js.map +1 -1
- package/dist/chat-threads/emitter.js.map +1 -1
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/checkpoints/index.js.map +1 -1
- package/dist/checkpoints/service.js.map +1 -1
- package/dist/checkpoints/store.js.map +1 -1
- package/dist/cli/create-workspace.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +11 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/info.js.map +1 -1
- package/dist/cli/setup-agents.js.map +1 -1
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ClientOnly.js.map +1 -1
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/ConnectBuilderCard.js.map +1 -1
- package/dist/client/DefaultSpinner.js.map +1 -1
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/IframeEmbed.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/PoweredByBadge.js.map +1 -1
- package/dist/client/ProductionAgentPanel.js.map +1 -1
- package/dist/client/Turnstile.js.map +1 -1
- package/dist/client/active-run-state.js.map +1 -1
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/api-path.js.map +1 -1
- package/dist/client/builder-mark.js.map +1 -1
- package/dist/client/components/AgentPresenceChip.js.map +1 -1
- package/dist/client/components/ApiKeySettings.js.map +1 -1
- package/dist/client/components/CodeAgentIndicator.js.map +1 -1
- package/dist/client/components/CodeRequiredDialog.js.map +1 -1
- package/dist/client/components/MissingKeyCard.js.map +1 -1
- package/dist/client/components/PresenceBar.js.map +1 -1
- package/dist/client/components/ui/popover.js.map +1 -1
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/client/composer/MentionPopover.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/draft-key.js.map +1 -1
- package/dist/client/composer/extensions/FileReference.js.map +1 -1
- package/dist/client/composer/extensions/MentionReference.js.map +1 -1
- package/dist/client/composer/extensions/SkillReference.js.map +1 -1
- package/dist/client/composer/index.js.map +1 -1
- package/dist/client/composer/types.js.map +1 -1
- package/dist/client/composer/use-file-search.js.map +1 -1
- package/dist/client/composer/use-mention-search.js.map +1 -1
- package/dist/client/composer/use-skills.js.map +1 -1
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/dev-mode.js.map +1 -1
- package/dist/client/dev-overlay/DevOverlay.js.map +1 -1
- package/dist/client/dev-overlay/builtins.js.map +1 -1
- package/dist/client/dev-overlay/index.js.map +1 -1
- package/dist/client/dev-overlay/registry.js.map +1 -1
- package/dist/client/dev-overlay/types.js.map +1 -1
- package/dist/client/dev-overlay/use-dev-option.js.map +1 -1
- package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -1
- package/dist/client/embed.js.map +1 -1
- package/dist/client/error-format.js.map +1 -1
- package/dist/client/frame-protocol.js.map +1 -1
- package/dist/client/frame.js.map +1 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +0 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/integrations/index.js.map +1 -1
- package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
- package/dist/client/notifications/NotificationsBell.js.map +1 -1
- package/dist/client/notifications/index.js.map +1 -1
- package/dist/client/observability/ObservabilityDashboard.js.map +1 -1
- package/dist/client/observability/ThumbsFeedback.js.map +1 -1
- package/dist/client/observability/index.js.map +1 -1
- package/dist/client/observability/useObservability.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +6 -27
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/onboarding/SetupButton.js.map +1 -1
- package/dist/client/onboarding/index.js.map +1 -1
- package/dist/client/onboarding/use-onboarding.js.map +1 -1
- package/dist/client/onboarding/use-preview-mode.js.map +1 -1
- package/dist/client/org/InvitationBanner.js.map +1 -1
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.js.map +1 -1
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/org/hooks.js.map +1 -1
- package/dist/client/org/index.js.map +1 -1
- package/dist/client/progress/RunsTray.js.map +1 -1
- package/dist/client/progress/index.js.map +1 -1
- package/dist/client/resources/McpServerDetail.js.map +1 -1
- package/dist/client/resources/ResourceEditor.js.map +1 -1
- package/dist/client/resources/ResourceTree.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/index.js.map +1 -1
- package/dist/client/resources/use-mcp-servers.js.map +1 -1
- package/dist/client/resources/use-resources.js.map +1 -1
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
- package/dist/client/settings/BrowserSection.js.map +1 -1
- 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 +3 -19
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsSection.js.map +1 -1
- package/dist/client/settings/UsageSection.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/settings/useBuilderStatus.js.map +1 -1
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/client/sharing/VisibilityBadge.js.map +1 -1
- package/dist/client/sharing/index.js.map +1 -1
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.js.map +1 -1
- package/dist/client/terminal/index.js.map +1 -1
- package/dist/client/tools/EmbeddedTool.js.map +1 -1
- package/dist/client/tools/ExtensionSlot.js.map +1 -1
- package/dist/client/tools/ToolEditor.js.map +1 -1
- package/dist/client/tools/ToolViewer.js.map +1 -1
- package/dist/client/tools/ToolViewerPage.js.map +1 -1
- package/dist/client/tools/ToolsListPage.js.map +1 -1
- package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
- package/dist/client/tools/iframe-bridge.js.map +1 -1
- package/dist/client/tools/index.js.map +1 -1
- package/dist/client/transcription/BuilderTranscriptionCta.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/client/use-action.js.map +1 -1
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/use-avatar.js.map +1 -1
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/use-db-sync.js.map +1 -1
- package/dist/client/use-dev-mode.js.map +1 -1
- package/dist/client/use-pausing-interval.js.map +1 -1
- package/dist/client/use-send-to-agent-chat.js.map +1 -1
- package/dist/client/use-session.js.map +1 -1
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/client/utils.js.map +1 -1
- package/dist/collab/agent-identity.js.map +1 -1
- package/dist/collab/agent-presence.js.map +1 -1
- package/dist/collab/awareness.js.map +1 -1
- package/dist/collab/client-struct.js.map +1 -1
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/emitter.js.map +1 -1
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/json-to-yjs.js.map +1 -1
- package/dist/collab/routes.js.map +1 -1
- package/dist/collab/storage.js.map +1 -1
- package/dist/collab/struct-routes.js.map +1 -1
- package/dist/collab/text-to-yjs.js.map +1 -1
- package/dist/collab/xml-ops.js.map +1 -1
- package/dist/collab/ydoc-manager.js.map +1 -1
- package/dist/credentials/index.js.map +1 -1
- package/dist/db/client.js.map +1 -1
- package/dist/db/create-get-db.js.map +1 -1
- package/dist/db/drizzle-config.js.map +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/route-discovery.js.map +1 -1
- package/dist/deploy/workspace-core.js.map +1 -1
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/event-bus/bus.js.map +1 -1
- package/dist/event-bus/index.js.map +1 -1
- package/dist/event-bus/registry.js.map +1 -1
- package/dist/event-bus/types.js.map +1 -1
- package/dist/file-upload/builder.js.map +1 -1
- package/dist/file-upload/index.js.map +1 -1
- package/dist/file-upload/registry.js.map +1 -1
- package/dist/file-upload/types.js.map +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/adapters/email.js.map +1 -1
- package/dist/integrations/adapters/google-docs.js.map +1 -1
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/adapters/telegram.js.map +1 -1
- package/dist/integrations/adapters/whatsapp.js.map +1 -1
- package/dist/integrations/config-store.js.map +1 -1
- package/dist/integrations/google-docs-poller.js.map +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/internal-token.js.map +1 -1
- package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
- package/dist/integrations/pending-tasks-store.js.map +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/task-queue-stats.js.map +1 -1
- package/dist/integrations/thread-mapping-store.js.map +1 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/cron.js.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.js.map +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp-client/config.js.map +1 -1
- package/dist/mcp-client/hub-client.js.map +1 -1
- package/dist/mcp-client/hub-routes.js.map +1 -1
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/mcp-client/manager.js.map +1 -1
- package/dist/mcp-client/remote-store.js.map +1 -1
- package/dist/mcp-client/routes.js.map +1 -1
- package/dist/mcp-client/visibility.js.map +1 -1
- package/dist/notifications/actions.js.map +1 -1
- package/dist/notifications/channels.js.map +1 -1
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/registry.js.map +1 -1
- package/dist/notifications/routes.js.map +1 -1
- package/dist/notifications/store.js.map +1 -1
- package/dist/notifications/types.js.map +1 -1
- package/dist/oauth-tokens/google-refresh.js.map +1 -1
- package/dist/oauth-tokens/index.js.map +1 -1
- package/dist/oauth-tokens/store.js.map +1 -1
- package/dist/observability/cleanup-job.js.map +1 -1
- package/dist/observability/evals.js.map +1 -1
- package/dist/observability/experiments.js.map +1 -1
- package/dist/observability/feedback.js.map +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/plugin.js.map +1 -1
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.js.map +1 -1
- package/dist/observability/types.js.map +1 -1
- package/dist/onboarding/default-steps.d.ts.map +1 -1
- package/dist/onboarding/default-steps.js +0 -1
- package/dist/onboarding/default-steps.js.map +1 -1
- package/dist/onboarding/index.js.map +1 -1
- package/dist/onboarding/plugin.js.map +1 -1
- package/dist/onboarding/registry.js.map +1 -1
- package/dist/onboarding/types.d.ts +0 -9
- package/dist/onboarding/types.d.ts.map +1 -1
- package/dist/onboarding/types.js.map +1 -1
- package/dist/org/accept-pending.js.map +1 -1
- package/dist/org/context.js.map +1 -1
- package/dist/org/handlers.js.map +1 -1
- package/dist/org/index.js.map +1 -1
- package/dist/org/migrations.js.map +1 -1
- package/dist/org/plugin.js.map +1 -1
- package/dist/org/schema.js.map +1 -1
- package/dist/org/types.js.map +1 -1
- package/dist/progress/actions.js.map +1 -1
- package/dist/progress/index.js.map +1 -1
- package/dist/progress/registry.js.map +1 -1
- package/dist/progress/routes.js.map +1 -1
- package/dist/progress/store.js.map +1 -1
- package/dist/progress/types.js.map +1 -1
- package/dist/resources/agents.js.map +1 -1
- package/dist/resources/emitter.js.map +1 -1
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/metadata.js.map +1 -1
- package/dist/resources/script-helpers.js.map +1 -1
- package/dist/resources/store.js.map +1 -1
- package/dist/router/index.js.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/agent-engines/manage-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/set-agent-engine.js.map +1 -1
- package/dist/scripts/agent-engines/test-agent-engine.js.map +1 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/chat/index.js.map +1 -1
- package/dist/scripts/chat/open-chat.js.map +1 -1
- package/dist/scripts/chat/search-chats.js.map +1 -1
- package/dist/scripts/core-scripts.js.map +1 -1
- package/dist/scripts/db/check-scoping.js.map +1 -1
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/index.js.map +1 -1
- package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
- package/dist/scripts/db/patch.js.map +1 -1
- package/dist/scripts/db/query.js.map +1 -1
- package/dist/scripts/db/schema.js.map +1 -1
- package/dist/scripts/db/scoping.js.map +1 -1
- package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -1
- package/dist/scripts/dev/index.js.map +1 -1
- package/dist/scripts/dev/list-files.js.map +1 -1
- package/dist/scripts/dev/read-file.js.map +1 -1
- package/dist/scripts/dev/search-files.js.map +1 -1
- package/dist/scripts/dev/shell.js.map +1 -1
- package/dist/scripts/dev/write-file.js.map +1 -1
- package/dist/scripts/docs/index.js.map +1 -1
- package/dist/scripts/docs/search.js.map +1 -1
- package/dist/scripts/index.js.map +1 -1
- package/dist/scripts/parse-args.js.map +1 -1
- package/dist/scripts/resources/delete-memory.js.map +1 -1
- package/dist/scripts/resources/delete.js.map +1 -1
- package/dist/scripts/resources/index.js.map +1 -1
- package/dist/scripts/resources/list.js.map +1 -1
- package/dist/scripts/resources/migrate-learnings.js.map +1 -1
- package/dist/scripts/resources/read.js.map +1 -1
- package/dist/scripts/resources/save-memory.js.map +1 -1
- package/dist/scripts/resources/write.js.map +1 -1
- package/dist/scripts/runner.js.map +1 -1
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +3 -2
- package/dist/scripts/utils.js.map +1 -1
- package/dist/secrets/index.js.map +1 -1
- package/dist/secrets/onboarding.js.map +1 -1
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/secrets/register.js.map +1 -1
- package/dist/secrets/routes.js.map +1 -1
- package/dist/secrets/schema.js.map +1 -1
- package/dist/secrets/storage.js.map +1 -1
- package/dist/secrets/substitution.js.map +1 -1
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/action-routes.js.map +1 -1
- package/dist/server/agent-chat-plugin.js +1 -1
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-discovery.js.map +1 -1
- package/dist/server/agent-teams.js.map +1 -1
- package/dist/server/agents-bundle.js.map +1 -1
- package/dist/server/analytics.js.map +1 -1
- package/dist/server/app-base-path.js.map +1 -1
- package/dist/server/app-name.js.map +1 -1
- package/dist/server/app-url.js.map +1 -1
- package/dist/server/auth-plugin.js.map +1 -1
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/builder-browser.js.map +1 -1
- package/dist/server/captcha.js.map +1 -1
- package/dist/server/cli-capture.js.map +1 -1
- package/dist/server/collab-plugin.js.map +1 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/credential-provider.js.map +1 -1
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/date-utils.js.map +1 -1
- package/dist/server/design-token-utils.js.map +1 -1
- package/dist/server/desktop-sso.js.map +1 -1
- package/dist/server/email-template.js.map +1 -1
- package/dist/server/email-templates.js.map +1 -1
- package/dist/server/email.js.map +1 -1
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-auth-plugin.js.map +1 -1
- package/dist/server/google-oauth.d.ts +1 -1
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +14 -6
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/h3-helpers.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/local-migration.js.map +1 -1
- package/dist/server/missing-key.js.map +1 -1
- package/dist/server/oauth-helpers.js.map +1 -1
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/poll.js.map +1 -1
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/resources-plugin.js.map +1 -1
- package/dist/server/schema-prompt.js.map +1 -1
- package/dist/server/script-discovery.js.map +1 -1
- package/dist/server/security-headers.js.map +1 -1
- package/dist/server/short-lived-token.js.map +1 -1
- package/dist/server/sse.js.map +1 -1
- package/dist/server/ssr-handler.js.map +1 -1
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/server/voice-providers-status.js.map +1 -1
- package/dist/settings/handlers.js.map +1 -1
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/org-settings.js.map +1 -1
- package/dist/settings/script-helpers.js.map +1 -1
- package/dist/settings/store.js.map +1 -1
- package/dist/settings/user-settings.js.map +1 -1
- package/dist/shared/agent-chat.js.map +1 -1
- package/dist/shared/agent-env.js.map +1 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/runtime.js.map +1 -1
- package/dist/shared/truncate.js.map +1 -1
- package/dist/sharing/access.d.ts +9 -1
- package/dist/sharing/access.d.ts.map +1 -1
- package/dist/sharing/access.js +11 -2
- package/dist/sharing/access.js.map +1 -1
- package/dist/sharing/actions/list-resource-shares.js.map +1 -1
- package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
- package/dist/sharing/actions/share-resource.js.map +1 -1
- package/dist/sharing/actions/unshare-resource.js.map +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/sharing/schema.js.map +1 -1
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/terminal/cli-registry.js.map +1 -1
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/pty-server.js.map +1 -1
- package/dist/terminal/terminal-plugin.d.ts.map +1 -1
- package/dist/terminal/terminal-plugin.js +19 -4
- package/dist/terminal/terminal-plugin.js.map +1 -1
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/fetch-tool.js.map +1 -1
- package/dist/tools/html-shell.js.map +1 -1
- package/dist/tools/proxy-security.js.map +1 -1
- package/dist/tools/routes.js.map +1 -1
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/slots/routes.js.map +1 -1
- package/dist/tools/slots/schema.js.map +1 -1
- package/dist/tools/slots/store.js.map +1 -1
- package/dist/tools/store.js.map +1 -1
- package/dist/tools/theme.js.map +1 -1
- package/dist/tools/url-safety.js.map +1 -1
- package/dist/tracking/index.js.map +1 -1
- package/dist/tracking/providers.js.map +1 -1
- package/dist/tracking/registry.js.map +1 -1
- package/dist/tracking/types.js.map +1 -1
- package/dist/transcription/builder-transcription.js.map +1 -1
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/condition-evaluator.js.map +1 -1
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/index.js.map +1 -1
- package/dist/triggers/types.js.map +1 -1
- package/dist/usage/store.js.map +1 -1
- package/dist/vite/action-types-plugin.js.map +1 -1
- package/dist/vite/agents-bundle-plugin.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +4 -0
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/settings/ComingSoonSection.d.ts +0 -13
- package/dist/client/settings/ComingSoonSection.d.ts.map +0 -1
- package/dist/client/settings/ComingSoonSection.js +0 -10
- package/dist/client/settings/ComingSoonSection.js.map +0 -1
- package/dist/client/use-builder-enabled.d.ts +0 -17
- package/dist/client/use-builder-enabled.d.ts.map +0 -1
- package/dist/client/use-builder-enabled.js +0 -37
- package/dist/client/use-builder-enabled.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantChat.js","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssistantChat.js","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createPortal } from \"react-dom\";\nimport React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useImperativeHandle,\n} from \"react\";\nimport {\n AssistantRuntimeProvider,\n useLocalRuntime,\n useThreadRuntime,\n useThread,\n useAui,\n useComposer,\n useMessageRuntime,\n ThreadPrimitive,\n ComposerPrimitive,\n MessagePrimitive,\n} from \"@assistant-ui/react\";\nimport type { ToolCallMessagePartProps, Attachment } from \"@assistant-ui/react\";\nimport {\n SimpleImageAttachmentAdapter,\n SimpleTextAttachmentAdapter,\n CompositeAttachmentAdapter,\n} from \"@assistant-ui/react\";\nimport { MarkdownTextPrimitive } from \"@assistant-ui/react-markdown\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { createAgentChatAdapter } from \"./agent-chat-adapter.js\";\nimport { type ContentPart, readSSEStreamRaw } from \"./sse-event-processor.js\";\nimport { cn } from \"./utils.js\";\nimport { AgentTaskCard } from \"./AgentTaskCard.js\";\nimport { ConnectBuilderCard } from \"./ConnectBuilderCard.js\";\nimport { useBuilderConnectFlow } from \"./settings/useBuilderStatus.js\";\nimport { IframeEmbed, parseEmbedBody } from \"./IframeEmbed.js\";\nimport { useDevMode } from \"./use-dev-mode.js\";\nimport { agentNativePath } from \"./api-path.js\";\nimport {\n TiptapComposer,\n type TiptapComposerHandle,\n} from \"./composer/TiptapComposer.js\";\nimport type { Reference } from \"./composer/types.js\";\nimport {\n IconMessage,\n IconX,\n IconPlayerStop,\n IconCheck,\n IconChevronDown,\n IconCopy,\n IconTerminal,\n IconLoader2,\n IconCircleX,\n IconSquareFilled,\n IconClock,\n IconFile,\n IconFolder,\n IconFileText,\n IconCheckbox,\n IconMail,\n IconUser,\n IconPresentation,\n IconStack2,\n IconMessageChatbot,\n IconLock,\n IconArrowBackUp,\n IconExternalLink,\n IconDots,\n IconGitFork,\n IconId,\n IconQuote,\n} from \"@tabler/icons-react\";\n\nconst ThumbsFeedbackLazy = React.lazy(() =>\n import(\"./observability/ThumbsFeedback.js\").then((m) => ({\n default: m.ThumbsFeedback,\n })),\n);\n\n// ─── Markdown Text ──────────────────────────────────────────────────────────\n\nconst markdownStyles = `\n.agent-markdown > :first-child { margin-top: 0; }\n.agent-markdown > :last-child { margin-bottom: 0; }\n.agent-markdown p { margin: 0.5em 0; }\n.agent-markdown ul, .agent-markdown ol { margin: 0.5em 0; padding-left: 1.5em; }\n.agent-markdown li { margin: 0.2em 0; }\n.agent-markdown li > p { margin: 0; }\n.agent-markdown h1 { font-size: 1.25em; font-weight: 600; margin: 0.75em 0 0.25em; }\n.agent-markdown h2 { font-size: 1.125em; font-weight: 600; margin: 0.75em 0 0.25em; }\n.agent-markdown h3 { font-size: 1em; font-weight: 600; margin: 0.75em 0 0.25em; }\n.agent-markdown strong { font-weight: 600; }\n.agent-markdown em { font-style: italic; }\n.agent-markdown code { font-size: 0.875em; padding: 0.15em 0.35em; border-radius: 0.25em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); border: 1px solid hsl(var(--border, 0 0% 80%)); }\n.agent-markdown pre { margin: 0.5em 0; padding: 0.75em 1em; border-radius: 0.375em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); overflow-x: auto; border: 1px solid hsl(var(--border, 0 0% 80%)); }\n.agent-markdown pre code { padding: 0; background: transparent; font-size: 0.8125em; color: inherit; border: none; }\n.agent-markdown-shiki { margin: 0.5em 0; border-radius: 0.375em; overflow: hidden; font-size: 0.8125em; }\n.agent-markdown-shiki pre { margin: 0; padding: 0.75em 1em; overflow-x: auto; background: var(--shiki-light-bg); color: var(--shiki-light); }\n.agent-markdown-shiki pre code { background: transparent; padding: 0; font-size: inherit; color: inherit; }\n.agent-markdown-shiki pre span { color: var(--shiki-light); background: var(--shiki-light-bg); }\n.dark .agent-markdown-shiki pre { background: var(--shiki-dark-bg); color: var(--shiki-dark); }\n.dark .agent-markdown-shiki pre span { color: var(--shiki-dark); background: var(--shiki-dark-bg); }\n@media (prefers-color-scheme: dark) { :root:not(.light) .agent-markdown-shiki pre { background: var(--shiki-dark-bg); color: var(--shiki-dark); } :root:not(.light) .agent-markdown-shiki pre span { color: var(--shiki-dark); background: var(--shiki-dark-bg); } }\n.agent-markdown hr { border: none; border-top: 1px solid hsl(var(--border, 0 0% 20%)); margin: 0.75em 0; }\n.agent-markdown a { text-decoration: underline; text-underline-offset: 2px; }\n.agent-markdown blockquote { border-left: 2px solid hsl(var(--border, 0 0% 20%)); padding-left: 0.75em; margin: 0.5em 0; opacity: 0.8; }\n.agent-markdown table { border-collapse: collapse; margin: 0.5em 0; font-size: 0.875em; }\n.agent-markdown th, .agent-markdown td { border: 1px solid hsl(var(--border, 0 0% 20%)); padding: 0.35em 0.65em; text-align: left; }\n.agent-markdown th { font-weight: 600; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); }\n`;\n\n/**\n * Pending selection context — written to application_state when the user\n * presses Cmd+I with text selected on the page. The agent's next turn picks\n * it up via the `selectionContextPromise` in production-agent. The pill\n * below tells the user the context is attached and lets them clear it.\n */\nconst PENDING_SELECTION_KEY = \"pending-selection-context\";\n\nfunction clearPendingSelection() {\n fetch(\n agentNativePath(\n `/_agent-native/application-state/${PENDING_SELECTION_KEY}`,\n ),\n {\n method: \"DELETE\",\n keepalive: true,\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n },\n ).catch(() => {});\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(new CustomEvent(\"agent-panel:selection-cleared\"));\n }\n}\n\nfunction SelectionAttachedPill() {\n const [length, setLength] = useState<number | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n fetch(\n agentNativePath(\n `/_agent-native/application-state/${PENDING_SELECTION_KEY}`,\n ),\n )\n .then((r) => (r.ok && r.status !== 204 ? r.json() : null))\n .then((data) => {\n if (cancelled) return;\n const text =\n (data?.value?.text as string | undefined) ??\n (data?.text as string | undefined);\n if (text) setLength(text.length);\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, []);\n\n useEffect(() => {\n function onAttached(e: Event) {\n const detail = (e as CustomEvent).detail;\n if (typeof detail?.length === \"number\") setLength(detail.length);\n }\n function onCleared() {\n setLength(null);\n }\n window.addEventListener(\"agent-panel:selection-attached\", onAttached);\n window.addEventListener(\"agent-panel:selection-cleared\", onCleared);\n return () => {\n window.removeEventListener(\"agent-panel:selection-attached\", onAttached);\n window.removeEventListener(\"agent-panel:selection-cleared\", onCleared);\n };\n }, []);\n\n if (length === null || length === 0) return null;\n\n return (\n <div className=\"shrink-0 px-3 pt-1.5 -mb-1\">\n <div className=\"inline-flex items-center gap-1.5 rounded-full border border-border bg-muted/50 px-2 py-0.5 text-[11px] text-muted-foreground\">\n <IconQuote size={11} />\n <span>{length.toLocaleString()} chars of selection attached</span>\n <button\n type=\"button\"\n aria-label=\"Clear selection context\"\n onClick={() => {\n setLength(null);\n clearPendingSelection();\n }}\n className=\"flex h-4 w-4 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/60\"\n >\n <IconX size={11} />\n </button>\n </div>\n </div>\n );\n}\n\nlet stylesInjected = false;\nfunction injectMarkdownStyles() {\n if (stylesInjected || typeof document === \"undefined\") return;\n stylesInjected = true;\n const style = document.createElement(\"style\");\n style.textContent = markdownStyles;\n document.head.appendChild(style);\n}\n\nfunction extractCodeText(child: React.ReactNode): string {\n if (typeof child === \"string\") return child;\n if (Array.isArray(child)) return child.map(extractCodeText).join(\"\");\n if (React.isValidElement(child)) {\n const props = child.props as { children?: React.ReactNode };\n return extractCodeText(props.children);\n }\n return \"\";\n}\n\n// Lazy-loaded shiki highlighter using the fine-grained API so we only ship\n// the languages and themes we actually use (instead of shiki's full ~30 MB\n// bundle of every grammar). This is required to keep the Cloudflare Pages\n// Functions bundle under the 25 MiB limit.\ntype ShikiHighlighter = {\n codeToHtml: (\n code: string,\n options: {\n lang: string;\n themes: { light: string; dark: string };\n defaultColor?: false | \"light\" | \"dark\";\n },\n ) => string | Promise<string>;\n getLoadedLanguages: () => string[];\n};\n\nlet highlighterLoader: Promise<ShikiHighlighter> | null = null;\nfunction loadHighlighter(): Promise<ShikiHighlighter> {\n if (!highlighterLoader) {\n highlighterLoader = (async () => {\n const [{ createHighlighterCore }, { createOnigurumaEngine }] =\n await Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/oniguruma\"),\n ]);\n return createHighlighterCore({\n themes: [\n import(\"shiki/themes/github-light-default.mjs\"),\n import(\"shiki/themes/github-dark-default.mjs\"),\n ],\n langs: [\n import(\"shiki/langs/javascript.mjs\"),\n import(\"shiki/langs/typescript.mjs\"),\n import(\"shiki/langs/jsx.mjs\"),\n import(\"shiki/langs/tsx.mjs\"),\n import(\"shiki/langs/json.mjs\"),\n import(\"shiki/langs/css.mjs\"),\n import(\"shiki/langs/html.mjs\"),\n import(\"shiki/langs/markdown.mjs\"),\n import(\"shiki/langs/bash.mjs\"),\n import(\"shiki/langs/shellscript.mjs\"),\n import(\"shiki/langs/python.mjs\"),\n import(\"shiki/langs/yaml.mjs\"),\n ],\n engine: createOnigurumaEngine(import(\"shiki/wasm\")),\n }) as unknown as Promise<ShikiHighlighter>;\n })().catch((error) => {\n // Reset on failure so a future code block can retry instead of\n // silently failing forever on a stale chunk / network blip.\n highlighterLoader = null;\n throw error;\n });\n }\n return highlighterLoader;\n}\n\nimport { PROVIDER_ENV_VARS } from \"../agent/engine/provider-env-vars.js\";\n\nconst PROVIDER_ENV_VAR_SET = new Set(PROVIDER_ENV_VARS);\n\n// Map a few common aliases to languages we bundled above.\nconst LANG_ALIASES: Record<string, string> = {\n js: \"javascript\",\n ts: \"typescript\",\n sh: \"bash\",\n shell: \"bash\",\n zsh: \"bash\",\n py: \"python\",\n yml: \"yaml\",\n md: \"markdown\",\n};\n\nfunction HighlightedCodeBlock({ code, lang }: { code: string; lang: string }) {\n const [html, setHtml] = useState<string | null>(null);\n useEffect(() => {\n let cancelled = false;\n loadHighlighter()\n .then((highlighter) => {\n const requested = (lang || \"text\").toLowerCase();\n const resolved = LANG_ALIASES[requested] ?? requested;\n const loaded = highlighter.getLoadedLanguages();\n const finalLang = loaded.includes(resolved) ? resolved : \"text\";\n return highlighter.codeToHtml(code, {\n lang: finalLang,\n themes: {\n light: \"github-light-default\",\n dark: \"github-dark-default\",\n },\n defaultColor: false,\n });\n })\n .then((out) => {\n if (!cancelled) setHtml(out);\n })\n .catch(() => {\n // Unknown language or other shiki failure — fall back to plain pre.\n if (!cancelled) setHtml(null);\n });\n return () => {\n cancelled = true;\n };\n }, [code, lang]);\n\n if (html) {\n return (\n <div\n className=\"agent-markdown-shiki\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n }\n return (\n <pre>\n <code className={lang ? `language-${lang}` : undefined}>{code}</code>\n </pre>\n );\n}\n\nconst markdownComponents = {\n pre(props: React.HTMLAttributes<HTMLPreElement>) {\n const { children, ...rest } = props;\n if (React.isValidElement(children)) {\n const childProps = children.props as {\n className?: string;\n children?: React.ReactNode;\n };\n const className = childProps.className || \"\";\n if (/\\blanguage-embed\\b/.test(className)) {\n const body = extractCodeText(childProps.children);\n const parsed = parseEmbedBody(body);\n return (\n <IframeEmbed {...(parsed as Parameters<typeof IframeEmbed>[0])} />\n );\n }\n const langMatch = className.match(/\\blanguage-([\\w+-]+)\\b/);\n if (langMatch) {\n const code = extractCodeText(childProps.children).replace(/\\n$/, \"\");\n return <HighlightedCodeBlock code={code} lang={langMatch[1]} />;\n }\n }\n return <pre {...rest}>{children}</pre>;\n },\n};\n\nfunction MarkdownText() {\n useEffect(() => {\n injectMarkdownStyles();\n }, []);\n return (\n <MarkdownTextPrimitive\n smooth\n className=\"agent-markdown break-words\"\n remarkPlugins={[remarkGfm]}\n components={markdownComponents}\n />\n );\n}\n\n// ─── Composer Attachment Preview ─────────────────────────────────────────────\n\nfunction getImageAttachmentSrc(attachment: Attachment): string | null {\n if (attachment.type !== \"image\") return null;\n\n if (\"file\" in attachment && attachment.file) {\n return URL.createObjectURL(attachment.file);\n }\n\n const imagePart = attachment.content?.find((part) => part.type === \"image\");\n return imagePart && \"image\" in imagePart ? imagePart.image : null;\n}\n\nfunction ComposerAttachmentPreviewCard({\n attachment,\n onRemove,\n}: {\n attachment: Attachment;\n onRemove: (id: string) => void;\n}) {\n const [imageSrc, setImageSrc] = useState<string | null>(null);\n\n useEffect(() => {\n const nextSrc = getImageAttachmentSrc(attachment);\n setImageSrc(nextSrc);\n\n return () => {\n if (nextSrc?.startsWith(\"blob:\")) {\n URL.revokeObjectURL(nextSrc);\n }\n };\n }, [attachment]);\n\n const isImage = !!imageSrc;\n\n return (\n <div\n className={cn(\n \"group relative overflow-hidden border border-border/70 bg-muted/50 text-foreground\",\n isImage\n ? \"h-20 w-20 rounded-xl shadow-[0_12px_30px_-18px_rgba(0,0,0,0.7)]\"\n : \"inline-flex max-w-[220px] items-center gap-2 rounded-lg px-2.5 py-2 text-xs\",\n )}\n >\n {isImage ? (\n <>\n <img\n src={imageSrc}\n alt={attachment.name}\n className=\"h-full w-full object-cover\"\n />\n <div className=\"pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent px-2 py-1.5\">\n <div className=\"truncate text-[10px] font-medium text-white/95\">\n {attachment.name}\n </div>\n </div>\n </>\n ) : (\n <>\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-background text-[10px] font-semibold uppercase tracking-[0.12em] text-muted-foreground\">\n {attachment.name.split(\".\").pop() || \"file\"}\n </div>\n <div className=\"min-w-0\">\n <div className=\"truncate font-medium\">{attachment.name}</div>\n <div className=\"text-[11px] text-muted-foreground\">\n {attachment.contentType || attachment.type}\n </div>\n </div>\n </>\n )}\n <button\n type=\"button\"\n onClick={() => onRemove(attachment.id)}\n className={cn(\n \"absolute flex h-6 w-6 items-center justify-center rounded-full border border-border/60 bg-background/95 text-muted-foreground shadow-sm transition hover:text-foreground\",\n isImage\n ? \"right-1.5 top-1.5 opacity-100 md:opacity-0 md:group-hover:opacity-100\"\n : \"right-1.5 top-1.5\",\n )}\n aria-label={`Remove ${attachment.name}`}\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </div>\n );\n}\n\nfunction ComposerAttachmentPreviewStrip() {\n const attachments = useComposer((state) => state.attachments);\n const aui = useAui();\n\n const handleRemove = useCallback(\n (id: string) => {\n void aui.composer().attachment({ id }).remove();\n },\n [aui],\n );\n\n if (attachments.length === 0) return null;\n\n return (\n <div className=\"flex flex-wrap gap-2 px-2 pt-2\">\n {attachments.map((attachment) => (\n <ComposerAttachmentPreviewCard\n key={attachment.id}\n attachment={attachment}\n onRemove={handleRemove}\n />\n ))}\n </div>\n );\n}\n\n// Provides the parent's combined running state to tool-call renderers so they\n// can stop spinning when the user clicks stop. `thread.isRunning` alone misses\n// the force-stopped case; `part.result === undefined` alone ignores stop.\nconst ChatRunningContext = React.createContext(false);\n\n// ─── Tool Call Display ──────────────────────────────────────────────────────\n// Shared presentational component for rendering a tool call pill + result.\n// Used by both the normal message path (ToolCallFallback) and the reconnect\n// stream path (ReconnectStreamMessage). All state is passed as props — no\n// assistant-ui hooks here.\n\nfunction ToolCallDisplay({\n toolName,\n argsText,\n args,\n result,\n isRunning,\n}: {\n toolName: string;\n argsText?: string;\n args: Record<string, unknown>;\n result?: string;\n isRunning: boolean;\n}) {\n const streamRef = useRef<HTMLDivElement>(null);\n const isAgentCall = toolName.startsWith(\"agent:\");\n const [expanded, setExpanded] = useState(isAgentCall);\n const agentName = isAgentCall ? toolName.slice(6) : null;\n const isAgentError = isAgentCall && result === \"Error calling agent\";\n const agentStreamText = isAgentCall ? (argsText ?? \"\") : \"\";\n const hasStreamText = agentStreamText.length > 0;\n\n // NOTE: All hooks must be above any conditional returns\n useEffect(() => {\n if (isAgentCall && isRunning && streamRef.current) {\n streamRef.current.scrollTop = streamRef.current.scrollHeight;\n }\n }, [agentStreamText, isAgentCall, isRunning]);\n\n // Render connect-builder as ConnectBuilderCard once the result is available\n if (toolName === \"connect-builder\" && result) {\n try {\n const parsed = JSON.parse(result);\n if (parsed?.kind === \"connect-builder-card\") {\n return (\n <ConnectBuilderCard\n configured={!!parsed.configured}\n connectUrl={parsed.connectUrl || \"\"}\n orgName={parsed.orgName ?? null}\n prompt={typeof parsed.prompt === \"string\" ? parsed.prompt : \"\"}\n />\n );\n }\n } catch {\n // fall through to default pill rendering\n }\n }\n\n // Render agent-teams spawn as AgentTaskCard once the result is available\n if (\n toolName === \"agent-teams\" &&\n (args as Record<string, string>)?.action === \"spawn\" &&\n result\n ) {\n try {\n const parsed = JSON.parse(result);\n if (parsed.taskId && parsed.threadId) {\n return (\n <AgentTaskCard\n taskId={parsed.taskId}\n threadId={parsed.threadId}\n description={\n parsed.description ||\n (args as Record<string, string>)?.task ||\n \"Sub-agent task\"\n }\n onOpen={(tid) => {\n window.dispatchEvent(\n new CustomEvent(\"agent-task-open\", {\n detail: {\n threadId: tid,\n description:\n parsed.description ||\n (args as Record<string, string>)?.task ||\n \"\",\n name: parsed.name || \"\",\n },\n }),\n );\n }}\n />\n );\n }\n } catch {\n // Fall through to default pill rendering\n }\n }\n\n const argsStr = isAgentCall\n ? \"\"\n : Object.entries(args)\n .map(\n ([k, v]) => `${k}=${typeof v === \"string\" ? v : JSON.stringify(v)}`,\n )\n .join(\", \");\n\n const displayName = isAgentCall\n ? isRunning\n ? `Asking ${agentName}...`\n : isAgentError\n ? `Error asking ${agentName}`\n : `Asked ${agentName}`\n : toolName;\n\n const canExpand = isAgentCall ? hasStreamText : result !== undefined;\n const isExpanded = isAgentCall ? hasStreamText && expanded : expanded;\n\n return (\n <div className=\"my-1 overflow-hidden\">\n <button\n onClick={() => canExpand && setExpanded(!isExpanded)}\n className={cn(\n \"flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs font-mono w-full text-left overflow-hidden\",\n isRunning\n ? \"bg-muted text-muted-foreground\"\n : \"bg-muted text-muted-foreground hover:bg-accent\",\n )}\n >\n <span className=\"shrink-0\">\n {isRunning ? (\n <IconLoader2 className=\"h-3 w-3 animate-spin\" />\n ) : isAgentError ? (\n <IconCircleX className=\"h-3 w-3 text-destructive\" />\n ) : result !== undefined ? (\n <IconCheck className=\"h-3 w-3 text-emerald-500\" />\n ) : (\n <IconSquareFilled className=\"h-3 w-3 text-muted-foreground\" />\n )}\n </span>\n <span className=\"truncate min-w-0\">\n <span className=\"font-medium\">{displayName}</span>\n {argsStr && <span className=\"opacity-60 ml-1\">({argsStr})</span>}\n </span>\n {canExpand && !isRunning && (\n <IconChevronDown\n className={cn(\n \"ml-auto h-3 w-3 shrink-0 opacity-40\",\n isExpanded && \"rotate-180\",\n )}\n />\n )}\n </button>\n {isExpanded && isAgentCall && hasStreamText && (\n <div\n ref={streamRef}\n className=\"mt-1 rounded-md bg-muted/50 px-3 py-2 text-xs text-muted-foreground break-words max-h-48 overflow-y-auto agent-markdown prose prose-sm prose-invert max-w-none\"\n >\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n components={markdownComponents}\n >\n {agentStreamText}\n </ReactMarkdown>\n </div>\n )}\n {isExpanded && !isAgentCall && result !== undefined && (\n <div className=\"mt-1 rounded-md bg-muted/50 px-3 py-2 text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all max-h-48 overflow-y-auto\">\n {typeof result === \"string\"\n ? result\n : JSON.stringify(result, null, 2)}\n </div>\n )}\n </div>\n );\n}\n\nfunction ToolCallFallback({\n toolName,\n args,\n argsText,\n result,\n}: ToolCallMessagePartProps) {\n const chatRunning = React.useContext(ChatRunningContext);\n const isRunning = result === undefined && chatRunning;\n return (\n <ToolCallDisplay\n toolName={toolName}\n args={args as Record<string, unknown>}\n argsText={argsText}\n result={\n typeof result === \"string\"\n ? result\n : result !== undefined\n ? JSON.stringify(result)\n : undefined\n }\n isRunning={isRunning}\n />\n );\n}\n\n// ─── Reconnect Stream Message ───────────────────────────────────────────────\n// Renders the agent's in-progress response during reconnection (outside\n// assistant-ui's runtime). Uses the same visual styling as normal messages.\n\nfunction ReconnectStreamMessage({ content }: { content: ContentPart[] }) {\n const endRef = useRef<HTMLDivElement>(null);\n const chatRunning = React.useContext(ChatRunningContext);\n\n useEffect(() => {\n endRef.current?.scrollIntoView({ behavior: \"smooth\", block: \"end\" });\n }, [content]);\n\n return (\n <div className=\"flex justify-start\">\n <div className=\"max-w-[95%] text-sm leading-relaxed text-foreground space-y-1\">\n {content.map((part, i) => {\n if (part.type === \"text\") {\n return (\n <div\n key={`reconnect-text-${i}`}\n className=\"agent-markdown break-words\"\n >\n <ReactMarkdown\n remarkPlugins={[remarkGfm]}\n components={markdownComponents}\n >\n {part.text}\n </ReactMarkdown>\n </div>\n );\n }\n if (part.type === \"tool-call\") {\n return (\n <ToolCallDisplay\n key={`reconnect-tool-${i}`}\n toolName={part.toolName}\n argsText={part.argsText}\n args={part.args}\n result={part.result}\n isRunning={part.result === undefined && chatRunning}\n />\n );\n }\n return null;\n })}\n <div ref={endRef} />\n </div>\n </div>\n );\n}\n\n// ─── Message Components ─────────────────────────────────────────────────────\n\nconst mentionIconProps = {\n size: 14,\n className: \"shrink-0 text-muted-foreground\",\n};\n\nfunction MentionChipIcon({ icon }: { icon?: string }) {\n switch (icon) {\n case \"folder\":\n return <IconFolder {...mentionIconProps} />;\n case \"document\":\n return <IconFileText {...mentionIconProps} />;\n case \"form\":\n return <IconCheckbox {...mentionIconProps} />;\n case \"email\":\n return <IconMail {...mentionIconProps} />;\n case \"user\":\n return <IconUser {...mentionIconProps} />;\n case \"deck\":\n return <IconPresentation {...mentionIconProps} />;\n case \"agent\":\n return <IconMessageChatbot {...mentionIconProps} />;\n case \"file\":\n return <IconFile {...mentionIconProps} />;\n default:\n return <IconStack2 {...mentionIconProps} />;\n }\n}\n\n// Matches rich mention format: @[label|icon] or plain @word\nconst richMentionPattern = /@\\[([^\\]|]+)\\|([^\\]]+)\\]/g;\nconst plainMentionPattern = /((?:^|(?<=\\s))@(\\w+))/g;\n\nfunction UserMessageText({ text }: { text: string }) {\n // Strip injected <context>...</context> blocks before display\n const displayText = text\n .replace(/<context>[\\s\\S]*?<\\/context>\\n?/g, \"\")\n .trim();\n\n const parts: React.ReactNode[] = [];\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n let hasRichMentions = false;\n\n // First try rich mentions (@[label|icon])\n richMentionPattern.lastIndex = 0;\n while ((match = richMentionPattern.exec(displayText)) !== null) {\n hasRichMentions = true;\n const matchStart = match.index;\n if (matchStart > lastIndex) {\n parts.push(displayText.slice(lastIndex, matchStart));\n }\n const label = match[1];\n const icon = match[2];\n parts.push(\n <span\n key={matchStart}\n className=\"inline-flex items-center gap-1 rounded-md border border-input bg-muted/50 px-1.5 py-0.5 text-xs font-medium text-foreground align-middle mx-0.5 max-w-[200px] select-all\"\n data-mention-label={label}\n >\n <MentionChipIcon icon={icon} />\n <span className=\"truncate\">{label}</span>\n </span>,\n );\n lastIndex = matchStart + match[0].length;\n }\n\n if (hasRichMentions) {\n if (lastIndex < displayText.length) {\n parts.push(displayText.slice(lastIndex));\n }\n return <>{parts}</>;\n }\n\n // Fallback: plain @word mentions (for older messages)\n plainMentionPattern.lastIndex = 0;\n while ((match = plainMentionPattern.exec(displayText)) !== null) {\n const matchStart = match.index;\n if (matchStart > lastIndex) {\n parts.push(displayText.slice(lastIndex, matchStart));\n }\n const mentionName = match[2];\n parts.push(\n <span\n key={matchStart}\n className=\"inline-flex items-center gap-1 rounded-md border border-input bg-muted/50 px-1.5 py-0.5 text-xs font-medium text-foreground align-middle mx-0.5 select-all\"\n data-mention-label={mentionName}\n >\n @{mentionName}\n </span>,\n );\n lastIndex = matchStart + match[0].length;\n }\n\n if (lastIndex < displayText.length) {\n parts.push(displayText.slice(lastIndex));\n }\n\n return <>{parts.length > 0 ? parts : displayText}</>;\n}\n\nfunction UserMessageAttachments() {\n const messageRuntime = useMessageRuntime();\n const msg = messageRuntime.getState();\n // assistant-ui stores user attachments on msg.attachments (separate from content).\n // Each attachment has: { id, type, name, contentType?, content: MessagePart[] }.\n // Image adapters put a {type:\"image\", image:\"data:...\"} part in content; text\n // adapters put a {type:\"text\", text:\"<attachment>...\"} part. Fall back to a\n // file chip when there's no inline image.\n const attachments = (msg as { attachments?: readonly Attachment[] })\n .attachments;\n if (!attachments || attachments.length === 0) return null;\n\n return (\n <div className=\"flex flex-wrap justify-end gap-1.5 mb-1.5\">\n {attachments.map((att) => {\n const imagePart = att.content?.find(\n (p): p is { type: \"image\"; image: string } =>\n p.type === \"image\" && \"image\" in p && !!p.image,\n );\n if (imagePart) {\n return (\n <div\n key={att.id}\n className=\"h-16 w-16 overflow-hidden rounded-lg border border-border/70 bg-muted/50\"\n title={att.name}\n >\n <img\n src={imagePart.image}\n alt={att.name}\n className=\"h-full w-full object-cover\"\n />\n </div>\n );\n }\n return (\n <div\n key={att.id}\n className=\"flex items-center gap-1.5 rounded-lg border border-border/70 bg-muted/50 px-2 py-1.5 text-xs text-muted-foreground\"\n title={att.name}\n >\n <IconFile className=\"h-3.5 w-3.5 shrink-0\" />\n <span className=\"truncate max-w-[120px]\">{att.name || \"file\"}</span>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction UserMessage() {\n const [expanded, setExpanded] = useState(false);\n const [isExpandable, setIsExpandable] = useState(false);\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n const measure = () => {\n setIsExpandable(el.scrollHeight > 200);\n };\n\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div className=\"flex justify-end\" style={{ contentVisibility: \"auto\" }}>\n <div className=\"max-w-[85%]\">\n <UserMessageAttachments />\n <div\n className=\"relative rounded-lg bg-accent px-3 py-2 text-sm leading-relaxed text-foreground\"\n onCopy={(e) => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n const fragment = selection.getRangeAt(0).cloneContents();\n const mentions = fragment.querySelectorAll(\"[data-mention-label]\");\n if (mentions.length === 0) return;\n e.preventDefault();\n mentions.forEach((el) => {\n el.textContent = `@${el.getAttribute(\"data-mention-label\")}`;\n });\n const div = document.createElement(\"div\");\n div.appendChild(fragment);\n e.clipboardData.setData(\"text/plain\", div.textContent || \"\");\n }}\n >\n <div\n ref={contentRef}\n className={cn(\n \"whitespace-pre-wrap break-words\",\n !expanded && isExpandable && \"max-h-[200px] overflow-hidden\",\n )}\n >\n <MessagePrimitive.Parts\n components={{\n Text: UserMessageText,\n }}\n />\n </div>\n {!expanded && isExpandable && (\n <div className=\"pointer-events-none absolute inset-x-0 bottom-0 h-14 rounded-b-lg bg-gradient-to-t from-accent via-accent/90 to-transparent\" />\n )}\n </div>\n {isExpandable && (\n <button\n type=\"button\"\n onClick={() => setExpanded((prev) => !prev)}\n className=\"mt-1 inline-flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] font-medium text-muted-foreground hover:text-foreground\"\n >\n <IconChevronDown\n className={cn(\n \"h-3.5 w-3.5 transition-transform\",\n expanded && \"rotate-180\",\n )}\n />\n {expanded ? \"Collapse\" : \"Expand\"}\n </button>\n )}\n </div>\n </div>\n );\n}\n\nconst CheckpointContext = React.createContext<{\n apiUrl: string;\n devMode: boolean;\n threadId?: string;\n} | null>(null);\n\nconst MessageActionsContext = React.createContext<{\n onForkChat?: () => void;\n} | null>(null);\n\nfunction MessageActionsMenu({\n showRevert,\n onRevert,\n}: {\n showRevert?: boolean;\n onRevert?: () => void;\n} = {}) {\n const [open, setOpen] = useState(false);\n const [menuPos, setMenuPos] = useState<{ top: number; left: number } | null>(\n null,\n );\n const [copied, setCopied] = useState<string | null>(null);\n const messageRuntime = useMessageRuntime();\n const actionsCtx = React.useContext(MessageActionsContext);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleCopyMessage = useCallback(() => {\n const m = messageRuntime.getState();\n const text = m.content\n .filter((p) => p.type === \"text\")\n .map((p) => (p as { text: string }).text)\n .join(\"\\n\");\n navigator.clipboard.writeText(text);\n setCopied(\"message\");\n setTimeout(() => {\n setCopied(null);\n setOpen(false);\n }, 1000);\n }, [messageRuntime]);\n\n const handleCopyRequestId = useCallback(() => {\n const m = messageRuntime.getState();\n const runId = (m.metadata as any)?.runId || m.id || \"\";\n navigator.clipboard.writeText(runId);\n setCopied(\"id\");\n setTimeout(() => {\n setCopied(null);\n setOpen(false);\n }, 1000);\n }, [messageRuntime]);\n\n const handleForkChat = useCallback(() => {\n setOpen(false);\n actionsCtx?.onForkChat?.();\n }, [actionsCtx]);\n\n const handleRevert = useCallback(() => {\n setOpen(false);\n onRevert?.();\n }, [onRevert]);\n\n const handleToggle = useCallback(() => {\n if (!open && buttonRef.current) {\n const rect = buttonRef.current.getBoundingClientRect();\n setMenuPos({ top: rect.bottom + 4, left: rect.left });\n }\n setOpen((v) => !v);\n }, [open]);\n\n return (\n <div className=\"relative\">\n <button\n ref={buttonRef}\n onClick={handleToggle}\n className={cn(\n \"flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/70 hover:bg-accent hover:text-foreground\",\n open && \"bg-accent text-foreground\",\n )}\n >\n <IconDots className=\"h-3.5 w-3.5\" />\n </button>\n {open &&\n menuPos &&\n createPortal(\n <>\n <div\n className=\"fixed inset-0\"\n style={{ zIndex: 9998 }}\n onClick={() => setOpen(false)}\n />\n <div\n className=\"fixed w-44 rounded-md border border-border bg-popover py-1 shadow-lg\"\n style={{ top: menuPos.top, left: menuPos.left, zIndex: 9999 }}\n >\n {actionsCtx?.onForkChat && (\n <button\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent\"\n onClick={handleForkChat}\n >\n <IconGitFork className=\"h-3.5 w-3.5\" />\n Fork Chat\n </button>\n )}\n <button\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent\"\n onClick={handleCopyMessage}\n >\n {copied === \"message\" ? (\n <IconCheck className=\"h-3.5 w-3.5\" />\n ) : (\n <IconCopy className=\"h-3.5 w-3.5\" />\n )}\n {copied === \"message\" ? \"Copied!\" : \"Copy Message\"}\n </button>\n <button\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent\"\n onClick={handleCopyRequestId}\n >\n {copied === \"id\" ? (\n <IconCheck className=\"h-3.5 w-3.5\" />\n ) : (\n <IconId className=\"h-3.5 w-3.5\" />\n )}\n {copied === \"id\" ? \"Copied!\" : \"Copy Request ID\"}\n </button>\n {showRevert && (\n <button\n className=\"flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent\"\n onClick={handleRevert}\n >\n <IconArrowBackUp className=\"h-3.5 w-3.5\" />\n Revert to here\n </button>\n )}\n </div>\n </>,\n document.body,\n )}\n </div>\n );\n}\n\nfunction AssistantMessage() {\n const [restoreState, setRestoreState] = useState<\n \"idle\" | \"confirming\" | \"restoring\"\n >(\"idle\");\n const messageRuntime = useMessageRuntime();\n const thread = useThread();\n const msg = messageRuntime.getState();\n const isLast =\n thread.messages.length > 0 &&\n thread.messages[thread.messages.length - 1].id === msg.id;\n const isComplete = !isLast || !thread.isRunning;\n const cpCtx = React.useContext(CheckpointContext);\n\n const handleRestore = useCallback(async () => {\n if (restoreState === \"idle\") {\n setRestoreState(\"confirming\");\n return;\n }\n if (restoreState !== \"confirming\" || !cpCtx) return;\n setRestoreState(\"restoring\");\n try {\n const m = messageRuntime.getState();\n const runId = (m.metadata as any)?.runId;\n if (!runId) {\n setRestoreState(\"idle\");\n return;\n }\n const tid = cpCtx.threadId || \"\";\n const res = await fetch(\n `${cpCtx.apiUrl}/checkpoints?threadId=${encodeURIComponent(tid)}`,\n );\n const checkpoints: any[] = res.ok ? await res.json() : [];\n const checkpoint = checkpoints.find((cp: any) => cp.runId === runId);\n if (!checkpoint) {\n setRestoreState(\"idle\");\n return;\n }\n const restoreRes = await fetch(`${cpCtx.apiUrl}/checkpoints/restore`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ checkpointId: checkpoint.id }),\n });\n if (restoreRes.ok) {\n window.location.reload();\n } else {\n setRestoreState(\"idle\");\n }\n } catch {\n setRestoreState(\"idle\");\n }\n }, [restoreState, cpCtx, messageRuntime]);\n\n const cancelRestore = useCallback(() => {\n setRestoreState(\"idle\");\n }, []);\n\n const showRestore = cpCtx?.devMode && isComplete && !isLast;\n\n return (\n <div\n className=\"group relative\"\n style={{ contentVisibility: isComplete ? \"auto\" : \"visible\" }}\n >\n <div className=\"max-w-[95%] text-sm leading-relaxed text-foreground\">\n <MessagePrimitive.Parts\n components={{\n Text: MarkdownText,\n tools: {\n Fallback: ToolCallFallback,\n },\n }}\n />\n </div>\n {isComplete && (\n <div className=\"mt-1 flex items-center justify-between\">\n <MessageActionsMenu\n showRevert={showRestore && restoreState === \"idle\"}\n onRevert={handleRestore}\n />\n {showRestore && restoreState === \"confirming\" ? (\n <div className=\"flex items-center gap-1 text-xs\">\n <button\n onClick={handleRestore}\n className=\"rounded-md bg-destructive px-1.5 py-0.5 text-destructive-foreground hover:bg-destructive/90\"\n >\n Restore to here?\n </button>\n <button\n onClick={cancelRestore}\n className=\"rounded-md px-1.5 py-0.5 text-muted-foreground hover:bg-accent\"\n >\n Cancel\n </button>\n </div>\n ) : showRestore && restoreState === \"restoring\" ? (\n <span className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <IconLoader2 className=\"h-3 w-3 animate-spin\" />\n Restoring...\n </span>\n ) : (\n <React.Suspense fallback={null}>\n <ThumbsFeedbackLazy\n threadId={cpCtx?.threadId ?? \"\"}\n runId={\n ((messageRuntime.getState().metadata as any)?.runId as\n | string\n | undefined) ?? \"\"\n }\n messageSeq={thread.messages.findIndex((m) => m.id === msg.id)}\n />\n </React.Suspense>\n )}\n </div>\n )}\n </div>\n );\n}\n\n// ─── Thinking Indicator ─────────────────────────────────────────────────────\n\nfunction ThinkingIndicator({ label = \"Thinking\" }: { label?: string } = {}) {\n const [dots, setDots] = useState(0);\n useEffect(() => {\n const interval = setInterval(() => {\n setDots((d) => (d + 1) % 4);\n }, 400);\n return () => clearInterval(interval);\n }, []);\n return (\n <div className=\"flex items-center text-muted-foreground\">\n <span className=\"text-xs\">\n {label}\n {\".\".repeat(dots)}\n </span>\n </div>\n );\n}\n\n// ─── Builder.io Connect CTA (shared by setup + usage-limit cards) ───────────\n//\n// Renders a single row with left-aligned copy and a right-aligned action.\n// Click opens the Builder CLI-auth popup via the shared\n// `useBuilderConnectFlow` hook (which owns the synchronous window.open,\n// the 2s status poll, and the focus-refresh). On success we reload so the\n// enclosing card re-evaluates `missingApiKey` against the fresh credentials.\n//\n// Desktop note: when this component runs inside the Electron shell, the\n// window.open call is intercepted by the main process's webview popup handler,\n// which opens the flow in an Electron BrowserWindow that shares the webview's\n// session. See packages/desktop-app/src/main/index.ts.\n\nfunction BuilderConnectCta({\n variant = \"primary\",\n}: {\n variant?: \"primary\" | \"compact\";\n}) {\n const { configured, orgName, connecting, error, start } =\n useBuilderConnectFlow({\n onConnected: () => {\n // Reload so the enclosing card re-evaluates `missingApiKey`.\n window.setTimeout(() => window.location.reload(), 300);\n },\n });\n\n const containerClass =\n variant === \"compact\"\n ? \"rounded-md border border-border px-3 py-2.5\"\n : \"flex items-center gap-3 rounded-md border border-border px-3 py-3\";\n\n if (configured) {\n return (\n <div className={containerClass}>\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-xs font-medium text-foreground\">Builder.io</div>\n <p className=\"text-[11px] text-muted-foreground mt-0.5\">\n {orgName ? `Connected — ${orgName}` : \"Connected\"}\n </p>\n </div>\n <span className=\"ml-auto inline-flex items-center gap-1 shrink-0 rounded-md bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-500\">\n <IconCheck size={10} />\n Connected\n </span>\n </div>\n );\n }\n\n return (\n <div className={containerClass}>\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-xs font-medium text-foreground\">\n Connect Builder.io\n </div>\n <p className=\"text-[11px] text-muted-foreground mt-0.5 max-w-[220px]\">\n Managed LLM, hosting, and more — no API key needed\n </p>\n {error && <p className=\"mt-1 text-[10px] text-destructive\">{error}</p>}\n </div>\n <button\n type=\"button\"\n onClick={start}\n disabled={connecting}\n className=\"ml-auto inline-flex items-center gap-1 shrink-0 rounded-md bg-foreground px-3 py-1.5 text-[11px] font-medium no-underline text-background hover:opacity-90 disabled:opacity-60 disabled:cursor-wait\"\n aria-busy={connecting}\n >\n {connecting ? (\n <>\n <IconLoader2 size={10} className=\"animate-spin\" />\n Waiting…\n </>\n ) : (\n <>\n Connect\n <IconExternalLink size={10} />\n </>\n )}\n </button>\n </div>\n );\n}\n\n// ─── API Key Setup Card ─────────────────────────────────────────────────────\n\nfunction ApiKeySetupCard({ apiUrl }: { apiUrl: string }) {\n const [apiKey, setApiKey] = useState(\"\");\n const [saving, setSaving] = useState(false);\n const [saved, setSaved] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const handleSave = async () => {\n if (!apiKey.trim()) return;\n setSaving(true);\n setError(null);\n try {\n const res = await fetch(`${apiUrl}/save-key`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ key: apiKey.trim(), provider: \"anthropic\" }),\n });\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new Error(data.error || \"Failed to save\");\n }\n setSaved(true);\n setTimeout(() => window.location.reload(), 1000);\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Failed to save\");\n } finally {\n setSaving(false);\n }\n };\n\n if (saved) {\n return (\n <div className=\"mx-4 my-6 rounded-lg border border-emerald-500/30 bg-emerald-500/5 p-4\">\n <div className=\"flex items-center gap-2 text-sm text-emerald-400\">\n <IconCheck className=\"h-4 w-4\" />\n API key saved. Reloading...\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"mx-4 my-6 rounded-lg border border-border bg-card p-5\">\n <div className=\"flex items-center gap-3 mb-3\">\n <div className=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted\">\n <IconMessage className=\"h-4.5 w-4.5 text-muted-foreground\" />\n </div>\n <h3 className=\"text-sm font-medium text-foreground\">Connect your AI</h3>\n </div>\n\n <div className=\"space-y-3\">\n <BuilderConnectCta />\n\n <div className=\"relative flex items-center\">\n <div className=\"flex-grow border-t border-border\" />\n <span className=\"mx-2 text-[10px] uppercase tracking-wider text-muted-foreground/60\">\n or\n </span>\n <div className=\"flex-grow border-t border-border\" />\n </div>\n\n <input\n type=\"password\"\n value={apiKey}\n onChange={(e) => {\n setApiKey(e.target.value);\n setError(null);\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") handleSave();\n }}\n placeholder=\"sk-ant-...\"\n className=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring\"\n autoComplete=\"off\"\n />\n\n {error && <p className=\"text-xs text-destructive\">{error}</p>}\n\n {apiKey.trim() && (\n <button\n onClick={handleSave}\n disabled={saving}\n className=\"w-full rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed\"\n >\n {saving ? \"Saving...\" : \"Save API key\"}\n </button>\n )}\n\n <p className=\"text-[10px] text-muted-foreground/60 text-center\">\n <a\n href=\"https://console.anthropic.com/settings/keys\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"underline hover:text-foreground/80\"\n >\n Get an Anthropic key\n </a>\n </p>\n </div>\n </div>\n );\n}\n\n// ─── Main Component ─────────────────────────────────────────────────────────\n\nexport interface AssistantChatHandle {\n /** Programmatically send a message into this chat */\n sendMessage(text: string): void;\n /** Queue a message to send after the current run finishes */\n queueMessage(text: string): void;\n /** Whether the chat is currently running */\n isRunning(): boolean;\n /** Focus the composer input */\n focusComposer(): void;\n}\n\nexport interface AssistantChatProps {\n /** API endpoint URL. Default: \"/_agent-native/agent-chat\" */\n apiUrl?: string;\n /** Stable tab identifier passed to the adapter for event correlation */\n tabId?: string;\n /** Thread ID for SQL-backed persistence. When set, messages are loaded from and saved to the server. */\n threadId?: string;\n /** Placeholder text for empty state */\n emptyStateText?: string;\n /** Suggestion prompts shown when no messages */\n suggestions?: string[];\n /** Whether to show the header bar. Default: true */\n showHeader?: boolean;\n /** CSS class for the outer container */\n className?: string;\n /** Callback when user clicks \"Use CLI\" button */\n onSwitchToCli?: () => void;\n /** Callback when message count changes */\n onMessageCountChange?: (count: number) => void;\n /** Callback to save thread data to the server (provided by useChatThreads) */\n onSaveThread?: (\n threadId: string,\n data: {\n threadData: string;\n title: string;\n preview: string;\n messageCount: number;\n },\n ) => void;\n /** Callback to generate a title from the first user message */\n onGenerateTitle?: (threadId: string, message: string) => void;\n /** Optional content rendered just above the composer input */\n composerSlot?: React.ReactNode;\n /** When true, skip the restore skeleton (used for freshly created threads with no messages) */\n isNewThread?: boolean;\n /** Called when a slash command (e.g. /clear, /help) is executed */\n onSlashCommand?: (command: string) => void;\n /** Current execution mode (build/plan) */\n execMode?: \"build\" | \"plan\";\n /** Callback to change execution mode */\n onExecModeChange?: (mode: \"build\" | \"plan\") => void;\n /** Selected model override for this conversation (undefined = use server default) */\n selectedModel?: string;\n /** Default model from server config (shown in picker when no override is set) */\n defaultModel?: string;\n /** Selected engine override for this conversation */\n selectedEngine?: string;\n /** Available engine/model list for the model picker */\n availableModels?: Array<{\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n }>;\n /** Callback when user picks a model from the picker */\n onModelChange?: (model: string, engine: string) => void;\n /** Callback when user clicks \"Fork Chat\" in the message actions menu */\n onForkChat?: () => void;\n}\n\nexport const CHAT_STORAGE_PREFIX = \"agent-chat:\";\n\n/** Remove persisted chat for a given tabId (or \"default\"). */\nexport function clearChatStorage(tabId?: string) {\n try {\n sessionStorage.removeItem(`${CHAT_STORAGE_PREFIX}${tabId || \"default\"}`);\n } catch {}\n}\n\n/**\n * Ensure all messages in a thread repository have required fields.\n * assistant-ui accesses `message.metadata.submittedFeedback` and\n * `lastMessage.status.type` without null-checking, so server-constructed\n * messages missing these fields crash.\n */\nfunction ensureMessageMetadata(repo: any): any {\n if (!repo?.messages || !Array.isArray(repo.messages)) return repo;\n for (const entry of repo.messages) {\n // Handle both wrapped ({ message: { ... } }) and flat ({ role, ... }) formats\n const msg = entry?.message ?? entry;\n if (!msg) continue;\n if (!msg.metadata) {\n msg.metadata = {};\n }\n if (msg.role === \"assistant\" && !msg.status) {\n msg.status = { type: \"complete\", reason: \"stop\" };\n }\n }\n return repo;\n}\n\n// Re-export for backwards compatibility\nimport { extractThreadMeta } from \"../agent/thread-data-builder.js\";\nexport { extractThreadMeta };\n\nconst AssistantChatInner = forwardRef<\n AssistantChatHandle,\n AssistantChatProps & { apiUrl: string }\n>(function AssistantChatInner(\n {\n emptyStateText,\n suggestions,\n showHeader = true,\n onSwitchToCli,\n className,\n apiUrl,\n tabId,\n threadId,\n onMessageCountChange,\n onSaveThread,\n onGenerateTitle,\n composerSlot,\n isNewThread,\n onSlashCommand,\n execMode,\n onExecModeChange,\n selectedModel,\n defaultModel,\n selectedEngine,\n availableModels,\n onModelChange,\n onForkChat,\n },\n ref,\n) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const thread = useThread();\n const threadRuntime = useThreadRuntime();\n const isRuntimeRunning = thread.isRunning;\n const messages = thread.messages;\n const [missingApiKey, setMissingApiKey] = useState(false);\n const [authError, setAuthError] = useState<{\n sessionExpired?: boolean;\n } | null>(null);\n const [queuedMessages, setQueuedMessages] = useState<\n Array<{\n id: string;\n text: string;\n images?: string[];\n references?: Reference[];\n }>\n >([]);\n // Tracks the JSON of the last queue we successfully persisted so the\n // debounced save effect can skip no-op writes (e.g. restore-from-server\n // on mount, or queue state that hasn't actually changed).\n const lastPersistedQueueRef = useRef<string>(\"[]\");\n const [showContinue, setShowContinue] = useState(false);\n const [isReconnecting, setIsReconnecting] = useState(false);\n const [reconnectContent, setReconnectContent] = useState<ContentPart[]>([]);\n // When stop is clicked during reconnect, keep content visible (don't wipe it)\n const [reconnectFrozen, setReconnectFrozen] = useState(false);\n const reconnectRunIdRef = useRef<string | null>(null);\n const reconnectAbortRef = useRef<AbortController | null>(null);\n // Nuclear stop: user clicked stop. Clears the stop button/indicator AND\n // lets new submissions go through immediately — prevents the \"stuck\n // queueing forever\" state where isReconnecting or isRuntimeRunning gets\n // wedged (e.g. after a tab refresh + stop during reconnect).\n const [forceStopped, setForceStopped] = useState(false);\n // Real running state — drives submission/queue gating. Treat reconnecting\n // to an active run the same as running, UNLESS the user has explicitly\n // clicked stop (forceStopped).\n const isRunning = !forceStopped && (isRuntimeRunning || isReconnecting);\n // UI-only running state — drives the stop button and thinking indicator.\n const showRunningInUI = isRunning;\n const wasRunningRef = useRef(false);\n const tiptapRef = useRef<TiptapComposerHandle>(null);\n\n // ─── Chat persistence ──────────────────────────────────────────────\n const hasRestoredRef = useRef(false);\n const [isRestoring, setIsRestoring] = useState(!!threadId && !isNewThread);\n const onSaveThreadRef = useRef(onSaveThread);\n onSaveThreadRef.current = onSaveThread;\n const onGenerateTitleRef = useRef(onGenerateTitle);\n onGenerateTitleRef.current = onGenerateTitle;\n const titleGeneratedRef = useRef(false);\n\n // Restore messages from server on mount (when threadId is set)\n useEffect(() => {\n if (hasRestoredRef.current) return;\n hasRestoredRef.current = true;\n\n if (threadId) {\n // Load from server\n (async () => {\n try {\n const res = await fetch(\n `${apiUrl}/threads/${encodeURIComponent(threadId)}`,\n );\n if (!res.ok) return;\n const data = await res.json();\n if (data.threadData) {\n const repo =\n typeof data.threadData === \"string\"\n ? JSON.parse(data.threadData)\n : data.threadData;\n if (repo?.messages?.length > 0) {\n titleGeneratedRef.current = true; // Don't re-generate for restored threads\n threadRuntime.import(ensureMessageMetadata(repo));\n }\n // Restore user-queued messages that were persisted before reload.\n if (Array.isArray(repo?.queuedMessages)) {\n setQueuedMessages(repo.queuedMessages);\n // Mark as restored so the debounced save effect doesn't write\n // the same data back to the server on mount.\n lastPersistedQueueRef.current = JSON.stringify(\n repo.queuedMessages,\n );\n }\n }\n // Also skip title generation if thread already has a title\n if (data.title) {\n titleGeneratedRef.current = true;\n }\n\n // Check if there's an active run for this thread (e.g. after hot reload)\n try {\n const runRes = await fetch(\n `${apiUrl}/runs/active?threadId=${encodeURIComponent(threadId)}`,\n );\n if (runRes.ok) {\n const runInfo = await runRes.json();\n\n // Defense in depth: if the server says status=\"running\" but the\n // heartbeat is stale (producer died before the server-side reap\n // sweep noticed), treat it as dead. 5s tolerates normal jitter\n // around the 1.5s heartbeat without false positives.\n const heartbeatAt =\n typeof runInfo.heartbeatAt === \"number\"\n ? runInfo.heartbeatAt\n : null;\n const looksStale =\n runInfo.status === \"running\" &&\n heartbeatAt != null &&\n Date.now() - heartbeatAt > 5000;\n\n // If the run already completed or looks stale, just re-fetch\n // thread data (don't enter \"Thinking.\" reconnection mode).\n if (runInfo.status !== \"running\" || looksStale) {\n try {\n const refreshRes = await fetch(\n `${apiUrl}/threads/${encodeURIComponent(threadId)}`,\n );\n if (refreshRes.ok) {\n const refreshData = await refreshRes.json();\n if (refreshData.threadData) {\n const repo =\n typeof refreshData.threadData === \"string\"\n ? JSON.parse(refreshData.threadData)\n : refreshData.threadData;\n if (repo?.messages?.length > 0) {\n threadRuntime.import(ensureMessageMetadata(repo));\n }\n if (Array.isArray(repo?.queuedMessages)) {\n setQueuedMessages(repo.queuedMessages);\n lastPersistedQueueRef.current = JSON.stringify(\n repo.queuedMessages,\n );\n }\n }\n }\n } catch {}\n // Skip reconnection entirely\n } else {\n // Agent is still running — subscribe to live SSE stream\n reconnectRunIdRef.current = runInfo.runId;\n setIsReconnecting(true);\n setReconnectContent([]);\n // Signal tab running indicator\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: { isRunning: true, tabId: tabId || threadId },\n }),\n );\n\n // Create AbortController before the async call so stop button\n // can abort it even if clicked before the function body runs.\n const abortCtrl = new AbortController();\n reconnectAbortRef.current = abortCtrl;\n\n // Watchdog: poll /runs/active every 1s to detect when the run\n // is no longer running server-side, or the heartbeat has gone\n // stale (producer died). Aborts the SSE fetch so we fall\n // through to thread refresh instead of showing \"Thinking...\"\n // forever.\n const watchdog = setInterval(async () => {\n try {\n const res = await fetch(\n `${apiUrl}/runs/active?threadId=${encodeURIComponent(threadId)}`,\n );\n if (!res.ok) {\n abortCtrl.abort();\n clearInterval(watchdog);\n return;\n }\n const info = await res.json();\n const hb =\n typeof info.heartbeatAt === \"number\"\n ? info.heartbeatAt\n : null;\n const stale =\n info.status === \"running\" &&\n hb != null &&\n Date.now() - hb > 5000;\n if (info.status !== \"running\" || stale) {\n abortCtrl.abort();\n clearInterval(watchdog);\n }\n } catch {\n // Network blip — keep polling\n }\n }, 1000);\n\n // Hard cap: no single reconnect should wedge the UI for\n // more than 20s. With the 1s watchdog + stale-heartbeat\n // detection + startup reap, this only triggers in truly\n // pathological cases. Keeps \"Reconnecting…\" from feeling\n // infinite.\n const maxReconnectTimer = setTimeout(() => {\n abortCtrl.abort();\n clearInterval(watchdog);\n }, 20_000);\n\n const streamReconnect = async () => {\n try {\n const sseRes = await fetch(\n `${apiUrl}/runs/${encodeURIComponent(runInfo.runId)}/events?after=0`,\n { signal: abortCtrl.signal },\n );\n if (sseRes.ok && sseRes.body) {\n const content: ContentPart[] = [];\n const toolCallCounter = { value: 0 };\n\n // Throttle React state updates via requestAnimationFrame\n let rafPending = false;\n let latestSnapshot: ContentPart[] = [];\n const scheduleUpdate = (snapshot: ContentPart[]) => {\n latestSnapshot = snapshot;\n if (!rafPending) {\n rafPending = true;\n requestAnimationFrame(() => {\n rafPending = false;\n setReconnectContent(latestSnapshot);\n });\n }\n };\n\n await readSSEStreamRaw(\n sseRes.body,\n content,\n toolCallCounter,\n tabId,\n scheduleUpdate,\n );\n\n // Final update with complete content\n setReconnectContent([...content]);\n }\n } catch {\n // Stream error or abort — fall through to re-fetch\n } finally {\n clearInterval(watchdog);\n clearTimeout(maxReconnectTimer);\n }\n\n // Poll for thread data — server's updateThreadData may not have\n // committed yet when the SSE `done` event fires, so retry until\n // an assistant message appears (up to ~5 s) before clearing.\n setReconnectFrozen(true);\n let loaded = false;\n for (let attempt = 0; attempt < 10; attempt++) {\n await new Promise((r) => setTimeout(r, 500));\n // If the stop button fired mid-poll, bail out\n if (!reconnectRunIdRef.current) break;\n try {\n const refreshRes = await fetch(\n `${apiUrl}/threads/${encodeURIComponent(threadId)}`,\n );\n if (refreshRes.ok) {\n const refreshData = await refreshRes.json();\n if (refreshData.threadData) {\n const repo =\n typeof refreshData.threadData === \"string\"\n ? JSON.parse(refreshData.threadData)\n : refreshData.threadData;\n const hasAssistant = repo?.messages?.some(\n (m: {\n message?: { role?: string };\n role?: string;\n }) => (m.message?.role ?? m.role) === \"assistant\",\n );\n if (hasAssistant) {\n threadRuntime.import(ensureMessageMetadata(repo));\n setReconnectContent([]);\n setReconnectFrozen(false);\n loaded = true;\n break;\n }\n }\n }\n } catch {}\n }\n // Only clean up if the stop button hasn't already done it\n if (reconnectRunIdRef.current) {\n reconnectAbortRef.current = null;\n // If loaded=true, reconnectContent already cleared above.\n // If loaded=false (timeout), keep content frozen so user sees what happened.\n setIsReconnecting(false);\n reconnectRunIdRef.current = null;\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: { isRunning: false, tabId: tabId || threadId },\n }),\n );\n }\n };\n streamReconnect();\n } // end else (running)\n }\n } catch {\n // No active run — nothing to reconnect to\n }\n } catch {\n // Start fresh\n } finally {\n setIsRestoring(false);\n }\n })();\n } else {\n // Legacy: restore from sessionStorage\n const storageKey = `${CHAT_STORAGE_PREFIX}${tabId || \"default\"}`;\n try {\n const saved = sessionStorage.getItem(storageKey);\n if (saved) {\n const repo = JSON.parse(saved);\n if (repo?.messages?.length > 0) {\n threadRuntime.import(ensureMessageMetadata(repo));\n }\n }\n } catch {}\n setIsRestoring(false);\n }\n }, [threadId, tabId, apiUrl, threadRuntime]);\n\n // Generate a title when the first user message is sent\n useEffect(() => {\n if (!hasRestoredRef.current) return;\n if (titleGeneratedRef.current) return;\n if (messages.length === 0) return;\n\n const firstUserMsg = messages.find((m) => m.role === \"user\");\n if (!firstUserMsg) return;\n\n // Extract text from the first user message\n const text =\n \"content\" in firstUserMsg\n ? Array.isArray(firstUserMsg.content)\n ? firstUserMsg.content\n .filter((p: any) => p.type === \"text\")\n .map((p: any) => p.text)\n .join(\" \")\n : typeof firstUserMsg.content === \"string\"\n ? firstUserMsg.content\n : \"\"\n : \"\";\n\n if (!text.trim()) return;\n titleGeneratedRef.current = true;\n if (threadId) {\n onGenerateTitleRef.current?.(threadId, text.trim());\n }\n }, [messages, threadId]);\n\n // Periodically save thread data while the agent is running so refreshes\n // don't lose messages. Saves every 5 seconds while running.\n const savedTitleRef = useRef(\"\");\n const lastSaveTimeRef = useRef(0);\n useEffect(() => {\n if (!hasRestoredRef.current) return;\n if (!isRunning) return;\n if (messages.length === 0) return;\n if (!threadId || !onSaveThreadRef.current) return;\n\n const now = Date.now();\n const timeSinceLastSave = now - lastSaveTimeRef.current;\n if (timeSinceLastSave < 5000) return;\n\n const repo = threadRuntime.export();\n const { title, preview } = extractThreadMeta(repo);\n if (!title) return;\n\n lastSaveTimeRef.current = now;\n savedTitleRef.current = title;\n onSaveThreadRef.current(threadId, {\n threadData: JSON.stringify(repo),\n title,\n preview,\n messageCount: messages.length,\n });\n }, [messages, isRunning, threadId, threadRuntime]);\n\n // Persist full thread data after each completed response\n useEffect(() => {\n if (!hasRestoredRef.current) return;\n if (isRunning) return;\n if (messages.length === 0) return;\n\n const repo = threadRuntime.export();\n\n if (threadId && onSaveThreadRef.current) {\n // Save to server via the hook callback\n const { title, preview } = extractThreadMeta(repo);\n savedTitleRef.current = title;\n onSaveThreadRef.current(threadId, {\n threadData: JSON.stringify(repo),\n title,\n preview,\n messageCount: messages.length,\n });\n } else {\n // Legacy: save to sessionStorage\n const storageKey = `${CHAT_STORAGE_PREFIX}${tabId || \"default\"}`;\n try {\n sessionStorage.setItem(storageKey, JSON.stringify(repo));\n } catch {}\n }\n }, [messages, isRunning, threadId, tabId, threadRuntime]);\n\n useEffect(() => {\n onMessageCountChange?.(messages.length);\n }, [messages.length, onMessageCountChange]);\n\n // Persist queued messages to the server so they survive reloads. Debounced\n // to 300ms so typing-and-queuing-rapidly doesn't hammer the endpoint.\n // Stores them in thread_data.queuedMessages via POST /threads/:id/queued.\n useEffect(() => {\n if (!threadId) return;\n if (!hasRestoredRef.current) return;\n const serialized = JSON.stringify(queuedMessages);\n if (serialized === lastPersistedQueueRef.current) return;\n const timer = setTimeout(() => {\n (async () => {\n try {\n const res = await fetch(\n `${apiUrl}/threads/${encodeURIComponent(threadId)}/queued`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ queuedMessages }),\n },\n );\n if (res.ok) {\n lastPersistedQueueRef.current = serialized;\n }\n } catch {\n // Best-effort — next queue change will retry.\n }\n })();\n }, 300);\n return () => clearTimeout(timer);\n }, [queuedMessages, threadId, apiUrl]);\n\n // Listen for missing API key events from the adapter\n useEffect(() => {\n const handler = () => setMissingApiKey(true);\n window.addEventListener(\"agent-chat:missing-api-key\", handler);\n return () =>\n window.removeEventListener(\"agent-chat:missing-api-key\", handler);\n }, []);\n\n // Check on mount and whenever SettingsPanel dispatches\n // `agent-engine:configured-changed` so the gate flips live without reload.\n useEffect(() => {\n let cancelled = false;\n const check = async () => {\n const [envKeys, builderStatus, engineStatus] = await Promise.all([\n fetch(agentNativePath(\"/_agent-native/env-status\"))\n .then((r) => (r.ok ? r.json() : null))\n .catch(() => null),\n fetch(agentNativePath(\"/_agent-native/builder/status\"))\n .then((r) => (r.ok ? r.json() : null))\n .catch(() => null),\n fetch(agentNativePath(\"/_agent-native/agent-engine/status\"))\n .then((r) => (r.ok ? r.json() : null))\n .catch(() => null),\n ]);\n if (cancelled) return;\n // All three status endpoints failed — avoid flashing the gate on a\n // transient network error.\n if (envKeys == null && builderStatus == null && engineStatus == null) {\n return;\n }\n const keys = (envKeys ?? []) as Array<{\n key: string;\n configured: boolean;\n }>;\n const llmKeys = keys.filter((k) => PROVIDER_ENV_VAR_SET.has(k.key));\n const anyConfigured =\n llmKeys.some((k) => k.configured) ||\n builderStatus?.configured === true ||\n engineStatus?.configured === true;\n setMissingApiKey(!anyConfigured);\n };\n check();\n window.addEventListener(\"agent-engine:configured-changed\", check);\n return () => {\n cancelled = true;\n window.removeEventListener(\"agent-engine:configured-changed\", check);\n };\n }, []);\n\n // Listen for auth error events from the adapter\n useEffect(() => {\n const handler = (e: Event) => {\n const detail = (e as CustomEvent).detail;\n setAuthError({ sessionExpired: detail?.reason === \"session-expired\" });\n };\n window.addEventListener(\"agent-chat:auth-error\", handler);\n return () => window.removeEventListener(\"agent-chat:auth-error\", handler);\n }, []);\n\n // Listen for loop-limit events from the adapter\n useEffect(() => {\n const handler = (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!tabId || detail?.tabId === tabId) {\n setShowContinue(true);\n }\n };\n window.addEventListener(\"agent-chat:loop-limit\", handler);\n return () => window.removeEventListener(\"agent-chat:loop-limit\", handler);\n }, [tabId]);\n\n // Auto-dequeue: when agent finishes running, send the next queued message\n useEffect(() => {\n if (wasRunningRef.current && !isRunning && queuedMessages.length > 0) {\n const [next, ...rest] = queuedMessages;\n setQueuedMessages(rest);\n // Small delay to let the runtime settle after completion\n setTimeout(() => {\n const content: Array<\n { type: \"text\"; text: string } | { type: \"image\"; image: string }\n > = [{ type: \"text\", text: next.text }];\n if (next.images) {\n for (const img of next.images) {\n content.push({ type: \"image\", image: img });\n }\n }\n threadRuntime.append({\n role: \"user\",\n content,\n ...(next.references && next.references.length > 0\n ? { runConfig: { custom: { references: next.references } } }\n : {}),\n });\n }, 100);\n }\n wasRunningRef.current = isRunning;\n }, [isRunning, queuedMessages, threadRuntime]);\n\n // Clear frozen reconnect content + forceStopped only on the false→true\n // transition of isRuntimeRunning (i.e. a NEW run is actually starting).\n // Reacting to \"isRuntimeRunning is currently true\" would clear the\n // nuclear-stop flag immediately after the user clicks stop, since\n // cancellation is async and isRuntimeRunning is still true at that moment.\n const prevIsRuntimeRunningRef = useRef(isRuntimeRunning);\n useEffect(() => {\n const wasRunning = prevIsRuntimeRunningRef.current;\n prevIsRuntimeRunningRef.current = isRuntimeRunning;\n if (isRuntimeRunning && !wasRunning) {\n if (reconnectFrozen) {\n setReconnectFrozen(false);\n setReconnectContent([]);\n }\n if (forceStopped) {\n setForceStopped(false);\n }\n }\n }, [isRuntimeRunning, reconnectFrozen, forceStopped]);\n\n // Same transition guard for isReconnecting: only clear forceStopped on\n // the false→true edge (a new reconnect starting on page load).\n const prevIsReconnectingRef = useRef(isReconnecting);\n useEffect(() => {\n const wasReconnecting = prevIsReconnectingRef.current;\n prevIsReconnectingRef.current = isReconnecting;\n if (isReconnecting && !wasReconnecting && forceStopped) {\n setForceStopped(false);\n }\n }, [isReconnecting, forceStopped]);\n\n const addToQueue = useCallback(\n (text: string, images?: string[], references?: Reference[]) => {\n setShowContinue(false);\n // Selection context attached via Cmd+I is one-shot — clear it as soon\n // as the user actually sends a message so it can't be re-used.\n clearPendingSelection();\n if (isRunning) {\n setQueuedMessages((prev) => [\n ...prev,\n {\n id:\n typeof crypto !== \"undefined\" && crypto.randomUUID\n ? crypto.randomUUID()\n : `q-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n text,\n images,\n references,\n },\n ]);\n } else {\n const content: Array<\n { type: \"text\"; text: string } | { type: \"image\"; image: string }\n > = [{ type: \"text\", text }];\n if (images) {\n for (const img of images) {\n content.push({ type: \"image\", image: img });\n }\n }\n threadRuntime.append({ role: \"user\", content });\n }\n },\n [isRunning, threadRuntime],\n );\n\n // Expose imperative handle\n useImperativeHandle(\n ref,\n () => ({\n sendMessage(text: string) {\n addToQueue(text);\n },\n queueMessage(text: string) {\n addToQueue(text);\n },\n isRunning() {\n return thread.isRunning;\n },\n focusComposer() {\n tiptapRef.current?.focus();\n },\n }),\n [addToQueue, thread.isRunning],\n );\n\n // Track whether user has scrolled away from bottom\n const isNearBottomRef = useRef(true);\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) return;\n function onScroll() {\n if (!el) return;\n const threshold = 40;\n const nearBottom =\n el.scrollHeight - el.scrollTop - el.clientHeight < threshold;\n isNearBottomRef.current = nearBottom;\n setShowScrollToBottom(!nearBottom && messages.length > 0);\n }\n el.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => el.removeEventListener(\"scroll\", onScroll);\n }, [messages.length]);\n\n const scrollToBottom = useCallback(() => {\n const el = scrollRef.current;\n if (el) {\n el.scrollTop = el.scrollHeight;\n isNearBottomRef.current = true;\n setShowScrollToBottom(false);\n }\n }, []);\n\n // Scroll to bottom when a restored thread finishes loading\n const wasRestoringRef = useRef(isRestoring);\n useEffect(() => {\n if (wasRestoringRef.current && !isRestoring) {\n requestAnimationFrame(() => {\n scrollToBottom();\n });\n }\n wasRestoringRef.current = isRestoring;\n }, [isRestoring, scrollToBottom]);\n\n // Auto-scroll on new messages or queued messages (only if near bottom)\n useEffect(() => {\n const el = scrollRef.current;\n if (el && isNearBottomRef.current) {\n el.scrollTop = el.scrollHeight;\n }\n }, [messages, queuedMessages]);\n\n // Continuous auto-scroll while streaming (only if near bottom)\n useEffect(() => {\n if (!isRunning) return;\n const el = scrollRef.current;\n if (!el) return;\n const interval = setInterval(() => {\n if (isNearBottomRef.current) {\n el.scrollTop = el.scrollHeight;\n }\n }, 100);\n return () => clearInterval(interval);\n }, [isRunning]);\n\n const { isDevMode: cpDevMode } = useDevMode(apiUrl);\n const checkpointCtx = useMemo(\n () => ({ apiUrl, devMode: cpDevMode, threadId }),\n [apiUrl, cpDevMode, threadId],\n );\n const messageActionsCtx = useMemo(() => ({ onForkChat }), [onForkChat]);\n\n return (\n <CheckpointContext.Provider value={checkpointCtx}>\n <MessageActionsContext.Provider value={messageActionsCtx}>\n <ChatRunningContext.Provider value={isRunning}>\n <div\n className={cn(\n \"flex flex-1 flex-col h-full min-h-0 text-foreground\",\n className,\n )}\n >\n {showHeader && (\n <div className=\"flex h-11 shrink-0 items-center justify-between border-b border-border px-4\">\n <span className=\"text-[13px] font-medium text-muted-foreground\">\n Agent\n </span>\n <div className=\"flex items-center gap-1\">\n {onSwitchToCli && (\n <button\n onClick={onSwitchToCli}\n className=\"flex items-center gap-1 text-[12px] text-muted-foreground hover:text-foreground px-2 py-1 rounded-md hover:bg-accent\"\n title=\"Switch to CLI\"\n >\n <IconTerminal className=\"h-3.5 w-3.5\" />\n CLI\n </button>\n )}\n </div>\n </div>\n )}\n\n {/* Messages area */}\n <div\n ref={scrollRef}\n className=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\"\n >\n {authError ? (\n <div className=\"flex flex-col items-center justify-center h-full px-4 gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-destructive/10\">\n <IconLock className=\"h-5 w-5 text-destructive\" />\n </div>\n <div className=\"text-center max-w-[280px]\">\n <p className=\"text-sm font-medium text-foreground mb-1\">\n {authError.sessionExpired\n ? \"Session expired\"\n : \"Authentication required\"}\n </p>\n <p className=\"text-xs text-muted-foreground leading-relaxed\">\n {authError.sessionExpired ? (\n \"Your session may have expired. Log out and log back in to reconnect.\"\n ) : (\n <>\n You need to log in to use the agent. If you're\n running locally, add{\" \"}\n <code className=\"bg-muted px-1 py-0.5 rounded text-[10px]\">\n AUTH_MODE=local\n </code>{\" \"}\n to your{\" \"}\n <code className=\"bg-muted px-1 py-0.5 rounded text-[10px]\">\n .env\n </code>{\" \"}\n file and restart the dev server.\n </>\n )}\n </p>\n </div>\n <div className=\"flex gap-2\">\n {authError.sessionExpired && (\n <button\n onClick={async () => {\n try {\n await fetch(\n agentNativePath(\"/_agent-native/auth/logout\"),\n {\n method: \"POST\",\n },\n );\n } catch {}\n window.location.reload();\n }}\n className=\"text-xs text-destructive hover:text-destructive/80 px-3 py-1.5 rounded-md border border-destructive/30 hover:bg-destructive/10\"\n >\n Log out\n </button>\n )}\n <button\n onClick={() => {\n setAuthError(null);\n window.location.reload();\n }}\n className=\"text-xs text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md border border-border hover:bg-accent\"\n >\n Retry\n </button>\n </div>\n </div>\n ) : missingApiKey ? (\n <div className=\"flex flex-col items-center justify-center h-full px-2\">\n <ApiKeySetupCard apiUrl={apiUrl} />\n </div>\n ) : isRestoring ? (\n <div className=\"flex flex-col gap-3 p-4\">\n <div className=\"flex justify-end\">\n <div className=\"h-8 w-32 rounded-lg bg-muted animate-pulse\" />\n </div>\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-4 w-48 rounded bg-muted animate-pulse\" />\n <div className=\"h-4 w-64 rounded bg-muted animate-pulse\" />\n <div className=\"h-4 w-40 rounded bg-muted animate-pulse\" />\n </div>\n </div>\n ) : messages.length === 0 && !isReconnecting ? (\n <div className=\"flex flex-col items-center justify-center gap-4 py-16 px-4 h-full\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-muted\">\n <IconMessage className=\"h-5 w-5 text-muted-foreground\" />\n </div>\n <p className=\"text-sm text-muted-foreground text-center max-w-[240px]\">\n {emptyStateText ?? \"How can I help you?\"}\n </p>\n {suggestions && suggestions.length > 0 && (\n <div className=\"flex flex-col gap-1.5 w-full max-w-[280px]\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n onClick={() => {\n threadRuntime.append({\n role: \"user\",\n content: [{ type: \"text\", text: suggestion }],\n });\n }}\n className=\"w-full rounded-lg border border-border px-3 py-2 text-left text-[13px] text-muted-foreground hover:bg-accent hover:text-foreground\"\n >\n {suggestion}\n </button>\n ))}\n </div>\n )}\n </div>\n ) : (\n <div className=\"agent-thread-content flex flex-col gap-4 px-4 py-4\">\n <ThreadPrimitive.Messages\n components={{\n UserMessage,\n AssistantMessage,\n }}\n />\n {showContinue && !showRunningInUI && (\n <div className=\"flex justify-center py-2\">\n <button\n type=\"button\"\n onClick={() => {\n setShowContinue(false);\n addToQueue(\"Continue from where you left off.\");\n }}\n className=\"rounded-lg border border-border bg-background px-4 py-2 text-sm font-medium text-foreground hover:bg-accent\"\n >\n Continue\n </button>\n </div>\n )}\n {(isReconnecting || reconnectFrozen) &&\n reconnectContent.length > 0 && (\n <ReconnectStreamMessage content={reconnectContent} />\n )}\n {/* Always show the thinking indicator while the agent is working,\n including during reconnect. The indicator sits BELOW any\n already-streamed reconnect content so the user sees both\n \"what it did so far\" and \"it's still working\". Swap the label\n to \"Reconnecting\" during reconnect so the user knows the\n system is actively recovering, not just stuck. */}\n {showRunningInUI && (\n <ThinkingIndicator\n label={isReconnecting ? \"Reconnecting\" : \"Thinking\"}\n />\n )}\n {queuedMessages.map((msg) => {\n const displayText = msg.text\n .replace(/<context>[\\s\\S]*?<\\/context>\\n?/g, \"\")\n .trim();\n return (\n <div key={msg.id} className=\"flex justify-end group\">\n <div className=\"relative max-w-[85%] rounded-lg bg-accent/50 text-foreground/60 px-3 py-2 text-sm leading-relaxed whitespace-pre-wrap break-words\">\n <div className=\"flex items-center gap-1.5 text-[10px] text-muted-foreground mb-1 font-medium uppercase tracking-wide\">\n <IconClock className=\"h-3 w-3\" />\n Queued\n </div>\n {displayText}\n {msg.images && msg.images.length > 0 && (\n <div className=\"flex flex-wrap gap-1.5 mt-1.5\">\n {msg.images.map((img, j) => (\n <img\n key={j}\n src={img}\n alt=\"\"\n className=\"h-12 w-12 rounded object-cover border border-border/50\"\n />\n ))}\n </div>\n )}\n <button\n type=\"button\"\n onClick={() =>\n setQueuedMessages((prev) =>\n prev.filter((m) => m.id !== msg.id),\n )\n }\n aria-label=\"Remove from queue\"\n className=\"absolute -top-2 -right-2 flex h-5 w-5 items-center justify-center rounded-full border border-border bg-background text-muted-foreground opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:text-foreground hover:bg-accent shadow-sm\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </div>\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n {/* Scroll to bottom button */}\n {showScrollToBottom && (\n <div className=\"shrink-0 flex justify-center -mb-1\">\n <button\n type=\"button\"\n onClick={scrollToBottom}\n className=\"flex h-7 w-7 items-center justify-center rounded-full border border-border bg-background shadow-sm hover:bg-accent\"\n aria-label=\"Scroll to bottom\"\n >\n <IconChevronDown className=\"h-3.5 w-3.5 text-muted-foreground\" />\n </button>\n </div>\n )}\n\n {composerSlot}\n <SelectionAttachedPill />\n {/* Input area */}\n <div className=\"agent-composer-area shrink-0 px-3 py-2\">\n <ComposerPrimitive.Root className=\"flex flex-col rounded-lg border border-input bg-background focus-within:ring-1 focus-within:ring-ring\">\n <ComposerAttachmentPreviewStrip />\n <TiptapComposer\n focusRef={tiptapRef}\n disabled={missingApiKey}\n placeholder={\n missingApiKey\n ? \"Connect an AI engine above to start chatting…\"\n : isRunning\n ? queuedMessages.length > 0\n ? `${queuedMessages.length} queued — type another...`\n : \"Queue a message...\"\n : undefined\n }\n onSubmit={\n isRunning\n ? (text, references) =>\n addToQueue(\n text,\n undefined,\n references.length > 0 ? references : undefined,\n )\n : undefined\n }\n onSlashCommand={onSlashCommand}\n execMode={execMode}\n onExecModeChange={onExecModeChange}\n selectedModel={selectedModel ?? defaultModel}\n availableModels={availableModels}\n onModelChange={onModelChange}\n draftScope={threadId || tabId}\n extraActionButton={\n showRunningInUI ? (\n <button\n type=\"button\"\n onClick={() => {\n // Nuclear stop: flip forceStopped so isRunning is false\n // immediately. This unblocks submission even if the\n // runtime or reconnect state is stuck.\n setForceStopped(true);\n\n if (isReconnecting) {\n if (reconnectRunIdRef.current) {\n fetch(\n `${apiUrl}/runs/${encodeURIComponent(reconnectRunIdRef.current)}/abort`,\n { method: \"POST\" },\n );\n }\n reconnectAbortRef.current?.abort();\n reconnectAbortRef.current = null;\n reconnectRunIdRef.current = null;\n setIsReconnecting(false);\n setReconnectFrozen(reconnectContent.length > 0);\n }\n\n threadRuntime.cancelRun();\n\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: {\n isRunning: false,\n tabId: tabId || threadId,\n },\n }),\n );\n }}\n className=\"shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-muted text-foreground hover:bg-muted/80\"\n title=\"Stop generating\"\n >\n <IconPlayerStop className=\"h-3.5 w-3.5\" />\n </button>\n ) : undefined\n }\n />\n </ComposerPrimitive.Root>\n </div>\n </div>\n </ChatRunningContext.Provider>\n </MessageActionsContext.Provider>\n </CheckpointContext.Provider>\n );\n});\n\nexport const AssistantChat = forwardRef<\n AssistantChatHandle,\n AssistantChatProps\n>(function AssistantChat(\n {\n apiUrl = agentNativePath(\"/_agent-native/agent-chat\"),\n tabId,\n threadId,\n ...props\n },\n ref,\n) {\n const modelRef = useRef<string | undefined>(props.selectedModel);\n modelRef.current = props.selectedModel;\n const engineRef = useRef<string | undefined>(props.selectedEngine);\n engineRef.current = props.selectedEngine;\n\n const adapter = useMemo(\n () =>\n createAgentChatAdapter({ apiUrl, tabId, threadId, modelRef, engineRef }),\n [apiUrl, tabId, threadId],\n );\n const attachmentAdapter = useMemo(\n () =>\n new CompositeAttachmentAdapter([\n new SimpleImageAttachmentAdapter(),\n new SimpleTextAttachmentAdapter(),\n ]),\n [],\n );\n const runtime = useLocalRuntime(adapter, {\n adapters: { attachments: attachmentAdapter },\n });\n\n return (\n <AssistantRuntimeProvider runtime={runtime}>\n <ThreadPrimitive.Root className=\"flex flex-1 flex-col h-full min-h-0 overflow-x-hidden\">\n <AssistantChatInner\n ref={ref}\n {...props}\n apiUrl={apiUrl}\n tabId={tabId}\n threadId={threadId}\n />\n </ThreadPrimitive.Root>\n </AssistantRuntimeProvider>\n );\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientOnly.js","sourceRoot":"","sources":["../../src/client/ClientOnly.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,QAAQ,GAIT;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,IAAI,IAAI,CAAC;IACtC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ClientOnly.js","sourceRoot":"","sources":["../../src/client/ClientOnly.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,QAAQ,GAIT;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,IAAI,IAAI,CAAC;IACtC,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { useState, useEffect, type ReactNode } from \"react\";\n\n/**\n * Renders children only on the client (after hydration).\n *\n * Used in root.tsx to wrap all app content so the server only renders\n * the HTML shell (meta tags, styles, scripts) + a fallback spinner.\n * This prevents hydration mismatches from browser-only APIs like\n * window, localStorage, new Date(), next-themes, etc.\n */\nexport function ClientOnly({\n children,\n fallback,\n}: {\n children: ReactNode;\n fallback?: ReactNode;\n}) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n if (!mounted) return fallback ?? null;\n return children;\n}\n"]}
|