@agent-native/core 0.152.0 → 0.153.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 (917) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +208 -0
  3. package/corpus/templates/analytics/.agents/skills/context-awareness/SKILL.md +206 -0
  4. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +6 -4
  5. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +73 -80
  6. package/corpus/templates/analytics/.agents/skills/portability/SKILL.md +107 -0
  7. package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +339 -0
  8. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +3 -3
  9. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +1 -1
  10. package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +1 -0
  11. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +116 -44
  12. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  13. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  14. package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +93 -0
  15. package/corpus/templates/analytics/actions/data-source-status.ts +4 -1
  16. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +2 -2
  17. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +7 -2
  18. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +7 -1
  19. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +30 -32
  20. package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +10 -0
  21. package/corpus/templates/analytics/app/global.css +5 -1
  22. package/corpus/templates/analytics/app/lib/data-source-status.ts +3 -3
  23. package/corpus/templates/analytics/app/lib/resource-access.ts +6 -1
  24. package/corpus/templates/analytics/app/pages/DataSources.tsx +79 -51
  25. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
  26. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -0
  27. package/corpus/templates/analytics/changelog/2026-08-12-analytics-sidebar-ask-toggle-and-compact-rail.md +6 -0
  28. package/corpus/templates/analytics/changelog/2026-08-12-data-source-statuses-now-distinguish-workspace-access-from-c.md +6 -0
  29. package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +559 -147
  30. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +79 -5
  31. package/corpus/templates/analytics/server/plugins/db.ts +84 -0
  32. package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +208 -0
  33. package/corpus/templates/assets/.agents/skills/context-awareness/SKILL.md +206 -0
  34. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +73 -80
  35. package/corpus/templates/assets/.agents/skills/portability/SKILL.md +107 -0
  36. package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +339 -0
  37. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +3 -3
  38. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +1 -1
  39. package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +1 -0
  40. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +116 -44
  41. package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  42. package/corpus/templates/assets/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  43. package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +93 -0
  44. package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +13 -5
  45. package/corpus/templates/assets/app/lib/asset-urls.ts +13 -0
  46. package/corpus/templates/assets/app/routes/asset.$id.tsx +16 -6
  47. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1 -0
  48. package/corpus/templates/assets/app/routes/library.tsx +336 -78
  49. package/corpus/templates/assets/shared/api.ts +1 -1
  50. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +3 -2
  51. package/corpus/templates/brain/.agents/skills/brain/SKILL.md +8 -6
  52. package/corpus/templates/brain/.agents/skills/context-awareness/SKILL.md +206 -0
  53. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +73 -80
  54. package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +7 -0
  55. package/corpus/templates/brain/.agents/skills/portability/SKILL.md +107 -0
  56. package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +339 -0
  57. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +3 -3
  58. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +1 -1
  59. package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +1 -0
  60. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +116 -44
  61. package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  62. package/corpus/templates/brain/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  63. package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +93 -0
  64. package/corpus/templates/brain/AGENTS.md +2 -1
  65. package/corpus/templates/brain/actions/ask-brain.ts +19 -16
  66. package/corpus/templates/brain/actions/create-source.ts +11 -2
  67. package/corpus/templates/brain/actions/import-markdown-files.ts +237 -0
  68. package/corpus/templates/brain/actions/resanitize-captures.ts +3 -1
  69. package/corpus/templates/brain/actions/test-slack-connection.ts +12 -3
  70. package/corpus/templates/brain/actions/update-source.ts +10 -1
  71. package/corpus/templates/brain/app/components/brain/Surface.tsx +1 -11
  72. package/corpus/templates/brain/app/i18n-data.ts +111 -0
  73. package/corpus/templates/brain/app/lib/brain.ts +23 -1
  74. package/corpus/templates/brain/app/routes/knowledge.tsx +0 -2
  75. package/corpus/templates/brain/app/routes/ops.tsx +0 -2
  76. package/corpus/templates/brain/app/routes/review.tsx +0 -2
  77. package/corpus/templates/brain/app/routes/search.tsx +0 -2
  78. package/corpus/templates/brain/app/routes/sources.tsx +354 -6
  79. package/corpus/templates/brain/server/lib/brain-response-guard.ts +63 -1
  80. package/corpus/templates/brain/server/lib/brain.ts +9 -6
  81. package/corpus/templates/brain/server/lib/connectors.ts +20 -6
  82. package/corpus/templates/brain/server/lib/search.ts +9 -1
  83. package/corpus/templates/brain/server/lib/source-credentials.ts +95 -57
  84. package/corpus/templates/brain/server/plugins/agent-chat.ts +5 -2
  85. package/corpus/templates/brain/server/plugins/auth.ts +2 -0
  86. package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +208 -0
  87. package/corpus/templates/calendar/.agents/skills/context-awareness/SKILL.md +206 -0
  88. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +73 -80
  89. package/corpus/templates/calendar/.agents/skills/portability/SKILL.md +107 -0
  90. package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +339 -0
  91. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +3 -3
  92. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +1 -1
  93. package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +1 -0
  94. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +116 -44
  95. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  96. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  97. package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +93 -0
  98. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
  99. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  100. package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  101. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  102. package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  103. package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  104. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  105. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  106. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  107. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  108. package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  109. package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  110. package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  111. package/corpus/templates/chat/AGENTS.md +4 -5
  112. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
  113. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
  114. package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
  115. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
  116. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
  117. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
  118. package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  119. package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  120. package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
  121. package/corpus/templates/clips/actions/add-comment.ts +1 -2
  122. package/corpus/templates/clips/actions/delete-comment.ts +2 -0
  123. package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
  124. package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
  125. package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
  126. package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
  127. package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
  128. package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
  129. package/corpus/templates/clips/actions/update-comment.ts +1 -1
  130. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
  131. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
  132. package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
  133. package/corpus/templates/clips/app/components/player/share-dialog.tsx +12 -8
  134. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
  135. package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
  136. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
  137. package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
  138. package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
  139. package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
  140. package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
  141. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
  142. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
  143. package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
  144. package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
  145. package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
  146. package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  147. package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
  148. package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
  149. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  150. package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
  151. package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
  152. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
  153. package/corpus/templates/clips/shared/share-meta.ts +19 -3
  154. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
  155. package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
  156. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
  157. package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
  158. package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
  159. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
  160. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
  161. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
  162. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
  163. package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  164. package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  165. package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
  166. package/corpus/templates/content/actions/_database-utils.ts +10 -0
  167. package/corpus/templates/content/actions/add-comment.ts +1 -1
  168. package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
  169. package/corpus/templates/content/actions/create-document.ts +1 -0
  170. package/corpus/templates/content/actions/delete-comment.ts +1 -1
  171. package/corpus/templates/content/actions/get-document.ts +9 -1
  172. package/corpus/templates/content/actions/import-content-source.ts +8 -0
  173. package/corpus/templates/content/actions/list-documents.ts +10 -1
  174. package/corpus/templates/content/actions/update-comment.ts +1 -1
  175. package/corpus/templates/content/actions/update-document.ts +11 -0
  176. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +196 -30
  177. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +52 -29
  178. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +13 -8
  179. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +62 -2
  180. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +163 -53
  181. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +16 -0
  182. package/corpus/templates/content/app/components/editor/database/settings.tsx +22 -13
  183. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +7 -7
  184. package/corpus/templates/content/app/hooks/use-documents.ts +2 -0
  185. package/corpus/templates/content/app/i18n-data.ts +10 -0
  186. package/corpus/templates/content/app/root.tsx +1 -21
  187. package/corpus/templates/content/changelog/2026-08-03-choose-text-or-a-heading-from-one-compact-formatting-control.md +6 -0
  188. package/corpus/templates/content/changelog/2026-08-05-connect-sources-from-add-column.md +6 -0
  189. package/corpus/templates/content/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  190. package/corpus/templates/content/docs/solutions/evidence/content-text-selector/README.md +26 -0
  191. package/corpus/templates/content/shared/api.ts +7 -1
  192. package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
  193. package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
  194. package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
  195. package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
  196. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
  197. package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
  198. package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  199. package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
  200. package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
  201. package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
  202. package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
  203. package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
  204. package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
  205. package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
  206. package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
  207. package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
  208. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
  209. package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  210. package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  211. package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
  212. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
  213. package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
  214. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
  215. package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
  216. package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
  217. package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
  218. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
  219. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
  220. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
  221. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
  222. package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  223. package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  224. package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
  225. package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
  226. package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
  227. package/corpus/templates/design/app/i18n/en-US.ts +1 -1
  228. package/corpus/templates/design/app/i18n-data.ts +40 -0
  229. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
  230. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
  231. package/corpus/templates/design/app/pages/Present.tsx +8 -2
  232. package/corpus/templates/design/app/pages/Templates.tsx +1 -0
  233. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
  234. package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
  235. package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  236. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
  237. package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
  238. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
  239. package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
  240. package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
  241. package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
  242. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
  243. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
  244. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
  245. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
  246. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  247. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  248. package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
  249. package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
  250. package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
  251. package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
  252. package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
  253. package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
  254. package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
  255. package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
  256. package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
  257. package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
  258. package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
  259. package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
  260. package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
  261. package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
  262. package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
  263. package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
  264. package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
  265. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
  266. package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
  267. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
  268. package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
  269. package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
  270. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
  271. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
  272. package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
  273. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
  274. package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  275. package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  276. package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
  277. package/corpus/templates/factory/AGENTS.md +10 -1
  278. package/corpus/templates/factory/README.md +18 -7
  279. package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
  280. package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
  281. package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
  282. package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
  283. package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
  284. package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
  285. package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
  286. package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
  287. package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
  288. package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
  289. package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
  290. package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
  291. package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
  292. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
  293. package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
  294. package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
  295. package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
  296. package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
  297. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
  298. package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
  299. package/corpus/templates/factory/app/routes/_index.tsx +5 -87
  300. package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
  301. package/corpus/templates/factory/app/routes/chat.tsx +91 -0
  302. package/corpus/templates/factory/app/routes/factory.tsx +554 -427
  303. package/corpus/templates/factory/app/routes/settings.tsx +1 -1
  304. package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
  305. package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
  306. package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
  307. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
  308. package/corpus/templates/factory/server/triage/review-state.ts +33 -0
  309. package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
  310. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
  311. package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
  312. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
  313. package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
  314. package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
  315. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
  316. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
  317. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
  318. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
  319. package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  320. package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  321. package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
  322. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
  323. package/corpus/templates/forms/shared/types.ts +1 -1
  324. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
  325. package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
  326. package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  327. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
  328. package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
  329. package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
  330. package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
  331. package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
  332. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
  333. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
  334. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
  335. package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  336. package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  337. package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
  338. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
  339. package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
  340. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
  341. package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
  342. package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
  343. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
  344. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
  345. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
  346. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
  347. package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  348. package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  349. package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
  350. package/corpus/templates/mail/actions/send-email.ts +9 -0
  351. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
  352. package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
  353. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
  354. package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
  355. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
  356. package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
  357. package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
  358. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
  359. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
  360. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
  361. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
  362. package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  363. package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  364. package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
  365. package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
  366. package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
  367. package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
  368. package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
  369. package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
  370. package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
  371. package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  372. package/corpus/templates/plan/server/plans.ts +2 -2
  373. package/corpus/templates/plan/shared/types.ts +1 -1
  374. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
  375. package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
  376. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
  377. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
  378. package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
  379. package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
  380. package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
  381. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
  382. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
  383. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
  384. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
  385. package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  386. package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  387. package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
  388. package/corpus/templates/slides/AGENTS.md +4 -0
  389. package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
  390. package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
  391. package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
  392. package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
  393. package/corpus/templates/slides/actions/view-screen.ts +76 -26
  394. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
  395. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
  396. package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
  397. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +80 -80
  398. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +125 -10
  399. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +244 -9
  400. package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
  401. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
  402. package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
  403. package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
  404. package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
  405. package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
  406. package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
  407. package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
  408. package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
  409. package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
  410. package/corpus/templates/slides/app/pages/Index.tsx +65 -66
  411. package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  412. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
  413. package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
  414. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
  415. package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
  416. package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
  417. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
  418. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
  419. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
  420. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
  421. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  422. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  423. package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
  424. package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
  425. package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
  426. package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
  427. package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
  428. package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
  429. package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
  430. package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
  431. package/dist/agent/engine/ai-sdk-engine.js +5 -0
  432. package/dist/agent/engine/anthropic-engine.js +8 -0
  433. package/dist/agent/engine/registry.js +24 -19
  434. package/dist/agent/engine/translate-anthropic.js +16 -1
  435. package/dist/agent/production-agent.d.ts +8 -0
  436. package/dist/agent/production-agent.js +66 -0
  437. package/dist/automations/service.d.ts +2 -0
  438. package/dist/automations/service.js +5 -1
  439. package/dist/chat-threads/schema.d.ts +2 -2
  440. package/dist/cli/changelog.js +21 -4
  441. package/dist/cli/create.d.ts +12 -1
  442. package/dist/cli/create.js +99 -11
  443. package/dist/cli/index.js +6 -6
  444. package/dist/cli/process.d.ts +7 -0
  445. package/dist/cli/process.js +12 -0
  446. package/dist/cli/workspace-skill-policy.d.ts +15 -0
  447. package/dist/cli/workspace-skill-policy.js +62 -0
  448. package/dist/cli/workspacify.js +36 -0
  449. package/dist/client/AgentPanel.d.ts +14 -2
  450. package/dist/client/AgentPanel.js +40 -24
  451. package/dist/client/AssistantChat.js +93 -183
  452. package/dist/client/FeedbackButton.js +15 -2
  453. package/dist/client/RouteTransitionIndicator.d.ts +14 -2
  454. package/dist/client/RouteTransitionIndicator.js +16 -5
  455. package/dist/client/agent-page/AgentTabsPage.js +19 -6
  456. package/dist/client/app-config.d.ts +3 -0
  457. package/dist/client/app-config.js +6 -0
  458. package/dist/client/app-providers.js +2 -1
  459. package/dist/client/changelog/Changelog.d.ts +2 -1
  460. package/dist/client/changelog/Changelog.js +7 -5
  461. package/dist/client/chat/markdown-renderer.d.ts +3 -1
  462. package/dist/client/chat/markdown-renderer.js +24 -24
  463. package/dist/client/chat/message-components.d.ts +23 -0
  464. package/dist/client/chat/message-components.js +27 -44
  465. package/dist/client/chat/tool-call-display.d.ts +2 -2
  466. package/dist/client/chat/tool-call-display.js +6 -3
  467. package/dist/client/chat-first/app-open-actions.d.ts +28 -0
  468. package/dist/client/chat-first/app-open-actions.js +25 -0
  469. package/dist/client/chat-first/index.d.ts +1 -0
  470. package/dist/client/chat-first/index.js +1 -0
  471. package/dist/client/chat-first/primary-nav.d.ts +2 -1
  472. package/dist/client/chat-first/primary-nav.js +12 -5
  473. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +14 -0
  474. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -0
  475. package/dist/client/error-format.js +32 -3
  476. package/dist/client/extensions/EmbeddedExtension.js +1 -0
  477. package/dist/client/extensions/ExtensionViewer.js +3 -1
  478. package/dist/client/extensions/InlineExtensionFrame.js +1 -0
  479. package/dist/client/extensions/iframe-bridge.d.ts +3 -2
  480. package/dist/client/extensions/iframe-bridge.js +4 -2
  481. package/dist/client/guided-questions.d.ts +15 -1
  482. package/dist/client/guided-questions.js +33 -15
  483. package/dist/client/i18n.js +28 -5
  484. package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
  485. package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
  486. package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
  487. package/dist/client/integrations/IntegrationGrid.js +12 -0
  488. package/dist/client/integrations/IntegrationsPanel.js +92 -26
  489. package/dist/client/integrations/index.d.ts +2 -0
  490. package/dist/client/integrations/index.js +2 -0
  491. package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
  492. package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
  493. package/dist/client/onboarding/first-run-enabled.js +1 -5
  494. package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
  495. package/dist/client/onboarding/first-run-startup-gate.js +51 -0
  496. package/dist/client/onboarding/first-run-status.d.ts +7 -0
  497. package/dist/client/onboarding/first-run-status.js +26 -0
  498. package/dist/client/onboarding/index.d.ts +3 -0
  499. package/dist/client/onboarding/index.js +3 -0
  500. package/dist/client/onboarding/use-onboarding.d.ts +1 -0
  501. package/dist/client/onboarding/use-onboarding.js +13 -11
  502. package/dist/client/org/TeamPage.js +174 -28
  503. package/dist/client/resources/McpConnectionSuggestion.js +29 -72
  504. package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
  505. package/dist/client/resources/McpIntegrationDialog.js +176 -51
  506. package/dist/client/resources/index.d.ts +1 -0
  507. package/dist/client/resources/index.js +1 -0
  508. package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
  509. package/dist/client/resources/mcp-integration-catalog.js +28 -0
  510. package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
  511. package/dist/client/settings/SettingsPanel.d.ts +6 -0
  512. package/dist/client/settings/SettingsPanel.js +21 -8
  513. package/dist/client/settings/SettingsRow.d.ts +3 -1
  514. package/dist/client/settings/SettingsRow.js +4 -2
  515. package/dist/client/settings/SettingsSkeleton.js +5 -3
  516. package/dist/client/settings/SettingsTabsPage.js +2 -2
  517. package/dist/client/settings/UsageSection.d.ts +4 -1
  518. package/dist/client/settings/UsageSection.js +187 -93
  519. package/dist/client/settings/agent-settings-search.js +6 -2
  520. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
  521. package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
  522. package/dist/client/sharing/ShareButton.d.ts +2 -0
  523. package/dist/client/sharing/ShareButton.js +9 -2
  524. package/dist/client/sharing/ShareDialog.js +4 -1
  525. package/dist/client/sharing/useShareButtonController.d.ts +2 -1
  526. package/dist/client/sharing/useShareButtonController.js +8 -0
  527. package/dist/client/sharing/useShareDialogController.d.ts +1 -1
  528. package/dist/client/sharing/useShareDialogController.js +2 -1
  529. package/dist/config.d.ts +13 -0
  530. package/dist/config.js +53 -0
  531. package/dist/dashboard-storage/schema.d.ts +2 -2
  532. package/dist/data-programs/schema.d.ts +2 -2
  533. package/dist/extensions/actions.js +2 -1
  534. package/dist/extensions/html-shell.d.ts +2 -2
  535. package/dist/extensions/routes.js +4 -1
  536. package/dist/extensions/schema.d.ts +2 -2
  537. package/dist/file-upload/pre-upload-attachments.js +1 -1
  538. package/dist/framework-tools.js +3 -0
  539. package/dist/history/types.d.ts +1 -1
  540. package/dist/index.d.ts +2 -1
  541. package/dist/index.js +2 -1
  542. package/dist/integrations/webhook-handler.js +11 -3
  543. package/dist/jobs/background-automation-runner.d.ts +1 -0
  544. package/dist/jobs/background-automation-runner.js +4 -2
  545. package/dist/jobs/frontmatter.d.ts +4 -0
  546. package/dist/jobs/frontmatter.js +16 -0
  547. package/dist/jobs/run-history.js +1 -1
  548. package/dist/jobs/tools.js +9 -5
  549. package/dist/localization/default-messages.d.ts +27 -0
  550. package/dist/localization/default-messages.js +28 -1
  551. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  552. package/dist/notifications/routes.d.ts +2 -2
  553. package/dist/observability/routes.d.ts +3 -3
  554. package/dist/onboarding/plugin.js +17 -2
  555. package/dist/org/context.js +16 -0
  556. package/dist/progress/routes.d.ts +1 -1
  557. package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
  558. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  559. package/dist/review/actions/create-review-comment.js +1 -1
  560. package/dist/review/actions/delete-review-comment.js +4 -1
  561. package/dist/review/actions/list-review-comments.js +4 -2
  562. package/dist/review/actions/reply-review-comment.js +1 -1
  563. package/dist/review/types.d.ts +1 -1
  564. package/dist/server/action-discovery.js +29 -0
  565. package/dist/server/agent-chat/context-tools.js +27 -6
  566. package/dist/server/agent-chat/plugin-options.d.ts +7 -0
  567. package/dist/server/agent-chat-plugin.d.ts +2 -0
  568. package/dist/server/agent-chat-plugin.js +12 -4
  569. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  570. package/dist/server/builder-browser.js +31 -0
  571. package/dist/server/onboarding-html.js +1 -1
  572. package/dist/server/realtime-token.d.ts +1 -1
  573. package/dist/server/workspace-provider-oauth.js +38 -26
  574. package/dist/setup-connections/index.d.ts +1 -1
  575. package/dist/setup-connections/index.js +1 -1
  576. package/dist/shared/first-run-onboarding.d.ts +6 -0
  577. package/dist/shared/first-run-onboarding.js +6 -0
  578. package/dist/sharing/access.d.ts +1 -1
  579. package/dist/sharing/access.js +4 -1
  580. package/dist/sharing/actions/share-resource.d.ts +1 -1
  581. package/dist/sharing/actions/share-resource.js +2 -2
  582. package/dist/sharing/registry.d.ts +2 -2
  583. package/dist/sharing/schema.d.ts +5 -5
  584. package/dist/sharing/schema.js +9 -6
  585. package/dist/styles/agent-native.css +21 -0
  586. package/dist/styles/chat-history-list.css +1 -1
  587. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  588. package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  589. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  590. package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  591. package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  592. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  593. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  594. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  595. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  596. package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  597. package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  598. package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  599. package/dist/templates/chat/AGENTS.md +4 -5
  600. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  601. package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  602. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  603. package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
  604. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  605. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  606. package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  607. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  608. package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  609. package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  610. package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  611. package/dist/templates/default/AGENTS.md +17 -2
  612. package/dist/templates/default/agent-native.config.ts +6 -0
  613. package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
  614. package/dist/templates/default/app/i18n/de-DE.ts +2 -0
  615. package/dist/templates/default/app/i18n/en-US.ts +3 -1
  616. package/dist/templates/default/app/i18n/es-ES.ts +2 -0
  617. package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
  618. package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
  619. package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
  620. package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
  621. package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
  622. package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
  623. package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
  624. package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  625. package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
  626. package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  627. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  628. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  629. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  630. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  631. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  632. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  633. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  634. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  635. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  636. package/dist/templates/workspace-core/AGENTS.md +9 -3
  637. package/dist/templates/workspace-root/AGENTS.md +26 -1
  638. package/dist/templates/workspace-root/agent-native.config.ts +8 -0
  639. package/dist/triggers/actions.js +2 -2
  640. package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
  641. package/dist/usage/actions/get-usage-alerts.js +16 -0
  642. package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
  643. package/dist/usage/actions/get-usage-metrics.js +26 -0
  644. package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
  645. package/dist/usage/actions/manage-usage-alert.js +48 -0
  646. package/dist/usage/alerts-store.d.ts +78 -0
  647. package/dist/usage/alerts-store.js +592 -0
  648. package/dist/usage/metrics-store.d.ts +95 -0
  649. package/dist/usage/metrics-store.js +386 -0
  650. package/dist/usage/store.js +10 -0
  651. package/dist/vite/action-types-plugin.js +28 -0
  652. package/dist/vite/agent-native-config-loader.d.ts +6 -0
  653. package/dist/vite/agent-native-config-loader.js +54 -2
  654. package/dist/vite/client.js +11 -5
  655. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
  656. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
  657. package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
  658. package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
  659. package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
  660. package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
  661. package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
  662. package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
  663. package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
  664. package/dist/workspace-connections/credential-key-aliases.js +31 -0
  665. package/dist/workspace-connections/credentials.js +1 -25
  666. package/dist/workspace-connections/groups.d.ts +32 -0
  667. package/dist/workspace-connections/groups.js +288 -0
  668. package/dist/workspace-connections/index.d.ts +3 -1
  669. package/dist/workspace-connections/index.js +3 -1
  670. package/dist/workspace-connections/store.d.ts +9 -0
  671. package/dist/workspace-connections/store.js +68 -8
  672. package/docs/content/components.mdx +2 -2
  673. package/docs/content/sharing.mdx +2 -1
  674. package/package.json +10 -2
  675. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  676. package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  677. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  678. package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  679. package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  680. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  681. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  682. package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  683. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  684. package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  685. package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  686. package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  687. package/src/templates/chat/AGENTS.md +4 -5
  688. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  689. package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  690. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  691. package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
  692. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  693. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  694. package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  695. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  696. package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  697. package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  698. package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  699. package/src/templates/default/AGENTS.md +17 -2
  700. package/src/templates/default/agent-native.config.ts +6 -0
  701. package/src/templates/default/app/i18n/ar-SA.ts +2 -0
  702. package/src/templates/default/app/i18n/de-DE.ts +2 -0
  703. package/src/templates/default/app/i18n/en-US.ts +3 -1
  704. package/src/templates/default/app/i18n/es-ES.ts +2 -0
  705. package/src/templates/default/app/i18n/fr-FR.ts +2 -0
  706. package/src/templates/default/app/i18n/hi-IN.ts +2 -0
  707. package/src/templates/default/app/i18n/ja-JP.ts +2 -0
  708. package/src/templates/default/app/i18n/ko-KR.ts +2 -0
  709. package/src/templates/default/app/i18n/pt-BR.ts +2 -0
  710. package/src/templates/default/app/i18n/zh-CN.ts +2 -0
  711. package/src/templates/default/app/i18n/zh-TW.ts +2 -0
  712. package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  713. package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
  714. package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  715. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  716. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  717. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  718. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  719. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  720. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  721. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  722. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  723. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  724. package/src/templates/workspace-core/AGENTS.md +9 -3
  725. package/src/templates/workspace-root/AGENTS.md +26 -1
  726. package/src/templates/workspace-root/agent-native.config.ts +8 -0
  727. package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
  728. package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
  729. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
  730. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  731. package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
  732. package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
  733. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
  734. package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
  735. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  736. package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
  737. package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
  738. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
  739. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  740. package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
  741. package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
  742. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
  743. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  744. package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  745. package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  746. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  747. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  748. package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
  749. package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
  750. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
  751. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  752. package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
  753. package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
  754. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
  755. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  756. package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
  757. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  758. package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
  759. package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
  760. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
  761. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  762. package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
  763. package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
  764. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
  765. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  766. package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
  767. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
  768. package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
  769. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  770. package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
  771. package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
  772. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
  773. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  774. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
  775. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  776. package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
  777. package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
  778. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
  779. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  780. package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
  781. package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
  782. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
  783. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  784. package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
  785. package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
  786. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
  787. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  788. package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
  789. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
  790. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
  791. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  792. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  793. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  794. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  795. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  796. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  797. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  798. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  799. package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  800. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  801. package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  802. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  803. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  804. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  805. package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  806. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  807. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  808. package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  809. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  810. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  811. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  812. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  813. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  814. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  815. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  816. package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  817. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  818. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  819. package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  820. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  821. package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  822. package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  823. package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  824. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  825. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  826. package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  827. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  828. package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  829. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  830. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  831. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  832. package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  833. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  834. package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  835. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  836. package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  837. package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  838. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  839. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  840. package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  841. package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  842. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  843. package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  844. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  845. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  846. package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  847. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  848. package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  849. package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  850. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  851. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  852. package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  853. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  854. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
  855. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  856. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  857. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  858. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  859. package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  860. package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  861. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  862. package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  863. package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  864. package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  865. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  866. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  867. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  868. package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  869. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  870. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  871. package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  872. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  873. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  874. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  875. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  876. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  877. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  878. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  879. package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  880. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  881. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  882. package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  883. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  884. package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  885. package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  886. package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  887. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  888. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  889. package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  890. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  891. package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  892. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  893. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  894. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  895. package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  896. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  897. package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  898. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  899. package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  900. package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  901. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  902. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  903. package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  904. package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  905. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  906. package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  907. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  908. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  909. package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  910. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  911. package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  912. package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  913. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  914. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  915. package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  916. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  917. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: portability
