@agent-native/core 0.46.0 → 0.48.1

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 (837) hide show
  1. package/bin/agent-native.js +41 -0
  2. package/dist/a2a/handlers.js +2 -2
  3. package/dist/a2a/handlers.js.map +1 -1
  4. package/dist/a2a/server.js +2 -2
  5. package/dist/a2a/server.js.map +1 -1
  6. package/dist/action.d.ts +43 -2
  7. package/dist/action.d.ts.map +1 -1
  8. package/dist/action.js.map +1 -1
  9. package/dist/agent/context-xray/actions/context-evict.d.ts +7 -1
  10. package/dist/agent/context-xray/actions/context-evict.d.ts.map +1 -1
  11. package/dist/agent/context-xray/actions/context-manifest-get.d.ts +4 -1
  12. package/dist/agent/context-xray/actions/context-manifest-get.d.ts.map +1 -1
  13. package/dist/agent/context-xray/actions/context-pin.d.ts +7 -1
  14. package/dist/agent/context-xray/actions/context-pin.d.ts.map +1 -1
  15. package/dist/agent/context-xray/actions/context-report.d.ts +12 -1
  16. package/dist/agent/context-xray/actions/context-report.d.ts.map +1 -1
  17. package/dist/agent/context-xray/actions/context-restore.d.ts +7 -1
  18. package/dist/agent/context-xray/actions/context-restore.d.ts.map +1 -1
  19. package/dist/agent/context-xray/apply-directives.d.ts.map +1 -1
  20. package/dist/agent/context-xray/apply-directives.js.map +1 -1
  21. package/dist/agent/context-xray/schema.d.ts +10 -10
  22. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  23. package/dist/agent/engine/ai-sdk-engine.js +26 -3
  24. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  25. package/dist/agent/engine/anthropic-engine.d.ts +1 -1
  26. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  27. package/dist/agent/engine/builder-engine.d.ts +1 -1
  28. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  29. package/dist/agent/engine/builder-engine.js +47 -8
  30. package/dist/agent/engine/builder-engine.js.map +1 -1
  31. package/dist/agent/engine/builtin.js +1 -1
  32. package/dist/agent/engine/builtin.js.map +1 -1
  33. package/dist/agent/engine/output-tokens.d.ts +1 -1
  34. package/dist/agent/engine/output-tokens.d.ts.map +1 -1
  35. package/dist/agent/engine/output-tokens.js +6 -2
  36. package/dist/agent/engine/output-tokens.js.map +1 -1
  37. package/dist/agent/engine/registry.d.ts.map +1 -1
  38. package/dist/agent/engine/registry.js +7 -4
  39. package/dist/agent/engine/registry.js.map +1 -1
  40. package/dist/agent/engine/types.d.ts +19 -0
  41. package/dist/agent/engine/types.d.ts.map +1 -1
  42. package/dist/agent/engine/types.js +6 -0
  43. package/dist/agent/engine/types.js.map +1 -1
  44. package/dist/agent/model-config.d.ts +22 -14
  45. package/dist/agent/model-config.d.ts.map +1 -1
  46. package/dist/agent/model-config.js +113 -8
  47. package/dist/agent/model-config.js.map +1 -1
  48. package/dist/agent/production-agent.d.ts +47 -1
  49. package/dist/agent/production-agent.d.ts.map +1 -1
  50. package/dist/agent/production-agent.js +267 -46
  51. package/dist/agent/production-agent.js.map +1 -1
  52. package/dist/agent/run-loop-with-resume.d.ts.map +1 -1
  53. package/dist/agent/run-loop-with-resume.js +10 -0
  54. package/dist/agent/run-loop-with-resume.js.map +1 -1
  55. package/dist/agent/run-manager.d.ts +1 -0
  56. package/dist/agent/run-manager.d.ts.map +1 -1
  57. package/dist/agent/run-manager.js +36 -9
  58. package/dist/agent/run-manager.js.map +1 -1
  59. package/dist/agent/run-store.d.ts +47 -4
  60. package/dist/agent/run-store.d.ts.map +1 -1
  61. package/dist/agent/run-store.js +154 -4
  62. package/dist/agent/run-store.js.map +1 -1
  63. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  64. package/dist/agent/thread-data-builder.js +57 -2
  65. package/dist/agent/thread-data-builder.js.map +1 -1
  66. package/dist/agent/types.d.ts +3 -0
  67. package/dist/agent/types.d.ts.map +1 -1
  68. package/dist/agent/types.js.map +1 -1
  69. package/dist/agent-web/generator.d.ts +3 -3
  70. package/dist/appearance/actions/change-appearance.d.ts +6 -1
  71. package/dist/appearance/actions/change-appearance.d.ts.map +1 -1
  72. package/dist/application-state/handlers.d.ts +2 -2
  73. package/dist/application-state/handlers.d.ts.map +1 -1
  74. package/dist/application-state/store.d.ts.map +1 -1
  75. package/dist/application-state/store.js +17 -0
  76. package/dist/application-state/store.js.map +1 -1
  77. package/dist/catalog.json +2 -1
  78. package/dist/cli/code-agent-commands.d.ts.map +1 -1
  79. package/dist/cli/code-agent-commands.js +2 -0
  80. package/dist/cli/code-agent-commands.js.map +1 -1
  81. package/dist/cli/code-agent-connector.js +7 -13
  82. package/dist/cli/code-agent-connector.js.map +1 -1
  83. package/dist/cli/code-agent-executor.d.ts +54 -2
  84. package/dist/cli/code-agent-executor.d.ts.map +1 -1
  85. package/dist/cli/code-agent-executor.js +504 -48
  86. package/dist/cli/code-agent-executor.js.map +1 -1
  87. package/dist/cli/code-agent-runs.d.ts +13 -0
  88. package/dist/cli/code-agent-runs.d.ts.map +1 -1
  89. package/dist/cli/code-agent-runs.js +36 -0
  90. package/dist/cli/code-agent-runs.js.map +1 -1
  91. package/dist/cli/code.js +59 -5
  92. package/dist/cli/code.js.map +1 -1
  93. package/dist/cli/connect.js +141 -3
  94. package/dist/cli/connect.js.map +1 -1
  95. package/dist/cli/index.js +0 -0
  96. package/dist/cli/pr-visual-recap-workflow.js +1 -1
  97. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  98. package/dist/cli/recap.js +476 -46
  99. package/dist/cli/recap.js.map +1 -1
  100. package/dist/cli/skills.js +331 -179
  101. package/dist/cli/skills.js.map +1 -1
  102. package/dist/client/AgentPanel.d.ts.map +1 -1
  103. package/dist/client/AgentPanel.js +29 -2
  104. package/dist/client/AgentPanel.js.map +1 -1
  105. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  106. package/dist/client/AgentTaskCard.js +17 -2
  107. package/dist/client/AgentTaskCard.js.map +1 -1
  108. package/dist/client/AssistantChat.d.ts +1 -1
  109. package/dist/client/AssistantChat.d.ts.map +1 -1
  110. package/dist/client/AssistantChat.js +310 -1732
  111. package/dist/client/AssistantChat.js.map +1 -1
  112. package/dist/client/CommandMenu.d.ts +1 -1
  113. package/dist/client/CommandMenu.d.ts.map +1 -1
  114. package/dist/client/CommandMenu.js +1 -1
  115. package/dist/client/CommandMenu.js.map +1 -1
  116. package/dist/client/HighlightedCodeBlock.d.ts +40 -0
  117. package/dist/client/HighlightedCodeBlock.d.ts.map +1 -0
  118. package/dist/client/HighlightedCodeBlock.js +110 -0
  119. package/dist/client/HighlightedCodeBlock.js.map +1 -0
  120. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  121. package/dist/client/MultiTabAssistantChat.js +8 -1
  122. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  123. package/dist/client/PoweredByBadge.d.ts +2 -2
  124. package/dist/client/PoweredByBadge.d.ts.map +1 -1
  125. package/dist/client/RunStuckBanner.d.ts +1 -1
  126. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  127. package/dist/client/StarfieldBackground.d.ts.map +1 -1
  128. package/dist/client/StarfieldBackground.js +10 -5
  129. package/dist/client/StarfieldBackground.js.map +1 -1
  130. package/dist/client/Turnstile.d.ts +1 -1
  131. package/dist/client/Turnstile.d.ts.map +1 -1
  132. package/dist/client/agent-chat-adapter.d.ts +3 -2
  133. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  134. package/dist/client/agent-chat-adapter.js +13 -9
  135. package/dist/client/agent-chat-adapter.js.map +1 -1
  136. package/dist/client/app-providers.d.ts +99 -0
  137. package/dist/client/app-providers.d.ts.map +1 -0
  138. package/dist/client/app-providers.js +19 -0
  139. package/dist/client/app-providers.js.map +1 -0
  140. package/dist/client/assistant-ui-recovery.d.ts +1 -1
  141. package/dist/client/auth-redirect-url.d.ts +1 -1
  142. package/dist/client/auth-redirect-url.d.ts.map +1 -1
  143. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts +0 -19
  144. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -1
  145. package/dist/client/blocks/library/AnnotatedCodeBlock.js +141 -55
  146. package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -1
  147. package/dist/client/blocks/library/DiffBlock.js +1 -1
  148. package/dist/client/blocks/library/DiffBlock.js.map +1 -1
  149. package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -1
  150. package/dist/client/blocks/library/FileTreeBlock.js +1 -1
  151. package/dist/client/blocks/library/FileTreeBlock.js.map +1 -1
  152. package/dist/client/blocks/library/HighlightedCode.d.ts.map +1 -1
  153. package/dist/client/blocks/library/HighlightedCode.js +5 -3
  154. package/dist/client/blocks/library/HighlightedCode.js.map +1 -1
  155. package/dist/client/blocks/library/annotation-rail.d.ts +5 -4
  156. package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
  157. package/dist/client/blocks/library/annotation-rail.js +22 -3
  158. package/dist/client/blocks/library/annotation-rail.js.map +1 -1
  159. package/dist/client/blocks/library/diagram.js +1 -1
  160. package/dist/client/blocks/library/diagram.js.map +1 -1
  161. package/dist/client/blocks/library/diff.config.d.ts +3 -2
  162. package/dist/client/blocks/library/diff.config.d.ts.map +1 -1
  163. package/dist/client/blocks/library/diff.config.js +4 -3
  164. package/dist/client/blocks/library/diff.config.js.map +1 -1
  165. package/dist/client/blocks/library/question-form.d.ts.map +1 -1
  166. package/dist/client/blocks/library/question-form.js +2 -1
  167. package/dist/client/blocks/library/question-form.js.map +1 -1
  168. package/dist/client/blocks/library/wireframe-kit.d.ts +1 -1
  169. package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
  170. package/dist/client/blocks/library/wireframe.js +1 -1
  171. package/dist/client/blocks/library/wireframe.js.map +1 -1
  172. package/dist/client/chat/attachment-adapters.d.ts +58 -0
  173. package/dist/client/chat/attachment-adapters.d.ts.map +1 -0
  174. package/dist/client/chat/attachment-adapters.js +331 -0
  175. package/dist/client/chat/attachment-adapters.js.map +1 -0
  176. package/dist/client/chat/index.d.ts +13 -0
  177. package/dist/client/chat/index.d.ts.map +1 -0
  178. package/dist/client/chat/index.js +13 -0
  179. package/dist/client/chat/index.js.map +1 -0
  180. package/dist/client/chat/markdown-renderer.d.ts +49 -0
  181. package/dist/client/chat/markdown-renderer.d.ts.map +1 -0
  182. package/dist/client/chat/markdown-renderer.js +391 -0
  183. package/dist/client/chat/markdown-renderer.js.map +1 -0
  184. package/dist/client/chat/message-components.d.ts +35 -0
  185. package/dist/client/chat/message-components.d.ts.map +1 -0
  186. package/dist/client/chat/message-components.js +452 -0
  187. package/dist/client/chat/message-components.js.map +1 -0
  188. package/dist/client/chat/repo-helpers.d.ts +41 -0
  189. package/dist/client/chat/repo-helpers.d.ts.map +1 -0
  190. package/dist/client/chat/repo-helpers.js +61 -0
  191. package/dist/client/chat/repo-helpers.js.map +1 -0
  192. package/dist/client/chat/run-recovery.d.ts +41 -0
  193. package/dist/client/chat/run-recovery.d.ts.map +1 -0
  194. package/dist/client/chat/run-recovery.js +348 -0
  195. package/dist/client/chat/run-recovery.js.map +1 -0
  196. package/dist/client/chat/tool-call-display.d.ts +34 -0
  197. package/dist/client/chat/tool-call-display.d.ts.map +1 -0
  198. package/dist/client/chat/tool-call-display.js +284 -0
  199. package/dist/client/chat/tool-call-display.js.map +1 -0
  200. package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
  201. package/dist/client/code-agent-chat-adapter.js +20 -0
  202. package/dist/client/code-agent-chat-adapter.js.map +1 -1
  203. package/dist/client/collab/index.d.ts +10 -0
  204. package/dist/client/collab/index.d.ts.map +1 -0
  205. package/dist/client/collab/index.js +10 -0
  206. package/dist/client/collab/index.js.map +1 -0
  207. package/dist/client/components/AgentPresenceChip.d.ts +1 -1
  208. package/dist/client/components/AgentPresenceChip.d.ts.map +1 -1
  209. package/dist/client/components/ApiKeySettings.d.ts +1 -1
  210. package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
  211. package/dist/client/components/CodeAgentIndicator.d.ts +1 -1
  212. package/dist/client/components/CodeAgentIndicator.d.ts.map +1 -1
  213. package/dist/client/components/CodeRequiredDialog.d.ts +1 -1
  214. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  215. package/dist/client/components/LiveCursorOverlay.d.ts.map +1 -1
  216. package/dist/client/components/LiveCursorOverlay.js.map +1 -1
  217. package/dist/client/components/PresenceBar.d.ts +1 -1
  218. package/dist/client/components/PresenceBar.d.ts.map +1 -1
  219. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  220. package/dist/client/composer/PromptComposer.js +6 -26
  221. package/dist/client/composer/PromptComposer.js.map +1 -1
  222. package/dist/client/composer/TiptapComposer.d.ts +8 -2
  223. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  224. package/dist/client/composer/TiptapComposer.js +21 -9
  225. package/dist/client/composer/TiptapComposer.js.map +1 -1
  226. package/dist/client/composer/VoiceButton.d.ts +2 -2
  227. package/dist/client/composer/VoiceButton.d.ts.map +1 -1
  228. package/dist/client/composer/index.d.ts +1 -1
  229. package/dist/client/composer/index.d.ts.map +1 -1
  230. package/dist/client/composer/index.js +1 -1
  231. package/dist/client/composer/index.js.map +1 -1
  232. package/dist/client/composer/use-skills.d.ts +1 -1
  233. package/dist/client/context-xray/ContextMeter.d.ts +1 -1
  234. package/dist/client/context-xray/ContextMeter.d.ts.map +1 -1
  235. package/dist/client/context-xray/ContextMeter.js +3 -3
  236. package/dist/client/context-xray/ContextMeter.js.map +1 -1
  237. package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
  238. package/dist/client/context-xray/ContextXRayPanel.js +4 -3
  239. package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
  240. package/dist/client/context-xray/format.d.ts +11 -0
  241. package/dist/client/context-xray/format.d.ts.map +1 -1
  242. package/dist/client/context-xray/format.js +16 -0
  243. package/dist/client/context-xray/format.js.map +1 -1
  244. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  245. package/dist/client/conversation/AgentConversation.js +8 -53
  246. package/dist/client/conversation/AgentConversation.js.map +1 -1
  247. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +1 -1
  248. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts.map +1 -1
  249. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -1
  250. package/dist/client/conversation/use-near-bottom-autoscroll.js.map +1 -1
  251. package/dist/client/create-query-client.d.ts +28 -0
  252. package/dist/client/create-query-client.d.ts.map +1 -0
  253. package/dist/client/create-query-client.js +78 -0
  254. package/dist/client/create-query-client.js.map +1 -0
  255. package/dist/client/db-admin/DevDatabaseLink.d.ts +1 -1
  256. package/dist/client/db-admin/DevDatabaseLink.d.ts.map +1 -1
  257. package/dist/client/db-admin/RowSidePanel.d.ts +1 -1
  258. package/dist/client/db-admin/RowSidePanel.d.ts.map +1 -1
  259. package/dist/client/db-admin/RowSidePanel.js +2 -2
  260. package/dist/client/db-admin/RowSidePanel.js.map +1 -1
  261. package/dist/client/db-admin/TableEditor.d.ts +1 -1
  262. package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
  263. package/dist/client/db-admin/TableEditor.js +1 -1
  264. package/dist/client/db-admin/TableEditor.js.map +1 -1
  265. package/dist/client/db-admin/cell-format.d.ts +1 -1
  266. package/dist/client/db-admin/cell-format.d.ts.map +1 -1
  267. package/dist/client/dev-overlay/DevOverlay.d.ts +1 -1
  268. package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -1
  269. package/dist/client/editor/index.d.ts +2 -0
  270. package/dist/client/editor/index.d.ts.map +1 -0
  271. package/dist/client/editor/index.js +2 -0
  272. package/dist/client/editor/index.js.map +1 -0
  273. package/dist/client/error-format.d.ts.map +1 -1
  274. package/dist/client/error-format.js +4 -0
  275. package/dist/client/error-format.js.map +1 -1
  276. package/dist/client/extensions/AgentNativeExtensionFrame.d.ts +1 -1
  277. package/dist/client/extensions/AgentNativeExtensionFrame.d.ts.map +1 -1
  278. package/dist/client/extensions/EmbeddedExtension.d.ts +1 -1
  279. package/dist/client/extensions/EmbeddedExtension.d.ts.map +1 -1
  280. package/dist/client/extensions/ExtensionSlot.d.ts +1 -1
  281. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  282. package/dist/client/extensions/ExtensionViewerPage.d.ts +1 -1
  283. package/dist/client/extensions/ExtensionViewerPage.d.ts.map +1 -1
  284. package/dist/client/guided-questions.d.ts +6 -6
  285. package/dist/client/host-bridge.d.ts.map +1 -1
  286. package/dist/client/host-bridge.js +2 -0
  287. package/dist/client/host-bridge.js.map +1 -1
  288. package/dist/client/index.d.ts +7 -6
  289. package/dist/client/index.d.ts.map +1 -1
  290. package/dist/client/index.js +5 -3
  291. package/dist/client/index.js.map +1 -1
  292. package/dist/client/onboarding/OnboardingBanner.d.ts +1 -1
  293. package/dist/client/onboarding/OnboardingBanner.d.ts.map +1 -1
  294. package/dist/client/onboarding/OnboardingPanel.d.ts +1 -1
  295. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  296. package/dist/client/onboarding/SetupButton.d.ts +1 -1
  297. package/dist/client/onboarding/SetupButton.d.ts.map +1 -1
  298. package/dist/client/org/InvitationBanner.d.ts +1 -1
  299. package/dist/client/org/InvitationBanner.d.ts.map +1 -1
  300. package/dist/client/org/OrgSwitcher.d.ts +1 -1
  301. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  302. package/dist/client/org/RequireActiveOrg.d.ts +1 -1
  303. package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
  304. package/dist/client/org/hooks.d.ts +3 -3
  305. package/dist/client/org/hooks.d.ts.map +1 -1
  306. package/dist/client/progress/RunsTray.d.ts +2 -2
  307. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  308. package/dist/client/progress/RunsTray.js +34 -9
  309. package/dist/client/progress/RunsTray.js.map +1 -1
  310. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  311. package/dist/client/resources/ResourceEditor.js +1 -1
  312. package/dist/client/resources/ResourceEditor.js.map +1 -1
  313. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  314. package/dist/client/resources/ResourcesPanel.js +2 -0
  315. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  316. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts +1 -1
  317. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts.map +1 -1
  318. package/dist/client/rich-markdown-editor/CodeBlockNode.d.ts.map +1 -1
  319. package/dist/client/rich-markdown-editor/CodeBlockNode.js +2 -1
  320. package/dist/client/rich-markdown-editor/CodeBlockNode.js.map +1 -1
  321. package/dist/client/rich-markdown-editor/ImageExtension.d.ts.map +1 -1
  322. package/dist/client/rich-markdown-editor/ImageExtension.js +2 -1
  323. package/dist/client/rich-markdown-editor/ImageExtension.js.map +1 -1
  324. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts +1 -1
  325. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts.map +1 -1
  326. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +1 -1
  327. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -1
  328. package/dist/client/rich-markdown-editor/RichMarkdownEditor.d.ts +1 -1
  329. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
  330. package/dist/client/rich-markdown-editor/SharedRichEditor.js +2 -3
  331. package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
  332. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts +1 -1
  333. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts.map +1 -1
  334. package/dist/client/route-state.d.ts +12 -2
  335. package/dist/client/route-state.d.ts.map +1 -1
  336. package/dist/client/route-state.js +1 -1
  337. package/dist/client/route-state.js.map +1 -1
  338. package/dist/client/route-warmup.d.ts +1 -1
  339. package/dist/client/route-warmup.d.ts.map +1 -1
  340. package/dist/client/settings/VoiceTranscriptionSection.js +1 -1
  341. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  342. package/dist/client/settings/useBuilderStatus.d.ts +2 -2
  343. package/dist/client/sharing/ShareDialog.d.ts +1 -1
  344. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  345. package/dist/client/sse-event-processor.d.ts +8 -0
  346. package/dist/client/sse-event-processor.d.ts.map +1 -1
  347. package/dist/client/sse-event-processor.js +33 -10
  348. package/dist/client/sse-event-processor.js.map +1 -1
  349. package/dist/client/terminal/AgentTerminal.d.ts +1 -1
  350. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  351. package/dist/client/terminal/AgentTerminal.js +4 -2
  352. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  353. package/dist/client/tool-cells/BashCell.d.ts +25 -0
  354. package/dist/client/tool-cells/BashCell.d.ts.map +1 -0
  355. package/dist/client/tool-cells/BashCell.js +49 -0
  356. package/dist/client/tool-cells/BashCell.js.map +1 -0
  357. package/dist/client/tool-cells/EditCell.d.ts +24 -0
  358. package/dist/client/tool-cells/EditCell.d.ts.map +1 -0
  359. package/dist/client/tool-cells/EditCell.js +126 -0
  360. package/dist/client/tool-cells/EditCell.js.map +1 -0
  361. package/dist/client/tool-cells/FilesChangedSummary.d.ts +13 -0
  362. package/dist/client/tool-cells/FilesChangedSummary.d.ts.map +1 -0
  363. package/dist/client/tool-cells/FilesChangedSummary.js +98 -0
  364. package/dist/client/tool-cells/FilesChangedSummary.js.map +1 -0
  365. package/dist/client/tool-cells/WriteCell.d.ts +17 -0
  366. package/dist/client/tool-cells/WriteCell.d.ts.map +1 -0
  367. package/dist/client/tool-cells/WriteCell.js +26 -0
  368. package/dist/client/tool-cells/WriteCell.js.map +1 -0
  369. package/dist/client/tool-cells/index.d.ts +8 -0
  370. package/dist/client/tool-cells/index.d.ts.map +1 -0
  371. package/dist/client/tool-cells/index.js +5 -0
  372. package/dist/client/tool-cells/index.js.map +1 -0
  373. package/dist/client/transcription/BuilderTranscriptionCta.d.ts +1 -1
  374. package/dist/client/transcription/BuilderTranscriptionCta.d.ts.map +1 -1
  375. package/dist/client/use-chat-threads.d.ts +1 -1
  376. package/dist/client/use-chat-threads.d.ts.map +1 -1
  377. package/dist/client/use-chat-threads.js +11 -8
  378. package/dist/client/use-chat-threads.js.map +1 -1
  379. package/dist/client/use-db-sync.d.ts +2 -0
  380. package/dist/client/use-db-sync.d.ts.map +1 -1
  381. package/dist/client/use-db-sync.js +329 -302
  382. package/dist/client/use-db-sync.js.map +1 -1
  383. package/dist/code-agents/transcript-normalizer.d.ts +15 -1
  384. package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
  385. package/dist/code-agents/transcript-normalizer.js +47 -0
  386. package/dist/code-agents/transcript-normalizer.js.map +1 -1
  387. package/dist/coding-tools/index.d.ts +75 -0
  388. package/dist/coding-tools/index.d.ts.map +1 -1
  389. package/dist/coding-tools/index.js +137 -10
  390. package/dist/coding-tools/index.js.map +1 -1
  391. package/dist/coding-tools/run-code.d.ts +40 -0
  392. package/dist/coding-tools/run-code.d.ts.map +1 -0
  393. package/dist/coding-tools/run-code.js +511 -0
  394. package/dist/coding-tools/run-code.js.map +1 -0
  395. package/dist/collab/client.d.ts.map +1 -1
  396. package/dist/collab/client.js +15 -9
  397. package/dist/collab/client.js.map +1 -1
  398. package/dist/collab/ydoc-manager.d.ts +1 -1
  399. package/dist/collab/ydoc-manager.d.ts.map +1 -1
  400. package/dist/collab/ydoc-manager.js +1 -1
  401. package/dist/collab/ydoc-manager.js.map +1 -1
  402. package/dist/db/client.d.ts +9 -1
  403. package/dist/db/client.d.ts.map +1 -1
  404. package/dist/db/client.js +204 -48
  405. package/dist/db/client.js.map +1 -1
  406. package/dist/db/create-get-db.d.ts +38 -0
  407. package/dist/db/create-get-db.d.ts.map +1 -1
  408. package/dist/db/create-get-db.js +204 -4
  409. package/dist/db/create-get-db.js.map +1 -1
  410. package/dist/db/migrations.d.ts.map +1 -1
  411. package/dist/db/migrations.js +159 -67
  412. package/dist/db/migrations.js.map +1 -1
  413. package/dist/demo/actions/toggle-demo-mode.d.ts +6 -1
  414. package/dist/demo/actions/toggle-demo-mode.d.ts.map +1 -1
  415. package/dist/deploy/build.d.ts.map +1 -1
  416. package/dist/deploy/build.js +80 -39
  417. package/dist/deploy/build.js.map +1 -1
  418. package/dist/deploy/workspace-deploy.js +20 -10
  419. package/dist/deploy/workspace-deploy.js.map +1 -1
  420. package/dist/extensions/fetch-tool.d.ts.map +1 -1
  421. package/dist/extensions/fetch-tool.js +62 -7
  422. package/dist/extensions/fetch-tool.js.map +1 -1
  423. package/dist/extensions/schema.d.ts +51 -51
  424. package/dist/extensions/slots/schema.d.ts +13 -13
  425. package/dist/extensions/web-search-tool.d.ts +41 -0
  426. package/dist/extensions/web-search-tool.d.ts.map +1 -0
  427. package/dist/extensions/web-search-tool.js +200 -0
  428. package/dist/extensions/web-search-tool.js.map +1 -0
  429. package/dist/file-upload/actions/upload-image.d.ts +26 -1
  430. package/dist/file-upload/actions/upload-image.d.ts.map +1 -1
  431. package/dist/file-upload/index.d.ts +1 -1
  432. package/dist/file-upload/index.d.ts.map +1 -1
  433. package/dist/file-upload/index.js +1 -1
  434. package/dist/file-upload/index.js.map +1 -1
  435. package/dist/file-upload/pre-upload-attachments.d.ts +37 -0
  436. package/dist/file-upload/pre-upload-attachments.d.ts.map +1 -1
  437. package/dist/file-upload/pre-upload-attachments.js +79 -19
  438. package/dist/file-upload/pre-upload-attachments.js.map +1 -1
  439. package/dist/index.d.ts +1 -1
  440. package/dist/index.d.ts.map +1 -1
  441. package/dist/index.js.map +1 -1
  442. package/dist/integrations/adapters/slack.js +1 -1
  443. package/dist/integrations/adapters/slack.js.map +1 -1
  444. package/dist/integrations/plugin.js +1 -1
  445. package/dist/integrations/plugin.js.map +1 -1
  446. package/dist/jobs/scheduler.js +70 -21
  447. package/dist/jobs/scheduler.js.map +1 -1
  448. package/dist/mcp/actions/create-org-service-token.d.ts +14 -0
  449. package/dist/mcp/actions/create-org-service-token.d.ts.map +1 -0
  450. package/dist/mcp/actions/create-org-service-token.js +74 -0
  451. package/dist/mcp/actions/create-org-service-token.js.map +1 -0
  452. package/dist/mcp/actions/list-org-service-tokens.d.ts +17 -0
  453. package/dist/mcp/actions/list-org-service-tokens.d.ts.map +1 -0
  454. package/dist/mcp/actions/list-org-service-tokens.js +42 -0
  455. package/dist/mcp/actions/list-org-service-tokens.js.map +1 -0
  456. package/dist/mcp/actions/revoke-org-service-token.d.ts +7 -0
  457. package/dist/mcp/actions/revoke-org-service-token.d.ts.map +1 -0
  458. package/dist/mcp/actions/revoke-org-service-token.js +28 -0
  459. package/dist/mcp/actions/revoke-org-service-token.js.map +1 -0
  460. package/dist/mcp/actions/service-token-access.d.ts +24 -0
  461. package/dist/mcp/actions/service-token-access.d.ts.map +1 -0
  462. package/dist/mcp/actions/service-token-access.js +63 -0
  463. package/dist/mcp/actions/service-token-access.js.map +1 -0
  464. package/dist/mcp/build-server.d.ts +42 -11
  465. package/dist/mcp/build-server.d.ts.map +1 -1
  466. package/dist/mcp/build-server.js +53 -3
  467. package/dist/mcp/build-server.js.map +1 -1
  468. package/dist/mcp/connect-route.d.ts +35 -0
  469. package/dist/mcp/connect-route.d.ts.map +1 -1
  470. package/dist/mcp/connect-route.js +57 -2
  471. package/dist/mcp/connect-route.js.map +1 -1
  472. package/dist/mcp/connect-store.d.ts +43 -0
  473. package/dist/mcp/connect-store.d.ts.map +1 -1
  474. package/dist/mcp/connect-store.js +129 -12
  475. package/dist/mcp/connect-store.js.map +1 -1
  476. package/dist/mcp/oauth-token.d.ts +10 -0
  477. package/dist/mcp/oauth-token.d.ts.map +1 -1
  478. package/dist/mcp/oauth-token.js +2 -0
  479. package/dist/mcp/oauth-token.js.map +1 -1
  480. package/dist/mcp/server.d.ts.map +1 -1
  481. package/dist/mcp/server.js +3 -0
  482. package/dist/mcp/server.js.map +1 -1
  483. package/dist/mcp-client/routes.js +1 -1
  484. package/dist/mcp-client/routes.js.map +1 -1
  485. package/dist/org/context.d.ts +4 -0
  486. package/dist/org/context.d.ts.map +1 -1
  487. package/dist/org/context.js +10 -0
  488. package/dist/org/context.js.map +1 -1
  489. package/dist/org/handlers.d.ts +11 -7
  490. package/dist/org/handlers.d.ts.map +1 -1
  491. package/dist/org/handlers.js +0 -8
  492. package/dist/org/handlers.js.map +1 -1
  493. package/dist/org/migrations.d.ts.map +1 -1
  494. package/dist/org/migrations.js +8 -0
  495. package/dist/org/migrations.js.map +1 -1
  496. package/dist/org/schema.d.ts +15 -15
  497. package/dist/progress/actions.d.ts.map +1 -1
  498. package/dist/progress/actions.js +13 -5
  499. package/dist/progress/actions.js.map +1 -1
  500. package/dist/provider-api/actions/delete-staged-dataset.d.ts +9 -0
  501. package/dist/provider-api/actions/delete-staged-dataset.d.ts.map +1 -0
  502. package/dist/provider-api/actions/delete-staged-dataset.js +35 -0
  503. package/dist/provider-api/actions/delete-staged-dataset.js.map +1 -0
  504. package/dist/provider-api/actions/list-staged-datasets.d.ts +15 -0
  505. package/dist/provider-api/actions/list-staged-datasets.d.ts.map +1 -0
  506. package/dist/provider-api/actions/list-staged-datasets.js +41 -0
  507. package/dist/provider-api/actions/list-staged-datasets.js.map +1 -0
  508. package/dist/provider-api/actions/query-staged-dataset.d.ts +29 -0
  509. package/dist/provider-api/actions/query-staged-dataset.d.ts.map +1 -0
  510. package/dist/provider-api/actions/query-staged-dataset.js +116 -0
  511. package/dist/provider-api/actions/query-staged-dataset.js.map +1 -0
  512. package/dist/provider-api/custom-registry.d.ts +92 -0
  513. package/dist/provider-api/custom-registry.d.ts.map +1 -0
  514. package/dist/provider-api/custom-registry.js +289 -0
  515. package/dist/provider-api/custom-registry.js.map +1 -0
  516. package/dist/provider-api/index.d.ts +88 -52
  517. package/dist/provider-api/index.d.ts.map +1 -1
  518. package/dist/provider-api/index.js +569 -23
  519. package/dist/provider-api/index.js.map +1 -1
  520. package/dist/provider-api/staged-datasets-aggregate.d.ts +46 -0
  521. package/dist/provider-api/staged-datasets-aggregate.d.ts.map +1 -0
  522. package/dist/provider-api/staged-datasets-aggregate.js +209 -0
  523. package/dist/provider-api/staged-datasets-aggregate.js.map +1 -0
  524. package/dist/provider-api/staged-datasets-store.d.ts +76 -0
  525. package/dist/provider-api/staged-datasets-store.d.ts.map +1 -0
  526. package/dist/provider-api/staged-datasets-store.js +319 -0
  527. package/dist/provider-api/staged-datasets-store.js.map +1 -0
  528. package/dist/provider-api/staging.d.ts +100 -0
  529. package/dist/provider-api/staging.d.ts.map +1 -0
  530. package/dist/provider-api/staging.js +281 -0
  531. package/dist/provider-api/staging.js.map +1 -0
  532. package/dist/resources/handlers.d.ts.map +1 -1
  533. package/dist/resources/handlers.js +13 -1
  534. package/dist/resources/handlers.js.map +1 -1
  535. package/dist/scripts/call-agent.d.ts.map +1 -1
  536. package/dist/scripts/call-agent.js +1 -2
  537. package/dist/scripts/call-agent.js.map +1 -1
  538. package/dist/scripts/resources/migrate-learnings.d.ts +1 -1
  539. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
  540. package/dist/scripts/resources/migrate-learnings.js +1 -1
  541. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  542. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  543. package/dist/secrets/register-framework-secrets.js +36 -3
  544. package/dist/secrets/register-framework-secrets.js.map +1 -1
  545. package/dist/secrets/schema.d.ts +7 -7
  546. package/dist/server/action-discovery.d.ts.map +1 -1
  547. package/dist/server/action-discovery.js +14 -0
  548. package/dist/server/action-discovery.js.map +1 -1
  549. package/dist/server/action-routes.d.ts.map +1 -1
  550. package/dist/server/action-routes.js +3 -2
  551. package/dist/server/action-routes.js.map +1 -1
  552. package/dist/server/agent-chat-plugin.d.ts +69 -0
  553. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  554. package/dist/server/agent-chat-plugin.js +369 -179
  555. package/dist/server/agent-chat-plugin.js.map +1 -1
  556. package/dist/server/agent-discovery.d.ts.map +1 -1
  557. package/dist/server/agent-discovery.js +13 -16
  558. package/dist/server/agent-discovery.js.map +1 -1
  559. package/dist/server/agent-teams-run-queue.d.ts +31 -8
  560. package/dist/server/agent-teams-run-queue.d.ts.map +1 -1
  561. package/dist/server/agent-teams-run-queue.js +61 -18
  562. package/dist/server/agent-teams-run-queue.js.map +1 -1
  563. package/dist/server/agent-teams.d.ts +27 -1
  564. package/dist/server/agent-teams.d.ts.map +1 -1
  565. package/dist/server/agent-teams.js +214 -14
  566. package/dist/server/agent-teams.js.map +1 -1
  567. package/dist/server/app-base-path.d.ts +20 -0
  568. package/dist/server/app-base-path.d.ts.map +1 -1
  569. package/dist/server/app-base-path.js +36 -0
  570. package/dist/server/app-base-path.js.map +1 -1
  571. package/dist/server/attachment-actions.d.ts +43 -0
  572. package/dist/server/attachment-actions.d.ts.map +1 -0
  573. package/dist/server/attachment-actions.js +214 -0
  574. package/dist/server/attachment-actions.js.map +1 -0
  575. package/dist/server/auth.js +1 -1
  576. package/dist/server/auth.js.map +1 -1
  577. package/dist/server/complete-text.d.ts +56 -0
  578. package/dist/server/complete-text.d.ts.map +1 -0
  579. package/dist/server/complete-text.js +147 -0
  580. package/dist/server/complete-text.js.map +1 -0
  581. package/dist/server/core-routes-plugin.d.ts +1 -0
  582. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  583. package/dist/server/core-routes-plugin.js +37 -27
  584. package/dist/server/core-routes-plugin.js.map +1 -1
  585. package/dist/server/cors-origins.d.ts.map +1 -1
  586. package/dist/server/cors-origins.js +6 -1
  587. package/dist/server/cors-origins.js.map +1 -1
  588. package/dist/server/create-server.d.ts.map +1 -1
  589. package/dist/server/create-server.js +2 -1
  590. package/dist/server/create-server.js.map +1 -1
  591. package/dist/server/csrf.d.ts +1 -1
  592. package/dist/server/csrf.d.ts.map +1 -1
  593. package/dist/server/email-actions.d.ts +19 -0
  594. package/dist/server/email-actions.d.ts.map +1 -0
  595. package/dist/server/email-actions.js +191 -0
  596. package/dist/server/email-actions.js.map +1 -0
  597. package/dist/server/embed-route.js +1 -1
  598. package/dist/server/embed-route.js.map +1 -1
  599. package/dist/server/embed-session.d.ts.map +1 -1
  600. package/dist/server/embed-session.js +5 -1
  601. package/dist/server/embed-session.js.map +1 -1
  602. package/dist/server/entry-server.d.ts +24 -0
  603. package/dist/server/entry-server.d.ts.map +1 -0
  604. package/dist/server/entry-server.js +54 -0
  605. package/dist/server/entry-server.js.map +1 -0
  606. package/dist/server/framework-request-handler.d.ts.map +1 -1
  607. package/dist/server/framework-request-handler.js +2 -10
  608. package/dist/server/framework-request-handler.js.map +1 -1
  609. package/dist/server/google-oauth.d.ts.map +1 -1
  610. package/dist/server/google-oauth.js +2 -9
  611. package/dist/server/google-oauth.js.map +1 -1
  612. package/dist/server/google-realtime-session.d.ts.map +1 -1
  613. package/dist/server/google-realtime-session.js +6 -4
  614. package/dist/server/google-realtime-session.js.map +1 -1
  615. package/dist/server/h3-helpers.d.ts +39 -0
  616. package/dist/server/h3-helpers.d.ts.map +1 -1
  617. package/dist/server/h3-helpers.js +104 -1
  618. package/dist/server/h3-helpers.js.map +1 -1
  619. package/dist/server/index.d.ts +2 -1
  620. package/dist/server/index.d.ts.map +1 -1
  621. package/dist/server/index.js +2 -1
  622. package/dist/server/index.js.map +1 -1
  623. package/dist/server/onboarding-html.d.ts.map +1 -1
  624. package/dist/server/onboarding-html.js +1 -8
  625. package/dist/server/onboarding-html.js.map +1 -1
  626. package/dist/server/open-route.d.ts.map +1 -1
  627. package/dist/server/open-route.js +1 -0
  628. package/dist/server/open-route.js.map +1 -1
  629. package/dist/server/prompts/framework-core-compact.d.ts +19 -0
  630. package/dist/server/prompts/framework-core-compact.d.ts.map +1 -0
  631. package/dist/server/prompts/framework-core-compact.js +69 -0
  632. package/dist/server/prompts/framework-core-compact.js.map +1 -0
  633. package/dist/server/prompts/framework-core.d.ts +26 -0
  634. package/dist/server/prompts/framework-core.d.ts.map +1 -0
  635. package/dist/server/prompts/framework-core.js +130 -0
  636. package/dist/server/prompts/framework-core.js.map +1 -0
  637. package/dist/server/prompts/index.d.ts +9 -0
  638. package/dist/server/prompts/index.d.ts.map +1 -0
  639. package/dist/server/prompts/index.js +9 -0
  640. package/dist/server/prompts/index.js.map +1 -0
  641. package/dist/server/prompts/model-overlays.d.ts +18 -0
  642. package/dist/server/prompts/model-overlays.d.ts.map +1 -0
  643. package/dist/server/prompts/model-overlays.js +46 -0
  644. package/dist/server/prompts/model-overlays.js.map +1 -0
  645. package/dist/server/prompts/shared-rules.d.ts +29 -0
  646. package/dist/server/prompts/shared-rules.d.ts.map +1 -0
  647. package/dist/server/prompts/shared-rules.js +54 -0
  648. package/dist/server/prompts/shared-rules.js.map +1 -0
  649. package/dist/server/security-headers.d.ts +7 -1
  650. package/dist/server/security-headers.d.ts.map +1 -1
  651. package/dist/server/security-headers.js +11 -0
  652. package/dist/server/security-headers.js.map +1 -1
  653. package/dist/server/ssr-handler.d.ts.map +1 -1
  654. package/dist/server/ssr-handler.js +135 -46
  655. package/dist/server/ssr-handler.js.map +1 -1
  656. package/dist/server/transcribe-voice.d.ts.map +1 -1
  657. package/dist/server/transcribe-voice.js +7 -4
  658. package/dist/server/transcribe-voice.js.map +1 -1
  659. package/dist/settings/store.d.ts.map +1 -1
  660. package/dist/settings/store.js +9 -0
  661. package/dist/settings/store.js.map +1 -1
  662. package/dist/shared/markdown-block-split.d.ts +39 -0
  663. package/dist/shared/markdown-block-split.d.ts.map +1 -0
  664. package/dist/shared/markdown-block-split.js +97 -0
  665. package/dist/shared/markdown-block-split.js.map +1 -0
  666. package/dist/shared/reasoning-effort.js +13 -1
  667. package/dist/shared/reasoning-effort.js.map +1 -1
  668. package/dist/shared/streaming-text-smoothing.d.ts +18 -0
  669. package/dist/shared/streaming-text-smoothing.d.ts.map +1 -1
  670. package/dist/shared/streaming-text-smoothing.js +70 -4
  671. package/dist/shared/streaming-text-smoothing.js.map +1 -1
  672. package/dist/sharing/actions/list-resource-shares.d.ts +24 -1
  673. package/dist/sharing/actions/list-resource-shares.d.ts.map +1 -1
  674. package/dist/sharing/actions/set-resource-visibility.d.ts +8 -1
  675. package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
  676. package/dist/sharing/actions/share-resource.d.ts +12 -1
  677. package/dist/sharing/actions/share-resource.d.ts.map +1 -1
  678. package/dist/sharing/actions/unshare-resource.d.ts +8 -1
  679. package/dist/sharing/actions/unshare-resource.d.ts.map +1 -1
  680. package/dist/sharing/schema.d.ts +10 -10
  681. package/dist/styles/agent-conversation.css +239 -0
  682. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  683. package/dist/templates/default/AGENTS.md +1 -1
  684. package/dist/templates/default/DEVELOPING.md +19 -0
  685. package/dist/templates/default/app/entry.client.tsx +4 -1
  686. package/dist/templates/default/app/entry.server.tsx +4 -56
  687. package/dist/templates/default/app/global.css +3 -2
  688. package/dist/templates/default/app/root.tsx +8 -24
  689. package/dist/templates/default/app/routes/_index.tsx +0 -13
  690. package/dist/templates/default/package.json +6 -5
  691. package/dist/templates/default/tsconfig.json +2 -1
  692. package/dist/templates/starter-shell-sync.spec.ts +118 -0
  693. package/dist/templates/ui-primitives-sync.spec.ts +399 -0
  694. package/dist/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  695. package/dist/terminal/pty-server.js +1 -1
  696. package/dist/terminal/pty-server.js.map +1 -1
  697. package/dist/triggers/dispatcher.js +1 -1
  698. package/dist/triggers/dispatcher.js.map +1 -1
  699. package/dist/usage/store.d.ts.map +1 -1
  700. package/dist/usage/store.js +60 -7
  701. package/dist/usage/store.js.map +1 -1
  702. package/dist/vite/client.d.ts.map +1 -1
  703. package/dist/vite/client.js +44 -12
  704. package/dist/vite/client.js.map +1 -1
  705. package/dist/workspace-files/index.d.ts +4 -0
  706. package/dist/workspace-files/index.d.ts.map +1 -0
  707. package/dist/workspace-files/index.js +4 -0
  708. package/dist/workspace-files/index.js.map +1 -0
  709. package/dist/workspace-files/schema.d.ts +195 -0
  710. package/dist/workspace-files/schema.d.ts.map +1 -0
  711. package/dist/workspace-files/schema.js +48 -0
  712. package/dist/workspace-files/schema.js.map +1 -0
  713. package/dist/workspace-files/store.d.ts +89 -0
  714. package/dist/workspace-files/store.d.ts.map +1 -0
  715. package/dist/workspace-files/store.js +298 -0
  716. package/dist/workspace-files/store.js.map +1 -0
  717. package/dist/workspace-files/tool.d.ts +15 -0
  718. package/dist/workspace-files/tool.d.ts.map +1 -0
  719. package/dist/workspace-files/tool.js +225 -0
  720. package/dist/workspace-files/tool.js.map +1 -0
  721. package/docs/content/a2a-protocol.md +18 -12
  722. package/docs/content/actions.md +42 -10
  723. package/docs/content/agent-mentions.md +7 -8
  724. package/docs/content/agent-teams.md +23 -37
  725. package/docs/content/agent-web-surfaces.md +18 -9
  726. package/docs/content/authentication.md +6 -17
  727. package/docs/content/automations.md +43 -15
  728. package/docs/content/cli-adapters.md +25 -24
  729. package/docs/content/client.md +66 -17
  730. package/docs/content/cloneable-saas.md +19 -23
  731. package/docs/content/code-agents-ui.md +3 -31
  732. package/docs/content/components.md +308 -0
  733. package/docs/content/context-awareness.md +4 -0
  734. package/docs/content/creating-templates.md +4 -2
  735. package/docs/content/cross-app-sso.md +45 -19
  736. package/docs/content/database.md +26 -1
  737. package/docs/content/deployment.md +3 -1
  738. package/docs/content/dispatch.md +9 -37
  739. package/docs/content/drop-in-agent.md +123 -2
  740. package/docs/content/embedding-sdk.md +35 -0
  741. package/docs/content/extensions.md +2 -2
  742. package/docs/content/external-agents.md +86 -171
  743. package/docs/content/faq.md +6 -27
  744. package/docs/content/frames.md +9 -12
  745. package/docs/content/getting-started.md +80 -77
  746. package/docs/content/key-concepts.md +29 -19
  747. package/docs/content/mcp-apps.md +103 -0
  748. package/docs/content/mcp-clients.md +2 -2
  749. package/docs/content/mcp-protocol.md +40 -17
  750. package/docs/content/messaging.md +11 -4
  751. package/docs/content/migration-workbench.md +4 -47
  752. package/docs/content/multi-app-workspace.md +48 -17
  753. package/docs/content/multi-tenancy.md +1 -1
  754. package/docs/content/notifications.md +8 -6
  755. package/docs/content/observability.md +26 -15
  756. package/docs/content/onboarding.md +7 -1
  757. package/docs/content/pr-visual-recap.md +203 -23
  758. package/docs/content/progress.md +5 -5
  759. package/docs/content/pure-agent-apps.md +3 -1
  760. package/docs/content/real-time-collaboration.md +106 -0
  761. package/docs/content/recurring-jobs.md +17 -1
  762. package/docs/content/security.md +17 -3
  763. package/docs/content/server.md +39 -3
  764. package/docs/content/sharing.md +20 -1
  765. package/docs/content/skills-guide.md +151 -125
  766. package/docs/content/template-analytics.md +8 -0
  767. package/docs/content/template-assets.md +2 -0
  768. package/docs/content/template-brain.md +59 -3
  769. package/docs/content/template-calendar.md +8 -0
  770. package/docs/content/template-clips.md +11 -2
  771. package/docs/content/template-content.md +24 -4
  772. package/docs/content/template-design.md +19 -17
  773. package/docs/content/template-dispatch.md +2 -0
  774. package/docs/content/template-forms.md +28 -1
  775. package/docs/content/template-mail.md +17 -0
  776. package/docs/content/template-plan.md +177 -10
  777. package/docs/content/template-slides.md +51 -12
  778. package/docs/content/template-videos.md +17 -0
  779. package/docs/content/tracking.md +17 -13
  780. package/docs/content/using-your-agent.md +15 -5
  781. package/docs/content/voice-input.md +1 -1
  782. package/docs/content/what-is-agent-native.md +5 -6
  783. package/docs/content/workspace-connections.md +138 -424
  784. package/docs/content/workspace-management.md +12 -128
  785. package/docs/content/workspace.md +125 -199
  786. package/docs/content/writing-agent-instructions.md +17 -1
  787. package/package.json +26 -6
  788. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  789. package/src/templates/default/AGENTS.md +1 -1
  790. package/src/templates/default/DEVELOPING.md +19 -0
  791. package/src/templates/default/app/entry.client.tsx +4 -1
  792. package/src/templates/default/app/entry.server.tsx +4 -56
  793. package/src/templates/default/app/global.css +3 -2
  794. package/src/templates/default/app/root.tsx +8 -24
  795. package/src/templates/default/app/routes/_index.tsx +0 -13
  796. package/src/templates/default/package.json +6 -5
  797. package/src/templates/default/tsconfig.json +2 -1
  798. package/src/templates/starter-shell-sync.spec.ts +118 -0
  799. package/src/templates/ui-primitives-sync.spec.ts +399 -0
  800. package/src/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +50 -2
  801. package/tsconfig.base.json +2 -10
  802. package/dist/cli/app-skill.d.ts +0 -157
  803. package/dist/cli/app-skill.d.ts.map +0 -1
  804. package/dist/cli/audit-agent-web.d.ts +0 -2
  805. package/dist/cli/audit-agent-web.d.ts.map +0 -1
  806. package/dist/cli/code-agent-connector.d.ts +0 -17
  807. package/dist/cli/code-agent-connector.d.ts.map +0 -1
  808. package/dist/cli/code.d.ts +0 -66
  809. package/dist/cli/code.d.ts.map +0 -1
  810. package/dist/cli/connect.d.ts +0 -140
  811. package/dist/cli/connect.d.ts.map +0 -1
  812. package/dist/cli/context-xray-local.d.ts +0 -16
  813. package/dist/cli/context-xray-local.d.ts.map +0 -1
  814. package/dist/cli/create-workspace.d.ts +0 -8
  815. package/dist/cli/create-workspace.d.ts.map +0 -1
  816. package/dist/cli/index.d.ts +0 -3
  817. package/dist/cli/index.d.ts.map +0 -1
  818. package/dist/cli/info.d.ts +0 -2
  819. package/dist/cli/info.d.ts.map +0 -1
  820. package/dist/cli/mcp-config-writers.d.ts +0 -82
  821. package/dist/cli/mcp-config-writers.d.ts.map +0 -1
  822. package/dist/cli/mcp.d.ts +0 -16
  823. package/dist/cli/mcp.d.ts.map +0 -1
  824. package/dist/cli/migrate.d.ts +0 -38
  825. package/dist/cli/migrate.d.ts.map +0 -1
  826. package/dist/cli/plan-local.d.ts +0 -43
  827. package/dist/cli/plan-local.d.ts.map +0 -1
  828. package/dist/cli/plan-publish-store.d.ts +0 -62
  829. package/dist/cli/plan-publish-store.d.ts.map +0 -1
  830. package/dist/cli/pr-visual-recap-workflow.d.ts +0 -11
  831. package/dist/cli/pr-visual-recap-workflow.d.ts.map +0 -1
  832. package/dist/cli/recap.d.ts +0 -297
  833. package/dist/cli/recap.d.ts.map +0 -1
  834. package/dist/cli/skills.d.ts +0 -162
  835. package/dist/cli/skills.d.ts.map +0 -1
  836. package/dist/cli/workspace-dev.d.ts +0 -96
  837. package/dist/cli/workspace-dev.d.ts.map +0 -1
