@agent-native/core 0.79.25 → 0.79.27

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.
Files changed (2048) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +25 -0
  3. package/corpus/core/docs/content/a2a-protocol.mdx +97 -9
  4. package/corpus/core/docs/content/actions.mdx +65 -4
  5. package/corpus/core/docs/content/agent-mentions.mdx +68 -4
  6. package/corpus/core/docs/content/agent-surfaces.mdx +112 -8
  7. package/corpus/core/docs/content/agent-teams.mdx +171 -12
  8. package/corpus/core/docs/content/agent-web-surfaces.mdx +51 -4
  9. package/corpus/core/docs/content/authentication.mdx +122 -8
  10. package/corpus/core/docs/content/automations.mdx +110 -8
  11. package/corpus/core/docs/content/blueprint-installer.mdx +42 -4
  12. package/corpus/core/docs/content/cli-adapters.mdx +44 -4
  13. package/corpus/core/docs/content/client.mdx +79 -8
  14. package/corpus/core/docs/content/cloneable-saas.mdx +85 -8
  15. package/corpus/core/docs/content/code-agents-ui.mdx +98 -8
  16. package/corpus/core/docs/content/components.mdx +118 -8
  17. package/corpus/core/docs/content/context-awareness.mdx +98 -8
  18. package/corpus/core/docs/content/creating-templates.mdx +49 -4
  19. package/corpus/core/docs/content/cross-app-sso.mdx +109 -8
  20. package/corpus/core/docs/content/database.mdx +56 -4
  21. package/corpus/core/docs/content/deployment.mdx +103 -8
  22. package/corpus/core/docs/content/dispatch.mdx +134 -8
  23. package/corpus/core/docs/content/drop-in-agent.mdx +63 -4
  24. package/corpus/core/docs/content/durable-background-runs.mdx +98 -8
  25. package/corpus/core/docs/content/durable-resume.mdx +47 -4
  26. package/corpus/core/docs/content/embedding-sdk.mdx +83 -8
  27. package/corpus/core/docs/content/evals.mdx +102 -8
  28. package/corpus/core/docs/content/extensions.mdx +113 -9
  29. package/corpus/core/docs/content/external-agents.mdx +119 -8
  30. package/corpus/core/docs/content/faq.mdx +98 -8
  31. package/corpus/core/docs/content/file-uploads.mdx +61 -4
  32. package/corpus/core/docs/content/frames.mdx +90 -8
  33. package/corpus/core/docs/content/generative-ui.mdx +50 -4
  34. package/corpus/core/docs/content/getting-started.mdx +34 -4
  35. package/corpus/core/docs/content/harness-agents.mdx +77 -8
  36. package/corpus/core/docs/content/human-approval.mdx +50 -4
  37. package/corpus/core/docs/content/key-concepts.mdx +102 -8
  38. package/corpus/core/docs/content/local-file-mode.mdx +58 -4
  39. package/corpus/core/docs/content/locales/ar-SA/a2a-protocol.mdx +97 -9
  40. package/corpus/core/docs/content/locales/ar-SA/actions.mdx +65 -4
  41. package/corpus/core/docs/content/locales/ar-SA/agent-mentions.mdx +68 -4
  42. package/corpus/core/docs/content/locales/ar-SA/agent-surfaces.mdx +114 -8
  43. package/corpus/core/docs/content/locales/ar-SA/agent-teams.mdx +174 -12
  44. package/corpus/core/docs/content/locales/ar-SA/agent-web-surfaces.mdx +49 -4
  45. package/corpus/core/docs/content/locales/ar-SA/authentication.mdx +120 -8
  46. package/corpus/core/docs/content/locales/ar-SA/automations.mdx +110 -8
  47. package/corpus/core/docs/content/locales/ar-SA/blueprint-installer.mdx +42 -4
  48. package/corpus/core/docs/content/locales/ar-SA/cli-adapters.mdx +40 -4
  49. package/corpus/core/docs/content/locales/ar-SA/client.mdx +80 -8
  50. package/corpus/core/docs/content/locales/ar-SA/cloneable-saas.mdx +85 -8
  51. package/corpus/core/docs/content/locales/ar-SA/code-agents-ui.mdx +99 -8
  52. package/corpus/core/docs/content/locales/ar-SA/components.mdx +114 -8
  53. package/corpus/core/docs/content/locales/ar-SA/context-awareness.mdx +100 -8
  54. package/corpus/core/docs/content/locales/ar-SA/creating-templates.mdx +51 -4
  55. package/corpus/core/docs/content/locales/ar-SA/cross-app-sso.mdx +109 -8
  56. package/corpus/core/docs/content/locales/ar-SA/database.mdx +52 -4
  57. package/corpus/core/docs/content/locales/ar-SA/deployment.mdx +103 -8
  58. package/corpus/core/docs/content/locales/ar-SA/dispatch.mdx +134 -8
  59. package/corpus/core/docs/content/locales/ar-SA/drop-in-agent.mdx +63 -4
  60. package/corpus/core/docs/content/locales/ar-SA/durable-resume.mdx +47 -4
  61. package/corpus/core/docs/content/locales/ar-SA/embedding-sdk.mdx +83 -8
  62. package/corpus/core/docs/content/locales/ar-SA/evals.mdx +102 -8
  63. package/corpus/core/docs/content/locales/ar-SA/extensions.mdx +113 -9
  64. package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +119 -8
  65. package/corpus/core/docs/content/locales/ar-SA/faq.mdx +98 -8
  66. package/corpus/core/docs/content/locales/ar-SA/file-uploads.mdx +61 -4
  67. package/corpus/core/docs/content/locales/ar-SA/frames.mdx +88 -8
  68. package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +34 -4
  69. package/corpus/core/docs/content/locales/ar-SA/harness-agents.mdx +79 -8
  70. package/corpus/core/docs/content/locales/ar-SA/human-approval.mdx +50 -4
  71. package/corpus/core/docs/content/locales/ar-SA/key-concepts.mdx +107 -8
  72. package/corpus/core/docs/content/locales/ar-SA/local-file-mode.mdx +56 -4
  73. package/corpus/core/docs/content/locales/ar-SA/mcp-apps.mdx +120 -10
  74. package/corpus/core/docs/content/locales/ar-SA/mcp-clients.mdx +133 -8
  75. package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +105 -8
  76. package/corpus/core/docs/content/locales/ar-SA/messaging.mdx +115 -8
  77. package/corpus/core/docs/content/locales/ar-SA/migration-workbench.mdx +47 -4
  78. package/corpus/core/docs/content/locales/ar-SA/multi-app-workspace.mdx +91 -8
  79. package/corpus/core/docs/content/locales/ar-SA/multi-tenancy.mdx +80 -8
  80. package/corpus/core/docs/content/locales/ar-SA/native-chat-ui.mdx +104 -8
  81. package/corpus/core/docs/content/locales/ar-SA/notifications.mdx +135 -8
  82. package/corpus/core/docs/content/locales/ar-SA/observability.mdx +102 -8
  83. package/corpus/core/docs/content/locales/ar-SA/observational-memory.mdx +87 -8
  84. package/corpus/core/docs/content/locales/ar-SA/onboarding.mdx +45 -4
  85. package/corpus/core/docs/content/locales/ar-SA/plan-plugin.mdx +99 -8
  86. package/corpus/core/docs/content/locales/ar-SA/pr-visual-recap.mdx +125 -8
  87. package/corpus/core/docs/content/locales/ar-SA/processors.mdx +41 -4
  88. package/corpus/core/docs/content/locales/ar-SA/progress.mdx +46 -4
  89. package/corpus/core/docs/content/locales/ar-SA/pure-agent-apps.mdx +48 -4
  90. package/corpus/core/docs/content/locales/ar-SA/real-time-collaboration.mdx +102 -8
  91. package/corpus/core/docs/content/locales/ar-SA/recurring-jobs.mdx +59 -4
  92. package/corpus/core/docs/content/locales/ar-SA/routing.mdx +44 -5
  93. package/corpus/core/docs/content/locales/ar-SA/sandbox-adapters.mdx +43 -4
  94. package/corpus/core/docs/content/locales/ar-SA/security.mdx +80 -8
  95. package/corpus/core/docs/content/locales/ar-SA/server.mdx +173 -12
  96. package/corpus/core/docs/content/locales/ar-SA/sharing.mdx +45 -4
  97. package/corpus/core/docs/content/locales/ar-SA/skills-guide.mdx +118 -9
  98. package/corpus/core/docs/content/locales/ar-SA/template-analytics.mdx +46 -4
  99. package/corpus/core/docs/content/locales/ar-SA/template-assets.mdx +62 -4
  100. package/corpus/core/docs/content/locales/ar-SA/template-brain.mdx +65 -4
  101. package/corpus/core/docs/content/locales/ar-SA/template-calendar.mdx +62 -4
  102. package/corpus/core/docs/content/locales/ar-SA/template-chat.mdx +61 -4
  103. package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +52 -4
  104. package/corpus/core/docs/content/locales/ar-SA/template-content.mdx +62 -4
  105. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +60 -4
  106. package/corpus/core/docs/content/locales/ar-SA/template-dispatch.mdx +57 -4
  107. package/corpus/core/docs/content/locales/ar-SA/template-forms.mdx +62 -4
  108. package/corpus/core/docs/content/locales/ar-SA/template-mail.mdx +60 -4
  109. package/corpus/core/docs/content/locales/ar-SA/template-plan.mdx +61 -4
  110. package/corpus/core/docs/content/locales/ar-SA/template-slides.mdx +49 -4
  111. package/corpus/core/docs/content/locales/ar-SA/template-videos.mdx +53 -4
  112. package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +54 -4
  113. package/corpus/core/docs/content/locales/ar-SA/using-your-agent.mdx +51 -4
  114. package/corpus/core/docs/content/locales/ar-SA/voice-input.mdx +43 -4
  115. package/corpus/core/docs/content/locales/ar-SA/what-is-agent-native.mdx +96 -8
  116. package/corpus/core/docs/content/locales/ar-SA/workspace-connections.mdx +128 -8
  117. package/corpus/core/docs/content/locales/ar-SA/workspace-management.mdx +50 -4
  118. package/corpus/core/docs/content/locales/ar-SA/workspace.mdx +112 -8
  119. package/corpus/core/docs/content/locales/ar-SA/writing-agent-instructions.mdx +41 -4
  120. package/corpus/core/docs/content/locales/de-DE/a2a-protocol.mdx +99 -9
  121. package/corpus/core/docs/content/locales/de-DE/actions.mdx +67 -4
  122. package/corpus/core/docs/content/locales/de-DE/agent-mentions.mdx +68 -4
  123. package/corpus/core/docs/content/locales/de-DE/agent-surfaces.mdx +116 -8
  124. package/corpus/core/docs/content/locales/de-DE/agent-teams.mdx +171 -12
  125. package/corpus/core/docs/content/locales/de-DE/agent-web-surfaces.mdx +51 -4
  126. package/corpus/core/docs/content/locales/de-DE/authentication.mdx +122 -8
  127. package/corpus/core/docs/content/locales/de-DE/automations.mdx +110 -8
  128. package/corpus/core/docs/content/locales/de-DE/blueprint-installer.mdx +42 -4
  129. package/corpus/core/docs/content/locales/de-DE/cli-adapters.mdx +44 -4
  130. package/corpus/core/docs/content/locales/de-DE/client.mdx +79 -8
  131. package/corpus/core/docs/content/locales/de-DE/cloneable-saas.mdx +85 -8
  132. package/corpus/core/docs/content/locales/de-DE/code-agents-ui.mdx +100 -8
  133. package/corpus/core/docs/content/locales/de-DE/components.mdx +118 -8
  134. package/corpus/core/docs/content/locales/de-DE/context-awareness.mdx +98 -8
  135. package/corpus/core/docs/content/locales/de-DE/creating-templates.mdx +51 -4
  136. package/corpus/core/docs/content/locales/de-DE/cross-app-sso.mdx +109 -8
  137. package/corpus/core/docs/content/locales/de-DE/database.mdx +52 -4
  138. package/corpus/core/docs/content/locales/de-DE/deployment.mdx +103 -8
  139. package/corpus/core/docs/content/locales/de-DE/dispatch.mdx +134 -8
  140. package/corpus/core/docs/content/locales/de-DE/drop-in-agent.mdx +63 -4
  141. package/corpus/core/docs/content/locales/de-DE/durable-resume.mdx +47 -4
  142. package/corpus/core/docs/content/locales/de-DE/embedding-sdk.mdx +85 -8
  143. package/corpus/core/docs/content/locales/de-DE/evals.mdx +102 -8
  144. package/corpus/core/docs/content/locales/de-DE/extensions.mdx +113 -9
  145. package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +119 -8
  146. package/corpus/core/docs/content/locales/de-DE/faq.mdx +98 -8
  147. package/corpus/core/docs/content/locales/de-DE/file-uploads.mdx +61 -4
  148. package/corpus/core/docs/content/locales/de-DE/frames.mdx +88 -8
  149. package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +34 -4
  150. package/corpus/core/docs/content/locales/de-DE/harness-agents.mdx +79 -8
  151. package/corpus/core/docs/content/locales/de-DE/human-approval.mdx +50 -4
  152. package/corpus/core/docs/content/locales/de-DE/key-concepts.mdx +104 -8
  153. package/corpus/core/docs/content/locales/de-DE/local-file-mode.mdx +58 -4
  154. package/corpus/core/docs/content/locales/de-DE/mcp-apps.mdx +120 -10
  155. package/corpus/core/docs/content/locales/de-DE/mcp-clients.mdx +133 -8
  156. package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +105 -8
  157. package/corpus/core/docs/content/locales/de-DE/messaging.mdx +115 -8
  158. package/corpus/core/docs/content/locales/de-DE/migration-workbench.mdx +47 -4
  159. package/corpus/core/docs/content/locales/de-DE/multi-app-workspace.mdx +91 -8
  160. package/corpus/core/docs/content/locales/de-DE/multi-tenancy.mdx +80 -8
  161. package/corpus/core/docs/content/locales/de-DE/native-chat-ui.mdx +108 -8
  162. package/corpus/core/docs/content/locales/de-DE/notifications.mdx +135 -8
  163. package/corpus/core/docs/content/locales/de-DE/observability.mdx +102 -8
  164. package/corpus/core/docs/content/locales/de-DE/observational-memory.mdx +92 -8
  165. package/corpus/core/docs/content/locales/de-DE/onboarding.mdx +45 -4
  166. package/corpus/core/docs/content/locales/de-DE/plan-plugin.mdx +99 -8
  167. package/corpus/core/docs/content/locales/de-DE/pr-visual-recap.mdx +125 -8
  168. package/corpus/core/docs/content/locales/de-DE/processors.mdx +41 -4
  169. package/corpus/core/docs/content/locales/de-DE/progress.mdx +46 -4
  170. package/corpus/core/docs/content/locales/de-DE/pure-agent-apps.mdx +50 -4
  171. package/corpus/core/docs/content/locales/de-DE/real-time-collaboration.mdx +104 -8
  172. package/corpus/core/docs/content/locales/de-DE/recurring-jobs.mdx +59 -4
  173. package/corpus/core/docs/content/locales/de-DE/routing.mdx +44 -5
  174. package/corpus/core/docs/content/locales/de-DE/sandbox-adapters.mdx +43 -4
  175. package/corpus/core/docs/content/locales/de-DE/security.mdx +80 -8
  176. package/corpus/core/docs/content/locales/de-DE/server.mdx +171 -12
  177. package/corpus/core/docs/content/locales/de-DE/sharing.mdx +45 -4
  178. package/corpus/core/docs/content/locales/de-DE/skills-guide.mdx +118 -9
  179. package/corpus/core/docs/content/locales/de-DE/template-analytics.mdx +46 -4
  180. package/corpus/core/docs/content/locales/de-DE/template-assets.mdx +62 -4
  181. package/corpus/core/docs/content/locales/de-DE/template-brain.mdx +69 -4
  182. package/corpus/core/docs/content/locales/de-DE/template-calendar.mdx +62 -4
  183. package/corpus/core/docs/content/locales/de-DE/template-chat.mdx +61 -4
  184. package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +52 -4
  185. package/corpus/core/docs/content/locales/de-DE/template-content.mdx +60 -4
  186. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +58 -4
  187. package/corpus/core/docs/content/locales/de-DE/template-dispatch.mdx +57 -4
  188. package/corpus/core/docs/content/locales/de-DE/template-forms.mdx +64 -4
  189. package/corpus/core/docs/content/locales/de-DE/template-mail.mdx +60 -4
  190. package/corpus/core/docs/content/locales/de-DE/template-plan.mdx +63 -4
  191. package/corpus/core/docs/content/locales/de-DE/template-slides.mdx +49 -4
  192. package/corpus/core/docs/content/locales/de-DE/template-videos.mdx +53 -4
  193. package/corpus/core/docs/content/locales/de-DE/tracking.mdx +54 -4
  194. package/corpus/core/docs/content/locales/de-DE/using-your-agent.mdx +51 -4
  195. package/corpus/core/docs/content/locales/de-DE/voice-input.mdx +45 -4
  196. package/corpus/core/docs/content/locales/de-DE/what-is-agent-native.mdx +100 -8
  197. package/corpus/core/docs/content/locales/de-DE/workspace-connections.mdx +128 -8
  198. package/corpus/core/docs/content/locales/de-DE/workspace-management.mdx +50 -4
  199. package/corpus/core/docs/content/locales/de-DE/workspace.mdx +111 -8
  200. package/corpus/core/docs/content/locales/de-DE/writing-agent-instructions.mdx +45 -4
  201. package/corpus/core/docs/content/locales/es-ES/a2a-protocol.mdx +99 -9
  202. package/corpus/core/docs/content/locales/es-ES/actions.mdx +67 -4
  203. package/corpus/core/docs/content/locales/es-ES/agent-mentions.mdx +68 -4
  204. package/corpus/core/docs/content/locales/es-ES/agent-surfaces.mdx +120 -8
  205. package/corpus/core/docs/content/locales/es-ES/agent-teams.mdx +172 -12
  206. package/corpus/core/docs/content/locales/es-ES/agent-web-surfaces.mdx +51 -4
  207. package/corpus/core/docs/content/locales/es-ES/authentication.mdx +122 -8
  208. package/corpus/core/docs/content/locales/es-ES/automations.mdx +110 -8
  209. package/corpus/core/docs/content/locales/es-ES/blueprint-installer.mdx +42 -4
  210. package/corpus/core/docs/content/locales/es-ES/cli-adapters.mdx +44 -4
  211. package/corpus/core/docs/content/locales/es-ES/client.mdx +79 -8
  212. package/corpus/core/docs/content/locales/es-ES/cloneable-saas.mdx +85 -8
  213. package/corpus/core/docs/content/locales/es-ES/code-agents-ui.mdx +101 -8
  214. package/corpus/core/docs/content/locales/es-ES/components.mdx +118 -8
  215. package/corpus/core/docs/content/locales/es-ES/context-awareness.mdx +98 -8
  216. package/corpus/core/docs/content/locales/es-ES/creating-templates.mdx +51 -4
  217. package/corpus/core/docs/content/locales/es-ES/cross-app-sso.mdx +109 -8
  218. package/corpus/core/docs/content/locales/es-ES/database.mdx +52 -4
  219. package/corpus/core/docs/content/locales/es-ES/deployment.mdx +103 -8
  220. package/corpus/core/docs/content/locales/es-ES/dispatch.mdx +134 -8
  221. package/corpus/core/docs/content/locales/es-ES/drop-in-agent.mdx +63 -4
  222. package/corpus/core/docs/content/locales/es-ES/durable-resume.mdx +47 -4
  223. package/corpus/core/docs/content/locales/es-ES/embedding-sdk.mdx +87 -8
  224. package/corpus/core/docs/content/locales/es-ES/evals.mdx +102 -8
  225. package/corpus/core/docs/content/locales/es-ES/extensions.mdx +113 -9
  226. package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +119 -8
  227. package/corpus/core/docs/content/locales/es-ES/faq.mdx +98 -8
  228. package/corpus/core/docs/content/locales/es-ES/file-uploads.mdx +61 -4
  229. package/corpus/core/docs/content/locales/es-ES/frames.mdx +88 -8
  230. package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +34 -4
  231. package/corpus/core/docs/content/locales/es-ES/harness-agents.mdx +79 -8
  232. package/corpus/core/docs/content/locales/es-ES/human-approval.mdx +50 -4
  233. package/corpus/core/docs/content/locales/es-ES/key-concepts.mdx +104 -8
  234. package/corpus/core/docs/content/locales/es-ES/local-file-mode.mdx +60 -4
  235. package/corpus/core/docs/content/locales/es-ES/mcp-apps.mdx +120 -10
  236. package/corpus/core/docs/content/locales/es-ES/mcp-clients.mdx +135 -8
  237. package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +105 -8
  238. package/corpus/core/docs/content/locales/es-ES/messaging.mdx +115 -8
  239. package/corpus/core/docs/content/locales/es-ES/migration-workbench.mdx +47 -4
  240. package/corpus/core/docs/content/locales/es-ES/multi-app-workspace.mdx +91 -8
  241. package/corpus/core/docs/content/locales/es-ES/multi-tenancy.mdx +80 -8
  242. package/corpus/core/docs/content/locales/es-ES/native-chat-ui.mdx +108 -8
  243. package/corpus/core/docs/content/locales/es-ES/notifications.mdx +135 -8
  244. package/corpus/core/docs/content/locales/es-ES/observability.mdx +104 -8
  245. package/corpus/core/docs/content/locales/es-ES/observational-memory.mdx +92 -8
  246. package/corpus/core/docs/content/locales/es-ES/onboarding.mdx +45 -4
  247. package/corpus/core/docs/content/locales/es-ES/plan-plugin.mdx +99 -8
  248. package/corpus/core/docs/content/locales/es-ES/pr-visual-recap.mdx +125 -8
  249. package/corpus/core/docs/content/locales/es-ES/processors.mdx +41 -4
  250. package/corpus/core/docs/content/locales/es-ES/progress.mdx +46 -4
  251. package/corpus/core/docs/content/locales/es-ES/pure-agent-apps.mdx +50 -4
  252. package/corpus/core/docs/content/locales/es-ES/real-time-collaboration.mdx +109 -8
  253. package/corpus/core/docs/content/locales/es-ES/recurring-jobs.mdx +59 -4
  254. package/corpus/core/docs/content/locales/es-ES/routing.mdx +44 -5
  255. package/corpus/core/docs/content/locales/es-ES/sandbox-adapters.mdx +44 -4
  256. package/corpus/core/docs/content/locales/es-ES/security.mdx +82 -8
  257. package/corpus/core/docs/content/locales/es-ES/server.mdx +173 -12
  258. package/corpus/core/docs/content/locales/es-ES/sharing.mdx +45 -4
  259. package/corpus/core/docs/content/locales/es-ES/skills-guide.mdx +118 -9
  260. package/corpus/core/docs/content/locales/es-ES/template-analytics.mdx +46 -4
  261. package/corpus/core/docs/content/locales/es-ES/template-assets.mdx +64 -4
  262. package/corpus/core/docs/content/locales/es-ES/template-brain.mdx +69 -4
  263. package/corpus/core/docs/content/locales/es-ES/template-calendar.mdx +62 -4
  264. package/corpus/core/docs/content/locales/es-ES/template-chat.mdx +61 -4
  265. package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +52 -4
  266. package/corpus/core/docs/content/locales/es-ES/template-content.mdx +64 -4
  267. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +58 -4
  268. package/corpus/core/docs/content/locales/es-ES/template-dispatch.mdx +57 -4
  269. package/corpus/core/docs/content/locales/es-ES/template-forms.mdx +64 -4
  270. package/corpus/core/docs/content/locales/es-ES/template-mail.mdx +60 -4
  271. package/corpus/core/docs/content/locales/es-ES/template-plan.mdx +61 -4
  272. package/corpus/core/docs/content/locales/es-ES/template-slides.mdx +49 -4
  273. package/corpus/core/docs/content/locales/es-ES/template-videos.mdx +53 -4
  274. package/corpus/core/docs/content/locales/es-ES/tracking.mdx +54 -4
  275. package/corpus/core/docs/content/locales/es-ES/using-your-agent.mdx +51 -4
  276. package/corpus/core/docs/content/locales/es-ES/voice-input.mdx +45 -4
  277. package/corpus/core/docs/content/locales/es-ES/what-is-agent-native.mdx +99 -8
  278. package/corpus/core/docs/content/locales/es-ES/workspace-connections.mdx +128 -8
  279. package/corpus/core/docs/content/locales/es-ES/workspace-management.mdx +50 -4
  280. package/corpus/core/docs/content/locales/es-ES/workspace.mdx +112 -8
  281. package/corpus/core/docs/content/locales/es-ES/writing-agent-instructions.mdx +46 -4
  282. package/corpus/core/docs/content/locales/fr-FR/a2a-protocol.mdx +97 -9
  283. package/corpus/core/docs/content/locales/fr-FR/actions.mdx +67 -4
  284. package/corpus/core/docs/content/locales/fr-FR/agent-mentions.mdx +68 -4
  285. package/corpus/core/docs/content/locales/fr-FR/agent-surfaces.mdx +118 -8
  286. package/corpus/core/docs/content/locales/fr-FR/agent-teams.mdx +172 -12
  287. package/corpus/core/docs/content/locales/fr-FR/agent-web-surfaces.mdx +51 -4
  288. package/corpus/core/docs/content/locales/fr-FR/authentication.mdx +122 -8
  289. package/corpus/core/docs/content/locales/fr-FR/automations.mdx +110 -8
  290. package/corpus/core/docs/content/locales/fr-FR/blueprint-installer.mdx +42 -4
  291. package/corpus/core/docs/content/locales/fr-FR/cli-adapters.mdx +44 -4
  292. package/corpus/core/docs/content/locales/fr-FR/client.mdx +81 -8
  293. package/corpus/core/docs/content/locales/fr-FR/cloneable-saas.mdx +85 -8
  294. package/corpus/core/docs/content/locales/fr-FR/code-agents-ui.mdx +102 -8
  295. package/corpus/core/docs/content/locales/fr-FR/components.mdx +118 -8
  296. package/corpus/core/docs/content/locales/fr-FR/context-awareness.mdx +98 -8
  297. package/corpus/core/docs/content/locales/fr-FR/creating-templates.mdx +49 -4
  298. package/corpus/core/docs/content/locales/fr-FR/cross-app-sso.mdx +109 -8
  299. package/corpus/core/docs/content/locales/fr-FR/database.mdx +52 -4
  300. package/corpus/core/docs/content/locales/fr-FR/deployment.mdx +103 -8
  301. package/corpus/core/docs/content/locales/fr-FR/dispatch.mdx +134 -8
  302. package/corpus/core/docs/content/locales/fr-FR/drop-in-agent.mdx +63 -4
  303. package/corpus/core/docs/content/locales/fr-FR/durable-resume.mdx +47 -4
  304. package/corpus/core/docs/content/locales/fr-FR/embedding-sdk.mdx +87 -8
  305. package/corpus/core/docs/content/locales/fr-FR/evals.mdx +102 -8
  306. package/corpus/core/docs/content/locales/fr-FR/extensions.mdx +113 -9
  307. package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +119 -8
  308. package/corpus/core/docs/content/locales/fr-FR/faq.mdx +98 -8
  309. package/corpus/core/docs/content/locales/fr-FR/file-uploads.mdx +61 -4
  310. package/corpus/core/docs/content/locales/fr-FR/frames.mdx +90 -8
  311. package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +34 -4
  312. package/corpus/core/docs/content/locales/fr-FR/harness-agents.mdx +77 -8
  313. package/corpus/core/docs/content/locales/fr-FR/human-approval.mdx +50 -4
  314. package/corpus/core/docs/content/locales/fr-FR/key-concepts.mdx +106 -8
  315. package/corpus/core/docs/content/locales/fr-FR/local-file-mode.mdx +58 -4
  316. package/corpus/core/docs/content/locales/fr-FR/mcp-apps.mdx +120 -10
  317. package/corpus/core/docs/content/locales/fr-FR/mcp-clients.mdx +135 -8
  318. package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +105 -8
  319. package/corpus/core/docs/content/locales/fr-FR/messaging.mdx +115 -8
  320. package/corpus/core/docs/content/locales/fr-FR/migration-workbench.mdx +47 -4
  321. package/corpus/core/docs/content/locales/fr-FR/multi-app-workspace.mdx +91 -8
  322. package/corpus/core/docs/content/locales/fr-FR/multi-tenancy.mdx +80 -8
  323. package/corpus/core/docs/content/locales/fr-FR/native-chat-ui.mdx +108 -8
  324. package/corpus/core/docs/content/locales/fr-FR/notifications.mdx +135 -8
  325. package/corpus/core/docs/content/locales/fr-FR/observability.mdx +104 -8
  326. package/corpus/core/docs/content/locales/fr-FR/observational-memory.mdx +89 -8
  327. package/corpus/core/docs/content/locales/fr-FR/onboarding.mdx +45 -4
  328. package/corpus/core/docs/content/locales/fr-FR/plan-plugin.mdx +99 -8
  329. package/corpus/core/docs/content/locales/fr-FR/pr-visual-recap.mdx +126 -8
  330. package/corpus/core/docs/content/locales/fr-FR/processors.mdx +41 -4
  331. package/corpus/core/docs/content/locales/fr-FR/progress.mdx +46 -4
  332. package/corpus/core/docs/content/locales/fr-FR/pure-agent-apps.mdx +48 -4
  333. package/corpus/core/docs/content/locales/fr-FR/real-time-collaboration.mdx +107 -8
  334. package/corpus/core/docs/content/locales/fr-FR/recurring-jobs.mdx +59 -4
  335. package/corpus/core/docs/content/locales/fr-FR/routing.mdx +44 -5
  336. package/corpus/core/docs/content/locales/fr-FR/sandbox-adapters.mdx +44 -4
  337. package/corpus/core/docs/content/locales/fr-FR/security.mdx +82 -8
  338. package/corpus/core/docs/content/locales/fr-FR/server.mdx +173 -12
  339. package/corpus/core/docs/content/locales/fr-FR/sharing.mdx +45 -4
  340. package/corpus/core/docs/content/locales/fr-FR/skills-guide.mdx +118 -9
  341. package/corpus/core/docs/content/locales/fr-FR/template-analytics.mdx +46 -4
  342. package/corpus/core/docs/content/locales/fr-FR/template-assets.mdx +66 -4
  343. package/corpus/core/docs/content/locales/fr-FR/template-brain.mdx +69 -4
  344. package/corpus/core/docs/content/locales/fr-FR/template-calendar.mdx +62 -4
  345. package/corpus/core/docs/content/locales/fr-FR/template-chat.mdx +61 -4
  346. package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +52 -4
  347. package/corpus/core/docs/content/locales/fr-FR/template-content.mdx +64 -4
  348. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +58 -4
  349. package/corpus/core/docs/content/locales/fr-FR/template-dispatch.mdx +57 -4
  350. package/corpus/core/docs/content/locales/fr-FR/template-forms.mdx +64 -4
  351. package/corpus/core/docs/content/locales/fr-FR/template-mail.mdx +60 -4
  352. package/corpus/core/docs/content/locales/fr-FR/template-plan.mdx +61 -4
  353. package/corpus/core/docs/content/locales/fr-FR/template-slides.mdx +49 -4
  354. package/corpus/core/docs/content/locales/fr-FR/template-videos.mdx +53 -4
  355. package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +54 -4
  356. package/corpus/core/docs/content/locales/fr-FR/using-your-agent.mdx +51 -4
  357. package/corpus/core/docs/content/locales/fr-FR/voice-input.mdx +45 -4
  358. package/corpus/core/docs/content/locales/fr-FR/what-is-agent-native.mdx +101 -8
  359. package/corpus/core/docs/content/locales/fr-FR/workspace-connections.mdx +128 -8
  360. package/corpus/core/docs/content/locales/fr-FR/workspace-management.mdx +50 -4
  361. package/corpus/core/docs/content/locales/fr-FR/workspace.mdx +112 -8
  362. package/corpus/core/docs/content/locales/fr-FR/writing-agent-instructions.mdx +47 -4
  363. package/corpus/core/docs/content/locales/hi-IN/a2a-protocol.mdx +97 -9
  364. package/corpus/core/docs/content/locales/hi-IN/actions.mdx +63 -4
  365. package/corpus/core/docs/content/locales/hi-IN/agent-mentions.mdx +68 -4
  366. package/corpus/core/docs/content/locales/hi-IN/agent-surfaces.mdx +112 -8
  367. package/corpus/core/docs/content/locales/hi-IN/agent-teams.mdx +171 -12
  368. package/corpus/core/docs/content/locales/hi-IN/agent-web-surfaces.mdx +51 -4
  369. package/corpus/core/docs/content/locales/hi-IN/authentication.mdx +122 -8
  370. package/corpus/core/docs/content/locales/hi-IN/automations.mdx +110 -8
  371. package/corpus/core/docs/content/locales/hi-IN/blueprint-installer.mdx +42 -4
  372. package/corpus/core/docs/content/locales/hi-IN/cli-adapters.mdx +44 -4
  373. package/corpus/core/docs/content/locales/hi-IN/client.mdx +79 -8
  374. package/corpus/core/docs/content/locales/hi-IN/cloneable-saas.mdx +85 -8
  375. package/corpus/core/docs/content/locales/hi-IN/code-agents-ui.mdx +96 -8
  376. package/corpus/core/docs/content/locales/hi-IN/components.mdx +114 -8
  377. package/corpus/core/docs/content/locales/hi-IN/context-awareness.mdx +102 -8
  378. package/corpus/core/docs/content/locales/hi-IN/creating-templates.mdx +53 -4
  379. package/corpus/core/docs/content/locales/hi-IN/cross-app-sso.mdx +109 -8
  380. package/corpus/core/docs/content/locales/hi-IN/database.mdx +52 -4
  381. package/corpus/core/docs/content/locales/hi-IN/deployment.mdx +103 -8
  382. package/corpus/core/docs/content/locales/hi-IN/dispatch.mdx +134 -8
  383. package/corpus/core/docs/content/locales/hi-IN/drop-in-agent.mdx +63 -4
  384. package/corpus/core/docs/content/locales/hi-IN/durable-resume.mdx +47 -4
  385. package/corpus/core/docs/content/locales/hi-IN/embedding-sdk.mdx +83 -8
  386. package/corpus/core/docs/content/locales/hi-IN/evals.mdx +100 -8
  387. package/corpus/core/docs/content/locales/hi-IN/extensions.mdx +113 -9
  388. package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +119 -8
  389. package/corpus/core/docs/content/locales/hi-IN/faq.mdx +96 -8
  390. package/corpus/core/docs/content/locales/hi-IN/file-uploads.mdx +61 -4
  391. package/corpus/core/docs/content/locales/hi-IN/frames.mdx +88 -8
  392. package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +34 -4
  393. package/corpus/core/docs/content/locales/hi-IN/harness-agents.mdx +77 -8
  394. package/corpus/core/docs/content/locales/hi-IN/human-approval.mdx +51 -4
  395. package/corpus/core/docs/content/locales/hi-IN/key-concepts.mdx +104 -8
  396. package/corpus/core/docs/content/locales/hi-IN/local-file-mode.mdx +58 -4
  397. package/corpus/core/docs/content/locales/hi-IN/mcp-apps.mdx +120 -10
  398. package/corpus/core/docs/content/locales/hi-IN/mcp-clients.mdx +133 -8
  399. package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +105 -8
  400. package/corpus/core/docs/content/locales/hi-IN/messaging.mdx +115 -8
  401. package/corpus/core/docs/content/locales/hi-IN/migration-workbench.mdx +45 -4
  402. package/corpus/core/docs/content/locales/hi-IN/multi-app-workspace.mdx +91 -8
  403. package/corpus/core/docs/content/locales/hi-IN/multi-tenancy.mdx +80 -8
  404. package/corpus/core/docs/content/locales/hi-IN/native-chat-ui.mdx +106 -8
  405. package/corpus/core/docs/content/locales/hi-IN/notifications.mdx +135 -8
  406. package/corpus/core/docs/content/locales/hi-IN/observability.mdx +102 -8
  407. package/corpus/core/docs/content/locales/hi-IN/observational-memory.mdx +89 -8
  408. package/corpus/core/docs/content/locales/hi-IN/onboarding.mdx +45 -4
  409. package/corpus/core/docs/content/locales/hi-IN/plan-plugin.mdx +99 -8
  410. package/corpus/core/docs/content/locales/hi-IN/pr-visual-recap.mdx +126 -8
  411. package/corpus/core/docs/content/locales/hi-IN/processors.mdx +41 -4
  412. package/corpus/core/docs/content/locales/hi-IN/progress.mdx +46 -4
  413. package/corpus/core/docs/content/locales/hi-IN/pure-agent-apps.mdx +48 -4
  414. package/corpus/core/docs/content/locales/hi-IN/real-time-collaboration.mdx +106 -8
  415. package/corpus/core/docs/content/locales/hi-IN/recurring-jobs.mdx +59 -4
  416. package/corpus/core/docs/content/locales/hi-IN/routing.mdx +44 -5
  417. package/corpus/core/docs/content/locales/hi-IN/sandbox-adapters.mdx +43 -4
  418. package/corpus/core/docs/content/locales/hi-IN/security.mdx +78 -8
  419. package/corpus/core/docs/content/locales/hi-IN/server.mdx +169 -12
  420. package/corpus/core/docs/content/locales/hi-IN/sharing.mdx +45 -4
  421. package/corpus/core/docs/content/locales/hi-IN/skills-guide.mdx +118 -9
  422. package/corpus/core/docs/content/locales/hi-IN/template-analytics.mdx +46 -4
  423. package/corpus/core/docs/content/locales/hi-IN/template-assets.mdx +62 -4
  424. package/corpus/core/docs/content/locales/hi-IN/template-brain.mdx +69 -4
  425. package/corpus/core/docs/content/locales/hi-IN/template-calendar.mdx +62 -4
  426. package/corpus/core/docs/content/locales/hi-IN/template-chat.mdx +59 -4
  427. package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +52 -4
  428. package/corpus/core/docs/content/locales/hi-IN/template-content.mdx +62 -4
  429. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +58 -4
  430. package/corpus/core/docs/content/locales/hi-IN/template-dispatch.mdx +57 -4
  431. package/corpus/core/docs/content/locales/hi-IN/template-forms.mdx +64 -4
  432. package/corpus/core/docs/content/locales/hi-IN/template-mail.mdx +64 -4
  433. package/corpus/core/docs/content/locales/hi-IN/template-plan.mdx +61 -4
  434. package/corpus/core/docs/content/locales/hi-IN/template-slides.mdx +49 -4
  435. package/corpus/core/docs/content/locales/hi-IN/template-videos.mdx +53 -4
  436. package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +54 -4
  437. package/corpus/core/docs/content/locales/hi-IN/using-your-agent.mdx +51 -4
  438. package/corpus/core/docs/content/locales/hi-IN/voice-input.mdx +43 -4
  439. package/corpus/core/docs/content/locales/hi-IN/what-is-agent-native.mdx +97 -8
  440. package/corpus/core/docs/content/locales/hi-IN/workspace-connections.mdx +128 -8
  441. package/corpus/core/docs/content/locales/hi-IN/workspace-management.mdx +50 -4
  442. package/corpus/core/docs/content/locales/hi-IN/workspace.mdx +111 -8
  443. package/corpus/core/docs/content/locales/hi-IN/writing-agent-instructions.mdx +40 -4
  444. package/corpus/core/docs/content/locales/ja-JP/a2a-protocol.mdx +97 -9
  445. package/corpus/core/docs/content/locales/ja-JP/actions.mdx +67 -4
  446. package/corpus/core/docs/content/locales/ja-JP/agent-mentions.mdx +68 -4
  447. package/corpus/core/docs/content/locales/ja-JP/agent-surfaces.mdx +116 -8
  448. package/corpus/core/docs/content/locales/ja-JP/agent-teams.mdx +172 -12
  449. package/corpus/core/docs/content/locales/ja-JP/agent-web-surfaces.mdx +51 -4
  450. package/corpus/core/docs/content/locales/ja-JP/authentication.mdx +122 -8
  451. package/corpus/core/docs/content/locales/ja-JP/automations.mdx +110 -8
  452. package/corpus/core/docs/content/locales/ja-JP/blueprint-installer.mdx +44 -4
  453. package/corpus/core/docs/content/locales/ja-JP/cli-adapters.mdx +44 -4
  454. package/corpus/core/docs/content/locales/ja-JP/client.mdx +79 -8
  455. package/corpus/core/docs/content/locales/ja-JP/cloneable-saas.mdx +85 -8
  456. package/corpus/core/docs/content/locales/ja-JP/code-agents-ui.mdx +100 -8
  457. package/corpus/core/docs/content/locales/ja-JP/components.mdx +116 -8
  458. package/corpus/core/docs/content/locales/ja-JP/context-awareness.mdx +100 -8
  459. package/corpus/core/docs/content/locales/ja-JP/creating-templates.mdx +51 -4
  460. package/corpus/core/docs/content/locales/ja-JP/cross-app-sso.mdx +109 -8
  461. package/corpus/core/docs/content/locales/ja-JP/database.mdx +52 -4
  462. package/corpus/core/docs/content/locales/ja-JP/deployment.mdx +103 -8
  463. package/corpus/core/docs/content/locales/ja-JP/dispatch.mdx +134 -8
  464. package/corpus/core/docs/content/locales/ja-JP/drop-in-agent.mdx +63 -4
  465. package/corpus/core/docs/content/locales/ja-JP/durable-resume.mdx +47 -4
  466. package/corpus/core/docs/content/locales/ja-JP/embedding-sdk.mdx +85 -8
  467. package/corpus/core/docs/content/locales/ja-JP/evals.mdx +102 -8
  468. package/corpus/core/docs/content/locales/ja-JP/extensions.mdx +111 -9
  469. package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +119 -8
  470. package/corpus/core/docs/content/locales/ja-JP/faq.mdx +98 -8
  471. package/corpus/core/docs/content/locales/ja-JP/file-uploads.mdx +61 -4
  472. package/corpus/core/docs/content/locales/ja-JP/frames.mdx +88 -8
  473. package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +34 -4
  474. package/corpus/core/docs/content/locales/ja-JP/harness-agents.mdx +79 -8
  475. package/corpus/core/docs/content/locales/ja-JP/human-approval.mdx +50 -4
  476. package/corpus/core/docs/content/locales/ja-JP/key-concepts.mdx +105 -8
  477. package/corpus/core/docs/content/locales/ja-JP/local-file-mode.mdx +58 -4
  478. package/corpus/core/docs/content/locales/ja-JP/mcp-apps.mdx +119 -10
  479. package/corpus/core/docs/content/locales/ja-JP/mcp-clients.mdx +134 -8
  480. package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +105 -8
  481. package/corpus/core/docs/content/locales/ja-JP/messaging.mdx +115 -8
  482. package/corpus/core/docs/content/locales/ja-JP/migration-workbench.mdx +47 -4
  483. package/corpus/core/docs/content/locales/ja-JP/multi-app-workspace.mdx +91 -8
  484. package/corpus/core/docs/content/locales/ja-JP/multi-tenancy.mdx +80 -8
  485. package/corpus/core/docs/content/locales/ja-JP/native-chat-ui.mdx +104 -8
  486. package/corpus/core/docs/content/locales/ja-JP/notifications.mdx +135 -8
  487. package/corpus/core/docs/content/locales/ja-JP/observability.mdx +104 -8
  488. package/corpus/core/docs/content/locales/ja-JP/observational-memory.mdx +89 -8
  489. package/corpus/core/docs/content/locales/ja-JP/onboarding.mdx +45 -4
  490. package/corpus/core/docs/content/locales/ja-JP/plan-plugin.mdx +99 -8
  491. package/corpus/core/docs/content/locales/ja-JP/pr-visual-recap.mdx +123 -8
  492. package/corpus/core/docs/content/locales/ja-JP/processors.mdx +39 -4
  493. package/corpus/core/docs/content/locales/ja-JP/progress.mdx +46 -4
  494. package/corpus/core/docs/content/locales/ja-JP/pure-agent-apps.mdx +48 -4
  495. package/corpus/core/docs/content/locales/ja-JP/real-time-collaboration.mdx +106 -8
  496. package/corpus/core/docs/content/locales/ja-JP/recurring-jobs.mdx +59 -4
  497. package/corpus/core/docs/content/locales/ja-JP/routing.mdx +44 -5
  498. package/corpus/core/docs/content/locales/ja-JP/sandbox-adapters.mdx +43 -4
  499. package/corpus/core/docs/content/locales/ja-JP/security.mdx +82 -8
  500. package/corpus/core/docs/content/locales/ja-JP/server.mdx +171 -12
  501. package/corpus/core/docs/content/locales/ja-JP/sharing.mdx +45 -4
  502. package/corpus/core/docs/content/locales/ja-JP/skills-guide.mdx +118 -9
  503. package/corpus/core/docs/content/locales/ja-JP/template-analytics.mdx +46 -4
  504. package/corpus/core/docs/content/locales/ja-JP/template-assets.mdx +64 -4
  505. package/corpus/core/docs/content/locales/ja-JP/template-brain.mdx +67 -4
  506. package/corpus/core/docs/content/locales/ja-JP/template-calendar.mdx +62 -4
  507. package/corpus/core/docs/content/locales/ja-JP/template-chat.mdx +61 -4
  508. package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +52 -4
  509. package/corpus/core/docs/content/locales/ja-JP/template-content.mdx +62 -4
  510. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +60 -4
  511. package/corpus/core/docs/content/locales/ja-JP/template-dispatch.mdx +57 -4
  512. package/corpus/core/docs/content/locales/ja-JP/template-forms.mdx +62 -4
  513. package/corpus/core/docs/content/locales/ja-JP/template-mail.mdx +62 -4
  514. package/corpus/core/docs/content/locales/ja-JP/template-plan.mdx +63 -4
  515. package/corpus/core/docs/content/locales/ja-JP/template-slides.mdx +49 -4
  516. package/corpus/core/docs/content/locales/ja-JP/template-videos.mdx +53 -4
  517. package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +54 -4
  518. package/corpus/core/docs/content/locales/ja-JP/using-your-agent.mdx +51 -4
  519. package/corpus/core/docs/content/locales/ja-JP/voice-input.mdx +43 -4
  520. package/corpus/core/docs/content/locales/ja-JP/what-is-agent-native.mdx +96 -8
  521. package/corpus/core/docs/content/locales/ja-JP/workspace-connections.mdx +128 -8
  522. package/corpus/core/docs/content/locales/ja-JP/workspace-management.mdx +50 -4
  523. package/corpus/core/docs/content/locales/ja-JP/workspace.mdx +111 -8
  524. package/corpus/core/docs/content/locales/ja-JP/writing-agent-instructions.mdx +44 -4
  525. package/corpus/core/docs/content/locales/ko-KR/a2a-protocol.mdx +97 -9
  526. package/corpus/core/docs/content/locales/ko-KR/actions.mdx +63 -4
  527. package/corpus/core/docs/content/locales/ko-KR/agent-mentions.mdx +68 -4
  528. package/corpus/core/docs/content/locales/ko-KR/agent-surfaces.mdx +113 -8
  529. package/corpus/core/docs/content/locales/ko-KR/agent-teams.mdx +171 -12
  530. package/corpus/core/docs/content/locales/ko-KR/agent-web-surfaces.mdx +51 -4
  531. package/corpus/core/docs/content/locales/ko-KR/authentication.mdx +122 -8
  532. package/corpus/core/docs/content/locales/ko-KR/automations.mdx +110 -8
  533. package/corpus/core/docs/content/locales/ko-KR/blueprint-installer.mdx +42 -4
  534. package/corpus/core/docs/content/locales/ko-KR/cli-adapters.mdx +44 -4
  535. package/corpus/core/docs/content/locales/ko-KR/client.mdx +79 -8
  536. package/corpus/core/docs/content/locales/ko-KR/cloneable-saas.mdx +85 -8
  537. package/corpus/core/docs/content/locales/ko-KR/code-agents-ui.mdx +96 -8
  538. package/corpus/core/docs/content/locales/ko-KR/components.mdx +112 -8
  539. package/corpus/core/docs/content/locales/ko-KR/context-awareness.mdx +96 -8
  540. package/corpus/core/docs/content/locales/ko-KR/creating-templates.mdx +51 -4
  541. package/corpus/core/docs/content/locales/ko-KR/cross-app-sso.mdx +109 -8
  542. package/corpus/core/docs/content/locales/ko-KR/database.mdx +52 -4
  543. package/corpus/core/docs/content/locales/ko-KR/deployment.mdx +103 -8
  544. package/corpus/core/docs/content/locales/ko-KR/dispatch.mdx +132 -8
  545. package/corpus/core/docs/content/locales/ko-KR/drop-in-agent.mdx +63 -4
  546. package/corpus/core/docs/content/locales/ko-KR/durable-resume.mdx +47 -4
  547. package/corpus/core/docs/content/locales/ko-KR/embedding-sdk.mdx +81 -8
  548. package/corpus/core/docs/content/locales/ko-KR/evals.mdx +102 -8
  549. package/corpus/core/docs/content/locales/ko-KR/extensions.mdx +111 -9
  550. package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +119 -8
  551. package/corpus/core/docs/content/locales/ko-KR/faq.mdx +96 -8
  552. package/corpus/core/docs/content/locales/ko-KR/file-uploads.mdx +61 -4
  553. package/corpus/core/docs/content/locales/ko-KR/frames.mdx +86 -8
  554. package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +34 -4
  555. package/corpus/core/docs/content/locales/ko-KR/harness-agents.mdx +77 -8
  556. package/corpus/core/docs/content/locales/ko-KR/human-approval.mdx +50 -4
  557. package/corpus/core/docs/content/locales/ko-KR/key-concepts.mdx +104 -8
  558. package/corpus/core/docs/content/locales/ko-KR/local-file-mode.mdx +56 -4
  559. package/corpus/core/docs/content/locales/ko-KR/mcp-apps.mdx +120 -10
  560. package/corpus/core/docs/content/locales/ko-KR/mcp-clients.mdx +133 -8
  561. package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +105 -8
  562. package/corpus/core/docs/content/locales/ko-KR/messaging.mdx +115 -8
  563. package/corpus/core/docs/content/locales/ko-KR/migration-workbench.mdx +45 -4
  564. package/corpus/core/docs/content/locales/ko-KR/multi-app-workspace.mdx +91 -8
  565. package/corpus/core/docs/content/locales/ko-KR/multi-tenancy.mdx +80 -8
  566. package/corpus/core/docs/content/locales/ko-KR/native-chat-ui.mdx +104 -8
  567. package/corpus/core/docs/content/locales/ko-KR/notifications.mdx +135 -8
  568. package/corpus/core/docs/content/locales/ko-KR/observability.mdx +102 -8
  569. package/corpus/core/docs/content/locales/ko-KR/observational-memory.mdx +87 -8
  570. package/corpus/core/docs/content/locales/ko-KR/onboarding.mdx +44 -4
  571. package/corpus/core/docs/content/locales/ko-KR/plan-plugin.mdx +99 -8
  572. package/corpus/core/docs/content/locales/ko-KR/pr-visual-recap.mdx +125 -8
  573. package/corpus/core/docs/content/locales/ko-KR/processors.mdx +39 -4
  574. package/corpus/core/docs/content/locales/ko-KR/progress.mdx +46 -4
  575. package/corpus/core/docs/content/locales/ko-KR/pure-agent-apps.mdx +46 -4
  576. package/corpus/core/docs/content/locales/ko-KR/real-time-collaboration.mdx +104 -8
  577. package/corpus/core/docs/content/locales/ko-KR/recurring-jobs.mdx +59 -4
  578. package/corpus/core/docs/content/locales/ko-KR/routing.mdx +44 -5
  579. package/corpus/core/docs/content/locales/ko-KR/sandbox-adapters.mdx +41 -4
  580. package/corpus/core/docs/content/locales/ko-KR/security.mdx +78 -8
  581. package/corpus/core/docs/content/locales/ko-KR/server.mdx +171 -12
  582. package/corpus/core/docs/content/locales/ko-KR/sharing.mdx +45 -4
  583. package/corpus/core/docs/content/locales/ko-KR/skills-guide.mdx +118 -9
  584. package/corpus/core/docs/content/locales/ko-KR/template-analytics.mdx +46 -4
  585. package/corpus/core/docs/content/locales/ko-KR/template-assets.mdx +62 -4
  586. package/corpus/core/docs/content/locales/ko-KR/template-brain.mdx +65 -4
  587. package/corpus/core/docs/content/locales/ko-KR/template-calendar.mdx +60 -4
  588. package/corpus/core/docs/content/locales/ko-KR/template-chat.mdx +59 -4
  589. package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +52 -4
  590. package/corpus/core/docs/content/locales/ko-KR/template-content.mdx +60 -4
  591. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +58 -4
  592. package/corpus/core/docs/content/locales/ko-KR/template-dispatch.mdx +57 -4
  593. package/corpus/core/docs/content/locales/ko-KR/template-forms.mdx +60 -4
  594. package/corpus/core/docs/content/locales/ko-KR/template-mail.mdx +60 -4
  595. package/corpus/core/docs/content/locales/ko-KR/template-plan.mdx +57 -4
  596. package/corpus/core/docs/content/locales/ko-KR/template-slides.mdx +49 -4
  597. package/corpus/core/docs/content/locales/ko-KR/template-videos.mdx +53 -4
  598. package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +54 -4
  599. package/corpus/core/docs/content/locales/ko-KR/using-your-agent.mdx +51 -4
  600. package/corpus/core/docs/content/locales/ko-KR/voice-input.mdx +43 -4
  601. package/corpus/core/docs/content/locales/ko-KR/what-is-agent-native.mdx +95 -8
  602. package/corpus/core/docs/content/locales/ko-KR/workspace-connections.mdx +128 -8
  603. package/corpus/core/docs/content/locales/ko-KR/workspace-management.mdx +50 -4
  604. package/corpus/core/docs/content/locales/ko-KR/workspace.mdx +111 -8
  605. package/corpus/core/docs/content/locales/ko-KR/writing-agent-instructions.mdx +38 -4
  606. package/corpus/core/docs/content/locales/pt-BR/a2a-protocol.mdx +99 -9
  607. package/corpus/core/docs/content/locales/pt-BR/actions.mdx +67 -4
  608. package/corpus/core/docs/content/locales/pt-BR/agent-mentions.mdx +68 -4
  609. package/corpus/core/docs/content/locales/pt-BR/agent-surfaces.mdx +116 -8
  610. package/corpus/core/docs/content/locales/pt-BR/agent-teams.mdx +172 -12
  611. package/corpus/core/docs/content/locales/pt-BR/agent-web-surfaces.mdx +51 -4
  612. package/corpus/core/docs/content/locales/pt-BR/authentication.mdx +122 -8
  613. package/corpus/core/docs/content/locales/pt-BR/automations.mdx +110 -8
  614. package/corpus/core/docs/content/locales/pt-BR/blueprint-installer.mdx +42 -4
  615. package/corpus/core/docs/content/locales/pt-BR/cli-adapters.mdx +44 -4
  616. package/corpus/core/docs/content/locales/pt-BR/client.mdx +81 -8
  617. package/corpus/core/docs/content/locales/pt-BR/cloneable-saas.mdx +85 -8
  618. package/corpus/core/docs/content/locales/pt-BR/code-agents-ui.mdx +98 -8
  619. package/corpus/core/docs/content/locales/pt-BR/components.mdx +118 -8
  620. package/corpus/core/docs/content/locales/pt-BR/context-awareness.mdx +100 -8
  621. package/corpus/core/docs/content/locales/pt-BR/creating-templates.mdx +51 -4
  622. package/corpus/core/docs/content/locales/pt-BR/cross-app-sso.mdx +109 -8
  623. package/corpus/core/docs/content/locales/pt-BR/database.mdx +52 -4
  624. package/corpus/core/docs/content/locales/pt-BR/deployment.mdx +103 -8
  625. package/corpus/core/docs/content/locales/pt-BR/dispatch.mdx +134 -8
  626. package/corpus/core/docs/content/locales/pt-BR/drop-in-agent.mdx +63 -4
  627. package/corpus/core/docs/content/locales/pt-BR/durable-resume.mdx +47 -4
  628. package/corpus/core/docs/content/locales/pt-BR/embedding-sdk.mdx +87 -8
  629. package/corpus/core/docs/content/locales/pt-BR/evals.mdx +102 -8
  630. package/corpus/core/docs/content/locales/pt-BR/extensions.mdx +113 -9
  631. package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +119 -8
  632. package/corpus/core/docs/content/locales/pt-BR/faq.mdx +98 -8
  633. package/corpus/core/docs/content/locales/pt-BR/file-uploads.mdx +61 -4
  634. package/corpus/core/docs/content/locales/pt-BR/frames.mdx +88 -8
  635. package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +34 -4
  636. package/corpus/core/docs/content/locales/pt-BR/harness-agents.mdx +79 -8
  637. package/corpus/core/docs/content/locales/pt-BR/human-approval.mdx +50 -4
  638. package/corpus/core/docs/content/locales/pt-BR/key-concepts.mdx +104 -8
  639. package/corpus/core/docs/content/locales/pt-BR/local-file-mode.mdx +60 -4
  640. package/corpus/core/docs/content/locales/pt-BR/mcp-apps.mdx +120 -10
  641. package/corpus/core/docs/content/locales/pt-BR/mcp-clients.mdx +133 -8
  642. package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +105 -8
  643. package/corpus/core/docs/content/locales/pt-BR/messaging.mdx +115 -8
  644. package/corpus/core/docs/content/locales/pt-BR/migration-workbench.mdx +47 -4
  645. package/corpus/core/docs/content/locales/pt-BR/multi-app-workspace.mdx +91 -8
  646. package/corpus/core/docs/content/locales/pt-BR/multi-tenancy.mdx +80 -8
  647. package/corpus/core/docs/content/locales/pt-BR/native-chat-ui.mdx +108 -8
  648. package/corpus/core/docs/content/locales/pt-BR/notifications.mdx +135 -8
  649. package/corpus/core/docs/content/locales/pt-BR/observability.mdx +104 -8
  650. package/corpus/core/docs/content/locales/pt-BR/observational-memory.mdx +92 -8
  651. package/corpus/core/docs/content/locales/pt-BR/onboarding.mdx +45 -4
  652. package/corpus/core/docs/content/locales/pt-BR/plan-plugin.mdx +99 -8
  653. package/corpus/core/docs/content/locales/pt-BR/pr-visual-recap.mdx +125 -8
  654. package/corpus/core/docs/content/locales/pt-BR/processors.mdx +41 -4
  655. package/corpus/core/docs/content/locales/pt-BR/progress.mdx +46 -4
  656. package/corpus/core/docs/content/locales/pt-BR/pure-agent-apps.mdx +48 -4
  657. package/corpus/core/docs/content/locales/pt-BR/real-time-collaboration.mdx +107 -8
  658. package/corpus/core/docs/content/locales/pt-BR/recurring-jobs.mdx +59 -4
  659. package/corpus/core/docs/content/locales/pt-BR/routing.mdx +44 -5
  660. package/corpus/core/docs/content/locales/pt-BR/sandbox-adapters.mdx +43 -4
  661. package/corpus/core/docs/content/locales/pt-BR/security.mdx +82 -8
  662. package/corpus/core/docs/content/locales/pt-BR/server.mdx +173 -12
  663. package/corpus/core/docs/content/locales/pt-BR/sharing.mdx +45 -4
  664. package/corpus/core/docs/content/locales/pt-BR/skills-guide.mdx +118 -9
  665. package/corpus/core/docs/content/locales/pt-BR/template-analytics.mdx +46 -4
  666. package/corpus/core/docs/content/locales/pt-BR/template-assets.mdx +64 -4
  667. package/corpus/core/docs/content/locales/pt-BR/template-brain.mdx +69 -4
  668. package/corpus/core/docs/content/locales/pt-BR/template-calendar.mdx +62 -4
  669. package/corpus/core/docs/content/locales/pt-BR/template-chat.mdx +61 -4
  670. package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +52 -4
  671. package/corpus/core/docs/content/locales/pt-BR/template-content.mdx +64 -4
  672. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +58 -4
  673. package/corpus/core/docs/content/locales/pt-BR/template-dispatch.mdx +57 -4
  674. package/corpus/core/docs/content/locales/pt-BR/template-forms.mdx +64 -4
  675. package/corpus/core/docs/content/locales/pt-BR/template-mail.mdx +60 -4
  676. package/corpus/core/docs/content/locales/pt-BR/template-plan.mdx +63 -4
  677. package/corpus/core/docs/content/locales/pt-BR/template-slides.mdx +49 -4
  678. package/corpus/core/docs/content/locales/pt-BR/template-videos.mdx +53 -4
  679. package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +54 -4
  680. package/corpus/core/docs/content/locales/pt-BR/using-your-agent.mdx +51 -4
  681. package/corpus/core/docs/content/locales/pt-BR/voice-input.mdx +43 -4
  682. package/corpus/core/docs/content/locales/pt-BR/what-is-agent-native.mdx +101 -8
  683. package/corpus/core/docs/content/locales/pt-BR/workspace-connections.mdx +128 -8
  684. package/corpus/core/docs/content/locales/pt-BR/workspace-management.mdx +50 -4
  685. package/corpus/core/docs/content/locales/pt-BR/workspace.mdx +111 -8
  686. package/corpus/core/docs/content/locales/pt-BR/writing-agent-instructions.mdx +46 -4
  687. package/corpus/core/docs/content/locales/zh-CN/a2a-protocol.mdx +97 -9
  688. package/corpus/core/docs/content/locales/zh-CN/actions.mdx +65 -4
  689. package/corpus/core/docs/content/locales/zh-CN/agent-mentions.mdx +68 -4
  690. package/corpus/core/docs/content/locales/zh-CN/agent-surfaces.mdx +108 -8
  691. package/corpus/core/docs/content/locales/zh-CN/agent-teams.mdx +171 -12
  692. package/corpus/core/docs/content/locales/zh-CN/agent-web-surfaces.mdx +51 -4
  693. package/corpus/core/docs/content/locales/zh-CN/authentication.mdx +122 -8
  694. package/corpus/core/docs/content/locales/zh-CN/automations.mdx +110 -8
  695. package/corpus/core/docs/content/locales/zh-CN/blueprint-installer.mdx +42 -4
  696. package/corpus/core/docs/content/locales/zh-CN/cli-adapters.mdx +44 -4
  697. package/corpus/core/docs/content/locales/zh-CN/client.mdx +79 -8
  698. package/corpus/core/docs/content/locales/zh-CN/cloneable-saas.mdx +83 -8
  699. package/corpus/core/docs/content/locales/zh-CN/code-agents-ui.mdx +94 -8
  700. package/corpus/core/docs/content/locales/zh-CN/components.mdx +112 -8
  701. package/corpus/core/docs/content/locales/zh-CN/context-awareness.mdx +96 -8
  702. package/corpus/core/docs/content/locales/zh-CN/creating-templates.mdx +51 -4
  703. package/corpus/core/docs/content/locales/zh-CN/cross-app-sso.mdx +107 -8
  704. package/corpus/core/docs/content/locales/zh-CN/database.mdx +52 -4
  705. package/corpus/core/docs/content/locales/zh-CN/deployment.mdx +103 -8
  706. package/corpus/core/docs/content/locales/zh-CN/dispatch.mdx +134 -8
  707. package/corpus/core/docs/content/locales/zh-CN/drop-in-agent.mdx +63 -4
  708. package/corpus/core/docs/content/locales/zh-CN/durable-resume.mdx +45 -4
  709. package/corpus/core/docs/content/locales/zh-CN/embedding-sdk.mdx +81 -8
  710. package/corpus/core/docs/content/locales/zh-CN/evals.mdx +100 -8
  711. package/corpus/core/docs/content/locales/zh-CN/extensions.mdx +111 -9
  712. package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +119 -8
  713. package/corpus/core/docs/content/locales/zh-CN/faq.mdx +96 -8
  714. package/corpus/core/docs/content/locales/zh-CN/file-uploads.mdx +61 -4
  715. package/corpus/core/docs/content/locales/zh-CN/frames.mdx +86 -8
  716. package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +34 -4
  717. package/corpus/core/docs/content/locales/zh-CN/harness-agents.mdx +79 -8
  718. package/corpus/core/docs/content/locales/zh-CN/human-approval.mdx +50 -4
  719. package/corpus/core/docs/content/locales/zh-CN/key-concepts.mdx +100 -8
  720. package/corpus/core/docs/content/locales/zh-CN/local-file-mode.mdx +56 -4
  721. package/corpus/core/docs/content/locales/zh-CN/mcp-apps.mdx +120 -10
  722. package/corpus/core/docs/content/locales/zh-CN/mcp-clients.mdx +133 -8
  723. package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +105 -8
  724. package/corpus/core/docs/content/locales/zh-CN/messaging.mdx +115 -8
  725. package/corpus/core/docs/content/locales/zh-CN/migration-workbench.mdx +45 -4
  726. package/corpus/core/docs/content/locales/zh-CN/multi-app-workspace.mdx +91 -8
  727. package/corpus/core/docs/content/locales/zh-CN/multi-tenancy.mdx +80 -8
  728. package/corpus/core/docs/content/locales/zh-CN/native-chat-ui.mdx +104 -8
  729. package/corpus/core/docs/content/locales/zh-CN/notifications.mdx +135 -8
  730. package/corpus/core/docs/content/locales/zh-CN/observability.mdx +102 -8
  731. package/corpus/core/docs/content/locales/zh-CN/observational-memory.mdx +85 -8
  732. package/corpus/core/docs/content/locales/zh-CN/onboarding.mdx +44 -4
  733. package/corpus/core/docs/content/locales/zh-CN/plan-plugin.mdx +97 -8
  734. package/corpus/core/docs/content/locales/zh-CN/pr-visual-recap.mdx +123 -8
  735. package/corpus/core/docs/content/locales/zh-CN/processors.mdx +39 -4
  736. package/corpus/core/docs/content/locales/zh-CN/progress.mdx +46 -4
  737. package/corpus/core/docs/content/locales/zh-CN/pure-agent-apps.mdx +46 -4
  738. package/corpus/core/docs/content/locales/zh-CN/real-time-collaboration.mdx +98 -8
  739. package/corpus/core/docs/content/locales/zh-CN/recurring-jobs.mdx +59 -4
  740. package/corpus/core/docs/content/locales/zh-CN/routing.mdx +42 -5
  741. package/corpus/core/docs/content/locales/zh-CN/sandbox-adapters.mdx +41 -4
  742. package/corpus/core/docs/content/locales/zh-CN/security.mdx +78 -8
  743. package/corpus/core/docs/content/locales/zh-CN/server.mdx +169 -12
  744. package/corpus/core/docs/content/locales/zh-CN/sharing.mdx +45 -4
  745. package/corpus/core/docs/content/locales/zh-CN/skills-guide.mdx +118 -9
  746. package/corpus/core/docs/content/locales/zh-CN/template-analytics.mdx +46 -4
  747. package/corpus/core/docs/content/locales/zh-CN/template-assets.mdx +58 -4
  748. package/corpus/core/docs/content/locales/zh-CN/template-brain.mdx +65 -4
  749. package/corpus/core/docs/content/locales/zh-CN/template-calendar.mdx +58 -4
  750. package/corpus/core/docs/content/locales/zh-CN/template-chat.mdx +57 -4
  751. package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +52 -4
  752. package/corpus/core/docs/content/locales/zh-CN/template-content.mdx +58 -4
  753. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +58 -4
  754. package/corpus/core/docs/content/locales/zh-CN/template-dispatch.mdx +57 -4
  755. package/corpus/core/docs/content/locales/zh-CN/template-forms.mdx +58 -4
  756. package/corpus/core/docs/content/locales/zh-CN/template-mail.mdx +60 -4
  757. package/corpus/core/docs/content/locales/zh-CN/template-plan.mdx +57 -4
  758. package/corpus/core/docs/content/locales/zh-CN/template-slides.mdx +49 -4
  759. package/corpus/core/docs/content/locales/zh-CN/template-videos.mdx +51 -4
  760. package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +54 -4
  761. package/corpus/core/docs/content/locales/zh-CN/using-your-agent.mdx +51 -4
  762. package/corpus/core/docs/content/locales/zh-CN/voice-input.mdx +43 -4
  763. package/corpus/core/docs/content/locales/zh-CN/what-is-agent-native.mdx +94 -8
  764. package/corpus/core/docs/content/locales/zh-CN/workspace-connections.mdx +126 -8
  765. package/corpus/core/docs/content/locales/zh-CN/workspace-management.mdx +50 -4
  766. package/corpus/core/docs/content/locales/zh-CN/workspace.mdx +110 -8
  767. package/corpus/core/docs/content/locales/zh-CN/writing-agent-instructions.mdx +38 -4
  768. package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.mdx +97 -9
  769. package/corpus/core/docs/content/locales/zh-TW/actions.mdx +63 -4
  770. package/corpus/core/docs/content/locales/zh-TW/agent-mentions.mdx +68 -4
  771. package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.mdx +108 -8
  772. package/corpus/core/docs/content/locales/zh-TW/agent-teams.mdx +171 -12
  773. package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.mdx +51 -4
  774. package/corpus/core/docs/content/locales/zh-TW/authentication.mdx +122 -8
  775. package/corpus/core/docs/content/locales/zh-TW/automations.mdx +110 -8
  776. package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.mdx +42 -4
  777. package/corpus/core/docs/content/locales/zh-TW/cli-adapters.mdx +44 -4
  778. package/corpus/core/docs/content/locales/zh-TW/client.mdx +79 -8
  779. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.mdx +83 -8
  780. package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.mdx +94 -8
  781. package/corpus/core/docs/content/locales/zh-TW/components.mdx +112 -8
  782. package/corpus/core/docs/content/locales/zh-TW/context-awareness.mdx +96 -8
  783. package/corpus/core/docs/content/locales/zh-TW/creating-templates.mdx +51 -4
  784. package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.mdx +107 -8
  785. package/corpus/core/docs/content/locales/zh-TW/database.mdx +52 -4
  786. package/corpus/core/docs/content/locales/zh-TW/deployment.mdx +103 -8
  787. package/corpus/core/docs/content/locales/zh-TW/dispatch.mdx +134 -8
  788. package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.mdx +63 -4
  789. package/corpus/core/docs/content/locales/zh-TW/durable-background-runs.mdx +88 -8
  790. package/corpus/core/docs/content/locales/zh-TW/durable-resume.mdx +45 -4
  791. package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.mdx +83 -8
  792. package/corpus/core/docs/content/locales/zh-TW/evals.mdx +100 -8
  793. package/corpus/core/docs/content/locales/zh-TW/extensions.mdx +111 -9
  794. package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +119 -8
  795. package/corpus/core/docs/content/locales/zh-TW/faq.mdx +96 -8
  796. package/corpus/core/docs/content/locales/zh-TW/file-uploads.mdx +61 -4
  797. package/corpus/core/docs/content/locales/zh-TW/frames.mdx +86 -8
  798. package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +34 -4
  799. package/corpus/core/docs/content/locales/zh-TW/harness-agents.mdx +79 -8
  800. package/corpus/core/docs/content/locales/zh-TW/human-approval.mdx +50 -4
  801. package/corpus/core/docs/content/locales/zh-TW/key-concepts.mdx +100 -8
  802. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.mdx +56 -4
  803. package/corpus/core/docs/content/locales/zh-TW/mcp-apps.mdx +120 -10
  804. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.mdx +133 -8
  805. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +105 -8
  806. package/corpus/core/docs/content/locales/zh-TW/messaging.mdx +115 -8
  807. package/corpus/core/docs/content/locales/zh-TW/migration-workbench.mdx +45 -4
  808. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.mdx +91 -8
  809. package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.mdx +80 -8
  810. package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.mdx +104 -8
  811. package/corpus/core/docs/content/locales/zh-TW/notifications.mdx +135 -8
  812. package/corpus/core/docs/content/locales/zh-TW/observability.mdx +102 -8
  813. package/corpus/core/docs/content/locales/zh-TW/observational-memory.mdx +85 -8
  814. package/corpus/core/docs/content/locales/zh-TW/onboarding.mdx +44 -4
  815. package/corpus/core/docs/content/locales/zh-TW/plan-plugin.mdx +97 -8
  816. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.mdx +123 -8
  817. package/corpus/core/docs/content/locales/zh-TW/processors.mdx +39 -4
  818. package/corpus/core/docs/content/locales/zh-TW/progress.mdx +46 -4
  819. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.mdx +46 -4
  820. package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.mdx +98 -8
  821. package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.mdx +59 -4
  822. package/corpus/core/docs/content/locales/zh-TW/routing.mdx +42 -5
  823. package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.mdx +41 -4
  824. package/corpus/core/docs/content/locales/zh-TW/security.mdx +80 -8
  825. package/corpus/core/docs/content/locales/zh-TW/server.mdx +169 -12
  826. package/corpus/core/docs/content/locales/zh-TW/sharing.mdx +45 -4
  827. package/corpus/core/docs/content/locales/zh-TW/skills-guide.mdx +118 -9
  828. package/corpus/core/docs/content/locales/zh-TW/template-analytics.mdx +46 -4
  829. package/corpus/core/docs/content/locales/zh-TW/template-assets.mdx +58 -4
  830. package/corpus/core/docs/content/locales/zh-TW/template-brain.mdx +65 -4
  831. package/corpus/core/docs/content/locales/zh-TW/template-calendar.mdx +58 -4
  832. package/corpus/core/docs/content/locales/zh-TW/template-chat.mdx +59 -4
  833. package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +52 -4
  834. package/corpus/core/docs/content/locales/zh-TW/template-content.mdx +58 -4
  835. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +58 -4
  836. package/corpus/core/docs/content/locales/zh-TW/template-dispatch.mdx +57 -4
  837. package/corpus/core/docs/content/locales/zh-TW/template-forms.mdx +58 -4
  838. package/corpus/core/docs/content/locales/zh-TW/template-mail.mdx +60 -4
  839. package/corpus/core/docs/content/locales/zh-TW/template-plan.mdx +57 -4
  840. package/corpus/core/docs/content/locales/zh-TW/template-slides.mdx +49 -4
  841. package/corpus/core/docs/content/locales/zh-TW/template-videos.mdx +51 -4
  842. package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +54 -4
  843. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.mdx +51 -4
  844. package/corpus/core/docs/content/locales/zh-TW/voice-input.mdx +43 -4
  845. package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.mdx +94 -8
  846. package/corpus/core/docs/content/locales/zh-TW/workspace-connections.mdx +126 -8
  847. package/corpus/core/docs/content/locales/zh-TW/workspace-management.mdx +50 -4
  848. package/corpus/core/docs/content/locales/zh-TW/workspace.mdx +111 -8
  849. package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.mdx +38 -4
  850. package/corpus/core/docs/content/mcp-apps.mdx +120 -10
  851. package/corpus/core/docs/content/mcp-clients.mdx +161 -8
  852. package/corpus/core/docs/content/mcp-protocol.mdx +105 -8
  853. package/corpus/core/docs/content/messaging.mdx +115 -8
  854. package/corpus/core/docs/content/migration-workbench.mdx +45 -4
  855. package/corpus/core/docs/content/multi-app-workspace.mdx +91 -8
  856. package/corpus/core/docs/content/multi-tenancy.mdx +80 -8
  857. package/corpus/core/docs/content/native-chat-ui.mdx +106 -8
  858. package/corpus/core/docs/content/notifications.mdx +135 -8
  859. package/corpus/core/docs/content/observability.mdx +102 -8
  860. package/corpus/core/docs/content/observational-memory.mdx +89 -8
  861. package/corpus/core/docs/content/onboarding.mdx +45 -4
  862. package/corpus/core/docs/content/plan-plugin.mdx +99 -8
  863. package/corpus/core/docs/content/pr-visual-recap.mdx +125 -8
  864. package/corpus/core/docs/content/processors.mdx +41 -4
  865. package/corpus/core/docs/content/progress.mdx +46 -4
  866. package/corpus/core/docs/content/pure-agent-apps.mdx +46 -4
  867. package/corpus/core/docs/content/real-time-collaboration.mdx +104 -8
  868. package/corpus/core/docs/content/recurring-jobs.mdx +59 -4
  869. package/corpus/core/docs/content/routing.mdx +44 -5
  870. package/corpus/core/docs/content/sandbox-adapters.mdx +43 -4
  871. package/corpus/core/docs/content/security.mdx +80 -8
  872. package/corpus/core/docs/content/server.mdx +173 -12
  873. package/corpus/core/docs/content/sharing.mdx +45 -4
  874. package/corpus/core/docs/content/skills-guide.mdx +118 -9
  875. package/corpus/core/docs/content/template-analytics.mdx +46 -4
  876. package/corpus/core/docs/content/template-assets.mdx +60 -4
  877. package/corpus/core/docs/content/template-brain.mdx +67 -4
  878. package/corpus/core/docs/content/template-calendar.mdx +62 -4
  879. package/corpus/core/docs/content/template-chat.mdx +61 -4
  880. package/corpus/core/docs/content/template-clips.mdx +52 -4
  881. package/corpus/core/docs/content/template-content.mdx +60 -4
  882. package/corpus/core/docs/content/template-design.mdx +58 -4
  883. package/corpus/core/docs/content/template-dispatch.mdx +57 -4
  884. package/corpus/core/docs/content/template-forms.mdx +62 -4
  885. package/corpus/core/docs/content/template-mail.mdx +60 -4
  886. package/corpus/core/docs/content/template-plan.mdx +61 -4
  887. package/corpus/core/docs/content/template-slides.mdx +49 -4
  888. package/corpus/core/docs/content/template-videos.mdx +51 -4
  889. package/corpus/core/docs/content/tracking.mdx +54 -4
  890. package/corpus/core/docs/content/using-your-agent.mdx +51 -4
  891. package/corpus/core/docs/content/voice-input.mdx +43 -4
  892. package/corpus/core/docs/content/what-is-agent-native.mdx +188 -8
  893. package/corpus/core/docs/content/workspace-connections.mdx +128 -8
  894. package/corpus/core/docs/content/workspace-management.mdx +50 -4
  895. package/corpus/core/docs/content/workspace.mdx +111 -8
  896. package/corpus/core/docs/content/writing-agent-instructions.mdx +45 -4
  897. package/corpus/core/package.json +1 -1
  898. package/corpus/core/src/application-state/store.ts +5 -5
  899. package/corpus/core/src/chat-threads/store.ts +2 -2
  900. package/corpus/core/src/cli/content-local.ts +374 -0
  901. package/corpus/core/src/cli/index.ts +17 -0
  902. package/corpus/core/src/cli/skills.ts +229 -197
  903. package/corpus/core/src/client/AssistantChat.tsx +4 -4
  904. package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -93
  905. package/corpus/core/src/client/analytics.ts +68 -15
  906. package/corpus/core/src/client/blocks/index.ts +2 -0
  907. package/corpus/core/src/client/blocks/library/diagram.config.ts +42 -18
  908. package/corpus/core/src/client/blocks/library/sanitize-html.ts +71 -6
  909. package/corpus/core/src/client/blocks/library/wireframe-kit.tsx +2 -2
  910. package/corpus/core/src/client/blocks/library/wireframe.tsx +8 -2
  911. package/corpus/core/src/client/blocks/mdx.ts +62 -1
  912. package/corpus/core/src/client/blocks/server.ts +2 -0
  913. package/corpus/core/src/client/blocks/types.ts +5 -4
  914. package/corpus/core/src/client/chat/message-components.tsx +3 -99
  915. package/corpus/core/src/client/chat-model-groups.ts +148 -0
  916. package/corpus/core/src/client/components/ui/dialog.tsx +91 -0
  917. package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +33 -290
  918. package/corpus/core/src/client/index.ts +2 -0
  919. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +614 -0
  920. package/corpus/core/src/client/resources/ResourcesPanel.tsx +411 -644
  921. package/corpus/core/src/client/resources/mcp-integration-catalog.ts +239 -0
  922. package/corpus/core/src/client/settings/SettingsPanel.tsx +1 -1
  923. package/corpus/core/src/client/use-chat-models.ts +12 -104
  924. package/corpus/core/src/db/client.ts +0 -5
  925. package/corpus/core/src/integrations/adapters/email.ts +2 -2
  926. package/corpus/core/src/local-artifacts/index.ts +18 -0
  927. package/corpus/core/src/localization/default-messages.ts +81 -0
  928. package/corpus/core/src/localization/shared.ts +3 -3
  929. package/corpus/core/src/org/handlers.ts +2 -2
  930. package/corpus/core/src/resources/store.ts +7 -7
  931. package/corpus/core/src/server/auth.ts +7 -0
  932. package/corpus/core/src/server/core-routes-plugin.ts +34 -12
  933. package/corpus/core/src/shared/mcp-integration-config.ts +101 -0
  934. package/corpus/core/src/styles/agent-native.css +6 -104
  935. package/corpus/core/src/styles/blocks.css +15 -3
  936. package/corpus/core/src/vite/client.ts +17 -0
  937. package/corpus/templates/analytics/app/global.css +22 -0
  938. package/corpus/templates/analytics/app/i18n/zh-TW.ts +1 -0
  939. package/corpus/templates/analytics/app/i18n-data.ts +1 -0
  940. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +25 -10
  941. package/corpus/templates/analytics/changelog/2026-06-28-sessions-shows-scoped-recordings-even-when-replay-events-are.md +6 -0
  942. package/corpus/templates/analytics/server/lib/session-replay.ts +1 -7
  943. package/corpus/templates/clips/AGENTS.md +4 -0
  944. package/corpus/templates/clips/actions/cleanup-transcript.ts +19 -1
  945. package/corpus/templates/clips/actions/get-builder-credit-status.ts +22 -0
  946. package/corpus/templates/clips/actions/get-recording-player-data.ts +18 -3
  947. package/corpus/templates/clips/actions/lib/builder-credits-state.ts +46 -0
  948. package/corpus/templates/clips/actions/lib/provider-transcript.ts +51 -0
  949. package/corpus/templates/clips/actions/regenerate-title.ts +18 -0
  950. package/corpus/templates/clips/actions/request-transcript.ts +56 -33
  951. package/corpus/templates/clips/actions/save-browser-transcript.ts +1 -17
  952. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +120 -11
  953. package/corpus/templates/clips/app/i18n/ar-SA.ts +25 -0
  954. package/corpus/templates/clips/app/i18n/de-DE.ts +25 -0
  955. package/corpus/templates/clips/app/i18n/en-US.ts +25 -0
  956. package/corpus/templates/clips/app/i18n/es-ES.ts +25 -0
  957. package/corpus/templates/clips/app/i18n/fr-FR.ts +25 -0
  958. package/corpus/templates/clips/app/i18n/hi-IN.ts +25 -0
  959. package/corpus/templates/clips/app/i18n/ja-JP.ts +25 -0
  960. package/corpus/templates/clips/app/i18n/ko-KR.ts +25 -0
  961. package/corpus/templates/clips/app/i18n/pt-BR.ts +25 -0
  962. package/corpus/templates/clips/app/i18n/zh-CN.ts +23 -0
  963. package/corpus/templates/clips/app/i18n/zh-TW.ts +23 -0
  964. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +69 -0
  965. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +52 -2
  966. package/corpus/templates/clips/app/routes/record.tsx +26 -15
  967. package/corpus/templates/clips/changelog/2026-06-28-builder-credit-pauses-show-friendly-upgrade-guidance.md +6 -0
  968. package/corpus/templates/clips/changelog/2026-06-28-transcription-now-auto-detects-spoken-language-instead-of-following.md +6 -0
  969. package/corpus/templates/clips/changelog/2026-06-28-video-uploads-now-finish-when-duration-metadata-is-unavailable.md +6 -0
  970. package/corpus/templates/clips/desktop/src/lib/recorder.ts +40 -0
  971. package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +7 -3
  972. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +30 -2
  973. package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +6 -19
  974. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +4 -3
  975. package/corpus/templates/clips/shared/builder-credits.ts +120 -0
  976. package/corpus/templates/clips/shared/recording-core.ts +26 -8
  977. package/corpus/templates/content/AGENTS.md +23 -2
  978. package/corpus/templates/content/actions/_builder-docs-client.ts +952 -0
  979. package/corpus/templates/content/actions/_document-flush.ts +62 -0
  980. package/corpus/templates/content/actions/_local-file-documents.ts +115 -18
  981. package/corpus/templates/content/actions/check-builder-doc.ts +38 -0
  982. package/corpus/templates/content/actions/delete-document.ts +8 -0
  983. package/corpus/templates/content/actions/import-content-source.ts +12 -0
  984. package/corpus/templates/content/actions/list-builder-docs.ts +29 -0
  985. package/corpus/templates/content/actions/pull-builder-doc.ts +42 -0
  986. package/corpus/templates/content/actions/pull-document.ts +9 -59
  987. package/corpus/templates/content/actions/push-builder-doc.ts +45 -0
  988. package/corpus/templates/content/app/blocks/BuilderDocsBlocks.tsx +254 -0
  989. package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -0
  990. package/corpus/templates/content/server/db/schema.ts +12 -0
  991. package/corpus/templates/content/server/plugins/db.ts +23 -0
  992. package/corpus/templates/content/shared/api.ts +1 -0
  993. package/corpus/templates/content/shared/builder-docs-blocks.ts +361 -0
  994. package/corpus/templates/content/shared/builder-mdx.ts +1037 -0
  995. package/corpus/templates/content/shared/content-source.ts +6 -0
  996. package/corpus/templates/content/shared/nfm-registry.ts +4 -0
  997. package/corpus/templates/content/vite.config.ts +13 -0
  998. package/corpus/templates/plan/.agents/skills/visual-plan/SKILL.md +25 -92
  999. package/corpus/templates/plan/.agents/skills/visual-plan/references/connection.md +51 -0
  1000. package/corpus/templates/plan/.agents/skills/visual-plan/references/document-quality.md +5 -1
  1001. package/corpus/templates/plan/.agents/skills/visual-plan/references/local-files.md +85 -0
  1002. package/corpus/templates/plan/.agents/skills/visual-plan/references/wireframe.md +21 -0
  1003. package/corpus/templates/plan/.agents/skills/visual-recap/SKILL.md +32 -104
  1004. package/corpus/templates/plan/.agents/skills/visual-recap/references/connection.md +51 -0
  1005. package/corpus/templates/plan/.agents/skills/visual-recap/references/local-files.md +85 -0
  1006. package/corpus/templates/plan/.agents/skills/visual-recap/references/wireframe.md +21 -0
  1007. package/corpus/templates/plan/actions/create-prototype-plan.ts +1 -1
  1008. package/corpus/templates/plan/actions/delete-visual-plan.ts +2 -2
  1009. package/corpus/templates/plan/actions/get-plan-blocks.ts +2 -0
  1010. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +25 -29
  1011. package/corpus/templates/plan/app/components/plan/wireframe/Wireframe.tsx +9 -4
  1012. package/corpus/templates/plan/app/components/plan/wireframe/html-artboard.css +15 -3
  1013. package/corpus/templates/plan/app/components/plan/wireframe/kit/rough.tsx +6 -6
  1014. package/corpus/templates/plan/app/components/plan/wireframe/sanitize-html.ts +71 -6
  1015. package/corpus/templates/plan/app/global.css +6 -3
  1016. package/corpus/templates/plan/app/root.tsx +31 -1
  1017. package/corpus/templates/plan/changelog/2026-06-28-plan-canvases-stay-stable-while-panning-and-zooming-in-chrom.md +6 -0
  1018. package/corpus/templates/plan/changelog/2026-06-28-plan-wireframes-avoid-overlapping-sketch-lines-in-dense-mockups.md +6 -0
  1019. package/corpus/templates/plan/changelog/2026-06-28-plan-wireframes-ignore-host-color-utility-classes-so-canvas-.md +6 -0
  1020. package/corpus/templates/plan/changelog/2026-06-28-wireframe-style-can-now-be-switched-between-sketchy-and-clean.md +6 -0
  1021. package/corpus/templates/plan/server/plan-content.ts +62 -3
  1022. package/corpus/templates/plan/server/plan-mdx.ts +177 -2
  1023. package/dist/application-state/store.js +5 -5
  1024. package/dist/application-state/store.js.map +1 -1
  1025. package/dist/chat-threads/store.js +2 -2
  1026. package/dist/chat-threads/store.js.map +1 -1
  1027. package/dist/cli/content-local.d.ts +31 -0
  1028. package/dist/cli/content-local.d.ts.map +1 -0
  1029. package/dist/cli/content-local.js +300 -0
  1030. package/dist/cli/content-local.js.map +1 -0
  1031. package/dist/cli/index.js +16 -0
  1032. package/dist/cli/index.js.map +1 -1
  1033. package/dist/cli/skills.d.ts +10 -4
  1034. package/dist/cli/skills.d.ts.map +1 -1
  1035. package/dist/cli/skills.js +227 -197
  1036. package/dist/cli/skills.js.map +1 -1
  1037. package/dist/client/AssistantChat.js +4 -4
  1038. package/dist/client/AssistantChat.js.map +1 -1
  1039. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  1040. package/dist/client/MultiTabAssistantChat.js +8 -69
  1041. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  1042. package/dist/client/analytics.d.ts.map +1 -1
  1043. package/dist/client/analytics.js +48 -13
  1044. package/dist/client/analytics.js.map +1 -1
  1045. package/dist/client/blocks/index.d.ts +1 -1
  1046. package/dist/client/blocks/index.d.ts.map +1 -1
  1047. package/dist/client/blocks/index.js +1 -1
  1048. package/dist/client/blocks/index.js.map +1 -1
  1049. package/dist/client/blocks/library/diagram.config.d.ts +9 -9
  1050. package/dist/client/blocks/library/diagram.config.d.ts.map +1 -1
  1051. package/dist/client/blocks/library/diagram.config.js +36 -12
  1052. package/dist/client/blocks/library/diagram.config.js.map +1 -1
  1053. package/dist/client/blocks/library/sanitize-html.d.ts +3 -1
  1054. package/dist/client/blocks/library/sanitize-html.d.ts.map +1 -1
  1055. package/dist/client/blocks/library/sanitize-html.js +53 -5
  1056. package/dist/client/blocks/library/sanitize-html.js.map +1 -1
  1057. package/dist/client/blocks/library/wireframe-kit.d.ts +2 -2
  1058. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  1059. package/dist/client/blocks/library/wireframe-kit.js +2 -2
  1060. package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
  1061. package/dist/client/blocks/library/wireframe.d.ts.map +1 -1
  1062. package/dist/client/blocks/library/wireframe.js +4 -1
  1063. package/dist/client/blocks/library/wireframe.js.map +1 -1
  1064. package/dist/client/blocks/mdx.d.ts +11 -0
  1065. package/dist/client/blocks/mdx.d.ts.map +1 -1
  1066. package/dist/client/blocks/mdx.js +47 -1
  1067. package/dist/client/blocks/mdx.js.map +1 -1
  1068. package/dist/client/blocks/server.d.ts +1 -1
  1069. package/dist/client/blocks/server.d.ts.map +1 -1
  1070. package/dist/client/blocks/server.js +1 -1
  1071. package/dist/client/blocks/server.js.map +1 -1
  1072. package/dist/client/blocks/types.d.ts +5 -4
  1073. package/dist/client/blocks/types.d.ts.map +1 -1
  1074. package/dist/client/blocks/types.js.map +1 -1
  1075. package/dist/client/chat/message-components.d.ts.map +1 -1
  1076. package/dist/client/chat/message-components.js +3 -13
  1077. package/dist/client/chat/message-components.js.map +1 -1
  1078. package/dist/client/chat-model-groups.d.ts +22 -0
  1079. package/dist/client/chat-model-groups.d.ts.map +1 -0
  1080. package/dist/client/chat-model-groups.js +94 -0
  1081. package/dist/client/chat-model-groups.js.map +1 -0
  1082. package/dist/client/components/ui/dialog.d.ts +14 -0
  1083. package/dist/client/components/ui/dialog.d.ts.map +1 -0
  1084. package/dist/client/components/ui/dialog.js +21 -0
  1085. package/dist/client/components/ui/dialog.js.map +1 -0
  1086. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  1087. package/dist/client/composer/ComposerPlusMenu.js +24 -149
  1088. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  1089. package/dist/client/index.d.ts +1 -1
  1090. package/dist/client/index.d.ts.map +1 -1
  1091. package/dist/client/index.js +1 -1
  1092. package/dist/client/index.js.map +1 -1
  1093. package/dist/client/resources/McpIntegrationDialog.d.ts +13 -0
  1094. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -0
  1095. package/dist/client/resources/McpIntegrationDialog.js +261 -0
  1096. package/dist/client/resources/McpIntegrationDialog.js.map +1 -0
  1097. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  1098. package/dist/client/resources/ResourcesPanel.js +74 -190
  1099. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  1100. package/dist/client/resources/mcp-integration-catalog.d.ts +30 -0
  1101. package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -0
  1102. package/dist/client/resources/mcp-integration-catalog.js +191 -0
  1103. package/dist/client/resources/mcp-integration-catalog.js.map +1 -0
  1104. package/dist/client/settings/SettingsPanel.js +1 -1
  1105. package/dist/client/settings/SettingsPanel.js.map +1 -1
  1106. package/dist/client/use-chat-models.d.ts +2 -7
  1107. package/dist/client/use-chat-models.d.ts.map +1 -1
  1108. package/dist/client/use-chat-models.js +8 -78
  1109. package/dist/client/use-chat-models.js.map +1 -1
  1110. package/dist/collab/routes.d.ts +2 -2
  1111. package/dist/db/client.d.ts.map +1 -1
  1112. package/dist/db/client.js +0 -5
  1113. package/dist/db/client.js.map +1 -1
  1114. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  1115. package/dist/integrations/adapters/email.js +2 -2
  1116. package/dist/integrations/adapters/email.js.map +1 -1
  1117. package/dist/local-artifacts/index.d.ts +6 -0
  1118. package/dist/local-artifacts/index.d.ts.map +1 -1
  1119. package/dist/local-artifacts/index.js +12 -0
  1120. package/dist/local-artifacts/index.js.map +1 -1
  1121. package/dist/localization/default-messages.d.ts +76 -0
  1122. package/dist/localization/default-messages.d.ts.map +1 -1
  1123. package/dist/localization/default-messages.js +76 -0
  1124. package/dist/localization/default-messages.js.map +1 -1
  1125. package/dist/localization/shared.d.ts +1 -1
  1126. package/dist/localization/shared.js +3 -3
  1127. package/dist/localization/shared.js.map +1 -1
  1128. package/dist/notifications/routes.d.ts +3 -3
  1129. package/dist/observability/routes.d.ts +5 -5
  1130. package/dist/org/handlers.js +2 -2
  1131. package/dist/org/handlers.js.map +1 -1
  1132. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  1133. package/dist/resources/handlers.d.ts +1 -1
  1134. package/dist/resources/store.js +7 -7
  1135. package/dist/resources/store.js.map +1 -1
  1136. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  1137. package/dist/server/auth.d.ts.map +1 -1
  1138. package/dist/server/auth.js +8 -0
  1139. package/dist/server/auth.js.map +1 -1
  1140. package/dist/server/core-routes-plugin.d.ts +1 -0
  1141. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  1142. package/dist/server/core-routes-plugin.js +29 -11
  1143. package/dist/server/core-routes-plugin.js.map +1 -1
  1144. package/dist/shared/mcp-integration-config.d.ts +27 -0
  1145. package/dist/shared/mcp-integration-config.d.ts.map +1 -0
  1146. package/dist/shared/mcp-integration-config.js +56 -0
  1147. package/dist/shared/mcp-integration-config.js.map +1 -0
  1148. package/dist/styles/agent-native.css +6 -104
  1149. package/dist/styles/blocks.css +15 -3
  1150. package/dist/vite/client.d.ts +11 -0
  1151. package/dist/vite/client.d.ts.map +1 -1
  1152. package/dist/vite/client.js +2 -0
  1153. package/dist/vite/client.js.map +1 -1
  1154. package/docs/content/a2a-protocol.mdx +97 -9
  1155. package/docs/content/actions.mdx +65 -4
  1156. package/docs/content/agent-mentions.mdx +68 -4
  1157. package/docs/content/agent-surfaces.mdx +112 -8
  1158. package/docs/content/agent-teams.mdx +171 -12
  1159. package/docs/content/agent-web-surfaces.mdx +51 -4
  1160. package/docs/content/authentication.mdx +122 -8
  1161. package/docs/content/automations.mdx +110 -8
  1162. package/docs/content/blueprint-installer.mdx +42 -4
  1163. package/docs/content/cli-adapters.mdx +44 -4
  1164. package/docs/content/client.mdx +79 -8
  1165. package/docs/content/cloneable-saas.mdx +85 -8
  1166. package/docs/content/code-agents-ui.mdx +98 -8
  1167. package/docs/content/components.mdx +118 -8
  1168. package/docs/content/context-awareness.mdx +98 -8
  1169. package/docs/content/creating-templates.mdx +49 -4
  1170. package/docs/content/cross-app-sso.mdx +109 -8
  1171. package/docs/content/database.mdx +56 -4
  1172. package/docs/content/deployment.mdx +103 -8
  1173. package/docs/content/dispatch.mdx +134 -8
  1174. package/docs/content/drop-in-agent.mdx +63 -4
  1175. package/docs/content/durable-background-runs.mdx +98 -8
  1176. package/docs/content/durable-resume.mdx +47 -4
  1177. package/docs/content/embedding-sdk.mdx +83 -8
  1178. package/docs/content/evals.mdx +102 -8
  1179. package/docs/content/extensions.mdx +113 -9
  1180. package/docs/content/external-agents.mdx +119 -8
  1181. package/docs/content/faq.mdx +98 -8
  1182. package/docs/content/file-uploads.mdx +61 -4
  1183. package/docs/content/frames.mdx +90 -8
  1184. package/docs/content/generative-ui.mdx +50 -4
  1185. package/docs/content/getting-started.mdx +34 -4
  1186. package/docs/content/harness-agents.mdx +77 -8
  1187. package/docs/content/human-approval.mdx +50 -4
  1188. package/docs/content/key-concepts.mdx +102 -8
  1189. package/docs/content/local-file-mode.mdx +58 -4
  1190. package/docs/content/locales/ar-SA/a2a-protocol.mdx +97 -9
  1191. package/docs/content/locales/ar-SA/actions.mdx +65 -4
  1192. package/docs/content/locales/ar-SA/agent-mentions.mdx +68 -4
  1193. package/docs/content/locales/ar-SA/agent-surfaces.mdx +114 -8
  1194. package/docs/content/locales/ar-SA/agent-teams.mdx +174 -12
  1195. package/docs/content/locales/ar-SA/agent-web-surfaces.mdx +49 -4
  1196. package/docs/content/locales/ar-SA/authentication.mdx +120 -8
  1197. package/docs/content/locales/ar-SA/automations.mdx +110 -8
  1198. package/docs/content/locales/ar-SA/blueprint-installer.mdx +42 -4
  1199. package/docs/content/locales/ar-SA/cli-adapters.mdx +40 -4
  1200. package/docs/content/locales/ar-SA/client.mdx +80 -8
  1201. package/docs/content/locales/ar-SA/cloneable-saas.mdx +85 -8
  1202. package/docs/content/locales/ar-SA/code-agents-ui.mdx +99 -8
  1203. package/docs/content/locales/ar-SA/components.mdx +114 -8
  1204. package/docs/content/locales/ar-SA/context-awareness.mdx +100 -8
  1205. package/docs/content/locales/ar-SA/creating-templates.mdx +51 -4
  1206. package/docs/content/locales/ar-SA/cross-app-sso.mdx +109 -8
  1207. package/docs/content/locales/ar-SA/database.mdx +52 -4
  1208. package/docs/content/locales/ar-SA/deployment.mdx +103 -8
  1209. package/docs/content/locales/ar-SA/dispatch.mdx +134 -8
  1210. package/docs/content/locales/ar-SA/drop-in-agent.mdx +63 -4
  1211. package/docs/content/locales/ar-SA/durable-resume.mdx +47 -4
  1212. package/docs/content/locales/ar-SA/embedding-sdk.mdx +83 -8
  1213. package/docs/content/locales/ar-SA/evals.mdx +102 -8
  1214. package/docs/content/locales/ar-SA/extensions.mdx +113 -9
  1215. package/docs/content/locales/ar-SA/external-agents.mdx +119 -8
  1216. package/docs/content/locales/ar-SA/faq.mdx +98 -8
  1217. package/docs/content/locales/ar-SA/file-uploads.mdx +61 -4
  1218. package/docs/content/locales/ar-SA/frames.mdx +88 -8
  1219. package/docs/content/locales/ar-SA/getting-started.mdx +34 -4
  1220. package/docs/content/locales/ar-SA/harness-agents.mdx +79 -8
  1221. package/docs/content/locales/ar-SA/human-approval.mdx +50 -4
  1222. package/docs/content/locales/ar-SA/key-concepts.mdx +107 -8
  1223. package/docs/content/locales/ar-SA/local-file-mode.mdx +56 -4
  1224. package/docs/content/locales/ar-SA/mcp-apps.mdx +120 -10
  1225. package/docs/content/locales/ar-SA/mcp-clients.mdx +133 -8
  1226. package/docs/content/locales/ar-SA/mcp-protocol.mdx +105 -8
  1227. package/docs/content/locales/ar-SA/messaging.mdx +115 -8
  1228. package/docs/content/locales/ar-SA/migration-workbench.mdx +47 -4
  1229. package/docs/content/locales/ar-SA/multi-app-workspace.mdx +91 -8
  1230. package/docs/content/locales/ar-SA/multi-tenancy.mdx +80 -8
  1231. package/docs/content/locales/ar-SA/native-chat-ui.mdx +104 -8
  1232. package/docs/content/locales/ar-SA/notifications.mdx +135 -8
  1233. package/docs/content/locales/ar-SA/observability.mdx +102 -8
  1234. package/docs/content/locales/ar-SA/observational-memory.mdx +87 -8
  1235. package/docs/content/locales/ar-SA/onboarding.mdx +45 -4
  1236. package/docs/content/locales/ar-SA/plan-plugin.mdx +99 -8
  1237. package/docs/content/locales/ar-SA/pr-visual-recap.mdx +125 -8
  1238. package/docs/content/locales/ar-SA/processors.mdx +41 -4
  1239. package/docs/content/locales/ar-SA/progress.mdx +46 -4
  1240. package/docs/content/locales/ar-SA/pure-agent-apps.mdx +48 -4
  1241. package/docs/content/locales/ar-SA/real-time-collaboration.mdx +102 -8
  1242. package/docs/content/locales/ar-SA/recurring-jobs.mdx +59 -4
  1243. package/docs/content/locales/ar-SA/routing.mdx +44 -5
  1244. package/docs/content/locales/ar-SA/sandbox-adapters.mdx +43 -4
  1245. package/docs/content/locales/ar-SA/security.mdx +80 -8
  1246. package/docs/content/locales/ar-SA/server.mdx +173 -12
  1247. package/docs/content/locales/ar-SA/sharing.mdx +45 -4
  1248. package/docs/content/locales/ar-SA/skills-guide.mdx +118 -9
  1249. package/docs/content/locales/ar-SA/template-analytics.mdx +46 -4
  1250. package/docs/content/locales/ar-SA/template-assets.mdx +62 -4
  1251. package/docs/content/locales/ar-SA/template-brain.mdx +65 -4
  1252. package/docs/content/locales/ar-SA/template-calendar.mdx +62 -4
  1253. package/docs/content/locales/ar-SA/template-chat.mdx +61 -4
  1254. package/docs/content/locales/ar-SA/template-clips.mdx +52 -4
  1255. package/docs/content/locales/ar-SA/template-content.mdx +62 -4
  1256. package/docs/content/locales/ar-SA/template-design.mdx +60 -4
  1257. package/docs/content/locales/ar-SA/template-dispatch.mdx +57 -4
  1258. package/docs/content/locales/ar-SA/template-forms.mdx +62 -4
  1259. package/docs/content/locales/ar-SA/template-mail.mdx +60 -4
  1260. package/docs/content/locales/ar-SA/template-plan.mdx +61 -4
  1261. package/docs/content/locales/ar-SA/template-slides.mdx +49 -4
  1262. package/docs/content/locales/ar-SA/template-videos.mdx +53 -4
  1263. package/docs/content/locales/ar-SA/tracking.mdx +54 -4
  1264. package/docs/content/locales/ar-SA/using-your-agent.mdx +51 -4
  1265. package/docs/content/locales/ar-SA/voice-input.mdx +43 -4
  1266. package/docs/content/locales/ar-SA/what-is-agent-native.mdx +96 -8
  1267. package/docs/content/locales/ar-SA/workspace-connections.mdx +128 -8
  1268. package/docs/content/locales/ar-SA/workspace-management.mdx +50 -4
  1269. package/docs/content/locales/ar-SA/workspace.mdx +112 -8
  1270. package/docs/content/locales/ar-SA/writing-agent-instructions.mdx +41 -4
  1271. package/docs/content/locales/de-DE/a2a-protocol.mdx +99 -9
  1272. package/docs/content/locales/de-DE/actions.mdx +67 -4
  1273. package/docs/content/locales/de-DE/agent-mentions.mdx +68 -4
  1274. package/docs/content/locales/de-DE/agent-surfaces.mdx +116 -8
  1275. package/docs/content/locales/de-DE/agent-teams.mdx +171 -12
  1276. package/docs/content/locales/de-DE/agent-web-surfaces.mdx +51 -4
  1277. package/docs/content/locales/de-DE/authentication.mdx +122 -8
  1278. package/docs/content/locales/de-DE/automations.mdx +110 -8
  1279. package/docs/content/locales/de-DE/blueprint-installer.mdx +42 -4
  1280. package/docs/content/locales/de-DE/cli-adapters.mdx +44 -4
  1281. package/docs/content/locales/de-DE/client.mdx +79 -8
  1282. package/docs/content/locales/de-DE/cloneable-saas.mdx +85 -8
  1283. package/docs/content/locales/de-DE/code-agents-ui.mdx +100 -8
  1284. package/docs/content/locales/de-DE/components.mdx +118 -8
  1285. package/docs/content/locales/de-DE/context-awareness.mdx +98 -8
  1286. package/docs/content/locales/de-DE/creating-templates.mdx +51 -4
  1287. package/docs/content/locales/de-DE/cross-app-sso.mdx +109 -8
  1288. package/docs/content/locales/de-DE/database.mdx +52 -4
  1289. package/docs/content/locales/de-DE/deployment.mdx +103 -8
  1290. package/docs/content/locales/de-DE/dispatch.mdx +134 -8
  1291. package/docs/content/locales/de-DE/drop-in-agent.mdx +63 -4
  1292. package/docs/content/locales/de-DE/durable-resume.mdx +47 -4
  1293. package/docs/content/locales/de-DE/embedding-sdk.mdx +85 -8
  1294. package/docs/content/locales/de-DE/evals.mdx +102 -8
  1295. package/docs/content/locales/de-DE/extensions.mdx +113 -9
  1296. package/docs/content/locales/de-DE/external-agents.mdx +119 -8
  1297. package/docs/content/locales/de-DE/faq.mdx +98 -8
  1298. package/docs/content/locales/de-DE/file-uploads.mdx +61 -4
  1299. package/docs/content/locales/de-DE/frames.mdx +88 -8
  1300. package/docs/content/locales/de-DE/getting-started.mdx +34 -4
  1301. package/docs/content/locales/de-DE/harness-agents.mdx +79 -8
  1302. package/docs/content/locales/de-DE/human-approval.mdx +50 -4
  1303. package/docs/content/locales/de-DE/key-concepts.mdx +104 -8
  1304. package/docs/content/locales/de-DE/local-file-mode.mdx +58 -4
  1305. package/docs/content/locales/de-DE/mcp-apps.mdx +120 -10
  1306. package/docs/content/locales/de-DE/mcp-clients.mdx +133 -8
  1307. package/docs/content/locales/de-DE/mcp-protocol.mdx +105 -8
  1308. package/docs/content/locales/de-DE/messaging.mdx +115 -8
  1309. package/docs/content/locales/de-DE/migration-workbench.mdx +47 -4
  1310. package/docs/content/locales/de-DE/multi-app-workspace.mdx +91 -8
  1311. package/docs/content/locales/de-DE/multi-tenancy.mdx +80 -8
  1312. package/docs/content/locales/de-DE/native-chat-ui.mdx +108 -8
  1313. package/docs/content/locales/de-DE/notifications.mdx +135 -8
  1314. package/docs/content/locales/de-DE/observability.mdx +102 -8
  1315. package/docs/content/locales/de-DE/observational-memory.mdx +92 -8
  1316. package/docs/content/locales/de-DE/onboarding.mdx +45 -4
  1317. package/docs/content/locales/de-DE/plan-plugin.mdx +99 -8
  1318. package/docs/content/locales/de-DE/pr-visual-recap.mdx +125 -8
  1319. package/docs/content/locales/de-DE/processors.mdx +41 -4
  1320. package/docs/content/locales/de-DE/progress.mdx +46 -4
  1321. package/docs/content/locales/de-DE/pure-agent-apps.mdx +50 -4
  1322. package/docs/content/locales/de-DE/real-time-collaboration.mdx +104 -8
  1323. package/docs/content/locales/de-DE/recurring-jobs.mdx +59 -4
  1324. package/docs/content/locales/de-DE/routing.mdx +44 -5
  1325. package/docs/content/locales/de-DE/sandbox-adapters.mdx +43 -4
  1326. package/docs/content/locales/de-DE/security.mdx +80 -8
  1327. package/docs/content/locales/de-DE/server.mdx +171 -12
  1328. package/docs/content/locales/de-DE/sharing.mdx +45 -4
  1329. package/docs/content/locales/de-DE/skills-guide.mdx +118 -9
  1330. package/docs/content/locales/de-DE/template-analytics.mdx +46 -4
  1331. package/docs/content/locales/de-DE/template-assets.mdx +62 -4
  1332. package/docs/content/locales/de-DE/template-brain.mdx +69 -4
  1333. package/docs/content/locales/de-DE/template-calendar.mdx +62 -4
  1334. package/docs/content/locales/de-DE/template-chat.mdx +61 -4
  1335. package/docs/content/locales/de-DE/template-clips.mdx +52 -4
  1336. package/docs/content/locales/de-DE/template-content.mdx +60 -4
  1337. package/docs/content/locales/de-DE/template-design.mdx +58 -4
  1338. package/docs/content/locales/de-DE/template-dispatch.mdx +57 -4
  1339. package/docs/content/locales/de-DE/template-forms.mdx +64 -4
  1340. package/docs/content/locales/de-DE/template-mail.mdx +60 -4
  1341. package/docs/content/locales/de-DE/template-plan.mdx +63 -4
  1342. package/docs/content/locales/de-DE/template-slides.mdx +49 -4
  1343. package/docs/content/locales/de-DE/template-videos.mdx +53 -4
  1344. package/docs/content/locales/de-DE/tracking.mdx +54 -4
  1345. package/docs/content/locales/de-DE/using-your-agent.mdx +51 -4
  1346. package/docs/content/locales/de-DE/voice-input.mdx +45 -4
  1347. package/docs/content/locales/de-DE/what-is-agent-native.mdx +100 -8
  1348. package/docs/content/locales/de-DE/workspace-connections.mdx +128 -8
  1349. package/docs/content/locales/de-DE/workspace-management.mdx +50 -4
  1350. package/docs/content/locales/de-DE/workspace.mdx +111 -8
  1351. package/docs/content/locales/de-DE/writing-agent-instructions.mdx +45 -4
  1352. package/docs/content/locales/es-ES/a2a-protocol.mdx +99 -9
  1353. package/docs/content/locales/es-ES/actions.mdx +67 -4
  1354. package/docs/content/locales/es-ES/agent-mentions.mdx +68 -4
  1355. package/docs/content/locales/es-ES/agent-surfaces.mdx +120 -8
  1356. package/docs/content/locales/es-ES/agent-teams.mdx +172 -12
  1357. package/docs/content/locales/es-ES/agent-web-surfaces.mdx +51 -4
  1358. package/docs/content/locales/es-ES/authentication.mdx +122 -8
  1359. package/docs/content/locales/es-ES/automations.mdx +110 -8
  1360. package/docs/content/locales/es-ES/blueprint-installer.mdx +42 -4
  1361. package/docs/content/locales/es-ES/cli-adapters.mdx +44 -4
  1362. package/docs/content/locales/es-ES/client.mdx +79 -8
  1363. package/docs/content/locales/es-ES/cloneable-saas.mdx +85 -8
  1364. package/docs/content/locales/es-ES/code-agents-ui.mdx +101 -8
  1365. package/docs/content/locales/es-ES/components.mdx +118 -8
  1366. package/docs/content/locales/es-ES/context-awareness.mdx +98 -8
  1367. package/docs/content/locales/es-ES/creating-templates.mdx +51 -4
  1368. package/docs/content/locales/es-ES/cross-app-sso.mdx +109 -8
  1369. package/docs/content/locales/es-ES/database.mdx +52 -4
  1370. package/docs/content/locales/es-ES/deployment.mdx +103 -8
  1371. package/docs/content/locales/es-ES/dispatch.mdx +134 -8
  1372. package/docs/content/locales/es-ES/drop-in-agent.mdx +63 -4
  1373. package/docs/content/locales/es-ES/durable-resume.mdx +47 -4
  1374. package/docs/content/locales/es-ES/embedding-sdk.mdx +87 -8
  1375. package/docs/content/locales/es-ES/evals.mdx +102 -8
  1376. package/docs/content/locales/es-ES/extensions.mdx +113 -9
  1377. package/docs/content/locales/es-ES/external-agents.mdx +119 -8
  1378. package/docs/content/locales/es-ES/faq.mdx +98 -8
  1379. package/docs/content/locales/es-ES/file-uploads.mdx +61 -4
  1380. package/docs/content/locales/es-ES/frames.mdx +88 -8
  1381. package/docs/content/locales/es-ES/getting-started.mdx +34 -4
  1382. package/docs/content/locales/es-ES/harness-agents.mdx +79 -8
  1383. package/docs/content/locales/es-ES/human-approval.mdx +50 -4
  1384. package/docs/content/locales/es-ES/key-concepts.mdx +104 -8
  1385. package/docs/content/locales/es-ES/local-file-mode.mdx +60 -4
  1386. package/docs/content/locales/es-ES/mcp-apps.mdx +120 -10
  1387. package/docs/content/locales/es-ES/mcp-clients.mdx +135 -8
  1388. package/docs/content/locales/es-ES/mcp-protocol.mdx +105 -8
  1389. package/docs/content/locales/es-ES/messaging.mdx +115 -8
  1390. package/docs/content/locales/es-ES/migration-workbench.mdx +47 -4
  1391. package/docs/content/locales/es-ES/multi-app-workspace.mdx +91 -8
  1392. package/docs/content/locales/es-ES/multi-tenancy.mdx +80 -8
  1393. package/docs/content/locales/es-ES/native-chat-ui.mdx +108 -8
  1394. package/docs/content/locales/es-ES/notifications.mdx +135 -8
  1395. package/docs/content/locales/es-ES/observability.mdx +104 -8
  1396. package/docs/content/locales/es-ES/observational-memory.mdx +92 -8
  1397. package/docs/content/locales/es-ES/onboarding.mdx +45 -4
  1398. package/docs/content/locales/es-ES/plan-plugin.mdx +99 -8
  1399. package/docs/content/locales/es-ES/pr-visual-recap.mdx +125 -8
  1400. package/docs/content/locales/es-ES/processors.mdx +41 -4
  1401. package/docs/content/locales/es-ES/progress.mdx +46 -4
  1402. package/docs/content/locales/es-ES/pure-agent-apps.mdx +50 -4
  1403. package/docs/content/locales/es-ES/real-time-collaboration.mdx +109 -8
  1404. package/docs/content/locales/es-ES/recurring-jobs.mdx +59 -4
  1405. package/docs/content/locales/es-ES/routing.mdx +44 -5
  1406. package/docs/content/locales/es-ES/sandbox-adapters.mdx +44 -4
  1407. package/docs/content/locales/es-ES/security.mdx +82 -8
  1408. package/docs/content/locales/es-ES/server.mdx +173 -12
  1409. package/docs/content/locales/es-ES/sharing.mdx +45 -4
  1410. package/docs/content/locales/es-ES/skills-guide.mdx +118 -9
  1411. package/docs/content/locales/es-ES/template-analytics.mdx +46 -4
  1412. package/docs/content/locales/es-ES/template-assets.mdx +64 -4
  1413. package/docs/content/locales/es-ES/template-brain.mdx +69 -4
  1414. package/docs/content/locales/es-ES/template-calendar.mdx +62 -4
  1415. package/docs/content/locales/es-ES/template-chat.mdx +61 -4
  1416. package/docs/content/locales/es-ES/template-clips.mdx +52 -4
  1417. package/docs/content/locales/es-ES/template-content.mdx +64 -4
  1418. package/docs/content/locales/es-ES/template-design.mdx +58 -4
  1419. package/docs/content/locales/es-ES/template-dispatch.mdx +57 -4
  1420. package/docs/content/locales/es-ES/template-forms.mdx +64 -4
  1421. package/docs/content/locales/es-ES/template-mail.mdx +60 -4
  1422. package/docs/content/locales/es-ES/template-plan.mdx +61 -4
  1423. package/docs/content/locales/es-ES/template-slides.mdx +49 -4
  1424. package/docs/content/locales/es-ES/template-videos.mdx +53 -4
  1425. package/docs/content/locales/es-ES/tracking.mdx +54 -4
  1426. package/docs/content/locales/es-ES/using-your-agent.mdx +51 -4
  1427. package/docs/content/locales/es-ES/voice-input.mdx +45 -4
  1428. package/docs/content/locales/es-ES/what-is-agent-native.mdx +99 -8
  1429. package/docs/content/locales/es-ES/workspace-connections.mdx +128 -8
  1430. package/docs/content/locales/es-ES/workspace-management.mdx +50 -4
  1431. package/docs/content/locales/es-ES/workspace.mdx +112 -8
  1432. package/docs/content/locales/es-ES/writing-agent-instructions.mdx +46 -4
  1433. package/docs/content/locales/fr-FR/a2a-protocol.mdx +97 -9
  1434. package/docs/content/locales/fr-FR/actions.mdx +67 -4
  1435. package/docs/content/locales/fr-FR/agent-mentions.mdx +68 -4
  1436. package/docs/content/locales/fr-FR/agent-surfaces.mdx +118 -8
  1437. package/docs/content/locales/fr-FR/agent-teams.mdx +172 -12
  1438. package/docs/content/locales/fr-FR/agent-web-surfaces.mdx +51 -4
  1439. package/docs/content/locales/fr-FR/authentication.mdx +122 -8
  1440. package/docs/content/locales/fr-FR/automations.mdx +110 -8
  1441. package/docs/content/locales/fr-FR/blueprint-installer.mdx +42 -4
  1442. package/docs/content/locales/fr-FR/cli-adapters.mdx +44 -4
  1443. package/docs/content/locales/fr-FR/client.mdx +81 -8
  1444. package/docs/content/locales/fr-FR/cloneable-saas.mdx +85 -8
  1445. package/docs/content/locales/fr-FR/code-agents-ui.mdx +102 -8
  1446. package/docs/content/locales/fr-FR/components.mdx +118 -8
  1447. package/docs/content/locales/fr-FR/context-awareness.mdx +98 -8
  1448. package/docs/content/locales/fr-FR/creating-templates.mdx +49 -4
  1449. package/docs/content/locales/fr-FR/cross-app-sso.mdx +109 -8
  1450. package/docs/content/locales/fr-FR/database.mdx +52 -4
  1451. package/docs/content/locales/fr-FR/deployment.mdx +103 -8
  1452. package/docs/content/locales/fr-FR/dispatch.mdx +134 -8
  1453. package/docs/content/locales/fr-FR/drop-in-agent.mdx +63 -4
  1454. package/docs/content/locales/fr-FR/durable-resume.mdx +47 -4
  1455. package/docs/content/locales/fr-FR/embedding-sdk.mdx +87 -8
  1456. package/docs/content/locales/fr-FR/evals.mdx +102 -8
  1457. package/docs/content/locales/fr-FR/extensions.mdx +113 -9
  1458. package/docs/content/locales/fr-FR/external-agents.mdx +119 -8
  1459. package/docs/content/locales/fr-FR/faq.mdx +98 -8
  1460. package/docs/content/locales/fr-FR/file-uploads.mdx +61 -4
  1461. package/docs/content/locales/fr-FR/frames.mdx +90 -8
  1462. package/docs/content/locales/fr-FR/getting-started.mdx +34 -4
  1463. package/docs/content/locales/fr-FR/harness-agents.mdx +77 -8
  1464. package/docs/content/locales/fr-FR/human-approval.mdx +50 -4
  1465. package/docs/content/locales/fr-FR/key-concepts.mdx +106 -8
  1466. package/docs/content/locales/fr-FR/local-file-mode.mdx +58 -4
  1467. package/docs/content/locales/fr-FR/mcp-apps.mdx +120 -10
  1468. package/docs/content/locales/fr-FR/mcp-clients.mdx +135 -8
  1469. package/docs/content/locales/fr-FR/mcp-protocol.mdx +105 -8
  1470. package/docs/content/locales/fr-FR/messaging.mdx +115 -8
  1471. package/docs/content/locales/fr-FR/migration-workbench.mdx +47 -4
  1472. package/docs/content/locales/fr-FR/multi-app-workspace.mdx +91 -8
  1473. package/docs/content/locales/fr-FR/multi-tenancy.mdx +80 -8
  1474. package/docs/content/locales/fr-FR/native-chat-ui.mdx +108 -8
  1475. package/docs/content/locales/fr-FR/notifications.mdx +135 -8
  1476. package/docs/content/locales/fr-FR/observability.mdx +104 -8
  1477. package/docs/content/locales/fr-FR/observational-memory.mdx +89 -8
  1478. package/docs/content/locales/fr-FR/onboarding.mdx +45 -4
  1479. package/docs/content/locales/fr-FR/plan-plugin.mdx +99 -8
  1480. package/docs/content/locales/fr-FR/pr-visual-recap.mdx +126 -8
  1481. package/docs/content/locales/fr-FR/processors.mdx +41 -4
  1482. package/docs/content/locales/fr-FR/progress.mdx +46 -4
  1483. package/docs/content/locales/fr-FR/pure-agent-apps.mdx +48 -4
  1484. package/docs/content/locales/fr-FR/real-time-collaboration.mdx +107 -8
  1485. package/docs/content/locales/fr-FR/recurring-jobs.mdx +59 -4
  1486. package/docs/content/locales/fr-FR/routing.mdx +44 -5
  1487. package/docs/content/locales/fr-FR/sandbox-adapters.mdx +44 -4
  1488. package/docs/content/locales/fr-FR/security.mdx +82 -8
  1489. package/docs/content/locales/fr-FR/server.mdx +173 -12
  1490. package/docs/content/locales/fr-FR/sharing.mdx +45 -4
  1491. package/docs/content/locales/fr-FR/skills-guide.mdx +118 -9
  1492. package/docs/content/locales/fr-FR/template-analytics.mdx +46 -4
  1493. package/docs/content/locales/fr-FR/template-assets.mdx +66 -4
  1494. package/docs/content/locales/fr-FR/template-brain.mdx +69 -4
  1495. package/docs/content/locales/fr-FR/template-calendar.mdx +62 -4
  1496. package/docs/content/locales/fr-FR/template-chat.mdx +61 -4
  1497. package/docs/content/locales/fr-FR/template-clips.mdx +52 -4
  1498. package/docs/content/locales/fr-FR/template-content.mdx +64 -4
  1499. package/docs/content/locales/fr-FR/template-design.mdx +58 -4
  1500. package/docs/content/locales/fr-FR/template-dispatch.mdx +57 -4
  1501. package/docs/content/locales/fr-FR/template-forms.mdx +64 -4
  1502. package/docs/content/locales/fr-FR/template-mail.mdx +60 -4
  1503. package/docs/content/locales/fr-FR/template-plan.mdx +61 -4
  1504. package/docs/content/locales/fr-FR/template-slides.mdx +49 -4
  1505. package/docs/content/locales/fr-FR/template-videos.mdx +53 -4
  1506. package/docs/content/locales/fr-FR/tracking.mdx +54 -4
  1507. package/docs/content/locales/fr-FR/using-your-agent.mdx +51 -4
  1508. package/docs/content/locales/fr-FR/voice-input.mdx +45 -4
  1509. package/docs/content/locales/fr-FR/what-is-agent-native.mdx +101 -8
  1510. package/docs/content/locales/fr-FR/workspace-connections.mdx +128 -8
  1511. package/docs/content/locales/fr-FR/workspace-management.mdx +50 -4
  1512. package/docs/content/locales/fr-FR/workspace.mdx +112 -8
  1513. package/docs/content/locales/fr-FR/writing-agent-instructions.mdx +47 -4
  1514. package/docs/content/locales/hi-IN/a2a-protocol.mdx +97 -9
  1515. package/docs/content/locales/hi-IN/actions.mdx +63 -4
  1516. package/docs/content/locales/hi-IN/agent-mentions.mdx +68 -4
  1517. package/docs/content/locales/hi-IN/agent-surfaces.mdx +112 -8
  1518. package/docs/content/locales/hi-IN/agent-teams.mdx +171 -12
  1519. package/docs/content/locales/hi-IN/agent-web-surfaces.mdx +51 -4
  1520. package/docs/content/locales/hi-IN/authentication.mdx +122 -8
  1521. package/docs/content/locales/hi-IN/automations.mdx +110 -8
  1522. package/docs/content/locales/hi-IN/blueprint-installer.mdx +42 -4
  1523. package/docs/content/locales/hi-IN/cli-adapters.mdx +44 -4
  1524. package/docs/content/locales/hi-IN/client.mdx +79 -8
  1525. package/docs/content/locales/hi-IN/cloneable-saas.mdx +85 -8
  1526. package/docs/content/locales/hi-IN/code-agents-ui.mdx +96 -8
  1527. package/docs/content/locales/hi-IN/components.mdx +114 -8
  1528. package/docs/content/locales/hi-IN/context-awareness.mdx +102 -8
  1529. package/docs/content/locales/hi-IN/creating-templates.mdx +53 -4
  1530. package/docs/content/locales/hi-IN/cross-app-sso.mdx +109 -8
  1531. package/docs/content/locales/hi-IN/database.mdx +52 -4
  1532. package/docs/content/locales/hi-IN/deployment.mdx +103 -8
  1533. package/docs/content/locales/hi-IN/dispatch.mdx +134 -8
  1534. package/docs/content/locales/hi-IN/drop-in-agent.mdx +63 -4
  1535. package/docs/content/locales/hi-IN/durable-resume.mdx +47 -4
  1536. package/docs/content/locales/hi-IN/embedding-sdk.mdx +83 -8
  1537. package/docs/content/locales/hi-IN/evals.mdx +100 -8
  1538. package/docs/content/locales/hi-IN/extensions.mdx +113 -9
  1539. package/docs/content/locales/hi-IN/external-agents.mdx +119 -8
  1540. package/docs/content/locales/hi-IN/faq.mdx +96 -8
  1541. package/docs/content/locales/hi-IN/file-uploads.mdx +61 -4
  1542. package/docs/content/locales/hi-IN/frames.mdx +88 -8
  1543. package/docs/content/locales/hi-IN/getting-started.mdx +34 -4
  1544. package/docs/content/locales/hi-IN/harness-agents.mdx +77 -8
  1545. package/docs/content/locales/hi-IN/human-approval.mdx +51 -4
  1546. package/docs/content/locales/hi-IN/key-concepts.mdx +104 -8
  1547. package/docs/content/locales/hi-IN/local-file-mode.mdx +58 -4
  1548. package/docs/content/locales/hi-IN/mcp-apps.mdx +120 -10
  1549. package/docs/content/locales/hi-IN/mcp-clients.mdx +133 -8
  1550. package/docs/content/locales/hi-IN/mcp-protocol.mdx +105 -8
  1551. package/docs/content/locales/hi-IN/messaging.mdx +115 -8
  1552. package/docs/content/locales/hi-IN/migration-workbench.mdx +45 -4
  1553. package/docs/content/locales/hi-IN/multi-app-workspace.mdx +91 -8
  1554. package/docs/content/locales/hi-IN/multi-tenancy.mdx +80 -8
  1555. package/docs/content/locales/hi-IN/native-chat-ui.mdx +106 -8
  1556. package/docs/content/locales/hi-IN/notifications.mdx +135 -8
  1557. package/docs/content/locales/hi-IN/observability.mdx +102 -8
  1558. package/docs/content/locales/hi-IN/observational-memory.mdx +89 -8
  1559. package/docs/content/locales/hi-IN/onboarding.mdx +45 -4
  1560. package/docs/content/locales/hi-IN/plan-plugin.mdx +99 -8
  1561. package/docs/content/locales/hi-IN/pr-visual-recap.mdx +126 -8
  1562. package/docs/content/locales/hi-IN/processors.mdx +41 -4
  1563. package/docs/content/locales/hi-IN/progress.mdx +46 -4
  1564. package/docs/content/locales/hi-IN/pure-agent-apps.mdx +48 -4
  1565. package/docs/content/locales/hi-IN/real-time-collaboration.mdx +106 -8
  1566. package/docs/content/locales/hi-IN/recurring-jobs.mdx +59 -4
  1567. package/docs/content/locales/hi-IN/routing.mdx +44 -5
  1568. package/docs/content/locales/hi-IN/sandbox-adapters.mdx +43 -4
  1569. package/docs/content/locales/hi-IN/security.mdx +78 -8
  1570. package/docs/content/locales/hi-IN/server.mdx +169 -12
  1571. package/docs/content/locales/hi-IN/sharing.mdx +45 -4
  1572. package/docs/content/locales/hi-IN/skills-guide.mdx +118 -9
  1573. package/docs/content/locales/hi-IN/template-analytics.mdx +46 -4
  1574. package/docs/content/locales/hi-IN/template-assets.mdx +62 -4
  1575. package/docs/content/locales/hi-IN/template-brain.mdx +69 -4
  1576. package/docs/content/locales/hi-IN/template-calendar.mdx +62 -4
  1577. package/docs/content/locales/hi-IN/template-chat.mdx +59 -4
  1578. package/docs/content/locales/hi-IN/template-clips.mdx +52 -4
  1579. package/docs/content/locales/hi-IN/template-content.mdx +62 -4
  1580. package/docs/content/locales/hi-IN/template-design.mdx +58 -4
  1581. package/docs/content/locales/hi-IN/template-dispatch.mdx +57 -4
  1582. package/docs/content/locales/hi-IN/template-forms.mdx +64 -4
  1583. package/docs/content/locales/hi-IN/template-mail.mdx +64 -4
  1584. package/docs/content/locales/hi-IN/template-plan.mdx +61 -4
  1585. package/docs/content/locales/hi-IN/template-slides.mdx +49 -4
  1586. package/docs/content/locales/hi-IN/template-videos.mdx +53 -4
  1587. package/docs/content/locales/hi-IN/tracking.mdx +54 -4
  1588. package/docs/content/locales/hi-IN/using-your-agent.mdx +51 -4
  1589. package/docs/content/locales/hi-IN/voice-input.mdx +43 -4
  1590. package/docs/content/locales/hi-IN/what-is-agent-native.mdx +97 -8
  1591. package/docs/content/locales/hi-IN/workspace-connections.mdx +128 -8
  1592. package/docs/content/locales/hi-IN/workspace-management.mdx +50 -4
  1593. package/docs/content/locales/hi-IN/workspace.mdx +111 -8
  1594. package/docs/content/locales/hi-IN/writing-agent-instructions.mdx +40 -4
  1595. package/docs/content/locales/ja-JP/a2a-protocol.mdx +97 -9
  1596. package/docs/content/locales/ja-JP/actions.mdx +67 -4
  1597. package/docs/content/locales/ja-JP/agent-mentions.mdx +68 -4
  1598. package/docs/content/locales/ja-JP/agent-surfaces.mdx +116 -8
  1599. package/docs/content/locales/ja-JP/agent-teams.mdx +172 -12
  1600. package/docs/content/locales/ja-JP/agent-web-surfaces.mdx +51 -4
  1601. package/docs/content/locales/ja-JP/authentication.mdx +122 -8
  1602. package/docs/content/locales/ja-JP/automations.mdx +110 -8
  1603. package/docs/content/locales/ja-JP/blueprint-installer.mdx +44 -4
  1604. package/docs/content/locales/ja-JP/cli-adapters.mdx +44 -4
  1605. package/docs/content/locales/ja-JP/client.mdx +79 -8
  1606. package/docs/content/locales/ja-JP/cloneable-saas.mdx +85 -8
  1607. package/docs/content/locales/ja-JP/code-agents-ui.mdx +100 -8
  1608. package/docs/content/locales/ja-JP/components.mdx +116 -8
  1609. package/docs/content/locales/ja-JP/context-awareness.mdx +100 -8
  1610. package/docs/content/locales/ja-JP/creating-templates.mdx +51 -4
  1611. package/docs/content/locales/ja-JP/cross-app-sso.mdx +109 -8
  1612. package/docs/content/locales/ja-JP/database.mdx +52 -4
  1613. package/docs/content/locales/ja-JP/deployment.mdx +103 -8
  1614. package/docs/content/locales/ja-JP/dispatch.mdx +134 -8
  1615. package/docs/content/locales/ja-JP/drop-in-agent.mdx +63 -4
  1616. package/docs/content/locales/ja-JP/durable-resume.mdx +47 -4
  1617. package/docs/content/locales/ja-JP/embedding-sdk.mdx +85 -8
  1618. package/docs/content/locales/ja-JP/evals.mdx +102 -8
  1619. package/docs/content/locales/ja-JP/extensions.mdx +111 -9
  1620. package/docs/content/locales/ja-JP/external-agents.mdx +119 -8
  1621. package/docs/content/locales/ja-JP/faq.mdx +98 -8
  1622. package/docs/content/locales/ja-JP/file-uploads.mdx +61 -4
  1623. package/docs/content/locales/ja-JP/frames.mdx +88 -8
  1624. package/docs/content/locales/ja-JP/getting-started.mdx +34 -4
  1625. package/docs/content/locales/ja-JP/harness-agents.mdx +79 -8
  1626. package/docs/content/locales/ja-JP/human-approval.mdx +50 -4
  1627. package/docs/content/locales/ja-JP/key-concepts.mdx +105 -8
  1628. package/docs/content/locales/ja-JP/local-file-mode.mdx +58 -4
  1629. package/docs/content/locales/ja-JP/mcp-apps.mdx +119 -10
  1630. package/docs/content/locales/ja-JP/mcp-clients.mdx +134 -8
  1631. package/docs/content/locales/ja-JP/mcp-protocol.mdx +105 -8
  1632. package/docs/content/locales/ja-JP/messaging.mdx +115 -8
  1633. package/docs/content/locales/ja-JP/migration-workbench.mdx +47 -4
  1634. package/docs/content/locales/ja-JP/multi-app-workspace.mdx +91 -8
  1635. package/docs/content/locales/ja-JP/multi-tenancy.mdx +80 -8
  1636. package/docs/content/locales/ja-JP/native-chat-ui.mdx +104 -8
  1637. package/docs/content/locales/ja-JP/notifications.mdx +135 -8
  1638. package/docs/content/locales/ja-JP/observability.mdx +104 -8
  1639. package/docs/content/locales/ja-JP/observational-memory.mdx +89 -8
  1640. package/docs/content/locales/ja-JP/onboarding.mdx +45 -4
  1641. package/docs/content/locales/ja-JP/plan-plugin.mdx +99 -8
  1642. package/docs/content/locales/ja-JP/pr-visual-recap.mdx +123 -8
  1643. package/docs/content/locales/ja-JP/processors.mdx +39 -4
  1644. package/docs/content/locales/ja-JP/progress.mdx +46 -4
  1645. package/docs/content/locales/ja-JP/pure-agent-apps.mdx +48 -4
  1646. package/docs/content/locales/ja-JP/real-time-collaboration.mdx +106 -8
  1647. package/docs/content/locales/ja-JP/recurring-jobs.mdx +59 -4
  1648. package/docs/content/locales/ja-JP/routing.mdx +44 -5
  1649. package/docs/content/locales/ja-JP/sandbox-adapters.mdx +43 -4
  1650. package/docs/content/locales/ja-JP/security.mdx +82 -8
  1651. package/docs/content/locales/ja-JP/server.mdx +171 -12
  1652. package/docs/content/locales/ja-JP/sharing.mdx +45 -4
  1653. package/docs/content/locales/ja-JP/skills-guide.mdx +118 -9
  1654. package/docs/content/locales/ja-JP/template-analytics.mdx +46 -4
  1655. package/docs/content/locales/ja-JP/template-assets.mdx +64 -4
  1656. package/docs/content/locales/ja-JP/template-brain.mdx +67 -4
  1657. package/docs/content/locales/ja-JP/template-calendar.mdx +62 -4
  1658. package/docs/content/locales/ja-JP/template-chat.mdx +61 -4
  1659. package/docs/content/locales/ja-JP/template-clips.mdx +52 -4
  1660. package/docs/content/locales/ja-JP/template-content.mdx +62 -4
  1661. package/docs/content/locales/ja-JP/template-design.mdx +60 -4
  1662. package/docs/content/locales/ja-JP/template-dispatch.mdx +57 -4
  1663. package/docs/content/locales/ja-JP/template-forms.mdx +62 -4
  1664. package/docs/content/locales/ja-JP/template-mail.mdx +62 -4
  1665. package/docs/content/locales/ja-JP/template-plan.mdx +63 -4
  1666. package/docs/content/locales/ja-JP/template-slides.mdx +49 -4
  1667. package/docs/content/locales/ja-JP/template-videos.mdx +53 -4
  1668. package/docs/content/locales/ja-JP/tracking.mdx +54 -4
  1669. package/docs/content/locales/ja-JP/using-your-agent.mdx +51 -4
  1670. package/docs/content/locales/ja-JP/voice-input.mdx +43 -4
  1671. package/docs/content/locales/ja-JP/what-is-agent-native.mdx +96 -8
  1672. package/docs/content/locales/ja-JP/workspace-connections.mdx +128 -8
  1673. package/docs/content/locales/ja-JP/workspace-management.mdx +50 -4
  1674. package/docs/content/locales/ja-JP/workspace.mdx +111 -8
  1675. package/docs/content/locales/ja-JP/writing-agent-instructions.mdx +44 -4
  1676. package/docs/content/locales/ko-KR/a2a-protocol.mdx +97 -9
  1677. package/docs/content/locales/ko-KR/actions.mdx +63 -4
  1678. package/docs/content/locales/ko-KR/agent-mentions.mdx +68 -4
  1679. package/docs/content/locales/ko-KR/agent-surfaces.mdx +113 -8
  1680. package/docs/content/locales/ko-KR/agent-teams.mdx +171 -12
  1681. package/docs/content/locales/ko-KR/agent-web-surfaces.mdx +51 -4
  1682. package/docs/content/locales/ko-KR/authentication.mdx +122 -8
  1683. package/docs/content/locales/ko-KR/automations.mdx +110 -8
  1684. package/docs/content/locales/ko-KR/blueprint-installer.mdx +42 -4
  1685. package/docs/content/locales/ko-KR/cli-adapters.mdx +44 -4
  1686. package/docs/content/locales/ko-KR/client.mdx +79 -8
  1687. package/docs/content/locales/ko-KR/cloneable-saas.mdx +85 -8
  1688. package/docs/content/locales/ko-KR/code-agents-ui.mdx +96 -8
  1689. package/docs/content/locales/ko-KR/components.mdx +112 -8
  1690. package/docs/content/locales/ko-KR/context-awareness.mdx +96 -8
  1691. package/docs/content/locales/ko-KR/creating-templates.mdx +51 -4
  1692. package/docs/content/locales/ko-KR/cross-app-sso.mdx +109 -8
  1693. package/docs/content/locales/ko-KR/database.mdx +52 -4
  1694. package/docs/content/locales/ko-KR/deployment.mdx +103 -8
  1695. package/docs/content/locales/ko-KR/dispatch.mdx +132 -8
  1696. package/docs/content/locales/ko-KR/drop-in-agent.mdx +63 -4
  1697. package/docs/content/locales/ko-KR/durable-resume.mdx +47 -4
  1698. package/docs/content/locales/ko-KR/embedding-sdk.mdx +81 -8
  1699. package/docs/content/locales/ko-KR/evals.mdx +102 -8
  1700. package/docs/content/locales/ko-KR/extensions.mdx +111 -9
  1701. package/docs/content/locales/ko-KR/external-agents.mdx +119 -8
  1702. package/docs/content/locales/ko-KR/faq.mdx +96 -8
  1703. package/docs/content/locales/ko-KR/file-uploads.mdx +61 -4
  1704. package/docs/content/locales/ko-KR/frames.mdx +86 -8
  1705. package/docs/content/locales/ko-KR/getting-started.mdx +34 -4
  1706. package/docs/content/locales/ko-KR/harness-agents.mdx +77 -8
  1707. package/docs/content/locales/ko-KR/human-approval.mdx +50 -4
  1708. package/docs/content/locales/ko-KR/key-concepts.mdx +104 -8
  1709. package/docs/content/locales/ko-KR/local-file-mode.mdx +56 -4
  1710. package/docs/content/locales/ko-KR/mcp-apps.mdx +120 -10
  1711. package/docs/content/locales/ko-KR/mcp-clients.mdx +133 -8
  1712. package/docs/content/locales/ko-KR/mcp-protocol.mdx +105 -8
  1713. package/docs/content/locales/ko-KR/messaging.mdx +115 -8
  1714. package/docs/content/locales/ko-KR/migration-workbench.mdx +45 -4
  1715. package/docs/content/locales/ko-KR/multi-app-workspace.mdx +91 -8
  1716. package/docs/content/locales/ko-KR/multi-tenancy.mdx +80 -8
  1717. package/docs/content/locales/ko-KR/native-chat-ui.mdx +104 -8
  1718. package/docs/content/locales/ko-KR/notifications.mdx +135 -8
  1719. package/docs/content/locales/ko-KR/observability.mdx +102 -8
  1720. package/docs/content/locales/ko-KR/observational-memory.mdx +87 -8
  1721. package/docs/content/locales/ko-KR/onboarding.mdx +44 -4
  1722. package/docs/content/locales/ko-KR/plan-plugin.mdx +99 -8
  1723. package/docs/content/locales/ko-KR/pr-visual-recap.mdx +125 -8
  1724. package/docs/content/locales/ko-KR/processors.mdx +39 -4
  1725. package/docs/content/locales/ko-KR/progress.mdx +46 -4
  1726. package/docs/content/locales/ko-KR/pure-agent-apps.mdx +46 -4
  1727. package/docs/content/locales/ko-KR/real-time-collaboration.mdx +104 -8
  1728. package/docs/content/locales/ko-KR/recurring-jobs.mdx +59 -4
  1729. package/docs/content/locales/ko-KR/routing.mdx +44 -5
  1730. package/docs/content/locales/ko-KR/sandbox-adapters.mdx +41 -4
  1731. package/docs/content/locales/ko-KR/security.mdx +78 -8
  1732. package/docs/content/locales/ko-KR/server.mdx +171 -12
  1733. package/docs/content/locales/ko-KR/sharing.mdx +45 -4
  1734. package/docs/content/locales/ko-KR/skills-guide.mdx +118 -9
  1735. package/docs/content/locales/ko-KR/template-analytics.mdx +46 -4
  1736. package/docs/content/locales/ko-KR/template-assets.mdx +62 -4
  1737. package/docs/content/locales/ko-KR/template-brain.mdx +65 -4
  1738. package/docs/content/locales/ko-KR/template-calendar.mdx +60 -4
  1739. package/docs/content/locales/ko-KR/template-chat.mdx +59 -4
  1740. package/docs/content/locales/ko-KR/template-clips.mdx +52 -4
  1741. package/docs/content/locales/ko-KR/template-content.mdx +60 -4
  1742. package/docs/content/locales/ko-KR/template-design.mdx +58 -4
  1743. package/docs/content/locales/ko-KR/template-dispatch.mdx +57 -4
  1744. package/docs/content/locales/ko-KR/template-forms.mdx +60 -4
  1745. package/docs/content/locales/ko-KR/template-mail.mdx +60 -4
  1746. package/docs/content/locales/ko-KR/template-plan.mdx +57 -4
  1747. package/docs/content/locales/ko-KR/template-slides.mdx +49 -4
  1748. package/docs/content/locales/ko-KR/template-videos.mdx +53 -4
  1749. package/docs/content/locales/ko-KR/tracking.mdx +54 -4
  1750. package/docs/content/locales/ko-KR/using-your-agent.mdx +51 -4
  1751. package/docs/content/locales/ko-KR/voice-input.mdx +43 -4
  1752. package/docs/content/locales/ko-KR/what-is-agent-native.mdx +95 -8
  1753. package/docs/content/locales/ko-KR/workspace-connections.mdx +128 -8
  1754. package/docs/content/locales/ko-KR/workspace-management.mdx +50 -4
  1755. package/docs/content/locales/ko-KR/workspace.mdx +111 -8
  1756. package/docs/content/locales/ko-KR/writing-agent-instructions.mdx +38 -4
  1757. package/docs/content/locales/pt-BR/a2a-protocol.mdx +99 -9
  1758. package/docs/content/locales/pt-BR/actions.mdx +67 -4
  1759. package/docs/content/locales/pt-BR/agent-mentions.mdx +68 -4
  1760. package/docs/content/locales/pt-BR/agent-surfaces.mdx +116 -8
  1761. package/docs/content/locales/pt-BR/agent-teams.mdx +172 -12
  1762. package/docs/content/locales/pt-BR/agent-web-surfaces.mdx +51 -4
  1763. package/docs/content/locales/pt-BR/authentication.mdx +122 -8
  1764. package/docs/content/locales/pt-BR/automations.mdx +110 -8
  1765. package/docs/content/locales/pt-BR/blueprint-installer.mdx +42 -4
  1766. package/docs/content/locales/pt-BR/cli-adapters.mdx +44 -4
  1767. package/docs/content/locales/pt-BR/client.mdx +81 -8
  1768. package/docs/content/locales/pt-BR/cloneable-saas.mdx +85 -8
  1769. package/docs/content/locales/pt-BR/code-agents-ui.mdx +98 -8
  1770. package/docs/content/locales/pt-BR/components.mdx +118 -8
  1771. package/docs/content/locales/pt-BR/context-awareness.mdx +100 -8
  1772. package/docs/content/locales/pt-BR/creating-templates.mdx +51 -4
  1773. package/docs/content/locales/pt-BR/cross-app-sso.mdx +109 -8
  1774. package/docs/content/locales/pt-BR/database.mdx +52 -4
  1775. package/docs/content/locales/pt-BR/deployment.mdx +103 -8
  1776. package/docs/content/locales/pt-BR/dispatch.mdx +134 -8
  1777. package/docs/content/locales/pt-BR/drop-in-agent.mdx +63 -4
  1778. package/docs/content/locales/pt-BR/durable-resume.mdx +47 -4
  1779. package/docs/content/locales/pt-BR/embedding-sdk.mdx +87 -8
  1780. package/docs/content/locales/pt-BR/evals.mdx +102 -8
  1781. package/docs/content/locales/pt-BR/extensions.mdx +113 -9
  1782. package/docs/content/locales/pt-BR/external-agents.mdx +119 -8
  1783. package/docs/content/locales/pt-BR/faq.mdx +98 -8
  1784. package/docs/content/locales/pt-BR/file-uploads.mdx +61 -4
  1785. package/docs/content/locales/pt-BR/frames.mdx +88 -8
  1786. package/docs/content/locales/pt-BR/getting-started.mdx +34 -4
  1787. package/docs/content/locales/pt-BR/harness-agents.mdx +79 -8
  1788. package/docs/content/locales/pt-BR/human-approval.mdx +50 -4
  1789. package/docs/content/locales/pt-BR/key-concepts.mdx +104 -8
  1790. package/docs/content/locales/pt-BR/local-file-mode.mdx +60 -4
  1791. package/docs/content/locales/pt-BR/mcp-apps.mdx +120 -10
  1792. package/docs/content/locales/pt-BR/mcp-clients.mdx +133 -8
  1793. package/docs/content/locales/pt-BR/mcp-protocol.mdx +105 -8
  1794. package/docs/content/locales/pt-BR/messaging.mdx +115 -8
  1795. package/docs/content/locales/pt-BR/migration-workbench.mdx +47 -4
  1796. package/docs/content/locales/pt-BR/multi-app-workspace.mdx +91 -8
  1797. package/docs/content/locales/pt-BR/multi-tenancy.mdx +80 -8
  1798. package/docs/content/locales/pt-BR/native-chat-ui.mdx +108 -8
  1799. package/docs/content/locales/pt-BR/notifications.mdx +135 -8
  1800. package/docs/content/locales/pt-BR/observability.mdx +104 -8
  1801. package/docs/content/locales/pt-BR/observational-memory.mdx +92 -8
  1802. package/docs/content/locales/pt-BR/onboarding.mdx +45 -4
  1803. package/docs/content/locales/pt-BR/plan-plugin.mdx +99 -8
  1804. package/docs/content/locales/pt-BR/pr-visual-recap.mdx +125 -8
  1805. package/docs/content/locales/pt-BR/processors.mdx +41 -4
  1806. package/docs/content/locales/pt-BR/progress.mdx +46 -4
  1807. package/docs/content/locales/pt-BR/pure-agent-apps.mdx +48 -4
  1808. package/docs/content/locales/pt-BR/real-time-collaboration.mdx +107 -8
  1809. package/docs/content/locales/pt-BR/recurring-jobs.mdx +59 -4
  1810. package/docs/content/locales/pt-BR/routing.mdx +44 -5
  1811. package/docs/content/locales/pt-BR/sandbox-adapters.mdx +43 -4
  1812. package/docs/content/locales/pt-BR/security.mdx +82 -8
  1813. package/docs/content/locales/pt-BR/server.mdx +173 -12
  1814. package/docs/content/locales/pt-BR/sharing.mdx +45 -4
  1815. package/docs/content/locales/pt-BR/skills-guide.mdx +118 -9
  1816. package/docs/content/locales/pt-BR/template-analytics.mdx +46 -4
  1817. package/docs/content/locales/pt-BR/template-assets.mdx +64 -4
  1818. package/docs/content/locales/pt-BR/template-brain.mdx +69 -4
  1819. package/docs/content/locales/pt-BR/template-calendar.mdx +62 -4
  1820. package/docs/content/locales/pt-BR/template-chat.mdx +61 -4
  1821. package/docs/content/locales/pt-BR/template-clips.mdx +52 -4
  1822. package/docs/content/locales/pt-BR/template-content.mdx +64 -4
  1823. package/docs/content/locales/pt-BR/template-design.mdx +58 -4
  1824. package/docs/content/locales/pt-BR/template-dispatch.mdx +57 -4
  1825. package/docs/content/locales/pt-BR/template-forms.mdx +64 -4
  1826. package/docs/content/locales/pt-BR/template-mail.mdx +60 -4
  1827. package/docs/content/locales/pt-BR/template-plan.mdx +63 -4
  1828. package/docs/content/locales/pt-BR/template-slides.mdx +49 -4
  1829. package/docs/content/locales/pt-BR/template-videos.mdx +53 -4
  1830. package/docs/content/locales/pt-BR/tracking.mdx +54 -4
  1831. package/docs/content/locales/pt-BR/using-your-agent.mdx +51 -4
  1832. package/docs/content/locales/pt-BR/voice-input.mdx +43 -4
  1833. package/docs/content/locales/pt-BR/what-is-agent-native.mdx +101 -8
  1834. package/docs/content/locales/pt-BR/workspace-connections.mdx +128 -8
  1835. package/docs/content/locales/pt-BR/workspace-management.mdx +50 -4
  1836. package/docs/content/locales/pt-BR/workspace.mdx +111 -8
  1837. package/docs/content/locales/pt-BR/writing-agent-instructions.mdx +46 -4
  1838. package/docs/content/locales/zh-CN/a2a-protocol.mdx +97 -9
  1839. package/docs/content/locales/zh-CN/actions.mdx +65 -4
  1840. package/docs/content/locales/zh-CN/agent-mentions.mdx +68 -4
  1841. package/docs/content/locales/zh-CN/agent-surfaces.mdx +108 -8
  1842. package/docs/content/locales/zh-CN/agent-teams.mdx +171 -12
  1843. package/docs/content/locales/zh-CN/agent-web-surfaces.mdx +51 -4
  1844. package/docs/content/locales/zh-CN/authentication.mdx +122 -8
  1845. package/docs/content/locales/zh-CN/automations.mdx +110 -8
  1846. package/docs/content/locales/zh-CN/blueprint-installer.mdx +42 -4
  1847. package/docs/content/locales/zh-CN/cli-adapters.mdx +44 -4
  1848. package/docs/content/locales/zh-CN/client.mdx +79 -8
  1849. package/docs/content/locales/zh-CN/cloneable-saas.mdx +83 -8
  1850. package/docs/content/locales/zh-CN/code-agents-ui.mdx +94 -8
  1851. package/docs/content/locales/zh-CN/components.mdx +112 -8
  1852. package/docs/content/locales/zh-CN/context-awareness.mdx +96 -8
  1853. package/docs/content/locales/zh-CN/creating-templates.mdx +51 -4
  1854. package/docs/content/locales/zh-CN/cross-app-sso.mdx +107 -8
  1855. package/docs/content/locales/zh-CN/database.mdx +52 -4
  1856. package/docs/content/locales/zh-CN/deployment.mdx +103 -8
  1857. package/docs/content/locales/zh-CN/dispatch.mdx +134 -8
  1858. package/docs/content/locales/zh-CN/drop-in-agent.mdx +63 -4
  1859. package/docs/content/locales/zh-CN/durable-resume.mdx +45 -4
  1860. package/docs/content/locales/zh-CN/embedding-sdk.mdx +81 -8
  1861. package/docs/content/locales/zh-CN/evals.mdx +100 -8
  1862. package/docs/content/locales/zh-CN/extensions.mdx +111 -9
  1863. package/docs/content/locales/zh-CN/external-agents.mdx +119 -8
  1864. package/docs/content/locales/zh-CN/faq.mdx +96 -8
  1865. package/docs/content/locales/zh-CN/file-uploads.mdx +61 -4
  1866. package/docs/content/locales/zh-CN/frames.mdx +86 -8
  1867. package/docs/content/locales/zh-CN/getting-started.mdx +34 -4
  1868. package/docs/content/locales/zh-CN/harness-agents.mdx +79 -8
  1869. package/docs/content/locales/zh-CN/human-approval.mdx +50 -4
  1870. package/docs/content/locales/zh-CN/key-concepts.mdx +100 -8
  1871. package/docs/content/locales/zh-CN/local-file-mode.mdx +56 -4
  1872. package/docs/content/locales/zh-CN/mcp-apps.mdx +120 -10
  1873. package/docs/content/locales/zh-CN/mcp-clients.mdx +133 -8
  1874. package/docs/content/locales/zh-CN/mcp-protocol.mdx +105 -8
  1875. package/docs/content/locales/zh-CN/messaging.mdx +115 -8
  1876. package/docs/content/locales/zh-CN/migration-workbench.mdx +45 -4
  1877. package/docs/content/locales/zh-CN/multi-app-workspace.mdx +91 -8
  1878. package/docs/content/locales/zh-CN/multi-tenancy.mdx +80 -8
  1879. package/docs/content/locales/zh-CN/native-chat-ui.mdx +104 -8
  1880. package/docs/content/locales/zh-CN/notifications.mdx +135 -8
  1881. package/docs/content/locales/zh-CN/observability.mdx +102 -8
  1882. package/docs/content/locales/zh-CN/observational-memory.mdx +85 -8
  1883. package/docs/content/locales/zh-CN/onboarding.mdx +44 -4
  1884. package/docs/content/locales/zh-CN/plan-plugin.mdx +97 -8
  1885. package/docs/content/locales/zh-CN/pr-visual-recap.mdx +123 -8
  1886. package/docs/content/locales/zh-CN/processors.mdx +39 -4
  1887. package/docs/content/locales/zh-CN/progress.mdx +46 -4
  1888. package/docs/content/locales/zh-CN/pure-agent-apps.mdx +46 -4
  1889. package/docs/content/locales/zh-CN/real-time-collaboration.mdx +98 -8
  1890. package/docs/content/locales/zh-CN/recurring-jobs.mdx +59 -4
  1891. package/docs/content/locales/zh-CN/routing.mdx +42 -5
  1892. package/docs/content/locales/zh-CN/sandbox-adapters.mdx +41 -4
  1893. package/docs/content/locales/zh-CN/security.mdx +78 -8
  1894. package/docs/content/locales/zh-CN/server.mdx +169 -12
  1895. package/docs/content/locales/zh-CN/sharing.mdx +45 -4
  1896. package/docs/content/locales/zh-CN/skills-guide.mdx +118 -9
  1897. package/docs/content/locales/zh-CN/template-analytics.mdx +46 -4
  1898. package/docs/content/locales/zh-CN/template-assets.mdx +58 -4
  1899. package/docs/content/locales/zh-CN/template-brain.mdx +65 -4
  1900. package/docs/content/locales/zh-CN/template-calendar.mdx +58 -4
  1901. package/docs/content/locales/zh-CN/template-chat.mdx +57 -4
  1902. package/docs/content/locales/zh-CN/template-clips.mdx +52 -4
  1903. package/docs/content/locales/zh-CN/template-content.mdx +58 -4
  1904. package/docs/content/locales/zh-CN/template-design.mdx +58 -4
  1905. package/docs/content/locales/zh-CN/template-dispatch.mdx +57 -4
  1906. package/docs/content/locales/zh-CN/template-forms.mdx +58 -4
  1907. package/docs/content/locales/zh-CN/template-mail.mdx +60 -4
  1908. package/docs/content/locales/zh-CN/template-plan.mdx +57 -4
  1909. package/docs/content/locales/zh-CN/template-slides.mdx +49 -4
  1910. package/docs/content/locales/zh-CN/template-videos.mdx +51 -4
  1911. package/docs/content/locales/zh-CN/tracking.mdx +54 -4
  1912. package/docs/content/locales/zh-CN/using-your-agent.mdx +51 -4
  1913. package/docs/content/locales/zh-CN/voice-input.mdx +43 -4
  1914. package/docs/content/locales/zh-CN/what-is-agent-native.mdx +94 -8
  1915. package/docs/content/locales/zh-CN/workspace-connections.mdx +126 -8
  1916. package/docs/content/locales/zh-CN/workspace-management.mdx +50 -4
  1917. package/docs/content/locales/zh-CN/workspace.mdx +110 -8
  1918. package/docs/content/locales/zh-CN/writing-agent-instructions.mdx +38 -4
  1919. package/docs/content/locales/zh-TW/a2a-protocol.mdx +97 -9
  1920. package/docs/content/locales/zh-TW/actions.mdx +63 -4
  1921. package/docs/content/locales/zh-TW/agent-mentions.mdx +68 -4
  1922. package/docs/content/locales/zh-TW/agent-surfaces.mdx +108 -8
  1923. package/docs/content/locales/zh-TW/agent-teams.mdx +171 -12
  1924. package/docs/content/locales/zh-TW/agent-web-surfaces.mdx +51 -4
  1925. package/docs/content/locales/zh-TW/authentication.mdx +122 -8
  1926. package/docs/content/locales/zh-TW/automations.mdx +110 -8
  1927. package/docs/content/locales/zh-TW/blueprint-installer.mdx +42 -4
  1928. package/docs/content/locales/zh-TW/cli-adapters.mdx +44 -4
  1929. package/docs/content/locales/zh-TW/client.mdx +79 -8
  1930. package/docs/content/locales/zh-TW/cloneable-saas.mdx +83 -8
  1931. package/docs/content/locales/zh-TW/code-agents-ui.mdx +94 -8
  1932. package/docs/content/locales/zh-TW/components.mdx +112 -8
  1933. package/docs/content/locales/zh-TW/context-awareness.mdx +96 -8
  1934. package/docs/content/locales/zh-TW/creating-templates.mdx +51 -4
  1935. package/docs/content/locales/zh-TW/cross-app-sso.mdx +107 -8
  1936. package/docs/content/locales/zh-TW/database.mdx +52 -4
  1937. package/docs/content/locales/zh-TW/deployment.mdx +103 -8
  1938. package/docs/content/locales/zh-TW/dispatch.mdx +134 -8
  1939. package/docs/content/locales/zh-TW/drop-in-agent.mdx +63 -4
  1940. package/docs/content/locales/zh-TW/durable-background-runs.mdx +88 -8
  1941. package/docs/content/locales/zh-TW/durable-resume.mdx +45 -4
  1942. package/docs/content/locales/zh-TW/embedding-sdk.mdx +83 -8
  1943. package/docs/content/locales/zh-TW/evals.mdx +100 -8
  1944. package/docs/content/locales/zh-TW/extensions.mdx +111 -9
  1945. package/docs/content/locales/zh-TW/external-agents.mdx +119 -8
  1946. package/docs/content/locales/zh-TW/faq.mdx +96 -8
  1947. package/docs/content/locales/zh-TW/file-uploads.mdx +61 -4
  1948. package/docs/content/locales/zh-TW/frames.mdx +86 -8
  1949. package/docs/content/locales/zh-TW/getting-started.mdx +34 -4
  1950. package/docs/content/locales/zh-TW/harness-agents.mdx +79 -8
  1951. package/docs/content/locales/zh-TW/human-approval.mdx +50 -4
  1952. package/docs/content/locales/zh-TW/key-concepts.mdx +100 -8
  1953. package/docs/content/locales/zh-TW/local-file-mode.mdx +56 -4
  1954. package/docs/content/locales/zh-TW/mcp-apps.mdx +120 -10
  1955. package/docs/content/locales/zh-TW/mcp-clients.mdx +133 -8
  1956. package/docs/content/locales/zh-TW/mcp-protocol.mdx +105 -8
  1957. package/docs/content/locales/zh-TW/messaging.mdx +115 -8
  1958. package/docs/content/locales/zh-TW/migration-workbench.mdx +45 -4
  1959. package/docs/content/locales/zh-TW/multi-app-workspace.mdx +91 -8
  1960. package/docs/content/locales/zh-TW/multi-tenancy.mdx +80 -8
  1961. package/docs/content/locales/zh-TW/native-chat-ui.mdx +104 -8
  1962. package/docs/content/locales/zh-TW/notifications.mdx +135 -8
  1963. package/docs/content/locales/zh-TW/observability.mdx +102 -8
  1964. package/docs/content/locales/zh-TW/observational-memory.mdx +85 -8
  1965. package/docs/content/locales/zh-TW/onboarding.mdx +44 -4
  1966. package/docs/content/locales/zh-TW/plan-plugin.mdx +97 -8
  1967. package/docs/content/locales/zh-TW/pr-visual-recap.mdx +123 -8
  1968. package/docs/content/locales/zh-TW/processors.mdx +39 -4
  1969. package/docs/content/locales/zh-TW/progress.mdx +46 -4
  1970. package/docs/content/locales/zh-TW/pure-agent-apps.mdx +46 -4
  1971. package/docs/content/locales/zh-TW/real-time-collaboration.mdx +98 -8
  1972. package/docs/content/locales/zh-TW/recurring-jobs.mdx +59 -4
  1973. package/docs/content/locales/zh-TW/routing.mdx +42 -5
  1974. package/docs/content/locales/zh-TW/sandbox-adapters.mdx +41 -4
  1975. package/docs/content/locales/zh-TW/security.mdx +80 -8
  1976. package/docs/content/locales/zh-TW/server.mdx +169 -12
  1977. package/docs/content/locales/zh-TW/sharing.mdx +45 -4
  1978. package/docs/content/locales/zh-TW/skills-guide.mdx +118 -9
  1979. package/docs/content/locales/zh-TW/template-analytics.mdx +46 -4
  1980. package/docs/content/locales/zh-TW/template-assets.mdx +58 -4
  1981. package/docs/content/locales/zh-TW/template-brain.mdx +65 -4
  1982. package/docs/content/locales/zh-TW/template-calendar.mdx +58 -4
  1983. package/docs/content/locales/zh-TW/template-chat.mdx +59 -4
  1984. package/docs/content/locales/zh-TW/template-clips.mdx +52 -4
  1985. package/docs/content/locales/zh-TW/template-content.mdx +58 -4
  1986. package/docs/content/locales/zh-TW/template-design.mdx +58 -4
  1987. package/docs/content/locales/zh-TW/template-dispatch.mdx +57 -4
  1988. package/docs/content/locales/zh-TW/template-forms.mdx +58 -4
  1989. package/docs/content/locales/zh-TW/template-mail.mdx +60 -4
  1990. package/docs/content/locales/zh-TW/template-plan.mdx +57 -4
  1991. package/docs/content/locales/zh-TW/template-slides.mdx +49 -4
  1992. package/docs/content/locales/zh-TW/template-videos.mdx +51 -4
  1993. package/docs/content/locales/zh-TW/tracking.mdx +54 -4
  1994. package/docs/content/locales/zh-TW/using-your-agent.mdx +51 -4
  1995. package/docs/content/locales/zh-TW/voice-input.mdx +43 -4
  1996. package/docs/content/locales/zh-TW/what-is-agent-native.mdx +94 -8
  1997. package/docs/content/locales/zh-TW/workspace-connections.mdx +126 -8
  1998. package/docs/content/locales/zh-TW/workspace-management.mdx +50 -4
  1999. package/docs/content/locales/zh-TW/workspace.mdx +111 -8
  2000. package/docs/content/locales/zh-TW/writing-agent-instructions.mdx +38 -4
  2001. package/docs/content/mcp-apps.mdx +120 -10
  2002. package/docs/content/mcp-clients.mdx +161 -8
  2003. package/docs/content/mcp-protocol.mdx +105 -8
  2004. package/docs/content/messaging.mdx +115 -8
  2005. package/docs/content/migration-workbench.mdx +45 -4
  2006. package/docs/content/multi-app-workspace.mdx +91 -8
  2007. package/docs/content/multi-tenancy.mdx +80 -8
  2008. package/docs/content/native-chat-ui.mdx +106 -8
  2009. package/docs/content/notifications.mdx +135 -8
  2010. package/docs/content/observability.mdx +102 -8
  2011. package/docs/content/observational-memory.mdx +89 -8
  2012. package/docs/content/onboarding.mdx +45 -4
  2013. package/docs/content/plan-plugin.mdx +99 -8
  2014. package/docs/content/pr-visual-recap.mdx +125 -8
  2015. package/docs/content/processors.mdx +41 -4
  2016. package/docs/content/progress.mdx +46 -4
  2017. package/docs/content/pure-agent-apps.mdx +46 -4
  2018. package/docs/content/real-time-collaboration.mdx +104 -8
  2019. package/docs/content/recurring-jobs.mdx +59 -4
  2020. package/docs/content/routing.mdx +44 -5
  2021. package/docs/content/sandbox-adapters.mdx +43 -4
  2022. package/docs/content/security.mdx +80 -8
  2023. package/docs/content/server.mdx +173 -12
  2024. package/docs/content/sharing.mdx +45 -4
  2025. package/docs/content/skills-guide.mdx +118 -9
  2026. package/docs/content/template-analytics.mdx +46 -4
  2027. package/docs/content/template-assets.mdx +60 -4
  2028. package/docs/content/template-brain.mdx +67 -4
  2029. package/docs/content/template-calendar.mdx +62 -4
  2030. package/docs/content/template-chat.mdx +61 -4
  2031. package/docs/content/template-clips.mdx +52 -4
  2032. package/docs/content/template-content.mdx +60 -4
  2033. package/docs/content/template-design.mdx +58 -4
  2034. package/docs/content/template-dispatch.mdx +57 -4
  2035. package/docs/content/template-forms.mdx +62 -4
  2036. package/docs/content/template-mail.mdx +60 -4
  2037. package/docs/content/template-plan.mdx +61 -4
  2038. package/docs/content/template-slides.mdx +49 -4
  2039. package/docs/content/template-videos.mdx +51 -4
  2040. package/docs/content/tracking.mdx +54 -4
  2041. package/docs/content/using-your-agent.mdx +51 -4
  2042. package/docs/content/voice-input.mdx +43 -4
  2043. package/docs/content/what-is-agent-native.mdx +188 -8
  2044. package/docs/content/workspace-connections.mdx +128 -8
  2045. package/docs/content/workspace-management.mdx +50 -4
  2046. package/docs/content/workspace.mdx +111 -8
  2047. package/docs/content/writing-agent-instructions.mdx +45 -4
  2048. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wireframe.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe.tsx"],"names":[],"mappings":"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","sourcesContent":["import { IconPencil } from \"@tabler/icons-react\";\nimport {\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\n\nimport { ltrCodeBlockProps } from \"../code-block-direction.js\";\nimport { defineBlock } from \"../types.js\";\nimport type {\n BlockReadProps,\n BlockEditProps,\n BlockRenderContext,\n} from \"../types.js\";\nimport { useBlockCopy } from \"./block-copy.js\";\nimport {\n sanitizeWireframeCss,\n sanitizeWireframeHtml,\n scopeDesignCss,\n} from \"./sanitize-html.js\";\nimport { renderWireframeIconHtml } from \"./wireframe-icons.js\";\nimport {\n HTML_ROUGH_SELECTOR,\n KitConfigContext,\n RoughOverlay,\n Screen,\n renderNodes,\n toggleWireframeStyle,\n useIsDark,\n useWireframeStyle,\n} from \"./wireframe-kit.js\";\nimport {\n wireframeSchema,\n wireframeMdx,\n type WireframeData,\n type WireframeSurface,\n} from \"./wireframe.config.js\";\n\n/**\n * Shared `wireframe` block — a hand-drawn low-fi mockup of one screen, rendered\n * from either a declarative kit tree (`data.screen`) or a self-contained HTML\n * mockup (`data.html`), inside a surface-locked frame (desktop/mobile/popover/\n * panel/browser) with a rough.js sketch overlay. Lives in core so any app can\n * register it (it originated in the plan template).\n *\n * DECOUPLING from the plan original:\n * - Theme: `useIsDark()` reads `document.documentElement.classList` instead of\n * `next-themes` (the MermaidBlock precedent), so core stays dependency-light.\n * - HTML sanitize: the HTML path runs `data.html`/`data.css` through the\n * app-injected `ctx.sanitizeHtml`. If no sanitizer is wired the HTML path is\n * skipped (kit tree or an empty frame renders) — core never injects unsanitized\n * author HTML.\n * - The plan-only prototype runtime, design-element selection, and legacy region\n * fallback are intentionally NOT ported; those are plan-canvas features, not\n * part of the document-block render. The kit element vocabulary, the `--wf-*`\n * token contract, and the `.plan-wf` / `[data-rough]` classes the overlay\n * measures are preserved exactly.\n *\n * The section carries the app-neutral `an-block` class plus the legacy\n * `plan-block` class so plan renders byte-identically while any other app gets\n * the theme-token treatment from core's `blocks.css`.\n *\n * The wireframe is canvas / agent-patch edited (node-addressable content patches\n * applied server-side), NOT schema-form edited in the browser — so `Edit` reuses\n * the same static render as `Read`, mirroring the plan `WireframeEditor`.\n */\n\ntype SurfacePreset = {\n width: number;\n /**\n * Floor height for the surface. The frame is AUTO-HEIGHT (content-driven): it\n * grows past this when content is tall and shrinks toward its content height\n * when content is short, but never collapses below this floor — so an empty or\n * near-empty frame still reads as that surface instead of a thin sliver. This\n * is a `min-height`, not a fixed `height`: it is the lower bound the old fixed\n * preset height used to also be the UPPER bound, which is what left a big empty\n * vertical band below short content (e.g. a header + one dropdown padded to a\n * tall fixed aspect).\n */\n minHeight: number;\n radius: number;\n};\n\nconst SURFACE_PRESETS: Record<WireframeSurface, SurfacePreset> = {\n // mobile keeps a tall floor: a phone frame reads as a phone even when short.\n mobile: { width: 300, minHeight: 360, radius: 30 },\n desktop: { width: 840, minHeight: 200, radius: 14 },\n browser: { width: 900, minHeight: 200, radius: 14 },\n popover: { width: 360, minHeight: 120, radius: 16 },\n panel: { width: 420, minHeight: 200, radius: 16 },\n};\n\nfunction isHtmlData(data: WireframeData): boolean {\n return typeof data.html === \"string\" && data.html.trim().length > 0;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Shared frame shell: surface-locked WIDTH + auto (content-driven) height + */\n/* theme + rough overlay. The frame keeps each surface's footprint and chrome */\n/* but fits its content height instead of padding to a fixed aspect, so short */\n/* content yields a short frame and tall content grows. Pass `canvasSize` to */\n/* opt a fixed-aspect canvas artboard back into a hard pixel height. */\n/* -------------------------------------------------------------------------- */\n\nfunction ArtboardFrame({\n surface,\n compact,\n canvasSize,\n canvasWidth,\n skeleton,\n renderMode,\n roughOverlay = true,\n selector,\n caption,\n render,\n}: {\n surface: WireframeSurface;\n compact?: boolean;\n /**\n * Force a FIXED pixel height instead of the auto-height (content-driven)\n * default. Reserved for fixed-aspect canvas artboards (pan/zoom). Document-flow\n * wireframes — what recaps render — leave this unset so the frame fits content.\n */\n canvasSize?: number;\n canvasWidth?: number;\n skeleton?: boolean;\n renderMode?: \"wireframe\" | \"design\";\n roughOverlay?: boolean;\n selector: string;\n caption?: string;\n render: (ctx: {\n theme: \"light\" | \"dark\";\n style: \"sketchy\" | \"clean\";\n }) => ReactNode;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const fitRef = useRef<HTMLDivElement>(null);\n const isDark = useIsDark();\n const theme: \"light\" | \"dark\" = isDark ? \"dark\" : \"light\";\n const style = useWireframeStyle();\n const preset = SURFACE_PRESETS[surface] ?? SURFACE_PRESETS.desktop;\n const width = canvasWidth ?? preset.width;\n // AUTO-HEIGHT: with no explicit `canvasSize` the artboard height is driven by\n // its content (`height: auto`), floored at the surface's `minHeight` so a short\n // screen produces a short frame and a tall screen grows — instead of every\n // surface being padded to a fixed preset height that left a big empty band\n // below short content. A `canvasSize` (fixed-aspect canvas artboard) overrides\n // this with a hard pixel height.\n const fixedHeight = canvasSize;\n const minHeight = fixedHeight ?? preset.minHeight;\n const baseScale = compact ? Math.min(1, 320 / preset.width) : 1;\n const maxFrameWidth = compact ? preset.width * baseScale : width;\n const [fitScale, setFitScale] = useState(baseScale);\n // The scaled artboard is `transform: scale()`-ed, which does not change its\n // layout box, so the wrapper that reserves vertical space must track the\n // artboard's ACTUAL rendered height. With a fixed height that's known up front;\n // with auto-height we measure it.\n const [measuredHeight, setMeasuredHeight] = useState<number | null>(\n fixedHeight ?? null,\n );\n const designMode = renderMode === \"design\";\n const sketchy = !designMode && style === \"sketchy\" && !skeleton;\n const roughEnabled = sketchy && roughOverlay;\n const paper = designMode\n ? \"hsl(var(--background))\"\n : \"var(--plan-document, hsl(var(--background)))\";\n const frameBorder = skeleton\n ? \"var(--plan-placeholder-line, var(--plan-line, hsl(var(--border))))\"\n : \"var(--plan-line, hsl(var(--border)))\";\n\n useEffect(() => {\n const element = fitRef.current;\n if (!element) return;\n const measure = () => {\n const availableWidth = element.clientWidth;\n const nextScale =\n availableWidth > 0\n ? Math.min(baseScale, availableWidth / width)\n : baseScale;\n setFitScale((current) =>\n Math.abs(current - nextScale) < 0.001 ? current : nextScale,\n );\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(element);\n return () => observer.disconnect();\n }, [baseScale, width]);\n\n // Track the auto-height artboard's rendered height so the (un-transformed)\n // wrapper reserves exactly the scaled space the frame occupies. Skipped when a\n // fixed height is supplied — there's nothing to measure.\n useEffect(() => {\n if (fixedHeight != null) return;\n const element = ref.current;\n if (!element) return;\n const measure = () => {\n const next = element.offsetHeight;\n setMeasuredHeight((current) =>\n current != null && Math.abs(current - next) < 0.5 ? current : next,\n );\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(element);\n return () => observer.disconnect();\n }, [fixedHeight]);\n\n // Height the wrapper reserves: the measured (or fixed) artboard height scaled\n // by the fit factor. Falls back to the surface floor before the first measure\n // so SSR / first paint reserves a sensible box rather than collapsing.\n const reservedHeight = (measuredHeight ?? minHeight) * fitScale;\n const reserveScaledHeight = fixedHeight != null || fitScale !== 1;\n\n return (\n <div\n ref={fitRef}\n className=\"plan-kit-wireframe\"\n style={{\n width: \"100%\",\n maxWidth: maxFrameWidth,\n }}\n >\n <div\n className=\"group/wireframe-artboard relative\"\n style={{\n width: \"100%\",\n maxWidth: maxFrameWidth,\n ...(reserveScaledHeight ? { height: reservedHeight } : {}),\n marginInline: \"auto\",\n }}\n >\n <div\n ref={ref}\n className=\"plan-kit-artboard relative\"\n data-rough-scope=\"wireframe\"\n style={{\n width,\n // Auto-height by default (content-driven, floored at `minHeight`);\n // a fixed `canvasSize` locks the height for canvas artboards.\n ...(fixedHeight != null ? { height: fixedHeight } : { minHeight }),\n borderRadius: preset.radius,\n background: paper,\n ...(fitScale !== 1\n ? {\n transform: `scale(${fitScale})`,\n transformOrigin: \"top left\",\n }\n : {}),\n }}\n >\n {/* Content drives the artboard height in flow when auto-height; for a\n fixed height it's pinned to the box. Rounded corners clip overflow\n either way. */}\n <div\n className=\"overflow-hidden\"\n style={{\n borderRadius: preset.radius,\n ...(fixedHeight != null\n ? { position: \"absolute\", inset: 0 }\n : { minHeight }),\n }}\n >\n {render({ theme, style })}\n </div>\n {!roughEnabled && (\n <div\n className=\"pointer-events-none absolute inset-0\"\n style={{\n borderRadius: preset.radius,\n border: `1.5px solid ${frameBorder}`,\n }}\n />\n )}\n <RoughOverlay\n scopeRef={ref}\n enabled={roughEnabled}\n frameRadius={preset.radius}\n selector={selector}\n />\n </div>\n {!designMode && !skeleton && <WireframeStyleToggleButton />}\n </div>\n {caption && (\n <p className=\"mt-2 text-center text-xs text-plan-muted\">{caption}</p>\n )}\n </div>\n );\n}\n\nfunction WireframeStyleToggleButton() {\n const style = useWireframeStyle();\n const copy = useBlockCopy();\n const nextStyle = style === \"sketchy\" ? \"clean\" : \"sketchy\";\n const label = nextStyle === \"clean\" ? copy.clean : copy.sketchy;\n const description = copy.switchVisualStyle.replace(\n \"{{style}}\",\n label.toLocaleLowerCase(),\n );\n\n return (\n <button\n type=\"button\"\n data-plan-interactive\n data-rough=\"none\"\n data-wireframe-style-toggle\n aria-label={description}\n title={description}\n onClick={(event) => {\n event.stopPropagation();\n toggleWireframeStyle();\n }}\n className=\"absolute right-2 top-2 z-30 inline-flex h-7 items-center gap-1 rounded-md border border-border/60 bg-background/90 px-2 text-xs font-medium text-muted-foreground opacity-0 shadow-sm backdrop-blur transition-[color,opacity] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring group-hover/wireframe-artboard:opacity-100\"\n >\n <IconPencil className=\"size-3.5\" aria-hidden=\"true\" />\n <span>{label}</span>\n </button>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* HTML artboard — author HTML, themed + roughened by the renderer. */\n/* -------------------------------------------------------------------------- */\n\nfunction HtmlArtboard({\n data,\n ctx: _ctx,\n compact,\n}: {\n data: WireframeData;\n ctx: BlockRenderContext;\n compact?: boolean;\n}) {\n const renderMode = data.renderMode ?? \"wireframe\";\n // Sanitize author HTML/CSS at the render point (defense-in-depth against stored\n // XSS). Self-contained in core via the shared block sanitizer (DOM-based in the\n // browser, regex fallback on the server) so the HTML mockup path renders in any\n // app without the host wiring a sanitizer hook.\n const safeHtml = useMemo(\n () => renderWireframeIconHtml(sanitizeWireframeHtml(data.html)),\n [data.html],\n );\n const scopeId = useId().replace(/[^a-zA-Z0-9_-]/g, \"\");\n const scopedCss = useMemo(() => {\n const safeCss = sanitizeWireframeCss(data.css);\n // Scope every author selector under this instance's artboard so global\n // selectors (body, *, .app-shell, :root) can't restyle/hide the host app.\n return safeCss\n ? scopeDesignCss(safeCss, `[data-plan-design-scope=\"${scopeId}\"]`)\n : \"\";\n }, [data.css, scopeId]);\n\n return (\n <ArtboardFrame\n surface={data.surface}\n compact={compact}\n skeleton={data.skeleton}\n renderMode={renderMode}\n selector={HTML_ROUGH_SELECTOR}\n caption={data.caption}\n render={({ theme, style }) => (\n <div\n className=\"plan-html-frame\"\n data-theme={theme}\n data-style={style}\n data-render-mode={renderMode}\n data-plan-design-scope={scopeId}\n data-skeleton={data.skeleton ? \"true\" : undefined}\n >\n {scopedCss && <style>{scopedCss}</style>}\n <div\n className=\"plan-html-frame-content\"\n dangerouslySetInnerHTML={{ __html: safeHtml }}\n />\n </div>\n )}\n />\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Kit artboard — declarative kit tree. */\n/* -------------------------------------------------------------------------- */\n\nfunction KitArtboard({\n data,\n compact,\n}: {\n data: WireframeData;\n compact?: boolean;\n}) {\n return (\n <ArtboardFrame\n surface={data.surface}\n compact={compact}\n skeleton={data.skeleton}\n selector=\"[data-rough]\"\n caption={data.caption}\n render={({ theme, style }) => (\n <KitConfigContext.Provider\n value={{ skeleton: data.skeleton, theme, style }}\n >\n {renderKitScreen(data.screen ?? [])}\n </KitConfigContext.Provider>\n )}\n />\n );\n}\n\nfunction renderKitScreen(\n nodes: NonNullable<WireframeData[\"screen\"]>,\n): ReactNode {\n if (nodes.length === 1 && nodes[0]?.el === \"screen\") {\n return renderNodes(nodes);\n }\n // `minHeight` (not `height`) so the screen fills the auto-height artboard floor\n // but grows past it when content is tall, instead of locking to a fixed box.\n return (\n <Screen pad=\"calc(var(--pad) * 1.35)\" style={{ minHeight: \"100%\" }}>\n {renderNodes(nodes)}\n </Screen>\n );\n}\n\n/**\n * The bare wireframe surface (no block section / title). Routes to the HTML\n * mockup when `data.html` is present and a sanitizer is wired; otherwise renders\n * the kit tree.\n */\nfunction WireframeSurfaceView({\n data,\n ctx,\n compact,\n}: {\n data: WireframeData;\n ctx: BlockRenderContext;\n compact?: boolean;\n}) {\n if (isHtmlData(data)) {\n return <HtmlArtboard data={data} ctx={ctx} compact={compact} />;\n }\n return <KitArtboard data={data} compact={compact} />;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Block Read / Edit */\n/* -------------------------------------------------------------------------- */\n\n/** Read-only renderer for a `wireframe` block. */\nexport function WireframeBlock({\n data,\n blockId,\n title,\n summary,\n ctx,\n compactVisuals,\n}: BlockReadProps<WireframeData>) {\n return (\n <section\n {...ltrCodeBlockProps}\n className=\"an-block plan-block an-wireframe\"\n data-block-id={blockId}\n >\n {title && <div className=\"an-block-label plan-block-label\">{title}</div>}\n <WireframeSurfaceView data={data} ctx={ctx} compact={compactVisuals} />\n {summary && <p className=\"mt-5 text-plan-muted\">{summary}</p>}\n </section>\n );\n}\n\n/**\n * Editor for the `wireframe` block. The wireframe is canvas / agent-patch edited\n * (it never calls `onChange`), so edit mode reuses the read surface — mirroring\n * the plan `WireframeEditor`. The host document editor already wraps the registry\n * edit path in a titled section, so this renders only the surface to avoid\n * double-nesting.\n */\nexport function WireframeEditor({ data, ctx }: BlockEditProps<WireframeData>) {\n return <WireframeSurfaceView data={data} ctx={ctx} />;\n}\n\n/** Full client spec for the shared `wireframe` block (schema + MDX + Read/Edit). */\nexport const wireframeBlock = defineBlock<WireframeData>({\n type: \"wireframe\",\n schema: wireframeSchema,\n mdx: wireframeMdx,\n Read: WireframeBlock,\n Edit: WireframeEditor,\n placement: [\"block\"],\n editSurface: \"inline\",\n label: \"Wireframe\",\n description:\n \"A sketch wireframe of one screen built from kit primitives (or an HTML mockup), rendered in a chosen surface frame (desktop/mobile/popover/panel/browser).\",\n // `surface` is the only required field; `screen` defaults to []. Start on the\n // desktop surface with an empty screen so the canvas/agent can fill it in.\n empty: () => ({ surface: \"desktop\", screen: [] }),\n});\n"]}
