@agent-native/core 0.37.2 → 0.38.0

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 (377) hide show
  1. package/README.md +19 -6
  2. package/dist/action.d.ts +60 -2
  3. package/dist/action.d.ts.map +1 -1
  4. package/dist/action.js +6 -2
  5. package/dist/action.js.map +1 -1
  6. package/dist/agent/production-agent.d.ts +12 -6
  7. package/dist/agent/production-agent.d.ts.map +1 -1
  8. package/dist/agent/production-agent.js +161 -11
  9. package/dist/agent/production-agent.js.map +1 -1
  10. package/dist/agent/types.d.ts +2 -0
  11. package/dist/agent/types.d.ts.map +1 -1
  12. package/dist/agent/types.js.map +1 -1
  13. package/dist/catalog.json +2 -2
  14. package/dist/cli/connect.d.ts.map +1 -1
  15. package/dist/cli/connect.js +15 -0
  16. package/dist/cli/connect.js.map +1 -1
  17. package/dist/cli/index.js +10 -6
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/plan-publish-store.d.ts +52 -0
  20. package/dist/cli/plan-publish-store.d.ts.map +1 -0
  21. package/dist/cli/plan-publish-store.js +103 -0
  22. package/dist/cli/plan-publish-store.js.map +1 -0
  23. package/dist/cli/skills.d.ts +29 -0
  24. package/dist/cli/skills.d.ts.map +1 -1
  25. package/dist/cli/skills.js +1349 -544
  26. package/dist/cli/skills.js.map +1 -1
  27. package/dist/cli/templates-meta.js +12 -12
  28. package/dist/cli/templates-meta.js.map +1 -1
  29. package/dist/client/AssistantChat.d.ts +3 -1
  30. package/dist/client/AssistantChat.d.ts.map +1 -1
  31. package/dist/client/AssistantChat.js +65 -15
  32. package/dist/client/AssistantChat.js.map +1 -1
  33. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  34. package/dist/client/MultiTabAssistantChat.js +20 -2
  35. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  36. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  37. package/dist/client/agent-chat-adapter.js +12 -0
  38. package/dist/client/agent-chat-adapter.js.map +1 -1
  39. package/dist/client/agent-engine-key.d.ts +24 -0
  40. package/dist/client/agent-engine-key.d.ts.map +1 -0
  41. package/dist/client/agent-engine-key.js +49 -0
  42. package/dist/client/agent-engine-key.js.map +1 -0
  43. package/dist/client/analytics.d.ts.map +1 -1
  44. package/dist/client/analytics.js +34 -0
  45. package/dist/client/analytics.js.map +1 -1
  46. package/dist/client/blocks/BlockView.d.ts +26 -0
  47. package/dist/client/blocks/BlockView.d.ts.map +1 -0
  48. package/dist/client/blocks/BlockView.js +24 -0
  49. package/dist/client/blocks/BlockView.js.map +1 -0
  50. package/dist/client/blocks/SchemaBlockEditor.d.ts +25 -0
  51. package/dist/client/blocks/SchemaBlockEditor.d.ts.map +1 -0
  52. package/dist/client/blocks/SchemaBlockEditor.js +72 -0
  53. package/dist/client/blocks/SchemaBlockEditor.js.map +1 -0
  54. package/dist/client/blocks/agent.d.ts +30 -0
  55. package/dist/client/blocks/agent.d.ts.map +1 -0
  56. package/dist/client/blocks/agent.js +61 -0
  57. package/dist/client/blocks/agent.js.map +1 -0
  58. package/dist/client/blocks/index.d.ts +34 -0
  59. package/dist/client/blocks/index.d.ts.map +1 -0
  60. package/dist/client/blocks/index.js +42 -0
  61. package/dist/client/blocks/index.js.map +1 -0
  62. package/dist/client/blocks/library/checklist.config.d.ts +36 -0
  63. package/dist/client/blocks/library/checklist.config.d.ts.map +1 -0
  64. package/dist/client/blocks/library/checklist.config.js +25 -0
  65. package/dist/client/blocks/library/checklist.config.js.map +1 -0
  66. package/dist/client/blocks/library/checklist.d.ts +26 -0
  67. package/dist/client/blocks/library/checklist.d.ts.map +1 -0
  68. package/dist/client/blocks/library/checklist.js +76 -0
  69. package/dist/client/blocks/library/checklist.js.map +1 -0
  70. package/dist/client/blocks/library/code-tabs.config.d.ts +36 -0
  71. package/dist/client/blocks/library/code-tabs.config.d.ts.map +1 -0
  72. package/dist/client/blocks/library/code-tabs.config.js +30 -0
  73. package/dist/client/blocks/library/code-tabs.config.js.map +1 -0
  74. package/dist/client/blocks/library/code-tabs.d.ts +3 -0
  75. package/dist/client/blocks/library/code-tabs.d.ts.map +1 -0
  76. package/dist/client/blocks/library/code-tabs.js +165 -0
  77. package/dist/client/blocks/library/code-tabs.js.map +1 -0
  78. package/dist/client/blocks/library/html.config.d.ts +37 -0
  79. package/dist/client/blocks/library/html.config.d.ts.map +1 -0
  80. package/dist/client/blocks/library/html.config.js +46 -0
  81. package/dist/client/blocks/library/html.config.js.map +1 -0
  82. package/dist/client/blocks/library/html.d.ts +21 -0
  83. package/dist/client/blocks/library/html.d.ts.map +1 -0
  84. package/dist/client/blocks/library/html.js +69 -0
  85. package/dist/client/blocks/library/html.js.map +1 -0
  86. package/dist/client/blocks/library/table.config.d.ts +30 -0
  87. package/dist/client/blocks/library/table.config.d.ts.map +1 -0
  88. package/dist/client/blocks/library/table.config.js +22 -0
  89. package/dist/client/blocks/library/table.config.js.map +1 -0
  90. package/dist/client/blocks/library/table.d.ts +8 -0
  91. package/dist/client/blocks/library/table.d.ts.map +1 -0
  92. package/dist/client/blocks/library/table.js +107 -0
  93. package/dist/client/blocks/library/table.js.map +1 -0
  94. package/dist/client/blocks/library/tabs.config.d.ts +56 -0
  95. package/dist/client/blocks/library/tabs.config.d.ts.map +1 -0
  96. package/dist/client/blocks/library/tabs.config.js +36 -0
  97. package/dist/client/blocks/library/tabs.config.js.map +1 -0
  98. package/dist/client/blocks/library/tabs.d.ts +20 -0
  99. package/dist/client/blocks/library/tabs.d.ts.map +1 -0
  100. package/dist/client/blocks/library/tabs.js +123 -0
  101. package/dist/client/blocks/library/tabs.js.map +1 -0
  102. package/dist/client/blocks/mdx.d.ts +74 -0
  103. package/dist/client/blocks/mdx.d.ts.map +1 -0
  104. package/dist/client/blocks/mdx.js +205 -0
  105. package/dist/client/blocks/mdx.js.map +1 -0
  106. package/dist/client/blocks/provider.d.ts +25 -0
  107. package/dist/client/blocks/provider.d.ts.map +1 -0
  108. package/dist/client/blocks/provider.js +19 -0
  109. package/dist/client/blocks/provider.js.map +1 -0
  110. package/dist/client/blocks/registry.d.ts +24 -0
  111. package/dist/client/blocks/registry.d.ts.map +1 -0
  112. package/dist/client/blocks/registry.js +50 -0
  113. package/dist/client/blocks/registry.js.map +1 -0
  114. package/dist/client/blocks/schema-form/introspect.d.ts +31 -0
  115. package/dist/client/blocks/schema-form/introspect.d.ts.map +1 -0
  116. package/dist/client/blocks/schema-form/introspect.js +164 -0
  117. package/dist/client/blocks/schema-form/introspect.js.map +1 -0
  118. package/dist/client/blocks/server.d.ts +22 -0
  119. package/dist/client/blocks/server.d.ts.map +1 -0
  120. package/dist/client/blocks/server.js +25 -0
  121. package/dist/client/blocks/server.js.map +1 -0
  122. package/dist/client/blocks/types.d.ts +212 -0
  123. package/dist/client/blocks/types.d.ts.map +1 -0
  124. package/dist/client/blocks/types.js +5 -0
  125. package/dist/client/blocks/types.js.map +1 -0
  126. package/dist/client/composer/ComposerPlusMenu.js +10 -1
  127. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  128. package/dist/client/guided-questions.d.ts +68 -0
  129. package/dist/client/guided-questions.d.ts.map +1 -1
  130. package/dist/client/guided-questions.js +158 -3
  131. package/dist/client/guided-questions.js.map +1 -1
  132. package/dist/client/index.d.ts +5 -1
  133. package/dist/client/index.d.ts.map +1 -1
  134. package/dist/client/index.js +15 -1
  135. package/dist/client/index.js.map +1 -1
  136. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts +37 -0
  137. package/dist/client/rich-markdown-editor/BubbleToolbar.d.ts.map +1 -0
  138. package/dist/client/rich-markdown-editor/BubbleToolbar.js +161 -0
  139. package/dist/client/rich-markdown-editor/BubbleToolbar.js.map +1 -0
  140. package/dist/client/rich-markdown-editor/ImageExtension.d.ts +63 -0
  141. package/dist/client/rich-markdown-editor/ImageExtension.d.ts.map +1 -0
  142. package/dist/client/rich-markdown-editor/ImageExtension.js +242 -0
  143. package/dist/client/rich-markdown-editor/ImageExtension.js.map +1 -0
  144. package/dist/client/rich-markdown-editor/RichMarkdownEditor.d.ts +51 -0
  145. package/dist/client/rich-markdown-editor/RichMarkdownEditor.d.ts.map +1 -0
  146. package/dist/client/rich-markdown-editor/RichMarkdownEditor.js +37 -0
  147. package/dist/client/rich-markdown-editor/RichMarkdownEditor.js.map +1 -0
  148. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts +61 -0
  149. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -0
  150. package/dist/client/rich-markdown-editor/SharedRichEditor.js +121 -0
  151. package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -0
  152. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts +36 -0
  153. package/dist/client/rich-markdown-editor/SlashCommandMenu.d.ts.map +1 -0
  154. package/dist/client/rich-markdown-editor/SlashCommandMenu.js +193 -0
  155. package/dist/client/rich-markdown-editor/SlashCommandMenu.js.map +1 -0
  156. package/dist/client/rich-markdown-editor/extensions.d.ts +166 -0
  157. package/dist/client/rich-markdown-editor/extensions.d.ts.map +1 -0
  158. package/dist/client/rich-markdown-editor/extensions.js +222 -0
  159. package/dist/client/rich-markdown-editor/extensions.js.map +1 -0
  160. package/dist/client/rich-markdown-editor/index.d.ts +9 -0
  161. package/dist/client/rich-markdown-editor/index.d.ts.map +1 -0
  162. package/dist/client/rich-markdown-editor/index.js +9 -0
  163. package/dist/client/rich-markdown-editor/index.js.map +1 -0
  164. package/dist/client/rich-markdown-editor/uploadEditorImage.d.ts +18 -0
  165. package/dist/client/rich-markdown-editor/uploadEditorImage.d.ts.map +1 -0
  166. package/dist/client/rich-markdown-editor/uploadEditorImage.js +57 -0
  167. package/dist/client/rich-markdown-editor/uploadEditorImage.js.map +1 -0
  168. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts +91 -0
  169. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -0
  170. package/dist/client/rich-markdown-editor/useCollabReconcile.js +342 -0
  171. package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -0
  172. package/dist/client/track.d.ts +25 -0
  173. package/dist/client/track.d.ts.map +1 -0
  174. package/dist/client/track.js +53 -0
  175. package/dist/client/track.js.map +1 -0
  176. package/dist/client/use-action.d.ts.map +1 -1
  177. package/dist/client/use-action.js +6 -0
  178. package/dist/client/use-action.js.map +1 -1
  179. package/dist/client/use-session.d.ts +3 -2
  180. package/dist/client/use-session.d.ts.map +1 -1
  181. package/dist/client/use-session.js +3 -2
  182. package/dist/client/use-session.js.map +1 -1
  183. package/dist/deploy/build.d.ts +5 -0
  184. package/dist/deploy/build.d.ts.map +1 -1
  185. package/dist/deploy/build.js +67 -1
  186. package/dist/deploy/build.js.map +1 -1
  187. package/dist/extensions/schema.d.ts +1 -1
  188. package/dist/mcp/build-server.d.ts.map +1 -1
  189. package/dist/mcp/build-server.js +9 -2
  190. package/dist/mcp/build-server.js.map +1 -1
  191. package/dist/mcp/server.d.ts +1 -1
  192. package/dist/mcp/server.d.ts.map +1 -1
  193. package/dist/mcp/server.js +35 -2
  194. package/dist/mcp/server.js.map +1 -1
  195. package/dist/provider-api/index.d.ts +1 -1
  196. package/dist/provider-api/index.d.ts.map +1 -1
  197. package/dist/scripts/docs/search.d.ts.map +1 -1
  198. package/dist/scripts/docs/search.js +5 -2
  199. package/dist/scripts/docs/search.js.map +1 -1
  200. package/dist/scripts/runner.d.ts.map +1 -1
  201. package/dist/scripts/runner.js +16 -3
  202. package/dist/scripts/runner.js.map +1 -1
  203. package/dist/server/action-discovery.d.ts.map +1 -1
  204. package/dist/server/action-discovery.js +2 -0
  205. package/dist/server/action-discovery.js.map +1 -1
  206. package/dist/server/action-routes.d.ts.map +1 -1
  207. package/dist/server/action-routes.js +30 -4
  208. package/dist/server/action-routes.js.map +1 -1
  209. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  210. package/dist/server/agent-chat-plugin.js +65 -19
  211. package/dist/server/agent-chat-plugin.js.map +1 -1
  212. package/dist/server/agent-teams.d.ts.map +1 -1
  213. package/dist/server/agent-teams.js +8 -1
  214. package/dist/server/agent-teams.js.map +1 -1
  215. package/dist/server/agents-bundle.d.ts +27 -1
  216. package/dist/server/agents-bundle.d.ts.map +1 -1
  217. package/dist/server/agents-bundle.js +41 -3
  218. package/dist/server/agents-bundle.js.map +1 -1
  219. package/dist/server/auth.d.ts.map +1 -1
  220. package/dist/server/auth.js +76 -3
  221. package/dist/server/auth.js.map +1 -1
  222. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  223. package/dist/server/core-routes-plugin.js +60 -0
  224. package/dist/server/core-routes-plugin.js.map +1 -1
  225. package/dist/server/onboarding-html.d.ts.map +1 -1
  226. package/dist/server/onboarding-html.js +160 -22
  227. package/dist/server/onboarding-html.js.map +1 -1
  228. package/dist/server/sentry.d.ts.map +1 -1
  229. package/dist/server/sentry.js +6 -0
  230. package/dist/server/sentry.js.map +1 -1
  231. package/dist/server/social-og-image.d.ts +2 -1
  232. package/dist/server/social-og-image.d.ts.map +1 -1
  233. package/dist/server/social-og-image.js +24 -4
  234. package/dist/server/social-og-image.js.map +1 -1
  235. package/dist/sharing/schema.d.ts +1 -1
  236. package/dist/styles/agent-native.css +1 -0
  237. package/dist/styles/rich-markdown-editor.css +439 -0
  238. package/dist/templates/default/.agents/skills/actions/SKILL.md +4 -1
  239. package/dist/templates/default/.agents/skills/security/SKILL.md +13 -4
  240. package/dist/templates/default/.agents/skills/storing-data/SKILL.md +15 -3
  241. package/dist/templates/default/AGENTS.md +1 -0
  242. package/dist/templates/default/DEVELOPING.md +2 -0
  243. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +10 -3
  244. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +98 -10
  245. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +45 -3
  246. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +2 -0
  247. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +37 -4
  248. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +9 -4
  249. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +2 -0
  250. package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +106 -0
  251. package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +53 -0
  252. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +2 -0
  253. package/dist/templates/workspace-core/.agents/skills/context-awareness/SKILL.md +62 -61
  254. package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +47 -0
  255. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +28 -0
  256. package/dist/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +52 -1
  257. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +2 -0
  258. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +95 -433
  259. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +285 -0
  260. package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +259 -0
  261. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +398 -0
  262. package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +157 -0
  263. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +17 -0
  264. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +13 -2
  265. package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +51 -0
  266. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +14 -4
  267. package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +13 -1
  268. package/dist/templates/workspace-core/.agents/skills/portability/SKILL.md +27 -5
  269. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +24 -8
  270. package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +53 -7
  271. package/dist/templates/workspace-core/.agents/skills/real-time-sync/SKILL.md +43 -10
  272. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +2 -0
  273. package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +43 -14
  274. package/dist/templates/workspace-core/.agents/skills/security/SKILL.md +50 -1
  275. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +4 -2
  276. package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +11 -1
  277. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +15 -0
  278. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +5 -1
  279. package/dist/templates/workspace-core/.agents/skills/storing-data/SKILL.md +48 -19
  280. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +7 -3
  281. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +13 -6
  282. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +236 -0
  283. package/dist/templates/workspace-core/AGENTS.md +5 -1
  284. package/dist/templates/workspace-root/AGENTS.md +5 -2
  285. package/dist/tracking/route.d.ts +43 -0
  286. package/dist/tracking/route.d.ts.map +1 -0
  287. package/dist/tracking/route.js +85 -0
  288. package/dist/tracking/route.js.map +1 -0
  289. package/dist/vite/client.d.ts.map +1 -1
  290. package/dist/vite/client.js +15 -0
  291. package/dist/vite/client.js.map +1 -1
  292. package/docs/content/a2a-protocol.md +18 -4
  293. package/docs/content/actions.md +87 -0
  294. package/docs/content/agent-mentions.md +2 -1
  295. package/docs/content/authentication.md +2 -1
  296. package/docs/content/client.md +64 -13
  297. package/docs/content/cloneable-saas.md +1 -1
  298. package/docs/content/code-agents-ui.md +17 -11
  299. package/docs/content/context-awareness.md +23 -28
  300. package/docs/content/creating-templates.md +1 -1
  301. package/docs/content/drop-in-agent.md +2 -0
  302. package/docs/content/getting-started.md +2 -2
  303. package/docs/content/key-concepts.md +2 -2
  304. package/docs/content/messaging.md +57 -15
  305. package/docs/content/migration-workbench.md +1 -1
  306. package/docs/content/multi-app-workspace.md +1 -1
  307. package/docs/content/multi-tenancy.md +17 -15
  308. package/docs/content/real-time-collaboration.md +1 -1
  309. package/docs/content/recurring-jobs.md +1 -1
  310. package/docs/content/security.md +2 -2
  311. package/docs/content/server.md +4 -4
  312. package/docs/content/skills-guide.md +30 -0
  313. package/docs/content/template-analytics.md +2 -2
  314. package/docs/content/template-assets.md +17 -1
  315. package/docs/content/template-brain.md +2 -2
  316. package/docs/content/template-calendar.md +1 -1
  317. package/docs/content/template-clips.md +3 -3
  318. package/docs/content/template-content.md +2 -2
  319. package/docs/content/template-design.md +2 -2
  320. package/docs/content/template-dispatch.md +3 -3
  321. package/docs/content/template-forms.md +14 -2
  322. package/docs/content/template-mail.md +1 -3
  323. package/docs/content/template-plan.md +118 -0
  324. package/docs/content/template-slides.md +5 -4
  325. package/docs/content/template-starter.md +4 -4
  326. package/docs/content/template-videos.md +6 -11
  327. package/docs/content/tracking.md +21 -1
  328. package/docs/content/visual-plans.md +72 -0
  329. package/docs/content/workspace.md +9 -9
  330. package/package.json +26 -11
  331. package/src/templates/default/.agents/skills/actions/SKILL.md +4 -1
  332. package/src/templates/default/.agents/skills/security/SKILL.md +13 -4
  333. package/src/templates/default/.agents/skills/storing-data/SKILL.md +15 -3
  334. package/src/templates/default/AGENTS.md +1 -0
  335. package/src/templates/default/DEVELOPING.md +2 -0
  336. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +10 -3
  337. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +98 -10
  338. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +45 -3
  339. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +2 -0
  340. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +37 -4
  341. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +9 -4
  342. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +2 -0
  343. package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +106 -0
  344. package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +53 -0
  345. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +2 -0
  346. package/src/templates/workspace-core/.agents/skills/context-awareness/SKILL.md +62 -61
  347. package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +47 -0
  348. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +28 -0
  349. package/src/templates/workspace-core/.agents/skills/delegate-to-agent/SKILL.md +52 -1
  350. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +2 -0
  351. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +95 -433
  352. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +285 -0
  353. package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +259 -0
  354. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +398 -0
  355. package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +157 -0
  356. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +17 -0
  357. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +13 -2
  358. package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +51 -0
  359. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +14 -4
  360. package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +13 -1
  361. package/src/templates/workspace-core/.agents/skills/portability/SKILL.md +27 -5
  362. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +24 -8
  363. package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +53 -7
  364. package/src/templates/workspace-core/.agents/skills/real-time-sync/SKILL.md +43 -10
  365. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +2 -0
  366. package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +43 -14
  367. package/src/templates/workspace-core/.agents/skills/security/SKILL.md +50 -1
  368. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +4 -2
  369. package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +11 -1
  370. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +15 -0
  371. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +5 -1
  372. package/src/templates/workspace-core/.agents/skills/storing-data/SKILL.md +48 -19
  373. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +7 -3
  374. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +13 -6
  375. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +236 -0
  376. package/src/templates/workspace-core/AGENTS.md +5 -1
  377. package/src/templates/workspace-root/AGENTS.md +5 -2
