@agent-native/core 0.152.1 → 0.153.1

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 (927) 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/components/calendar/DayView.tsx +3 -2
  99. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +3 -2
  100. package/corpus/templates/calendar/app/lib/event-layout.ts +16 -35
  101. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
  102. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  103. package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  104. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  105. package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  106. package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  107. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  108. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  109. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  110. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  111. package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  112. package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  113. package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  114. package/corpus/templates/chat/AGENTS.md +4 -5
  115. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
  116. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
  117. package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
  118. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
  119. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
  120. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
  121. package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  122. package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  123. package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
  124. package/corpus/templates/clips/actions/add-comment.ts +1 -2
  125. package/corpus/templates/clips/actions/delete-comment.ts +2 -0
  126. package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
  127. package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
  128. package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
  129. package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
  130. package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
  131. package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
  132. package/corpus/templates/clips/actions/update-comment.ts +1 -1
  133. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
  134. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
  135. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +27 -44
  136. package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
  137. package/corpus/templates/clips/app/components/player/share-dialog.tsx +84 -41
  138. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
  139. package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
  140. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +20 -7
  141. package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
  142. package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
  143. package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
  144. package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
  145. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
  146. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
  147. package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
  148. package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
  149. package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
  150. package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  151. package/corpus/templates/clips/desktop/src/app.tsx +1 -1
  152. package/corpus/templates/clips/desktop/src/styles.css +10 -2
  153. package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
  154. package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
  155. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +2 -2
  156. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  157. package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
  158. package/corpus/templates/clips/desktop/src-tauri/src/util.rs +1 -1
  159. package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
  160. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
  161. package/corpus/templates/clips/shared/share-meta.ts +19 -3
  162. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
  163. package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
  164. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
  165. package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
  166. package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
  167. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
  168. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
  169. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
  170. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
  171. package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  172. package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  173. package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
  174. package/corpus/templates/content/actions/_database-utils.ts +10 -0
  175. package/corpus/templates/content/actions/add-comment.ts +1 -1
  176. package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
  177. package/corpus/templates/content/actions/create-document.ts +1 -0
  178. package/corpus/templates/content/actions/delete-comment.ts +1 -1
  179. package/corpus/templates/content/actions/get-document.ts +9 -1
  180. package/corpus/templates/content/actions/import-content-source.ts +8 -0
  181. package/corpus/templates/content/actions/list-documents.ts +10 -1
  182. package/corpus/templates/content/actions/update-comment.ts +1 -1
  183. package/corpus/templates/content/actions/update-document.ts +11 -0
  184. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +52 -29
  185. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +13 -8
  186. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +62 -2
  187. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +163 -53
  188. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +16 -0
  189. package/corpus/templates/content/app/components/editor/database/settings.tsx +22 -13
  190. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +7 -7
  191. package/corpus/templates/content/app/hooks/use-documents.ts +2 -0
  192. package/corpus/templates/content/app/i18n-data.ts +10 -0
  193. package/corpus/templates/content/app/root.tsx +1 -21
  194. package/corpus/templates/content/changelog/2026-08-05-connect-sources-from-add-column.md +6 -0
  195. package/corpus/templates/content/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  196. package/corpus/templates/content/shared/api.ts +7 -1
  197. package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
  198. package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
  199. package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
  200. package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
  201. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
  202. package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
  203. package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  204. package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
  205. package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
  206. package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
  207. package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
  208. package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
  209. package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
  210. package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
  211. package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
  212. package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
  213. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
  214. package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  215. package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  216. package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
  217. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
  218. package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
  219. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
  220. package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
  221. package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
  222. package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
  223. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
  224. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
  225. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
  226. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
  227. package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  228. package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  229. package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
  230. package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
  231. package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
  232. package/corpus/templates/design/app/i18n/en-US.ts +1 -1
  233. package/corpus/templates/design/app/i18n-data.ts +40 -0
  234. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
  235. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
  236. package/corpus/templates/design/app/pages/Present.tsx +8 -2
  237. package/corpus/templates/design/app/pages/Templates.tsx +1 -0
  238. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
  239. package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
  240. package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  241. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
  242. package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
  243. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
  244. package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
  245. package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
  246. package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
  247. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
  248. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
  249. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
  250. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
  251. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  252. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  253. package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
  254. package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
  255. package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
  256. package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
  257. package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
  258. package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
  259. package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
  260. package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
  261. package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
  262. package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
  263. package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
  264. package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
  265. package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
  266. package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
  267. package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
  268. package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
  269. package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
  270. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
  271. package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
  272. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
  273. package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
  274. package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
  275. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
  276. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
  277. package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
  278. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
  279. package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  280. package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  281. package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
  282. package/corpus/templates/factory/AGENTS.md +10 -1
  283. package/corpus/templates/factory/README.md +18 -7
  284. package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
  285. package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
  286. package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
  287. package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
  288. package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
  289. package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
  290. package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
  291. package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
  292. package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
  293. package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
  294. package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
  295. package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
  296. package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
  297. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
  298. package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
  299. package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
  300. package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
  301. package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
  302. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
  303. package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
  304. package/corpus/templates/factory/app/routes/_index.tsx +5 -87
  305. package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
  306. package/corpus/templates/factory/app/routes/chat.tsx +91 -0
  307. package/corpus/templates/factory/app/routes/factory.tsx +554 -430
  308. package/corpus/templates/factory/app/routes/settings.tsx +1 -1
  309. package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
  310. package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
  311. package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
  312. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
  313. package/corpus/templates/factory/server/triage/review-state.ts +33 -0
  314. package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
  315. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
  316. package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
  317. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
  318. package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
  319. package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
  320. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
  321. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
  322. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
  323. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
  324. package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  325. package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  326. package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
  327. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
  328. package/corpus/templates/forms/shared/types.ts +1 -1
  329. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
  330. package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
  331. package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  332. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
  333. package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
  334. package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
  335. package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
  336. package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
  337. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
  338. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
  339. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
  340. package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  341. package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  342. package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
  343. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
  344. package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
  345. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
  346. package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
  347. package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
  348. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
  349. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
  350. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
  351. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
  352. package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  353. package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  354. package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
  355. package/corpus/templates/mail/actions/send-email.ts +9 -0
  356. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
  357. package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
  358. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
  359. package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
  360. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
  361. package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
  362. package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
  363. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
  364. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
  365. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
  366. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
  367. package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  368. package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  369. package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
  370. package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
  371. package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
  372. package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
  373. package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
  374. package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
  375. package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
  376. package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  377. package/corpus/templates/plan/server/plans.ts +2 -2
  378. package/corpus/templates/plan/shared/types.ts +1 -1
  379. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
  380. package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
  381. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
  382. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
  383. package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
  384. package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
  385. package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
  386. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
  387. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
  388. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
  389. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
  390. package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  391. package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  392. package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
  393. package/corpus/templates/slides/AGENTS.md +4 -0
  394. package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
  395. package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
  396. package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
  397. package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
  398. package/corpus/templates/slides/actions/view-screen.ts +76 -26
  399. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
  400. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
  401. package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
  402. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +81 -81
  403. package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +28 -25
  404. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +175 -10
  405. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +256 -69
  406. package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
  407. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
  408. package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
  409. package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
  410. package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
  411. package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
  412. package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
  413. package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
  414. package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
  415. package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
  416. package/corpus/templates/slides/app/pages/Index.tsx +65 -66
  417. package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  418. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
  419. package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
  420. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
  421. package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
  422. package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
  423. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
  424. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
  425. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
  426. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
  427. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  428. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  429. package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
  430. package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
  431. package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
  432. package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
  433. package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
  434. package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
  435. package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
  436. package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
  437. package/dist/agent/engine/ai-sdk-engine.js +5 -0
  438. package/dist/agent/engine/anthropic-engine.js +8 -0
  439. package/dist/agent/engine/registry.js +24 -19
  440. package/dist/agent/engine/translate-anthropic.js +16 -1
  441. package/dist/agent/production-agent.d.ts +8 -0
  442. package/dist/agent/production-agent.js +25 -2
  443. package/dist/agent/run-manager.js +13 -3
  444. package/dist/automations/service.d.ts +2 -0
  445. package/dist/automations/service.js +5 -1
  446. package/dist/chat-threads/schema.d.ts +2 -2
  447. package/dist/cli/changelog.js +21 -4
  448. package/dist/cli/create.d.ts +12 -1
  449. package/dist/cli/create.js +99 -11
  450. package/dist/cli/index.js +6 -6
  451. package/dist/cli/process.d.ts +7 -0
  452. package/dist/cli/process.js +12 -0
  453. package/dist/cli/workspace-skill-policy.d.ts +15 -0
  454. package/dist/cli/workspace-skill-policy.js +62 -0
  455. package/dist/cli/workspacify.js +36 -0
  456. package/dist/client/AgentPanel.d.ts +14 -2
  457. package/dist/client/AgentPanel.js +44 -26
  458. package/dist/client/AssistantChat.js +90 -182
  459. package/dist/client/FeedbackButton.js +15 -2
  460. package/dist/client/RouteTransitionIndicator.d.ts +14 -2
  461. package/dist/client/RouteTransitionIndicator.js +16 -5
  462. package/dist/client/agent-page/AgentTabsPage.js +19 -6
  463. package/dist/client/app-config.d.ts +3 -0
  464. package/dist/client/app-config.js +6 -0
  465. package/dist/client/app-providers.js +2 -1
  466. package/dist/client/changelog/Changelog.d.ts +2 -1
  467. package/dist/client/changelog/Changelog.js +7 -5
  468. package/dist/client/chat/markdown-renderer.d.ts +3 -1
  469. package/dist/client/chat/markdown-renderer.js +24 -24
  470. package/dist/client/chat/message-components.d.ts +23 -0
  471. package/dist/client/chat/message-components.js +27 -44
  472. package/dist/client/chat/tool-call-display.d.ts +2 -2
  473. package/dist/client/chat/tool-call-display.js +6 -3
  474. package/dist/client/chat-first/app-open-actions.d.ts +28 -0
  475. package/dist/client/chat-first/app-open-actions.js +25 -0
  476. package/dist/client/chat-first/index.d.ts +1 -0
  477. package/dist/client/chat-first/index.js +1 -0
  478. package/dist/client/chat-first/primary-nav.d.ts +2 -1
  479. package/dist/client/chat-first/primary-nav.js +12 -5
  480. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +14 -0
  481. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -0
  482. package/dist/client/error-format.js +32 -3
  483. package/dist/client/extensions/EmbeddedExtension.js +1 -0
  484. package/dist/client/extensions/ExtensionViewer.js +3 -1
  485. package/dist/client/extensions/InlineExtensionFrame.js +1 -0
  486. package/dist/client/extensions/iframe-bridge.d.ts +3 -2
  487. package/dist/client/extensions/iframe-bridge.js +4 -2
  488. package/dist/client/i18n.js +28 -5
  489. package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
  490. package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
  491. package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
  492. package/dist/client/integrations/IntegrationGrid.js +12 -0
  493. package/dist/client/integrations/IntegrationsPanel.js +92 -26
  494. package/dist/client/integrations/index.d.ts +2 -0
  495. package/dist/client/integrations/index.js +2 -0
  496. package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
  497. package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
  498. package/dist/client/onboarding/first-run-enabled.js +1 -5
  499. package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
  500. package/dist/client/onboarding/first-run-startup-gate.js +51 -0
  501. package/dist/client/onboarding/first-run-status.d.ts +7 -0
  502. package/dist/client/onboarding/first-run-status.js +26 -0
  503. package/dist/client/onboarding/index.d.ts +3 -0
  504. package/dist/client/onboarding/index.js +3 -0
  505. package/dist/client/onboarding/use-onboarding.d.ts +1 -0
  506. package/dist/client/onboarding/use-onboarding.js +13 -11
  507. package/dist/client/org/TeamPage.js +174 -28
  508. package/dist/client/org/WorkspaceNotice.js +7 -4
  509. package/dist/client/resources/McpConnectionSuggestion.js +29 -72
  510. package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
  511. package/dist/client/resources/McpIntegrationDialog.js +176 -51
  512. package/dist/client/resources/index.d.ts +1 -0
  513. package/dist/client/resources/index.js +1 -0
  514. package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
  515. package/dist/client/resources/mcp-integration-catalog.js +28 -0
  516. package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
  517. package/dist/client/settings/SettingsPanel.d.ts +6 -0
  518. package/dist/client/settings/SettingsPanel.js +21 -8
  519. package/dist/client/settings/SettingsRow.d.ts +3 -1
  520. package/dist/client/settings/SettingsRow.js +4 -2
  521. package/dist/client/settings/SettingsSkeleton.js +5 -3
  522. package/dist/client/settings/SettingsTabsPage.js +2 -2
  523. package/dist/client/settings/UsageSection.d.ts +4 -1
  524. package/dist/client/settings/UsageSection.js +187 -93
  525. package/dist/client/settings/agent-settings-search.js +6 -2
  526. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
  527. package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
  528. package/dist/client/sharing/ShareButton.d.ts +4 -2
  529. package/dist/client/sharing/ShareButton.js +26 -14
  530. package/dist/client/sharing/ShareDialog.d.ts +1 -1
  531. package/dist/client/sharing/ShareDialog.js +17 -11
  532. package/dist/client/sharing/useShareButtonController.d.ts +2 -1
  533. package/dist/client/sharing/useShareButtonController.js +8 -0
  534. package/dist/client/sharing/useShareDialogController.d.ts +1 -1
  535. package/dist/client/sharing/useShareDialogController.js +2 -1
  536. package/dist/collab/routes.d.ts +1 -1
  537. package/dist/config.d.ts +13 -0
  538. package/dist/config.js +53 -0
  539. package/dist/dashboard-storage/schema.d.ts +2 -2
  540. package/dist/data-programs/schema.d.ts +2 -2
  541. package/dist/extensions/actions.js +2 -1
  542. package/dist/extensions/html-shell.d.ts +2 -2
  543. package/dist/extensions/routes.js +4 -1
  544. package/dist/extensions/schema.d.ts +2 -2
  545. package/dist/file-upload/pre-upload-attachments.js +1 -1
  546. package/dist/framework-tools.js +3 -0
  547. package/dist/history/types.d.ts +1 -1
  548. package/dist/index.d.ts +2 -1
  549. package/dist/index.js +2 -1
  550. package/dist/jobs/background-automation-runner.d.ts +1 -0
  551. package/dist/jobs/background-automation-runner.js +4 -2
  552. package/dist/jobs/frontmatter.d.ts +4 -0
  553. package/dist/jobs/frontmatter.js +16 -0
  554. package/dist/jobs/run-history.js +1 -1
  555. package/dist/jobs/tools.js +9 -5
  556. package/dist/localization/default-messages.d.ts +27 -0
  557. package/dist/localization/default-messages.js +28 -1
  558. package/dist/notifications/routes.d.ts +6 -6
  559. package/dist/onboarding/plugin.js +17 -2
  560. package/dist/org/context.js +16 -0
  561. package/dist/progress/routes.d.ts +1 -1
  562. package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
  563. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  564. package/dist/review/actions/create-review-comment.js +1 -1
  565. package/dist/review/actions/delete-review-comment.js +4 -1
  566. package/dist/review/actions/list-review-comments.js +4 -2
  567. package/dist/review/actions/reply-review-comment.js +1 -1
  568. package/dist/review/types.d.ts +1 -1
  569. package/dist/secrets/routes.d.ts +9 -9
  570. package/dist/server/action-discovery.js +29 -0
  571. package/dist/server/agent-chat/plugin-options.d.ts +7 -0
  572. package/dist/server/agent-chat-plugin.d.ts +2 -0
  573. package/dist/server/agent-chat-plugin.js +12 -4
  574. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  575. package/dist/server/auth.js +18 -4
  576. package/dist/server/better-auth-instance.js +8 -1
  577. package/dist/server/builder-browser.js +31 -0
  578. package/dist/server/magic-link-attribution.d.ts +21 -0
  579. package/dist/server/magic-link-attribution.js +115 -0
  580. package/dist/server/onboarding-html.js +1 -1
  581. package/dist/server/realtime-token.d.ts +1 -1
  582. package/dist/server/transcribe-voice.d.ts +1 -1
  583. package/dist/server/workspace-provider-oauth.js +38 -26
  584. package/dist/setup-connections/index.d.ts +1 -1
  585. package/dist/setup-connections/index.js +1 -1
  586. package/dist/shared/first-run-onboarding.d.ts +6 -0
  587. package/dist/shared/first-run-onboarding.js +6 -0
  588. package/dist/sharing/access.d.ts +1 -1
  589. package/dist/sharing/access.js +4 -1
  590. package/dist/sharing/actions/share-resource.d.ts +1 -1
  591. package/dist/sharing/actions/share-resource.js +2 -2
  592. package/dist/sharing/registry.d.ts +2 -2
  593. package/dist/sharing/schema.d.ts +5 -5
  594. package/dist/sharing/schema.js +9 -6
  595. package/dist/styles/agent-native.css +21 -0
  596. package/dist/styles/chat-history-list.css +1 -1
  597. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  598. package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  599. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  600. package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  601. package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  602. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  603. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  604. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  605. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  606. package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  607. package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  608. package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  609. package/dist/templates/chat/AGENTS.md +4 -5
  610. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  611. package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  612. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  613. package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
  614. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  615. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  616. package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  617. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  618. package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  619. package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  620. package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  621. package/dist/templates/default/AGENTS.md +17 -2
  622. package/dist/templates/default/agent-native.config.ts +6 -0
  623. package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
  624. package/dist/templates/default/app/i18n/de-DE.ts +2 -0
  625. package/dist/templates/default/app/i18n/en-US.ts +3 -1
  626. package/dist/templates/default/app/i18n/es-ES.ts +2 -0
  627. package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
  628. package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
  629. package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
  630. package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
  631. package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
  632. package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
  633. package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
  634. package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  635. package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
  636. package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  637. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  638. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  639. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  640. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  641. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  642. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  643. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  644. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  645. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  646. package/dist/templates/workspace-core/AGENTS.md +9 -3
  647. package/dist/templates/workspace-root/AGENTS.md +26 -1
  648. package/dist/templates/workspace-root/agent-native.config.ts +8 -0
  649. package/dist/triggers/actions.js +2 -2
  650. package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
  651. package/dist/usage/actions/get-usage-alerts.js +16 -0
  652. package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
  653. package/dist/usage/actions/get-usage-metrics.js +26 -0
  654. package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
  655. package/dist/usage/actions/manage-usage-alert.js +48 -0
  656. package/dist/usage/alerts-store.d.ts +78 -0
  657. package/dist/usage/alerts-store.js +592 -0
  658. package/dist/usage/metrics-store.d.ts +95 -0
  659. package/dist/usage/metrics-store.js +386 -0
  660. package/dist/usage/store.js +10 -0
  661. package/dist/vite/action-types-plugin.js +28 -0
  662. package/dist/vite/agent-native-config-loader.d.ts +6 -0
  663. package/dist/vite/agent-native-config-loader.js +54 -2
  664. package/dist/vite/client.js +11 -5
  665. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
  666. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
  667. package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
  668. package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
  669. package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
  670. package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
  671. package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
  672. package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
  673. package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
  674. package/dist/workspace-connections/credential-key-aliases.js +31 -0
  675. package/dist/workspace-connections/credentials.js +1 -25
  676. package/dist/workspace-connections/groups.d.ts +32 -0
  677. package/dist/workspace-connections/groups.js +288 -0
  678. package/dist/workspace-connections/index.d.ts +3 -1
  679. package/dist/workspace-connections/index.js +3 -1
  680. package/dist/workspace-connections/store.d.ts +9 -0
  681. package/dist/workspace-connections/store.js +68 -8
  682. package/docs/content/components.mdx +2 -2
  683. package/docs/content/sharing.mdx +2 -1
  684. package/package.json +10 -2
  685. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  686. package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  687. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  688. package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  689. package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  690. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  691. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  692. package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  693. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  694. package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  695. package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  696. package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  697. package/src/templates/chat/AGENTS.md +4 -5
  698. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  699. package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  700. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  701. package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
  702. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  703. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  704. package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  705. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  706. package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  707. package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  708. package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  709. package/src/templates/default/AGENTS.md +17 -2
  710. package/src/templates/default/agent-native.config.ts +6 -0
  711. package/src/templates/default/app/i18n/ar-SA.ts +2 -0
  712. package/src/templates/default/app/i18n/de-DE.ts +2 -0
  713. package/src/templates/default/app/i18n/en-US.ts +3 -1
  714. package/src/templates/default/app/i18n/es-ES.ts +2 -0
  715. package/src/templates/default/app/i18n/fr-FR.ts +2 -0
  716. package/src/templates/default/app/i18n/hi-IN.ts +2 -0
  717. package/src/templates/default/app/i18n/ja-JP.ts +2 -0
  718. package/src/templates/default/app/i18n/ko-KR.ts +2 -0
  719. package/src/templates/default/app/i18n/pt-BR.ts +2 -0
  720. package/src/templates/default/app/i18n/zh-CN.ts +2 -0
  721. package/src/templates/default/app/i18n/zh-TW.ts +2 -0
  722. package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  723. package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
  724. package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  725. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  726. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  727. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  728. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  729. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  730. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  731. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  732. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  733. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  734. package/src/templates/workspace-core/AGENTS.md +9 -3
  735. package/src/templates/workspace-root/AGENTS.md +26 -1
  736. package/src/templates/workspace-root/agent-native.config.ts +8 -0
  737. package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
  738. package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
  739. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
  740. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  741. package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
  742. package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
  743. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
  744. package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
  745. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  746. package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
  747. package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
  748. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
  749. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  750. package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
  751. package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
  752. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
  753. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  754. package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  755. package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  756. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  757. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  758. package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
  759. package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
  760. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
  761. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  762. package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
  763. package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
  764. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
  765. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  766. package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
  767. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  768. package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
  769. package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
  770. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
  771. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  772. package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
  773. package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
  774. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
  775. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  776. package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
  777. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
  778. package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
  779. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  780. package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
  781. package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
  782. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
  783. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  784. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
  785. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  786. package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
  787. package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
  788. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
  789. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  790. package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
  791. package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
  792. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
  793. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  794. package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
  795. package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
  796. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
  797. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  798. package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
  799. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
  800. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
  801. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  802. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  803. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  804. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  805. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  806. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  807. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  808. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  809. package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  810. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  811. package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  812. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  813. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  814. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  815. package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  816. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  817. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  818. package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  819. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  820. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  821. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  822. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  823. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  824. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  825. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  826. package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  827. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  828. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  829. package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  830. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  831. package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  832. package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  833. package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  834. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  835. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  836. package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  837. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  838. package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  839. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  840. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  841. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  842. package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  843. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  844. package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  845. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  846. package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  847. package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  848. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  849. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  850. package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  851. package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  852. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  853. package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  854. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  855. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  856. package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  857. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  858. package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  859. package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  860. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  861. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  862. package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  863. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  864. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
  865. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  866. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  867. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  868. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  869. package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  870. package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  871. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  872. package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  873. package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  874. package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  875. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  876. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  877. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  878. package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  879. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  880. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  881. package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  882. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  883. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  884. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  885. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  886. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  887. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  888. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  889. package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  890. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  891. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  892. package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  893. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  894. package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  895. package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  896. package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  897. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  898. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  899. package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  900. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  901. package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  902. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  903. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  904. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  905. package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  906. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  907. package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  908. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  909. package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  910. package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  911. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  912. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  913. package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  914. package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  915. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  916. package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  917. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  918. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  919. package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  920. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  921. package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  922. package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  923. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  924. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  925. package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  926. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  927. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
