@agent-native/core 0.7.14 → 0.7.16

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 (803) hide show
  1. package/README.md +56 -6
  2. package/dist/a2a/handlers.d.ts.map +1 -1
  3. package/dist/a2a/handlers.js +149 -24
  4. package/dist/a2a/handlers.js.map +1 -1
  5. package/dist/a2a/server.d.ts.map +1 -1
  6. package/dist/a2a/server.js +180 -51
  7. package/dist/a2a/server.js.map +1 -1
  8. package/dist/a2a/task-store.d.ts +10 -1
  9. package/dist/a2a/task-store.d.ts.map +1 -1
  10. package/dist/a2a/task-store.js +36 -2
  11. package/dist/a2a/task-store.js.map +1 -1
  12. package/dist/action.d.ts +16 -0
  13. package/dist/action.d.ts.map +1 -1
  14. package/dist/action.js +11 -0
  15. package/dist/action.js.map +1 -1
  16. package/dist/agent/default-model.d.ts +21 -0
  17. package/dist/agent/default-model.d.ts.map +1 -0
  18. package/dist/agent/default-model.js +21 -0
  19. package/dist/agent/default-model.js.map +1 -0
  20. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  21. package/dist/agent/engine/ai-sdk-engine.js +7 -4
  22. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  23. package/dist/agent/engine/anthropic-engine.d.ts +1 -1
  24. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  25. package/dist/agent/engine/anthropic-engine.js +10 -4
  26. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  27. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  28. package/dist/agent/engine/builder-engine.js +4 -1
  29. package/dist/agent/engine/builder-engine.js.map +1 -1
  30. package/dist/agent/engine/builtin.js +1 -1
  31. package/dist/agent/engine/builtin.js.map +1 -1
  32. package/dist/agent/engine/registry.d.ts +27 -7
  33. package/dist/agent/engine/registry.d.ts.map +1 -1
  34. package/dist/agent/engine/registry.js +101 -20
  35. package/dist/agent/engine/registry.js.map +1 -1
  36. package/dist/agent/index.d.ts +1 -0
  37. package/dist/agent/index.d.ts.map +1 -1
  38. package/dist/agent/index.js +1 -0
  39. package/dist/agent/index.js.map +1 -1
  40. package/dist/agent/production-agent.d.ts +32 -7
  41. package/dist/agent/production-agent.d.ts.map +1 -1
  42. package/dist/agent/production-agent.js +230 -70
  43. package/dist/agent/production-agent.js.map +1 -1
  44. package/dist/agent/run-manager.d.ts.map +1 -1
  45. package/dist/agent/run-manager.js +0 -3
  46. package/dist/agent/run-manager.js.map +1 -1
  47. package/dist/agent/types.d.ts +0 -4
  48. package/dist/agent/types.d.ts.map +1 -1
  49. package/dist/application-state/handlers.d.ts.map +1 -1
  50. package/dist/application-state/handlers.js +10 -6
  51. package/dist/application-state/handlers.js.map +1 -1
  52. package/dist/application-state/script-helpers.d.ts +1 -1
  53. package/dist/application-state/script-helpers.d.ts.map +1 -1
  54. package/dist/application-state/script-helpers.js +12 -8
  55. package/dist/application-state/script-helpers.js.map +1 -1
  56. package/dist/application-state/store.d.ts.map +1 -1
  57. package/dist/application-state/store.js +19 -10
  58. package/dist/application-state/store.js.map +1 -1
  59. package/dist/chat-threads/store.d.ts.map +1 -1
  60. package/dist/chat-threads/store.js +4 -1
  61. package/dist/chat-threads/store.js.map +1 -1
  62. package/dist/cli/create.d.ts +3 -1
  63. package/dist/cli/create.d.ts.map +1 -1
  64. package/dist/cli/create.js +106 -16
  65. package/dist/cli/create.js.map +1 -1
  66. package/dist/cli/index.js +97 -39
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cli/templates-meta.d.ts +4 -0
  69. package/dist/cli/templates-meta.d.ts.map +1 -1
  70. package/dist/cli/templates-meta.js +56 -12
  71. package/dist/cli/templates-meta.js.map +1 -1
  72. package/dist/cli/workspacify.d.ts +2 -0
  73. package/dist/cli/workspacify.d.ts.map +1 -1
  74. package/dist/cli/workspacify.js +5 -4
  75. package/dist/cli/workspacify.js.map +1 -1
  76. package/dist/client/AgentPanel.d.ts +5 -2
  77. package/dist/client/AgentPanel.d.ts.map +1 -1
  78. package/dist/client/AgentPanel.js +64 -25
  79. package/dist/client/AgentPanel.js.map +1 -1
  80. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  81. package/dist/client/AgentTaskCard.js +3 -2
  82. package/dist/client/AgentTaskCard.js.map +1 -1
  83. package/dist/client/AssistantChat.d.ts +0 -6
  84. package/dist/client/AssistantChat.d.ts.map +1 -1
  85. package/dist/client/AssistantChat.js +98 -100
  86. package/dist/client/AssistantChat.js.map +1 -1
  87. package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
  88. package/dist/client/ConnectBuilderCard.js +2 -1
  89. package/dist/client/ConnectBuilderCard.js.map +1 -1
  90. package/dist/client/DefaultSpinner.d.ts +1 -1
  91. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  92. package/dist/client/DefaultSpinner.js +2 -9
  93. package/dist/client/DefaultSpinner.js.map +1 -1
  94. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  95. package/dist/client/MultiTabAssistantChat.js +24 -22
  96. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  97. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  98. package/dist/client/agent-chat-adapter.js +4 -3
  99. package/dist/client/agent-chat-adapter.js.map +1 -1
  100. package/dist/client/agent-chat.d.ts.map +1 -1
  101. package/dist/client/agent-chat.js +6 -4
  102. package/dist/client/agent-chat.js.map +1 -1
  103. package/dist/client/analytics.d.ts.map +1 -1
  104. package/dist/client/analytics.js +70 -1
  105. package/dist/client/analytics.js.map +1 -1
  106. package/dist/client/api-path.d.ts +5 -0
  107. package/dist/client/api-path.d.ts.map +1 -0
  108. package/dist/client/api-path.js +48 -0
  109. package/dist/client/api-path.js.map +1 -0
  110. package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
  111. package/dist/client/components/ApiKeySettings.js +3 -2
  112. package/dist/client/components/ApiKeySettings.js.map +1 -1
  113. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  114. package/dist/client/components/CodeRequiredDialog.js +3 -2
  115. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  116. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  117. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  118. package/dist/client/composer/TiptapComposer.js +17 -9
  119. package/dist/client/composer/TiptapComposer.js.map +1 -1
  120. package/dist/client/composer/draft-key.d.ts +2 -0
  121. package/dist/client/composer/draft-key.d.ts.map +1 -0
  122. package/dist/client/composer/draft-key.js +8 -0
  123. package/dist/client/composer/draft-key.js.map +1 -0
  124. package/dist/client/composer/use-file-search.d.ts.map +1 -1
  125. package/dist/client/composer/use-file-search.js +2 -1
  126. package/dist/client/composer/use-file-search.js.map +1 -1
  127. package/dist/client/composer/use-mention-search.d.ts.map +1 -1
  128. package/dist/client/composer/use-mention-search.js +2 -1
  129. package/dist/client/composer/use-mention-search.js.map +1 -1
  130. package/dist/client/composer/use-skills.d.ts.map +1 -1
  131. package/dist/client/composer/use-skills.js +2 -1
  132. package/dist/client/composer/use-skills.js.map +1 -1
  133. package/dist/client/composer/useVoiceDictation.d.ts +1 -1
  134. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  135. package/dist/client/composer/useVoiceDictation.js +16 -8
  136. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  137. package/dist/client/dev-mode.d.ts +14 -0
  138. package/dist/client/dev-mode.d.ts.map +1 -0
  139. package/dist/client/dev-mode.js +14 -0
  140. package/dist/client/dev-mode.js.map +1 -0
  141. package/dist/client/dev-overlay/DevOverlay.d.ts +26 -0
  142. package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -0
  143. package/dist/client/dev-overlay/DevOverlay.js +315 -0
  144. package/dist/client/dev-overlay/DevOverlay.js.map +1 -0
  145. package/dist/client/dev-overlay/builtins.d.ts +6 -0
  146. package/dist/client/dev-overlay/builtins.d.ts.map +1 -0
  147. package/dist/client/dev-overlay/builtins.js +35 -0
  148. package/dist/client/dev-overlay/builtins.js.map +1 -0
  149. package/dist/client/dev-overlay/index.d.ts +6 -0
  150. package/dist/client/dev-overlay/index.d.ts.map +1 -0
  151. package/dist/client/dev-overlay/index.js +5 -0
  152. package/dist/client/dev-overlay/index.js.map +1 -0
  153. package/dist/client/dev-overlay/registry.d.ts +13 -0
  154. package/dist/client/dev-overlay/registry.d.ts.map +1 -0
  155. package/dist/client/dev-overlay/registry.js +63 -0
  156. package/dist/client/dev-overlay/registry.js.map +1 -0
  157. package/dist/client/dev-overlay/types.d.ts +56 -0
  158. package/dist/client/dev-overlay/types.d.ts.map +1 -0
  159. package/dist/client/dev-overlay/types.js +9 -0
  160. package/dist/client/dev-overlay/types.js.map +1 -0
  161. package/dist/client/dev-overlay/use-dev-option.d.ts +12 -0
  162. package/dist/client/dev-overlay/use-dev-option.d.ts.map +1 -0
  163. package/dist/client/dev-overlay/use-dev-option.js +73 -0
  164. package/dist/client/dev-overlay/use-dev-option.js.map +1 -0
  165. package/dist/client/dev-overlay/use-dev-overlay-shortcut.d.ts +6 -0
  166. package/dist/client/dev-overlay/use-dev-overlay-shortcut.d.ts.map +1 -0
  167. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js +29 -0
  168. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -0
  169. package/dist/client/frame-protocol.d.ts +61 -10
  170. package/dist/client/frame-protocol.d.ts.map +1 -1
  171. package/dist/client/frame.d.ts +1 -0
  172. package/dist/client/frame.d.ts.map +1 -1
  173. package/dist/client/frame.js +37 -16
  174. package/dist/client/frame.js.map +1 -1
  175. package/dist/client/index.d.ts +5 -1
  176. package/dist/client/index.d.ts.map +1 -1
  177. package/dist/client/index.js +5 -1
  178. package/dist/client/index.js.map +1 -1
  179. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -1
  180. package/dist/client/integrations/IntegrationCard.js +3 -2
  181. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  182. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  183. package/dist/client/integrations/IntegrationsPanel.js +3 -2
  184. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  185. package/dist/client/integrations/useIntegrationStatus.d.ts.map +1 -1
  186. package/dist/client/integrations/useIntegrationStatus.js +2 -1
  187. package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
  188. package/dist/client/notifications/NotificationsBell.d.ts.map +1 -1
  189. package/dist/client/notifications/NotificationsBell.js +26 -8
  190. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  191. package/dist/client/observability/ThumbsFeedback.d.ts.map +1 -1
  192. package/dist/client/observability/ThumbsFeedback.js +2 -1
  193. package/dist/client/observability/ThumbsFeedback.js.map +1 -1
  194. package/dist/client/observability/useObservability.d.ts.map +1 -1
  195. package/dist/client/observability/useObservability.js +2 -1
  196. package/dist/client/observability/useObservability.js.map +1 -1
  197. package/dist/client/onboarding/OnboardingPanel.d.ts +0 -7
  198. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  199. package/dist/client/onboarding/OnboardingPanel.js +20 -10
  200. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  201. package/dist/client/onboarding/index.d.ts +1 -0
  202. package/dist/client/onboarding/index.d.ts.map +1 -1
  203. package/dist/client/onboarding/index.js +1 -0
  204. package/dist/client/onboarding/index.js.map +1 -1
  205. package/dist/client/onboarding/use-onboarding.d.ts +1 -7
  206. package/dist/client/onboarding/use-onboarding.d.ts.map +1 -1
  207. package/dist/client/onboarding/use-onboarding.js +27 -13
  208. package/dist/client/onboarding/use-onboarding.js.map +1 -1
  209. package/dist/client/onboarding/use-preview-mode.d.ts +10 -0
  210. package/dist/client/onboarding/use-preview-mode.d.ts.map +1 -0
  211. package/dist/client/onboarding/use-preview-mode.js +35 -0
  212. package/dist/client/onboarding/use-preview-mode.js.map +1 -0
  213. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  214. package/dist/client/org/OrgSwitcher.js +2 -1
  215. package/dist/client/org/OrgSwitcher.js.map +1 -1
  216. package/dist/client/org/TeamPage.d.ts.map +1 -1
  217. package/dist/client/org/TeamPage.js +7 -5
  218. package/dist/client/org/TeamPage.js.map +1 -1
  219. package/dist/client/org/hooks.d.ts.map +1 -1
  220. package/dist/client/org/hooks.js +2 -1
  221. package/dist/client/org/hooks.js.map +1 -1
  222. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  223. package/dist/client/progress/RunsTray.js +2 -1
  224. package/dist/client/progress/RunsTray.js.map +1 -1
  225. package/dist/client/resources/McpServerDetail.d.ts +0 -8
  226. package/dist/client/resources/McpServerDetail.d.ts.map +1 -1
  227. package/dist/client/resources/McpServerDetail.js +6 -1
  228. package/dist/client/resources/McpServerDetail.js.map +1 -1
  229. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  230. package/dist/client/resources/ResourceEditor.js +2 -1
  231. package/dist/client/resources/ResourceEditor.js.map +1 -1
  232. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  233. package/dist/client/resources/ResourcesPanel.js +2 -1
  234. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  235. package/dist/client/resources/use-mcp-servers.d.ts.map +1 -1
  236. package/dist/client/resources/use-mcp-servers.js +7 -2
  237. package/dist/client/resources/use-mcp-servers.js.map +1 -1
  238. package/dist/client/resources/use-resources.d.ts.map +1 -1
  239. package/dist/client/resources/use-resources.js +9 -7
  240. package/dist/client/resources/use-resources.js.map +1 -1
  241. package/dist/client/settings/AgentsSection.d.ts.map +1 -1
  242. package/dist/client/settings/AgentsSection.js +7 -5
  243. package/dist/client/settings/AgentsSection.js.map +1 -1
  244. package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
  245. package/dist/client/settings/AutomationsSection.js +9 -5
  246. package/dist/client/settings/AutomationsSection.js.map +1 -1
  247. package/dist/client/settings/BackgroundAgentSection.d.ts.map +1 -1
  248. package/dist/client/settings/BackgroundAgentSection.js +2 -1
  249. package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
  250. package/dist/client/settings/SecretsSection.d.ts.map +1 -1
  251. package/dist/client/settings/SecretsSection.js +12 -4
  252. package/dist/client/settings/SecretsSection.js.map +1 -1
  253. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  254. package/dist/client/settings/SettingsPanel.js +15 -23
  255. package/dist/client/settings/SettingsPanel.js.map +1 -1
  256. package/dist/client/settings/UsageSection.d.ts.map +1 -1
  257. package/dist/client/settings/UsageSection.js +2 -1
  258. package/dist/client/settings/UsageSection.js.map +1 -1
  259. package/dist/client/settings/VoiceTranscriptionSection.d.ts +2 -4
  260. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
  261. package/dist/client/settings/VoiceTranscriptionSection.js +66 -23
  262. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  263. package/dist/client/settings/useBuilderStatus.d.ts +9 -0
  264. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  265. package/dist/client/settings/useBuilderStatus.js +31 -3
  266. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  267. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  268. package/dist/client/sharing/ShareButton.js +7 -2
  269. package/dist/client/sharing/ShareButton.js.map +1 -1
  270. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  271. package/dist/client/sharing/ShareDialog.js +4 -3
  272. package/dist/client/sharing/ShareDialog.js.map +1 -1
  273. package/dist/client/sse-event-processor.d.ts +1 -3
  274. package/dist/client/sse-event-processor.d.ts.map +1 -1
  275. package/dist/client/sse-event-processor.js +3 -24
  276. package/dist/client/sse-event-processor.js.map +1 -1
  277. package/dist/client/terminal/AgentTerminal.d.ts +1 -0
  278. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  279. package/dist/client/terminal/AgentTerminal.js +14 -10
  280. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  281. package/dist/client/tools/EmbeddedTool.d.ts +20 -0
  282. package/dist/client/tools/EmbeddedTool.d.ts.map +1 -0
  283. package/dist/client/tools/EmbeddedTool.js +154 -0
  284. package/dist/client/tools/EmbeddedTool.js.map +1 -0
  285. package/dist/client/tools/ExtensionSlot.d.ts +27 -0
  286. package/dist/client/tools/ExtensionSlot.d.ts.map +1 -0
  287. package/dist/client/tools/ExtensionSlot.js +96 -0
  288. package/dist/client/tools/ExtensionSlot.js.map +1 -0
  289. package/dist/client/tools/ToolEditor.d.ts.map +1 -1
  290. package/dist/client/tools/ToolEditor.js +5 -4
  291. package/dist/client/tools/ToolEditor.js.map +1 -1
  292. package/dist/client/tools/ToolViewer.d.ts.map +1 -1
  293. package/dist/client/tools/ToolViewer.js +75 -44
  294. package/dist/client/tools/ToolViewer.js.map +1 -1
  295. package/dist/client/tools/ToolViewerPage.d.ts.map +1 -1
  296. package/dist/client/tools/ToolViewerPage.js +2 -1
  297. package/dist/client/tools/ToolViewerPage.js.map +1 -1
  298. package/dist/client/tools/ToolsListPage.d.ts.map +1 -1
  299. package/dist/client/tools/ToolsListPage.js +3 -2
  300. package/dist/client/tools/ToolsListPage.js.map +1 -1
  301. package/dist/client/tools/ToolsSidebarSection.d.ts.map +1 -1
  302. package/dist/client/tools/ToolsSidebarSection.js +4 -3
  303. package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
  304. package/dist/client/tools/iframe-bridge.d.ts +38 -0
  305. package/dist/client/tools/iframe-bridge.d.ts.map +1 -0
  306. package/dist/client/tools/iframe-bridge.js +207 -0
  307. package/dist/client/tools/iframe-bridge.js.map +1 -0
  308. package/dist/client/tools/index.d.ts +2 -0
  309. package/dist/client/tools/index.d.ts.map +1 -1
  310. package/dist/client/tools/index.js +2 -0
  311. package/dist/client/tools/index.js.map +1 -1
  312. package/dist/client/use-action.d.ts.map +1 -1
  313. package/dist/client/use-action.js +2 -1
  314. package/dist/client/use-action.js.map +1 -1
  315. package/dist/client/use-agent-chat.js +2 -2
  316. package/dist/client/use-agent-chat.js.map +1 -1
  317. package/dist/client/use-avatar.d.ts.map +1 -1
  318. package/dist/client/use-avatar.js +3 -2
  319. package/dist/client/use-avatar.js.map +1 -1
  320. package/dist/client/use-builder-enabled.d.ts.map +1 -1
  321. package/dist/client/use-builder-enabled.js +2 -1
  322. package/dist/client/use-builder-enabled.js.map +1 -1
  323. package/dist/client/use-chat-threads.d.ts.map +1 -1
  324. package/dist/client/use-chat-threads.js +2 -1
  325. package/dist/client/use-chat-threads.js.map +1 -1
  326. package/dist/client/use-db-sync.d.ts.map +1 -1
  327. package/dist/client/use-db-sync.js +3 -2
  328. package/dist/client/use-db-sync.js.map +1 -1
  329. package/dist/client/use-dev-mode.d.ts.map +1 -1
  330. package/dist/client/use-dev-mode.js +2 -1
  331. package/dist/client/use-dev-mode.js.map +1 -1
  332. package/dist/client/use-send-to-agent-chat.d.ts.map +1 -1
  333. package/dist/client/use-send-to-agent-chat.js +5 -3
  334. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  335. package/dist/client/use-session.d.ts.map +1 -1
  336. package/dist/client/use-session.js +2 -1
  337. package/dist/client/use-session.js.map +1 -1
  338. package/dist/client/useProductionAgent.d.ts.map +1 -1
  339. package/dist/client/useProductionAgent.js +4 -3
  340. package/dist/client/useProductionAgent.js.map +1 -1
  341. package/dist/collab/client.d.ts.map +1 -1
  342. package/dist/collab/client.js +3 -2
  343. package/dist/collab/client.js.map +1 -1
  344. package/dist/credentials/index.d.ts +27 -10
  345. package/dist/credentials/index.d.ts.map +1 -1
  346. package/dist/credentials/index.js +61 -19
  347. package/dist/credentials/index.js.map +1 -1
  348. package/dist/db/client.d.ts.map +1 -1
  349. package/dist/db/client.js +10 -1
  350. package/dist/db/client.js.map +1 -1
  351. package/dist/db/migrations.d.ts +13 -5
  352. package/dist/db/migrations.d.ts.map +1 -1
  353. package/dist/db/migrations.js +9 -2
  354. package/dist/db/migrations.js.map +1 -1
  355. package/dist/deploy/build.d.ts +12 -1
  356. package/dist/deploy/build.d.ts.map +1 -1
  357. package/dist/deploy/build.js +195 -23
  358. package/dist/deploy/build.js.map +1 -1
  359. package/dist/file-upload/registry.d.ts.map +1 -1
  360. package/dist/file-upload/registry.js +25 -1
  361. package/dist/file-upload/registry.js.map +1 -1
  362. package/dist/index.d.ts +2 -2
  363. package/dist/index.d.ts.map +1 -1
  364. package/dist/index.js +2 -2
  365. package/dist/index.js.map +1 -1
  366. package/dist/integrations/adapters/email.d.ts.map +1 -1
  367. package/dist/integrations/adapters/email.js +152 -32
  368. package/dist/integrations/adapters/email.js.map +1 -1
  369. package/dist/integrations/adapters/slack.d.ts +13 -0
  370. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  371. package/dist/integrations/adapters/slack.js +302 -32
  372. package/dist/integrations/adapters/slack.js.map +1 -1
  373. package/dist/integrations/adapters/telegram.d.ts.map +1 -1
  374. package/dist/integrations/adapters/telegram.js +37 -2
  375. package/dist/integrations/adapters/telegram.js.map +1 -1
  376. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
  377. package/dist/integrations/adapters/whatsapp.js +91 -12
  378. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  379. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  380. package/dist/integrations/google-docs-poller.js +5 -2
  381. package/dist/integrations/google-docs-poller.js.map +1 -1
  382. package/dist/integrations/internal-token.d.ts.map +1 -1
  383. package/dist/integrations/internal-token.js +17 -1
  384. package/dist/integrations/internal-token.js.map +1 -1
  385. package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -1
  386. package/dist/integrations/pending-tasks-retry-job.js +23 -9
  387. package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
  388. package/dist/integrations/pending-tasks-store.d.ts +16 -0
  389. package/dist/integrations/pending-tasks-store.d.ts.map +1 -1
  390. package/dist/integrations/pending-tasks-store.js +58 -5
  391. package/dist/integrations/pending-tasks-store.js.map +1 -1
  392. package/dist/integrations/plugin.d.ts.map +1 -1
  393. package/dist/integrations/plugin.js +198 -15
  394. package/dist/integrations/plugin.js.map +1 -1
  395. package/dist/integrations/types.d.ts +33 -2
  396. package/dist/integrations/types.d.ts.map +1 -1
  397. package/dist/integrations/webhook-handler.d.ts +6 -0
  398. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  399. package/dist/integrations/webhook-handler.js +141 -61
  400. package/dist/integrations/webhook-handler.js.map +1 -1
  401. package/dist/jobs/cron.d.ts.map +1 -1
  402. package/dist/jobs/cron.js +12 -4
  403. package/dist/jobs/cron.js.map +1 -1
  404. package/dist/jobs/scheduler.d.ts.map +1 -1
  405. package/dist/jobs/scheduler.js +141 -16
  406. package/dist/jobs/scheduler.js.map +1 -1
  407. package/dist/jobs/tools.d.ts.map +1 -1
  408. package/dist/jobs/tools.js +94 -3
  409. package/dist/jobs/tools.js.map +1 -1
  410. package/dist/mcp/server.d.ts.map +1 -1
  411. package/dist/mcp/server.js +128 -62
  412. package/dist/mcp/server.js.map +1 -1
  413. package/dist/mcp-client/hub-routes.d.ts +14 -0
  414. package/dist/mcp-client/hub-routes.d.ts.map +1 -1
  415. package/dist/mcp-client/hub-routes.js +42 -2
  416. package/dist/mcp-client/hub-routes.js.map +1 -1
  417. package/dist/mcp-client/index.d.ts +1 -1
  418. package/dist/mcp-client/index.d.ts.map +1 -1
  419. package/dist/mcp-client/index.js +1 -1
  420. package/dist/mcp-client/index.js.map +1 -1
  421. package/dist/mcp-client/manager.d.ts.map +1 -1
  422. package/dist/mcp-client/manager.js +28 -3
  423. package/dist/mcp-client/manager.js.map +1 -1
  424. package/dist/mcp-client/remote-store.d.ts +49 -1
  425. package/dist/mcp-client/remote-store.d.ts.map +1 -1
  426. package/dist/mcp-client/remote-store.js +253 -6
  427. package/dist/mcp-client/remote-store.js.map +1 -1
  428. package/dist/mcp-client/routes.d.ts.map +1 -1
  429. package/dist/mcp-client/routes.js +11 -9
  430. package/dist/mcp-client/routes.js.map +1 -1
  431. package/dist/mcp-client/visibility.d.ts +7 -3
  432. package/dist/mcp-client/visibility.d.ts.map +1 -1
  433. package/dist/mcp-client/visibility.js +16 -7
  434. package/dist/mcp-client/visibility.js.map +1 -1
  435. package/dist/notifications/actions.d.ts.map +1 -1
  436. package/dist/notifications/actions.js +7 -1
  437. package/dist/notifications/actions.js.map +1 -1
  438. package/dist/notifications/routes.d.ts +1 -1
  439. package/dist/notifications/routes.d.ts.map +1 -1
  440. package/dist/notifications/routes.js +20 -3
  441. package/dist/notifications/routes.js.map +1 -1
  442. package/dist/notifications/store.d.ts.map +1 -1
  443. package/dist/notifications/store.js +6 -1
  444. package/dist/notifications/store.js.map +1 -1
  445. package/dist/oauth-tokens/store.d.ts +43 -2
  446. package/dist/oauth-tokens/store.d.ts.map +1 -1
  447. package/dist/oauth-tokens/store.js +83 -14
  448. package/dist/oauth-tokens/store.js.map +1 -1
  449. package/dist/observability/cleanup-job.d.ts +38 -0
  450. package/dist/observability/cleanup-job.d.ts.map +1 -0
  451. package/dist/observability/cleanup-job.js +107 -0
  452. package/dist/observability/cleanup-job.js.map +1 -0
  453. package/dist/observability/experiments.js +5 -5
  454. package/dist/observability/experiments.js.map +1 -1
  455. package/dist/observability/index.d.ts +2 -1
  456. package/dist/observability/index.d.ts.map +1 -1
  457. package/dist/observability/index.js +2 -1
  458. package/dist/observability/index.js.map +1 -1
  459. package/dist/observability/plugin.d.ts.map +1 -1
  460. package/dist/observability/plugin.js +11 -0
  461. package/dist/observability/plugin.js.map +1 -1
  462. package/dist/observability/routes.d.ts.map +1 -1
  463. package/dist/observability/routes.js +37 -8
  464. package/dist/observability/routes.js.map +1 -1
  465. package/dist/observability/store.d.ts +16 -0
  466. package/dist/observability/store.d.ts.map +1 -1
  467. package/dist/observability/store.js +54 -3
  468. package/dist/observability/store.js.map +1 -1
  469. package/dist/observability/traces.d.ts +5 -0
  470. package/dist/observability/traces.d.ts.map +1 -1
  471. package/dist/observability/traces.js +44 -1
  472. package/dist/observability/traces.js.map +1 -1
  473. package/dist/observability/types.d.ts +7 -0
  474. package/dist/observability/types.d.ts.map +1 -1
  475. package/dist/observability/types.js.map +1 -1
  476. package/dist/onboarding/default-steps.d.ts.map +1 -1
  477. package/dist/onboarding/default-steps.js +1 -2
  478. package/dist/onboarding/default-steps.js.map +1 -1
  479. package/dist/onboarding/plugin.d.ts.map +1 -1
  480. package/dist/onboarding/plugin.js +63 -32
  481. package/dist/onboarding/plugin.js.map +1 -1
  482. package/dist/onboarding/types.d.ts +6 -1
  483. package/dist/onboarding/types.d.ts.map +1 -1
  484. package/dist/org/accept-pending.d.ts.map +1 -1
  485. package/dist/org/accept-pending.js +2 -1
  486. package/dist/org/accept-pending.js.map +1 -1
  487. package/dist/progress/actions.d.ts.map +1 -1
  488. package/dist/progress/actions.js +10 -1
  489. package/dist/progress/actions.js.map +1 -1
  490. package/dist/progress/routes.d.ts +1 -1
  491. package/dist/progress/routes.d.ts.map +1 -1
  492. package/dist/progress/routes.js +20 -3
  493. package/dist/progress/routes.js.map +1 -1
  494. package/dist/progress/store.d.ts.map +1 -1
  495. package/dist/progress/store.js +6 -1
  496. package/dist/progress/store.js.map +1 -1
  497. package/dist/resources/handlers.d.ts.map +1 -1
  498. package/dist/resources/handlers.js +35 -7
  499. package/dist/resources/handlers.js.map +1 -1
  500. package/dist/resources/script-helpers.d.ts.map +1 -1
  501. package/dist/resources/script-helpers.js +15 -3
  502. package/dist/resources/script-helpers.js.map +1 -1
  503. package/dist/resources/store.d.ts.map +1 -1
  504. package/dist/resources/store.js +12 -4
  505. package/dist/resources/store.js.map +1 -1
  506. package/dist/scripts/call-agent.d.ts +1 -0
  507. package/dist/scripts/call-agent.d.ts.map +1 -1
  508. package/dist/scripts/call-agent.js +78 -40
  509. package/dist/scripts/call-agent.js.map +1 -1
  510. package/dist/scripts/chat/search-chats.d.ts.map +1 -1
  511. package/dist/scripts/chat/search-chats.js +3 -2
  512. package/dist/scripts/chat/search-chats.js.map +1 -1
  513. package/dist/scripts/db/exec.d.ts +1 -1
  514. package/dist/scripts/db/exec.d.ts.map +1 -1
  515. package/dist/scripts/db/exec.js +171 -5
  516. package/dist/scripts/db/exec.js.map +1 -1
  517. package/dist/scripts/db/migrate-user-api-keys.d.ts.map +1 -1
  518. package/dist/scripts/db/migrate-user-api-keys.js +10 -0
  519. package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
  520. package/dist/scripts/db/query.d.ts +1 -1
  521. package/dist/scripts/db/query.d.ts.map +1 -1
  522. package/dist/scripts/db/query.js +104 -4
  523. package/dist/scripts/db/query.js.map +1 -1
  524. package/dist/scripts/db/scoping.d.ts.map +1 -1
  525. package/dist/scripts/db/scoping.js +35 -10
  526. package/dist/scripts/db/scoping.js.map +1 -1
  527. package/dist/scripts/dev/shell.d.ts.map +1 -1
  528. package/dist/scripts/dev/shell.js +3 -1
  529. package/dist/scripts/dev/shell.js.map +1 -1
  530. package/dist/scripts/resources/delete-memory.d.ts.map +1 -1
  531. package/dist/scripts/resources/delete-memory.js +2 -1
  532. package/dist/scripts/resources/delete-memory.js.map +1 -1
  533. package/dist/scripts/resources/delete.d.ts.map +1 -1
  534. package/dist/scripts/resources/delete.js +2 -1
  535. package/dist/scripts/resources/delete.js.map +1 -1
  536. package/dist/scripts/resources/list.d.ts.map +1 -1
  537. package/dist/scripts/resources/list.js +2 -1
  538. package/dist/scripts/resources/list.js.map +1 -1
  539. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
  540. package/dist/scripts/resources/migrate-learnings.js +2 -1
  541. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  542. package/dist/scripts/resources/read.d.ts.map +1 -1
  543. package/dist/scripts/resources/read.js +2 -1
  544. package/dist/scripts/resources/read.js.map +1 -1
  545. package/dist/scripts/resources/save-memory.d.ts.map +1 -1
  546. package/dist/scripts/resources/save-memory.js +2 -1
  547. package/dist/scripts/resources/save-memory.js.map +1 -1
  548. package/dist/scripts/resources/write.d.ts.map +1 -1
  549. package/dist/scripts/resources/write.js +2 -1
  550. package/dist/scripts/resources/write.js.map +1 -1
  551. package/dist/secrets/onboarding.d.ts.map +1 -1
  552. package/dist/secrets/onboarding.js +24 -16
  553. package/dist/secrets/onboarding.js.map +1 -1
  554. package/dist/secrets/routes.d.ts.map +1 -1
  555. package/dist/secrets/routes.js +139 -37
  556. package/dist/secrets/routes.js.map +1 -1
  557. package/dist/secrets/storage.d.ts.map +1 -1
  558. package/dist/secrets/storage.js +23 -12
  559. package/dist/secrets/storage.js.map +1 -1
  560. package/dist/secrets/substitution.d.ts +24 -2
  561. package/dist/secrets/substitution.d.ts.map +1 -1
  562. package/dist/secrets/substitution.js +44 -6
  563. package/dist/secrets/substitution.js.map +1 -1
  564. package/dist/server/action-discovery.d.ts.map +1 -1
  565. package/dist/server/action-discovery.js +19 -51
  566. package/dist/server/action-discovery.js.map +1 -1
  567. package/dist/server/action-routes.d.ts.map +1 -1
  568. package/dist/server/action-routes.js +61 -15
  569. package/dist/server/action-routes.js.map +1 -1
  570. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  571. package/dist/server/agent-chat-plugin.js +449 -338
  572. package/dist/server/agent-chat-plugin.js.map +1 -1
  573. package/dist/server/agent-discovery.d.ts +8 -0
  574. package/dist/server/agent-discovery.d.ts.map +1 -1
  575. package/dist/server/agent-discovery.js +39 -12
  576. package/dist/server/agent-discovery.js.map +1 -1
  577. package/dist/server/agent-teams.d.ts.map +1 -1
  578. package/dist/server/agent-teams.js +4 -1
  579. package/dist/server/agent-teams.js.map +1 -1
  580. package/dist/server/analytics.d.ts +0 -1
  581. package/dist/server/analytics.d.ts.map +1 -1
  582. package/dist/server/analytics.js +0 -1
  583. package/dist/server/analytics.js.map +1 -1
  584. package/dist/server/app-base-path.d.ts +4 -0
  585. package/dist/server/app-base-path.d.ts.map +1 -0
  586. package/dist/server/app-base-path.js +33 -0
  587. package/dist/server/app-base-path.js.map +1 -0
  588. package/dist/server/app-url.d.ts +4 -1
  589. package/dist/server/app-url.d.ts.map +1 -1
  590. package/dist/server/app-url.js +16 -1
  591. package/dist/server/app-url.js.map +1 -1
  592. package/dist/server/auth.d.ts +15 -0
  593. package/dist/server/auth.d.ts.map +1 -1
  594. package/dist/server/auth.js +400 -68
  595. package/dist/server/auth.js.map +1 -1
  596. package/dist/server/better-auth-instance.d.ts +1 -0
  597. package/dist/server/better-auth-instance.d.ts.map +1 -1
  598. package/dist/server/better-auth-instance.js +67 -15
  599. package/dist/server/better-auth-instance.js.map +1 -1
  600. package/dist/server/builder-browser.d.ts +15 -0
  601. package/dist/server/builder-browser.d.ts.map +1 -1
  602. package/dist/server/builder-browser.js +90 -4
  603. package/dist/server/builder-browser.js.map +1 -1
  604. package/dist/server/cli-capture.d.ts +31 -0
  605. package/dist/server/cli-capture.d.ts.map +1 -0
  606. package/dist/server/cli-capture.js +120 -0
  607. package/dist/server/cli-capture.js.map +1 -0
  608. package/dist/server/collab-plugin.d.ts +12 -0
  609. package/dist/server/collab-plugin.d.ts.map +1 -1
  610. package/dist/server/collab-plugin.js +63 -21
  611. package/dist/server/collab-plugin.js.map +1 -1
  612. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  613. package/dist/server/core-routes-plugin.js +467 -130
  614. package/dist/server/core-routes-plugin.js.map +1 -1
  615. package/dist/server/create-server.d.ts +2 -0
  616. package/dist/server/create-server.d.ts.map +1 -1
  617. package/dist/server/create-server.js +82 -11
  618. package/dist/server/create-server.js.map +1 -1
  619. package/dist/server/credential-provider.d.ts +11 -0
  620. package/dist/server/credential-provider.d.ts.map +1 -1
  621. package/dist/server/credential-provider.js +51 -2
  622. package/dist/server/credential-provider.js.map +1 -1
  623. package/dist/server/csrf.d.ts +58 -0
  624. package/dist/server/csrf.d.ts.map +1 -0
  625. package/dist/server/csrf.js +165 -0
  626. package/dist/server/csrf.js.map +1 -0
  627. package/dist/server/framework-request-handler.d.ts +20 -0
  628. package/dist/server/framework-request-handler.d.ts.map +1 -1
  629. package/dist/server/framework-request-handler.js +115 -34
  630. package/dist/server/framework-request-handler.js.map +1 -1
  631. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  632. package/dist/server/google-auth-plugin.js +10 -2
  633. package/dist/server/google-auth-plugin.js.map +1 -1
  634. package/dist/server/google-oauth.d.ts +84 -2
  635. package/dist/server/google-oauth.d.ts.map +1 -1
  636. package/dist/server/google-oauth.js +248 -45
  637. package/dist/server/google-oauth.js.map +1 -1
  638. package/dist/server/index.d.ts +5 -4
  639. package/dist/server/index.d.ts.map +1 -1
  640. package/dist/server/index.js +5 -4
  641. package/dist/server/index.js.map +1 -1
  642. package/dist/server/oauth-helpers.d.ts +8 -3
  643. package/dist/server/oauth-helpers.d.ts.map +1 -1
  644. package/dist/server/oauth-helpers.js +12 -8
  645. package/dist/server/oauth-helpers.js.map +1 -1
  646. package/dist/server/onboarding-html.d.ts.map +1 -1
  647. package/dist/server/onboarding-html.js +37 -9
  648. package/dist/server/onboarding-html.js.map +1 -1
  649. package/dist/server/poll.d.ts +33 -0
  650. package/dist/server/poll.d.ts.map +1 -1
  651. package/dist/server/poll.js +43 -2
  652. package/dist/server/poll.js.map +1 -1
  653. package/dist/server/request-context.d.ts +102 -3
  654. package/dist/server/request-context.d.ts.map +1 -1
  655. package/dist/server/request-context.js +100 -7
  656. package/dist/server/request-context.js.map +1 -1
  657. package/dist/server/security-headers.d.ts +51 -0
  658. package/dist/server/security-headers.d.ts.map +1 -0
  659. package/dist/server/security-headers.js +90 -0
  660. package/dist/server/security-headers.js.map +1 -0
  661. package/dist/server/short-lived-token.d.ts +62 -0
  662. package/dist/server/short-lived-token.d.ts.map +1 -0
  663. package/dist/server/short-lived-token.js +118 -0
  664. package/dist/server/short-lived-token.js.map +1 -0
  665. package/dist/server/ssr-handler.d.ts.map +1 -1
  666. package/dist/server/ssr-handler.js +96 -2
  667. package/dist/server/ssr-handler.js.map +1 -1
  668. package/dist/server/transcribe-voice.d.ts.map +1 -1
  669. package/dist/server/transcribe-voice.js +307 -56
  670. package/dist/server/transcribe-voice.js.map +1 -1
  671. package/dist/server/voice-providers-status.d.ts +12 -0
  672. package/dist/server/voice-providers-status.d.ts.map +1 -0
  673. package/dist/server/voice-providers-status.js +71 -0
  674. package/dist/server/voice-providers-status.js.map +1 -0
  675. package/dist/shared/agent-chat.js +1 -1
  676. package/dist/shared/agent-chat.js.map +1 -1
  677. package/dist/shared/agent-env.js +1 -1
  678. package/dist/shared/agent-env.js.map +1 -1
  679. package/dist/sharing/access.d.ts.map +1 -1
  680. package/dist/sharing/access.js +16 -13
  681. package/dist/sharing/access.js.map +1 -1
  682. package/dist/sharing/actions/set-resource-visibility.d.ts.map +1 -1
  683. package/dist/sharing/actions/set-resource-visibility.js +3 -0
  684. package/dist/sharing/actions/set-resource-visibility.js.map +1 -1
  685. package/dist/sharing/actions/share-resource.d.ts +1 -0
  686. package/dist/sharing/actions/share-resource.d.ts.map +1 -1
  687. package/dist/sharing/actions/share-resource.js +50 -0
  688. package/dist/sharing/actions/share-resource.js.map +1 -1
  689. package/dist/sharing/actions/unshare-resource.d.ts.map +1 -1
  690. package/dist/sharing/actions/unshare-resource.js +2 -0
  691. package/dist/sharing/actions/unshare-resource.js.map +1 -1
  692. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +54 -0
  693. package/dist/templates/default/app/root.tsx +1 -1
  694. package/dist/templates/default/app/routes/_index.tsx +6 -1
  695. package/dist/templates/default/package.json +1 -1
  696. package/dist/templates/default/public/favicon.svg +13 -0
  697. package/dist/templates/default/public/icon-180.svg +12 -3
  698. package/dist/templates/default/public/icon-192.svg +12 -3
  699. package/dist/templates/default/public/icon-512.svg +12 -3
  700. package/dist/templates/workspace-core/package.json +23 -5
  701. package/dist/templates/workspace-core/src/credentials.ts +32 -5
  702. package/dist/templates/workspace-core/tsconfig.json +4 -1
  703. package/dist/terminal/pty-server.d.ts.map +1 -1
  704. package/dist/terminal/pty-server.js +8 -2
  705. package/dist/terminal/pty-server.js.map +1 -1
  706. package/dist/terminal/terminal-plugin.js +3 -3
  707. package/dist/terminal/terminal-plugin.js.map +1 -1
  708. package/dist/tools/actions.d.ts.map +1 -1
  709. package/dist/tools/actions.js +130 -0
  710. package/dist/tools/actions.js.map +1 -1
  711. package/dist/tools/fetch-tool.d.ts +1 -0
  712. package/dist/tools/fetch-tool.d.ts.map +1 -1
  713. package/dist/tools/fetch-tool.js +38 -16
  714. package/dist/tools/fetch-tool.js.map +1 -1
  715. package/dist/tools/html-shell.d.ts +44 -1
  716. package/dist/tools/html-shell.d.ts.map +1 -1
  717. package/dist/tools/html-shell.js +119 -4
  718. package/dist/tools/html-shell.js.map +1 -1
  719. package/dist/tools/proxy-security.d.ts +12 -0
  720. package/dist/tools/proxy-security.d.ts.map +1 -0
  721. package/dist/tools/proxy-security.js +158 -0
  722. package/dist/tools/proxy-security.js.map +1 -0
  723. package/dist/tools/routes.d.ts.map +1 -1
  724. package/dist/tools/routes.js +156 -105
  725. package/dist/tools/routes.js.map +1 -1
  726. package/dist/tools/schema.d.ts +89 -0
  727. package/dist/tools/schema.d.ts.map +1 -1
  728. package/dist/tools/schema.js +34 -0
  729. package/dist/tools/schema.js.map +1 -1
  730. package/dist/tools/slots/routes.d.ts +15 -0
  731. package/dist/tools/slots/routes.d.ts.map +1 -0
  732. package/dist/tools/slots/routes.js +94 -0
  733. package/dist/tools/slots/routes.js.map +1 -0
  734. package/dist/tools/slots/schema.d.ts +303 -0
  735. package/dist/tools/slots/schema.d.ts.map +1 -0
  736. package/dist/tools/slots/schema.js +76 -0
  737. package/dist/tools/slots/schema.js.map +1 -0
  738. package/dist/tools/slots/store.d.ts +66 -0
  739. package/dist/tools/slots/store.d.ts.map +1 -0
  740. package/dist/tools/slots/store.js +227 -0
  741. package/dist/tools/slots/store.js.map +1 -0
  742. package/dist/tools/store.d.ts.map +1 -1
  743. package/dist/tools/store.js +35 -37
  744. package/dist/tools/store.js.map +1 -1
  745. package/dist/tools/url-safety.d.ts +24 -0
  746. package/dist/tools/url-safety.d.ts.map +1 -0
  747. package/dist/tools/url-safety.js +224 -0
  748. package/dist/tools/url-safety.js.map +1 -0
  749. package/dist/tracking/providers.d.ts.map +1 -1
  750. package/dist/tracking/providers.js +28 -11
  751. package/dist/tracking/providers.js.map +1 -1
  752. package/dist/tracking/registry.d.ts.map +1 -1
  753. package/dist/tracking/registry.js +7 -3
  754. package/dist/tracking/registry.js.map +1 -1
  755. package/dist/triggers/actions.d.ts.map +1 -1
  756. package/dist/triggers/actions.js +11 -6
  757. package/dist/triggers/actions.js.map +1 -1
  758. package/dist/triggers/condition-evaluator.d.ts +8 -0
  759. package/dist/triggers/condition-evaluator.d.ts.map +1 -1
  760. package/dist/triggers/condition-evaluator.js +39 -4
  761. package/dist/triggers/condition-evaluator.js.map +1 -1
  762. package/dist/triggers/dispatcher.d.ts.map +1 -1
  763. package/dist/triggers/dispatcher.js +67 -4
  764. package/dist/triggers/dispatcher.js.map +1 -1
  765. package/dist/usage/store.d.ts +0 -11
  766. package/dist/usage/store.d.ts.map +1 -1
  767. package/dist/usage/store.js +0 -11
  768. package/dist/usage/store.js.map +1 -1
  769. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  770. package/dist/vite/action-types-plugin.js +8 -5
  771. package/dist/vite/action-types-plugin.js.map +1 -1
  772. package/dist/vite/client.d.ts +2 -0
  773. package/dist/vite/client.d.ts.map +1 -1
  774. package/dist/vite/client.js +216 -4
  775. package/dist/vite/client.js.map +1 -1
  776. package/docs/content/actions.md +32 -0
  777. package/docs/content/authentication.md +39 -12
  778. package/docs/content/cloneable-saas.md +13 -15
  779. package/docs/content/deployment.md +84 -9
  780. package/docs/content/drop-in-agent.md +2 -2
  781. package/docs/content/faq.md +4 -1
  782. package/docs/content/getting-started.md +2 -0
  783. package/docs/content/messaging.md +195 -155
  784. package/docs/content/onboarding.md +82 -12
  785. package/docs/content/security.md +59 -8
  786. package/docs/content/template-analytics.md +65 -59
  787. package/docs/content/template-clips.md +7 -9
  788. package/docs/content/template-design.md +55 -0
  789. package/docs/content/template-dispatch.md +13 -0
  790. package/docs/content/template-forms.md +7 -6
  791. package/docs/content/template-mail.md +78 -80
  792. package/package.json +4 -3
  793. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +54 -0
  794. package/src/templates/default/app/root.tsx +1 -1
  795. package/src/templates/default/app/routes/_index.tsx +6 -1
  796. package/src/templates/default/package.json +1 -1
  797. package/src/templates/default/public/favicon.svg +13 -0
  798. package/src/templates/default/public/icon-180.svg +12 -3
  799. package/src/templates/default/public/icon-192.svg +12 -3
  800. package/src/templates/default/public/icon-512.svg +12 -3
  801. package/src/templates/workspace-core/package.json +23 -5
  802. package/src/templates/workspace-core/src/credentials.ts +32 -5
  803. package/src/templates/workspace-core/tsconfig.json +4 -1
