@agent-native/core 0.152.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +208 -0
  3. package/corpus/templates/analytics/.agents/skills/context-awareness/SKILL.md +206 -0
  4. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +6 -4
  5. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +73 -80
  6. package/corpus/templates/analytics/.agents/skills/portability/SKILL.md +107 -0
  7. package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +339 -0
  8. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +3 -3
  9. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +1 -1
  10. package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +1 -0
  11. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +116 -44
  12. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  13. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  14. package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +93 -0
  15. package/corpus/templates/analytics/actions/data-source-status.ts +4 -1
  16. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +2 -2
  17. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +7 -2
  18. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +7 -1
  19. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +30 -32
  20. package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +10 -0
  21. package/corpus/templates/analytics/app/global.css +5 -1
  22. package/corpus/templates/analytics/app/lib/data-source-status.ts +3 -3
  23. package/corpus/templates/analytics/app/lib/resource-access.ts +6 -1
  24. package/corpus/templates/analytics/app/pages/DataSources.tsx +79 -51
  25. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
  26. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -0
  27. package/corpus/templates/analytics/changelog/2026-08-12-analytics-sidebar-ask-toggle-and-compact-rail.md +6 -0
  28. package/corpus/templates/analytics/changelog/2026-08-12-data-source-statuses-now-distinguish-workspace-access-from-c.md +6 -0
  29. package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +559 -147
  30. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +79 -5
  31. package/corpus/templates/analytics/server/plugins/db.ts +84 -0
  32. package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +208 -0
  33. package/corpus/templates/assets/.agents/skills/context-awareness/SKILL.md +206 -0
  34. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +73 -80
  35. package/corpus/templates/assets/.agents/skills/portability/SKILL.md +107 -0
  36. package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +339 -0
  37. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +3 -3
  38. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +1 -1
  39. package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +1 -0
  40. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +116 -44
  41. package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  42. package/corpus/templates/assets/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  43. package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +93 -0
  44. package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +13 -5
  45. package/corpus/templates/assets/app/lib/asset-urls.ts +13 -0
  46. package/corpus/templates/assets/app/routes/asset.$id.tsx +16 -6
  47. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1 -0
  48. package/corpus/templates/assets/app/routes/library.tsx +336 -78
  49. package/corpus/templates/assets/shared/api.ts +1 -1
  50. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +3 -2
  51. package/corpus/templates/brain/.agents/skills/brain/SKILL.md +8 -6
  52. package/corpus/templates/brain/.agents/skills/context-awareness/SKILL.md +206 -0
  53. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +73 -80
  54. package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +7 -0
  55. package/corpus/templates/brain/.agents/skills/portability/SKILL.md +107 -0
  56. package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +339 -0
  57. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +3 -3
  58. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +1 -1
  59. package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +1 -0
  60. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +116 -44
  61. package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  62. package/corpus/templates/brain/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  63. package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +93 -0
  64. package/corpus/templates/brain/AGENTS.md +2 -1
  65. package/corpus/templates/brain/actions/ask-brain.ts +19 -16
  66. package/corpus/templates/brain/actions/create-source.ts +11 -2
  67. package/corpus/templates/brain/actions/import-markdown-files.ts +237 -0
  68. package/corpus/templates/brain/actions/resanitize-captures.ts +3 -1
  69. package/corpus/templates/brain/actions/test-slack-connection.ts +12 -3
  70. package/corpus/templates/brain/actions/update-source.ts +10 -1
  71. package/corpus/templates/brain/app/components/brain/Surface.tsx +1 -11
  72. package/corpus/templates/brain/app/i18n-data.ts +111 -0
  73. package/corpus/templates/brain/app/lib/brain.ts +23 -1
  74. package/corpus/templates/brain/app/routes/knowledge.tsx +0 -2
  75. package/corpus/templates/brain/app/routes/ops.tsx +0 -2
  76. package/corpus/templates/brain/app/routes/review.tsx +0 -2
  77. package/corpus/templates/brain/app/routes/search.tsx +0 -2
  78. package/corpus/templates/brain/app/routes/sources.tsx +354 -6
  79. package/corpus/templates/brain/server/lib/brain-response-guard.ts +63 -1
  80. package/corpus/templates/brain/server/lib/brain.ts +9 -6
  81. package/corpus/templates/brain/server/lib/connectors.ts +20 -6
  82. package/corpus/templates/brain/server/lib/search.ts +9 -1
  83. package/corpus/templates/brain/server/lib/source-credentials.ts +95 -57
  84. package/corpus/templates/brain/server/plugins/agent-chat.ts +5 -2
  85. package/corpus/templates/brain/server/plugins/auth.ts +2 -0
  86. package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +208 -0
  87. package/corpus/templates/calendar/.agents/skills/context-awareness/SKILL.md +206 -0
  88. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +73 -80
  89. package/corpus/templates/calendar/.agents/skills/portability/SKILL.md +107 -0
  90. package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +339 -0
  91. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +3 -3
  92. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +1 -1
  93. package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +1 -0
  94. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +116 -44
  95. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  96. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  97. package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +93 -0
  98. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
  99. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  100. package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  101. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  102. package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  103. package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  104. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  105. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  106. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  107. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  108. package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  109. package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  110. package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  111. package/corpus/templates/chat/AGENTS.md +4 -5
  112. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
  113. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
  114. package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
  115. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
  116. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
  117. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
  118. package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  119. package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  120. package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
  121. package/corpus/templates/clips/actions/add-comment.ts +1 -2
  122. package/corpus/templates/clips/actions/delete-comment.ts +2 -0
  123. package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
  124. package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
  125. package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
  126. package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
  127. package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
  128. package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
  129. package/corpus/templates/clips/actions/update-comment.ts +1 -1
  130. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
  131. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
  132. package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
  133. package/corpus/templates/clips/app/components/player/share-dialog.tsx +12 -8
  134. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
  135. package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
  136. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
  137. package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
  138. package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
  139. package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
  140. package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
  141. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
  142. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
  143. package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
  144. package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
  145. package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
  146. package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  147. package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
  148. package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
  149. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  150. package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
  151. package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
  152. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
  153. package/corpus/templates/clips/shared/share-meta.ts +19 -3
  154. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
  155. package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
  156. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
  157. package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
  158. package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
  159. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
  160. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
  161. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
  162. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
  163. package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  164. package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  165. package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
  166. package/corpus/templates/content/actions/_database-utils.ts +10 -0
  167. package/corpus/templates/content/actions/add-comment.ts +1 -1
  168. package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
  169. package/corpus/templates/content/actions/create-document.ts +1 -0
  170. package/corpus/templates/content/actions/delete-comment.ts +1 -1
  171. package/corpus/templates/content/actions/get-document.ts +9 -1
  172. package/corpus/templates/content/actions/import-content-source.ts +8 -0
  173. package/corpus/templates/content/actions/list-documents.ts +10 -1
  174. package/corpus/templates/content/actions/update-comment.ts +1 -1
  175. package/corpus/templates/content/actions/update-document.ts +11 -0
  176. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +196 -30
  177. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +52 -29
  178. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +13 -8
  179. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +62 -2
  180. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +163 -53
  181. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +16 -0
  182. package/corpus/templates/content/app/components/editor/database/settings.tsx +22 -13
  183. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +7 -7
  184. package/corpus/templates/content/app/hooks/use-documents.ts +2 -0
  185. package/corpus/templates/content/app/i18n-data.ts +10 -0
  186. package/corpus/templates/content/app/root.tsx +1 -21
  187. package/corpus/templates/content/changelog/2026-08-03-choose-text-or-a-heading-from-one-compact-formatting-control.md +6 -0
  188. package/corpus/templates/content/changelog/2026-08-05-connect-sources-from-add-column.md +6 -0
  189. package/corpus/templates/content/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  190. package/corpus/templates/content/docs/solutions/evidence/content-text-selector/README.md +26 -0
  191. package/corpus/templates/content/shared/api.ts +7 -1
  192. package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
  193. package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
  194. package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
  195. package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
  196. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
  197. package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
  198. package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  199. package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
  200. package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
  201. package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
  202. package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
  203. package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
  204. package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
  205. package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
  206. package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
  207. package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
  208. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
  209. package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  210. package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  211. package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
  212. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
  213. package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
  214. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
  215. package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
  216. package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
  217. package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
  218. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
  219. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
  220. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
  221. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
  222. package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  223. package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  224. package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
  225. package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
  226. package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
  227. package/corpus/templates/design/app/i18n/en-US.ts +1 -1
  228. package/corpus/templates/design/app/i18n-data.ts +40 -0
  229. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
  230. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
  231. package/corpus/templates/design/app/pages/Present.tsx +8 -2
  232. package/corpus/templates/design/app/pages/Templates.tsx +1 -0
  233. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
  234. package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
  235. package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  236. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
  237. package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
  238. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
  239. package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
  240. package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
  241. package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
  242. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
  243. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
  244. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
  245. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
  246. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  247. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  248. package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
  249. package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
  250. package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
  251. package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
  252. package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
  253. package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
  254. package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
  255. package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
  256. package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
  257. package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
  258. package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
  259. package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
  260. package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
  261. package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
  262. package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
  263. package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
  264. package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
  265. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
  266. package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
  267. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
  268. package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
  269. package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
  270. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
  271. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
  272. package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
  273. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
  274. package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  275. package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  276. package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
  277. package/corpus/templates/factory/AGENTS.md +10 -1
  278. package/corpus/templates/factory/README.md +18 -7
  279. package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
  280. package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
  281. package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
  282. package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
  283. package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
  284. package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
  285. package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
  286. package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
  287. package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
  288. package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
  289. package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
  290. package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
  291. package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
  292. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
  293. package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
  294. package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
  295. package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
  296. package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
  297. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
  298. package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
  299. package/corpus/templates/factory/app/routes/_index.tsx +5 -87
  300. package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
  301. package/corpus/templates/factory/app/routes/chat.tsx +91 -0
  302. package/corpus/templates/factory/app/routes/factory.tsx +554 -427
  303. package/corpus/templates/factory/app/routes/settings.tsx +1 -1
  304. package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
  305. package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
  306. package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
  307. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
  308. package/corpus/templates/factory/server/triage/review-state.ts +33 -0
  309. package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
  310. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
  311. package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
  312. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
  313. package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
  314. package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
  315. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
  316. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
  317. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
  318. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
  319. package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  320. package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  321. package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
  322. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
  323. package/corpus/templates/forms/shared/types.ts +1 -1
  324. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
  325. package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
  326. package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  327. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
  328. package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
  329. package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
  330. package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
  331. package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
  332. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
  333. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
  334. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
  335. package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  336. package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  337. package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
  338. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
  339. package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
  340. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
  341. package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
  342. package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
  343. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
  344. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
  345. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
  346. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
  347. package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  348. package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  349. package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
  350. package/corpus/templates/mail/actions/send-email.ts +9 -0
  351. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
  352. package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
  353. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
  354. package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
  355. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
  356. package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
  357. package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
  358. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
  359. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
  360. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
  361. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
  362. package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  363. package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  364. package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
  365. package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
  366. package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
  367. package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
  368. package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
  369. package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
  370. package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
  371. package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  372. package/corpus/templates/plan/server/plans.ts +2 -2
  373. package/corpus/templates/plan/shared/types.ts +1 -1
  374. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
  375. package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
  376. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
  377. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
  378. package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
  379. package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
  380. package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
  381. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
  382. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
  383. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
  384. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
  385. package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  386. package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  387. package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
  388. package/corpus/templates/slides/AGENTS.md +4 -0
  389. package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
  390. package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
  391. package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
  392. package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
  393. package/corpus/templates/slides/actions/view-screen.ts +76 -26
  394. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
  395. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
  396. package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
  397. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +80 -80
  398. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +125 -10
  399. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +244 -9
  400. package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
  401. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
  402. package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
  403. package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
  404. package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
  405. package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
  406. package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
  407. package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
  408. package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
  409. package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
  410. package/corpus/templates/slides/app/pages/Index.tsx +65 -66
  411. package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  412. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
  413. package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
  414. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
  415. package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
  416. package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
  417. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
  418. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
  419. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
  420. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
  421. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  422. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  423. package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
  424. package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
  425. package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
  426. package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
  427. package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
  428. package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
  429. package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
  430. package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
  431. package/dist/agent/engine/ai-sdk-engine.js +5 -0
  432. package/dist/agent/engine/anthropic-engine.js +8 -0
  433. package/dist/agent/engine/registry.js +24 -19
  434. package/dist/agent/engine/translate-anthropic.js +16 -1
  435. package/dist/agent/production-agent.d.ts +8 -0
  436. package/dist/agent/production-agent.js +66 -0
  437. package/dist/automations/service.d.ts +2 -0
  438. package/dist/automations/service.js +5 -1
  439. package/dist/chat-threads/schema.d.ts +2 -2
  440. package/dist/cli/changelog.js +21 -4
  441. package/dist/cli/create.d.ts +12 -1
  442. package/dist/cli/create.js +99 -11
  443. package/dist/cli/index.js +6 -6
  444. package/dist/cli/process.d.ts +7 -0
  445. package/dist/cli/process.js +12 -0
  446. package/dist/cli/workspace-skill-policy.d.ts +15 -0
  447. package/dist/cli/workspace-skill-policy.js +62 -0
  448. package/dist/cli/workspacify.js +36 -0
  449. package/dist/client/AgentPanel.d.ts +14 -2
  450. package/dist/client/AgentPanel.js +40 -24
  451. package/dist/client/AssistantChat.js +93 -183
  452. package/dist/client/FeedbackButton.js +15 -2
  453. package/dist/client/RouteTransitionIndicator.d.ts +14 -2
  454. package/dist/client/RouteTransitionIndicator.js +16 -5
  455. package/dist/client/agent-page/AgentTabsPage.js +19 -6
  456. package/dist/client/app-config.d.ts +3 -0
  457. package/dist/client/app-config.js +6 -0
  458. package/dist/client/app-providers.js +2 -1
  459. package/dist/client/changelog/Changelog.d.ts +2 -1
  460. package/dist/client/changelog/Changelog.js +7 -5
  461. package/dist/client/chat/markdown-renderer.d.ts +3 -1
  462. package/dist/client/chat/markdown-renderer.js +24 -24
  463. package/dist/client/chat/message-components.d.ts +23 -0
  464. package/dist/client/chat/message-components.js +27 -44
  465. package/dist/client/chat/tool-call-display.d.ts +2 -2
  466. package/dist/client/chat/tool-call-display.js +6 -3
  467. package/dist/client/chat-first/app-open-actions.d.ts +28 -0
  468. package/dist/client/chat-first/app-open-actions.js +25 -0
  469. package/dist/client/chat-first/index.d.ts +1 -0
  470. package/dist/client/chat-first/index.js +1 -0
  471. package/dist/client/chat-first/primary-nav.d.ts +2 -1
  472. package/dist/client/chat-first/primary-nav.js +12 -5
  473. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +14 -0
  474. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -0
  475. package/dist/client/error-format.js +32 -3
  476. package/dist/client/extensions/EmbeddedExtension.js +1 -0
  477. package/dist/client/extensions/ExtensionViewer.js +3 -1
  478. package/dist/client/extensions/InlineExtensionFrame.js +1 -0
  479. package/dist/client/extensions/iframe-bridge.d.ts +3 -2
  480. package/dist/client/extensions/iframe-bridge.js +4 -2
  481. package/dist/client/guided-questions.d.ts +15 -1
  482. package/dist/client/guided-questions.js +33 -15
  483. package/dist/client/i18n.js +28 -5
  484. package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
  485. package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
  486. package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
  487. package/dist/client/integrations/IntegrationGrid.js +12 -0
  488. package/dist/client/integrations/IntegrationsPanel.js +92 -26
  489. package/dist/client/integrations/index.d.ts +2 -0
  490. package/dist/client/integrations/index.js +2 -0
  491. package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
  492. package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
  493. package/dist/client/onboarding/first-run-enabled.js +1 -5
  494. package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
  495. package/dist/client/onboarding/first-run-startup-gate.js +51 -0
  496. package/dist/client/onboarding/first-run-status.d.ts +7 -0
  497. package/dist/client/onboarding/first-run-status.js +26 -0
  498. package/dist/client/onboarding/index.d.ts +3 -0
  499. package/dist/client/onboarding/index.js +3 -0
  500. package/dist/client/onboarding/use-onboarding.d.ts +1 -0
  501. package/dist/client/onboarding/use-onboarding.js +13 -11
  502. package/dist/client/org/TeamPage.js +174 -28
  503. package/dist/client/resources/McpConnectionSuggestion.js +29 -72
  504. package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
  505. package/dist/client/resources/McpIntegrationDialog.js +176 -51
  506. package/dist/client/resources/index.d.ts +1 -0
  507. package/dist/client/resources/index.js +1 -0
  508. package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
  509. package/dist/client/resources/mcp-integration-catalog.js +28 -0
  510. package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
  511. package/dist/client/settings/SettingsPanel.d.ts +6 -0
  512. package/dist/client/settings/SettingsPanel.js +21 -8
  513. package/dist/client/settings/SettingsRow.d.ts +3 -1
  514. package/dist/client/settings/SettingsRow.js +4 -2
  515. package/dist/client/settings/SettingsSkeleton.js +5 -3
  516. package/dist/client/settings/SettingsTabsPage.js +2 -2
  517. package/dist/client/settings/UsageSection.d.ts +4 -1
  518. package/dist/client/settings/UsageSection.js +187 -93
  519. package/dist/client/settings/agent-settings-search.js +6 -2
  520. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
  521. package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
  522. package/dist/client/sharing/ShareButton.d.ts +2 -0
  523. package/dist/client/sharing/ShareButton.js +9 -2
  524. package/dist/client/sharing/ShareDialog.js +4 -1
  525. package/dist/client/sharing/useShareButtonController.d.ts +2 -1
  526. package/dist/client/sharing/useShareButtonController.js +8 -0
  527. package/dist/client/sharing/useShareDialogController.d.ts +1 -1
  528. package/dist/client/sharing/useShareDialogController.js +2 -1
  529. package/dist/config.d.ts +13 -0
  530. package/dist/config.js +53 -0
  531. package/dist/dashboard-storage/schema.d.ts +2 -2
  532. package/dist/data-programs/schema.d.ts +2 -2
  533. package/dist/extensions/actions.js +2 -1
  534. package/dist/extensions/html-shell.d.ts +2 -2
  535. package/dist/extensions/routes.js +4 -1
  536. package/dist/extensions/schema.d.ts +2 -2
  537. package/dist/file-upload/pre-upload-attachments.js +1 -1
  538. package/dist/framework-tools.js +3 -0
  539. package/dist/history/types.d.ts +1 -1
  540. package/dist/index.d.ts +2 -1
  541. package/dist/index.js +2 -1
  542. package/dist/integrations/webhook-handler.js +11 -3
  543. package/dist/jobs/background-automation-runner.d.ts +1 -0
  544. package/dist/jobs/background-automation-runner.js +4 -2
  545. package/dist/jobs/frontmatter.d.ts +4 -0
  546. package/dist/jobs/frontmatter.js +16 -0
  547. package/dist/jobs/run-history.js +1 -1
  548. package/dist/jobs/tools.js +9 -5
  549. package/dist/localization/default-messages.d.ts +27 -0
  550. package/dist/localization/default-messages.js +28 -1
  551. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  552. package/dist/notifications/routes.d.ts +2 -2
  553. package/dist/observability/routes.d.ts +3 -3
  554. package/dist/onboarding/plugin.js +17 -2
  555. package/dist/org/context.js +16 -0
  556. package/dist/progress/routes.d.ts +1 -1
  557. package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
  558. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  559. package/dist/review/actions/create-review-comment.js +1 -1
  560. package/dist/review/actions/delete-review-comment.js +4 -1
  561. package/dist/review/actions/list-review-comments.js +4 -2
  562. package/dist/review/actions/reply-review-comment.js +1 -1
  563. package/dist/review/types.d.ts +1 -1
  564. package/dist/server/action-discovery.js +29 -0
  565. package/dist/server/agent-chat/context-tools.js +27 -6
  566. package/dist/server/agent-chat/plugin-options.d.ts +7 -0
  567. package/dist/server/agent-chat-plugin.d.ts +2 -0
  568. package/dist/server/agent-chat-plugin.js +12 -4
  569. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  570. package/dist/server/builder-browser.js +31 -0
  571. package/dist/server/onboarding-html.js +1 -1
  572. package/dist/server/realtime-token.d.ts +1 -1
  573. package/dist/server/workspace-provider-oauth.js +38 -26
  574. package/dist/setup-connections/index.d.ts +1 -1
  575. package/dist/setup-connections/index.js +1 -1
  576. package/dist/shared/first-run-onboarding.d.ts +6 -0
  577. package/dist/shared/first-run-onboarding.js +6 -0
  578. package/dist/sharing/access.d.ts +1 -1
  579. package/dist/sharing/access.js +4 -1
  580. package/dist/sharing/actions/share-resource.d.ts +1 -1
  581. package/dist/sharing/actions/share-resource.js +2 -2
  582. package/dist/sharing/registry.d.ts +2 -2
  583. package/dist/sharing/schema.d.ts +5 -5
  584. package/dist/sharing/schema.js +9 -6
  585. package/dist/styles/agent-native.css +21 -0
  586. package/dist/styles/chat-history-list.css +1 -1
  587. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  588. package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  589. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  590. package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  591. package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  592. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  593. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  594. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  595. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  596. package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  597. package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  598. package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  599. package/dist/templates/chat/AGENTS.md +4 -5
  600. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  601. package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  602. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  603. package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
  604. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  605. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  606. package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  607. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  608. package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  609. package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  610. package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  611. package/dist/templates/default/AGENTS.md +17 -2
  612. package/dist/templates/default/agent-native.config.ts +6 -0
  613. package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
  614. package/dist/templates/default/app/i18n/de-DE.ts +2 -0
  615. package/dist/templates/default/app/i18n/en-US.ts +3 -1
  616. package/dist/templates/default/app/i18n/es-ES.ts +2 -0
  617. package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
  618. package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
  619. package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
  620. package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
  621. package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
  622. package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
  623. package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
  624. package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  625. package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
  626. package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  627. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  628. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  629. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  630. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  631. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  632. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  633. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  634. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  635. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  636. package/dist/templates/workspace-core/AGENTS.md +9 -3
  637. package/dist/templates/workspace-root/AGENTS.md +26 -1
  638. package/dist/templates/workspace-root/agent-native.config.ts +8 -0
  639. package/dist/triggers/actions.js +2 -2
  640. package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
  641. package/dist/usage/actions/get-usage-alerts.js +16 -0
  642. package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
  643. package/dist/usage/actions/get-usage-metrics.js +26 -0
  644. package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
  645. package/dist/usage/actions/manage-usage-alert.js +48 -0
  646. package/dist/usage/alerts-store.d.ts +78 -0
  647. package/dist/usage/alerts-store.js +592 -0
  648. package/dist/usage/metrics-store.d.ts +95 -0
  649. package/dist/usage/metrics-store.js +386 -0
  650. package/dist/usage/store.js +10 -0
  651. package/dist/vite/action-types-plugin.js +28 -0
  652. package/dist/vite/agent-native-config-loader.d.ts +6 -0
  653. package/dist/vite/agent-native-config-loader.js +54 -2
  654. package/dist/vite/client.js +11 -5
  655. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
  656. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
  657. package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
  658. package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
  659. package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
  660. package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
  661. package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
  662. package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
  663. package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
  664. package/dist/workspace-connections/credential-key-aliases.js +31 -0
  665. package/dist/workspace-connections/credentials.js +1 -25
  666. package/dist/workspace-connections/groups.d.ts +32 -0
  667. package/dist/workspace-connections/groups.js +288 -0
  668. package/dist/workspace-connections/index.d.ts +3 -1
  669. package/dist/workspace-connections/index.js +3 -1
  670. package/dist/workspace-connections/store.d.ts +9 -0
  671. package/dist/workspace-connections/store.js +68 -8
  672. package/docs/content/components.mdx +2 -2
  673. package/docs/content/sharing.mdx +2 -1
  674. package/package.json +10 -2
  675. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  676. package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  677. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  678. package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  679. package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  680. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  681. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  682. package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  683. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  684. package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  685. package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  686. package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  687. package/src/templates/chat/AGENTS.md +4 -5
  688. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  689. package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  690. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  691. package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
  692. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  693. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  694. package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  695. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  696. package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  697. package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  698. package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  699. package/src/templates/default/AGENTS.md +17 -2
  700. package/src/templates/default/agent-native.config.ts +6 -0
  701. package/src/templates/default/app/i18n/ar-SA.ts +2 -0
  702. package/src/templates/default/app/i18n/de-DE.ts +2 -0
  703. package/src/templates/default/app/i18n/en-US.ts +3 -1
  704. package/src/templates/default/app/i18n/es-ES.ts +2 -0
  705. package/src/templates/default/app/i18n/fr-FR.ts +2 -0
  706. package/src/templates/default/app/i18n/hi-IN.ts +2 -0
  707. package/src/templates/default/app/i18n/ja-JP.ts +2 -0
  708. package/src/templates/default/app/i18n/ko-KR.ts +2 -0
  709. package/src/templates/default/app/i18n/pt-BR.ts +2 -0
  710. package/src/templates/default/app/i18n/zh-CN.ts +2 -0
  711. package/src/templates/default/app/i18n/zh-TW.ts +2 -0
  712. package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  713. package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
  714. package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  715. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  716. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  717. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  718. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  719. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  720. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  721. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  722. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  723. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  724. package/src/templates/workspace-core/AGENTS.md +9 -3
  725. package/src/templates/workspace-root/AGENTS.md +26 -1
  726. package/src/templates/workspace-root/agent-native.config.ts +8 -0
  727. package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
  728. package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
  729. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
  730. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  731. package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
  732. package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
  733. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
  734. package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
  735. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  736. package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
  737. package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
  738. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
  739. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  740. package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
  741. package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
  742. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
  743. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  744. package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  745. package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  746. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  747. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  748. package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
  749. package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
  750. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
  751. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  752. package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
  753. package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
  754. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
  755. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  756. package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
  757. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  758. package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
  759. package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
  760. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
  761. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  762. package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
  763. package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
  764. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
  765. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  766. package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
  767. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
  768. package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
  769. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  770. package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
  771. package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
  772. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
  773. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  774. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
  775. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  776. package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
  777. package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
  778. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
  779. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  780. package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
  781. package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
  782. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
  783. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  784. package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
  785. package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
  786. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
  787. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  788. package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
  789. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
  790. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
  791. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  792. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  793. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  794. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  795. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  796. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  797. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  798. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  799. package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  800. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  801. package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  802. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  803. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  804. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  805. package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  806. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  807. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  808. package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  809. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  810. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  811. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  812. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  813. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  814. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  815. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  816. package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  817. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  818. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  819. package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  820. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  821. package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  822. package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  823. package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  824. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  825. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  826. package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  827. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  828. package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  829. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  830. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  831. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  832. package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  833. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  834. package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  835. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  836. package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  837. package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  838. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  839. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  840. package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  841. package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  842. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  843. package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  844. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  845. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  846. package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  847. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  848. package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  849. package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  850. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  851. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  852. package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  853. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  854. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
  855. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  856. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  857. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  858. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  859. package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  860. package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  861. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  862. package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  863. package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  864. package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  865. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  866. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  867. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  868. package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  869. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  870. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  871. package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  872. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  873. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  874. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  875. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  876. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  877. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  878. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  879. package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  880. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  881. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  882. package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  883. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  884. package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  885. package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  886. package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  887. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  888. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  889. package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  890. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  891. package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  892. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  893. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  894. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  895. package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  896. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  897. package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  898. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  899. package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  900. package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  901. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  902. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  903. package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  904. package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  905. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  906. package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  907. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  908. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  909. package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  910. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  911. package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  912. package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  913. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  914. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  915. package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  916. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  917. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