@@ -139,7 +139,7 @@ User identity is derived from the session email. The framework provides `emailTo
139
139
  Templates can add a comments system with threaded discussions on documents. The content template includes a full implementation with:
140
140
 
141
141
  - `document_comments` SQL table (threads, replies, resolved status)
142
- - CRUD API routes at `/api/comments`
142
+ - REST routes for update/delete at `/api/comments/:id`; create and list run through the `add-comment` / `list-comments` actions
143
143
  - Comments sidebar with threaded view and reply UI
144
144
  - Resolve/unresolve threads
145
145
  - **Send to AI** button — sends the comment thread context to the agent chat via `sendToAgentChat()`
@@ -104,7 +104,7 @@ If the runtime is serverless/edge, trigger the tick from an external cron (Cloud
104
104
  ## Debugging a job {#debugging}
105
105
 
106
106
  - Open `jobs/<name>.md` in the workspace — the frontmatter shows `lastRun`, `lastStatus`, `lastError`, `nextRun`.
107
- - **Run it now:** ask the agent to "run the `morning-digest` job right now." The agent will invoke the scheduler tool to force-fire it.
107
+ - **Test it without waiting:** there's no force-fire tool. To exercise the same work on demand, either paste the job's prompt into the agent chat and let it run there, or temporarily set the schedule to the next minute so the scheduler picks it up on the next tick (then restore the real cron).
108
108
  - **Pause it:** flip `enabled: false`. The file stays put, just stops running.
109
109
 
110
110
  ## Different from the scheduling package {#vs-scheduling-package}
@@ -125,7 +125,7 @@ The `db-query` / `db-exec` tools reject schema-qualified table references (`publ
125
125
 