1
+ {"version":3,"file":"wireframe.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/wireframe.tsx"],"names":[],"mappings":"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","sourcesContent":["import { IconPencil } from \"@tabler/icons-react\";\nimport {\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\n\nimport { ltrCodeBlockProps } from \"../code-block-direction.js\";\nimport { defineBlock } from \"../types.js\";\nimport type {\n BlockReadProps,\n BlockEditProps,\n BlockRenderContext,\n} from \"../types.js\";\nimport { useBlockCopy } from \"./block-copy.js\";\nimport {\n sanitizeWireframeCss,\n sanitizeWireframeHtml,\n scopeDesignCss,\n} from \"./sanitize-html.js\";\nimport { renderWireframeIconHtml } from \"./wireframe-icons.js\";\nimport {\n HTML_ROUGH_SELECTOR,\n KitConfigContext,\n RoughOverlay,\n Screen,\n renderNodes,\n toggleWireframeStyle,\n useIsDark,\n useWireframeStyle,\n} from \"./wireframe-kit.js\";\nimport {\n wireframeSchema,\n wireframeMdx,\n type WireframeData,\n type WireframeSurface,\n} from \"./wireframe.config.js\";\n\n/**\n * Shared `wireframe` block — a hand-drawn low-fi mockup of one screen, rendered\n * from either a declarative kit tree (`data.screen`) or a self-contained HTML\n * mockup (`data.html`), inside a surface-locked frame (desktop/mobile/popover/\n * panel/browser) with a rough.js sketch overlay. Lives in core so any app can\n * register it (it originated in the plan template).\n *\n * DECOUPLING from the plan original:\n * - Theme: `useIsDark()` reads `document.documentElement.classList` instead of\n * `next-themes` (the MermaidBlock precedent), so core stays dependency-light.\n * - HTML sanitize: the HTML path runs `data.html`/`data.css` through the\n * app-injected `ctx.sanitizeHtml`. If no sanitizer is wired the HTML path is\n * skipped (kit tree or an empty frame renders) — core never injects unsanitized\n * author HTML.\n * - The plan-only prototype runtime, design-element selection, and legacy region\n * fallback are intentionally NOT ported; those are plan-canvas features, not\n * part of the document-block render. The kit element vocabulary, the `--wf-*`\n * token contract, and the `.plan-wf` / `[data-rough]` classes the overlay\n * measures are preserved exactly.\n *\n * The section carries the app-neutral `an-block` class plus the legacy\n * `plan-block` class so plan renders byte-identically while any other app gets\n * the theme-token treatment from core's `blocks.css`.\n *\n * The wireframe is canvas / agent-patch edited (node-addressable content patches\n * applied server-side), NOT schema-form edited in the browser — so `Edit` reuses\n * the same static render as `Read`, mirroring the plan `WireframeEditor`.\n */\n\ntype SurfacePreset = {\n width: number;\n /**\n * Floor height for the surface. The frame is AUTO-HEIGHT (content-driven): it\n * grows past this when content is tall and shrinks toward its content height\n * when content is short, but never collapses below this floor — so an empty or\n * near-empty frame still reads as that surface instead of a thin sliver. This\n * is a `min-height`, not a fixed `height`: it is the lower bound the old fixed\n * preset height used to also be the UPPER bound, which is what left a big empty\n * vertical band below short content (e.g. a header + one dropdown padded to a\n * tall fixed aspect).\n */\n minHeight: number;\n radius: number;\n};\n\nconst SURFACE_PRESETS: Record<WireframeSurface, SurfacePreset> = {\n // mobile keeps a tall floor: a phone frame reads as a phone even when short.\n mobile: { width: 300, minHeight: 360, radius: 30 },\n desktop: { width: 840, minHeight: 200, radius: 14 },\n browser: { width: 900, minHeight: 200, radius: 14 },\n popover: { width: 360, minHeight: 120, radius: 16 },\n panel: { width: 420, minHeight: 200, radius: 16 },\n};\n\nfunction isHtmlData(data: WireframeData): boolean {\n return typeof data.html === \"string\" && data.html.trim().length > 0;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Shared frame shell: surface-locked WIDTH + auto (content-driven) height + */\n/* theme + rough overlay. The frame keeps each surface's footprint and chrome */\n/* but fits its content height instead of padding to a fixed aspect, so short */\n/* content yields a short frame and tall content grows. Pass `canvasSize` to */\n/* opt a fixed-aspect canvas artboard back into a hard pixel height. */\n/* -------------------------------------------------------------------------- */\n\nfunction ArtboardFrame({\n surface,\n compact,\n canvasSize,\n canvasWidth,\n skeleton,\n renderMode,\n roughOverlay = true,\n selector,\n caption,\n render,\n}: {\n surface: WireframeSurface;\n compact?: boolean;\n /**\n * Force a FIXED pixel height instead of the auto-height (content-driven)\n * default. Reserved for fixed-aspect canvas artboards (pan/zoom). Document-flow\n * wireframes — what recaps render — leave this unset so the frame fits content.\n */\n canvasSize?: number;\n canvasWidth?: number;\n skeleton?: boolean;\n renderMode?: \"wireframe\" | \"design\";\n roughOverlay?: boolean;\n selector: string;\n caption?: string;\n render: (ctx: {\n theme: \"light\" | \"dark\";\n style: \"sketchy\" | \"clean\";\n }) => ReactNode;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const fitRef = useRef<HTMLDivElement>(null);\n const isDark = useIsDark();\n const theme: \"light\" | \"dark\" = isDark ? \"dark\" : \"light\";\n const style = useWireframeStyle();\n const preset = SURFACE_PRESETS[surface] ?? SURFACE_PRESETS.desktop;\n const width = canvasWidth ?? preset.width;\n // AUTO-HEIGHT: with no explicit `canvasSize` the artboard height is driven by\n // its content (`height: auto`), floored at the surface's `minHeight` so a short\n // screen produces a short frame and a tall screen grows — instead of every\n // surface being padded to a fixed preset height that left a big empty band\n // below short content. A `canvasSize` (fixed-aspect canvas artboard) overrides\n // this with a hard pixel height.\n const fixedHeight = canvasSize;\n const minHeight = fixedHeight ?? preset.minHeight;\n const baseScale = compact ? Math.min(1, 320 / preset.width) : 1;\n const maxFrameWidth = compact ? preset.width * baseScale : width;\n const [fitScale, setFitScale] = useState(baseScale);\n // The scaled artboard is `transform: scale()`-ed, which does not change its\n // layout box, so the wrapper that reserves vertical space must track the\n // artboard's ACTUAL rendered height. With a fixed height that's known up front;\n // with auto-height we measure it.\n const [measuredHeight, setMeasuredHeight] = useState<number | null>(\n fixedHeight ?? null,\n );\n const designMode = renderMode === \"design\";\n const sketchy = !designMode && style === \"sketchy\" && !skeleton;\n const roughEnabled = sketchy && roughOverlay;\n const paper = designMode\n ? \"hsl(var(--background))\"\n : \"var(--plan-document, hsl(var(--background)))\";\n const frameBorder = skeleton\n ? \"var(--plan-placeholder-line, var(--plan-line, hsl(var(--border))))\"\n : \"var(--plan-line, hsl(var(--border)))\";\n\n useEffect(() => {\n const element = fitRef.current;\n if (!element) return;\n const measure = () => {\n const availableWidth = element.clientWidth;\n const nextScale =\n availableWidth > 0\n ? Math.min(baseScale, availableWidth / width)\n : baseScale;\n setFitScale((current) =>\n Math.abs(current - nextScale) < 0.001 ? current : nextScale,\n );\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(element);\n return () => observer.disconnect();\n }, [baseScale, width]);\n\n // Track the auto-height artboard's rendered height so the (un-transformed)\n // wrapper reserves exactly the scaled space the frame occupies. Skipped when a\n // fixed height is supplied — there's nothing to measure.\n useEffect(() => {\n if (fixedHeight != null) return;\n const element = ref.current;\n if (!element) return;\n const measure = () => {\n const next = element.offsetHeight;\n setMeasuredHeight((current) =>\n current != null && Math.abs(current - next) < 0.5 ? current : next,\n );\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(element);\n return () => observer.disconnect();\n }, [fixedHeight]);\n\n // Height the wrapper reserves: the measured (or fixed) artboard height scaled\n // by the fit factor. Falls back to the surface floor before the first measure\n // so SSR / first paint reserves a sensible box rather than collapsing.\n const reservedHeight = (measuredHeight ?? minHeight) * fitScale;\n const reserveScaledHeight = fixedHeight != null || fitScale !== 1;\n\n return (\n <div\n ref={fitRef}\n className=\"plan-kit-wireframe\"\n style={{\n width: \"100%\",\n maxWidth: maxFrameWidth,\n }}\n >\n <div\n className=\"group/wireframe-artboard relative\"\n style={{\n width: \"100%\",\n maxWidth: maxFrameWidth,\n ...(reserveScaledHeight ? { height: reservedHeight } : {}),\n marginInline: \"auto\",\n }}\n >\n <div\n ref={ref}\n className=\"plan-kit-artboard relative\"\n data-rough-scope=\"wireframe\"\n style={{\n width,\n // Auto-height by default (content-driven, floored at `minHeight`);\n // a fixed `canvasSize` locks the height for canvas artboards.\n ...(fixedHeight != null ? { height: fixedHeight } : { minHeight }),\n borderRadius: preset.radius,\n background: paper,\n ...(fitScale !== 1\n ? {\n transform: `scale(${fitScale})`,\n transformOrigin: \"top left\",\n }\n : {}),\n }}\n >\n {/* Content drives the artboard height in flow when auto-height; for a\n fixed height it's pinned to the box. Rounded corners clip overflow\n either way. */}\n <div\n className=\"overflow-hidden\"\n style={{\n borderRadius: preset.radius,\n ...(fixedHeight != null\n ? { position: \"absolute\", inset: 0 }\n : { minHeight }),\n }}\n >\n {render({ theme, style })}\n </div>\n {!roughEnabled && (\n <div\n className=\"pointer-events-none absolute inset-0\"\n style={{\n borderRadius: preset.radius,\n border: `1.5px solid ${frameBorder}`,\n }}\n />\n )}\n <RoughOverlay\n scopeRef={ref}\n enabled={roughEnabled}\n frameRadius={preset.radius}\n selector={selector}\n />\n </div>\n {!designMode && !skeleton && <WireframeStyleToggleButton />}\n </div>\n {caption && (\n <p className=\"mt-2 text-center text-xs text-plan-muted\">{caption}</p>\n )}\n </div>\n );\n}\n\nfunction WireframeStyleToggleButton() {\n const style = useWireframeStyle();\n const copy = useBlockCopy();\n const nextStyle = style === \"sketchy\" ? \"clean\" : \"sketchy\";\n const label = nextStyle === \"clean\" ? copy.clean : copy.sketchy;\n const description = copy.switchVisualStyle.replace(\n \"{{style}}\",\n label.toLocaleLowerCase(),\n );\n\n return (\n <button\n type=\"button\"\n data-plan-interactive\n data-rough=\"none\"\n data-wireframe-style-toggle\n aria-label={description}\n title={description}\n onClick={(event) => {\n event.stopPropagation();\n toggleWireframeStyle();\n }}\n className=\"absolute right-2 top-2 z-30 inline-flex h-7 items-center gap-1 rounded-md border border-border/60 bg-background/90 px-2 text-xs font-medium text-muted-foreground opacity-0 shadow-sm backdrop-blur transition-[color,opacity] hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring group-hover/wireframe-artboard:opacity-100\"\n >\n <IconPencil className=\"size-3.5\" aria-hidden=\"true\" />\n <span>{label}</span>\n </button>\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* HTML artboard — author HTML, themed + roughened by the renderer. */\n/* -------------------------------------------------------------------------- */\n\nfunction HtmlArtboard({\n data,\n ctx: _ctx,\n compact,\n}: {\n data: WireframeData;\n ctx: BlockRenderContext;\n compact?: boolean;\n}) {\n const renderMode = data.renderMode ?? \"wireframe\";\n const designMode = renderMode === \"design\";\n // Sanitize author HTML/CSS at the render point (defense-in-depth against stored\n // XSS). Self-contained in core via the shared block sanitizer (DOM-based in the\n // browser, regex fallback on the server) so the HTML mockup path renders in any\n // app without the host wiring a sanitizer hook.\n const safeHtml = useMemo(\n () =>\n renderWireframeIconHtml(\n sanitizeWireframeHtml(data.html, {\n preserveThemeClasses: designMode,\n }),\n ),\n [data.html, designMode],\n );\n const scopeId = useId().replace(/[^a-zA-Z0-9_-]/g, \"\");\n const scopedCss = useMemo(() => {\n const safeCss = sanitizeWireframeCss(data.css);\n // Scope every author selector under this instance's artboard so global\n // selectors (body, *, .app-shell, :root) can't restyle/hide the host app.\n return safeCss\n ? scopeDesignCss(safeCss, `[data-plan-design-scope=\"${scopeId}\"]`)\n : \"\";\n }, [data.css, scopeId]);\n\n return (\n <ArtboardFrame\n surface={data.surface}\n compact={compact}\n skeleton={data.skeleton}\n renderMode={renderMode}\n selector={HTML_ROUGH_SELECTOR}\n caption={data.caption}\n render={({ theme, style }) => (\n <div\n className=\"plan-html-frame\"\n data-theme={theme}\n data-style={style}\n data-render-mode={renderMode}\n data-plan-design-scope={scopeId}\n data-skeleton={data.skeleton ? \"true\" : undefined}\n >\n {scopedCss && <style>{scopedCss}</style>}\n <div\n className=\"plan-html-frame-content\"\n dangerouslySetInnerHTML={{ __html: safeHtml }}\n />\n </div>\n )}\n />\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* Kit artboard — declarative kit tree. */\n/* -------------------------------------------------------------------------- */\n\nfunction KitArtboard({\n data,\n compact,\n}: {\n data: WireframeData;\n compact?: boolean;\n}) {\n return (\n <ArtboardFrame\n surface={data.surface}\n compact={compact}\n skeleton={data.skeleton}\n selector=\"[data-rough]\"\n caption={data.caption}\n render={({ theme, style }) => (\n <KitConfigContext.Provider\n value={{ skeleton: data.skeleton, theme, style }}\n >\n {renderKitScreen(data.screen ?? [])}\n </KitConfigContext.Provider>\n )}\n />\n );\n}\n\nfunction renderKitScreen(\n nodes: NonNullable<WireframeData[\"screen\"]>,\n): ReactNode {\n if (nodes.length === 1 && nodes[0]?.el === \"screen\") {\n return renderNodes(nodes);\n }\n // `minHeight` (not `height`) so the screen fills the auto-height artboard floor\n // but grows past it when content is tall, instead of locking to a fixed box.\n return (\n <Screen pad=\"calc(var(--pad) * 1.35)\" style={{ minHeight: \"100%\" }}>\n {renderNodes(nodes)}\n </Screen>\n );\n}\n\n/**\n * The bare wireframe surface (no block section / title). Routes to the HTML\n * mockup when `data.html` is present and a sanitizer is wired; otherwise renders\n * the kit tree.\n */\nfunction WireframeSurfaceView({\n data,\n ctx,\n compact,\n}: {\n data: WireframeData;\n ctx: BlockRenderContext;\n compact?: boolean;\n}) {\n if (isHtmlData(data)) {\n return <HtmlArtboard data={data} ctx={ctx} compact={compact} />;\n }\n return <KitArtboard data={data} compact={compact} />;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Block Read / Edit */\n/* -------------------------------------------------------------------------- */\n\n/** Read-only renderer for a `wireframe` block. */\nexport function WireframeBlock({\n data,\n blockId,\n title,\n summary,\n ctx,\n compactVisuals,\n}: BlockReadProps<WireframeData>) {\n return (\n <section\n {...ltrCodeBlockProps}\n className=\"an-block plan-block an-wireframe\"\n data-block-id={blockId}\n >\n {title && <div className=\"an-block-label plan-block-label\">{title}</div>}\n <WireframeSurfaceView data={data} ctx={ctx} compact={compactVisuals} />\n {summary && <p className=\"mt-5 text-plan-muted\">{summary}</p>}\n </section>\n );\n}\n\n/**\n * Editor for the `wireframe` block. The wireframe is canvas / agent-patch edited\n * (it never calls `onChange`), so edit mode reuses the read surface — mirroring\n * the plan `WireframeEditor`. The host document editor already wraps the registry\n * edit path in a titled section, so this renders only the surface to avoid\n * double-nesting.\n */\nexport function WireframeEditor({ data, ctx }: BlockEditProps<WireframeData>) {\n return <WireframeSurfaceView data={data} ctx={ctx} />;\n}\n\n/** Full client spec for the shared `wireframe` block (schema + MDX + Read/Edit). */\nexport const wireframeBlock = defineBlock<WireframeData>({\n type: \"wireframe\",\n schema: wireframeSchema,\n mdx: wireframeMdx,\n Read: WireframeBlock,\n Edit: WireframeEditor,\n placement: [\"block\"],\n editSurface: \"inline\",\n label: \"Wireframe\",\n description:\n \"A sketch wireframe of one screen built from kit primitives (or an HTML mockup), rendered in a chosen surface frame (desktop/mobile/popover/panel/browser).\",\n // `surface` is the only required field; `screen` defaults to []. Start on the\n // desktop surface with an empty screen so the canvas/agent can fill it in.\n empty: () => ({ surface: \"desktop\", screen: [] }),\n});\n"]}
@@ -38,6 +38,17 @@ export type MdxJsxNode = {
38
38
  export declare function attributeValue(attr: MdxAttrNode | undefined): unknown;
39
39
  /** Build a {@link BlockAttrReader} bound to one parsed JSX node. */
40
40
  export declare function createAttrReader(node: MdxJsxNode): BlockAttrReader;
41
+ /**
42
+ * Convert named MDX child code fences into block data fields. This keeps source
43
+ * authoring normal Markdown/MDX while letting block specs opt into conventions
44
+ * such as "```html" -> data.html and "```css" -> data.css.
45
+ */
46
+ export declare function childCodeFenceFields<TData extends object>(childNodes: unknown[], fieldsByLang: Record<string, keyof TData & string>): Partial<TData>;
47
+ /**
48
+ * Serialize selected string data fields as named child code fences. Uses a fence
49
+ * length that cannot be closed by the field body.
50
+ */
51
+ export declare function serializeChildCodeFenceFields<TData extends object>(data: TData, fieldsByLang: Record<string, keyof TData & string>): string;
41
52
  /** The base-attribute + body shape every block carries. */
42
53
  export interface SerializableBlock {
43
54
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/mdx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAC;AAE3E;;;;;;;GAOG;AAMH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAazD;AAMD,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAAC;CAC3C,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAuBF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAWF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAgBrE;AA4DD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAyBlE;AAMD,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,iBAAiB,GACvB,MAAM,CA+BR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAmBxC"}
1
+ {"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/mdx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAC;AAE3E;;;;;;;GAOG;AAMH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAazD;AAMD,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAAC;CAC3C,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAuBF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAWF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAgBrE;AA4DD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAyBlE;AAoBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,MAAM,EACvD,UAAU,EAAE,OAAO,EAAE,EACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,GACjD,OAAO,CAAC,KAAK,CAAC,CAYhB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,SAAS,MAAM,EAChE,IAAI,EAAE,KAAK,EACX,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,GACjD,MAAM,CAUR;AAMD,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,iBAAiB,GACvB,MAAM,CAiCR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAmBxC"}
@@ -158,6 +158,49 @@ export function createAttrReader(node) {
158
158
  },
159
159
  };
160
160
  }
