@agent-native/core 0.101.12 → 0.101.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 (307) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +15 -0
  3. package/corpus/core/package.json +4 -2
  4. package/corpus/core/src/cli/create.ts +76 -17
  5. package/corpus/core/src/client/AgentPanel.tsx +61 -48
  6. package/corpus/core/src/client/assistant-ui-recovery.tsx +9 -3
  7. package/corpus/core/src/client/chat/message-components.tsx +26 -2
  8. package/corpus/core/src/client/chat/tool-call-display.tsx +18 -11
  9. package/corpus/core/src/mcp/server.ts +10 -1
  10. package/corpus/core/src/server/agent-chat/framework-prompts.ts +0 -3
  11. package/corpus/core/src/server/agent-chat-plugin.ts +2 -58
  12. package/corpus/core/src/server/prompts/framework-core-compact.ts +0 -1
  13. package/corpus/core/src/server/prompts/framework-core.ts +0 -30
  14. package/corpus/core/src/server/prompts/index.ts +1 -4
  15. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +0 -14
  16. package/corpus/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  17. package/corpus/templates/clips/app/components/player/share-dialog.tsx +1 -1
  18. package/corpus/templates/clips/app/i18n/ar-SA.ts +1 -0
  19. package/corpus/templates/clips/app/i18n/de-DE.ts +1 -0
  20. package/corpus/templates/clips/app/i18n/en-US.ts +1 -0
  21. package/corpus/templates/clips/app/i18n/es-ES.ts +1 -0
  22. package/corpus/templates/clips/app/i18n/fr-FR.ts +1 -0
  23. package/corpus/templates/clips/app/i18n/hi-IN.ts +1 -0
  24. package/corpus/templates/clips/app/i18n/ja-JP.ts +1 -0
  25. package/corpus/templates/clips/app/i18n/ko-KR.ts +1 -0
  26. package/corpus/templates/clips/app/i18n/pt-BR.ts +1 -0
  27. package/corpus/templates/clips/app/i18n/zh-CN.ts +1 -0
  28. package/corpus/templates/clips/app/i18n/zh-TW.ts +1 -0
  29. package/corpus/templates/clips/changelog/2026-07-15-public-clip-links-are-labeled-share-with-humans-for-clarity.md +6 -0
  30. package/corpus/templates/forms/actions/delete-form.ts +4 -0
  31. package/corpus/templates/forms/actions/patch-form-fields.ts +3 -0
  32. package/corpus/templates/forms/actions/restore-form.ts +3 -0
  33. package/corpus/templates/forms/actions/update-form.ts +3 -0
  34. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +2 -2
  35. package/corpus/templates/forms/app/pages/ResponsesPage.tsx +2 -2
  36. package/corpus/templates/forms/changelog/2026-07-15-published-forms-now-reflect-field-updates-immediately-at-the.md +6 -0
  37. package/corpus/templates/forms/changelog/2026-07-15-response-rows-now-keep-every-column-aligned-to-the-top-for-c.md +6 -0
  38. package/corpus/templates/forms/server/handlers/forms.ts +1 -0
  39. package/corpus/templates/forms/server/lib/public-form-ssr.ts +47 -4
  40. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +189 -82
  41. package/corpus/templates/slides/app/pages/DeckEditor.tsx +1 -1
  42. package/dist/cli/create.d.ts +5 -2
  43. package/dist/cli/create.d.ts.map +1 -1
  44. package/dist/cli/create.js +52 -17
  45. package/dist/cli/create.js.map +1 -1
  46. package/dist/client/AgentPanel.d.ts +2 -0
  47. package/dist/client/AgentPanel.d.ts.map +1 -1
  48. package/dist/client/AgentPanel.js +24 -13
  49. package/dist/client/AgentPanel.js.map +1 -1
  50. package/dist/client/assistant-ui-recovery.d.ts +2 -0
  51. package/dist/client/assistant-ui-recovery.d.ts.map +1 -1
  52. package/dist/client/assistant-ui-recovery.js +5 -2
  53. package/dist/client/assistant-ui-recovery.js.map +1 -1
  54. package/dist/client/chat/message-components.d.ts +6 -0
  55. package/dist/client/chat/message-components.d.ts.map +1 -1
  56. package/dist/client/chat/message-components.js +15 -2
  57. package/dist/client/chat/message-components.js.map +1 -1
  58. package/dist/client/chat/tool-call-display.d.ts +4 -2
  59. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  60. package/dist/client/chat/tool-call-display.js +11 -13
  61. package/dist/client/chat/tool-call-display.js.map +1 -1
  62. package/dist/collab/awareness.d.ts +2 -2
  63. package/dist/collab/awareness.d.ts.map +1 -1
  64. package/dist/collab/struct-routes.d.ts +1 -1
  65. package/dist/mcp/server.d.ts.map +1 -1
  66. package/dist/mcp/server.js +10 -1
  67. package/dist/mcp/server.js.map +1 -1
  68. package/dist/notifications/routes.d.ts +2 -2
  69. package/dist/resources/handlers.d.ts +3 -3
  70. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
  71. package/dist/server/agent-chat/framework-prompts.js +0 -3
  72. package/dist/server/agent-chat/framework-prompts.js.map +1 -1
  73. package/dist/server/agent-chat-plugin.d.ts +0 -22
  74. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  75. package/dist/server/agent-chat-plugin.js +2 -51
  76. package/dist/server/agent-chat-plugin.js.map +1 -1
  77. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  78. package/dist/server/prompts/framework-core-compact.d.ts +0 -1
  79. package/dist/server/prompts/framework-core-compact.d.ts.map +1 -1
  80. package/dist/server/prompts/framework-core-compact.js +0 -1
  81. package/dist/server/prompts/framework-core-compact.js.map +1 -1
  82. package/dist/server/prompts/framework-core.d.ts +0 -9
  83. package/dist/server/prompts/framework-core.d.ts.map +1 -1
  84. package/dist/server/prompts/framework-core.js +0 -29
  85. package/dist/server/prompts/framework-core.js.map +1 -1
  86. package/dist/server/prompts/index.d.ts +1 -1
  87. package/dist/server/prompts/index.d.ts.map +1 -1
  88. package/dist/server/prompts/index.js +1 -1
  89. package/dist/server/prompts/index.js.map +1 -1
  90. package/dist/server/transcribe-voice.d.ts +1 -1
  91. package/dist/templates/chat/.agents/skills/actions/SKILL.md +492 -0
  92. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +189 -0
  93. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +76 -0
  94. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +89 -0
  95. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +221 -0
  96. package/dist/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  97. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +112 -0
  98. package/dist/templates/chat/.agents/skills/real-time-sync/SKILL.md +232 -0
  99. package/dist/templates/chat/.agents/skills/security/SKILL.md +280 -0
  100. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +106 -0
  101. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +95 -0
  102. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +87 -0
  103. package/dist/templates/chat/.env.example +5 -0
  104. package/dist/templates/chat/.ignore +0 -0
  105. package/dist/templates/chat/.oxfmtrc.json +8 -0
  106. package/dist/templates/chat/.react-router/types/+server-build.d.ts +18 -0
  107. package/dist/templates/chat/.react-router/types/app/+types/root.ts +68 -0
  108. package/dist/templates/chat/AGENTS.md +62 -0
  109. package/dist/templates/chat/CHANGELOG.md +10 -0
  110. package/dist/templates/chat/DEVELOPING.md +185 -0
  111. package/dist/templates/chat/README.md +32 -0
  112. package/dist/templates/chat/_gitignore +43 -0
  113. package/dist/templates/chat/actions/hello.ts +13 -0
  114. package/dist/templates/chat/actions/navigate.ts +41 -0
  115. package/dist/templates/chat/actions/run.ts +2 -0
  116. package/dist/templates/chat/actions/view-screen.ts +31 -0
  117. package/dist/templates/chat/app/components/layout/Header.tsx +59 -0
  118. package/dist/templates/chat/app/components/layout/Layout.tsx +184 -0
  119. package/dist/templates/chat/app/components/layout/Sidebar.tsx +580 -0
  120. package/dist/templates/chat/app/components/ui/button.tsx +1 -0
  121. package/dist/templates/chat/app/components/ui/card.tsx +1 -0
  122. package/dist/templates/chat/app/components/ui/dropdown-menu.tsx +1 -0
  123. package/dist/templates/chat/app/components/ui/input.tsx +1 -0
  124. package/dist/templates/chat/app/components/ui/label.tsx +1 -0
  125. package/dist/templates/chat/app/components/ui/sheet.tsx +1 -0
  126. package/dist/templates/chat/app/components/ui/toolkit-provider.tsx +12 -0
  127. package/dist/templates/chat/app/components/ui/tooltip.tsx +1 -0
  128. package/dist/templates/chat/app/entry.client.tsx +19 -0
  129. package/dist/templates/chat/app/entry.server.tsx +10 -0
  130. package/dist/templates/chat/app/global.css +93 -0
  131. package/dist/templates/chat/app/hooks/use-navigation-state.ts +111 -0
  132. package/dist/templates/chat/app/i18n/ar-SA.ts +68 -0
  133. package/dist/templates/chat/app/i18n/de-DE.ts +71 -0
  134. package/dist/templates/chat/app/i18n/en-US.ts +70 -0
  135. package/dist/templates/chat/app/i18n/es-ES.ts +71 -0
  136. package/dist/templates/chat/app/i18n/fr-FR.ts +71 -0
  137. package/dist/templates/chat/app/i18n/hi-IN.ts +69 -0
  138. package/dist/templates/chat/app/i18n/index.ts +34 -0
  139. package/dist/templates/chat/app/i18n/ja-JP.ts +70 -0
  140. package/dist/templates/chat/app/i18n/ko-KR.ts +70 -0
  141. package/dist/templates/chat/app/i18n/pt-BR.ts +71 -0
  142. package/dist/templates/chat/app/i18n/zh-CN.ts +67 -0
  143. package/dist/templates/chat/app/i18n/zh-TW.ts +67 -0
  144. package/dist/templates/chat/app/i18n-data.ts +556 -0
  145. package/dist/templates/chat/app/lib/agent-page.tsx +40 -0
  146. package/dist/templates/chat/app/lib/app-config.ts +11 -0
  147. package/dist/templates/chat/app/lib/tab-id.ts +1 -0
  148. package/dist/templates/chat/app/lib/utils.ts +1 -0
  149. package/dist/templates/chat/app/root.tsx +172 -0
  150. package/dist/templates/chat/app/routes/_index.tsx +91 -0
  151. package/dist/templates/chat/app/routes/agent.tsx +17 -0
  152. package/dist/templates/chat/app/routes/chat.$threadId.tsx +1 -0
  153. package/dist/templates/chat/app/routes/database.tsx +17 -0
  154. package/dist/templates/chat/app/routes/extensions.$id.$slug.tsx +2 -0
  155. package/dist/templates/chat/app/routes/extensions.$id.tsx +11 -0
  156. package/dist/templates/chat/app/routes/extensions._index.tsx +11 -0
  157. package/dist/templates/chat/app/routes/extensions.tsx +5 -0
  158. package/dist/templates/chat/app/routes/observability.tsx +18 -0
  159. package/dist/templates/chat/app/routes/settings.tsx +88 -0
  160. package/dist/templates/chat/app/routes/team.tsx +11 -0
  161. package/dist/templates/chat/app/routes.ts +4 -0
  162. package/dist/templates/chat/app/vite-env.d.ts +6 -0
  163. package/dist/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  164. package/dist/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  165. package/dist/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  166. package/dist/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  167. package/dist/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
  168. package/dist/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  169. package/dist/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  170. package/dist/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
  171. package/dist/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
  172. package/dist/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  173. package/dist/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  174. package/dist/templates/chat/components.json +20 -0
  175. package/dist/templates/chat/data/.gitkeep +0 -0
  176. package/dist/templates/chat/data/sync-config.json +1 -0
  177. package/dist/templates/chat/learnings.defaults.md +5 -0
  178. package/dist/templates/chat/netlify.toml +10 -0
  179. package/dist/templates/chat/package.json +92 -0
  180. package/dist/templates/chat/public/agent-native-icon-dark.svg +10 -0
  181. package/dist/templates/chat/public/agent-native-icon-light.svg +10 -0
  182. package/dist/templates/chat/public/agent-native-logo-dark.svg +21 -0
  183. package/dist/templates/chat/public/agent-native-logo-light.svg +21 -0
  184. package/dist/templates/chat/public/favicon.svg +1 -0
  185. package/dist/templates/chat/public/icon-180.svg +1 -0
  186. package/dist/templates/chat/public/icon-192.svg +1 -0
  187. package/dist/templates/chat/public/icon-512.svg +1 -0
  188. package/dist/templates/chat/public/manifest.json +21 -0
  189. package/dist/templates/chat/react-router.config.ts +7 -0
  190. package/dist/templates/chat/server/middleware/auth.ts +15 -0
  191. package/dist/templates/chat/server/plugins/agent-chat.ts +21 -0
  192. package/dist/templates/chat/server/plugins/auth.ts +17 -0
  193. package/dist/templates/chat/server/routes/[...page].get.ts +5 -0
  194. package/dist/templates/chat/ssr-entry.ts +15 -0
  195. package/dist/templates/chat/tsconfig.json +21 -0
  196. package/dist/templates/chat/vite.config.ts +19 -0
  197. package/package.json +2 -1
  198. package/src/templates/chat/.agents/skills/actions/SKILL.md +492 -0
  199. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +189 -0
  200. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +76 -0
  201. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +89 -0
  202. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +221 -0
  203. package/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  204. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +112 -0
  205. package/src/templates/chat/.agents/skills/real-time-sync/SKILL.md +232 -0
  206. package/src/templates/chat/.agents/skills/security/SKILL.md +280 -0
  207. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +106 -0
  208. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +95 -0
  209. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +87 -0
  210. package/src/templates/chat/.env.example +5 -0
  211. package/src/templates/chat/.ignore +0 -0
  212. package/src/templates/chat/.oxfmtrc.json +8 -0
  213. package/src/templates/chat/.react-router/types/+server-build.d.ts +18 -0
  214. package/src/templates/chat/.react-router/types/app/+types/root.ts +68 -0
  215. package/src/templates/chat/AGENTS.md +62 -0
  216. package/src/templates/chat/CHANGELOG.md +10 -0
  217. package/src/templates/chat/DEVELOPING.md +185 -0
  218. package/src/templates/chat/README.md +32 -0
  219. package/src/templates/chat/_gitignore +43 -0
  220. package/src/templates/chat/actions/hello.spec.ts +23 -0
  221. package/src/templates/chat/actions/hello.ts +13 -0
  222. package/src/templates/chat/actions/navigate.spec.ts +68 -0
  223. package/src/templates/chat/actions/navigate.ts +41 -0
  224. package/src/templates/chat/actions/run.ts +2 -0
  225. package/src/templates/chat/actions/view-screen.spec.ts +40 -0
  226. package/src/templates/chat/actions/view-screen.ts +31 -0
  227. package/src/templates/chat/app/components/layout/Header.tsx +59 -0
  228. package/src/templates/chat/app/components/layout/Layout.tsx +184 -0
  229. package/src/templates/chat/app/components/layout/Sidebar.tsx +580 -0
  230. package/src/templates/chat/app/components/ui/button.tsx +1 -0
  231. package/src/templates/chat/app/components/ui/card.tsx +1 -0
  232. package/src/templates/chat/app/components/ui/dropdown-menu.tsx +1 -0
  233. package/src/templates/chat/app/components/ui/input.tsx +1 -0
  234. package/src/templates/chat/app/components/ui/label.tsx +1 -0
  235. package/src/templates/chat/app/components/ui/sheet.tsx +1 -0
  236. package/src/templates/chat/app/components/ui/toolkit-provider.tsx +12 -0
  237. package/src/templates/chat/app/components/ui/tooltip.tsx +1 -0
  238. package/src/templates/chat/app/entry.client.tsx +19 -0
  239. package/src/templates/chat/app/entry.server.tsx +10 -0
  240. package/src/templates/chat/app/global.css +93 -0
  241. package/src/templates/chat/app/hooks/use-navigation-state.ts +111 -0
  242. package/src/templates/chat/app/i18n/ar-SA.ts +68 -0
  243. package/src/templates/chat/app/i18n/de-DE.ts +71 -0
  244. package/src/templates/chat/app/i18n/en-US.ts +70 -0
  245. package/src/templates/chat/app/i18n/es-ES.ts +71 -0
  246. package/src/templates/chat/app/i18n/fr-FR.ts +71 -0
  247. package/src/templates/chat/app/i18n/hi-IN.ts +69 -0
  248. package/src/templates/chat/app/i18n/index.ts +34 -0
  249. package/src/templates/chat/app/i18n/ja-JP.ts +70 -0
  250. package/src/templates/chat/app/i18n/ko-KR.ts +70 -0
  251. package/src/templates/chat/app/i18n/pt-BR.ts +71 -0
  252. package/src/templates/chat/app/i18n/zh-CN.ts +67 -0
  253. package/src/templates/chat/app/i18n/zh-TW.ts +67 -0
  254. package/src/templates/chat/app/i18n-data.ts +556 -0
  255. package/src/templates/chat/app/lib/agent-page.spec.tsx +52 -0
  256. package/src/templates/chat/app/lib/agent-page.tsx +40 -0
  257. package/src/templates/chat/app/lib/app-config.ts +11 -0
  258. package/src/templates/chat/app/lib/tab-id.ts +1 -0
  259. package/src/templates/chat/app/lib/utils.ts +1 -0
  260. package/src/templates/chat/app/root.tsx +172 -0
  261. package/src/templates/chat/app/routes/_index.tsx +91 -0
  262. package/src/templates/chat/app/routes/agent.tsx +17 -0
  263. package/src/templates/chat/app/routes/chat.$threadId.tsx +1 -0
  264. package/src/templates/chat/app/routes/database.tsx +17 -0
  265. package/src/templates/chat/app/routes/extensions.$id.$slug.tsx +2 -0
  266. package/src/templates/chat/app/routes/extensions.$id.tsx +11 -0
  267. package/src/templates/chat/app/routes/extensions._index.tsx +11 -0
  268. package/src/templates/chat/app/routes/extensions.tsx +5 -0
  269. package/src/templates/chat/app/routes/observability.tsx +18 -0
  270. package/src/templates/chat/app/routes/settings.tsx +88 -0
  271. package/src/templates/chat/app/routes/team.tsx +11 -0
  272. package/src/templates/chat/app/routes.ts +4 -0
  273. package/src/templates/chat/app/vite-env.d.ts +6 -0
  274. package/src/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  275. package/src/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  276. package/src/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  277. package/src/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  278. package/src/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
  279. package/src/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  280. package/src/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  281. package/src/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
  282. package/src/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
  283. package/src/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  284. package/src/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  285. package/src/templates/chat/components.json +20 -0
  286. package/src/templates/chat/data/.gitkeep +0 -0
  287. package/src/templates/chat/data/sync-config.json +1 -0
  288. package/src/templates/chat/learnings.defaults.md +5 -0
  289. package/src/templates/chat/netlify.toml +10 -0
  290. package/src/templates/chat/package.json +92 -0
  291. package/src/templates/chat/public/agent-native-icon-dark.svg +10 -0
  292. package/src/templates/chat/public/agent-native-icon-light.svg +10 -0
  293. package/src/templates/chat/public/agent-native-logo-dark.svg +21 -0
  294. package/src/templates/chat/public/agent-native-logo-light.svg +21 -0
  295. package/src/templates/chat/public/favicon.svg +1 -0
  296. package/src/templates/chat/public/icon-180.svg +1 -0
  297. package/src/templates/chat/public/icon-192.svg +1 -0
  298. package/src/templates/chat/public/icon-512.svg +1 -0
  299. package/src/templates/chat/public/manifest.json +21 -0
  300. package/src/templates/chat/react-router.config.ts +7 -0
  301. package/src/templates/chat/server/middleware/auth.ts +15 -0
  302. package/src/templates/chat/server/plugins/agent-chat.ts +21 -0
  303. package/src/templates/chat/server/plugins/auth.ts +17 -0
  304. package/src/templates/chat/server/routes/[...page].get.ts +5 -0
  305. package/src/templates/chat/ssr-entry.ts +15 -0
  306. package/src/templates/chat/tsconfig.json +21 -0
  307. package/src/templates/chat/vite.config.ts +19 -0
