@agent-native/core 0.101.13 → 0.102.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 (561) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/core/CHANGELOG.md +13 -0
  3. package/corpus/core/package.json +4 -2
  4. package/corpus/core/src/cli/create.ts +32 -10
  5. package/corpus/core/src/cli/templates-meta.ts +13 -0
  6. package/corpus/core/src/client/AgentPanel.tsx +61 -48
  7. package/corpus/core/src/client/chat/message-components.tsx +1 -0
  8. package/corpus/core/src/client/chat/tool-call-display.tsx +12 -2
  9. package/corpus/core/src/client/org/OrgSwitcher.tsx +2 -0
  10. package/corpus/templates/clips/app/components/player/share-dialog.tsx +1 -1
  11. package/corpus/templates/clips/app/i18n/ar-SA.ts +1 -0
  12. package/corpus/templates/clips/app/i18n/de-DE.ts +1 -0
  13. package/corpus/templates/clips/app/i18n/en-US.ts +1 -0
  14. package/corpus/templates/clips/app/i18n/es-ES.ts +1 -0
  15. package/corpus/templates/clips/app/i18n/fr-FR.ts +1 -0
  16. package/corpus/templates/clips/app/i18n/hi-IN.ts +1 -0
  17. package/corpus/templates/clips/app/i18n/ja-JP.ts +1 -0
  18. package/corpus/templates/clips/app/i18n/ko-KR.ts +1 -0
  19. package/corpus/templates/clips/app/i18n/pt-BR.ts +1 -0
  20. package/corpus/templates/clips/app/i18n/zh-CN.ts +1 -0
  21. package/corpus/templates/clips/app/i18n/zh-TW.ts +1 -0
  22. package/corpus/templates/clips/changelog/2026-07-15-public-clip-links-are-labeled-share-with-humans-for-clarity.md +6 -0
  23. package/corpus/templates/content/actions/_database-source-utils.ts +59 -4
  24. package/corpus/templates/content/actions/prepare-builder-source-review.ts +9 -0
  25. package/corpus/templates/content/actions/preview-builder-source-review.ts +6 -4
  26. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +4 -0
  27. package/corpus/templates/content/changelog/2026-07-15-selected-builder-reviews-now-load-only-the-chosen-rows-avoid.md +6 -0
  28. package/corpus/templates/content/shared/api.ts +1 -0
  29. package/corpus/templates/forms/actions/delete-form.ts +4 -0
  30. package/corpus/templates/forms/actions/patch-form-fields.ts +3 -0
  31. package/corpus/templates/forms/actions/restore-form.ts +3 -0
  32. package/corpus/templates/forms/actions/update-form.ts +3 -0
  33. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +2 -2
  34. package/corpus/templates/forms/app/pages/ResponsesPage.tsx +2 -2
  35. package/corpus/templates/forms/changelog/2026-07-15-published-forms-now-reflect-field-updates-immediately-at-the.md +6 -0
  36. package/corpus/templates/forms/changelog/2026-07-15-response-rows-now-keep-every-column-aligned-to-the-top-for-c.md +6 -0
  37. package/corpus/templates/forms/server/handlers/forms.ts +1 -0
  38. package/corpus/templates/forms/server/lib/public-form-ssr.ts +47 -4
  39. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +189 -82
  40. package/corpus/templates/slides/app/pages/DeckEditor.tsx +1 -1
  41. package/corpus/templates/tasks/.agents/commands/visual-plan.md +9 -0
  42. package/corpus/templates/tasks/.agents/commands/visual-recap.md +8 -0
  43. package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +492 -0
  44. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +189 -0
  45. package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +76 -0
  46. package/corpus/templates/tasks/.agents/skills/agent-watchdog/README.md +43 -0
  47. package/corpus/templates/tasks/.agents/skills/agent-watchdog/SKILL.md +110 -0
  48. package/corpus/templates/tasks/.agents/skills/agent-watchdog/agents/openai.yaml +4 -0
  49. package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +89 -0
  50. package/corpus/templates/tasks/.agents/skills/change-summary/SKILL.md +83 -0
  51. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +221 -0
  52. package/corpus/templates/tasks/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  53. package/corpus/templates/tasks/.agents/skills/efficient-fable/README.md +75 -0
  54. package/corpus/templates/tasks/.agents/skills/efficient-fable/SKILL.md +95 -0
  55. package/corpus/templates/tasks/.agents/skills/efficient-frontier/README.md +53 -0
  56. package/corpus/templates/tasks/.agents/skills/efficient-frontier/SKILL.md +73 -0
  57. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +112 -0
  58. package/corpus/templates/tasks/.agents/skills/plan-arbiter/README.md +41 -0
  59. package/corpus/templates/tasks/.agents/skills/plan-arbiter/SKILL.md +114 -0
  60. package/corpus/templates/tasks/.agents/skills/plan-arbiter/agents/openai.yaml +4 -0
  61. package/corpus/templates/tasks/.agents/skills/plow-ahead/README.md +42 -0
  62. package/corpus/templates/tasks/.agents/skills/plow-ahead/SKILL.md +104 -0
  63. package/corpus/templates/tasks/.agents/skills/plow-ahead/agents/openai.yaml +4 -0
  64. package/corpus/templates/tasks/.agents/skills/quick-recap/README.md +55 -0
  65. package/corpus/templates/tasks/.agents/skills/quick-recap/SKILL.md +54 -0
  66. package/corpus/templates/tasks/.agents/skills/read-the-damn-docs/README.md +54 -0
  67. package/corpus/templates/tasks/.agents/skills/read-the-damn-docs/SKILL.md +126 -0
  68. package/corpus/templates/tasks/.agents/skills/read-the-damn-docs/agents/openai.yaml +4 -0
  69. package/corpus/templates/tasks/.agents/skills/real-time-sync/SKILL.md +232 -0
  70. package/corpus/templates/tasks/.agents/skills/security/SKILL.md +280 -0
  71. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +106 -0
  72. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +95 -0
  73. package/corpus/templates/tasks/.agents/skills/stay-within-limits/README.md +61 -0
  74. package/corpus/templates/tasks/.agents/skills/stay-within-limits/SKILL.md +83 -0
  75. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +87 -0
  76. package/corpus/templates/tasks/.agents/skills/visual-plan/SKILL.md +547 -0
  77. package/corpus/templates/tasks/.agents/skills/visual-plan/agent-native-skill.json +12 -0
  78. package/corpus/templates/tasks/.agents/skills/visual-plan/references/canvas.md +121 -0
  79. package/corpus/templates/tasks/.agents/skills/visual-plan/references/document-quality.md +178 -0
  80. package/corpus/templates/tasks/.agents/skills/visual-plan/references/exemplar.md +62 -0
  81. package/corpus/templates/tasks/.agents/skills/visual-plan/references/wireframe.md +264 -0
  82. package/corpus/templates/tasks/.agents/skills/visual-recap/SKILL.md +634 -0
  83. package/corpus/templates/tasks/.agents/skills/visual-recap/agent-native-skill.json +12 -0
  84. package/corpus/templates/tasks/.agents/skills/visual-recap/references/wireframe.md +264 -0
  85. package/corpus/templates/tasks/.claude/commands/visual-plan.md +9 -0
  86. package/corpus/templates/tasks/.claude/commands/visual-recap.md +8 -0
  87. package/corpus/templates/tasks/.env.example +5 -0
  88. package/corpus/templates/tasks/.ignore +0 -0
  89. package/corpus/templates/tasks/.prettierrc +5 -0
  90. package/corpus/templates/tasks/AGENTS.md +158 -0
  91. package/corpus/templates/tasks/DEVELOPING.md +185 -0
  92. package/corpus/templates/tasks/README.md +16 -0
  93. package/corpus/templates/tasks/actions/bulk-delete-inbox-items.ts +24 -0
  94. package/corpus/templates/tasks/actions/bulk-delete-tasks.ts +21 -0
  95. package/corpus/templates/tasks/actions/bulk-mark-inbox-items-ready.ts +27 -0
  96. package/corpus/templates/tasks/actions/bulk-update-tasks.ts +35 -0
  97. package/corpus/templates/tasks/actions/create-custom-field.ts +22 -0
  98. package/corpus/templates/tasks/actions/create-inbox-item.ts +30 -0
  99. package/corpus/templates/tasks/actions/create-task.ts +33 -0
  100. package/corpus/templates/tasks/actions/delete-custom-field.ts +19 -0
  101. package/corpus/templates/tasks/actions/delete-inbox-item.ts +17 -0
  102. package/corpus/templates/tasks/actions/delete-task.ts +17 -0
  103. package/corpus/templates/tasks/actions/lib/boolean-query-param.ts +30 -0
  104. package/corpus/templates/tasks/actions/list-custom-fields.ts +18 -0
  105. package/corpus/templates/tasks/actions/list-inbox-items.ts +16 -0
  106. package/corpus/templates/tasks/actions/list-tasks.ts +52 -0
  107. package/corpus/templates/tasks/actions/list-visible-task-fields.ts +18 -0
  108. package/corpus/templates/tasks/actions/mark-inbox-item-ready.ts +31 -0
  109. package/corpus/templates/tasks/actions/navigate.ts +51 -0
  110. package/corpus/templates/tasks/actions/reorder-custom-fields.ts +27 -0
  111. package/corpus/templates/tasks/actions/reorder-inbox-items.ts +24 -0
  112. package/corpus/templates/tasks/actions/reorder-tasks.ts +29 -0
  113. package/corpus/templates/tasks/actions/run.ts +2 -0
  114. package/corpus/templates/tasks/actions/update-custom-field.ts +33 -0
  115. package/corpus/templates/tasks/actions/update-inbox-item.ts +24 -0
  116. package/corpus/templates/tasks/actions/update-task.ts +68 -0
  117. package/corpus/templates/tasks/actions/update-visible-task-fields.ts +27 -0
  118. package/corpus/templates/tasks/actions/view-screen-helpers.ts +68 -0
  119. package/corpus/templates/tasks/actions/view-screen.ts +207 -0
  120. package/corpus/templates/tasks/app/components/custom-fields/FieldCreateBar.tsx +121 -0
  121. package/corpus/templates/tasks/app/components/custom-fields/FieldListRow.tsx +116 -0
  122. package/corpus/templates/tasks/app/components/custom-fields/FieldsList.tsx +225 -0
  123. package/corpus/templates/tasks/app/components/custom-fields/FieldsListSkeleton.tsx +18 -0
  124. package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +42 -0
  125. package/corpus/templates/tasks/app/components/custom-fields/editor/FieldEditorSidebar.tsx +69 -0
  126. package/corpus/templates/tasks/app/components/custom-fields/editor/FieldTitleSection.tsx +32 -0
  127. package/corpus/templates/tasks/app/components/custom-fields/editor/config/CurrencyConfigControl.tsx +49 -0
  128. package/corpus/templates/tasks/app/components/custom-fields/editor/config/FieldConfigControl.tsx +56 -0
  129. package/corpus/templates/tasks/app/components/custom-fields/editor/config/NumberConfigControl.tsx +52 -0
  130. package/corpus/templates/tasks/app/components/custom-fields/editor/config/PercentConfigControl.tsx +30 -0
  131. package/corpus/templates/tasks/app/components/custom-fields/editor/config/SelectConfigControl.tsx +135 -0
  132. package/corpus/templates/tasks/app/components/custom-fields/editor/config/select-colors.ts +23 -0
  133. package/corpus/templates/tasks/app/components/custom-fields/editor/config/utils.ts +52 -0
  134. package/corpus/templates/tasks/app/components/custom-fields/editor/types.ts +7 -0
  135. package/corpus/templates/tasks/app/components/dnd/SortableItem.tsx +72 -0
  136. package/corpus/templates/tasks/app/components/dnd/SortableList.tsx +136 -0
  137. package/corpus/templates/tasks/app/components/dnd/reorder-moving-items.ts +160 -0
  138. package/corpus/templates/tasks/app/components/dnd/sortable-drag-props.ts +60 -0
  139. package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +222 -0
  140. package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +39 -0
  141. package/corpus/templates/tasks/app/components/inbox/InboxListRow.tsx +122 -0
  142. package/corpus/templates/tasks/app/components/layout/Header.tsx +55 -0
  143. package/corpus/templates/tasks/app/components/layout/HeaderActions.tsx +84 -0
  144. package/corpus/templates/tasks/app/components/layout/Layout.tsx +134 -0
  145. package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +211 -0
  146. package/corpus/templates/tasks/app/components/shared/AddListItemInput.tsx +57 -0
  147. package/corpus/templates/tasks/app/components/shared/AlertDialog.tsx +53 -0
  148. package/corpus/templates/tasks/app/components/shared/BulkDeleteDialog.tsx +76 -0
  149. package/corpus/templates/tasks/app/components/shared/ChipSelect.tsx +240 -0
  150. package/corpus/templates/tasks/app/components/shared/DeleteItemDialog.tsx +40 -0
  151. package/corpus/templates/tasks/app/components/shared/InlineEditable.tsx +166 -0
  152. package/corpus/templates/tasks/app/components/shared/ListEmptyState.tsx +13 -0
  153. package/corpus/templates/tasks/app/components/shared/ListErrorMessage.tsx +15 -0
  154. package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +75 -0
  155. package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +25 -0
  156. package/corpus/templates/tasks/app/components/shared/RowActionsMenu.tsx +42 -0
  157. package/corpus/templates/tasks/app/components/shared/SidePanel.tsx +99 -0
  158. package/corpus/templates/tasks/app/components/shared/dnd/ListRowPreview.tsx +37 -0
  159. package/corpus/templates/tasks/app/components/shared/list/List.tsx +63 -0
  160. package/corpus/templates/tasks/app/components/shared/list/ListRow.tsx +159 -0
  161. package/corpus/templates/tasks/app/components/shared/list/ListRowDragHandle.tsx +52 -0
  162. package/corpus/templates/tasks/app/components/shared/list/ListSkeletonRows.tsx +11 -0
  163. package/corpus/templates/tasks/app/components/shared/list/SortableListItemShell.tsx +32 -0
  164. package/corpus/templates/tasks/app/components/shared/list/types.ts +1 -0
  165. package/corpus/templates/tasks/app/components/shared/selection/ListSelectionBar.tsx +158 -0
  166. package/corpus/templates/tasks/app/components/shared/selection/ListSelectionHeaderToggle.tsx +28 -0
  167. package/corpus/templates/tasks/app/components/shared/selection/ListSelectionToolbar.tsx +81 -0
  168. package/corpus/templates/tasks/app/components/shared/selection/get-list-row-selection-ui.ts +41 -0
  169. package/corpus/templates/tasks/app/components/shared/selection/use-list-selection.ts +196 -0
  170. package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +333 -0
  171. package/corpus/templates/tasks/app/components/tasks/TaskListHeaderRow.tsx +46 -0
  172. package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +115 -0
  173. package/corpus/templates/tasks/app/components/tasks/TaskListRow.css +49 -0
  174. package/corpus/templates/tasks/app/components/tasks/TaskListRow.tsx +307 -0
  175. package/corpus/templates/tasks/app/components/tasks/fields/TaskFieldsSidebar.tsx +102 -0
  176. package/corpus/templates/tasks/app/components/tasks/fields/TaskTitleSection.tsx +27 -0
  177. package/corpus/templates/tasks/app/components/tasks/fields/controls/DateValueControl.tsx +21 -0
  178. package/corpus/templates/tasks/app/components/tasks/fields/controls/FieldValueControl.tsx +76 -0
  179. package/corpus/templates/tasks/app/components/tasks/fields/controls/MultiSelectValueControl.tsx +52 -0
  180. package/corpus/templates/tasks/app/components/tasks/fields/controls/NumberValueControl.tsx +56 -0
  181. package/corpus/templates/tasks/app/components/tasks/fields/controls/RichTextValueControl.tsx +115 -0
  182. package/corpus/templates/tasks/app/components/tasks/fields/controls/SingleSelectValueControl.tsx +61 -0
  183. package/corpus/templates/tasks/app/components/tasks/fields/controls/TextValueControl.tsx +20 -0
  184. package/corpus/templates/tasks/app/components/tasks/use-task-row-completion-animation.ts +181 -0
  185. package/corpus/templates/tasks/app/components/ui/accordion.tsx +56 -0
  186. package/corpus/templates/tasks/app/components/ui/alert-dialog.tsx +1 -0
  187. package/corpus/templates/tasks/app/components/ui/alert.tsx +1 -0
  188. package/corpus/templates/tasks/app/components/ui/aspect-ratio.tsx +5 -0
  189. package/corpus/templates/tasks/app/components/ui/avatar.tsx +1 -0
  190. package/corpus/templates/tasks/app/components/ui/badge.tsx +1 -0
  191. package/corpus/templates/tasks/app/components/ui/breadcrumb.tsx +115 -0
  192. package/corpus/templates/tasks/app/components/ui/button.tsx +1 -0
  193. package/corpus/templates/tasks/app/components/ui/calendar.tsx +70 -0
  194. package/corpus/templates/tasks/app/components/ui/card.tsx +1 -0
  195. package/corpus/templates/tasks/app/components/ui/carousel.tsx +260 -0
  196. package/corpus/templates/tasks/app/components/ui/chart.tsx +379 -0
  197. package/corpus/templates/tasks/app/components/ui/checkbox.tsx +1 -0
  198. package/corpus/templates/tasks/app/components/ui/collapsible.tsx +1 -0
  199. package/corpus/templates/tasks/app/components/ui/command.tsx +1 -0
  200. package/corpus/templates/tasks/app/components/ui/context-menu.tsx +1 -0
  201. package/corpus/templates/tasks/app/components/ui/dialog.tsx +1 -0
  202. package/corpus/templates/tasks/app/components/ui/drawer.tsx +1 -0
  203. package/corpus/templates/tasks/app/components/ui/dropdown-menu.tsx +1 -0
  204. package/corpus/templates/tasks/app/components/ui/form.tsx +177 -0
  205. package/corpus/templates/tasks/app/components/ui/hover-card.tsx +27 -0
  206. package/corpus/templates/tasks/app/components/ui/input-otp.tsx +69 -0
  207. package/corpus/templates/tasks/app/components/ui/input.tsx +1 -0
  208. package/corpus/templates/tasks/app/components/ui/label.tsx +1 -0
  209. package/corpus/templates/tasks/app/components/ui/menubar.tsx +254 -0
  210. package/corpus/templates/tasks/app/components/ui/navigation-menu.tsx +128 -0
  211. package/corpus/templates/tasks/app/components/ui/pagination.tsx +121 -0
  212. package/corpus/templates/tasks/app/components/ui/popover.tsx +1 -0
  213. package/corpus/templates/tasks/app/components/ui/progress.tsx +1 -0
  214. package/corpus/templates/tasks/app/components/ui/radio-group.tsx +1 -0
  215. package/corpus/templates/tasks/app/components/ui/resizable.tsx +43 -0
  216. package/corpus/templates/tasks/app/components/ui/scroll-area.tsx +1 -0
  217. package/corpus/templates/tasks/app/components/ui/select.tsx +1 -0
  218. package/corpus/templates/tasks/app/components/ui/separator.tsx +1 -0
  219. package/corpus/templates/tasks/app/components/ui/sheet.tsx +1 -0
  220. package/corpus/templates/tasks/app/components/ui/sidebar.tsx +782 -0
  221. package/corpus/templates/tasks/app/components/ui/skeleton.tsx +1 -0
  222. package/corpus/templates/tasks/app/components/ui/slider.tsx +1 -0
  223. package/corpus/templates/tasks/app/components/ui/sonner.tsx +1 -0
  224. package/corpus/templates/tasks/app/components/ui/spinner.tsx +1 -0
  225. package/corpus/templates/tasks/app/components/ui/switch.tsx +1 -0
  226. package/corpus/templates/tasks/app/components/ui/table.tsx +1 -0
  227. package/corpus/templates/tasks/app/components/ui/tabs.tsx +1 -0
  228. package/corpus/templates/tasks/app/components/ui/textarea.tsx +1 -0
  229. package/corpus/templates/tasks/app/components/ui/toast.tsx +1 -0
  230. package/corpus/templates/tasks/app/components/ui/toaster.tsx +1 -0
  231. package/corpus/templates/tasks/app/components/ui/toggle-group.tsx +1 -0
  232. package/corpus/templates/tasks/app/components/ui/toggle.tsx +43 -0
  233. package/corpus/templates/tasks/app/components/ui/tooltip.tsx +1 -0
  234. package/corpus/templates/tasks/app/components/ui/use-toast.ts +3 -0
  235. package/corpus/templates/tasks/app/entry.client.tsx +19 -0
  236. package/corpus/templates/tasks/app/entry.server.tsx +10 -0
  237. package/corpus/templates/tasks/app/global.css +93 -0
  238. package/corpus/templates/tasks/app/hooks/cache.ts +31 -0
  239. package/corpus/templates/tasks/app/hooks/use-custom-fields.ts +93 -0
  240. package/corpus/templates/tasks/app/hooks/use-inbox-items.ts +196 -0
  241. package/corpus/templates/tasks/app/hooks/use-mobile.tsx +21 -0
  242. package/corpus/templates/tasks/app/hooks/use-navigation-state.ts +40 -0
  243. package/corpus/templates/tasks/app/hooks/use-tasks.ts +276 -0
  244. package/corpus/templates/tasks/app/hooks/use-toast.ts +188 -0
  245. package/corpus/templates/tasks/app/hooks/use-visible-task-fields.ts +140 -0
  246. package/corpus/templates/tasks/app/lib/app-config.ts +11 -0
  247. package/corpus/templates/tasks/app/lib/tab-id.ts +1 -0
  248. package/corpus/templates/tasks/app/lib/utils.ts +1 -0
  249. package/corpus/templates/tasks/app/root.tsx +130 -0
  250. package/corpus/templates/tasks/app/routes/_index.tsx +22 -0
  251. package/corpus/templates/tasks/app/routes/extensions.$id.$slug.tsx +2 -0
  252. package/corpus/templates/tasks/app/routes/extensions.$id.tsx +11 -0
  253. package/corpus/templates/tasks/app/routes/extensions._index.tsx +11 -0
  254. package/corpus/templates/tasks/app/routes/extensions.tsx +5 -0
  255. package/corpus/templates/tasks/app/routes/fields.tsx +16 -0
  256. package/corpus/templates/tasks/app/routes/inbox.tsx +16 -0
  257. package/corpus/templates/tasks/app/routes/tasks.tsx +17 -0
  258. package/corpus/templates/tasks/app/routes/team.tsx +17 -0
  259. package/corpus/templates/tasks/app/routes.ts +4 -0
  260. package/corpus/templates/tasks/app/vite-env.d.ts +6 -0
  261. package/corpus/templates/tasks/components.json +20 -0
  262. package/corpus/templates/tasks/data/sync-config.json +1 -0
  263. package/corpus/templates/tasks/docs/features/README.md +81 -0
  264. package/corpus/templates/tasks/docs/features/f1-tasks.mdx +67 -0
  265. package/corpus/templates/tasks/docs/features/f2-custom-fields.mdx +68 -0
  266. package/corpus/templates/tasks/docs/features/f3-projects.mdx +33 -0
  267. package/corpus/templates/tasks/docs/features/f4-inbox.mdx +55 -0
  268. package/corpus/templates/tasks/docs/features/f5-views.mdx +65 -0
  269. package/corpus/templates/tasks/docs/features/f6-search.mdx +43 -0
  270. package/corpus/templates/tasks/docs/features/f7-first-run.mdx +66 -0
  271. package/corpus/templates/tasks/docs/features/f8-chat.mdx +120 -0
  272. package/corpus/templates/tasks/e2e/global-setup.ts +42 -0
  273. package/corpus/templates/tasks/e2e/helpers/inbox.ts +71 -0
  274. package/corpus/templates/tasks/e2e/helpers/tasks.ts +99 -0
  275. package/corpus/templates/tasks/learnings.defaults.md +5 -0
  276. package/corpus/templates/tasks/netlify.toml +10 -0
  277. package/corpus/templates/tasks/package.json +104 -0
  278. package/corpus/templates/tasks/playwright.config.ts +34 -0
  279. package/corpus/templates/tasks/public/agent-native-icon-dark.svg +10 -0
  280. package/corpus/templates/tasks/public/agent-native-icon-light.svg +10 -0
  281. package/corpus/templates/tasks/public/agent-native-logo-dark.svg +21 -0
  282. package/corpus/templates/tasks/public/agent-native-logo-light.svg +21 -0
  283. package/corpus/templates/tasks/public/favicon.svg +1 -0
  284. package/corpus/templates/tasks/public/icon-180.svg +1 -0
  285. package/corpus/templates/tasks/public/icon-192.svg +1 -0
  286. package/corpus/templates/tasks/public/icon-512.svg +1 -0
  287. package/corpus/templates/tasks/public/manifest.json +21 -0
  288. package/corpus/templates/tasks/react-router.config.ts +7 -0
  289. package/corpus/templates/tasks/server/custom-fields/normalize.ts +163 -0
  290. package/corpus/templates/tasks/server/custom-fields/parse.ts +146 -0
  291. package/corpus/templates/tasks/server/custom-fields/schema.ts +147 -0
  292. package/corpus/templates/tasks/server/custom-fields/store.ts +425 -0
  293. package/corpus/templates/tasks/server/custom-fields/task-fields.ts +104 -0
  294. package/corpus/templates/tasks/server/custom-fields/types.ts +98 -0
  295. package/corpus/templates/tasks/server/custom-fields/validate.ts +210 -0
  296. package/corpus/templates/tasks/server/custom-fields/values/store.ts +386 -0
  297. package/corpus/templates/tasks/server/db/bulk-write.ts +30 -0
  298. package/corpus/templates/tasks/server/db/index.ts +5 -0
  299. package/corpus/templates/tasks/server/db/record-utils.ts +7 -0
  300. package/corpus/templates/tasks/server/db/schema.ts +67 -0
  301. package/corpus/templates/tasks/server/db/test-tasks-table.ts +76 -0
  302. package/corpus/templates/tasks/server/db/transaction.ts +6 -0
  303. package/corpus/templates/tasks/server/errors.ts +31 -0
  304. package/corpus/templates/tasks/server/inbox/store.ts +216 -0
  305. package/corpus/templates/tasks/server/middleware/auth.ts +15 -0
  306. package/corpus/templates/tasks/server/plugins/agent-chat.ts +46 -0
  307. package/corpus/templates/tasks/server/plugins/auth.ts +15 -0
  308. package/corpus/templates/tasks/server/plugins/db.ts +90 -0
  309. package/corpus/templates/tasks/server/routes/[...page].get.ts +5 -0
  310. package/corpus/templates/tasks/server/stored-items/store.ts +548 -0
  311. package/corpus/templates/tasks/server/tasks/store.ts +306 -0
  312. package/corpus/templates/tasks/server/user-config/store.ts +138 -0
  313. package/corpus/templates/tasks/shared/app-state-tabs.ts +15 -0
  314. package/corpus/templates/tasks/shared/boolean-param.ts +22 -0
  315. package/corpus/templates/tasks/shared/bulk-limits.ts +7 -0
  316. package/corpus/templates/tasks/shared/list-screen-snapshot.ts +90 -0
  317. package/corpus/templates/tasks/shared/navigation.ts +104 -0
  318. package/corpus/templates/tasks/shared/visible-task-fields.ts +2 -0
  319. package/corpus/templates/tasks/ssr-entry.ts +15 -0
  320. package/corpus/templates/tasks/tsconfig.json +24 -0
  321. package/corpus/templates/tasks/vite.config.ts +19 -0
  322. package/corpus/templates/tasks/vitest.config.ts +8 -0
  323. package/dist/cli/create.d.ts +5 -2
  324. package/dist/cli/create.d.ts.map +1 -1
  325. package/dist/cli/create.js +22 -11
  326. package/dist/cli/create.js.map +1 -1
  327. package/dist/cli/templates-meta.d.ts.map +1 -1
  328. package/dist/cli/templates-meta.js +13 -0
  329. package/dist/cli/templates-meta.js.map +1 -1
  330. package/dist/client/AgentPanel.d.ts +2 -0
  331. package/dist/client/AgentPanel.d.ts.map +1 -1
  332. package/dist/client/AgentPanel.js +24 -13
  333. package/dist/client/AgentPanel.js.map +1 -1
  334. package/dist/client/chat/message-components.d.ts.map +1 -1
  335. package/dist/client/chat/message-components.js +1 -1
  336. package/dist/client/chat/message-components.js.map +1 -1
  337. package/dist/client/chat/tool-call-display.d.ts +3 -1
  338. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  339. package/dist/client/chat/tool-call-display.js +6 -5
  340. package/dist/client/chat/tool-call-display.js.map +1 -1
  341. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  342. package/dist/client/org/OrgSwitcher.js +2 -1
  343. package/dist/client/org/OrgSwitcher.js.map +1 -1
  344. package/dist/collab/struct-routes.d.ts +1 -1
  345. package/dist/templates/chat/.agents/skills/actions/SKILL.md +492 -0
  346. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +189 -0
  347. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +76 -0
  348. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +89 -0
  349. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +221 -0
  350. package/dist/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  351. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +112 -0
  352. package/dist/templates/chat/.agents/skills/real-time-sync/SKILL.md +232 -0
  353. package/dist/templates/chat/.agents/skills/security/SKILL.md +280 -0
  354. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +106 -0
  355. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +95 -0
  356. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +87 -0
  357. package/dist/templates/chat/.env.example +5 -0
  358. package/dist/templates/chat/.ignore +0 -0
  359. package/dist/templates/chat/.oxfmtrc.json +8 -0
  360. package/dist/templates/chat/.react-router/types/+server-build.d.ts +18 -0
  361. package/dist/templates/chat/.react-router/types/app/+types/root.ts +68 -0
  362. package/dist/templates/chat/AGENTS.md +62 -0
  363. package/dist/templates/chat/CHANGELOG.md +10 -0
  364. package/dist/templates/chat/DEVELOPING.md +185 -0
  365. package/dist/templates/chat/README.md +32 -0
  366. package/dist/templates/chat/_gitignore +43 -0
  367. package/dist/templates/chat/actions/hello.ts +13 -0
  368. package/dist/templates/chat/actions/navigate.ts +41 -0
  369. package/dist/templates/chat/actions/run.ts +2 -0
  370. package/dist/templates/chat/actions/view-screen.ts +31 -0
  371. package/dist/templates/chat/app/components/layout/Header.tsx +59 -0
  372. package/dist/templates/chat/app/components/layout/Layout.tsx +184 -0
  373. package/dist/templates/chat/app/components/layout/Sidebar.tsx +580 -0
  374. package/dist/templates/chat/app/components/ui/button.tsx +1 -0
  375. package/dist/templates/chat/app/components/ui/card.tsx +1 -0
  376. package/dist/templates/chat/app/components/ui/dropdown-menu.tsx +1 -0
  377. package/dist/templates/chat/app/components/ui/input.tsx +1 -0
  378. package/dist/templates/chat/app/components/ui/label.tsx +1 -0
  379. package/dist/templates/chat/app/components/ui/sheet.tsx +1 -0
  380. package/dist/templates/chat/app/components/ui/toolkit-provider.tsx +12 -0
  381. package/dist/templates/chat/app/components/ui/tooltip.tsx +1 -0
  382. package/dist/templates/chat/app/entry.client.tsx +19 -0
  383. package/dist/templates/chat/app/entry.server.tsx +10 -0
  384. package/dist/templates/chat/app/global.css +93 -0
  385. package/dist/templates/chat/app/hooks/use-navigation-state.ts +111 -0
  386. package/dist/templates/chat/app/i18n/ar-SA.ts +68 -0
  387. package/dist/templates/chat/app/i18n/de-DE.ts +71 -0
  388. package/dist/templates/chat/app/i18n/en-US.ts +70 -0
  389. package/dist/templates/chat/app/i18n/es-ES.ts +71 -0
  390. package/dist/templates/chat/app/i18n/fr-FR.ts +71 -0
  391. package/dist/templates/chat/app/i18n/hi-IN.ts +69 -0
  392. package/dist/templates/chat/app/i18n/index.ts +34 -0
  393. package/dist/templates/chat/app/i18n/ja-JP.ts +70 -0
  394. package/dist/templates/chat/app/i18n/ko-KR.ts +70 -0
  395. package/dist/templates/chat/app/i18n/pt-BR.ts +71 -0
  396. package/dist/templates/chat/app/i18n/zh-CN.ts +67 -0
  397. package/dist/templates/chat/app/i18n/zh-TW.ts +67 -0
  398. package/dist/templates/chat/app/i18n-data.ts +556 -0
  399. package/dist/templates/chat/app/lib/agent-page.tsx +40 -0
  400. package/dist/templates/chat/app/lib/app-config.ts +11 -0
  401. package/dist/templates/chat/app/lib/tab-id.ts +1 -0
  402. package/dist/templates/chat/app/lib/utils.ts +1 -0
  403. package/dist/templates/chat/app/root.tsx +172 -0
  404. package/dist/templates/chat/app/routes/_index.tsx +91 -0
  405. package/dist/templates/chat/app/routes/agent.tsx +17 -0
  406. package/dist/templates/chat/app/routes/chat.$threadId.tsx +1 -0
  407. package/dist/templates/chat/app/routes/database.tsx +17 -0
  408. package/dist/templates/chat/app/routes/extensions.$id.$slug.tsx +2 -0
  409. package/dist/templates/chat/app/routes/extensions.$id.tsx +11 -0
  410. package/dist/templates/chat/app/routes/extensions._index.tsx +11 -0
  411. package/dist/templates/chat/app/routes/extensions.tsx +5 -0
  412. package/dist/templates/chat/app/routes/observability.tsx +18 -0
  413. package/dist/templates/chat/app/routes/settings.tsx +88 -0
  414. package/dist/templates/chat/app/routes/team.tsx +11 -0
  415. package/dist/templates/chat/app/routes.ts +4 -0
  416. package/dist/templates/chat/app/vite-env.d.ts +6 -0
  417. package/dist/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  418. package/dist/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  419. package/dist/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  420. package/dist/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  421. package/dist/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
  422. package/dist/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  423. package/dist/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  424. package/dist/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
  425. package/dist/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
  426. package/dist/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  427. package/dist/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  428. package/dist/templates/chat/components.json +20 -0
  429. package/dist/templates/chat/data/.gitkeep +0 -0
  430. package/dist/templates/chat/data/sync-config.json +1 -0
  431. package/dist/templates/chat/learnings.defaults.md +5 -0
  432. package/dist/templates/chat/netlify.toml +10 -0
  433. package/dist/templates/chat/package.json +92 -0
  434. package/dist/templates/chat/public/agent-native-icon-dark.svg +10 -0
  435. package/dist/templates/chat/public/agent-native-icon-light.svg +10 -0
  436. package/dist/templates/chat/public/agent-native-logo-dark.svg +21 -0
  437. package/dist/templates/chat/public/agent-native-logo-light.svg +21 -0
  438. package/dist/templates/chat/public/favicon.svg +1 -0
  439. package/dist/templates/chat/public/icon-180.svg +1 -0
  440. package/dist/templates/chat/public/icon-192.svg +1 -0
  441. package/dist/templates/chat/public/icon-512.svg +1 -0
  442. package/dist/templates/chat/public/manifest.json +21 -0
  443. package/dist/templates/chat/react-router.config.ts +7 -0
  444. package/dist/templates/chat/server/middleware/auth.ts +15 -0
  445. package/dist/templates/chat/server/plugins/agent-chat.ts +21 -0
  446. package/dist/templates/chat/server/plugins/auth.ts +17 -0
  447. package/dist/templates/chat/server/routes/[...page].get.ts +5 -0
  448. package/dist/templates/chat/ssr-entry.ts +15 -0
  449. package/dist/templates/chat/tsconfig.json +21 -0
  450. package/dist/templates/chat/vite.config.ts +19 -0
  451. package/package.json +2 -1
  452. package/src/templates/chat/.agents/skills/actions/SKILL.md +492 -0
  453. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +189 -0
  454. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +76 -0
  455. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +89 -0
  456. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +221 -0
  457. package/src/templates/chat/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  458. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +112 -0
  459. package/src/templates/chat/.agents/skills/real-time-sync/SKILL.md +232 -0
  460. package/src/templates/chat/.agents/skills/security/SKILL.md +280 -0
  461. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +106 -0
  462. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +95 -0
  463. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +87 -0
  464. package/src/templates/chat/.env.example +5 -0
  465. package/src/templates/chat/.ignore +0 -0
  466. package/src/templates/chat/.oxfmtrc.json +8 -0
  467. package/src/templates/chat/.react-router/types/+server-build.d.ts +18 -0
  468. package/src/templates/chat/.react-router/types/app/+types/root.ts +68 -0
  469. package/src/templates/chat/AGENTS.md +62 -0
  470. package/src/templates/chat/CHANGELOG.md +10 -0
  471. package/src/templates/chat/DEVELOPING.md +185 -0
  472. package/src/templates/chat/README.md +32 -0
  473. package/src/templates/chat/_gitignore +43 -0
  474. package/src/templates/chat/actions/hello.spec.ts +23 -0
  475. package/src/templates/chat/actions/hello.ts +13 -0
  476. package/src/templates/chat/actions/navigate.spec.ts +68 -0
  477. package/src/templates/chat/actions/navigate.ts +41 -0
  478. package/src/templates/chat/actions/run.ts +2 -0
  479. package/src/templates/chat/actions/view-screen.spec.ts +40 -0
  480. package/src/templates/chat/actions/view-screen.ts +31 -0
  481. package/src/templates/chat/app/components/layout/Header.tsx +59 -0
  482. package/src/templates/chat/app/components/layout/Layout.tsx +184 -0
  483. package/src/templates/chat/app/components/layout/Sidebar.tsx +580 -0
  484. package/src/templates/chat/app/components/ui/button.tsx +1 -0
  485. package/src/templates/chat/app/components/ui/card.tsx +1 -0
  486. package/src/templates/chat/app/components/ui/dropdown-menu.tsx +1 -0
  487. package/src/templates/chat/app/components/ui/input.tsx +1 -0
  488. package/src/templates/chat/app/components/ui/label.tsx +1 -0
  489. package/src/templates/chat/app/components/ui/sheet.tsx +1 -0
  490. package/src/templates/chat/app/components/ui/toolkit-provider.tsx +12 -0
  491. package/src/templates/chat/app/components/ui/tooltip.tsx +1 -0
  492. package/src/templates/chat/app/entry.client.tsx +19 -0
  493. package/src/templates/chat/app/entry.server.tsx +10 -0
  494. package/src/templates/chat/app/global.css +93 -0
  495. package/src/templates/chat/app/hooks/use-navigation-state.ts +111 -0
  496. package/src/templates/chat/app/i18n/ar-SA.ts +68 -0
  497. package/src/templates/chat/app/i18n/de-DE.ts +71 -0
  498. package/src/templates/chat/app/i18n/en-US.ts +70 -0
  499. package/src/templates/chat/app/i18n/es-ES.ts +71 -0
  500. package/src/templates/chat/app/i18n/fr-FR.ts +71 -0
  501. package/src/templates/chat/app/i18n/hi-IN.ts +69 -0
  502. package/src/templates/chat/app/i18n/index.ts +34 -0
  503. package/src/templates/chat/app/i18n/ja-JP.ts +70 -0
  504. package/src/templates/chat/app/i18n/ko-KR.ts +70 -0
  505. package/src/templates/chat/app/i18n/pt-BR.ts +71 -0
  506. package/src/templates/chat/app/i18n/zh-CN.ts +67 -0
  507. package/src/templates/chat/app/i18n/zh-TW.ts +67 -0
  508. package/src/templates/chat/app/i18n-data.ts +556 -0
  509. package/src/templates/chat/app/lib/agent-page.spec.tsx +52 -0
  510. package/src/templates/chat/app/lib/agent-page.tsx +40 -0
  511. package/src/templates/chat/app/lib/app-config.ts +11 -0
  512. package/src/templates/chat/app/lib/tab-id.ts +1 -0
  513. package/src/templates/chat/app/lib/utils.ts +1 -0
  514. package/src/templates/chat/app/root.tsx +172 -0
  515. package/src/templates/chat/app/routes/_index.tsx +91 -0
  516. package/src/templates/chat/app/routes/agent.tsx +17 -0
  517. package/src/templates/chat/app/routes/chat.$threadId.tsx +1 -0
  518. package/src/templates/chat/app/routes/database.tsx +17 -0
  519. package/src/templates/chat/app/routes/extensions.$id.$slug.tsx +2 -0
  520. package/src/templates/chat/app/routes/extensions.$id.tsx +11 -0
  521. package/src/templates/chat/app/routes/extensions._index.tsx +11 -0
  522. package/src/templates/chat/app/routes/extensions.tsx +5 -0
  523. package/src/templates/chat/app/routes/observability.tsx +18 -0
  524. package/src/templates/chat/app/routes/settings.tsx +88 -0
  525. package/src/templates/chat/app/routes/team.tsx +11 -0
  526. package/src/templates/chat/app/routes.ts +4 -0
  527. package/src/templates/chat/app/vite-env.d.ts +6 -0
  528. package/src/templates/chat/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  529. package/src/templates/chat/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  530. package/src/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  531. package/src/templates/chat/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  532. package/src/templates/chat/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
  533. package/src/templates/chat/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  534. package/src/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  535. package/src/templates/chat/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
  536. package/src/templates/chat/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
  537. package/src/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  538. package/src/templates/chat/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  539. package/src/templates/chat/components.json +20 -0
  540. package/src/templates/chat/data/.gitkeep +0 -0
  541. package/src/templates/chat/data/sync-config.json +1 -0
  542. package/src/templates/chat/learnings.defaults.md +5 -0
  543. package/src/templates/chat/netlify.toml +10 -0
  544. package/src/templates/chat/package.json +92 -0
  545. package/src/templates/chat/public/agent-native-icon-dark.svg +10 -0
  546. package/src/templates/chat/public/agent-native-icon-light.svg +10 -0
  547. package/src/templates/chat/public/agent-native-logo-dark.svg +21 -0
  548. package/src/templates/chat/public/agent-native-logo-light.svg +21 -0
  549. package/src/templates/chat/public/favicon.svg +1 -0
  550. package/src/templates/chat/public/icon-180.svg +1 -0
  551. package/src/templates/chat/public/icon-192.svg +1 -0
  552. package/src/templates/chat/public/icon-512.svg +1 -0
  553. package/src/templates/chat/public/manifest.json +21 -0
  554. package/src/templates/chat/react-router.config.ts +7 -0
  555. package/src/templates/chat/server/middleware/auth.ts +15 -0
  556. package/src/templates/chat/server/plugins/agent-chat.ts +21 -0
  557. package/src/templates/chat/server/plugins/auth.ts +17 -0
  558. package/src/templates/chat/server/routes/[...page].get.ts +5 -0
  559. package/src/templates/chat/ssr-entry.ts +15 -0
  560. package/src/templates/chat/tsconfig.json +21 -0
  561. package/src/templates/chat/vite.config.ts +19 -0
