@agent-native/core 0.7.13 → 0.7.14

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 (381) hide show
  1. package/dist/a2a/client.d.ts +44 -1
  2. package/dist/a2a/client.d.ts.map +1 -1
  3. package/dist/a2a/client.js +88 -11
  4. package/dist/a2a/client.js.map +1 -1
  5. package/dist/a2a/handlers.d.ts +10 -0
  6. package/dist/a2a/handlers.d.ts.map +1 -1
  7. package/dist/a2a/handlers.js +287 -62
  8. package/dist/a2a/handlers.js.map +1 -1
  9. package/dist/a2a/server.d.ts.map +1 -1
  10. package/dist/a2a/server.js +95 -17
  11. package/dist/a2a/server.js.map +1 -1
  12. package/dist/a2a/task-store.d.ts +11 -1
  13. package/dist/a2a/task-store.d.ts.map +1 -1
  14. package/dist/a2a/task-store.js +38 -2
  15. package/dist/a2a/task-store.js.map +1 -1
  16. package/dist/agent/engine/builder-engine.d.ts +1 -1
  17. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  18. package/dist/agent/engine/builder-engine.js +7 -25
  19. package/dist/agent/engine/builder-engine.js.map +1 -1
  20. package/dist/agent/engine/builtin.js +1 -1
  21. package/dist/agent/engine/builtin.js.map +1 -1
  22. package/dist/chat-threads/store.d.ts +3 -0
  23. package/dist/chat-threads/store.d.ts.map +1 -1
  24. package/dist/chat-threads/store.js +32 -0
  25. package/dist/chat-threads/store.js.map +1 -1
  26. package/dist/cli/templates-meta.d.ts.map +1 -1
  27. package/dist/cli/templates-meta.js +11 -0
  28. package/dist/cli/templates-meta.js.map +1 -1
  29. package/dist/client/AgentPanel.d.ts +3 -1
  30. package/dist/client/AgentPanel.d.ts.map +1 -1
  31. package/dist/client/AgentPanel.js +21 -10
  32. package/dist/client/AgentPanel.js.map +1 -1
  33. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  34. package/dist/client/AgentTaskCard.js +2 -0
  35. package/dist/client/AgentTaskCard.js.map +1 -1
  36. package/dist/client/AssistantChat.d.ts +2 -0
  37. package/dist/client/AssistantChat.d.ts.map +1 -1
  38. package/dist/client/AssistantChat.js +111 -75
  39. package/dist/client/AssistantChat.js.map +1 -1
  40. package/dist/client/ErrorBoundary.d.ts +1 -3
  41. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  42. package/dist/client/ErrorBoundary.js +37 -9
  43. package/dist/client/ErrorBoundary.js.map +1 -1
  44. package/dist/client/FeedbackButton.d.ts.map +1 -1
  45. package/dist/client/FeedbackButton.js +4 -3
  46. package/dist/client/FeedbackButton.js.map +1 -1
  47. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  48. package/dist/client/MultiTabAssistantChat.js +145 -49
  49. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  50. package/dist/client/agent-chat.d.ts +11 -0
  51. package/dist/client/agent-chat.d.ts.map +1 -1
  52. package/dist/client/agent-chat.js +1 -1
  53. package/dist/client/agent-chat.js.map +1 -1
  54. package/dist/client/components/AgentPresenceChip.d.ts +12 -0
  55. package/dist/client/components/AgentPresenceChip.d.ts.map +1 -0
  56. package/dist/client/components/AgentPresenceChip.js +42 -0
  57. package/dist/client/components/AgentPresenceChip.js.map +1 -0
  58. package/dist/client/components/PresenceBar.d.ts +17 -0
  59. package/dist/client/components/PresenceBar.d.ts.map +1 -0
  60. package/dist/client/components/PresenceBar.js +118 -0
  61. package/dist/client/components/PresenceBar.js.map +1 -0
  62. package/dist/client/composer/ComposerPlusMenu.d.ts +6 -1
  63. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  64. package/dist/client/composer/ComposerPlusMenu.js +22 -83
  65. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  66. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  67. package/dist/client/composer/TiptapComposer.js +237 -16
  68. package/dist/client/composer/TiptapComposer.js.map +1 -1
  69. package/dist/client/composer/types.d.ts +1 -0
  70. package/dist/client/composer/types.d.ts.map +1 -1
  71. package/dist/client/composer/useVoiceDictation.d.ts +2 -0
  72. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -1
  73. package/dist/client/composer/useVoiceDictation.js +85 -10
  74. package/dist/client/composer/useVoiceDictation.js.map +1 -1
  75. package/dist/client/index.d.ts +3 -0
  76. package/dist/client/index.d.ts.map +1 -1
  77. package/dist/client/index.js +5 -0
  78. package/dist/client/index.js.map +1 -1
  79. package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
  80. package/dist/client/org/RequireActiveOrg.js +15 -10
  81. package/dist/client/org/RequireActiveOrg.js.map +1 -1
  82. package/dist/client/org/TeamPage.d.ts.map +1 -1
  83. package/dist/client/org/TeamPage.js +125 -4
  84. package/dist/client/org/TeamPage.js.map +1 -1
  85. package/dist/client/org/hooks.d.ts +30 -0
  86. package/dist/client/org/hooks.d.ts.map +1 -1
  87. package/dist/client/org/hooks.js +65 -0
  88. package/dist/client/org/hooks.js.map +1 -1
  89. package/dist/client/org/index.d.ts +2 -2
  90. package/dist/client/org/index.d.ts.map +1 -1
  91. package/dist/client/org/index.js +1 -1
  92. package/dist/client/org/index.js.map +1 -1
  93. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  94. package/dist/client/resources/ResourcesPanel.js +5 -1
  95. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  96. package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
  97. package/dist/client/settings/AutomationsSection.js +1 -0
  98. package/dist/client/settings/AutomationsSection.js.map +1 -1
  99. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  100. package/dist/client/settings/SettingsPanel.js +24 -11
  101. package/dist/client/settings/SettingsPanel.js.map +1 -1
  102. package/dist/client/sse-event-processor.d.ts.map +1 -1
  103. package/dist/client/sse-event-processor.js +10 -0
  104. package/dist/client/sse-event-processor.js.map +1 -1
  105. package/dist/client/tools/ToolEditor.d.ts +5 -0
  106. package/dist/client/tools/ToolEditor.d.ts.map +1 -0
  107. package/dist/client/tools/ToolEditor.js +98 -0
  108. package/dist/client/tools/ToolEditor.js.map +1 -0
  109. package/dist/client/tools/ToolViewer.d.ts +5 -0
  110. package/dist/client/tools/ToolViewer.d.ts.map +1 -0
  111. package/dist/client/tools/ToolViewer.js +309 -0
  112. package/dist/client/tools/ToolViewer.js.map +1 -0
  113. package/dist/client/tools/ToolViewerPage.d.ts +2 -0
  114. package/dist/client/tools/ToolViewerPage.d.ts.map +1 -0
  115. package/dist/client/tools/ToolViewerPage.js +23 -0
  116. package/dist/client/tools/ToolViewerPage.js.map +1 -0
  117. package/dist/client/tools/ToolsListPage.d.ts +2 -0
  118. package/dist/client/tools/ToolsListPage.d.ts.map +1 -0
  119. package/dist/client/tools/ToolsListPage.js +72 -0
  120. package/dist/client/tools/ToolsListPage.js.map +1 -0
  121. package/dist/client/tools/ToolsSidebarSection.d.ts +2 -0
  122. package/dist/client/tools/ToolsSidebarSection.d.ts.map +1 -0
  123. package/dist/client/tools/ToolsSidebarSection.js +188 -0
  124. package/dist/client/tools/ToolsSidebarSection.js.map +1 -0
  125. package/dist/client/tools/index.d.ts +6 -0
  126. package/dist/client/tools/index.d.ts.map +1 -0
  127. package/dist/client/tools/index.js +6 -0
  128. package/dist/client/tools/index.js.map +1 -0
  129. package/dist/client/use-chat-threads.d.ts +1 -0
  130. package/dist/client/use-chat-threads.d.ts.map +1 -1
  131. package/dist/client/use-chat-threads.js +29 -0
  132. package/dist/client/use-chat-threads.js.map +1 -1
  133. package/dist/client/use-db-sync.js +6 -6
  134. package/dist/client/use-db-sync.js.map +1 -1
  135. package/dist/collab/agent-identity.d.ts +15 -0
  136. package/dist/collab/agent-identity.d.ts.map +1 -0
  137. package/dist/collab/agent-identity.js +14 -0
  138. package/dist/collab/agent-identity.js.map +1 -0
  139. package/dist/collab/agent-presence.d.ts +59 -0
  140. package/dist/collab/agent-presence.d.ts.map +1 -0
  141. package/dist/collab/agent-presence.js +165 -0
  142. package/dist/collab/agent-presence.js.map +1 -0
  143. package/dist/collab/awareness.d.ts +7 -0
  144. package/dist/collab/awareness.d.ts.map +1 -1
  145. package/dist/collab/awareness.js +2 -2
  146. package/dist/collab/awareness.js.map +1 -1
  147. package/dist/collab/client-struct.d.ts +43 -0
  148. package/dist/collab/client-struct.d.ts.map +1 -0
  149. package/dist/collab/client-struct.js +272 -0
  150. package/dist/collab/client-struct.js.map +1 -0
  151. package/dist/collab/client.d.ts +2 -0
  152. package/dist/collab/client.d.ts.map +1 -1
  153. package/dist/collab/client.js +15 -1
  154. package/dist/collab/client.js.map +1 -1
  155. package/dist/collab/index.d.ts +6 -1
  156. package/dist/collab/index.d.ts.map +1 -1
  157. package/dist/collab/index.js +11 -1
  158. package/dist/collab/index.js.map +1 -1
  159. package/dist/collab/json-to-yjs.d.ts +72 -0
  160. package/dist/collab/json-to-yjs.d.ts.map +1 -0
  161. package/dist/collab/json-to-yjs.js +456 -0
  162. package/dist/collab/json-to-yjs.js.map +1 -0
  163. package/dist/collab/struct-routes.d.ts +52 -0
  164. package/dist/collab/struct-routes.d.ts.map +1 -0
  165. package/dist/collab/struct-routes.js +74 -0
  166. package/dist/collab/struct-routes.js.map +1 -0
  167. package/dist/collab/ydoc-manager.d.ts +19 -0
  168. package/dist/collab/ydoc-manager.d.ts.map +1 -1
  169. package/dist/collab/ydoc-manager.js +49 -0
  170. package/dist/collab/ydoc-manager.js.map +1 -1
  171. package/dist/deploy/build.js +1 -1
  172. package/dist/file-upload/builder.d.ts.map +1 -1
  173. package/dist/file-upload/builder.js +2 -1
  174. package/dist/file-upload/builder.js.map +1 -1
  175. package/dist/integrations/adapters/email.d.ts +17 -0
  176. package/dist/integrations/adapters/email.d.ts.map +1 -0
  177. package/dist/integrations/adapters/email.js +620 -0
  178. package/dist/integrations/adapters/email.js.map +1 -0
  179. package/dist/integrations/adapters/telegram.d.ts.map +1 -1
  180. package/dist/integrations/adapters/telegram.js +19 -3
  181. package/dist/integrations/adapters/telegram.js.map +1 -1
  182. package/dist/integrations/index.d.ts +1 -0
  183. package/dist/integrations/index.d.ts.map +1 -1
  184. package/dist/integrations/index.js +1 -0
  185. package/dist/integrations/index.js.map +1 -1
  186. package/dist/integrations/internal-token.d.ts +18 -0
  187. package/dist/integrations/internal-token.d.ts.map +1 -0
  188. package/dist/integrations/internal-token.js +86 -0
  189. package/dist/integrations/internal-token.js.map +1 -0
  190. package/dist/integrations/pending-tasks-retry-job.d.ts +15 -0
  191. package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -0
  192. package/dist/integrations/pending-tasks-retry-job.js +199 -0
  193. package/dist/integrations/pending-tasks-retry-job.js.map +1 -0
  194. package/dist/integrations/pending-tasks-store.d.ts +40 -0
  195. package/dist/integrations/pending-tasks-store.d.ts.map +1 -0
  196. package/dist/integrations/pending-tasks-store.js +151 -0
  197. package/dist/integrations/pending-tasks-store.js.map +1 -0
  198. package/dist/integrations/plugin.d.ts.map +1 -1
  199. package/dist/integrations/plugin.js +151 -9
  200. package/dist/integrations/plugin.js.map +1 -1
  201. package/dist/integrations/task-queue-stats.d.ts +22 -0
  202. package/dist/integrations/task-queue-stats.d.ts.map +1 -0
  203. package/dist/integrations/task-queue-stats.js +117 -0
  204. package/dist/integrations/task-queue-stats.js.map +1 -0
  205. package/dist/integrations/types.d.ts +2 -0
  206. package/dist/integrations/types.d.ts.map +1 -1
  207. package/dist/integrations/webhook-handler.d.ts +23 -4
  208. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  209. package/dist/integrations/webhook-handler.js +217 -59
  210. package/dist/integrations/webhook-handler.js.map +1 -1
  211. package/dist/mcp-client/manager.d.ts +3 -0
  212. package/dist/mcp-client/manager.d.ts.map +1 -1
  213. package/dist/mcp-client/manager.js +5 -0
  214. package/dist/mcp-client/manager.js.map +1 -1
  215. package/dist/oauth-tokens/google-refresh.d.ts.map +1 -1
  216. package/dist/oauth-tokens/google-refresh.js +6 -0
  217. package/dist/oauth-tokens/google-refresh.js.map +1 -1
  218. package/dist/onboarding/default-steps.d.ts.map +1 -1
  219. package/dist/onboarding/default-steps.js +10 -3
  220. package/dist/onboarding/default-steps.js.map +1 -1
  221. package/dist/org/context.d.ts +35 -0
  222. package/dist/org/context.d.ts.map +1 -1
  223. package/dist/org/context.js +136 -0
  224. package/dist/org/context.js.map +1 -1
  225. package/dist/org/handlers.d.ts +76 -0
  226. package/dist/org/handlers.d.ts.map +1 -1
  227. package/dist/org/handlers.js +411 -2
  228. package/dist/org/handlers.js.map +1 -1
  229. package/dist/org/index.d.ts +2 -2
  230. package/dist/org/index.d.ts.map +1 -1
  231. package/dist/org/index.js +2 -2
  232. package/dist/org/index.js.map +1 -1
  233. package/dist/org/migrations.d.ts.map +1 -1
  234. package/dist/org/migrations.js +8 -0
  235. package/dist/org/migrations.js.map +1 -1
  236. package/dist/org/plugin.d.ts +6 -0
  237. package/dist/org/plugin.d.ts.map +1 -1
  238. package/dist/org/plugin.js +71 -7
  239. package/dist/org/plugin.js.map +1 -1
  240. package/dist/org/schema.d.ts +38 -0
  241. package/dist/org/schema.d.ts.map +1 -1
  242. package/dist/org/schema.js +2 -0
  243. package/dist/org/schema.js.map +1 -1
  244. package/dist/org/types.d.ts +7 -0
  245. package/dist/org/types.d.ts.map +1 -1
  246. package/dist/scripts/call-agent.d.ts.map +1 -1
  247. package/dist/scripts/call-agent.js +90 -18
  248. package/dist/scripts/call-agent.js.map +1 -1
  249. package/dist/scripts/db/index.d.ts.map +1 -1
  250. package/dist/scripts/db/index.js +2 -0
  251. package/dist/scripts/db/index.js.map +1 -1
  252. package/dist/scripts/db/migrate-user-api-keys.d.ts +24 -0
  253. package/dist/scripts/db/migrate-user-api-keys.d.ts.map +1 -0
  254. package/dist/scripts/db/migrate-user-api-keys.js +224 -0
  255. package/dist/scripts/db/migrate-user-api-keys.js.map +1 -0
  256. package/dist/scripts/db/wipe-leaked-builder-keys.d.ts +27 -0
  257. package/dist/scripts/db/wipe-leaked-builder-keys.d.ts.map +1 -0
  258. package/dist/scripts/db/wipe-leaked-builder-keys.js +163 -0
  259. package/dist/scripts/db/wipe-leaked-builder-keys.js.map +1 -0
  260. package/dist/secrets/register-framework-secrets.d.ts +5 -0
  261. package/dist/secrets/register-framework-secrets.d.ts.map +1 -1
  262. package/dist/secrets/register-framework-secrets.js +7 -44
  263. package/dist/secrets/register-framework-secrets.js.map +1 -1
  264. package/dist/secrets/substitution.d.ts.map +1 -1
  265. package/dist/secrets/substitution.js +14 -2
  266. package/dist/secrets/substitution.js.map +1 -1
  267. package/dist/server/action-discovery.d.ts.map +1 -1
  268. package/dist/server/action-discovery.js +39 -0
  269. package/dist/server/action-discovery.js.map +1 -1
  270. package/dist/server/action-routes.js +1 -1
  271. package/dist/server/action-routes.js.map +1 -1
  272. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  273. package/dist/server/agent-chat-plugin.js +192 -45
  274. package/dist/server/agent-chat-plugin.js.map +1 -1
  275. package/dist/server/auth.d.ts +14 -0
  276. package/dist/server/auth.d.ts.map +1 -1
  277. package/dist/server/auth.js +232 -17
  278. package/dist/server/auth.js.map +1 -1
  279. package/dist/server/builder-browser.d.ts +1 -1
  280. package/dist/server/builder-browser.d.ts.map +1 -1
  281. package/dist/server/builder-browser.js +12 -12
  282. package/dist/server/builder-browser.js.map +1 -1
  283. package/dist/server/collab-plugin.d.ts +4 -0
  284. package/dist/server/collab-plugin.d.ts.map +1 -1
  285. package/dist/server/collab-plugin.js +30 -4
  286. package/dist/server/collab-plugin.js.map +1 -1
  287. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  288. package/dist/server/core-routes-plugin.js +106 -100
  289. package/dist/server/core-routes-plugin.js.map +1 -1
  290. package/dist/server/credential-provider.d.ts +43 -2
  291. package/dist/server/credential-provider.d.ts.map +1 -1
  292. package/dist/server/credential-provider.js +115 -2
  293. package/dist/server/credential-provider.js.map +1 -1
  294. package/dist/server/design-token-utils.d.ts +132 -0
  295. package/dist/server/design-token-utils.d.ts.map +1 -0
  296. package/dist/server/design-token-utils.js +714 -0
  297. package/dist/server/design-token-utils.js.map +1 -0
  298. package/dist/server/email.d.ts +10 -0
  299. package/dist/server/email.d.ts.map +1 -1
  300. package/dist/server/email.js +63 -16
  301. package/dist/server/email.js.map +1 -1
  302. package/dist/server/framework-request-handler.d.ts.map +1 -1
  303. package/dist/server/framework-request-handler.js +38 -3
  304. package/dist/server/framework-request-handler.js.map +1 -1
  305. package/dist/server/google-oauth.d.ts +18 -1
  306. package/dist/server/google-oauth.d.ts.map +1 -1
  307. package/dist/server/google-oauth.js +21 -4
  308. package/dist/server/google-oauth.js.map +1 -1
  309. package/dist/server/index.d.ts +3 -3
  310. package/dist/server/index.d.ts.map +1 -1
  311. package/dist/server/index.js +3 -3
  312. package/dist/server/index.js.map +1 -1
  313. package/dist/server/onboarding-html.d.ts.map +1 -1
  314. package/dist/server/onboarding-html.js +14 -1
  315. package/dist/server/onboarding-html.js.map +1 -1
  316. package/dist/server/transcribe-voice.d.ts.map +1 -1
  317. package/dist/server/transcribe-voice.js +89 -24
  318. package/dist/server/transcribe-voice.js.map +1 -1
  319. package/dist/sharing/schema.d.ts +1 -1
  320. package/dist/styles/agent-native.css +5 -0
  321. package/dist/templates/default/app/root.tsx +50 -13
  322. package/dist/templates/default/react-router.config.ts +3 -0
  323. package/dist/terminal/terminal-plugin.d.ts.map +1 -1
  324. package/dist/terminal/terminal-plugin.js +23 -3
  325. package/dist/terminal/terminal-plugin.js.map +1 -1
  326. package/dist/tools/actions.d.ts +3 -0
  327. package/dist/tools/actions.d.ts.map +1 -0
  328. package/dist/tools/actions.js +140 -0
  329. package/dist/tools/actions.js.map +1 -0
  330. package/dist/tools/fetch-tool.js +1 -1
  331. package/dist/tools/fetch-tool.js.map +1 -1
  332. package/dist/tools/html-shell.d.ts +2 -0
  333. package/dist/tools/html-shell.d.ts.map +1 -0
  334. package/dist/tools/html-shell.js +387 -0
  335. package/dist/tools/html-shell.js.map +1 -0
  336. package/dist/tools/routes.d.ts +2 -0
  337. package/dist/tools/routes.d.ts.map +1 -0
  338. package/dist/tools/routes.js +576 -0
  339. package/dist/tools/routes.js.map +1 -0
  340. package/dist/tools/schema.d.ts +575 -0
  341. package/dist/tools/schema.d.ts.map +1 -0
  342. package/dist/tools/schema.js +112 -0
  343. package/dist/tools/schema.js.map +1 -0
  344. package/dist/tools/store.d.ts +40 -0
  345. package/dist/tools/store.d.ts.map +1 -0
  346. package/dist/tools/store.js +190 -0
  347. package/dist/tools/store.js.map +1 -0
  348. package/dist/tools/theme.d.ts +2 -0
  349. package/dist/tools/theme.d.ts.map +1 -0
  350. package/dist/tools/theme.js +67 -0
  351. package/dist/tools/theme.js.map +1 -0
  352. package/dist/transcription/builder-transcription.d.ts.map +1 -1
  353. package/dist/transcription/builder-transcription.js +26 -14
  354. package/dist/transcription/builder-transcription.js.map +1 -1
  355. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  356. package/dist/vite/action-types-plugin.js +10 -2
  357. package/dist/vite/action-types-plugin.js.map +1 -1
  358. package/dist/vite/client.d.ts.map +1 -1
  359. package/dist/vite/client.js +26 -6
  360. package/dist/vite/client.js.map +1 -1
  361. package/docs/content/a2a-protocol.md +2 -2
  362. package/docs/content/authentication.md +51 -0
  363. package/docs/content/cloneable-saas.md +59 -62
  364. package/docs/content/faq.md +73 -43
  365. package/docs/content/getting-started.md +37 -61
  366. package/docs/content/mcp-clients.md +14 -1
  367. package/docs/content/messaging.md +284 -0
  368. package/docs/content/pure-agent-apps.md +55 -28
  369. package/docs/content/template-calendar.md +61 -56
  370. package/docs/content/template-clips.md +22 -18
  371. package/docs/content/template-content.md +36 -26
  372. package/docs/content/template-dispatch.md +2 -1
  373. package/docs/content/template-forms.md +13 -11
  374. package/docs/content/template-slides.md +43 -31
  375. package/docs/content/template-video.md +49 -22
  376. package/docs/content/tools.md +107 -0
  377. package/docs/content/what-is-agent-native.md +89 -105
  378. package/package.json +4 -1
  379. package/src/templates/default/app/root.tsx +50 -13
  380. package/src/templates/default/react-router.config.ts +3 -0
  381. package/docs/content/integrations.md +0 -198