@@ -1,4 +1,5 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { createPortal } from "react-dom";
2
3
  import React, { useState, useRef, useEffect, useCallback, useMemo, forwardRef, useImperativeHandle, } from "react";
3
4
  import { AssistantRuntimeProvider, useLocalRuntime, useThreadRuntime, useThread, useAui, useComposer, useMessageRuntime, ThreadPrimitive, ComposerPrimitive, MessagePrimitive, } from "@assistant-ui/react";
4
5
  import { SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, CompositeAttachmentAdapter, } from "@assistant-ui/react";
@@ -13,8 +14,9 @@ import { ConnectBuilderCard } from "./ConnectBuilderCard.js";
13
14
  import { useBuilderConnectFlow } from "./settings/useBuilderStatus.js";
14
15
  import { IframeEmbed, parseEmbedBody } from "./IframeEmbed.js";
15
16
  import { useDevMode } from "./use-dev-mode.js";
17
+ import { agentNativePath } from "./api-path.js";
16
18
  import { TiptapComposer, } from "./composer/TiptapComposer.js";
17
- import { IconMessage, IconX, IconPlayerStop, IconCheck, IconChevronDown, IconCopy, IconTerminal, IconLoader2, IconCircleX, IconSquareFilled, IconClock, IconFile, IconFolder, IconFileText, IconCheckbox, IconMail, IconUser, IconPresentation, IconStack2, IconMessageChatbot, IconLock, IconArrowBackUp, IconExternalLink, IconDots, IconGitFork, IconId, } from "@tabler/icons-react";
19
+ import { IconMessage, IconX, IconPlayerStop, IconCheck, IconChevronDown, IconCopy, IconTerminal, IconLoader2, IconCircleX, IconSquareFilled, IconClock, IconFile, IconFolder, IconFileText, IconCheckbox, IconMail, IconUser, IconPresentation, IconStack2, IconMessageChatbot, IconLock, IconArrowBackUp, IconExternalLink, IconDots, IconGitFork, IconId, IconQuote, } from "@tabler/icons-react";
18
20
  const ThumbsFeedbackLazy = React.lazy(() => import("./observability/ThumbsFeedback.js").then((m) => ({
19
21
  default: m.ThumbsFeedback,
20
22
  })));