@@ -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
 
@@ -3,9 +3,10 @@ name: turn-into-app
3
3
  description: >-
4
4
  Turn visible project context, a proven thread, skill, or workflow into a
5
5
  runnable Agent-Native app with simple buttons, visible agent steps, preview,
6
- and deployment handoff. Use when a user invokes `/turn-into-app`,
7
- `/make-into-app`, or asks to make a workflow into an app, including from
8
- Claude or ChatGPT on the web.
6
+ and deployment handoff. Use when a user invokes `/turn-into-app` or asks to
7
+ make a workflow into an app, including from
8
+ Claude or ChatGPT on the web, including when the source is a spreadsheet
9
+ link or upload.
9
10
  user-invocable: true
10
11
  scope: both
11
12
  metadata:
@@ -16,43 +17,59 @@ metadata:
16
17
 
17
18
  ## Host execution boundary
18
19
 
19
- The build location depends on the host. Treat this as a hard routing rule:
20
-
21
- - In Claude Web, ChatGPT Web, or a Claude/ChatGPT Project on the web, you are
22
- the source analyst and handoff orchestrator. You must not build the app in
23
- the host sandbox. Do not run `npm`, `pnpm`, `npx`, `agent-native create`, or
24
- `add-app`; do not edit files, create artifacts, or start a local dev server.
25
- After writing the bounded source brief, call the connected Dispatch action
20
+ Classify the runtime before choosing a build path. The presence of a Dispatch
21
+ or Builder connector does not make a coding host an online host:
22
+
23
+ - **Local coding host** - Codex Desktop/Code, Claude Code, Cursor, or any
24
+ runtime with a terminal, filesystem, and target checkout. Build in that
25
+ checkout: scaffold, edit, run, and verify the app locally. Do not call
26
+ `start-workspace-app-creation`, `create_workspace_app`, or any Builder
27
+ handoff for this path. The local implementation steps below are required.
28
+ - **Non-coding browser host** - Claude Web, ChatGPT Web, or a
29
+ Claude/ChatGPT Project in the browser when no target checkout or filesystem
30
+ is available. Act as the source analyst and handoff orchestrator. Do not run
31
+ `npm`, `pnpm`, `npx`, `agent-native create`, or `add-app`; do not edit files,
32
+ create artifacts, or start a local dev server. After writing the bounded
33
+ source brief, call the connected Dispatch action
26
34
  `start-workspace-app-creation`. Pass the brief and repeatable workflow in