3
+ description: >-
4
+ How to keep template code database-agnostic and hosting-agnostic. Use when
5
+ defining schemas, writing raw SQL, creating server routes, or anything that
6
+ could leak a SQLite-only, Postgres-only, or Node-only assumption.
7
+ scope: dev
8
+ metadata:
9
+ internal: true
10
+ ---
11
+
12
+ # Portability
13
+
14
+ ## Rule
15
+
16
+ **Never write code that only works on one database or one hosting platform.** Templates must run on portable SQL backends (SQLite, Postgres, D1, Turso/libSQL, Supabase, Neon, managed platform SQL environments when available) and any Nitro deploy target (Node, Cloudflare, Netlify, Vercel, Deno, Lambda, Bun) without code changes.
17
+
18
+ ## Database Agnostic
19
+
20
+ Use the dialect-agnostic schema helpers from `@agent-native/core/db/schema` for schemas and Drizzle's query builder for reads/writes:
21
+
22
+ ```ts
23
+ import {
24
+ table,
25
+ text,
26
+ integer,
27
+ real,
28
+ now,
29
+ sql,
30
+ } from "@agent-native/core/db/schema";
31
+
32
+ export const meals = table("meals", {
33
+ id: text("id").primaryKey(),
34
+ name: text("name").notNull(),
35
+ calories: integer("calories").notNull(),
36
+ weight: real("weight"),
37
+ archived: integer("archived", { mode: "boolean" }).notNull().default(false),
38
+ createdAt: text("created_at").notNull().default(now()),
39
+ });
40
+ ```
41
+
42
+ | Helper | Purpose |
43
+ | --------- | ----------------------------------------------------------------------------------------- |
44
+ | `table` | Delegates to `pgTable` or `sqliteTable` based on dialect |
45
+ | `text` | Works in both dialects, supports `{ enum: [...] }` |
46
+ | `integer` | `{ mode: "boolean" }` maps to Postgres `boolean` automatically |
47
+ | `real` | `real` on SQLite, `double precision` on Postgres |
48
+ | `now` | Dialect-agnostic current timestamp — use with `.default(now())` on text timestamp columns |
49
+ | `sql` | Re-exported from `drizzle-orm` for raw SQL expressions |
50
+
51
+ **Never import from `drizzle-orm/sqlite-core` or `drizzle-orm/pg-core` directly in template code.** Always use `@agent-native/core/db/schema` instead.
52
+
53
+ Use Drizzle's portable query DSL for app code:
54
+
55
+ ```ts
56
+ import { and, desc, eq } from "drizzle-orm";
57
+
58
+ const rows = await db
59
+ .select()
60
+ .from(meals)
61
+ .where(and(eq(meals.ownerEmail, userEmail), eq(meals.archived, false)))
62
+ .orderBy(desc(meals.createdAt));
63
+ ```
64
+
65
+ Avoid `db.execute(...)`, `getDbExec()`, and handwritten SQL in actions, handlers, and stores when Drizzle can express the query. Raw SQL should be limited to additive migrations, health checks, carefully reviewed advanced queries, or one-off maintenance scripts. For timestamps in Drizzle schemas, use `.default(now())`; for migration SQL, use `runMigrations()` so framework-supported compatibility rewrites and dialect-gated statements stay centralized.
66
+
67
+ ### Raw SQL helpers
68
+
69
+ - `getDbExec()` — auto-converts `?` params to `$1` for Postgres
70
+ - `isPostgres()` — runtime dialect check
71
+ - `intType()` — returns correct integer type for the dialect
72
+
73
+ ### Never
74
+
75
+ Never write SQLite-only syntax in product code or docs examples: `INSERT OR REPLACE`, `AUTOINCREMENT`, `datetime('now')`. When writing docs, say "SQL database" — not "SQLite".
76
+
77
+ Never write Postgres-only syntax in shared app code either: `ILIKE`, `::type` casts, `jsonb_*`, `RETURNING` assumptions, serial/identity syntax, `ON CONFLICT` upserts, or `ALTER ... TYPE` unless the code is inside a dialect-gated migration block. Prefer Drizzle APIs or framework helpers.
78
+
79
+ When giving deployment guidance, be precise about durability: local SQLite is the development fallback, while production needs a persistent `DATABASE_URL`. Do not steer users to Turso as the only path; it is one option among Neon, Supabase, Turso/libSQL, plain Postgres, durable SQLite, D1 bindings, and managed platform SQL environments when available.
80
+
81
+ ## Hosting Agnostic
82
+
83
+ The server runs on **Nitro** with **H3** as the HTTP framework. Templates must be deployable to any Nitro-supported target.
84
+
85
+ ### Never use Express
86
+
87
+ All server code uses H3/Nitro: `defineEventHandler`, `readBody`, `getMethod`, `setResponseHeader`, etc. Express is not a dependency. If you see Express types or patterns anywhere, replace them with H3 equivalents.
88
+
89
+ ### No platform-specific config in scaffolded template source
90
+
91
+ Files like `netlify.toml`, `wrangler.toml`, `vercel.json`, and `netlify/functions/` must NOT appear in the CLI scaffold source (`packages/core/src/templates/`) — apps generated for users stay hosting-agnostic, with platform configuration living in CI/hosting dashboards.
92
+
93
+ **Exception:** this monorepo's own first-party deployed apps (`templates/*/netlify.toml`, the root `wrangler-*.toml` files) are deployment artifacts of _this_ repo (mail.agent-native.com, etc.) and are expected to exist. Do not delete them as if they were accidental cruft — the rule above is about what gets scaffolded into a new app, not about this repo's deploy configs.
94
+
95
+ ### No Node APIs in server routes/plugins
96
+
97
+ Never use `fs`, `child_process`, or `path` in server routes and plugins. Use Nitro abstractions. (Actions in `actions/` run in Node.js and can use Node APIs freely.)
98
+
99
+ ### No persistent-process assumptions
100
+
101
+ Never assume a persistent server process. Use the SQL database for all state.
102
+
103
+ ## Related Skills
104
+
105
+ - `storing-data` — Schema patterns and the core SQL stores
106
+ - `server-plugins` — Framework routes and H3 handler patterns
107
+ - `security` — SQL injection prevention via parameterized queries
@@ -0,0 +1,339 @@
1
+ ---
2
+ name: secrets
3
+ description: >-
4
+ Declaratively register API keys and service credentials a template needs so
5
+ they appear in the agent sidebar settings UI and the onboarding checklist.
6
+ Use for any third-party API key (OpenAI, Stripe, Twilio, etc.) and for
7
+ surfacing OAuth connections in the unified settings UI.
8
+ scope: dev
9
+ metadata:
10
+ internal: true
11
+ ---
12
+
13
+ # Secrets Registry
14
+
15
+ ## Non-negotiable rule
16
+
17
+ Never hardcode credential values. Source, docs, tests, fixtures, prompts, seed
18
+ data, and generated extension/app content may mention credential **names** such
19
+ as `OPENAI_API_KEY`, but must not contain real API keys, tokens, webhook URLs,
20
+ signing secrets, OAuth refresh tokens, or private Builder/customer data.
21
+
22
+ Secret values are supplied at runtime through deployment configuration, the
23
+ encrypted `app_secrets` vault, `saveCredential` / `resolveCredential`, OAuth, or
24
+ `${keys.NAME}` substitution. Examples must use obvious placeholders such as
25
+ `<OPENAI_API_KEY>` or `${keys.SLACK_WEBHOOK}`, not real-looking copied values.
26
+
27
+ ## When to use
28
+
29
+ Use this for any external credential your template needs: API keys, service
30
+ tokens, webhook secrets. It gives you:
31
+
32
+ - A sidebar UI entry for each credential (masked input, rotate, test, delete).
33
+ - Automatic onboarding-checklist items for `required: true` secrets.
34
+ - A stable server-side read API (`readAppSecret`) that decrypts values on
35
+ demand.
36
+ - Validator hooks for health-checking keys before save and from a Test button.
37
+
38
+ ## When NOT to use
39
+
40
+ - OAuth flows that need to run the full authorization code exchange — use
41
+ `@agent-native/core/oauth-tokens` directly to save/refresh tokens. The
42
+ registry can still surface the OAuth connection in the sidebar by
43
+ registering a secret with `kind: "oauth"` — that just delegates status
44
+ lookup to oauth-tokens and renders a Connect button, no `app_secrets` row
45
+ is written.
46
+ - Purely process-level env vars that are never user-facing (e.g. `NODE_ENV`,
47
+ deployment flags). Those belong in the onboarding `form` method or the
48
+ `envKeys` list in `core-routes-plugin`.
49
+
50
+ ## Registering a secret
51
+
52
+ ```ts
53
+ // server/plugins/register-secrets.ts
54
+ import { defineNitroPlugin } from "@agent-native/core/server";
55
+ import { registerRequiredSecret } from "@agent-native/core/secrets";
56
+
57
+ export default defineNitroPlugin(() => {
58
+ registerRequiredSecret({
59
+ key: "OPENAI_API_KEY",
60
+ label: "OpenAI API Key",
61
+ description: "Used for Whisper transcription of your recordings.",
62
+ docsUrl: "https://platform.openai.com/api-keys",
63
+ scope: "user",
64
+ kind: "api-key",
65
+ required: true,
66
+ validator: async (value) => {
67
+ const res = await fetch("https://api.openai.com/v1/models", {
68
+ headers: { Authorization: `Bearer ${value}` },
69
+ });
70
+ return res.ok
71
+ ? { ok: true }
72
+ : { ok: false, error: `OpenAI rejected the key (HTTP ${res.status})` };
73
+ },
74
+ });
75
+ });
76
+ ```
77
+
78
+ ### OAuth in the unified UI
79
+
80
+ ```ts
81
+ registerRequiredSecret({
82
+ key: "GOOGLE_CONNECTED",
83
+ label: "Google account",
84
+ description: "Grants access to Gmail / Calendar APIs.",
85
+ scope: "user",
86
+ kind: "oauth",
87
+ required: true,
88
+ oauthProvider: "google", // must match the provider id in oauth-tokens
89
+ oauthConnectUrl: "/_agent-native/google/auth-url",
90
+ });
91
+ ```
92
+
93
+ The sidebar shows a Connect button instead of a text input; no `app_secrets`
94
+ row is written — status is derived from `hasOAuthTokens("google")`.
95
+
96
+ ## Registered options
97
+
98
+ | Field | Type | Purpose |
99
+ | ------------------ | --------------------------------------- | ------------------------------------------------------------------------ |
100
+ | `key` | `string` | Env-var style name (`OPENAI_API_KEY`). Also the storage key. |
101
+ | `label` | `string` | Human-readable title in the sidebar. |
102
+ | `description` | `string?` | Subtitle under the label. |
103
+ | `docsUrl` | `string?` | "Get key" link rendered on the card. |
104
+ | `scope` | `"user" \| "workspace"` | Per-user or shared across the active org. |
105
+ | `kind` | `"api-key" \| "oauth"` | Drives UI and storage behavior. |
106
+ | `required` | `boolean?` | When true, an onboarding step is auto-injected. |
107
+ | `validator` | `(v) => Promise<boolean \| {ok,error}>` | Runs on save and from the Test button. Never log `v`. |
108
+ | `oauthProvider` | `string?` (oauth-kind only) | Provider id in `oauth-tokens` that backs this entry. |
109
+ | `oauthConnectUrl` | `string?` (oauth-kind only) | URL the Connect button points at. |
110
+
111
+ ## Reading a secret from an action
112
+
113
+ ```ts
114
+ import { z } from "zod";
115
+ import { defineAction } from "@agent-native/core/action";
116
+ import { readAppSecret } from "@agent-native/core/secrets";
117
+ import { getRequestUserEmail } from "@agent-native/core/server";
118
+
119
+ export default defineAction({
120
+ description: "Transcribe an audio file with Whisper",
121
+ schema: z.object({ fileUrl: z.string() }),
122
+ run: async ({ fileUrl }) => {
123
+ const email = await getRequestUserEmail();
124
+ if (!email) throw new Error("Not signed in");
125
+
126
+ const stored = await readAppSecret({
127
+ key: "OPENAI_API_KEY",
128
+ scope: "user",
129
+ scopeId: email,
130
+ });
131
+ const apiKey = stored?.value;
132
+ if (!apiKey) {
133
+ throw new Error(
134
+ "OPENAI_API_KEY is not set. Configure it in the sidebar settings.",
135
+ );
136
+ }
137
+
138
+ // …call OpenAI. NEVER log the key or include it in error messages.
139
+ },
140
+ });
141
+ ```
142
+
143
+ Rules:
144
+
145
+ - **Never log the value.** The read layer enforces this server-side; your
146
+ code must do the same.
147
+ - **Use env vars only for deploy-level secrets.** If a credential is
148
+ user-scoped, org-scoped, or workspace-scoped, read the scoped vault/credential
149
+ store. Do not add a `process.env` fallback that makes every user inherit one
150
+ deployment's key.
151
+ - **Scope matches the registration.** `scope: "user"` → pass the user email.
152
+ `scope: "workspace"` → pass the active `orgId` from
153
+ `getOrgContext(event).orgId`.
154
+ - **One resolver per key, and every runtime path goes through it.** Before
155
+ reading a credential, grep the app for the key name. If a resolver already
156
+ exists (`resolveXConfig`, a connector, a client factory), call it — do not
157
+ read `process.env` for that key a second time somewhere else.
158
+ - **Identity comes from the caller, not the module.** A shared helper under
159
+ `server/lib/` takes the email as a parameter; only an entrypoint (action,
160
+ route, cron) decides whose identity it is. A library that resolves its own
161
+ identity from `process.env.AGENT_USER_EMAIL` authorizes the deployment rather
162
+ than the caller.
163
+
164
+ The failure this prevents is not a leak — it is a split brain. When the config
165
+ check reads the vault and the feature reads `process.env`, the settings UI and
166
+ onboarding checklist report the integration as **configured** while every actual
167
+ call fails with "env var is required". The credential is right there in the
168
+ vault, so the error names the wrong cause and sends everyone hunting for a sync
169
+ or redeploy problem that does not exist. This has now shipped four times in one
170
+ app (BigQuery, Jira, Pylon, Academy).
171
+
172
+ Before finishing any change that touches a credential, run the guard from the
173
+ app directory — it finds this whether the app lives in `templates/` or in a
174
+ workspace repo:
175
+
176
+ ```bash
177
+ npx agent-native doctor --only no-env-credentials
178
+ ```
179
+
180
+ ## `resolveCredential` sees exactly one organization
181
+
182
+ `resolveCredential(key, { userEmail, orgId })` checks the user scope, then the
183
+ one `orgId` you pass, then the solo workspace. That is the whole search. It is
184
+ correct for a signed-in request, and wrong for two common cases:
185
+
186
+ - **The caller has no organization.** A cron, a scheduled job, or any CLI run
187
+ without a real member identity resolves no `orgId`, so only the user and solo
188
+ scopes are ever consulted — and a shared key is in neither.
189
+ - **The key was synced under a different organization.** `app_secrets` has no
190
+ scope visible to every org (`readAppSecret` is strict equality on
191
+ `(scope, scope_id, key)`), so a key the vault UI advertises as available to
192
+ every app is unreadable from any org except the one that ran the sync.
193
+
194
+ Both produce the same misleading "not set" that the split brain above produces,
195
+ which is why swapping `process.env` for `resolveCredential` can look like a fix
196
+ and change nothing. A workspace app should read shared keys through a resolver
197
+ that also sweeps the caller's other memberships and a designated vault org —
198
+ see `resolveConnectorSecret` and `AGENT_VAULT_ORG_ID` in the builder-workspace
199
+ repo for the shape, including the boot-time assertion that the deployment really
200
+ is single-tenant before a non-membership-gated fallback is safe.
201
+
202
+ **The doctor guard does not catch this second form** — it looks for
203
+ `process.env` reads, and `resolveCredential` is not one. Grep for
204
+ `resolveCredential` yourself and confirm each call sits somewhere a single-org
205
+ lookup is genuinely the right question. Findings that pair it with a
206
+ `?? process.env.KEY` fallback are the sanctioned deploy-level escape hatch; the
207
+ bugs are calls whose value can only live in another org's vault.
208
+
209
+ ## HTTP routes
210
+
211
+ Core routes plugin mounts these under `/_agent-native/secrets/` automatically:
212
+
213
+ - `GET /_agent-native/secrets` — list registered secrets with status (`set`
214
+ / `unset` / `invalid`), metadata, and — for set api-keys — the last 4
215
+ characters. Values are never returned.
216
+ - `POST /_agent-native/secrets/:key` — body `{ value, scope?, scopeId? }`.
217
+ Runs the registered validator; returns 400 with the error on failure.
218
+ - `DELETE /_agent-native/secrets/:key` — remove the stored value.
219
+ - `POST /_agent-native/secrets/:key/test` — re-run the validator against the
220
+ currently stored value.
221
+
222
+ ## Storage & encryption
223
+
224
+ - Values are stored in `app_secrets` (created on-demand; no migration
225
+ needed).
226
+ - Values are encrypted at rest with AES-256-GCM. Generic app-local secrets
227
+ prefer `<APP_NAME>_SECRETS_ENCRYPTION_KEY` (for example,
228
+ `ANALYTICS_SECRETS_ENCRYPTION_KEY`), then `SECRETS_ENCRYPTION_KEY`, then
229
+ `BETTER_AUTH_SECRET`.
230
+ - Workspace-shared `app_secrets` prefer
231
+ `WORKSPACE_SECRETS_ENCRYPTION_KEY`, then the legacy shared
232
+ `SECRETS_ENCRYPTION_KEY`, then a purpose-derived key from `A2A_SECRET`.
233
+ Better Auth and app-scoped keys remain legacy read candidates; a successful
234
+ legacy decrypt is compare-and-swap migrated to the preferred shared key
235
+ without changing the row timestamp.
236
+ - Set the same stable `WORKSPACE_SECRETS_ENCRYPTION_KEY` in every app that
237
+ reads a shared vault. It is intentionally separate from app-local OAuth
238
+ encryption. If the vault still relies on `A2A_SECRET`, rotating A2A material
239
+ also rotates its encryption key. Add the stable vault key everywhere and
240
+ read/migrate existing rows before rotating A2A.
241
+ - To rotate the dedicated workspace key itself, deploy the new value together
242
+ with `WORKSPACE_SECRETS_ENCRYPTION_KEY_PREVIOUS=<old value>`, let reads
243
+ migrate ciphertext, then remove the previous key after the migration window.
244
+ - If no configured key material exists, development uses a machine-local
245
+ fallback and logs a one-time warning. Production fails closed.
246
+
247
+ ## Ad-hoc Keys
248
+
249
+ Ad-hoc keys are user-created secrets that are not declared by the template.
250
+ Users create them through the settings UI or the agent chat to use with
251
+ automations and the `web-request` tool. They support `${keys.NAME}`
252
+ substitution in outbound HTTP requests.
253
+
254
+ ### Ad-hoc API
255
+
256
+ Core routes plugin mounts these under `/_agent-native/secrets/adhoc`:
257
+
258
+ - `GET /_agent-native/secrets/adhoc` — list all ad-hoc keys (name, last 4
259
+ chars, URL allowlist). Values are never returned.
260
+ - `POST /_agent-native/secrets/adhoc` — body `{ name, value, urlAllowlist? }`.
261
+ Creates or updates an ad-hoc key.
262
+ - `DELETE /_agent-native/secrets/adhoc/:name` — remove an ad-hoc key.
263
+
264
+ ### URL Allowlists
265
+
266
+ Each ad-hoc key can have a URL allowlist — an array of origin URLs that
267
+ restrict where the key's value can be sent. The check is origin-level
268
+ (scheme + host + port). If no allowlist is configured, the key can be used
269
+ with any URL.
270
+
271
+ ```ts
272
+ // Creating a key with an allowlist
273
+ POST /_agent-native/secrets/adhoc
274
+ {
275
+ "name": "SLACK_WEBHOOK",
276
+ "value": "<SLACK_WEBHOOK_URL_FROM_SETTINGS>",
277
+ "urlAllowlist": ["https://hooks.slack.com"]
278
+ }
279
+ ```
280
+
281
+ ### `${keys.NAME}` Substitution
282
+
283
+ The `web-request` tool supports `${keys.NAME}` placeholders in the URL,
284
+ headers, and body. Substitution happens server-side after the agent emits
285
+ the tool call — the raw secret value never enters the agent's context.
286
+
287
+ ```ts
288
+ import {
289
+ resolveKeyReferences,
290
+ validateUrlAllowlist,
291
+ } from "@agent-native/core/secrets/substitution";
292
+
293
+ // Resolve all ${keys.NAME} references in a string
294
+ const { resolved, usedKeys } = await resolveKeyReferences(
295
+ "Bearer ${keys.API_TOKEN}",
296
+ "user",
297
+ "user@example.com",
298
+ );
299
+
300
+ // Validate a URL against a key's allowlist
301
+ const allowed = validateUrlAllowlist(
302
+ "https://hooks.slack.com/services/<WORKSPACE>/<CHANNEL>/<SECRET>",
303
+ ["https://hooks.slack.com"],
304
+ );
305
+ ```
306
+
307
+ Key resolution falls back from user scope to workspace scope, so users can
308
+ override shared keys without breaking automations that reference workspace
309
+ defaults.
310
+
311
+ ## Dispatch Vault Access
312
+
313
+ Dispatch workspaces have a vault access policy for workspace app credentials:
314
+
315
+ - `all-apps` is the default. Every saved Dispatch vault key is available to
316
+ every workspace app; `sync-vault-to-app` pushes all vault keys to the target
317
+ app.
318
+ - `manual` requires explicit per-app grants. Use
319
+ `create-vault-grant` / `grant-vault-secrets-to-app`, then
320
+ `sync-vault-to-app`.
321
+
322
+ Use `get-vault-access-settings` before deciding whether to create grants, and
323
+ use `set-vault-access-settings` only when the user asks to change the policy.
324
+
325
+ ### Key Files (ad-hoc)
326
+
327
+ | File | Purpose |
328
+ | ---------------------------------------------- | ------------------------------------------- |
329
+ | `packages/core/src/secrets/substitution.ts` | `resolveKeyReferences()`, `validateUrlAllowlist()` |
330
+ | `packages/core/src/tools/fetch-tool.ts` | `web-request` tool consuming key references |
331
+
332
+ ## Related skills
333
+
334
+ - `onboarding` — the setup checklist that required secrets show up in.
335
+ - `actions` — where you'll read secrets when calling third-party APIs.
336
+ - `authentication` — session scoping; `scope: "user"` uses the session
337
+ email.
338
+ - `security` — input validation and never logging secrets.
339
+ - `automations` — ad-hoc keys power `${keys.NAME}` in automation web requests.
@@ -90,9 +90,9 @@ el.dataset.selectedId = selectedItem?.id || "";
90
90
  **Use configuration-driven rendering** — Extract visual decisions (colors, layouts, sizes) into JSON config files in `data/`. The agent can modify the config (Tier 1) instead of the component source (Tier 2).