126
126
  For multi-user apps where teams share data, add an `org_id` column. When both columns are present, queries are scoped by both: `WHERE owner_email = ? AND org_id = ?`.
127
127
 
128
- The `ownableColumns()` schema helper adds both `owner_email` and `org_id` in one call, so new tenant-aware tables get the full scoping contract by default:
128
+ The `ownableColumns()` schema helper adds `owner_email`, `org_id`, and `visibility` in one call, so new tenant-aware tables get the full scoping contract by default:
129
129
 
130
130
  ```typescript
131
131
  import { table, text, ownableColumns } from "@agent-native/core/db/schema";
@@ -133,7 +133,7 @@ import { table, text, ownableColumns } from "@agent-native/core/db/schema";
133
133
  export const projects = table("projects", {
134
134
  id: text("id").primaryKey(),
135
135
  title: text("title").notNull(),
136
- ...ownableColumns(), // adds owner_email + org_id
136
+ ...ownableColumns(), // adds owner_email + org_id + visibility
137
137
  });
138
138
  ```
139
139
 
@@ -63,18 +63,18 @@ Actions mounted by the framework automatically run with request context. Custom
63
63
  ```ts
64
64
  import { defineEventHandler } from "h3";
65
65
  import { getSession, runWithRequestContext } from "@agent-native/core/server";
66
- import { getDb } from "@agent-native/core/db";
66
+ import { getDb } from "../../db/index.js";
67
67
  import { accessFilter } from "@agent-native/core/sharing";
68
68
  import * as schema from "../../db/schema";
69
69
 
70
70
  export default defineEventHandler(async (event) => {
71
71
  const session = await getSession(event);
72
- if (!session?.user?.email) {
72
+ if (!session?.email) {
73
73
  throw new Response("Unauthorized", { status: 401 });
74
74
  }
75
75
 
76
76
  return runWithRequestContext(
77
- { userEmail: session.user.email, orgId: session.orgId },
77
+ { userEmail: session.email, orgId: session.orgId },
78
78
  async () => {
79
79
  const db = getDb();
80
80
  return db
@@ -86,7 +86,7 @@ export default defineEventHandler(async (event) => {
86
86
  });
87
87
  ```