package/corpus/README.md CHANGED
@@ -28,4 +28,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
28
28
  ## Generated Counts
29
29
 
30
30
  - core files: 2258
31
- - template files: 5675
31
+ - template files: 5962
@@ -1,5 +1,18 @@
1
1
  # @agent-native/core
2
2
 
3
+ ## 0.102.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6498492: Add the Tasks template app — a task-list-first agent-native workspace with inbox triage, custom fields, and full action parity for UI and agent.
8
+
9
+ ## 0.101.14
10
+
11
+ ### Patch Changes
12
+
13
+ - 866d8f0: Bundle the Chat template in the CLI package and download GitHub fallbacks directly from codeload for faster, more reliable scaffolding.
14
+ - 866d8f0: Polish the chat sidebar header by hiding mode tabs and moving full-view navigation into the icon row.
15
+
3
16
  ## 0.101.13
4
17
 
5
18
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.101.13",
3
+ "version": "0.102.0",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -24,6 +24,7 @@
24
24
  "tsconfig.base.json",
25
25
  "src/templates/default",
26
26
  "src/templates/headless",
27
+ "src/templates/chat",
27
28
  "src/templates/workspace-core",
28
29
  "src/templates/workspace-root"
29
30
  ],
@@ -249,7 +250,8 @@
249
250
  "dev": "tsc --watch",