@@ -31,9 +33,9 @@ const markdownStyles = `
31
33
  .agent-markdown h3 { font-size: 1em; font-weight: 600; margin: 0.75em 0 0.25em; }
32
34
  .agent-markdown strong { font-weight: 600; }
33
35
  .agent-markdown em { font-style: italic; }
34
- .agent-markdown code { font-size: 0.875em; padding: 0.15em 0.35em; border-radius: 0.25em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); }
35
- .agent-markdown pre { margin: 0.5em 0; padding: 0.75em 1em; border-radius: 0.375em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); overflow-x: auto; }
36
- .agent-markdown pre code { padding: 0; background: transparent; font-size: 0.8125em; color: inherit; }
36
+ .agent-markdown code { font-size: 0.875em; padding: 0.15em 0.35em; border-radius: 0.25em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); border: 1px solid hsl(var(--border, 0 0% 80%)); }
37
+ .agent-markdown pre { margin: 0.5em 0; padding: 0.75em 1em; border-radius: 0.375em; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); overflow-x: auto; border: 1px solid hsl(var(--border, 0 0% 80%)); }
38
+ .agent-markdown pre code { padding: 0; background: transparent; font-size: 0.8125em; color: inherit; border: none; }
37
39
  .agent-markdown-shiki { margin: 0.5em 0; border-radius: 0.375em; overflow: hidden; font-size: 0.8125em; }
38
40
  .agent-markdown-shiki pre { margin: 0; padding: 0.75em 1em; overflow-x: auto; background: var(--shiki-light-bg); color: var(--shiki-light); }
39
41
  .agent-markdown-shiki pre code { background: transparent; padding: 0; font-size: inherit; color: inherit; }
@@ -48,6 +50,65 @@ const markdownStyles = `
48
50
  .agent-markdown th, .agent-markdown td { border: 1px solid hsl(var(--border, 0 0% 20%)); padding: 0.35em 0.65em; text-align: left; }