88
88
 
89
- Do not run unscoped `db.select().from(ownableTable)` in custom routes.
89
+ `getDb` is created per app via `createGetDb(schema)` in `server/db/index.ts`, so custom routes import it from the template (`../../db/index.js`), not from `@agent-native/core/db`. Do not run unscoped `db.select().from(ownableTable)` in custom routes.
90
90
 
91
91
  ## Server Plugins {#server-plugins}
92
92
 
@@ -182,6 +182,36 @@ The frontmatter `name` and `description` are used by the agent's tool system for
182
182
 
183
183
  Save the file at `.agents/skills/my-skill/SKILL.md`. The directory name should match the `name` in frontmatter.
184
184
 
185
+ ## Skill scope: runtime vs dev {#skill-scope}
186
+
187
+ An optional `scope` frontmatter field controls which agent a skill is for:
188
+
189
+ | `scope` | Loaded by the runtime agent? | Use for |
190
+ | --------- | ---------------------------- | ------------------------------------------------------------------------------- |
191
+ | `both` | Yes (default) | Skills useful to the in-app agent. This is the default when `scope` is omitted. |
192
+ | `runtime` | Yes | Skills meant only for the in-app runtime agent. |
193
+ | `dev` | No | Skills meant only for the human's coding agent (e.g. Claude Code). |
194
+
195
+ ```markdown
196
+ ---
197
+ name: release-checklist
198
+ description: >-
199
+ Steps for cutting a release. Use when preparing or publishing a new version.
200
+ scope: dev
201
+ ---
202
+ ```
203
+
204
+ When `scope` is absent (or set to an unrecognized value) it defaults to `both`, so every existing skill keeps loading at runtime — this field is fully backward compatible. A `scope: dev` skill is invisible to the runtime agent everywhere: it is excluded from the skills block injected into the system prompt and from `docs-search` results.
205
+
206
+ ### Exposing a dev-only skill to your coding agent {#dev-only-skills}
207
+
208
+ The agent-native runtime reads skills from `.agents/skills/`. Claude Code reads skills from `.claude/skills/` independently. To make a skill available to your coding agent but hidden from the runtime agent:
209
+
210
+ - Mark it `scope: dev` in `.agents/skills/<name>/SKILL.md` so the runtime agent never loads it, and/or
211
+ - Place or mirror the skill under `.claude/skills/<name>/SKILL.md` so Claude Code picks it up.
212
+
213
+ This replaces the old hack of relying on Claude Code only reading `.claude/skills` — `scope: dev` makes the dev-vs-runtime split a first-class, explicit choice.
214
+
185
215
  > **See also:** [Writing Agent Instructions](/docs/writing-agent-instructions) for how to word skill descriptions, apply progressive disclosure, and keep `AGENTS.md` lean.
186
216
 
187
217
  ## Skills vs AGENTS.md {#skills-vs-agents-md}
@@ -76,13 +76,13 @@ The rest of this doc is for anyone forking the Analytics template or extending i
76
76
  Create a new Analytics app from the CLI:
77
77
 
78
78
  ```bash
79
- pnpm dlx @agent-native/core create my-analytics --template analytics --standalone
79
+ npx @agent-native/core create my-analytics --standalone --template analytics
80
80
  ```
81
81
 
82
82
  Local dev:
83
83
 
84
84
  ```bash
85
- cd my-analytics-app
85
+ cd my-analytics
86
86
  pnpm install
87
87
  pnpm dev
88
88
  ```
@@ -94,9 +94,25 @@ The rest of this doc is for anyone forking the Assets template or extending it.
94
94
  ### Scaffolding
95
95
 
96
96
  ```bash
97
- pnpm dlx @agent-native/core create my-assets --template assets --standalone
97
+ npx @agent-native/core create my-assets --standalone --template assets
98
98
  ```
99
99
 