@@ -0,0 +1,172 @@
1
+ import { useDbSync } from "@agent-native/core/client";
2
+ import {
3
+ AppProviders,
4
+ CommandMenu,
5
+ appPath,
6
+ configureTracking,
7
+ createAgentNativeQueryClient,
8
+ getLocaleInitScript,
9
+ getThemeInitScript,
10
+ useCommandMenuShortcut,
11
+ useT,
12
+ } from "@agent-native/core/client";
13
+ import { IconBrain, IconSun, IconMoon } from "@tabler/icons-react";
14
+ import { useQueryClient } from "@tanstack/react-query";
15
+ import { useTheme } from "next-themes";
16
+ import { useCallback, useState } from "react";
17
+ import {
18
+ Links,
19
+ Meta,
20
+ Outlet,
21
+ Scripts,
22
+ ScrollRestoration,
23
+ useNavigate,
24
+ } from "react-router";
25
+ import type { LinksFunction } from "react-router";
26
+
27
+ import { Layout as AppLayout } from "@/components/layout/Layout";
28
+ import { AppToolkitProvider } from "@/components/ui/toolkit-provider";
29
+ import { useNavigationState } from "@/hooks/use-navigation-state";
30
+ import { APP_TITLE } from "@/lib/app-config";
31
+ import { TAB_ID } from "@/lib/tab-id";
32
+
33
+ import changelog from "../CHANGELOG.md?raw";
34
+ import { i18nCatalog } from "./i18n";
35
+
36
+ import stylesheet from "./global.css?url";
37
+
38
+ configureTracking({
39
+ getDefaultProps: (_name, properties) => ({
40
+ ...properties,
41
+ app: "chat",
42
+ }),
43
+ });
44
+
45
+ export const links: LinksFunction = () => [
46
+ { rel: "stylesheet", href: stylesheet },
47
+ ];
48
+
49
+ const THEME_INIT_SCRIPT = getThemeInitScript();
50
+ const LOCALE_INIT_SCRIPT = getLocaleInitScript();
51
+
52
+ export function Layout({ children }: { children: React.ReactNode }) {
53
+ return (
54
+ <html lang="en" suppressHydrationWarning>
55
+ <head>
56
+ <meta charSet="utf-8" />
57
+ <meta
58
+ name="viewport"
59
+ content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
60
+ />
61
+ <script
62
+ suppressHydrationWarning
63
+ dangerouslySetInnerHTML={{ __html: THEME_INIT_SCRIPT }}
64
+ />
65
+ <script
66
+ data-agent-native-locale-init
67
+ suppressHydrationWarning
68
+ dangerouslySetInnerHTML={{ __html: LOCALE_INIT_SCRIPT }}
69
+ />
70
+ <link rel="manifest" href={appPath("/manifest.json")} />
71
+ <meta name="theme-color" content="#18181B" />
72
+ <meta name="mobile-web-app-capable" content="yes" />
73
+ <meta
74
+ name="apple-mobile-web-app-status-bar-style"
75
+ content="black-translucent"
76
+ />
77
+ <meta name="apple-mobile-web-app-title" content={APP_TITLE} />
78
+ <link rel="icon" type="image/svg+xml" href={appPath("/favicon.svg")} />
79
+ <link rel="apple-touch-icon" href={appPath("/icon-180.svg")} />
80
+ <Meta />
81
+ <Links />
82
+ </head>
83
+ <body>
84
+ {children}
85
+ <ScrollRestoration />
86
+ <Scripts />
87
+ </body>
88
+ </html>
89
+ );
90
+ }
91
+
92
+ function DbSyncSetup() {
93
+ const qc = useQueryClient();
94
+ useNavigationState();
95
+ useDbSync({
96
+ queryClient: qc,
97
+ ignoreSource: TAB_ID,
98
+ });
99
+ return null;
100
+ }
101
+
102
+ function ThemeToggleItem() {
103
+ const { resolvedTheme, setTheme } = useTheme();
104
+ const t = useT();
105
+ const isDark = resolvedTheme === "dark";
106
+ return (
107
+ <CommandMenu.Item
108
+ onSelect={() => setTheme(isDark ? "light" : "dark")}
109
+ keywords={["theme", "dark", "light", "mode"]}
110
+ >
111
+ {isDark ? <IconSun size={16} /> : <IconMoon size={16} />}
112
+ {t("root.toggleTheme")}
113
+ </CommandMenu.Item>
114
+ );
115
+ }
116
+
117
+ function AppContent() {
118
+ const [cmdkOpen, setCmdkOpen] = useState(false);
119
+ const navigate = useNavigate();
120
+ const t = useT();
121
+ useCommandMenuShortcut(useCallback(() => setCmdkOpen(true), []));
122
+ return (
123
+ <>
124
+ <CommandMenu
125
+ open={cmdkOpen}
126
+ onOpenChange={setCmdkOpen}
127
+ changelog={changelog}
128
+ changelogKey="chat"
129
+ >
130
+ <CommandMenu.Group heading={t("root.commandActions")}>
131
+ <CommandMenu.Item onSelect={() => {}}>
132
+ {t("root.commandSearch")}
133
+ </CommandMenu.Item>
134
+ <CommandMenu.Item
135
+ onSelect={() => navigate("/agent")}
136
+ keywords={[
137
+ "agent",
138
+ "context",
139
+ "files",
140
+ "connections",
141
+ "jobs",
142
+ "access",
143
+ ]}
144
+ >
145
+ <IconBrain size={16} />
146
+ {t("settings.openAgentSettings")}
147
+ </CommandMenu.Item>
148
+ </CommandMenu.Group>
149
+ <CommandMenu.Group heading={t("root.commandAppearance")}>
150
+ <ThemeToggleItem />
151
+ </CommandMenu.Group>
152
+ </CommandMenu>
153
+ <AppLayout>
154
+ <Outlet />
155
+ </AppLayout>
156
+ </>
157
+ );
158
+ }
159
+
160
+ export default function Root() {
161
+ const [queryClient] = useState(() => createAgentNativeQueryClient());
162
+ return (
163
+ <AppToolkitProvider>
164
+ <AppProviders queryClient={queryClient} i18n={{ catalog: i18nCatalog }}>
165
+ <DbSyncSetup />
166
+ <AppContent />
167
+ </AppProviders>
168
+ </AppToolkitProvider>
169
+ );
170
+ }
171
+
172
+ export { ErrorBoundary } from "@agent-native/core/client";
@@ -0,0 +1,91 @@
1
+ import {
2
+ AgentChatSurface,
3
+ markAgentChatHomeHandoff,
4
+ useT,
5
+ } from "@agent-native/core/client";
6
+ import { useEffect } from "react";
7
+ import { useNavigate, useParams } from "react-router";
8
+
9
+ import { APP_TITLE } from "@/lib/app-config";
10
+ import { TAB_ID } from "@/lib/tab-id";
11
+
12
+ const SEO_TITLE = `${APP_TITLE} - Open Source AI app starter with actions`;
13
+ const SEO_DESCRIPTION =
14
+ "Open Source starter for agent-native apps with durable chat, shared actions, UI state, tools, and a backend your agent can extend.";
15
+
16
+ export function meta() {
17
+ return [
18
+ { title: SEO_TITLE },
19
+ {
20
+ name: "description",
21
+ content: SEO_DESCRIPTION,
22
+ },
23
+ { property: "og:title", content: SEO_TITLE },
24
+ { property: "og:description", content: SEO_DESCRIPTION },
25
+ { name: "twitter:card", content: "summary" },
26
+ { name: "twitter:title", content: SEO_TITLE },
27
+ { name: "twitter:description", content: SEO_DESCRIPTION },
28
+ ];
29
+ }
30
+
31
+ function chatThreadPath(threadId: string | null) {
32
+ return threadId ? `/chat/${encodeURIComponent(threadId)}` : "/";
33
+ }
34
+
35
+ export default function ChatRoute() {
36
+ const { threadId } = useParams();
37
+ const navigate = useNavigate();
38
+ const t = useT();
39
+
40
+ useEffect(() => {
41
+ function handleChatRunning(event: Event) {
42
+ const detail = (event as CustomEvent).detail;
43
+ if (detail?.isRunning === true) markAgentChatHomeHandoff("chat");
44
+ }
45
+
46
+ window.addEventListener("agentNative.chatRunning", handleChatRunning);
47
+ return () =>
48
+ window.removeEventListener("agentNative.chatRunning", handleChatRunning);
49
+ }, []);
50
+
51
+ return (
52
+ <div className="flex h-full min-h-0 flex-col bg-background">
53
+ <AgentChatSurface
54
+ mode="page"
55
+ chatViewTransition
56
+ className="h-full"
57
+ defaultMode="chat"
58
+ storageKey="chat"
59
+ threadUrlSync={{
60
+ routeThreadId: threadId ?? null,
61
+ getPath: chatThreadPath,
62
+ navigate,
63
+ }}
64
+ browserTabId={TAB_ID}
65
+ showHeader={false}
66
+ showTabBar={false}
67
+ dynamicSuggestions={false}
68
+ suggestions={[
69
+ t("chat.suggestionCapabilities"),
70
+ t("chat.suggestionCustomize"),
71
+ t("chat.suggestionActions"),
72
+ ]}
73
+ emptyStateText={t("chat.emptyState")}
74
+ emptyStateDisplay="hidden"
75
+ centerComposerWhenEmpty
76
+ composerLayoutVariant="hero"
77
+ composerPlaceholder={t("chat.composerPlaceholder")}
78
+ composerSlot={
79
+ <div className="mx-auto mb-5 max-w-xl px-4 text-center">
80
+ <h1 className="text-2xl font-semibold tracking-normal text-foreground sm:text-3xl">
81
+ {t("chat.heroTitle")}
82
+ </h1>
83
+ <p className="mt-2 text-sm leading-6 text-muted-foreground">
84
+ {t("chat.heroDescription")}
85
+ </p>
86
+ </div>
87
+ }
88
+ />
89
+ </div>
90
+ );
91
+ }
@@ -0,0 +1,17 @@
1
+ import * as AgentClient from "@agent-native/core/client";
2
+ import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
3
+
4
+ import { resolveAgentPageComponent } from "@/lib/agent-page";
5
+ import { APP_TITLE } from "@/lib/app-config";
6
+
7
+ export function meta() {
8
+ return [{ title: `Agent - ${APP_TITLE}` }];
9
+ }
10
+
11
+ export default function AgentRoute() {
12
+ const t = AgentClient.useT();
13
+ useSetPageTitle(t("settings.agentTitle"));
14
+
15
+ const AgentPage = resolveAgentPageComponent(AgentClient);
16
+ return <AgentPage appName={APP_TITLE} />;
17
+ }
@@ -0,0 +1 @@
1
+ export { default, meta } from "./_index";
@@ -0,0 +1,17 @@
1
+ import { useT } from "@agent-native/core/client";
2
+ import { DbAdminPage } from "@agent-native/core/client/db-admin";
3
+ import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
4
+
5
+ export function meta() {
6
+ return [{ title: "Database" }];
7
+ }
8
+
9
+ export default function DatabasePage() {
10
+ const t = useT();
11
+ useSetPageTitle(t("pages.databaseTitle"));
12
+ return (
13
+ <div className="h-full">
14
+ <DbAdminPage />
15
+ </div>
16
+ );
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./extensions.$id";
2
+ export { default } from "./extensions.$id";
@@ -0,0 +1,11 @@
1
+ import { ExtensionViewerPage } from "@agent-native/core/client/extensions";
2
+
3
+ import { APP_TITLE } from "@/lib/app-config";
4
+
5
+ export function meta() {
6
+ return [{ title: `Extension — ${APP_TITLE}` }];
7
+ }
8
+
9
+ export default function ExtensionViewerRoute() {
10
+ return <ExtensionViewerPage />;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { ExtensionsListPage } from "@agent-native/core/client/extensions";
2
+
3
+ import { APP_TITLE } from "@/lib/app-config";
4
+
5
+ export function meta() {
6
+ return [{ title: `Extensions — ${APP_TITLE}` }];
7
+ }
8
+
9
+ export default function ExtensionsRoute() {
10
+ return <ExtensionsListPage />;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { Outlet } from "react-router";
2
+
3
+ export default function ExtensionsLayout() {
4
+ return <Outlet />;
5
+ }
@@ -0,0 +1,18 @@
1
+ import { ObservabilityDashboard, useT } from "@agent-native/core/client";
2
+ import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
3
+
4
+ import enUS from "@/i18n/en-US";
5
+
6
+ export function meta() {
7
+ return [{ title: enUS.pages.observabilityPageTitle }];
8
+ }
9
+
10
+ export default function ObservabilityPage() {
11
+ const t = useT();
12
+ useSetPageTitle(t("pages.observabilityPageTitle"));
13
+ return (
14
+ <div className="p-6">
15
+ <ObservabilityDashboard />
16
+ </div>
17
+ );
18
+ }
@@ -0,0 +1,88 @@
1
+ import {
2
+ ChangelogSettingsCard,
3
+ LanguagePicker,
4
+ SettingsTabsPage,
5
+ useAgentSettingsTabs,
6
+ useT,
7
+ type SettingsSearchEntry,
8
+ } from "@agent-native/core/client";
9
+ import { TeamPage } from "@agent-native/core/client/org";
10
+ import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
11
+ import { useMemo } from "react";
12
+
13
+ import {
14
+ Card,
15
+ CardContent,
16
+ CardDescription,
17
+ CardHeader,
18
+ CardTitle,
19
+ } from "@/components/ui/card";
20
+ import { Label } from "@/components/ui/label";
21
+ import { APP_TITLE } from "@/lib/app-config";
22
+
23
+ import changelog from "../../CHANGELOG.md?raw";
24
+
25
+ export function meta() {
26
+ return [{ title: `Settings - ${APP_TITLE}` }];
27
+ }
28
+
29
+ export default function SettingsRoute() {
30
+ const t = useT();
31
+ const agentSettingsTabs = useAgentSettingsTabs();
32
+ useSetPageTitle(t("settings.title"));
33
+
34
+ const generalSearchEntries = useMemo<SettingsSearchEntry[]>(
35
+ () => [
36
+ {
37
+ id: "chat-language",
38
+ label: t("settings.languageTitle"),
39
+ keywords: "language locale translation i18n",
40
+ hash: "language",
41
+ },
42
+ ],
43
+ [t],
44
+ );
45
+
46
+ return (
47
+ <SettingsTabsPage
48
+ teamLabel={t("navigation.team")}
49
+ extraTabs={agentSettingsTabs}
50
+ generalSearchEntries={generalSearchEntries}
51
+ general={
52
+ <div className="mx-auto w-full max-w-2xl space-y-6">
53
+ <p className="text-sm leading-6 text-muted-foreground">
54
+ {t("settings.description")}
55
+ </p>
56
+
57
+ <Card id="language" className="scroll-mt-16">
58
+ <CardHeader>
59
+ <CardTitle className="text-base">
60
+ {t("settings.languageTitle")}
61
+ </CardTitle>
62
+ <CardDescription>
63
+ {t("settings.languageDescription")}
64
+ </CardDescription>
65
+ </CardHeader>
66
+ <CardContent className="max-w-xs space-y-1.5">
67
+ <Label>{t("settings.languageLabel")}</Label>
68
+ <LanguagePicker label={t("settings.languageLabel")} />
69
+ </CardContent>
70
+ </Card>
71
+ </div>
72
+ }
73
+ team={
74
+ <div className="mx-auto w-full max-w-3xl">
75
+ <TeamPage
76
+ showTitle={false}
77
+ createOrgDescription={t("pages.teamCreateOrgDescription")}
78
+ />
79
+ </div>
80
+ }
81
+ whatsNew={
82
+ <div className="mx-auto w-full max-w-2xl">
83
+ <ChangelogSettingsCard markdown={changelog} />
84
+ </div>
85
+ }
86
+ />
87
+ );
88
+ }
@@ -0,0 +1,11 @@
1
+ import { Navigate } from "react-router";
2
+
3
+ import { APP_TITLE } from "@/lib/app-config";
4
+
5
+ export function meta() {
6
+ return [{ title: `Team — ${APP_TITLE}` }];
7
+ }
8
+
9
+ export default function TeamRoute() {
10
+ return <Navigate to="/settings#organization" replace />;
11
+ }
@@ -0,0 +1,4 @@
1
+ import { type RouteConfig } from "@react-router/dev/routes";
2
+ import { flatRoutes } from "@react-router/fs-routes";
3
+
4
+ export default flatRoutes() satisfies RouteConfig;
@@ -0,0 +1,6 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module "react-dom/server.browser" {
4
+ export * from "react-dom/server";
5
+ export { default } from "react-dom/server";
6
+ }
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: added
3
+ date: 2026-06-24
4
+ ---
5
+
6
+ A new Settings page gives quick access to language, workspace, and agent preferences.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: added
3
+ date: 2026-06-24
4
+ ---
5
+
6
+ Added a language picker and localized app chrome for supported languages.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-06-27
4
+ ---
5
+
6
+ Traditional Chinese copy now uses Taiwan terminology and clearer technical wording.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-06-28
4
+ ---
5
+
6
+ Left sidebar collapse motion and footer controls now feel smoother and use less divider chrome.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-06-29
4
+ ---
5
+
6
+ Chat layouts adapt when the agent sidebar is open.
@@ -0,0 +1,5 @@
1
+ ---
2
+ type: improved
3
+ ---
4
+
5
+ Settings are cleaner and searchable, with a consistent navigation that jumps straight to any setting.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-10
4
+ ---
5
+
6
+ Chat now makes AI connection setup clear without shifting the composer.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: added
3
+ date: 2026-07-13
4
+ ---
5
+
6
+ A full Agent page now brings context, files, connections, jobs, and external access together
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-14
4
+ ---
5
+
6
+ Chat opens reliably on hosted deployments instead of failing during startup
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-14
4
+ ---
5
+
6
+ Fixed chat template startup with older core versions
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: removed
3
+ date: 2026-07-15
4
+ ---
5
+
6
+ The main navigation is now focused on Chat, Agent, and essential workspace settings.
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "app/global.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }
File without changes
@@ -0,0 +1 @@
1
+ { "patterns": ["data/**/*.json"] }
@@ -0,0 +1,5 @@
1
+ # Learnings
2
+
3
+ <!-- This file is your app's memory. The AI reads it at the start of every conversation and updates it when it learns something new. -->
4
+ <!-- Your personal learnings.md is gitignored so preferences and private info stay local. -->
5
+ <!-- This defaults file is what new checkouts start with. -->
@@ -0,0 +1,10 @@
1
+ [build]
2
+ ignore = "node ./scripts/netlify-ignore-build.mjs chat"
3
+ command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && NITRO_PRESET=netlify pnpm --filter chat build"
4
+ publish = "templates/chat/dist"
5
+ functions = "templates/chat/.netlify/functions-internal"
6
+
7
+ [build.environment]
8
+ GA_MEASUREMENT_ID = "G-ESF7FYXGN9"
9
+ NITRO_PRESET = "netlify"
10
+ NPM_CONFIG_PRODUCTION = "false"