49
51
  .agent-markdown th { font-weight: 600; background: hsl(var(--muted, 0 0% 15%)); color: hsl(var(--foreground, 0 0% 90%)); }
50
52
  `;
53
+ /**
54
+ * Pending selection context — written to application_state when the user
55
+ * presses Cmd+I with text selected on the page. The agent's next turn picks
56
+ * it up via the `selectionContextPromise` in production-agent. The pill
57
+ * below tells the user the context is attached and lets them clear it.
58
+ */
59
+ const PENDING_SELECTION_KEY = "pending-selection-context";
60
+ function clearPendingSelection() {
61
+ fetch(agentNativePath(`/_agent-native/application-state/${PENDING_SELECTION_KEY}`), {
62
+ method: "DELETE",
63
+ keepalive: true,
64
+ headers: { "X-Agent-Native-CSRF": "1" },
65
+ }).catch(() => { });
66
+ if (typeof window !== "undefined") {
67
+ window.dispatchEvent(new CustomEvent("agent-panel:selection-cleared"));
68
+ }
69
+ }
70
+ function SelectionAttachedPill() {
71
+ const [length, setLength] = useState(null);
72
+ useEffect(() => {
73
+ let cancelled = false;
74
+ fetch(agentNativePath(`/_agent-native/application-state/${PENDING_SELECTION_KEY}`))
75
+ .then((r) => (r.ok && r.status !== 204 ? r.json() : null))
76
+ .then((data) => {
77
+ if (cancelled)
78
+ return;
79
+ const text = data?.value?.text ??
80
+ data?.text;
81
+ if (text)
82
+ setLength(text.length);
83
+ })
84
+ .catch(() => { });
85
+ return () => {
86
+ cancelled = true;
87
+ };
88
+ }, []);
89
+ useEffect(() => {
90
+ function onAttached(e) {
91
+ const detail = e.detail;
92
+ if (typeof detail?.length === "number")
93
+ setLength(detail.length);
94
+ }
95
+ function onCleared() {
96
+ setLength(null);
97
+ }
98
+ window.addEventListener("agent-panel:selection-attached", onAttached);
99
+ window.addEventListener("agent-panel:selection-cleared", onCleared);
100
+ return () => {
101
+ window.removeEventListener("agent-panel:selection-attached", onAttached);
102
+ window.removeEventListener("agent-panel:selection-cleared", onCleared);
103
+ };
104
+ }, []);
105
+ if (length === null || length === 0)
106
+ return null;
107
+ return (_jsx("div", { className: "shrink-0 px-3 pt-1.5 -mb-1", children: _jsxs("div", { className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-muted/50 px-2 py-0.5 text-[11px] text-muted-foreground", children: [_jsx(IconQuote, { size: 11 }), _jsxs("span", { children: [length.toLocaleString(), " chars of selection attached"] }), _jsx("button", { type: "button", "aria-label": "Clear selection context", onClick: () => {
108
+ setLength(null);
109
+ clearPendingSelection();
110
+ }, className: "flex h-4 w-4 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/60", children: _jsx(IconX, { size: 11 }) })] }) }));
111
+ }
51
112
  let stylesInjected = false;
52
113
  function injectMarkdownStyles() {
53
114
  if (stylesInjected || typeof document === "undefined")
@@ -460,23 +521,13 @@ function UserMessage() {
460
521
  }
461
522
  const CheckpointContext = React.createContext(null);
462
523
  const MessageActionsContext = React.createContext(null);
463
- function MessageActionsMenu() {
524
+ function MessageActionsMenu({ showRevert, onRevert, } = {}) {
464
525
  const [open, setOpen] = useState(false);
526
+ const [menuPos, setMenuPos] = useState(null);
465
527
  const [copied, setCopied] = useState(null);
466
528
  const messageRuntime = useMessageRuntime();
467
529
  const actionsCtx = React.useContext(MessageActionsContext);
468
- const menuRef = useRef(null);
469
- useEffect(() => {
470
- if (!open)
471
- return;
472
- const handler = (e) => {
473
- if (menuRef.current && !menuRef.current.contains(e.target)) {
474
- setOpen(false);
475
- }
476
- };
477
- document.addEventListener("mousedown", handler);
478
- return () => document.removeEventListener("mousedown", handler);
479
- }, [open]);
530
+ const buttonRef = useRef(null);
480
531
  const handleCopyMessage = useCallback(() => {
481
532
  const m = messageRuntime.getState();
482
533
  const text = m.content
@@ -504,7 +555,20 @@ function MessageActionsMenu() {
504
555
  setOpen(false);
505
556
  actionsCtx?.onForkChat?.();
506
557
  }, [actionsCtx]);
507
- return (_jsxs("div", { className: "relative", ref: menuRef, children: [_jsx("button", { onClick: () => setOpen((v) => !v), className: cn("flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/70 hover:bg-accent hover:text-foreground", open && "bg-accent text-foreground"), children: _jsx(IconDots, { className: "h-3.5 w-3.5" }) }), open && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40", onClick: () => setOpen(false) }), _jsxs("div", { className: "absolute left-0 top-full z-50 mt-1 w-44 rounded-md border border-border bg-popover py-1 shadow-lg", children: [actionsCtx?.onForkChat && (_jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleForkChat, children: [_jsx(IconGitFork, { className: "h-3.5 w-3.5" }), "Fork Chat"] })), _jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleCopyMessage, children: [copied === "message" ? (_jsx(IconCheck, { className: "h-3.5 w-3.5" })) : (_jsx(IconCopy, { className: "h-3.5 w-3.5" })), copied === "message" ? "Copied!" : "Copy Message"] }), _jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleCopyRequestId, children: [copied === "id" ? (_jsx(IconCheck, { className: "h-3.5 w-3.5" })) : (_jsx(IconId, { className: "h-3.5 w-3.5" })), copied === "id" ? "Copied!" : "Copy Request ID"] })] })] }))] }));
558
+ const handleRevert = useCallback(() => {
559
+ setOpen(false);
560
+ onRevert?.();
561
+ }, [onRevert]);
562
+ const handleToggle = useCallback(() => {
563
+ if (!open && buttonRef.current) {
564
+ const rect = buttonRef.current.getBoundingClientRect();
565
+ setMenuPos({ top: rect.bottom + 4, left: rect.left });
566
+ }
567
+ setOpen((v) => !v);
568
+ }, [open]);
569
+ return (_jsxs("div", { className: "relative", children: [_jsx("button", { ref: buttonRef, onClick: handleToggle, className: cn("flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/70 hover:bg-accent hover:text-foreground", open && "bg-accent text-foreground"), children: _jsx(IconDots, { className: "h-3.5 w-3.5" }) }), open &&
570
+ menuPos &&
571
+ createPortal(_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0", style: { zIndex: 9998 }, onClick: () => setOpen(false) }), _jsxs("div", { className: "fixed w-44 rounded-md border border-border bg-popover py-1 shadow-lg", style: { top: menuPos.top, left: menuPos.left, zIndex: 9999 }, children: [actionsCtx?.onForkChat && (_jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleForkChat, children: [_jsx(IconGitFork, { className: "h-3.5 w-3.5" }), "Fork Chat"] })), _jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleCopyMessage, children: [copied === "message" ? (_jsx(IconCheck, { className: "h-3.5 w-3.5" })) : (_jsx(IconCopy, { className: "h-3.5 w-3.5" })), copied === "message" ? "Copied!" : "Copy Message"] }), _jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleCopyRequestId, children: [copied === "id" ? (_jsx(IconCheck, { className: "h-3.5 w-3.5" })) : (_jsx(IconId, { className: "h-3.5 w-3.5" })), copied === "id" ? "Copied!" : "Copy Request ID"] }), showRevert && (_jsxs("button", { className: "flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent", onClick: handleRevert, children: [_jsx(IconArrowBackUp, { className: "h-3.5 w-3.5" }), "Revert to here"] }))] })] }), document.body)] }));
508
572
  }
509
573
  function AssistantMessage() {
510
574
  const [restoreState, setRestoreState] = useState("idle");
@@ -563,7 +627,7 @@ function AssistantMessage() {
563
627
  tools: {
564
628
  Fallback: ToolCallFallback,
565
629
  },
566
- } }) }), isComplete && (_jsxs("div", { className: "mt-1 flex items-center justify-between", children: [_jsx(MessageActionsMenu, {}), _jsx(React.Suspense, { fallback: null, children: _jsx(ThumbsFeedbackLazy, { threadId: cpCtx?.threadId ?? "", runId: messageRuntime.getState().metadata?.runId ?? "", messageSeq: thread.messages.findIndex((m) => m.id === msg.id) }) }), showRestore && restoreState === "idle" && (_jsx("button", { onClick: handleRestore, title: "Restore project files to this point", className: "flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground", children: _jsx(IconArrowBackUp, { className: "h-3 w-3" }) })), showRestore && restoreState === "confirming" && (_jsxs("div", { className: "flex items-center gap-1 text-xs", children: [_jsx("button", { onClick: handleRestore, className: "rounded-md bg-destructive px-1.5 py-0.5 text-destructive-foreground hover:bg-destructive/90", children: "Restore to here?" }), _jsx("button", { onClick: cancelRestore, className: "rounded-md px-1.5 py-0.5 text-muted-foreground hover:bg-accent", children: "Cancel" })] })), showRestore && restoreState === "restoring" && (_jsxs("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [_jsx(IconLoader2, { className: "h-3 w-3 animate-spin" }), "Restoring..."] }))] }))] }));
630
+ } }) }), isComplete && (_jsxs("div", { className: "mt-1 flex items-center justify-between", children: [_jsx(MessageActionsMenu, { showRevert: showRestore && restoreState === "idle", onRevert: handleRestore }), showRestore && restoreState === "confirming" ? (_jsxs("div", { className: "flex items-center gap-1 text-xs", children: [_jsx("button", { onClick: handleRestore, className: "rounded-md bg-destructive px-1.5 py-0.5 text-destructive-foreground hover:bg-destructive/90", children: "Restore to here?" }), _jsx("button", { onClick: cancelRestore, className: "rounded-md px-1.5 py-0.5 text-muted-foreground hover:bg-accent", children: "Cancel" })] })) : showRestore && restoreState === "restoring" ? (_jsxs("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [_jsx(IconLoader2, { className: "h-3 w-3 animate-spin" }), "Restoring..."] })) : (_jsx(React.Suspense, { fallback: null, children: _jsx(ThumbsFeedbackLazy, { threadId: cpCtx?.threadId ?? "", runId: messageRuntime.getState().metadata?.runId ?? "", messageSeq: thread.messages.findIndex((m) => m.id === msg.id) }) }))] }))] }));
567
631
  }
568
632
  // ─── Thinking Indicator ─────────────────────────────────────────────────────
569
633
  function ThinkingIndicator({ label = "Thinking" } = {}) {
@@ -645,62 +709,6 @@ function ApiKeySetupCard({ apiUrl }) {
645
709
  handleSave();
646
710
  }, placeholder: "sk-ant-...", className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring", autoComplete: "off" }), error && _jsx("p", { className: "text-xs text-destructive", children: error }), apiKey.trim() && (_jsx("button", { onClick: handleSave, disabled: saving, className: "w-full rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed", children: saving ? "Saving..." : "Save API key" })), _jsx("p", { className: "text-[10px] text-muted-foreground/60 text-center", children: _jsx("a", { href: "https://console.anthropic.com/settings/keys", target: "_blank", rel: "noopener noreferrer", className: "underline hover:text-foreground/80", children: "Get an Anthropic key" }) })] })] }));
647
711
  }
648
- // ─── Builder.io CTA Card (usage limit / code changes / CLI) ─────────────────
649
- export function BuilderCtaCard({ reason, usageCents, limitCents, apiUrl = "/_agent-native/agent-chat", }) {
650
- const appName = typeof window !== "undefined"
651
- ? window.location.hostname.split(".")[0]
652
- : "app";
653
- const cloneCommand = `npx agent-native create ${appName}`;
654
- const [apiKey, setApiKey] = useState("");
655
- const [saving, setSaving] = useState(false);
656
- const [saved, setSaved] = useState(false);
657
- const [error, setError] = useState(null);
658
- const handleSave = async () => {
659
- if (!apiKey.trim())
660
- return;
661
- setSaving(true);
662
- setError(null);
663
- try {
664
- const res = await fetch(`${apiUrl}/save-key`, {
665
- method: "POST",
666
- headers: { "Content-Type": "application/json" },
667
- body: JSON.stringify({ key: apiKey.trim(), provider: "anthropic" }),
668
- });
669
- if (!res.ok) {
670
- const data = await res.json().catch(() => ({}));
671
- throw new Error(data.error || "Failed to save");
672
- }
673
- setSaved(true);
674
- setTimeout(() => window.location.reload(), 1000);
675
- }
676
- catch (err) {
677
- setError(err instanceof Error ? err.message : "Failed to save");
678
- }
679
- finally {
680
- setSaving(false);
681
- }
682
- };
683
- const title = reason === "usage_limit"
684
- ? "Free usage limit reached"
685
- : reason === "code_changes"
686
- ? "Code changes require a local setup"
687
- : "Get full access";
688
- const description = reason === "usage_limit"
689
- ? null
690
- : reason === "code_changes"
691
- ? "This app is running in hosted mode. To make code changes, add your own Anthropic API key or clone and run locally."
692
- : "This hosted app has limited AI features. Add your own Anthropic API key for the full experience, or clone and run locally.";
693
- if (saved) {
694
- return (_jsx("div", { className: "mx-4 my-6 rounded-lg border border-emerald-500/30 bg-emerald-500/5 p-4", children: _jsxs("div", { className: "flex items-center gap-2 text-sm text-emerald-400", children: [_jsx(IconCheck, { className: "h-4 w-4" }), "API key saved. Reloading..."] }) }));
695
- }
696
- return (_jsxs("div", { className: "mx-4 my-6 rounded-lg border border-border bg-card p-5", children: [_jsxs("div", { className: "flex items-center gap-3 mb-4", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted", children: _jsx(IconMessage, { className: "h-4.5 w-4.5 text-muted-foreground" }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-sm font-medium text-foreground", children: title }), description && (_jsx("p", { className: "text-xs text-muted-foreground mt-0.5", children: description }))] })] }), _jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "rounded-md bg-muted/50 px-3 py-2.5 text-xs text-muted-foreground leading-relaxed", children: _jsxs("p", { children: ["Paste an Anthropic API key (", _jsx("a", { href: "https://console.anthropic.com/settings/keys", target: "_blank", rel: "noopener noreferrer", className: "underline text-foreground/80 hover:text-foreground", children: "console.anthropic.com/settings/keys" }), ") to skip the free-tier limit."] }) }), _jsx("input", { type: "password", value: apiKey, onChange: (e) => {
697
- setApiKey(e.target.value);
698
- setError(null);
699
- }, onKeyDown: (e) => {
700
- if (e.key === "Enter")
701
- handleSave();
702
- }, placeholder: "sk-ant-...", className: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring", autoComplete: "off" }), error && _jsx("p", { className: "text-xs text-destructive", children: error }), _jsx("button", { onClick: handleSave, disabled: saving || !apiKey.trim(), className: "w-full rounded-md bg-primary px-3 py-2 text-sm font-medium text-primary-foreground hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed", children: saving ? "Saving..." : "Save API key" }), _jsxs("div", { className: "relative", children: [_jsx("div", { className: "absolute inset-0 flex items-center", children: _jsx("span", { className: "w-full border-t border-border" }) }), _jsx("div", { className: "relative flex justify-center text-xs", children: _jsx("span", { className: "bg-card px-2 text-muted-foreground", children: "or" }) })] }), _jsxs("div", { className: "rounded-md bg-muted/50 px-3 py-2.5", children: [_jsx("p", { className: "text-xs text-muted-foreground mb-1.5", children: "Clone and run locally:" }), _jsx("code", { className: "block text-xs text-foreground/80 font-mono break-all select-all", children: cloneCommand })] }), _jsx(BuilderConnectCta, { variant: "compact" })] })] }));
703
- }
704
712
  export const CHAT_STORAGE_PREFIX = "agent-chat:";
705
713
  /** Remove persisted chat for a given tabId (or "default"). */
706
714
  export function clearChatStorage(tabId) {
@@ -743,7 +751,6 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
743
751
  const messages = thread.messages;
744
752
  const [missingApiKey, setMissingApiKey] = useState(false);
745
753
  const [authError, setAuthError] = useState(null);
746
- const [usageLimitReached, setUsageLimitReached] = useState(null);
747
754
  const [queuedMessages, setQueuedMessages] = useState([]);
748
755
  // Tracks the JSON of the last queue we successfully persisted so the
749
756
  // debounced save effect can skip no-op writes (e.g. restore-from-server
@@ -855,7 +862,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
855
862
  setIsReconnecting(true);
856
863
  setReconnectContent([]);
857
864
  // Signal tab running indicator
858
- window.dispatchEvent(new CustomEvent("builder.chatRunning", {
865
+ window.dispatchEvent(new CustomEvent("agentNative.chatRunning", {
859
866
  detail: { isRunning: true, tabId: tabId || threadId },
860
867
  }));
861
868
  // Create AbortController before the async call so stop button
@@ -969,7 +976,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
969
976
  // If loaded=false (timeout), keep content frozen so user sees what happened.
970
977
  setIsReconnecting(false);
971
978
  reconnectRunIdRef.current = null;
972
- window.dispatchEvent(new CustomEvent("builder.chatRunning", {
979
+ window.dispatchEvent(new CustomEvent("agentNative.chatRunning", {
973
980
  detail: { isRunning: false, tabId: tabId || threadId },
974
981
  }));
975
982
  }
@@ -1139,13 +1146,13 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1139
1146
  let cancelled = false;
1140
1147
  const check = async () => {
1141
1148
  const [envKeys, builderStatus, engineStatus] = await Promise.all([
1142
- fetch("/_agent-native/env-status")
1149
+ fetch(agentNativePath("/_agent-native/env-status"))
1143
1150
  .then((r) => (r.ok ? r.json() : null))
1144
1151
  .catch(() => null),
1145
- fetch("/_agent-native/builder/status")
1152
+ fetch(agentNativePath("/_agent-native/builder/status"))
1146
1153
  .then((r) => (r.ok ? r.json() : null))
1147
1154
  .catch(() => null),
1148
- fetch("/_agent-native/agent-engine/status")
1155
+ fetch(agentNativePath("/_agent-native/agent-engine/status"))
1149
1156
  .then((r) => (r.ok ? r.json() : null))
1150
1157
  .catch(() => null),
1151
1158
  ]);
@@ -1179,18 +1186,6 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1179
1186
  window.addEventListener("agent-chat:auth-error", handler);
1180
1187
  return () => window.removeEventListener("agent-chat:auth-error", handler);
1181
1188
  }, []);
1182
- // Listen for usage limit reached events from the adapter
1183
- useEffect(() => {
1184
- const handler = (e) => {
1185
- const detail = e.detail;
1186
- setUsageLimitReached({
1187
- usageCents: detail?.usageCents ?? 0,
1188
- limitCents: detail?.limitCents ?? 100,
1189
- });
1190
- };
1191
- window.addEventListener("agent-chat:usage-limit-reached", handler);
1192
- return () => window.removeEventListener("agent-chat:usage-limit-reached", handler);
1193
- }, []);
1194
1189
  // Listen for loop-limit events from the adapter
1195
1190
  useEffect(() => {
1196
1191
  const handler = (e) => {
@@ -1257,6 +1252,9 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1257
1252
  }, [isReconnecting, forceStopped]);
1258
1253
  const addToQueue = useCallback((text, images, references) => {
1259
1254
  setShowContinue(false);
1255
+ // Selection context attached via Cmd+I is one-shot — clear it as soon
1256
+ // as the user actually sends a message so it can't be re-used.
1257
+ clearPendingSelection();
1260
1258
  if (isRunning) {
1261
1259
  setQueuedMessages((prev) => [
1262
1260
  ...prev,
@@ -1359,7 +1357,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1359
1357
  ? "Session expired"
1360
1358
  : "Authentication required" }), _jsx("p", { className: "text-xs text-muted-foreground leading-relaxed", children: authError.sessionExpired ? ("Your session may have expired. Log out and log back in to reconnect.") : (_jsxs(_Fragment, { children: ["You need to log in to use the agent. If you're running locally, add", " ", _jsx("code", { className: "bg-muted px-1 py-0.5 rounded text-[10px]", children: "AUTH_MODE=local" }), " ", "to your", " ", _jsx("code", { className: "bg-muted px-1 py-0.5 rounded text-[10px]", children: ".env" }), " ", "file and restart the dev server."] })) })] }), _jsxs("div", { className: "flex gap-2", children: [authError.sessionExpired && (_jsx("button", { onClick: async () => {
1361
1359
  try {
1362
- await fetch("/_agent-native/auth/logout", {
1360
+ await fetch(agentNativePath("/_agent-native/auth/logout"), {
1363
1361
  method: "POST",
1364
1362
  });
1365
1363
  }
@@ -1368,7 +1366,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1368
1366
  }, className: "text-xs text-destructive hover:text-destructive/80 px-3 py-1.5 rounded-md border border-destructive/30 hover:bg-destructive/10", children: "Log out" })), _jsx("button", { onClick: () => {
1369
1367
  setAuthError(null);
1370
1368
  window.location.reload();
1371
- }, className: "text-xs text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md border border-border hover:bg-accent", children: "Retry" })] })] })) : missingApiKey ? (_jsx("div", { className: "flex flex-col items-center justify-center h-full px-2", children: _jsx(ApiKeySetupCard, { apiUrl: apiUrl }) })) : usageLimitReached ? (_jsx("div", { className: "flex flex-col items-center justify-center h-full px-2", children: _jsx(BuilderCtaCard, { reason: "usage_limit", usageCents: usageLimitReached.usageCents, limitCents: usageLimitReached.limitCents, apiUrl: apiUrl }) })) : isRestoring ? (_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "flex justify-end", children: _jsx("div", { className: "h-8 w-32 rounded-lg bg-muted animate-pulse" }) }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("div", { className: "h-4 w-48 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-64 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-40 rounded bg-muted animate-pulse" })] })] })) : messages.length === 0 && !isReconnecting ? (_jsxs("div", { className: "flex flex-col items-center justify-center gap-4 py-16 px-4 h-full", children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted", children: _jsx(IconMessage, { className: "h-5 w-5 text-muted-foreground" }) }), _jsx("p", { className: "text-sm text-muted-foreground text-center max-w-[240px]", children: emptyStateText ?? "How can I help you?" }), suggestions && suggestions.length > 0 && (_jsx("div", { className: "flex flex-col gap-1.5 w-full max-w-[280px]", children: suggestions.map((suggestion) => (_jsx("button", { onClick: () => {
1369
+ }, className: "text-xs text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md border border-border hover:bg-accent", children: "Retry" })] })] })) : missingApiKey ? (_jsx("div", { className: "flex flex-col items-center justify-center h-full px-2", children: _jsx(ApiKeySetupCard, { apiUrl: apiUrl }) })) : isRestoring ? (_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "flex justify-end", children: _jsx("div", { className: "h-8 w-32 rounded-lg bg-muted animate-pulse" }) }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("div", { className: "h-4 w-48 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-64 rounded bg-muted animate-pulse" }), _jsx("div", { className: "h-4 w-40 rounded bg-muted animate-pulse" })] })] })) : messages.length === 0 && !isReconnecting ? (_jsxs("div", { className: "flex flex-col items-center justify-center gap-4 py-16 px-4 h-full", children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-muted", children: _jsx(IconMessage, { className: "h-5 w-5 text-muted-foreground" }) }), _jsx("p", { className: "text-sm text-muted-foreground text-center max-w-[240px]", children: emptyStateText ?? "How can I help you?" }), suggestions && suggestions.length > 0 && (_jsx("div", { className: "flex flex-col gap-1.5 w-full max-w-[280px]", children: suggestions.map((suggestion) => (_jsx("button", { onClick: () => {
1372
1370
  threadRuntime.append({
1373
1371
  role: "user",
1374
1372
  content: [{ type: "text", text: suggestion }],
@@ -1385,7 +1383,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1385
1383
  .replace(/<context>[\s\S]*?<\/context>\n?/g, "")
1386
1384
  .trim();
1387
1385
  return (_jsx("div", { className: "flex justify-end group", children: _jsxs("div", { className: "relative max-w-[85%] rounded-lg bg-accent/50 text-foreground/60 px-3 py-2 text-sm leading-relaxed whitespace-pre-wrap break-words", children: [_jsxs("div", { className: "flex items-center gap-1.5 text-[10px] text-muted-foreground mb-1 font-medium uppercase tracking-wide", children: [_jsx(IconClock, { className: "h-3 w-3" }), "Queued"] }), displayText, msg.images && msg.images.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5 mt-1.5", children: msg.images.map((img, j) => (_jsx("img", { src: img, alt: "", className: "h-12 w-12 rounded object-cover border border-border/50" }, j))) })), _jsx("button", { type: "button", onClick: () => setQueuedMessages((prev) => prev.filter((m) => m.id !== msg.id)), "aria-label": "Remove from queue", className: "absolute -top-2 -right-2 flex h-5 w-5 items-center justify-center rounded-full border border-border bg-background text-muted-foreground opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:text-foreground hover:bg-accent shadow-sm", children: _jsx(IconX, { className: "h-3 w-3" }) })] }) }, msg.id));
1388
- })] })) }), showScrollToBottom && (_jsx("div", { className: "shrink-0 flex justify-center -mb-1", children: _jsx("button", { type: "button", onClick: scrollToBottom, className: "flex h-7 w-7 items-center justify-center rounded-full border border-border bg-background shadow-sm hover:bg-accent", "aria-label": "Scroll to bottom", children: _jsx(IconChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) }) })), composerSlot, _jsx("div", { className: "agent-composer-area shrink-0 px-3 py-2", children: _jsxs(ComposerPrimitive.Root, { className: "flex flex-col rounded-lg border border-input bg-background focus-within:ring-1 focus-within:ring-ring", children: [_jsx(ComposerAttachmentPreviewStrip, {}), _jsx(TiptapComposer, { focusRef: tiptapRef, disabled: missingApiKey, placeholder: missingApiKey
1386
+ })] })) }), showScrollToBottom && (_jsx("div", { className: "shrink-0 flex justify-center -mb-1", children: _jsx("button", { type: "button", onClick: scrollToBottom, className: "flex h-7 w-7 items-center justify-center rounded-full border border-border bg-background shadow-sm hover:bg-accent", "aria-label": "Scroll to bottom", children: _jsx(IconChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) }) })), composerSlot, _jsx(SelectionAttachedPill, {}), _jsx("div", { className: "agent-composer-area shrink-0 px-3 py-2", children: _jsxs(ComposerPrimitive.Root, { className: "flex flex-col rounded-lg border border-input bg-background focus-within:ring-1 focus-within:ring-ring", children: [_jsx(ComposerAttachmentPreviewStrip, {}), _jsx(TiptapComposer, { focusRef: tiptapRef, disabled: missingApiKey, placeholder: missingApiKey
1389
1387
  ? "Connect an AI engine above to start chatting…"
1390
1388
  : isRunning
1391
1389
  ? queuedMessages.length > 0
@@ -1393,7 +1391,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1393
1391
  : "Queue a message..."
1394
1392
  : undefined, onSubmit: isRunning
1395
1393
  ? (text, references) => addToQueue(text, undefined, references.length > 0 ? references : undefined)
1396
- : undefined, onSlashCommand: onSlashCommand, execMode: execMode, onExecModeChange: onExecModeChange, selectedModel: selectedModel ?? defaultModel, availableModels: availableModels, onModelChange: onModelChange, extraActionButton: showRunningInUI ? (_jsx("button", { type: "button", onClick: () => {
1394
+ : undefined, onSlashCommand: onSlashCommand, execMode: execMode, onExecModeChange: onExecModeChange, selectedModel: selectedModel ?? defaultModel, availableModels: availableModels, onModelChange: onModelChange, draftScope: threadId || tabId, extraActionButton: showRunningInUI ? (_jsx("button", { type: "button", onClick: () => {
1397
1395
  // Nuclear stop: flip forceStopped so isRunning is false
1398
1396
  // immediately. This unblocks submission even if the
1399
1397
  // runtime or reconnect state is stuck.
@@ -1409,7 +1407,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1409
1407
  setReconnectFrozen(reconnectContent.length > 0);
1410
1408
  }
1411
1409
  threadRuntime.cancelRun();
1412
- window.dispatchEvent(new CustomEvent("builder.chatRunning", {
1410
+ window.dispatchEvent(new CustomEvent("agentNative.chatRunning", {
1413
1411
  detail: {
1414
1412
  isRunning: false,
1415
1413
  tabId: tabId || threadId,
@@ -1417,7 +1415,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
1417
1415
  }));
1418
1416
  }, className: "shrink-0 flex h-7 w-7 items-center justify-center rounded-md bg-muted text-foreground hover:bg-muted/80", title: "Stop generating", children: _jsx(IconPlayerStop, { className: "h-3.5 w-3.5" }) })) : undefined })] }) })] }) }) }) }));
1419
1417
  });
1420
- export const AssistantChat = forwardRef(function AssistantChat({ apiUrl = "/_agent-native/agent-chat", tabId, threadId, ...props }, ref) {
1418
+ export const AssistantChat = forwardRef(function AssistantChat({ apiUrl = agentNativePath("/_agent-native/agent-chat"), tabId, threadId, ...props }, ref) {
1421
1419
  const modelRef = useRef(props.selectedModel);
1422
1420
  modelRef.current = props.selectedModel;
1423
1421
  const engineRef = useRef(props.selectedEngine);