100
+ ### Data model
101
+
102
+ All data lives in SQL via Drizzle ORM (binary media lives in object storage, or the local file-upload fallback during development). Schema: `templates/assets/server/db/schema.ts`. Libraries carry the standard `ownableColumns` and a matching framework shares table, so they slot into the per-user / per-org sharing model. The SQL table names keep the legacy `image_*` prefix from when the app was called Images.
103
+
104
+ | Table | What it holds |
105
+ | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
106
+ | `image_libraries` | A library — the top-level container grouped by brand, campaign, product, or category. Holds `custom_instructions`, `style_brief`, canonical logo and cover asset refs, and archive state |
107
+ | `image_library_shares` | Framework shares table mapping principals (users or orgs) to roles (viewer, editor, admin) per library |
108
+ | `image_collections` | Style/category groupings inside a library — `style_brief`, `prompt_template`, default aspect ratio and image size |
109
+ | `asset_folders` | Nestable folders inside a library (`parent_id` for hierarchy) |
110
+ | `image_generation_presets` | Saved generation recipes — media type, prompt template, aspect ratio, model, and text/reference policy |
111
+ | `image_generation_sessions` | An iterative generate-and-choose session with a brief, status, active asset, and feedback summary |
112
+ | `image_generation_session_items` | Candidate assets within a session, each with a role and note |
113
+ | `image_assets` | The asset record — media type, role, status, title/description/alt text, prompt, model, dimensions, MIME type, object/thumbnail keys, and lineage |
114
+ | `image_generation_runs` | The generation audit log — prompt, compiled prompt, model, references, status, errors, and the `source` (`chat` / `ui` / `a2a`) that triggered it |
115
+
100
116
  ### Customizing it
101
117
 
102
118
  Assets is a complete, cloneable template. Some practical extension ideas:
@@ -80,7 +80,7 @@ exclusion, and honest not-found behavior without connecting a real workspace.
80
80
  ### Scaffolding
81
81
 
82
82
  ```bash
83
- pnpm dlx @agent-native/core create my-brain --template brain --standalone
83
+ npx @agent-native/core create my-brain --standalone --template brain
84
84
  ```
85
85
 
86
86
  Then open the app, add sources, import a transcript, and ask the agent to
@@ -142,7 +142,7 @@ so Dispatch and sibling apps can ask company-memory questions — the A2A agent
142
142
  card is public discovery metadata, while retrieval still happens inside Brain's
143
143
  authenticated action surface.
144
144
 
145
- ## Data model overview
145
+ ## Data model
146
146
 
147
147
  Brain intentionally uses SQL text search and agentic query expansion. There is
148
148
  no vector database requirement, so the template stays portable across SQLite,
@@ -70,7 +70,7 @@ The rest of this doc is for anyone forking the Calendar template or extending it
70
70
  Create a new workspace with the Calendar template:
71
71
 
72
72
  ```bash
73
- npx @agent-native/core create my-app --template calendar
73
+ npx @agent-native/core create my-app --standalone --template calendar
74
74
  cd my-app
75
75
  pnpm install
76
76
  pnpm dev
@@ -17,7 +17,7 @@ A capture-everything app: screen recordings, meeting notes from your calendar, a
17
17
 
18
18
  ![Clips library with recordings, folders, and spaces](/screenshots/clips.png)
19
19
 
20
- Think along the lines of Loom + Granola + Wisprflow rolled into one app — but the agent is a first-class editor across every surface, and the recordings, meetings, and dictations are yours, not a SaaS vendor's.
20
+ Think along the lines of Loom + Granola + Wispr Flow rolled into one app — but the agent is a first-class editor across every surface, and the recordings, meetings, and dictations are yours, not a SaaS vendor's.
21
21
 
22
22
  ## What you can do with it
23
23
 
@@ -64,7 +64,7 @@ The rest of this doc is for anyone forking the Clips template or extending it.
64
64
  ### Scaffolding
65
65
 
66
66
  ```bash
67
- pnpm dlx @agent-native/core create my-clips --template clips --standalone
67
+ npx @agent-native/core create my-clips --standalone --template clips
68
68
  ```
69
69
 
70
70
  Clips is a larger template with a native recorder (it ships a desktop companion for local capture). See the template `README.md` for setup specifics around screen-capture permissions and storage configuration.
@@ -109,7 +109,7 @@ Every agent-callable operation is a TypeScript file in `templates/clips/actions/
109
109
  - **Search, insights & export** — `search-recordings` (matches titles, descriptions, transcript text, and comments, with timestamps), `get-recording-insights`, `get-organization-insights`, `export-insights-csv`, `export-to-brain`.
110
110
  - **Context & navigation** — `view-screen` (current clip, playhead, selected transcript range) and `navigate`; `refresh-list` after mutations.
111
111
 
112
- ### Customize it
112
+ ### Customizing it
113
113
 
114
114
  Clips is a complete, cloneable template — fork it and ask the agent to extend it. Some examples:
115
115
 
@@ -52,7 +52,7 @@ The rest of this doc is for anyone forking the Content template or extending it.
52
52
  Scaffold a new workspace with the Content template:
53
53
 
54
54
  ```bash
55
- npx @agent-native/core create my-workspace --template content
55
+ npx @agent-native/core create my-workspace --standalone --template content
56
56
  cd my-workspace
57
57
  pnpm install
58
58
  pnpm dev
@@ -155,7 +155,7 @@ The four places to look when changing behavior:
155
155
  - **`app/components/editor/`** — the Tiptap editor. Add a new node type under `extensions/` and register it in `DocumentEditor.tsx`. The bubble toolbar, slash menu, and hover previews are all component files you can edit.
156
156
  - **`.agents/skills/`** — guidance the agent reads before acting. If you add a new capability (say, a CMS publishing pipeline), drop a `SKILL.md` in a new skill folder so the agent uses it correctly. Existing skills: `document-editing`, `notion-integration`, `real-time-sync`, `delegate-to-agent`, `storing-data`, `self-modifying-code`, `security`, `frontend-design`, `create-skill`, `capture-learnings`.
157
157
  - **`AGENTS.md`** — the top-level agent guide with the action cheatsheet and common-tasks table. Update it whenever you add a major feature so the agent discovers it without exploring.
158
- - **`server/db/schema.ts`** — data model. Add a column or table here. For local development, you can sync your database schema using `pnpm db:push`. In hosted production environments, **never** run `db:push` (doing so will attempt to drop core framework tables not defined in the template's schema); instead, apply schema updates via strictly additive migration scripts executed at startup (see [Database](/docs/database#migrations) for guidelines).
158
+ - **`server/db/schema.ts`** — data model. Add a column or table here. The Content template has no `db:push` script; it relies on strictly additive migrations that run on startup. Edit `server/db/schema.ts`, write a matching additive migration, and the change applies the next time the app boots schema updates must never drop, rename, or destructively alter existing tables or columns (see [Database](/docs/database#migrations) for guidelines).
159
159
  - **`shared/notion-markdown.ts`** — markdown-to-Notion-blocks conversion. Extend this if you add new block types that need to round-trip through Notion.
160
160
 
161
161
  The agent can make all of these changes itself — ask it to "add a tags column to documents and expose it in the sidebar" and it will update the schema, migrate, wire the UI, and write the action.
@@ -109,7 +109,7 @@ The rest of this doc is for anyone forking the Design template or extending it.
109
109
  ### Scaffolding
110
110
 
111
111
  ```bash
112
- pnpm dlx @agent-native/core create my-design --template design --standalone
112
+ npx @agent-native/core create my-design --standalone --template design
113
113
  ```
114
114
 
115
115
  ### Data Model
@@ -139,7 +139,7 @@ Every agent-callable operation is a TypeScript file in `templates/design/actions
139
139
  - **Export & handoff** — `export-html`, `export-pdf`, `export-svg`, `export-zip`, and `export-coding-handoff` to turn a design into a coding-tool handoff.
