@agent-native/core 0.7.14 → 0.7.15

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 (737) 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 +166 -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/agent/default-model.d.ts +21 -0
  13. package/dist/agent/default-model.d.ts.map +1 -0
  14. package/dist/agent/default-model.js +21 -0
  15. package/dist/agent/default-model.js.map +1 -0
  16. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  17. package/dist/agent/engine/ai-sdk-engine.js +7 -4
  18. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  19. package/dist/agent/engine/anthropic-engine.d.ts +1 -1
  20. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  21. package/dist/agent/engine/anthropic-engine.js +10 -4
  22. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  23. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  24. package/dist/agent/engine/builder-engine.js +4 -1
  25. package/dist/agent/engine/builder-engine.js.map +1 -1
  26. package/dist/agent/engine/builtin.js +1 -1
  27. package/dist/agent/engine/builtin.js.map +1 -1
  28. package/dist/agent/engine/registry.d.ts +27 -7
  29. package/dist/agent/engine/registry.d.ts.map +1 -1
  30. package/dist/agent/engine/registry.js +101 -20
  31. package/dist/agent/engine/registry.js.map +1 -1
  32. package/dist/agent/index.d.ts +1 -0
  33. package/dist/agent/index.d.ts.map +1 -1
  34. package/dist/agent/index.js +1 -0
  35. package/dist/agent/index.js.map +1 -1
  36. package/dist/agent/production-agent.d.ts +25 -3
  37. package/dist/agent/production-agent.d.ts.map +1 -1
  38. package/dist/agent/production-agent.js +227 -36
  39. package/dist/agent/production-agent.js.map +1 -1
  40. package/dist/application-state/handlers.d.ts.map +1 -1
  41. package/dist/application-state/handlers.js +10 -6
  42. package/dist/application-state/handlers.js.map +1 -1
  43. package/dist/application-state/script-helpers.d.ts +1 -1
  44. package/dist/application-state/script-helpers.d.ts.map +1 -1
  45. package/dist/application-state/script-helpers.js +12 -8
  46. package/dist/application-state/script-helpers.js.map +1 -1
  47. package/dist/application-state/store.d.ts.map +1 -1
  48. package/dist/application-state/store.js +19 -10
  49. package/dist/application-state/store.js.map +1 -1
  50. package/dist/chat-threads/store.d.ts.map +1 -1
  51. package/dist/chat-threads/store.js +4 -1
  52. package/dist/chat-threads/store.js.map +1 -1
  53. package/dist/cli/create.d.ts.map +1 -1
  54. package/dist/cli/create.js +79 -13
  55. package/dist/cli/create.js.map +1 -1
  56. package/dist/cli/index.js +97 -39
  57. package/dist/cli/index.js.map +1 -1
  58. package/dist/cli/templates-meta.d.ts +4 -0
  59. package/dist/cli/templates-meta.d.ts.map +1 -1
  60. package/dist/cli/templates-meta.js +56 -12
  61. package/dist/cli/templates-meta.js.map +1 -1
  62. package/dist/cli/workspacify.d.ts +2 -0
  63. package/dist/cli/workspacify.d.ts.map +1 -1
  64. package/dist/cli/workspacify.js +5 -4
  65. package/dist/cli/workspacify.js.map +1 -1
  66. package/dist/client/AgentPanel.d.ts +5 -2
  67. package/dist/client/AgentPanel.d.ts.map +1 -1
  68. package/dist/client/AgentPanel.js +61 -23
  69. package/dist/client/AgentPanel.js.map +1 -1
  70. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  71. package/dist/client/AgentTaskCard.js +3 -2
  72. package/dist/client/AgentTaskCard.js.map +1 -1
  73. package/dist/client/AssistantChat.d.ts.map +1 -1
  74. package/dist/client/AssistantChat.js +79 -16
  75. package/dist/client/AssistantChat.js.map +1 -1
  76. package/dist/client/ConnectBuilderCard.d.ts.map +1 -1
  77. package/dist/client/ConnectBuilderCard.js +2 -1
  78. package/dist/client/ConnectBuilderCard.js.map +1 -1
  79. package/dist/client/DefaultSpinner.d.ts +1 -1
  80. package/dist/client/DefaultSpinner.d.ts.map +1 -1
  81. package/dist/client/DefaultSpinner.js +2 -9
  82. package/dist/client/DefaultSpinner.js.map +1 -1
  83. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  84. package/dist/client/MultiTabAssistantChat.js +20 -19
  85. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  86. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  87. package/dist/client/agent-chat-adapter.js +2 -1
  88. package/dist/client/agent-chat-adapter.js.map +1 -1
  89. package/dist/client/agent-chat.d.ts.map +1 -1
  90. package/dist/client/agent-chat.js +3 -1
  91. package/dist/client/agent-chat.js.map +1 -1
  92. package/dist/client/analytics.d.ts.map +1 -1
  93. package/dist/client/analytics.js +70 -1
  94. package/dist/client/analytics.js.map +1 -1
  95. package/dist/client/api-path.d.ts +5 -0
  96. package/dist/client/api-path.d.ts.map +1 -0
  97. package/dist/client/api-path.js +48 -0
  98. package/dist/client/api-path.js.map +1 -0
  99. package/dist/client/components/ApiKeySettings.d.ts.map +1 -1
  100. package/dist/client/components/ApiKeySettings.js +3 -2
  101. package/dist/client/components/ApiKeySettings.js.map +1 -1
  102. package/dist/client/components/CodeRequiredDialog.d.ts.map +1 -1
  103. package/dist/client/components/CodeRequiredDialog.js +3 -2
  104. package/dist/client/components/CodeRequiredDialog.js.map +1 -1
  105. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  106. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  107. package/dist/client/composer/TiptapComposer.js +9 -8
  108. package/dist/client/composer/TiptapComposer.js.map +1 -1
  109. package/dist/client/composer/draft-key.d.ts +2 -0
  110. package/dist/client/composer/draft-key.d.ts.map +1 -0
  111. package/dist/client/composer/draft-key.js +8 -0
  112. package/dist/client/composer/draft-key.js.map +1 -0
  113. package/dist/client/composer/use-file-search.d.ts.map +1 -1
  114. package/dist/client/composer/use-file-search.js +2 -1
  115. package/dist/client/composer/use-file-search.js.map +1 -1
  116. package/dist/client/composer/use-mention-search.d.ts.map +1 -1
  117. package/dist/client/composer/use-mention-search.js +2 -1
  118. package/dist/client/composer/use-mention-search.js.map +1 -1
  119. package/dist/client/composer/use-skills.d.ts.map +1 -1
  120. package/dist/client/composer/use-skills.js +2 -1
  121. package/dist/client/composer/use-skills.js.map +1 -1
  122. package/dist/client/composer/useVoiceDictation.d.ts +1 -1
  123. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  124. package/dist/client/composer/useVoiceDictation.js +16 -8
  125. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  126. package/dist/client/dev-mode.d.ts +14 -0
  127. package/dist/client/dev-mode.d.ts.map +1 -0
  128. package/dist/client/dev-mode.js +14 -0
  129. package/dist/client/dev-mode.js.map +1 -0
  130. package/dist/client/dev-overlay/DevOverlay.d.ts +26 -0
  131. package/dist/client/dev-overlay/DevOverlay.d.ts.map +1 -0
  132. package/dist/client/dev-overlay/DevOverlay.js +315 -0
  133. package/dist/client/dev-overlay/DevOverlay.js.map +1 -0
  134. package/dist/client/dev-overlay/builtins.d.ts +6 -0
  135. package/dist/client/dev-overlay/builtins.d.ts.map +1 -0
  136. package/dist/client/dev-overlay/builtins.js +35 -0
  137. package/dist/client/dev-overlay/builtins.js.map +1 -0
  138. package/dist/client/dev-overlay/index.d.ts +6 -0
  139. package/dist/client/dev-overlay/index.d.ts.map +1 -0
  140. package/dist/client/dev-overlay/index.js +5 -0
  141. package/dist/client/dev-overlay/index.js.map +1 -0
  142. package/dist/client/dev-overlay/registry.d.ts +13 -0
  143. package/dist/client/dev-overlay/registry.d.ts.map +1 -0
  144. package/dist/client/dev-overlay/registry.js +63 -0
  145. package/dist/client/dev-overlay/registry.js.map +1 -0
  146. package/dist/client/dev-overlay/types.d.ts +56 -0
  147. package/dist/client/dev-overlay/types.d.ts.map +1 -0
  148. package/dist/client/dev-overlay/types.js +9 -0
  149. package/dist/client/dev-overlay/types.js.map +1 -0
  150. package/dist/client/dev-overlay/use-dev-option.d.ts +12 -0
  151. package/dist/client/dev-overlay/use-dev-option.d.ts.map +1 -0
  152. package/dist/client/dev-overlay/use-dev-option.js +73 -0
  153. package/dist/client/dev-overlay/use-dev-option.js.map +1 -0
  154. package/dist/client/dev-overlay/use-dev-overlay-shortcut.d.ts +6 -0
  155. package/dist/client/dev-overlay/use-dev-overlay-shortcut.d.ts.map +1 -0
  156. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js +29 -0
  157. package/dist/client/dev-overlay/use-dev-overlay-shortcut.js.map +1 -0
  158. package/dist/client/frame.d.ts +1 -0
  159. package/dist/client/frame.d.ts.map +1 -1
  160. package/dist/client/frame.js +32 -11
  161. package/dist/client/frame.js.map +1 -1
  162. package/dist/client/index.d.ts +4 -0
  163. package/dist/client/index.d.ts.map +1 -1
  164. package/dist/client/index.js +4 -0
  165. package/dist/client/index.js.map +1 -1
  166. package/dist/client/integrations/IntegrationCard.d.ts.map +1 -1
  167. package/dist/client/integrations/IntegrationCard.js +3 -2
  168. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  169. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  170. package/dist/client/integrations/IntegrationsPanel.js +3 -2
  171. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  172. package/dist/client/integrations/useIntegrationStatus.d.ts.map +1 -1
  173. package/dist/client/integrations/useIntegrationStatus.js +2 -1
  174. package/dist/client/integrations/useIntegrationStatus.js.map +1 -1
  175. package/dist/client/notifications/NotificationsBell.d.ts.map +1 -1
  176. package/dist/client/notifications/NotificationsBell.js +26 -8
  177. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  178. package/dist/client/observability/ThumbsFeedback.d.ts.map +1 -1
  179. package/dist/client/observability/ThumbsFeedback.js +2 -1
  180. package/dist/client/observability/ThumbsFeedback.js.map +1 -1
  181. package/dist/client/observability/useObservability.d.ts.map +1 -1
  182. package/dist/client/observability/useObservability.js +2 -1
  183. package/dist/client/observability/useObservability.js.map +1 -1
  184. package/dist/client/onboarding/OnboardingPanel.d.ts +0 -7
  185. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  186. package/dist/client/onboarding/OnboardingPanel.js +20 -10
  187. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  188. package/dist/client/onboarding/index.d.ts +1 -0
  189. package/dist/client/onboarding/index.d.ts.map +1 -1
  190. package/dist/client/onboarding/index.js +1 -0
  191. package/dist/client/onboarding/index.js.map +1 -1
  192. package/dist/client/onboarding/use-onboarding.d.ts +1 -7
  193. package/dist/client/onboarding/use-onboarding.d.ts.map +1 -1
  194. package/dist/client/onboarding/use-onboarding.js +27 -13
  195. package/dist/client/onboarding/use-onboarding.js.map +1 -1
  196. package/dist/client/onboarding/use-preview-mode.d.ts +10 -0
  197. package/dist/client/onboarding/use-preview-mode.d.ts.map +1 -0
  198. package/dist/client/onboarding/use-preview-mode.js +35 -0
  199. package/dist/client/onboarding/use-preview-mode.js.map +1 -0
  200. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  201. package/dist/client/org/OrgSwitcher.js +2 -1
  202. package/dist/client/org/OrgSwitcher.js.map +1 -1
  203. package/dist/client/org/TeamPage.d.ts.map +1 -1
  204. package/dist/client/org/TeamPage.js +7 -5
  205. package/dist/client/org/TeamPage.js.map +1 -1
  206. package/dist/client/org/hooks.d.ts.map +1 -1
  207. package/dist/client/org/hooks.js +2 -1
  208. package/dist/client/org/hooks.js.map +1 -1
  209. package/dist/client/progress/RunsTray.d.ts.map +1 -1
  210. package/dist/client/progress/RunsTray.js +2 -1
  211. package/dist/client/progress/RunsTray.js.map +1 -1
  212. package/dist/client/resources/McpServerDetail.d.ts +0 -8
  213. package/dist/client/resources/McpServerDetail.d.ts.map +1 -1
  214. package/dist/client/resources/McpServerDetail.js +6 -1
  215. package/dist/client/resources/McpServerDetail.js.map +1 -1
  216. package/dist/client/resources/ResourceEditor.d.ts.map +1 -1
  217. package/dist/client/resources/ResourceEditor.js +2 -1
  218. package/dist/client/resources/ResourceEditor.js.map +1 -1
  219. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  220. package/dist/client/resources/ResourcesPanel.js +2 -1
  221. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  222. package/dist/client/resources/use-mcp-servers.d.ts.map +1 -1
  223. package/dist/client/resources/use-mcp-servers.js +7 -2
  224. package/dist/client/resources/use-mcp-servers.js.map +1 -1
  225. package/dist/client/resources/use-resources.d.ts.map +1 -1
  226. package/dist/client/resources/use-resources.js +9 -7
  227. package/dist/client/resources/use-resources.js.map +1 -1
  228. package/dist/client/settings/AgentsSection.d.ts.map +1 -1
  229. package/dist/client/settings/AgentsSection.js +7 -5
  230. package/dist/client/settings/AgentsSection.js.map +1 -1
  231. package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
  232. package/dist/client/settings/AutomationsSection.js +9 -5
  233. package/dist/client/settings/AutomationsSection.js.map +1 -1
  234. package/dist/client/settings/BackgroundAgentSection.d.ts.map +1 -1
  235. package/dist/client/settings/BackgroundAgentSection.js +2 -1
  236. package/dist/client/settings/BackgroundAgentSection.js.map +1 -1
  237. package/dist/client/settings/SecretsSection.d.ts.map +1 -1
  238. package/dist/client/settings/SecretsSection.js +12 -4
  239. package/dist/client/settings/SecretsSection.js.map +1 -1
  240. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  241. package/dist/client/settings/SettingsPanel.js +15 -23
  242. package/dist/client/settings/SettingsPanel.js.map +1 -1
  243. package/dist/client/settings/UsageSection.d.ts.map +1 -1
  244. package/dist/client/settings/UsageSection.js +2 -1
  245. package/dist/client/settings/UsageSection.js.map +1 -1
  246. package/dist/client/settings/VoiceTranscriptionSection.d.ts +2 -4
  247. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -1
  248. package/dist/client/settings/VoiceTranscriptionSection.js +66 -23
  249. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  250. package/dist/client/settings/useBuilderStatus.d.ts +9 -0
  251. package/dist/client/settings/useBuilderStatus.d.ts.map +1 -1
  252. package/dist/client/settings/useBuilderStatus.js +31 -3
  253. package/dist/client/settings/useBuilderStatus.js.map +1 -1
  254. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  255. package/dist/client/sharing/ShareButton.js +7 -2
  256. package/dist/client/sharing/ShareButton.js.map +1 -1
  257. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  258. package/dist/client/sharing/ShareDialog.js +4 -3
  259. package/dist/client/sharing/ShareDialog.js.map +1 -1
  260. package/dist/client/terminal/AgentTerminal.d.ts +1 -0
  261. package/dist/client/terminal/AgentTerminal.d.ts.map +1 -1
  262. package/dist/client/terminal/AgentTerminal.js +12 -8
  263. package/dist/client/terminal/AgentTerminal.js.map +1 -1
  264. package/dist/client/tools/EmbeddedTool.d.ts +20 -0
  265. package/dist/client/tools/EmbeddedTool.d.ts.map +1 -0
  266. package/dist/client/tools/EmbeddedTool.js +113 -0
  267. package/dist/client/tools/EmbeddedTool.js.map +1 -0
  268. package/dist/client/tools/ExtensionSlot.d.ts +27 -0
  269. package/dist/client/tools/ExtensionSlot.d.ts.map +1 -0
  270. package/dist/client/tools/ExtensionSlot.js +96 -0
  271. package/dist/client/tools/ExtensionSlot.js.map +1 -0
  272. package/dist/client/tools/ToolEditor.d.ts.map +1 -1
  273. package/dist/client/tools/ToolEditor.js +5 -4
  274. package/dist/client/tools/ToolEditor.js.map +1 -1
  275. package/dist/client/tools/ToolViewer.d.ts.map +1 -1
  276. package/dist/client/tools/ToolViewer.js +10 -44
  277. package/dist/client/tools/ToolViewer.js.map +1 -1
  278. package/dist/client/tools/ToolViewerPage.d.ts.map +1 -1
  279. package/dist/client/tools/ToolViewerPage.js +2 -1
  280. package/dist/client/tools/ToolViewerPage.js.map +1 -1
  281. package/dist/client/tools/ToolsListPage.d.ts.map +1 -1
  282. package/dist/client/tools/ToolsListPage.js +3 -2
  283. package/dist/client/tools/ToolsListPage.js.map +1 -1
  284. package/dist/client/tools/ToolsSidebarSection.d.ts.map +1 -1
  285. package/dist/client/tools/ToolsSidebarSection.js +4 -3
  286. package/dist/client/tools/ToolsSidebarSection.js.map +1 -1
  287. package/dist/client/tools/iframe-bridge.d.ts +16 -0
  288. package/dist/client/tools/iframe-bridge.d.ts.map +1 -0
  289. package/dist/client/tools/iframe-bridge.js +118 -0
  290. package/dist/client/tools/iframe-bridge.js.map +1 -0
  291. package/dist/client/tools/index.d.ts +2 -0
  292. package/dist/client/tools/index.d.ts.map +1 -1
  293. package/dist/client/tools/index.js +2 -0
  294. package/dist/client/tools/index.js.map +1 -1
  295. package/dist/client/use-action.d.ts.map +1 -1
  296. package/dist/client/use-action.js +2 -1
  297. package/dist/client/use-action.js.map +1 -1
  298. package/dist/client/use-avatar.d.ts.map +1 -1
  299. package/dist/client/use-avatar.js +3 -2
  300. package/dist/client/use-avatar.js.map +1 -1
  301. package/dist/client/use-builder-enabled.d.ts.map +1 -1
  302. package/dist/client/use-builder-enabled.js +2 -1
  303. package/dist/client/use-builder-enabled.js.map +1 -1
  304. package/dist/client/use-chat-threads.d.ts.map +1 -1
  305. package/dist/client/use-chat-threads.js +2 -1
  306. package/dist/client/use-chat-threads.js.map +1 -1
  307. package/dist/client/use-db-sync.d.ts.map +1 -1
  308. package/dist/client/use-db-sync.js +3 -2
  309. package/dist/client/use-db-sync.js.map +1 -1
  310. package/dist/client/use-dev-mode.d.ts.map +1 -1
  311. package/dist/client/use-dev-mode.js +2 -1
  312. package/dist/client/use-dev-mode.js.map +1 -1
  313. package/dist/client/use-send-to-agent-chat.d.ts.map +1 -1
  314. package/dist/client/use-send-to-agent-chat.js +3 -1
  315. package/dist/client/use-send-to-agent-chat.js.map +1 -1
  316. package/dist/client/use-session.d.ts.map +1 -1
  317. package/dist/client/use-session.js +2 -1
  318. package/dist/client/use-session.js.map +1 -1
  319. package/dist/client/useProductionAgent.d.ts.map +1 -1
  320. package/dist/client/useProductionAgent.js +2 -1
  321. package/dist/client/useProductionAgent.js.map +1 -1
  322. package/dist/collab/client.d.ts.map +1 -1
  323. package/dist/collab/client.js +3 -2
  324. package/dist/collab/client.js.map +1 -1
  325. package/dist/credentials/index.d.ts +27 -10
  326. package/dist/credentials/index.d.ts.map +1 -1
  327. package/dist/credentials/index.js +61 -19
  328. package/dist/credentials/index.js.map +1 -1
  329. package/dist/db/client.d.ts.map +1 -1
  330. package/dist/db/client.js +10 -1
  331. package/dist/db/client.js.map +1 -1
  332. package/dist/db/migrations.d.ts +13 -5
  333. package/dist/db/migrations.d.ts.map +1 -1
  334. package/dist/db/migrations.js +9 -2
  335. package/dist/db/migrations.js.map +1 -1
  336. package/dist/deploy/build.d.ts +12 -1
  337. package/dist/deploy/build.d.ts.map +1 -1
  338. package/dist/deploy/build.js +195 -23
  339. package/dist/deploy/build.js.map +1 -1
  340. package/dist/file-upload/registry.d.ts.map +1 -1
  341. package/dist/file-upload/registry.js +25 -1
  342. package/dist/file-upload/registry.js.map +1 -1
  343. package/dist/index.d.ts +1 -1
  344. package/dist/index.d.ts.map +1 -1
  345. package/dist/index.js +1 -1
  346. package/dist/index.js.map +1 -1
  347. package/dist/integrations/adapters/email.d.ts.map +1 -1
  348. package/dist/integrations/adapters/email.js +152 -32
  349. package/dist/integrations/adapters/email.js.map +1 -1
  350. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  351. package/dist/integrations/adapters/slack.js +190 -32
  352. package/dist/integrations/adapters/slack.js.map +1 -1
  353. package/dist/integrations/adapters/telegram.d.ts.map +1 -1
  354. package/dist/integrations/adapters/telegram.js +37 -2
  355. package/dist/integrations/adapters/telegram.js.map +1 -1
  356. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
  357. package/dist/integrations/adapters/whatsapp.js +91 -12
  358. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  359. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  360. package/dist/integrations/google-docs-poller.js +5 -2
  361. package/dist/integrations/google-docs-poller.js.map +1 -1
  362. package/dist/integrations/internal-token.d.ts.map +1 -1
  363. package/dist/integrations/internal-token.js +17 -1
  364. package/dist/integrations/internal-token.js.map +1 -1
  365. package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -1
  366. package/dist/integrations/pending-tasks-retry-job.js +18 -7
  367. package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
  368. package/dist/integrations/pending-tasks-store.d.ts +16 -0
  369. package/dist/integrations/pending-tasks-store.d.ts.map +1 -1
  370. package/dist/integrations/pending-tasks-store.js +58 -5
  371. package/dist/integrations/pending-tasks-store.js.map +1 -1
  372. package/dist/integrations/plugin.d.ts.map +1 -1
  373. package/dist/integrations/plugin.js +198 -15
  374. package/dist/integrations/plugin.js.map +1 -1
  375. package/dist/integrations/types.d.ts +33 -2
  376. package/dist/integrations/types.d.ts.map +1 -1
  377. package/dist/integrations/webhook-handler.d.ts +6 -0
  378. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  379. package/dist/integrations/webhook-handler.js +141 -61
  380. package/dist/integrations/webhook-handler.js.map +1 -1
  381. package/dist/jobs/cron.d.ts.map +1 -1
  382. package/dist/jobs/cron.js +12 -4
  383. package/dist/jobs/cron.js.map +1 -1
  384. package/dist/jobs/scheduler.d.ts.map +1 -1
  385. package/dist/jobs/scheduler.js +141 -16
  386. package/dist/jobs/scheduler.js.map +1 -1
  387. package/dist/jobs/tools.d.ts.map +1 -1
  388. package/dist/jobs/tools.js +94 -3
  389. package/dist/jobs/tools.js.map +1 -1
  390. package/dist/mcp/server.d.ts.map +1 -1
  391. package/dist/mcp/server.js +128 -62
  392. package/dist/mcp/server.js.map +1 -1
  393. package/dist/mcp-client/hub-routes.d.ts +14 -0
  394. package/dist/mcp-client/hub-routes.d.ts.map +1 -1
  395. package/dist/mcp-client/hub-routes.js +42 -2
  396. package/dist/mcp-client/hub-routes.js.map +1 -1
  397. package/dist/mcp-client/index.d.ts +1 -1
  398. package/dist/mcp-client/index.d.ts.map +1 -1
  399. package/dist/mcp-client/index.js +1 -1
  400. package/dist/mcp-client/index.js.map +1 -1
  401. package/dist/mcp-client/manager.d.ts.map +1 -1
  402. package/dist/mcp-client/manager.js +28 -3
  403. package/dist/mcp-client/manager.js.map +1 -1
  404. package/dist/mcp-client/remote-store.d.ts +49 -1
  405. package/dist/mcp-client/remote-store.d.ts.map +1 -1
  406. package/dist/mcp-client/remote-store.js +253 -6
  407. package/dist/mcp-client/remote-store.js.map +1 -1
  408. package/dist/mcp-client/routes.d.ts.map +1 -1
  409. package/dist/mcp-client/routes.js +11 -9
  410. package/dist/mcp-client/routes.js.map +1 -1
  411. package/dist/mcp-client/visibility.d.ts +7 -3
  412. package/dist/mcp-client/visibility.d.ts.map +1 -1
  413. package/dist/mcp-client/visibility.js +16 -7
  414. package/dist/mcp-client/visibility.js.map +1 -1
  415. package/dist/notifications/actions.d.ts.map +1 -1
  416. package/dist/notifications/actions.js +7 -1
  417. package/dist/notifications/actions.js.map +1 -1
  418. package/dist/notifications/routes.d.ts +1 -1
  419. package/dist/notifications/routes.d.ts.map +1 -1
  420. package/dist/notifications/routes.js +20 -3
  421. package/dist/notifications/routes.js.map +1 -1
  422. package/dist/notifications/store.d.ts.map +1 -1
  423. package/dist/notifications/store.js +6 -1
  424. package/dist/notifications/store.js.map +1 -1
  425. package/dist/oauth-tokens/store.d.ts +43 -2
  426. package/dist/oauth-tokens/store.d.ts.map +1 -1
  427. package/dist/oauth-tokens/store.js +83 -14
  428. package/dist/oauth-tokens/store.js.map +1 -1
  429. package/dist/observability/experiments.js +5 -5
  430. package/dist/observability/experiments.js.map +1 -1
  431. package/dist/observability/routes.d.ts.map +1 -1
  432. package/dist/observability/routes.js +37 -8
  433. package/dist/observability/routes.js.map +1 -1
  434. package/dist/observability/store.d.ts.map +1 -1
  435. package/dist/observability/store.js +19 -3
  436. package/dist/observability/store.js.map +1 -1
  437. package/dist/observability/types.d.ts +7 -0
  438. package/dist/observability/types.d.ts.map +1 -1
  439. package/dist/observability/types.js.map +1 -1
  440. package/dist/onboarding/default-steps.d.ts.map +1 -1
  441. package/dist/onboarding/default-steps.js +1 -2
  442. package/dist/onboarding/default-steps.js.map +1 -1
  443. package/dist/onboarding/plugin.d.ts.map +1 -1
  444. package/dist/onboarding/plugin.js +63 -32
  445. package/dist/onboarding/plugin.js.map +1 -1
  446. package/dist/onboarding/types.d.ts +6 -1
  447. package/dist/onboarding/types.d.ts.map +1 -1
  448. package/dist/org/accept-pending.d.ts.map +1 -1
  449. package/dist/org/accept-pending.js +2 -1
  450. package/dist/org/accept-pending.js.map +1 -1
  451. package/dist/progress/actions.d.ts.map +1 -1
  452. package/dist/progress/actions.js +10 -1
  453. package/dist/progress/actions.js.map +1 -1
  454. package/dist/progress/routes.d.ts +1 -1
  455. package/dist/progress/routes.d.ts.map +1 -1
  456. package/dist/progress/routes.js +20 -3
  457. package/dist/progress/routes.js.map +1 -1
  458. package/dist/progress/store.d.ts.map +1 -1
  459. package/dist/progress/store.js +6 -1
  460. package/dist/progress/store.js.map +1 -1
  461. package/dist/resources/handlers.d.ts.map +1 -1
  462. package/dist/resources/handlers.js +35 -7
  463. package/dist/resources/handlers.js.map +1 -1
  464. package/dist/resources/script-helpers.d.ts.map +1 -1
  465. package/dist/resources/script-helpers.js +15 -3
  466. package/dist/resources/script-helpers.js.map +1 -1
  467. package/dist/resources/store.d.ts.map +1 -1
  468. package/dist/resources/store.js +12 -4
  469. package/dist/resources/store.js.map +1 -1
  470. package/dist/scripts/call-agent.d.ts +1 -0
  471. package/dist/scripts/call-agent.d.ts.map +1 -1
  472. package/dist/scripts/call-agent.js +78 -40
  473. package/dist/scripts/call-agent.js.map +1 -1
  474. package/dist/scripts/chat/search-chats.d.ts.map +1 -1
  475. package/dist/scripts/chat/search-chats.js +3 -2
  476. package/dist/scripts/chat/search-chats.js.map +1 -1
  477. package/dist/scripts/db/exec.d.ts +1 -1
  478. package/dist/scripts/db/exec.d.ts.map +1 -1
  479. package/dist/scripts/db/exec.js +22 -3
  480. package/dist/scripts/db/exec.js.map +1 -1
  481. package/dist/scripts/db/migrate-user-api-keys.d.ts.map +1 -1
  482. package/dist/scripts/db/migrate-user-api-keys.js +10 -0
  483. package/dist/scripts/db/migrate-user-api-keys.js.map +1 -1
  484. package/dist/scripts/db/query.d.ts +1 -1
  485. package/dist/scripts/db/query.d.ts.map +1 -1
  486. package/dist/scripts/db/query.js +22 -3
  487. package/dist/scripts/db/query.js.map +1 -1
  488. package/dist/scripts/db/scoping.d.ts.map +1 -1
  489. package/dist/scripts/db/scoping.js +15 -9
  490. package/dist/scripts/db/scoping.js.map +1 -1
  491. package/dist/scripts/dev/shell.d.ts.map +1 -1
  492. package/dist/scripts/dev/shell.js +3 -1
  493. package/dist/scripts/dev/shell.js.map +1 -1
  494. package/dist/scripts/resources/delete-memory.d.ts.map +1 -1
  495. package/dist/scripts/resources/delete-memory.js +2 -1
  496. package/dist/scripts/resources/delete-memory.js.map +1 -1
  497. package/dist/scripts/resources/delete.d.ts.map +1 -1
  498. package/dist/scripts/resources/delete.js +2 -1
  499. package/dist/scripts/resources/delete.js.map +1 -1
  500. package/dist/scripts/resources/list.d.ts.map +1 -1
  501. package/dist/scripts/resources/list.js +2 -1
  502. package/dist/scripts/resources/list.js.map +1 -1
  503. package/dist/scripts/resources/migrate-learnings.d.ts.map +1 -1
  504. package/dist/scripts/resources/migrate-learnings.js +2 -1
  505. package/dist/scripts/resources/migrate-learnings.js.map +1 -1
  506. package/dist/scripts/resources/read.d.ts.map +1 -1
  507. package/dist/scripts/resources/read.js +2 -1
  508. package/dist/scripts/resources/read.js.map +1 -1
  509. package/dist/scripts/resources/save-memory.d.ts.map +1 -1
  510. package/dist/scripts/resources/save-memory.js +2 -1
  511. package/dist/scripts/resources/save-memory.js.map +1 -1
  512. package/dist/scripts/resources/write.d.ts.map +1 -1
  513. package/dist/scripts/resources/write.js +2 -1
  514. package/dist/scripts/resources/write.js.map +1 -1
  515. package/dist/secrets/onboarding.d.ts.map +1 -1
  516. package/dist/secrets/onboarding.js +24 -16
  517. package/dist/secrets/onboarding.js.map +1 -1
  518. package/dist/secrets/routes.d.ts.map +1 -1
  519. package/dist/secrets/routes.js +139 -37
  520. package/dist/secrets/routes.js.map +1 -1
  521. package/dist/secrets/storage.d.ts.map +1 -1
  522. package/dist/secrets/storage.js +23 -12
  523. package/dist/secrets/storage.js.map +1 -1
  524. package/dist/secrets/substitution.d.ts +24 -2
  525. package/dist/secrets/substitution.d.ts.map +1 -1
  526. package/dist/secrets/substitution.js +44 -6
  527. package/dist/secrets/substitution.js.map +1 -1
  528. package/dist/server/action-discovery.d.ts.map +1 -1
  529. package/dist/server/action-discovery.js +15 -51
  530. package/dist/server/action-discovery.js.map +1 -1
  531. package/dist/server/action-routes.d.ts.map +1 -1
  532. package/dist/server/action-routes.js +42 -15
  533. package/dist/server/action-routes.js.map +1 -1
  534. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  535. package/dist/server/agent-chat-plugin.js +447 -335
  536. package/dist/server/agent-chat-plugin.js.map +1 -1
  537. package/dist/server/agent-discovery.d.ts +8 -0
  538. package/dist/server/agent-discovery.d.ts.map +1 -1
  539. package/dist/server/agent-discovery.js +39 -12
  540. package/dist/server/agent-discovery.js.map +1 -1
  541. package/dist/server/agent-teams.d.ts.map +1 -1
  542. package/dist/server/agent-teams.js +4 -1
  543. package/dist/server/agent-teams.js.map +1 -1
  544. package/dist/server/analytics.d.ts +0 -1
  545. package/dist/server/analytics.d.ts.map +1 -1
  546. package/dist/server/analytics.js +0 -1
  547. package/dist/server/analytics.js.map +1 -1
  548. package/dist/server/app-base-path.d.ts +4 -0
  549. package/dist/server/app-base-path.d.ts.map +1 -0
  550. package/dist/server/app-base-path.js +33 -0
  551. package/dist/server/app-base-path.js.map +1 -0
  552. package/dist/server/auth.d.ts +15 -0
  553. package/dist/server/auth.d.ts.map +1 -1
  554. package/dist/server/auth.js +400 -68
  555. package/dist/server/auth.js.map +1 -1
  556. package/dist/server/better-auth-instance.d.ts +1 -0
  557. package/dist/server/better-auth-instance.d.ts.map +1 -1
  558. package/dist/server/better-auth-instance.js +67 -15
  559. package/dist/server/better-auth-instance.js.map +1 -1
  560. package/dist/server/builder-browser.d.ts +15 -0
  561. package/dist/server/builder-browser.d.ts.map +1 -1
  562. package/dist/server/builder-browser.js +90 -4
  563. package/dist/server/builder-browser.js.map +1 -1
  564. package/dist/server/cli-capture.d.ts +31 -0
  565. package/dist/server/cli-capture.d.ts.map +1 -0
  566. package/dist/server/cli-capture.js +120 -0
  567. package/dist/server/cli-capture.js.map +1 -0
  568. package/dist/server/collab-plugin.d.ts +12 -0
  569. package/dist/server/collab-plugin.d.ts.map +1 -1
  570. package/dist/server/collab-plugin.js +63 -21
  571. package/dist/server/collab-plugin.js.map +1 -1
  572. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  573. package/dist/server/core-routes-plugin.js +435 -106
  574. package/dist/server/core-routes-plugin.js.map +1 -1
  575. package/dist/server/create-server.d.ts +2 -0
  576. package/dist/server/create-server.d.ts.map +1 -1
  577. package/dist/server/create-server.js +82 -11
  578. package/dist/server/create-server.js.map +1 -1
  579. package/dist/server/credential-provider.d.ts +11 -0
  580. package/dist/server/credential-provider.d.ts.map +1 -1
  581. package/dist/server/credential-provider.js +51 -2
  582. package/dist/server/credential-provider.js.map +1 -1
  583. package/dist/server/csrf.d.ts +58 -0
  584. package/dist/server/csrf.d.ts.map +1 -0
  585. package/dist/server/csrf.js +165 -0
  586. package/dist/server/csrf.js.map +1 -0
  587. package/dist/server/framework-request-handler.d.ts +20 -0
  588. package/dist/server/framework-request-handler.d.ts.map +1 -1
  589. package/dist/server/framework-request-handler.js +115 -34
  590. package/dist/server/framework-request-handler.js.map +1 -1
  591. package/dist/server/google-auth-plugin.d.ts.map +1 -1
  592. package/dist/server/google-auth-plugin.js +10 -2
  593. package/dist/server/google-auth-plugin.js.map +1 -1
  594. package/dist/server/google-oauth.d.ts +84 -2
  595. package/dist/server/google-oauth.d.ts.map +1 -1
  596. package/dist/server/google-oauth.js +248 -45
  597. package/dist/server/google-oauth.js.map +1 -1
  598. package/dist/server/index.d.ts +4 -4
  599. package/dist/server/index.d.ts.map +1 -1
  600. package/dist/server/index.js +4 -4
  601. package/dist/server/index.js.map +1 -1
  602. package/dist/server/oauth-helpers.d.ts +8 -3
  603. package/dist/server/oauth-helpers.d.ts.map +1 -1
  604. package/dist/server/oauth-helpers.js +12 -8
  605. package/dist/server/oauth-helpers.js.map +1 -1
  606. package/dist/server/onboarding-html.d.ts.map +1 -1
  607. package/dist/server/onboarding-html.js +37 -9
  608. package/dist/server/onboarding-html.js.map +1 -1
  609. package/dist/server/poll.d.ts +33 -0
  610. package/dist/server/poll.d.ts.map +1 -1
  611. package/dist/server/poll.js +43 -2
  612. package/dist/server/poll.js.map +1 -1
  613. package/dist/server/request-context.d.ts +102 -3
  614. package/dist/server/request-context.d.ts.map +1 -1
  615. package/dist/server/request-context.js +100 -7
  616. package/dist/server/request-context.js.map +1 -1
  617. package/dist/server/security-headers.d.ts +51 -0
  618. package/dist/server/security-headers.d.ts.map +1 -0
  619. package/dist/server/security-headers.js +90 -0
  620. package/dist/server/security-headers.js.map +1 -0
  621. package/dist/server/ssr-handler.d.ts.map +1 -1
  622. package/dist/server/ssr-handler.js +96 -2
  623. package/dist/server/ssr-handler.js.map +1 -1
  624. package/dist/server/transcribe-voice.d.ts.map +1 -1
  625. package/dist/server/transcribe-voice.js +307 -56
  626. package/dist/server/transcribe-voice.js.map +1 -1
  627. package/dist/server/voice-providers-status.d.ts +12 -0
  628. package/dist/server/voice-providers-status.d.ts.map +1 -0
  629. package/dist/server/voice-providers-status.js +71 -0
  630. package/dist/server/voice-providers-status.js.map +1 -0
  631. package/dist/sharing/access.d.ts.map +1 -1
  632. package/dist/sharing/access.js +16 -13
  633. package/dist/sharing/access.js.map +1 -1
  634. package/dist/sharing/actions/share-resource.d.ts +1 -0
  635. package/dist/sharing/actions/share-resource.d.ts.map +1 -1
  636. package/dist/sharing/actions/share-resource.js +45 -0
  637. package/dist/sharing/actions/share-resource.js.map +1 -1
  638. package/dist/templates/default/.agents/skills/delegate-to-agent/SKILL.md +54 -0
  639. package/dist/templates/default/app/root.tsx +1 -1
  640. package/dist/templates/default/app/routes/_index.tsx +6 -1
  641. package/dist/templates/default/public/favicon.svg +13 -0
  642. package/dist/templates/default/public/icon-180.svg +12 -3
  643. package/dist/templates/default/public/icon-192.svg +12 -3
  644. package/dist/templates/default/public/icon-512.svg +12 -3
  645. package/dist/templates/workspace-core/package.json +22 -4
  646. package/dist/templates/workspace-core/src/credentials.ts +32 -5
  647. package/dist/templates/workspace-core/tsconfig.json +4 -1
  648. package/dist/terminal/pty-server.d.ts.map +1 -1
  649. package/dist/terminal/pty-server.js +7 -1
  650. package/dist/terminal/pty-server.js.map +1 -1
  651. package/dist/terminal/terminal-plugin.js +3 -3
  652. package/dist/terminal/terminal-plugin.js.map +1 -1
  653. package/dist/tools/actions.d.ts.map +1 -1
  654. package/dist/tools/actions.js +130 -0
  655. package/dist/tools/actions.js.map +1 -1
  656. package/dist/tools/fetch-tool.d.ts +1 -0
  657. package/dist/tools/fetch-tool.d.ts.map +1 -1
  658. package/dist/tools/fetch-tool.js +38 -16
  659. package/dist/tools/fetch-tool.js.map +1 -1
  660. package/dist/tools/html-shell.d.ts +43 -1
  661. package/dist/tools/html-shell.d.ts.map +1 -1
  662. package/dist/tools/html-shell.js +102 -4
  663. package/dist/tools/html-shell.js.map +1 -1
  664. package/dist/tools/proxy-security.d.ts +12 -0
  665. package/dist/tools/proxy-security.d.ts.map +1 -0
  666. package/dist/tools/proxy-security.js +158 -0
  667. package/dist/tools/proxy-security.js.map +1 -0
  668. package/dist/tools/routes.d.ts.map +1 -1
  669. package/dist/tools/routes.js +158 -105
  670. package/dist/tools/routes.js.map +1 -1
  671. package/dist/tools/schema.d.ts +3 -0
  672. package/dist/tools/schema.d.ts.map +1 -1
  673. package/dist/tools/schema.js +3 -0
  674. package/dist/tools/schema.js.map +1 -1
  675. package/dist/tools/slots/routes.d.ts +15 -0
  676. package/dist/tools/slots/routes.d.ts.map +1 -0
  677. package/dist/tools/slots/routes.js +94 -0
  678. package/dist/tools/slots/routes.js.map +1 -0
  679. package/dist/tools/slots/schema.d.ts +303 -0
  680. package/dist/tools/slots/schema.d.ts.map +1 -0
  681. package/dist/tools/slots/schema.js +76 -0
  682. package/dist/tools/slots/schema.js.map +1 -0
  683. package/dist/tools/slots/store.d.ts +66 -0
  684. package/dist/tools/slots/store.d.ts.map +1 -0
  685. package/dist/tools/slots/store.js +227 -0
  686. package/dist/tools/slots/store.js.map +1 -0
  687. package/dist/tools/store.d.ts.map +1 -1
  688. package/dist/tools/store.js +28 -37
  689. package/dist/tools/store.js.map +1 -1
  690. package/dist/tools/url-safety.d.ts +24 -0
  691. package/dist/tools/url-safety.d.ts.map +1 -0
  692. package/dist/tools/url-safety.js +224 -0
  693. package/dist/tools/url-safety.js.map +1 -0
  694. package/dist/tracking/providers.d.ts.map +1 -1
  695. package/dist/tracking/providers.js +28 -11
  696. package/dist/tracking/providers.js.map +1 -1
  697. package/dist/tracking/registry.d.ts.map +1 -1
  698. package/dist/tracking/registry.js +7 -3
  699. package/dist/tracking/registry.js.map +1 -1
  700. package/dist/triggers/actions.d.ts.map +1 -1
  701. package/dist/triggers/actions.js +11 -6
  702. package/dist/triggers/actions.js.map +1 -1
  703. package/dist/triggers/condition-evaluator.d.ts +8 -0
  704. package/dist/triggers/condition-evaluator.d.ts.map +1 -1
  705. package/dist/triggers/condition-evaluator.js +39 -4
  706. package/dist/triggers/condition-evaluator.js.map +1 -1
  707. package/dist/triggers/dispatcher.d.ts.map +1 -1
  708. package/dist/triggers/dispatcher.js +67 -4
  709. package/dist/triggers/dispatcher.js.map +1 -1
  710. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  711. package/dist/vite/action-types-plugin.js +8 -5
  712. package/dist/vite/action-types-plugin.js.map +1 -1
  713. package/dist/vite/client.d.ts +2 -0
  714. package/dist/vite/client.d.ts.map +1 -1
  715. package/dist/vite/client.js +216 -4
  716. package/dist/vite/client.js.map +1 -1
  717. package/docs/content/authentication.md +27 -12
  718. package/docs/content/drop-in-agent.md +2 -2
  719. package/docs/content/messaging.md +195 -155
  720. package/docs/content/onboarding.md +82 -12
  721. package/docs/content/template-analytics.md +65 -59
  722. package/docs/content/template-clips.md +7 -9
  723. package/docs/content/template-design.md +55 -0
  724. package/docs/content/template-dispatch.md +13 -0
  725. package/docs/content/template-forms.md +7 -6
  726. package/docs/content/template-mail.md +78 -80
  727. package/package.json +2 -1
  728. package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +54 -0
  729. package/src/templates/default/app/root.tsx +1 -1
  730. package/src/templates/default/app/routes/_index.tsx +6 -1
  731. package/src/templates/default/public/favicon.svg +13 -0
  732. package/src/templates/default/public/icon-180.svg +12 -3
  733. package/src/templates/default/public/icon-192.svg +12 -3
  734. package/src/templates/default/public/icon-512.svg +12 -3
  735. package/src/templates/workspace-core/package.json +22 -4
  736. package/src/templates/workspace-core/src/credentials.ts +32 -5
  737. package/src/templates/workspace-core/tsconfig.json +4 -1
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Defense-in-depth CSRF check for framework state-changing routes.
3
+ *
4
+ * Threat model: action endpoints (`/_agent-native/actions/*`), tool endpoints
5
+ * (`/_agent-native/tools/*`), and a handful of other state-changing
6
+ * `/_agent-native/*` routes use the better-auth session cookie, which is
7
+ * configured with `SameSite=None; Secure; Partitioned` so the iframe editor
8
+ * (and other cross-site embeds) can authenticate. `SameSite=None` means the
9
+ * browser ships the session cookie on top-level form POSTs from any origin —
10
+ * which is exactly the precondition for classic cross-site request forgery.
11
+ *
12
+ * The browser still gates "non-simple" requests behind a CORS preflight, so
13
+ * an attacker who has to send `Content-Type: application/json` is forced
14
+ * through OPTIONS, which our CORS middleware (`create-server.ts`) rejects
15
+ * for disallowed origins. But the simple-request bypass (`Content-Type:
16
+ * text/plain` on a `<form enctype="text/plain">` POST, or `multipart/form-data`)
17
+ * never preflights — the browser delivers it cross-origin with cookies.
18
+ *
19
+ * Mitigation: this middleware rejects any state-changing
20
+ * (`POST/PUT/PATCH/DELETE`) request to `/_agent-native/*` that
21
+ *
22
+ * 1. carries the auth-cookie pattern (any cookie at all is a heuristic
23
+ * good-enough proxy — we don't want to deny anonymous fetches), AND
24
+ * 2. is NOT clearly same-origin / first-party. We trust:
25
+ * - `Sec-Fetch-Site: same-origin` (sent by every modern browser on
26
+ * same-origin fetch — Chrome/Firefox/Safari/Edge all support it).
27
+ * - `X-Agent-Native-CSRF` custom header. Custom headers force a
28
+ * preflight, so an attacker can't add one cross-origin.
29
+ * - `Content-Type: application/json` request body. Same logic — JSON
30
+ * Content-Type is a non-simple request that triggers preflight.
31
+ *
32
+ * Why the existing CORS check isn't enough: a simple-request POST never
33
+ * preflights, so the browser sends it through and only blocks the *response*
34
+ * from being readable cross-origin. The state change (delete-account, write
35
+ * SQL, etc.) happens server-side regardless. We need a server-side check that
36
+ * proves first-party intent before running the action.
37
+ *
38
+ * Opt-out marker: a handful of routes legitimately accept cross-origin POSTs
39
+ * — webhook endpoints (Slack, Telegram, email), the public A2A endpoint
40
+ * (`/_agent-native/a2a`), the integrations process-task self-fire, and so on.
41
+ * Those are listed in `CSRF_ALLOWLIST_PREFIXES` below; if you add a new
42
+ * cross-origin-callable route, add it there.
43
+ */
44
+ import { defineEventHandler, getMethod, getRequestHeader, setResponseStatus, } from "h3";
45
+ /**
46
+ * Path prefixes (relative to the framework prefix `/_agent-native`) that are
47
+ * allowed to receive cross-origin state-changing POSTs without first-party
48
+ * markers. These are signed/authenticated through other mechanisms (HMAC,
49
+ * JWT, internal token) so they don't need cookie-based CSRF protection.
50
+ */
51
+ const CSRF_ALLOWLIST_PREFIXES = [
52
+ // Integration webhooks — verified by HMAC against a per-integration secret.
53
+ "/integrations/",
54
+ // A2A JSON-RPC endpoints — verified by signed JWT (when A2A_SECRET set) or
55
+ // explicitly opt-in unauthenticated (handled at the A2A layer).
56
+ "/a2a",
57
+ // Better Auth's own login/sign-in/social-callback routes. Better Auth
58
+ // ships its own CSRF protection (Origin/Sec-Fetch checks on its handlers)
59
+ // and cookies are needed for the OAuth callback round-trip.
60
+ "/auth/",
61
+ // Stripe / Paddle / billing webhooks dropped in by templates.
62
+ "/billing/webhook",
63
+ // Public share endpoints — read-only and never cookie-driven, but kept
64
+ // here so a templated POST (e.g. comment-on-public-recording) doesn't 403.
65
+ "/share/",
66
+ // OAuth callbacks (Builder, Google, Slack, Notion, Zoom). These get a
67
+ // `code` query param via top-level navigation — they DO ride the session
68
+ // cookie and they SHOULD validate state, but the framework can't see the
69
+ // state token. Each callback handler is responsible for its own CSRF
70
+ // check (signed state tokens).
71
+ "/oauth/",
72
+ // Builder's CLI-auth callback — uses the BUILDER_STATE_PARAM signed token
73
+ // to authenticate the round-trip; framework CSRF check would block it.
74
+ "/builder/callback",
75
+ ];
76
+ const STATE_CHANGING_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
77
+ /**
78
+ * Decide whether a request is "first-party enough" to trust as not-CSRF.
79
+ * Any of the following make a request non-CSRF:
80
+ *
81
+ * - `Sec-Fetch-Site: same-origin` (or `none` for top-level navigations
82
+ * to our own pages — but state-changing methods don't ship `none`).
83
+ * - `X-Agent-Native-CSRF` header (any value, even "1"). This is a custom
84
+ * header so the browser forces a preflight cross-origin, which our
85
+ * CORS layer rejects for disallowed origins.
86
+ * - `Content-Type: application/json` (case-insensitive). JSON content
87
+ * type is a non-simple request that triggers preflight.
88
+ *
89
+ * We accept ANY of these — the goal is "did the request come through a
90
+ * channel the browser would have preflighted", not a strict-mode token.
91
+ */
92
+ function looksFirstParty(event) {
93
+ const sfs = getRequestHeader(event, "sec-fetch-site");
94
+ if (sfs === "same-origin" || sfs === "same-site" || sfs === "none") {
95
+ return true;
96
+ }
97
+ if (getRequestHeader(event, "x-agent-native-csrf")) {
98
+ return true;
99
+ }
100
+ const contentType = getRequestHeader(event, "content-type");
101
+ if (contentType &&
102
+ typeof contentType === "string" &&
103
+ contentType.toLowerCase().includes("application/json")) {
104
+ return true;
105
+ }
106
+ return false;
107
+ }
108
+ /**
109
+ * Returns true when the request carries any cookie. We use "has any cookie"
110
+ * as a coarse heuristic for "the browser is going to attach the session
111
+ * cookie" — anonymous tools (curl, server-to-server) typically don't send
112
+ * cookies, so they bypass this check entirely.
113
+ */
114
+ function requestHasCookies(event) {
115
+ const cookie = getRequestHeader(event, "cookie");
116
+ return typeof cookie === "string" && cookie.trim().length > 0;
117
+ }
118
+ /**
119
+ * Path passed in is the full request URL pathname (e.g. `/_agent-native/actions/foo`).
120
+ * `frameworkPrefix` should be the framework route prefix without trailing slash,
121
+ * e.g. `/_agent-native`.
122
+ */
123
+ function isOnAllowlist(pathname, frameworkPrefix) {
124
+ if (!pathname.startsWith(frameworkPrefix))
125
+ return false;
126
+ const sub = pathname.slice(frameworkPrefix.length);
127
+ for (const allowed of CSRF_ALLOWLIST_PREFIXES) {
128
+ if (sub.startsWith(allowed))
129
+ return true;
130
+ }
131
+ return false;
132
+ }
133
+ /**
134
+ * Create the framework CSRF middleware.
135
+ *
136
+ * Mount this BEFORE any state-changing route handler. The middleware
137
+ * - lets every non-state-changing method through (GET/HEAD/OPTIONS).
138
+ * - lets requests without cookies through (anonymous/server tools).
139
+ * - lets allowlisted paths through (webhooks, A2A, OAuth callbacks).
140
+ * - lets first-party-shaped requests through (custom header, JSON
141
+ * Content-Type, or `Sec-Fetch-Site: same-origin`).
142
+ * - rejects everything else with 403.
143
+ */
144
+ export function createCsrfMiddleware(frameworkPrefix = "/_agent-native") {
145
+ return defineEventHandler((event) => {
146
+ const method = getMethod(event);
147
+ if (!STATE_CHANGING_METHODS.has(method))
148
+ return undefined;
149
+ const pathname = event.url?.pathname ?? "";
150
+ if (!pathname.startsWith(frameworkPrefix))
151
+ return undefined;
152
+ if (isOnAllowlist(pathname, frameworkPrefix))
153
+ return undefined;
154
+ // No cookie = no risk of confused-deputy CSRF on the session cookie.
155
+ if (!requestHasCookies(event))
156
+ return undefined;
157
+ if (looksFirstParty(event))
158
+ return undefined;
159
+ setResponseStatus(event, 403);
160
+ return {
161
+ error: "CSRF check failed: state-changing requests must include a same-origin marker. Set Content-Type: application/json or X-Agent-Native-CSRF: 1.",
162
+ };
163
+ });
164
+ }
165
+ //# sourceMappingURL=csrf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csrf.js","sourceRoot":"","sources":["../../src/server/csrf.ts"],"names":[],"mappings":"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"}
@@ -58,5 +58,25 @@ export declare function trackPluginInit(nitroApp: any, promise: Promise<void>):
58
58
  * middleware before dispatching framework routes.
59
59
  */
60
60
  export declare function awaitPluginsReady(nitroApp: any): Promise<void>;
61
+ /**
62
+ * Load a workspace-core's `/server` entry, transparently handling TS source.
63
+ *
64
+ * The scaffolded workspace-core template ships TS sources without a build
65
+ * step (exports point at `./src/server/index.ts`), so plain `await import()`
66
+ * blows up the moment Node hits a relative `.js` import inside (the standard
67
+ * TS ESM convention) — and even before that, Node may resolve the package
68
+ * relative to the framework's own location rather than the user's monorepo.
69
+ *
70
+ * We try Node's plain `import()` first (fastest path when the user has
71
+ * compiled to dist/) and fall through to jiti on any error. jiti is anchored
72
+ * to a real file inside the workspace-core's directory, so its module
73
+ * resolution starts in the right node_modules tree (handles pnpm hoisting
74
+ * and linked workspaces) AND handles TS source files + `.js` → `.ts` ESM
75
+ * extension remapping.
76
+ *
77
+ * Edge runtimes without `fs` won't be able to load jiti at all; the outer
78
+ * try/catch silently falls through to framework defaults in that case.
79
+ */
80
+ export declare function loadWorkspaceCoreServer(packageName: string, packageDir: string): Promise<any>;
61
81
  export { FRAMEWORK_PREFIX };
62
82
  //# sourceMappingURL=framework-request-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-request-handler.d.ts","sourceRoot":"","sources":["../../src/server/framework-request-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,IAAI,CAAC;AAMhD,QAAA,MAAM,gBAAgB,mBAAmB,CAAC;AAK1C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,CA2CjD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAiB3E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAiQD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"framework-request-handler.d.ts","sourceRoot":"","sources":["../../src/server/framework-request-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,IAAI,CAAC;AAMhD,QAAA,MAAM,gBAAgB,mBAAmB,CAAC;AAyC1C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,CA2CjD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAiB3E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAgQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,CAyBd;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -6,6 +6,35 @@ const FRAMEWORK_PREFIX = "/_agent-native";
6
6
  const APP_SHIM_KEY = "_agentNativeH3Shim";
7
7
  const BOOTSTRAP_PROMISE_KEY = "_agentNativeBootstrapPromise";
8
8
  const PLUGIN_READY_KEY = "_agentNativePluginReadyPromise";
9
+ function normalizeAppBasePath(value) {
10
+ if (!value || value === "/")
11
+ return "";
12
+ const trimmed = value.trim();
13
+ if (!trimmed || trimmed === "/")
14
+ return "";
15
+ return `/${trimmed.replace(/^\/+/, "").replace(/\/+$/, "")}`;
16
+ }
17
+ function getAppBasePath() {
18
+ return normalizeAppBasePath(process.env.VITE_APP_BASE_PATH || process.env.APP_BASE_PATH);
19
+ }
20
+ function pathMatchesPrefix(reqPath, prefix) {
21
+ return reqPath === prefix || reqPath.startsWith(prefix + "/");
22
+ }
23
+ function resolveMountMatch(reqPath, path) {
24
+ if (pathMatchesPrefix(reqPath, path)) {
25
+ return { mountPath: path, strippedPath: reqPath.slice(path.length) || "/" };
26
+ }
27
+ const appBasePath = getAppBasePath();
28
+ if (!appBasePath || !path.startsWith(FRAMEWORK_PREFIX))
29
+ return null;
30
+ const prefixedPath = `${appBasePath}${path}`;
31
+ if (!pathMatchesPrefix(reqPath, prefixedPath))
32
+ return null;
33
+ return {
34
+ mountPath: prefixedPath,
35
+ strippedPath: reqPath.slice(prefixedPath.length) || "/",
36
+ };
37
+ }
9
38
  /**
10
39
  * Get (or create) the shared H3 app wrapper for a nitroApp. Plugins use this
11
40
  * to register routes via `.use(path, handler)`.
@@ -128,19 +157,58 @@ function registerMiddleware(nitroApp, path, handler) {
128
157
  }
129
158
  const middleware = async (event, next) => {
130
159
  let originalPathname;
160
+ let originalEventPath;
161
+ let hadEventPath = false;
162
+ const restoreOriginalPath = () => {
163
+ if (originalPathname !== undefined) {
164
+ try {
165
+ event.url.pathname = originalPathname;
166
+ }
167
+ catch {
168
+ // ignore
169
+ }
170
+ originalPathname = undefined;
171
+ }
172
+ if (hadEventPath) {
173
+ try {
174
+ event.path = originalEventPath;
175
+ }
176
+ catch {
177
+ // ignore
178
+ }
179
+ }
180
+ else {
181
+ try {
182
+ delete event.path;
183
+ }
184
+ catch {
185
+ // ignore
186
+ }
187
+ }
188
+ };
131
189
  if (path) {
132
190
  const reqPath = event.url?.pathname ?? "";
133
- if (reqPath !== path && !reqPath.startsWith(path + "/")) {
191
+ const match = resolveMountMatch(reqPath, path);
192
+ if (!match) {
134
193
  return next();
135
194
  }
136
195
  // Strip the mount prefix from event.url.pathname so handlers that
137
196
  // dispatch sub-routes can read `event.path` (or `event.url.pathname`)
138
197
  // and see the path RELATIVE to their mount point — matching h3 v1's
139
198
  // `app.use(path, handler)` semantics.
199
+ const eventAny = event;
200
+ hadEventPath = "path" in eventAny;
201
+ originalEventPath = eventAny.path;
140
202
  try {
141
203
  originalPathname = event.url.pathname;
142
- const stripped = originalPathname.slice(path.length) || "/";
143
- event.url.pathname = stripped;
204
+ // Save the full path in context so handlers that need the original URL
205
+ // (e.g. Better Auth, which extracts its own basePath prefix) can
206
+ // reconstruct a Request with the un-stripped URL.
207
+ eventAny.context = eventAny.context ?? {};
208
+ eventAny.context._mountedPathname = originalPathname;
209
+ eventAny.context._mountPrefix = match.mountPath;
210
+ event.url.pathname = match.strippedPath;
211
+ eventAny.path = `${match.strippedPath}${event.url.search || ""}`;
144
212
  }
145
213
  catch {
146
214
  // event.url is read-only on some runtimes — fall through. Handlers
@@ -154,15 +222,7 @@ function registerMiddleware(nitroApp, path, handler) {
154
222
  // middleware sees the full URL — not the stripped mount-relative path.
155
223
  // Matches h3 v2's own sub-app middleware pattern where the restore
156
224
  // happens inside the next() callback, not after it returns.
157
- if (originalPathname !== undefined) {
158
- try {
159
- event.url.pathname = originalPathname;
160
- }
161
- catch {
162
- // ignore
163
- }
164
- originalPathname = undefined;
165
- }
225
+ restoreOriginalPath();
166
226
  return next();
167
227
  }
168
228
  return result;
@@ -190,7 +250,15 @@ function registerMiddleware(nitroApp, path, handler) {
190
250
  }
191
251
  return {
192
252
  error: e?.message || "Internal server error",
193
- ...(status >= 500 && process.env.NODE_ENV !== "production" && e?.stack
253
+ // Only surface the stack to clients when explicitly enabled.
254
+ // `NODE_ENV !== "production"` was unsafe — preview deploys and
255
+ // any host that forgets to set NODE_ENV=production leaked stack
256
+ // traces (file paths, dependency versions, internal route
257
+ // topology) to anonymous callers. Operators who want stacks in
258
+ // dev set `AGENT_NATIVE_DEBUG_ERRORS=1` explicitly.
259
+ ...(status >= 500 &&
260
+ process.env.AGENT_NATIVE_DEBUG_ERRORS === "1" &&
261
+ e?.stack
194
262
  ? { stack: e.stack }
195
263
  : {}),
196
264
  };
@@ -198,14 +266,7 @@ function registerMiddleware(nitroApp, path, handler) {
198
266
  finally {
199
267
  // Restore the original pathname so downstream middleware sees the
200
268
  // full URL.
201
- if (originalPathname !== undefined) {
202
- try {
203
- event.url.pathname = originalPathname;
204
- }
205
- catch {
206
- // ignore
207
- }
208
- }
269
+ restoreOriginalPath();
209
270
  }
210
271
  };
211
272
  h3["~middleware"].push(middleware);
@@ -267,7 +328,19 @@ async function bootstrapDefaultPlugins(nitroApp) {
267
328
  }
268
329
  }
269
330
  catch (e) {
270
- console.warn(`[agent-native] Failed to load workspace core ${ws.packageName}/server:`, e.message);
331
+ const msg = e.message ?? "";
332
+ // Common cause: workspace-core's package.json points "./server"
333
+ // at a TS source file (the scaffold default), but Node can't
334
+ // resolve relative `.js` imports inside it without a TS loader.
335
+ // Tell the user to compile to dist/ rather than just dumping the
336
+ // raw resolution error.
337
+ const tsLoadHint = /\.js' imported from .*\.ts/.test(msg)
338
+ ? " — workspace-core src is TypeScript but isn't being compiled. " +
339
+ "Run `pnpm --filter " +
340
+ ws.packageName +
341
+ " build` and point its `./server` export at dist/server/index.js."
342
+ : "";
343
+ console.warn(`[agent-native] Failed to load workspace core ${ws.packageName}/server: ${msg}${tsLoadHint}`);
271
344
  }
272
345
  }
273
346
  }
@@ -300,25 +373,28 @@ async function bootstrapDefaultPlugins(nitroApp) {
300
373
  * The scaffolded workspace-core template ships TS sources without a build
301
374
  * step (exports point at `./src/server/index.ts`), so plain `await import()`
302
375
  * blows up the moment Node hits a relative `.js` import inside (the standard
303
- * TS ESM convention). Try Node's plain `import()` first fastest path when
304
- * the user has compiled to dist/ then fall back to jiti, which handles TS
305
- * source files and re-maps the `.js` ESM extension convention back to `.ts`
306
- * at resolve time.
376
+ * TS ESM convention) and even before that, Node may resolve the package
377
+ * relative to the framework's own location rather than the user's monorepo.
378
+ *
379
+ * We try Node's plain `import()` first (fastest path when the user has
380
+ * compiled to dist/) and fall through to jiti on any error. jiti is anchored
381
+ * to a real file inside the workspace-core's directory, so its module
382
+ * resolution starts in the right node_modules tree (handles pnpm hoisting
383
+ * and linked workspaces) AND handles TS source files + `.js` → `.ts` ESM
384
+ * extension remapping.
307
385
  *
308
386
  * Edge runtimes without `fs` won't be able to load jiti at all; the outer
309
387
  * try/catch silently falls through to framework defaults in that case.
310
388
  */
311
- async function loadWorkspaceCoreServer(packageName, packageDir) {
389
+ export async function loadWorkspaceCoreServer(packageName, packageDir) {
390
+ let firstErr;
312
391
  try {
313
392
  return await import(/* @vite-ignore */ `${packageName}/server`);
314
393
  }
315
- catch (firstErr) {
316
- const msg = firstErr?.message ?? "";
317
- const looksLikeTsResolution = /\.js' imported from .*\.ts/.test(msg) ||
318
- /Cannot find module .*\.js' imported/.test(msg) ||
319
- /Unknown file extension "\.ts"/.test(msg);
320
- if (!looksLikeTsResolution)
321
- throw firstErr;
394
+ catch (e) {
395
+ firstErr = e;
396
+ }
397
+ try {
322
398
  const { createJiti } = await import("jiti");
323
399
  const { pathToFileURL } = await import("node:url");
324
400
  const path = await import("node:path");
@@ -329,6 +405,11 @@ async function loadWorkspaceCoreServer(packageName, packageDir) {
329
405
  const jiti = createJiti(anchor, { interopDefault: true });
330
406
  return await jiti.import(`${packageName}/server`);
331
407
  }
408
+ catch (jitiErr) {
409
+ // jiti also failed — rethrow the original Node error since it's usually
410
+ // more informative about *why* the package wasn't resolvable.
411
+ throw firstErr ?? jitiErr;
412
+ }
332
413
  }
333
414
  export { FRAMEWORK_PREFIX };
334
415
  //# sourceMappingURL=framework-request-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-request-handler.js","sourceRoot":"","sources":["../../src/server/framework-request-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framework-request-handler.js","sourceRoot":"","sources":["../../src/server/framework-request-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"google-auth-plugin.d.ts","sourceRoot":"","sources":["../../src/server/google-auth-plugin.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAgGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,uBAAuB,GAChC,cAAc,CAUhB"}
1
+ {"version":3,"file":"google-auth-plugin.d.ts","sourceRoot":"","sources":["../../src/server/google-auth-plugin.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAwGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,uBAAuB,GAChC,cAAc,CAUhB"}
@@ -60,13 +60,21 @@ const GOOGLE_LOGIN_HTML = `<!DOCTYPE html>
60
60
  <p class="error" id="err"></p>
61
61
  </div>
62
62
  <script>
63
+ function __anBasePath() {
64
+ var marker = '/_agent-native';
65
+ var idx = window.location.pathname.indexOf(marker);
66
+ return idx > 0 ? window.location.pathname.slice(0, idx) : '';
67
+ }
68
+ function __anPath(path) {
69
+ return __anBasePath() + path;
70
+ }
63
71
  async function signIn() {
64
72
  var btn = document.getElementById('btn');
65
73
  var err = document.getElementById('err');
66
74
  btn.disabled = true;
67
75
  err.classList.remove('show');
68
76
  try {
69
- var res = await fetch('/_agent-native/google/auth-url');
77
+ var res = await fetch(__anPath('/_agent-native/google/auth-url'));
70
78
  var data = await res.json();
71
79
  if (data.url) {
72
80
  try { sessionStorage.setItem('__an_signin', '1'); } catch(e) {}
@@ -74,7 +82,7 @@ const GOOGLE_LOGIN_HTML = `<!DOCTYPE html>
74
82
  btn.disabled = false;
75
83
  btn.textContent = 'Waiting for sign-in…';
76
84
  var poll = setInterval(function() {
77
- fetch('/_agent-native/auth/session').then(function(r) { return r.json(); }).then(function(s) {
85
+ fetch(__anPath('/_agent-native/auth/session')).then(function(r) { return r.json(); }).then(function(s) {
78
86
  if (s && s.email) { clearInterval(poll); window.location.reload(); }
79
87
  }).catch(function() {});
80
88
  }, 1500);
@@ -1 +1 @@
1
- {"version":3,"file":"google-auth-plugin.js","sourceRoot":"","sources":["../../src/server/google-auth-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AASpD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4FlB,CAAC;AAET;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAiC;IAEjC,OAAO,gBAAgB,CAAC;QACtB,WAAW,EAAE;YACX,gCAAgC;YAChC,gCAAgC;YAChC,wBAAwB;YACxB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;SAChC;QACD,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"google-auth-plugin.js","sourceRoot":"","sources":["../../src/server/google-auth-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AASpD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoGlB,CAAC;AAET;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAiC;IAEjC,OAAO,gBAAgB,CAAC;QACtB,WAAW,EAAE;YACX,gCAAgC;YAChC,gCAAgC;YAChC,wBAAwB;YACxB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;SAChC;QACD,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;AACL,CAAC"}
@@ -11,8 +11,62 @@ import { type H3Event } from "h3";
11
11
  export declare function isElectron(event: H3Event): boolean;
12
12
  /** Detect requests from a mobile browser (iOS/Android). */
13
13
  export declare function isMobile(event: H3Event): boolean;
14
- /** Get the origin from forwarded headers or Host. */
14
+ /**
15
+ * Get the origin from forwarded headers or Host.
16
+ *
17
+ * Defends against Host-header injection: in production we require the
18
+ * resolved origin to match `APP_URL` / `BETTER_AUTH_URL`, falling back to
19
+ * those values when the inbound headers are missing or don't match. In
20
+ * dev we accept the inbound `Host` so localhost / ngrok / preview hosts
21
+ * keep working without configuration. The protocol defaults to `https`
22
+ * in production (so a TLS-terminating proxy that drops `x-forwarded-proto`
23
+ * doesn't downgrade us to plain HTTP).
24
+ */
15
25
  export declare function getOrigin(event: H3Event): string;
26
+ /** App mount prefix, if the template is served under APP_BASE_PATH. */
27
+ export declare function getAppBasePath(): string;
28
+ /** Build an absolute same-origin URL that preserves APP_BASE_PATH. */
29
+ export declare function getAppUrl(event: H3Event, path?: string): string;
30
+ /**
31
+ * Validate a user-supplied `redirect_uri` for OAuth flows.
32
+ *
33
+ * Defends against authorization-code interception (RFC 6819 §4.4.1.7):
34
+ * even though the upstream provider (Google/Atlassian/Zoom) refuses
35
+ * unregistered redirect URIs, prefix-style registrations and side
36
+ * registrations on the same host let a malicious caller swap in an
37
+ * attacker-controlled URI that the provider still accepts. We reject any
38
+ * candidate that isn't on this server's own origin AND under the
39
+ * framework's `/_agent-native/` namespace. Returns the validated URI on
40
+ * success, or `undefined` on rejection — callers must treat `undefined`
41
+ * as a 400.
42
+ *
43
+ * The intentional shape is exact-prefix:
44
+ * - Origin must equal `getOrigin(event)` — no Host-header injection
45
+ * reusing somebody else's registered redirect URI.
46
+ * - Path must start with `${appBasePath}/_agent-native/` so we never
47
+ * hand auth codes to a public marketing or open-redirect endpoint
48
+ * on the same registered host.
49
+ *
50
+ * For desktop / native flows that need ephemeral `http://127.0.0.1:<port>`
51
+ * loopback URIs, callers should validate those at the template level
52
+ * with a dedicated allowlist — this helper rejects them by design.
53
+ */
54
+ export declare function isAllowedOAuthRedirectUri(candidate: string, event: H3Event): boolean;
55
+ /**
56
+ * Resolve the `redirect_uri` for an outbound OAuth `auth-url` request.
57
+ *
58
+ * Reads `?redirect_uri=` from the query and validates it via
59
+ * `isAllowedOAuthRedirectUri`. Returns:
60
+ * - the validated URI when supplied and allowed, OR
61
+ * - the framework default when no override was supplied, OR
62
+ * - `null` when an override was supplied but rejected — callers must
63
+ * respond with 400 in that case.
64
+ *
65
+ * Templates that need a non-default redirect path can pass it via
66
+ * `defaultPath` (e.g. `"/_agent-native/google/desktop-callback"` for
67
+ * desktop flows).
68
+ */
69
+ export declare function resolveOAuthRedirectUri(event: H3Event, defaultPath?: string): string | null;
16
70
  export interface OAuthStatePayload {
17
71
  redirectUri: string;
18
72
  owner?: string;
@@ -28,11 +82,36 @@ export interface OAuthStatePayload {
28
82
  returnUrl?: string;
29
83
  flowId?: string;
30
84
  }
85
+ /**
86
+ * Options for the named-argument form of {@link encodeOAuthState}.
87
+ * Prefer this form — the positional overload is easy to misuse (the mail
88
+ * and calendar templates historically passed `flowId` in the `returnUrl`
89
+ * slot, smuggling state into a defence-in-depth path).
90
+ */
91
+ export interface EncodeOAuthStateOptions {
92
+ redirectUri: string;
93
+ owner?: string;
94
+ desktop?: boolean;
95
+ addAccount?: boolean;
96
+ app?: string;
97
+ returnUrl?: string;
98
+ flowId?: string;
99
+ }
31
100
  /**
32
101
  * Encode OAuth state into a signed base64url string.
33
102
  * The state is HMAC-signed so the callback can verify it wasn't forged,
34
103
  * preventing CSRF attacks on the OAuth flow.
104
+ *
105
+ * Two call shapes are supported:
106
+ * - Recommended: pass an options object — clear, mismatch-proof.
107
+ * `encodeOAuthState({ redirectUri, owner, desktop, ... })`
108
+ * - Legacy positional form (kept working for backward compatibility):
109
+ * `encodeOAuthState(redirectUri, owner, desktop, addAccount, app, returnUrl, flowId)`.
110
+ * Callers should migrate to the options form — see the audit on
111
+ * templates/mail and templates/calendar where the positional shape
112
+ * led to `flowId` being smuggled in via the `returnUrl` slot.
35
113
  */
114
+ export declare function encodeOAuthState(opts: EncodeOAuthStateOptions): string;
36
115
  export declare function encodeOAuthState(redirectUri: string, owner?: string, desktop?: boolean, addAccount?: boolean, app?: string, returnUrl?: string, flowId?: string): string;
37
116
  /**
38
117
  * Decode and verify OAuth state from the callback's state query parameter.
@@ -84,6 +163,9 @@ export declare function oauthCallbackResponse(event: H3Event, email: string, opt
84
163
  returnUrl?: string;
85
164
  flowId?: string;
86
165
  }): Response | string | void | Promise<Response | string | void>;
87
- /** HTML error page for OAuth failures. */
166
+ /** HTML error page for OAuth failures. The message is HTML-escaped — most
167
+ * callers pass `error.message` from a token-exchange or userinfo failure,
168
+ * which can echo upstream provider strings (and historically attacker-
169
+ * controlled query params via the `error_description` field). */
88
170
  export declare function oauthErrorPage(message: string): Response;
89
171
  //# sourceMappingURL=google-oauth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-oauth.d.ts","sourceRoot":"","sources":["../../src/server/google-oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAML,KAAK,OAAO,EACb,MAAM,IAAI,CAAC;AAsBZ,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AAED,qDAAqD;AACrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIhD;AAID,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,OAAO,EACpB,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAkBR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAoCnB;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAY3B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAiC7B;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAuD9D;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAUxD"}
1
+ {"version":3,"file":"google-oauth.d.ts","sourceRoot":"","sources":["../../src/server/google-oauth.ts"],"names":[],"mappings":"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"}