91
91
 
92
92
  **Keep localized copy in catalogs** — When editing visible UI copy, labels,
93
- toasts, empty states, prompts, or formatting, read `internationalization` and
94
- update `app/i18n/en-US.ts` plus existing locale catalogs instead of leaving new
95
- inline strings in components.
93
+ toasts, empty states, prompts, or formatting, update the English source catalog.
94
+ Read the optional `internationalization` skill and update additional catalogs
95
+ only when `translations.locales` in `agent-native.config.ts` includes them.
96
96
 
97
97
  ## Don't
98
98
 
@@ -60,7 +60,7 @@ behavior comes from the company design system.
60
60
  ## Component Composition
61
61
 
62
62
  - Use existing primitives before custom markup: `Alert` for callouts, `Badge` for small status labels, `Separator` for dividers, `Skeleton` for placeholders, `Table` for tabular data, and `Card` for framed content.
63
- - Use full card anatomy when appropriate: `CardHeader`, `CardTitle`, `CardDescription`, `CardContent`, and `CardFooter`.
63
+ - Compose cards from `CardHeader`, `CardTitle`, `CardContent`, and `CardFooter`. Leave `CardDescription` out: a card gets a title or a description, never both. See `frontend-design` → Default Surface Density.
64
64
  - Dialog, Sheet, Drawer, and AlertDialog content must include an accessible title. Use visually hidden titles only when the visible UI already communicates the title.
65
65
  - Put items inside their group components: `SelectItem` in `SelectGroup`, `DropdownMenuItem` in `DropdownMenuGroup`, `CommandItem` in `CommandGroup`, and equivalent menu groups.
66
66
  - `TabsTrigger` belongs inside `TabsList`.
@@ -31,6 +31,7 @@ Visibility is coarse. Explicit share grants are fine-grained (per user or per or
31
31
  ### Roles on a share grant
32
32
 
33
33
  - **`viewer`** — read only.
34
+ - **`commenter`** — read + add comments, but cannot edit the resource or manage shares.
34
35
  - **`editor`** — read + write.
35
36
  - **`admin`** — read + write + manage shares. Does NOT replace the single `owner_email` on the resource.
36
37