140
140
  - **Context & navigation** — `view-screen` (current design, open file, view, pending question or variant grid), `get-design-snapshot` (current state for an external agent to continue from), and `navigate`.
141
141
 
142
- ### Customize It
142
+ ### Customizing It
143
143
 
144
144
  Design is a complete, cloneable template. Some practical extension ideas:
145
145
 
@@ -74,7 +74,7 @@ _How it works under the hood (for developers)._
74
74
 
75
75
  - **Orchestrator agent.** The chat is set up as a router: it reads `AGENTS.md`, `LEARNINGS.md`, and routes to specialist sub-agents or remote A2A agents.
76
76
  - **Remote agent registry.** A2A agent manifests are workspace-runtime entries (not a checked-in template source folder): in a multi-app workspace, sibling apps under `apps/` are auto-discovered as A2A peers — no manual registration needed. Dispatch calls them using the `call-agent` action.
77
- - **Vault schema.** Drizzle tables for secrets, grants, requests, approvals, and audit logs. See `server/db/schema.ts` in the template.
77
+ - **Vault schema.** Drizzle tables for secrets, grants, requests, approvals, and audit logs. These live in the `@agent-native/dispatch` package (`packages/dispatch/src/db/schema.ts`) and are re-exported into the template via `templates/dispatch/server/db/index.ts` — there is no template-local `server/db/schema.ts`. Dispatch's runtime ships in the package, not in template source (consistent with the note below that `@agent-native/dispatch` owns the shell, sidebar, and built-in pages).
78
78
  - **Slack / Telegram plugins.** Server plugins that register webhooks and forward incoming messages to the orchestrator agent.
79
79
  - **Workspace MCP resources.** Add HTTP MCP server definitions under `mcp-servers/*.json` in Resources, then scope them to All apps or selected app grants just like skills and context.
80
80
  - **MCP hub mode.** Dispatch can still act as the workspace's [MCP hub](/docs/mcp-clients#hub) so every other app in the workspace pulls the same org-scope MCP server list. Separately, Dispatch's own `/_agent-native/mcp` endpoint is the recommended external MCP connector for Claude, ChatGPT, and other hosts that should reach multiple workspace apps.
@@ -117,7 +117,7 @@ pnpm action create-dream-report --allSources true --sourceTimeoutMs 30000 --limi
117
117
  ## Scaffolding {#scaffolding}
118
118
 
119
119
  ```bash
120
- pnpm dlx @agent-native/core create my-platform
120
+ npx @agent-native/core create my-platform
121
121
  # pick "Dispatch" in the multi-select picker, plus whichever domain apps you want
122
122
  ```
123
123
 
@@ -140,7 +140,7 @@ You can click through the Dispatch UI after signing in. To use the chat composer
140
140
  2. In **LLM**, either connect Builder.io or add your own provider key such as `ANTHROPIC_API_KEY`.
141
141
  3. Return to **Overview** and try the composer.
142
142
 
143
- ## Customize it {#customize}
143
+ ## Customizing it {#customize}
144
144
 
145
145
  Dispatch is a full template like any other — see [Templates](/docs/cloneable-saas). Ask the agent to "add a new integration for Datadog" or "route Slack DMs from channel X to the analytics agent" and it'll edit the routing config, add the webhook handler, and wire it up.
146
146
 
@@ -58,17 +58,29 @@ See [What is agent-native?](/docs/what-is-agent-native) for the broader framewor
58
58
  ### Scaffolding
59
59
 
60
60
  ```bash
61
- pnpm dlx @agent-native/core create my-forms --template forms --standalone
61
+ npx @agent-native/core create my-forms --standalone --template forms
62
62
  ```
63
63
 
64
64
  For a workspace with Forms alongside other apps:
65
65
 
66
66
  ```bash
67
- pnpm dlx @agent-native/core create my-platform
67
+ npx @agent-native/core create my-platform
68
68
  ```
69
69
 
70
70
  Pick Forms and any other templates you want during the workspace setup.
71
71
 
72
+ ### Data model
73
+
74
+ All data lives in SQL via Drizzle ORM. Schema: `templates/forms/server/db/schema.ts`. Forms carry the standard `ownableColumns` and a matching framework shares table, so they slot into the per-user / per-org sharing model.
75
+
76
+ | Table | What it holds |
77
+ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
78
+ | `forms` | A form definition — `title`, `description`, unique `slug`, `fields` (JSON array of `FormField`), `settings` (JSON `FormSettings`), `status` (`draft` / `published` / `closed`), and a soft-delete `deleted_at` |
79
+ | `responses` | One submission per row — `form_id`, `data` (JSON `{ fieldId: value }`), `submitted_at`, optional `ip` and `submitter_email` |
80
+ | `form_shares` | Framework shares table mapping principals (users or orgs) to roles (viewer, editor, admin) per form |
81
+
82
+ The `fields` and `settings` JSON shapes are defined in `templates/forms/shared/types.ts` (`FormField`, `FormSettings`). Owner-private settings such as integration webhook URLs and allowed origins are stripped before any data reaches the public fill page via `toPublicFormSettings`.
83
+
72
84
  ### Customizing it
73
85
 
74
86
  Ask the agent for shipped behavior first:
@@ -34,9 +34,7 @@ When you open the app, you'll see your inbox on the left, the open thread in the
34
34
 