@@ -22,7 +22,7 @@ export function meta() {
22
22
 
23
23
  export default function SettingsRoute() {
24
24
  const t = useT();
25
- const agentSettingsTabs = useAgentSettingsTabs();
25
+ const agentSettingsTabs = useAgentSettingsTabs({ usageAppId: "factory" });
26
26
  useSetPageTitle(t("settings.title"));
27
27
 
28
28
  const generalSearchEntries = useMemo<SettingsSearchEntry[]>(
@@ -1,6 +1,7 @@
1
1
  import { resolveCredential } from "@agent-native/core/credentials";
2
2
  import { orgMembers, resolveOrgIdForEmail } from "@agent-native/core/org";
3
3
  import { readAppSecret } from "@agent-native/core/secrets";
4
+ import { resolveWorkspaceConnectionCredentialForApp } from "@agent-native/core/workspace-connections";
4
5
  import { eq, sql } from "drizzle-orm";
5
6
 
6
7
  import { getDb } from "../db/index.js";
@@ -13,6 +14,14 @@ export interface ResolveConnectorSecretOptions {
13
14
  orgId?: string | null;
14
15
  }
15
16
 
17
+ const WORKSPACE_PROVIDER_BY_KEY: Record<string, string> = {
18
+ GITHUB_TOKEN: "github",
19
+ SENTRY_AUTH_TOKEN: "sentry",
20
+ SENTRY_SERVER_TOKEN: "sentry",
21
+ SLACK_BOT_TOKEN: "slack",
22
+ SLACK_BOT_TOKEN_2: "slack",
23
+ };
24
+
16
25
  function isMissingTableError(err: unknown): boolean {
17
26
  const message = err instanceof Error ? err.message : String(err);
18
27
  return (
@@ -79,6 +88,22 @@ export async function resolveConnectorSecret(
79
88
  const primaryOrgId =
80
89
  options.orgId?.trim() || (await resolveOrgIdForEmail(userEmail));
81
90
 
91
+ const workspaceProvider = WORKSPACE_PROVIDER_BY_KEY[key];
92
+ if (workspaceProvider) {
93
+ try {
94
+ const connected = await resolveWorkspaceConnectionCredentialForApp({
95
+ appId: "factory",
96
+ provider: workspaceProvider,
97
+ key,
98
+ userEmail,
99
+ orgId: primaryOrgId,
100
+ });
101
+ if (connected.available && connected.value) return connected.value.trim();
102
+ } catch (error) {
103
+ if (!isMissingTableError(error)) throw error;
104
+ }
105
+ }
106
+
82
107
  const userSecret = await readVaultSecret(key, "user", userEmail);
83
108
  if (userSecret) return userSecret;
84
109
 
@@ -0,0 +1,34 @@
1
+ import {
2
+ createProviderApiRuntime,
3
+ type ProviderApiDocsOptions,
4
+ type ProviderApiRequestArgs,
5
+ } from "@agent-native/core/provider-api";
6
+ import { getCredentialContext } from "@agent-native/core/server";
7
+
8
+ export const FACTORY_APP_ID = "factory";
9
+
10
+ const runtime = createProviderApiRuntime({
11
+ appId: FACTORY_APP_ID,
12
+ localCredentialSource: "factory_local",
13
+ getCredentialContext: () => {
14
+ const ctx = getCredentialContext();
15
+ if (!ctx) {
16
+ throw new Error(
17
+ "Factory provider API requests require an authenticated request context.",
18
+ );
19
+ }
20
+ return ctx;
21
+ },
22
+ });
23
+
24
+ export function listProviderApiCatalog(provider?: string) {
25
+ return runtime.listCatalog(provider);
26
+ }
27
+
28
+ export function fetchProviderApiDocs(options: ProviderApiDocsOptions) {
29
+ return runtime.fetchDocs(options);
30
+ }
31
+
32
+ export function executeProviderApiRequest(args: ProviderApiRequestArgs) {
33
+ return runtime.executeRequest(args);
34
+ }
@@ -18,6 +18,9 @@ const INITIAL_TOOL_NAMES = [
18
18
  "get-triage-item",
19
19
  "poll-slack-channel",
20
20
  "get-slack-feedback-context",
21
+ "provider-api-catalog",
22
+ "provider-api-docs",
23
+ "provider-api-request",
21
24
  "poll-github-sources",
22
25
  "poll-sentry-errors",
23
26
  "evaluate-triage-item",
@@ -33,15 +36,16 @@ const INITIAL_TOOL_NAMES = [
33
36
 
34
37
  const options = {
35
38
  appId: "factory",
39
+ backgroundMcpTools: "all",
36
40
  actions: loadActionsFromStaticRegistry(actionsRegistry),
37
41
  leanPrompt: true,
38
42
  initialToolNames: INITIAL_TOOL_NAMES,
39
43
  resolveOrgId: async (event) => (await getOrgContext(event)).orgId,
40
44
  systemPrompt: `You are the Factory agent.
41
45
 
42
- Factory is a visual factory builder. It observes Slack feedback, GitHub issues,
43
- Sentry errors, and pull-request evidence, renders the current factory graph, and
44
- executes only the explicit automation prompts that are stored in the organization.
46
+ Factory is a visual factory builder. It observes source evidence, renders the
47
+ current factory graph, and executes only the explicit automation prompts that
48
+ are stored in the organization.
45
49
  Use the Factory actions as the source of truth. When a user asks to
46
50
  create or change a factory, first inspect the current graph, then propose a complete
47
51
  versioned graph through save-factory-graph with source=ai and a concise changeSummary.
@@ -49,6 +53,14 @@ Never hide a graph change in prose: the visual map and the saved graph must agre
49
53
  The graph is currently a reviewable blueprint, not the runtime router: automation
50
54
  markdown resources are the runtime prompts, while enabled triage rules are evaluated
51
55
  in parallel against the same evidence. Do not claim that an edge changes execution.
56
+ Workspace integrations and credentials are shared agent capabilities, configured in
57
+ Dispatch or the shared app settings. Factory never asks for, copies, or stores
58
+ provider keys per factory. Start with provider-api-catalog to discover the
59
+ workspace's connected provider APIs, use provider-api-docs when an endpoint is
60
+ unclear, and use provider-api-request with the shared credentials. The normalized
61
+ poll-slack-channel, poll-github-sources, and poll-sentry-errors actions are legacy
62
+ observer adapters for the default triage queue, not a list of Factory integrations
63
+ or a limit on what agents can use.
52
64
  For rule or guard changes, use the triage rule actions and preserve
53
65
  normalizeTriagePolicyGuards; do not encode policy in graph JSON.
54
66
  Use add-factory-comment for durable comments attached to the selected node or edge.
@@ -157,22 +157,36 @@ function subscribeToAutomationFailures(): void {
157
157
  type AutomationSeed = {
158
158
  name: string;
159
159
  schedule: string;
160
+ legacySchedules?: string[];
160
161
  timezone?: string;
162
+ model: string;
163
+ maxIterations: number;
164
+ maxRunInputTokens: number;
161
165
  body: string;
162
166
  };
163
167
 
168
+ const FACTORY_DEFAULT_MODEL =
169
+ process.env.FACTORY_AUTOMATION_MODEL?.trim() || "gpt-5.6-luna";
170
+ const FACTORY_DEFAULT_MAX_ITERATIONS = 32;
171
+ const FACTORY_DEFAULT_MAX_RUN_INPUT_TOKENS = 1_000_000;
172
+
164
173
  const AUTOMATION_SEEDS: AutomationSeed[] = [
165
174
  {
166
175
  name: "factory-slack-feedback",
167
- schedule: "* * * * *",
176
+ schedule: "*/5 * * * *",
177
+ legacySchedules: ["* * * * *"],
178
+ model: FACTORY_DEFAULT_MODEL,
179
+ maxIterations: FACTORY_DEFAULT_MAX_ITERATIONS,
180
+ maxRunInputTokens: FACTORY_DEFAULT_MAX_RUN_INPUT_TOKENS,
168
181
  body: `
169
182
  # Factory Slack feedback triage
170
183
 
171
184
  Read the Factory configuration. When Slack polling is enabled and a channel is
172
- configured, call poll-slack-channel first. Then list at most 2 received Slack
173
- items by passing limit 2, process them sequentially, and call
174
- get-slack-feedback-context for each item before classifying it. Never use the
175
- action's default page size.
185
+ configured, call poll-slack-channel first. Then list at most 2 new or changed
186
+ Slack items by passing needsReview true, source slack, and limit 2. Process
187
+ them sequentially, and call get-slack-feedback-context for each item before
188
+ classifying it. Never list the full queue or use the action's default page
189
+ size.
176
190
 
177
191
  Start work only for a clear bug: a concrete broken behavior, reproducible
178
192
  failure, error, regression, stuck run, incorrect result, or a report with a
@@ -200,13 +214,17 @@ PR, merge, or fix unless an action returned that state.
200
214
  name: "factory-sentry-errors",
201
215
  schedule: "0 9 * * *",
202
216
  timezone: "America/Los_Angeles",
217
+ model: FACTORY_DEFAULT_MODEL,
218
+ maxIterations: 24,
219
+ maxRunInputTokens: FACTORY_DEFAULT_MAX_RUN_INPUT_TOKENS,
203
220
  body: `
204
221
  # Factory Sentry error triage
205
222
 
206
223
  Read the Factory configuration. When Sentry polling is enabled and a Sentry
207
- organization is configured, call poll-sentry-errors. List at most 3 received
208
- Sentry items by passing limit 3 and inspect the title, culprit, level, event
209
- count, and errorReport metadata. Never use the action's default page size.
224
+ organization is configured, call poll-sentry-errors. List at most 3 new or
225
+ changed errors by passing needsReview true, source sentry, and limit 3. Inspect
226
+ the title, culprit, level, event count, and errorReport metadata. Never list the
227
+ full queue or use the action's default page size.
210
228
 
211
229
  Only classify a concrete unresolved error as a clear bug when the Sentry
212
230
  evidence is sufficient to investigate. Do not dispatch on noise, expected
@@ -221,14 +239,19 @@ run callback or PR observation confirms it.
221
239
  },
222
240
  {
223
241
  name: "factory-github-issues",
224
- schedule: "* * * * *",
242
+ schedule: "0 * * * *",
243
+ legacySchedules: ["* * * * *", "*/5 * * * *"],
244
+ model: FACTORY_DEFAULT_MODEL,
245
+ maxIterations: FACTORY_DEFAULT_MAX_ITERATIONS,
246
+ maxRunInputTokens: FACTORY_DEFAULT_MAX_RUN_INPUT_TOKENS,
225
247
  body: `
226
248
  # Factory GitHub issue triage
227
249
 
228
250
  Read the Factory configuration. When GitHub source polling is enabled and a
229
251
  repository is configured, call poll-github-sources with includeIssues true and
230
- includePullRequests false. List at most 3 received github_issue items by
231
- passing limit 3. Never use the action's default page size.
252
+ includePullRequests false. List at most 3 new or changed issues by passing
253
+ needsReview true, source github_issue, and limit 3. Never list the full queue or
254
+ use the action's default page size.
232
255
 
233
256
  Treat an issue as a clear bug only when it has a concrete error report,
234
257
  reproduction, incorrect behavior, regression, or specific failing path. Do
@@ -243,14 +266,19 @@ confirmation.
243
266
  },
244
267
  {
245
268
  name: "factory-pr-governance",
246
- schedule: "*/5 * * * *",
269
+ schedule: "*/10 * * * *",
270
+ legacySchedules: ["*/5 * * * *"],
271
+ model: FACTORY_DEFAULT_MODEL,
272
+ maxIterations: 40,
273
+ maxRunInputTokens: 2_000_000,
247
274
  body: `
248
275
  # Factory pull-request governance
249
276
 
250
277
  Read the Factory configuration. When GitHub polling is enabled and a repository
251
278
  is configured, call poll-github-sources with includeIssues false and
252
- includePullRequests true. List at most 3 github pull-request items by passing
253
- limit 3. Never use the action's default page size.
279
+ includePullRequests true. List at most 3 new or changed pull requests by
280
+ passing needsReview true, source github, and limit 3. Never list the full queue
281
+ or use the action's default page size.
254
282
 
255
283
  For each open agent-native PR, inspect the item and classify whether it is a
256
284
  clear bug fix or has product or UX implications. Call
@@ -272,14 +300,19 @@ governance action confirms it.
272
300
  },
273
301
  {
274
302
  name: "factory-pr-babysit",
275
- schedule: "*/2 * * * *",
303
+ schedule: "*/5 * * * *",
304
+ legacySchedules: ["*/2 * * * *"],
305
+ model: FACTORY_DEFAULT_MODEL,
306
+ maxIterations: FACTORY_DEFAULT_MAX_ITERATIONS,
307
+ maxRunInputTokens: FACTORY_DEFAULT_MAX_RUN_INPUT_TOKENS,
276
308
  body: `
277
309
  # Factory builder-io-bot PR babysitting
278
310
 
279
311
  Read the Factory configuration. When GitHub polling is enabled and a repository
280
312
  is configured, call poll-github-sources with includeIssues false and
281
- includePullRequests true. List at most 3 open github pull-request items by
282
- passing limit 3. Never use the action's default page size.
313
+ includePullRequests true. List at most 3 new or changed pull requests by
314
+ passing needsReview true, source github, and limit 3. Never list the full queue
315
+ or use the action's default page size.
283
316
 
284
317
  For each item, call babysit-agent-native-pull-request. That action fetches fresh
285
318
  GitHub and ai-services evidence and is the only place allowed to decide whether
@@ -319,14 +352,14 @@ function defaultGithubPollingEnabled(): 0 | 1 {
319
352
  function automationPromptGuard(name: string): string | undefined {
320
353
  switch (name) {
321
354
  case "factory-slack-feedback":
322
- return "Runtime safety bound: pass limit 2 to list-triage-items, process at most two Slack items sequentially, and never use the default page size.";
355
+ return "Runtime safety bound: call list-triage-items with needsReview true, source slack, and limit 2; process at most two Slack items sequentially, and never use the default page size.";
323
356
  case "factory-sentry-errors":
324
- return "Runtime safety bound: pass limit 3 to list-triage-items and process at most three Sentry items.";
357
+ return "Runtime safety bound: call list-triage-items with needsReview true, source sentry, and limit 3; process at most three Sentry items.";
325
358
  case "factory-github-issues":
326
- return "Runtime safety bound: pass limit 3 to list-triage-items and process at most three GitHub issue items.";
359
+ return "Runtime safety bound: call list-triage-items with needsReview true, source github_issue, and limit 3; process at most three GitHub issue items.";
327
360
  case "factory-pr-governance":
328
361
  case "factory-pr-babysit":
329
- return "Runtime safety bound: pass limit 3 to list-triage-items and process at most three pull-request items.";
362
+ return "Runtime safety bound: call list-triage-items with needsReview true, source github, and limit 3; process at most three pull-request items.";
330
363
  default:
331
364
  return undefined;
332
365
  }
@@ -348,6 +381,18 @@ function setFrontmatterField(
348
381
  return `${content.slice(0, end)}\n${key}: ${value}${content.slice(end)}`;
349
382
  }
350
383
 
384
+ function frontmatterField(content: string, key: string): string | undefined {
385
+ if (!content.startsWith("---\n")) return undefined;
386
+ const end = content.indexOf("\n---", 4);
387
+ if (end === -1) return undefined;
388
+ const match = content
389
+ .slice(4, end)
390
+ .match(new RegExp(`^${key}:\\s*(.*)$`, "m"));
391
+ const value = match?.[1]?.trim();
392
+ if (!value) return undefined;
393
+ return value.replace(/^(\"|')|((\"|')$)/g, "");
394
+ }
395
+
351
396
  function automationContent(
352
397
  ownerEmail: string,
353
398
  orgId: string,
@@ -362,6 +407,9 @@ appId: factory
362
407
  orgId: ${orgId}
363
408
  createdBy: ${ownerEmail}
364
409
  runAs: creator
410
+ model: ${seed.model}
411
+ maxIterations: ${seed.maxIterations}
412
+ maxRunInputTokens: ${seed.maxRunInputTokens}
365
413
  ---
366
414
  ${seed.body.trim()}
367
415
  `;
@@ -400,9 +448,9 @@ async function ensureOrganizationAutomations(
400
448
  return;
401
449
  }
402
450
 
403
- // Earlier Factory versions created these rows without the metadata the
404
- // list and action guards use. Patch only identity metadata and keep the
405
- // user's prompt, model, schedule, and enabled state intact.
451
+ // Earlier Factory versions created these rows without identity and run
452
+ // budget metadata. Preserve explicit prompt/model/budget edits, while
453
+ // repairing only missing defaults and the old built-in poll cadence.
406
454
  let repaired = existing.content;
407
455
  repaired = setFrontmatterField(repaired, "triggerType", "schedule");
408
456
  repaired = setFrontmatterField(repaired, "domain", "factory");
@@ -410,6 +458,30 @@ async function ensureOrganizationAutomations(
410
458
  repaired = setFrontmatterField(repaired, "orgId", orgId);
411
459
  repaired = setFrontmatterField(repaired, "createdBy", ownerEmail);
412
460
  repaired = setFrontmatterField(repaired, "runAs", "creator");
461
+ if (!frontmatterField(repaired, "model")) {
462
+ repaired = setFrontmatterField(repaired, "model", seed.model);
463
+ }
464
+ if (!frontmatterField(repaired, "maxIterations")) {
465
+ repaired = setFrontmatterField(
466
+ repaired,
467
+ "maxIterations",
468
+ String(seed.maxIterations),
469
+ );
470
+ }
471
+ if (!frontmatterField(repaired, "maxRunInputTokens")) {
472
+ repaired = setFrontmatterField(
473
+ repaired,
474
+ "maxRunInputTokens",
475
+ String(seed.maxRunInputTokens),
476
+ );
477
+ }
478
+ if (
479
+ (seed.legacySchedules ?? []).includes(
480
+ frontmatterField(repaired, "schedule") ?? "",
481
+ )
482
+ ) {
483
+ repaired = setFrontmatterField(repaired, "schedule", seed.schedule);
484
+ }
413
485
  const promptGuard = automationPromptGuard(seed.name);
414
486
  if (promptGuard && !repaired.includes(promptGuard)) {
415
487
  repaired = `${repaired.trimEnd()}\n\n${promptGuard}\n`;
@@ -0,0 +1,33 @@
1
+ export interface TriageReviewSnapshot {
2
+ title?: string | null;
3
+ summary?: string | null;
4
+ sourceUrl?: string | null;
5
+ coverage?: string | null;
6
+ lastSeenAt?: string | null;
7
+ headSha?: string | null;
8
+ }
9
+
10
+ /** Reopen an item only when the provider evidence changed since the last poll. */
11
+ export function hasTriageSourceChanged(
12
+ existing: TriageReviewSnapshot | undefined,
13
+ next: TriageReviewSnapshot,
14
+ ): boolean {
15
+ if (!existing) return true;
16
+ return (
17
+ (next.title !== undefined && existing.title !== next.title) ||
18
+ (next.summary !== undefined && existing.summary !== next.summary) ||
19
+ (next.sourceUrl !== undefined && existing.sourceUrl !== next.sourceUrl) ||
20
+ (next.coverage !== undefined && existing.coverage !== next.coverage) ||
21
+ (next.lastSeenAt !== undefined &&
22
+ existing.lastSeenAt !== next.lastSeenAt) ||
23
+ (next.headSha !== undefined && existing.headSha !== next.headSha)
24
+ );
25
+ }
26
+
27
+ export function statusAfterTriageSourceUpdate(
28
+ existingStatus: string | undefined,
29
+ sourceChanged: boolean,
30
+ reviewStatus: string,
31
+ ): string {
32
+ return sourceChanged ? reviewStatus : (existingStatus ?? reviewStatus);
33
+ }
@@ -67,6 +67,7 @@ function toEnvelope(
67
67
  summary: compactText(message.text),
68
68
  channelId,
69
69
  threadTs,
70
+ metadata: { messageTs: message.ts },
70
71
  coverage:
71
72
  message.reply_count && message.reply_count > 0 ? "partial" : "complete",
72
73
  };
@@ -0,0 +1,208 @@
1
+ ---
2
+ name: adding-a-feature
3
+ description: >-
4
+ The four-area checklist every new feature must complete. Use when adding any
5
+ feature, integration, or capability to ensure the agent and UI stay in parity.
6
+ scope: dev
7
+ metadata:
8
+ internal: true
9
+ ---
10
+
11
+ # Adding a Feature — The Four-Area Checklist
12
+
13
+ ## Rule
14
+
15
+ Every new feature MUST update all four areas. Skipping any one breaks the agent-native contract — the agent and UI must always be equal partners.
16
+
17
+ Scope check first: this is the checklist for a feature that adds app data or a new capability. A restyle, a copy change, or a screen with no new data model and no new agent-visible operation only needs the areas it actually touches — do not manufacture actions, state keys, or a skill for it.
18
+
19
+ ## Why
20
+
21
+ Agent-native apps are defined by parity: everything the UI can do, the agent can do, and vice versa. A feature that only has UI is invisible to the agent. A feature that only has scripts is invisible to the user. A feature without app-state sync means the agent is blind to what the user is doing.
22
+
23
+ ## The Checklist
24
+
25
+ When you add a new feature, work through these four areas in order:
26
+
27
+ ### 1. UI Component
28
+
29
+ Build the user-facing interface — a page, component, dialog, or route. Use `useActionQuery` and `useActionMutation` from `@agent-native/core/client` to call actions for data fetching and mutations. Do not create a custom REST endpoint just so React can call action-backed data; the action endpoint already exists.
30
+
31
+ **Auto-refresh on agent writes is non-negotiable** — when the agent mutates data, the UI must reflect the change without a manual refresh. There are two paths, and you must pick the right one:
32
+
33
+ - **`useActionQuery` / `useActionMutation`** — covered automatically. The framework's `useDbSync` invalidates `["action"]` on every change event, so every `useActionQuery` hook refetches on agent activity. No extra wiring required. **Prefer this path.**
34
+ - **Raw `useQuery` with custom keys** — needs explicit wiring. Fold `useChangeVersions([<source>, "action"])` from `@agent-native/core/client` into the `queryKey` and set `placeholderData: (prev) => prev`. The `action` source is the reliable signal (the agent runner emits it after every successful tool call); the resource-specific source (`"dashboards"`, `"analyses"`, `"settings"`, etc.) is bonus when emitted. Without this wiring, agent writes will be invisible until manual refresh — that breaks the framework's #1 promise.
35
+
36
+ ```tsx
37
+ import { useChangeVersions } from "@agent-native/core/client/hooks";
38
+ import { useQuery } from "@tanstack/react-query";
39
+
40
+ const v = useChangeVersions(["dashboards", "action"]);
41
+ useQuery({
42
+ queryKey: ["dashboard", id, v],
43
+ queryFn: () => fetchDashboard(id),
44
+ placeholderData: (prev) => prev, // no flicker on refetch
45
+ });
46
+ ```
47
+
48
+ See the `real-time-sync` skill for the full pattern and source catalog.
49
+
50
+ ### 2. Action
51
+
52
+ Create an action in `actions/` using `defineAction`. This serves double duty: the agent calls it as a tool, and the UI calls it through `useActionQuery` / `useActionMutation` while the framework owns the HTTP transport. Set `http: { method: "GET" }` for read actions, leave default for writes, or set `http: false` for agent-only actions like `navigate` and `view-screen`.
53
+
54
+ Before adding a new route or endpoint, inspect the existing actions. Reuse an
55
+ action if it already covers the business operation, extend it if the shared
56
+ contract is incomplete, or create a new `defineAction` if the agent and UI both
57
+ need the capability. Do not add pass-through `/api/*` routes that re-export
58
+ actions. If client code needs a new framework/app route, expose a named helper
59
+ or hook first and use that helper from components and docs.
60
+
61
+ For provider-backed analysis/query/reporting integrations, do not turn every
62
+ provider endpoint or filter into a rigid action. Prefer the shared
63
+ `provider-api-catalog` / `provider-api-docs` / `provider-api-request` pattern
64
+ from `@agent-native/core/provider-api`, then add narrow convenience actions only
65
+ for workflows that truly deserve a first-class shortcut. Treat this as a
66
+ capability requirement, not a nice-to-have: convenience actions must not become
67
+ the ceiling of what the agent can ask the provider to do. Pair broad provider
68
+ access with staging or sandboxed code execution when responses may be too large
69
+ for chat context. If provider credentials live on resource/share rows, add the
70
+ scoped resolver first so broad access preserves the same ownership boundary as
71
+ the app UI.
72
+
73
+ If the feature needs credentials, design the credential path in the same change.
74
+ Never hardcode API keys, tokens, webhook URLs, signing secrets, private
75
+ Builder/internal data, or customer data in the action, UI, seed data, fixtures,
76
+ docs, prompts, or generated extension/app content. Register required secrets,
77
+ use OAuth helpers, or read scoped values from the vault/credential store.
78
+
79
+ If the feature involves attachments, images, recordings, screenshots, exports,
80
+ or other file-like payloads, design the upload path in the same change:
81
+ provider upload first, then URL/id/blob handle in SQL. Do not add base64/binary
82
+ columns or stuff files into `application_state`.
83
+
84
+ If the feature adds a server-side dependency carrying a native binary or heavy
85
+ runtime — headless browser, ffmpeg, image/video processing, ML runtime — read
86
+ the `performance` skill §9 before adding it. A deployed app has one `/*` page
87
+ function that every visitor's cache miss wakes, and it ships whatever the server
88
+ bundle depends on. Run that work from a background function or a job so the page
89
+ function never carries the weight.
90
+
91
+ **If the action produces or lists a navigable resource**, add a `link` builder that returns `{ url: buildDeepLink({ app, view, params }), label }`. External coding agents and MCP hosts (Claude / ChatGPT / Claude Code / Cowork / Codex, over MCP/A2A) then surface an "Open in … →" deep link that drops the user back into the running UI focused on the record — for free. If a compatible MCP host should render an inline review/edit surface, also add `mcpApp` with `embedApp()` so the action embeds the real React app route instead of a one-off HTML UI. The `link` builder and `mcpApp` metadata must be pure and synchronous (no I/O). Any external-agent read/ingest action must be `http: { method: "GET" }` + `readOnly: true` + `publicAgent: { expose: true, readOnly: true, requiresAuth: true }`. See the `external-agents` skill.
92
+
93
+ ### 3. Skills / Instructions
94
+
95
+ Update `AGENTS.md` and/or create a skill in `.agents/skills/` if the feature introduces patterns the agent needs to know. At minimum, add the new actions to the action table in the template's `AGENTS.md`.
96
+
97
+ Reusable actions are part of the app contract, not just implementation detail. When an action is useful outside one screen, update agent instructions in the same change so app agents know when to call it, which arguments matter, and what output to preserve. If the capability is workflow-heavy, cross-app, provider-backed, or has a non-obvious sequence of actions, add or update a skill instead of burying the behavior in one long `AGENTS.md` paragraph.
98
+
99
+ Instruction examples may name secret keys like `SLACK_WEBHOOK`, but must use
100
+ placeholders such as `${keys.SLACK_WEBHOOK}` or `<SLACK_WEBHOOK>`. Do not paste
101
+ real keys, internal data, or customer data into instructions as examples.
102
+
103
+ If the feature adds or changes visible UI copy, prompts, toasts, labels, empty
104
+ states, or formatting, update the English source copy. Read the optional
105
+ `internationalization` skill and update additional catalogs only when
106
+ `translations.locales` in `agent-native.config.ts` includes them.
107
+
108
+ For app-backed skills, declare skill visibility in the app-skill manifest:
109
+
110
+ - `internal` — only the app's own agents should use it.
111
+ - `exported` — marketplace installs receive it, but the app does not need it loaded internally.
112
+ - `both` — shared between the app's internal agents and exported marketplace bundles.
113
+
114
+ ### 4. Application State Sync
115
+
116
+ Expose navigation and selection state so the agent knows what the user is looking at. Write to the `navigation` app-state key on route changes. Update the `view-screen` action to fetch relevant data for the new feature. Add a `navigate` command if the agent needs to open the new view.
117
+
118
+ ## Examples
119
+
120
+ ### Adding "compose email" to a mail app
121
+
122
+ | Area | What to build |
123
+ | --------------- | ---------------------------------------------------------------------------------------- |
124
+ | UI | Compose panel with tabs, to/cc/bcc fields, body editor. Use `useActionQuery`/`useActionMutation` for data. |
125
+ | Action | `manage-draft` action (create/update/delete drafts), `send-email` action |
126
+ | Skills/AGENTS | Document compose state shape, draft lifecycle, action args in AGENTS.md |
127
+ | App-state sync | `compose-{id}` keys for each draft tab, `navigation` includes compose state |
128
+
129
+ ### Adding "create form" to a forms app
130
+
131
+ | Area | What to build |
132
+ | --------------- | ---------------------------------------------------------------------------------------- |
133
+ | UI | Form builder page with drag-and-drop fields, preview, settings. Use `useActionQuery` for lists. |
134
+ | Action | `create-form` action, `update-form` action, `list-forms` action (GET) |
135
+ | Skills/AGENTS | Document form schema shape, field types, validation rules in AGENTS.md |
136
+ | App-state sync | `navigation` includes `{ view: "form-builder", formId: "..." }`, `view-screen` fetches form data |
137
+
138
+ ### Adding "chart type" to an analytics app
139
+
140
+ | Area | What to build |
141
+ | --------------- | ---------------------------------------------------------------------------------------- |
142
+ | UI | New chart component, chart type selector in dashboard |
143
+ | Action | `create-chart` or `update-dashboard` action that sets chart type and config |
144
+ | Skills/AGENTS | Document supported chart types, config options, data requirements |
145
+ | App-state sync | `navigation` includes selected chart/dashboard, `view-screen` returns chart config |
146
+
147
+ ## Adding a new route
148
+
149
+ Templates are single-page apps with client-side routing. The app shell (AgentSidebar + top-level nav) MUST persist across navigation — it is mounted once, either in `root.tsx` around `<Outlet />` or via a pathless `_app.tsx` layout route that all authed routes nest under.
150
+
151
+ **Never wrap each new route in its own `<AppLayout>` / `<Layout>`.** That causes React to unmount the entire app shell on every navigation, reloading the agent sidebar and destroying in-progress work.
152
+
153
+ - If the template has `<AppLayout>` in `root.tsx` — just render page content in your new route file, nothing else.
154
+ - If the template has `app/routes/_app.tsx` (pathless layout) — name your new route `_app.<segment>.tsx` to inherit the shell, or bare `<segment>.tsx` for public routes that should NOT have the shell.
155
+ - If a page needs per-route data (e.g. highlighting the active item in the sidebar), read it in the layout from `useParams()` / `useLocation()`. Don't pass it as a prop through every route file.
156
+
157
+ See the "Client-Side Routing" section in the root `CLAUDE.md` for full details.
158
+
159
+ ## Anti-Patterns
160
+
161
+ - **Per-route `<AppLayout>` wrappers** — Every route file wraps its content in `<AppLayout>` or `<Layout>`. React sees a different component at the outlet on each nav and unmounts the whole shell, causing the agent sidebar to reload on every click. Mount the shell once above `<Outlet />` (root.tsx or `_app.tsx` pathless layout).
162
+ - **UI without actions** — The user can create forms but the agent cannot. The agent says "I don't have access to that" when it should be able to do it.
163
+ - **Actions without AGENTS.md** — The actions exist but the agent doesn't know about them because they're not documented. The agent reinvents solutions instead of using the actions.
164
+ - **Duplicate API routes** — Creating `/api/` routes for operations that actions already handle, including pass-through routes that just call or repackage an action. Use `useActionQuery`/`useActionMutation` instead.
165
+ - **Raw client route calls** — Teaching or adding `fetch("/_agent-native/...")`,
166
+ `fetch(agentNativePath(...))`, or template `/api/*` calls in components for
167
+ normal app work. Add a named client helper/hook and call that instead.
168
+ - **Features without app-state** — The agent cannot see that the user is looking at a specific form, email, or chart. It asks "which one?" instead of acting on the current selection.
169
+ - **Actions without UI** — The agent can do something the user cannot. This is less common but still breaks parity.
170
+
171
+ ## Verification
172
+
173
+ After completing all four areas, verify:
174
+
175
+ 1. Can the user perform the operation from the UI?
176
+ 2. Can the agent perform the same operation via actions?
177
+ 3. Does `pnpm action view-screen` show the relevant state when the user is using the feature?
178
+ 4. Can the agent navigate to the feature view via the `navigate` action?
179
+ 5. Is the feature documented in AGENTS.md with action names and args?
180
+ 6. Are credentials and sensitive data supplied only through approved runtime
181
+ channels, with no hardcoded real keys, tokens, webhook URLs, Builder/internal
182
+ data, or customer data?
183
+
184
+ ## One more area — sharing
185
+
186
+ If the feature stores **user-authored resources** (documents, dashboards, forms, decks, etc.), make them ownable so they get private-by-default semantics and a share dialog for free. See the `sharing` skill.
187
+
188
+ TL;DR: spread `ownableColumns()` into the resource table, pair it with `createSharesTable(...)`, call `registerShareableResource(...)`, wrap list/read queries with `accessFilter`, guard writes with `assertAccess`, and drop `<ShareButton>` in the resource header. The `share-resource`, `unshare-resource`, `list-resource-shares`, and `set-resource-visibility` actions are auto-mounted framework-wide.
189
+
190
+ ## One more area — who inside the app may do it
191
+
192
+ If the feature is one **only some teammates should be able to perform inside this app** (an admin-only import, a settings reset), that is a per-app role — not a new organization, and not a share grant. See the `authentication` skill.
193
+
194
+ TL;DR: declare the vocabulary once with `defineAppRoles({ appId, roles, defaultRole })`, guard the action with `authorize: appAccess.requireAny("...")`, and render the picker with `<TeamPage appRoles={descriptor} />`. `defaultRole` is display only — it never satisfies a guard — and `authorize` gates the operation while `accessFilter` / `assertAccess` still scope the rows.
195
+
196
+ ## Related Skills
197
+
198
+ - **authentication** — Per-app member roles (`defineAppRoles`) when only some teammates may use a feature
199
+ - **sharing** — How to make a new resource ownable (private by default, share with users/orgs/public)
200
+ - **context-awareness** — How to expose UI state to the agent (area 4 in detail)
201
+ - **actions** — How to create actions with `defineAction` and the `http` option (area 2 in detail)
202
+ - **external-agents** — Add a `link` builder so external agents (MCP/A2A) get an "Open in … →" deep link
203
+ - **create-skill** — How to create skills for new patterns (area 3 in detail)
204
+ - **storing-data** — Where to store the feature's data
205
+ - **real-time-sync** — How the UI stays in sync when the agent writes data
206
+ - **performance** — Query/load cost, and (§9) cold-start artifact size when a
207
+ feature adds a server-side dependency
208
+ - **internationalization** — How to update localized UI copy and catalogs