161
+ function codeFenceFor(value) {
162
+ const longestBacktickRun = value.match(/`+/g)?.reduce((max, run) => Math.max(max, run.length), 0) ?? 0;
163
+ return "`".repeat(Math.max(3, longestBacktickRun + 1));
164
+ }
165
+ function codeFenceLang(value) {
166
+ return typeof value === "string"
167
+ ? value.trim().split(/\s+/)[0]?.toLowerCase()
168
+ : undefined;
169
+ }
170
+ /**
171
+ * Convert named MDX child code fences into block data fields. This keeps source
172
+ * authoring normal Markdown/MDX while letting block specs opt into conventions
173
+ * such as "```html" -> data.html and "```css" -> data.css.
174
+ */
175
+ export function childCodeFenceFields(childNodes, fieldsByLang) {
176
+ const out = {};
177
+ for (const node of childNodes) {
178
+ if (!node || node.type !== "code" || typeof node.value !== "string") {
179
+ continue;
180
+ }
181
+ const field = fieldsByLang[codeFenceLang(node.lang) ?? ""];
182
+ if (field) {
183
+ out[field] = node.value;
184
+ }
185
+ }
186
+ return out;
187
+ }
188
+ /**
189
+ * Serialize selected string data fields as named child code fences. Uses a fence
190
+ * length that cannot be closed by the field body.
191
+ */
192
+ export function serializeChildCodeFenceFields(data, fieldsByLang) {
193
+ const fences = [];
194
+ const record = data;
195
+ for (const [lang, field] of Object.entries(fieldsByLang)) {
196
+ const value = record[field];
197
+ if (typeof value !== "string" || value.length === 0)
198
+ continue;
199
+ const fence = codeFenceFor(value);
200
+ fences.push(`${fence}${lang}\n${value.trimEnd()}\n${fence}`);
201
+ }
202
+ return fences.length ? `\n${fences.join("\n\n")}\n` : "";
203
+ }
161
204
  /**
162
205
  * Serialize a block to its MDX element using its spec. Byte output MUST match
163
206
  * the legacy `serializeBlock` for every converted block: base attrs
@@ -178,7 +221,10 @@ export function serializeSpecBlock(spec, block) {
178
221
  const tag = spec.mdx.tag;
179
222
  // Custom nested-MDX children (e.g. wireframe Screen/kit tree).
180
223
  if (spec.mdx.serializeChildren) {
181
- return `<${tag}${base}${attrStr}>\n${spec.mdx.serializeChildren(block.data)}\n</${tag}>`;
224
+ const children = spec.mdx.serializeChildren(block.data);
225
+ if (!children.trim())
226
+ return `<${tag}${base}${attrStr} />`;
227
+ return `<${tag}${base}${attrStr}>\n${children}\n</${tag}>`;
182
228
  }
183
229
  // Prose children (rich-text, callout): body is a trimmed markdown string.
184
230
  if (childrenField) {
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.js","sourceRoot":"","sources":["../../../src/client/blocks/mdx.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BlockRegistry } from \"./registry.js\";\nimport type { BlockSpec, BlockAttrReader, MdxAttrValue } from \"./types.js\";\n\n/**\n * Registry-driven MDX serialize/parse, plus the shared encoder primitives that\n * are the round-trip contract. This module is React-free so the server MDX\n * adapter (`plan-mdx.ts`) and the agent schema export can import it. The encoder\n * + estree literal walker are kept BYTE-FOR-BYTE identical to the originals in\n * `plan-mdx.ts` — `plan-mdx.ts` re-imports them so nothing else there changes\n * and stored `.mdx` files round-trip the same.\n */\n\n/* -------------------------------------------------------------------------- */\n/* Serialize-side encoder primitives (moved verbatim from plan-mdx.ts) */\n/* -------------------------------------------------------------------------- */\n\nexport function jsonExpression(value: unknown): string {\n return JSON.stringify(value, null, 2);\n}\n\nexport function escapeAttr(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\");\n}\n\n/**\n * Encode a single attribute. Returns \"\" (the attribute is dropped) for\n * undefined/null; a bare/`={false}` flag for booleans; `={n}` for numbers; a\n * quoted string when it matches the safe charset and is short, else a JSON\n * expression. Objects/arrays always serialize as a JSON expression.\n */\nexport function prop(name: string, value: unknown): string {\n if (value === undefined || value === null) return \"\";\n if (typeof value === \"boolean\") {\n return value ? ` ${name}` : ` ${name}={false}`;\n }\n if (typeof value === \"number\") return ` ${name}={${value}}`;\n if (typeof value === \"string\") {\n if (/^[\\w .:/@#,+()[\\]-]+$/.test(value) && value.length < 140) {\n return ` ${name}=\"${escapeAttr(value)}\"`;\n }\n return ` ${name}={${jsonExpression(value)}}`;\n }\n return ` ${name}={${jsonExpression(value)}}`;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Parse-side attribute resolution (moved verbatim from plan-mdx.ts) */\n/* -------------------------------------------------------------------------- */\n\n/** Minimal MDX AST node shape (subset of the remark-mdx jsx element). */\nexport type MdxAttrNode = {\n type: string;\n name?: string;\n value?: string | null | MdxAttrExpression;\n};\n\ntype MdxAttrExpression = {\n type: string;\n value: string;\n data?: unknown;\n};\n\ntype EstreeTemplateElement = {\n type: string;\n value?: { cooked?: string | null; raw?: string };\n};\n\ntype EstreeNode = {\n type: string;\n value?: unknown;\n name?: string;\n expression?: EstreeNode;\n body?: EstreeNode[];\n elements?: Array<EstreeNode | null>;\n properties?: EstreeNode[];\n key?: EstreeNode;\n computed?: boolean;\n argument?: EstreeNode;\n operator?: string;\n quasis?: EstreeTemplateElement[];\n expressions?: EstreeNode[];\n};\n\nexport type MdxJsxNode = {\n type: string;\n name?: string;\n attributes?: MdxAttrNode[];\n children?: unknown[];\n [key: string]: unknown;\n};\n\nfunction findAttribute(\n node: MdxJsxNode,\n name: string,\n): MdxAttrNode | undefined {\n return node.attributes?.find(\n (attr) => attr.type === \"mdxJsxAttribute\" && attr.name === name,\n );\n}\n\nexport function attributeValue(attr: MdxAttrNode | undefined): unknown {\n if (!attr) return undefined;\n if (attr.value === null || attr.value === undefined) return true;\n if (typeof attr.value === \"string\") return attr.value;\n const astValue = literalExpressionValue(attr.value);\n if (astValue !== undefined) return astValue;\n const expression = attr.value.value.trim();\n if (!expression) return undefined;\n if (expression === \"undefined\") return undefined;\n try {\n return JSON.parse(expression);\n } catch {\n throw new Error(\n `Unsupported MDX attribute expression for \"${attr.name}\": {${expression}}. Use literal values or valid JSON.`,\n );\n }\n}\n\nfunction literalExpressionValue(expression: MdxAttrExpression): unknown {\n const estree = (expression.data as { estree?: EstreeNode } | undefined)\n ?.estree;\n const statement = estree?.body?.[0];\n if (!statement || statement.type !== \"ExpressionStatement\") return undefined;\n return literalNodeValue(statement.expression);\n}\n\nfunction literalNodeValue(node: EstreeNode | undefined | null): unknown {\n if (!node) return undefined;\n if (node.type === \"Literal\") return node.value;\n if (node.type === \"TemplateLiteral\") {\n // A template literal WITH `${…}` interpolations can't be evaluated\n // statically — fail loudly so the import errors instead of falling through\n // to a confusing JSON parse error or silently dropping the attribute.\n if ((node.expressions?.length ?? 0) > 0) {\n throw new Error(\n \"Template literal attribute values may not contain ${…} expressions; use a static string.\",\n );\n }\n // A template literal with no expressions is a static string:\n // `<div>hi</div>` → \"<div>hi</div>\".\n return node.quasis?.[0]?.value?.cooked ?? \"\";\n }\n if (node.type === \"ArrayExpression\") {\n return (node.elements ?? []).map((item) => literalNodeValue(item));\n }\n if (node.type === \"ObjectExpression\") {\n const out: Record<string, unknown> = {};\n for (const property of node.properties ?? []) {\n if (property.type !== \"Property\" || property.computed) return undefined;\n const key = property.key;\n const rawKey =\n key?.type === \"Identifier\"\n ? key.name\n : key?.type === \"Literal\" && typeof key.value === \"string\"\n ? key.value\n : undefined;\n if (!rawKey) return undefined;\n const value = literalNodeValue(property.value as EstreeNode | undefined);\n if (value !== undefined) out[rawKey] = value;\n }\n return out;\n }\n if (node.type === \"UnaryExpression\") {\n const value = literalNodeValue(node.argument);\n if (typeof value !== \"number\") return undefined;\n if (node.operator === \"-\") return -value;\n if (node.operator === \"+\") return value;\n }\n if (node.type === \"Identifier\") {\n if (node.name === \"undefined\") return undefined;\n if (node.name === \"NaN\") return Number.NaN;\n if (node.name === \"Infinity\") return Infinity;\n }\n return undefined;\n}\n\n/** Build a {@link BlockAttrReader} bound to one parsed JSX node. */\nexport function createAttrReader(node: MdxJsxNode): BlockAttrReader {\n const read = (name: string) => attributeValue(findAttribute(node, name));\n return {\n raw: read,\n string(name) {\n const value = read(name);\n return typeof value === \"string\" ? value : undefined;\n },\n number(name) {\n const value = read(name);\n return typeof value === \"number\" ? value : undefined;\n },\n bool(name) {\n const value = read(name);\n return typeof value === \"boolean\" ? value : undefined;\n },\n array(name) {\n const value = read(name);\n return Array.isArray(value) ? (value as never[]) : undefined;\n },\n object(name) {\n const value = read(name);\n return value && typeof value === \"object\" ? (value as never) : undefined;\n },\n };\n}\n\n/* -------------------------------------------------------------------------- */\n/* Registry serialize / parse */\n/* -------------------------------------------------------------------------- */\n\n/** The base-attribute + body shape every block carries. */\nexport interface SerializableBlock {\n id: string;\n title?: string;\n summary?: string;\n editable?: boolean;\n data: unknown;\n}\n\n/** Base block attributes parsed from a node, before the type-specific data. */\nexport interface ParsedBlockBase {\n id: string;\n title?: string;\n summary?: string;\n editable?: boolean;\n}\n\n/**\n * Serialize a block to its MDX element using its spec. Byte output MUST match\n * the legacy `serializeBlock` for every converted block: base attrs\n * (`id,title,summary,editable`) first, then the spec's `toAttrs` in insertion\n * order, then either nested children, prose children, or self-closing.\n */\nexport function serializeSpecBlock(\n spec: BlockSpec<any>,\n block: SerializableBlock,\n): string {\n const base =\n prop(\"id\", block.id) +\n prop(\"title\", block.title) +\n prop(\"summary\", block.summary) +\n prop(\"editable\", block.editable);\n\n const attrs = spec.mdx.toAttrs(block.data);\n const childrenField = spec.mdx.childrenField;\n const attrStr = Object.entries(attrs)\n .filter(([key]) => key !== childrenField)\n .map(([key, value]) => prop(key, value as MdxAttrValue | undefined))\n .join(\"\");\n\n const tag = spec.mdx.tag;\n\n // Custom nested-MDX children (e.g. wireframe Screen/kit tree).\n if (spec.mdx.serializeChildren) {\n return `<${tag}${base}${attrStr}>\\n${spec.mdx.serializeChildren(block.data)}\\n</${tag}>`;\n }\n\n // Prose children (rich-text, callout): body is a trimmed markdown string.\n if (childrenField) {\n const body = String(\n (block.data as Record<string, unknown>)[childrenField] ?? \"\",\n ).trim();\n return `<${tag}${base}${attrStr}>\\n\\n${body}\\n\\n</${tag}>`;\n }\n\n // Self-closing structured block.\n return `<${tag}${base}${attrStr} />`;\n}\n\n/**\n * Parse one MDX JSX node into a block via the registry, if its tag is\n * registered. Returns `null` for unregistered tags so the caller can fall back\n * to its legacy parser. `base` is the already-extracted id/title/summary/\n * editable; `children` is the stringified prose children.\n */\nexport function parseSpecBlock(\n registry: BlockRegistry,\n node: MdxJsxNode,\n base: ParsedBlockBase,\n children: string,\n idContext: string,\n): { type: string; data: unknown } | null {\n const tag = node.name;\n if (!tag) return null;\n const spec = registry.getByTag(tag);\n if (!spec) return null;\n\n const reader = createAttrReader(node);\n let data: unknown;\n if (spec.mdx.parseChildren) {\n const fromAttrs = spec.mdx.fromAttrs(reader, children);\n const fromChildren = spec.mdx.parseChildren(\n node.children ?? [],\n `${idContext}-${base.id}`,\n );\n data = { ...(fromAttrs as object), ...(fromChildren as object) };\n } else {\n data = spec.mdx.fromAttrs(reader, children);\n }\n return { type: spec.type, data };\n}\n"]}
1
+ {"version":3,"file":"mdx.js","sourceRoot":"","sources":["../../../src/client/blocks/mdx.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEhF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9D,OAAO,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,CAAC;AAgDD,SAAS,aAAa,CACpB,IAAgB,EAChB,IAAY;IAEZ,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA6B;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,IAAI,OAAO,UAAU,sCAAsC,CAC9G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,UAA6B;IAC3D,MAAM,MAAM,GAAI,UAAU,CAAC,IAA4C;QACrE,EAAE,MAAM,CAAC;IACX,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAmC;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,mEAAmE;QACnE,2EAA2E;QAC3E,sEAAsE;QACtE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;QACJ,CAAC;QACD,6DAA6D;QAC7D,qCAAqC;QACrC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,MAAM,GACV,GAAG,EAAE,IAAI,KAAK,YAAY;gBACxB,CAAC,CAAC,GAAG,CAAC,IAAI;gBACV,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;oBACxD,CAAC,CAAC,GAAG,CAAC,KAAK;oBACX,CAAC,CAAC,SAAS,CAAC;YAClB,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAA+B,CAAC,CAAC;YACzE,IAAI,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;YAAE,OAAO,CAAC,KAAK,CAAC;QACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,EAAE,IAAI;QACT,MAAM,CAAC,IAAI;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,IAAI;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,IAAI;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,CAAC;QACD,MAAM,CAAC,IAAI;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC;KACF,CAAC;AACJ,CAAC;AAQD,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,kBAAkB,GACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;QAC7C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAqB,EACrB,YAAkD;IAElD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,UAA2B,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,CAAC;YACT,GAA8B,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAW,EACX,YAAkD;IAElD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAuBD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAoB,EACpB,KAAwB;IAExB,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAiC,CAAC,CAAC;SACnE,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAEzB,+DAA+D;IAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,KAAK,CAAC;QAC3D,OAAO,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,MAAM,QAAQ,OAAO,GAAG,GAAG,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAChB,KAAK,CAAC,IAAgC,CAAC,aAAa,CAAC,IAAI,EAAE,CAC7D,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,QAAQ,IAAI,SAAS,GAAG,GAAG,CAAC;IAC7D,CAAC;IAED,iCAAiC;IACjC,OAAO,IAAI,GAAG,GAAG,IAAI,GAAG,OAAO,KAAK,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,IAAgB,EAChB,IAAqB,EACrB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,IAAa,CAAC;IAClB,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CACzC,IAAI,CAAC,QAAQ,IAAI,EAAE,EACnB,GAAG,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,CAC1B,CAAC;QACF,IAAI,GAAG,EAAE,GAAI,SAAoB,EAAE,GAAI,YAAuB,EAAE,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC","sourcesContent":["import type { BlockRegistry } from \"./registry.js\";\nimport type { BlockSpec, BlockAttrReader, MdxAttrValue } from \"./types.js\";\n\n/**\n * Registry-driven MDX serialize/parse, plus the shared encoder primitives that\n * are the round-trip contract. This module is React-free so the server MDX\n * adapter (`plan-mdx.ts`) and the agent schema export can import it. The encoder\n * + estree literal walker are kept BYTE-FOR-BYTE identical to the originals in\n * `plan-mdx.ts` — `plan-mdx.ts` re-imports them so nothing else there changes\n * and stored `.mdx` files round-trip the same.\n */\n\n/* -------------------------------------------------------------------------- */\n/* Serialize-side encoder primitives (moved verbatim from plan-mdx.ts) */\n/* -------------------------------------------------------------------------- */\n\nexport function jsonExpression(value: unknown): string {\n return JSON.stringify(value, null, 2);\n}\n\nexport function escapeAttr(value: string): string {\n return value\n .replace(/&/g, \"&amp;\")\n .replace(/\"/g, \"&quot;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\");\n}\n\n/**\n * Encode a single attribute. Returns \"\" (the attribute is dropped) for\n * undefined/null; a bare/`={false}` flag for booleans; `={n}` for numbers; a\n * quoted string when it matches the safe charset and is short, else a JSON\n * expression. Objects/arrays always serialize as a JSON expression.\n */\nexport function prop(name: string, value: unknown): string {\n if (value === undefined || value === null) return \"\";\n if (typeof value === \"boolean\") {\n return value ? ` ${name}` : ` ${name}={false}`;\n }\n if (typeof value === \"number\") return ` ${name}={${value}}`;\n if (typeof value === \"string\") {\n if (/^[\\w .:/@#,+()[\\]-]+$/.test(value) && value.length < 140) {\n return ` ${name}=\"${escapeAttr(value)}\"`;\n }\n return ` ${name}={${jsonExpression(value)}}`;\n }\n return ` ${name}={${jsonExpression(value)}}`;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Parse-side attribute resolution (moved verbatim from plan-mdx.ts) */\n/* -------------------------------------------------------------------------- */\n\n/** Minimal MDX AST node shape (subset of the remark-mdx jsx element). */\nexport type MdxAttrNode = {\n type: string;\n name?: string;\n value?: string | null | MdxAttrExpression;\n};\n\ntype MdxAttrExpression = {\n type: string;\n value: string;\n data?: unknown;\n};\n\ntype EstreeTemplateElement = {\n type: string;\n value?: { cooked?: string | null; raw?: string };\n};\n\ntype EstreeNode = {\n type: string;\n value?: unknown;\n name?: string;\n expression?: EstreeNode;\n body?: EstreeNode[];\n elements?: Array<EstreeNode | null>;\n properties?: EstreeNode[];\n key?: EstreeNode;\n computed?: boolean;\n argument?: EstreeNode;\n operator?: string;\n quasis?: EstreeTemplateElement[];\n expressions?: EstreeNode[];\n};\n\nexport type MdxJsxNode = {\n type: string;\n name?: string;\n attributes?: MdxAttrNode[];\n children?: unknown[];\n [key: string]: unknown;\n};\n\nfunction findAttribute(\n node: MdxJsxNode,\n name: string,\n): MdxAttrNode | undefined {\n return node.attributes?.find(\n (attr) => attr.type === \"mdxJsxAttribute\" && attr.name === name,\n );\n}\n\nexport function attributeValue(attr: MdxAttrNode | undefined): unknown {\n if (!attr) return undefined;\n if (attr.value === null || attr.value === undefined) return true;\n if (typeof attr.value === \"string\") return attr.value;\n const astValue = literalExpressionValue(attr.value);\n if (astValue !== undefined) return astValue;\n const expression = attr.value.value.trim();\n if (!expression) return undefined;\n if (expression === \"undefined\") return undefined;\n try {\n return JSON.parse(expression);\n } catch {\n throw new Error(\n `Unsupported MDX attribute expression for \"${attr.name}\": {${expression}}. Use literal values or valid JSON.`,\n );\n }\n}\n\nfunction literalExpressionValue(expression: MdxAttrExpression): unknown {\n const estree = (expression.data as { estree?: EstreeNode } | undefined)\n ?.estree;\n const statement = estree?.body?.[0];\n if (!statement || statement.type !== \"ExpressionStatement\") return undefined;\n return literalNodeValue(statement.expression);\n}\n\nfunction literalNodeValue(node: EstreeNode | undefined | null): unknown {\n if (!node) return undefined;\n if (node.type === \"Literal\") return node.value;\n if (node.type === \"TemplateLiteral\") {\n // A template literal WITH `${…}` interpolations can't be evaluated\n // statically — fail loudly so the import errors instead of falling through\n // to a confusing JSON parse error or silently dropping the attribute.\n if ((node.expressions?.length ?? 0) > 0) {\n throw new Error(\n \"Template literal attribute values may not contain ${…} expressions; use a static string.\",\n );\n }\n // A template literal with no expressions is a static string:\n // `<div>hi</div>` → \"<div>hi</div>\".\n return node.quasis?.[0]?.value?.cooked ?? \"\";\n }\n if (node.type === \"ArrayExpression\") {\n return (node.elements ?? []).map((item) => literalNodeValue(item));\n }\n if (node.type === \"ObjectExpression\") {\n const out: Record<string, unknown> = {};\n for (const property of node.properties ?? []) {\n if (property.type !== \"Property\" || property.computed) return undefined;\n const key = property.key;\n const rawKey =\n key?.type === \"Identifier\"\n ? key.name\n : key?.type === \"Literal\" && typeof key.value === \"string\"\n ? key.value\n : undefined;\n if (!rawKey) return undefined;\n const value = literalNodeValue(property.value as EstreeNode | undefined);\n if (value !== undefined) out[rawKey] = value;\n }\n return out;\n }\n if (node.type === \"UnaryExpression\") {\n const value = literalNodeValue(node.argument);\n if (typeof value !== \"number\") return undefined;\n if (node.operator === \"-\") return -value;\n if (node.operator === \"+\") return value;\n }\n if (node.type === \"Identifier\") {\n if (node.name === \"undefined\") return undefined;\n if (node.name === \"NaN\") return Number.NaN;\n if (node.name === \"Infinity\") return Infinity;\n }\n return undefined;\n}\n\n/** Build a {@link BlockAttrReader} bound to one parsed JSX node. */\nexport function createAttrReader(node: MdxJsxNode): BlockAttrReader {\n const read = (name: string) => attributeValue(findAttribute(node, name));\n return {\n raw: read,\n string(name) {\n const value = read(name);\n return typeof value === \"string\" ? value : undefined;\n },\n number(name) {\n const value = read(name);\n return typeof value === \"number\" ? value : undefined;\n },\n bool(name) {\n const value = read(name);\n return typeof value === \"boolean\" ? value : undefined;\n },\n array(name) {\n const value = read(name);\n return Array.isArray(value) ? (value as never[]) : undefined;\n },\n object(name) {\n const value = read(name);\n return value && typeof value === \"object\" ? (value as never) : undefined;\n },\n };\n}\n\ntype MdxCodeNode = {\n type?: unknown;\n lang?: unknown;\n value?: unknown;\n};\n\nfunction codeFenceFor(value: string): string {\n const longestBacktickRun =\n value.match(/`+/g)?.reduce((max, run) => Math.max(max, run.length), 0) ?? 0;\n return \"`\".repeat(Math.max(3, longestBacktickRun + 1));\n}\n\nfunction codeFenceLang(value: unknown): string | undefined {\n return typeof value === \"string\"\n ? value.trim().split(/\\s+/)[0]?.toLowerCase()\n : undefined;\n}\n\n/**\n * Convert named MDX child code fences into block data fields. This keeps source\n * authoring normal Markdown/MDX while letting block specs opt into conventions\n * such as \"```html\" -> data.html and \"```css\" -> data.css.\n */\nexport function childCodeFenceFields<TData extends object>(\n childNodes: unknown[],\n fieldsByLang: Record<string, keyof TData & string>,\n): Partial<TData> {\n const out: Partial<TData> = {};\n for (const node of childNodes as MdxCodeNode[]) {\n if (!node || node.type !== \"code\" || typeof node.value !== \"string\") {\n continue;\n }\n const field = fieldsByLang[codeFenceLang(node.lang) ?? \"\"];\n if (field) {\n (out as Record<string, string>)[field] = node.value;\n }\n }\n return out;\n}\n\n/**\n * Serialize selected string data fields as named child code fences. Uses a fence\n * length that cannot be closed by the field body.\n */\nexport function serializeChildCodeFenceFields<TData extends object>(\n data: TData,\n fieldsByLang: Record<string, keyof TData & string>,\n): string {\n const fences: string[] = [];\n const record = data as Record<string, unknown>;\n for (const [lang, field] of Object.entries(fieldsByLang)) {\n const value = record[field];\n if (typeof value !== \"string\" || value.length === 0) continue;\n const fence = codeFenceFor(value);\n fences.push(`${fence}${lang}\\n${value.trimEnd()}\\n${fence}`);\n }\n return fences.length ? `\\n${fences.join(\"\\n\\n\")}\\n` : \"\";\n}\n\n/* -------------------------------------------------------------------------- */\n/* Registry serialize / parse */\n/* -------------------------------------------------------------------------- */\n\n/** The base-attribute + body shape every block carries. */\nexport interface SerializableBlock {\n id: string;\n title?: string;\n summary?: string;\n editable?: boolean;\n data: unknown;\n}\n\n/** Base block attributes parsed from a node, before the type-specific data. */\nexport interface ParsedBlockBase {\n id: string;\n title?: string;\n summary?: string;\n editable?: boolean;\n}\n\n/**\n * Serialize a block to its MDX element using its spec. Byte output MUST match\n * the legacy `serializeBlock` for every converted block: base attrs\n * (`id,title,summary,editable`) first, then the spec's `toAttrs` in insertion\n * order, then either nested children, prose children, or self-closing.\n */\nexport function serializeSpecBlock(\n spec: BlockSpec<any>,\n block: SerializableBlock,\n): string {\n const base =\n prop(\"id\", block.id) +\n prop(\"title\", block.title) +\n prop(\"summary\", block.summary) +\n prop(\"editable\", block.editable);\n\n const attrs = spec.mdx.toAttrs(block.data);\n const childrenField = spec.mdx.childrenField;\n const attrStr = Object.entries(attrs)\n .filter(([key]) => key !== childrenField)\n .map(([key, value]) => prop(key, value as MdxAttrValue | undefined))\n .join(\"\");\n\n const tag = spec.mdx.tag;\n\n // Custom nested-MDX children (e.g. wireframe Screen/kit tree).\n if (spec.mdx.serializeChildren) {\n const children = spec.mdx.serializeChildren(block.data);\n if (!children.trim()) return `<${tag}${base}${attrStr} />`;\n return `<${tag}${base}${attrStr}>\\n${children}\\n</${tag}>`;\n }\n\n // Prose children (rich-text, callout): body is a trimmed markdown string.\n if (childrenField) {\n const body = String(\n (block.data as Record<string, unknown>)[childrenField] ?? \"\",\n ).trim();\n return `<${tag}${base}${attrStr}>\\n\\n${body}\\n\\n</${tag}>`;\n }\n\n // Self-closing structured block.\n return `<${tag}${base}${attrStr} />`;\n}\n\n/**\n * Parse one MDX JSX node into a block via the registry, if its tag is\n * registered. Returns `null` for unregistered tags so the caller can fall back\n * to its legacy parser. `base` is the already-extracted id/title/summary/\n * editable; `children` is the stringified prose children.\n */\nexport function parseSpecBlock(\n registry: BlockRegistry,\n node: MdxJsxNode,\n base: ParsedBlockBase,\n children: string,\n idContext: string,\n): { type: string; data: unknown } | null {\n const tag = node.name;\n if (!tag) return null;\n const spec = registry.getByTag(tag);\n if (!spec) return null;\n\n const reader = createAttrReader(node);\n let data: unknown;\n if (spec.mdx.parseChildren) {\n const fromAttrs = spec.mdx.fromAttrs(reader, children);\n const fromChildren = spec.mdx.parseChildren(\n node.children ?? [],\n `${idContext}-${base.id}`,\n );\n data = { ...(fromAttrs as object), ...(fromChildren as object) };\n } else {\n data = spec.mdx.fromAttrs(reader, children);\n }\n return { type: spec.type, data };\n}\n"]}
@@ -12,7 +12,7 @@
12
12
  export { defineBlock, type BlockSpec, type BlockPlacement, type BlockMdxConfig, type BlockAttrReader, type MdxAttrValue, type NestedBlock, } from "./types.js";
13
13
  export { BlockRegistry, registerBlocks } from "./registry.js";
14
14
  export { markdown, richtext, introspect, type FieldKind, type FieldDescriptor, } from "./schema-form/introspect.js";
15
- export { prop, escapeAttr, jsonExpression, attributeValue, createAttrReader, serializeSpecBlock, parseSpecBlock, type MdxJsxNode, type MdxAttrNode, type SerializableBlock, type ParsedBlockBase, } from "./mdx.js";
15
+ export { prop, escapeAttr, jsonExpression, attributeValue, createAttrReader, childCodeFenceFields, serializeChildCodeFenceFields, serializeSpecBlock, parseSpecBlock, type MdxJsxNode, type MdxAttrNode, type SerializableBlock, type ParsedBlockBase, } from "./mdx.js";
16
16
  export { describeBlocksForAgent, renderBlockVocabularyReference, type BlockAgentDoc, } from "./agent.js";
17
17
  export { libraryBlockConfigs, registerLibraryBlockConfigs, type LibraryBlockConfigOverrides, } from "./library/server-specs.js";
18
18
  export { checklistSchema, checklistMdx, type ChecklistData, type ChecklistItem, } from "./library/checklist.config.js";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/server.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  export { defineBlock, } from "./types.js";
13
13
  export { BlockRegistry, registerBlocks } from "./registry.js";
14
14
  export { markdown, richtext, introspect, } from "./schema-form/introspect.js";
15
- export { prop, escapeAttr, jsonExpression, attributeValue, createAttrReader, serializeSpecBlock, parseSpecBlock, } from "./mdx.js";
15
+ export { prop, escapeAttr, jsonExpression, attributeValue, createAttrReader, childCodeFenceFields, serializeChildCodeFenceFields, serializeSpecBlock, parseSpecBlock, } from "./mdx.js";
16
16
  export { describeBlocksForAgent, renderBlockVocabularyReference, } from "./agent.js";
17
17
  // Standard library registration (React-free). Server / shared registries call
18
18
  // `registerLibraryBlockConfigs(registry)` to register the whole standard library
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/client/blocks/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,WAAW,GAOZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,GAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GAKf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAE/B,MAAM,YAAY,CAAC;AAEpB,8EAA8E;AAC9E,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAE5B,MAAM,2BAA2B,CAAC;AAEnC,0EAA0E;AAC1E,0EAA0E;AAC1E,uDAAuD;AACvD,OAAO,EACL,eAAe,EACf,YAAY,GAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,WAAW,EACX,QAAQ,GAET,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,OAAO,GAER,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EACV,OAAO,GAIR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,UAAU,GAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,GAGd,MAAM,6BAA6B,CAAC;AAErC,yEAAyE;AACzE,gFAAgF;AAChF,gEAAgE;AAChE,OAAO,EACL,aAAa,EACb,UAAU,GAEX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GAOpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,yBAAyB,GAM1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,UAAU,EACV,OAAO,GAGR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,GAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,eAAe,GAEhB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,kCAAkC,CAAC","sourcesContent":["/**\n * `@agent-native/core/blocks/server` — the React-free subset of the block\n * registry for server / agent code (MDX serialize/parse, the registry, schema\n * introspection, the `markdown()` helper, agent schema export). Importing this\n * entry never pulls React into the server bundle.\n *\n * A `BlockSpec` carries React (`Read`/`Edit`) and pure (`schema`/`mdx`) parts in\n * the same object; the server path only touches `spec.schema` / `spec.mdx`. The\n * app's registry module is shared by browser and server, but the server only\n * ever calls these React-free functions on it.\n */\n\nexport {\n defineBlock,\n type BlockSpec,\n type BlockPlacement,\n type BlockMdxConfig,\n type BlockAttrReader,\n type MdxAttrValue,\n type NestedBlock,\n} from \"./types.js\";\n\nexport { BlockRegistry, registerBlocks } from \"./registry.js\";\n\nexport {\n markdown,\n richtext,\n introspect,\n type FieldKind,\n type FieldDescriptor,\n} from \"./schema-form/introspect.js\";\n\nexport {\n prop,\n escapeAttr,\n jsonExpression,\n attributeValue,\n createAttrReader,\n serializeSpecBlock,\n parseSpecBlock,\n type MdxJsxNode,\n type MdxAttrNode,\n type SerializableBlock,\n type ParsedBlockBase,\n} from \"./mdx.js\";\n\nexport {\n describeBlocksForAgent,\n renderBlockVocabularyReference,\n type BlockAgentDoc,\n} from \"./agent.js\";\n\n// Standard library registration (React-free). Server / shared registries call\n// `registerLibraryBlockConfigs(registry)` to register the whole standard library\n// as `Read: () => null` config stubs in one place, then add their app-specific\n// block configs on top. `libraryBlockConfigs` is the underlying ordered array.\nexport {\n libraryBlockConfigs,\n registerLibraryBlockConfigs,\n type LibraryBlockConfigOverrides,\n} from \"./library/server-specs.js\";\n\n// Standard block library — React-free schema + MDX config only. The React\n// `Read`/`Edit` live in `./library/checklist.tsx` (imported from the full\n// `@agent-native/core/blocks` entry), never from here.\nexport {\n checklistSchema,\n checklistMdx,\n type ChecklistData,\n type ChecklistItem,\n} from \"./library/checklist.config.js\";\nexport {\n tableSchema,\n tableMdx,\n type TableData,\n} from \"./library/table.config.js\";\nexport {\n codeTabsSchema,\n codeTabsMdx,\n type CodeTabsData,\n type CodeTabsTab,\n} from \"./library/code-tabs.config.js\";\nexport {\n htmlSchema,\n htmlMdx,\n type HtmlBlockData,\n} from \"./library/html.config.js\";\nexport {\n tabsSchema,\n tabsMdx,\n type TabsData,\n type TabsOrientation,\n type TabsTab,\n} from \"./library/tabs.config.js\";\nexport {\n columnsSchema,\n columnsMdx,\n type ColumnsData,\n type ColumnsColumn,\n} from \"./library/columns.config.js\";\nexport {\n calloutSchema,\n calloutMdx,\n CALLOUT_TONES,\n type CalloutData,\n type CalloutTone,\n} from \"./library/callout.config.js\";\n\n// Dev-doc block library — React-free schema + MDX config only. The React\n// `Read`/`Edit` live in the matching `./library/<Name>Block.tsx` (imported from\n// the full `@agent-native/core/blocks` entry), never from here.\nexport {\n mermaidSchema,\n mermaidMdx,\n type MermaidData,\n} from \"./library/mermaid.config.js\";\nexport {\n apiEndpointSchema,\n apiEndpointMdx,\n API_ENDPOINT_METHODS,\n API_PARAM_LOCATIONS,\n type ApiEndpointData,\n type ApiEndpointMethod,\n type ApiEndpointParam,\n type ApiEndpointRequest,\n type ApiEndpointResponse,\n type ApiParamLocation,\n} from \"./library/api-endpoint.config.js\";\nexport {\n dataModelSchema,\n dataModelMdx,\n DATA_MODEL_RELATION_KINDS,\n type DataModelData,\n type DataModelEntity,\n type DataModelField,\n type DataModelRelation,\n type DataModelRelationKind,\n} from \"./library/data-model.config.js\";\nexport {\n diffSchema,\n diffMdx,\n type DiffData,\n type DiffMode,\n} from \"./library/diff.config.js\";\nexport {\n fileTreeSchema,\n fileTreeMdx,\n FILE_TREE_CHANGES,\n type FileTreeData,\n type FileTreeEntry,\n type FileTreeChange,\n} from \"./library/file-tree.config.js\";\nexport {\n jsonExplorerSchema,\n jsonExplorerMdx,\n type JsonExplorerData,\n} from \"./library/json-explorer.config.js\";\nexport {\n annotatedCodeSchema,\n annotatedCodeMdx,\n type AnnotatedCodeData,\n type AnnotatedCodeAnnotation,\n} from \"./library/annotated-code.config.js\";\nexport {\n openApiSpecSchema,\n openApiSpecMdx,\n type OpenApiSpecData,\n} from \"./library/openapi-spec.config.js\";\n"]}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/client/blocks/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,WAAW,GAOZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,GAGX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC7B,kBAAkB,EAClB,cAAc,GAKf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAE/B,MAAM,YAAY,CAAC;AAEpB,8EAA8E;AAC9E,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAE5B,MAAM,2BAA2B,CAAC;AAEnC,0EAA0E;AAC1E,0EAA0E;AAC1E,uDAAuD;AACvD,OAAO,EACL,eAAe,EACf,YAAY,GAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,WAAW,EACX,QAAQ,GAET,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,OAAO,GAER,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EACV,OAAO,GAIR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,UAAU,GAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,GAGd,MAAM,6BAA6B,CAAC;AAErC,yEAAyE;AACzE,gFAAgF;AAChF,gEAAgE;AAChE,OAAO,EACL,aAAa,EACb,UAAU,GAEX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,GAOpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,yBAAyB,GAM1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,UAAU,EACV,OAAO,GAGR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,GAIlB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,eAAe,GAEhB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,kCAAkC,CAAC","sourcesContent":["/**\n * `@agent-native/core/blocks/server` — the React-free subset of the block\n * registry for server / agent code (MDX serialize/parse, the registry, schema\n * introspection, the `markdown()` helper, agent schema export). Importing this\n * entry never pulls React into the server bundle.\n *\n * A `BlockSpec` carries React (`Read`/`Edit`) and pure (`schema`/`mdx`) parts in\n * the same object; the server path only touches `spec.schema` / `spec.mdx`. The\n * app's registry module is shared by browser and server, but the server only\n * ever calls these React-free functions on it.\n */\n\nexport {\n defineBlock,\n type BlockSpec,\n type BlockPlacement,\n type BlockMdxConfig,\n type BlockAttrReader,\n type MdxAttrValue,\n type NestedBlock,\n} from \"./types.js\";\n\nexport { BlockRegistry, registerBlocks } from \"./registry.js\";\n\nexport {\n markdown,\n richtext,\n introspect,\n type FieldKind,\n type FieldDescriptor,\n} from \"./schema-form/introspect.js\";\n\nexport {\n prop,\n escapeAttr,\n jsonExpression,\n attributeValue,\n createAttrReader,\n childCodeFenceFields,\n serializeChildCodeFenceFields,\n serializeSpecBlock,\n parseSpecBlock,\n type MdxJsxNode,\n type MdxAttrNode,\n type SerializableBlock,\n type ParsedBlockBase,\n} from \"./mdx.js\";\n\nexport {\n describeBlocksForAgent,\n renderBlockVocabularyReference,\n type BlockAgentDoc,\n} from \"./agent.js\";\n\n// Standard library registration (React-free). Server / shared registries call\n// `registerLibraryBlockConfigs(registry)` to register the whole standard library\n// as `Read: () => null` config stubs in one place, then add their app-specific\n// block configs on top. `libraryBlockConfigs` is the underlying ordered array.\nexport {\n libraryBlockConfigs,\n registerLibraryBlockConfigs,\n type LibraryBlockConfigOverrides,\n} from \"./library/server-specs.js\";\n\n// Standard block library — React-free schema + MDX config only. The React\n// `Read`/`Edit` live in `./library/checklist.tsx` (imported from the full\n// `@agent-native/core/blocks` entry), never from here.\nexport {\n checklistSchema,\n checklistMdx,\n type ChecklistData,\n type ChecklistItem,\n} from \"./library/checklist.config.js\";\nexport {\n tableSchema,\n tableMdx,\n type TableData,\n} from \"./library/table.config.js\";\nexport {\n codeTabsSchema,\n codeTabsMdx,\n type CodeTabsData,\n type CodeTabsTab,\n} from \"./library/code-tabs.config.js\";\nexport {\n htmlSchema,\n htmlMdx,\n type HtmlBlockData,\n} from \"./library/html.config.js\";\nexport {\n tabsSchema,\n tabsMdx,\n type TabsData,\n type TabsOrientation,\n type TabsTab,\n} from \"./library/tabs.config.js\";\nexport {\n columnsSchema,\n columnsMdx,\n type ColumnsData,\n type ColumnsColumn,\n} from \"./library/columns.config.js\";\nexport {\n calloutSchema,\n calloutMdx,\n CALLOUT_TONES,\n type CalloutData,\n type CalloutTone,\n} from \"./library/callout.config.js\";\n\n// Dev-doc block library — React-free schema + MDX config only. The React\n// `Read`/`Edit` live in the matching `./library/<Name>Block.tsx` (imported from\n// the full `@agent-native/core/blocks` entry), never from here.\nexport {\n mermaidSchema,\n mermaidMdx,\n type MermaidData,\n} from \"./library/mermaid.config.js\";\nexport {\n apiEndpointSchema,\n apiEndpointMdx,\n API_ENDPOINT_METHODS,\n API_PARAM_LOCATIONS,\n type ApiEndpointData,\n type ApiEndpointMethod,\n type ApiEndpointParam,\n type ApiEndpointRequest,\n type ApiEndpointResponse,\n type ApiParamLocation,\n} from \"./library/api-endpoint.config.js\";\nexport {\n dataModelSchema,\n dataModelMdx,\n DATA_MODEL_RELATION_KINDS,\n type DataModelData,\n type DataModelEntity,\n type DataModelField,\n type DataModelRelation,\n type DataModelRelationKind,\n} from \"./library/data-model.config.js\";\nexport {\n diffSchema,\n diffMdx,\n type DiffData,\n type DiffMode,\n} from \"./library/diff.config.js\";\nexport {\n fileTreeSchema,\n fileTreeMdx,\n FILE_TREE_CHANGES,\n type FileTreeData,\n type FileTreeEntry,\n type FileTreeChange,\n} from \"./library/file-tree.config.js\";\nexport {\n jsonExplorerSchema,\n jsonExplorerMdx,\n type JsonExplorerData,\n} from \"./library/json-explorer.config.js\";\nexport {\n annotatedCodeSchema,\n annotatedCodeMdx,\n type AnnotatedCodeData,\n type AnnotatedCodeAnnotation,\n} from \"./library/annotated-code.config.js\";\nexport {\n openApiSpecSchema,\n openApiSpecMdx,\n type OpenApiSpecData,\n} from \"./library/openapi-spec.config.js\";\n"]}
@@ -66,10 +66,11 @@ export interface BlockMdxConfig<TData> {
66
66
  */
67
67
  childrenField?: keyof TData & string;
68
68
  /**
69
- * Opt-in custom children serializer for blocks whose internals are nested MDX
70
- * components rather than a single markdown string (e.g. wireframe → Screen/kit
71
- * primitives). When present it overrides `childrenField`. `serializeChildren`
72
- * returns the raw inner MDX; `parseChildren` receives the child MDX AST nodes.
69
+ * Opt-in custom children serializer/parser for blocks whose internals are
70
+ * nested MDX components or named child code fences rather than a single
71
+ * markdown string. When `serializeChildren` is present it overrides
72
+ * `childrenField`. `parseChildren` may also be used as a parse-only adapter
73
+ * for backward-compatible child forms.
73
74
  */
74
75
  serializeChildren?: (data: TData) => string;
75
76
  parseChildren?: (childNodes: unknown[], idContext: string) => Partial<TData>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AAEH,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,EAAE,GACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAClD,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;IACnE;;;;OAIG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC;IACrC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9E;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,wDAAwD;IACxD,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC9B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACpE,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD;;;;OAIG;IACH,cAAc,CAAC,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAC7B,KAAK,CAAC,SAAS,CAAC;IACrB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE;QACrB,wEAAwE;QACxE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QAC/C,2EAA2E;QAC3E,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC;;;WAGG;QACH,yBAAyB,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;QAC5C,uFAAuF;QACvF,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KACxC,CAAC;IACF;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1E;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,WAAW,CAAC;QACnB,kEAAkE;QAClE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;QACvC,oDAAoD;QACpD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mEAAmE;QACnE,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;QACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mEAAmE;QACnE,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;QACvC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,+EAA+E;QAC/E,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAC3B,qFAAqF;QACrF,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB,CAAC,KAAK;IACvC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,oBAAoB,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;IAC9E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAC3D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;IACxD,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,KAAK,EACX,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,KACf,KAAK,CAAC;CACZ;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,WAAW,EAAE,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,kBAAkB,CAAC;IACxB,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,SAAS,CAAC,KAAK,GAAG,OAAO;IACxC,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvB,6BAA6B;IAC7B,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3B,gFAAgF;IAChF,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,8DAA8D;IAC9D,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;IACxD;;;;OAIG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACtC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;CAC/E;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAE3E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/blocks/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/blocks/types.ts"],"names":[],"mappings":"AAiZA,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAQ,IAAsB;IACvD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { FC } from \"react\";\nimport type { ZodType } from \"zod\";\n\n/**\n * Block-registry contract. A `BlockSpec` describes one document block end to end:\n * its data shape (`schema`), how it round-trips to MDX source (`mdx`), how it\n * renders read-only (`Read`) and how it is edited (`Edit`, or an auto-generated\n * schema-driven editor when omitted), where it can be placed (`placement`), and\n * metadata for menus / agent schema export.\n *\n * The registry runs ALONGSIDE existing per-block code (the plan `PlanBlockView`\n * switch + `serializeBlock`/`parseBlock`). Renderers check the registry first;\n * unregistered block types fall through to the legacy code path unchanged. The\n * MDX `tag` and attribute shape for a converted block MUST match the historical\n * encoding (e.g. `<Callout tone>…body…</Callout>`) so stored `.mdx` files still\n * parse byte-compatibly.\n */\n\n/** Where a block can be placed in a document. */\nexport type BlockPlacement = \"block\" | \"inline\";\n\n/**\n * A serialized MDX/NFM attribute value before the shared `prop()` encoder runs.\n * `prop()` decides string-vs-JSON encoding; this is just the value domain.\n */\nexport type MdxAttrValue =\n | string\n | number\n | boolean\n | unknown[]\n | Record<string, unknown>;\n\n/**\n * Type-narrowed reader over the resolved MDX attributes of a parsed block node.\n * The values are already estree/JSON-resolved by the shared attribute reader\n * (the same engine `plan-mdx.ts` uses), so a spec's `fromAttrs` never touches\n * the AST directly.\n */\nexport interface BlockAttrReader {\n string(name: string): string | undefined;\n number(name: string): number | undefined;\n bool(name: string): boolean | undefined;\n array<T = unknown>(name: string): T[] | undefined;\n object<T = unknown>(name: string): T | undefined;\n raw(name: string): unknown;\n}\n\n/**\n * Maps a block's validated data to/from its MDX component representation.\n * `tag` is the JSX component name in source (e.g. \"Callout\"). It MUST match the\n * historical name in `plan-mdx.ts` `BLOCK_COMPONENTS` / stored `.mdx` files or\n * existing plans break.\n */\nexport interface BlockMdxConfig<TData> {\n /** JSX component name in MDX source. Stable contract — never rename. */\n tag: string;\n /**\n * Encode `data` → a flat attribute bag. The registry serializer runs each\n * value through the shared `prop()` encoder (string-vs-JSON heuristic) and\n * preserves insertion order, so write the keys in the exact historical order.\n * Return `undefined` for a key (or omit it) to drop the attribute. When\n * `childrenField` is set, that field is excluded from the attribute bag.\n */\n toAttrs: (data: TData) => Record<string, MdxAttrValue | undefined>;\n /**\n * Decode resolved attributes (+ optional children markdown) → data. Must\n * tolerate missing/partial attributes for backward-compat (mirror today's\n * `?? []` / `?? \"\"` defaults).\n */\n fromAttrs: (attrs: BlockAttrReader, children: string) => TData;\n /**\n * When set, this data field is a markdown string serialized as MDX *children*\n * between the open/close tags (prose-bearing blocks: rich-text, callout)\n * rather than as a prop — so the body survives as real, inline-editable MDX\n * prose in source.\n */\n childrenField?: keyof TData & string;\n /**\n * Opt-in custom children serializer for blocks whose internals are nested MDX\n * components rather than a single markdown string (e.g. wireframe → Screen/kit\n * primitives). When present it overrides `childrenField`. `serializeChildren`\n * returns the raw inner MDX; `parseChildren` receives the child MDX AST nodes.\n */\n serializeChildren?: (data: TData) => string;\n parseChildren?: (childNodes: unknown[], idContext: string) => Partial<TData>;\n}\n\n/**\n * App-injected capabilities. Core blocks stay app-agnostic by taking these\n * rather than importing app services — mirroring `createImageExtension`'s\n * `onImageUpload` injection. Provided via `BlockRegistryProvider`.\n */\nexport interface BlockRenderContext {\n /** Markdown dialect for the auto-editor's rich-text field. */\n dialect?: \"gfm\" | \"nfm\";\n /** Document text direction inferred by the host app. */\n textDirection?: \"ltr\" | \"rtl\";\n /** Resolve an asset id → displayable URL. */\n resolveAssetSrc?: (assetId: string) => string | undefined;\n /** Open the shared asset picker (returns the chosen asset). */\n pickAsset?: () => Promise<{ assetId: string; url?: string } | null>;\n /** Upload a local file, returns a hosted URL. */\n uploadFile?: (file: File) => Promise<{ url: string; assetId?: string }>;\n /** Call an app action by name (for blocks that fetch live data). */\n callAction?: (name: string, args: unknown) => Promise<unknown>;\n /** Sanitizer for HTML-bearing blocks. Provided by the app/core. */\n sanitizeHtml?: (html: string, css?: string) => string;\n /**\n * Render a markdown string with the app's read-only markdown renderer. Lets a\n * core block (whose `Read` lives in core) defer prose rendering to the app's\n * markdown reader (e.g. the plan `PlanMarkdownReader`) without importing it.\n */\n renderMarkdown?: (\n markdown: string,\n options?: { className?: string },\n ) => React.ReactNode;\n /**\n * Static capture mode: render every code/diff line annotation as a visible\n * inline overlay instead of requiring hover.\n */\n showCodeAnnotationOverlays?: boolean;\n /**\n * Optional placement policy for line-anchored code/diff annotations.\n * Hosts can keep the default right-first hover behavior, or ask annotations to\n * prefer a margin side and become persistent whenever that margin has room.\n */\n codeAnnotationLayout?: {\n /** Preferred side for hover cards when that side has a clean gutter. */\n hoverSide?: \"left\" | \"right\";\n /**\n * Final hover fallback when neither side has a clean gutter. `\"below\"` keeps\n * the legacy line-below behavior; `\"left\"`/`\"right\"` overlap the card from\n * that code edge with a small overhang.\n */\n hoverFallbackSide?: \"left\" | \"right\" | \"below\";\n /** Show all annotation cards by default when the requested margin fits. */\n showByDefaultWhenRoom?: boolean;\n /**\n * When margin annotations are enabled, choose how many cards become visible\n * without hover. Defaults to all for callers using the legacy boolean.\n */\n defaultVisibleAnnotations?: \"all\" | \"first\";\n /** Margin side for persistent cards; `\"auto\"` tries hoverSide, then the other side. */\n marginSide?: \"left\" | \"right\" | \"auto\";\n };\n /**\n * Render an inline, editable rich-markdown field. The auto-editor calls this\n * for a `markdown()`-tagged field so the app owns the editor wiring (collab,\n * autosave debounce, dialect) rather than core hardcoding it.\n */\n renderMarkdownEditor?: (props: {\n value: string;\n onChange: (next: string) => void;\n editable: boolean;\n blockId?: string;\n className?: string;\n ariaLabel?: string;\n }) => React.ReactNode;\n /**\n * Render an app-owned edit-by-prompt affordance (\"Describe a change…\") for a focused/editable block\n * field. Core block editors pass the current field value and nearby companion\n * fields; the host app decides how to collect the prompt and route it to the\n * agent sidebar. This keeps reusable core blocks from importing app-specific\n * popover/composer code while still exposing a generic AI edit hook.\n */\n renderAiFieldAction?: (props: BlockAiFieldActionProps) => React.ReactNode;\n /**\n * Render a nested child block through the app's own block dispatcher. Container\n * blocks whose `Read`/`Edit` live in core (e.g. tabs) call this to render each\n * child so the recursion keeps flowing through the SAME app renderer the\n * top-level document uses — registered children render via their spec, and\n * unregistered (not-yet-converted) children still fall through the app's legacy\n * switch. This is the coexistence seam: a core container never has to know\n * about app-specific child block types. Returns `null`/`undefined` when no\n * dispatcher is wired (read-only/SSR-only contexts can omit it).\n */\n renderBlock?: (props: {\n block: NestedBlock;\n /** Commit a replacement for this child block (edit mode only). */\n onChange?: (next: NestedBlock) => void;\n /** Whether the parent container is being edited. */\n editing?: boolean;\n /** Tighten embedded visuals in dense contexts (e.g. tab panes). */\n compactVisuals?: boolean;\n }) => React.ReactNode;\n /**\n * Render a nested editable block list through the host app's document editor.\n * Container blocks such as columns call this for each editable region so slash\n * commands, nested structured blocks, and ordinary prose behave like the\n * top-level document while the container still persists its normalized runtime\n * data. Source adapters may still expose a human-friendly nested MDX form\n * (for example `<Columns><Column>markdown</Column></Columns>`) and normalize it\n * into these block arrays at runtime.\n */\n renderBlocksEditor?: (props: {\n blocks: NestedBlock[];\n onChange: (blocks: NestedBlock[]) => void;\n editable: boolean;\n containerBlockId: string;\n regionId: string;\n regionLabel?: string;\n /** Tighten embedded visuals in dense regions such as tab panes. */\n compactVisuals?: boolean;\n }) => React.ReactNode;\n /**\n * Wrap a block's edit form in an app-provided \"panel\" surface (e.g. a shadcn\n * Popover anchored to the corner edit button) for `editSurface: \"panel\"`\n * blocks. Core renders the rendered `Read` view plus a corner trigger button\n * and the form, then hands them here so the app owns the overlay primitive\n * (core stays shadcn-free, mirroring `renderMarkdownEditor`). When omitted, a\n * panel-mode block falls back to inline editing. `title` is the block label.\n */\n renderEditSurface?: (props: {\n title: string;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n children: React.ReactNode;\n /** Compact action menus omit host block-edit chrome such as edit-by-prompt. */\n variant?: \"panel\" | \"menu\";\n /** Metadata for host-provided contextual controls such as the edit-by-prompt CTA. */\n blockId?: string;\n blockType?: string;\n blockTitle?: string;\n blockSummary?: string;\n blockData?: unknown;\n }) => React.ReactNode;\n /**\n * Submit a respondent's answers from a `question-form` / `visual-questions`\n * block back to the host. The app decides how to route the summary (e.g. send\n * to the inline agent, copy to clipboard). Core blocks call this through the\n * context so they never import app-specific submit wiring; omit it and the\n * block degrades to a no-op submit.\n */\n onQuestionFormSubmit?: (summary: string) => void;\n}\n\nexport interface BlockAiFieldActionProps {\n blockId: string;\n blockType: string;\n blockTitle?: string;\n blockSummary?: string;\n fieldLabel: string;\n fieldValue: string;\n draftScope: string;\n disabled?: boolean;\n /**\n * Human-readable instructions for the host agent prompt. Mention how to patch\n * the block and which sibling fields should be preserved.\n */\n instructions: string;\n companionFields?: Array<{\n label: string;\n value: string;\n language?: string;\n }>;\n}\n\n/**\n * The minimal shape of a nested child block passed to {@link\n * BlockRenderContext.renderBlock}. It mirrors the app's block union loosely (the\n * app casts it back to its own block type) — a discriminating `type`, a stable\n * `id`, optional heading/summary, and the type-specific `data`.\n */\nexport interface NestedBlock {\n type: string;\n id: string;\n title?: string;\n summary?: string;\n data: unknown;\n [key: string]: unknown;\n}\n\nexport interface BlockContainerRegion {\n id: string;\n label?: string;\n blocks: NestedBlock[];\n}\n\nexport interface BlockContainerSpec<TData> {\n regions: (data: TData) => BlockContainerRegion[];\n updateRegion: (data: TData, regionId: string, blocks: NestedBlock[]) => TData;\n addRegion?: (data: TData, afterRegionId?: string) => TData;\n removeRegion?: (data: TData, regionId: string) => TData;\n reorderRegion?: (\n data: TData,\n fromRegionId: string,\n toRegionId: string,\n ) => TData;\n}\n\nexport type BlockDataChangeMeta = {\n containerRegion?: {\n regionId: string;\n blocks: NestedBlock[];\n };\n};\n\n/** Props passed to a block's read-only renderer. */\nexport interface BlockReadProps<TData> {\n data: TData;\n /** Stable block id (for anchors, comment targeting, source patches). */\n blockId: string;\n /** Block heading, when present. */\n title?: string;\n /** Block trailing summary, when present. */\n summary?: string;\n /** Injected app capabilities. */\n ctx: BlockRenderContext;\n /** Tighten embedded visuals in dense contexts such as tabs and question cards. */\n compactVisuals?: boolean;\n}\n\n/** Props passed to a block's editor (custom or schema-generated). */\nexport interface BlockEditProps<TData> {\n data: TData;\n onChange: (next: TData, meta?: BlockDataChangeMeta) => void;\n editable: boolean;\n blockId: string;\n title?: string;\n summary?: string;\n /** Injected app capabilities. */\n ctx: BlockRenderContext;\n}\n\nexport interface BlockSpec<TData = unknown> {\n /** Discriminator. Equals the runtime block `type`. */\n type: string;\n /** Zod schema for `data`. Drives validation AND the schema-auto-editor. */\n schema: ZodType<TData>;\n /** MDX round-trip config. */\n mdx: BlockMdxConfig<TData>;\n /** Read-only renderer (replaces a `PlanBlockView` switch branch / NodeView). */\n Read: FC<BlockReadProps<TData>>;\n /**\n * Optional editor. When omitted, the registry renders the schema-driven\n * `SchemaBlockEditor` generated from `schema`. Supply for full control\n * (wireframe canvas, diagram editor).\n */\n Edit?: FC<BlockEditProps<TData>>;\n /** Allowed placements: `[\"block\"]`, `[\"inline\"]`, or both. */\n placement: BlockPlacement[];\n /**\n * When `true`, this block's data maps to a Notion-Flavored-Markdown (NFM)\n * analog and therefore round-trips into a Notion page. Apps can derive\n * registry-backed Notion allowlists with\n * {@link BlockRegistry.notionCompatibleTypes} instead of hand-maintaining\n * per-app sets. Set it on registry-atom blocks with an NFM counterpart\n * (checklist, table); leave it `false`/undefined on dev-doc blocks\n * (api-endpoint, openapi-spec, data-model, diff, file-tree, json-explorer,\n * annotated-code, mermaid, custom-html, tabs, code-tabs) and visual/plan-only\n * blocks (wireframe, diagram). Prose blocks that aren't registry atoms\n * (rich-text, callout) carry their NFM analog through the prose path, not this\n * flag.\n */\n notionCompatible?: boolean;\n /**\n * How the block is edited in a `block`-placed document:\n * - `\"inline\"` — the `Edit`/auto-form renders in place for direct\n * manipulation of authored content (prose, checklist text, table cells,\n * code bodies). Schema-ish metadata such as tone/type, tab labels,\n * language, density, or structural settings should still be tucked behind a\n * contextual edit/settings affordance inside the custom `Edit`.\n * - `\"panel\"` — the block shows its rendered `Read` view with a corner edit\n * button that opens the `Edit`/auto-form in an app-provided panel (popover).\n * Best for config-driven blocks whose render differs from their props\n * (custom HTML, charts, any user-registered block).\n * - `\"container\"` — the block renders its `Edit` in place, and that editor\n * may call `ctx.renderBlocksEditor` for nested block regions with normal\n * slash commands and nested structured blocks.\n * - `\"none\"` — the block renders its `Read` view in edit mode and exposes no\n * block data form. Use for blocks whose whole-block operations live in the\n * editor chrome/menu rather than a custom or schema-generated editor.\n * Defaults to `\"inline\"` when a custom `Edit` is supplied, else `\"panel\"`\n * (auto-form blocks are property forms, ideal for a panel). The app must wire\n * `ctx.renderEditSurface` for `\"panel\"` to take effect; otherwise it falls\n * back to inline.\n */\n editSurface?: \"inline\" | \"panel\" | \"container\" | \"none\";\n /**\n * Optional generic contract for content-bearing container blocks. Keep this\n * runtime-oriented: it describes editable regions over normalized block arrays;\n * source formats can provide readable nested MDX adapters independently.\n */\n container?: BlockContainerSpec<TData>;\n /** Human label for menus + agent schema export. */\n label: string;\n /** Tabler icon component for UI menus (never emoji/robot/sparkle). */\n icon?: FC<{ size?: number; className?: string }>;\n /** One-line description for the agent schema export. */\n description: string;\n /** Optional default `data` factory for slash-menu insertion (an empty block). */\n empty?: () => TData;\n /**\n * Optional block-specific source-patch handlers, generalizing bespoke ops\n * like `update-custom-html`. Keyed by op name; the registry dispatches a\n * matching patch op here. Generic ops (`update-block` shallow-merge) need none.\n */\n patches?: Record<string, (data: TData, op: Record<string, unknown>) => TData>;\n}\n\n/** Identity helper for authoring a spec with full type inference. */\nexport function defineBlock<TData>(spec: BlockSpec<TData>): BlockSpec<TData> {\n return spec;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/blocks/types.ts"],"names":[],"mappings":"AAkZA,qEAAqE;AACrE,MAAM,UAAU,WAAW,CAAQ,IAAsB;IACvD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { FC } from \"react\";\nimport type { ZodType } from \"zod\";\n\n/**\n * Block-registry contract. A `BlockSpec` describes one document block end to end:\n * its data shape (`schema`), how it round-trips to MDX source (`mdx`), how it\n * renders read-only (`Read`) and how it is edited (`Edit`, or an auto-generated\n * schema-driven editor when omitted), where it can be placed (`placement`), and\n * metadata for menus / agent schema export.\n *\n * The registry runs ALONGSIDE existing per-block code (the plan `PlanBlockView`\n * switch + `serializeBlock`/`parseBlock`). Renderers check the registry first;\n * unregistered block types fall through to the legacy code path unchanged. The\n * MDX `tag` and attribute shape for a converted block MUST match the historical\n * encoding (e.g. `<Callout tone>…body…</Callout>`) so stored `.mdx` files still\n * parse byte-compatibly.\n */\n\n/** Where a block can be placed in a document. */\nexport type BlockPlacement = \"block\" | \"inline\";\n\n/**\n * A serialized MDX/NFM attribute value before the shared `prop()` encoder runs.\n * `prop()` decides string-vs-JSON encoding; this is just the value domain.\n */\nexport type MdxAttrValue =\n | string\n | number\n | boolean\n | unknown[]\n | Record<string, unknown>;\n\n/**\n * Type-narrowed reader over the resolved MDX attributes of a parsed block node.\n * The values are already estree/JSON-resolved by the shared attribute reader\n * (the same engine `plan-mdx.ts` uses), so a spec's `fromAttrs` never touches\n * the AST directly.\n */\nexport interface BlockAttrReader {\n string(name: string): string | undefined;\n number(name: string): number | undefined;\n bool(name: string): boolean | undefined;\n array<T = unknown>(name: string): T[] | undefined;\n object<T = unknown>(name: string): T | undefined;\n raw(name: string): unknown;\n}\n\n/**\n * Maps a block's validated data to/from its MDX component representation.\n * `tag` is the JSX component name in source (e.g. \"Callout\"). It MUST match the\n * historical name in `plan-mdx.ts` `BLOCK_COMPONENTS` / stored `.mdx` files or\n * existing plans break.\n */\nexport interface BlockMdxConfig<TData> {\n /** JSX component name in MDX source. Stable contract — never rename. */\n tag: string;\n /**\n * Encode `data` → a flat attribute bag. The registry serializer runs each\n * value through the shared `prop()` encoder (string-vs-JSON heuristic) and\n * preserves insertion order, so write the keys in the exact historical order.\n * Return `undefined` for a key (or omit it) to drop the attribute. When\n * `childrenField` is set, that field is excluded from the attribute bag.\n */\n toAttrs: (data: TData) => Record<string, MdxAttrValue | undefined>;\n /**\n * Decode resolved attributes (+ optional children markdown) → data. Must\n * tolerate missing/partial attributes for backward-compat (mirror today's\n * `?? []` / `?? \"\"` defaults).\n */\n fromAttrs: (attrs: BlockAttrReader, children: string) => TData;\n /**\n * When set, this data field is a markdown string serialized as MDX *children*\n * between the open/close tags (prose-bearing blocks: rich-text, callout)\n * rather than as a prop — so the body survives as real, inline-editable MDX\n * prose in source.\n */\n childrenField?: keyof TData & string;\n /**\n * Opt-in custom children serializer/parser for blocks whose internals are\n * nested MDX components or named child code fences rather than a single\n * markdown string. When `serializeChildren` is present it overrides\n * `childrenField`. `parseChildren` may also be used as a parse-only adapter\n * for backward-compatible child forms.\n */\n serializeChildren?: (data: TData) => string;\n parseChildren?: (childNodes: unknown[], idContext: string) => Partial<TData>;\n}\n\n/**\n * App-injected capabilities. Core blocks stay app-agnostic by taking these\n * rather than importing app services — mirroring `createImageExtension`'s\n * `onImageUpload` injection. Provided via `BlockRegistryProvider`.\n */\nexport interface BlockRenderContext {\n /** Markdown dialect for the auto-editor's rich-text field. */\n dialect?: \"gfm\" | \"nfm\";\n /** Document text direction inferred by the host app. */\n textDirection?: \"ltr\" | \"rtl\";\n /** Resolve an asset id → displayable URL. */\n resolveAssetSrc?: (assetId: string) => string | undefined;\n /** Open the shared asset picker (returns the chosen asset). */\n pickAsset?: () => Promise<{ assetId: string; url?: string } | null>;\n /** Upload a local file, returns a hosted URL. */\n uploadFile?: (file: File) => Promise<{ url: string; assetId?: string }>;\n /** Call an app action by name (for blocks that fetch live data). */\n callAction?: (name: string, args: unknown) => Promise<unknown>;\n /** Sanitizer for HTML-bearing blocks. Provided by the app/core. */\n sanitizeHtml?: (html: string, css?: string) => string;\n /**\n * Render a markdown string with the app's read-only markdown renderer. Lets a\n * core block (whose `Read` lives in core) defer prose rendering to the app's\n * markdown reader (e.g. the plan `PlanMarkdownReader`) without importing it.\n */\n renderMarkdown?: (\n markdown: string,\n options?: { className?: string },\n ) => React.ReactNode;\n /**\n * Static capture mode: render every code/diff line annotation as a visible\n * inline overlay instead of requiring hover.\n */\n showCodeAnnotationOverlays?: boolean;\n /**\n * Optional placement policy for line-anchored code/diff annotations.\n * Hosts can keep the default right-first hover behavior, or ask annotations to\n * prefer a margin side and become persistent whenever that margin has room.\n */\n codeAnnotationLayout?: {\n /** Preferred side for hover cards when that side has a clean gutter. */\n hoverSide?: \"left\" | \"right\";\n /**\n * Final hover fallback when neither side has a clean gutter. `\"below\"` keeps\n * the legacy line-below behavior; `\"left\"`/`\"right\"` overlap the card from\n * that code edge with a small overhang.\n */\n hoverFallbackSide?: \"left\" | \"right\" | \"below\";\n /** Show all annotation cards by default when the requested margin fits. */\n showByDefaultWhenRoom?: boolean;\n /**\n * When margin annotations are enabled, choose how many cards become visible\n * without hover. Defaults to all for callers using the legacy boolean.\n */\n defaultVisibleAnnotations?: \"all\" | \"first\";\n /** Margin side for persistent cards; `\"auto\"` tries hoverSide, then the other side. */\n marginSide?: \"left\" | \"right\" | \"auto\";\n };\n /**\n * Render an inline, editable rich-markdown field. The auto-editor calls this\n * for a `markdown()`-tagged field so the app owns the editor wiring (collab,\n * autosave debounce, dialect) rather than core hardcoding it.\n */\n renderMarkdownEditor?: (props: {\n value: string;\n onChange: (next: string) => void;\n editable: boolean;\n blockId?: string;\n className?: string;\n ariaLabel?: string;\n }) => React.ReactNode;\n /**\n * Render an app-owned edit-by-prompt affordance (\"Describe a change…\") for a focused/editable block\n * field. Core block editors pass the current field value and nearby companion\n * fields; the host app decides how to collect the prompt and route it to the\n * agent sidebar. This keeps reusable core blocks from importing app-specific\n * popover/composer code while still exposing a generic AI edit hook.\n */\n renderAiFieldAction?: (props: BlockAiFieldActionProps) => React.ReactNode;\n /**\n * Render a nested child block through the app's own block dispatcher. Container\n * blocks whose `Read`/`Edit` live in core (e.g. tabs) call this to render each\n * child so the recursion keeps flowing through the SAME app renderer the\n * top-level document uses — registered children render via their spec, and\n * unregistered (not-yet-converted) children still fall through the app's legacy\n * switch. This is the coexistence seam: a core container never has to know\n * about app-specific child block types. Returns `null`/`undefined` when no\n * dispatcher is wired (read-only/SSR-only contexts can omit it).\n */\n renderBlock?: (props: {\n block: NestedBlock;\n /** Commit a replacement for this child block (edit mode only). */\n onChange?: (next: NestedBlock) => void;\n /** Whether the parent container is being edited. */\n editing?: boolean;\n /** Tighten embedded visuals in dense contexts (e.g. tab panes). */\n compactVisuals?: boolean;\n }) => React.ReactNode;\n /**\n * Render a nested editable block list through the host app's document editor.\n * Container blocks such as columns call this for each editable region so slash\n * commands, nested structured blocks, and ordinary prose behave like the\n * top-level document while the container still persists its normalized runtime\n * data. Source adapters may still expose a human-friendly nested MDX form\n * (for example `<Columns><Column>markdown</Column></Columns>`) and normalize it\n * into these block arrays at runtime.\n */\n renderBlocksEditor?: (props: {\n blocks: NestedBlock[];\n onChange: (blocks: NestedBlock[]) => void;\n editable: boolean;\n containerBlockId: string;\n regionId: string;\n regionLabel?: string;\n /** Tighten embedded visuals in dense regions such as tab panes. */\n compactVisuals?: boolean;\n }) => React.ReactNode;\n /**\n * Wrap a block's edit form in an app-provided \"panel\" surface (e.g. a shadcn\n * Popover anchored to the corner edit button) for `editSurface: \"panel\"`\n * blocks. Core renders the rendered `Read` view plus a corner trigger button\n * and the form, then hands them here so the app owns the overlay primitive\n * (core stays shadcn-free, mirroring `renderMarkdownEditor`). When omitted, a\n * panel-mode block falls back to inline editing. `title` is the block label.\n */\n renderEditSurface?: (props: {\n title: string;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n children: React.ReactNode;\n /** Compact action menus omit host block-edit chrome such as edit-by-prompt. */\n variant?: \"panel\" | \"menu\";\n /** Metadata for host-provided contextual controls such as the edit-by-prompt CTA. */\n blockId?: string;\n blockType?: string;\n blockTitle?: string;\n blockSummary?: string;\n blockData?: unknown;\n }) => React.ReactNode;\n /**\n * Submit a respondent's answers from a `question-form` / `visual-questions`\n * block back to the host. The app decides how to route the summary (e.g. send\n * to the inline agent, copy to clipboard). Core blocks call this through the\n * context so they never import app-specific submit wiring; omit it and the\n * block degrades to a no-op submit.\n */\n onQuestionFormSubmit?: (summary: string) => void;\n}\n\nexport interface BlockAiFieldActionProps {\n blockId: string;\n blockType: string;\n blockTitle?: string;\n blockSummary?: string;\n fieldLabel: string;\n fieldValue: string;\n draftScope: string;\n disabled?: boolean;\n /**\n * Human-readable instructions for the host agent prompt. Mention how to patch\n * the block and which sibling fields should be preserved.\n */\n instructions: string;\n companionFields?: Array<{\n label: string;\n value: string;\n language?: string;\n }>;\n}\n\n/**\n * The minimal shape of a nested child block passed to {@link\n * BlockRenderContext.renderBlock}. It mirrors the app's block union loosely (the\n * app casts it back to its own block type) — a discriminating `type`, a stable\n * `id`, optional heading/summary, and the type-specific `data`.\n */\nexport interface NestedBlock {\n type: string;\n id: string;\n title?: string;\n summary?: string;\n data: unknown;\n [key: string]: unknown;\n}\n\nexport interface BlockContainerRegion {\n id: string;\n label?: string;\n blocks: NestedBlock[];\n}\n\nexport interface BlockContainerSpec<TData> {\n regions: (data: TData) => BlockContainerRegion[];\n updateRegion: (data: TData, regionId: string, blocks: NestedBlock[]) => TData;\n addRegion?: (data: TData, afterRegionId?: string) => TData;\n removeRegion?: (data: TData, regionId: string) => TData;\n reorderRegion?: (\n data: TData,\n fromRegionId: string,\n toRegionId: string,\n ) => TData;\n}\n\nexport type BlockDataChangeMeta = {\n containerRegion?: {\n regionId: string;\n blocks: NestedBlock[];\n };\n};\n\n/** Props passed to a block's read-only renderer. */\nexport interface BlockReadProps<TData> {\n data: TData;\n /** Stable block id (for anchors, comment targeting, source patches). */\n blockId: string;\n /** Block heading, when present. */\n title?: string;\n /** Block trailing summary, when present. */\n summary?: string;\n /** Injected app capabilities. */\n ctx: BlockRenderContext;\n /** Tighten embedded visuals in dense contexts such as tabs and question cards. */\n compactVisuals?: boolean;\n}\n\n/** Props passed to a block's editor (custom or schema-generated). */\nexport interface BlockEditProps<TData> {\n data: TData;\n onChange: (next: TData, meta?: BlockDataChangeMeta) => void;\n editable: boolean;\n blockId: string;\n title?: string;\n summary?: string;\n /** Injected app capabilities. */\n ctx: BlockRenderContext;\n}\n\nexport interface BlockSpec<TData = unknown> {\n /** Discriminator. Equals the runtime block `type`. */\n type: string;\n /** Zod schema for `data`. Drives validation AND the schema-auto-editor. */\n schema: ZodType<TData>;\n /** MDX round-trip config. */\n mdx: BlockMdxConfig<TData>;\n /** Read-only renderer (replaces a `PlanBlockView` switch branch / NodeView). */\n Read: FC<BlockReadProps<TData>>;\n /**\n * Optional editor. When omitted, the registry renders the schema-driven\n * `SchemaBlockEditor` generated from `schema`. Supply for full control\n * (wireframe canvas, diagram editor).\n */\n Edit?: FC<BlockEditProps<TData>>;\n /** Allowed placements: `[\"block\"]`, `[\"inline\"]`, or both. */\n placement: BlockPlacement[];\n /**\n * When `true`, this block's data maps to a Notion-Flavored-Markdown (NFM)\n * analog and therefore round-trips into a Notion page. Apps can derive\n * registry-backed Notion allowlists with\n * {@link BlockRegistry.notionCompatibleTypes} instead of hand-maintaining\n * per-app sets. Set it on registry-atom blocks with an NFM counterpart\n * (checklist, table); leave it `false`/undefined on dev-doc blocks\n * (api-endpoint, openapi-spec, data-model, diff, file-tree, json-explorer,\n * annotated-code, mermaid, custom-html, tabs, code-tabs) and visual/plan-only\n * blocks (wireframe, diagram). Prose blocks that aren't registry atoms\n * (rich-text, callout) carry their NFM analog through the prose path, not this\n * flag.\n */\n notionCompatible?: boolean;\n /**\n * How the block is edited in a `block`-placed document:\n * - `\"inline\"` — the `Edit`/auto-form renders in place for direct\n * manipulation of authored content (prose, checklist text, table cells,\n * code bodies). Schema-ish metadata such as tone/type, tab labels,\n * language, density, or structural settings should still be tucked behind a\n * contextual edit/settings affordance inside the custom `Edit`.\n * - `\"panel\"` — the block shows its rendered `Read` view with a corner edit\n * button that opens the `Edit`/auto-form in an app-provided panel (popover).\n * Best for config-driven blocks whose render differs from their props\n * (custom HTML, charts, any user-registered block).\n * - `\"container\"` — the block renders its `Edit` in place, and that editor\n * may call `ctx.renderBlocksEditor` for nested block regions with normal\n * slash commands and nested structured blocks.\n * - `\"none\"` — the block renders its `Read` view in edit mode and exposes no\n * block data form. Use for blocks whose whole-block operations live in the\n * editor chrome/menu rather than a custom or schema-generated editor.\n * Defaults to `\"inline\"` when a custom `Edit` is supplied, else `\"panel\"`\n * (auto-form blocks are property forms, ideal for a panel). The app must wire\n * `ctx.renderEditSurface` for `\"panel\"` to take effect; otherwise it falls\n * back to inline.\n */\n editSurface?: \"inline\" | \"panel\" | \"container\" | \"none\";\n /**\n * Optional generic contract for content-bearing container blocks. Keep this\n * runtime-oriented: it describes editable regions over normalized block arrays;\n * source formats can provide readable nested MDX adapters independently.\n */\n container?: BlockContainerSpec<TData>;\n /** Human label for menus + agent schema export. */\n label: string;\n /** Tabler icon component for UI menus (never emoji/robot/sparkle). */\n icon?: FC<{ size?: number; className?: string }>;\n /** One-line description for the agent schema export. */\n description: string;\n /** Optional default `data` factory for slash-menu insertion (an empty block). */\n empty?: () => TData;\n /**\n * Optional block-specific source-patch handlers, generalizing bespoke ops\n * like `update-custom-html`. Keyed by op name; the registry dispatches a\n * matching patch op here. Generic ops (`update-block` shallow-merge) need none.\n */\n patches?: Record<string, (data: TData, op: Record<string, unknown>) => TData>;\n}\n\n/** Identity helper for authoring a spec with full type inference. */\nexport function defineBlock<TData>(spec: BlockSpec<TData>): BlockSpec<TData> {\n return spec;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message-components.d.ts","sourceRoot":"","sources":["../../../src/client/chat/message-components.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAqC/E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAID,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,yBAAyB,GAAG,IAAI,CAyClC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,SAAS,GACV,EAAE;IACD,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,qBAYA;AAID,wBAAgB,qBAAqB,6BAgEpC;AAID,eAAO,MAAM,iBAAiB;YACpB,MAAM;aACL,OAAO;eACL,MAAM;SACJ,CAAC;AAEhB,eAAO,MAAM,qBAAqB;iBACnB,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;SAC9C,CAAC;AAIhB,wBAAgB,mBAAmB,sBA+BlC;AAwMD,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,GAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,qBAiIL;AAID,wBAAgB,WAAW,sBAuI1B;AAID,wBAAgB,gBAAgB,sBAiL/B;AAID,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,qBAMjE;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAkB,GACnB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,qBA2GzB"}