35
35
  Live demo: [mail.agent-native.com](https://mail.agent-native.com).
36
36
 
37
- > **Hosted demo warning:** The hosted Mail demo uses Agent-Native's shared Google OAuth client. Because Mail asks for Gmail access, Google may show extra consent or warning screens before continuing.
38
- >
39
- > Self-hosted Mail apps use your own Google OAuth client and avoid this hosted-demo warning. Use the run-local command when you want that path.
37
+ > **Google may show a warning:** The hosted demo uses Agent-Native's shared Google app for Gmail access, so Google may ask you to confirm before continuing. Run locally to use your own Google OAuth client.
40
38
 
41
39
  When you first open the app:
42
40
 
@@ -0,0 +1,118 @@
1
+ ---
2
+ title: "Plans"
3
+ description: "Install Agent-Native Plans as an app-backed skill for Codex, Claude Code, and other coding agents. Create structured visual plans with diagrams, wireframes, annotations, comments, and share links."
4
+ ---
5
+
6
+ # Plans
7
+
8
+ Agent-Native Plans is visual plan mode for coding agents. It turns an ordinary
9
+ Codex, Claude Code, Markdown, or pasted implementation plan into a structured
10
+ review surface with rich text, diagrams, wireframes, prototypes, implementation
11
+ maps, annotations, comments, and shareable links.
12
+
13
+ ![Agent-Native Plans review surface](https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fb6f4213ac7cc42eeb10c12e8ccda8936?format=webp&width=1200)
14
+
15
+ ## Install the skill
16
+
17
+ Use the Agent-Native CLI. This is the recommended setup because it installs the
18
+ Plans skill instructions, registers the hosted Plans MCP connector, and runs the
19
+ client-specific auth/setup flow in one step:
20
+
21
+ ```bash
22
+ npx @agent-native/core@latest skills add visual-plan
23
+ ```
24
+
25
+ If you already have the CLI installed, the shorter command is equivalent:
26
+
27
+ ```bash
28
+ agent-native skills add visual-plan
29
+ ```
30
+
31
+ The command installs `/visual-plan` plus the companion commands:
32
+
33
+ - `/ui-plan` for UI-first plans with mockups, states, and screen-level review.
34
+ - `/visual-questions` for visual intake before a plan.
35
+ - `/visualize-plan` for turning an existing text plan into a visual companion.
36
+
37
+ By default the CLI targets Codex. Add `--client claude-code` or `--client all`
38
+ when you want to configure another host:
39
+
40
+ ```bash
41
+ npx @agent-native/core@latest skills add visual-plan --client all
42
+ ```
43
+
44
+ If you only want the portable instruction file through the open Skills CLI, use:
45
+
46
+ ```bash
47
+ npx skills add BuilderIO/agent-native --skill visual-plan
48
+ ```
49
+
50
+ That installs the skill instructions only. It does not register the hosted MCP
51
+ connector, so use the Agent-Native CLI path when you want the one-command setup.
52
+
53
+ ## Use it from your coding agent
54
+
55
+ After installation, ask your agent for the command that fits the work:
56
+
57
+ - `/visual-plan` creates a structured plan for architecture, backend, refactor,
58
+ or mixed product work.
59
+ - `/ui-plan` creates a UI-first plan with wireframes, mockups, states, and
60
+ implementation notes.
61
+ - `/visual-questions` opens a visual intake questionnaire before planning.
62
+ - `/visualize-plan` imports a plan you already have and makes it reviewable.
63
+
64
+ The agent should inspect the codebase first, then create the visual plan when a
65
+ wrong direction would be costly. The returned Plans link opens the review UI so
66
+ you can annotate, correct, choose options, and ask for updates before code
67
+ changes begin.
68
+
69
+ ## What you can do with it
70
+
71
+ - **Review before implementation.** React to diagrams, wireframes, option tabs,
72
+ risk notes, file maps, and code previews before the agent edits files.
73
+ - **Comment directly on the plan.** Pin feedback, request changes, and resolve
74
+ comments as the plan evolves.
75
+ - **Share with reviewers.** Hosted Plans can create private review links and
76
+ account-backed sharing. Viewing shared plans works from the browser; saving
77
+ and sharing require sign-in.
78
+ - **Export the result.** Keep an HTML, Markdown, or JSON receipt of the plan
79
+ when you need a source-control-friendly handoff.
80
+ - **Run locally when needed.** The template can be self-hosted for development
81
+ or offline workflows, while the hosted skill is the easiest path for normal
82
+ coding-agent use.
83
+
84
+ ## Useful prompts
85
+
86
+ - "Use `/visual-plan` before changing the auth flow."
87
+ - "Create a `/ui-plan` for the new onboarding screen with mobile and desktop states."
88
+ - "Use `/visual-questions` to help me choose the dashboard direction first."
89
+ - "Run `/visualize-plan` on the Markdown plan below and make it easier to review."
90
+
91
+ ## For developers
92
+
93
+ The rest of this doc is for anyone forking or self-hosting the Plans template.
94
+ Most users should install the skill with the CLI instead of scaffolding the app.
95
+
96
+ ### Scaffold the template
97
+
98
+ ```bash
99
+ npx @agent-native/core create my-plans --standalone --template plan
100
+ cd my-plans
101
+ pnpm install
102
+ pnpm dev
103
+ ```
104
+
105
+ The hosted app-backed skill uses:
106
+
107
+ - App: `https://plan.agent-native.com`
108
+ - MCP: `https://plan.agent-native.com/_agent-native/mcp`
109
+
110
+ The local template is useful when you are developing Plans itself, testing local
111
+ persistence, or running a fully self-hosted review surface.
112
+
113
+ ## What's next
114
+
115
+ - [**Visual Plans**](/docs/visual-plans) — the full skill flow and auth details
116
+ - [**Skills**](/docs/skills-guide) — how Agent-Native installs skills
117
+ - [**MCP Clients**](/docs/mcp-clients) — configuring hosted MCP connectors
118
+ - [**Templates**](/docs/cloneable-saas) — the clone-and-own model
@@ -60,8 +60,9 @@ The rest of this doc is for anyone forking the Slides template or extending it.
60
60
  Create a new Slides app from the CLI:
61
61
 
62
62
  ```bash
63
- npx @agent-native/core create my-slides --template slides
63
+ npx @agent-native/core create my-slides --standalone --template slides
64
64
  cd my-slides
65
+ pnpm install
65
66
  pnpm dev
66
67
  ```
67
68
 
@@ -73,9 +74,9 @@ Ask the agent for a deck and it builds one slide at a time. Slides stream into t
73
74
 
74
75
  Under the hood, this is powered by the `add-slide` and `create-deck` actions in `templates/slides/actions/`.
75
76
 
76
- ### Eight slide layouts
77
+ ### Seven slide layouts
77
78
 
78
- Built-in layouts: title, section divider, content with bullets, two-column, image, statement or quote, full-bleed, and blank. Each layout is a pure HTML template with inline styles — the agent picks the right one based on slide purpose. Templates live inside `templates/slides/AGENTS.md` so the agent can reference them without exploring the codebase.
79
+ Built-in layouts: title, section divider, content with bullets, two-column, statement or quote, metrics or stats, and closing or CTA. Each layout is a pure HTML template with inline styles — the agent picks the right one based on slide purpose. The exact templates live inside `templates/slides/.agents/skills/create-deck/SKILL.md` so the agent can reference them without exploring the codebase.
79
80
 
80
81
  ### Visual and code editing
81
82
 
@@ -233,7 +234,7 @@ Agent skills that explain patterns when the agent needs to modify code:
233
234
 
234
235
  ### AGENTS.md
235
236
 
236
- `templates/slides/AGENTS.md` is the single source of truth the agent reads on every conversation. It contains the full action list, every slide HTML template, the navigation state contract, and rules for delegating to sub-agents. Update this file whenever you add an action or a new slide layout pattern.
237
+ `templates/slides/AGENTS.md` is the short router the agent reads on every conversation. It points at the skills under `.agents/skills/` and lays out the core rules, application-state contract, and skill index. The exact slide HTML templates for every layout live in `.agents/skills/create-deck/SKILL.md` update that skill whenever you add or change a slide layout pattern.
237
238
 
238
239
  ### API routes
239
240
 
@@ -25,10 +25,10 @@ Pick Starter when you're not sure which domain template fits, or when you want t
25
25
  - **Agent chat plugin** pre-configured so the chat actually talks to Claude (once `ANTHROPIC_API_KEY` is set).
26
26
  - **Auth** via Better Auth — login, signup, sessions, organizations. The same flow runs locally and in production; in development email verification is skipped so signup is just an email + password.
27
27
  - **Actions directory** with one example (`actions/hello.ts`) and the `view-screen` / `navigate` standard actions wired up.
28
- - **Drizzle schema** with the framework's core tables (application_state, settings, oauth_tokens, sessions, resources).
28
+ - **The framework's core tables** (application_state, settings, oauth_tokens, sessions, resources) provided by `@agent-native/core` at runtime — there's no template-local schema file to maintain. Add your own Drizzle schema when you define domain tables.
29
29
  - **Live sync** (`useDbSync`) already wired so UI auto-refreshes when the agent writes to the database.
30
30
  - **AGENTS.md** with the framework-wide rules the agent reads on every turn.
31
- - **One route** at `/` that says hi and renders the sidebar toggle. That's it.
31
+ - **One example domain route** at `/` that says hi and renders the sidebar toggle, plus the framework-shared admin routes (Database, Team, Observability, Extensions).
32
32
 
33
33
  ## What's _not_ in it {#not-in-it}
34
34
 
@@ -51,13 +51,13 @@ Pick a domain template ([Mail](/docs/template-mail), [Calendar](/docs/template-c
51
51
  ## Scaffolding {#scaffolding}
52
52
 
53
53
  ```bash
54
- pnpm dlx @agent-native/core create my-app --template starter --standalone
54
+ npx @agent-native/core create my-app --standalone --template starter
55
55
  ```
56
56
 
57
57
  Or, in a workspace:
58
58
 
59
59
  ```bash
60
- pnpm dlx @agent-native/core create my-platform # pick "Starter" (pre-selected by default) plus any others
60
+ npx @agent-native/core create my-platform # pick "Starter" (pre-selected by default) plus any others
61
61
  ```
62
62
 
63
63
  ## First edits {#first-edits}
@@ -24,7 +24,7 @@ When you open the studio, you'll see a list of compositions on the home screen.
24
24
  - **Generate animations from a prompt.** "Add a title card that fades in at 2 seconds and holds until 5." The agent edits the composition.
25
25
  - **Tune timing on a timeline.** Drag and resize animation tracks, scrub through frames, set easing curves visually.
26
26
  - **Animate the camera.** Pan, zoom, and tilt with on-screen tools. Click the tool, drag in the preview, and a keyframe is auto-created.
27
- - **Built-in compositions to start from.** Twelve examples ship: kinetic text, logo reveals, particle bursts, interactive UI demos, slideshows.
27
+ - **Start from a blank composition or an example.** The template ships one in-code composition (`BlankComposition`) to start from; example compositions kinetic text, logo reveals, particle bursts, interactive UI demos, slideshows — load from the database, and you can add your own.
28
28
  - **Edit easing curves visually.** 30+ curves shipped — power, back, bounce, circ, elastic, expo, sine, plus spring physics.
29
29
  - **Render to MP4 or WebM** at 1x, 2x, or 3x supersampling for crisp text and vectors during camera zoom.
30
30
 
@@ -64,21 +64,16 @@ The studio runs on Remotion's `<Player>` for preview and the Remotion CLI for fi
64
64
 
65
65
  ### Quick start
66
66
 
67
- Create a workspace with the Video app scaffolded:
68
-
69
- ```bash
70
- npx @agent-native/core create my-video-app
71
- ```
72
-
73
- During the picker, select **Video**. Then:
67
+ Scaffold a new Video app from the CLI:
74
68
 
75
69
  ```bash
70
+ npx @agent-native/core create my-video-app --standalone --template videos
76
71
  cd my-video-app
77
72
  pnpm install
78
73
  pnpm dev
79
74
  ```
80
75
 
81
- Open the studio in your browser and pick a composition from the home screen. Ask the agent something like "add a logo reveal that fades in at 2 seconds" and it will edit the registry and the composition for you.
76
+ Open the studio in your browser, create a composition, and start from blank. Ask the agent something like "add a logo reveal that fades in at 2 seconds" and it will edit the composition for you.
82
77
 
83
78
  Live demo: [videos.agent-native.com](https://videos.agent-native.com).
84
79
 
@@ -86,7 +81,7 @@ Live demo: [videos.agent-native.com](https://videos.agent-native.com).
86
81
 
87
82
  ### React-based compositions
88
83
 
89
- Every video is a React component built on Remotion primitives (`AbsoluteFill`, `useCurrentFrame`, `useVideoConfig`). Twelve example compositions ship by default kinetic text, logo reveals, particle bursts, interactive UI demos, slideshows. Add new ones by dropping a `.tsx` file in `app/remotion/compositions/` and registering it in `app/remotion/registry.ts`.
84
+ Every video is a React component built on Remotion primitives (`AbsoluteFill`, `useCurrentFrame`, `useVideoConfig`). The template ships one in-code composition — `BlankComposition` in `app/remotion/compositions/BlankComposition.tsx` and `app/remotion/registry.ts` exports an empty `compositions` array by default. User and example compositions (kinetic text, logo reveals, particle bursts, interactive UI demos, slideshows) live in SQL and load through `app/hooks/use-database-compositions.ts`. You can still add a code composition by dropping a `.tsx` file in `app/remotion/compositions/` and registering it in `app/remotion/registry.ts`.
90
85
 
91
86
  ### Timeline tracks
92
87
 
@@ -128,7 +123,7 @@ Composition size, fps, and render quality are per-composition in the Properties
128
123
 
129
124
  ### Composition persistence
130
125
 
131
- User edits (track values, parameter values, prop overrides, composition settings) persist to localStorage per composition. The **Save** button in the top-right of the composition view writes the current state back to `app/remotion/registry.ts` as TypeScript — so new users and sessions pick up the changes.
126
+ User edits (track values, parameter values, prop overrides, composition settings) persist to localStorage per composition. The **Save** button in the top-right of the composition view can write the current state back to `app/remotion/registry.ts` as TypeScript — so new users and sessions pick up the changes. That source-write path runs through `POST /api/save-composition-defaults`, which is gated to local development only; in production it returns a 403, and durable composition state lives in SQL instead.
132
127
 
133
128
  ### Working with the agent
134
129
 
@@ -5,7 +5,7 @@ description: "Server-side analytics with pluggable providers — PostHog, Mixpan
5
5
 
6
6
  # Analytics Tracking
7
7
 
8
- One function, multiple destinations. Call `track()` from any server-side code — actions, plugins, server routes — and the event fans out to every registered analytics provider. No SDK dependencies, no client-side scripts, no blocking.
8
+ One function, multiple destinations. Call `track()` from any server-side code — actions, plugins, server routes — and the event fans out to every registered analytics provider. No SDK dependencies, no client-side scripts, no blocking. The same `track()` is also available in [browser/app code](#client) and routes to the same providers.
9
9
 
10
10
  ```ts
11
11
  import { track } from "@agent-native/core/tracking";
@@ -173,6 +173,26 @@ export default defineAction({
173
173
 
174
174
  Track calls are fire-and-forget — they return immediately and never block the action response.
175
175
 
176
+ ## Client-side tracking {#client}
177
+
178
+ `track()` also works from browser/app code. Import the client twin from `@agent-native/core/client` and call it the same way — it POSTs the event to the framework route at `POST /_agent-native/track`, which forwards it to the **same** registered server-side providers (PostHog, Mixpanel, Amplitude, webhook). No analytics SDK ships to the browser and no provider keys are exposed client-side.
179
+
180
+ ```ts
181
+ import { track } from "@agent-native/core/client";
182
+
183
+ // e.g. inside a click handler or effect
184
+ track("checkout.completed", { total: 49.99, items: 3 });
185
+ ```
186
+
187
+ Key differences from the [server `track()`](#track):
188
+
189
+ - **No identity argument.** The event is attributed server-side to the signed-in user (and the active org, as `org_id` in `properties`). Browser code never passes a `userId`.
190
+ - **`source: "client"`** is added to every event's properties so you can tell client-originated events apart from server ones.
191
+ - **Fire-and-forget.** It never blocks the UI, never throws, and swallows network errors.
192
+ - **Authenticated, first-party only.** The route requires a session and a same-origin/CSRF marker (set automatically by the helper), so it can't be used as an open analytics relay. `name` is capped at 200 characters and `properties` at ~16KB; oversized or malformed payloads are rejected.
193
+
194
+ This is distinct from the framework's internal browser telemetry (`trackEvent()` / automatic pageviews — see [Browser defaults](#browser-defaults)), which powers Agent Native's own product analytics. Use `track()` for your app's own analytics events that should reach your configured providers.
195
+
176
196
  ## What's next
177
197
 
178
198
  - [**Actions**](/docs/actions) — where most tracking calls originate