@@ -139,6 +139,57 @@ function MyComponent() {
139
139
  }
140
140
  ```
141
141
 
142
+ ## Sign-In with Return URL {#sign-in-return-url}
143
+
144
+ Templates with **public pages** (share links, embeds, marketing pages) often need an in-page CTA that asks anonymous viewers to sign in and brings them back to the page they were on. The framework provides a single entry point for this:
145
+
146
+ ```
147
+ /_agent-native/sign-in?return=<same-origin-path>
148
+ ```
149
+
150
+ When an anonymous viewer hits this URL, the framework's login page is served. After a successful sign-in (any flow — token, email/password, or Google OAuth), the viewer is 302'd to `return`.
151
+
152
+ The `return` parameter is validated as a **same-origin path**. Network-path references (`//evil.com/...`), absolute URLs, `data:` / `javascript:` schemes, and embedded control characters all fall back to `/`. The validated path is reconstructed from the URL parser, not echoed back from the input.
153
+
154
+ **From a React component:**
155
+
156
+ ```tsx
157
+ import { Button } from "@/components/ui/button";
158
+
159
+ function SignInCta() {
160
+ const onClick = () => {
161
+ const ret = window.location.pathname + window.location.search;
162
+ window.location.href =
163
+ "/_agent-native/sign-in?return=" + encodeURIComponent(ret);
164
+ };
165
+ return <Button onClick={onClick}>Sign in</Button>;
166
+ }
167
+ ```
168
+
169
+ ### Bookmarked private paths
170
+
171
+ When an anonymous user navigates directly to a private path like `/dashboard`, the framework already serves the login page at that URL — after successful sign-in, the page reloads and the user lands on `/dashboard`. No special handling needed; this works for token, email/password, **and** Google OAuth.
172
+
173
+ ### Behind the scenes: Google OAuth
174
+
175
+ Both flows (the explicit `/_agent-native/sign-in` entrypoint and the bookmarked-path case) thread the return URL through the OAuth state. The state is HMAC-signed, so it can't be forged in transit. On the callback, the return URL is re-validated as same-origin before the redirect — so a leaked signing key still can't be turned into an open-redirect oracle.
176
+
177
+ If your template wraps `/_agent-native/google/auth-url` directly (e.g. mail and calendar templates do, to widen scopes), accept a `?return=<path>` query and forward it as the sixth argument to `encodeOAuthState`:
178
+
179
+ ```typescript
180
+ const returnUrl = getQuery(event).return;
181
+ const state = encodeOAuthState(
182
+ redirectUri,
183
+ undefined,
184
+ desktop,
185
+ false,
186
+ undefined,
187
+ typeof returnUrl === "string" ? returnUrl : undefined,
188
+ );
189
+ ```
190
+
191
+ The default `/_agent-native/google/auth-url` route does this automatically — only override if your template needs custom OAuth handling.
192
+
142
193
  ## Environment Variables {#environment-variables}