1
+ {"version":3,"file":"message-components.d.ts","sourceRoot":"","sources":["../../../src/client/chat/message-components.tsx"],"names":[],"mappings":"AAuCA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAqCxE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAID,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAqBD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,yBAAyB,GAAG,IAAI,CAyClC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,SAAS,GACV,EAAE;IACD,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,qBAYA;AAID,wBAAgB,qBAAqB,6BAgEpC;AAID,eAAO,MAAM,iBAAiB;YACpB,MAAM;aACL,OAAO;eACL,MAAM;SACJ,CAAC;AAEhB,eAAO,MAAM,qBAAqB;iBACnB,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;SAC9C,CAAC;AAIhB,wBAAgB,mBAAmB,sBA+BlC;AAwMD,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,GAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,qBAiIL;AAID,wBAAgB,WAAW,sBAuI1B;AAID,wBAAgB,gBAAgB,sBAiL/B;AAID,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,qBAMjE;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAkB,GACnB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,qBAWzB"}
@@ -4,7 +4,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
4
4
  // RunningActivityStatus, ThinkingIndicator, and displayableUserMessageText.
5
5
  import { useThread, useMessageRuntime, useComposer, MessagePrimitive, ActionBarPrimitive, BranchPickerPrimitive, ComposerPrimitive, } from "@assistant-ui/react";