27
35
  `prompt`, plus the inferred `appId`, `description`, `template`, and selected
28
- `resourceIds` when available. This is the Builder handoff.
29
- - Do not substitute the generic `create_workspace_app` MCP tool in an online
30
- host. That tool is a local workspace scaffolder, not the Builder handoff.
31
- - Connect the Agent-Native Dispatch MCP connector only. Dispatch uses the
32
- authenticated Builder Projects API to reuse or provision the workspace
33
- project before starting the Builder Cloud Agent; a separate Builder CMS MCP
34
- connection is not required for this workflow.
35
- - If `start-workspace-app-creation` is not available or Dispatch is not
36
+ `resourceIds` when available. This is the Builder handoff for browser hosts
37
+ only.
38
+ - If the host is ambiguous, inspect the environment. A real cwd, terminal, and
39
+ target workspace mean local coding host. Do not infer browser mode from the
40
+ availability of a Builder connector.
41
+ - For the browser-only path, do not substitute the generic
42
+ `create_workspace_app` MCP tool. That tool is a local workspace scaffolder,
43
+ not the Builder handoff. Connect the Agent-Native Dispatch MCP connector
44
+ only; Dispatch uses the authenticated Builder Projects API to reuse or
45
+ provision the workspace project before starting the Builder Cloud Agent.
46
+ - If the browser-only handoff action is unavailable or Dispatch is not
36
47
  authenticated, stop with the connector setup needed. Do not fall back to a