143
194
 
144
195
  | Variable | Purpose |
@@ -1,98 +1,95 @@
1
1
  ---
2
2
  title: "Cloneable SaaS"
3
- description: "Agent-native templates are not demos they're complete, SaaS-grade products you clone, customize, and own."
3
+ description: "Fork a working SaaS product and make it yours agent included."
4
4
  ---
5
5
 
6
6
  # Cloneable SaaS
7
7
 
8
- The word "template" undersells what ships with agent-native.
8
+ Want to ship your own AI-powered analytics tool? Mail client? Forms builder? Pick a template, and you've got a working SaaS in minutes — agent, database, auth, and deploy pipeline already wired up.
9
9
 
10
- In most frameworks, a template is a bare-bones scaffold: a couple of routes, a few components, and a lot of "TODO." Agent-native inverts that. Every template is a **full, SaaS-grade product** — email client, calendar, analytics, deck generator, video editor, form builder, issue tracker — complete enough to use as-is, and also complete enough to fork and make your own.
10
+ Most templates give you a blank scaffold and a long TODO list. Agent-native flips that. Each template is a **complete, SaaS-grade product** — already runnable on day one, already shippable, and entirely yours to customize, brand, and deploy.
11
11
 
12
- Think of them less like "templates" and more like **cloneable SaaS**. You get a real product, not a starting point.
12
+ We call them **cloneable SaaS**, not templates. You're not starting from scratch. You're forking a finished product.
13
13
 
