@agent-native/core 0.7.17 → 0.7.19
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.d.ts.map +1 -1
- package/dist/agent/engine/builder-engine.js +15 -3
- 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 +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 +24 -2
- 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 +34 -4
- 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.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +5 -21
- 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.d.ts +10 -0
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +23 -3
- 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.d.ts.map +1 -1
- package/dist/client/org/TeamPage.js +14 -2
- 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.d.ts +6 -1
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +9 -3
- 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.d.ts.map +1 -1
- package/dist/integrations/pending-tasks-retry-job.js +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.d.ts +29 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +32 -6
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +15 -0
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +115 -0
- 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 +4 -3
- 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.d.ts +7 -0
- package/dist/server/voice-providers-status.d.ts.map +1 -1
- package/dist/server/voice-providers-status.js +1 -0
- 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.d.ts.map +1 -1
- package/dist/tools/store.js +6 -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":"MultiTabAssistantChat.js","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiTabAssistantChat.js","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { IconX, IconPlus, IconHistory, IconSearch } from \"@tabler/icons-react\";\nimport {\n AssistantChat,\n type AssistantChatProps,\n type AssistantChatHandle,\n} from \"./AssistantChat.js\";\nimport { isTrustedFrameMessage } from \"./frame.js\";\nimport { cn } from \"./utils.js\";\nimport { useChatThreads, type ChatThreadSummary } from \"./use-chat-threads.js\";\nimport { agentNativePath } from \"./api-path.js\";\n\ninterface EngineModelGroup {\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n}\n\n// ─── Skeleton Loader ─────────────────────────────────────────────────────────\n\nfunction ChatSkeleton({ headerOnly = false }: { headerOnly?: boolean }) {\n return (\n <div\n className={cn(\n \"flex flex-col min-h-0\",\n headerOnly ? \"shrink-0\" : \"flex-1 h-full\",\n )}\n >\n <div className=\"flex items-center px-1 py-1 border-b border-border shrink-0 gap-0.5\">\n <div className=\"h-[22px] w-20 rounded-md bg-muted animate-pulse\" />\n <div className=\"ml-auto flex gap-0.5\">\n <div className=\"h-[22px] w-[22px] rounded-md bg-muted animate-pulse\" />\n <div className=\"h-[22px] w-[22px] rounded-md bg-muted animate-pulse\" />\n </div>\n </div>\n {!headerOnly && (\n <div className=\"flex-1 flex flex-col gap-3 p-4\">\n <div className=\"flex justify-center py-8\">\n <div className=\"h-10 w-10 rounded-full bg-muted animate-pulse\" />\n </div>\n <div className=\"h-3 w-32 rounded bg-muted animate-pulse mx-auto\" />\n </div>\n )}\n </div>\n );\n}\n\n// ─── History Popover ─────────────────────────────────────────────────────────\n\nfunction HistoryPopover({\n threads,\n openTabIds,\n onSelect,\n onClose,\n onSearch,\n}: {\n threads: ChatThreadSummary[];\n openTabIds: Set<string>;\n onSelect: (id: string) => void;\n onClose: () => void;\n onSearch?: (query: string) => Promise<ChatThreadSummary[]>;\n}) {\n const [search, setSearch] = useState(\"\");\n const [searchResults, setSearchResults] = useState<\n ChatThreadSummary[] | null\n >(null);\n const [isSearching, setIsSearching] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const debounceRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n useEffect(() => {\n inputRef.current?.focus();\n }, []);\n\n useEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [onClose]);\n\n // Debounced server-side search\n const searchIdRef = useRef(0);\n useEffect(() => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n const q = search.trim();\n if (!q) {\n searchIdRef.current++;\n setSearchResults(null);\n setIsSearching(false);\n return;\n }\n setIsSearching(true);\n const id = ++searchIdRef.current;\n debounceRef.current = setTimeout(async () => {\n if (onSearch) {\n const results = await onSearch(q);\n if (id !== searchIdRef.current) return;\n setSearchResults(results);\n } else {\n // Fallback to client-side filtering\n setSearchResults(null);\n }\n setIsSearching(false);\n }, 250);\n return () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, [search, onSearch]);\n\n // Only show threads not currently open as tabs\n const closedThreads = threads.filter(\n (t) => !openTabIds.has(t.id) && t.messageCount > 0,\n );\n\n const filtered = search.trim()\n ? (searchResults ?? closedThreads).filter((t) => t.messageCount > 0)\n : closedThreads;\n\n const formatTime = (ts: number) => {\n const d = new Date(ts);\n const now = new Date();\n const diffMs = now.getTime() - d.getTime();\n const diffDays = Math.floor(diffMs / 86400000);\n if (diffDays === 0)\n return d.toLocaleTimeString([], { hour: \"numeric\", minute: \"2-digit\" });\n if (diffDays === 1) return \"Yesterday\";\n if (diffDays < 7) return d.toLocaleDateString([], { weekday: \"short\" });\n return d.toLocaleDateString([], { month: \"short\", day: \"numeric\" });\n };\n\n return (\n <>\n <div className=\"fixed inset-0 z-40\" onClick={onClose} />\n <div className=\"absolute right-2 top-0 z-50 w-72 rounded-lg border border-border bg-popover shadow-lg\">\n <div className=\"flex items-center gap-2 px-3 py-2 border-b border-border\">\n <IconSearch size={13} />\n <input\n ref={inputRef}\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search past chats...\"\n className=\"flex-1 bg-transparent text-xs text-foreground placeholder:text-muted-foreground outline-none\"\n />\n </div>\n <div className=\"max-h-64 overflow-y-auto py-1\">\n {isSearching ? (\n <div className=\"px-3 py-4 text-xs text-muted-foreground text-center\">\n Searching...\n </div>\n ) : filtered.length === 0 ? (\n <div className=\"px-3 py-4 text-xs text-muted-foreground text-center\">\n {search ? \"No matching chats\" : \"No past chats\"}\n </div>\n ) : (\n filtered.map((thread) => (\n <button\n key={thread.id}\n onClick={() => {\n onSelect(thread.id);\n onClose();\n }}\n className=\"w-full px-3 py-2 text-left hover:bg-accent/50\"\n >\n <div className=\"flex items-baseline justify-between gap-2\">\n <span className=\"text-xs font-medium text-foreground truncate\">\n {thread.title || thread.preview || \"Chat\"}\n </span>\n <span className=\"text-[10px] text-muted-foreground shrink-0\">\n {formatTime(thread.updatedAt)}\n </span>\n </div>\n {thread.preview && thread.title !== thread.preview && (\n <div className=\"text-[11px] text-muted-foreground truncate mt-0.5\">\n {thread.preview}\n </div>\n )}\n </button>\n ))\n )}\n </div>\n </div>\n </>\n );\n}\n\n// ─── Help Popover ────────────────────────────────────────────────────────────\n\nfunction HelpPopover({ onClose }: { onClose: () => void }) {\n useEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [onClose]);\n\n const commands = [\n {\n name: \"/clear\",\n description: \"Start a new chat (keeps current chat in history)\",\n },\n { name: \"/new\", description: \"Same as /clear\" },\n { name: \"/history\", description: \"Browse and search past chats\" },\n { name: \"/help\", description: \"Show this list of commands\" },\n { name: \"@\", description: \"Mention files, agents, or resources\" },\n ];\n\n return (\n <>\n <div className=\"fixed inset-0 z-40\" onClick={onClose} />\n <div className=\"absolute right-2 top-0 z-50 w-72 rounded-lg border border-border bg-popover shadow-lg\">\n <div className=\"flex items-center justify-between px-3 py-2 border-b border-border\">\n <span className=\"text-xs font-medium text-foreground\">\n Available Commands\n </span>\n <button\n onClick={onClose}\n aria-label=\"Close help\"\n className=\"flex h-5 w-5 items-center justify-center rounded text-muted-foreground hover:text-foreground\"\n >\n <IconX size={12} />\n </button>\n </div>\n <div className=\"py-1\">\n {commands.map((cmd) => (\n <div key={cmd.name} className=\"px-3 py-1.5\">\n <div className=\"text-xs font-medium text-foreground\">\n {cmd.name}\n </div>\n <div className=\"text-[11px] text-muted-foreground\">\n {cmd.description}\n </div>\n </div>\n ))}\n </div>\n </div>\n </>\n );\n}\n\n// ─── Types ──────────────────────────────────────────────────────────────────\n\ninterface ChatTab {\n id: string;\n label: string;\n status: \"idle\" | \"running\" | \"completed\";\n /** If this tab is a sub-agent, the parent thread ID */\n parentThreadId?: string;\n /** Short name for sub-agent tabs (e.g. \"Research\", \"Draft email\") */\n subAgentName?: string;\n}\n\nexport interface MultiTabAssistantChatHeaderProps {\n tabs: ChatTab[];\n activeTabId: string;\n activeTabMessageCount: number;\n setActiveTabId: (tabId: string) => void;\n addTab: () => void;\n closeTab: (tabId: string) => void;\n closeOtherTabs: (tabId: string) => void;\n closeAllTabs: () => void;\n clearActiveTab: () => void;\n /** Open the history popover */\n showHistory?: boolean;\n toggleHistory?: () => void;\n /** Number of open tabs (useful for triggering scroll on tab count change) */\n tabCount: number;\n}\n\n// ─── Component ──────────────────────────────────────────────────────────────\n\nexport type MultiTabAssistantChatProps = Omit<\n AssistantChatProps,\n \"tabId\" | \"threadId\"\n> & {\n /** Show the tab bar. Default: true */\n showTabBar?: boolean;\n /** Optional custom single-row header renderer */\n renderHeader?: (props: MultiTabAssistantChatHeaderProps) => React.ReactNode;\n /** Optional overlay actions renderer for the active tab */\n renderOverlay?: (props: MultiTabAssistantChatHeaderProps) => React.ReactNode;\n /** Hide the chat content while keeping the header visible. Used when CLI/resources mode is active. */\n contentHidden?: boolean;\n /** Namespace for localStorage keys — used to isolate chat state per app in the frame. */\n storageKey?: string;\n};\n\nexport function MultiTabAssistantChat({\n showTabBar = true,\n renderHeader,\n renderOverlay,\n contentHidden = false,\n apiUrl = agentNativePath(\"/_agent-native/agent-chat\"),\n storageKey,\n ...props\n}: MultiTabAssistantChatProps) {\n const {\n threads,\n activeThreadId,\n isLoading,\n createThread,\n switchThread,\n deleteThread,\n forkThread,\n saveThreadData,\n generateTitle,\n searchThreads,\n refreshThreads,\n } = useChatThreads(apiUrl, storageKey);\n\n // Namespace all localStorage keys by storageKey when provided (for per-app isolation in frame)\n const keyPrefix = storageKey ? `:${storageKey}` : \"\";\n\n // Track which tabs have been focused at least once (lazy mount for sub-agent tabs)\n const mountedTabsRef = useRef<Set<string>>(new Set());\n const activeThreadIdRef = useRef(activeThreadId);\n activeThreadIdRef.current = activeThreadId;\n // Mark the active tab as mounted so it persists when switched away\n if (activeThreadId) mountedTabsRef.current.add(activeThreadId);\n const chatRefs = useRef<Map<string, AssistantChatHandle>>(new Map());\n const pendingSends = useRef<Map<string, string>>(new Map());\n const [runningThreads, setRunningThreads] = useState<Set<string>>(new Set());\n const [showHistory, setShowHistory] = useState(false);\n const newThreadIds = useRef<Set<string>>(new Set());\n\n // ─── Model state ─────────────────────────────────────────────────────────\n const [availableModels, setAvailableModels] = useState<EngineModelGroup[]>(\n [],\n );\n const [defaultModel, setDefaultModel] = useState(\"claude-sonnet-4-6\");\n const threadModelRef = useRef<Map<string, { model: string; engine: string }>>(\n new Map(),\n );\n const [selectedModelForActiveThread, setSelectedModelForActiveThread] =\n useState<string | undefined>(undefined);\n\n const activeThreadModel = selectedModelForActiveThread ?? defaultModel;\n\n const handleModelChange = useCallback((model: string, engine: string) => {\n const threadId = activeThreadIdRef.current;\n if (!threadId) return;\n threadModelRef.current.set(threadId, { model, engine });\n setSelectedModelForActiveThread(model);\n }, []);\n\n const refreshEngines = useCallback(() => {\n Promise.all([\n fetch(agentNativePath(\"/_agent-native/actions/manage-agent-engine\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ action: \"list\" }),\n }).then((r) => (r.ok ? r.json() : null)),\n fetch(agentNativePath(\"/_agent-native/env-status\"))\n .then((r) => (r.ok ? r.json() : []))\n .catch(() => []),\n fetch(agentNativePath(\"/_agent-native/builder/status\"))\n .then((r) => (r.ok ? r.json() : null))\n .catch(() => null),\n ])\n .then(([enginesData, envKeys, builderStatus]) => {\n if (!enginesData?.engines) return;\n const configuredKeys = new Set(\n (envKeys as Array<{ key: string; configured: boolean }>)\n .filter((k) => k.configured)\n .map((k) => k.key),\n );\n const builderConnected = builderStatus?.configured === true;\n const currentEngineName: string | undefined =\n enginesData.current?.engine;\n const currentModel: string | undefined = enginesData.current?.model;\n\n let groups: EngineModelGroup[];\n\n if (builderConnected) {\n // When Builder.io is connected, show all Builder-supported\n // models grouped by provider — all route through the builder\n // engine so no individual API keys are needed.\n const builderEngine = enginesData.engines.find(\n (e: any) => e.name === \"builder\",\n );\n const builderModels: string[] = builderEngine?.supportedModels ?? [];\n const claude = builderModels.filter((m: string) =>\n m.startsWith(\"claude-\"),\n );\n const openai = builderModels.filter((m: string) =>\n m.startsWith(\"gpt-\"),\n );\n const gemini = builderModels.filter((m: string) =>\n m.startsWith(\"gemini-\"),\n );\n const other = builderModels.filter(\n (m: string) =>\n !m.startsWith(\"claude-\") &&\n !m.startsWith(\"gpt-\") &&\n !m.startsWith(\"gemini-\"),\n );\n\n groups = [\n ...(claude.length\n ? [\n {\n engine: \"builder\",\n label: \"Claude\",\n models: claude,\n configured: true,\n },\n ]\n : []),\n ...(openai.length\n ? [\n {\n engine: \"builder\",\n label: \"OpenAI\",\n models: openai,\n configured: true,\n },\n ]\n : []),\n ...(gemini.length\n ? [\n {\n engine: \"builder\",\n label: \"Gemini\",\n models: gemini,\n configured: true,\n },\n ]\n : []),\n ...(other.length\n ? [\n {\n engine: \"builder\",\n label: \"More\",\n models: other,\n configured: true,\n },\n ]\n : []),\n ];\n\n // Ensure the current model shows in the list even if it's not\n // in BUILDER_SUPPORTED_MODELS (e.g. custom model string).\n if (currentModel && !builderModels.includes(currentModel)) {\n const firstGroup = groups[0];\n if (firstGroup) firstGroup.models.unshift(currentModel);\n }\n } else {\n // No Builder connection — show SDK engines that have API keys.\n const allowedEngines = new Set([\n \"anthropic\",\n \"ai-sdk:openai\",\n \"ai-sdk:google\",\n ]);\n groups = enginesData.engines\n .filter((e: any) => allowedEngines.has(e.name))\n .map((e: any) => {\n const models = [...e.supportedModels];\n if (\n e.name === currentEngineName &&\n currentModel &&\n !models.includes(currentModel)\n ) {\n models.unshift(currentModel);\n }\n return {\n engine: e.name,\n label: e.label,\n models,\n configured:\n e.requiredEnvVars.length === 0 ||\n e.requiredEnvVars.some((v: string) =>\n configuredKeys.has(v),\n ) ||\n e.name === currentEngineName,\n };\n });\n }\n setAvailableModels(groups);\n setDefaultModel(currentModel ?? \"claude-sonnet-4-6\");\n })\n .catch(() => {});\n }, []);\n\n useEffect(() => {\n refreshEngines();\n window.addEventListener(\"agent-engine:configured-changed\", refreshEngines);\n return () =>\n window.removeEventListener(\n \"agent-engine:configured-changed\",\n refreshEngines,\n );\n }, [refreshEngines]);\n\n // Parent-child thread mapping — persisted to localStorage.\n // Maps childThreadId → parentThreadId for sub-agent tabs.\n const PARENT_MAP_KEY = `agent-chat-parent-map${keyPrefix}`;\n const [parentMap, setParentMap] = useState<Record<string, string>>(() => {\n try {\n const saved = localStorage.getItem(PARENT_MAP_KEY);\n if (saved) return JSON.parse(saved);\n } catch {}\n return {};\n });\n\n // Persist parent map to localStorage\n useEffect(() => {\n try {\n localStorage.setItem(PARENT_MAP_KEY, JSON.stringify(parentMap));\n } catch {}\n }, [parentMap, PARENT_MAP_KEY]);\n\n // Sub-agent display names — persisted to localStorage.\n // Maps childThreadId → short name (e.g. \"Research\", \"Draft email\").\n const SUB_AGENT_NAMES_KEY = `agent-chat-sub-agent-names${keyPrefix}`;\n const [subAgentNames, setSubAgentNames] = useState<Record<string, string>>(\n () => {\n try {\n const saved = localStorage.getItem(SUB_AGENT_NAMES_KEY);\n if (saved) return JSON.parse(saved);\n } catch {}\n return {};\n },\n );\n\n useEffect(() => {\n try {\n localStorage.setItem(SUB_AGENT_NAMES_KEY, JSON.stringify(subAgentNames));\n } catch {}\n }, [subAgentNames, SUB_AGENT_NAMES_KEY]);\n\n // Open tabs — persisted to localStorage so they survive refresh.\n const OPEN_TABS_KEY = `agent-chat-open-tabs${keyPrefix}`;\n const [openTabIds, setOpenTabIds] = useState<string[]>(() => {\n try {\n const saved = localStorage.getItem(OPEN_TABS_KEY);\n if (saved) {\n const parsed = JSON.parse(saved);\n if (Array.isArray(parsed) && parsed.length > 0) {\n // Mark restored tabs as mounted\n for (const id of parsed) mountedTabsRef.current.add(id);\n return parsed;\n }\n }\n } catch {}\n return [];\n });\n const initializedRef = useRef(false);\n\n // Persist open tab IDs to localStorage (exclude sub-agent tabs — they're session-only)\n useEffect(() => {\n const mainTabs = openTabIds.filter((id) => !parentMap[id]);\n if (mainTabs.length > 0) {\n try {\n localStorage.setItem(OPEN_TABS_KEY, JSON.stringify(mainTabs));\n } catch {}\n }\n }, [openTabIds, parentMap, OPEN_TABS_KEY]);\n\n // Initialize open tabs once threads load — validate saved tabs still exist\n useEffect(() => {\n if (initializedRef.current || !activeThreadId || threads.length === 0)\n return;\n initializedRef.current = true;\n const threadIds = new Set(threads.map((t) => t.id));\n const threadMap = new Map(threads.map((t) => [t.id, t]));\n\n // Auto-close tabs inactive for more than 4 hours\n const STALE_THRESHOLD_MS = 4 * 60 * 60 * 1000;\n const now = Date.now();\n const isStale = (id: string) => {\n const thread = threadMap.get(id);\n return thread ? now - thread.updatedAt > STALE_THRESHOLD_MS : false;\n };\n\n // If the active thread is a sub-agent, switch to its parent or the most recent main thread\n if (parentMap[activeThreadId]) {\n const parent = parentMap[activeThreadId];\n if (parent && threadIds.has(parent)) {\n switchThread(parent);\n } else {\n // Fall back to most recent main thread\n const mainThread = threads.find((t) => !parentMap[t.id]);\n if (mainThread) switchThread(mainThread.id);\n }\n }\n\n setOpenTabIds((prev) => {\n // Filter out tabs that no longer exist, sub-agent tabs, or stale tabs (>4h inactive)\n const valid = prev.filter(\n (id) => threadIds.has(id) && !parentMap[id] && !isStale(id),\n );\n // Ensure active thread is included (only if it's not a sub-agent and not stale)\n if (\n !parentMap[activeThreadId] &&\n !valid.includes(activeThreadId) &&\n !isStale(activeThreadId)\n ) {\n valid.push(activeThreadId);\n }\n return valid;\n });\n\n // If active thread is stale, start fresh\n if (!parentMap[activeThreadId] && isStale(activeThreadId)) {\n createThread();\n }\n }, [activeThreadId, threads, parentMap, switchThread, createThread]);\n\n // Ensure active thread is always in open tabs.\n // Use functional update to check inside the setter — avoids race with the\n // initialization effect that may have already added the ID in the same batch.\n useEffect(() => {\n if (activeThreadId) {\n setOpenTabIds((prev) =>\n prev.includes(activeThreadId) ? prev : [...prev, activeThreadId],\n );\n }\n }, [activeThreadId]);\n\n // Ensure at least one tab is always open — auto-create if sidebar is empty\n const autoCreatingRef = useRef(false);\n useEffect(() => {\n if (isLoading || autoCreatingRef.current) return;\n if (openTabIds.length === 0) {\n autoCreatingRef.current = true;\n createThread().then((id) => {\n autoCreatingRef.current = false;\n if (id) {\n newThreadIds.current.add(id);\n setOpenTabIds([id]);\n }\n });\n }\n }, [isLoading, openTabIds, createThread]);\n\n // Focus the composer and sync model state when switching tabs\n useEffect(() => {\n if (!activeThreadId) return;\n // Sync model picker to this thread's override (or clear to default)\n setSelectedModelForActiveThread(\n threadModelRef.current.get(activeThreadId)?.model ?? undefined,\n );\n // Small delay to ensure the tab is visible before focusing\n const t = setTimeout(() => {\n chatRefs.current.get(activeThreadId)?.focusComposer();\n }, 50);\n return () => clearTimeout(t);\n }, [activeThreadId]);\n\n // Ref callback: scroll the active tab into view in the overflow container.\n // Uses getBoundingClientRect for reliable positioning regardless of offsetParent.\n // A margin keeps the active tab from sitting flush against either container\n // edge — at the right edge it was landing directly under the +/history/menu\n // buttons, which visually clipped the tab label.\n const activeTabRefCb = useCallback((el: HTMLElement | null) => {\n if (!el) return;\n const container = el.parentElement;\n if (!container) return;\n const MARGIN = 24;\n requestAnimationFrame(() => {\n const containerRect = container.getBoundingClientRect();\n const tabRect = el.getBoundingClientRect();\n if (tabRect.left < containerRect.left + MARGIN) {\n container.scrollLeft += tabRect.left - containerRect.left - MARGIN;\n } else if (tabRect.right > containerRect.right - MARGIN) {\n container.scrollLeft += tabRect.right - containerRect.right + MARGIN;\n }\n });\n }, []);\n\n const [messageCounts, setMessageCounts] = useState<Record<string, number>>(\n () => Object.fromEntries(threads.map((t) => [t.id, t.messageCount ?? 0])),\n );\n\n // Sync message counts from threads when they load\n useEffect(() => {\n if (threads.length > 0) {\n setMessageCounts((prev) => {\n const next = { ...prev };\n for (const t of threads) {\n if (!(t.id in next)) {\n next[t.id] = t.messageCount ?? 0;\n }\n }\n return next;\n });\n }\n }, [threads]);\n\n // Listen for builder.submitChat postMessages\n useEffect(() => {\n const handler = (event: MessageEvent) => {\n if (!isTrustedFrameMessage(event)) return;\n if (event.data?.type !== \"agentNative.submitChat\") return;\n const message = event.data.data?.message as string;\n if (!message) return;\n const context = event.data.data?.context as string | undefined;\n const openSidebar = event.data.data?.openSidebar as boolean | undefined;\n const model = event.data.data?.model as string | undefined;\n const newTab = event.data.data?.newTab as boolean | undefined;\n const background = event.data.data?.background as boolean | undefined;\n\n // Make sure the sidebar is visible to show the response, unless the\n // caller explicitly opted out or it's a background send.\n if (openSidebar !== false && !background) {\n window.dispatchEvent(new CustomEvent(\"agent-panel:open\"));\n }\n\n // Plan-mode instruction prefix is injected by the chat adapter at\n // request time (see agent-chat-adapter.ts). The user-visible message\n // text stays clean here so it doesn't appear in the chat history.\n const fullMessage = context\n ? `${message}\\n\\n<context>\\n${context}\\n</context>`\n : message;\n\n const sendToTab = (threadId: string) => {\n // If a model override was specified, apply it only if we recognize it\n if (model) {\n const matchedGroup = availableModels.find((g) =>\n g.models.includes(model),\n );\n if (matchedGroup) {\n threadModelRef.current.set(threadId, {\n model,\n engine: matchedGroup.engine,\n });\n setSelectedModelForActiveThread(model);\n }\n }\n\n const ref = chatRefs.current.get(threadId);\n if (ref) {\n ref.sendMessage(fullMessage);\n } else {\n pendingSends.current.set(threadId, fullMessage);\n }\n };\n\n if (newTab) {\n const previousTabId = activeThreadIdRef.current;\n createThread().then((newId) => {\n if (newId) {\n newThreadIds.current.add(newId);\n sendToTab(newId);\n if (background && previousTabId) {\n switchThread(previousTabId);\n }\n }\n });\n } else {\n const currentTabId = activeThreadIdRef.current;\n if (!currentTabId) return;\n sendToTab(currentTabId);\n }\n };\n window.addEventListener(\"message\", handler);\n return () => window.removeEventListener(\"message\", handler);\n }, [availableModels, createThread, switchThread]);\n\n // Process pending sends when refs mount\n useEffect(() => {\n for (const [tabId, message] of pendingSends.current) {\n const ref = chatRefs.current.get(tabId);\n if (ref) {\n setTimeout(() => ref.sendMessage(message), 50);\n pendingSends.current.delete(tabId);\n }\n }\n }, [openTabIds]);\n\n // Listen for chatRunning completion events\n useEffect(() => {\n const handler = (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!detail) return;\n const { isRunning, tabId } = detail;\n if (!tabId) return;\n\n setRunningThreads((prev) => {\n const next = new Set(prev);\n if (isRunning) {\n next.add(tabId);\n } else {\n next.delete(tabId);\n }\n return next;\n });\n };\n window.addEventListener(\"agentNative.chatRunning\", handler);\n return () => window.removeEventListener(\"agentNative.chatRunning\", handler);\n }, []);\n\n const addTab = useCallback(async () => {\n const id = await createThread();\n if (id) {\n newThreadIds.current.add(id);\n }\n }, [createThread]);\n\n const closeTab = useCallback(\n (tabId: string) => {\n setOpenTabIds((prev) => {\n if (prev.length <= 1) {\n // Last tab — create a new one and replace the old tab atomically\n createThread().then((newId) => {\n if (newId) {\n newThreadIds.current.add(newId);\n setOpenTabIds([newId]);\n }\n });\n return prev; // Keep old tab until new one is ready\n }\n const next = prev.filter((id) => id !== tabId);\n if (tabId === activeThreadIdRef.current && next.length > 0) {\n const idx = prev.indexOf(tabId);\n switchThread(next[Math.min(idx, next.length - 1)]);\n }\n return next;\n });\n chatRefs.current.delete(tabId);\n pendingSends.current.delete(tabId);\n newThreadIds.current.delete(tabId);\n threadModelRef.current.delete(tabId);\n // Clean up parent map and sub-agent names\n setParentMap((prev) => {\n if (!(tabId in prev)) return prev;\n const { [tabId]: _, ...rest } = prev;\n return rest;\n });\n setSubAgentNames((prev) => {\n if (!(tabId in prev)) return prev;\n const { [tabId]: _, ...rest } = prev;\n return rest;\n });\n },\n [switchThread, createThread],\n );\n\n const closeOtherTabs = useCallback(\n (tabId: string) => {\n setOpenTabIds([tabId]);\n if (activeThreadIdRef.current !== tabId) {\n switchThread(tabId);\n }\n // Clean up refs for closed tabs\n for (const key of chatRefs.current.keys()) {\n if (key !== tabId) {\n chatRefs.current.delete(key);\n pendingSends.current.delete(key);\n newThreadIds.current.delete(key);\n threadModelRef.current.delete(key);\n }\n }\n // Clean up parent map and sub-agent names — only keep entries for the surviving tab\n setParentMap((prev) => {\n if (tabId in prev) return { [tabId]: prev[tabId] };\n return {};\n });\n setSubAgentNames((prev) => {\n if (tabId in prev) return { [tabId]: prev[tabId] };\n return {};\n });\n },\n [switchThread],\n );\n\n const closeAllTabs = useCallback(async () => {\n const id = await createThread();\n if (id) {\n newThreadIds.current.add(id);\n setOpenTabIds([id]);\n switchThread(id);\n // Clean up all old refs\n chatRefs.current.clear();\n pendingSends.current.clear();\n threadModelRef.current.clear();\n setParentMap({});\n setSubAgentNames({});\n }\n }, [createThread, switchThread]);\n\n // Keyboard shortcuts dispatched from AgentPanel based on the active mode\n useEffect(() => {\n const handleCloseCurrent = () => {\n const id = activeThreadIdRef.current;\n if (id) closeTab(id);\n };\n const handleCloseAll = () => {\n void closeAllTabs();\n };\n window.addEventListener(\"agent-chat:close-current-tab\", handleCloseCurrent);\n window.addEventListener(\"agent-chat:close-all-tabs\", handleCloseAll);\n return () => {\n window.removeEventListener(\n \"agent-chat:close-current-tab\",\n handleCloseCurrent,\n );\n window.removeEventListener(\"agent-chat:close-all-tabs\", handleCloseAll);\n };\n }, [closeTab, closeAllTabs]);\n\n const clearActiveTab = useCallback(() => {\n addTab();\n }, [addTab]);\n\n const openFromHistory = useCallback(\n (threadId: string) => {\n if (!openTabIds.includes(threadId)) {\n setOpenTabIds((prev) => [...prev, threadId]);\n }\n switchThread(threadId);\n },\n [openTabIds, switchThread],\n );\n\n // Listen for agent-task-open events (from AgentTaskCard \"Open\" button)\n useEffect(() => {\n function handleOpenTask(e: Event) {\n const detail = (e as CustomEvent).detail;\n const threadId = detail?.threadId;\n if (!threadId) return;\n // The current active thread is the parent that spawned this sub-agent\n const parentId = activeThreadIdRef.current;\n if (parentId && parentId !== threadId) {\n setParentMap((prev) =>\n prev[threadId] === parentId\n ? prev\n : { ...prev, [threadId]: parentId },\n );\n }\n // Store the sub-agent name/description for the tab label\n const name = detail.name || detail.description || \"\";\n if (name) {\n setSubAgentNames((prev) =>\n prev[threadId] === name ? prev : { ...prev, [threadId]: name },\n );\n }\n // Refresh thread list so the new sub-agent thread appears with its title\n refreshThreads();\n // Open the sub-agent thread as a tab — insert after parent for visual grouping\n if (!openTabIds.includes(threadId)) {\n setOpenTabIds((prev) => {\n if (parentId) {\n const parentIdx = prev.indexOf(parentId);\n if (parentIdx !== -1) {\n // Insert after the parent (and any existing children of that parent)\n const next = [...prev];\n let insertIdx = parentIdx + 1;\n // Skip past any existing children of the same parent\n while (\n insertIdx < next.length &&\n parentMap[next[insertIdx]] === parentId\n ) {\n insertIdx++;\n }\n next.splice(insertIdx, 0, threadId);\n return next;\n }\n }\n return [...prev, threadId];\n });\n }\n switchThread(threadId);\n }\n window.addEventListener(\"agent-task-open\", handleOpenTask);\n return () => window.removeEventListener(\"agent-task-open\", handleOpenTask);\n }, [openTabIds, switchThread, refreshThreads, parentMap]);\n\n // Watch for agent-issued chat-command in application-state\n const lastChatCommandRef = useRef(0);\n useEffect(() => {\n let stopped = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n async function pollChatCommand() {\n if (stopped) return;\n try {\n const res = await fetch(\n agentNativePath(\"/_agent-native/application-state/chat-command\"),\n );\n if (res.ok) {\n const data = await res.json();\n if (\n data?.value?.command === \"open-thread\" &&\n data.value.threadId &&\n data.value.timestamp > lastChatCommandRef.current\n ) {\n lastChatCommandRef.current = data.value.timestamp;\n const threadId = data.value.threadId as string;\n // Open the thread as a tab and focus it\n if (!openTabIds.includes(threadId)) {\n setOpenTabIds((prev) => [...prev, threadId]);\n }\n switchThread(threadId);\n // Clear the command\n fetch(\n agentNativePath(\"/_agent-native/application-state/chat-command\"),\n {\n method: \"DELETE\",\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n },\n ).catch(() => {});\n }\n }\n } catch {}\n if (!stopped) {\n timer = setTimeout(pollChatCommand, 2000);\n }\n }\n\n pollChatCommand();\n return () => {\n stopped = true;\n if (timer) clearTimeout(timer);\n };\n }, [openTabIds, switchThread]);\n\n const handleGenerateTitle = useCallback(\n (threadId: string, message: string) => {\n generateTitle(threadId, message).then((title) => {\n if (title) {\n // Persist the generated title to the server\n saveThreadData(threadId, {\n threadData: \"\",\n title,\n preview: message.slice(0, 120),\n });\n }\n });\n },\n [generateTitle, saveThreadData],\n );\n\n const handleSaveThread = useCallback(\n (\n threadId: string,\n data: {\n threadData: string;\n title: string;\n preview: string;\n messageCount: number;\n },\n ) => {\n saveThreadData(threadId, data);\n },\n [saveThreadData],\n );\n\n // ─── Slash command handler ──────────────────────────────────────────\n const [helpVisible, setHelpVisible] = useState(false);\n\n const handleSlashCommand = useCallback(\n (command: string) => {\n switch (command) {\n case \"clear\":\n case \"new\":\n addTab();\n break;\n case \"history\":\n setShowHistory(true);\n break;\n case \"help\":\n setHelpVisible(true);\n break;\n }\n },\n [addTab],\n );\n\n const handleForkChat = useCallback(\n async (sourceThreadId: string) => {\n const forkedId = await forkThread(sourceThreadId);\n if (!forkedId) return;\n setOpenTabIds((prev) => {\n const idx = prev.indexOf(sourceThreadId);\n if (idx !== -1) {\n const next = [...prev];\n next.splice(idx + 1, 0, forkedId);\n return next;\n }\n return [...prev, forkedId];\n });\n switchThread(forkedId);\n },\n [forkThread, switchThread],\n );\n\n // Build tabs from open thread IDs\n const threadMap = new Map(threads.map((t) => [t.id, t]));\n const tabs: ChatTab[] = openTabIds\n .filter((id) => threadMap.has(id) || id === activeThreadId)\n .map((id) => {\n const t = threadMap.get(id);\n return {\n id,\n label: t?.title || t?.preview?.slice(0, 30) || \"New chat\",\n status: runningThreads.has(id)\n ? (\"running\" as const)\n : (messageCounts[id] ?? t?.messageCount ?? 0) > 0\n ? (\"completed\" as const)\n : (\"idle\" as const),\n parentThreadId: parentMap[id],\n subAgentName: subAgentNames[id],\n };\n });\n\n // Include sub-agent tabs that aren't in threadMap yet (just created, not refreshed)\n for (const id of openTabIds) {\n if (!tabs.some((t) => t.id === id)) {\n tabs.push({\n id,\n label:\n subAgentNames[id] || (parentMap[id] ? \"Sub-agent...\" : \"New chat\"),\n status: \"running\" as const,\n parentThreadId: parentMap[id],\n subAgentName: subAgentNames[id],\n });\n }\n }\n\n const headerProps: MultiTabAssistantChatHeaderProps = {\n tabs,\n activeTabId: activeThreadId ?? \"\",\n activeTabMessageCount: activeThreadId\n ? (messageCounts[activeThreadId] ?? 0)\n : 0,\n setActiveTabId: switchThread,\n addTab,\n closeTab,\n closeOtherTabs,\n closeAllTabs,\n clearActiveTab,\n showHistory,\n toggleHistory: () => setShowHistory((v) => !v),\n tabCount: openTabIds.length,\n };\n\n if (isLoading) {\n return <ChatSkeleton headerOnly={contentHidden} />;\n }\n\n return (\n <div className=\"flex flex-1 flex-col h-full min-h-0 overflow-x-hidden\">\n {/* Tailwind group-hover/tab doesn't work in core package — inject directly */}\n <style\n dangerouslySetInnerHTML={{\n __html:\n \".agent-tab-close{opacity:0}.agent-tab:hover .agent-tab-close{opacity:1}\",\n }}\n />\n {renderHeader\n ? renderHeader(headerProps)\n : showTabBar\n ? (() => {\n const activeTab = tabs.find((t) => t.id === activeThreadId);\n const focusParentId = activeTab?.parentThreadId || activeThreadId;\n const childTabs = tabs.filter(\n (t) => t.parentThreadId === focusParentId,\n );\n const hasSubTabs = childTabs.length > 0;\n const mainTabs = tabs.filter((t) => !t.parentThreadId);\n\n return (\n <>\n <div className=\"flex items-center px-1 py-1 border-b border-border shrink-0 gap-0.5\">\n <div className=\"flex items-center gap-0.5 min-w-0 overflow-x-auto scrollbar-none flex-1\">\n {mainTabs.map((tab) => {\n const isActive =\n tab.id === activeThreadId ||\n (tab.id === focusParentId &&\n activeTab?.parentThreadId === tab.id);\n return (\n <div\n key={tab.id}\n ref={isActive ? activeTabRefCb : undefined}\n className={cn(\n \"agent-tab relative flex items-center rounded-md text-[11px] font-medium shrink-0 max-w-[130px]\",\n isActive\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground hover:text-foreground hover:bg-accent\",\n )}\n >\n <button\n type=\"button\"\n onClick={() => switchThread(tab.id)}\n className=\"flex items-center gap-1 px-2.5 py-1.5 min-w-0 flex-1 text-left\"\n >\n <span className=\"truncate pr-1\">{tab.label}</span>\n {tab.status === \"running\" && (\n <span className=\"w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse\" />\n )}\n </button>\n <button\n type=\"button\"\n aria-label=\"Close tab\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n closeTab(tab.id);\n }}\n className=\"agent-tab-close flex items-center justify-end text-muted-foreground hover:!text-foreground\"\n style={{\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n width: 28,\n paddingRight: 6,\n borderRadius: \"0 6px 6px 0\",\n background:\n \"linear-gradient(to right, transparent, hsl(var(--accent)) 40%)\",\n }}\n >\n <IconX size={12} />\n </button>\n </div>\n );\n })}\n </div>\n <div className=\"flex items-center gap-px shrink-0 ml-auto\">\n <button\n onClick={addTab}\n className=\"flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50\"\n title=\"New chat\"\n aria-label=\"New chat\"\n >\n <IconPlus size={12} />\n </button>\n <button\n onClick={() => setShowHistory(!showHistory)}\n aria-label=\"Chat history\"\n className={cn(\n \"flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground hover:bg-accent/50\",\n showHistory && \"bg-accent text-foreground\",\n )}\n title=\"Chat history\"\n >\n <IconHistory size={12} />\n </button>\n </div>\n </div>\n {hasSubTabs && (\n <div className=\"flex items-center px-1 py-0.5 border-b border-border shrink-0 gap-0.5 bg-muted/30\">\n <div className=\"flex items-center gap-0.5 min-w-0 overflow-x-auto scrollbar-none flex-1\">\n <button\n onClick={() => switchThread(focusParentId!)}\n className={cn(\n \"flex shrink-0 items-center gap-1 rounded-md px-2 py-1 text-[10px] font-medium cursor-pointer\",\n activeThreadId === focusParentId\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground hover:bg-accent hover:text-foreground\",\n )}\n >\n Main\n </button>\n {childTabs.map((tab) => (\n <div\n key={tab.id}\n ref={\n tab.id === activeThreadId\n ? activeTabRefCb\n : undefined\n }\n className={cn(\n \"agent-tab relative flex shrink-0 items-center rounded-md text-[10px] font-medium max-w-[130px]\",\n tab.id === activeThreadId\n ? \"bg-accent text-foreground\"\n : \"text-muted-foreground hover:bg-accent hover:text-foreground\",\n )}\n >\n <button\n type=\"button\"\n onClick={() => switchThread(tab.id)}\n className=\"flex items-center gap-1 px-2 py-1 min-w-0 flex-1 text-left\"\n >\n <span className=\"truncate pr-1\">\n {tab.subAgentName || tab.label}\n </span>\n {tab.status === \"running\" && (\n <span className=\"w-1 h-1 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse\" />\n )}\n </button>\n <button\n type=\"button\"\n aria-label=\"Close tab\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n closeTab(tab.id);\n }}\n className=\"agent-tab-close flex items-center justify-end text-muted-foreground hover:!text-foreground\"\n style={{\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n width: 24,\n paddingRight: 4,\n borderRadius: \"0 6px 6px 0\",\n background:\n \"linear-gradient(to right, transparent, hsl(var(--accent)) 40%)\",\n }}\n >\n <IconX size={12} />\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n );\n })()\n : null}\n\n {/* Chat content with optional overlay */}\n <div className=\"relative flex-1 flex flex-col min-h-0\">\n {renderOverlay ? renderOverlay(headerProps) : null}\n\n {/* History popover — rendered inside relative container so positioning works */}\n {showHistory && (\n <HistoryPopover\n threads={threads}\n openTabIds={new Set(openTabIds)}\n onSelect={openFromHistory}\n onClose={() => setShowHistory(false)}\n onSearch={searchThreads}\n />\n )}\n\n {/* Help popover — shown by /help slash command */}\n {helpVisible && <HelpPopover onClose={() => setHelpVisible(false)} />}\n\n {/* Render tabs that have been activated at least once, hide inactive ones to preserve state.\n Sub-agent tabs are only mounted when first focused — prevents stale restore from running\n while the component is display:none before the user switches to it. */}\n {[...new Set(openTabIds)]\n .filter(\n (tabId) =>\n tabId === activeThreadId || mountedTabsRef.current.has(tabId),\n )\n .map((tabId) => (\n <div\n key={tabId}\n className=\"flex-1 min-h-0\"\n style={{\n display:\n contentHidden || tabId !== activeThreadId ? \"none\" : \"flex\",\n }}\n >\n <AssistantChat\n {...props}\n ref={(handle) => {\n if (handle) {\n chatRefs.current.set(tabId, handle);\n } else {\n chatRefs.current.delete(tabId);\n }\n }}\n threadId={tabId}\n tabId={tabId}\n apiUrl={apiUrl}\n isNewThread={newThreadIds.current.has(tabId)}\n onMessageCountChange={(count) =>\n setMessageCounts((prev) =>\n prev[tabId] === count ? prev : { ...prev, [tabId]: count },\n )\n }\n onSaveThread={handleSaveThread}\n onGenerateTitle={handleGenerateTitle}\n onSlashCommand={handleSlashCommand}\n selectedModel={threadModelRef.current.get(tabId)?.model}\n selectedEngine={threadModelRef.current.get(tabId)?.engine}\n defaultModel={defaultModel}\n availableModels={availableModels}\n onModelChange={handleModelChange}\n onForkChat={() => handleForkChat(tabId)}\n />\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoweredByBadge.js","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,MAAM,cAAc,GAAG,CACrB,QAAwC,EACzB,EAAE,CAAC,CAAC;IACnB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,GAAG,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/D,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EACR,mEAAmE;IACrE,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,0BAA0B;IACjC,UAAU,EAAE,qBAAqB;IACjC,cAAc,EAAE,WAAW;IAC3B,oBAAoB,EAAE,WAAW;IACjC,MAAM,EAAE,+BAA+B;IACvC,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,GAAG;CACb,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,GAAG,cAAc,GACL;IACpB,2BAA2B;IAC3B,MAAM,MAAM,GACT,MAAM,CAAC,IAAI,CAAC,GAA0C;QACrD,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAEpC,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,CACL,8BACE,0BAAQ;iBACG,SAAS;;;;;;;;;;;iBAWT,SAAS;;;;;OAKnB,GAAS,EACV,aACE,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,aAE/B,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,+BAEtB,IACH,CACJ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"PoweredByBadge.js","sourceRoot":"","sources":["../../src/client/PoweredByBadge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,MAAM,cAAc,GAAG,CACrB,QAAwC,EACzB,EAAE,CAAC,CAAC;IACnB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,GAAG,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/D,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EACR,mEAAmE;IACrE,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,0BAA0B;IACjC,UAAU,EAAE,qBAAqB;IACjC,cAAc,EAAE,WAAW;IAC3B,oBAAoB,EAAE,WAAW;IACjC,MAAM,EAAE,+BAA+B;IACvC,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,0BAA0B;IACtC,OAAO,EAAE,GAAG;CACb,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,GAAG,cAAc,GACL;IACpB,2BAA2B;IAC3B,MAAM,MAAM,GACT,MAAM,CAAC,IAAI,CAAC,GAA0C;QACrD,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAEpC,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,CACL,8BACE,0BAAQ;iBACG,SAAS;;;;;;;;;;;iBAWT,SAAS;;;;;OAKnB,GAAS,EACV,aACE,IAAI,EAAC,0BAA0B,EAC/B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,aAE/B,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,+BAEtB,IACH,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type { CSSProperties } from \"react\";\nimport { IconStack2 } from \"@tabler/icons-react\";\n\nexport interface PoweredByBadgeProps {\n position?: \"bottom-right\" | \"bottom-left\";\n}\n\nconst containerStyle = (\n position: \"bottom-right\" | \"bottom-left\",\n): CSSProperties => ({\n position: \"fixed\",\n bottom: 16,\n ...(position === \"bottom-right\" ? { right: 16 } : { left: 16 }),\n zIndex: 50,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n padding: \"6px 12px\",\n borderRadius: 8,\n fontSize: 12,\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontWeight: 500,\n lineHeight: 1,\n color: \"rgba(150, 150, 150, 0.9)\",\n background: \"rgba(0, 0, 0, 0.05)\",\n backdropFilter: \"blur(8px)\",\n WebkitBackdropFilter: \"blur(8px)\",\n border: \"1px solid rgba(0, 0, 0, 0.06)\",\n textDecoration: \"none\",\n transition: \"opacity 0.2s, color 0.2s\",\n opacity: 0.7,\n});\n\nconst darkQuery = \"(prefers-color-scheme: dark)\";\n\n/**\n * Small branding badge: \"Built with Agent Native\"\n *\n * - Fixed position in the corner\n * - Subtle, semi-transparent\n * - Links to https://agent-native.com\n * - Respects prefers-color-scheme\n * - Can be hidden via HIDE_BRANDING=true env var (for white-label)\n */\nexport function PoweredByBadge({\n position = \"bottom-right\",\n}: PoweredByBadgeProps) {\n // Allow hiding via env var\n const hidden =\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_HIDE_BRANDING === \"true\";\n\n if (hidden) return null;\n\n return (\n <>\n <style>{`\n @media ${darkQuery} {\n .an-powered-badge {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.08) !important;\n color: rgba(180, 180, 180, 0.9) !important;\n }\n }\n .an-powered-badge:hover {\n opacity: 1 !important;\n color: rgba(100, 100, 100, 1) !important;\n }\n @media ${darkQuery} {\n .an-powered-badge:hover {\n color: rgba(220, 220, 220, 1) !important;\n }\n }\n `}</style>\n <a\n href=\"https://agent-native.com\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"an-powered-badge\"\n style={containerStyle(position)}\n >\n <IconStack2 size={14} />\n Built with Agent Native\n </a>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductionAgentPanel.js","sourceRoot":"","sources":["../../src/client/ProductionAgentPanel.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,YAAY,IAAI,oBAAoB,EACpC,iBAAiB,GAElB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ProductionAgentPanel.js","sourceRoot":"","sources":["../../src/client/ProductionAgentPanel.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,YAAY,IAAI,oBAAoB,EACpC,iBAAiB,GAElB,MAAM,iBAAiB,CAAC","sourcesContent":["/**\n * @deprecated Use AgentSidebar and AgentToggleButton from \"./AgentPanel.js\" instead.\n * This file re-exports for backward compatibility.\n */\nexport {\n AgentSidebar as ProductionAgentPanel,\n AgentToggleButton,\n type AgentSidebarProps as ProductionAgentPanelProps,\n} from \"./AgentPanel.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Turnstile.js","sourceRoot":"","sources":["../../src/client/Turnstile.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Turnstile.js","sourceRoot":"","sources":["../../src/client/Turnstile.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useCallback, useState } from \"react\";\n\nexport interface TurnstileProps {\n /** Turnstile site key. Falls back to VITE_TURNSTILE_SITE_KEY env var. */\n siteKey?: string;\n /** Called with the verification token when Turnstile completes. */\n onVerify: (token: string) => void;\n /** Called when the token expires. */\n onExpire?: () => void;\n /**\n * Turnstile appearance mode:\n * - \"managed\" (default): invisible unless a challenge is needed\n * - \"invisible\": fully invisible, never shows UI\n */\n mode?: \"managed\" | \"invisible\";\n /** Additional className for the container div. */\n className?: string;\n}\n\ndeclare global {\n interface Window {\n turnstile?: {\n render: (\n container: HTMLElement,\n options: Record<string, unknown>,\n ) => string;\n reset: (widgetId: string) => void;\n remove: (widgetId: string) => void;\n };\n __turnstileOnLoad?: () => void;\n }\n}\n\nconst SCRIPT_ID = \"cf-turnstile-script\";\nconst SCRIPT_SRC =\n \"https://challenges.cloudflare.com/turnstile/v0/api.js?onload=__turnstileOnLoad\";\n\nlet scriptLoadPromise: Promise<void> | null = null;\n\nfunction loadTurnstileScript(): Promise<void> {\n if (scriptLoadPromise) return scriptLoadPromise;\n if (window.turnstile) return Promise.resolve();\n\n scriptLoadPromise = new Promise<void>((resolve) => {\n window.__turnstileOnLoad = () => {\n resolve();\n delete window.__turnstileOnLoad;\n };\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.src = SCRIPT_SRC;\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n });\n\n return scriptLoadPromise;\n}\n\n/**\n * Cloudflare Turnstile captcha widget.\n *\n * Renders nothing if no site key is available (graceful opt-in).\n * In \"managed\" mode (default), the widget is invisible unless\n * Turnstile determines a challenge is needed.\n */\nexport function Turnstile({\n siteKey,\n onVerify,\n onExpire,\n mode = \"managed\",\n className,\n}: TurnstileProps) {\n const resolvedKey =\n siteKey ||\n (import.meta.env as Record<string, string | undefined>)\n ?.VITE_TURNSTILE_SITE_KEY;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const widgetIdRef = useRef<string | null>(null);\n const [ready, setReady] = useState(false);\n\n const onVerifyRef = useRef(onVerify);\n onVerifyRef.current = onVerify;\n const onExpireRef = useRef(onExpire);\n onExpireRef.current = onExpire;\n\n useEffect(() => {\n if (!resolvedKey) return;\n loadTurnstileScript().then(() => setReady(true));\n }, [resolvedKey]);\n\n const renderWidget = useCallback(() => {\n if (\n !ready ||\n !resolvedKey ||\n !containerRef.current ||\n !window.turnstile ||\n widgetIdRef.current\n )\n return;\n\n widgetIdRef.current = window.turnstile.render(containerRef.current, {\n sitekey: resolvedKey,\n appearance: mode === \"invisible\" ? \"interaction-only\" : \"managed\",\n callback: (token: string) => onVerifyRef.current(token),\n \"expired-callback\": () => onExpireRef.current?.(),\n });\n }, [ready, resolvedKey, mode]);\n\n useEffect(() => {\n renderWidget();\n return () => {\n if (widgetIdRef.current && window.turnstile) {\n window.turnstile.remove(widgetIdRef.current);\n widgetIdRef.current = null;\n }\n };\n }, [renderWidget]);\n\n // Render nothing if no site key — captcha is opt-in\n if (!resolvedKey) return null;\n\n return <div ref={containerRef} className={className} />;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-run-state.js","sourceRoot":"","sources":["../../src/client/active-run-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAQ5C,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACpB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"active-run-state.js","sourceRoot":"","sources":["../../src/client/active-run-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAQ5C,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACpB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC","sourcesContent":["const STORAGE_KEY = \"agent-chat-active-run\";\n\nexport interface ActiveRunState {\n threadId: string;\n runId: string;\n lastSeq: number;\n}\n\nexport function setActiveRun(state: ActiveRunState): void {\n try {\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(state));\n } catch {}\n}\n\nexport function getActiveRun(): ActiveRunState | null {\n try {\n const raw = sessionStorage.getItem(STORAGE_KEY);\n if (!raw) return null;\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n\nexport function updateActiveRunSeq(seq: number): void {\n const state = getActiveRun();\n if (state) {\n state.lastSeq = seq;\n setActiveRun(state);\n }\n}\n\nexport function clearActiveRun(): void {\n try {\n sessionStorage.removeItem(STORAGE_KEY);\n } catch {}\n}\n"]}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { ChatModelAdapter } from "@assistant-ui/react";
|
|
2
|
+
/**
|
|
3
|
+
* Instruction prefixed to the outgoing user message when the composer's
|
|
4
|
+
* exec mode is "plan". Lives in the request body only — not in the
|
|
5
|
+
* displayed chat history — so the user's bubble stays clean while the
|
|
6
|
+
* LLM still sees the planning constraint on every plan-mode turn.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PLAN_MODE_INSTRUCTION: string;
|
|
2
9
|
/**
|
|
3
10
|
* Creates a ChatModelAdapter that connects to the agent-native
|
|
4
11
|
* `/_agent-native/agent-chat` SSE endpoint. Supports reconnection via run-manager.
|
|
@@ -13,5 +20,8 @@ export declare function createAgentChatAdapter(options?: {
|
|
|
13
20
|
engineRef?: {
|
|
14
21
|
current: string | undefined;
|
|
15
22
|
};
|
|
23
|
+
execModeRef?: {
|
|
24
|
+
current: "build" | "plan" | undefined;
|
|
25
|
+
};
|
|
16
26
|
}): ChatModelAdapter;
|
|
17
27
|
//# sourceMappingURL=agent-chat-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AAShF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3C,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAC;AAShF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAK6D,CAAC;AAEhG;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3C,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC5C,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD,GAAG,gBAAgB,CAwVnB"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { setActiveRun, updateActiveRunSeq, clearActiveRun, } from "./active-run-state.js";
|
|
2
2
|
import { readSSEStream } from "./sse-event-processor.js";
|
|
3
3
|
import { agentNativePath } from "./api-path.js";
|
|
4
|
+
/**
|
|
5
|
+
* Instruction prefixed to the outgoing user message when the composer's
|
|
6
|
+
* exec mode is "plan". Lives in the request body only — not in the
|
|
7
|
+
* displayed chat history — so the user's bubble stays clean while the
|
|
8
|
+
* LLM still sees the planning constraint on every plan-mode turn.
|
|
9
|
+
*/
|
|
10
|
+
export const PLAN_MODE_INSTRUCTION = `PLAN MODE ACTIVE: Before making any changes, you MUST:\n` +
|
|
11
|
+
`1. Explore the codebase to understand what's needed\n` +
|
|
12
|
+
`2. Write a plan to \`.builder/plans/YYYY-MM-DD-<topic>.md\`\n` +
|
|
13
|
+
`3. Present your approach clearly and wait for the user's explicit approval\n` +
|
|
14
|
+
`Do NOT edit any files, run any scripts, or make any changes until the user says to proceed.`;
|
|
4
15
|
/**
|
|
5
16
|
* Creates a ChatModelAdapter that connects to the agent-native
|
|
6
17
|
* `/_agent-native/agent-chat` SSE endpoint. Supports reconnection via run-manager.
|
|
@@ -11,6 +22,7 @@ export function createAgentChatAdapter(options) {
|
|
|
11
22
|
const threadId = options?.threadId;
|
|
12
23
|
const modelRef = options?.modelRef;
|
|
13
24
|
const engineRef = options?.engineRef;
|
|
25
|
+
const execModeRef = options?.execModeRef;
|
|
14
26
|
return {
|
|
15
27
|
async *run({ messages, abortSignal, runConfig }) {
|
|
16
28
|
// Extract latest user message and build history from prior messages
|
|
@@ -21,10 +33,17 @@ export function createAgentChatAdapter(options) {
|
|
|
21
33
|
break;
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
|
-
const
|
|
36
|
+
const rawMessageText = lastUserMsg?.content
|
|
25
37
|
.filter((p) => p.type === "text")
|
|
26
38
|
.map((p) => p.text)
|
|
27
39
|
.join("\n") ?? "";
|
|
40
|
+
// Prepend the plan-mode instruction to the LLM-bound message when the
|
|
41
|
+
// composer's exec mode is "plan". The chat UI keeps the original text
|
|
42
|
+
// (rendered from `lastUserMsg.content`), so the user's bubble stays
|
|
43
|
+
// clean — only the request body carries the prefix.
|
|
44
|
+
const messageText = execModeRef?.current === "plan"
|
|
45
|
+
? `${PLAN_MODE_INSTRUCTION}\n\n${rawMessageText}`
|
|
46
|
+
: rawMessageText;
|
|
28
47
|
// Extract attachments (images as base64, text as content).
|
|
29
48
|
// assistant-ui puts user attachments on msg.attachments (not on content);
|
|
30
49
|
// each attachment carries its own content parts from the adapter.
|
|
@@ -194,7 +213,7 @@ export function createAgentChatAdapter(options) {
|
|
|
194
213
|
if (runId && threadId) {
|
|
195
214
|
updateActiveRunSeq(seq);
|
|
196
215
|
}
|
|
197
|
-
});
|
|
216
|
+
}, runId);
|
|
198
217
|
// Run completed normally — clear active run state
|
|
199
218
|
clearActiveRun();
|
|
200
219
|
}
|
|
@@ -239,7 +258,7 @@ export function createAgentChatAdapter(options) {
|
|
|
239
258
|
if (threadId) {
|
|
240
259
|
updateActiveRunSeq(seq);
|
|
241
260
|
}
|
|
242
|
-
});
|
|
261
|
+
}, runId);
|
|
243
262
|
reconnected = true;
|
|
244
263
|
clearActiveRun();
|
|
245
264
|
break;
|
|
@@ -270,6 +289,7 @@ export function createAgentChatAdapter(options) {
|
|
|
270
289
|
type: "incomplete",
|
|
271
290
|
reason: "error",
|
|
272
291
|
},
|
|
292
|
+
...(runId ? { metadata: { custom: { runId } } } : {}),
|
|
273
293
|
};
|
|
274
294
|
}
|
|
275
295
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-adapter.js","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-chat-adapter.js","sourceRoot":"","sources":["../../src/client/agent-chat-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChatModelAdapter, ChatModelRunResult } from \"@assistant-ui/react\";\nimport {\n setActiveRun,\n updateActiveRunSeq,\n clearActiveRun,\n} from \"./active-run-state.js\";\nimport { type ContentPart, readSSEStream } from \"./sse-event-processor.js\";\nimport { agentNativePath } from \"./api-path.js\";\n\n/**\n * Instruction prefixed to the outgoing user message when the composer's\n * exec mode is \"plan\". Lives in the request body only — not in the\n * displayed chat history — so the user's bubble stays clean while the\n * LLM still sees the planning constraint on every plan-mode turn.\n */\nexport const PLAN_MODE_INSTRUCTION =\n `PLAN MODE ACTIVE: Before making any changes, you MUST:\\n` +\n `1. Explore the codebase to understand what's needed\\n` +\n `2. Write a plan to \\`.builder/plans/YYYY-MM-DD-<topic>.md\\`\\n` +\n `3. Present your approach clearly and wait for the user's explicit approval\\n` +\n `Do NOT edit any files, run any scripts, or make any changes until the user says to proceed.`;\n\n/**\n * Creates a ChatModelAdapter that connects to the agent-native\n * `/_agent-native/agent-chat` SSE endpoint. Supports reconnection via run-manager.\n */\nexport function createAgentChatAdapter(options?: {\n apiUrl?: string;\n tabId?: string;\n threadId?: string;\n modelRef?: { current: string | undefined };\n engineRef?: { current: string | undefined };\n execModeRef?: { current: \"build\" | \"plan\" | undefined };\n}): ChatModelAdapter {\n const apiUrl =\n options?.apiUrl ?? agentNativePath(\"/_agent-native/agent-chat\");\n const tabId = options?.tabId;\n const threadId = options?.threadId;\n const modelRef = options?.modelRef;\n const engineRef = options?.engineRef;\n const execModeRef = options?.execModeRef;\n\n return {\n async *run({ messages, abortSignal, runConfig }) {\n // Extract latest user message and build history from prior messages\n let lastUserMsg: (typeof messages)[number] | undefined;\n for (let i = messages.length - 1; i >= 0; i--) {\n if (messages[i].role === \"user\") {\n lastUserMsg = messages[i];\n break;\n }\n }\n const rawMessageText =\n lastUserMsg?.content\n .filter((p): p is { type: \"text\"; text: string } => p.type === \"text\")\n .map((p) => p.text)\n .join(\"\\n\") ?? \"\";\n\n // Prepend the plan-mode instruction to the LLM-bound message when the\n // composer's exec mode is \"plan\". The chat UI keeps the original text\n // (rendered from `lastUserMsg.content`), so the user's bubble stays\n // clean — only the request body carries the prefix.\n const messageText =\n execModeRef?.current === \"plan\"\n ? `${PLAN_MODE_INSTRUCTION}\\n\\n${rawMessageText}`\n : rawMessageText;\n\n // Extract attachments (images as base64, text as content).\n // assistant-ui puts user attachments on msg.attachments (not on content);\n // each attachment carries its own content parts from the adapter.\n const attachments: {\n type: string;\n name: string;\n contentType?: string;\n data?: string;\n text?: string;\n }[] = [];\n if (lastUserMsg && \"attachments\" in lastUserMsg) {\n const msgAttachments = (\n lastUserMsg as {\n attachments?: readonly {\n name: string;\n contentType?: string;\n content: readonly Record<string, unknown>[];\n }[];\n }\n ).attachments;\n for (const att of msgAttachments ?? []) {\n for (const part of att.content) {\n if (part.type === \"image\" && typeof part.image === \"string\") {\n attachments.push({\n type: \"image\",\n name: att.name,\n contentType: att.contentType,\n data: part.image,\n });\n } else if (part.type === \"file\" && typeof part.data === \"string\") {\n attachments.push({\n type: \"file\",\n name: att.name,\n contentType:\n att.contentType ??\n (typeof part.mimeType === \"string\"\n ? part.mimeType\n : undefined),\n text: part.data,\n });\n } else if (part.type === \"text\" && typeof part.text === \"string\") {\n attachments.push({\n type: \"file\",\n name: att.name,\n contentType: att.contentType,\n text: part.text,\n });\n }\n }\n }\n }\n\n const history = messages\n .slice(0, -1) // exclude the latest user message\n .filter((m) => m.role === \"user\" || m.role === \"assistant\")\n .map((m) => ({\n role: m.role as \"user\" | \"assistant\",\n content: m.content\n .filter(\n (p): p is { type: \"text\"; text: string } => p.type === \"text\",\n )\n .map((p) => p.text.replace(/@\\[([^\\]|]+)\\|[^\\]]+\\]/g, \"@$1\"))\n .join(\"\\n\"),\n }))\n .filter((m) => m.content.trim());\n\n // Signal that generation is starting\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: { isRunning: true, tabId },\n }),\n );\n }\n\n const content: ContentPart[] = [];\n const toolCallCounter = { value: 0 };\n let runId: string | null = null;\n let lastSeq = -1;\n\n try {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n try {\n const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (tz) headers[\"x-user-timezone\"] = tz;\n } catch {\n // Non-browser or Intl unavailable — tool calls will fall back to UTC.\n }\n const res = await fetch(apiUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n message: messageText.replace(/@\\[([^\\]|]+)\\|[^\\]]+\\]/g, \"@$1\"),\n history,\n ...(threadId ? { threadId } : {}),\n ...(modelRef?.current ? { model: modelRef.current } : {}),\n ...(engineRef?.current ? { engine: engineRef.current } : {}),\n ...(attachments.length > 0 ? { attachments } : {}),\n ...(runConfig?.custom?.references\n ? { references: runConfig.custom.references }\n : {}),\n }),\n signal: abortSignal,\n });\n\n // Check for auth errors returned as 200 with JSON (common with middleware issues)\n const contentType = res.headers.get(\"content-type\") || \"\";\n if (\n res.ok &&\n contentType.includes(\"application/json\") &&\n !contentType.includes(\"text/event-stream\")\n ) {\n try {\n const body = await res.text();\n const parsed = JSON.parse(body);\n if (parsed.error) {\n throw new Error(parsed.error);\n }\n } catch (e) {\n if (\n e instanceof Error &&\n e.message !== \"Unexpected end of JSON input\"\n ) {\n throw e;\n }\n }\n }\n\n if (!res.ok) {\n // 405 Method Not Allowed usually means the session is broken/expired\n // (e.g. a redirect to a login page that only accepts GET).\n if (res.status === 405) {\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(\"agent-chat:auth-error\", {\n detail: { reason: \"session-expired\" },\n }),\n );\n }\n content.push({ type: \"text\", text: \"\" });\n yield {\n content: [...content],\n status: {\n type: \"incomplete\" as const,\n reason: \"error\" as const,\n },\n } as ChatModelRunResult;\n return;\n }\n\n let errorText = `Server error: ${res.status}`;\n try {\n const body = await res.text();\n if (\n body.includes(\"apiKey\") ||\n body.includes(\"authToken\") ||\n body.includes(\"ANTHROPIC_API_KEY\") ||\n body.includes(\"authentication\")\n ) {\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(new Event(\"agent-chat:missing-api-key\"));\n }\n content.push({ type: \"text\", text: \"\" });\n yield {\n content: [...content],\n status: {\n type: \"incomplete\" as const,\n reason: \"error\" as const,\n },\n } as ChatModelRunResult;\n return;\n } else if (body.includes(\"Cannot find any path\")) {\n errorText =\n \"Agent chat endpoint not found. Make sure the agent-chat plugin is loaded in server/plugins/.\";\n } else if (body) {\n errorText = body.length > 200 ? body.slice(0, 200) + \"...\" : body;\n }\n } catch {}\n throw new Error(errorText);\n }\n if (!res.body) {\n throw new Error(\"No response body\");\n }\n\n // Track the run ID for reconnection\n runId = res.headers.get(\"X-Run-Id\");\n if (runId && threadId) {\n setActiveRun({ threadId, runId, lastSeq: -1 });\n }\n\n yield* readSSEStream(\n res.body,\n content,\n toolCallCounter,\n tabId,\n (seq) => {\n lastSeq = seq;\n if (runId && threadId) {\n updateActiveRunSeq(seq);\n }\n },\n runId,\n );\n\n // Run completed normally — clear active run state\n clearActiveRun();\n } catch (err: unknown) {\n if (err instanceof Error && err.name === \"AbortError\") {\n // User-initiated abort (Stop button) — clear active run\n clearActiveRun();\n return;\n }\n\n const errMsg =\n err instanceof Error ? err.message : \"Something went wrong.\";\n const isAuthError =\n errMsg.includes(\"Unauthorized\") ||\n errMsg.includes(\"Not authenticated\") ||\n errMsg.includes(\"401\") ||\n errMsg.includes(\"403\") ||\n errMsg.includes(\"405\");\n\n // Don't try to reconnect for auth/client errors — show error directly\n if (isAuthError) {\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(new Event(\"agent-chat:auth-error\"));\n }\n content.push({ type: \"text\", text: \"\" });\n yield {\n content: [...content],\n status: {\n type: \"incomplete\" as const,\n reason: \"error\" as const,\n },\n };\n clearActiveRun();\n return;\n }\n\n // Connection lost — try to reconnect to the run\n if (runId && lastSeq >= 0) {\n let reconnected = false;\n for (let attempt = 0; attempt < 3; attempt++) {\n try {\n const reconnectRes = await fetch(\n `${apiUrl}/runs/${encodeURIComponent(runId)}/events?after=${lastSeq + 1}`,\n { signal: abortSignal },\n );\n if (!reconnectRes.ok || !reconnectRes.body) break;\n\n yield* readSSEStream(\n reconnectRes.body,\n content,\n toolCallCounter,\n tabId,\n (seq) => {\n lastSeq = seq;\n if (threadId) {\n updateActiveRunSeq(seq);\n }\n },\n runId,\n );\n reconnected = true;\n clearActiveRun();\n break;\n } catch (reconnectErr: unknown) {\n if (\n reconnectErr instanceof Error &&\n reconnectErr.name === \"AbortError\"\n ) {\n clearActiveRun();\n return;\n }\n // Wait briefly before retrying\n await new Promise((r) => setTimeout(r, 1000));\n }\n }\n\n if (reconnected) return;\n }\n\n // Reconnect failed or not possible — show error with details\n content.push({\n type: \"text\",\n text: errMsg.startsWith(\"Server error:\")\n ? errMsg\n : `Something went wrong: ${errMsg}`,\n });\n yield {\n content: [...content],\n status: {\n type: \"incomplete\" as const,\n reason: \"error\" as const,\n },\n ...(runId ? { metadata: { custom: { runId } } } : {}),\n };\n } finally {\n if (typeof window !== \"undefined\") {\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: { isRunning: false, tabId },\n }),\n );\n }\n }\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat.js","sourceRoot":"","sources":["../../src/client/agent-chat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAqDnE,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACnD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACzC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;aAC1B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE;KACzB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAG,cAAc,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE1C,yEAAyE;IACzE,qEAAqE;IACrE,sEAAsE;IACtE,qDAAqD;IACrD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-chat.js","sourceRoot":"","sources":["../../src/client/agent-chat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAqDnE,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACnD,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACzC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;aAC1B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE;KACzB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,YAAY,GAAG,cAAc,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAChE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE1C,yEAAyE;IACzE,qEAAqE;IACrE,sEAAsE;IACtE,qDAAqD;IACrD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Agent Chat Bridge (browser)\n *\n * Sends structured messages to the agent chat from UI interactions.\n * Messages are sent via postMessage to the parent window (or self if top-level).\n */\n\nimport { getFrameOrigin, isTrustedFrameMessage } from \"./frame.js\";\n\nexport interface AgentChatMessage {\n /** The visible prompt message sent to the chat */\n message: string;\n /** Hidden context appended to the message (not shown in chat UI) */\n context?: string;\n /** true = auto-submit, false = prefill only, omit = use project setting */\n submit?: boolean;\n /** Optional project slug for structured context */\n projectSlug?: string;\n /** Optional preset name for downstream consumers */\n preset?: string;\n /** Optional reference image paths */\n referenceImagePaths?: string[];\n /** Optional uploaded reference images */\n uploadedReferenceImages?: string[];\n /** Stable tab identifier — auto-generated if omitted */\n tabId?: string;\n /**\n * Message routing type:\n * - \"content\" (default): stays in the embedded app agent for content/data operations\n * - \"code\": routes to the code editing frame (local dev frame or Builder.io)\n *\n * When type is \"code\" and no frame is connected, a dialog is shown.\n * `requiresCode: true` is treated as `type: \"code\"` for backward compatibility.\n */\n type?: \"content\" | \"code\";\n /** @deprecated Use `type: \"code\"` instead. If true, treated as `type: \"code\"`. */\n requiresCode?: boolean;\n /** Model preference for this sub-agent (e.g. \"claude-haiku-4-5\"). Uses default if omitted */\n model?: string;\n /** Scoped system prompt additions for this sub-agent */\n instructions?: string;\n /**\n * Whether to open the agent sidebar if it's currently hidden.\n * Defaults to true — submitting a chat should make the response visible.\n * Pass `false` for background/silent sends that shouldn't pop the UI open.\n */\n openSidebar?: boolean;\n /**\n * When true, opens a new chat tab before sending the message.\n * Use for creation requests (create tool, dashboard, etc.) that deserve\n * their own isolated thread rather than cluttering an existing conversation.\n */\n newTab?: boolean;\n /**\n * When true with newTab, creates the tab in the background without\n * focusing it or opening the sidebar. The message runs silently.\n */\n background?: boolean;\n}\n\nconst AGENT_CHAT_MESSAGE_TYPE = \"agentNative.submitChat\";\n\n/**\n * Listen for chatRunning messages from the frame (postMessage)\n * and re-dispatch as a CustomEvent so hooks like useAgentChatGenerating() work.\n */\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"message\", (event) => {\n if (!isTrustedFrameMessage(event)) return;\n if (event.data?.type === \"agentNative.chatRunning\") {\n window.dispatchEvent(\n new CustomEvent(\"agentNative.chatRunning\", {\n detail: event.data.detail,\n }),\n );\n }\n });\n}\n\n/** Generate a unique tab ID */\nexport function generateTabId(): string {\n return `chat-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\n/**\n * Send a message to the agent chat via postMessage.\n */\n/**\n * Send a message to the agent chat via postMessage.\n * Returns the stable tabId for tracking this chat run.\n */\nexport function sendToAgentChat(opts: AgentChatMessage): string {\n const tabId = opts.tabId ?? generateTabId();\n const payload = {\n type: AGENT_CHAT_MESSAGE_TYPE,\n data: { ...opts, tabId },\n };\n\n const target = window.parent !== window ? window.parent : window;\n const targetOrigin = getFrameOrigin() || window.location.origin;\n target.postMessage(payload, targetOrigin);\n\n // Surface the sidebar so the user sees the response. Callers can opt out\n // via `openSidebar: false` for background/silent sends. AgentSidebar\n // listens for this event; the parent-frame case is handled by whoever\n // owns that sidebar receiving the postMessage above.\n if (opts.openSidebar !== false && !opts.background) {\n window.dispatchEvent(new CustomEvent(\"agent-panel:open\"));\n }\n return tabId;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/client/analytics.ts"],"names":[],"mappings":"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","sourcesContent":["import * as amplitude from \"@amplitude/analytics-browser\";\nimport * as Sentry from \"@sentry/browser\";\n\ndeclare global {\n interface Window {\n gtag?: (...args: any[]) => void;\n }\n}\n\ntype GetDefaultProps = (\n name: string,\n properties: Record<string, unknown>,\n) => Record<string, unknown>;\n\nlet _getDefaultProps: GetDefaultProps | null = null;\nlet _amplitudeInitialized = false;\nlet _sentryInitialized = false;\n\nfunction ensureAmplitude(): boolean {\n if (_amplitudeInitialized) return true;\n const key = (import.meta.env as Record<string, string | undefined>)\n ?.VITE_AMPLITUDE_API_KEY;\n if (!key) return false;\n amplitude.init(key, { autocapture: true });\n _amplitudeInitialized = true;\n return true;\n}\n\n/**\n * Query parameters that may carry sensitive values in the URL bar. Browser\n * Sentry collects `event.request.url` automatically; without scrubbing,\n * share tokens, password params (F-07), email-confirm tokens, etc. land in\n * Sentry events and become a recon vector for anyone with project access.\n */\nconst SENSITIVE_QUERY_PARAMS = new Set([\n \"password\",\n \"p\",\n \"token\",\n \"state\",\n \"code\",\n \"share\",\n \"share_token\",\n]);\n\nfunction scrubUrl(url: string | undefined): string | undefined {\n if (!url || typeof url !== \"string\") return url;\n try {\n // Parse using a base origin so relative URLs still work.\n const u = new URL(url, \"http://placeholder.local\");\n let mutated = false;\n for (const key of Array.from(u.searchParams.keys())) {\n if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) {\n u.searchParams.set(key, \"<redacted>\");\n mutated = true;\n }\n }\n if (!mutated) return url;\n // If the original URL was relative, return only the path/query/fragment.\n if (u.origin === \"http://placeholder.local\") {\n return `${u.pathname}${u.search}${u.hash}`;\n }\n return u.toString();\n } catch {\n return url;\n }\n}\n\nfunction ensureSentry(): void {\n if (_sentryInitialized) return;\n const dsn = (import.meta.env as Record<string, string | undefined>)\n ?.VITE_SENTRY_CLIENT_DSN;\n if (!dsn) return;\n Sentry.init({\n dsn,\n beforeSend(event) {\n // Strip sensitive query params from the request URL. React Router\n // history can include share tokens, ?signin=1, password reset codes,\n // public-share password params (audit F-07), etc.\n if (event.request?.url) {\n event.request.url = scrubUrl(event.request.url);\n }\n // Clean the same params from breadcrumb URLs (Sentry captures\n // history.pushState breadcrumbs by default).\n if (Array.isArray(event.breadcrumbs)) {\n for (const crumb of event.breadcrumbs) {\n if (crumb && typeof crumb === \"object\" && \"data\" in crumb) {\n const data = crumb.data as Record<string, unknown> | undefined;\n if (data && typeof data.url === \"string\") {\n data.url = scrubUrl(data.url);\n }\n if (data && typeof data.from === \"string\") {\n data.from = scrubUrl(data.from);\n }\n if (data && typeof data.to === \"string\") {\n data.to = scrubUrl(data.to);\n }\n }\n }\n }\n return event;\n },\n });\n _sentryInitialized = true;\n}\n\nexport function configureTracking(options: {\n getDefaultProps?: GetDefaultProps;\n}): void {\n if (options.getDefaultProps) {\n _getDefaultProps = options.getDefaultProps;\n }\n if (typeof window !== \"undefined\") {\n ensureSentry();\n ensureAmplitude();\n }\n}\n\nfunction resolveProps(\n name: string,\n params?: Record<string, string | number | boolean>,\n): Record<string, unknown> {\n if (typeof window === \"undefined\") return { ...params };\n const base: Record<string, unknown> = {\n url: window.location.origin + window.location.pathname,\n app: window.location.hostname.split(\".\")[0] || \"localhost\",\n ...params,\n };\n return _getDefaultProps ? _getDefaultProps(name, base) : base;\n}\n\nexport function trackEvent(\n name: string,\n params?: Record<string, string | number | boolean>,\n): void {\n if (typeof window === \"undefined\") return;\n ensureSentry();\n const props = resolveProps(name, params);\n window.gtag?.(\"event\", name.replace(/\\s+/g, \"_\"), props);\n if (ensureAmplitude()) {\n amplitude.track(name, props);\n }\n}\n\nexport function trackSessionStatus(signedIn: boolean): void {\n trackEvent(\"session status\", { signed_in: signedIn });\n}\n"]}
|