37
- local build or claim that the app exists.
38
- - In Claude Code, Codex Code, or another local code-agent runtime with a target
39
- workspace, follow the local implementation steps below. The local agent may
40
- scaffold, edit, run, and verify the app there.
48
+ host sandbox build or claim that the app exists.
49
+ - Never invent a Builder branch URL. If Dispatch returns only an acknowledgement
50
+ or a path without a URL, report the handoff as unverified rather than calling
51
+ it a ready or verified Builder branch.
41
52
 
42
53
  Once the source brief is sufficient to identify a repeatable workflow, the
43
54
  handoff is non-interactive. Do not ask the user for visual, product, copy,
44
55
  layout, template, integration, or implementation choices that can be resolved
45
56
  from the source. Select the source's recommended option; otherwise choose the
46
57
  most direct conventional default and record the assumption for later review.
58
+ There is one source-integrity exception: for a spreadsheet, if candidate
59
+ workflows or the input/output mapping remain materially ambiguous after the
60
+ bounded review, ask one compact confirmation question before handoff. Show the
61
+ recommended interpretation and let the user confirm, correct, or multi-select
62
+ the candidates. Do not turn this into a generic app-builder questionnaire.
47
63
  Only stop for a genuine hard blocker such as missing authorization, a
48
64
  destructive external action, an ambiguous target workspace, or no identifiable