14
- ## The pitch {#pitch}
14
+ ## Templates available {#catalog}
15
15
 
16
- Every SaaS product you use today hits the same wall: it gives you 80% of what you need, and you can't change the 20% that really matters. You can't touch the data model. You can't add the metric. You can't wire it to your internal system. You can't give it instructions.
16
+ Each one is a real app you could use today, and the launching pad for your own version of it.
17
17
 
18
- Cloneable SaaS flips that. You start from a production-quality app, and everything about it is yours — the code, the database, the agent, the deploy target, the brand. If you don't like how the inbox groups by thread, change it. If you need a field that the template doesn't have, add it. The agent helps you do all of this in natural language.
18
+ | Template | What it is |
19
+ | -------------- | --------------------------------------------------------------------------------------------------------- |
20
+ | **Mail** | An agent-native Superhuman. Inbox, labels, AI triage, keyboard-first, drafts and sends through the agent. |
21
+ | **Calendar** | An agent-native Google Calendar. Events, sync, public booking links, agent-driven scheduling. |
22
+ | **Content** | An agent-native Notion / Google Docs. Markdown + Tiptap editor, Notion sync, real-time multi-user collab. |
23
+ | **Slides** | An agent-native Google Slides. React-based decks the agent generates and edits directly. |
24
+ | **Video** | An agent-native video editor on Remotion. Prompt for a cut, the agent assembles it. |
25
+ | **Analytics** | An agent-native Amplitude/Mixpanel. Connect data sources, prompt for charts, pin to dashboards. |
26
+ | **Forms** | An agent-native Typeform. Build, share, and collect; the agent handles schema and submission analysis. |
27
+ | **Issues** | An agent-native Jira. Projects, issues, priorities, with the agent as your project manager. |
28
+ | **Recruiting** | An agent-native Greenhouse. Candidate pipelines, scoring, outreach drafts. |
29
+ | **Dispatch** | The workspace control plane: shared secrets, cross-app integrations, Slack/Telegram, scheduled jobs. |
30
+ | **Starter** | The minimal scaffold. Agent chat plus the architecture, nothing else. Build something new. |
19
31
 
