@agent-native/core 0.149.1 → 0.149.3

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 (422) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/actions/SKILL.md +54 -488
  3. package/corpus/templates/analytics/.agents/skills/actions/references/action-fields.md +136 -0
  4. package/corpus/templates/analytics/.agents/skills/actions/references/examples.md +94 -0
  5. package/corpus/templates/analytics/.agents/skills/actions/references/provider-apis.md +95 -0
  6. package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +9 -35
  7. package/corpus/templates/analytics/.agents/skills/creative-context/SKILL.md +4 -2
  8. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +2 -0
  9. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +4 -5
  10. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +18 -31
  11. package/corpus/templates/analytics/AGENTS.md +25 -32
  12. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +150 -46
  13. package/corpus/templates/analytics/app/global.css +1 -1
  14. package/corpus/templates/analytics/app/i18n-data.ts +37 -0
  15. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +1 -1
  16. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +32 -0
  17. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +2 -0
  18. package/corpus/templates/analytics/changelog/2026-08-10-dashboard-tables-can-be-copied-and-sorted-by-multiple-column.md +6 -0
  19. package/corpus/templates/analytics/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  20. package/corpus/templates/analytics/changelog/2026-08-11-full-page-chat-composers-stay-at-a-focused-750px-width.md +6 -0
  21. package/corpus/templates/assets/.agents/skills/actions/SKILL.md +54 -488
  22. package/corpus/templates/assets/.agents/skills/actions/references/action-fields.md +136 -0
  23. package/corpus/templates/assets/.agents/skills/actions/references/examples.md +94 -0
  24. package/corpus/templates/assets/.agents/skills/actions/references/provider-apis.md +95 -0
  25. package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +9 -35
  26. package/corpus/templates/assets/.agents/skills/creative-context/SKILL.md +4 -2
  27. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +4 -5
  28. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +18 -31
  29. package/corpus/templates/assets/AGENTS.md +6 -9
  30. package/corpus/templates/assets/app/global.css +1 -1
  31. package/corpus/templates/assets/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  32. package/corpus/templates/assets/changelog/2026-08-11-full-page-chat-composers-stay-at-a-focused-750px-width.md +6 -0
  33. package/corpus/templates/brain/.agents/skills/actions/SKILL.md +54 -488
  34. package/corpus/templates/brain/.agents/skills/actions/references/action-fields.md +136 -0
  35. package/corpus/templates/brain/.agents/skills/actions/references/examples.md +94 -0
  36. package/corpus/templates/brain/.agents/skills/actions/references/provider-apis.md +95 -0
  37. package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +9 -35
  38. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +4 -5
  39. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +18 -31
  40. package/corpus/templates/brain/AGENTS.md +5 -12
  41. package/corpus/templates/brain/app/global.css +1 -1
  42. package/corpus/templates/brain/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  43. package/corpus/templates/brain/changelog/2026-08-11-full-page-chat-composers-stay-at-a-focused-750px-width.md +6 -0
  44. package/corpus/templates/calendar/.agents/skills/actions/SKILL.md +54 -488
  45. package/corpus/templates/calendar/.agents/skills/actions/references/action-fields.md +136 -0
  46. package/corpus/templates/calendar/.agents/skills/actions/references/examples.md +94 -0
  47. package/corpus/templates/calendar/.agents/skills/actions/references/provider-apis.md +95 -0
  48. package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +9 -35
  49. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +4 -5
  50. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +18 -31
  51. package/corpus/templates/calendar/AGENTS.md +8 -9
  52. package/corpus/templates/chat/.agents/skills/actions/SKILL.md +54 -488
  53. package/corpus/templates/chat/.agents/skills/actions/references/action-fields.md +136 -0
  54. package/corpus/templates/chat/.agents/skills/actions/references/examples.md +94 -0
  55. package/corpus/templates/chat/.agents/skills/actions/references/provider-apis.md +95 -0
  56. package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +9 -35
  57. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +4 -5
  58. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -31
  59. package/corpus/templates/chat/AGENTS.md +32 -80
  60. package/corpus/templates/chat/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  61. package/corpus/templates/clips/.agents/skills/actions/SKILL.md +54 -488
  62. package/corpus/templates/clips/.agents/skills/actions/references/action-fields.md +136 -0
  63. package/corpus/templates/clips/.agents/skills/actions/references/examples.md +94 -0
  64. package/corpus/templates/clips/.agents/skills/actions/references/provider-apis.md +95 -0
  65. package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +9 -35
  66. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +4 -5
  67. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +18 -31
  68. package/corpus/templates/clips/AGENTS.md +25 -31
  69. package/corpus/templates/clips/changelog/2026-08-10-clips-desktop-sign-in-now-starts-with-magic-links-and-google.md +6 -0
  70. package/corpus/templates/clips/chrome-extension/src/overlay.css +1 -0
  71. package/corpus/templates/clips/desktop/src/app.tsx +274 -137
  72. package/corpus/templates/clips/desktop/src/styles.css +35 -0
  73. package/corpus/templates/content/.agents/skills/actions/SKILL.md +54 -488
  74. package/corpus/templates/content/.agents/skills/actions/references/action-fields.md +136 -0
  75. package/corpus/templates/content/.agents/skills/actions/references/examples.md +94 -0
  76. package/corpus/templates/content/.agents/skills/actions/references/provider-apis.md +95 -0
  77. package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +9 -35
  78. package/corpus/templates/content/.agents/skills/creative-context/SKILL.md +4 -2
  79. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +4 -5
  80. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +18 -31
  81. package/corpus/templates/content/AGENTS.md +5 -9
  82. package/corpus/templates/content/app/global.css +1 -0
  83. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +18 -31
  84. package/corpus/templates/crm/AGENTS.md +7 -11
  85. package/corpus/templates/crm/app/global.css +1 -1
  86. package/corpus/templates/crm/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  87. package/corpus/templates/crm/changelog/2026-08-11-full-page-chat-composers-stay-at-a-focused-750px-width.md +6 -0
  88. package/corpus/templates/design/.agents/skills/actions/SKILL.md +54 -488
  89. package/corpus/templates/design/.agents/skills/actions/references/action-fields.md +136 -0
  90. package/corpus/templates/design/.agents/skills/actions/references/examples.md +94 -0
  91. package/corpus/templates/design/.agents/skills/actions/references/provider-apis.md +95 -0
  92. package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +9 -35
  93. package/corpus/templates/design/.agents/skills/creative-context/SKILL.md +4 -2
  94. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +4 -5
  95. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +18 -31
  96. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +70 -3
  97. package/corpus/templates/design/AGENTS.md +13 -21
  98. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +12 -0
  99. package/corpus/templates/design/app/components/design/LayersPanel.tsx +19 -2
  100. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +115 -7
  101. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +82 -7
  102. package/corpus/templates/design/app/components/design/design-trace.ts +120 -0
  103. package/corpus/templates/design/app/components/design/dnd-debug.ts +2 -1
  104. package/corpus/templates/design/app/components/design/edit-panel/position-layout-properties.tsx +40 -26
  105. package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +4 -1
  106. package/corpus/templates/design/app/components/design/multi-screen/frame-geometry.ts +12 -3
  107. package/corpus/templates/design/app/components/design/multi-screen/screen-content-cache.ts +4 -0
  108. package/corpus/templates/design/app/components/design/multi-screen/types.ts +7 -0
  109. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +3 -2
  110. package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -2
  111. package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +3 -0
  112. package/corpus/templates/design/app/i18n-data.ts +1 -0
  113. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +5 -5
  114. package/corpus/templates/design/app/pages/DesignSystems.tsx +3 -2
  115. package/corpus/templates/design/app/pages/design-editor/canvas-primitive-insert.ts +100 -13
  116. package/corpus/templates/design/app/pages/design-editor/cross-screen-text-color.ts +1 -1
  117. package/corpus/templates/design/app/pages/design-editor/data-operations.ts +14 -0
  118. package/corpus/templates/design/changelog/2026-08-10-marquee-selecting-layers-far-down-a-tall-screen-now-selects-.md +6 -0
  119. package/corpus/templates/design/changelog/2026-08-10-the-frame-tool-draws-a-plain-frame-by-default-with-screen-av.md +6 -0
  120. package/corpus/templates/design/e2e/global-setup.ts +27 -32
  121. package/corpus/templates/design/playwright.config.ts +3 -5
  122. package/corpus/templates/design/shared/breakpoint-media.ts +9 -2
  123. package/corpus/templates/dispatch/.agents/skills/actions/SKILL.md +54 -488
  124. package/corpus/templates/dispatch/.agents/skills/actions/references/action-fields.md +136 -0
  125. package/corpus/templates/dispatch/.agents/skills/actions/references/examples.md +94 -0
  126. package/corpus/templates/dispatch/.agents/skills/actions/references/provider-apis.md +95 -0
  127. package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +9 -35
  128. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +4 -5
  129. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +18 -31
  130. package/corpus/templates/dispatch/AGENTS.md +9 -16
  131. package/corpus/templates/dispatch/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  132. package/corpus/templates/factory/.agents/skills/actions/SKILL.md +54 -488
  133. package/corpus/templates/factory/.agents/skills/actions/references/action-fields.md +136 -0
  134. package/corpus/templates/factory/.agents/skills/actions/references/examples.md +94 -0
  135. package/corpus/templates/factory/.agents/skills/actions/references/provider-apis.md +95 -0
  136. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +9 -35
  137. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +4 -5
  138. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +18 -31
  139. package/corpus/templates/factory/AGENTS.md +10 -24
  140. package/corpus/templates/factory/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  141. package/corpus/templates/forms/.agents/skills/actions/SKILL.md +54 -488
  142. package/corpus/templates/forms/.agents/skills/actions/references/action-fields.md +136 -0
  143. package/corpus/templates/forms/.agents/skills/actions/references/examples.md +94 -0
  144. package/corpus/templates/forms/.agents/skills/actions/references/provider-apis.md +95 -0
  145. package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +9 -35
  146. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +4 -5
  147. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +18 -31
  148. package/corpus/templates/forms/AGENTS.md +11 -17
  149. package/corpus/templates/forms/app/global.css +1 -0
  150. package/corpus/templates/forms/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  151. package/corpus/templates/forms/changelog/2026-08-11-full-page-chat-composers-stay-at-a-focused-750px-width.md +6 -0
  152. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +4 -5
  153. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +18 -31
  154. package/corpus/templates/macros/AGENTS.md +8 -8
  155. package/corpus/templates/mail/.agents/skills/actions/SKILL.md +54 -488
  156. package/corpus/templates/mail/.agents/skills/actions/references/action-fields.md +136 -0
  157. package/corpus/templates/mail/.agents/skills/actions/references/examples.md +94 -0
  158. package/corpus/templates/mail/.agents/skills/actions/references/provider-apis.md +95 -0
  159. package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +9 -35
  160. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +4 -5
  161. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +18 -31
  162. package/corpus/templates/mail/AGENTS.md +5 -6
  163. package/corpus/templates/plan/.agents/skills/actions/SKILL.md +54 -488
  164. package/corpus/templates/plan/.agents/skills/actions/references/action-fields.md +136 -0
  165. package/corpus/templates/plan/.agents/skills/actions/references/examples.md +94 -0
  166. package/corpus/templates/plan/.agents/skills/actions/references/provider-apis.md +95 -0
  167. package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +9 -35
  168. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +4 -5
  169. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +18 -31
  170. package/corpus/templates/plan/AGENTS.md +5 -14
  171. package/corpus/templates/plan/app/global.css +1 -0
  172. package/corpus/templates/plan/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  173. package/corpus/templates/plan/changelog/2026-08-11-plan-no-longer-reloads-when-runtime-state-changes.md +6 -0
  174. package/corpus/templates/plan/server/ui-plan-html.ts +4 -1
  175. package/corpus/templates/plan/vite.config.ts +5 -0
  176. package/corpus/templates/slides/.agents/skills/actions/SKILL.md +54 -488
  177. package/corpus/templates/slides/.agents/skills/actions/references/action-fields.md +136 -0
  178. package/corpus/templates/slides/.agents/skills/actions/references/examples.md +94 -0
  179. package/corpus/templates/slides/.agents/skills/actions/references/provider-apis.md +95 -0
  180. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +2 -2
  181. package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +9 -35
  182. package/corpus/templates/slides/.agents/skills/creative-context/SKILL.md +6 -3
  183. package/corpus/templates/slides/.agents/skills/deck-management/SKILL.md +6 -1
  184. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +4 -5
  185. package/corpus/templates/slides/.agents/skills/image-generation-via-a2a/SKILL.md +3 -2
  186. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +3 -0
  187. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +3 -3
  188. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +18 -31
  189. package/corpus/templates/slides/AGENTS.md +33 -35
  190. package/corpus/templates/slides/actions/add-deck.ts +2 -0
  191. package/corpus/templates/slides/actions/add-slide.ts +15 -1
  192. package/corpus/templates/slides/actions/create-deck.ts +18 -6
  193. package/corpus/templates/slides/actions/get-deck-reference-context.ts +2 -2
  194. package/corpus/templates/slides/actions/get-deck.ts +83 -7
  195. package/corpus/templates/slides/actions/import-file.ts +2 -1
  196. package/corpus/templates/slides/actions/patch-deck.ts +165 -9
  197. package/corpus/templates/slides/actions/save-deck.ts +24 -1
  198. package/corpus/templates/slides/actions/update-slide.ts +1 -1
  199. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +2 -2
  200. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +1 -23
  201. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -2
  202. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +6 -6
  203. package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +3 -3
  204. package/corpus/templates/slides/app/components/editor/DeckEditorSkeleton.tsx +4 -4
  205. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +1 -1
  206. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +432 -668
  207. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +296 -259
  208. package/corpus/templates/slides/app/components/editor/GeneratingSlidePreview.tsx +1 -1
  209. package/corpus/templates/slides/app/components/editor/GoogleDriveConnectionCta.tsx +13 -1
  210. package/corpus/templates/slides/app/components/editor/NewDeckReferenceStep.tsx +56 -174
  211. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +241 -116
  212. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +1 -1
  213. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +42 -14
  214. package/corpus/templates/slides/app/components/editor/SpeakerNotesPanel.tsx +6 -12
  215. package/corpus/templates/slides/app/components/editor/editor-command-model.ts +35 -0
  216. package/corpus/templates/slides/app/components/layout/AgentWorkIndicator.tsx +1 -1
  217. package/corpus/templates/slides/app/components/layout/Layout.tsx +34 -35
  218. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +8 -10
  219. package/corpus/templates/slides/app/components/layout/layout-route-policy.ts +2 -5
  220. package/corpus/templates/slides/app/components/onboarding/FirstDeckOnboardingFlow.tsx +45 -40
  221. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +63 -16
  222. package/corpus/templates/slides/app/context/DeckContext.tsx +2 -1
  223. package/corpus/templates/slides/app/global.css +76 -1
  224. package/corpus/templates/slides/app/hooks/use-generating-slide-preview.ts +25 -3
  225. package/corpus/templates/slides/app/i18n/en-US.ts +2 -0
  226. package/corpus/templates/slides/app/lib/create-deck-generation.ts +52 -23
  227. package/corpus/templates/slides/app/lib/recent-references.ts +23 -1
  228. package/corpus/templates/slides/app/lib/slide-animation-elements.ts +104 -3
  229. package/corpus/templates/slides/app/pages/DeckEditor.tsx +17 -33
  230. package/corpus/templates/slides/app/pages/DesignSystems.tsx +2 -2
  231. package/corpus/templates/slides/app/pages/Index.tsx +315 -151
  232. package/corpus/templates/slides/app/root.tsx +43 -0
  233. package/corpus/templates/slides/changelog/2026-08-10-ai-editing-avatar-badge.md +6 -0
  234. package/corpus/templates/slides/changelog/2026-08-10-generated-decks-keep-a-clear-human-readable-title.md +6 -0
  235. package/corpus/templates/slides/changelog/2026-08-10-new-deck-creation-now-shows-progress-opens-the-editor-direct.md +6 -0
  236. package/corpus/templates/slides/changelog/2026-08-10-presentation-reveals-now-follow-valid-targets.md +6 -0
  237. package/corpus/templates/slides/changelog/2026-08-10-slides-editing-controls-are-consolidated-into-one-focused-me.md +6 -0
  238. package/corpus/templates/slides/changelog/2026-08-10-slides-now-verify-and-restyle-every-imported-slide-in-one-pa.md +6 -0
  239. package/corpus/templates/slides/changelog/2026-08-10-slides-only-suggests-a-google-connection-for-relevant-reques.md +6 -0
  240. package/corpus/templates/slides/changelog/2026-08-10-the-google-slides-import-option-is-now-labeled-slides.md +6 -0
  241. package/corpus/templates/slides/changelog/2026-08-11-faster-slides-chat-deck-reads.md +6 -0
  242. package/corpus/templates/slides/changelog/2026-08-11-slides-chat-can-read-one-slide-without-loading-the-full-deck.md +6 -0
  243. package/corpus/templates/slides/changelog/2026-08-11-slides-clearly-indicate-when-an-ai-agent-is-editing-alongsid.md +6 -0
  244. package/corpus/templates/slides/package.json +1 -0
  245. package/corpus/templates/slides/server/lib/chat-attachments.ts +1 -1
  246. package/corpus/templates/slides/server/lib/validate-slide-animations.ts +163 -0
  247. package/corpus/templates/slides/server/plugins/agent-chat.ts +8 -5
  248. package/corpus/templates/slides/shared/api.ts +47 -15
  249. package/corpus/templates/slides/shared/deck-title.ts +135 -0
  250. package/corpus/templates/tasks/.agents/skills/actions/SKILL.md +54 -488
  251. package/corpus/templates/tasks/.agents/skills/actions/references/action-fields.md +136 -0
  252. package/corpus/templates/tasks/.agents/skills/actions/references/examples.md +94 -0
  253. package/corpus/templates/tasks/.agents/skills/actions/references/provider-apis.md +95 -0
  254. package/corpus/templates/tasks/.agents/skills/agent-watchdog/SKILL.md +1 -0
  255. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +9 -35
  256. package/corpus/templates/tasks/.agents/skills/efficient-fable/SKILL.md +1 -0
  257. package/corpus/templates/tasks/.agents/skills/efficient-frontier/SKILL.md +1 -0
  258. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +4 -5
  259. package/corpus/templates/tasks/.agents/skills/plan-arbiter/SKILL.md +1 -0
  260. package/corpus/templates/tasks/.agents/skills/plow-ahead/SKILL.md +1 -0
  261. package/corpus/templates/tasks/.agents/skills/quick-recap/SKILL.md +1 -0
  262. package/corpus/templates/tasks/.agents/skills/read-the-damn-docs/SKILL.md +1 -0
  263. package/corpus/templates/tasks/.agents/skills/stay-within-limits/SKILL.md +1 -0
  264. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +18 -31
  265. package/corpus/templates/tasks/AGENTS.md +5 -20
  266. package/corpus/templates/tasks/app/components/tasks/TaskListRow.tsx +4 -1
  267. package/dist/agent/engine/ai-sdk-engine.js +1 -1
  268. package/dist/agent/production-agent.d.ts +21 -1
  269. package/dist/agent/production-agent.js +505 -355
  270. package/dist/agent/run-manager.js +156 -14
  271. package/dist/agent/run-store.d.ts +11 -10
  272. package/dist/agent/run-store.js +17 -13
  273. package/dist/agent/tool-approval-store.d.ts +18 -0
  274. package/dist/agent/tool-approval-store.js +122 -0
  275. package/dist/agent/types.d.ts +1 -1
  276. package/dist/cli/code-agent-executor.js +11 -2
  277. package/dist/client/AgentPanel.js +31 -6
  278. package/dist/client/AssistantChat.d.ts +9 -4
  279. package/dist/client/AssistantChat.js +221 -149
  280. package/dist/client/active-run-state.d.ts +9 -1
  281. package/dist/client/active-run-state.js +34 -3
  282. package/dist/client/agent-chat/index.d.ts +1 -1
  283. package/dist/client/agent-chat-adapter.d.ts +8 -0
  284. package/dist/client/agent-chat-adapter.js +125 -28
  285. package/dist/client/agent-chat.d.ts +1 -1
  286. package/dist/client/chat/markdown-renderer.js +14 -2
  287. package/dist/client/chat/message-components.d.ts +13 -3
  288. package/dist/client/chat/message-components.js +57 -52
  289. package/dist/client/chat/run-recovery.d.ts +1 -0
  290. package/dist/client/chat/run-recovery.js +8 -0
  291. package/dist/client/chat/tool-call-display.d.ts +5 -5
  292. package/dist/client/chat/tool-call-display.js +9 -212
  293. package/dist/client/chat-first/apps-rail.js +3 -3
  294. package/dist/client/chat-first/browser-pane.js +4 -1
  295. package/dist/client/chat-first/chat-history.d.ts +3 -1
  296. package/dist/client/chat-first/chat-history.js +7 -4
  297. package/dist/client/chat-first/surface-tabs.d.ts +1 -1
  298. package/dist/client/chat-first/surface-tabs.js +52 -41
  299. package/dist/client/chat-first/types.d.ts +3 -0
  300. package/dist/client/chat-first.d.ts +10 -0
  301. package/dist/client/chat-first.js +37 -2
  302. package/dist/client/components/ui/message-scroller.js +4 -1
  303. package/dist/client/i18n.js +3 -1
  304. package/dist/client/resources/McpConnectionSuggestion.js +9 -1
  305. package/dist/client/sse-event-processor.d.ts +4 -2
  306. package/dist/client/sse-event-processor.js +46 -6
  307. package/dist/client/use-chat-models.js +156 -80
  308. package/dist/client/use-run-stuck-detection.d.ts +2 -0
  309. package/dist/client/use-run-stuck-detection.js +85 -9
  310. package/dist/collab/awareness.d.ts +2 -2
  311. package/dist/collab/routes.d.ts +1 -1
  312. package/dist/collab/struct-routes.d.ts +1 -1
  313. package/dist/integrations/adapters/slack.d.ts +0 -4
  314. package/dist/integrations/adapters/slack.js +6 -30
  315. package/dist/integrations/catalog.js +1 -1
  316. package/dist/integrations/pending-tasks-store.d.ts +0 -8
  317. package/dist/integrations/pending-tasks-store.js +0 -21
  318. package/dist/integrations/slack-manifest.d.ts +2 -2
  319. package/dist/integrations/slack-manifest.js +0 -3
  320. package/dist/integrations/webhook-handler.js +1 -1
  321. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  322. package/dist/observability/routes.d.ts +3 -3
  323. package/dist/provider-api/actions/custom-provider-registration.d.ts +4 -4
  324. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  325. package/dist/scripts/docs/source-search.js +2 -2
  326. package/dist/server/agent-chat/framework-prompts.js +7 -2
  327. package/dist/server/agent-chat/prompt-resources.js +2 -2
  328. package/dist/server/agent-chat/skill-frontmatter.d.ts +31 -2
  329. package/dist/server/agent-chat/skill-frontmatter.js +41 -15
  330. package/dist/server/agent-chat-plugin.js +3 -3
  331. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  332. package/dist/server/agents-bundle.d.ts +16 -19
  333. package/dist/server/agents-bundle.js +19 -35
  334. package/dist/server/auth.js +262 -31
  335. package/dist/server/better-auth-instance.d.ts +1 -0
  336. package/dist/server/better-auth-instance.js +17 -2
  337. package/dist/server/onboarding-html.js +56 -9
  338. package/dist/server/prompts/framework-core-compact.d.ts +6 -1
  339. package/dist/server/prompts/framework-core-compact.js +12 -9
  340. package/dist/server/prompts/framework-core.d.ts +6 -1
  341. package/dist/server/prompts/framework-core.js +11 -9
  342. package/dist/server/prompts/index.d.ts +1 -1
  343. package/dist/server/prompts/index.js +1 -1
  344. package/dist/server/prompts/shared-rules.d.ts +15 -11
  345. package/dist/server/prompts/shared-rules.js +17 -13
  346. package/dist/server/realtime-token.d.ts +1 -1
  347. package/dist/server/transcribe-voice.d.ts +1 -1
  348. package/dist/shared/reasoning-effort.d.ts +8 -8
  349. package/dist/shared/reasoning-effort.js +10 -10
  350. package/dist/shared/streaming-text-smoothing.js +41 -11
  351. package/dist/styles/agent-native.css +19 -32
  352. package/dist/templates/chat/.agents/skills/actions/SKILL.md +54 -488
  353. package/dist/templates/chat/.agents/skills/actions/references/action-fields.md +136 -0
  354. package/dist/templates/chat/.agents/skills/actions/references/examples.md +94 -0
  355. package/dist/templates/chat/.agents/skills/actions/references/provider-apis.md +95 -0
  356. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +9 -35
  357. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +4 -5
  358. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -31
  359. package/dist/templates/chat/AGENTS.md +32 -80
  360. package/dist/templates/chat/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  361. package/dist/templates/default/.agents/skills/actions/SKILL.md +54 -488
  362. package/dist/templates/default/.agents/skills/actions/references/action-fields.md +136 -0
  363. package/dist/templates/default/.agents/skills/actions/references/examples.md +94 -0
  364. package/dist/templates/default/.agents/skills/actions/references/provider-apis.md +95 -0
  365. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +9 -35
  366. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +4 -5
  367. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +18 -31
  368. package/dist/templates/headless/.agents/skills/actions/SKILL.md +54 -488
  369. package/dist/templates/headless/.agents/skills/actions/references/action-fields.md +136 -0
  370. package/dist/templates/headless/.agents/skills/actions/references/examples.md +94 -0
  371. package/dist/templates/headless/.agents/skills/actions/references/provider-apis.md +95 -0
  372. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +18 -31
  373. package/dist/templates/workspace-core/.agents/skills/actions/SKILL.md +54 -488
  374. package/dist/templates/workspace-core/.agents/skills/actions/references/action-fields.md +136 -0
  375. package/dist/templates/workspace-core/.agents/skills/actions/references/examples.md +94 -0
  376. package/dist/templates/workspace-core/.agents/skills/actions/references/provider-apis.md +95 -0
  377. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +1 -0
  378. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +1 -0
  379. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +9 -35
  380. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +4 -5
  381. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +21 -29
  382. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +18 -31
  383. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +7 -17
  384. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +3 -3
  385. package/dist/templates/workspace-core/AGENTS.md +7 -16
  386. package/docs/content/messaging.mdx +6 -7
  387. package/docs/content/template-chat.mdx +1 -1
  388. package/package.json +2 -2
  389. package/src/templates/chat/.agents/skills/actions/SKILL.md +54 -488
  390. package/src/templates/chat/.agents/skills/actions/references/action-fields.md +136 -0
  391. package/src/templates/chat/.agents/skills/actions/references/examples.md +94 -0
  392. package/src/templates/chat/.agents/skills/actions/references/provider-apis.md +95 -0
  393. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +9 -35
  394. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +4 -5
  395. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +18 -31
  396. package/src/templates/chat/AGENTS.md +32 -80
  397. package/src/templates/chat/changelog/2026-08-10-full-page-chat-now-uses-the-available-width-up-to-1000px-for.md +6 -0
  398. package/src/templates/default/.agents/skills/actions/SKILL.md +54 -488
  399. package/src/templates/default/.agents/skills/actions/references/action-fields.md +136 -0
  400. package/src/templates/default/.agents/skills/actions/references/examples.md +94 -0
  401. package/src/templates/default/.agents/skills/actions/references/provider-apis.md +95 -0
  402. package/src/templates/default/.agents/skills/create-skill/SKILL.md +9 -35
  403. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +4 -5
  404. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +18 -31
  405. package/src/templates/headless/.agents/skills/actions/SKILL.md +54 -488
  406. package/src/templates/headless/.agents/skills/actions/references/action-fields.md +136 -0
  407. package/src/templates/headless/.agents/skills/actions/references/examples.md +94 -0
  408. package/src/templates/headless/.agents/skills/actions/references/provider-apis.md +95 -0
  409. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +18 -31
  410. package/src/templates/workspace-core/.agents/skills/actions/SKILL.md +54 -488
  411. package/src/templates/workspace-core/.agents/skills/actions/references/action-fields.md +136 -0
  412. package/src/templates/workspace-core/.agents/skills/actions/references/examples.md +94 -0
  413. package/src/templates/workspace-core/.agents/skills/actions/references/provider-apis.md +95 -0
  414. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +1 -0
  415. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +1 -0
  416. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +9 -35
  417. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +4 -5
  418. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +21 -29
  419. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +18 -31
  420. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +7 -17
  421. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +3 -3
  422. package/src/templates/workspace-core/AGENTS.md +7 -16