49
65
  workflow at all.
50
66
 
51
67
  ## Default behavior
52
68
 
53
- For a local code-agent runtime this is an end-to-end build skill, not a request
54
- for an app proposal. For an online host, the end-to-end result is a verified
55
- Builder handoff and the resulting workspace app, not code written in the host.
69
+ For a local coding host this is an end-to-end local build skill, not a request
70
+ for an app proposal. For a non-coding browser host, the end-to-end result is a
71
+ verified Builder handoff and the resulting workspace app, not code written in
72
+ the browser host.
56
73
 
57
74
  - With no argument, choose the source in this order: visible project context,
58
75
  then the current thread. A fresh Claude or ChatGPT Project is a valid source
@@ -66,9 +83,10 @@ Builder handoff and the resulting workspace app, not code written in the host.
66
83
  - With an attachment or path, read the supplied artifact as the source.
67
84
  - Do not ask the user to restate context that is already in the thread.
68
85
  - When invoked from an Agent-Native app, use its visible project context first,
69
- then the current thread, and use the available workspace/coding-agent
70
- handoff when the current runtime cannot edit files. Do not claim the app
71
- exists without an actual path and verification result.
86
+ then the current thread. If the current runtime has a target checkout, use
87
+ the local implementation path; use a workspace/coding-agent handoff only
88
+ when the runtime cannot edit files. Do not claim the app exists without an
89
+ actual path and verification result.
72
90
 