6
6
  import { IconX, IconCheck, IconCopy, IconChevronDown, IconChevronLeft, IconChevronRight, IconDots, IconGitFork, IconId, IconQuote, IconRefresh, IconArrowBackUp, IconFile, IconFolder, IconFileText, IconCheckbox, IconMail, IconUser, IconPresentation, IconStack2, IconMessageChatbot, IconPencil, IconLoader2, } from "@tabler/icons-react";
7
- import React, { useState, useEffect, useCallback, useRef, useId } from "react";
7
+ import React, { useState, useEffect, useCallback, useRef } from "react";
8
8
  import { getActiveRun } from "../active-run-state.js";
9
9
  import { agentNativePath } from "../api-path.js";
10
10
  import { writeClipboardText } from "../clipboard.js";
@@ -439,17 +439,7 @@ export function AssistantMessage() {
439
439
  export function RunningActivityStatus({ label }) {
440
440
  return (_jsx("div", { className: "agent-running-activity", children: _jsx(ThinkingIndicator, { label: label }) }));
441
441
  }
442
- export function ThinkingIndicator({ label = "Thinking", } = {}) {
443
- const reactId = useId().replace(/:/g, "");
444
- const maskId = `agent-thinking-mask-${reactId}`;
445
- const gradientId = `agent-thinking-gradient-${reactId}`;
446
- const textX = 27;
447
- const textWidth = Math.max(44, Math.min(96, label.length * 6.35));
448
- const ellipsisX = textX + textWidth - 0.8;
449
- const viewBoxWidth = ellipsisX + 13;
450
- const shimmerWidth = viewBoxWidth * 0.68;
451
- return (_jsx("div", { className: "agent-thinking-indicator", role: "status", "aria-live": "polite", "aria-label": label, children: _jsxs("svg", { className: "agent-thinking-indicator__glyph", viewBox: `0 0 ${viewBoxWidth} 18`, style: {
452
- "--agent-thinking-width": `${viewBoxWidth / 16}rem`,
453
- }, "aria-hidden": "true", focusable: "false", children: [_jsxs("defs", { children: [_jsxs("linearGradient", { id: gradientId, x1: "0", x2: "1", y1: "0", y2: "0", children: [_jsx("stop", { className: "agent-thinking-indicator__sheen-edge", offset: "0%" }), _jsx("stop", { className: "agent-thinking-indicator__sheen-mid", offset: "50%" }), _jsx("stop", { className: "agent-thinking-indicator__sheen-edge", offset: "100%" })] }), _jsx("mask", { id: maskId, maskUnits: "userSpaceOnUse", children: _jsxs("g", { fill: "white", children: [_jsxs("g", { className: "agent-thinking-indicator__logo", transform: "translate(0 2.7) scale(0.9)", children: [_jsx("path", { d: "M5.1 14H0L3.1 8.4 7.8 0 12.5 8.4H8.2L5.1 14Z" }), _jsx("path", { d: "M19.5 0H24L16.6 14H12.1L19.5 0Z" })] }), _jsx("text", { x: textX, y: "13", fontFamily: 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif', fontSize: "13", fontWeight: "500", letterSpacing: "0", children: label }), _jsxs("g", { fontFamily: 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif', fontSize: "13", fontWeight: "500", children: [_jsx("text", { className: "agent-thinking-indicator__ellipsis-dot agent-thinking-indicator__ellipsis-dot--1", x: ellipsisX, y: "13", children: "." }), _jsx("text", { className: "agent-thinking-indicator__ellipsis-dot agent-thinking-indicator__ellipsis-dot--2", x: ellipsisX + 3.7, y: "13", children: "." }), _jsx("text", { className: "agent-thinking-indicator__ellipsis-dot agent-thinking-indicator__ellipsis-dot--3", x: ellipsisX + 7.4, y: "13", children: "." })] })] }) })] }), _jsxs("g", { mask: `url(#${maskId})`, children: [_jsx("rect", { className: "agent-thinking-indicator__base", width: viewBoxWidth, height: "18" }), _jsx("rect", { className: "agent-thinking-indicator__shimmer", width: shimmerWidth, height: "18", fill: `url(#${gradientId})` })] })] }) }));
442
+ export function ThinkingIndicator({ label = "thinking", } = {}) {
443
+ return (_jsx("div", { className: "agent-thinking-indicator", role: "status", "aria-live": "polite", "aria-label": label, children: _jsx("span", { className: "agent-thinking-indicator__text", children: label }) }));
454
444
  }
455
445
  //# sourceMappingURL=message-components.js.map