@agent-native/core 0.79.26 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +39 -0
- package/corpus/core/docs/content/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/actions.mdx +65 -4
- package/corpus/core/docs/content/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/agent-surfaces.mdx +112 -8
- package/corpus/core/docs/content/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/authentication.mdx +122 -8
- package/corpus/core/docs/content/automations.mdx +110 -8
- package/corpus/core/docs/content/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/client.mdx +79 -8
- package/corpus/core/docs/content/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/code-agents-ui.mdx +98 -8
- package/corpus/core/docs/content/components.mdx +118 -8
- package/corpus/core/docs/content/context-awareness.mdx +98 -8
- package/corpus/core/docs/content/creating-templates.mdx +49 -4
- package/corpus/core/docs/content/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/database.mdx +56 -4
- package/corpus/core/docs/content/deployment.mdx +103 -8
- package/corpus/core/docs/content/dispatch.mdx +134 -8
- package/corpus/core/docs/content/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/durable-background-runs.mdx +98 -8
- package/corpus/core/docs/content/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/embedding-sdk.mdx +83 -8
- package/corpus/core/docs/content/evals.mdx +102 -8
- package/corpus/core/docs/content/extensions.mdx +113 -9
- package/corpus/core/docs/content/external-agents.mdx +119 -8
- package/corpus/core/docs/content/faq.mdx +98 -8
- package/corpus/core/docs/content/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/frames.mdx +90 -8
- package/corpus/core/docs/content/generative-ui.mdx +50 -4
- package/corpus/core/docs/content/getting-started.mdx +34 -4
- package/corpus/core/docs/content/harness-agents.mdx +77 -8
- package/corpus/core/docs/content/human-approval.mdx +50 -4
- package/corpus/core/docs/content/key-concepts.mdx +102 -8
- package/corpus/core/docs/content/local-file-mode.mdx +58 -4
- package/corpus/core/docs/content/locales/ar-SA/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/ar-SA/actions.mdx +65 -4
- package/corpus/core/docs/content/locales/ar-SA/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/ar-SA/agent-surfaces.mdx +114 -8
- package/corpus/core/docs/content/locales/ar-SA/agent-teams.mdx +174 -12
- package/corpus/core/docs/content/locales/ar-SA/agent-web-surfaces.mdx +49 -4
- package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +120 -8
- package/corpus/core/docs/content/locales/ar-SA/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/ar-SA/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/ar-SA/cli-adapters.mdx +40 -4
- package/corpus/core/docs/content/locales/ar-SA/client.mdx +80 -8
- package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/ar-SA/code-agents-ui.mdx +99 -8
- package/corpus/core/docs/content/locales/ar-SA/components.mdx +114 -8
- package/corpus/core/docs/content/locales/ar-SA/context-awareness.mdx +100 -8
- package/corpus/core/docs/content/locales/ar-SA/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/ar-SA/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/ar-SA/database.mdx +52 -4
- package/corpus/core/docs/content/locales/ar-SA/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/ar-SA/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/ar-SA/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/ar-SA/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/ar-SA/embedding-sdk.mdx +83 -8
- package/corpus/core/docs/content/locales/ar-SA/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/ar-SA/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/ar-SA/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/ar-SA/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/ar-SA/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/ar-SA/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/ar-SA/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/ar-SA/key-concepts.mdx +107 -8
- package/corpus/core/docs/content/locales/ar-SA/local-file-mode.mdx +56 -4
- package/corpus/core/docs/content/locales/ar-SA/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/ar-SA/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/ar-SA/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/ar-SA/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/ar-SA/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/ar-SA/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/ar-SA/native-chat-ui.mdx +104 -8
- package/corpus/core/docs/content/locales/ar-SA/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/ar-SA/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/ar-SA/observational-memory.mdx +87 -8
- package/corpus/core/docs/content/locales/ar-SA/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/ar-SA/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/ar-SA/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/locales/ar-SA/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/ar-SA/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +48 -4
- package/corpus/core/docs/content/locales/ar-SA/real-time-collaboration.mdx +102 -8
- package/corpus/core/docs/content/locales/ar-SA/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/ar-SA/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/ar-SA/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/locales/ar-SA/security.mdx +80 -8
- package/corpus/core/docs/content/locales/ar-SA/server.mdx +173 -12
- package/corpus/core/docs/content/locales/ar-SA/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/ar-SA/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/ar-SA/template-assets.mdx +62 -4
- package/corpus/core/docs/content/locales/ar-SA/template-brain.mdx +65 -4
- package/corpus/core/docs/content/locales/ar-SA/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/ar-SA/template-content.mdx +62 -4
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +101 -4
- package/corpus/core/docs/content/locales/ar-SA/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/ar-SA/template-forms.mdx +62 -4
- package/corpus/core/docs/content/locales/ar-SA/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/ar-SA/template-plan.mdx +61 -4
- package/corpus/core/docs/content/locales/ar-SA/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/ar-SA/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/ar-SA/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/ar-SA/what-is-agent-native.mdx +96 -8
- package/corpus/core/docs/content/locales/ar-SA/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/ar-SA/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/ar-SA/workspace.mdx +112 -8
- package/corpus/core/docs/content/locales/ar-SA/writing-agent-instructions.mdx +41 -4
- package/corpus/core/docs/content/locales/de-DE/a2a-protocol.mdx +99 -9
- package/corpus/core/docs/content/locales/de-DE/actions.mdx +67 -4
- package/corpus/core/docs/content/locales/de-DE/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/de-DE/agent-surfaces.mdx +116 -8
- package/corpus/core/docs/content/locales/de-DE/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/locales/de-DE/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/de-DE/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/de-DE/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/de-DE/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/de-DE/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/de-DE/client.mdx +79 -8
- package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/de-DE/code-agents-ui.mdx +100 -8
- package/corpus/core/docs/content/locales/de-DE/components.mdx +118 -8
- package/corpus/core/docs/content/locales/de-DE/context-awareness.mdx +98 -8
- package/corpus/core/docs/content/locales/de-DE/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/de-DE/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/de-DE/database.mdx +52 -4
- package/corpus/core/docs/content/locales/de-DE/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/de-DE/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/de-DE/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/de-DE/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/de-DE/embedding-sdk.mdx +85 -8
- package/corpus/core/docs/content/locales/de-DE/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/de-DE/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/de-DE/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/de-DE/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/de-DE/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/de-DE/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/de-DE/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/de-DE/key-concepts.mdx +104 -8
- package/corpus/core/docs/content/locales/de-DE/local-file-mode.mdx +58 -4
- package/corpus/core/docs/content/locales/de-DE/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/de-DE/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/de-DE/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/de-DE/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/de-DE/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/de-DE/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/de-DE/native-chat-ui.mdx +108 -8
- package/corpus/core/docs/content/locales/de-DE/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/de-DE/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/de-DE/observational-memory.mdx +92 -8
- package/corpus/core/docs/content/locales/de-DE/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/de-DE/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/de-DE/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/locales/de-DE/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/de-DE/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +50 -4
- package/corpus/core/docs/content/locales/de-DE/real-time-collaboration.mdx +104 -8
- package/corpus/core/docs/content/locales/de-DE/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/de-DE/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/de-DE/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/locales/de-DE/security.mdx +80 -8
- package/corpus/core/docs/content/locales/de-DE/server.mdx +171 -12
- package/corpus/core/docs/content/locales/de-DE/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/de-DE/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/de-DE/template-assets.mdx +62 -4
- package/corpus/core/docs/content/locales/de-DE/template-brain.mdx +69 -4
- package/corpus/core/docs/content/locales/de-DE/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/de-DE/template-content.mdx +60 -4
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +109 -4
- package/corpus/core/docs/content/locales/de-DE/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/de-DE/template-forms.mdx +64 -4
- package/corpus/core/docs/content/locales/de-DE/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/de-DE/template-plan.mdx +63 -4
- package/corpus/core/docs/content/locales/de-DE/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/de-DE/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/de-DE/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/de-DE/voice-input.mdx +45 -4
- package/corpus/core/docs/content/locales/de-DE/what-is-agent-native.mdx +100 -8
- package/corpus/core/docs/content/locales/de-DE/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/de-DE/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/de-DE/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/de-DE/writing-agent-instructions.mdx +45 -4
- package/corpus/core/docs/content/locales/es-ES/a2a-protocol.mdx +99 -9
- package/corpus/core/docs/content/locales/es-ES/actions.mdx +67 -4
- package/corpus/core/docs/content/locales/es-ES/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/es-ES/agent-surfaces.mdx +120 -8
- package/corpus/core/docs/content/locales/es-ES/agent-teams.mdx +172 -12
- package/corpus/core/docs/content/locales/es-ES/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/es-ES/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/es-ES/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/es-ES/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/es-ES/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/es-ES/client.mdx +79 -8
- package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/es-ES/code-agents-ui.mdx +101 -8
- package/corpus/core/docs/content/locales/es-ES/components.mdx +118 -8
- package/corpus/core/docs/content/locales/es-ES/context-awareness.mdx +98 -8
- package/corpus/core/docs/content/locales/es-ES/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/es-ES/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/es-ES/database.mdx +52 -4
- package/corpus/core/docs/content/locales/es-ES/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/es-ES/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/es-ES/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/es-ES/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/es-ES/embedding-sdk.mdx +87 -8
- package/corpus/core/docs/content/locales/es-ES/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/es-ES/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/es-ES/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/es-ES/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/es-ES/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/es-ES/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/es-ES/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/es-ES/key-concepts.mdx +104 -8
- package/corpus/core/docs/content/locales/es-ES/local-file-mode.mdx +60 -4
- package/corpus/core/docs/content/locales/es-ES/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/es-ES/mcp-clients.mdx +135 -8
- package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/es-ES/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/es-ES/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/es-ES/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/es-ES/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/es-ES/native-chat-ui.mdx +108 -8
- package/corpus/core/docs/content/locales/es-ES/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/es-ES/observability.mdx +104 -8
- package/corpus/core/docs/content/locales/es-ES/observational-memory.mdx +92 -8
- package/corpus/core/docs/content/locales/es-ES/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/es-ES/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/es-ES/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/locales/es-ES/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/es-ES/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +50 -4
- package/corpus/core/docs/content/locales/es-ES/real-time-collaboration.mdx +109 -8
- package/corpus/core/docs/content/locales/es-ES/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/es-ES/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/es-ES/sandbox-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/es-ES/security.mdx +82 -8
- package/corpus/core/docs/content/locales/es-ES/server.mdx +173 -12
- package/corpus/core/docs/content/locales/es-ES/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/es-ES/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/es-ES/template-assets.mdx +64 -4
- package/corpus/core/docs/content/locales/es-ES/template-brain.mdx +69 -4
- package/corpus/core/docs/content/locales/es-ES/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/es-ES/template-content.mdx +64 -4
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +108 -4
- package/corpus/core/docs/content/locales/es-ES/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/es-ES/template-forms.mdx +64 -4
- package/corpus/core/docs/content/locales/es-ES/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/es-ES/template-plan.mdx +61 -4
- package/corpus/core/docs/content/locales/es-ES/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/es-ES/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/es-ES/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/es-ES/voice-input.mdx +45 -4
- package/corpus/core/docs/content/locales/es-ES/what-is-agent-native.mdx +99 -8
- package/corpus/core/docs/content/locales/es-ES/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/es-ES/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/es-ES/workspace.mdx +112 -8
- package/corpus/core/docs/content/locales/es-ES/writing-agent-instructions.mdx +46 -4
- package/corpus/core/docs/content/locales/fr-FR/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/fr-FR/actions.mdx +67 -4
- package/corpus/core/docs/content/locales/fr-FR/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/fr-FR/agent-surfaces.mdx +118 -8
- package/corpus/core/docs/content/locales/fr-FR/agent-teams.mdx +172 -12
- package/corpus/core/docs/content/locales/fr-FR/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/fr-FR/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/fr-FR/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/fr-FR/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/fr-FR/client.mdx +81 -8
- package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/fr-FR/code-agents-ui.mdx +102 -8
- package/corpus/core/docs/content/locales/fr-FR/components.mdx +118 -8
- package/corpus/core/docs/content/locales/fr-FR/context-awareness.mdx +98 -8
- package/corpus/core/docs/content/locales/fr-FR/creating-templates.mdx +49 -4
- package/corpus/core/docs/content/locales/fr-FR/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/fr-FR/database.mdx +52 -4
- package/corpus/core/docs/content/locales/fr-FR/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/fr-FR/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/fr-FR/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/fr-FR/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/fr-FR/embedding-sdk.mdx +87 -8
- package/corpus/core/docs/content/locales/fr-FR/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/fr-FR/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/fr-FR/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/fr-FR/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/fr-FR/frames.mdx +90 -8
- package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/fr-FR/harness-agents.mdx +77 -8
- package/corpus/core/docs/content/locales/fr-FR/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/fr-FR/key-concepts.mdx +106 -8
- package/corpus/core/docs/content/locales/fr-FR/local-file-mode.mdx +58 -4
- package/corpus/core/docs/content/locales/fr-FR/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/fr-FR/mcp-clients.mdx +135 -8
- package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/fr-FR/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/fr-FR/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/fr-FR/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/fr-FR/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/fr-FR/native-chat-ui.mdx +108 -8
- package/corpus/core/docs/content/locales/fr-FR/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/fr-FR/observability.mdx +104 -8
- package/corpus/core/docs/content/locales/fr-FR/observational-memory.mdx +89 -8
- package/corpus/core/docs/content/locales/fr-FR/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/fr-FR/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/fr-FR/pr-visual-recap.mdx +126 -8
- package/corpus/core/docs/content/locales/fr-FR/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/fr-FR/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +48 -4
- package/corpus/core/docs/content/locales/fr-FR/real-time-collaboration.mdx +107 -8
- package/corpus/core/docs/content/locales/fr-FR/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/fr-FR/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/fr-FR/sandbox-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/fr-FR/security.mdx +82 -8
- package/corpus/core/docs/content/locales/fr-FR/server.mdx +173 -12
- package/corpus/core/docs/content/locales/fr-FR/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/fr-FR/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/fr-FR/template-assets.mdx +66 -4
- package/corpus/core/docs/content/locales/fr-FR/template-brain.mdx +69 -4
- package/corpus/core/docs/content/locales/fr-FR/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/fr-FR/template-content.mdx +64 -4
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +107 -4
- package/corpus/core/docs/content/locales/fr-FR/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/fr-FR/template-forms.mdx +64 -4
- package/corpus/core/docs/content/locales/fr-FR/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/fr-FR/template-plan.mdx +61 -4
- package/corpus/core/docs/content/locales/fr-FR/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/fr-FR/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/fr-FR/voice-input.mdx +45 -4
- package/corpus/core/docs/content/locales/fr-FR/what-is-agent-native.mdx +101 -8
- package/corpus/core/docs/content/locales/fr-FR/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/fr-FR/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/fr-FR/workspace.mdx +112 -8
- package/corpus/core/docs/content/locales/fr-FR/writing-agent-instructions.mdx +47 -4
- package/corpus/core/docs/content/locales/hi-IN/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/hi-IN/actions.mdx +63 -4
- package/corpus/core/docs/content/locales/hi-IN/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/hi-IN/agent-surfaces.mdx +112 -8
- package/corpus/core/docs/content/locales/hi-IN/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/locales/hi-IN/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/hi-IN/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/hi-IN/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/hi-IN/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/hi-IN/client.mdx +79 -8
- package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/hi-IN/code-agents-ui.mdx +96 -8
- package/corpus/core/docs/content/locales/hi-IN/components.mdx +114 -8
- package/corpus/core/docs/content/locales/hi-IN/context-awareness.mdx +102 -8
- package/corpus/core/docs/content/locales/hi-IN/creating-templates.mdx +53 -4
- package/corpus/core/docs/content/locales/hi-IN/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/hi-IN/database.mdx +52 -4
- package/corpus/core/docs/content/locales/hi-IN/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/hi-IN/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/hi-IN/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/hi-IN/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/hi-IN/embedding-sdk.mdx +83 -8
- package/corpus/core/docs/content/locales/hi-IN/evals.mdx +100 -8
- package/corpus/core/docs/content/locales/hi-IN/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/hi-IN/faq.mdx +96 -8
- package/corpus/core/docs/content/locales/hi-IN/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/hi-IN/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/hi-IN/harness-agents.mdx +77 -8
- package/corpus/core/docs/content/locales/hi-IN/human-approval.mdx +51 -4
- package/corpus/core/docs/content/locales/hi-IN/key-concepts.mdx +104 -8
- package/corpus/core/docs/content/locales/hi-IN/local-file-mode.mdx +58 -4
- package/corpus/core/docs/content/locales/hi-IN/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/hi-IN/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/hi-IN/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/hi-IN/migration-workbench.mdx +45 -4
- package/corpus/core/docs/content/locales/hi-IN/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/hi-IN/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/hi-IN/native-chat-ui.mdx +106 -8
- package/corpus/core/docs/content/locales/hi-IN/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/hi-IN/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/hi-IN/observational-memory.mdx +89 -8
- package/corpus/core/docs/content/locales/hi-IN/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/hi-IN/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/hi-IN/pr-visual-recap.mdx +126 -8
- package/corpus/core/docs/content/locales/hi-IN/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/hi-IN/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +48 -4
- package/corpus/core/docs/content/locales/hi-IN/real-time-collaboration.mdx +106 -8
- package/corpus/core/docs/content/locales/hi-IN/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/hi-IN/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/hi-IN/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/locales/hi-IN/security.mdx +78 -8
- package/corpus/core/docs/content/locales/hi-IN/server.mdx +169 -12
- package/corpus/core/docs/content/locales/hi-IN/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/hi-IN/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/hi-IN/template-assets.mdx +62 -4
- package/corpus/core/docs/content/locales/hi-IN/template-brain.mdx +69 -4
- package/corpus/core/docs/content/locales/hi-IN/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +59 -4
- package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/hi-IN/template-content.mdx +62 -4
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +102 -4
- package/corpus/core/docs/content/locales/hi-IN/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/hi-IN/template-forms.mdx +64 -4
- package/corpus/core/docs/content/locales/hi-IN/template-mail.mdx +64 -4
- package/corpus/core/docs/content/locales/hi-IN/template-plan.mdx +61 -4
- package/corpus/core/docs/content/locales/hi-IN/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/hi-IN/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/hi-IN/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/hi-IN/what-is-agent-native.mdx +97 -8
- package/corpus/core/docs/content/locales/hi-IN/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/hi-IN/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/hi-IN/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/hi-IN/writing-agent-instructions.mdx +40 -4
- package/corpus/core/docs/content/locales/ja-JP/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/ja-JP/actions.mdx +67 -4
- package/corpus/core/docs/content/locales/ja-JP/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/ja-JP/agent-surfaces.mdx +116 -8
- package/corpus/core/docs/content/locales/ja-JP/agent-teams.mdx +172 -12
- package/corpus/core/docs/content/locales/ja-JP/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/ja-JP/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/ja-JP/blueprint-installer.mdx +44 -4
- package/corpus/core/docs/content/locales/ja-JP/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/ja-JP/client.mdx +79 -8
- package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/ja-JP/code-agents-ui.mdx +100 -8
- package/corpus/core/docs/content/locales/ja-JP/components.mdx +116 -8
- package/corpus/core/docs/content/locales/ja-JP/context-awareness.mdx +100 -8
- package/corpus/core/docs/content/locales/ja-JP/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/ja-JP/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/ja-JP/database.mdx +52 -4
- package/corpus/core/docs/content/locales/ja-JP/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/ja-JP/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/ja-JP/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/ja-JP/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/ja-JP/embedding-sdk.mdx +85 -8
- package/corpus/core/docs/content/locales/ja-JP/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/ja-JP/extensions.mdx +111 -9
- package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/ja-JP/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/ja-JP/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/ja-JP/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/ja-JP/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/ja-JP/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/ja-JP/key-concepts.mdx +105 -8
- package/corpus/core/docs/content/locales/ja-JP/local-file-mode.mdx +58 -4
- package/corpus/core/docs/content/locales/ja-JP/mcp-apps.mdx +119 -10
- package/corpus/core/docs/content/locales/ja-JP/mcp-clients.mdx +134 -8
- package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/ja-JP/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/ja-JP/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/ja-JP/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/ja-JP/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/ja-JP/native-chat-ui.mdx +104 -8
- package/corpus/core/docs/content/locales/ja-JP/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/ja-JP/observability.mdx +104 -8
- package/corpus/core/docs/content/locales/ja-JP/observational-memory.mdx +89 -8
- package/corpus/core/docs/content/locales/ja-JP/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/ja-JP/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/ja-JP/pr-visual-recap.mdx +123 -8
- package/corpus/core/docs/content/locales/ja-JP/processors.mdx +39 -4
- package/corpus/core/docs/content/locales/ja-JP/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +48 -4
- package/corpus/core/docs/content/locales/ja-JP/real-time-collaboration.mdx +106 -8
- package/corpus/core/docs/content/locales/ja-JP/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/ja-JP/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/ja-JP/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/locales/ja-JP/security.mdx +82 -8
- package/corpus/core/docs/content/locales/ja-JP/server.mdx +171 -12
- package/corpus/core/docs/content/locales/ja-JP/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/ja-JP/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/ja-JP/template-assets.mdx +64 -4
- package/corpus/core/docs/content/locales/ja-JP/template-brain.mdx +67 -4
- package/corpus/core/docs/content/locales/ja-JP/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/ja-JP/template-content.mdx +62 -4
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +106 -4
- package/corpus/core/docs/content/locales/ja-JP/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/ja-JP/template-forms.mdx +62 -4
- package/corpus/core/docs/content/locales/ja-JP/template-mail.mdx +62 -4
- package/corpus/core/docs/content/locales/ja-JP/template-plan.mdx +63 -4
- package/corpus/core/docs/content/locales/ja-JP/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/ja-JP/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/ja-JP/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/ja-JP/what-is-agent-native.mdx +96 -8
- package/corpus/core/docs/content/locales/ja-JP/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/ja-JP/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/ja-JP/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/ja-JP/writing-agent-instructions.mdx +44 -4
- package/corpus/core/docs/content/locales/ko-KR/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/ko-KR/actions.mdx +63 -4
- package/corpus/core/docs/content/locales/ko-KR/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/ko-KR/agent-surfaces.mdx +113 -8
- package/corpus/core/docs/content/locales/ko-KR/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/locales/ko-KR/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/ko-KR/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/ko-KR/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/ko-KR/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/ko-KR/client.mdx +79 -8
- package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/ko-KR/code-agents-ui.mdx +96 -8
- package/corpus/core/docs/content/locales/ko-KR/components.mdx +112 -8
- package/corpus/core/docs/content/locales/ko-KR/context-awareness.mdx +96 -8
- package/corpus/core/docs/content/locales/ko-KR/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/ko-KR/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/ko-KR/database.mdx +52 -4
- package/corpus/core/docs/content/locales/ko-KR/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/ko-KR/dispatch.mdx +132 -8
- package/corpus/core/docs/content/locales/ko-KR/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/ko-KR/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/ko-KR/embedding-sdk.mdx +81 -8
- package/corpus/core/docs/content/locales/ko-KR/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/ko-KR/extensions.mdx +111 -9
- package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/ko-KR/faq.mdx +96 -8
- package/corpus/core/docs/content/locales/ko-KR/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/ko-KR/frames.mdx +86 -8
- package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/ko-KR/harness-agents.mdx +77 -8
- package/corpus/core/docs/content/locales/ko-KR/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/ko-KR/key-concepts.mdx +104 -8
- package/corpus/core/docs/content/locales/ko-KR/local-file-mode.mdx +56 -4
- package/corpus/core/docs/content/locales/ko-KR/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/ko-KR/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/ko-KR/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/ko-KR/migration-workbench.mdx +45 -4
- package/corpus/core/docs/content/locales/ko-KR/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/ko-KR/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/ko-KR/native-chat-ui.mdx +104 -8
- package/corpus/core/docs/content/locales/ko-KR/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/ko-KR/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/ko-KR/observational-memory.mdx +87 -8
- package/corpus/core/docs/content/locales/ko-KR/onboarding.mdx +44 -4
- package/corpus/core/docs/content/locales/ko-KR/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/ko-KR/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/locales/ko-KR/processors.mdx +39 -4
- package/corpus/core/docs/content/locales/ko-KR/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +46 -4
- package/corpus/core/docs/content/locales/ko-KR/real-time-collaboration.mdx +104 -8
- package/corpus/core/docs/content/locales/ko-KR/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/ko-KR/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/ko-KR/sandbox-adapters.mdx +41 -4
- package/corpus/core/docs/content/locales/ko-KR/security.mdx +78 -8
- package/corpus/core/docs/content/locales/ko-KR/server.mdx +171 -12
- package/corpus/core/docs/content/locales/ko-KR/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/ko-KR/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/ko-KR/template-assets.mdx +62 -4
- package/corpus/core/docs/content/locales/ko-KR/template-brain.mdx +65 -4
- package/corpus/core/docs/content/locales/ko-KR/template-calendar.mdx +60 -4
- package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +59 -4
- package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/ko-KR/template-content.mdx +60 -4
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +102 -4
- package/corpus/core/docs/content/locales/ko-KR/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/ko-KR/template-forms.mdx +60 -4
- package/corpus/core/docs/content/locales/ko-KR/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/ko-KR/template-plan.mdx +57 -4
- package/corpus/core/docs/content/locales/ko-KR/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/ko-KR/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/ko-KR/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/ko-KR/what-is-agent-native.mdx +95 -8
- package/corpus/core/docs/content/locales/ko-KR/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/ko-KR/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/ko-KR/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/ko-KR/writing-agent-instructions.mdx +38 -4
- package/corpus/core/docs/content/locales/pt-BR/a2a-protocol.mdx +99 -9
- package/corpus/core/docs/content/locales/pt-BR/actions.mdx +67 -4
- package/corpus/core/docs/content/locales/pt-BR/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/pt-BR/agent-surfaces.mdx +116 -8
- package/corpus/core/docs/content/locales/pt-BR/agent-teams.mdx +172 -12
- package/corpus/core/docs/content/locales/pt-BR/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/pt-BR/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/pt-BR/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/pt-BR/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/pt-BR/client.mdx +81 -8
- package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +85 -8
- package/corpus/core/docs/content/locales/pt-BR/code-agents-ui.mdx +98 -8
- package/corpus/core/docs/content/locales/pt-BR/components.mdx +118 -8
- package/corpus/core/docs/content/locales/pt-BR/context-awareness.mdx +100 -8
- package/corpus/core/docs/content/locales/pt-BR/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/pt-BR/cross-app-sso.mdx +109 -8
- package/corpus/core/docs/content/locales/pt-BR/database.mdx +52 -4
- package/corpus/core/docs/content/locales/pt-BR/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/pt-BR/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/pt-BR/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/pt-BR/durable-resume.mdx +47 -4
- package/corpus/core/docs/content/locales/pt-BR/embedding-sdk.mdx +87 -8
- package/corpus/core/docs/content/locales/pt-BR/evals.mdx +102 -8
- package/corpus/core/docs/content/locales/pt-BR/extensions.mdx +113 -9
- package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/pt-BR/faq.mdx +98 -8
- package/corpus/core/docs/content/locales/pt-BR/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/pt-BR/frames.mdx +88 -8
- package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/pt-BR/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/pt-BR/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/pt-BR/key-concepts.mdx +104 -8
- package/corpus/core/docs/content/locales/pt-BR/local-file-mode.mdx +60 -4
- package/corpus/core/docs/content/locales/pt-BR/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/pt-BR/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/pt-BR/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/pt-BR/migration-workbench.mdx +47 -4
- package/corpus/core/docs/content/locales/pt-BR/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/pt-BR/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/pt-BR/native-chat-ui.mdx +108 -8
- package/corpus/core/docs/content/locales/pt-BR/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/pt-BR/observability.mdx +104 -8
- package/corpus/core/docs/content/locales/pt-BR/observational-memory.mdx +92 -8
- package/corpus/core/docs/content/locales/pt-BR/onboarding.mdx +45 -4
- package/corpus/core/docs/content/locales/pt-BR/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/locales/pt-BR/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/locales/pt-BR/processors.mdx +41 -4
- package/corpus/core/docs/content/locales/pt-BR/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +48 -4
- package/corpus/core/docs/content/locales/pt-BR/real-time-collaboration.mdx +107 -8
- package/corpus/core/docs/content/locales/pt-BR/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/pt-BR/routing.mdx +44 -5
- package/corpus/core/docs/content/locales/pt-BR/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/locales/pt-BR/security.mdx +82 -8
- package/corpus/core/docs/content/locales/pt-BR/server.mdx +173 -12
- package/corpus/core/docs/content/locales/pt-BR/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/pt-BR/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/pt-BR/template-assets.mdx +64 -4
- package/corpus/core/docs/content/locales/pt-BR/template-brain.mdx +69 -4
- package/corpus/core/docs/content/locales/pt-BR/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +61 -4
- package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/pt-BR/template-content.mdx +64 -4
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +106 -4
- package/corpus/core/docs/content/locales/pt-BR/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/pt-BR/template-forms.mdx +64 -4
- package/corpus/core/docs/content/locales/pt-BR/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/pt-BR/template-plan.mdx +63 -4
- package/corpus/core/docs/content/locales/pt-BR/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/pt-BR/template-videos.mdx +53 -4
- package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/pt-BR/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/pt-BR/what-is-agent-native.mdx +101 -8
- package/corpus/core/docs/content/locales/pt-BR/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/locales/pt-BR/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/pt-BR/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/pt-BR/writing-agent-instructions.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-CN/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/zh-CN/actions.mdx +65 -4
- package/corpus/core/docs/content/locales/zh-CN/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/zh-CN/agent-surfaces.mdx +108 -8
- package/corpus/core/docs/content/locales/zh-CN/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/locales/zh-CN/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/zh-CN/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/zh-CN/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/zh-CN/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/zh-CN/client.mdx +79 -8
- package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +83 -8
- package/corpus/core/docs/content/locales/zh-CN/code-agents-ui.mdx +94 -8
- package/corpus/core/docs/content/locales/zh-CN/components.mdx +112 -8
- package/corpus/core/docs/content/locales/zh-CN/context-awareness.mdx +96 -8
- package/corpus/core/docs/content/locales/zh-CN/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-CN/cross-app-sso.mdx +107 -8
- package/corpus/core/docs/content/locales/zh-CN/database.mdx +52 -4
- package/corpus/core/docs/content/locales/zh-CN/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/zh-CN/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/zh-CN/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/zh-CN/durable-resume.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-CN/embedding-sdk.mdx +81 -8
- package/corpus/core/docs/content/locales/zh-CN/evals.mdx +100 -8
- package/corpus/core/docs/content/locales/zh-CN/extensions.mdx +111 -9
- package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/zh-CN/faq.mdx +96 -8
- package/corpus/core/docs/content/locales/zh-CN/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/zh-CN/frames.mdx +86 -8
- package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/zh-CN/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/zh-CN/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/zh-CN/key-concepts.mdx +100 -8
- package/corpus/core/docs/content/locales/zh-CN/local-file-mode.mdx +56 -4
- package/corpus/core/docs/content/locales/zh-CN/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/zh-CN/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/zh-CN/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/zh-CN/migration-workbench.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-CN/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/zh-CN/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/zh-CN/native-chat-ui.mdx +104 -8
- package/corpus/core/docs/content/locales/zh-CN/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/zh-CN/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/zh-CN/observational-memory.mdx +85 -8
- package/corpus/core/docs/content/locales/zh-CN/onboarding.mdx +44 -4
- package/corpus/core/docs/content/locales/zh-CN/plan-plugin.mdx +97 -8
- package/corpus/core/docs/content/locales/zh-CN/pr-visual-recap.mdx +123 -8
- package/corpus/core/docs/content/locales/zh-CN/processors.mdx +39 -4
- package/corpus/core/docs/content/locales/zh-CN/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-CN/real-time-collaboration.mdx +98 -8
- package/corpus/core/docs/content/locales/zh-CN/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/zh-CN/routing.mdx +42 -5
- package/corpus/core/docs/content/locales/zh-CN/sandbox-adapters.mdx +41 -4
- package/corpus/core/docs/content/locales/zh-CN/security.mdx +78 -8
- package/corpus/core/docs/content/locales/zh-CN/server.mdx +169 -12
- package/corpus/core/docs/content/locales/zh-CN/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/zh-CN/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-CN/template-assets.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-CN/template-brain.mdx +65 -4
- package/corpus/core/docs/content/locales/zh-CN/template-calendar.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +57 -4
- package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/zh-CN/template-content.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +94 -4
- package/corpus/core/docs/content/locales/zh-CN/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/zh-CN/template-forms.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-CN/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/zh-CN/template-plan.mdx +57 -4
- package/corpus/core/docs/content/locales/zh-CN/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/zh-CN/template-videos.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-CN/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/zh-CN/what-is-agent-native.mdx +94 -8
- package/corpus/core/docs/content/locales/zh-CN/workspace-connections.mdx +126 -8
- package/corpus/core/docs/content/locales/zh-CN/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/zh-CN/workspace.mdx +110 -8
- package/corpus/core/docs/content/locales/zh-CN/writing-agent-instructions.mdx +38 -4
- package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.mdx +97 -9
- package/corpus/core/docs/content/locales/zh-TW/actions.mdx +63 -4
- package/corpus/core/docs/content/locales/zh-TW/agent-mentions.mdx +68 -4
- package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.mdx +108 -8
- package/corpus/core/docs/content/locales/zh-TW/agent-teams.mdx +171 -12
- package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +122 -8
- package/corpus/core/docs/content/locales/zh-TW/automations.mdx +110 -8
- package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.mdx +42 -4
- package/corpus/core/docs/content/locales/zh-TW/cli-adapters.mdx +44 -4
- package/corpus/core/docs/content/locales/zh-TW/client.mdx +79 -8
- package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +83 -8
- package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.mdx +94 -8
- package/corpus/core/docs/content/locales/zh-TW/components.mdx +112 -8
- package/corpus/core/docs/content/locales/zh-TW/context-awareness.mdx +96 -8
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.mdx +107 -8
- package/corpus/core/docs/content/locales/zh-TW/database.mdx +52 -4
- package/corpus/core/docs/content/locales/zh-TW/deployment.mdx +103 -8
- package/corpus/core/docs/content/locales/zh-TW/dispatch.mdx +134 -8
- package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.mdx +63 -4
- package/corpus/core/docs/content/locales/zh-TW/durable-background-runs.mdx +88 -8
- package/corpus/core/docs/content/locales/zh-TW/durable-resume.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.mdx +83 -8
- package/corpus/core/docs/content/locales/zh-TW/evals.mdx +100 -8
- package/corpus/core/docs/content/locales/zh-TW/extensions.mdx +111 -9
- package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +119 -8
- package/corpus/core/docs/content/locales/zh-TW/faq.mdx +96 -8
- package/corpus/core/docs/content/locales/zh-TW/file-uploads.mdx +61 -4
- package/corpus/core/docs/content/locales/zh-TW/frames.mdx +86 -8
- package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +34 -4
- package/corpus/core/docs/content/locales/zh-TW/harness-agents.mdx +79 -8
- package/corpus/core/docs/content/locales/zh-TW/human-approval.mdx +50 -4
- package/corpus/core/docs/content/locales/zh-TW/key-concepts.mdx +100 -8
- package/corpus/core/docs/content/locales/zh-TW/local-file-mode.mdx +56 -4
- package/corpus/core/docs/content/locales/zh-TW/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/locales/zh-TW/mcp-clients.mdx +133 -8
- package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/locales/zh-TW/messaging.mdx +115 -8
- package/corpus/core/docs/content/locales/zh-TW/migration-workbench.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.mdx +104 -8
- package/corpus/core/docs/content/locales/zh-TW/notifications.mdx +135 -8
- package/corpus/core/docs/content/locales/zh-TW/observability.mdx +102 -8
- package/corpus/core/docs/content/locales/zh-TW/observational-memory.mdx +85 -8
- package/corpus/core/docs/content/locales/zh-TW/onboarding.mdx +44 -4
- package/corpus/core/docs/content/locales/zh-TW/plan-plugin.mdx +97 -8
- package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.mdx +123 -8
- package/corpus/core/docs/content/locales/zh-TW/processors.mdx +39 -4
- package/corpus/core/docs/content/locales/zh-TW/progress.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.mdx +98 -8
- package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/locales/zh-TW/routing.mdx +42 -5
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.mdx +41 -4
- package/corpus/core/docs/content/locales/zh-TW/security.mdx +80 -8
- package/corpus/core/docs/content/locales/zh-TW/server.mdx +169 -12
- package/corpus/core/docs/content/locales/zh-TW/sharing.mdx +45 -4
- package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/locales/zh-TW/template-assets.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-TW/template-brain.mdx +65 -4
- package/corpus/core/docs/content/locales/zh-TW/template-calendar.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +59 -4
- package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +52 -4
- package/corpus/core/docs/content/locales/zh-TW/template-content.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +96 -4
- package/corpus/core/docs/content/locales/zh-TW/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/locales/zh-TW/template-forms.mdx +58 -4
- package/corpus/core/docs/content/locales/zh-TW/template-mail.mdx +60 -4
- package/corpus/core/docs/content/locales/zh-TW/template-plan.mdx +57 -4
- package/corpus/core/docs/content/locales/zh-TW/template-slides.mdx +49 -4
- package/corpus/core/docs/content/locales/zh-TW/template-videos.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +54 -4
- package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/locales/zh-TW/voice-input.mdx +43 -4
- package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.mdx +94 -8
- package/corpus/core/docs/content/locales/zh-TW/workspace-connections.mdx +126 -8
- package/corpus/core/docs/content/locales/zh-TW/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/locales/zh-TW/workspace.mdx +111 -8
- package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.mdx +38 -4
- package/corpus/core/docs/content/mcp-apps.mdx +120 -10
- package/corpus/core/docs/content/mcp-clients.mdx +161 -8
- package/corpus/core/docs/content/mcp-protocol.mdx +105 -8
- package/corpus/core/docs/content/messaging.mdx +115 -8
- package/corpus/core/docs/content/migration-workbench.mdx +45 -4
- package/corpus/core/docs/content/multi-app-workspace.mdx +91 -8
- package/corpus/core/docs/content/multi-tenancy.mdx +80 -8
- package/corpus/core/docs/content/native-chat-ui.mdx +106 -8
- package/corpus/core/docs/content/notifications.mdx +135 -8
- package/corpus/core/docs/content/observability.mdx +102 -8
- package/corpus/core/docs/content/observational-memory.mdx +89 -8
- package/corpus/core/docs/content/onboarding.mdx +45 -4
- package/corpus/core/docs/content/plan-plugin.mdx +99 -8
- package/corpus/core/docs/content/pr-visual-recap.mdx +125 -8
- package/corpus/core/docs/content/processors.mdx +41 -4
- package/corpus/core/docs/content/progress.mdx +46 -4
- package/corpus/core/docs/content/pure-agent-apps.mdx +46 -4
- package/corpus/core/docs/content/real-time-collaboration.mdx +104 -8
- package/corpus/core/docs/content/recurring-jobs.mdx +59 -4
- package/corpus/core/docs/content/routing.mdx +44 -5
- package/corpus/core/docs/content/sandbox-adapters.mdx +43 -4
- package/corpus/core/docs/content/security.mdx +80 -8
- package/corpus/core/docs/content/server.mdx +173 -12
- package/corpus/core/docs/content/sharing.mdx +45 -4
- package/corpus/core/docs/content/skills-guide.mdx +118 -9
- package/corpus/core/docs/content/template-analytics.mdx +46 -4
- package/corpus/core/docs/content/template-assets.mdx +60 -4
- package/corpus/core/docs/content/template-brain.mdx +67 -4
- package/corpus/core/docs/content/template-calendar.mdx +62 -4
- package/corpus/core/docs/content/template-chat.mdx +61 -4
- package/corpus/core/docs/content/template-clips.mdx +52 -4
- package/corpus/core/docs/content/template-content.mdx +60 -4
- package/corpus/core/docs/content/template-design.mdx +103 -4
- package/corpus/core/docs/content/template-dispatch.mdx +57 -4
- package/corpus/core/docs/content/template-forms.mdx +62 -4
- package/corpus/core/docs/content/template-mail.mdx +60 -4
- package/corpus/core/docs/content/template-plan.mdx +61 -4
- package/corpus/core/docs/content/template-slides.mdx +49 -4
- package/corpus/core/docs/content/template-videos.mdx +51 -4
- package/corpus/core/docs/content/tracking.mdx +54 -4
- package/corpus/core/docs/content/using-your-agent.mdx +51 -4
- package/corpus/core/docs/content/voice-input.mdx +43 -4
- package/corpus/core/docs/content/what-is-agent-native.mdx +188 -8
- package/corpus/core/docs/content/workspace-connections.mdx +128 -8
- package/corpus/core/docs/content/workspace-management.mdx +50 -4
- package/corpus/core/docs/content/workspace.mdx +111 -8
- package/corpus/core/docs/content/writing-agent-instructions.mdx +45 -4
- package/corpus/core/package.json +2 -1
- package/corpus/core/src/agent/engine/index.ts +1 -0
- package/corpus/core/src/agent/engine/registry.ts +40 -0
- package/corpus/core/src/agent/production-agent.ts +6 -2
- package/corpus/core/src/application-state/store.ts +5 -5
- package/corpus/core/src/chat-threads/store.ts +2 -2
- package/corpus/core/src/cli/content-local.ts +374 -0
- package/corpus/core/src/cli/design-connect.ts +490 -0
- package/corpus/core/src/cli/index.ts +33 -0
- package/corpus/core/src/cli/skills.ts +355 -200
- package/corpus/core/src/client/AssistantChat.tsx +39 -3
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -93
- package/corpus/core/src/client/agent-chat.ts +27 -3
- package/corpus/core/src/client/analytics.ts +68 -15
- package/corpus/core/src/client/blocks/index.ts +2 -0
- package/corpus/core/src/client/blocks/library/MermaidBlock.tsx +1 -1
- package/corpus/core/src/client/blocks/library/diagram.config.ts +42 -18
- package/corpus/core/src/client/blocks/library/diagram.tsx +2 -2
- package/corpus/core/src/client/blocks/library/sanitize-html.ts +71 -6
- package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +2 -2
- package/corpus/core/src/client/blocks/library/wireframe.tsx +9 -3
- package/corpus/core/src/client/blocks/mdx.ts +62 -1
- package/corpus/core/src/client/blocks/server.ts +2 -0
- package/corpus/core/src/client/blocks/types.ts +5 -4
- package/corpus/core/src/client/chat/message-components.tsx +2 -98
- package/corpus/core/src/client/chat-model-groups.ts +147 -0
- package/corpus/core/src/client/components/LiveCursorOverlay.tsx +33 -66
- package/corpus/core/src/client/components/ui/dialog.tsx +91 -0
- package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +33 -290
- package/corpus/core/src/client/composer/TiptapComposer.tsx +99 -24
- package/corpus/core/src/client/composer/useVoiceDictation.ts +429 -260
- package/corpus/core/src/client/frame-protocol.ts +17 -2
- package/corpus/core/src/client/index.ts +2 -0
- package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +614 -0
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +411 -644
- package/corpus/core/src/client/resources/mcp-integration-catalog.ts +239 -0
- package/corpus/core/src/client/rich-markdown-editor/RegistryBlockNode.tsx +2 -2
- package/corpus/core/src/client/settings/SettingsPanel.tsx +1 -1
- package/corpus/core/src/client/sharing/ShareButton.tsx +20 -15
- package/corpus/core/src/client/use-agent-engine-configured.ts +80 -28
- package/corpus/core/src/client/use-chat-models.ts +12 -104
- package/corpus/core/src/db/client.ts +0 -5
- package/corpus/core/src/integrations/adapters/email.ts +2 -2
- package/corpus/core/src/local-artifacts/index.ts +18 -0
- package/corpus/core/src/localization/default-messages.ts +81 -0
- package/corpus/core/src/localization/shared.ts +3 -3
- package/corpus/core/src/org/handlers.ts +2 -2
- package/corpus/core/src/resources/store.ts +7 -7
- package/corpus/core/src/server/core-routes-plugin.ts +34 -12
- package/corpus/core/src/server/transcribe-voice.ts +57 -22
- package/corpus/core/src/shared/mcp-embed-headers.ts +23 -1
- package/corpus/core/src/shared/mcp-integration-config.ts +101 -0
- package/corpus/core/src/styles/agent-native.css +58 -107
- package/corpus/core/src/styles/blocks.css +15 -3
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/corpus/core/src/vite/client.ts +19 -0
- package/corpus/core/src/voice/index.ts +18 -0
- package/corpus/core/src/voice/voice-cleanup-prompt.ts +38 -0
- package/corpus/core/src/voice/voice-context.ts +217 -0
- package/corpus/core/src/voice/voice-replacements.ts +75 -0
- package/corpus/templates/analytics/AGENTS.md +4 -3
- package/corpus/templates/analytics/actions/list-session-recordings.ts +6 -1
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +557 -400
- package/corpus/templates/analytics/app/global.css +22 -4
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/analytics/app/i18n-data.ts +21 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -8
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +7 -0
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +32 -10
- package/corpus/templates/analytics/changelog/2026-06-28-ask-tab-now-matches-the-darker-app-background.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-dashboard-email-reports-now-use-cleaner-light-mode-snapshots.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-sessions-now-show-only-signed-in-recordings-with-playable-re.md +6 -0
- package/corpus/templates/analytics/changelog/2026-06-28-sessions-shows-scoped-recordings-even-when-replay-events-are.md +6 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +3 -3
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +29 -7
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +5 -2
- package/corpus/templates/analytics/server/lib/session-replay.ts +21 -7
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -4
- package/corpus/templates/assets/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/brain/app/components/layout/Layout.tsx +29 -2
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +131 -42
- package/corpus/templates/brain/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/brain/app/i18n-data.ts +20 -0
- package/corpus/templates/brain/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +29 -1
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +417 -299
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/calendar/app/i18n-data.ts +20 -0
- package/corpus/templates/calendar/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +6 -19
- package/corpus/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/clips/AGENTS.md +8 -0
- package/corpus/templates/clips/actions/cleanup-transcript.ts +58 -10
- package/corpus/templates/clips/actions/finalize-meeting.ts +81 -12
- package/corpus/templates/clips/actions/get-builder-credit-status.ts +22 -0
- package/corpus/templates/clips/actions/get-recording-player-data.ts +18 -3
- package/corpus/templates/clips/actions/lib/agents-md-context.ts +4 -1
- package/corpus/templates/clips/actions/lib/builder-credits-state.ts +46 -0
- package/corpus/templates/clips/actions/lib/provider-transcript.ts +51 -0
- package/corpus/templates/clips/actions/regenerate-title.ts +18 -0
- package/corpus/templates/clips/actions/request-transcript.ts +56 -33
- package/corpus/templates/clips/actions/save-browser-transcript.ts +1 -17
- package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +1 -1
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +2 -2
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +120 -11
- package/corpus/templates/clips/app/i18n/ar-SA.ts +25 -0
- package/corpus/templates/clips/app/i18n/de-DE.ts +25 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +25 -0
- package/corpus/templates/clips/app/i18n/es-ES.ts +25 -0
- package/corpus/templates/clips/app/i18n/fr-FR.ts +25 -0
- package/corpus/templates/clips/app/i18n/hi-IN.ts +25 -0
- package/corpus/templates/clips/app/i18n/ja-JP.ts +25 -0
- package/corpus/templates/clips/app/i18n/ko-KR.ts +25 -0
- package/corpus/templates/clips/app/i18n/pt-BR.ts +25 -0
- package/corpus/templates/clips/app/i18n/zh-CN.ts +23 -0
- package/corpus/templates/clips/app/i18n/zh-TW.ts +23 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +69 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +52 -2
- package/corpus/templates/clips/app/routes/record.tsx +26 -15
- package/corpus/templates/clips/changelog/2026-06-28-builder-credit-pauses-show-friendly-upgrade-guidance.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-28-transcription-now-auto-detects-spoken-language-instead-of-following.md +6 -0
- package/corpus/templates/clips/changelog/2026-06-28-video-uploads-now-finish-when-duration-metadata-is-unavailable.md +6 -0
- package/corpus/templates/clips/desktop/src/lib/personal-vocabulary.ts +13 -8
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +7 -3
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +60 -1
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +30 -12
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +6 -19
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +4 -3
- package/corpus/templates/clips/shared/builder-credits.ts +120 -0
- package/corpus/templates/clips/shared/recording-core.ts +26 -8
- package/corpus/templates/content/AGENTS.md +23 -2
- package/corpus/templates/content/actions/_builder-docs-client.ts +952 -0
- package/corpus/templates/content/actions/_document-flush.ts +62 -0
- package/corpus/templates/content/actions/_local-file-documents.ts +115 -18
- package/corpus/templates/content/actions/check-builder-doc.ts +38 -0
- package/corpus/templates/content/actions/delete-document.ts +8 -0
- package/corpus/templates/content/actions/import-content-source.ts +12 -0
- package/corpus/templates/content/actions/list-builder-docs.ts +29 -0
- package/corpus/templates/content/actions/pull-builder-doc.ts +42 -0
- package/corpus/templates/content/actions/pull-document.ts +9 -59
- package/corpus/templates/content/actions/push-builder-doc.ts +45 -0
- package/corpus/templates/content/app/blocks/BuilderDocsBlocks.tsx +254 -0
- package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -0
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +1 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +1 -1
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +5 -5
- package/corpus/templates/content/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/content/server/db/schema.ts +12 -0
- package/corpus/templates/content/server/plugins/db.ts +23 -0
- package/corpus/templates/content/shared/api.ts +1 -0
- package/corpus/templates/content/shared/builder-docs-blocks.ts +361 -0
- package/corpus/templates/content/shared/builder-mdx.ts +1037 -0
- package/corpus/templates/content/shared/content-source.ts +6 -0
- package/corpus/templates/content/shared/nfm-registry.ts +4 -0
- package/corpus/templates/content/vite.config.ts +13 -0
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +137 -0
- package/corpus/templates/design/AGENTS.md +95 -5
- package/corpus/templates/design/DESIGN.md +82 -0
- package/corpus/templates/design/DEVELOPING.md +43 -0
- package/corpus/templates/design/actions/add-localhost-screens.ts +426 -0
- package/corpus/templates/design/actions/apply-shader.ts +277 -0
- package/corpus/templates/design/actions/apply-visual-edit.ts +303 -0
- package/corpus/templates/design/actions/connect-localhost.ts +183 -0
- package/corpus/templates/design/actions/edit-design.ts +195 -42
- package/corpus/templates/design/actions/generate-design.ts +71 -1
- package/corpus/templates/design/actions/generate-screens.ts +193 -0
- package/corpus/templates/design/actions/get-code-layer-projection.ts +191 -0
- package/corpus/templates/design/actions/get-shader.ts +119 -0
- package/corpus/templates/design/actions/list-localhost-connections.ts +95 -0
- package/corpus/templates/design/actions/navigate.ts +55 -2
- package/corpus/templates/design/actions/view-screen.ts +68 -1
- package/corpus/templates/design/agent-native.app-skill.json +10 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +761 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +2057 -103
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +74 -38
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +399 -0
- package/corpus/templates/design/app/components/design/EditPanel.tsx +3185 -439
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +1124 -0
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +3116 -147
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +700 -13
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +107 -63
- package/corpus/templates/design/app/components/design/index.ts +0 -5
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +286 -0
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +699 -0
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +461 -0
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +166 -0
- package/corpus/templates/design/app/components/design/inspector/FigmaColorPicker.tsx +1420 -0
- package/corpus/templates/design/app/components/design/inspector/SHADER_INTEGRATION.md +420 -0
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +215 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.stories.tsx +71 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +518 -0
- package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +106 -0
- package/corpus/templates/design/app/components/design/inspector/figma-icons.tsx +361 -0
- package/corpus/templates/design/app/components/design/inspector/index.ts +60 -0
- package/corpus/templates/design/app/components/design/inspector/scrub-input-utils.ts +201 -0
- package/corpus/templates/design/app/components/design/types.ts +23 -0
- package/corpus/templates/design/app/components/layout/Layout.tsx +24 -13
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +4 -4
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +474 -36
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +22 -5
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +24 -11
- package/corpus/templates/design/app/global.css +121 -3
- package/corpus/templates/design/app/hooks/use-agent-generating.ts +4 -0
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +130 -8
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +329 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +264 -0
- package/corpus/templates/design/app/i18n-data.ts +2790 -1
- package/corpus/templates/design/app/pages/DesignEditor.tsx +5108 -851
- package/corpus/templates/design/changelog/2026-06-28-annotate-mode-now-combines-drawing-and-comment-pins-in-one-c.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-design-editor-panel-borders-are-cleaner-so-the-canvas-edge-s.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-drawing-prompts-now-reliably-open-and-submit-to-the-design-a.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-editor-app-menus-now-use-an-outline-agent-native-mark-with-b.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-figma-style-code-design-mode.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-layer-selection-now-updates-chat-context-without-opening-the.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-layer-selections-now-preserve-hidden-and-locked-canvas-state.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-live-cursors-now-keep-names-beside-a-cleaner-pointer-marker.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-mode-switching-now-lives-in-a-compact-bottom-right-icon-dock.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-handles-zooming-drawing-opening-and-dele.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-now-selects-screens-on-click-and-opens-them-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-screen-overview-zooms-into-the-active-screen-with-smoother-e.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-selected-element-chips-in-chat-are-shorter-and-easier-to-sca.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-the-design-editor-toolbar-is-more-compact-and-the-app-menu-m.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-at-the-top-of-the-design-sidebar-instead-of-.md +6 -0
- package/corpus/templates/design/changelog/2026-06-28-tweaks-now-live-in-the-right-inspector-beside-the-design-tab.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-active-sidebar-rows-use-soft-highlights.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-agents-can-now-open-screen-overview-focus-screens-and-add.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-agents-now-edit-broad-copy-changes-more-reliably.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-design-editor-extensions-now-run-inline-beside-the-artboard.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-sidebars-use-darker-chrome-and-chat-warns-immediately.md +6 -0
- package/corpus/templates/design/changelog/2026-06-29-visual-edit-can-open-localhost-routes-as-url-backed-screens.md +6 -0
- package/corpus/templates/design/package.json +1 -0
- package/corpus/templates/design/server/db/schema.ts +26 -0
- package/corpus/templates/design/server/lib/design-snapshot.ts +1 -1
- package/corpus/templates/design/server/plugins/agent-chat.ts +3 -0
- package/corpus/templates/design/shared/api.ts +27 -0
- package/corpus/templates/design/shared/canvas-frames.ts +103 -0
- package/corpus/templates/design/shared/canvas-math.ts +1058 -0
- package/corpus/templates/design/shared/code-layer.ts +2212 -0
- package/corpus/templates/design/shared/color-utils.ts +180 -0
- package/corpus/templates/design/shared/generation-session.ts +61 -0
- package/corpus/templates/design/shared/shader-presets.ts +782 -0
- package/corpus/templates/design/shared/shader-safety.ts +137 -0
- package/corpus/templates/design/shared/source-mode.ts +237 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +149 -6
- package/corpus/templates/forms/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/forms/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
- package/corpus/templates/forms/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/forms/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/forms/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/forms/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/forms/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/forms/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/forms/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/macros/changelog/2026-06-28-left-sidebar-footer-controls-use-less-divider-chrome.md +6 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +408 -247
- package/corpus/templates/mail/app/i18n/ar-SA.ts +4 -0
- package/corpus/templates/mail/app/i18n/de-DE.ts +4 -0
- package/corpus/templates/mail/app/i18n/en-US.ts +4 -0
- package/corpus/templates/mail/app/i18n/es-ES.ts +4 -0
- package/corpus/templates/mail/app/i18n/fr-FR.ts +4 -0
- package/corpus/templates/mail/app/i18n/hi-IN.ts +4 -0
- package/corpus/templates/mail/app/i18n/ja-JP.ts +4 -0
- package/corpus/templates/mail/app/i18n/ko-KR.ts +4 -0
- package/corpus/templates/mail/app/i18n/pt-BR.ts +4 -0
- package/corpus/templates/mail/app/i18n/zh-CN.ts +4 -0
- package/corpus/templates/mail/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/mail/changelog/2026-06-28-pinned-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/corpus/templates/plan/.agents/skills/visual-plan/SKILL.md +25 -92
- package/corpus/templates/plan/.agents/skills/visual-plan/references/connection.md +51 -0
- package/corpus/templates/plan/.agents/skills/visual-plan/references/document-quality.md +5 -1
- package/corpus/templates/plan/.agents/skills/visual-plan/references/local-files.md +85 -0
- package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +21 -0
- package/corpus/templates/plan/.agents/skills/visual-recap/SKILL.md +32 -104
- package/corpus/templates/plan/.agents/skills/visual-recap/references/connection.md +51 -0
- package/corpus/templates/plan/.agents/skills/visual-recap/references/local-files.md +85 -0
- package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +21 -0
- package/corpus/templates/plan/actions/create-prototype-plan.ts +1 -1
- package/corpus/templates/plan/actions/delete-visual-plan.ts +2 -2
- package/corpus/templates/plan/actions/get-plan-blocks.ts +2 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +6 -8
- package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +25 -29
- package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +10 -5
- package/corpus/templates/plan/app/components/plan/wireframe/html-artboard.css +15 -3
- package/corpus/templates/plan/app/components/plan/wireframe/kit/rough.tsx +6 -6
- package/corpus/templates/plan/app/components/plan/wireframe/sanitize-html.ts +71 -6
- package/corpus/templates/plan/app/global.css +67 -81
- package/corpus/templates/plan/app/pages/PlansPage.tsx +8 -0
- package/corpus/templates/plan/app/root.tsx +31 -1
- package/corpus/templates/plan/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-plan-canvases-stay-stable-while-panning-and-zooming-in-chrom.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-plan-wireframes-avoid-overlapping-sketch-lines-in-dense-mockups.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-plan-wireframes-ignore-host-color-utility-classes-so-canvas-.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-plans-use-the-shared-neutral-light-and-dark-theme.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-sending-open-feedback-from-a-plan-now-opens-the-inline-plan-.md +6 -0
- package/corpus/templates/plan/changelog/2026-06-28-wireframe-style-can-now-be-switched-between-sketchy-and-clean.md +6 -0
- package/corpus/templates/plan/server/plan-content.ts +62 -3
- package/corpus/templates/plan/server/plan-mdx.ts +177 -2
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/slides/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
- package/corpus/templates/videos/app/components/Sidebar.tsx +2 -2
- package/corpus/templates/videos/app/components/layout/Layout.tsx +29 -2
- package/corpus/templates/videos/app/components/layout/NavSidebar.tsx +113 -30
- package/corpus/templates/videos/app/i18n/ar-SA.ts +2 -0
- package/corpus/templates/videos/app/i18n/de-DE.ts +2 -0
- package/corpus/templates/videos/app/i18n/en-US.ts +2 -0
- package/corpus/templates/videos/app/i18n/es-ES.ts +2 -0
- package/corpus/templates/videos/app/i18n/fr-FR.ts +2 -0
- package/corpus/templates/videos/app/i18n/hi-IN.ts +2 -0
- package/corpus/templates/videos/app/i18n/ja-JP.ts +2 -0
- package/corpus/templates/videos/app/i18n/ko-KR.ts +2 -0
- package/corpus/templates/videos/app/i18n/pt-BR.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/videos/app/i18n/zh-TW.ts +2 -0
- package/corpus/templates/videos/changelog/2026-06-28-left-sidebar-collapses-into-an-animated-icon-rail.md +6 -0
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +9 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +37 -0
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +4 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/application-state/store.js +5 -5
- package/dist/application-state/store.js.map +1 -1
- package/dist/chat-threads/store.js +2 -2
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/content-local.d.ts +31 -0
- package/dist/cli/content-local.d.ts.map +1 -0
- package/dist/cli/content-local.js +300 -0
- package/dist/cli/content-local.js.map +1 -0
- package/dist/cli/design-connect.d.ts +52 -0
- package/dist/cli/design-connect.d.ts.map +1 -0
- package/dist/cli/design-connect.js +409 -0
- package/dist/cli/design-connect.js.map +1 -0
- package/dist/cli/index.js +31 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/skills.d.ts +13 -4
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +348 -200
- package/dist/cli/skills.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/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +8 -69
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +6 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +17 -3
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/analytics.d.ts.map +1 -1
- package/dist/client/analytics.js +48 -13
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/blocks/index.d.ts +1 -1
- package/dist/client/blocks/index.d.ts.map +1 -1
- package/dist/client/blocks/index.js +1 -1
- package/dist/client/blocks/index.js.map +1 -1
- package/dist/client/blocks/library/MermaidBlock.js +1 -1
- package/dist/client/blocks/library/MermaidBlock.js.map +1 -1
- package/dist/client/blocks/library/diagram.config.d.ts +9 -9
- package/dist/client/blocks/library/diagram.config.d.ts.map +1 -1
- package/dist/client/blocks/library/diagram.config.js +36 -12
- package/dist/client/blocks/library/diagram.config.js.map +1 -1
- package/dist/client/blocks/library/diagram.js +1 -1
- package/dist/client/blocks/library/diagram.js.map +1 -1
- package/dist/client/blocks/library/sanitize-html.d.ts +3 -1
- package/dist/client/blocks/library/sanitize-html.d.ts.map +1 -1
- package/dist/client/blocks/library/sanitize-html.js +53 -5
- package/dist/client/blocks/library/sanitize-html.js.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.d.ts +2 -2
- package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.js +2 -2
- package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
- package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe.js +5 -2
- package/dist/client/blocks/library/wireframe.js.map +1 -1
- package/dist/client/blocks/mdx.d.ts +11 -0
- package/dist/client/blocks/mdx.d.ts.map +1 -1
- package/dist/client/blocks/mdx.js +47 -1
- package/dist/client/blocks/mdx.js.map +1 -1
- package/dist/client/blocks/server.d.ts +1 -1
- package/dist/client/blocks/server.d.ts.map +1 -1
- package/dist/client/blocks/server.js +1 -1
- package/dist/client/blocks/server.js.map +1 -1
- package/dist/client/blocks/types.d.ts +5 -4
- package/dist/client/blocks/types.d.ts.map +1 -1
- package/dist/client/blocks/types.js.map +1 -1
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +2 -12
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat-model-groups.d.ts +22 -0
- package/dist/client/chat-model-groups.d.ts.map +1 -0
- package/dist/client/chat-model-groups.js +93 -0
- package/dist/client/chat-model-groups.js.map +1 -0
- package/dist/client/components/LiveCursorOverlay.d.ts +1 -2
- package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
- package/dist/client/components/LiveCursorOverlay.js +19 -40
- package/dist/client/components/LiveCursorOverlay.js.map +1 -1
- package/dist/client/components/ui/dialog.d.ts +14 -0
- package/dist/client/components/ui/dialog.d.ts.map +1 -0
- package/dist/client/components/ui/dialog.js +21 -0
- package/dist/client/components/ui/dialog.js.map +1 -0
- package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
- package/dist/client/composer/ComposerPlusMenu.js +24 -149
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +3 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +86 -24
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/useVoiceDictation.d.ts +9 -0
- package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
- package/dist/client/composer/useVoiceDictation.js +154 -32
- package/dist/client/composer/useVoiceDictation.js.map +1 -1
- package/dist/client/frame-protocol.d.ts +17 -2
- package/dist/client/frame-protocol.d.ts.map +1 -1
- package/dist/client/frame-protocol.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/resources/McpIntegrationDialog.d.ts +13 -0
- package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -0
- package/dist/client/resources/McpIntegrationDialog.js +261 -0
- package/dist/client/resources/McpIntegrationDialog.js.map +1 -0
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +74 -190
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.d.ts +30 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -0
- package/dist/client/resources/mcp-integration-catalog.js +191 -0
- package/dist/client/resources/mcp-integration-catalog.js.map +1 -0
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js +2 -2
- package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
- package/dist/client/settings/SettingsPanel.js +1 -1
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +2 -0
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +7 -6
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/use-agent-engine-configured.d.ts +5 -0
- package/dist/client/use-agent-engine-configured.d.ts.map +1 -1
- package/dist/client/use-agent-engine-configured.js +51 -25
- package/dist/client/use-agent-engine-configured.js.map +1 -1
- package/dist/client/use-chat-models.d.ts +2 -7
- package/dist/client/use-chat-models.d.ts.map +1 -1
- package/dist/client/use-chat-models.js +8 -78
- package/dist/client/use-chat-models.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/collab/routes.d.ts +2 -2
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +0 -5
- package/dist/db/client.js.map +1 -1
- package/dist/integrations/adapters/email.js +2 -2
- package/dist/integrations/adapters/email.js.map +1 -1
- package/dist/local-artifacts/index.d.ts +6 -0
- package/dist/local-artifacts/index.d.ts.map +1 -1
- package/dist/local-artifacts/index.js +12 -0
- package/dist/local-artifacts/index.js.map +1 -1
- package/dist/localization/default-messages.d.ts +76 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +76 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/localization/shared.d.ts +1 -1
- package/dist/localization/shared.js +3 -3
- package/dist/localization/shared.js.map +1 -1
- package/dist/notifications/routes.d.ts +3 -3
- package/dist/observability/routes.d.ts +6 -6
- package/dist/org/handlers.js +2 -2
- package/dist/org/handlers.js.map +1 -1
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/resources/store.js +7 -7
- package/dist/resources/store.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts +1 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +29 -11
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +40 -24
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/shared/mcp-embed-headers.d.ts +1 -0
- package/dist/shared/mcp-embed-headers.d.ts.map +1 -1
- package/dist/shared/mcp-embed-headers.js +20 -1
- package/dist/shared/mcp-embed-headers.js.map +1 -1
- package/dist/shared/mcp-integration-config.d.ts +27 -0
- package/dist/shared/mcp-integration-config.d.ts.map +1 -0
- package/dist/shared/mcp-integration-config.js +56 -0
- package/dist/shared/mcp-integration-config.js.map +1 -0
- package/dist/styles/agent-native.css +58 -107
- package/dist/styles/blocks.css +15 -3
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/dist/vite/client.d.ts +11 -0
- 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/voice/index.d.ts +5 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +4 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/voice-cleanup-prompt.d.ts +6 -0
- package/dist/voice/voice-cleanup-prompt.d.ts.map +1 -0
- package/dist/voice/voice-cleanup-prompt.js +26 -0
- package/dist/voice/voice-cleanup-prompt.js.map +1 -0
- package/dist/voice/voice-context.d.ts +25 -0
- package/dist/voice/voice-context.d.ts.map +1 -0
- package/dist/voice/voice-context.js +156 -0
- package/dist/voice/voice-context.js.map +1 -0
- package/dist/voice/voice-replacements.d.ts +4 -0
- package/dist/voice/voice-replacements.d.ts.map +1 -0
- package/dist/voice/voice-replacements.js +52 -0
- package/dist/voice/voice-replacements.js.map +1 -0
- package/docs/content/a2a-protocol.mdx +97 -9
- package/docs/content/actions.mdx +65 -4
- package/docs/content/agent-mentions.mdx +68 -4
- package/docs/content/agent-surfaces.mdx +112 -8
- package/docs/content/agent-teams.mdx +171 -12
- package/docs/content/agent-web-surfaces.mdx +51 -4
- package/docs/content/authentication.mdx +122 -8
- package/docs/content/automations.mdx +110 -8
- package/docs/content/blueprint-installer.mdx +42 -4
- package/docs/content/cli-adapters.mdx +44 -4
- package/docs/content/client.mdx +79 -8
- package/docs/content/cloneable-saas.mdx +85 -8
- package/docs/content/code-agents-ui.mdx +98 -8
- package/docs/content/components.mdx +118 -8
- package/docs/content/context-awareness.mdx +98 -8
- package/docs/content/creating-templates.mdx +49 -4
- package/docs/content/cross-app-sso.mdx +109 -8
- package/docs/content/database.mdx +56 -4
- package/docs/content/deployment.mdx +103 -8
- package/docs/content/dispatch.mdx +134 -8
- package/docs/content/drop-in-agent.mdx +63 -4
- package/docs/content/durable-background-runs.mdx +98 -8
- package/docs/content/durable-resume.mdx +47 -4
- package/docs/content/embedding-sdk.mdx +83 -8
- package/docs/content/evals.mdx +102 -8
- package/docs/content/extensions.mdx +113 -9
- package/docs/content/external-agents.mdx +119 -8
- package/docs/content/faq.mdx +98 -8
- package/docs/content/file-uploads.mdx +61 -4
- package/docs/content/frames.mdx +90 -8
- package/docs/content/generative-ui.mdx +50 -4
- package/docs/content/getting-started.mdx +34 -4
- package/docs/content/harness-agents.mdx +77 -8
- package/docs/content/human-approval.mdx +50 -4
- package/docs/content/key-concepts.mdx +102 -8
- package/docs/content/local-file-mode.mdx +58 -4
- package/docs/content/locales/ar-SA/a2a-protocol.mdx +97 -9
- package/docs/content/locales/ar-SA/actions.mdx +65 -4
- package/docs/content/locales/ar-SA/agent-mentions.mdx +68 -4
- package/docs/content/locales/ar-SA/agent-surfaces.mdx +114 -8
- package/docs/content/locales/ar-SA/agent-teams.mdx +174 -12
- package/docs/content/locales/ar-SA/agent-web-surfaces.mdx +49 -4
- package/docs/content/locales/ar-SA/authentication.mdx +120 -8
- package/docs/content/locales/ar-SA/automations.mdx +110 -8
- package/docs/content/locales/ar-SA/blueprint-installer.mdx +42 -4
- package/docs/content/locales/ar-SA/cli-adapters.mdx +40 -4
- package/docs/content/locales/ar-SA/client.mdx +80 -8
- package/docs/content/locales/ar-SA/cloneable-saas.mdx +85 -8
- package/docs/content/locales/ar-SA/code-agents-ui.mdx +99 -8
- package/docs/content/locales/ar-SA/components.mdx +114 -8
- package/docs/content/locales/ar-SA/context-awareness.mdx +100 -8
- package/docs/content/locales/ar-SA/creating-templates.mdx +51 -4
- package/docs/content/locales/ar-SA/cross-app-sso.mdx +109 -8
- package/docs/content/locales/ar-SA/database.mdx +52 -4
- package/docs/content/locales/ar-SA/deployment.mdx +103 -8
- package/docs/content/locales/ar-SA/dispatch.mdx +134 -8
- package/docs/content/locales/ar-SA/drop-in-agent.mdx +63 -4
- package/docs/content/locales/ar-SA/durable-resume.mdx +47 -4
- package/docs/content/locales/ar-SA/embedding-sdk.mdx +83 -8
- package/docs/content/locales/ar-SA/evals.mdx +102 -8
- package/docs/content/locales/ar-SA/extensions.mdx +113 -9
- package/docs/content/locales/ar-SA/external-agents.mdx +119 -8
- package/docs/content/locales/ar-SA/faq.mdx +98 -8
- package/docs/content/locales/ar-SA/file-uploads.mdx +61 -4
- package/docs/content/locales/ar-SA/frames.mdx +88 -8
- package/docs/content/locales/ar-SA/getting-started.mdx +34 -4
- package/docs/content/locales/ar-SA/harness-agents.mdx +79 -8
- package/docs/content/locales/ar-SA/human-approval.mdx +50 -4
- package/docs/content/locales/ar-SA/key-concepts.mdx +107 -8
- package/docs/content/locales/ar-SA/local-file-mode.mdx +56 -4
- package/docs/content/locales/ar-SA/mcp-apps.mdx +120 -10
- package/docs/content/locales/ar-SA/mcp-clients.mdx +133 -8
- package/docs/content/locales/ar-SA/mcp-protocol.mdx +105 -8
- package/docs/content/locales/ar-SA/messaging.mdx +115 -8
- package/docs/content/locales/ar-SA/migration-workbench.mdx +47 -4
- package/docs/content/locales/ar-SA/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/ar-SA/multi-tenancy.mdx +80 -8
- package/docs/content/locales/ar-SA/native-chat-ui.mdx +104 -8
- package/docs/content/locales/ar-SA/notifications.mdx +135 -8
- package/docs/content/locales/ar-SA/observability.mdx +102 -8
- package/docs/content/locales/ar-SA/observational-memory.mdx +87 -8
- package/docs/content/locales/ar-SA/onboarding.mdx +45 -4
- package/docs/content/locales/ar-SA/plan-plugin.mdx +99 -8
- package/docs/content/locales/ar-SA/pr-visual-recap.mdx +125 -8
- package/docs/content/locales/ar-SA/processors.mdx +41 -4
- package/docs/content/locales/ar-SA/progress.mdx +46 -4
- package/docs/content/locales/ar-SA/pure-agent-apps.mdx +48 -4
- package/docs/content/locales/ar-SA/real-time-collaboration.mdx +102 -8
- package/docs/content/locales/ar-SA/recurring-jobs.mdx +59 -4
- package/docs/content/locales/ar-SA/routing.mdx +44 -5
- package/docs/content/locales/ar-SA/sandbox-adapters.mdx +43 -4
- package/docs/content/locales/ar-SA/security.mdx +80 -8
- package/docs/content/locales/ar-SA/server.mdx +173 -12
- package/docs/content/locales/ar-SA/sharing.mdx +45 -4
- package/docs/content/locales/ar-SA/skills-guide.mdx +118 -9
- package/docs/content/locales/ar-SA/template-analytics.mdx +46 -4
- package/docs/content/locales/ar-SA/template-assets.mdx +62 -4
- package/docs/content/locales/ar-SA/template-brain.mdx +65 -4
- package/docs/content/locales/ar-SA/template-calendar.mdx +62 -4
- package/docs/content/locales/ar-SA/template-chat.mdx +61 -4
- package/docs/content/locales/ar-SA/template-clips.mdx +52 -4
- package/docs/content/locales/ar-SA/template-content.mdx +62 -4
- package/docs/content/locales/ar-SA/template-design.mdx +101 -4
- package/docs/content/locales/ar-SA/template-dispatch.mdx +57 -4
- package/docs/content/locales/ar-SA/template-forms.mdx +62 -4
- package/docs/content/locales/ar-SA/template-mail.mdx +60 -4
- package/docs/content/locales/ar-SA/template-plan.mdx +61 -4
- package/docs/content/locales/ar-SA/template-slides.mdx +49 -4
- package/docs/content/locales/ar-SA/template-videos.mdx +53 -4
- package/docs/content/locales/ar-SA/tracking.mdx +54 -4
- package/docs/content/locales/ar-SA/using-your-agent.mdx +51 -4
- package/docs/content/locales/ar-SA/voice-input.mdx +43 -4
- package/docs/content/locales/ar-SA/what-is-agent-native.mdx +96 -8
- package/docs/content/locales/ar-SA/workspace-connections.mdx +128 -8
- package/docs/content/locales/ar-SA/workspace-management.mdx +50 -4
- package/docs/content/locales/ar-SA/workspace.mdx +112 -8
- package/docs/content/locales/ar-SA/writing-agent-instructions.mdx +41 -4
- package/docs/content/locales/de-DE/a2a-protocol.mdx +99 -9
- package/docs/content/locales/de-DE/actions.mdx +67 -4
- package/docs/content/locales/de-DE/agent-mentions.mdx +68 -4
- package/docs/content/locales/de-DE/agent-surfaces.mdx +116 -8
- package/docs/content/locales/de-DE/agent-teams.mdx +171 -12
- package/docs/content/locales/de-DE/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/de-DE/authentication.mdx +122 -8
- package/docs/content/locales/de-DE/automations.mdx +110 -8
- package/docs/content/locales/de-DE/blueprint-installer.mdx +42 -4
- package/docs/content/locales/de-DE/cli-adapters.mdx +44 -4
- package/docs/content/locales/de-DE/client.mdx +79 -8
- package/docs/content/locales/de-DE/cloneable-saas.mdx +85 -8
- package/docs/content/locales/de-DE/code-agents-ui.mdx +100 -8
- package/docs/content/locales/de-DE/components.mdx +118 -8
- package/docs/content/locales/de-DE/context-awareness.mdx +98 -8
- package/docs/content/locales/de-DE/creating-templates.mdx +51 -4
- package/docs/content/locales/de-DE/cross-app-sso.mdx +109 -8
- package/docs/content/locales/de-DE/database.mdx +52 -4
- package/docs/content/locales/de-DE/deployment.mdx +103 -8
- package/docs/content/locales/de-DE/dispatch.mdx +134 -8
- package/docs/content/locales/de-DE/drop-in-agent.mdx +63 -4
- package/docs/content/locales/de-DE/durable-resume.mdx +47 -4
- package/docs/content/locales/de-DE/embedding-sdk.mdx +85 -8
- package/docs/content/locales/de-DE/evals.mdx +102 -8
- package/docs/content/locales/de-DE/extensions.mdx +113 -9
- package/docs/content/locales/de-DE/external-agents.mdx +119 -8
- package/docs/content/locales/de-DE/faq.mdx +98 -8
- package/docs/content/locales/de-DE/file-uploads.mdx +61 -4
- package/docs/content/locales/de-DE/frames.mdx +88 -8
- package/docs/content/locales/de-DE/getting-started.mdx +34 -4
- package/docs/content/locales/de-DE/harness-agents.mdx +79 -8
- package/docs/content/locales/de-DE/human-approval.mdx +50 -4
- package/docs/content/locales/de-DE/key-concepts.mdx +104 -8
- package/docs/content/locales/de-DE/local-file-mode.mdx +58 -4
- package/docs/content/locales/de-DE/mcp-apps.mdx +120 -10
- package/docs/content/locales/de-DE/mcp-clients.mdx +133 -8
- package/docs/content/locales/de-DE/mcp-protocol.mdx +105 -8
- package/docs/content/locales/de-DE/messaging.mdx +115 -8
- package/docs/content/locales/de-DE/migration-workbench.mdx +47 -4
- package/docs/content/locales/de-DE/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/de-DE/multi-tenancy.mdx +80 -8
- package/docs/content/locales/de-DE/native-chat-ui.mdx +108 -8
- package/docs/content/locales/de-DE/notifications.mdx +135 -8
- package/docs/content/locales/de-DE/observability.mdx +102 -8
- package/docs/content/locales/de-DE/observational-memory.mdx +92 -8
- package/docs/content/locales/de-DE/onboarding.mdx +45 -4
- package/docs/content/locales/de-DE/plan-plugin.mdx +99 -8
- package/docs/content/locales/de-DE/pr-visual-recap.mdx +125 -8
- package/docs/content/locales/de-DE/processors.mdx +41 -4
- package/docs/content/locales/de-DE/progress.mdx +46 -4
- package/docs/content/locales/de-DE/pure-agent-apps.mdx +50 -4
- package/docs/content/locales/de-DE/real-time-collaboration.mdx +104 -8
- package/docs/content/locales/de-DE/recurring-jobs.mdx +59 -4
- package/docs/content/locales/de-DE/routing.mdx +44 -5
- package/docs/content/locales/de-DE/sandbox-adapters.mdx +43 -4
- package/docs/content/locales/de-DE/security.mdx +80 -8
- package/docs/content/locales/de-DE/server.mdx +171 -12
- package/docs/content/locales/de-DE/sharing.mdx +45 -4
- package/docs/content/locales/de-DE/skills-guide.mdx +118 -9
- package/docs/content/locales/de-DE/template-analytics.mdx +46 -4
- package/docs/content/locales/de-DE/template-assets.mdx +62 -4
- package/docs/content/locales/de-DE/template-brain.mdx +69 -4
- package/docs/content/locales/de-DE/template-calendar.mdx +62 -4
- package/docs/content/locales/de-DE/template-chat.mdx +61 -4
- package/docs/content/locales/de-DE/template-clips.mdx +52 -4
- package/docs/content/locales/de-DE/template-content.mdx +60 -4
- package/docs/content/locales/de-DE/template-design.mdx +109 -4
- package/docs/content/locales/de-DE/template-dispatch.mdx +57 -4
- package/docs/content/locales/de-DE/template-forms.mdx +64 -4
- package/docs/content/locales/de-DE/template-mail.mdx +60 -4
- package/docs/content/locales/de-DE/template-plan.mdx +63 -4
- package/docs/content/locales/de-DE/template-slides.mdx +49 -4
- package/docs/content/locales/de-DE/template-videos.mdx +53 -4
- package/docs/content/locales/de-DE/tracking.mdx +54 -4
- package/docs/content/locales/de-DE/using-your-agent.mdx +51 -4
- package/docs/content/locales/de-DE/voice-input.mdx +45 -4
- package/docs/content/locales/de-DE/what-is-agent-native.mdx +100 -8
- package/docs/content/locales/de-DE/workspace-connections.mdx +128 -8
- package/docs/content/locales/de-DE/workspace-management.mdx +50 -4
- package/docs/content/locales/de-DE/workspace.mdx +111 -8
- package/docs/content/locales/de-DE/writing-agent-instructions.mdx +45 -4
- package/docs/content/locales/es-ES/a2a-protocol.mdx +99 -9
- package/docs/content/locales/es-ES/actions.mdx +67 -4
- package/docs/content/locales/es-ES/agent-mentions.mdx +68 -4
- package/docs/content/locales/es-ES/agent-surfaces.mdx +120 -8
- package/docs/content/locales/es-ES/agent-teams.mdx +172 -12
- package/docs/content/locales/es-ES/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/es-ES/authentication.mdx +122 -8
- package/docs/content/locales/es-ES/automations.mdx +110 -8
- package/docs/content/locales/es-ES/blueprint-installer.mdx +42 -4
- package/docs/content/locales/es-ES/cli-adapters.mdx +44 -4
- package/docs/content/locales/es-ES/client.mdx +79 -8
- package/docs/content/locales/es-ES/cloneable-saas.mdx +85 -8
- package/docs/content/locales/es-ES/code-agents-ui.mdx +101 -8
- package/docs/content/locales/es-ES/components.mdx +118 -8
- package/docs/content/locales/es-ES/context-awareness.mdx +98 -8
- package/docs/content/locales/es-ES/creating-templates.mdx +51 -4
- package/docs/content/locales/es-ES/cross-app-sso.mdx +109 -8
- package/docs/content/locales/es-ES/database.mdx +52 -4
- package/docs/content/locales/es-ES/deployment.mdx +103 -8
- package/docs/content/locales/es-ES/dispatch.mdx +134 -8
- package/docs/content/locales/es-ES/drop-in-agent.mdx +63 -4
- package/docs/content/locales/es-ES/durable-resume.mdx +47 -4
- package/docs/content/locales/es-ES/embedding-sdk.mdx +87 -8
- package/docs/content/locales/es-ES/evals.mdx +102 -8
- package/docs/content/locales/es-ES/extensions.mdx +113 -9
- package/docs/content/locales/es-ES/external-agents.mdx +119 -8
- package/docs/content/locales/es-ES/faq.mdx +98 -8
- package/docs/content/locales/es-ES/file-uploads.mdx +61 -4
- package/docs/content/locales/es-ES/frames.mdx +88 -8
- package/docs/content/locales/es-ES/getting-started.mdx +34 -4
- package/docs/content/locales/es-ES/harness-agents.mdx +79 -8
- package/docs/content/locales/es-ES/human-approval.mdx +50 -4
- package/docs/content/locales/es-ES/key-concepts.mdx +104 -8
- package/docs/content/locales/es-ES/local-file-mode.mdx +60 -4
- package/docs/content/locales/es-ES/mcp-apps.mdx +120 -10
- package/docs/content/locales/es-ES/mcp-clients.mdx +135 -8
- package/docs/content/locales/es-ES/mcp-protocol.mdx +105 -8
- package/docs/content/locales/es-ES/messaging.mdx +115 -8
- package/docs/content/locales/es-ES/migration-workbench.mdx +47 -4
- package/docs/content/locales/es-ES/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/es-ES/multi-tenancy.mdx +80 -8
- package/docs/content/locales/es-ES/native-chat-ui.mdx +108 -8
- package/docs/content/locales/es-ES/notifications.mdx +135 -8
- package/docs/content/locales/es-ES/observability.mdx +104 -8
- package/docs/content/locales/es-ES/observational-memory.mdx +92 -8
- package/docs/content/locales/es-ES/onboarding.mdx +45 -4
- package/docs/content/locales/es-ES/plan-plugin.mdx +99 -8
- package/docs/content/locales/es-ES/pr-visual-recap.mdx +125 -8
- package/docs/content/locales/es-ES/processors.mdx +41 -4
- package/docs/content/locales/es-ES/progress.mdx +46 -4
- package/docs/content/locales/es-ES/pure-agent-apps.mdx +50 -4
- package/docs/content/locales/es-ES/real-time-collaboration.mdx +109 -8
- package/docs/content/locales/es-ES/recurring-jobs.mdx +59 -4
- package/docs/content/locales/es-ES/routing.mdx +44 -5
- package/docs/content/locales/es-ES/sandbox-adapters.mdx +44 -4
- package/docs/content/locales/es-ES/security.mdx +82 -8
- package/docs/content/locales/es-ES/server.mdx +173 -12
- package/docs/content/locales/es-ES/sharing.mdx +45 -4
- package/docs/content/locales/es-ES/skills-guide.mdx +118 -9
- package/docs/content/locales/es-ES/template-analytics.mdx +46 -4
- package/docs/content/locales/es-ES/template-assets.mdx +64 -4
- package/docs/content/locales/es-ES/template-brain.mdx +69 -4
- package/docs/content/locales/es-ES/template-calendar.mdx +62 -4
- package/docs/content/locales/es-ES/template-chat.mdx +61 -4
- package/docs/content/locales/es-ES/template-clips.mdx +52 -4
- package/docs/content/locales/es-ES/template-content.mdx +64 -4
- package/docs/content/locales/es-ES/template-design.mdx +108 -4
- package/docs/content/locales/es-ES/template-dispatch.mdx +57 -4
- package/docs/content/locales/es-ES/template-forms.mdx +64 -4
- package/docs/content/locales/es-ES/template-mail.mdx +60 -4
- package/docs/content/locales/es-ES/template-plan.mdx +61 -4
- package/docs/content/locales/es-ES/template-slides.mdx +49 -4
- package/docs/content/locales/es-ES/template-videos.mdx +53 -4
- package/docs/content/locales/es-ES/tracking.mdx +54 -4
- package/docs/content/locales/es-ES/using-your-agent.mdx +51 -4
- package/docs/content/locales/es-ES/voice-input.mdx +45 -4
- package/docs/content/locales/es-ES/what-is-agent-native.mdx +99 -8
- package/docs/content/locales/es-ES/workspace-connections.mdx +128 -8
- package/docs/content/locales/es-ES/workspace-management.mdx +50 -4
- package/docs/content/locales/es-ES/workspace.mdx +112 -8
- package/docs/content/locales/es-ES/writing-agent-instructions.mdx +46 -4
- package/docs/content/locales/fr-FR/a2a-protocol.mdx +97 -9
- package/docs/content/locales/fr-FR/actions.mdx +67 -4
- package/docs/content/locales/fr-FR/agent-mentions.mdx +68 -4
- package/docs/content/locales/fr-FR/agent-surfaces.mdx +118 -8
- package/docs/content/locales/fr-FR/agent-teams.mdx +172 -12
- package/docs/content/locales/fr-FR/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/fr-FR/authentication.mdx +122 -8
- package/docs/content/locales/fr-FR/automations.mdx +110 -8
- package/docs/content/locales/fr-FR/blueprint-installer.mdx +42 -4
- package/docs/content/locales/fr-FR/cli-adapters.mdx +44 -4
- package/docs/content/locales/fr-FR/client.mdx +81 -8
- package/docs/content/locales/fr-FR/cloneable-saas.mdx +85 -8
- package/docs/content/locales/fr-FR/code-agents-ui.mdx +102 -8
- package/docs/content/locales/fr-FR/components.mdx +118 -8
- package/docs/content/locales/fr-FR/context-awareness.mdx +98 -8
- package/docs/content/locales/fr-FR/creating-templates.mdx +49 -4
- package/docs/content/locales/fr-FR/cross-app-sso.mdx +109 -8
- package/docs/content/locales/fr-FR/database.mdx +52 -4
- package/docs/content/locales/fr-FR/deployment.mdx +103 -8
- package/docs/content/locales/fr-FR/dispatch.mdx +134 -8
- package/docs/content/locales/fr-FR/drop-in-agent.mdx +63 -4
- package/docs/content/locales/fr-FR/durable-resume.mdx +47 -4
- package/docs/content/locales/fr-FR/embedding-sdk.mdx +87 -8
- package/docs/content/locales/fr-FR/evals.mdx +102 -8
- package/docs/content/locales/fr-FR/extensions.mdx +113 -9
- package/docs/content/locales/fr-FR/external-agents.mdx +119 -8
- package/docs/content/locales/fr-FR/faq.mdx +98 -8
- package/docs/content/locales/fr-FR/file-uploads.mdx +61 -4
- package/docs/content/locales/fr-FR/frames.mdx +90 -8
- package/docs/content/locales/fr-FR/getting-started.mdx +34 -4
- package/docs/content/locales/fr-FR/harness-agents.mdx +77 -8
- package/docs/content/locales/fr-FR/human-approval.mdx +50 -4
- package/docs/content/locales/fr-FR/key-concepts.mdx +106 -8
- package/docs/content/locales/fr-FR/local-file-mode.mdx +58 -4
- package/docs/content/locales/fr-FR/mcp-apps.mdx +120 -10
- package/docs/content/locales/fr-FR/mcp-clients.mdx +135 -8
- package/docs/content/locales/fr-FR/mcp-protocol.mdx +105 -8
- package/docs/content/locales/fr-FR/messaging.mdx +115 -8
- package/docs/content/locales/fr-FR/migration-workbench.mdx +47 -4
- package/docs/content/locales/fr-FR/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/fr-FR/multi-tenancy.mdx +80 -8
- package/docs/content/locales/fr-FR/native-chat-ui.mdx +108 -8
- package/docs/content/locales/fr-FR/notifications.mdx +135 -8
- package/docs/content/locales/fr-FR/observability.mdx +104 -8
- package/docs/content/locales/fr-FR/observational-memory.mdx +89 -8
- package/docs/content/locales/fr-FR/onboarding.mdx +45 -4
- package/docs/content/locales/fr-FR/plan-plugin.mdx +99 -8
- package/docs/content/locales/fr-FR/pr-visual-recap.mdx +126 -8
- package/docs/content/locales/fr-FR/processors.mdx +41 -4
- package/docs/content/locales/fr-FR/progress.mdx +46 -4
- package/docs/content/locales/fr-FR/pure-agent-apps.mdx +48 -4
- package/docs/content/locales/fr-FR/real-time-collaboration.mdx +107 -8
- package/docs/content/locales/fr-FR/recurring-jobs.mdx +59 -4
- package/docs/content/locales/fr-FR/routing.mdx +44 -5
- package/docs/content/locales/fr-FR/sandbox-adapters.mdx +44 -4
- package/docs/content/locales/fr-FR/security.mdx +82 -8
- package/docs/content/locales/fr-FR/server.mdx +173 -12
- package/docs/content/locales/fr-FR/sharing.mdx +45 -4
- package/docs/content/locales/fr-FR/skills-guide.mdx +118 -9
- package/docs/content/locales/fr-FR/template-analytics.mdx +46 -4
- package/docs/content/locales/fr-FR/template-assets.mdx +66 -4
- package/docs/content/locales/fr-FR/template-brain.mdx +69 -4
- package/docs/content/locales/fr-FR/template-calendar.mdx +62 -4
- package/docs/content/locales/fr-FR/template-chat.mdx +61 -4
- package/docs/content/locales/fr-FR/template-clips.mdx +52 -4
- package/docs/content/locales/fr-FR/template-content.mdx +64 -4
- package/docs/content/locales/fr-FR/template-design.mdx +107 -4
- package/docs/content/locales/fr-FR/template-dispatch.mdx +57 -4
- package/docs/content/locales/fr-FR/template-forms.mdx +64 -4
- package/docs/content/locales/fr-FR/template-mail.mdx +60 -4
- package/docs/content/locales/fr-FR/template-plan.mdx +61 -4
- package/docs/content/locales/fr-FR/template-slides.mdx +49 -4
- package/docs/content/locales/fr-FR/template-videos.mdx +53 -4
- package/docs/content/locales/fr-FR/tracking.mdx +54 -4
- package/docs/content/locales/fr-FR/using-your-agent.mdx +51 -4
- package/docs/content/locales/fr-FR/voice-input.mdx +45 -4
- package/docs/content/locales/fr-FR/what-is-agent-native.mdx +101 -8
- package/docs/content/locales/fr-FR/workspace-connections.mdx +128 -8
- package/docs/content/locales/fr-FR/workspace-management.mdx +50 -4
- package/docs/content/locales/fr-FR/workspace.mdx +112 -8
- package/docs/content/locales/fr-FR/writing-agent-instructions.mdx +47 -4
- package/docs/content/locales/hi-IN/a2a-protocol.mdx +97 -9
- package/docs/content/locales/hi-IN/actions.mdx +63 -4
- package/docs/content/locales/hi-IN/agent-mentions.mdx +68 -4
- package/docs/content/locales/hi-IN/agent-surfaces.mdx +112 -8
- package/docs/content/locales/hi-IN/agent-teams.mdx +171 -12
- package/docs/content/locales/hi-IN/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/hi-IN/authentication.mdx +122 -8
- package/docs/content/locales/hi-IN/automations.mdx +110 -8
- package/docs/content/locales/hi-IN/blueprint-installer.mdx +42 -4
- package/docs/content/locales/hi-IN/cli-adapters.mdx +44 -4
- package/docs/content/locales/hi-IN/client.mdx +79 -8
- package/docs/content/locales/hi-IN/cloneable-saas.mdx +85 -8
- package/docs/content/locales/hi-IN/code-agents-ui.mdx +96 -8
- package/docs/content/locales/hi-IN/components.mdx +114 -8
- package/docs/content/locales/hi-IN/context-awareness.mdx +102 -8
- package/docs/content/locales/hi-IN/creating-templates.mdx +53 -4
- package/docs/content/locales/hi-IN/cross-app-sso.mdx +109 -8
- package/docs/content/locales/hi-IN/database.mdx +52 -4
- package/docs/content/locales/hi-IN/deployment.mdx +103 -8
- package/docs/content/locales/hi-IN/dispatch.mdx +134 -8
- package/docs/content/locales/hi-IN/drop-in-agent.mdx +63 -4
- package/docs/content/locales/hi-IN/durable-resume.mdx +47 -4
- package/docs/content/locales/hi-IN/embedding-sdk.mdx +83 -8
- package/docs/content/locales/hi-IN/evals.mdx +100 -8
- package/docs/content/locales/hi-IN/extensions.mdx +113 -9
- package/docs/content/locales/hi-IN/external-agents.mdx +119 -8
- package/docs/content/locales/hi-IN/faq.mdx +96 -8
- package/docs/content/locales/hi-IN/file-uploads.mdx +61 -4
- package/docs/content/locales/hi-IN/frames.mdx +88 -8
- package/docs/content/locales/hi-IN/getting-started.mdx +34 -4
- package/docs/content/locales/hi-IN/harness-agents.mdx +77 -8
- package/docs/content/locales/hi-IN/human-approval.mdx +51 -4
- package/docs/content/locales/hi-IN/key-concepts.mdx +104 -8
- package/docs/content/locales/hi-IN/local-file-mode.mdx +58 -4
- package/docs/content/locales/hi-IN/mcp-apps.mdx +120 -10
- package/docs/content/locales/hi-IN/mcp-clients.mdx +133 -8
- package/docs/content/locales/hi-IN/mcp-protocol.mdx +105 -8
- package/docs/content/locales/hi-IN/messaging.mdx +115 -8
- package/docs/content/locales/hi-IN/migration-workbench.mdx +45 -4
- package/docs/content/locales/hi-IN/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/hi-IN/multi-tenancy.mdx +80 -8
- package/docs/content/locales/hi-IN/native-chat-ui.mdx +106 -8
- package/docs/content/locales/hi-IN/notifications.mdx +135 -8
- package/docs/content/locales/hi-IN/observability.mdx +102 -8
- package/docs/content/locales/hi-IN/observational-memory.mdx +89 -8
- package/docs/content/locales/hi-IN/onboarding.mdx +45 -4
- package/docs/content/locales/hi-IN/plan-plugin.mdx +99 -8
- package/docs/content/locales/hi-IN/pr-visual-recap.mdx +126 -8
- package/docs/content/locales/hi-IN/processors.mdx +41 -4
- package/docs/content/locales/hi-IN/progress.mdx +46 -4
- package/docs/content/locales/hi-IN/pure-agent-apps.mdx +48 -4
- package/docs/content/locales/hi-IN/real-time-collaboration.mdx +106 -8
- package/docs/content/locales/hi-IN/recurring-jobs.mdx +59 -4
- package/docs/content/locales/hi-IN/routing.mdx +44 -5
- package/docs/content/locales/hi-IN/sandbox-adapters.mdx +43 -4
- package/docs/content/locales/hi-IN/security.mdx +78 -8
- package/docs/content/locales/hi-IN/server.mdx +169 -12
- package/docs/content/locales/hi-IN/sharing.mdx +45 -4
- package/docs/content/locales/hi-IN/skills-guide.mdx +118 -9
- package/docs/content/locales/hi-IN/template-analytics.mdx +46 -4
- package/docs/content/locales/hi-IN/template-assets.mdx +62 -4
- package/docs/content/locales/hi-IN/template-brain.mdx +69 -4
- package/docs/content/locales/hi-IN/template-calendar.mdx +62 -4
- package/docs/content/locales/hi-IN/template-chat.mdx +59 -4
- package/docs/content/locales/hi-IN/template-clips.mdx +52 -4
- package/docs/content/locales/hi-IN/template-content.mdx +62 -4
- package/docs/content/locales/hi-IN/template-design.mdx +102 -4
- package/docs/content/locales/hi-IN/template-dispatch.mdx +57 -4
- package/docs/content/locales/hi-IN/template-forms.mdx +64 -4
- package/docs/content/locales/hi-IN/template-mail.mdx +64 -4
- package/docs/content/locales/hi-IN/template-plan.mdx +61 -4
- package/docs/content/locales/hi-IN/template-slides.mdx +49 -4
- package/docs/content/locales/hi-IN/template-videos.mdx +53 -4
- package/docs/content/locales/hi-IN/tracking.mdx +54 -4
- package/docs/content/locales/hi-IN/using-your-agent.mdx +51 -4
- package/docs/content/locales/hi-IN/voice-input.mdx +43 -4
- package/docs/content/locales/hi-IN/what-is-agent-native.mdx +97 -8
- package/docs/content/locales/hi-IN/workspace-connections.mdx +128 -8
- package/docs/content/locales/hi-IN/workspace-management.mdx +50 -4
- package/docs/content/locales/hi-IN/workspace.mdx +111 -8
- package/docs/content/locales/hi-IN/writing-agent-instructions.mdx +40 -4
- package/docs/content/locales/ja-JP/a2a-protocol.mdx +97 -9
- package/docs/content/locales/ja-JP/actions.mdx +67 -4
- package/docs/content/locales/ja-JP/agent-mentions.mdx +68 -4
- package/docs/content/locales/ja-JP/agent-surfaces.mdx +116 -8
- package/docs/content/locales/ja-JP/agent-teams.mdx +172 -12
- package/docs/content/locales/ja-JP/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/ja-JP/authentication.mdx +122 -8
- package/docs/content/locales/ja-JP/automations.mdx +110 -8
- package/docs/content/locales/ja-JP/blueprint-installer.mdx +44 -4
- package/docs/content/locales/ja-JP/cli-adapters.mdx +44 -4
- package/docs/content/locales/ja-JP/client.mdx +79 -8
- package/docs/content/locales/ja-JP/cloneable-saas.mdx +85 -8
- package/docs/content/locales/ja-JP/code-agents-ui.mdx +100 -8
- package/docs/content/locales/ja-JP/components.mdx +116 -8
- package/docs/content/locales/ja-JP/context-awareness.mdx +100 -8
- package/docs/content/locales/ja-JP/creating-templates.mdx +51 -4
- package/docs/content/locales/ja-JP/cross-app-sso.mdx +109 -8
- package/docs/content/locales/ja-JP/database.mdx +52 -4
- package/docs/content/locales/ja-JP/deployment.mdx +103 -8
- package/docs/content/locales/ja-JP/dispatch.mdx +134 -8
- package/docs/content/locales/ja-JP/drop-in-agent.mdx +63 -4
- package/docs/content/locales/ja-JP/durable-resume.mdx +47 -4
- package/docs/content/locales/ja-JP/embedding-sdk.mdx +85 -8
- package/docs/content/locales/ja-JP/evals.mdx +102 -8
- package/docs/content/locales/ja-JP/extensions.mdx +111 -9
- package/docs/content/locales/ja-JP/external-agents.mdx +119 -8
- package/docs/content/locales/ja-JP/faq.mdx +98 -8
- package/docs/content/locales/ja-JP/file-uploads.mdx +61 -4
- package/docs/content/locales/ja-JP/frames.mdx +88 -8
- package/docs/content/locales/ja-JP/getting-started.mdx +34 -4
- package/docs/content/locales/ja-JP/harness-agents.mdx +79 -8
- package/docs/content/locales/ja-JP/human-approval.mdx +50 -4
- package/docs/content/locales/ja-JP/key-concepts.mdx +105 -8
- package/docs/content/locales/ja-JP/local-file-mode.mdx +58 -4
- package/docs/content/locales/ja-JP/mcp-apps.mdx +119 -10
- package/docs/content/locales/ja-JP/mcp-clients.mdx +134 -8
- package/docs/content/locales/ja-JP/mcp-protocol.mdx +105 -8
- package/docs/content/locales/ja-JP/messaging.mdx +115 -8
- package/docs/content/locales/ja-JP/migration-workbench.mdx +47 -4
- package/docs/content/locales/ja-JP/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/ja-JP/multi-tenancy.mdx +80 -8
- package/docs/content/locales/ja-JP/native-chat-ui.mdx +104 -8
- package/docs/content/locales/ja-JP/notifications.mdx +135 -8
- package/docs/content/locales/ja-JP/observability.mdx +104 -8
- package/docs/content/locales/ja-JP/observational-memory.mdx +89 -8
- package/docs/content/locales/ja-JP/onboarding.mdx +45 -4
- package/docs/content/locales/ja-JP/plan-plugin.mdx +99 -8
- package/docs/content/locales/ja-JP/pr-visual-recap.mdx +123 -8
- package/docs/content/locales/ja-JP/processors.mdx +39 -4
- package/docs/content/locales/ja-JP/progress.mdx +46 -4
- package/docs/content/locales/ja-JP/pure-agent-apps.mdx +48 -4
- package/docs/content/locales/ja-JP/real-time-collaboration.mdx +106 -8
- package/docs/content/locales/ja-JP/recurring-jobs.mdx +59 -4
- package/docs/content/locales/ja-JP/routing.mdx +44 -5
- package/docs/content/locales/ja-JP/sandbox-adapters.mdx +43 -4
- package/docs/content/locales/ja-JP/security.mdx +82 -8
- package/docs/content/locales/ja-JP/server.mdx +171 -12
- package/docs/content/locales/ja-JP/sharing.mdx +45 -4
- package/docs/content/locales/ja-JP/skills-guide.mdx +118 -9
- package/docs/content/locales/ja-JP/template-analytics.mdx +46 -4
- package/docs/content/locales/ja-JP/template-assets.mdx +64 -4
- package/docs/content/locales/ja-JP/template-brain.mdx +67 -4
- package/docs/content/locales/ja-JP/template-calendar.mdx +62 -4
- package/docs/content/locales/ja-JP/template-chat.mdx +61 -4
- package/docs/content/locales/ja-JP/template-clips.mdx +52 -4
- package/docs/content/locales/ja-JP/template-content.mdx +62 -4
- package/docs/content/locales/ja-JP/template-design.mdx +106 -4
- package/docs/content/locales/ja-JP/template-dispatch.mdx +57 -4
- package/docs/content/locales/ja-JP/template-forms.mdx +62 -4
- package/docs/content/locales/ja-JP/template-mail.mdx +62 -4
- package/docs/content/locales/ja-JP/template-plan.mdx +63 -4
- package/docs/content/locales/ja-JP/template-slides.mdx +49 -4
- package/docs/content/locales/ja-JP/template-videos.mdx +53 -4
- package/docs/content/locales/ja-JP/tracking.mdx +54 -4
- package/docs/content/locales/ja-JP/using-your-agent.mdx +51 -4
- package/docs/content/locales/ja-JP/voice-input.mdx +43 -4
- package/docs/content/locales/ja-JP/what-is-agent-native.mdx +96 -8
- package/docs/content/locales/ja-JP/workspace-connections.mdx +128 -8
- package/docs/content/locales/ja-JP/workspace-management.mdx +50 -4
- package/docs/content/locales/ja-JP/workspace.mdx +111 -8
- package/docs/content/locales/ja-JP/writing-agent-instructions.mdx +44 -4
- package/docs/content/locales/ko-KR/a2a-protocol.mdx +97 -9
- package/docs/content/locales/ko-KR/actions.mdx +63 -4
- package/docs/content/locales/ko-KR/agent-mentions.mdx +68 -4
- package/docs/content/locales/ko-KR/agent-surfaces.mdx +113 -8
- package/docs/content/locales/ko-KR/agent-teams.mdx +171 -12
- package/docs/content/locales/ko-KR/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/ko-KR/authentication.mdx +122 -8
- package/docs/content/locales/ko-KR/automations.mdx +110 -8
- package/docs/content/locales/ko-KR/blueprint-installer.mdx +42 -4
- package/docs/content/locales/ko-KR/cli-adapters.mdx +44 -4
- package/docs/content/locales/ko-KR/client.mdx +79 -8
- package/docs/content/locales/ko-KR/cloneable-saas.mdx +85 -8
- package/docs/content/locales/ko-KR/code-agents-ui.mdx +96 -8
- package/docs/content/locales/ko-KR/components.mdx +112 -8
- package/docs/content/locales/ko-KR/context-awareness.mdx +96 -8
- package/docs/content/locales/ko-KR/creating-templates.mdx +51 -4
- package/docs/content/locales/ko-KR/cross-app-sso.mdx +109 -8
- package/docs/content/locales/ko-KR/database.mdx +52 -4
- package/docs/content/locales/ko-KR/deployment.mdx +103 -8
- package/docs/content/locales/ko-KR/dispatch.mdx +132 -8
- package/docs/content/locales/ko-KR/drop-in-agent.mdx +63 -4
- package/docs/content/locales/ko-KR/durable-resume.mdx +47 -4
- package/docs/content/locales/ko-KR/embedding-sdk.mdx +81 -8
- package/docs/content/locales/ko-KR/evals.mdx +102 -8
- package/docs/content/locales/ko-KR/extensions.mdx +111 -9
- package/docs/content/locales/ko-KR/external-agents.mdx +119 -8
- package/docs/content/locales/ko-KR/faq.mdx +96 -8
- package/docs/content/locales/ko-KR/file-uploads.mdx +61 -4
- package/docs/content/locales/ko-KR/frames.mdx +86 -8
- package/docs/content/locales/ko-KR/getting-started.mdx +34 -4
- package/docs/content/locales/ko-KR/harness-agents.mdx +77 -8
- package/docs/content/locales/ko-KR/human-approval.mdx +50 -4
- package/docs/content/locales/ko-KR/key-concepts.mdx +104 -8
- package/docs/content/locales/ko-KR/local-file-mode.mdx +56 -4
- package/docs/content/locales/ko-KR/mcp-apps.mdx +120 -10
- package/docs/content/locales/ko-KR/mcp-clients.mdx +133 -8
- package/docs/content/locales/ko-KR/mcp-protocol.mdx +105 -8
- package/docs/content/locales/ko-KR/messaging.mdx +115 -8
- package/docs/content/locales/ko-KR/migration-workbench.mdx +45 -4
- package/docs/content/locales/ko-KR/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/ko-KR/multi-tenancy.mdx +80 -8
- package/docs/content/locales/ko-KR/native-chat-ui.mdx +104 -8
- package/docs/content/locales/ko-KR/notifications.mdx +135 -8
- package/docs/content/locales/ko-KR/observability.mdx +102 -8
- package/docs/content/locales/ko-KR/observational-memory.mdx +87 -8
- package/docs/content/locales/ko-KR/onboarding.mdx +44 -4
- package/docs/content/locales/ko-KR/plan-plugin.mdx +99 -8
- package/docs/content/locales/ko-KR/pr-visual-recap.mdx +125 -8
- package/docs/content/locales/ko-KR/processors.mdx +39 -4
- package/docs/content/locales/ko-KR/progress.mdx +46 -4
- package/docs/content/locales/ko-KR/pure-agent-apps.mdx +46 -4
- package/docs/content/locales/ko-KR/real-time-collaboration.mdx +104 -8
- package/docs/content/locales/ko-KR/recurring-jobs.mdx +59 -4
- package/docs/content/locales/ko-KR/routing.mdx +44 -5
- package/docs/content/locales/ko-KR/sandbox-adapters.mdx +41 -4
- package/docs/content/locales/ko-KR/security.mdx +78 -8
- package/docs/content/locales/ko-KR/server.mdx +171 -12
- package/docs/content/locales/ko-KR/sharing.mdx +45 -4
- package/docs/content/locales/ko-KR/skills-guide.mdx +118 -9
- package/docs/content/locales/ko-KR/template-analytics.mdx +46 -4
- package/docs/content/locales/ko-KR/template-assets.mdx +62 -4
- package/docs/content/locales/ko-KR/template-brain.mdx +65 -4
- package/docs/content/locales/ko-KR/template-calendar.mdx +60 -4
- package/docs/content/locales/ko-KR/template-chat.mdx +59 -4
- package/docs/content/locales/ko-KR/template-clips.mdx +52 -4
- package/docs/content/locales/ko-KR/template-content.mdx +60 -4
- package/docs/content/locales/ko-KR/template-design.mdx +102 -4
- package/docs/content/locales/ko-KR/template-dispatch.mdx +57 -4
- package/docs/content/locales/ko-KR/template-forms.mdx +60 -4
- package/docs/content/locales/ko-KR/template-mail.mdx +60 -4
- package/docs/content/locales/ko-KR/template-plan.mdx +57 -4
- package/docs/content/locales/ko-KR/template-slides.mdx +49 -4
- package/docs/content/locales/ko-KR/template-videos.mdx +53 -4
- package/docs/content/locales/ko-KR/tracking.mdx +54 -4
- package/docs/content/locales/ko-KR/using-your-agent.mdx +51 -4
- package/docs/content/locales/ko-KR/voice-input.mdx +43 -4
- package/docs/content/locales/ko-KR/what-is-agent-native.mdx +95 -8
- package/docs/content/locales/ko-KR/workspace-connections.mdx +128 -8
- package/docs/content/locales/ko-KR/workspace-management.mdx +50 -4
- package/docs/content/locales/ko-KR/workspace.mdx +111 -8
- package/docs/content/locales/ko-KR/writing-agent-instructions.mdx +38 -4
- package/docs/content/locales/pt-BR/a2a-protocol.mdx +99 -9
- package/docs/content/locales/pt-BR/actions.mdx +67 -4
- package/docs/content/locales/pt-BR/agent-mentions.mdx +68 -4
- package/docs/content/locales/pt-BR/agent-surfaces.mdx +116 -8
- package/docs/content/locales/pt-BR/agent-teams.mdx +172 -12
- package/docs/content/locales/pt-BR/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/pt-BR/authentication.mdx +122 -8
- package/docs/content/locales/pt-BR/automations.mdx +110 -8
- package/docs/content/locales/pt-BR/blueprint-installer.mdx +42 -4
- package/docs/content/locales/pt-BR/cli-adapters.mdx +44 -4
- package/docs/content/locales/pt-BR/client.mdx +81 -8
- package/docs/content/locales/pt-BR/cloneable-saas.mdx +85 -8
- package/docs/content/locales/pt-BR/code-agents-ui.mdx +98 -8
- package/docs/content/locales/pt-BR/components.mdx +118 -8
- package/docs/content/locales/pt-BR/context-awareness.mdx +100 -8
- package/docs/content/locales/pt-BR/creating-templates.mdx +51 -4
- package/docs/content/locales/pt-BR/cross-app-sso.mdx +109 -8
- package/docs/content/locales/pt-BR/database.mdx +52 -4
- package/docs/content/locales/pt-BR/deployment.mdx +103 -8
- package/docs/content/locales/pt-BR/dispatch.mdx +134 -8
- package/docs/content/locales/pt-BR/drop-in-agent.mdx +63 -4
- package/docs/content/locales/pt-BR/durable-resume.mdx +47 -4
- package/docs/content/locales/pt-BR/embedding-sdk.mdx +87 -8
- package/docs/content/locales/pt-BR/evals.mdx +102 -8
- package/docs/content/locales/pt-BR/extensions.mdx +113 -9
- package/docs/content/locales/pt-BR/external-agents.mdx +119 -8
- package/docs/content/locales/pt-BR/faq.mdx +98 -8
- package/docs/content/locales/pt-BR/file-uploads.mdx +61 -4
- package/docs/content/locales/pt-BR/frames.mdx +88 -8
- package/docs/content/locales/pt-BR/getting-started.mdx +34 -4
- package/docs/content/locales/pt-BR/harness-agents.mdx +79 -8
- package/docs/content/locales/pt-BR/human-approval.mdx +50 -4
- package/docs/content/locales/pt-BR/key-concepts.mdx +104 -8
- package/docs/content/locales/pt-BR/local-file-mode.mdx +60 -4
- package/docs/content/locales/pt-BR/mcp-apps.mdx +120 -10
- package/docs/content/locales/pt-BR/mcp-clients.mdx +133 -8
- package/docs/content/locales/pt-BR/mcp-protocol.mdx +105 -8
- package/docs/content/locales/pt-BR/messaging.mdx +115 -8
- package/docs/content/locales/pt-BR/migration-workbench.mdx +47 -4
- package/docs/content/locales/pt-BR/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/pt-BR/multi-tenancy.mdx +80 -8
- package/docs/content/locales/pt-BR/native-chat-ui.mdx +108 -8
- package/docs/content/locales/pt-BR/notifications.mdx +135 -8
- package/docs/content/locales/pt-BR/observability.mdx +104 -8
- package/docs/content/locales/pt-BR/observational-memory.mdx +92 -8
- package/docs/content/locales/pt-BR/onboarding.mdx +45 -4
- package/docs/content/locales/pt-BR/plan-plugin.mdx +99 -8
- package/docs/content/locales/pt-BR/pr-visual-recap.mdx +125 -8
- package/docs/content/locales/pt-BR/processors.mdx +41 -4
- package/docs/content/locales/pt-BR/progress.mdx +46 -4
- package/docs/content/locales/pt-BR/pure-agent-apps.mdx +48 -4
- package/docs/content/locales/pt-BR/real-time-collaboration.mdx +107 -8
- package/docs/content/locales/pt-BR/recurring-jobs.mdx +59 -4
- package/docs/content/locales/pt-BR/routing.mdx +44 -5
- package/docs/content/locales/pt-BR/sandbox-adapters.mdx +43 -4
- package/docs/content/locales/pt-BR/security.mdx +82 -8
- package/docs/content/locales/pt-BR/server.mdx +173 -12
- package/docs/content/locales/pt-BR/sharing.mdx +45 -4
- package/docs/content/locales/pt-BR/skills-guide.mdx +118 -9
- package/docs/content/locales/pt-BR/template-analytics.mdx +46 -4
- package/docs/content/locales/pt-BR/template-assets.mdx +64 -4
- package/docs/content/locales/pt-BR/template-brain.mdx +69 -4
- package/docs/content/locales/pt-BR/template-calendar.mdx +62 -4
- package/docs/content/locales/pt-BR/template-chat.mdx +61 -4
- package/docs/content/locales/pt-BR/template-clips.mdx +52 -4
- package/docs/content/locales/pt-BR/template-content.mdx +64 -4
- package/docs/content/locales/pt-BR/template-design.mdx +106 -4
- package/docs/content/locales/pt-BR/template-dispatch.mdx +57 -4
- package/docs/content/locales/pt-BR/template-forms.mdx +64 -4
- package/docs/content/locales/pt-BR/template-mail.mdx +60 -4
- package/docs/content/locales/pt-BR/template-plan.mdx +63 -4
- package/docs/content/locales/pt-BR/template-slides.mdx +49 -4
- package/docs/content/locales/pt-BR/template-videos.mdx +53 -4
- package/docs/content/locales/pt-BR/tracking.mdx +54 -4
- package/docs/content/locales/pt-BR/using-your-agent.mdx +51 -4
- package/docs/content/locales/pt-BR/voice-input.mdx +43 -4
- package/docs/content/locales/pt-BR/what-is-agent-native.mdx +101 -8
- package/docs/content/locales/pt-BR/workspace-connections.mdx +128 -8
- package/docs/content/locales/pt-BR/workspace-management.mdx +50 -4
- package/docs/content/locales/pt-BR/workspace.mdx +111 -8
- package/docs/content/locales/pt-BR/writing-agent-instructions.mdx +46 -4
- package/docs/content/locales/zh-CN/a2a-protocol.mdx +97 -9
- package/docs/content/locales/zh-CN/actions.mdx +65 -4
- package/docs/content/locales/zh-CN/agent-mentions.mdx +68 -4
- package/docs/content/locales/zh-CN/agent-surfaces.mdx +108 -8
- package/docs/content/locales/zh-CN/agent-teams.mdx +171 -12
- package/docs/content/locales/zh-CN/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/zh-CN/authentication.mdx +122 -8
- package/docs/content/locales/zh-CN/automations.mdx +110 -8
- package/docs/content/locales/zh-CN/blueprint-installer.mdx +42 -4
- package/docs/content/locales/zh-CN/cli-adapters.mdx +44 -4
- package/docs/content/locales/zh-CN/client.mdx +79 -8
- package/docs/content/locales/zh-CN/cloneable-saas.mdx +83 -8
- package/docs/content/locales/zh-CN/code-agents-ui.mdx +94 -8
- package/docs/content/locales/zh-CN/components.mdx +112 -8
- package/docs/content/locales/zh-CN/context-awareness.mdx +96 -8
- package/docs/content/locales/zh-CN/creating-templates.mdx +51 -4
- package/docs/content/locales/zh-CN/cross-app-sso.mdx +107 -8
- package/docs/content/locales/zh-CN/database.mdx +52 -4
- package/docs/content/locales/zh-CN/deployment.mdx +103 -8
- package/docs/content/locales/zh-CN/dispatch.mdx +134 -8
- package/docs/content/locales/zh-CN/drop-in-agent.mdx +63 -4
- package/docs/content/locales/zh-CN/durable-resume.mdx +45 -4
- package/docs/content/locales/zh-CN/embedding-sdk.mdx +81 -8
- package/docs/content/locales/zh-CN/evals.mdx +100 -8
- package/docs/content/locales/zh-CN/extensions.mdx +111 -9
- package/docs/content/locales/zh-CN/external-agents.mdx +119 -8
- package/docs/content/locales/zh-CN/faq.mdx +96 -8
- package/docs/content/locales/zh-CN/file-uploads.mdx +61 -4
- package/docs/content/locales/zh-CN/frames.mdx +86 -8
- package/docs/content/locales/zh-CN/getting-started.mdx +34 -4
- package/docs/content/locales/zh-CN/harness-agents.mdx +79 -8
- package/docs/content/locales/zh-CN/human-approval.mdx +50 -4
- package/docs/content/locales/zh-CN/key-concepts.mdx +100 -8
- package/docs/content/locales/zh-CN/local-file-mode.mdx +56 -4
- package/docs/content/locales/zh-CN/mcp-apps.mdx +120 -10
- package/docs/content/locales/zh-CN/mcp-clients.mdx +133 -8
- package/docs/content/locales/zh-CN/mcp-protocol.mdx +105 -8
- package/docs/content/locales/zh-CN/messaging.mdx +115 -8
- package/docs/content/locales/zh-CN/migration-workbench.mdx +45 -4
- package/docs/content/locales/zh-CN/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/zh-CN/multi-tenancy.mdx +80 -8
- package/docs/content/locales/zh-CN/native-chat-ui.mdx +104 -8
- package/docs/content/locales/zh-CN/notifications.mdx +135 -8
- package/docs/content/locales/zh-CN/observability.mdx +102 -8
- package/docs/content/locales/zh-CN/observational-memory.mdx +85 -8
- package/docs/content/locales/zh-CN/onboarding.mdx +44 -4
- package/docs/content/locales/zh-CN/plan-plugin.mdx +97 -8
- package/docs/content/locales/zh-CN/pr-visual-recap.mdx +123 -8
- package/docs/content/locales/zh-CN/processors.mdx +39 -4
- package/docs/content/locales/zh-CN/progress.mdx +46 -4
- package/docs/content/locales/zh-CN/pure-agent-apps.mdx +46 -4
- package/docs/content/locales/zh-CN/real-time-collaboration.mdx +98 -8
- package/docs/content/locales/zh-CN/recurring-jobs.mdx +59 -4
- package/docs/content/locales/zh-CN/routing.mdx +42 -5
- package/docs/content/locales/zh-CN/sandbox-adapters.mdx +41 -4
- package/docs/content/locales/zh-CN/security.mdx +78 -8
- package/docs/content/locales/zh-CN/server.mdx +169 -12
- package/docs/content/locales/zh-CN/sharing.mdx +45 -4
- package/docs/content/locales/zh-CN/skills-guide.mdx +118 -9
- package/docs/content/locales/zh-CN/template-analytics.mdx +46 -4
- package/docs/content/locales/zh-CN/template-assets.mdx +58 -4
- package/docs/content/locales/zh-CN/template-brain.mdx +65 -4
- package/docs/content/locales/zh-CN/template-calendar.mdx +58 -4
- package/docs/content/locales/zh-CN/template-chat.mdx +57 -4
- package/docs/content/locales/zh-CN/template-clips.mdx +52 -4
- package/docs/content/locales/zh-CN/template-content.mdx +58 -4
- package/docs/content/locales/zh-CN/template-design.mdx +94 -4
- package/docs/content/locales/zh-CN/template-dispatch.mdx +57 -4
- package/docs/content/locales/zh-CN/template-forms.mdx +58 -4
- package/docs/content/locales/zh-CN/template-mail.mdx +60 -4
- package/docs/content/locales/zh-CN/template-plan.mdx +57 -4
- package/docs/content/locales/zh-CN/template-slides.mdx +49 -4
- package/docs/content/locales/zh-CN/template-videos.mdx +51 -4
- package/docs/content/locales/zh-CN/tracking.mdx +54 -4
- package/docs/content/locales/zh-CN/using-your-agent.mdx +51 -4
- package/docs/content/locales/zh-CN/voice-input.mdx +43 -4
- package/docs/content/locales/zh-CN/what-is-agent-native.mdx +94 -8
- package/docs/content/locales/zh-CN/workspace-connections.mdx +126 -8
- package/docs/content/locales/zh-CN/workspace-management.mdx +50 -4
- package/docs/content/locales/zh-CN/workspace.mdx +110 -8
- package/docs/content/locales/zh-CN/writing-agent-instructions.mdx +38 -4
- package/docs/content/locales/zh-TW/a2a-protocol.mdx +97 -9
- package/docs/content/locales/zh-TW/actions.mdx +63 -4
- package/docs/content/locales/zh-TW/agent-mentions.mdx +68 -4
- package/docs/content/locales/zh-TW/agent-surfaces.mdx +108 -8
- package/docs/content/locales/zh-TW/agent-teams.mdx +171 -12
- package/docs/content/locales/zh-TW/agent-web-surfaces.mdx +51 -4
- package/docs/content/locales/zh-TW/authentication.mdx +122 -8
- package/docs/content/locales/zh-TW/automations.mdx +110 -8
- package/docs/content/locales/zh-TW/blueprint-installer.mdx +42 -4
- package/docs/content/locales/zh-TW/cli-adapters.mdx +44 -4
- package/docs/content/locales/zh-TW/client.mdx +79 -8
- package/docs/content/locales/zh-TW/cloneable-saas.mdx +83 -8
- package/docs/content/locales/zh-TW/code-agents-ui.mdx +94 -8
- package/docs/content/locales/zh-TW/components.mdx +112 -8
- package/docs/content/locales/zh-TW/context-awareness.mdx +96 -8
- package/docs/content/locales/zh-TW/creating-templates.mdx +51 -4
- package/docs/content/locales/zh-TW/cross-app-sso.mdx +107 -8
- package/docs/content/locales/zh-TW/database.mdx +52 -4
- package/docs/content/locales/zh-TW/deployment.mdx +103 -8
- package/docs/content/locales/zh-TW/dispatch.mdx +134 -8
- package/docs/content/locales/zh-TW/drop-in-agent.mdx +63 -4
- package/docs/content/locales/zh-TW/durable-background-runs.mdx +88 -8
- package/docs/content/locales/zh-TW/durable-resume.mdx +45 -4
- package/docs/content/locales/zh-TW/embedding-sdk.mdx +83 -8
- package/docs/content/locales/zh-TW/evals.mdx +100 -8
- package/docs/content/locales/zh-TW/extensions.mdx +111 -9
- package/docs/content/locales/zh-TW/external-agents.mdx +119 -8
- package/docs/content/locales/zh-TW/faq.mdx +96 -8
- package/docs/content/locales/zh-TW/file-uploads.mdx +61 -4
- package/docs/content/locales/zh-TW/frames.mdx +86 -8
- package/docs/content/locales/zh-TW/getting-started.mdx +34 -4
- package/docs/content/locales/zh-TW/harness-agents.mdx +79 -8
- package/docs/content/locales/zh-TW/human-approval.mdx +50 -4
- package/docs/content/locales/zh-TW/key-concepts.mdx +100 -8
- package/docs/content/locales/zh-TW/local-file-mode.mdx +56 -4
- package/docs/content/locales/zh-TW/mcp-apps.mdx +120 -10
- package/docs/content/locales/zh-TW/mcp-clients.mdx +133 -8
- package/docs/content/locales/zh-TW/mcp-protocol.mdx +105 -8
- package/docs/content/locales/zh-TW/messaging.mdx +115 -8
- package/docs/content/locales/zh-TW/migration-workbench.mdx +45 -4
- package/docs/content/locales/zh-TW/multi-app-workspace.mdx +91 -8
- package/docs/content/locales/zh-TW/multi-tenancy.mdx +80 -8
- package/docs/content/locales/zh-TW/native-chat-ui.mdx +104 -8
- package/docs/content/locales/zh-TW/notifications.mdx +135 -8
- package/docs/content/locales/zh-TW/observability.mdx +102 -8
- package/docs/content/locales/zh-TW/observational-memory.mdx +85 -8
- package/docs/content/locales/zh-TW/onboarding.mdx +44 -4
- package/docs/content/locales/zh-TW/plan-plugin.mdx +97 -8
- package/docs/content/locales/zh-TW/pr-visual-recap.mdx +123 -8
- package/docs/content/locales/zh-TW/processors.mdx +39 -4
- package/docs/content/locales/zh-TW/progress.mdx +46 -4
- package/docs/content/locales/zh-TW/pure-agent-apps.mdx +46 -4
- package/docs/content/locales/zh-TW/real-time-collaboration.mdx +98 -8
- package/docs/content/locales/zh-TW/recurring-jobs.mdx +59 -4
- package/docs/content/locales/zh-TW/routing.mdx +42 -5
- package/docs/content/locales/zh-TW/sandbox-adapters.mdx +41 -4
- package/docs/content/locales/zh-TW/security.mdx +80 -8
- package/docs/content/locales/zh-TW/server.mdx +169 -12
- package/docs/content/locales/zh-TW/sharing.mdx +45 -4
- package/docs/content/locales/zh-TW/skills-guide.mdx +118 -9
- package/docs/content/locales/zh-TW/template-analytics.mdx +46 -4
- package/docs/content/locales/zh-TW/template-assets.mdx +58 -4
- package/docs/content/locales/zh-TW/template-brain.mdx +65 -4
- package/docs/content/locales/zh-TW/template-calendar.mdx +58 -4
- package/docs/content/locales/zh-TW/template-chat.mdx +59 -4
- package/docs/content/locales/zh-TW/template-clips.mdx +52 -4
- package/docs/content/locales/zh-TW/template-content.mdx +58 -4
- package/docs/content/locales/zh-TW/template-design.mdx +96 -4
- package/docs/content/locales/zh-TW/template-dispatch.mdx +57 -4
- package/docs/content/locales/zh-TW/template-forms.mdx +58 -4
- package/docs/content/locales/zh-TW/template-mail.mdx +60 -4
- package/docs/content/locales/zh-TW/template-plan.mdx +57 -4
- package/docs/content/locales/zh-TW/template-slides.mdx +49 -4
- package/docs/content/locales/zh-TW/template-videos.mdx +51 -4
- package/docs/content/locales/zh-TW/tracking.mdx +54 -4
- package/docs/content/locales/zh-TW/using-your-agent.mdx +51 -4
- package/docs/content/locales/zh-TW/voice-input.mdx +43 -4
- package/docs/content/locales/zh-TW/what-is-agent-native.mdx +94 -8
- package/docs/content/locales/zh-TW/workspace-connections.mdx +126 -8
- package/docs/content/locales/zh-TW/workspace-management.mdx +50 -4
- package/docs/content/locales/zh-TW/workspace.mdx +111 -8
- package/docs/content/locales/zh-TW/writing-agent-instructions.mdx +38 -4
- package/docs/content/mcp-apps.mdx +120 -10
- package/docs/content/mcp-clients.mdx +161 -8
- package/docs/content/mcp-protocol.mdx +105 -8
- package/docs/content/messaging.mdx +115 -8
- package/docs/content/migration-workbench.mdx +45 -4
- package/docs/content/multi-app-workspace.mdx +91 -8
- package/docs/content/multi-tenancy.mdx +80 -8
- package/docs/content/native-chat-ui.mdx +106 -8
- package/docs/content/notifications.mdx +135 -8
- package/docs/content/observability.mdx +102 -8
- package/docs/content/observational-memory.mdx +89 -8
- package/docs/content/onboarding.mdx +45 -4
- package/docs/content/plan-plugin.mdx +99 -8
- package/docs/content/pr-visual-recap.mdx +125 -8
- package/docs/content/processors.mdx +41 -4
- package/docs/content/progress.mdx +46 -4
- package/docs/content/pure-agent-apps.mdx +46 -4
- package/docs/content/real-time-collaboration.mdx +104 -8
- package/docs/content/recurring-jobs.mdx +59 -4
- package/docs/content/routing.mdx +44 -5
- package/docs/content/sandbox-adapters.mdx +43 -4
- package/docs/content/security.mdx +80 -8
- package/docs/content/server.mdx +173 -12
- package/docs/content/sharing.mdx +45 -4
- package/docs/content/skills-guide.mdx +118 -9
- package/docs/content/template-analytics.mdx +46 -4
- package/docs/content/template-assets.mdx +60 -4
- package/docs/content/template-brain.mdx +67 -4
- package/docs/content/template-calendar.mdx +62 -4
- package/docs/content/template-chat.mdx +61 -4
- package/docs/content/template-clips.mdx +52 -4
- package/docs/content/template-content.mdx +60 -4
- package/docs/content/template-design.mdx +103 -4
- package/docs/content/template-dispatch.mdx +57 -4
- package/docs/content/template-forms.mdx +62 -4
- package/docs/content/template-mail.mdx +60 -4
- package/docs/content/template-plan.mdx +61 -4
- package/docs/content/template-slides.mdx +49 -4
- package/docs/content/template-videos.mdx +51 -4
- package/docs/content/tracking.mdx +54 -4
- package/docs/content/using-your-agent.mdx +51 -4
- package/docs/content/voice-input.mdx +43 -4
- package/docs/content/what-is-agent-native.mdx +188 -8
- package/docs/content/workspace-connections.mdx +128 -8
- package/docs/content/workspace-management.mdx +50 -4
- package/docs/content/workspace.mdx +111 -8
- package/docs/content/writing-agent-instructions.mdx +45 -4
- package/package.json +2 -1
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +10 -0
- package/corpus/templates/design/app/components/design/DesignToolbar.tsx +0 -339
- package/corpus/templates/design/app/components/design/PresentMode.tsx +0 -68
- package/corpus/templates/design/app/components/design/ViewportTabs.tsx +0 -149
- package/corpus/templates/design/app/components/design/ZoomControls.tsx +0 -157
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapComposer.js","sourceRoot":"","sources":["../../../src/client/composer/TiptapComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useComposer, useComposerRuntime } from \"@assistant-ui/react\";\nimport {\n IconArrowUp,\n IconCheck,\n IconChevronDown,\n IconChevronRight,\n IconBulb,\n IconClock,\n IconBolt,\n IconTool,\n IconX,\n IconClipboardList,\n IconPencil,\n IconPlugConnected,\n} from \"@tabler/icons-react\";\nimport Placeholder from \"@tiptap/extension-placeholder\";\nimport type { EditorView } from \"@tiptap/pm/view\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n useMemo,\n} from \"react\";\n\nimport {\n getReasoningEffortOptionsForModel,\n reasoningEffortLabel,\n type ReasoningEffort,\n} from \"../../shared/reasoning-effort.js\";\nimport {\n AgentComposerReference,\n normalizeAgentComposerReference,\n sendToAgentChat,\n type AgentChatContextItem,\n AgentComposerReferenceInsertPayload,\n AGENT_CHAT_INSERT_REFERENCE_EVENT,\n AGENT_CHAT_INSERT_REFERENCE_MESSAGE_TYPE,\n} from \"../agent-chat.js\";\nimport { tryDelegateBuildRequestToBuilder } from \"../builder-frame.js\";\nimport { isTrustedBuilderMessage } from \"../builder-frame.js\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../components/ui/popover.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../components/ui/tooltip.js\";\nimport { isTrustedFrameMessage } from \"../frame.js\";\nimport { useBuilderConnectFlow } from \"../settings/useBuilderStatus.js\";\nimport { ComposerPlusMenu } from \"./ComposerPlusMenu.js\";\nimport { getComposerDraftKey } from \"./draft-key.js\";\nimport { FileReference } from \"./extensions/FileReference.js\";\nimport { MentionReference } from \"./extensions/MentionReference.js\";\nimport { SkillReference } from \"./extensions/SkillReference.js\";\nimport { MentionPopover, type MentionPopoverRef } from \"./MentionPopover.js\";\nimport {\n createPastedAttachmentFile,\n readClipboardPaste,\n shouldConvertClipboardToAttachment,\n} from \"./pasted-text.js\";\nimport type {\n MentionItem,\n SkillResult,\n Reference,\n SlashCommand,\n ComposerMode,\n AgentComposerLayoutVariant,\n} from \"./types.js\";\nimport { useMentionSearch } from \"./use-mention-search.js\";\nimport { useSkills } from \"./use-skills.js\";\nimport { useVoiceDictation } from \"./useVoiceDictation.js\";\nimport { VoiceButton, VoiceRecordingOverlay } from \"./VoiceButton.js\";\nexport interface TiptapComposerHandle {\n focus(): void;\n setText(text: string): void;\n insertReference(ref: AgentComposerReference): void;\n}\n\nexport type ComposerSubmitIntent = \"immediate\" | \"queued\";\n\nexport const DEFAULT_VOICE_DICTATION_ENABLED = false;\n\nexport interface TiptapComposerSubmitOptions {\n intent?: ComposerSubmitIntent;\n}\n\nexport function canSubmitComposerContent(options: {\n hasEditorContent: boolean;\n attachmentCount: number;\n disabled?: boolean;\n}): boolean {\n return (\n !options.disabled &&\n (options.hasEditorContent || options.attachmentCount > 0)\n );\n}\n\nconst MAX_DOCUMENT_ATTACHMENT_BYTES = 4 * 1024 * 1024;\n\nfunction composerReferenceFromMentionItem(\n item: MentionItem,\n): AgentComposerReference {\n return {\n label: item.label,\n icon: item.icon || \"file\",\n source: item.source,\n refType: item.refType,\n refId: item.refId || null,\n refPath: item.refPath || null,\n slotKey: item.slotKey,\n slotLabel: item.slotLabel,\n metadata: item.metadata,\n clearsSlots: item.clearsSlots,\n relatedReferences: item.relatedReferences,\n };\n}\n\nfunction mentionReferenceAttrs(ref: AgentComposerReference) {\n return {\n label: ref.label,\n icon: ref.icon || \"file\",\n source: ref.source,\n refType: ref.refType,\n refId: ref.refId || null,\n refPath: ref.refPath || null,\n slotKey: ref.slotKey || null,\n slotLabel: ref.slotLabel || null,\n metadata: ref.metadata || null,\n };\n}\n\nfunction referenceFromComposerReference(\n ref: AgentComposerReference,\n): Reference {\n return {\n type:\n ref.refType === \"file\"\n ? \"file\"\n : ref.refType === \"agent\"\n ? \"agent\"\n : ref.refType === \"custom-agent\"\n ? \"custom-agent\"\n : \"mention\",\n path: ref.refPath || \"\",\n name: ref.label,\n source: ref.source || \"\",\n refType: ref.refType,\n refId: ref.refId || undefined,\n slotKey: ref.slotKey,\n slotLabel: ref.slotLabel,\n metadata: ref.metadata,\n };\n}\n\nfunction applySlotReferenceChanges(\n current: AgentComposerReference[],\n references: AgentComposerReference[],\n): AgentComposerReference[] {\n let next = current;\n\n const applyOne = (ref: AgentComposerReference) => {\n for (const related of ref.relatedReferences ?? []) {\n applyOne(related);\n }\n if (!ref.slotKey) return;\n const cleared = new Set([ref.slotKey, ...(ref.clearsSlots ?? [])]);\n next = next.filter((existing) => !cleared.has(existing.slotKey ?? \"\"));\n next = [...next, ref];\n };\n\n for (const ref of references) {\n applyOne(ref);\n }\n\n return next;\n}\n\nfunction removeSlotReference(\n current: AgentComposerReference[],\n ref: AgentComposerReference,\n): AgentComposerReference[] {\n const removed = new Set([ref.slotKey, ...(ref.clearsSlots ?? [])]);\n return current.filter((existing) => !removed.has(existing.slotKey ?? \"\"));\n}\n\nfunction slotReferenceTitle(ref: AgentComposerReference): string {\n return ref.slotLabel ? `${ref.slotLabel}: ${ref.label}` : ref.label;\n}\n\nfunction metadataString(\n metadata: Record<string, unknown> | undefined,\n key: string,\n): string | null {\n const value = metadata?.[key];\n return typeof value === \"string\" && value.trim() ? value.trim() : null;\n}\n\nfunction filterMentionItemsForSlots(\n items: MentionItem[],\n slotReferences: AgentComposerReference[],\n): MentionItem[] {\n return items.filter((item) => {\n const requiredSlotKey = metadataString(item.metadata, \"requiredSlotKey\");\n const requiredRefId = metadataString(item.metadata, \"requiredRefId\");\n if (!requiredSlotKey || !requiredRefId) return true;\n const selected = slotReferences.find(\n (ref) => ref.slotKey === requiredSlotKey,\n );\n if (!selected?.refId) return true;\n return selected.refId === requiredRefId;\n });\n}\n\nfunction isDocumentAttachment(value: Record<string, unknown>): boolean {\n if (value.type === \"document\") return true;\n const contentType = String(value.contentType ?? \"\").toLowerCase();\n const name = String(value.name ?? \"\").toLowerCase();\n return contentType === \"application/pdf\" || name.endsWith(\".pdf\");\n}\n\nexport function getOversizedDocumentAttachmentError(\n attachments: ReadonlyArray<unknown>,\n): string | null {\n for (const attachment of attachments) {\n if (!attachment || typeof attachment !== \"object\") continue;\n const candidate = attachment as Record<string, unknown>;\n if (!isDocumentAttachment(candidate)) continue;\n const file = candidate.file;\n if (!(file instanceof File)) continue;\n if (file.size <= MAX_DOCUMENT_ATTACHMENT_BYTES) continue;\n const name =\n typeof candidate.name === \"string\" && candidate.name.trim()\n ? candidate.name\n : file.name;\n const mb = (file.size / 1024 / 1024).toFixed(1);\n const maxMb = (MAX_DOCUMENT_ATTACHMENT_BYTES / 1024 / 1024).toFixed(0);\n return `\"${name}\" is ${mb} MB — PDFs are capped at ${maxMb} MB to stay within message limits. Please reduce the file size or split it into smaller parts.`;\n }\n return null;\n}\n\nexport function getComposerSubmitIntentForEnterKey(\n event: Pick<KeyboardEvent, \"key\" | \"shiftKey\" | \"metaKey\" | \"ctrlKey\">,\n isMac: boolean,\n): ComposerSubmitIntent | null {\n if (event.key !== \"Enter\" || event.shiftKey) return null;\n\n const queuedModifierPressed = isMac ? event.metaKey : event.ctrlKey;\n if (queuedModifierPressed) return \"queued\";\n\n if (!event.metaKey && !event.ctrlKey) return \"immediate\";\n\n return null;\n}\n\nexport function insertComposerHardBreakAndScrollIntoView(\n view: Pick<EditorView, \"state\" | \"dispatch\">,\n): boolean {\n const hardBreak = view.state.schema.nodes.hardBreak;\n if (!hardBreak) return false;\n\n view.dispatch(\n view.state.tr.replaceSelectionWith(hardBreak.create()).scrollIntoView(),\n );\n return true;\n}\n\nexport function displayableComposerModeMessage(options: {\n messagePrefix: string;\n trimmedText: string;\n attachmentCount: number;\n}): string {\n const modePrompt =\n options.trimmedText ||\n (options.attachmentCount > 0 ? \"Use the attached context.\" : \"\");\n return `${options.messagePrefix}${modePrompt}`;\n}\n\nfunction uniquifyComposerImageFile(file: File): File {\n if (!file.type.startsWith(\"image/\")) return file;\n const uniqueName = `${Date.now()}-${Math.random().toString(36).slice(2)}-${file.name}`;\n return new File([file], uniqueName, { type: file.type });\n}\n\nfunction composerDocumentHasContent(doc: {\n textContent: string;\n descendants: (callback: (node: any) => boolean | void) => void;\n}): boolean {\n if (doc.textContent.trim().length > 0) return true;\n let hasContent = false;\n doc.descendants((node: any) => {\n if (\n node.type.name === \"mentionReference\" ||\n node.type.name === \"fileReference\" ||\n node.type.name === \"skillReference\"\n ) {\n hasContent = true;\n return false;\n }\n return true;\n });\n return hasContent;\n}\n\nexport function handleComposerFileDrop(options: {\n event: Pick<DragEvent, \"dataTransfer\" | \"preventDefault\" | \"stopPropagation\">;\n addAttachment: (file: File) => Promise<unknown>;\n onError?: (error: unknown) => void;\n}): boolean {\n const droppedFiles = Array.from(options.event.dataTransfer?.files ?? []);\n if (droppedFiles.length === 0) return false;\n\n options.event.preventDefault();\n options.event.stopPropagation();\n const attachments = droppedFiles.map(uniquifyComposerImageFile);\n void Promise.all(\n attachments.map((file) => options.addAttachment(file)),\n ).catch((error) => {\n options.onError?.(error);\n });\n return true;\n}\n\nconst BUILT_IN_COMMANDS: SlashCommand[] = [\n { name: \"clear\", description: \"Start a new chat\", icon: \"clear\" },\n { name: \"new\", description: \"Start a new chat\", icon: \"new\" },\n { name: \"history\", description: \"Browse all chats\", icon: \"history\" },\n { name: \"plan\", description: \"Switch to read-only planning\", icon: \"plan\" },\n { name: \"act\", description: \"Switch back to acting\", icon: \"act\" },\n { name: \"help\", description: \"Show available commands\", icon: \"help\" },\n];\n\nfunction normalizeSlashCommandName(name: string): string {\n return name.replace(/^\\/+/, \"\").trim().toLowerCase();\n}\n\nfunction mergeSlashCommands(commands: SlashCommand[]): SlashCommand[] {\n const seen = new Set<string>();\n const merged: SlashCommand[] = [];\n for (const command of commands) {\n const name = normalizeSlashCommandName(command.name);\n if (!name || seen.has(name)) continue;\n seen.add(name);\n merged.push({ ...command, name });\n }\n return merged;\n}\n\nfunction mergeSlashSkills(skills: SkillResult[]): SkillResult[] {\n const seen = new Set<string>();\n const merged: SkillResult[] = [];\n for (const skill of skills) {\n const key = `${skill.source ?? \"\"}:${skill.path ?? \"\"}:${skill.name}`;\n if (!skill.name || seen.has(key)) continue;\n seen.add(key);\n merged.push(skill);\n }\n return merged;\n}\n\nconst COMPOSER_MODE_CONFIGS: Record<\n ComposerMode,\n {\n label: string;\n icon: React.ComponentType<{ className?: string }>;\n placeholder: string;\n messagePrefix: string;\n getContext: (prompt: string) => string;\n beforeSend?: () => void;\n }\n> = {\n skill: {\n label: \"Create Skill\",\n icon: IconBulb,\n placeholder: \"Describe the skill you want to create...\",\n messagePrefix: \"Create a skill: \",\n getContext: (prompt) =>\n `The user wants to create an agent skill. Their description: \"${prompt}\"\n\nFollow the create-skill pattern to build this. Before writing:\n\n1. **Determine the skill name** — derive a hyphen-case name from the description (e.g. \"code review\" → \"code-review\")\n2. **Determine the skill type** — Pattern (architectural rule), Workflow (step-by-step), or Generator (scaffolding)\n3. **Write the skill** as a personal resource at path \"skills/<name>/SKILL.md\" using the \\`resources\\` tool with \\`action: \"write\"\\`\n\nThe skill file MUST have YAML frontmatter with name and description (under 40 words), then markdown with:\n- Clear rule/purpose statement\n- Why this skill exists\n- How to follow it (with code examples where helpful)\n- Common violations to avoid\n- Related skills\n\nAfter creating, update the shared AGENTS.md resource to reference the new skill in its skills table.\n\nKeep the skill concise (under 500 lines) and actionable.`,\n },\n job: {\n label: \"Schedule Task\",\n icon: IconClock,\n placeholder: \"Describe what should happen and when...\",\n messagePrefix: \"Create a recurring job: \",\n getContext: (prompt) =>\n `The user wants to create a recurring job. Their description: \"${prompt}\"\n\nUse the manage-jobs tool with action \"create\" to create this. You need to:\n1. Derive a hyphen-case name from the description\n2. Convert the schedule to a cron expression (e.g., \"every weekday at 9am\" → \"0 9 * * 1-5\")\n3. Write clear, self-contained instructions for what the agent should do each time the job runs\n4. Create it in personal scope\n\nThe job will run automatically on the schedule. Make the instructions specific — include which actions to call and what to do with results.`,\n },\n automation: {\n label: \"Create Automation\",\n icon: IconBolt,\n placeholder: \"Describe what you want to automate...\",\n messagePrefix: \"Create an automation: \",\n beforeSend: () => {\n window.dispatchEvent(\n new CustomEvent(\"agent-panel:set-mode\", {\n detail: { mode: \"chat\" },\n }),\n );\n },\n getContext: (prompt) =>\n `The user wants to create a new automation. Scope: personal. Their description: \"${prompt}\"\n\nUse manage-automations with action=define to create it. Ask clarifying questions if needed about what event to trigger on, conditions, and what actions to take.`,\n },\n extension: {\n label: \"Create Extension\",\n icon: IconTool,\n placeholder: \"Describe the interactive extension you want to build...\",\n messagePrefix: \"Create an extension: \",\n getContext: (prompt) =>\n `The user wants to create an interactive extension (sandboxed mini-app). Their description: \"${prompt}\"\n\nUse the create-extension action with Alpine.js HTML content. The extension runs as a sandboxed iframe with Tailwind CSS and modest default canvas padding. For edge-to-edge layouts, put data-extension-layout=\"full-bleed\" on the outermost element.\n\nAfter creating the extension, navigate the user to it with the path returned by create-extension; extension URLs may include a friendly \"/extensions/<id>/<slug>\" suffix.\n\nMake the extension functional and visually polished. Extensions can use extensionFetch() for external API calls, appAction()/appFetch() for app operations, extensionData for per-extension persistence, and dbQuery()/dbExec() only for existing app tables.\n\nPrefer appAction()/appFetch() for app data. Some actions return JSON strings for CLI compatibility, so parse string results before counting rows or reading arrays. Do not guess raw SQL table names or columns for app data; use dbQuery()/dbExec() only when the table is known to exist in the current schema.`,\n },\n};\n\nfunction ComposerModeChip({\n mode,\n onRemove,\n}: {\n mode: ComposerMode;\n onRemove: () => void;\n}) {\n const config = COMPOSER_MODE_CONFIGS[mode];\n const Icon = config.icon;\n return (\n <span className=\"inline-flex items-center gap-1 rounded-md border border-border bg-muted/50 px-1.5 py-0.5 text-xs font-medium text-foreground\">\n <Icon className=\"h-3 w-3 text-muted-foreground\" />\n {config.label}\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ms-0.5 rounded-sm text-muted-foreground hover:text-foreground cursor-pointer\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n );\n}\n\ntype ExecMode = \"build\" | \"plan\";\n\nexport interface TiptapComposerProps {\n placeholder?: string;\n disabled?: boolean;\n focusRef?: React.Ref<TiptapComposerHandle>;\n /** Programmatically seed the editor with plain text. */\n initialText?: string;\n /** Stable key used to re-apply the seeded text. */\n initialTextKey?: string | number;\n /**\n * When provided, called instead of composerRuntime.send(). Used for queue\n * mode and standalone prompt popovers. Receives the live composer\n * attachments so callers (e.g. PromptComposer) can surface uploaded files.\n */\n onSubmit?: (\n text: string,\n references: Reference[],\n attachments?: ReadonlyArray<unknown>,\n options?: TiptapComposerSubmitOptions,\n ) => void;\n /**\n * Clear the editor after an onSubmit handler runs. Standalone workflows that\n * may fail outside the composer can keep the draft visible for quick edits.\n */\n clearOnSubmit?: boolean;\n /** Called whenever the plain editor text changes. */\n onTextChange?: (text: string) => void;\n /** Custom action button (e.g. stop button) to render instead of the default send button. */\n actionButton?: React.ReactNode;\n /** Extra button to render alongside the default send button (e.g. stop while running). */\n extraActionButton?: React.ReactNode;\n /** Custom attachment button to render instead of ComposerPrimitive.AddAttachment. */\n attachButton?: React.ReactNode;\n /** Custom host-owned control rendered next to the attachment affordance. */\n modeControl?: React.ReactNode;\n /** Explicit host-owned toolbar slot rendered next to the attachment affordance. */\n toolbarSlot?: React.ReactNode;\n /** Shared sizing/layout variant for host surfaces. Default keeps sidebar behavior. */\n layoutVariant?: AgentComposerLayoutVariant;\n /** Additional slash commands surfaced in the shared / menu. */\n slashCommands?: SlashCommand[];\n /** Additional slash skills surfaced in the shared / menu. */\n slashSkills?: SkillResult[];\n /** Include built-in sidebar slash commands like /clear and /help. Default true. */\n includeDefaultSlashCommands?: boolean;\n /** Include app-discovered skills from the default agent endpoint. Default true. */\n includeDefaultSlashSkills?: boolean;\n /** Called when a slash command (e.g. /clear, /help) is executed */\n onSlashCommand?: (command: string) => void;\n /** Current execution mode (build/plan) */\n execMode?: ExecMode;\n /** Callback to change execution mode */\n onExecModeChange?: (mode: ExecMode) => void;\n /** Disable Plan mode while leaving Act mode available. */\n planModeDisabled?: boolean;\n /** Explanation shown next to the disabled Plan option. */\n planModeDisabledReason?: string;\n /** Show the microphone button for voice dictation. Defaults to DEFAULT_VOICE_DICTATION_ENABLED. */\n voiceEnabled?: boolean;\n /** Selected model override for this conversation */\n selectedModel?: string;\n /** Selected reasoning effort override for this conversation */\n selectedEffort?: ReasoningEffort;\n /** Available models grouped by provider */\n availableModels?: Array<{\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n }>;\n /** Callback when user picks a model */\n onModelChange?: (model: string, engine: string) => void;\n /** Callback when user picks a reasoning effort */\n onEffortChange?: (effort: ReasoningEffort) => void;\n /**\n * Disable Builder/provider status polling for hosts that supply provider\n * state through another channel, such as Electron IPC.\n */\n providerConnectStatusEnabled?: boolean;\n /**\n * Override the Builder.io connect action in the model picker. When provided,\n * clicking \"Connect Builder.io\" calls this instead of opening a browser popup.\n * Used by the Electron desktop app to route through the native IPC handler.\n */\n onConnectProvider?: () => void;\n /**\n * Optional secondary model menu (e.g. an image-generation model) rendered as\n * an extra section inside the model picker. Opt-in; omit for chat-only apps.\n */\n imageModelMenu?: ComposerImageModelMenu;\n /** Stable scope for persisted drafts, usually the active thread or tab id. */\n draftScope?: string;\n /** Keyed context nuggets staged for the next submitted prompt. */\n contextItems?: AgentChatContextItem[];\n /** Remove a staged context nugget by key. */\n onRemoveContextItem?: (key: string) => void;\n /**\n * Controls the \"+\" menu next to the composer. `\"full\"` (default) shows the\n * normal Upload / Skill / Job / Automation / Tool / MCP picker. `\"upload-only\"`\n * collapses it to a single button that opens the file picker directly.\n * `\"hidden\"` hides attachment controls for text-only prompt surfaces.\n */\n plusMenuMode?: \"full\" | \"upload-only\" | \"hidden\";\n /**\n * When true and the composer is running inside the Builder.io webview/iframe,\n * intercept \"build me an app/agent\" prompts and forward them to the parent\n * Builder chat via `builder.submitChat` instead of sending to the local\n * agent. Off by default — the chat sidebar opts in; standalone prompt\n * forms (NewWorkspaceAppFlow, etc.) handle delegation themselves with\n * extra context (vault keys, computed app ids) that the raw composer\n * text lacks.\n */\n interceptBuildRequestsForBuilder?: boolean;\n /**\n * Called when a drag-drop or paste attachment fails (e.g. unsupported format,\n * size cap). Use this to surface a visible error in the parent chat surface\n * rather than silently swallowing the problem.\n */\n onAttachmentError?: (message: string) => void;\n}\n\nfunction plainTextToDoc(text: string) {\n const lines = text.length > 0 ? text.split(/\\r?\\n/) : [\"\"];\n return {\n type: \"doc\",\n content: lines.map((line) => ({\n type: \"paragraph\",\n content: line ? [{ type: \"text\", text: line }] : [],\n })),\n };\n}\n\nexport function createTiptapComposerExtensions(\n getPlaceholder: () => string | undefined,\n) {\n return [\n StarterKit.configure({\n heading: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n listKeymap: false,\n blockquote: false,\n codeBlock: false,\n strike: false,\n italic: false,\n bold: false,\n code: false,\n dropcursor: false,\n gapcursor: false,\n link: false,\n trailingNode: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder: () => getPlaceholder() ?? \"\",\n emptyEditorClass: \"is-editor-empty\",\n showOnlyCurrent: false,\n }),\n FileReference,\n SkillReference,\n MentionReference,\n ];\n}\n\nfunction ModeSelector({\n mode,\n onChange,\n planModeDisabled = false,\n planModeDisabledReason = \"Open Agent Native Desktop to use Plan mode.\",\n}: {\n mode: ExecMode;\n onChange: (mode: ExecMode) => void;\n planModeDisabled?: boolean;\n planModeDisabledReason?: string;\n}) {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={mode === \"build\" ? \"Act mode\" : \"Plan mode\"}\n data-agent-composer-slot=\"mode-button\"\n className=\"agent-composer-mode-button shrink-0 flex items-center gap-1 rounded-md px-2 py-1 text-[12px] font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground\"\n >\n {mode === \"build\" ? \"Act\" : \"Plan\"}\n <IconChevronDown className=\"h-3 w-3 opacity-60\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"top\"\n align=\"end\"\n sideOffset={6}\n collisionPadding={8}\n data-agent-native-composer-popover=\"true\"\n className=\"z-[260] w-60 rounded-lg border-border p-0 py-1 shadow-lg\"\n style={{ fontSize: 13 }}\n >\n <button\n type=\"button\"\n onClick={() => {\n onChange(\"build\");\n setOpen(false);\n }}\n className=\"flex w-full items-center gap-3 px-3 py-2 hover:bg-accent/50 text-start\"\n >\n <IconPencil className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <div className=\"flex-1 min-w-0\">\n <span className=\"font-medium text-foreground text-[13px]\">Act</span>\n <p className=\"text-[11px] text-muted-foreground mt-0.5\">\n Use tools and make approved changes\n </p>\n </div>\n {mode === \"build\" && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n <button\n type=\"button\"\n disabled={planModeDisabled}\n title={planModeDisabled ? planModeDisabledReason : undefined}\n onClick={() => {\n if (planModeDisabled) return;\n onChange(\"plan\");\n setOpen(false);\n }}\n className={`flex w-full items-center gap-3 px-3 py-2 text-start ${\n planModeDisabled\n ? \"cursor-not-allowed opacity-60\"\n : \"hover:bg-accent/50\"\n }`}\n >\n <IconClipboardList className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <div className=\"flex-1 min-w-0\">\n <span className=\"font-medium text-foreground text-[13px]\">\n Plan\n </span>\n <p className=\"text-[11px] text-muted-foreground mt-0.5\">\n {planModeDisabled\n ? planModeDisabledReason\n : \"Read-only research and approval first\"}\n </p>\n </div>\n {mode === \"plan\" && !planModeDisabled && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n </PopoverContent>\n </Popover>\n );\n}\n\nconst FRIENDLY_MODEL_NAMES: Record<string, string> = {\n auto: \"Default model\",\n \"claude-fable-5\": \"Fable 5\",\n \"grok-code-fast\": \"Grok Code Fast\",\n \"qwen3-coder\": \"Qwen3 Coder\",\n \"kimi-k2-5\": \"Kimi K2.5\",\n \"deepseek-v3-1\": \"DeepSeek v3.1\",\n};\n\nexport const MODEL_SELECTOR_POPOVER_STYLE = {\n fontSize: 13,\n maxHeight: \"min(500px, var(--radix-popover-content-available-height, 500px))\",\n} satisfies React.CSSProperties;\n\nfunction friendlyModelName(model: string): string {\n if (FRIENDLY_MODEL_NAMES[model]) return FRIENDLY_MODEL_NAMES[model];\n // Claude: claude-{tier}-{major}-{minor}[-dateYYYYMMDD] → Tier Major.Minor\n const claude = model.match(\n /^claude-(opus|sonnet|haiku)-(\\d+)-(\\d+)(?:-\\d{8,})?$/,\n );\n if (claude) {\n const tier = claude[1][0].toUpperCase() + claude[1].slice(1);\n return `${tier} ${claude[2]}.${claude[3]}`;\n }\n // GPT: gpt-{major}-{minor}[-suffix] or gpt-{major}.{minor}[-suffix]\n if (model.startsWith(\"gpt-\")) {\n const rest = model.slice(4);\n const gpt = rest.match(/^(\\d+)[.-](\\d+)(?:[.-](.+))?$/);\n if (gpt) {\n const suffix = gpt[3]\n ? \" \" +\n gpt[3]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \")\n : \"\";\n return `GPT-${gpt[1]}.${gpt[2]}${suffix}`;\n }\n return `GPT-${rest}`;\n }\n if (/^o\\d/.test(model)) return model;\n // Gemini: gemini-{major}-{minor}-{variant}[-preview] → Gemini Major.Minor Variant\n const geminiVersioned = model.match(\n /^gemini-(\\d+)-(\\d+)-(.+?)(?:-preview)?$/,\n );\n if (geminiVersioned) {\n const variant = geminiVersioned[3]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \");\n return `Gemini ${geminiVersioned[1]}.${geminiVersioned[2]} ${variant}`;\n }\n // Gemini: gemini-{version.parts}[-preview] → Gemini Version Parts\n const gemini = model.match(/^gemini-(.+?)(?:-preview)?$/);\n if (gemini) {\n const parts = gemini[1]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \");\n return `Gemini ${parts}`;\n }\n return model;\n}\n\n/**\n * Deduplicate models to only the latest version per family.\n * e.g. [opus-4-7, opus-4-6, opus-4-5] → [opus-4-7]\n */\nfunction latestModelsOnly(models: string[]): string[] {\n const seen = new Set<string>();\n return models.filter((m) => {\n // Claude: family = tier (opus/sonnet/haiku)\n const claude = m.match(/^claude-(opus|sonnet|haiku)-/);\n if (claude) {\n if (seen.has(claude[1])) return false;\n seen.add(claude[1]);\n return true;\n }\n // GPT: family = gpt-{major} (e.g. gpt-5.4 and gpt-5.4-mini are different)\n // OpenAI reasoning: each is its own family\n // Gemini: family = gemini-{major} + variant\n const gemini = m.match(/^gemini-(\\d+(?:\\.\\d+)?)-(.+?)(?:-preview)?$/);\n if (gemini) {\n const family = gemini[2]; // flash, pro, etc.\n if (seen.has(`gemini-${family}`)) return false;\n seen.add(`gemini-${family}`);\n return true;\n }\n return true;\n });\n}\n\n/**\n * Optional secondary model menu for apps that drive a separate generation model\n * alongside the chat LLM (e.g. the Assets app's image-generation model). When\n * provided, the model picker renders an extra collapsible section so the user\n * can see and pick both \"what reasons about my request\" (the chat model) and\n * \"what produces the output\" (this model). Opt-in — omit it and nothing changes.\n */\nexport interface ComposerImageModelMenu {\n /** Currently-selected model id for this secondary menu. */\n value: string;\n /** Selectable options (stable id + human label). */\n options: Array<{ value: string; label: string }>;\n /** Invoked when the user picks a different option. */\n onChange: (value: string) => void;\n /** Section header. Defaults to \"Image model\". */\n label?: string;\n}\n\nfunction ModelSelector({\n model,\n effort = \"auto\",\n engines,\n onChange,\n onEffortChange,\n providerConnectStatusEnabled = true,\n onConnectProvider,\n imageModel,\n}: {\n model: string;\n effort?: ReasoningEffort;\n engines: Array<{\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n }>;\n onChange: (model: string, engine: string) => void;\n onEffortChange?: (effort: ReasoningEffort) => void;\n providerConnectStatusEnabled?: boolean;\n onConnectProvider?: () => void;\n imageModel?: ComposerImageModelMenu;\n}) {\n const [open, setOpen] = useState(false);\n const autoModelGroup = engines.find((group) => group.models.includes(\"auto\"));\n const providerGroups = useMemo(\n () =>\n engines\n .map((group) => ({\n ...group,\n models: group.models.filter((candidate) => candidate !== \"auto\"),\n }))\n .filter((group) => group.models.length > 0),\n [engines],\n );\n const effortOptions =\n model === \"auto\"\n ? ([\n \"auto\",\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n \"max\",\n ] satisfies ReasoningEffort[])\n : getReasoningEffortOptionsForModel(model);\n\n // Collapse non-selected families by default. The family containing the\n // currently-selected model stays expanded so the user sees their pick at\n // a glance; clicking another family's header expands it inline.\n const selectedGroupKey = useMemo(() => {\n const found = providerGroups.find((g) => g.models.includes(model));\n return found ? `${found.engine}:${found.label}` : null;\n }, [model, providerGroups]);\n\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(\n () => new Set(selectedGroupKey ? [selectedGroupKey] : []),\n );\n\n // Reset expansion when the popover re-opens so the picker always lands\n // on the \"selected family expanded, others collapsed\" view.\n useEffect(() => {\n if (open) {\n setExpandedGroups(new Set(selectedGroupKey ? [selectedGroupKey] : []));\n }\n }, [open, selectedGroupKey]);\n\n const toggleGroup = useCallback((key: string) => {\n setExpandedGroups((prev) => {\n const next = new Set(prev);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }, []);\n\n // The reasoning effort list is collapsed by default — it's a secondary\n // control most users don't touch, so it stays tucked behind a header that\n // reveals the current effort at a glance. Reset to collapsed on each open.\n const [reasoningExpanded, setReasoningExpanded] = useState(false);\n useEffect(() => {\n if (open) setReasoningExpanded(false);\n }, [open]);\n\n // The optional image-model section follows the same collapsed-by-default\n // pattern; the current selection shows next to the header.\n const [imageExpanded, setImageExpanded] = useState(false);\n useEffect(() => {\n if (open) setImageExpanded(false);\n }, [open]);\n const imageModelLabel =\n imageModel?.options.find((option) => option.value === imageModel.value)\n ?.label ?? imageModel?.value;\n\n // When Builder.io isn't connected, surface a one-click connect path —\n // it unlocks every model family (Claude, OpenAI, Gemini) without the\n // user having to paste individual API keys.\n const builderFlow = useBuilderConnectFlow({\n enabled: providerConnectStatusEnabled,\n trackingSource: \"composer_builder_cta\",\n });\n const hasConfiguredBuilderModels = providerGroups.some(\n (group) => group.engine === \"builder\" && group.configured,\n );\n const showBuilderCta =\n (builderFlow.hasFetchedStatus ||\n (!providerConnectStatusEnabled && !!onConnectProvider)) &&\n !builderFlow.configured &&\n !builderFlow.envManaged &&\n !hasConfiguredBuilderModels;\n const openLlmSettings = useCallback(() => {\n try {\n window.location.hash = \"llm\";\n } catch {}\n window.dispatchEvent(new CustomEvent(\"agent-panel:open-settings\"));\n setOpen(false);\n }, []);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n data-agent-composer-slot=\"model-button\"\n className=\"agent-composer-model-button flex min-w-0 max-w-[10.5rem] shrink items-center gap-1 rounded-md px-2 py-1 text-[12px] font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground\"\n >\n <span className=\"min-w-0 truncate\">{friendlyModelName(model)}</span>\n {effortOptions.length > 0 && (\n <span className=\"agent-composer-model-effort min-w-0 shrink truncate text-muted-foreground/70\">\n · {reasoningEffortLabel(effort)}\n </span>\n )}\n <IconChevronDown className=\"h-3 w-3 shrink-0 opacity-60\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"top\"\n align=\"end\"\n sideOffset={6}\n collisionPadding={8}\n data-agent-native-composer-popover=\"true\"\n className=\"z-[260] box-border w-72 overflow-y-auto rounded-lg border-border p-0 py-1 shadow-lg\"\n style={MODEL_SELECTOR_POPOVER_STYLE}\n >\n {showBuilderCta && (\n <>\n <button\n type=\"button\"\n onClick={() => {\n if (onConnectProvider) {\n onConnectProvider();\n } else {\n builderFlow.start();\n }\n }}\n disabled={!onConnectProvider && builderFlow.connecting}\n className=\"flex w-full items-start gap-2 px-3 py-2 text-start hover:bg-accent/50 disabled:opacity-60\"\n >\n <IconPlugConnected className=\"h-4 w-4 shrink-0 mt-0.5 text-blue-500\" />\n <span className=\"flex-1 min-w-0\">\n <span className=\"block text-[12px] font-medium text-foreground\">\n {!onConnectProvider && builderFlow.connecting\n ? \"Connecting Builder.io…\"\n : \"Connect Builder.io\"}\n </span>\n <span className=\"block text-[11px] text-muted-foreground\">\n Free credits for Claude, OpenAI & Gemini\n </span>\n </span>\n </button>\n <div className=\"my-1 border-t border-border\" />\n </>\n )}\n {imageModel && imageModel.options.length > 0 && (\n <>\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={imageExpanded}\n onClick={() => setImageExpanded((prev) => !prev)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n {imageExpanded ? (\n <IconChevronDown className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n ) : (\n <IconChevronRight className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n )}\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n {imageModel.label ?? \"Image model\"}\n </span>\n {!imageExpanded && imageModelLabel && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {imageModelLabel}\n </span>\n )}\n </button>\n </div>\n {imageExpanded &&\n imageModel.options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => {\n imageModel.onChange(option.value);\n setImageExpanded(false);\n }}\n className=\"flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {option.label}\n </span>\n {option.value === imageModel.value && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n <div className=\"my-1 border-t border-border\" />\n </>\n )}\n {autoModelGroup && (\n <button\n type=\"button\"\n onClick={() => {\n onChange(\"auto\", autoModelGroup.engine);\n setOpen(false);\n }}\n className=\"flex w-full items-center gap-3 px-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n Auto\n </span>\n {model === \"auto\" && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n )}\n {autoModelGroup && providerGroups.length > 0 && (\n <div className=\"my-1 border-t border-border\" />\n )}\n {providerGroups.map((group) => {\n const models = latestModelsOnly(group.models);\n const groupKey = `${group.engine}:${group.label}`;\n const isExpanded = expandedGroups.has(groupKey);\n const ChevronIcon = isExpanded ? IconChevronDown : IconChevronRight;\n return (\n <div key={groupKey}>\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={isExpanded}\n onClick={() => toggleGroup(groupKey)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n <ChevronIcon className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n {group.label}\n </span>\n {!isExpanded && groupKey === selectedGroupKey && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {friendlyModelName(model)}\n </span>\n )}\n </button>\n {!group.configured && (\n <button\n type=\"button\"\n className=\"text-[10px] text-muted-foreground/60 hover:text-foreground cursor-pointer pe-3 py-1.5\"\n onClick={openLlmSettings}\n >\n needs API key\n </button>\n )}\n </div>\n {isExpanded &&\n models.map((m) => (\n <button\n key={m}\n type=\"button\"\n onClick={() => {\n if (!group.configured) {\n openLlmSettings();\n return;\n }\n onChange(m, group.engine);\n const nextOptions = getReasoningEffortOptionsForModel(m);\n if (\n effort !== \"auto\" &&\n nextOptions.length > 0 &&\n !nextOptions.includes(effort)\n ) {\n onEffortChange?.(\"auto\");\n }\n setOpen(false);\n }}\n className={`flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start ${\n group.configured\n ? \"hover:bg-accent/50\"\n : \"opacity-40 cursor-default\"\n }`}\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {friendlyModelName(m)}\n </span>\n {m === model && group.configured && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n </div>\n );\n })}\n {effortOptions.length > 0 && (\n <>\n <div className=\"my-1 border-t border-border\" />\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={reasoningExpanded}\n onClick={() => setReasoningExpanded((prev) => !prev)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n {reasoningExpanded ? (\n <IconChevronDown className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n ) : (\n <IconChevronRight className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n )}\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n Reasoning\n </span>\n {!reasoningExpanded && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {reasoningEffortLabel(effort)}\n </span>\n )}\n </button>\n </div>\n {reasoningExpanded &&\n effortOptions.map((option) => (\n <button\n key={option}\n type=\"button\"\n onClick={() => onEffortChange?.(option)}\n className=\"flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {reasoningEffortLabel(option)}\n </span>\n {option === effort && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n </>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PopoverState = {\n type: \"@\" | \"/\";\n position: { top: number; left: number };\n startPos: number;\n query: string;\n} | null;\n\nexport function TiptapComposer({\n placeholder = \"Message agent...\",\n disabled = false,\n focusRef,\n initialText,\n initialTextKey,\n onSubmit,\n clearOnSubmit = true,\n onTextChange,\n actionButton,\n extraActionButton,\n attachButton,\n modeControl,\n toolbarSlot,\n layoutVariant = \"default\",\n slashCommands = [],\n slashSkills = [],\n includeDefaultSlashCommands = true,\n includeDefaultSlashSkills = true,\n onSlashCommand,\n execMode,\n onExecModeChange,\n planModeDisabled = false,\n planModeDisabledReason,\n voiceEnabled = DEFAULT_VOICE_DICTATION_ENABLED,\n selectedModel,\n selectedEffort,\n availableModels,\n onModelChange,\n onEffortChange,\n providerConnectStatusEnabled,\n onConnectProvider,\n imageModelMenu,\n draftScope,\n contextItems = [],\n onRemoveContextItem,\n plusMenuMode = \"full\",\n interceptBuildRequestsForBuilder = false,\n onAttachmentError,\n}: TiptapComposerProps) {\n const [popover, setPopover] = useState<PopoverState>(null);\n const popoverRef = useRef<MentionPopoverRef>(null);\n const composerRuntime = useComposerRuntime();\n const [editorHasText, setEditorHasText] = useState(false);\n const [slotReferences, setSlotReferences] = useState<\n AgentComposerReference[]\n >([]);\n const composerText = useComposer((state) => state.text);\n const composerAttachments = useComposer((state) => state.attachments);\n const canSend = canSubmitComposerContent({\n hasEditorContent: editorHasText || slotReferences.length > 0,\n attachmentCount: composerAttachments.length,\n disabled,\n });\n const hasContextRows = contextItems.length > 0 || slotReferences.length > 0;\n const [composerMode, setComposerMode] = useState<ComposerMode | null>(null);\n const composerModeRef = useRef<ComposerMode | null>(null);\n const isMac =\n typeof navigator !== \"undefined\" &&\n /Mac|iPhone|iPad/.test(navigator.userAgent);\n\n // Refs for values accessed in handleKeyDown (ProseMirror doesn't re-bind)\n const popoverStateRef = useRef<PopoverState>(null);\n const onAttachmentErrorRef = useRef(onAttachmentError);\n onAttachmentErrorRef.current = onAttachmentError;\n const execModeRef = useRef(execMode);\n execModeRef.current = execMode;\n const onExecModeChangeRef = useRef(onExecModeChange);\n onExecModeChangeRef.current = onExecModeChange;\n const planModeDisabledRef = useRef(planModeDisabled);\n planModeDisabledRef.current = planModeDisabled;\n\n const { items: mentionItems, isLoading: mentionsLoading } = useMentionSearch(\n popover?.type === \"@\" ? popover.query : \"\",\n popover?.type === \"@\",\n );\n const filteredMentionItems = useMemo(\n () => filterMentionItemsForSlots(mentionItems, slotReferences),\n [mentionItems, slotReferences],\n );\n\n const {\n skills,\n hint,\n isLoading: skillsLoading,\n } = useSkills(includeDefaultSlashSkills && popover?.type === \"/\");\n\n const allSlashCommands = useMemo(\n () =>\n mergeSlashCommands([\n ...(includeDefaultSlashCommands ? BUILT_IN_COMMANDS : []),\n ...slashCommands,\n ]),\n [includeDefaultSlashCommands, slashCommands],\n );\n\n const allSlashSkills = useMemo(\n () =>\n mergeSlashSkills([\n ...(includeDefaultSlashSkills ? skills : []),\n ...slashSkills,\n ]),\n [includeDefaultSlashSkills, skills, slashSkills],\n );\n\n const filteredCommands = useMemo(() => {\n if (!popover || popover.type !== \"/\") return allSlashCommands;\n const q = popover.query.toLowerCase();\n if (!q) return allSlashCommands;\n return allSlashCommands.filter(\n (c) =>\n c.name.toLowerCase().includes(q) ||\n c.description.toLowerCase().includes(q),\n );\n }, [allSlashCommands, popover]);\n\n const filteredSkills = useMemo(() => {\n if (!popover || popover.type !== \"/\") return allSlashSkills;\n const q = popover.query.toLowerCase();\n if (!q) return allSlashSkills;\n return allSlashSkills.filter(\n (s) =>\n s.name.toLowerCase().includes(q) ||\n s.description?.toLowerCase().includes(q),\n );\n }, [allSlashSkills, popover]);\n\n // Keep refs in sync with state\n const mentionItemsRef = useRef(filteredMentionItems);\n mentionItemsRef.current = filteredMentionItems;\n const filteredCommandsRef = useRef(filteredCommands);\n filteredCommandsRef.current = filteredCommands;\n const filteredSkillsRef = useRef(filteredSkills);\n filteredSkillsRef.current = filteredSkills;\n const onSlashCommandRef = useRef(onSlashCommand);\n onSlashCommandRef.current = onSlashCommand;\n const onTextChangeRef = useRef(onTextChange);\n onTextChangeRef.current = onTextChange;\n const initialTextKeyRef = useRef<string | number | undefined>(undefined);\n const seenReferenceInsertIdsRef = useRef<Set<string>>(new Set());\n\n const closePopover = useCallback(() => {\n setPopover(null);\n popoverStateRef.current = null;\n }, []);\n\n // Persist draft to localStorage so hot-reloads don't lose the prompt\n const draftKey = getComposerDraftKey(draftScope);\n const draftTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n useEffect(() => {\n return () => {\n clearTimeout(draftTimerRef.current);\n };\n }, []);\n // Tiptap reads extension config once at init; ref keeps runtime prop\n // changes visible to Placeholder's function form.\n const placeholderRef = useRef(placeholder);\n useEffect(() => {\n placeholderRef.current = composerMode\n ? COMPOSER_MODE_CONFIGS[composerMode].placeholder\n : placeholder;\n }, [placeholder, composerMode]);\n\n const editor = useEditor({\n extensions: createTiptapComposerExtensions(() => placeholderRef.current),\n editable: !disabled,\n onCreate: ({ editor: ed }) => {\n // Restore draft on mount\n try {\n if (initialText !== undefined) {\n ed.commands.setContent(plainTextToDoc(initialText));\n ed.commands.focus(\"end\");\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n initialTextKeyRef.current = initialTextKey ?? initialText;\n } else {\n const saved = localStorage.getItem(draftKey);\n if (saved) {\n ed.commands.setContent(saved);\n ed.commands.focus(\"end\");\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n }\n }\n onTextChangeRef.current?.(ed.state.doc.textContent.trim());\n } catch {}\n },\n onUpdate: ({ editor: ed }) => {\n // Drive the send button's enabled state from the actual editor contents;\n // the composer runtime is only synced on submit, so its isEmpty lags.\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n onTextChangeRef.current?.(ed.state.doc.textContent.trim());\n\n // Debounce-save draft to localStorage\n clearTimeout(draftTimerRef.current);\n draftTimerRef.current = setTimeout(() => {\n try {\n const html = ed.getHTML();\n const isEmpty = !composerDocumentHasContent(ed.state.doc);\n if (isEmpty) {\n localStorage.removeItem(draftKey);\n } else {\n localStorage.setItem(draftKey, html);\n }\n } catch {}\n }, 300);\n },\n editorProps: {\n attributes: {\n \"data-agent-composer-variant\": layoutVariant,\n \"data-agent-composer-slot\": \"editor-input\",\n class:\n \"agent-composer-prosemirror flex-1 resize-none bg-transparent text-sm text-foreground outline-none leading-[1.625rem] min-h-[3.25rem] max-h-[10rem] overflow-y-auto\",\n },\n handlePaste: (_view, event) => {\n const paste = readClipboardPaste(event.clipboardData);\n const pastedText = paste.text;\n const files = Array.from(event.clipboardData?.files ?? []).filter(\n (file) => file.type.startsWith(\"image/\"),\n );\n if (files.length > 0) {\n event.preventDefault();\n const attachments: File[] = files.map((file) => {\n // SimpleImageAttachmentAdapter uses file.name as the attachment id.\n // Clipboard images (e.g. screenshots) are typically all named\n // \"image.png\", so a second paste would replace the first instead of\n // appending. Prepend a unique token so each paste gets a distinct id.\n const uniqueName = `${Date.now()}-${Math.random().toString(36).slice(2)}-${file.name}`;\n return new File([file], uniqueName, { type: file.type });\n });\n\n // Google Docs rich clipboard payloads can contain both embedded\n // image files and the document text. Since handling files means we\n // prevent Tiptap's default paste, preserve any text as its own chip\n // instead of silently dropping the source material.\n if (pastedText.trim()) {\n attachments.push(createPastedAttachmentFile(paste));\n }\n\n void Promise.all(\n attachments.map((file) => composerRuntime.addAttachment(file)),\n ).catch((error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the pasted image. Try a different format.\";\n onAttachmentErrorRef.current?.(msg);\n });\n return true;\n }\n\n // Page-sized pastes turn into a `Pasted text` attachment chip so the\n // prompt stays readable while normal paragraphs and lists stay inline.\n // When the paste is HTML (e.g. an Alpine.js extension or a document the\n // user wants hosted), it's stored as a real .html attachment so it\n // travels the same rail as uploading that file — the agent reads it\n // verbatim via contentFromAttachment instead of retyping it inline,\n // which cuts off mid-stream on large files and triggers a spin.\n if (shouldConvertClipboardToAttachment(paste)) {\n event.preventDefault();\n void composerRuntime\n .addAttachment(createPastedAttachmentFile(paste))\n .catch((error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the pasted text.\";\n onAttachmentErrorRef.current?.(msg);\n });\n return true;\n }\n\n return false;\n },\n handleDrop: (_view, event) => {\n // Drag-and-drop files (decks, images, PDFs, etc.) into the composer.\n // Mark handled drops as consumed so the chat-wide drop target does not\n // add the same file a second time.\n return handleComposerFileDrop({\n event: event as DragEvent,\n addAttachment: (file) => composerRuntime.addAttachment(file),\n onError: (error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the dropped file. Try a different format.\";\n onAttachmentErrorRef.current?.(msg);\n },\n });\n },\n handleKeyDown: (view, event) => {\n const pop = popoverStateRef.current;\n\n // Handle popover keyboard nav\n if (pop) {\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popoverRef.current?.moveUp();\n return true;\n }\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popoverRef.current?.moveDown();\n return true;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n const idx = popoverRef.current?.getSelectedIndex() ?? 0;\n const currentCommands = filteredCommandsRef.current;\n const currentSkills = filteredSkillsRef.current;\n if (pop.type === \"@\") {\n const item = popoverRef.current?.getSelectedMention();\n if (item) selectMention(view, pop, item);\n } else if (pop.type === \"/\") {\n const cmd = popoverRef.current?.getSelectedCommand();\n if (cmd) {\n executeCommand(view, pop, cmd);\n } else {\n const skillIdx = idx - currentCommands.length;\n if (currentSkills[skillIdx]) {\n selectSkill(view, pop, currentSkills[skillIdx]);\n }\n }\n }\n return true;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n popoverStateRef.current = null;\n setPopover(null);\n return true;\n }\n if (event.key === \" \" && pop.query === \"\") {\n popoverStateRef.current = null;\n setPopover(null);\n return false;\n }\n }\n\n // Backspace removes composer mode chip when editor is empty\n if (event.key === \"Backspace\" && composerModeRef.current) {\n const { from, to } = view.state.selection;\n if (\n view.state.doc.textContent.trim() === \"\" &&\n from === to &&\n from <= 1\n ) {\n setComposerMode(null);\n composerModeRef.current = null;\n return true;\n }\n }\n\n // Keyboard shortcut toggles Act/Plan mode from inside the editor.\n if (event.key === \"Tab\" && event.shiftKey) {\n event.preventDefault();\n const current = execModeRef.current;\n const cb = onExecModeChangeRef.current;\n if (current && cb) {\n const next = current === \"build\" ? \"plan\" : \"build\";\n if (next !== \"plan\" || !planModeDisabledRef.current) {\n cb(next);\n }\n }\n return true;\n }\n\n // Submit on Enter. Shift+Enter inserts a newline and keeps the\n // composer scrolled to the caret.\n // Cmd+Enter on macOS / Ctrl+Enter elsewhere marks the submit queued.\n if (event.key === \"Enter\" && event.shiftKey) {\n event.preventDefault();\n return insertComposerHardBreakAndScrollIntoView(view);\n }\n\n const submitIntent = getComposerSubmitIntentForEnterKey(event, isMac);\n if (submitIntent) {\n event.preventDefault();\n submitComposer(submitIntent);\n return true;\n }\n\n // Detect @ trigger — only when preceded by start-of-text, space, or newline\n // (not after alphanumeric chars, which would indicate an email address)\n if (event.key === \"@\") {\n const { from } = view.state.selection;\n const textBefore = view.state.doc.textBetween(\n Math.max(0, from - 1),\n from,\n );\n if (from === 1 || textBefore === \"\" || /\\s/.test(textBefore)) {\n const coords = view.coordsAtPos(from);\n setTimeout(() => {\n const state: PopoverState = {\n type: \"@\",\n position: { top: coords.top, left: coords.left },\n startPos: view.state.selection.from,\n query: \"\",\n };\n popoverStateRef.current = state;\n setPopover(state);\n }, 0);\n }\n return false;\n }\n\n // Detect / trigger (only at start of line or after whitespace)\n if (event.key === \"/\") {\n const { from } = view.state.selection;\n const textBefore = view.state.doc.textBetween(\n Math.max(0, from - 1),\n from,\n );\n if (from === 1 || textBefore === \"\" || /\\s/.test(textBefore)) {\n const coords = view.coordsAtPos(from);\n setTimeout(() => {\n const state: PopoverState = {\n type: \"/\",\n position: { top: coords.top, left: coords.left },\n startPos: view.state.selection.from,\n query: \"\",\n };\n popoverStateRef.current = state;\n setPopover(state);\n }, 0);\n }\n return false;\n }\n\n return false;\n },\n },\n });\n\n const insertReference = useCallback(\n (ref: AgentComposerReference) => {\n const normalized = normalizeAgentComposerReference(ref);\n const ed = editor;\n if (!normalized || !ed) return;\n if (normalized.slotKey) {\n setSlotReferences((current) =>\n applySlotReferenceChanges(current, [normalized]),\n );\n ed.commands.focus(\"end\");\n return;\n }\n if (normalized.relatedReferences?.some((item) => item.slotKey)) {\n setSlotReferences((current) =>\n applySlotReferenceChanges(\n current,\n normalized.relatedReferences ?? [],\n ),\n );\n }\n ed.chain()\n .focus()\n .insertContent({\n type: \"mentionReference\",\n attrs: mentionReferenceAttrs(normalized),\n })\n .insertContent(\" \")\n .run();\n setEditorHasText(true);\n },\n [editor],\n );\n\n const insertReferenceIfEmpty = useCallback(\n (payload: AgentComposerReferenceInsertPayload) => {\n const insertMessageId =\n typeof payload.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\";\n if (insertMessageId) {\n if (seenReferenceInsertIdsRef.current.has(insertMessageId)) return;\n seenReferenceInsertIdsRef.current.add(insertMessageId);\n }\n const ed = editor;\n if (!ed || disabled || composerModeRef.current) return;\n const normalized = normalizeAgentComposerReference(payload);\n if (normalized?.slotKey) {\n insertReference(normalized);\n return;\n }\n if (composerAttachments.length > 0) return;\n if (composerDocumentHasContent(ed.state.doc)) return;\n insertReference(payload);\n },\n [composerAttachments.length, disabled, editor, insertReference],\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const handleEvent = (event: Event) => {\n const payload = (event as CustomEvent).detail;\n const normalized = normalizeAgentComposerReference(payload);\n if (!normalized) return;\n insertReferenceIfEmpty({\n ...normalized,\n insertMessageId:\n typeof payload?.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\",\n });\n };\n const handleMessage = (event: MessageEvent) => {\n if (!isTrustedFrameMessage(event) && !isTrustedBuilderMessage(event)) {\n return;\n }\n if (event.data?.type !== AGENT_CHAT_INSERT_REFERENCE_MESSAGE_TYPE) {\n return;\n }\n const payload = event.data.data;\n const normalized = normalizeAgentComposerReference(payload);\n if (!normalized) return;\n insertReferenceIfEmpty({\n ...normalized,\n insertMessageId:\n typeof payload?.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\",\n });\n };\n window.addEventListener(AGENT_CHAT_INSERT_REFERENCE_EVENT, handleEvent);\n window.addEventListener(\"message\", handleMessage);\n return () => {\n window.removeEventListener(\n AGENT_CHAT_INSERT_REFERENCE_EVENT,\n handleEvent,\n );\n window.removeEventListener(\"message\", handleMessage);\n };\n }, [insertReferenceIfEmpty]);\n\n useImperativeHandle(focusRef, () => ({\n focus() {\n editor?.commands.focus(\"end\");\n },\n setText(text: string) {\n if (!editor) return;\n editor.commands.setContent(plainTextToDoc(text));\n editor.commands.focus(\"end\");\n const trimmed = editor.state.doc.textContent.trim();\n setEditorHasText(trimmed.length > 0);\n setSlotReferences([]);\n composerRuntime.setText(trimmed);\n onTextChangeRef.current?.(trimmed);\n try {\n if (trimmed) {\n localStorage.setItem(draftKey, editor.getHTML());\n } else {\n localStorage.removeItem(draftKey);\n }\n } catch {}\n },\n insertReference,\n }));\n\n const handleSelectMode = useCallback(\n (mode: ComposerMode) => {\n setComposerMode(mode);\n composerModeRef.current = mode;\n setTimeout(() => editor?.commands.focus(\"end\"), 50);\n },\n [editor],\n );\n\n // --- Live voice transcription: text appears in the editor as the user speaks ---\n const voiceAnchorRef = useRef<number | null>(null);\n const prevVoiceInsertRef = useRef(\"\");\n\n const handleLiveUpdate = useCallback(\n (finalText: string, interimText: string) => {\n const ed = editor;\n if (!ed) return;\n\n if (voiceAnchorRef.current == null) {\n const { from } = ed.state.selection;\n const prevChar =\n from > 1 ? ed.state.doc.textBetween(from - 1, from) : \"\";\n if (prevChar && !/\\s/.test(prevChar)) {\n ed.chain().insertContent(\" \").run();\n }\n voiceAnchorRef.current = ed.state.selection.from;\n prevVoiceInsertRef.current = \"\";\n }\n\n const anchor = voiceAnchorRef.current;\n const prevLen = prevVoiceInsertRef.current.length;\n const newText = finalText + interimText;\n\n if (newText === prevVoiceInsertRef.current) return;\n\n ed.chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .insertContentAt(anchor, newText)\n .run();\n\n prevVoiceInsertRef.current = newText;\n },\n [editor],\n );\n\n const insertTranscript = useCallback(\n (text: string) => {\n const ed = editor;\n if (!ed) return;\n\n const anchor = voiceAnchorRef.current;\n if (anchor != null) {\n const prevLen = prevVoiceInsertRef.current.length;\n if (text) {\n ed.chain()\n .focus()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .insertContentAt(anchor, text + \" \")\n .run();\n } else if (prevLen > 0) {\n ed.chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .run();\n }\n voiceAnchorRef.current = null;\n prevVoiceInsertRef.current = \"\";\n } else if (text) {\n const { from } = ed.state.selection;\n const prevChar =\n from > 1 ? ed.state.doc.textBetween(from - 1, from) : \"\";\n const needsLead = prevChar && !/\\s/.test(prevChar);\n ed.chain()\n .focus()\n .insertContent((needsLead ? \" \" : \"\") + text + \" \")\n .run();\n }\n },\n [editor],\n );\n\n const voice = useVoiceDictation({\n onTranscript: insertTranscript,\n onLiveUpdate: handleLiveUpdate,\n });\n\n // Clean up live text if voice session ends without a final transcript (cancel/error)\n useEffect(() => {\n if (voice.state === \"idle\" && voiceAnchorRef.current != null) {\n const anchor = voiceAnchorRef.current;\n const prevLen = prevVoiceInsertRef.current.length;\n if (editor && prevLen > 0) {\n editor\n .chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .run();\n }\n voiceAnchorRef.current = null;\n prevVoiceInsertRef.current = \"\";\n }\n }, [voice.state, editor]);\n\n // Global shortcut: Cmd/Ctrl + Shift + M toggles dictation. Escape cancels\n // while recording. Scoped to avoid firing when focus is outside the app.\n useEffect(() => {\n if (!voiceEnabled || !voice.supported) return;\n const handler = (e: KeyboardEvent) => {\n // e.key can be undefined on some trusted keydown events (autofill/IME\n // quirks) — seen crashing in production (AGENT-NATIVE-BROWSER-S).\n const isToggleCombo =\n typeof e.key === \"string\" &&\n e.key.toLowerCase() === \"m\" &&\n e.shiftKey &&\n (e.metaKey || e.ctrlKey) &&\n !e.altKey;\n if (isToggleCombo) {\n e.preventDefault();\n if (voice.state === \"recording\" || voice.state === \"starting\") {\n voice.stop();\n } else if (voice.state !== \"transcribing\") {\n void voice.start();\n }\n return;\n }\n if (\n e.key === \"Escape\" &&\n (voice.state === \"recording\" || voice.state === \"starting\")\n ) {\n e.preventDefault();\n voice.cancel();\n }\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [voiceEnabled, voice]);\n\n const extractComposerPayload = useCallback(() => {\n const ed = editor;\n if (!ed) {\n return {\n text: slotReferences.map((ref) => slotReferenceTitle(ref)).join(\", \"),\n references: slotReferences.map(referenceFromComposerReference),\n };\n }\n\n const references: Reference[] = slotReferences.map(\n referenceFromComposerReference,\n );\n\n // Build text that preserves @mentions (getText() strips them).\n // Walk the document and reconstruct with @name for mention/file/skill nodes.\n const textParts: string[] = [];\n ed.state.doc.descendants((node: any) => {\n if (node.isText) {\n textParts.push(node.text);\n } else if (node.type.name === \"mentionReference\") {\n textParts.push(`@[${node.attrs.label}|${node.attrs.icon || \"file\"}]`);\n } else if (node.type.name === \"fileReference\") {\n const label = node.attrs.path?.split(\"/\").pop() || node.attrs.path;\n textParts.push(`@[${label}|file]`);\n } else if (node.type.name === \"skillReference\") {\n textParts.push(`/${node.attrs.name}`);\n } else if (node.type.name === \"hardBreak\") {\n textParts.push(\"\\n\");\n } else if (\n node.type.name === \"paragraph\" &&\n textParts.length > 0 &&\n textParts[textParts.length - 1] !== \"\\n\"\n ) {\n textParts.push(\"\\n\");\n }\n });\n const rawText = textParts.join(\"\").trim();\n const text =\n rawText ||\n slotReferences.map((ref) => slotReferenceTitle(ref)).join(\", \");\n\n ed.state.doc.descendants((node: any) => {\n if (node.type.name === \"fileReference\") {\n // Legacy support\n references.push({\n type: \"file\",\n path: node.attrs.path,\n name: node.attrs.path?.split(\"/\").pop() || node.attrs.path,\n source: node.attrs.source || \"codebase\",\n });\n } else if (node.type.name === \"mentionReference\") {\n const refType = node.attrs.refType;\n references.push({\n type:\n refType === \"file\"\n ? \"file\"\n : refType === \"agent\"\n ? \"agent\"\n : refType === \"custom-agent\"\n ? \"custom-agent\"\n : \"mention\",\n path: node.attrs.refPath || \"\",\n name: node.attrs.label,\n source: node.attrs.source,\n refType: node.attrs.refType,\n refId: node.attrs.refId,\n slotKey: node.attrs.slotKey,\n slotLabel: node.attrs.slotLabel,\n metadata: node.attrs.metadata,\n });\n } else if (node.type.name === \"skillReference\") {\n references.push({\n type: \"skill\",\n path: node.attrs.path,\n name: node.attrs.name,\n source: node.attrs.source || \"codebase\",\n });\n }\n });\n\n return { text, references };\n }, [editor, slotReferences]);\n\n const syncComposerState = useCallback(() => {\n const { text, references } = extractComposerPayload();\n const requestMode =\n execMode === \"plan\" ? \"plan\" : execMode === \"build\" ? \"act\" : undefined;\n const custom: {\n references?: Reference[];\n requestMode?: \"act\" | \"plan\";\n } = {};\n if (references.length > 0) {\n custom.references = references;\n }\n if (requestMode) {\n custom.requestMode = requestMode;\n }\n composerRuntime.setText(text);\n composerRuntime.setRunConfig(\n Object.keys(custom).length > 0 ? { custom } : {},\n );\n return { text, references };\n }, [composerRuntime, execMode, extractComposerPayload]);\n\n const submitComposer = useCallback(\n (intent: ComposerSubmitIntent = \"immediate\") => {\n const ed = editor;\n if (!ed) return;\n\n const { text, references } = syncComposerState();\n const attachments = composerRuntime.getState().attachments;\n if (!text.trim() && references.length === 0 && attachments.length === 0)\n return;\n const oversizedDocumentError =\n getOversizedDocumentAttachmentError(attachments);\n if (oversizedDocumentError) {\n onAttachmentErrorRef.current?.(oversizedDocumentError);\n return;\n }\n const cancelActiveVoice = () => {\n if (\n voice.state === \"recording\" ||\n voice.state === \"starting\" ||\n voice.state === \"transcribing\"\n ) {\n voice.cancel();\n }\n };\n\n // Intercept slash commands typed directly (e.g. \"/clear\" + Enter)\n const trimmed = text.trim();\n if (trimmed.startsWith(\"/\") && references.length === 0) {\n const cmdName = normalizeSlashCommandName(trimmed);\n const matched = allSlashCommands.find((c) => c.name === cmdName);\n if (matched) {\n ed.commands.clearContent();\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n onSlashCommandRef.current?.(matched.name);\n return;\n }\n }\n\n // Composer mode: send with context via agent chat bridge\n if (composerMode) {\n const config = COMPOSER_MODE_CONFIGS[composerMode];\n config.beforeSend?.();\n const message = displayableComposerModeMessage({\n messagePrefix: config.messagePrefix,\n trimmedText: trimmed,\n attachmentCount: attachments.length,\n });\n const modePrompt =\n trimmed ||\n (attachments.length > 0 ? \"Use the attached context.\" : \"\");\n if (attachments.length > 0) {\n composerRuntime.setText(\n `${message}\\n\\n<context>\\n${config.getContext(modePrompt)}\\n</context>`,\n );\n composerRuntime.send();\n } else {\n sendToAgentChat({\n message,\n context: config.getContext(modePrompt),\n mode:\n execMode === \"plan\"\n ? \"plan\"\n : execMode === \"build\"\n ? \"act\"\n : undefined,\n submit: true,\n });\n }\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n setComposerMode(null);\n composerModeRef.current = null;\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n return;\n }\n\n // Builder iframe delegation: when this app is mounted inside the\n // Builder.io webview and the user typed a \"build me an app/agent\"\n // prompt, hand it up to the parent Builder chat instead of sending\n // it to this app's domain agent. Builder is the code-writing agent;\n // the local agent (dispatch, mail, etc.) cannot scaffold workspace\n // apps from inside its own iframe.\n if (\n interceptBuildRequestsForBuilder &&\n tryDelegateBuildRequestToBuilder(trimmed)\n ) {\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n return;\n }\n\n if (onSubmit) {\n onSubmit(text, references, attachments, { intent });\n // Clear any pending attachments now that the host has them.\n void composerRuntime.clearAttachments().catch(() => {});\n if (!clearOnSubmit) {\n closePopover();\n return;\n }\n } else {\n composerRuntime.send();\n }\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n },\n [\n closePopover,\n composerMode,\n composerRuntime,\n editor,\n interceptBuildRequestsForBuilder,\n clearOnSubmit,\n onSubmit,\n syncComposerState,\n voice,\n allSlashCommands,\n ],\n );\n\n // Helper functions that operate on the editor view directly\n // These are called from handleKeyDown which can't use React state\n function selectMention(\n _view: any,\n pop: NonNullable<PopoverState>,\n item: MentionItem,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n // startPos is after the trigger char, so -1 to include the @ or /\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain().focus().deleteRange({ from: deleteFrom, to: currentPos }).run();\n insertReference(composerReferenceFromMentionItem(item));\n popoverStateRef.current = null;\n setPopover(null);\n }\n\n function executeCommand(\n _view: any,\n pop: NonNullable<PopoverState>,\n command: SlashCommand,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain().focus().deleteRange({ from: deleteFrom, to: currentPos }).run();\n popoverStateRef.current = null;\n setPopover(null);\n onSlashCommandRef.current?.(command.name);\n }\n\n function selectSkill(\n _view: any,\n pop: NonNullable<PopoverState>,\n skill: SkillResult,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .insertContent({\n type: \"skillReference\",\n attrs: { name: skill.name, path: skill.path, source: skill.source },\n })\n .insertContent(\" \")\n .run();\n popoverStateRef.current = null;\n setPopover(null);\n }\n\n // Popover select handlers for click-based selection (from MentionPopover)\n const handleSelectMention = useCallback(\n (item: MentionItem) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .run();\n insertReference(composerReferenceFromMentionItem(item));\n closePopover();\n },\n [editor, popover, closePopover, insertReference],\n );\n\n const handleSelectCommand = useCallback(\n (command: SlashCommand) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .run();\n closePopover();\n onSlashCommand?.(command.name);\n },\n [editor, popover, closePopover, onSlashCommand],\n );\n\n const handleSelectSkill = useCallback(\n (skill: SkillResult) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .insertContent({\n type: \"skillReference\",\n attrs: { name: skill.name, path: skill.path, source: skill.source },\n })\n .insertContent(\" \")\n .run();\n closePopover();\n },\n [editor, popover, closePopover],\n );\n\n // Track query text as user types after trigger\n useEffect(() => {\n if (!editor || !popover) return;\n\n const updateHandler = () => {\n syncComposerState();\n\n const pop = popoverStateRef.current;\n if (!pop) return;\n const { from } = editor.state.selection;\n const { startPos, type } = pop;\n\n if (from < startPos) {\n closePopover();\n return;\n }\n\n const text = editor.state.doc.textBetween(startPos, from);\n\n // Verify the trigger character is still there\n if (startPos > 0) {\n const triggerChar = editor.state.doc.textBetween(\n startPos - 1,\n startPos,\n );\n if (\n (type === \"@\" && triggerChar !== \"@\") ||\n (type === \"/\" && triggerChar !== \"/\")\n ) {\n closePopover();\n return;\n }\n }\n\n const updated = { ...pop, query: text };\n popoverStateRef.current = updated;\n setPopover(updated);\n };\n\n editor.on(\"update\", updateHandler);\n editor.on(\"selectionUpdate\", updateHandler);\n return () => {\n editor.off(\"update\", updateHandler);\n editor.off(\"selectionUpdate\", updateHandler);\n };\n }, [editor, popover, closePopover, syncComposerState]);\n\n useEffect(() => {\n if (!editor) return;\n if (composerText !== \"\") return;\n if (editor.isEmpty) return;\n editor.commands.clearContent();\n }, [composerText, editor]);\n\n useEffect(() => {\n if (!editor || initialText === undefined) return;\n const key = initialTextKey ?? initialText;\n if (initialTextKeyRef.current === key) return;\n initialTextKeyRef.current = key;\n editor.commands.setContent(plainTextToDoc(initialText));\n editor.commands.focus(\"end\");\n const trimmed = editor.state.doc.textContent.trim();\n setEditorHasText(trimmed.length > 0);\n composerRuntime.setText(trimmed);\n onTextChangeRef.current?.(trimmed);\n try {\n if (trimmed) {\n localStorage.setItem(draftKey, editor.getHTML());\n } else {\n localStorage.removeItem(draftKey);\n }\n } catch {}\n }, [composerRuntime, draftKey, editor, initialText, initialTextKey]);\n\n // Tiptap only reads `editable` at init; prop changes need setEditable.\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(!disabled);\n if (disabled) editor.commands.blur();\n }, [editor, disabled]);\n\n return (\n <>\n <style>{`\n .aui-composer .ProseMirror p.is-editor-empty:first-child::before {\n content: attr(data-placeholder);\n color: var(--color-muted-foreground);\n opacity: 0.5;\n float: left;\n height: 0;\n pointer-events: none;\n }\n `}</style>\n {composerMode && (\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"mode-row\"\n className=\"agent-composer-mode-row px-2.5 pt-2 pb-0\"\n >\n <ComposerModeChip\n mode={composerMode}\n onRemove={() => {\n setComposerMode(null);\n composerModeRef.current = null;\n editor?.commands.focus(\"end\");\n }}\n />\n </div>\n )}\n {hasContextRows && (\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"context-row\"\n className=\"agent-composer-context-row flex flex-wrap gap-1.5 px-2.5 pt-2 pb-0\"\n >\n {slotReferences.map((ref) => (\n <span\n key={ref.slotKey}\n className=\"inline-flex max-w-full items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1 text-[11px] font-medium text-foreground shadow-sm\"\n >\n <IconClipboardList className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n {ref.slotLabel && (\n <span className=\"shrink-0 text-muted-foreground\">\n {ref.slotLabel}\n </span>\n )}\n <span className=\"min-w-0 truncate\">{ref.label}</span>\n <button\n type=\"button\"\n onClick={() => {\n setSlotReferences((current) =>\n removeSlotReference(current, ref),\n );\n editor?.commands.focus(\"end\");\n }}\n aria-label={`Remove ${slotReferenceTitle(ref)} reference`}\n className=\"ms-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n {contextItems.map((item) => (\n <span\n key={item.key}\n className=\"inline-flex max-w-full items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] font-medium text-foreground\"\n >\n <IconClipboardList className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n <span className=\"min-w-0 truncate\">{item.title}</span>\n <button\n type=\"button\"\n onClick={() => onRemoveContextItem?.(item.key)}\n aria-label={`Remove ${item.title} context`}\n className=\"ms-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n </div>\n )}\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"editor-wrap\"\n className={`agent-composer-editor-wrap ${\n composerMode || hasContextRows ? \"px-2 pt-1 pb-1\" : \"px-2 pt-2 pb-1\"\n }`}\n >\n <EditorContent\n editor={editor}\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"editor\"\n className=\"agent-composer-editor aui-composer flex-1 min-w-0 [&_.ProseMirror]:outline-none [&_.ProseMirror_p]:m-0 px-0.5\"\n />\n </div>\n {voiceEnabled && <VoiceRecordingOverlay voice={voice} />}\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"toolbar\"\n className=\"agent-composer-toolbar flex items-center gap-1 px-2 py-1.5\"\n >\n {attachButton ??\n (plusMenuMode === \"hidden\" ? null : (\n <ComposerPlusMenu\n onSelectMode={handleSelectMode}\n mode={plusMenuMode}\n onAttachmentError={onAttachmentError}\n />\n ))}\n {toolbarSlot ?? modeControl}\n <div data-agent-composer-slot=\"toolbar-spacer\" className=\"flex-1\" />\n {selectedModel && availableModels && onModelChange && (\n <ModelSelector\n model={selectedModel}\n effort={selectedEffort}\n engines={availableModels}\n onChange={onModelChange}\n onEffortChange={onEffortChange}\n providerConnectStatusEnabled={providerConnectStatusEnabled}\n onConnectProvider={onConnectProvider}\n imageModel={imageModelMenu}\n />\n )}\n {execMode && onExecModeChange && (\n <ModeSelector\n mode={execMode}\n onChange={onExecModeChange}\n planModeDisabled={planModeDisabled}\n planModeDisabledReason={planModeDisabledReason}\n />\n )}\n {actionButton ?? (\n <>\n {extraActionButton}\n {voiceEnabled && (\n <VoiceButton voice={voice} isMac={isMac} disabled={disabled} />\n )}\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => submitComposer(\"immediate\")}\n disabled={!canSend}\n data-agent-composer-slot=\"send-button\"\n className=\"agent-composer-send-button shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-primary text-primary-foreground hover:opacity-90 disabled:opacity-30 disabled:cursor-not-allowed\"\n >\n <IconArrowUp className=\"h-3.5 w-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent>Send message</TooltipContent>\n </Tooltip>\n </>\n )}\n </div>\n <MentionPopover\n ref={popoverRef}\n type={popover?.type ?? \"@\"}\n position={popover?.position ?? null}\n mentionItems={filteredMentionItems}\n skills={filteredSkills}\n commands={filteredCommands}\n hint={hint}\n isLoading={popover?.type === \"@\" ? mentionsLoading : skillsLoading}\n query={popover?.query ?? \"\"}\n onSelectMention={handleSelectMention}\n onSelectSkill={handleSelectSkill}\n onSelectCommand={handleSelectCommand}\n onClose={closePopover}\n />\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TiptapComposer.js","sourceRoot":"","sources":["../../../src/client/composer/TiptapComposer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useComposer, useComposerRuntime } from \"@assistant-ui/react\";\nimport {\n IconArrowUp,\n IconCheck,\n IconChevronDown,\n IconChevronRight,\n IconBulb,\n IconClock,\n IconBolt,\n IconTool,\n IconX,\n IconClipboardList,\n IconPencil,\n IconPlugConnected,\n} from \"@tabler/icons-react\";\nimport Placeholder from \"@tiptap/extension-placeholder\";\nimport type { EditorView } from \"@tiptap/pm/view\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n useMemo,\n} from \"react\";\n\nimport {\n getReasoningEffortOptionsForModel,\n reasoningEffortLabel,\n type ReasoningEffort,\n} from \"../../shared/reasoning-effort.js\";\nimport type { VoiceContextPack } from \"../../voice/index.js\";\nimport {\n AgentComposerReference,\n formatAgentChatContextItemsForPrompt,\n normalizeAgentComposerReference,\n sendToAgentChat,\n type AgentChatContextItem,\n AgentComposerReferenceInsertPayload,\n AGENT_CHAT_INSERT_REFERENCE_EVENT,\n AGENT_CHAT_INSERT_REFERENCE_MESSAGE_TYPE,\n} from \"../agent-chat.js\";\nimport { tryDelegateBuildRequestToBuilder } from \"../builder-frame.js\";\nimport { isTrustedBuilderMessage } from \"../builder-frame.js\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../components/ui/popover.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../components/ui/tooltip.js\";\nimport { isTrustedFrameMessage } from \"../frame.js\";\nimport { useBuilderConnectFlow } from \"../settings/useBuilderStatus.js\";\nimport { ComposerPlusMenu } from \"./ComposerPlusMenu.js\";\nimport { getComposerDraftKey } from \"./draft-key.js\";\nimport { FileReference } from \"./extensions/FileReference.js\";\nimport { MentionReference } from \"./extensions/MentionReference.js\";\nimport { SkillReference } from \"./extensions/SkillReference.js\";\nimport { MentionPopover, type MentionPopoverRef } from \"./MentionPopover.js\";\nimport {\n createPastedAttachmentFile,\n readClipboardPaste,\n shouldConvertClipboardToAttachment,\n} from \"./pasted-text.js\";\nimport type {\n MentionItem,\n SkillResult,\n Reference,\n SlashCommand,\n ComposerMode,\n AgentComposerLayoutVariant,\n} from \"./types.js\";\nimport { useMentionSearch } from \"./use-mention-search.js\";\nimport { useSkills } from \"./use-skills.js\";\nimport { useVoiceDictation } from \"./useVoiceDictation.js\";\nimport { VoiceButton, VoiceRecordingOverlay } from \"./VoiceButton.js\";\nexport interface TiptapComposerHandle {\n focus(): void;\n setText(text: string): void;\n insertReference(ref: AgentComposerReference): void;\n}\n\nexport type ComposerSubmitIntent = \"immediate\" | \"queued\";\n\nexport const DEFAULT_VOICE_DICTATION_ENABLED = false;\n\nexport interface TiptapComposerSubmitOptions {\n intent?: ComposerSubmitIntent;\n}\n\nexport function canSubmitComposerContent(options: {\n hasEditorContent: boolean;\n attachmentCount: number;\n disabled?: boolean;\n}): boolean {\n return (\n !options.disabled &&\n (options.hasEditorContent || options.attachmentCount > 0)\n );\n}\n\nconst MAX_DOCUMENT_ATTACHMENT_BYTES = 4 * 1024 * 1024;\n\nfunction composerReferenceFromMentionItem(\n item: MentionItem,\n): AgentComposerReference {\n return {\n label: item.label,\n icon: item.icon || \"file\",\n source: item.source,\n refType: item.refType,\n refId: item.refId || null,\n refPath: item.refPath || null,\n slotKey: item.slotKey,\n slotLabel: item.slotLabel,\n metadata: item.metadata,\n clearsSlots: item.clearsSlots,\n relatedReferences: item.relatedReferences,\n };\n}\n\nfunction mentionReferenceAttrs(ref: AgentComposerReference) {\n return {\n label: ref.label,\n icon: ref.icon || \"file\",\n source: ref.source,\n refType: ref.refType,\n refId: ref.refId || null,\n refPath: ref.refPath || null,\n slotKey: ref.slotKey || null,\n slotLabel: ref.slotLabel || null,\n metadata: ref.metadata || null,\n };\n}\n\nfunction referenceFromComposerReference(\n ref: AgentComposerReference,\n): Reference {\n return {\n type:\n ref.refType === \"file\"\n ? \"file\"\n : ref.refType === \"agent\"\n ? \"agent\"\n : ref.refType === \"custom-agent\"\n ? \"custom-agent\"\n : \"mention\",\n path: ref.refPath || \"\",\n name: ref.label,\n source: ref.source || \"\",\n refType: ref.refType,\n refId: ref.refId || undefined,\n slotKey: ref.slotKey,\n slotLabel: ref.slotLabel,\n metadata: ref.metadata,\n };\n}\n\nfunction applySlotReferenceChanges(\n current: AgentComposerReference[],\n references: AgentComposerReference[],\n): AgentComposerReference[] {\n let next = current;\n\n const applyOne = (ref: AgentComposerReference) => {\n for (const related of ref.relatedReferences ?? []) {\n applyOne(related);\n }\n if (!ref.slotKey) return;\n const cleared = new Set([ref.slotKey, ...(ref.clearsSlots ?? [])]);\n next = next.filter((existing) => !cleared.has(existing.slotKey ?? \"\"));\n next = [...next, ref];\n };\n\n for (const ref of references) {\n applyOne(ref);\n }\n\n return next;\n}\n\nfunction removeSlotReference(\n current: AgentComposerReference[],\n ref: AgentComposerReference,\n): AgentComposerReference[] {\n const removed = new Set([ref.slotKey, ...(ref.clearsSlots ?? [])]);\n return current.filter((existing) => !removed.has(existing.slotKey ?? \"\"));\n}\n\nfunction slotReferenceTitle(ref: AgentComposerReference): string {\n return ref.slotLabel ? `${ref.slotLabel}: ${ref.label}` : ref.label;\n}\n\nfunction metadataString(\n metadata: Record<string, unknown> | undefined,\n key: string,\n): string | null {\n const value = metadata?.[key];\n return typeof value === \"string\" && value.trim() ? value.trim() : null;\n}\n\nfunction trimVoiceContextValue(value: string, maxChars: number): string | null {\n const trimmed = value.replace(/\\0/g, \"\").trim();\n if (!trimmed) return null;\n if (trimmed.length <= maxChars) return trimmed;\n return `${trimmed.slice(0, maxChars).trimEnd()}\\n[truncated]`;\n}\n\nfunction filterMentionItemsForSlots(\n items: MentionItem[],\n slotReferences: AgentComposerReference[],\n): MentionItem[] {\n return items.filter((item) => {\n const requiredSlotKey = metadataString(item.metadata, \"requiredSlotKey\");\n const requiredRefId = metadataString(item.metadata, \"requiredRefId\");\n if (!requiredSlotKey || !requiredRefId) return true;\n const selected = slotReferences.find(\n (ref) => ref.slotKey === requiredSlotKey,\n );\n if (!selected?.refId) return true;\n return selected.refId === requiredRefId;\n });\n}\n\nfunction isDocumentAttachment(value: Record<string, unknown>): boolean {\n if (value.type === \"document\") return true;\n const contentType = String(value.contentType ?? \"\").toLowerCase();\n const name = String(value.name ?? \"\").toLowerCase();\n return contentType === \"application/pdf\" || name.endsWith(\".pdf\");\n}\n\nexport function getOversizedDocumentAttachmentError(\n attachments: ReadonlyArray<unknown>,\n): string | null {\n for (const attachment of attachments) {\n if (!attachment || typeof attachment !== \"object\") continue;\n const candidate = attachment as Record<string, unknown>;\n if (!isDocumentAttachment(candidate)) continue;\n const file = candidate.file;\n if (!(file instanceof File)) continue;\n if (file.size <= MAX_DOCUMENT_ATTACHMENT_BYTES) continue;\n const name =\n typeof candidate.name === \"string\" && candidate.name.trim()\n ? candidate.name\n : file.name;\n const mb = (file.size / 1024 / 1024).toFixed(1);\n const maxMb = (MAX_DOCUMENT_ATTACHMENT_BYTES / 1024 / 1024).toFixed(0);\n return `\"${name}\" is ${mb} MB — PDFs are capped at ${maxMb} MB to stay within message limits. Please reduce the file size or split it into smaller parts.`;\n }\n return null;\n}\n\nexport function getComposerSubmitIntentForEnterKey(\n event: Pick<KeyboardEvent, \"key\" | \"shiftKey\" | \"metaKey\" | \"ctrlKey\">,\n isMac: boolean,\n): ComposerSubmitIntent | null {\n if (event.key !== \"Enter\" || event.shiftKey) return null;\n\n const queuedModifierPressed = isMac ? event.metaKey : event.ctrlKey;\n if (queuedModifierPressed) return \"queued\";\n\n if (!event.metaKey && !event.ctrlKey) return \"immediate\";\n\n return null;\n}\n\nexport function insertComposerHardBreakAndScrollIntoView(\n view: Pick<EditorView, \"state\" | \"dispatch\">,\n): boolean {\n const hardBreak = view.state.schema.nodes.hardBreak;\n if (!hardBreak) return false;\n\n view.dispatch(\n view.state.tr.replaceSelectionWith(hardBreak.create()).scrollIntoView(),\n );\n return true;\n}\n\nexport function displayableComposerModeMessage(options: {\n messagePrefix: string;\n trimmedText: string;\n attachmentCount: number;\n}): string {\n const modePrompt =\n options.trimmedText ||\n (options.attachmentCount > 0 ? \"Use the attached context.\" : \"\");\n return `${options.messagePrefix}${modePrompt}`;\n}\n\nfunction uniquifyComposerImageFile(file: File): File {\n if (!file.type.startsWith(\"image/\")) return file;\n const uniqueName = `${Date.now()}-${Math.random().toString(36).slice(2)}-${file.name}`;\n return new File([file], uniqueName, { type: file.type });\n}\n\nfunction composerDocumentHasContent(doc: {\n textContent: string;\n descendants: (callback: (node: any) => boolean | void) => void;\n}): boolean {\n if (doc.textContent.trim().length > 0) return true;\n let hasContent = false;\n doc.descendants((node: any) => {\n if (\n node.type.name === \"mentionReference\" ||\n node.type.name === \"fileReference\" ||\n node.type.name === \"skillReference\"\n ) {\n hasContent = true;\n return false;\n }\n return true;\n });\n return hasContent;\n}\n\nexport function handleComposerFileDrop(options: {\n event: Pick<DragEvent, \"dataTransfer\" | \"preventDefault\" | \"stopPropagation\">;\n addAttachment: (file: File) => Promise<unknown>;\n onError?: (error: unknown) => void;\n}): boolean {\n const droppedFiles = Array.from(options.event.dataTransfer?.files ?? []);\n if (droppedFiles.length === 0) return false;\n\n options.event.preventDefault();\n options.event.stopPropagation();\n const attachments = droppedFiles.map(uniquifyComposerImageFile);\n void Promise.all(\n attachments.map((file) => options.addAttachment(file)),\n ).catch((error) => {\n options.onError?.(error);\n });\n return true;\n}\n\nconst BUILT_IN_COMMANDS: SlashCommand[] = [\n { name: \"clear\", description: \"Start a new chat\", icon: \"clear\" },\n { name: \"new\", description: \"Start a new chat\", icon: \"new\" },\n { name: \"history\", description: \"Browse all chats\", icon: \"history\" },\n { name: \"plan\", description: \"Switch to read-only planning\", icon: \"plan\" },\n { name: \"act\", description: \"Switch back to acting\", icon: \"act\" },\n { name: \"help\", description: \"Show available commands\", icon: \"help\" },\n];\n\nfunction normalizeSlashCommandName(name: string): string {\n return name.replace(/^\\/+/, \"\").trim().toLowerCase();\n}\n\nfunction mergeSlashCommands(commands: SlashCommand[]): SlashCommand[] {\n const seen = new Set<string>();\n const merged: SlashCommand[] = [];\n for (const command of commands) {\n const name = normalizeSlashCommandName(command.name);\n if (!name || seen.has(name)) continue;\n seen.add(name);\n merged.push({ ...command, name });\n }\n return merged;\n}\n\nfunction mergeSlashSkills(skills: SkillResult[]): SkillResult[] {\n const seen = new Set<string>();\n const merged: SkillResult[] = [];\n for (const skill of skills) {\n const key = `${skill.source ?? \"\"}:${skill.path ?? \"\"}:${skill.name}`;\n if (!skill.name || seen.has(key)) continue;\n seen.add(key);\n merged.push(skill);\n }\n return merged;\n}\n\nconst COMPOSER_MODE_CONFIGS: Record<\n ComposerMode,\n {\n label: string;\n icon: React.ComponentType<{ className?: string }>;\n placeholder: string;\n messagePrefix: string;\n getContext: (prompt: string) => string;\n beforeSend?: () => void;\n }\n> = {\n skill: {\n label: \"Create Skill\",\n icon: IconBulb,\n placeholder: \"Describe the skill you want to create...\",\n messagePrefix: \"Create a skill: \",\n getContext: (prompt) =>\n `The user wants to create an agent skill. Their description: \"${prompt}\"\n\nFollow the create-skill pattern to build this. Before writing:\n\n1. **Determine the skill name** — derive a hyphen-case name from the description (e.g. \"code review\" → \"code-review\")\n2. **Determine the skill type** — Pattern (architectural rule), Workflow (step-by-step), or Generator (scaffolding)\n3. **Write the skill** as a personal resource at path \"skills/<name>/SKILL.md\" using the \\`resources\\` tool with \\`action: \"write\"\\`\n\nThe skill file MUST have YAML frontmatter with name and description (under 40 words), then markdown with:\n- Clear rule/purpose statement\n- Why this skill exists\n- How to follow it (with code examples where helpful)\n- Common violations to avoid\n- Related skills\n\nAfter creating, update the shared AGENTS.md resource to reference the new skill in its skills table.\n\nKeep the skill concise (under 500 lines) and actionable.`,\n },\n job: {\n label: \"Schedule Task\",\n icon: IconClock,\n placeholder: \"Describe what should happen and when...\",\n messagePrefix: \"Create a recurring job: \",\n getContext: (prompt) =>\n `The user wants to create a recurring job. Their description: \"${prompt}\"\n\nUse the manage-jobs tool with action \"create\" to create this. You need to:\n1. Derive a hyphen-case name from the description\n2. Convert the schedule to a cron expression (e.g., \"every weekday at 9am\" → \"0 9 * * 1-5\")\n3. Write clear, self-contained instructions for what the agent should do each time the job runs\n4. Create it in personal scope\n\nThe job will run automatically on the schedule. Make the instructions specific — include which actions to call and what to do with results.`,\n },\n automation: {\n label: \"Create Automation\",\n icon: IconBolt,\n placeholder: \"Describe what you want to automate...\",\n messagePrefix: \"Create an automation: \",\n beforeSend: () => {\n window.dispatchEvent(\n new CustomEvent(\"agent-panel:set-mode\", {\n detail: { mode: \"chat\" },\n }),\n );\n },\n getContext: (prompt) =>\n `The user wants to create a new automation. Scope: personal. Their description: \"${prompt}\"\n\nUse manage-automations with action=define to create it. Ask clarifying questions if needed about what event to trigger on, conditions, and what actions to take.`,\n },\n extension: {\n label: \"Create Extension\",\n icon: IconTool,\n placeholder: \"Describe the interactive extension you want to build...\",\n messagePrefix: \"Create an extension: \",\n getContext: (prompt) =>\n `The user wants to create an interactive extension (sandboxed mini-app). Their description: \"${prompt}\"\n\nUse the create-extension action with Alpine.js HTML content. The extension runs as a sandboxed iframe with Tailwind CSS and modest default canvas padding. For edge-to-edge layouts, put data-extension-layout=\"full-bleed\" on the outermost element.\n\nAfter creating the extension, navigate the user to it with the path returned by create-extension; extension URLs may include a friendly \"/extensions/<id>/<slug>\" suffix.\n\nMake the extension functional and visually polished. Extensions can use extensionFetch() for external API calls, appAction()/appFetch() for app operations, extensionData for per-extension persistence, and dbQuery()/dbExec() only for existing app tables.\n\nPrefer appAction()/appFetch() for app data. Some actions return JSON strings for CLI compatibility, so parse string results before counting rows or reading arrays. Do not guess raw SQL table names or columns for app data; use dbQuery()/dbExec() only when the table is known to exist in the current schema.`,\n },\n};\n\nfunction ComposerModeChip({\n mode,\n onRemove,\n}: {\n mode: ComposerMode;\n onRemove: () => void;\n}) {\n const config = COMPOSER_MODE_CONFIGS[mode];\n const Icon = config.icon;\n return (\n <span className=\"inline-flex items-center gap-1 rounded-md border border-border bg-muted/50 px-1.5 py-0.5 text-xs font-medium text-foreground\">\n <Icon className=\"h-3 w-3 text-muted-foreground\" />\n {config.label}\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ms-0.5 rounded-sm text-muted-foreground hover:text-foreground cursor-pointer\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n );\n}\n\ntype ExecMode = \"build\" | \"plan\";\n\nexport interface TiptapComposerProps {\n placeholder?: string;\n disabled?: boolean;\n focusRef?: React.Ref<TiptapComposerHandle>;\n /** Programmatically seed the editor with plain text. */\n initialText?: string;\n /** Stable key used to re-apply the seeded text. */\n initialTextKey?: string | number;\n /**\n * When provided, called instead of composerRuntime.send(). Used for queue\n * mode and standalone prompt popovers. Receives the live composer\n * attachments so callers (e.g. PromptComposer) can surface uploaded files.\n */\n onSubmit?: (\n text: string,\n references: Reference[],\n attachments?: ReadonlyArray<unknown>,\n options?: TiptapComposerSubmitOptions,\n ) => void;\n /** Return false to stop a submit before it enters the chat runtime. */\n onBeforeSubmit?: () => boolean | Promise<boolean>;\n /**\n * Clear the editor after an onSubmit handler runs. Standalone workflows that\n * may fail outside the composer can keep the draft visible for quick edits.\n */\n clearOnSubmit?: boolean;\n /** Called whenever the plain editor text changes. */\n onTextChange?: (text: string) => void;\n /** Custom action button (e.g. stop button) to render instead of the default send button. */\n actionButton?: React.ReactNode;\n /** Extra button to render alongside the default send button (e.g. stop while running). */\n extraActionButton?: React.ReactNode;\n /** Custom attachment button to render instead of ComposerPrimitive.AddAttachment. */\n attachButton?: React.ReactNode;\n /** Custom host-owned control rendered next to the attachment affordance. */\n modeControl?: React.ReactNode;\n /** Explicit host-owned toolbar slot rendered next to the attachment affordance. */\n toolbarSlot?: React.ReactNode;\n /** Shared sizing/layout variant for host surfaces. Default keeps sidebar behavior. */\n layoutVariant?: AgentComposerLayoutVariant;\n /** Additional slash commands surfaced in the shared / menu. */\n slashCommands?: SlashCommand[];\n /** Additional slash skills surfaced in the shared / menu. */\n slashSkills?: SkillResult[];\n /** Include built-in sidebar slash commands like /clear and /help. Default true. */\n includeDefaultSlashCommands?: boolean;\n /** Include app-discovered skills from the default agent endpoint. Default true. */\n includeDefaultSlashSkills?: boolean;\n /** Called when a slash command (e.g. /clear, /help) is executed */\n onSlashCommand?: (command: string) => void;\n /** Current execution mode (build/plan) */\n execMode?: ExecMode;\n /** Callback to change execution mode */\n onExecModeChange?: (mode: ExecMode) => void;\n /** Disable Plan mode while leaving Act mode available. */\n planModeDisabled?: boolean;\n /** Explanation shown next to the disabled Plan option. */\n planModeDisabledReason?: string;\n /** Show the microphone button for voice dictation. Defaults to DEFAULT_VOICE_DICTATION_ENABLED. */\n voiceEnabled?: boolean;\n /** Selected model override for this conversation */\n selectedModel?: string;\n /** Selected reasoning effort override for this conversation */\n selectedEffort?: ReasoningEffort;\n /** Available models grouped by provider */\n availableModels?: Array<{\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n }>;\n /** Callback when user picks a model */\n onModelChange?: (model: string, engine: string) => void;\n /** Callback when user picks a reasoning effort */\n onEffortChange?: (effort: ReasoningEffort) => void;\n /**\n * Disable Builder/provider status polling for hosts that supply provider\n * state through another channel, such as Electron IPC.\n */\n providerConnectStatusEnabled?: boolean;\n /**\n * Override the Builder.io connect action in the model picker. When provided,\n * clicking \"Connect Builder.io\" calls this instead of opening a browser popup.\n * Used by the Electron desktop app to route through the native IPC handler.\n */\n onConnectProvider?: () => void;\n /**\n * Optional secondary model menu (e.g. an image-generation model) rendered as\n * an extra section inside the model picker. Opt-in; omit for chat-only apps.\n */\n imageModelMenu?: ComposerImageModelMenu;\n /** Stable scope for persisted drafts, usually the active thread or tab id. */\n draftScope?: string;\n /** Keyed context nuggets staged for the next submitted prompt. */\n contextItems?: AgentChatContextItem[];\n /** Remove a staged context nugget by key. */\n onRemoveContextItem?: (key: string) => void;\n /**\n * Controls the \"+\" menu next to the composer. `\"full\"` (default) shows the\n * normal Upload / Skill / Job / Automation / Tool / MCP picker. `\"upload-only\"`\n * collapses it to a single button that opens the file picker directly.\n * `\"hidden\"` hides attachment controls for text-only prompt surfaces.\n */\n plusMenuMode?: \"full\" | \"upload-only\" | \"hidden\";\n /**\n * When true and the composer is running inside the Builder.io webview/iframe,\n * intercept \"build me an app/agent\" prompts and forward them to the parent\n * Builder chat via `builder.submitChat` instead of sending to the local\n * agent. Off by default — the chat sidebar opts in; standalone prompt\n * forms (NewWorkspaceAppFlow, etc.) handle delegation themselves with\n * extra context (vault keys, computed app ids) that the raw composer\n * text lacks.\n */\n interceptBuildRequestsForBuilder?: boolean;\n /**\n * Called when a drag-drop or paste attachment fails (e.g. unsupported format,\n * size cap). Use this to surface a visible error in the parent chat surface\n * rather than silently swallowing the problem.\n */\n onAttachmentError?: (message: string) => void;\n}\n\nfunction plainTextToDoc(text: string) {\n const lines = text.length > 0 ? text.split(/\\r?\\n/) : [\"\"];\n return {\n type: \"doc\",\n content: lines.map((line) => ({\n type: \"paragraph\",\n content: line ? [{ type: \"text\", text: line }] : [],\n })),\n };\n}\n\nexport function createTiptapComposerExtensions(\n getPlaceholder: () => string | undefined,\n) {\n return [\n StarterKit.configure({\n heading: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n listKeymap: false,\n blockquote: false,\n codeBlock: false,\n strike: false,\n italic: false,\n bold: false,\n code: false,\n dropcursor: false,\n gapcursor: false,\n link: false,\n trailingNode: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder: () => getPlaceholder() ?? \"\",\n emptyEditorClass: \"is-editor-empty\",\n showOnlyCurrent: false,\n }),\n FileReference,\n SkillReference,\n MentionReference,\n ];\n}\n\nfunction ModeSelector({\n mode,\n onChange,\n planModeDisabled = false,\n planModeDisabledReason = \"Open Agent Native Desktop to use Plan mode.\",\n}: {\n mode: ExecMode;\n onChange: (mode: ExecMode) => void;\n planModeDisabled?: boolean;\n planModeDisabledReason?: string;\n}) {\n const [open, setOpen] = useState(false);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={mode === \"build\" ? \"Act mode\" : \"Plan mode\"}\n data-agent-composer-slot=\"mode-button\"\n className=\"agent-composer-mode-button shrink-0 flex items-center gap-1 rounded-md px-2 py-1 text-[12px] font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground\"\n >\n {mode === \"build\" ? \"Act\" : \"Plan\"}\n <IconChevronDown className=\"h-3 w-3 opacity-60\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"top\"\n align=\"end\"\n sideOffset={6}\n collisionPadding={8}\n data-agent-native-composer-popover=\"true\"\n className=\"z-[260] w-60 rounded-lg border-border p-0 py-1 shadow-lg\"\n style={{ fontSize: 13 }}\n >\n <button\n type=\"button\"\n onClick={() => {\n onChange(\"build\");\n setOpen(false);\n }}\n className=\"flex w-full items-center gap-3 px-3 py-2 hover:bg-accent/50 text-start\"\n >\n <IconPencil className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <div className=\"flex-1 min-w-0\">\n <span className=\"font-medium text-foreground text-[13px]\">Act</span>\n <p className=\"text-[11px] text-muted-foreground mt-0.5\">\n Use tools and make approved changes\n </p>\n </div>\n {mode === \"build\" && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n <button\n type=\"button\"\n disabled={planModeDisabled}\n title={planModeDisabled ? planModeDisabledReason : undefined}\n onClick={() => {\n if (planModeDisabled) return;\n onChange(\"plan\");\n setOpen(false);\n }}\n className={`flex w-full items-center gap-3 px-3 py-2 text-start ${\n planModeDisabled\n ? \"cursor-not-allowed opacity-60\"\n : \"hover:bg-accent/50\"\n }`}\n >\n <IconClipboardList className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <div className=\"flex-1 min-w-0\">\n <span className=\"font-medium text-foreground text-[13px]\">\n Plan\n </span>\n <p className=\"text-[11px] text-muted-foreground mt-0.5\">\n {planModeDisabled\n ? planModeDisabledReason\n : \"Read-only research and approval first\"}\n </p>\n </div>\n {mode === \"plan\" && !planModeDisabled && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n </PopoverContent>\n </Popover>\n );\n}\n\nconst FRIENDLY_MODEL_NAMES: Record<string, string> = {\n auto: \"Default model\",\n \"claude-fable-5\": \"Fable 5\",\n \"grok-code-fast\": \"Grok Code Fast\",\n \"qwen3-coder\": \"Qwen3 Coder\",\n \"kimi-k2-5\": \"Kimi K2.5\",\n \"deepseek-v3-1\": \"DeepSeek v3.1\",\n};\n\nexport const MODEL_SELECTOR_POPOVER_STYLE = {\n fontSize: 13,\n maxHeight: \"min(500px, var(--radix-popover-content-available-height, 500px))\",\n} satisfies React.CSSProperties;\n\nfunction friendlyModelName(model: string): string {\n if (FRIENDLY_MODEL_NAMES[model]) return FRIENDLY_MODEL_NAMES[model];\n // Claude: claude-{tier}-{major}-{minor}[-dateYYYYMMDD] → Tier Major.Minor\n const claude = model.match(\n /^claude-(opus|sonnet|haiku)-(\\d+)-(\\d+)(?:-\\d{8,})?$/,\n );\n if (claude) {\n const tier = claude[1][0].toUpperCase() + claude[1].slice(1);\n return `${tier} ${claude[2]}.${claude[3]}`;\n }\n // GPT: gpt-{major}-{minor}[-suffix] or gpt-{major}.{minor}[-suffix]\n if (model.startsWith(\"gpt-\")) {\n const rest = model.slice(4);\n const gpt = rest.match(/^(\\d+)[.-](\\d+)(?:[.-](.+))?$/);\n if (gpt) {\n const suffix = gpt[3]\n ? \" \" +\n gpt[3]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \")\n : \"\";\n return `GPT-${gpt[1]}.${gpt[2]}${suffix}`;\n }\n return `GPT-${rest}`;\n }\n if (/^o\\d/.test(model)) return model;\n // Gemini: gemini-{major}-{minor}-{variant}[-preview] → Gemini Major.Minor Variant\n const geminiVersioned = model.match(\n /^gemini-(\\d+)-(\\d+)-(.+?)(?:-preview)?$/,\n );\n if (geminiVersioned) {\n const variant = geminiVersioned[3]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \");\n return `Gemini ${geminiVersioned[1]}.${geminiVersioned[2]} ${variant}`;\n }\n // Gemini: gemini-{version.parts}[-preview] → Gemini Version Parts\n const gemini = model.match(/^gemini-(.+?)(?:-preview)?$/);\n if (gemini) {\n const parts = gemini[1]\n .split(\"-\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \");\n return `Gemini ${parts}`;\n }\n return model;\n}\n\n/**\n * Deduplicate models to only the latest version per family.\n * e.g. [opus-4-7, opus-4-6, opus-4-5] → [opus-4-7]\n */\nfunction latestModelsOnly(models: string[]): string[] {\n const seen = new Set<string>();\n return models.filter((m) => {\n // Claude: family = tier (opus/sonnet/haiku)\n const claude = m.match(/^claude-(opus|sonnet|haiku)-/);\n if (claude) {\n if (seen.has(claude[1])) return false;\n seen.add(claude[1]);\n return true;\n }\n // GPT: family = gpt-{major} (e.g. gpt-5.4 and gpt-5.4-mini are different)\n // OpenAI reasoning: each is its own family\n // Gemini: family = gemini-{major} + variant\n const gemini = m.match(/^gemini-(\\d+(?:\\.\\d+)?)-(.+?)(?:-preview)?$/);\n if (gemini) {\n const family = gemini[2]; // flash, pro, etc.\n if (seen.has(`gemini-${family}`)) return false;\n seen.add(`gemini-${family}`);\n return true;\n }\n return true;\n });\n}\n\n/**\n * Optional secondary model menu for apps that drive a separate generation model\n * alongside the chat LLM (e.g. the Assets app's image-generation model). When\n * provided, the model picker renders an extra collapsible section so the user\n * can see and pick both \"what reasons about my request\" (the chat model) and\n * \"what produces the output\" (this model). Opt-in — omit it and nothing changes.\n */\nexport interface ComposerImageModelMenu {\n /** Currently-selected model id for this secondary menu. */\n value: string;\n /** Selectable options (stable id + human label). */\n options: Array<{ value: string; label: string }>;\n /** Invoked when the user picks a different option. */\n onChange: (value: string) => void;\n /** Section header. Defaults to \"Image model\". */\n label?: string;\n}\n\nfunction ModelSelector({\n model,\n effort = \"auto\",\n engines,\n onChange,\n onEffortChange,\n providerConnectStatusEnabled = true,\n onConnectProvider,\n imageModel,\n}: {\n model: string;\n effort?: ReasoningEffort;\n engines: Array<{\n engine: string;\n label: string;\n models: string[];\n configured: boolean;\n }>;\n onChange: (model: string, engine: string) => void;\n onEffortChange?: (effort: ReasoningEffort) => void;\n providerConnectStatusEnabled?: boolean;\n onConnectProvider?: () => void;\n imageModel?: ComposerImageModelMenu;\n}) {\n const [open, setOpen] = useState(false);\n const autoModelGroup = engines.find((group) => group.models.includes(\"auto\"));\n const providerGroups = useMemo(\n () =>\n engines\n .map((group) => ({\n ...group,\n models: group.models.filter((candidate) => candidate !== \"auto\"),\n }))\n .filter((group) => group.models.length > 0),\n [engines],\n );\n const effortOptions =\n model === \"auto\"\n ? ([\n \"auto\",\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n \"max\",\n ] satisfies ReasoningEffort[])\n : getReasoningEffortOptionsForModel(model);\n\n // Collapse non-selected families by default. The family containing the\n // currently-selected model stays expanded so the user sees their pick at\n // a glance; clicking another family's header expands it inline.\n const selectedGroupKey = useMemo(() => {\n const found = providerGroups.find((g) => g.models.includes(model));\n return found ? `${found.engine}:${found.label}` : null;\n }, [model, providerGroups]);\n\n const [expandedGroups, setExpandedGroups] = useState<Set<string>>(\n () => new Set(selectedGroupKey ? [selectedGroupKey] : []),\n );\n\n // Reset expansion when the popover re-opens so the picker always lands\n // on the \"selected family expanded, others collapsed\" view.\n useEffect(() => {\n if (open) {\n setExpandedGroups(new Set(selectedGroupKey ? [selectedGroupKey] : []));\n }\n }, [open, selectedGroupKey]);\n\n const toggleGroup = useCallback((key: string) => {\n setExpandedGroups((prev) => {\n const next = new Set(prev);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n }, []);\n\n // The reasoning effort list is collapsed by default — it's a secondary\n // control most users don't touch, so it stays tucked behind a header that\n // reveals the current effort at a glance. Reset to collapsed on each open.\n const [reasoningExpanded, setReasoningExpanded] = useState(false);\n useEffect(() => {\n if (open) setReasoningExpanded(false);\n }, [open]);\n\n // The optional image-model section follows the same collapsed-by-default\n // pattern; the current selection shows next to the header.\n const [imageExpanded, setImageExpanded] = useState(false);\n useEffect(() => {\n if (open) setImageExpanded(false);\n }, [open]);\n const imageModelLabel =\n imageModel?.options.find((option) => option.value === imageModel.value)\n ?.label ?? imageModel?.value;\n\n // When Builder.io isn't connected, surface a one-click connect path —\n // it unlocks every model family (Claude, OpenAI, Gemini) without the\n // user having to paste individual API keys.\n const builderFlow = useBuilderConnectFlow({\n enabled: providerConnectStatusEnabled,\n trackingSource: \"composer_builder_cta\",\n });\n const hasConfiguredBuilderModels = providerGroups.some(\n (group) => group.engine === \"builder\" && group.configured,\n );\n const showBuilderCta =\n (builderFlow.hasFetchedStatus ||\n (!providerConnectStatusEnabled && !!onConnectProvider)) &&\n !builderFlow.configured &&\n !builderFlow.envManaged &&\n !hasConfiguredBuilderModels;\n const openLlmSettings = useCallback(() => {\n try {\n window.location.hash = \"llm\";\n } catch {}\n window.dispatchEvent(new CustomEvent(\"agent-panel:open-settings\"));\n setOpen(false);\n }, []);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n data-agent-composer-slot=\"model-button\"\n className=\"agent-composer-model-button flex min-w-0 max-w-[10.5rem] shrink items-center gap-1 rounded-md px-2 py-1 text-[12px] font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground\"\n >\n <span className=\"min-w-0 truncate\">{friendlyModelName(model)}</span>\n {effortOptions.length > 0 && (\n <span className=\"agent-composer-model-effort min-w-0 shrink truncate text-muted-foreground/70\">\n · {reasoningEffortLabel(effort)}\n </span>\n )}\n <IconChevronDown className=\"h-3 w-3 shrink-0 opacity-60\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side=\"top\"\n align=\"end\"\n sideOffset={6}\n collisionPadding={8}\n data-agent-native-composer-popover=\"true\"\n className=\"z-[260] box-border w-72 overflow-y-auto rounded-lg border-border p-0 py-1 shadow-lg\"\n style={MODEL_SELECTOR_POPOVER_STYLE}\n >\n {showBuilderCta && (\n <>\n <button\n type=\"button\"\n onClick={() => {\n if (onConnectProvider) {\n onConnectProvider();\n } else {\n builderFlow.start();\n }\n }}\n disabled={!onConnectProvider && builderFlow.connecting}\n className=\"flex w-full items-start gap-2 px-3 py-2 text-start hover:bg-accent/50 disabled:opacity-60\"\n >\n <IconPlugConnected className=\"h-4 w-4 shrink-0 mt-0.5 text-blue-500\" />\n <span className=\"flex-1 min-w-0\">\n <span className=\"block text-[12px] font-medium text-foreground\">\n {!onConnectProvider && builderFlow.connecting\n ? \"Connecting Builder.io…\"\n : \"Connect Builder.io\"}\n </span>\n <span className=\"block text-[11px] text-muted-foreground\">\n Free credits for Claude, OpenAI & Gemini\n </span>\n </span>\n </button>\n <div className=\"my-1 border-t border-border\" />\n </>\n )}\n {imageModel && imageModel.options.length > 0 && (\n <>\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={imageExpanded}\n onClick={() => setImageExpanded((prev) => !prev)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n {imageExpanded ? (\n <IconChevronDown className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n ) : (\n <IconChevronRight className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n )}\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n {imageModel.label ?? \"Image model\"}\n </span>\n {!imageExpanded && imageModelLabel && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {imageModelLabel}\n </span>\n )}\n </button>\n </div>\n {imageExpanded &&\n imageModel.options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => {\n imageModel.onChange(option.value);\n setImageExpanded(false);\n }}\n className=\"flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {option.label}\n </span>\n {option.value === imageModel.value && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n <div className=\"my-1 border-t border-border\" />\n </>\n )}\n {autoModelGroup && (\n <button\n type=\"button\"\n onClick={() => {\n onChange(\"auto\", autoModelGroup.engine);\n setOpen(false);\n }}\n className=\"flex w-full items-center gap-3 px-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n Auto\n </span>\n {model === \"auto\" && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n )}\n {autoModelGroup && providerGroups.length > 0 && (\n <div className=\"my-1 border-t border-border\" />\n )}\n {providerGroups.map((group) => {\n const models = latestModelsOnly(group.models);\n const groupKey = `${group.engine}:${group.label}`;\n const isExpanded = expandedGroups.has(groupKey);\n const ChevronIcon = isExpanded ? IconChevronDown : IconChevronRight;\n return (\n <div key={groupKey}>\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={isExpanded}\n onClick={() => toggleGroup(groupKey)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n <ChevronIcon className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n {group.label}\n </span>\n {!isExpanded && groupKey === selectedGroupKey && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {friendlyModelName(model)}\n </span>\n )}\n </button>\n {!group.configured && (\n <button\n type=\"button\"\n className=\"text-[10px] text-muted-foreground/60 hover:text-foreground cursor-pointer pe-3 py-1.5\"\n onClick={openLlmSettings}\n >\n needs API key\n </button>\n )}\n </div>\n {isExpanded &&\n models.map((m) => (\n <button\n key={m}\n type=\"button\"\n onClick={() => {\n if (!group.configured) {\n openLlmSettings();\n return;\n }\n onChange(m, group.engine);\n const nextOptions = getReasoningEffortOptionsForModel(m);\n if (\n effort !== \"auto\" &&\n nextOptions.length > 0 &&\n !nextOptions.includes(effort)\n ) {\n onEffortChange?.(\"auto\");\n }\n setOpen(false);\n }}\n className={`flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start ${\n group.configured\n ? \"hover:bg-accent/50\"\n : \"opacity-40 cursor-default\"\n }`}\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {friendlyModelName(m)}\n </span>\n {m === model && group.configured && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n </div>\n );\n })}\n {effortOptions.length > 0 && (\n <>\n <div className=\"my-1 border-t border-border\" />\n <div className=\"flex items-center hover:bg-accent/30\">\n <button\n type=\"button\"\n aria-expanded={reasoningExpanded}\n onClick={() => setReasoningExpanded((prev) => !prev)}\n className=\"flex flex-1 min-w-0 items-center gap-1.5 px-2 py-1.5 cursor-pointer text-start\"\n >\n {reasoningExpanded ? (\n <IconChevronDown className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n ) : (\n <IconChevronRight className=\"h-3 w-3 shrink-0 text-muted-foreground rtl:-scale-x-100\" />\n )}\n <span className=\"text-[11px] font-medium text-muted-foreground uppercase tracking-wide shrink-0\">\n Reasoning\n </span>\n {!reasoningExpanded && (\n <span className=\"text-[11px] text-muted-foreground/80 truncate\">\n {reasoningEffortLabel(effort)}\n </span>\n )}\n </button>\n </div>\n {reasoningExpanded &&\n effortOptions.map((option) => (\n <button\n key={option}\n type=\"button\"\n onClick={() => onEffortChange?.(option)}\n className=\"flex w-full items-center gap-3 ps-7 pe-3 py-1.5 text-start hover:bg-accent/50\"\n >\n <span className=\"flex-1 min-w-0 text-[13px] text-foreground truncate\">\n {reasoningEffortLabel(option)}\n </span>\n {option === effort && (\n <IconCheck className=\"h-3.5 w-3.5 shrink-0 text-blue-500\" />\n )}\n </button>\n ))}\n </>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\ntype PopoverState = {\n type: \"@\" | \"/\";\n position: { top: number; left: number };\n startPos: number;\n query: string;\n} | null;\n\nexport function TiptapComposer({\n placeholder = \"Message agent...\",\n disabled = false,\n focusRef,\n initialText,\n initialTextKey,\n onSubmit,\n onBeforeSubmit,\n clearOnSubmit = true,\n onTextChange,\n actionButton,\n extraActionButton,\n attachButton,\n modeControl,\n toolbarSlot,\n layoutVariant = \"default\",\n slashCommands = [],\n slashSkills = [],\n includeDefaultSlashCommands = true,\n includeDefaultSlashSkills = true,\n onSlashCommand,\n execMode,\n onExecModeChange,\n planModeDisabled = false,\n planModeDisabledReason,\n voiceEnabled = DEFAULT_VOICE_DICTATION_ENABLED,\n selectedModel,\n selectedEffort,\n availableModels,\n onModelChange,\n onEffortChange,\n providerConnectStatusEnabled,\n onConnectProvider,\n imageModelMenu,\n draftScope,\n contextItems = [],\n onRemoveContextItem,\n plusMenuMode = \"full\",\n interceptBuildRequestsForBuilder = false,\n onAttachmentError,\n}: TiptapComposerProps) {\n const [popover, setPopover] = useState<PopoverState>(null);\n const popoverRef = useRef<MentionPopoverRef>(null);\n const composerRuntime = useComposerRuntime();\n const submitInFlightRef = useRef(false);\n const [editorHasText, setEditorHasText] = useState(false);\n const [slotReferences, setSlotReferences] = useState<\n AgentComposerReference[]\n >([]);\n const composerText = useComposer((state) => state.text);\n const composerAttachments = useComposer((state) => state.attachments);\n const canSend = canSubmitComposerContent({\n hasEditorContent: editorHasText || slotReferences.length > 0,\n attachmentCount: composerAttachments.length,\n disabled,\n });\n const hasContextRows = contextItems.length > 0 || slotReferences.length > 0;\n const [composerMode, setComposerMode] = useState<ComposerMode | null>(null);\n const composerModeRef = useRef<ComposerMode | null>(null);\n const isMac =\n typeof navigator !== \"undefined\" &&\n /Mac|iPhone|iPad/.test(navigator.userAgent);\n\n // Refs for values accessed in handleKeyDown (ProseMirror doesn't re-bind)\n const popoverStateRef = useRef<PopoverState>(null);\n const onAttachmentErrorRef = useRef(onAttachmentError);\n onAttachmentErrorRef.current = onAttachmentError;\n const execModeRef = useRef(execMode);\n execModeRef.current = execMode;\n const onExecModeChangeRef = useRef(onExecModeChange);\n onExecModeChangeRef.current = onExecModeChange;\n const planModeDisabledRef = useRef(planModeDisabled);\n planModeDisabledRef.current = planModeDisabled;\n\n const { items: mentionItems, isLoading: mentionsLoading } = useMentionSearch(\n popover?.type === \"@\" ? popover.query : \"\",\n popover?.type === \"@\",\n );\n const filteredMentionItems = useMemo(\n () => filterMentionItemsForSlots(mentionItems, slotReferences),\n [mentionItems, slotReferences],\n );\n\n const {\n skills,\n hint,\n isLoading: skillsLoading,\n } = useSkills(includeDefaultSlashSkills && popover?.type === \"/\");\n\n const allSlashCommands = useMemo(\n () =>\n mergeSlashCommands([\n ...(includeDefaultSlashCommands ? BUILT_IN_COMMANDS : []),\n ...slashCommands,\n ]),\n [includeDefaultSlashCommands, slashCommands],\n );\n\n const allSlashSkills = useMemo(\n () =>\n mergeSlashSkills([\n ...(includeDefaultSlashSkills ? skills : []),\n ...slashSkills,\n ]),\n [includeDefaultSlashSkills, skills, slashSkills],\n );\n\n const filteredCommands = useMemo(() => {\n if (!popover || popover.type !== \"/\") return allSlashCommands;\n const q = popover.query.toLowerCase();\n if (!q) return allSlashCommands;\n return allSlashCommands.filter(\n (c) =>\n c.name.toLowerCase().includes(q) ||\n c.description.toLowerCase().includes(q),\n );\n }, [allSlashCommands, popover]);\n\n const filteredSkills = useMemo(() => {\n if (!popover || popover.type !== \"/\") return allSlashSkills;\n const q = popover.query.toLowerCase();\n if (!q) return allSlashSkills;\n return allSlashSkills.filter(\n (s) =>\n s.name.toLowerCase().includes(q) ||\n s.description?.toLowerCase().includes(q),\n );\n }, [allSlashSkills, popover]);\n\n // Keep refs in sync with state\n const mentionItemsRef = useRef(filteredMentionItems);\n mentionItemsRef.current = filteredMentionItems;\n const filteredCommandsRef = useRef(filteredCommands);\n filteredCommandsRef.current = filteredCommands;\n const filteredSkillsRef = useRef(filteredSkills);\n filteredSkillsRef.current = filteredSkills;\n const onSlashCommandRef = useRef(onSlashCommand);\n onSlashCommandRef.current = onSlashCommand;\n const onTextChangeRef = useRef(onTextChange);\n onTextChangeRef.current = onTextChange;\n const initialTextKeyRef = useRef<string | number | undefined>(undefined);\n const seenReferenceInsertIdsRef = useRef<Set<string>>(new Set());\n\n const closePopover = useCallback(() => {\n setPopover(null);\n popoverStateRef.current = null;\n }, []);\n\n // Persist draft to localStorage so hot-reloads don't lose the prompt\n const draftKey = getComposerDraftKey(draftScope);\n const draftTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n useEffect(() => {\n return () => {\n clearTimeout(draftTimerRef.current);\n };\n }, []);\n // Tiptap reads extension config once at init; ref keeps runtime prop\n // changes visible to Placeholder's function form.\n const placeholderRef = useRef(placeholder);\n useEffect(() => {\n placeholderRef.current = composerMode\n ? COMPOSER_MODE_CONFIGS[composerMode].placeholder\n : placeholder;\n }, [placeholder, composerMode]);\n\n const editor = useEditor({\n extensions: createTiptapComposerExtensions(() => placeholderRef.current),\n editable: !disabled,\n onCreate: ({ editor: ed }) => {\n // Restore draft on mount\n try {\n if (initialText !== undefined) {\n ed.commands.setContent(plainTextToDoc(initialText));\n ed.commands.focus(\"end\");\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n initialTextKeyRef.current = initialTextKey ?? initialText;\n } else {\n const saved = localStorage.getItem(draftKey);\n if (saved) {\n ed.commands.setContent(saved);\n ed.commands.focus(\"end\");\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n }\n }\n onTextChangeRef.current?.(ed.state.doc.textContent.trim());\n } catch {}\n },\n onUpdate: ({ editor: ed }) => {\n // Drive the send button's enabled state from the actual editor contents;\n // the composer runtime is only synced on submit, so its isEmpty lags.\n setEditorHasText(composerDocumentHasContent(ed.state.doc));\n onTextChangeRef.current?.(ed.state.doc.textContent.trim());\n\n // Debounce-save draft to localStorage\n clearTimeout(draftTimerRef.current);\n draftTimerRef.current = setTimeout(() => {\n try {\n const html = ed.getHTML();\n const isEmpty = !composerDocumentHasContent(ed.state.doc);\n if (isEmpty) {\n localStorage.removeItem(draftKey);\n } else {\n localStorage.setItem(draftKey, html);\n }\n } catch {}\n }, 300);\n },\n editorProps: {\n attributes: {\n \"data-agent-composer-variant\": layoutVariant,\n \"data-agent-composer-slot\": \"editor-input\",\n class:\n \"agent-composer-prosemirror flex-1 resize-none bg-transparent text-sm text-foreground outline-none leading-[1.625rem] min-h-[3.25rem] max-h-[10rem] overflow-y-auto\",\n },\n handlePaste: (_view, event) => {\n const paste = readClipboardPaste(event.clipboardData);\n const pastedText = paste.text;\n const files = Array.from(event.clipboardData?.files ?? []).filter(\n (file) => file.type.startsWith(\"image/\"),\n );\n if (files.length > 0) {\n event.preventDefault();\n const attachments: File[] = files.map((file) => {\n // SimpleImageAttachmentAdapter uses file.name as the attachment id.\n // Clipboard images (e.g. screenshots) are typically all named\n // \"image.png\", so a second paste would replace the first instead of\n // appending. Prepend a unique token so each paste gets a distinct id.\n const uniqueName = `${Date.now()}-${Math.random().toString(36).slice(2)}-${file.name}`;\n return new File([file], uniqueName, { type: file.type });\n });\n\n // Google Docs rich clipboard payloads can contain both embedded\n // image files and the document text. Since handling files means we\n // prevent Tiptap's default paste, preserve any text as its own chip\n // instead of silently dropping the source material.\n if (pastedText.trim()) {\n attachments.push(createPastedAttachmentFile(paste));\n }\n\n void Promise.all(\n attachments.map((file) => composerRuntime.addAttachment(file)),\n ).catch((error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the pasted image. Try a different format.\";\n onAttachmentErrorRef.current?.(msg);\n });\n return true;\n }\n\n // Page-sized pastes turn into a `Pasted text` attachment chip so the\n // prompt stays readable while normal paragraphs and lists stay inline.\n // When the paste is HTML (e.g. an Alpine.js extension or a document the\n // user wants hosted), it's stored as a real .html attachment so it\n // travels the same rail as uploading that file — the agent reads it\n // verbatim via contentFromAttachment instead of retyping it inline,\n // which cuts off mid-stream on large files and triggers a spin.\n if (shouldConvertClipboardToAttachment(paste)) {\n event.preventDefault();\n void composerRuntime\n .addAttachment(createPastedAttachmentFile(paste))\n .catch((error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the pasted text.\";\n onAttachmentErrorRef.current?.(msg);\n });\n return true;\n }\n\n return false;\n },\n handleDrop: (_view, event) => {\n // Drag-and-drop files (decks, images, PDFs, etc.) into the composer.\n // Mark handled drops as consumed so the chat-wide drop target does not\n // add the same file a second time.\n return handleComposerFileDrop({\n event: event as DragEvent,\n addAttachment: (file) => composerRuntime.addAttachment(file),\n onError: (error) => {\n const msg =\n error instanceof Error\n ? error.message\n : \"Could not attach the dropped file. Try a different format.\";\n onAttachmentErrorRef.current?.(msg);\n },\n });\n },\n handleKeyDown: (view, event) => {\n const pop = popoverStateRef.current;\n\n // Handle popover keyboard nav\n if (pop) {\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n popoverRef.current?.moveUp();\n return true;\n }\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n popoverRef.current?.moveDown();\n return true;\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n const idx = popoverRef.current?.getSelectedIndex() ?? 0;\n const currentCommands = filteredCommandsRef.current;\n const currentSkills = filteredSkillsRef.current;\n if (pop.type === \"@\") {\n const item = popoverRef.current?.getSelectedMention();\n if (item) selectMention(view, pop, item);\n } else if (pop.type === \"/\") {\n const cmd = popoverRef.current?.getSelectedCommand();\n if (cmd) {\n executeCommand(view, pop, cmd);\n } else {\n const skillIdx = idx - currentCommands.length;\n if (currentSkills[skillIdx]) {\n selectSkill(view, pop, currentSkills[skillIdx]);\n }\n }\n }\n return true;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n popoverStateRef.current = null;\n setPopover(null);\n return true;\n }\n if (event.key === \" \" && pop.query === \"\") {\n popoverStateRef.current = null;\n setPopover(null);\n return false;\n }\n }\n\n // Backspace removes composer mode chip when editor is empty\n if (event.key === \"Backspace\" && composerModeRef.current) {\n const { from, to } = view.state.selection;\n if (\n view.state.doc.textContent.trim() === \"\" &&\n from === to &&\n from <= 1\n ) {\n setComposerMode(null);\n composerModeRef.current = null;\n return true;\n }\n }\n\n // Keyboard shortcut toggles Act/Plan mode from inside the editor.\n if (event.key === \"Tab\" && event.shiftKey) {\n event.preventDefault();\n const current = execModeRef.current;\n const cb = onExecModeChangeRef.current;\n if (current && cb) {\n const next = current === \"build\" ? \"plan\" : \"build\";\n if (next !== \"plan\" || !planModeDisabledRef.current) {\n cb(next);\n }\n }\n return true;\n }\n\n // Submit on Enter. Shift+Enter inserts a newline and keeps the\n // composer scrolled to the caret.\n // Cmd+Enter on macOS / Ctrl+Enter elsewhere marks the submit queued.\n if (event.key === \"Enter\" && event.shiftKey) {\n event.preventDefault();\n return insertComposerHardBreakAndScrollIntoView(view);\n }\n\n const submitIntent = getComposerSubmitIntentForEnterKey(event, isMac);\n if (submitIntent) {\n event.preventDefault();\n void submitComposer(submitIntent);\n return true;\n }\n\n // Detect @ trigger — only when preceded by start-of-text, space, or newline\n // (not after alphanumeric chars, which would indicate an email address)\n if (event.key === \"@\") {\n const { from } = view.state.selection;\n const textBefore = view.state.doc.textBetween(\n Math.max(0, from - 1),\n from,\n );\n if (from === 1 || textBefore === \"\" || /\\s/.test(textBefore)) {\n const coords = view.coordsAtPos(from);\n setTimeout(() => {\n const state: PopoverState = {\n type: \"@\",\n position: { top: coords.top, left: coords.left },\n startPos: view.state.selection.from,\n query: \"\",\n };\n popoverStateRef.current = state;\n setPopover(state);\n }, 0);\n }\n return false;\n }\n\n // Detect / trigger (only at start of line or after whitespace)\n if (event.key === \"/\") {\n const { from } = view.state.selection;\n const textBefore = view.state.doc.textBetween(\n Math.max(0, from - 1),\n from,\n );\n if (from === 1 || textBefore === \"\" || /\\s/.test(textBefore)) {\n const coords = view.coordsAtPos(from);\n setTimeout(() => {\n const state: PopoverState = {\n type: \"/\",\n position: { top: coords.top, left: coords.left },\n startPos: view.state.selection.from,\n query: \"\",\n };\n popoverStateRef.current = state;\n setPopover(state);\n }, 0);\n }\n return false;\n }\n\n return false;\n },\n },\n });\n\n const insertReference = useCallback(\n (ref: AgentComposerReference) => {\n const normalized = normalizeAgentComposerReference(ref);\n const ed = editor;\n if (!normalized || !ed) return;\n if (normalized.slotKey) {\n setSlotReferences((current) =>\n applySlotReferenceChanges(current, [normalized]),\n );\n ed.commands.focus(\"end\");\n return;\n }\n if (normalized.relatedReferences?.some((item) => item.slotKey)) {\n setSlotReferences((current) =>\n applySlotReferenceChanges(\n current,\n normalized.relatedReferences ?? [],\n ),\n );\n }\n ed.chain()\n .focus()\n .insertContent({\n type: \"mentionReference\",\n attrs: mentionReferenceAttrs(normalized),\n })\n .insertContent(\" \")\n .run();\n setEditorHasText(true);\n },\n [editor],\n );\n\n const insertReferenceIfEmpty = useCallback(\n (payload: AgentComposerReferenceInsertPayload) => {\n const insertMessageId =\n typeof payload.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\";\n if (insertMessageId) {\n if (seenReferenceInsertIdsRef.current.has(insertMessageId)) return;\n seenReferenceInsertIdsRef.current.add(insertMessageId);\n }\n const ed = editor;\n if (!ed || disabled || composerModeRef.current) return;\n const normalized = normalizeAgentComposerReference(payload);\n if (normalized?.slotKey) {\n insertReference(normalized);\n return;\n }\n if (composerAttachments.length > 0) return;\n if (composerDocumentHasContent(ed.state.doc)) return;\n insertReference(payload);\n },\n [composerAttachments.length, disabled, editor, insertReference],\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const handleEvent = (event: Event) => {\n const payload = (event as CustomEvent).detail;\n const normalized = normalizeAgentComposerReference(payload);\n if (!normalized) return;\n insertReferenceIfEmpty({\n ...normalized,\n insertMessageId:\n typeof payload?.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\",\n });\n };\n const handleMessage = (event: MessageEvent) => {\n if (!isTrustedFrameMessage(event) && !isTrustedBuilderMessage(event)) {\n return;\n }\n if (event.data?.type !== AGENT_CHAT_INSERT_REFERENCE_MESSAGE_TYPE) {\n return;\n }\n const payload = event.data.data;\n const normalized = normalizeAgentComposerReference(payload);\n if (!normalized) return;\n insertReferenceIfEmpty({\n ...normalized,\n insertMessageId:\n typeof payload?.insertMessageId === \"string\"\n ? payload.insertMessageId\n : \"\",\n });\n };\n window.addEventListener(AGENT_CHAT_INSERT_REFERENCE_EVENT, handleEvent);\n window.addEventListener(\"message\", handleMessage);\n return () => {\n window.removeEventListener(\n AGENT_CHAT_INSERT_REFERENCE_EVENT,\n handleEvent,\n );\n window.removeEventListener(\"message\", handleMessage);\n };\n }, [insertReferenceIfEmpty]);\n\n useImperativeHandle(focusRef, () => ({\n focus() {\n editor?.commands.focus(\"end\");\n },\n setText(text: string) {\n if (!editor) return;\n editor.commands.setContent(plainTextToDoc(text));\n editor.commands.focus(\"end\");\n const trimmed = editor.state.doc.textContent.trim();\n setEditorHasText(trimmed.length > 0);\n setSlotReferences([]);\n composerRuntime.setText(trimmed);\n onTextChangeRef.current?.(trimmed);\n try {\n if (trimmed) {\n localStorage.setItem(draftKey, editor.getHTML());\n } else {\n localStorage.removeItem(draftKey);\n }\n } catch {}\n },\n insertReference,\n }));\n\n const handleSelectMode = useCallback(\n (mode: ComposerMode) => {\n setComposerMode(mode);\n composerModeRef.current = mode;\n setTimeout(() => editor?.commands.focus(\"end\"), 50);\n },\n [editor],\n );\n\n // --- Live voice transcription: text appears in the editor as the user speaks ---\n const voiceAnchorRef = useRef<number | null>(null);\n const prevVoiceInsertRef = useRef(\"\");\n\n const handleLiveUpdate = useCallback(\n (finalText: string, interimText: string) => {\n const ed = editor;\n if (!ed) return;\n\n if (voiceAnchorRef.current == null) {\n const { from } = ed.state.selection;\n const prevChar =\n from > 1 ? ed.state.doc.textBetween(from - 1, from) : \"\";\n if (prevChar && !/\\s/.test(prevChar)) {\n ed.chain().insertContent(\" \").run();\n }\n voiceAnchorRef.current = ed.state.selection.from;\n prevVoiceInsertRef.current = \"\";\n }\n\n const anchor = voiceAnchorRef.current;\n const prevLen = prevVoiceInsertRef.current.length;\n const newText = finalText + interimText;\n\n if (newText === prevVoiceInsertRef.current) return;\n\n ed.chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .insertContentAt(anchor, newText)\n .run();\n\n prevVoiceInsertRef.current = newText;\n },\n [editor],\n );\n\n const insertTranscript = useCallback(\n (text: string) => {\n const ed = editor;\n if (!ed) return;\n\n const anchor = voiceAnchorRef.current;\n if (anchor != null) {\n const prevLen = prevVoiceInsertRef.current.length;\n if (text) {\n ed.chain()\n .focus()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .insertContentAt(anchor, text + \" \")\n .run();\n } else if (prevLen > 0) {\n ed.chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .run();\n }\n voiceAnchorRef.current = null;\n prevVoiceInsertRef.current = \"\";\n } else if (text) {\n const { from } = ed.state.selection;\n const prevChar =\n from > 1 ? ed.state.doc.textBetween(from - 1, from) : \"\";\n const needsLead = prevChar && !/\\s/.test(prevChar);\n ed.chain()\n .focus()\n .insertContent((needsLead ? \" \" : \"\") + text + \" \")\n .run();\n }\n },\n [editor],\n );\n\n const buildVoiceContextPack = useCallback(():\n | VoiceContextPack\n | undefined => {\n const snippets: Array<{ label: string; value: string }> = [];\n\n const activeContext = trimVoiceContextValue(\n formatAgentChatContextItemsForPrompt(contextItems),\n 3200,\n );\n if (activeContext) {\n snippets.push({ label: \"Active app context\", value: activeContext });\n }\n\n const selectedReferences = trimVoiceContextValue(\n slotReferences.map((ref) => slotReferenceTitle(ref)).join(\", \"),\n 1200,\n );\n if (selectedReferences) {\n snippets.push({\n label: \"Selected references\",\n value: selectedReferences,\n });\n }\n\n const draft = editor\n ? trimVoiceContextValue(editor.state.doc.textContent, 1200)\n : null;\n if (draft) snippets.push({ label: \"Current draft\", value: draft });\n\n if (typeof document !== \"undefined\") {\n const title = trimVoiceContextValue(document.title, 160);\n if (title) snippets.push({ label: \"Page title\", value: title });\n }\n\n if (typeof window !== \"undefined\") {\n const route = trimVoiceContextValue(window.location.pathname, 240);\n if (route) snippets.push({ label: \"Route\", value: route });\n }\n\n if (snippets.length === 0) return undefined;\n return {\n surface: \"agent-composer\",\n mode: \"dictation\",\n snippets,\n };\n }, [contextItems, editor, slotReferences]);\n\n const voice = useVoiceDictation({\n onTranscript: insertTranscript,\n onLiveUpdate: handleLiveUpdate,\n contextPack: buildVoiceContextPack,\n });\n\n // Clean up live text if voice session ends without a final transcript (cancel/error)\n useEffect(() => {\n if (voice.state === \"idle\" && voiceAnchorRef.current != null) {\n const anchor = voiceAnchorRef.current;\n const prevLen = prevVoiceInsertRef.current.length;\n if (editor && prevLen > 0) {\n editor\n .chain()\n .deleteRange({ from: anchor, to: anchor + prevLen })\n .run();\n }\n voiceAnchorRef.current = null;\n prevVoiceInsertRef.current = \"\";\n }\n }, [voice.state, editor]);\n\n // Global shortcut: Cmd/Ctrl + Shift + M toggles dictation. Escape cancels\n // while recording. Scoped to avoid firing when focus is outside the app.\n useEffect(() => {\n if (!voiceEnabled || !voice.supported) return;\n const handler = (e: KeyboardEvent) => {\n // e.key can be undefined on some trusted keydown events (autofill/IME\n // quirks) — seen crashing in production (AGENT-NATIVE-BROWSER-S).\n const isToggleCombo =\n typeof e.key === \"string\" &&\n e.key.toLowerCase() === \"m\" &&\n e.shiftKey &&\n (e.metaKey || e.ctrlKey) &&\n !e.altKey;\n if (isToggleCombo) {\n e.preventDefault();\n if (voice.state === \"recording\" || voice.state === \"starting\") {\n voice.stop();\n } else if (voice.state !== \"transcribing\") {\n void voice.start();\n }\n return;\n }\n if (\n e.key === \"Escape\" &&\n (voice.state === \"recording\" || voice.state === \"starting\")\n ) {\n e.preventDefault();\n voice.cancel();\n }\n };\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [voiceEnabled, voice]);\n\n const extractComposerPayload = useCallback(() => {\n const ed = editor;\n if (!ed) {\n return {\n text: slotReferences.map((ref) => slotReferenceTitle(ref)).join(\", \"),\n references: slotReferences.map(referenceFromComposerReference),\n };\n }\n\n const references: Reference[] = slotReferences.map(\n referenceFromComposerReference,\n );\n\n // Build text that preserves @mentions (getText() strips them).\n // Walk the document and reconstruct with @name for mention/file/skill nodes.\n const textParts: string[] = [];\n ed.state.doc.descendants((node: any) => {\n if (node.isText) {\n textParts.push(node.text);\n } else if (node.type.name === \"mentionReference\") {\n textParts.push(`@[${node.attrs.label}|${node.attrs.icon || \"file\"}]`);\n } else if (node.type.name === \"fileReference\") {\n const label = node.attrs.path?.split(\"/\").pop() || node.attrs.path;\n textParts.push(`@[${label}|file]`);\n } else if (node.type.name === \"skillReference\") {\n textParts.push(`/${node.attrs.name}`);\n } else if (node.type.name === \"hardBreak\") {\n textParts.push(\"\\n\");\n } else if (\n node.type.name === \"paragraph\" &&\n textParts.length > 0 &&\n textParts[textParts.length - 1] !== \"\\n\"\n ) {\n textParts.push(\"\\n\");\n }\n });\n const rawText = textParts.join(\"\").trim();\n const text =\n rawText ||\n slotReferences.map((ref) => slotReferenceTitle(ref)).join(\", \");\n\n ed.state.doc.descendants((node: any) => {\n if (node.type.name === \"fileReference\") {\n // Legacy support\n references.push({\n type: \"file\",\n path: node.attrs.path,\n name: node.attrs.path?.split(\"/\").pop() || node.attrs.path,\n source: node.attrs.source || \"codebase\",\n });\n } else if (node.type.name === \"mentionReference\") {\n const refType = node.attrs.refType;\n references.push({\n type:\n refType === \"file\"\n ? \"file\"\n : refType === \"agent\"\n ? \"agent\"\n : refType === \"custom-agent\"\n ? \"custom-agent\"\n : \"mention\",\n path: node.attrs.refPath || \"\",\n name: node.attrs.label,\n source: node.attrs.source,\n refType: node.attrs.refType,\n refId: node.attrs.refId,\n slotKey: node.attrs.slotKey,\n slotLabel: node.attrs.slotLabel,\n metadata: node.attrs.metadata,\n });\n } else if (node.type.name === \"skillReference\") {\n references.push({\n type: \"skill\",\n path: node.attrs.path,\n name: node.attrs.name,\n source: node.attrs.source || \"codebase\",\n });\n }\n });\n\n return { text, references };\n }, [editor, slotReferences]);\n\n const syncComposerState = useCallback(() => {\n const { text, references } = extractComposerPayload();\n const requestMode =\n execMode === \"plan\" ? \"plan\" : execMode === \"build\" ? \"act\" : undefined;\n const custom: {\n references?: Reference[];\n requestMode?: \"act\" | \"plan\";\n } = {};\n if (references.length > 0) {\n custom.references = references;\n }\n if (requestMode) {\n custom.requestMode = requestMode;\n }\n composerRuntime.setText(text);\n composerRuntime.setRunConfig(\n Object.keys(custom).length > 0 ? { custom } : {},\n );\n return { text, references };\n }, [composerRuntime, execMode, extractComposerPayload]);\n\n const submitComposer = useCallback(\n async (intent: ComposerSubmitIntent = \"immediate\") => {\n const ed = editor;\n if (!ed) return;\n if (submitInFlightRef.current) return;\n\n const { text, references } = syncComposerState();\n const attachments = composerRuntime.getState().attachments;\n if (!text.trim() && references.length === 0 && attachments.length === 0)\n return;\n const oversizedDocumentError =\n getOversizedDocumentAttachmentError(attachments);\n if (oversizedDocumentError) {\n onAttachmentErrorRef.current?.(oversizedDocumentError);\n return;\n }\n const cancelActiveVoice = () => {\n if (\n voice.state === \"recording\" ||\n voice.state === \"starting\" ||\n voice.state === \"transcribing\"\n ) {\n voice.cancel();\n }\n };\n\n // Intercept slash commands typed directly (e.g. \"/clear\" + Enter)\n const trimmed = text.trim();\n if (trimmed.startsWith(\"/\") && references.length === 0) {\n const cmdName = normalizeSlashCommandName(trimmed);\n const matched = allSlashCommands.find((c) => c.name === cmdName);\n if (matched) {\n ed.commands.clearContent();\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n onSlashCommandRef.current?.(matched.name);\n return;\n }\n }\n\n // Builder iframe delegation: when this app is mounted inside the\n // Builder.io webview and the user typed a \"build me an app/agent\"\n // prompt, hand it up to the parent Builder chat instead of sending\n // it to this app's domain agent. Builder is the code-writing agent;\n // the local agent (dispatch, mail, etc.) cannot scaffold workspace\n // apps from inside its own iframe.\n if (\n !composerMode &&\n interceptBuildRequestsForBuilder &&\n tryDelegateBuildRequestToBuilder(trimmed)\n ) {\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n return;\n }\n\n if (onBeforeSubmit) {\n submitInFlightRef.current = true;\n try {\n const shouldSubmit = await onBeforeSubmit();\n if (!shouldSubmit) return;\n } finally {\n submitInFlightRef.current = false;\n }\n }\n\n // Composer mode: send with context via agent chat bridge\n if (composerMode) {\n const config = COMPOSER_MODE_CONFIGS[composerMode];\n config.beforeSend?.();\n const message = displayableComposerModeMessage({\n messagePrefix: config.messagePrefix,\n trimmedText: trimmed,\n attachmentCount: attachments.length,\n });\n const modePrompt =\n trimmed ||\n (attachments.length > 0 ? \"Use the attached context.\" : \"\");\n if (attachments.length > 0) {\n composerRuntime.setText(\n `${message}\\n\\n<context>\\n${config.getContext(modePrompt)}\\n</context>`,\n );\n composerRuntime.send();\n } else {\n sendToAgentChat({\n message,\n context: config.getContext(modePrompt),\n mode:\n execMode === \"plan\"\n ? \"plan\"\n : execMode === \"build\"\n ? \"act\"\n : undefined,\n submit: true,\n });\n }\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n setComposerMode(null);\n composerModeRef.current = null;\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n return;\n }\n\n if (onSubmit) {\n onSubmit(text, references, attachments, { intent });\n // Clear any pending attachments now that the host has them.\n void composerRuntime.clearAttachments().catch(() => {});\n if (!clearOnSubmit) {\n closePopover();\n return;\n }\n } else {\n composerRuntime.send();\n }\n cancelActiveVoice();\n ed.commands.clearContent();\n setEditorHasText(false);\n setSlotReferences([]);\n try {\n localStorage.removeItem(draftKey);\n } catch {}\n closePopover();\n },\n [\n closePopover,\n composerMode,\n composerRuntime,\n draftKey,\n editor,\n interceptBuildRequestsForBuilder,\n clearOnSubmit,\n onBeforeSubmit,\n onSubmit,\n syncComposerState,\n voice,\n allSlashCommands,\n ],\n );\n\n // Helper functions that operate on the editor view directly\n // These are called from handleKeyDown which can't use React state\n function selectMention(\n _view: any,\n pop: NonNullable<PopoverState>,\n item: MentionItem,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n // startPos is after the trigger char, so -1 to include the @ or /\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain().focus().deleteRange({ from: deleteFrom, to: currentPos }).run();\n insertReference(composerReferenceFromMentionItem(item));\n popoverStateRef.current = null;\n setPopover(null);\n }\n\n function executeCommand(\n _view: any,\n pop: NonNullable<PopoverState>,\n command: SlashCommand,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain().focus().deleteRange({ from: deleteFrom, to: currentPos }).run();\n popoverStateRef.current = null;\n setPopover(null);\n onSlashCommandRef.current?.(command.name);\n }\n\n function selectSkill(\n _view: any,\n pop: NonNullable<PopoverState>,\n skill: SkillResult,\n ) {\n const ed = editor;\n if (!ed) return;\n const currentPos = ed.state.selection.from;\n const deleteFrom = Math.max(0, pop.startPos - 1);\n ed.chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .insertContent({\n type: \"skillReference\",\n attrs: { name: skill.name, path: skill.path, source: skill.source },\n })\n .insertContent(\" \")\n .run();\n popoverStateRef.current = null;\n setPopover(null);\n }\n\n // Popover select handlers for click-based selection (from MentionPopover)\n const handleSelectMention = useCallback(\n (item: MentionItem) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .run();\n insertReference(composerReferenceFromMentionItem(item));\n closePopover();\n },\n [editor, popover, closePopover, insertReference],\n );\n\n const handleSelectCommand = useCallback(\n (command: SlashCommand) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .run();\n closePopover();\n onSlashCommand?.(command.name);\n },\n [editor, popover, closePopover, onSlashCommand],\n );\n\n const handleSelectSkill = useCallback(\n (skill: SkillResult) => {\n if (!editor || !popover) return;\n const currentPos = editor.state.selection.from;\n const deleteFrom = Math.max(0, popover.startPos - 1);\n editor\n .chain()\n .focus()\n .deleteRange({ from: deleteFrom, to: currentPos })\n .insertContent({\n type: \"skillReference\",\n attrs: { name: skill.name, path: skill.path, source: skill.source },\n })\n .insertContent(\" \")\n .run();\n closePopover();\n },\n [editor, popover, closePopover],\n );\n\n // Track query text as user types after trigger\n useEffect(() => {\n if (!editor || !popover) return;\n\n const updateHandler = () => {\n syncComposerState();\n\n const pop = popoverStateRef.current;\n if (!pop) return;\n const { from } = editor.state.selection;\n const { startPos, type } = pop;\n\n if (from < startPos) {\n closePopover();\n return;\n }\n\n const text = editor.state.doc.textBetween(startPos, from);\n\n // Verify the trigger character is still there\n if (startPos > 0) {\n const triggerChar = editor.state.doc.textBetween(\n startPos - 1,\n startPos,\n );\n if (\n (type === \"@\" && triggerChar !== \"@\") ||\n (type === \"/\" && triggerChar !== \"/\")\n ) {\n closePopover();\n return;\n }\n }\n\n const updated = { ...pop, query: text };\n popoverStateRef.current = updated;\n setPopover(updated);\n };\n\n editor.on(\"update\", updateHandler);\n editor.on(\"selectionUpdate\", updateHandler);\n return () => {\n editor.off(\"update\", updateHandler);\n editor.off(\"selectionUpdate\", updateHandler);\n };\n }, [editor, popover, closePopover, syncComposerState]);\n\n useEffect(() => {\n if (!editor) return;\n if (composerText !== \"\") return;\n if (editor.isEmpty) return;\n editor.commands.clearContent();\n }, [composerText, editor]);\n\n useEffect(() => {\n if (!editor || initialText === undefined) return;\n const key = initialTextKey ?? initialText;\n if (initialTextKeyRef.current === key) return;\n initialTextKeyRef.current = key;\n editor.commands.setContent(plainTextToDoc(initialText));\n editor.commands.focus(\"end\");\n const trimmed = editor.state.doc.textContent.trim();\n setEditorHasText(trimmed.length > 0);\n composerRuntime.setText(trimmed);\n onTextChangeRef.current?.(trimmed);\n try {\n if (trimmed) {\n localStorage.setItem(draftKey, editor.getHTML());\n } else {\n localStorage.removeItem(draftKey);\n }\n } catch {}\n }, [composerRuntime, draftKey, editor, initialText, initialTextKey]);\n\n // Tiptap only reads `editable` at init; prop changes need setEditable.\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(!disabled);\n if (disabled) editor.commands.blur();\n }, [editor, disabled]);\n\n return (\n <>\n <style>{`\n .aui-composer .ProseMirror p.is-editor-empty:first-child::before {\n content: attr(data-placeholder);\n color: var(--color-muted-foreground);\n opacity: 0.5;\n float: left;\n height: 0;\n pointer-events: none;\n }\n `}</style>\n {composerMode && (\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"mode-row\"\n className=\"agent-composer-mode-row px-2.5 pt-2 pb-0\"\n >\n <ComposerModeChip\n mode={composerMode}\n onRemove={() => {\n setComposerMode(null);\n composerModeRef.current = null;\n editor?.commands.focus(\"end\");\n }}\n />\n </div>\n )}\n {hasContextRows && (\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"context-row\"\n className=\"agent-composer-context-row flex flex-wrap gap-1.5 px-2.5 pt-2 pb-0\"\n >\n {slotReferences.map((ref) => (\n <span\n key={ref.slotKey}\n className=\"inline-flex max-w-full items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1 text-[11px] font-medium text-foreground shadow-sm\"\n >\n <IconClipboardList className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n {ref.slotLabel && (\n <span className=\"shrink-0 text-muted-foreground\">\n {ref.slotLabel}\n </span>\n )}\n <span className=\"min-w-0 truncate\">{ref.label}</span>\n <button\n type=\"button\"\n onClick={() => {\n setSlotReferences((current) =>\n removeSlotReference(current, ref),\n );\n editor?.commands.focus(\"end\");\n }}\n aria-label={`Remove ${slotReferenceTitle(ref)} reference`}\n className=\"ms-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n {contextItems.map((item) => (\n <span\n key={item.key}\n className=\"inline-flex max-w-full items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] font-medium text-foreground\"\n >\n <IconClipboardList className=\"h-3 w-3 shrink-0 text-muted-foreground\" />\n <span className=\"min-w-0 truncate\">{item.title}</span>\n <button\n type=\"button\"\n onClick={() => onRemoveContextItem?.(item.key)}\n aria-label={`Remove ${item.title} context`}\n className=\"ms-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground\"\n >\n <IconX className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n </div>\n )}\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"editor-wrap\"\n className={`agent-composer-editor-wrap ${\n composerMode || hasContextRows ? \"px-2 pt-1 pb-1\" : \"px-2 pt-2 pb-1\"\n }`}\n >\n <EditorContent\n editor={editor}\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"editor\"\n className=\"agent-composer-editor aui-composer flex-1 min-w-0 [&_.ProseMirror]:outline-none [&_.ProseMirror_p]:m-0 px-0.5\"\n />\n </div>\n {voiceEnabled && <VoiceRecordingOverlay voice={voice} />}\n <div\n data-agent-composer-variant={layoutVariant}\n data-agent-composer-slot=\"toolbar\"\n className=\"agent-composer-toolbar flex items-center gap-1 px-2 py-1.5\"\n >\n {attachButton ??\n (plusMenuMode === \"hidden\" ? null : (\n <ComposerPlusMenu\n onSelectMode={handleSelectMode}\n mode={plusMenuMode}\n onAttachmentError={onAttachmentError}\n />\n ))}\n {toolbarSlot ?? modeControl}\n <div data-agent-composer-slot=\"toolbar-spacer\" className=\"flex-1\" />\n {selectedModel && availableModels && onModelChange && (\n <ModelSelector\n model={selectedModel}\n effort={selectedEffort}\n engines={availableModels}\n onChange={onModelChange}\n onEffortChange={onEffortChange}\n providerConnectStatusEnabled={providerConnectStatusEnabled}\n onConnectProvider={onConnectProvider}\n imageModel={imageModelMenu}\n />\n )}\n {execMode && onExecModeChange && (\n <ModeSelector\n mode={execMode}\n onChange={onExecModeChange}\n planModeDisabled={planModeDisabled}\n planModeDisabledReason={planModeDisabledReason}\n />\n )}\n {actionButton ?? (\n <>\n {extraActionButton}\n {voiceEnabled && (\n <VoiceButton voice={voice} isMac={isMac} disabled={disabled} />\n )}\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => void submitComposer(\"immediate\")}\n disabled={!canSend}\n data-agent-composer-slot=\"send-button\"\n className=\"agent-composer-send-button shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-primary text-primary-foreground hover:opacity-90 disabled:opacity-30 disabled:cursor-not-allowed\"\n >\n <IconArrowUp className=\"h-3.5 w-3.5\" />\n </button>\n </TooltipTrigger>\n <TooltipContent>Send message</TooltipContent>\n </Tooltip>\n </>\n )}\n </div>\n <MentionPopover\n ref={popoverRef}\n type={popover?.type ?? \"@\"}\n position={popover?.position ?? null}\n mentionItems={filteredMentionItems}\n skills={filteredSkills}\n commands={filteredCommands}\n hint={hint}\n isLoading={popover?.type === \"@\" ? mentionsLoading : skillsLoading}\n query={popover?.query ?? \"\"}\n onSelectMention={handleSelectMention}\n onSelectSkill={handleSelectSkill}\n onSelectCommand={handleSelectCommand}\n onClose={closePopover}\n />\n </>\n );\n}\n"]}
|