73
91
  ## Source support
74
92
 
@@ -98,22 +116,62 @@ Spreadsheet attachments are valid source artifacts for this workflow:
98
116
  provider API catalog/docs/request path to read only the required sheet or
99
117
  range. If that connection is unavailable, ask for a CSV/XLSX export or the
100
118
  required connection; do not use a public export URL to bypass access.
119
+ - First inventory the workbook before choosing an app: list every available
120
+ worksheet, its bounded shape, whether it is readable, and any visible
121
+ formulas or formatting signals. Do not assume the first tab is the product
122
+ or that every tab deserves its own app.
123
+ - Treat the workbook's visual conventions as evidence, not as a silent truth:
124
+ yellow-filled cells are proposed inputs, blue text is proposed output, and
125
+ black text is static historical context. Apply those signals to cell/range
126
+ mappings only when the source exposes formatting metadata. The current
127
+ bounded Excel preview is text-only, so an upload alone cannot prove those
128
+ colors; ask the user to confirm or clarify instead of inferring from plain
129
+ text. See [the spreadsheet source guide](references/spreadsheet-source.md).
130
+ - If the workbook contains several plausible repeatable jobs, present one
131
+ compact Q&A review with multi-select candidate options. Each option must
132
+ show its proposed name, source worksheet/range IDs, purpose, inferred inputs,
133
+ inferred outputs, confidence, and unresolved question. Default-select only
134
+ high-confidence recommendations. Mark the strongest recommendations in the
135
+ Q&A UI without silently selecting them. When the user selects multiple candidates,
136
+ implement them as separate named left-navigation destinations in one app,
137
+ with each destination preserving its own source tabs/ranges and I/O mapping.
138
+ - In generated app code, render this review with
139
+ `askUserQuestion` from `@agent-native/core/client/agent-chat` using
140
+ `allowMultiple: true`, stable candidate IDs as option values, and
141
+ `allowFreeText: true` for corrections. It renders inline in the agent panel;
142
+ do not build a custom modal. Group a large workbook into 2-4 candidate jobs
143
+ per question instead of presenting a tab dump.
144
+ - Before handoff or the first generated-app run, show the proposed source,
145
+ inputs, outputs, static historicals, refresh/snapshot choice, and truncation
146
+ limits as a review state. Let the user confirm or correct the mapping. Do not
147
+ publish, overwrite the source, or claim a complete import before confirmation.
148
+ - Do not promote every numeric cell or model assumption into an editable app
149
+ input. Classify candidates as primary controllable drivers, secondary
150
+ controllable levers, or fixed model context. Opening balances, current-period
151
+ anchors, historicals, and policy or tax rates stay in fixed context unless
152
+ the source or user explicitly identifies them as editable.
153
+ - Rank the primary edit surface by controllability and modeled leverage. Put the
154
+ smallest useful set of high-impact drivers first, keep lower-frequency levers
155
+ behind progressive disclosure, and keep fixed context visible for orientation
156
+ without presenting it as a control. Name these categories in the source brief
157
+ and preserve the distinction in the generated app's actions and agent context.
101
158
  - Decide whether the generated app needs a one-time snapshot or a refreshable