@@ -1,7 +1,25 @@
1
1
  export declare const SMOOTH_STREAMING_COMMIT_INTERVAL_MS = 16;
2
2
  export declare const SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES = 640;
3
3
  export declare const SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES = 180;
4
+ /**
5
+ * Split `text` into grapheme clusters.
6
+ *
7
+ * Results are cached: when `text` is an append of a previously segmented
8
+ * string, only the appended suffix is segmented (plus a small overlap) and
9
+ * merged with the cached result, making this O(delta) instead of O(n) per
10
+ * call.
11
+ *
12
+ * When the new text is not a prefix-extension of the cache (e.g. a full reset
13
+ * or non-append change) we fall back to full segmentation and reset the cache.
14
+ */
4
15
  export declare function splitStreamingTextGraphemes(text: string): string[];
16
+ /**
17
+ * Reset the incremental segmentation cache. Call this when switching to a
18
+ * new message so the cache from the previous message isn't carried over.
19
+ * (Not strictly necessary for correctness — the cache is keyed on content —
20
+ * but avoids holding a reference to the last message's text string.)
21
+ */
22
+ export declare function resetSegmenterCache(): void;
5
23
  export declare function initialSmoothStreamingGraphemeCount(graphemes: readonly string[]): number;
6
24
  export declare function smoothStreamingRevealCount({ backlog, elapsedMs, inputDone, }: {
7
25
  backlog: number;
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-text-smoothing.d.ts","sourceRoot":"","sources":["../../src/shared/streaming-text-smoothing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,KAAK,CAAC;AACtD,eAAO,MAAM,8CAA8C,MAAM,CAAC;AAClE,eAAO,MAAM,yCAAyC,MAAM,CAAC;AAW7D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWlE;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CASR;AAED,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,EACP,SAAS,EACT,SAAiB,GAClB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,MAAM,CAqBT;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,GACd,MAAM,CAkBR"}
1
+ {"version":3,"file":"streaming-text-smoothing.d.ts","sourceRoot":"","sources":["../../src/shared/streaming-text-smoothing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mCAAmC,KAAK,CAAC;AACtD,eAAO,MAAM,8CAA8C,MAAM,CAAC;AAClE,eAAO,MAAM,yCAAyC,MAAM,CAAC;AA2C7D;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA6ClE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,CASR;AAED,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,EACP,SAAS,EACT,SAAiB,GAClB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,MAAM,CAqBT;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,MAAM,GACd,MAAM,CAkBR"}
@@ -1,13 +1,79 @@
1
1
  export const SMOOTH_STREAMING_COMMIT_INTERVAL_MS = 16;
2
2
  export const SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES = 640;
3
3
  export const SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES = 180;
4
- export function splitStreamingTextGraphemes(text) {
4
+ // Module-level singleton Segmenter instance — creating a new Segmenter on every
5
+ // call was previously the hot path cost (allocation + engine init per chunk).
6
+ let _segmenter = undefined; // undefined = not yet checked
7
+ function getSegmenter() {
8
+ if (_segmenter !== undefined)
9
+ return _segmenter;
5
10
  const Segmenter = Intl
6
11
  .Segmenter;
7
- if (Segmenter) {
8
- return Array.from(new Segmenter(undefined, { granularity: "grapheme" }).segment(text), (entry) => entry.segment);
12
+ _segmenter = Segmenter
13
+ ? new Segmenter(undefined, { granularity: "grapheme" })
14
+ : null;
15
+ return _segmenter;
16
+ }
17
+ /**
18
+ * Incremental segmentation cache. Instead of re-segmenting the full target
19
+ * text on every frame, we extend the cached grapheme array by only segmenting
20
+ * newly appended text.
21
+ *
22
+ * Because multi-byte grapheme clusters (emoji, ZWJ sequences) can straddle a
23
+ * chunk boundary we re-segment the last OVERLAP characters of the previous text
24
+ * together with the new suffix, then splice the results in.
25
+ */
26
+ const SEGMENTER_OVERLAP = 16; // chars — safely covers any real grapheme cluster
27
+ let _segCache = null;
28
+ /**
29
+ * Split `text` into grapheme clusters.
30
+ *
31
+ * Results are cached: when `text` is an append of a previously segmented
32
+ * string, only the appended suffix is segmented (plus a small overlap) and
33
+ * merged with the cached result, making this O(delta) instead of O(n) per
34
+ * call.
35
+ *
36
+ * When the new text is not a prefix-extension of the cache (e.g. a full reset
37
+ * or non-append change) we fall back to full segmentation and reset the cache.
38
+ */
39
+ export function splitStreamingTextGraphemes(text) {
40
+ const segmenter = getSegmenter();
41
+ if (!segmenter) {
42
+ return Array.from(text);
9
43
  }
10
- return Array.from(text);
44
+ // Fast path: exact cache hit
45
+ if (_segCache && _segCache.text === text) {
46
+ return _segCache.graphemes;
47
+ }
48
+ // Incremental path: new text extends the cached text
49
+ if (_segCache && text.startsWith(_segCache.text)) {
50
+ const prevLen = _segCache.text.length;
51
+ // Re-segment from (prevLen - OVERLAP) to include the overlap so any
52
+ // grapheme that was split across the boundary is correctly re-assembled.
53
+ const overlapStart = Math.max(0, prevLen - SEGMENTER_OVERLAP);
54
+ const suffix = text.slice(overlapStart);
55
+ const newGraphemes = Array.from(segmenter.segment(suffix), (entry) => entry.segment);
56
+ // Drop graphemes that correspond to the overlap region from the cache so
57
+ // we don't double-count them.
58
+ const overlapGraphemes = Array.from(segmenter.segment(text.slice(overlapStart, prevLen)), (entry) => entry.segment);
59
+ const stableGraphemes = _segCache.graphemes.slice(0, _segCache.graphemes.length - overlapGraphemes.length);
60
+ const merged = stableGraphemes.concat(newGraphemes);
61
+ _segCache = { text, graphemes: merged };
62
+ return merged;
63
+ }
64
+ // Full fallback: text is not an append of cached text (reset or replacement)
65
+ const graphemes = Array.from(segmenter.segment(text), (entry) => entry.segment);
66
+ _segCache = { text, graphemes };
67
+ return graphemes;
68
+ }
69
+ /**
70
+ * Reset the incremental segmentation cache. Call this when switching to a
71
+ * new message so the cache from the previous message isn't carried over.
72
+ * (Not strictly necessary for correctness — the cache is keyed on content —
73
+ * but avoids holding a reference to the last message's text string.)
74
+ */
75
+ export function resetSegmenterCache() {
76
+ _segCache = null;
11
77
  }
12
78
  export function initialSmoothStreamingGraphemeCount(graphemes) {
13
79
  if (graphemes.length <= SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES) {
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-text-smoothing.js","sourceRoot":"","sources":["../../src/shared/streaming-text-smoothing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,8CAA8C,GAAG,GAAG,CAAC;AAClE,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,CAAC;AAW7D,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,MAAM,SAAS,GAAI,IAA2D;SAC3E,SAAS,CAAC;IACb,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EACnE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CACzB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,SAA4B;IAE5B,IAAI,SAAS,CAAC,MAAM,IAAI,8CAA8C,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,SAAS,CAAC,MAAM,GAAG,yCAAyC,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EACzC,OAAO,EACP,SAAS,EACT,SAAS,GAAG,KAAK,GAKlB;IACC,IAAI,OAAO,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,mBAAmB,GAAG,SAAS;QACnC,CAAC,CAAC,OAAO,GAAG,GAAG;YACb,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG;QACP,CAAC,CAAC,OAAO,GAAG,IAAI;YACd,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,OAAO,GAAG,GAAG;gBACb,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,OAAO,GAAG,GAAG;oBACb,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAEnE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,QAA4B,EAC5B,OAAe;IAEf,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC","sourcesContent":["export const SMOOTH_STREAMING_COMMIT_INTERVAL_MS = 16;\nexport const SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES = 640;\nexport const SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES = 180;\n\ntype SegmenterInstance = {\n segment(input: string): Iterable<{ segment: string }>;\n};\n\ntype SegmenterConstructor = new (\n locales?: string | string[],\n options?: { granularity?: \"grapheme\" },\n) => SegmenterInstance;\n\nexport function splitStreamingTextGraphemes(text: string): string[] {\n const Segmenter = (Intl as typeof Intl & { Segmenter?: SegmenterConstructor })\n .Segmenter;\n if (Segmenter) {\n return Array.from(\n new Segmenter(undefined, { granularity: \"grapheme\" }).segment(text),\n (entry) => entry.segment,\n );\n }\n\n return Array.from(text);\n}\n\nexport function initialSmoothStreamingGraphemeCount(\n graphemes: readonly string[],\n): number {\n if (graphemes.length <= SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES) {\n return 0;\n }\n\n return Math.max(\n 0,\n graphemes.length - SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES,\n );\n}\n\nexport function smoothStreamingRevealCount({\n backlog,\n elapsedMs,\n inputDone = false,\n}: {\n backlog: number;\n elapsedMs: number;\n inputDone?: boolean;\n}): number {\n if (backlog <= 0 || elapsedMs <= 0) {\n return 0;\n }\n\n const charactersPerSecond = inputDone\n ? backlog > 800\n ? 900\n : 420\n : backlog > 1400\n ? 640\n : backlog > 520\n ? 360\n : backlog > 180\n ? 190\n : 95;\n\n const maxBurst = inputDone ? 160 : backlog > 1400 ? 120 : 72;\n const count = Math.floor((elapsedMs / 1000) * charactersPerSecond);\n\n return Math.min(backlog, Math.max(1, count), maxBurst);\n}\n\nexport function smoothStreamingPunctuationDelayMs(\n grapheme: string | undefined,\n backlog: number,\n): number {\n if (!grapheme || backlog > 220) {\n return 0;\n }\n\n if (grapheme === \"\\n\") {\n return 80;\n }\n\n if (/[.!?)]/.test(grapheme)) {\n return 70;\n }\n\n if (/[,;:]/.test(grapheme)) {\n return 35;\n }\n\n return 0;\n}\n"]}
1
+ {"version":3,"file":"streaming-text-smoothing.js","sourceRoot":"","sources":["../../src/shared/streaming-text-smoothing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,8CAA8C,GAAG,GAAG,CAAC;AAClE,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,CAAC;AAW7D,gFAAgF;AAChF,8EAA8E;AAC9E,IAAI,UAAU,GAAyC,SAAS,CAAC,CAAC,8BAA8B;AAEhG,SAAS,YAAY;IACnB,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,MAAM,SAAS,GAAI,IAA2D;SAC3E,SAAS,CAAC;IACb,UAAU,GAAG,SAAS;QACpB,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QACvD,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC,CAAC,kDAAkD;AAOhF,IAAI,SAAS,GAA0B,IAAI,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,6BAA6B;IAC7B,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED,qDAAqD;IACrD,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EACzB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CACzB,CAAC;QACF,yEAAyE;QACzE,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACjC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,EACpD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CACzB,CAAC;QACF,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAC/C,CAAC,EACD,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CACrD,CAAC;QACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CACzB,CAAC;IACF,SAAS,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAChC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,SAA4B;IAE5B,IAAI,SAAS,CAAC,MAAM,IAAI,8CAA8C,EAAE,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,EACD,SAAS,CAAC,MAAM,GAAG,yCAAyC,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EACzC,OAAO,EACP,SAAS,EACT,SAAS,GAAG,KAAK,GAKlB;IACC,IAAI,OAAO,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,mBAAmB,GAAG,SAAS;QACnC,CAAC,CAAC,OAAO,GAAG,GAAG;YACb,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG;QACP,CAAC,CAAC,OAAO,GAAG,IAAI;YACd,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,OAAO,GAAG,GAAG;gBACb,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,OAAO,GAAG,GAAG;oBACb,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,EAAE,CAAC;IAEb,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAEnE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,QAA4B,EAC5B,OAAe;IAEf,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC","sourcesContent":["export const SMOOTH_STREAMING_COMMIT_INTERVAL_MS = 16;\nexport const SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES = 640;\nexport const SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES = 180;\n\ntype SegmenterInstance = {\n segment(input: string): Iterable<{ segment: string }>;\n};\n\ntype SegmenterConstructor = new (\n locales?: string | string[],\n options?: { granularity?: \"grapheme\" },\n) => SegmenterInstance;\n\n// Module-level singleton Segmenter instance — creating a new Segmenter on every\n// call was previously the hot path cost (allocation + engine init per chunk).\nlet _segmenter: SegmenterInstance | null | undefined = undefined; // undefined = not yet checked\n\nfunction getSegmenter(): SegmenterInstance | null {\n if (_segmenter !== undefined) return _segmenter;\n const Segmenter = (Intl as typeof Intl & { Segmenter?: SegmenterConstructor })\n .Segmenter;\n _segmenter = Segmenter\n ? new Segmenter(undefined, { granularity: \"grapheme\" })\n : null;\n return _segmenter;\n}\n\n/**\n * Incremental segmentation cache. Instead of re-segmenting the full target\n * text on every frame, we extend the cached grapheme array by only segmenting\n * newly appended text.\n *\n * Because multi-byte grapheme clusters (emoji, ZWJ sequences) can straddle a\n * chunk boundary we re-segment the last OVERLAP characters of the previous text\n * together with the new suffix, then splice the results in.\n */\nconst SEGMENTER_OVERLAP = 16; // chars — safely covers any real grapheme cluster\n\ninterface SegmenterCache {\n text: string;\n graphemes: string[];\n}\n\nlet _segCache: SegmenterCache | null = null;\n\n/**\n * Split `text` into grapheme clusters.\n *\n * Results are cached: when `text` is an append of a previously segmented\n * string, only the appended suffix is segmented (plus a small overlap) and\n * merged with the cached result, making this O(delta) instead of O(n) per\n * call.\n *\n * When the new text is not a prefix-extension of the cache (e.g. a full reset\n * or non-append change) we fall back to full segmentation and reset the cache.\n */\nexport function splitStreamingTextGraphemes(text: string): string[] {\n const segmenter = getSegmenter();\n\n if (!segmenter) {\n return Array.from(text);\n }\n\n // Fast path: exact cache hit\n if (_segCache && _segCache.text === text) {\n return _segCache.graphemes;\n }\n\n // Incremental path: new text extends the cached text\n if (_segCache && text.startsWith(_segCache.text)) {\n const prevLen = _segCache.text.length;\n // Re-segment from (prevLen - OVERLAP) to include the overlap so any\n // grapheme that was split across the boundary is correctly re-assembled.\n const overlapStart = Math.max(0, prevLen - SEGMENTER_OVERLAP);\n const suffix = text.slice(overlapStart);\n const newGraphemes = Array.from(\n segmenter.segment(suffix),\n (entry) => entry.segment,\n );\n // Drop graphemes that correspond to the overlap region from the cache so\n // we don't double-count them.\n const overlapGraphemes = Array.from(\n segmenter.segment(text.slice(overlapStart, prevLen)),\n (entry) => entry.segment,\n );\n const stableGraphemes = _segCache.graphemes.slice(\n 0,\n _segCache.graphemes.length - overlapGraphemes.length,\n );\n const merged = stableGraphemes.concat(newGraphemes);\n _segCache = { text, graphemes: merged };\n return merged;\n }\n\n // Full fallback: text is not an append of cached text (reset or replacement)\n const graphemes = Array.from(\n segmenter.segment(text),\n (entry) => entry.segment,\n );\n _segCache = { text, graphemes };\n return graphemes;\n}\n\n/**\n * Reset the incremental segmentation cache. Call this when switching to a\n * new message so the cache from the previous message isn't carried over.\n * (Not strictly necessary for correctness — the cache is keyed on content —\n * but avoids holding a reference to the last message's text string.)\n */\nexport function resetSegmenterCache(): void {\n _segCache = null;\n}\n\nexport function initialSmoothStreamingGraphemeCount(\n graphemes: readonly string[],\n): number {\n if (graphemes.length <= SMOOTH_STREAMING_LONG_TEXT_THRESHOLD_GRAPHEMES) {\n return 0;\n }\n\n return Math.max(\n 0,\n graphemes.length - SMOOTH_STREAMING_LONG_TEXT_TAIL_GRAPHEMES,\n );\n}\n\nexport function smoothStreamingRevealCount({\n backlog,\n elapsedMs,\n inputDone = false,\n}: {\n backlog: number;\n elapsedMs: number;\n inputDone?: boolean;\n}): number {\n if (backlog <= 0 || elapsedMs <= 0) {\n return 0;\n }\n\n const charactersPerSecond = inputDone\n ? backlog > 800\n ? 900\n : 420\n : backlog > 1400\n ? 640\n : backlog > 520\n ? 360\n : backlog > 180\n ? 190\n : 95;\n\n const maxBurst = inputDone ? 160 : backlog > 1400 ? 120 : 72;\n const count = Math.floor((elapsedMs / 1000) * charactersPerSecond);\n\n return Math.min(backlog, Math.max(1, count), maxBurst);\n}\n\nexport function smoothStreamingPunctuationDelayMs(\n grapheme: string | undefined,\n backlog: number,\n): number {\n if (!grapheme || backlog > 220) {\n return 0;\n }\n\n if (grapheme === \"\\n\") {\n return 80;\n }\n\n if (/[.!?)]/.test(grapheme)) {\n return 70;\n }\n\n if (/[,;:]/.test(grapheme)) {\n return 35;\n }\n\n return 0;\n}\n"]}
@@ -1,3 +1,26 @@
1
- declare const _default: any;
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ resourceType: string;
3
+ resourceId: string;
4
+ }, {
5
+ ownerEmail: null;
6
+ visibility: null;
7
+ shares: never[];
8
+ policy: {
9
+ allowPublic: boolean;
10
+ requireOrgMemberForUserShares: boolean;
11
+ };
12
+ orgId?: undefined;
13
+ role?: undefined;
14
+ } | {
15
+ ownerEmail: any;
16
+ orgId: any;
17
+ visibility: any;
18
+ role: "owner" | import("../schema.js").ShareRole;
19
+ shares: any;
20
+ policy: {
21
+ allowPublic: boolean;
22
+ requireOrgMemberForUserShares: boolean;
23
+ };
24
+ }>;
2
25
  export default _default;
3
26
  //# sourceMappingURL=list-resource-shares.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-resource-shares.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/list-resource-shares.ts"],"names":[],"mappings":";AAMA,wBAyCG"}
1
+ {"version":3,"file":"list-resource-shares.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/list-resource-shares.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBAyCG"}
@@ -1,3 +1,10 @@
1
- declare const _default: any;
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ resourceType: string;
3
+ resourceId: string;
4
+ visibility: "org" | "private" | "public";
5
+ }, {
6
+ ok: boolean;
7
+ visibility: "org" | "private" | "public";
8
+ }>;
2
9
  export default _default;
3
10
  //# sourceMappingURL=set-resource-visibility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-resource-visibility.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/set-resource-visibility.ts"],"names":[],"mappings":";AAeA,wBA2DG"}
1
+ {"version":3,"file":"set-resource-visibility.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/set-resource-visibility.ts"],"names":[],"mappings":";;;;;;;;AAeA,wBA2DG"}
@@ -1,5 +1,16 @@
1
1
  export declare function isSyntheticQaEmail(email: string): boolean;
2
2
  export declare function resolveShareNotificationUrl(explicitUrl: string | undefined, fallbackPath: string | undefined, appUrl?: string): string;
3
- declare const _default: any;
3
+ declare const _default: import("../../action.js").ActionDefinition<{
4
+ resourceType: string;
5
+ resourceId: string;
6
+ principalType: "user" | "org";
7
+ principalId: string;
8
+ role?: "editor" | "admin" | "viewer" | undefined;
9
+ notify?: boolean | undefined;
10
+ resourceUrl?: string | undefined;
11
+ }, {
12
+ id: any;
13
+ updated: boolean;
14
+ }>;
4
15
  export default _default;
5
16
  //# sourceMappingURL=share-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"share-resource.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/share-resource.ts"],"names":[],"mappings":"AAeA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAazD;AAwCD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,SAAwB,GAC7B,MAAM,CAOR;;AAwCD,wBAsKG"}
1
+ {"version":3,"file":"share-resource.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/share-resource.ts"],"names":[],"mappings":"AAeA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAazD;AAwCD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,SAAwB,GAC7B,MAAM,CAOR;;;;;;;;;;;;;AAwCD,wBAsKG"}
@@ -1,3 +1,10 @@
1
- declare const _default: any;
1
+ declare const _default: import("../../action.js").ActionDefinition<{
2
+ resourceType: string;
3
+ resourceId: string;
4
+ principalType: "user" | "org";
5
+ principalId: string;
6
+ }, {
7
+ ok: boolean;
8
+ }>;
2
9
  export default _default;
3
10
  //# sourceMappingURL=unshare-resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unshare-resource.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/unshare-resource.ts"],"names":[],"mappings":";AAUA,wBAmCG"}
1
+ {"version":3,"file":"unshare-resource.d.ts","sourceRoot":"","sources":["../../../src/sharing/actions/unshare-resource.ts"],"names":[],"mappings":";;;;;;;;AAUA,wBAmCG"}
@@ -31,9 +31,9 @@
31
31
  * - `visibility`— coarse default: `'private' | 'org' | 'public'`. Default `'private'`.
32
32
  */
33
33
  export declare function ownableColumns(): {
34
- ownerEmail: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"owner_email", [string, ...string[]], number>>>;
35
- orgId: import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"org_id", [string, ...string[]], number>;
36
- visibility: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"visibility", ["private", "org", "public"], number>>>;
34
+ ownerEmail: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"owner_email", [string, ...string[]], number | undefined>>>;
35
+ orgId: import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"org_id", [string, ...string[]], number | undefined>;
36
+ visibility: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"visibility", ["private", "org", "public"], number | undefined>>>;
37
37
  };
38
38
  /**
39
39
  * Create a companion shares table for an ownable resource. Call this right
@@ -74,7 +74,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
74
74
  identity: undefined;
75
75
  generated: undefined;
76
76
  }, {}, {
77
- length: number;
77
+ length: number | undefined;
78
78
  }>;
79
79
  resourceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
80
80
  name: "resource_id";
@@ -93,7 +93,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
93
93
  identity: undefined;
94
94
  generated: undefined;
95
95
  }, {}, {
96
- length: number;
96
+ length: number | undefined;
97
97
  }>;
98
98
  principalType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
99
99
  name: "principal_type";
@@ -112,7 +112,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
112
112
  identity: undefined;
113
113
  generated: undefined;
114
114
  }, {}, {
115
- length: number;
115
+ length: number | undefined;
116
116
  }>;
117
117
  principalId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
118
  name: "principal_id";
@@ -131,7 +131,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
131
131
  identity: undefined;
132
132
  generated: undefined;
133
133
  }, {}, {
134
- length: number;
134
+ length: number | undefined;
135
135
  }>;
136
136
  role: import("drizzle-orm/sqlite-core").SQLiteColumn<{
137
137
  name: "role";
@@ -150,7 +150,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
150
150
  identity: undefined;
151
151
  generated: undefined;
152
152
  }, {}, {
153
- length: number;
153
+ length: number | undefined;
154
154
  }>;
155
155
  createdBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
156
156
  name: "created_by";
@@ -169,7 +169,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
169
169
  identity: undefined;
170
170
  generated: undefined;
171
171
  }, {}, {
172
- length: number;
172
+ length: number | undefined;
173
173
  }>;
174
174
  createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
175
175
  name: "created_at";
@@ -188,7 +188,7 @@ export declare function createSharesTable(tableName: string): import("drizzle-or
188
188
  identity: undefined;
189
189
  generated: undefined;
190
190
  }, {}, {
191
- length: number;
191
+ length: number | undefined;
192
192
  }>;
193
193
  };
194
194
  dialect: "sqlite";
@@ -454,3 +454,242 @@
454
454
  transform: rotate(360deg);
455
455
  }
456
456
  }
457
+
458
+ /* ─── Agent-Markdown (AssistantChat react-markdown render surface) ─────────── */
459
+ /* These classes are applied by the SmoothMarkdownText/MarkdownText components */
460
+ /* in the AssistantChat/AssistantChatInner tree. The shiki dual-theme rules */
461
+ /* follow the same .dark / @media pattern used above for agent-conversation. */
462
+
463
+ .agent-markdown > :first-child {
464
+ margin-top: 0;
465
+ }
466
+
467
+ .agent-markdown > :last-child {
468
+ margin-bottom: 0;
469
+ }
470
+
471
+ .agent-markdown p {
472
+ margin: 0.5em 0;
473
+ }
474
+
475
+ .agent-markdown ul,
476
+ .agent-markdown ol {
477
+ margin: 0.5em 0;
478
+ padding-left: 1.5em;
479
+ }
480
+
481
+ .agent-markdown li {
482
+ margin: 0.2em 0;
483
+ }
484
+
485
+ .agent-markdown li > p {
486
+ margin: 0;
487
+ }
488
+
489
+ .agent-markdown h1 {
490
+ font-size: 1.25em;
491
+ font-weight: 600;
492
+ margin: 0.75em 0 0.25em;
493
+ }
494
+
495
+ .agent-markdown h2 {
496
+ font-size: 1.125em;
497
+ font-weight: 600;
498
+ margin: 0.75em 0 0.25em;
499
+ }
500
+
501
+ .agent-markdown h3 {
502
+ font-size: 1em;
503
+ font-weight: 600;
504
+ margin: 0.75em 0 0.25em;
505
+ }
506
+
507
+ .agent-markdown strong {
508
+ font-weight: 600;
509
+ }
510
+
511
+ .agent-markdown em {
512
+ font-style: italic;
513
+ }
514
+
515
+ .agent-markdown code {
516
+ font-size: 0.875em;
517
+ padding: 0.15em 0.35em;
518
+ border-radius: 0.25em;
519
+ background: hsl(var(--muted, 0 0% 15%));
520
+ color: hsl(var(--foreground, 0 0% 90%));
521
+ border: 1px solid hsl(var(--border, 0 0% 80%));
522
+ }
523
+
524
+ .agent-markdown pre {
525
+ margin: 0.5em 0;
526
+ padding: 0.75em 1em;
527
+ border-radius: 0.375em;
528
+ background: hsl(var(--muted, 0 0% 15%));
529
+ color: hsl(var(--foreground, 0 0% 90%));
530
+ overflow-x: auto;
531
+ border: 1px solid hsl(var(--border, 0 0% 80%));
532
+ }
533
+
534
+ .agent-markdown pre code {
535
+ padding: 0;
536
+ background: transparent;
537
+ font-size: 0.8125em;
538
+ color: inherit;
539
+ border: none;
540
+ }
541
+
542
+ .agent-markdown hr {
543
+ border: none;
544
+ border-top: 1px solid hsl(var(--border, 0 0% 20%));
545
+ margin: 0.75em 0 1em;
546
+ }
547
+
548
+ .agent-markdown a {
549
+ text-decoration: underline;
550
+ text-underline-offset: 2px;
551
+ }
552
+
553
+ .agent-markdown a.agent-markdown-cta {
554
+ text-decoration: none;
555
+ }
556
+
557
+ .agent-markdown blockquote {
558
+ border-left: 2px solid hsl(var(--border, 0 0% 20%));
559
+ padding-left: 0.75em;
560
+ margin: 0.5em 0;
561
+ opacity: 0.8;
562
+ }
563
+
564
+ .agent-markdown table {
565
+ border-collapse: collapse;
566
+ margin: 0.5em 0;
567
+ font-size: 0.875em;
568
+ }
569
+
570
+ .agent-markdown th,
571
+ .agent-markdown td {
572
+ border: 1px solid hsl(var(--border, 0 0% 20%));
573
+ padding: 0.35em 0.65em;
574
+ text-align: left;
575
+ }
576
+
577
+ .agent-markdown th {
578
+ font-weight: 600;
579
+ background: hsl(var(--muted, 0 0% 15%));
580
+ color: hsl(var(--foreground, 0 0% 90%));
581
+ }
582
+
583
+ /* Streaming caret appended after last non-code paragraph while text is live. */
584
+ .agent-markdown[data-streaming="true"]
585
+ > :last-child:not(pre):not(table)::after {
586
+ content: "";
587
+ display: inline-block;
588
+ width: 0.42em;
589
+ height: 1em;
590
+ margin-left: 0.12em;
591
+ border-radius: 999px;
592
+ background: currentColor;
593
+ opacity: 0.35;
594
+ transform: translateY(0.16em);
595
+ animation: agent-markdown-stream-caret 1.15s ease-in-out infinite;
596
+ }
597
+
598
+ @keyframes agent-markdown-stream-caret {
599
+ 0%,
600
+ 100% {
601
+ opacity: 0.2;
602
+ }
603
+ 50% {
604
+ opacity: 0.58;
605
+ }
606
+ }
607
+
608
+ @media (prefers-reduced-motion: reduce) {
609
+ .agent-markdown[data-streaming="true"]
610
+ > :last-child:not(pre):not(table)::after {
611
+ animation: none;
612
+ opacity: 0.28;
613
+ }
614
+ }
615
+
616
+ /* Shiki-highlighted code blocks inside agent-markdown replies. */
617
+ .agent-markdown-shiki {
618
+ margin: 0.5em 0;
619
+ border-radius: 0.375em;
620
+ overflow: hidden;
621
+ font-size: 0.8125em;
622
+ }
623
+
624
+ .agent-markdown-shiki pre {
625
+ margin: 0;
626
+ padding: 0.75em 1em;
627
+ overflow-x: auto;
628
+ background: var(--shiki-light-bg);
629
+ color: var(--shiki-light);
630
+ }
631
+
632
+ .agent-markdown-shiki pre code {
633
+ background: transparent;
634
+ padding: 0;
635
+ font-size: inherit;
636
+ color: inherit;
637
+ }
638
+
639
+ .agent-markdown-shiki pre span {
640
+ color: var(--shiki-light);
641
+ background: var(--shiki-light-bg);
642
+ }
643
+
644
+ .dark .agent-markdown-shiki pre {
645
+ background: var(--shiki-dark-bg);
646
+ color: var(--shiki-dark);
647
+ }
648
+
649
+ .dark .agent-markdown-shiki pre span {
650
+ color: var(--shiki-dark);
651
+ background: var(--shiki-dark-bg);
652
+ }
653
+
654
+ @media (prefers-color-scheme: dark) {
655
+ :root:not(.light) .agent-markdown-shiki pre {
656
+ background: var(--shiki-dark-bg);
657
+ color: var(--shiki-dark);
658
+ }
659
+
660
+ :root:not(.light) .agent-markdown-shiki pre span {
661
+ color: var(--shiki-dark);
662
+ background: var(--shiki-dark-bg);
663
+ }
664
+ }
665
+
666
+ /* Tool-code viewer that uses shiki inside the ToolDetailViewer. */
667
+ .agent-tool-code .agent-markdown-shiki {
668
+ margin: 0;
669
+ border-radius: 0;
670
+ min-width: max-content;
671
+ }
672
+
673
+ .agent-tool-code .agent-markdown-shiki pre {
674
+ padding: 0.75rem;
675
+ border: 0;
676
+ background: transparent;
677
+ }
678
+
679
+ .agent-tool-code .agent-markdown-shiki pre span {
680
+ background: transparent;
681
+ }
682
+
683
+ .agent-tool-code pre {
684
+ margin: 0;
685
+ min-width: max-content;
686
+ padding: 0.75rem;
687
+ background: transparent;
688
+ color: inherit;
689
+ }
690
+
691
+ .agent-tool-code mark {
692
+ border-radius: 0.1875rem;
693
+ background: rgba(245, 158, 11, 0.25);
694
+ color: inherit;
695
+ }
@@ -13,7 +13,11 @@ metadata:
13
13
 
14
14
  ## Rule
15
15
 
16
- The UI and server never call an LLM directly. All AI work is delegated to the agent through the chat bridge.
16
+ The UI never calls an LLM directly. Product workflows are delegated to the
17
+ agent through the chat bridge so users can see, steer, and audit the work.
18
+ Server-side one-shot model calls are an explicit escape hatch for narrow text
19
+ transforms only; use `completeText()` from `@agent-native/core/server` when the
20
+ work intentionally does not need tools, chat history, or run state.
17
21
 
18
22
  ## Why
19
23
 
@@ -33,6 +37,24 @@ sendToAgentChat({
33
37
  });
34
38
  ```
35
39
 
40
+ **From the UI, in the background:**
41
+
42
+ ```ts
43
+ import { sendToAgentChat } from "@agent-native/core";
44
+
45
+ sendToAgentChat({
46
+ message: "Analyze this import and create any missing records",
47
+ context: `Import batch id: ${batchId}`,
48
+ submit: true,
49
+ newTab: true,
50
+ background: true,
51
+ openSidebar: false,
52
+ });
53
+ ```
54
+
55
+ This is still a full agent run: tools, actions, thread state, and run tracking
56
+ all remain active. It simply does not focus or open the sidebar.
57
+
36
58
  **From scripts (Node):**
37
59
 
38
60
  ```ts
@@ -41,6 +63,22 @@ import { agentChat } from "@agent-native/core";
41
63
  agentChat.submit("Process the uploaded images and create thumbnails");
42
64
  ```
43
65
 
66
+ **For narrow server-side text transforms:**
67
+
68
+ ```ts
69
+ import { completeText } from "@agent-native/core/server";
70
+
71
+ const result = await completeText({
72
+ systemPrompt: "Return exactly one sentiment label.",
73
+ input: messageBody,
74
+ maxOutputTokens: 12,
75
+ temperature: 0,
76
+ });
77
+ ```
78
+
79
+ Wrap user-facing uses in actions so the UI and agent share the same operation.
80
+ Do not call provider SDKs directly.
81
+
44
82
  **From the UI, detecting when agent is done:**
45
83
 
46
84
  ```ts
@@ -183,10 +221,20 @@ rather than ad-hoc LLM calls.
183
221
  - Don't use AI SDK functions like `generateText()`, `streamText()`, etc.
184
222
  - Don't build "AI features" that bypass the agent chat
185
223
  - Don't auto-submit a hardcoded prompt for generative actions — capture user input first (see above)
224
+ - Don't use `completeText()` for workflows that need tools, database writes,
225
+ auditability, user steering, or multi-step reasoning. Use the agent chat
226
+ instead, optionally with `background: true`.
186
227
 
187
228
  ## Exception
188
229
 
189
- Scripts may call external APIs (image generation, search, etc.) — but the AI reasoning and orchestration still goes through the agent. A script is a tool the agent uses, not a replacement for the agent.
230
+ Scripts may call external APIs (image generation, search, etc.) — but the AI
231
+ reasoning and orchestration still goes through the agent. A script is a tool
232
+ the agent uses, not a replacement for the agent.
233
+
234
+ `completeText()` is allowed for small server-side transforms such as
235
+ classification, extraction, rewriting a short string, or normalizing messy
236
+ provider text. It deliberately runs with `tools: []` and does not create chat
237
+ thread state.
190
238
 
191
239
  ## When to Use A2A Instead
192
240
 
@@ -7,7 +7,7 @@ This is an **@agent-native/core** application -- the AI agent and UI share state
7
7
  ### Core Principles
8
8
 
9
9
  1. **Shared SQL database** -- All app state lives in SQL. Local SQLite at `data/app.db` is the zero-setup dev fallback; deployed apps need a persistent `DATABASE_URL` so data survives container/serverless restarts. Turso is optional, not required: Neon, Supabase, Turso/libSQL, plain Postgres, durable SQLite, D1 bindings, and Builder.io-managed environments are all valid when supported by the deploy. Core stores: `application_state`, `settings`, `oauth_tokens`, `sessions`, `resources`.
10
- 2. **All AI through agent chat** -- No inline LLM calls. UI delegates to the AI via `sendToAgentChat()` / `agentChat.submit()`. Use `sendToAgentChat({ message, context, submit })` for simple UI handoffs and prefill/review flows. Only use the agent-chat context state helpers (`useAgentChatContext`, `setAgentChatContextItem`, `listAgentChatContext`, `removeAgentChatContextItem`, `clearAgentChatContext`) when the UI needs two-way sync with staged context chips.
10
+ 2. **AI through the right framework surface** -- Product workflows delegate to the agent via `sendToAgentChat()` / `agentChat.submit()`. Use `sendToAgentChat({ message, context, submit })` for simple UI handoffs and prefill/review flows; add `newTab: true, background: true, openSidebar: false` when the agent should work silently without focusing the sidebar. Only use the agent-chat context state helpers (`useAgentChatContext`, `setAgentChatContextItem`, `listAgentChatContext`, `removeAgentChatContextItem`, `clearAgentChatContext`) when the UI needs two-way sync with staged context chips. For rare server-side text transforms that intentionally need no tools, chat history, or run state, use `completeText()` from `@agent-native/core/server` inside an action instead of importing provider SDKs directly.
11
11
  3. **Actions for app operations** -- `pnpm action <name>` dispatches to callable action files in `actions/`; `defineAction` also auto-exposes those operations at `/_agent-native/actions/:name` for the UI. Do not create custom REST routes that re-export actions.
12
12
  4. **Live sync keeps the UI current** -- Database writes stream over `/_agent-native/events` first, with `/_agent-native/poll` as the fallback. **When you (the agent) write data, the UI must reflect the change without a manual refresh.** This is non-negotiable. Use `useActionQuery` / `useActionMutation` for action-backed data (preferred). If you use raw `useQuery`, fold `useChangeVersions([<source>, "action"])` into the key for targeted refreshes. See the `real-time-sync` and `adding-a-feature` skills.
13
13
  5. **Agent can update code** -- The agent can modify this app's source code directly.