20
- This isn't a theoretical claim: it's how Steve (the framework's author) has been using it for months. The mail template _is_ his inbox. The analytics template _is_ his dashboard. The calendar template _is_ his calendar.
32
+ More are in active development: **Clips** (screen recording + transcription), **Calls** (Gong-style conversation intelligence), and **Scheduling** (a standalone scheduling app).
21
33
 
22
- ## What's in the catalog {#catalog}
34
+ See the full catalog under [Templates](/templates), or jump straight to one — for example, [Dispatch](/docs/template-dispatch) is a great place to start if you want a workspace-style app.
23
35
 
24
- All of these ship in the `BuilderIO/agent-native` repo and scaffold via `agent-native create`:
36
+ ## What you get out of the box {#what-you-get}
25
37
 
26
- | Template | What it is |
27
- | -------------- | --------------------------------------------------------------------------------------------------------------- |
28
- | **Mail** | An agent-native Superhuman. Inbox, labels, AI triage, keyboard-first, with an agent that can draft and send. |
29
- | **Calendar** | An agent-native Google Calendar. Events, sync, public booking links, agent-driven scheduling. |
30
- | **Content** | An agent-native Notion / Google Docs. Markdown + Tiptap editor, Notion sync, multi-user real-time collab. |
31
- | **Slides** | An agent-native Google Slides. React-based decks the agent generates and edits directly. |
32
- | **Video** | An agent-native video editor built on Remotion. Prompt for a cut, the agent assembles it. |
33
- | **Analytics** | An agent-native Amplitude/Mixpanel. Connect data sources, prompt for charts, pin to dashboards. |
34
- | **Forms** | An agent-native Typeform. Build, share, and collect; agent handles the schema and analysis of submissions. |
35
- | **Issues** | An agent-native Jira. Projects, issues, priorities, with the agent as your project manager. |
36
- | **Recruiting** | An agent-native Greenhouse. Candidate pipelines, scoring, outreach drafts. |
37
- | **Dispatch** | The **workspace control plane**: central secrets vault, cross-app integrations, Slack/Telegram, scheduled jobs. |
38
- | **Starter** | The minimal scaffold. Agent chat + the six-rules architecture wired up, nothing else. Build from scratch. |
38
+ Every cloneable SaaS ships with the parts that normally take months to build:
39
39
 
40
- Additional templates in active development in the repo: **Clips** (screen recording + transcription), **Calls** (Gong-style conversation intelligence), **Scheduling** (a standalone scheduling app and reusable package).
40
+ - **A working agent** already wired into the app, already able to take actions on your data, already context-aware about what you're looking at. See [Messaging the agent](/docs/messaging) for how it works.
41
+ - **Auth** — sign in, sessions, organizations, multi-tenant isolation. Already done.
42
+ - **A database** — every template has its schema, queries, and migrations ready to go. Bring your own SQL database (Postgres, SQLite, Turso, D1) — the framework adapts.
43
+ - **A real-time UI** — the screen stays in sync with what the agent does. Click "draft an email" in chat, watch the draft appear in your inbox immediately.
44
+ - **Deploy-ready** — push to Netlify, Vercel, Cloudflare, AWS, or anywhere else that runs Node. No vendor lock-in.
45
+ - **Branding hooks** — name, colors, logo, copy are all easy to change.
41
46
 
42
- ## The clone customize deploy flow {#flow}
47
+ This isn't a theoretical claim. The framework's author runs his actual inbox on the Mail template, his actual calendar on the Calendar template, and his actual analytics on the Analytics template. Templates are daily-driver software.
43
48
 
44
- Every cloneable SaaS follows the same lifecycle:
49
+ ## What you do {#what-you-do}
45
50
 
46
- ### 1. Clone
51
+ The path from "I want my own SaaS" to "I have my own SaaS" is short:
47
52
 
48
- ```bash
49
- pnpm dlx @agent-native/core create my-platform
50
- ```
51
-
52
- The CLI shows a multi-select picker. Pick one app (standalone) or several (workspace — apps share auth, brand, agent config, and database). Each picked template is scaffolded into `apps/<name>/` with every file you need. See [Getting Started](/docs) for the full flow or [Multi-App Workspace](/docs/multi-app-workspace) for the workspace story.
53
-
54
- ### 2. Use it immediately
55
-
56
- Every template is runnable the moment it scaffolds. Fill in `.env` (mostly `ANTHROPIC_API_KEY` and `DATABASE_URL`), `pnpm install`, `pnpm dev`, and it works. No "TODO: implement login," no placeholder routes.
53
+ 1. **Pick a template.** Use the CLI picker, or browse the docs and pick one to start from.
54
+ 2. **Brand it.** Change the name, colors, logo, and copy. Most templates expose this in a single config file.
55
+ 3. **Customize it.** Ask the agent to add the column you need, change how the inbox groups, connect to your internal API, add a new view. The agent edits the code; you review the diff.
56
+ 4. **Ship it.** Run the deploy command. You now have your own production SaaS at your own domain.
57
57
 
58
- ### 3. Customize with the agent
58
+ Steps 2–4 typically take days, not months. Step 3 is open-ended — your forked SaaS evolves over time, in plain English, by talking to the agent.
59
59
 
60
- The agent can modify code — components, routes, actions, styles, the schema. This is a feature, not a bug:
60
+ ## Why this is practical {#why}
61
61
 
62
- - "Change the inbox to group by sender instead of thread." _The agent edits the component._
63
- - "Add a `leadScore` column to contacts and compute it from the last email." _The agent adds the Drizzle column, runs a migration, writes the scoring action._
64
- - "Connect this to our internal HR API." _The agent writes the integration._
62
+ A traditional fork-the-codebase model breaks down at scale: every user maintaining their own inbox sounds like a maintenance nightmare. Two framework decisions make it work:
65
63
 
66
- Every edit is normal Git-tracked code. Bad changes? Revert them. Good changes? Keep them. See [Self-Modifying Code](/docs/key-concepts#agent-modifies-code) for the full mental model.
64
+ 1. **The agent does the maintenance.** You don't write code to add a column or wire a new integration you ask the agent. So "your own forked inbox" is a feature, not a burden.
65
+ 2. **Per-user customization without per-user code.** Skills, memory, instructions, connected MCP servers, and sub-agents all live in SQL. Every user gets their own customization layer; the shared codebase hosts all of them at once.
67
66
 
68
- ### 4. Deploy anywhere
67
+ The result: Claude-Code-level flexibility for each user, with normal SaaS deployment economics.
69
68
 
70
- Agent-native apps run on any Nitro-compatible host (Node, Cloudflare, Netlify, Vercel, Deno, Lambda, Bun) and any Drizzle-compatible SQL database (SQLite, Postgres, Turso, D1, Supabase, Neon). The framework doesn't lock you in.
69
+ ## Don't want to fork? {#hosted}
71
70
 
72
- For workspaces, `agent-native deploy` builds every app at once and ships them behind a single origin your own domain, your own cert, one command. See [Deployment](/docs/deployment).
71
+ You don't have to. Every template is also available as a hosted app on `agent-native.com` `mail.agent-native.com`, `calendar.agent-native.com`, and so on. Use the hosted version for free or paid; fork only when you want to change something the hosted version doesn't expose.
73
72
 
74
- ### 5. Stay on `agent-native.com`, or self-host
73
+ ## Building on this
75
74
 
76
- You can also use these as hosted apps on the Builder-operated `agent-native.com` platform — `mail.agent-native.com`, `calendar.agent-native.com`, etc. without forking. Fork only when you want to change something the hosted version doesn't let you change.
75
+ - [**Getting Started**](/docs/getting-started)clone your first template and run it locally
76
+ - [**Messaging the agent**](/docs/messaging) — how users (and you) talk to the agent that ships with each template
77
+ - [**Multi-App Workspace**](/docs/multi-app-workspace) — bundle several cloneable-SaaS apps into one workspace that shares auth, brand, and agent
78
+ - [**Dispatch**](/docs/template-dispatch) — the workspace control plane template
79
+ - [**Creating Templates**](/docs/creating-templates) — author and publish your own cloneable SaaS
77
80
 
78
- ## Why this works {#why-this-works}
81
+ ### For developers {#dev-details}
79
82
 
80
- Cloneable SaaS wouldn't be practical in a traditional codebase. Every user forking their own inbox would mean every user maintaining their own inbox — no thanks.
83
+ If you're scaffolding now, the CLI command is:
81
84
 
82
- Two framework decisions unlock it:
83
-
84
- 1. **Agents do the maintenance.** You don't write code to add a column or wire a new integration — you ask the agent. So "your own forked inbox" is a feature, not a burden, because the agent is doing the work.
85
- 2. **The workspace is SQL, not files.** Every user gets their own customization layer (skills, memory, instructions, connected MCP servers, sub-agents) without a dev-box. The shared codebase hosts all of them at once. See [Workspace](/docs/workspace).
86
-
87
- Combined, you get Claude-Code-level flexibility per user, with SaaS-grade deployment economics.
85
+ ```bash
86
+ pnpm dlx @agent-native/core create my-platform
87
+ ```
88
88
 
89
- ## Authoring your own cloneable SaaS {#authoring}
89
+ You'll get a multi-select picker. Pick one app (standalone) or several (workspace — apps share auth, brand, agent config, and database). Each picked template is scaffolded into `apps/<name>/` with every file you need.
90
90
 
91
- Want to publish a new template — your own cloneable SaaS? See [Creating Templates](/docs/creating-templates). You can publish to `BuilderIO/agent-native` for inclusion in the CLI picker, or host elsewhere and scaffold with `--template github:user/repo`.
91
+ Fill in `.env` (mostly `ANTHROPIC_API_KEY` and `DATABASE_URL`), `pnpm install`, `pnpm dev`, and it works. No "TODO: implement login," no placeholder routes.
92
92
 
93
- ## What's next
93
+ Deploy targets: any Nitro-compatible host (Node, Cloudflare, Netlify, Vercel, Deno, Lambda, Bun) and any Drizzle-compatible SQL database (SQLite, Postgres, Turso, D1, Supabase, Neon). For workspaces, `agent-native deploy` builds every app at once and ships them behind a single origin. See [Deployment](/docs/deployment).
94
94
 
95
- - [**Multi-App Workspace**](/docs/multi-app-workspace) bundle many cloneable-SaaS apps into one monorepo that shares auth, brand, and agent instructions
96
- - [**Key Concepts**](/docs/key-concepts) — the architecture that makes this work
97
- - [**Deployment**](/docs/deployment) — ship your forked app
98
- - [**Creating Templates**](/docs/creating-templates) — author and publish a new cloneable SaaS
95
+ To author and publish your own cloneable SaaS, see [Creating Templates](/docs/creating-templates).
@@ -1,73 +1,92 @@
1
1
  ---
2
2
  title: "FAQ"
3
- description: "Frequently asked questions about agent-native apps, development, architecture, and templates."
3
+ description: "Common questions about agent-native — what it is, who it's for, what you can build, and how it works."
4
4
  ---
5
5
 
6
6
  # FAQ
7
7
 
8
- Frequently asked questions about agent-native apps, development, and the framework.
8
+ Common questions about agent-native, organized from "I'm just looking" to "I'm wiring up auth right now."
9
9
 
10
- ## General {#general}
10
+ ## The basics {#general}
11
11
 
12
12
  ### What is agent-native? {#what-is-agent-native}
13
13
 
14
14
  Agent-native is a framework for building apps where the AI agent and the UI are equal partners. They share the same database, the same state, and they always stay in sync. Everything the UI can do, the agent can do — and vice versa. See [What Is Agent-Native?](/docs/what-is-agent-native) for the full explanation.
15
15
 
16
+ ### Who is this for? {#who-is-this-for}
17
+
18
+ Anyone who wants to ship an AI-powered product without spending a year building the boring parts. That includes:
19
+
20
+ - **Founders and PMs** who want to fork a working SaaS and make it their own — see [Cloneable SaaS](/docs/cloneable-saas).
21
+ - **Operators** who want a [pure-agent app](/docs/pure-agent-apps) — an agent that does work in the background with a minimal management UI.
22
+ - **Developers** building agent-driven products from scratch and want auth, multi-tenancy, real-time sync, and an architecture that won't break when AI is the primary user.
23
+
16
24
  ### How is this different from adding AI to an existing app? {#how-is-this-different}
17
25
 
18
26
  Most apps bolt AI on as an afterthought — an autocomplete here, a chat sidebar there. The AI can't actually _do_ things in the app. In an agent-native app, the agent is a first-class citizen. It can create emails, schedule events, build forms, generate slides, and modify the app's own code. The architecture is designed for this from the ground up.
19
27
 
20
- ### Do I need to know AI/ML? {#do-i-need-to-know-ai}
28
+ ### Is it open source? {#is-this-open-source}
21
29
 
22
- No. You don't train models, fine-tune, or deal with embeddings. You build a regular web app with React, TypeScript, and SQL. The framework handles the agent integration — routing messages, running actions, syncing state. You write standard web code and the agent just works.
30
+ Yes. The framework and all templates are open source. You can run everything locally, self-host, or use Builder.io's cloud for managed hosting, collaboration, and team features.
23
31
 
24
- ### Is this open source? {#is-this-open-source}
32
+ ### How much does it cost? {#how-much}
25
33
 
26
- Yes. The framework and all templates are open source. You can run everything locally, self-host, or use Builder.io's cloud for managed hosting, collaboration, and team features.
34
+ The framework itself is free. The two costs you'll see in practice:
27
35
 
28
- ## Development {#development}
36
+ - **AI usage.** You bring your own API key (Anthropic, OpenAI, etc.) and pay the model provider directly. There's no markup from us.
37
+ - **Hosting.** Whatever your host charges. Most templates run fine on free tiers (Netlify, Vercel, Cloudflare) for small workloads.
29
38
 
30
- ### Which AI coding tools work with agent-native? {#which-ai-tools-work}
39
+ If you'd rather not manage any of this, the hosted version on `agent-native.com` (operated by Builder.io) bundles inference and hosting into a per-seat plan.
31
40
 
32
- Any AI coding tool that reads project instructions. The framework uses AGENTS.md as the universal standard and auto-creates symlinks for specific tools:
41
+ ### Can I host this myself? {#can-i-self-host}
33
42
 
34
- - **Claude Code**reads CLAUDE.md (symlinked from AGENTS.md)
35
- - **Cursor** — reads .cursorrules (symlinked from AGENTS.md)
36
- - **Windsurf** — reads .windsurfrules (symlinked from AGENTS.md)
37
- - **Codex, Gemini, and others** — work via the embedded agent panel
38
- - **Builder.io** — cloud-hosted agent with visual editing and collaboration
43
+ Yes. Pick any host that runs Node Netlify, Vercel, Cloudflare, AWS, Deno Deploy, your own server — and any SQL database (Postgres, SQLite, Turso, D1). The framework is built to be portable. See [Deployment](/docs/deployment).
39
44
 
40
- ### Can I use my own database? {#can-i-use-my-own-database}
45
+ ### What AI models does it support? {#what-models}
41
46
 
42
- Yes. Set `DATABASE_URL` and the framework auto-detects your database. Supported databases include SQLite, Postgres (Neon, Supabase, plain), Turso (libSQL), and Cloudflare D1. All SQL is dialect-agnostic via Drizzle ORM the same code works everywhere.
47
+ Anthropic Claude, OpenAI (GPT-5 family), Google Gemini, and any provider that speaks the OpenAI API shape (including local models via Ollama). You configure the model in settings; switching is a config change, not a code rewrite. The framework's heaviest tested path is Claude, so that's the default recommendation.
43
48
 
44
- ### Where can I deploy? {#where-can-i-deploy}
49
+ ### Do I need to know AI/ML? {#do-i-need-to-know-ai}
45
50
 
46
- Anywhere. The server runs on Nitro, which compiles to any deployment target: Node.js, Cloudflare Workers/Pages, Netlify, Vercel, Deno Deploy, AWS Lambda, and Bun. You can also use Builder.io's hosting for managed deployments. See the [Deployment guide](/docs/deployment).
51
+ No. You don't train models, fine-tune, or deal with embeddings. You build a regular web app and on the hosted version, you barely build anything at all. The framework handles the agent integration: routing messages, running actions, syncing state.
47
52
 
48
53
  ### Can I migrate an existing app to agent-native? {#can-i-use-existing-code}
49
54
 
50
55
  You can, but agent-native works best when built from the ground up. The architecture — shared database, polling sync, actions, application state — needs to be integrated throughout. Starting from a template and customizing it is the recommended path. Think of it like the shift from desktop-first to mobile-first: you _can_ retrofit, but building native is better.
51
56
 
52
- ## Architecture {#architecture}
57
+ ## Templates and what you can build {#templates}
53
58
 
54
- ### Why polling instead of WebSockets? {#why-polling-not-websockets}
59
+ ### What templates are available? {#what-templates-are-available}
55
60
 
56
- Polling works in every deployment environment — including serverless, edge, and container platforms where persistent connections aren't available. The framework polls every 2 seconds using a lightweight version counter. When changes are detected, React Query caches are invalidated and components re-render. It's simple, reliable, and universal. SSE is also supported as an alternative.
61
+ The framework ships with production-ready templates you can use as daily drivers:
57
62
 
58
- ### Why can't the UI call an LLM directly? {#why-no-inline-llm-calls}
63
+ - **[Mail](/templates/mail)** full-featured email client (like Superhuman)
64
+ - **[Calendar](/templates/calendar)** — Google Calendar + Calendly-style booking links
65
+ - **[Content](/templates/content)** — Notion-style documents
66
+ - **[Slides](/templates/slides)** — presentation builder
67
+ - **[Video](/templates/video)** — video composition with Remotion
68
+ - **[Analytics](/templates/analytics)** — data platform (like Amplitude/Mixpanel)
69
+ - **[Forms](/templates/forms)**, **[Issues](/templates/issues)**, **[Recruiting](/templates/recruiting)**, and the **[Dispatch](/docs/template-dispatch)** workspace control plane.
59
70
 
60
- AI is non-deterministic you need conversation flow to give feedback and iterate, not one-shot buttons. The agent has your full codebase, instructions, skills, and conversation history. An inline LLM call has none of that. Plus, routing everything through the agent means the app can be driven from Slack, Telegram, or another agent via [A2A](/docs/a2a-protocol) — not just the UI.
71
+ Each template is a complete app with UI, agent actions, database schema, and AI instructions. See [Cloneable SaaS](/docs/cloneable-saas) for the full picture, or all [Templates](/templates).
61
72
 
62
- ### Why is this a framework and not a library? {#why-framework-not-library}
73
+ ### Can I customize templates? {#can-i-customize-templates}
63
74
 
64
- The shared database, polling sync, actions system, and application state all need to work together as a cohesive architecture. A library could give you pieces, but agent-native requires that the agent and UI are wired together from the ground up. Multiple agents need to be able to communicate, the UI needs to react to agent changes instantly, and the agent needs to understand what the user is looking at. That's an architecture, not a utility.
75
+ That's the whole point. Fork a template and customize it by asking the agent. "Add a priority field to forms." "Connect to our Salesforce instance." "Change the color scheme to match our brand." The agent modifies the code, and your app evolves over time.
76
+
77
+ ### Can I build something the templates don't cover? {#build-from-scratch}
78
+
79
+ Yes. Run `npx @agent-native/core create my-app` without picking a template — you get the framework scaffolding (frontend, backend, agent panel, database) but no domain-specific code. See [Getting Started](/docs/getting-started). For agent-first products with no traditional UI, see [Pure-Agent Apps](/docs/pure-agent-apps).
65
80
 
66
- ## Agent Capabilities {#agent-capabilities}
81
+ ## Agent capabilities {#agent-capabilities}
67
82
 
68
83
  ### Can the agent really modify the app's own code? {#can-the-agent-modify-code}
69
84
 
70
- Yes, and it's a feature. The agent can safely edit components, routes, styles, and actions. You ask "add a cohort analysis chart" and the agent builds it. You ask "connect to our Stripe account" and the agent writes the integration.
85
+ Yes, and it's a feature. The agent can safely edit components, routes, styles, and actions. You ask "add a cohort analysis chart" and the agent builds it. You ask "connect to our Stripe account" and the agent writes the integration. Everything is normal Git-tracked code, so bad changes are easy to revert.
86
+
87
+ ### Can users talk to the agent from outside the app? {#external-channels}
88
+
89
+ Yes. The same agent runs in your web UI, in Slack, in Telegram, over email, and from other agents (via [A2A](/docs/a2a-protocol)). It's the same agent with the same memory and the same actions, just reached through different channels. See [Messaging the agent](/docs/messaging).
71
90
 
72
91
  ### Can agents talk to each other? {#can-agents-talk-to-each-other}
73
92
 
@@ -75,27 +94,38 @@ Yes, via the [A2A (Agent-to-Agent) protocol](/docs/a2a-protocol). Every agent-na
75
94
 
76
95
  ### What can the agent see in the app? {#what-can-the-agent-see}
77
96
 
78
- The agent always knows what the user is currently viewing. The UI writes navigation state to the database on every route change — which view is open, which item is selected. The agent reads this via the `view-screen` action before taking action. If an email is open, the agent knows which email. If a slide is selected, the agent knows which slide. See [Context Awareness](/docs/context-awareness).
97
+ The agent always knows what the user is currently viewing. The UI writes navigation state to the database on every route change — which view is open, which item is selected. The agent reads this before taking action. If an email is open, the agent knows which email. If a slide is selected, the agent knows which slide. See [Context Awareness](/docs/context-awareness).
79
98
 
80
- ## Templates {#templates}
99
+ ## Development questions {#development}
81
100
 
82
- ### What templates are available? {#what-templates-are-available}
101
+ ### Which AI coding tools work with agent-native? {#which-ai-tools-work}
83
102
 
84
- The framework ships with production-ready templates that you can use as daily drivers:
103
+ Any AI coding tool that reads project instructions. The framework uses AGENTS.md as the universal standard and auto-creates symlinks for specific tools:
85
104
 
86
- - **[Mail](/templates/mail)** — full-featured email client (like Superhuman)
87
- - **[Calendar](/templates/calendar)** — Google Calendar + Calendly-style meeting links
88
- - **[Content](/templates/content)** — Notion-style documents
89
- - **[Slides](/templates/slides)** — presentation builder
90
- - **[Video](/templates/video)** — video composition with Remotion
91
- - **[Analytics](/templates/analytics)** — data platform (like Amplitude/Mixpanel)
105
+ - **Claude Code** — reads CLAUDE.md (symlinked from AGENTS.md)
106
+ - **Cursor** — reads .cursorrules (symlinked from AGENTS.md)
107
+ - **Windsurf** — reads .windsurfrules (symlinked from AGENTS.md)
108
+ - **Codex, Gemini, and others** — work via the embedded agent panel
109
+ - **Builder.io** — cloud-hosted agent with visual editing and collaboration
92
110
 
93
- Each template is a complete app with UI, agent actions, database schema, and AI instructions. See all [Templates](/templates).
111
+ ### Can I use my own database? {#can-i-use-my-own-database}
94
112
 
95
- ### Can I customize templates? {#can-i-customize-templates}
113
+ Yes. Set `DATABASE_URL` and the framework auto-detects it. Supported databases include SQLite, Postgres (Neon, Supabase, plain), Turso (libSQL), and Cloudflare D1. All SQL is dialect-agnostic via Drizzle ORM — the same code works everywhere.
96
114
 
97
- That's the whole point. Fork a template and customize it by asking the agent. "Add a priority field to forms." "Connect to our Salesforce instance." "Change the color scheme to match our brand." The agent modifies the code, and your app evolves over time.
115
+ ### Where can I deploy? {#where-can-i-deploy}
116
+
117
+ Anywhere. The server runs on Nitro, which compiles to any deployment target: Node.js, Cloudflare Workers/Pages, Netlify, Vercel, Deno Deploy, AWS Lambda, and Bun. You can also use Builder.io's hosting for managed deployments. See the [Deployment guide](/docs/deployment).
118
+
119
+ ## Architecture {#architecture}
120
+
121
+ ### Why polling instead of WebSockets? {#why-polling-not-websockets}
98
122
 
99
- ### Can I build from scratch without a template? {#can-i-build-from-scratch}
123
+ Polling works in every deployment environment including serverless, edge, and container platforms where persistent connections aren't available. The framework polls every 2 seconds using a lightweight version counter. When changes are detected, React Query caches are invalidated and components re-render. It's simple, reliable, and universal. SSE is also supported as an alternative.
124
+
125
+ ### Why can't the UI call an LLM directly? {#why-no-inline-llm-calls}
126
+
127
+ AI is non-deterministic — you need conversation flow to give feedback and iterate, not one-shot buttons. The agent has your full codebase, instructions, skills, and conversation history. An inline LLM call has none of that. Plus, routing everything through the agent means the app can be driven from Slack, Telegram, or another agent via [A2A](/docs/a2a-protocol) — not just the UI.
128
+
129
+ ### Why is this a framework and not a library? {#why-framework-not-library}
100
130
 
101
- Yes. Run `npx @agent-native/core create my-app` without the `--template` flag. You get the framework scaffolding React frontend, Nitro backend, agent panel, database but no domain-specific code. See [Getting Started](/docs).
131
+ The shared database, polling sync, actions system, and application state all need to work together as a cohesive architecture. A library could give you pieces, but agent-native requires that the agent and UI are wired together from the ground up. Multiple agents need to be able to communicate, the UI needs to react to agent changes instantly, and the agent needs to understand what the user is looking at. That's an architecture, not a utility.
@@ -5,37 +5,51 @@ description: "Pick a template, create your app, and start customizing it with AI
5
5
 
6
6
  # Getting Started
7
7
 
8
- The fastest way to get started is to pick a template and make it yours. Agent-native templates are **[cloneable SaaS](/docs/cloneable-saas)**complete, production-grade apps, not starter kits. You get a working product in under a minute and start customizing it with the agent.
8
+ By the end of this page, you'll have a working app Mail, Calendar, Forms, or any other templaterunning with an AI agent built into the sidebar that can drive every part of it.
9
9
 
10
- ## Create Your Workspace {#create-your-app}
10
+ ## Who is this for? {#who-is-this-for}
11
11
 
12
- ```bash
13
- npx @agent-native/core create my-platform
14
- ```
12
+ There are two ways to use agent-native, depending on how hands-on you want to be:
13
+
14
+ - **You want to use a hosted version.** Try a template right now at [agent-native.com/templates](/templates). Each template is a live, hosted app — you sign in, start using it, and the agent is already there. No install, no setup. You can stop reading this page and head straight to the [template gallery](/templates).
15
+ - **You want to run locally or customize it.** You'll clone a template, run it on your machine, and shape it however you want — branding, features, integrations. The rest of this page is for you. You'll need [Node.js](https://nodejs.org) and [pnpm](https://pnpm.io) installed.
15
16
 
16
- The CLI shows a multi-select picker pick as many templates as you want (Mail + Calendar + Forms, for example) and they all get scaffolded into the same workspace sharing auth, brand, and agent config. Then boot them all:
17
+ Not sure which path? If you've never written code, the hosted version is for you. If you have a developer or AI coding tool ready, the local path gives you total control.
18
+
19
+ ## First run {#create-your-app}
20
+
21
+ Three commands and you're up:
17
22
 
18
23
  ```bash
24
+ npx @agent-native/core create my-platform
19
25
  cd my-platform
20
- pnpm install
21
- pnpm dev
26
+ pnpm install && pnpm dev
22
27
  ```
23
28
 
24
- That's ityou have every app running locally with an AI agent built in. Open the agent panel, ask it to do something, and watch it work.
29
+ The `create` command shows a multi-select picker pick one template or several (Mail + Calendar + Forms, for example) and they all scaffold into one workspace sharing auth, brand, and agent config.
25
30
 
26
- Want a single app with no monorepo? Pass `--standalone`:
31
+ Open the URL the dev server prints (usually `http://localhost:3000`).
27
32
 
28
- ```bash
29
- npx @agent-native/core create my-app --standalone --template mail
30
- ```
33
+ ## What just happened? {#what-just-happened}
31
34
 
32
- Need to add more apps later? From inside the workspace:
35
+ You now have a real, full-featured app running on your machine. Open it in the browser and try it:
33
36
 
34
- ```bash
35
- agent-native add-app
36
- ```
37
+ - Click around the UI like you would any SaaS product.
38
+ - Open the agent panel on the right side. Type something like "show me my settings" or "create a new entry called Welcome." Watch the agent click through the app on your behalf.
39
+ - Anything you do by clicking, the agent can do by reading and writing the same database. Anything the agent does shows up in the UI immediately.
40
+
41
+ That parity between agent and UI is the whole point — see [What Is Agent-Native?](/docs/what-is-agent-native) for the bigger picture.
42
+
43
+ ## What's next {#whats-next}
44
+
45
+ From here, use any AI coding tool (Claude Code, Cursor, Windsurf, Builder.io) to customize the app. The agent instructions in `AGENTS.md` are already set up so any tool understands the codebase.
37
46
 
38
- From here, use your AI coding tool (Claude Code, Cursor, Windsurf, etc.) to customize it. The agent instructions in `AGENTS.md` are already set up so any tool understands the codebase. See [Multi-App Workspace](/docs/multi-app-workspace) for the full story on sharing auth, skills, components, and credentials across apps.
47
+ Common next steps:
48
+
49
+ - **Add another app to the same workspace** — run `agent-native add-app` from inside the workspace folder. See [Multi-App Workspace](/docs/multi-app-workspace) for sharing auth, components, and credentials across apps.
50
+ - **Single app instead of a monorepo?** Pass `--standalone` when creating: `npx @agent-native/core create my-app --standalone --template mail`.
51
+ - **Build a brand-new template from scratch** — see [Creating Templates](/docs/creating-templates) for the full Vite, Tailwind, and TypeScript setup.
52
+ - **Understand the architecture** — see [Key Concepts](/docs/key-concepts) for how SQL, actions, polling sync, and context awareness fit together.
39
53
 
40
54
  ## Templates {#templates}
41
55
 
@@ -55,7 +69,7 @@ Each template is a complete app with UI, agent actions, database schema, and AI
55
69
 
56
70
  Browse the [template gallery](/templates) for live demos, or see [Cloneable SaaS](/docs/cloneable-saas) for the full list and the clone → customize → deploy flow.
57
71
 
58
- ## Project Structure {#project-structure}
72
+ ## Project structure {#project-structure}
59
73
 
60
74
  Every agent-native app — whether from a template or from scratch — follows the same structure:
61
75
 
@@ -67,53 +81,15 @@ my-app/
67
81
  .agents/ # Agent instructions and skills
68
82
  ```
69
83
 
70
- Templates add domain-specific code on top of this: database schemas in `server/db/`, API routes in `server/routes/api/`, and actions in `actions/`.
71
-
72
- ## Configuration {#configuration}
73
-
74
- Templates come pre-configured. If you're starting from scratch, here are the config files:
75
-
76
- ```ts
77
- // vite.config.ts
78
- import { defineConfig } from "@agent-native/core/vite";
79
- export default defineConfig();
80
- ```
81
-
82
- ```json
83
- // tsconfig.json
84
- { "extends": "@agent-native/core/tsconfig.base.json" }
85
- ```
86
-
87
- ```css
88
- /* app/global.css — Tailwind v4 (CSS-first, no tailwind.config.ts needed) */
89
- @import "tailwindcss";
90
- @import "@agent-native/core/styles/agent-native.css";
91
-
92
- @source "./**/*.{ts,tsx}";
93
-
94
- :root {
95
- --background: 0 0% 100%;
96
- --foreground: 220 10% 10%;
97
- /* ...rest of your shadcn-style tokens */
98
- }
99
-
100
- .dark {
101
- --background: 220 6% 6%;
102
- --foreground: 0 0% 90%;
103
- /* ... */
104
- }
105
- ```
106
-
107
- The framework auto-injects `@tailwindcss/vite` from `defineConfig()`.
108
- No `tailwind.config.ts`, `postcss.config.js`, or vite changes needed.
84
+ Templates add domain-specific code on top: database schemas in `server/db/`, API routes in `server/routes/api/`, and actions in `actions/`. Building from scratch? See [Creating Templates](/docs/creating-templates) for `vite.config.ts`, `tsconfig.json`, and Tailwind setup.
109
85
 
110
- ## Architecture Principles {#architecture-principles}
86
+ ## Architecture principles {#architecture-principles}
111
87
 
112
- These principles apply to all agent-native apps. Understanding them helps you customize templates or build from scratch:
88
+ These principles apply to all agent-native apps. Skim them now, revisit them when you're customizing.
113
89
 
114
90
  1. **Agent + UI are equal partners** — Everything the UI can do, the agent can do, and vice versa. They share the same database and always stay in sync. You don't think about "the agent" and "the app" separately — you think about them together.
115
91
  2. **Context-aware** — The agent always knows what you're looking at. If an email is open, it knows which one. If you select text and hit Cmd+I, it can act on just that selection.
116
- 3. **Skills-driven** — Core functionalities have instructions so the agent doesn't explore from scratch every time. When you add a feature, you update all four areas: UI, actions, skills/instructions, and application state.
92
+ 3. **Skills-driven** — Core functionality has written instructions so the agent doesn't explore from scratch every time. New features update all four areas: UI, actions, skills/instructions, and application state.
117
93
  4. **Inter-agent communication** — Agents can discover and call each other via the A2A protocol. Tag your analytics agent from the mail app to pull data into a draft.
118
94
  5. **Fully portable** — Any SQL database Drizzle supports, any hosting backend Nitro supports, any AI coding tool. These are non-negotiable.
119
95
  6. **Fork and customize** — Apps you clone and evolve. The agent can modify the app's own code — components, routes, styles, actions — so it gets better over time.
@@ -77,7 +77,20 @@ This means users who've installed the claude-in-chrome extension get browser con
77
77
 
78
78
  ## Remote MCP servers via the settings UI {#remote-via-ui}
79
79
 
80
- Users don't have to edit `mcp.config.json` to add a remote, HTTP-based MCP server (Zapier, Cloudflare, Composio, an internal tool, etc). Open the settings panel **MCP Servers** and paste the server's URL. Two scopes are supported:
80
+ MCP (Model Context Protocol) servers give your agent new abilities like connecting to Zapier, Cloudflare, Composio, or your company's internal tools. Once connected, the agent can use those tools just like its built-in ones.
81
+
82
+ ### How to connect a remote MCP server
83
+
84
+ 1. **Server name** — a short label for your own reference (e.g. "zapier", "slack-tools").
85
+ 2. **URL** — the HTTPS endpoint the MCP server provider gave you (e.g. `https://mcp.zapier.com/s/abc123/mcp`). This is usually found in the provider's dashboard or integration docs.
86
+ 3. **Description** (optional) — a note about what this server does.
87
+ 4. **Headers** — authentication credentials the server requires, one per line. Most servers need an `Authorization` header. Example: `Authorization: Bearer sk-your-key-here`. The provider's docs will tell you what to put here.
88
+
89
+ Click **Test** to verify the connection before saving. If it succeeds, you'll see the number of tools available. Click **Connect** to add it.
90
+
91
+ ### Personal vs Organization scope
92
+
93
+ Two scopes are supported:
81
94
 
82
95
  - **Personal** — only the signed-in user gets the tools. Stored as a user-scope setting.
83
96
  - **Team** — everyone in the active organization gets the tools. Owners and admins can add; members see the list read-only. Stored as an org-scope setting.