102
159
  source. For a snapshot, pass bounded sample context and provenance to the
103
- Builder handoff. For a live source, preserve the provider/file identity,
104
- worksheet or range, and refresh semantics, then implement a scoped action for
105
- reads or refreshes. Never copy workbook bytes, base64 data, credentials, or a
106
- full unbounded sheet into SQL, application state, or the handoff prompt.
160
+ local build or the browser-only Builder handoff selected by the host. For a
161
+ live source, preserve the provider/file identity, worksheet or range, and
162
+ refresh semantics, then implement a scoped action for reads or refreshes.
163
+ Never copy workbook bytes, base64 data, credentials, or a full unbounded
164
+ sheet into SQL, application state, or the handoff prompt.
107
165
  - Do not claim the app imported the whole workbook when only a preview was
108
166
  available. Keep unreadable, partial, and failed source states distinct from
109
167
  an empty sheet.
110
168
 
111
- For local code-agent runtimes, deliver a fresh app in a new directory,
112
- implement the repeatable workflow with buttons and agent handoffs, start its dev
113
- server, verify the main path, and continue through build/deployment handoff. Do
114
- not stop at a plan. For online hosts, call Dispatch first after the source brief,
115
- then report the returned Builder branch/path and verify the workspace app through
116
- Dispatch when it becomes available.
169
+ For local coding hosts, deliver a fresh app in a new directory, implement the
170
+ repeatable workflow with buttons and agent handoffs, start its dev server,
171
+ verify the main path, and continue through build/deployment handoff. Do not stop
172
+ at a plan or route the work to Builder. For non-coding browser hosts, call
173
+ Dispatch first after the source brief, then report only the returned Builder
174
+ branch URL/path and verification result; if the URL is absent, say so plainly.
117
175
 