250
251
  "typecheck": "tsc --noEmit",
251
252
  "test": "vitest --run src --maxWorkers=25%",
252
- "prepack": "tsx ../../scripts/sync-workspace-core-skills.ts --check && npm run build && cp ../../README.md ./README.md",
253
+ "prepack": "tsx ../../scripts/sync-core-first-party-templates.ts && tsx ../../scripts/sync-workspace-core-skills.ts --check && npm run build && cp ../../README.md ./README.md",
254
+ "postpack": "tsx ../../scripts/sync-core-first-party-templates.ts --clean",
253
255
  "prepublishOnly": "npm run build"
254
256
  },
255
257
  "dependencies": {
@@ -785,7 +785,8 @@ function cleanupOnFailure(targetDir: string): void {
785
785
  * Scaffold a single app template into `targetDir`. Resolves:
786
786
  * - "headless" / legacy "blank" → bundled action-first template
787
787
  * - "github:user/repo" → download the whole repo
788
- * - first-party template name → download that subdir from BuilderIO/agent-native
788
+ * - first-party template name → use a bundled copy or download its subdir
789
+ * from BuilderIO/agent-native
789
790
  */
790
791
  async function scaffoldAppTemplate(
791
792
  targetDir: string,
@@ -842,15 +843,26 @@ function templateSourceName(name: string): string {
842
843
  }
843
844
 
844
845
  /**
845
- * When developing the framework itself, prefer the sibling templates/<name>
846
- * directory. Returns undefined when running as a published package.
846
+ * Prefer a nearby templates/<name> or src/templates/<name> directory. This
847
+ * covers the framework checkout, the dist/templates copy bundled into
848
+ * published CLI packages, and source templates included in package files;
849
+ * packages that do not bundle a template fall back to GitHub.
847
850
  */
848
851
  function findLocalTemplate(name: string): string | undefined {
849
- let dir = path.resolve(__dirname);
852
+ return findLocalTemplateFrom(path.resolve(__dirname), name);
853
+ }
854
+
855
+ function findLocalTemplateFrom(
856
+ startDir: string,
857
+ name: string,
858
+ ): string | undefined {
859
+ let dir = path.resolve(startDir);
850
860
  for (let i = 0; i < 10; i++) {
851
- const candidate = path.join(dir, "templates", name);
852
- if (fs.existsSync(path.join(candidate, "package.json"))) {
853
- return candidate;
861
+ for (const templatesDir of ["templates", "src/templates"]) {
862
+ const candidate = path.join(dir, templatesDir, name);
863
+ if (fs.existsSync(path.join(candidate, "package.json"))) {
864
+ return candidate;
865
+ }
854
866
  }
855
867
  const parent = path.dirname(dir);
856
868
  if (parent === dir) break;
@@ -1332,6 +1344,8 @@ export {
1332
1344
  getToolkitDependencyVersion as _getToolkitDependencyVersion,
1333
1345
  getGitHubTemplateRef as _getGitHubTemplateRef,
1334
1346
  getGitHubTemplateRefCandidates as _getGitHubTemplateRefCandidates,
1347
+ githubTarballUrl as _githubTarballUrl,
1348
+ findLocalTemplateFrom as _findLocalTemplateFrom,
1335
1349
  workspaceAppNameForTemplateSelection as _workspaceAppNameForTemplateSelection,
1336
1350
  shouldSkipScaffoldEntry as _shouldSkipScaffoldEntry,
1337
1351
  tarExtractArgs as _tarExtractArgs,
@@ -1405,7 +1419,7 @@ async function downloadAndExtract(
1405
1419
  "10",
1406
1420
  "--max-time",
1407
1421
  "120",
1408
- "-sL",
1422
+ "-sSL",
1409
1423
  url,
1410
1424
  ],
1411
1425
  { maxBuffer: 100 * 1024 * 1024 },
@@ -1435,7 +1449,7 @@ async function downloadGitHubSubdir(
1435
1449
  }
1436
1450
  const errors: string[] = [];
1437
1451
  for (const ref of refs) {
1438
- const tarUrl = `https://api.github.com/repos/${repo}/tarball/${encodeURIComponent(ref)}`;
1452
+ const tarUrl = githubTarballUrl(repo, ref, "tag");
1439
1453
  const tmpDir = path.join(
1440
1454
  targetDir,
1441
1455
  "..",
@@ -1471,10 +1485,18 @@ async function downloadGitHubRepo(
1471
1485
  targetDir: string,
1472
1486
  ): Promise<void> {
1473
1487
  validateRepoName(repo);
1474
- const tarUrl = `https://api.github.com/repos/${repo}/tarball/main`;
1488
+ const tarUrl = githubTarballUrl(repo, "main", "branch");
1475
1489
  await downloadAndExtract(tarUrl, targetDir);
1476
1490
  }
1477
1491
 
1492
+ function githubTarballUrl(
1493
+ repo: string,
1494
+ ref: string,
1495
+ kind: "branch" | "tag",
1496
+ ): string {
1497
+ return `https://codeload.github.com/${repo}/tar.gz/refs/${kind === "tag" ? "tags" : "heads"}/${encodeURIComponent(ref)}`;
1498
+ }
1499
+
1478
1500
  /* ─────────────────────────────────────────────────────────────────────────
1479
1501
  * Text / filesystem helpers
1480
1502
  * ───────────────────────────────────────────────────────────────────────── */
@@ -214,6 +214,19 @@ export const TEMPLATES: TemplateMeta[] = [
214
214
  requiredPackages: ["embedding"],
215
215
  core: true,
216
216
  },
217
+ {
218
+ name: "tasks",
219
+ label: "Tasks",
220
+ hint: "Task-list-first workspace — inbox capture, custom fields, and drag-and-drop ordering",
221
+ icon: "ListCheck",
222
+ color: "#6366F1",
223
+ colorRgb: "99 102 241",
224
+ devPort: 8091,
225
+ prodUrl: "https://tasks.agent-native.com",
226
+ defaultMode: "prod",
227
+ hidden: true,
228
+ core: false,
229
+ },
217
230
  {
218
231
  name: "macros",
219
232
  label: "Macros",
@@ -437,6 +437,19 @@ export function shouldShowAgentPanelCliTabBar(cliTabs: string[]) {
437
437
  return cliTabs.length > 1;
438
438
  }
439
439
 
440
+ export function shouldShowAgentPanelModeButtons(isSidebar: boolean) {
441
+ return !isSidebar;
442
+ }
443
+
444
+ export function shouldShowAgentPanelFullViewAction(
445
+ agentPageHref: string | undefined,
446
+ mode: PanelMode,
447
+ ) {
448
+ return (
449
+ Boolean(agentPageHref) && (mode === "resources" || mode === "settings")
450
+ );
451
+ }
452
+
440
453
  // ─── AgentPanel ─────────────────────────────────────────────────────────────
441
454
 
442
455
  export interface AgentPanelCodeAccess {
@@ -1171,33 +1184,34 @@ function AgentPanelInner({
1171
1184
  | "toggleHistory"
1172
1185
  > & { activeChatSessionId?: string }) => (
1173
1186
  <div className="relative flex shrink-0 items-center gap-0.5">
1174
- {SHOW_ONBOARDING && (
1187
+ {!onCollapse && SHOW_ONBOARDING && (
1175
1188
  <Suspense fallback={null}>
1176
1189
  <SetupButton />
1177
1190
  </Suspense>
1178
1191
  )}
1179
- {(() => {
1180
- const activeTab =
1181
- mode === "chat" && activeChatSessionId
1182
- ? tabs.find((tab) => tab.id === activeChatSessionId)
1183
- : undefined;
1184
- if (
1185
- !activeTab ||
1186
- (activeTabMessageCount <= 0 && activeTab.status === "idle")
1187
- ) {
1188
- return null;
1189
- }
1190
- return (
1191
- <ShareButton
1192
- resourceType="chat_thread"
1193
- resourceId={activeTab.id}
1194
- resourceTitle={activeTab.label || "Chat"}
1195
- shareUrl={getChatThreadShareUrl(activeTab.id)}
1196
- trigger="icon"
1197
- triggerClassName="h-7 w-7"
1198
- />
1199
- );
1200
- })()}
1192
+ {!onCollapse &&
1193
+ (() => {
1194
+ const activeTab =
1195
+ mode === "chat" && activeChatSessionId
1196
+ ? tabs.find((tab) => tab.id === activeChatSessionId)
1197
+ : undefined;
1198
+ if (
1199
+ !activeTab ||
1200
+ (activeTabMessageCount <= 0 && activeTab.status === "idle")
1201
+ ) {
1202
+ return null;
1203
+ }
1204
+ return (
1205
+ <ShareButton
1206
+ resourceType="chat_thread"
1207
+ resourceId={activeTab.id}
1208
+ resourceTitle={activeTab.label || "Chat"}
1209
+ shareUrl={getChatThreadShareUrl(activeTab.id)}
1210
+ trigger="icon"
1211
+ triggerClassName="h-7 w-7"
1212
+ />
1213
+ );
1214
+ })()}
1201
1215
  <FeedbackButton
1202
1216
  variant="icon"
1203
1217
  side="bottom"
@@ -1215,7 +1229,7 @@ function AgentPanelInner({
1215
1229
  />
1216
1230
  }
1217
1231
  />
1218
- {mode === "chat" && (
1232
+ {!onCollapse && mode === "chat" && (
1219
1233
  <IconTooltip content={t("agentPanel.newChat")}>
1220
1234
  <button
1221
1235
  onClick={addTab}
@@ -1226,7 +1240,7 @@ function AgentPanelInner({
1226
1240
  </button>
1227
1241
  </IconTooltip>
1228
1242
  )}
1229
- {mode === "cli" && canUseCodeTools && (
1243
+ {!onCollapse && mode === "cli" && canUseCodeTools && (
1230
1244
  <IconTooltip content={t("agentPanel.newTerminal")}>
1231
1245
  <button
1232
1246
  onClick={addCliTab}
@@ -1237,6 +1251,18 @@ function AgentPanelInner({
1237
1251
  </button>
1238
1252
  </IconTooltip>
1239
1253
  )}
1254
+ {agentPageHref &&
1255
+ shouldShowAgentPanelFullViewAction(agentPageHref, mode) && (
1256
+ <IconTooltip content={t("agentPanel.openFullView")}>
1257
+ <Link
1258
+ to={agentPageHref}
1259
+ aria-label={t("agentPanel.openFullView")}
1260
+ className="flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:bg-accent/50 hover:text-foreground"
1261
+ >
1262
+ <IconArrowsMaximize size={14} />
1263
+ </Link>
1264
+ </IconTooltip>
1265
+ )}
1240
1266
  <DropdownMenu open={headerMenuOpen} onOpenChange={setHeaderMenuOpen}>
1241
1267
  <DropdownMenuTrigger asChild>
1242
1268
  <button
@@ -1266,6 +1292,12 @@ function AgentPanelInner({
1266
1292
  <DropdownMenuSeparator />
1267
1293
  </>
1268
1294
  )}
1295
+ {onCollapse && mode === "chat" && (
1296
+ <DropdownMenuItem onSelect={addTab}>
1297
+ <IconPlus size={14} className="shrink-0" />
1298
+ {t("agentPanel.newChat")}
1299
+ </DropdownMenuItem>
1300
+ )}
1269
1301
  {mode === "chat" && toggleHistory && (
1270
1302
  <DropdownMenuItem onSelect={toggleHistory}>
1271
1303
  <IconHistory size={14} className="shrink-0" />
@@ -1430,6 +1462,7 @@ function AgentPanelInner({
1430
1462
  headerMenuOpen,
1431
1463
  isFullscreen,
1432
1464
  mode,
1465
+ agentPageHref,
1433
1466
  onCollapse,
1434
1467
  onToggleFullscreen,
1435
1468
  openRunThread,
@@ -1547,7 +1580,9 @@ function AgentPanelInner({
1547
1580
  style={AGENT_PANEL_HEADER_STYLE}
1548
1581
  >
1549
1582
  <div className="flex min-w-0 flex-1 items-center gap-1 overflow-hidden">
1550
- {renderModeButtons(mode)}
1583
+ {shouldShowAgentPanelModeButtons(Boolean(onCollapse))
1584
+ ? renderModeButtons(mode)
1585
+ : null}
1551
1586
  </div>
1552
1587
  <div className="flex items-center gap-0.5">
1553
1588
  {renderHeaderActions({
@@ -1939,17 +1974,6 @@ function AgentPanelInner({
1939
1974
  {/* Resources view */}
1940
1975
  {mode === "resources" && (
1941
1976
  <div className="flex flex-1 flex-col min-h-0">
1942
- {agentPageHref && (
1943
- <div className="flex shrink-0 justify-end border-b border-border px-3 py-1.5">
1944
- <Link
1945
- to={agentPageHref}
1946
- className="inline-flex cursor-pointer items-center gap-1 text-[11px] font-medium text-muted-foreground hover:text-foreground"
1947
- >
1948
- {t("agentPanel.openFullView")}
1949
- <IconExternalLink className="h-3 w-3" />
1950
- </Link>
1951
- </div>
1952
- )}
1953
1977
  <Suspense
1954
1978
  fallback={
1955
1979
  <div className="flex h-full flex-col min-h-0">
@@ -1970,17 +1994,6 @@ function AgentPanelInner({
1970
1994
  {/* Settings / Setup view */}
1971
1995
  {mode === "settings" && (
1972
1996
  <div className="flex flex-col flex-1 min-h-0">
1973
- {agentPageHref && (
1974
- <div className="flex shrink-0 justify-end border-b border-border px-3 py-1.5">
1975
- <Link
1976
- to={agentPageHref}
1977
- className="inline-flex cursor-pointer items-center gap-1 text-[11px] font-medium text-muted-foreground hover:text-foreground"
1978
- >
1979
- {t("agentPanel.openFullView")}
1980
- <IconExternalLink className="h-3 w-3" />
1981
- </Link>
1982
- </div>
1983
- )}
1984
1997
  <Suspense
1985
1998
  fallback={
1986
1999
  <div className="p-3 space-y-2">
@@ -901,6 +901,7 @@ function ReasoningMessagePart() {
901
901
  <ReasoningCell
902
902
  text={part.text}
903
903
  isStreaming={isStreaming}
904
+ resetKey={`message-reasoning-${partIndex}`}
904
905
  durationMs={durationMs}
905
906
  defaultOpen={partIndex === latestReasoningPartIndex}
906
907
  collapseWhenReplaced={partIndex < latestReasoningPartIndex}
@@ -52,6 +52,7 @@ import {
52
52
  markdownModule,
53
53
  remarkGfmFn,
54
54
  markdownUrlTransform,
55
+ useSmoothStreamingText,
55
56
  } from "./markdown-renderer.js";
56
57
  import { resolveToolRenderer } from "./tool-render-registry.js";
57
58
  import {
@@ -929,6 +930,7 @@ export function ReconnectStreamMessage({
929
930
  key={`reconnect-reasoning-${i}`}
930
931
  text={part.text}
931
932
  isStreaming={chatRunning && i === streamingReasoningPartIndex}
933
+ resetKey={`reconnect-reasoning-${i}`}
932
934
  defaultOpen={i === latestReasoningPartIndex}
933
935
  collapseWhenReplaced={i < latestReasoningPartIndex}
934
936
  />
@@ -973,6 +975,7 @@ const WorkSummaryContentContext = React.createContext(false);
973
975
  export function ReasoningCell({
974
976
  text,
975
977
  isStreaming = false,
978
+ resetKey,
976
979
  defaultOpen,
977
980
  autoCollapse = false,
978
981
  collapseWhenReplaced = false,
@@ -980,6 +983,8 @@ export function ReasoningCell({
980
983
  }: {
981
984
  text: string;
982
985
  isStreaming?: boolean;
986
+ /** Stable identity used to restart the reveal when a new reasoning part mounts. */
987
+ resetKey?: string;
983
988
  defaultOpen?: boolean;
984
989
  /** Animate closed when a live reasoning segment finishes during a run. */
985
990
  autoCollapse?: boolean;
@@ -998,6 +1003,11 @@ export function ReasoningCell({
998
1003
  const wasStreamingRef = useRef(isStreaming);
999
1004
  const wasReplacedRef = useRef(collapseWhenReplaced);
1000
1005
  const trimmed = text.trim();
1006
+ const visibleText = useSmoothStreamingText(
1007
+ trimmed,
1008
+ isStreaming,
1009
+ resetKey ?? "reasoning",
1010
+ );
1001
1011
 
1002
1012
  useEffect(() => {
1003
1013
  if (autoCollapse && wasStreamingRef.current && !isStreaming) {
@@ -1018,7 +1028,7 @@ export function ReasoningCell({
1018
1028
  if (embeddedInWorkSummary) {
1019
1029
  return (
1020
1030
  <div className="pb-1 pl-5 text-[13px] leading-relaxed text-muted-foreground whitespace-pre-wrap">
1021
- {trimmed || (isStreaming ? "…" : "")}
1031
+ {visibleText || (isStreaming ? "…" : "")}
1022
1032
  </div>
1023
1033
  );
1024
1034
  }
@@ -1055,7 +1065,7 @@ export function ReasoningCell({
1055
1065
  <AnimatedCollapse open={open}>
1056
1066
  <div className={cn("pl-5 pb-1", showTail && "reasoning-cell-tail")}>
1057
1067
  <div className="text-[13px] leading-relaxed text-muted-foreground whitespace-pre-wrap">
1058
- {trimmed || (isStreaming ? "…" : "")}
1068
+ {visibleText || (isStreaming ? "…" : "")}
1059
1069
  </div>
1060
1070
  </div>
1061
1071
  </AnimatedCollapse>
@@ -14,6 +14,7 @@ import {
14
14
  IconCode,
15
15
  IconFileText,
16
16
  IconLayoutBoard,
17
+ IconListCheck,
17
18
  IconLoader2,
18
19
  IconLogout,
19
20
  IconMail,
@@ -122,6 +123,7 @@ const APP_ICON_MAP: Record<string, typeof IconApps> = {
122
123
  CalendarTime: IconCalendarTime,
123
124
  Globe: IconWorld,
124
125
  Photo: IconPhoto,
126
+ ListCheck: IconListCheck,
125
127
  };
126
128
 
127
129
  function appMenuIcon(app: OrgSwitcherAppLink): typeof IconApps {
@@ -380,7 +380,7 @@ function LinkTab({
380
380
  )}
381
381
 
382
382
  <CopyField
383
- label={t("shareDialog.shareLink")}
383
+ label={t("shareDialog.shareWithHumans")}
384
384
  value={shareUrl}
385
385
  disabled={
386
386
  visibilityPending || !sharesLoaded || (!isPublic && canManage)
@@ -444,6 +444,7 @@ const messages = {
444
444
  invite: "دعوة",
445
445
  embed: "تضمين",
446
446
  shareLink: "رابط المشاركة",
447
+ shareWithHumans: "مشاركة مع الأشخاص",
447
448
  shareWithAgents: "شارك مع الوكلاء",
448
449
  copyAgentPrompt: "نسخ مطالبة الوكيل",
449
450
  agentPrompt:
@@ -457,6 +457,7 @@ const messages = {
457
457
  invite: "Einladen",
458
458
  embed: "Einbetten",
459
459
  shareLink: "Teillink",
460
+ shareWithHumans: "Mit Menschen teilen",
460
461
  shareWithAgents: "Mit Agenten teilen",
461
462
  copyAgentPrompt: "Agent-Prompt kopieren",
462
463
  agentPrompt:
@@ -440,6 +440,7 @@ const messages = {
440
440
  invite: "Invite",
441
441
  embed: "Embed",
442
442
  shareLink: "Share link",
443
+ shareWithHumans: "Share with humans",
443
444
  shareWithAgents: "Share with agents",
444
445
  copyAgentPrompt: "Copy agent prompt",
445
446
  agentPrompt:
@@ -454,6 +454,7 @@ const messages = {
454
454
  invite: "Invitar",
455
455
  embed: "Insertar",
456
456
  shareLink: "Enlace para compartir",
457
+ shareWithHumans: "Compartir con personas",
457
458
  shareWithAgents: "Compartir con agentes",
458
459
  copyAgentPrompt: "Copiar indicación para agente",
459
460
  agentPrompt:
@@ -454,6 +454,7 @@ const messages = {
454
454
  invite: "Inviter",
455
455
  embed: "Intégrer",
456
456
  shareLink: "Lien de partage",
457
+ shareWithHumans: "Partager avec des personnes",
457
458
  shareWithAgents: "Partager avec les agents",
458
459
  copyAgentPrompt: "Copier le prompt pour agent",
459
460
  agentPrompt:
@@ -437,6 +437,7 @@ const messages = {
437
437
  invite: "आमंत्रित करें",
438
438
  embed: "एम्बेड",
439
439
  shareLink: "शेयर लिंक",
440
+ shareWithHumans: "लोगों के साथ साझा करें",
440
441
  shareWithAgents: "एजेंटों के साथ साझा करें",
441
442
  copyAgentPrompt: "एजेंट प्रॉम्प्ट कॉपी करें",
442
443
  agentPrompt:
@@ -449,6 +449,7 @@ const messages = {
449
449
  invite: "招待",
450
450
  embed: "埋め込み",
451
451
  shareLink: "共有リンク",
452
+ shareWithHumans: "人と共有する",
452
453
  shareWithAgents: "エージェントと共有する",
453
454
  copyAgentPrompt: "エージェント用プロンプトをコピー",
454
455
  agentPrompt:
@@ -442,6 +442,7 @@ const messages = {
442
442
  invite: "초대",
443
443
  embed: "임베드",
444
444
  shareLink: "공유 링크",
445
+ shareWithHumans: "사람과 공유",
445
446
  shareWithAgents: "상담원과 공유",
446
447
  copyAgentPrompt: "에이전트 프롬프트 복사",
447
448
  agentPrompt:
@@ -451,6 +451,7 @@ const messages = {
451
451
  invite: "Convidar",
452
452
  embed: "Incorporar",
453
453
  shareLink: "Link de compartilhamento",
454
+ shareWithHumans: "Compartilhe com pessoas",
454
455
  shareWithAgents: "Compartilhe com agentes",
455
456
  copyAgentPrompt: "Copiar prompt para agente",
456
457
  agentPrompt:
@@ -424,6 +424,7 @@ const messages = {
424
424
  invite: "邀请",
425
425
  embed: "嵌入",
426
426
  shareLink: "分享链接",
427
+ shareWithHumans: "与人分享",
427
428
  shareWithAgents: "与代理商分享",
428
429
  copyAgentPrompt: "复制代理提示",
429
430
  agentPrompt:
@@ -424,6 +424,7 @@ const messages = {
424
424
  invite: "邀請",
425
425
  embed: "嵌入",
426
426
  shareLink: "分享連結",
427
+ shareWithHumans: "與人分享",
427
428
  shareWithAgents: "與 Agent 分享",
428
429
  copyAgentPrompt: "複製 Agent 提示",
429
430
  agentPrompt:
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-15
4
+ ---
5
+
6
+ Public clip links are labeled Share with humans for clarity.