@@ -0,0 +1,136 @@
1
+ # Action Field Reference
2
+
3
+ Full detail on the less-common `defineAction` fields and automatic behaviors.
4
+ Read this when you need output validation, authorization, human approval,
5
+ image results, or the exact rules for the auto-refresh behavior — the happy
6
+ path in SKILL.md doesn't need any of these.
7
+
8
+ ## Screen Refresh (automatic)
9
+
10
+ The framework auto-refreshes the UI after any successful mutating action. On completion of a non-`GET` action, the framework emits a change event with `source: "action"` that the client's `useDbSync` picks up and uses to invalidate `["action"]` React Query keys — so `list-*` / `get-*` hooks refetch without a full page reload. In-process calls emit directly; dev-mode `pnpm action ...` calls also write a durable marker so the web server sees child-process action changes.
11
+
12
+ Rules:
13
+
14
+ - `http: { method: "GET" }` → read-only, does NOT trigger a refresh (inferred automatically).
15
+ - Any other action (default `POST`, `PUT`, `DELETE`, or `http: false`) → treated as mutating, triggers a refresh on success.
16
+ - To override the inference on an unusual action (e.g. a `POST` that only reads), pass `readOnly: true` on the action definition.
17
+ - To let a mutating action run concurrently with other same-turn tool calls, pass `parallelSafe: true`. Only do this when the action is internally concurrency-safe and order-independent (for example, it uses an app-level lock or idempotent upsert semantics). Mutating actions remain serialized by default.
18
+
19
+ Agents do NOT need to call `refresh-screen` after a normal action — it's already handled. `refresh-screen` is only needed when the agent mutates data via a path the framework can't see (e.g. writing to an external system the app mirrors) or when the agent wants to pass a `scope` hint for narrower invalidation.
20
+
21
+ ## Returning Images the Agent Can See (`_agentImages`)
22
+
23
+ An action's return object may include the well-known optional field
24
+ `_agentImages` to attach vision images (screenshots, chart previews, rendered
25
+ designs) to the tool result. The agent literally sees them — enabling visual
26
+ self-review loops — while the field itself is stripped from the JSON text the
27
+ model reads.
28
+
29
+ ```ts
30
+ run: async ({ dashboardId }) => {
31
+ const shot = await renderDashboardPng(dashboardId); // Buffer
32
+ return {
33
+ dashboardId,
34
+ panelCount: 6,
35
+ _agentImages: [
36
+ // Either a public https URL (preferred — the provider fetches it)…
37
+ { url: "https://cdn.example.com/previews/dash-1.png", label: "overview" },
38
+ // …or base64 without a data: prefix (mediaType required; a full
39
+ // data:image/png;base64,… URL in `data` is also accepted and parsed).
40
+ { data: shot.toString("base64"), mediaType: "image/png" },
41
+ ],
42
+ };
43
+ },
44
+ ```
45
+
46
+ Rules and limits:
47
+
48
+ - Shape: `Array<{ url?: string; data?: string; mediaType?: string; label?: string }>`.
49
+ Each entry needs `url` (https only) **or** `data`. Supported media types:
50
+ `image/jpeg`, `image/png`, `image/gif`, `image/webp`.
51
+ - Caps: max **4 images** per result; max **~2MB of base64** per image.
52
+ Over-cap or invalid entries never fail the call — they become text notes in
53
+ the result telling the model what was dropped and why.
54
+ - Persistence: the run ledger stores only the string result plus compact
55
+ `[image: …]` notes (URLs verbatim; base64 as a byte-count placeholder) —
56
+ never the payload. Images are re-attached only for the live turn; replayed
57
+ history is text-only, so prefer stable `url` images the model can re-request.
58
+ - Engine support: native Anthropic and vision-capable AI-SDK providers
59
+ (anthropic, openai, google, openrouter) receive real image blocks; other
60
+ paths (Builder gateway, non-vision providers) degrade to the text notes.
61
+ - External MCP tools need no changes — standard MCP `image` content parts are
62
+ converted automatically under the same caps.
63
+
64
+ ## Validating Return Values (`outputSchema`)
65
+
66
+ `schema` validates inputs; `outputSchema` validates what the action **returns**. Pass any Standard Schema-compatible schema (Zod, Valibot, ArkType) and the framework validates the result _after_ `run()` resolves — input validated before `run`, output after.
67
+
68
+ ```ts
69
+ export default defineAction({
70
+ description: "Summarize a thread.",
71
+ schema: z.object({ threadId: z.string() }),
72
+ outputSchema: z.object({ summary: z.string(), messageCount: z.number() }),
73
+ outputErrorStrategy: "warn", // default; "strict" | "fallback"
74
+ // outputFallback: { summary: "", messageCount: 0 }, // used only by "fallback"
75
+ run: async ({ threadId }) => {
76
+ /* ... */
77
+ },
78
+ });
79
+ ```
80
+
81
+ - `"warn"` (default) — `console.warn` the issues and return the **original** result unchanged. Non-breaking.
82
+ - `"strict"` — throw a clear error so a buggy action surfaces loudly.
83
+ - `"fallback"` — return `outputFallback` in place of the invalid result.
84
+
85
+ On success the validated value is returned, so coercion/defaults on `outputSchema` apply. Omit `outputSchema` and behavior is byte-for-byte unchanged (no wrapping).
86
+
87
+ ## Authorization (`authorize`)
88
+
89
+ `authorize` decides whether the caller may run the action at all. It wraps
90
+ `run`, so it holds at **all six dispatch sites** — agent tool, HTTP, frontend
91
+ hook, MCP, A2A, CLI — unlike `needsApproval`, which is honoured only in the
92
+ agent loop. Use `authorize` for "not everyone may do this"; use `needsApproval`
93
+ to ask a human to bless one call a permitted caller is already allowed to make.
94
+
95
+ ```ts
96
+ import { coachAccess } from "../lib/access.js"; // defineAppRoles(...)
97
+
98
+ export default defineAction({
99
+ description: "Archive a client roster.",
100
+ schema: z.object({ id: z.string() }),
101
+ authorize: coachAccess.requireAny("coach-admin"),
102
+ run: async (args) => {
103
+ /* ... */
104
+ },
105
+ });
106
+ ```
107
+
108
+ The wrappers compose as `validate input -> authorize -> run -> validate output
109
+ -> audit`: the gate sits inside input validation, so a guard reading `args` gets
110
+ the parsed, coerced value, and auditing is outermost, so denials are recorded.
111
+
112
+ A guard that throws denies with its own message; returning `false` denies
113
+ generically; anything else (including `undefined`) allows. A guarded action
114
+ needs a user identity, so an unattended CLI/cron caller with no user email is
115
+ denied. `authorize` gates the operation; `accessFilter` / `assertAccess` still
116
+ scope which rows a permitted caller may touch. See the `authentication` skill
117
+ for `defineAppRoles` and the `sharing` skill for row scoping.
118
+
119
+ ## Human-in-the-Loop Approval (`needsApproval`)
120
+
121
+ For high-consequence, outward-facing, hard-to-undo actions (sending an email, charging a card, deleting an account), set `needsApproval` so the agent **cannot** run the action without a human approving the specific call:
122
+
123
+ ```ts
124
+ export default defineAction({
125
+ description: "Send an email via Gmail.",
126
+ schema: z.object({ to: z.string(), subject: z.string(), body: z.string() }),
127
+ needsApproval: true, // boolean, or (args, ctx) => boolean | Promise<boolean>
128
+ run: async (args) => {
129
+ /* ...actually send... */
130
+ },
131
+ });
132
+ ```
133
+
134
+ When the gate is truthy and the call isn't yet approved, the loop emits an `approval_required` event and **stops the turn — `run()` never executes**. A predicate gates conditionally (e.g. only external recipients) and **fails closed**: a throw is treated as "approval required". The human approves via the chat UI's Approve affordance, which re-issues the turn with the call's `approvalKey`, and only then does the action run.
135
+
136
+ **Keep approvals rare** — the default is off and almost every action should leave it off. The canonical example is Mail's `send-email` (`needsApproval: true`). See the `security` skill and the Human Approval doc.
@@ -0,0 +1,94 @@
1
+ # Extra Examples, Legacy Pattern, and the Audit Script
2
+
3
+ Read this for a second worked example beyond the one in SKILL.md, for the
4
+ older bare-export action format you may find in existing code, or for the
5
+ advisory dead-action audit tool.
6
+
7
+ ## Common Patterns
8
+
9
+ **Read action (GET):**
10
+
11
+ ```ts
12
+ import { z } from "zod";
13
+ import { defineAction } from "@agent-native/core/action";
14
+
15
+ export default defineAction({
16
+ description: "List calendar events",
17
+ schema: z.object({
18
+ from: z.string().describe("Start date"),
19
+ to: z.string().describe("End date"),
20
+ }),
21
+ http: { method: "GET" },
22
+ run: async (args) => {
23
+ return await fetchEvents(args.from, args.to);
24
+ },
25
+ });
26
+ ```
27
+
28
+ **Write action (POST, default):**
29
+
30
+ ```ts
31
+ import { z } from "zod";
32
+ import { defineAction } from "@agent-native/core/action";
33
+
34
+ export default defineAction({
35
+ description: "Log a meal",
36
+ schema: z.object({
37
+ name: z.string().describe("Meal name"),
38
+ calories: z.coerce.number().describe("Calorie count"),
39
+ }),
40
+ run: async (args) => {
41
+ // args.calories is a number — z.coerce.number() handles string-to-number conversion from HTTP
42
+ const meal = await insertMeal(args);
43
+ return meal;
44
+ },
45
+ });
46
+ ```
47
+
48
+ **Agent-only action:**
49
+
50
+ ```ts
51
+ import { z } from "zod";
52
+ import { defineAction } from "@agent-native/core/action";
53
+
54
+ export default defineAction({
55
+ description: "Navigate the UI to a view",
56
+ schema: z.object({
57
+ view: z.string().describe("Target view"),
58
+ }),
59
+ http: false,
60
+ run: async (args) => {
61
+ await writeAppState("navigate", { command: "go", view: args.view });
62
+ return "Navigated";
63
+ },
64
+ });
65
+ ```
66
+
67
+ ## Legacy `parameters` Field
68
+
69
+ Before Standard Schema support, `defineAction` took a plain JSON Schema object via `parameters` instead of a Zod `schema`. It still works — the action is still callable — but skips runtime validation and TypeScript inference. Migrate to `schema: z.object({...})` when you touch one of these.
70
+
71
+ ## Legacy Pattern (bare export)
72
+
73
+ Older actions use a bare async function export with `parseArgs`:
74
+
75
+ ```ts
76
+ import { parseArgs, loadEnv, fail } from "@agent-native/core";
77
+
78
+ export default async function myAction(args: string[]) {
79
+ loadEnv();
80
+ const parsed = parseArgs(args);
81
+ // ...
82
+ }
83
+ ```
84
+
85
+ This still works but is not auto-exposed as HTTP. Prefer `defineAction` for all new actions.
86
+
87
+ ## Audit Script (Advisory)
88
+
89
+ `pnpm actions:audit [template ...]` (or `node scripts/audit-template-actions.mjs`) statically scans a template's `actions/` and prints two kinds of suggestions:
90
+
91
+ 1. **Likely UI-dead** — HTTP-exposed mutating actions whose name is never referenced under `app/` (candidates to delete or mark `agentTool: false`).
92
+ 2. **Likely redundant clusters** — groups like `update-foo-name` / `update-foo-order` that could collapse into one orthogonal `update-foo`.
93
+
94
+ It is **advisory only**: it always exits 0, never fails CI, and uses conservative heuristics, so expect some false positives (e.g. an action the agent calls but the UI doesn't). Use it as a prompt to review, not a gate.
@@ -0,0 +1,95 @@
1
+ # Provider API Integrations
2
+
3
+ Read this when an action needs to call an external provider API — HubSpot,
4
+ Gong, Slack, any credentialed third-party service — for ad hoc analysis,
5
+ querying, reporting, or cross-source research.
6
+
7
+ For provider integrations used in ad hoc analysis, querying, reporting, or
8
+ cross-source research, do not hardcode every provider endpoint as a separate
9
+ rigid action and do not encode one lookback window, filter shape, or pagination
10
+ strategy as the only path the agent can take. Expose the shared provider API
11
+ action trio instead:
12
+
13
+ - `provider-api-catalog`: lists provider base URLs, auth style, credential keys,
14
+ docs/spec URLs, placeholders, and examples without exposing secrets.
15
+ - `provider-api-docs`: fetches public provider docs/spec/changelog URLs when
16
+ the exact endpoint, filter operator, payload shape, or pagination contract is
17
+ uncertain. Registered docs URLs are curated starting points. Use
18
+ `responseMode: "markdown"` for clean readable docs, or
19
+ `responseMode: "matches"` with `search: { query | terms | regex }` for
20
+ compact snippets instead of flooding context with raw HTML.
21
+ - `provider-api-request`: makes a constrained authenticated HTTP request to the
22
+ provider host, injects configured credentials, blocks private/internal URLs,
23
+ and redacts secrets.
24
+
25
+ Use `@agent-native/core/provider-api` as the shared substrate, and build these
26
+ actions as thin factory imports rather than copying `defineAction` schemas and
27
+ handlers into each template:
28
+
29
+ ```ts
30
+ import {
31
+ createProviderApiCatalogAction,
32
+ createProviderApiDocsAction,
33
+ createProviderApiRequestAction,
34
+ } from "@agent-native/core/provider-api/actions/provider-api";
35
+ import {
36
+ createDeleteStagedDatasetAction,
37
+ createListStagedDatasetsAction,
38
+ createQueryStagedDatasetAction,
39
+ } from "@agent-native/core/provider-api/actions/staged-datasets";
40
+ ```
41
+
42
+ Pass the app's existing provider runtime to the provider factories, and pass
43
+ its app id to the staged-dataset factories. Keep app-specific descriptions,
44
+ provider allow-lists, HTTP/tool-callability settings, and credential adapters
45
+ as factory options. Only add a thin credential adapter when the app has
46
+ app-specific credential lookup rules. If the app stores a built-in provider's
47
+ OAuth grant under a narrower local provider id, use the runtime's
48
+ `oauthProviderOverrides` instead of duplicating provider config. If credentials
49
+ are stored on shareable/resource rows rather than in the shared credential or
50
+ OAuth-token stores, build a resolver that enforces those access checks before
51
+ exposing raw provider requests. Keep `provider-api-request` `http: false`
52
+ unless a separate UI permission model authorizes arbitrary provider writes.
53
+ Specific actions such as `search-records`, `search-emails`, or `sync-source`
54
+ are convenience shortcuts, not capability limits; agents should fall back to
55
+ the provider API trio when a question requires an endpoint or filter that the
56
+ shortcut does not model.
57
+
58
+ This is a framework tenet. The safety boundary should be provider host
59
+ allow-listing, credential scoping, auth injection, private-network blocking,
60
+ secret redaction, and user/org access checks, not an artificially small set of
61
+ hand-authored read actions. If the upstream provider API supports a capability,
62
+ the agent should normally be able to reach it through `provider-api-request`
63
+ with the user's configured credentials. For large responses, expose staging
64
+ (`stageAs`, `itemsPath`, pagination, and `query-staged-dataset`) or sandboxed
65
+ code execution so the agent can reduce data without flooding context.
66
+
67
+ For broad provider questions, cross-source joins, corpus-wide mention/search
68
+ work, classification, or any answer where absence matters, design the action
69
+ surface for full coverage instead of convenience-only samples. The agent should
70
+ be able to fetch every relevant page or an explicitly bounded cohort, stage or
71
+ save the raw provider response outside chat, and then use
72
+ `query-staged-dataset`, `run-code`, or provider-side search to count, join,
73
+ grep, classify, and aggregate. Tool descriptions and AGENTS.md guidance should
74
+ teach agents to report source, filters, time window, row/record counts,
75
+ pagination status, truncation, failed pages, and uncovered gaps. They must not
76
+ turn default limits, sampled rows, truncated excerpts, or aborted calls into a
77
+ confident "none found", "all records", or exhaustive conclusion.
78
+
79
+ For public web pages and docs, prefer the token-efficient path: `web-search`
80
+ to find likely URLs, `web-request` or `provider-api-docs` with clean
81
+ `responseMode` output to read a page, and `run-code` with `webRead()` /
82
+ `webFetch()` when you need to grep, aggregate, or compare many pages before
83
+ returning a small result.
84
+
85
+ For LONG compute, `run-code` supports durable background executions: pass
86
+ `background: true` and the code is enqueued to a `sandbox_executions` row and
87
+ executed out-of-band with a generous budget (default 10 min), surviving the
88
+ hosted agent run's ~40s soft timeout. The call returns
89
+ `{ executionId, status: "queued" }` immediately with polling guidance; check
90
+ progress with `run-code` `{ executionId }` (or the `get-code-execution` tool
91
+ where registered) — results persist after completion. Use background for big
92
+ cross-source joins, multi-page provider sweeps, and heavy analysis scripts;
93
+ keep quick scripts in the default foreground mode. Agents should continue
94
+ other work between polls, and on `failed`/`timed_out` split the computation or
95
+ persist intermediate progress with `workspaceWrite` and re-run.
@@ -36,7 +36,6 @@ Before writing the skill, answer these:
36
36
  or application state (see the **adding-a-feature** skill). Most skills are
37
37
  about how to touch one or more of these correctly.
38
38
  3. **When should it trigger?** — Describe the situations in natural language.
39
- Be slightly pushy — over-triggering is better than under-triggering.
40
39
  4. **Does it involve context awareness?** — Does the agent need to know what the
41
40
  user is looking at? If so, reference the `navigation` application-state key and
42
41
  the `view-screen` action pattern. See the **context-awareness** skill.
@@ -151,44 +150,21 @@ description: >-
151
150
  - Workflow/generator skills: verb-noun (`create-skill`, `capture-learnings`).
152
151
  - The directory name must match the `name` in frontmatter.
153
152
 
154
- ## Skill Scope (runtime vs dev)
153
+ ## Frontmatter Fields
155
154
 
156
- An optional `scope` frontmatter field controls which agent loads the skill:
155
+ | Field | Required | Value |
156
+ | ------------- | -------- | --------------------------------------------- |
157
+ | `name` | yes | Hyphen-case, matches the directory name |
158
+ | `description` | yes | What the skill covers AND when it triggers |
159
+ | `scope` | no | `both` (default) \| `runtime` \| `dev` |
157
160
 
158
- - `both` (default when omitted) — loaded by connected repo agents and the
159
- in-app runtime agent. Use for any skill both audiences should follow.
160
- - `runtime` — loaded only by the in-app runtime agent.
161
- - `dev` — meant for the human's coding agent (e.g. Claude Code) only. **Excluded
162
- from the runtime agent everywhere**: not in the system-prompt skills block and
163
- not in `docs-search` results.
164
-
165
- Use `scope: dev` for internal-only skills that should guide connected repo
166
- agents such as Codex or Claude Code, but should not affect the deployed
167
- production agent. Do not use `metadata.internal` for runtime visibility; that
168
- field is catalog/package metadata and is intentionally not treated as
169
- production exclusion.
170
-
171
- ```markdown
172
- ---
173
- name: release-checklist
174
- description: >-
175
- Steps for cutting a release. Use when preparing or publishing a new version.
176
- scope: dev
177
- ---
178
- ```
179
-
180
- Leave `scope` off for normal skills — the default (`both`) keeps them loading at
181
- runtime, so this is fully backward compatible. To make a dev-only skill visible
182
- to your coding agent but hidden from the runtime agent, mark it `scope: dev` and
183
- optionally mirror it under `.claude/skills/<name>/SKILL.md` (Claude Code reads
184
- `.claude/skills/` independently of the runtime's `.agents/skills/`).
161
+ For how to word a `description` and which `scope` a skill should get, follow
162
+ **writing-agent-instructions** — it owns those rules.
185
163
 
186
164
  ## Tips
187
165
 
188
- - **Keep descriptions under 40 words** — they load into context on every
189
- conversation. State what the skill does AND when to trigger it.
190
166
  - **Keep SKILL.md lean (under ~500 lines)** — move detailed content to
191
- `references/` files (progressive disclosure).
167
+ `references/` files.
192
168
  - **Use standard markdown headings** — no XML tags or custom formats.
193
169
 
194
170
  ## Anti-Patterns
@@ -198,8 +174,6 @@ optionally mirror it under `.claude/skills/<name>/SKILL.md` (Claude Code reads
198
174
  - **Introducing databases** — data lives in SQL via Drizzle (see **storing-data**).
199
175
  - **Ignoring sync** — if a skill creates data, mention wiring `useDbSync` /
200
176
  `useActionQuery` so the UI updates (see **real-time-sync**).
201
- - **Vague descriptions** — "Helps with development" won't trigger. Be specific
202
- about _when_.
203
177
  - **Pure documentation** — skills should guide action, not just explain concepts.
204
178
 
205
179
  ## File Structure
@@ -1,11 +1,10 @@
1
1
  ---
2
2
  name: frontend-design
3
3
  description: >-
4
- Sets the visual direction for a new or redesigned surface, with production
5
- quality that avoids generic AI aesthetics. Use when building, redesigning, or
6
- cleaning up any user-facing UI, including screenshot-driven feedback, copy or
7
- density reduction, settings, control placement, or a design pass ("make this
8
- look good"). Do not load it only for purely mechanical wiring or formatting.
4
+ Sets the visual direction for UI work, avoiding generic AI aesthetics. Use
5
+ for any user-facing UI change: new surfaces, screenshot-driven feedback,
6
+ copy/density cleanup, settings, control placement, or a "make this look
7
+ good" pass. Do not load it only for purely mechanical wiring or formatting.
9
8
  scope: dev
10
9
  license: Complete terms in LICENSE.txt
11
10
  source: https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md
@@ -151,43 +151,30 @@ Generated apps must follow the shared Agent-Native surface model:
151
151
  - Use the right `AgentSidebar` for contextual AI. Every button-triggered
152
152
  `sendToAgentChat` handoff should open or focus that sidebar and keep the user
153
153
  on the current domain page.
154
- - Use a sans-first SaaS hierarchy for the app shell. Choose a named visual
155
- direction in `DESIGN.md` before styling: product mode, audience, palette
156
- family, type treatment, composition, shape language, and anti-references.
157
- One restrained editorial cue is welcome, but warm beige plus terracotta is
158
- not the default and serif type belongs in content previews or a deliberate
159
- brand moment rather than the whole tool.
160
- - Preserve existing brand tokens. For a new unbranded app, choose a
161
- product-fitting palette family and compare sibling apps before reusing their
162
- accent. Keep shared semantic tokens and Agent-Native behavior consistent
163
- while varying the visual world, density, composition, and shape language.
164
- - Give the AgentSidebar a subtle surface or divider boundary so it is visually
165
- distinct from the domain page without becoming a heavy panel wall.
166
154
  - Every AI-labeled button must actually call `sendToAgentChat` with bounded
167
- context and `openSidebar: true`. Keep `submit: true` for direct execution and
168
- `submit: false` only when the user should edit the staged prompt first. Label
169
- deterministic local actions as local, preview, or analyze instead of AI.
170
- - Standalone apps that render `AgentSidebar` must keep one assistant-ui runtime
171
- context. Pin the versions compatible with the installed core/toolkit peer
172
- graph, and add Vite dedupe/aliases when linked or transitive packages resolve
173
- duplicate assistant-ui modules. Verify a fresh AI handoff has no
174
- `AssistantUiStaleIndexErrorBoundary` or stale-index console error.
155
+ context and `openSidebar: true`. Label deterministic local actions as local,
156
+ preview, or analyze instead of AI.
157
+ - Never use sparkle, wand, magic, robot, or similar decorative AI icons. Use a
158
+ message or neutral action icon, or no icon when the button label is enough.
175
159
  - Make the left navigation describe domain destinations. Chat is a separate
176
160
  destination, not the label for every app page.
177
161
  - Start with one primary action and one compact state. Put setup choices,
178
162
  advanced inputs, diagnostics, and long explanations behind progressive
179
163
  disclosure or later workflow steps.
180
- - Never use sparkle, wand, magic, robot, or similar decorative AI icons. Use a
181
- message or neutral action icon, or no icon when the button label is enough.
182
- - Before handoff, inspect the first viewport for text density, repeated cards,
183
- unrelated forms, and generic helper copy. Remove what the user does not need
184
- until the next decision.
185
- - Run a `distill`, `typeset`, `colorize`, `layout`, `polish`, and `audit` pass
186
- as useful named reviews. Make one intervention at a time and commit the
187
- chosen direction rather than averaging several options into generic SaaS.
188
- - For before/after or original/generated review, stack the source first and the
189
- result second by default. Reserve side-by-side layouts for short content that
190
- remains comfortable to scan at the target width.
164
+ - Choose a named visual direction in `DESIGN.md` before styling and build to it.
165
+ Preserve existing brand tokens; a new unbranded app picks its own
166
+ product-fitting palette rather than inheriting a sibling app's accent.
167
+ - Standalone apps that render `AgentSidebar` must keep one assistant-ui runtime
168
+ context. Pin the versions compatible with the installed core/toolkit peer
169
+ graph, and add Vite dedupe/aliases when linked or transitive packages resolve
170
+ duplicate assistant-ui modules. Verify a fresh AI handoff has no
171
+ `AssistantUiStaleIndexErrorBoundary` or stale-index console error.
172
+ - Before handoff, inspect the first viewport and remove the text density,
173
+ repeated cards, unrelated forms, and generic helper copy the user does not
174
+ need until the next decision.
175
+
176
+ In a local code-agent runtime, read `frontend-design` for the visual direction
177
+ contract, aesthetic guidelines, and named review passes behind these rules.
191
178
 
192
179
  ## 1. Extract the workflow
193
180
 
@@ -5,11 +5,6 @@ agents: it turns agent plans into editable rich blocks, diagrams, wireframes,
5
5
  prototype options, annotations, and comments a person reviews before code
6
6
  changes happen.
7
7
 
8
- Before building common workspace or agent UI, read `agent-native-toolkit` to
9
- inventory existing public kits and installed package seams. Use
10
- `customizing-agent-native` for the configure → compose → eject → propose seam
11
- ladder.
12
-
13
8
  ## Skills
14
9
 
15
10
  The plan skills own all planning behavior. Read the matching SKILL.md before
@@ -20,7 +15,6 @@ generating or editing a plan.
20
15
  and `create-visual-questions`.
21
16
  - `visual-recap` — `/visual-recap`, visual code-review recaps for PRs, commits,
22
17
  branches, and git diffs.
23
- - `visualize-repo` — repo-native visual docs from local plan folders.
24
18
  - `plan-authoring-flow` — command/action routing and design fidelity.
25
19
  - `plan-hosted-writes` — session, revision guard, post-write verify.
26
20
  - `plan-comments-and-feedback` — feedback fields, anchors, replies, deletion.
@@ -31,16 +25,10 @@ generating or editing a plan.
31
25
  - `plan-review-recaps` — recap comparison blocks and PR recap CI.
32
26
  - `plan-events` — plan lifecycle events and automations.
33
27
 
34
- Root skills to read before implementation: `adding-a-feature`, `actions`,
35
- `storing-data`, `real-time-sync`, `security`, `delegate-to-agent`,
36
- `frontend-design`, `shadcn-ui`, `self-modifying-code`.
37
-
38
28
  ## Core Rules
39
29
 
40
30
  - Follow the root framework rules: data in SQL, actions first, application
41
31
  state for navigation/selection, and shared agent chat for AI work.
42
- - Use actions for app operations and keep frontend/API parity.
43
- - Keep database code provider-agnostic and additive.
44
32
  - Store large file/blob payloads in configured file/blob storage, not SQL: no
45
33
  base64, `data:` URLs, images, video/audio, PDFs, ZIPs, screenshots,
46
34
  thumbnails, or replay chunks in app tables, `application_state`, `settings`,
@@ -50,8 +38,6 @@ Root skills to read before implementation: `adding-a-feature`, `actions`,
50
38
  secrets/OAuth/runtime configuration and obvious placeholders in examples.
51
39
  - Use `view-screen` or application state when the active page/selection is
52
40
  unclear.
53
- - For new features, update UI, actions, skills/instructions, and application
54
- state when applicable.
55
41
  - Default to structured visual artifacts over long Markdown. Text is one block
56
42
  type, not the whole plan.
57
43
  - Before edits, read pending feedback with `get-plan-feedback`.
@@ -91,3 +77,8 @@ Root skills to read before implementation: `adding-a-feature`, `actions`,
91
77
  | `read-visual-plan-source`, `import-visual-plan-source`, `patch-visual-plan-source` | Read, replace, patch MDX source |
92
78
  | `get-local-plan-folder`, `update-local-plan-folder`, `update-local-plan-comments`, `promote-local-plan-folder`, `validate-local-plan-source` | DB-free local plan folders |
93
79
  | `delete-visual-plan`, `report-visual-plan` | Delete/restore; report abuse |
80
+
81
+ ## Source Changes
82
+
83
+ Before building common workspace or agent UI, read `agent-native-toolkit`; read
84
+ `customizing-agent-native` before adapting shared UI.
@@ -2345,6 +2345,7 @@
2345
2345
  box-shadow: none;
2346
2346
  opacity: 0.55;
2347
2347
  pointer-events: none;
2348
+ /* compositing-ok: drag preview — transient, transformed every frame. */
2348
2349
  will-change: transform;
2349
2350
  }
2350
2351
  .notion-drag-preview > * {
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-08-10
4
+ ---
5
+
6
+ Full-page chat now uses the available width up to 1000px for more comfortable prompts and responses.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-08-11
4
+ ---
5
+
6
+ Plan no longer reloads when runtime state changes
@@ -766,7 +766,10 @@ button, input, textarea { font: inherit; }
766
766
  .canvas-controls button:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); }
767
767
  .canvas-viewport { position: absolute; inset: 0; overflow: hidden; cursor: grab; touch-action: none; background-image: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px); background-size: var(--grid-size) var(--grid-size); background-position: var(--grid-offset-x) var(--grid-offset-y); }
768
768
  .canvas-viewport.is-panning { cursor: grabbing; user-select: none; }
769
- .board-canvas { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
769
+ /* No will-change on the pan/zoom canvas: it pins a raster at the scale it was
770
+ promoted at, so zooming in stretches that texture instead of re-rasterizing
771
+ and the board stays blurry. A plain 2D transform re-rasterizes crisply. */
772
+ .board-canvas { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
770
773
  .board-note, .board-frame, .board-card, .board-group-label, .flow-connector, .canvas-helper-note, .canvas-annotation, .annotation-arrow { position: absolute; }
771
774
  .board-note, .board-frame, .board-card, .canvas-helper-note, .canvas-annotation { z-index: 2; color: var(--ink); cursor: default; }
772
775
  .board-group-label { z-index: 2; display: flex; align-items: center; color: var(--ink); font: 760 18px/1 var(--doc-font); }
@@ -8,6 +8,11 @@ const agentNativePlugins = agentNative as unknown as (
8
8
  ) => any[];
9
9
 
10
10
  export default defineConfig({
11
+ server: {
12
+ watch: {
13
+ ignored: ["**/data/**", "**/plans/**"],
14
+ },
15
+ },
11
16
  plugins: [
12
17
  ...reactRouterPlugins(),
13
18
  ...agentNativePlugins({