118
176
  ## Fresh project context mode
119
177
 
@@ -182,6 +240,11 @@ Generated apps must follow the shared Agent-Native surface model:
182
240
  message or neutral action icon, or no icon when the button label is enough.
183
241
  - Make the left navigation describe domain destinations. Chat is a separate
184
242
  destination, not the label for every app page.
243
+ - For a spreadsheet-derived app with multiple confirmed candidates, make each
244
+ candidate a separate named left-navigation destination. Keep the shared
245
+ source provenance visible, but show that candidate's selected worksheets,
246
+ ranges, inputs, outputs, historical context, and confirmation state on its
247
+ destination.
185
248
  - Start with one primary action and one compact state. Put setup choices,
186
249
  advanced inputs, diagnostics, and long explanations behind progressive
187
250
  disclosure or later workflow steps.
@@ -211,6 +274,14 @@ brief:
211
274
  - the buttons, review points, and retry states a user needs;
212
275
  - data, permissions, integrations, and failure boundaries.
213
276
 
277
+ For a spreadsheet source, also include the workbook/file or spreadsheet ID,
278
+ worksheet and range candidates, source snapshot/live semantics, formatting
279
+ signals and their confidence, selected candidate destinations, and the exact
280
+ confirmation or clarification still needed. A spreadsheet's inputs and
281
+ outputs have two layers: the mapped source cells/ranges, and the generated
282
+ app's user-facing results/actions. Name both so the Builder does not confuse
283
+ an output cell with an app write or a historical value with an editable input.
284
+
214
285
  Preserve useful judgment from the source, but do not turn a one-off answer,
215
286
  private data, or an unverified result into a product contract. If the source is
216
287
  not available or does not contain a repeatable job, say what is missing rather
@@ -243,12 +314,13 @@ Do not use `create` for an existing workspace; it scaffolds a new standalone
243
314
  workspace rather than adding an app to the current one.
244
315
 
245
316
  When the source came from a fresh external Project and the target is a Builder
246
- workspace, the online host path is mandatory: after writing the source brief,
247
- call `start-workspace-app-creation` with a concise prompt, the inferred app id,
248
- and the brief's repeatable workflow. Pass selected workspace resource IDs when
249
- they are available, rather than pasting entire knowledge files. Continue from
250
- the returned workspace path or Builder branch handoff and report the actual
251
- verification result. Do not run the local scaffold commands in this host mode.
317
+ workspace, the browser-only host path is mandatory: after writing the source
318
+ brief, call `start-workspace-app-creation` with a concise prompt, the inferred
319
+ app id, and the brief's repeatable workflow. Pass selected workspace resource
320
+ IDs when they are available, rather than pasting entire knowledge files.
321
+ Continue from the returned workspace path or Builder branch handoff and report
322
+ the actual verification result. This rule does not override local host
323
+ classification: Codex/Claude Code with a target checkout must build locally.
252
324
 
253
325
  Use a first-party template only when it materially fits the workflow. Keep the
254
326
  new app independent from the source thread's working tree unless the user
@@ -28,11 +28,13 @@ Write a compact brief before starting the app:
28
28
  ```text
29
29
  Source: host-provided Claude/ChatGPT Project context
30
30
  Provenance: project instructions, selected knowledge files, and visible runs
31
+ Source artifact type: project context, thread, skill, spreadsheet link, or upload
31
32
  Project goal:
32
33
  Configuration and constraints:
33
34
  Knowledge sources:
34
35
  Repeatable workflow:
35
36
  Inputs and outputs:
37
+ Workbook candidates and confirmation: worksheet/range options, inferred I/O, selected destinations, unresolved questions
36
38
  Judgment and review points:
37
39
  Representative runs: none, or 1-3 selected examples
38
40
  Integrations and permissions:
@@ -72,9 +74,13 @@ skill.
72
74
  The brief is an implementation authorization, not a questionnaire. After a
73
75
  repeatable workflow is identifiable, choose any source-recommended option
74
76
  automatically. For unresolved non-blocking choices, use the most direct
75
- conventional default, record it under assumptions, and continue. Ask only when
76
- there is no identifiable workflow, no authorized target workspace, or a
77
- destructive/credential boundary genuinely prevents the handoff.
77
+ conventional default, record it under assumptions, and continue. A spreadsheet
78
+ is the narrow exception when its candidate workflows or input/output mapping
79
+ cannot be grounded from the bounded source: show the recommended candidates
80
+ and mapping in one compact multi-select confirmation, then continue after the
81
+ user confirms or corrects it. Ask only for that source-integrity clarification,
82
+ no identifiable workflow, no authorized target workspace, or a
83
+ destructive/credential boundary that genuinely prevents the handoff.
78
84
 
79
85
  In a new Project chat, say:
80
86