@agent-native/core 0.152.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +208 -0
  3. package/corpus/templates/analytics/.agents/skills/context-awareness/SKILL.md +206 -0
  4. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +6 -4
  5. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +73 -80
  6. package/corpus/templates/analytics/.agents/skills/portability/SKILL.md +107 -0
  7. package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +339 -0
  8. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +3 -3
  9. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +1 -1
  10. package/corpus/templates/analytics/.agents/skills/sharing/SKILL.md +1 -0
  11. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +116 -44
  12. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  13. package/corpus/templates/analytics/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  14. package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +93 -0
  15. package/corpus/templates/analytics/actions/data-source-status.ts +4 -1
  16. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +2 -2
  17. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +7 -2
  18. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +7 -1
  19. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +30 -32
  20. package/corpus/templates/analytics/app/components/layout/layout-route-policy.ts +10 -0
  21. package/corpus/templates/analytics/app/global.css +5 -1
  22. package/corpus/templates/analytics/app/lib/data-source-status.ts +3 -3
  23. package/corpus/templates/analytics/app/lib/resource-access.ts +6 -1
  24. package/corpus/templates/analytics/app/pages/DataSources.tsx +79 -51
  25. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
  26. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -0
  27. package/corpus/templates/analytics/changelog/2026-08-12-analytics-sidebar-ask-toggle-and-compact-rail.md +6 -0
  28. package/corpus/templates/analytics/changelog/2026-08-12-data-source-statuses-now-distinguish-workspace-access-from-c.md +6 -0
  29. package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +559 -147
  30. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +79 -5
  31. package/corpus/templates/analytics/server/plugins/db.ts +84 -0
  32. package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +208 -0
  33. package/corpus/templates/assets/.agents/skills/context-awareness/SKILL.md +206 -0
  34. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +73 -80
  35. package/corpus/templates/assets/.agents/skills/portability/SKILL.md +107 -0
  36. package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +339 -0
  37. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +3 -3
  38. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +1 -1
  39. package/corpus/templates/assets/.agents/skills/sharing/SKILL.md +1 -0
  40. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +116 -44
  41. package/corpus/templates/assets/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  42. package/corpus/templates/assets/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  43. package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +93 -0
  44. package/corpus/templates/assets/app/components/asset/AssetPreviewDialog.tsx +13 -5
  45. package/corpus/templates/assets/app/lib/asset-urls.ts +13 -0
  46. package/corpus/templates/assets/app/routes/asset.$id.tsx +16 -6
  47. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +1 -0
  48. package/corpus/templates/assets/app/routes/library.tsx +336 -78
  49. package/corpus/templates/assets/shared/api.ts +1 -1
  50. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +3 -2
  51. package/corpus/templates/brain/.agents/skills/brain/SKILL.md +8 -6
  52. package/corpus/templates/brain/.agents/skills/context-awareness/SKILL.md +206 -0
  53. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +73 -80
  54. package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +7 -0
  55. package/corpus/templates/brain/.agents/skills/portability/SKILL.md +107 -0
  56. package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +339 -0
  57. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +3 -3
  58. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +1 -1
  59. package/corpus/templates/brain/.agents/skills/sharing/SKILL.md +1 -0
  60. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +116 -44
  61. package/corpus/templates/brain/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  62. package/corpus/templates/brain/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  63. package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +93 -0
  64. package/corpus/templates/brain/AGENTS.md +2 -1
  65. package/corpus/templates/brain/actions/ask-brain.ts +19 -16
  66. package/corpus/templates/brain/actions/create-source.ts +11 -2
  67. package/corpus/templates/brain/actions/import-markdown-files.ts +237 -0
  68. package/corpus/templates/brain/actions/resanitize-captures.ts +3 -1
  69. package/corpus/templates/brain/actions/test-slack-connection.ts +12 -3
  70. package/corpus/templates/brain/actions/update-source.ts +10 -1
  71. package/corpus/templates/brain/app/components/brain/Surface.tsx +1 -11
  72. package/corpus/templates/brain/app/i18n-data.ts +111 -0
  73. package/corpus/templates/brain/app/lib/brain.ts +23 -1
  74. package/corpus/templates/brain/app/routes/knowledge.tsx +0 -2
  75. package/corpus/templates/brain/app/routes/ops.tsx +0 -2
  76. package/corpus/templates/brain/app/routes/review.tsx +0 -2
  77. package/corpus/templates/brain/app/routes/search.tsx +0 -2
  78. package/corpus/templates/brain/app/routes/sources.tsx +354 -6
  79. package/corpus/templates/brain/server/lib/brain-response-guard.ts +63 -1
  80. package/corpus/templates/brain/server/lib/brain.ts +9 -6
  81. package/corpus/templates/brain/server/lib/connectors.ts +20 -6
  82. package/corpus/templates/brain/server/lib/search.ts +9 -1
  83. package/corpus/templates/brain/server/lib/source-credentials.ts +95 -57
  84. package/corpus/templates/brain/server/plugins/agent-chat.ts +5 -2
  85. package/corpus/templates/brain/server/plugins/auth.ts +2 -0
  86. package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +208 -0
  87. package/corpus/templates/calendar/.agents/skills/context-awareness/SKILL.md +206 -0
  88. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +73 -80
  89. package/corpus/templates/calendar/.agents/skills/portability/SKILL.md +107 -0
  90. package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +339 -0
  91. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +3 -3
  92. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +1 -1
  93. package/corpus/templates/calendar/.agents/skills/sharing/SKILL.md +1 -0
  94. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +116 -44
  95. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  96. package/corpus/templates/calendar/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  97. package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +93 -0
  98. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +1 -0
  99. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  100. package/corpus/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  101. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  102. package/corpus/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  103. package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  104. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  105. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  106. package/corpus/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  107. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  108. package/corpus/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  109. package/corpus/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  110. package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  111. package/corpus/templates/chat/AGENTS.md +4 -5
  112. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +73 -80
  113. package/corpus/templates/clips/.agents/skills/meetings/SKILL.md +1 -1
  114. package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +339 -0
  115. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +3 -3
  116. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +1 -1
  117. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +116 -44
  118. package/corpus/templates/clips/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  119. package/corpus/templates/clips/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  120. package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +93 -0
  121. package/corpus/templates/clips/actions/add-comment.ts +1 -2
  122. package/corpus/templates/clips/actions/delete-comment.ts +2 -0
  123. package/corpus/templates/clips/actions/get-recording-insights.ts +9 -8
  124. package/corpus/templates/clips/actions/get-recording-player-data.ts +4 -1
  125. package/corpus/templates/clips/actions/react-to-comment.ts +1 -1
  126. package/corpus/templates/clips/actions/react-to-recording.ts +1 -1
  127. package/corpus/templates/clips/actions/reply-to-comment.ts +1 -1
  128. package/corpus/templates/clips/actions/resolve-comment.ts +1 -2
  129. package/corpus/templates/clips/actions/update-comment.ts +1 -1
  130. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +1 -0
  131. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +59 -16
  132. package/corpus/templates/clips/app/components/player/comments-panel.tsx +88 -39
  133. package/corpus/templates/clips/app/components/player/share-dialog.tsx +12 -8
  134. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +3 -1
  135. package/corpus/templates/clips/app/components/player/video-player.tsx +1 -1
  136. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
  137. package/corpus/templates/clips/app/i18n/en-US.ts +2 -1
  138. package/corpus/templates/clips/app/lib/public-meeting.ts +1 -1
  139. package/corpus/templates/clips/app/lib/thumbnail-capture.ts +71 -0
  140. package/corpus/templates/clips/app/lib/thumbnail-picker-state.ts +93 -0
  141. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +1 -1
  142. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +25 -19
  143. package/corpus/templates/clips/app/routes/share.$shareId.tsx +8 -0
  144. package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +1 -1
  145. package/corpus/templates/clips/changelog/2026-08-11-clips-asks-to-take-notes-again-when-you-join-an-adhoc-zoom-o.md +6 -0
  146. package/corpus/templates/clips/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  147. package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +166 -14
  148. package/corpus/templates/clips/desktop/src-tauri/src/call_activity.rs +146 -0
  149. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
  150. package/corpus/templates/clips/desktop/src-tauri/src/silence_detector.rs +2 -122
  151. package/corpus/templates/clips/server/lib/recording-page-access.ts +6 -1
  152. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +5 -0
  153. package/corpus/templates/clips/shared/share-meta.ts +19 -3
  154. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +208 -0
  155. package/corpus/templates/content/.agents/skills/context-awareness/SKILL.md +206 -0
  156. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +73 -80
  157. package/corpus/templates/content/.agents/skills/portability/SKILL.md +107 -0
  158. package/corpus/templates/content/.agents/skills/secrets/SKILL.md +339 -0
  159. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +3 -3
  160. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +1 -1
  161. package/corpus/templates/content/.agents/skills/sharing/SKILL.md +1 -0
  162. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +116 -44
  163. package/corpus/templates/content/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  164. package/corpus/templates/content/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  165. package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +93 -0
  166. package/corpus/templates/content/actions/_database-utils.ts +10 -0
  167. package/corpus/templates/content/actions/add-comment.ts +1 -1
  168. package/corpus/templates/content/actions/attach-content-database-source.ts +158 -61
  169. package/corpus/templates/content/actions/create-document.ts +1 -0
  170. package/corpus/templates/content/actions/delete-comment.ts +1 -1
  171. package/corpus/templates/content/actions/get-document.ts +9 -1
  172. package/corpus/templates/content/actions/import-content-source.ts +8 -0
  173. package/corpus/templates/content/actions/list-documents.ts +10 -1
  174. package/corpus/templates/content/actions/update-comment.ts +1 -1
  175. package/corpus/templates/content/actions/update-document.ts +11 -0
  176. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +196 -30
  177. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +52 -29
  178. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +13 -8
  179. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +62 -2
  180. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +163 -53
  181. package/corpus/templates/content/app/components/editor/database/TimelineView.tsx +16 -0
  182. package/corpus/templates/content/app/components/editor/database/settings.tsx +22 -13
  183. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +7 -7
  184. package/corpus/templates/content/app/hooks/use-documents.ts +2 -0
  185. package/corpus/templates/content/app/i18n-data.ts +10 -0
  186. package/corpus/templates/content/app/root.tsx +1 -21
  187. package/corpus/templates/content/changelog/2026-08-03-choose-text-or-a-heading-from-one-compact-formatting-control.md +6 -0
  188. package/corpus/templates/content/changelog/2026-08-05-connect-sources-from-add-column.md +6 -0
  189. package/corpus/templates/content/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  190. package/corpus/templates/content/docs/solutions/evidence/content-text-selector/README.md +26 -0
  191. package/corpus/templates/content/shared/api.ts +7 -1
  192. package/corpus/templates/crm/.agents/skills/actions/SKILL.md +146 -0
  193. package/corpus/templates/crm/.agents/skills/actions/references/action-fields.md +136 -0
  194. package/corpus/templates/crm/.agents/skills/actions/references/examples.md +94 -0
  195. package/corpus/templates/crm/.agents/skills/actions/references/provider-apis.md +95 -0
  196. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +208 -0
  197. package/corpus/templates/crm/.agents/skills/context-awareness/SKILL.md +206 -0
  198. package/corpus/templates/crm/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  199. package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +296 -0
  200. package/corpus/templates/crm/.agents/skills/frontend-design/references/visual-direction.md +99 -0
  201. package/corpus/templates/crm/.agents/skills/portability/SKILL.md +107 -0
  202. package/corpus/templates/crm/.agents/skills/real-time-sync/SKILL.md +232 -0
  203. package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +339 -0
  204. package/corpus/templates/crm/.agents/skills/security/SKILL.md +324 -0
  205. package/corpus/templates/crm/.agents/skills/self-modifying-code/SKILL.md +123 -0
  206. package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +123 -0
  207. package/corpus/templates/crm/.agents/skills/sharing/SKILL.md +1 -0
  208. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +116 -44
  209. package/corpus/templates/crm/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  210. package/corpus/templates/crm/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  211. package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +93 -0
  212. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +208 -0
  213. package/corpus/templates/design/.agents/skills/context-awareness/SKILL.md +206 -0
  214. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +73 -80
  215. package/corpus/templates/design/.agents/skills/portability/SKILL.md +107 -0
  216. package/corpus/templates/design/.agents/skills/real-time-sync/SKILL.md +232 -0
  217. package/corpus/templates/design/.agents/skills/secrets/SKILL.md +339 -0
  218. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +3 -3
  219. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +1 -1
  220. package/corpus/templates/design/.agents/skills/sharing/SKILL.md +1 -0
  221. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +116 -44
  222. package/corpus/templates/design/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  223. package/corpus/templates/design/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  224. package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +93 -0
  225. package/corpus/templates/design/actions/index-design-system-with-builder.ts +16 -2
  226. package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +6 -18
  227. package/corpus/templates/design/app/i18n/en-US.ts +1 -1
  228. package/corpus/templates/design/app/i18n-data.ts +40 -0
  229. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +153 -131
  230. package/corpus/templates/design/app/pages/DesignSystems.tsx +7 -61
  231. package/corpus/templates/design/app/pages/Present.tsx +8 -2
  232. package/corpus/templates/design/app/pages/Templates.tsx +1 -0
  233. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +4 -1
  234. package/corpus/templates/design/app/pages/design-editor/types.ts +6 -1
  235. package/corpus/templates/design/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  236. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +208 -0
  237. package/corpus/templates/dispatch/.agents/skills/context-awareness/SKILL.md +206 -0
  238. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +73 -80
  239. package/corpus/templates/dispatch/.agents/skills/portability/SKILL.md +107 -0
  240. package/corpus/templates/dispatch/.agents/skills/real-time-sync/SKILL.md +232 -0
  241. package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +339 -0
  242. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +3 -3
  243. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +1 -1
  244. package/corpus/templates/dispatch/.agents/skills/sharing/SKILL.md +1 -0
  245. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +116 -44
  246. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  247. package/corpus/templates/dispatch/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  248. package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +93 -0
  249. package/corpus/templates/dispatch/actions/apply-workspace-connection-setup.ts +97 -15
  250. package/corpus/templates/dispatch/actions/connection-permissions.ts +77 -0
  251. package/corpus/templates/dispatch/actions/delete-workspace-connection.ts +12 -2
  252. package/corpus/templates/dispatch/actions/list-workspace-user-groups.ts +19 -0
  253. package/corpus/templates/dispatch/actions/plan-workspace-connection-setup.ts +9 -2
  254. package/corpus/templates/dispatch/actions/set-workspace-connection-grant.ts +21 -2
  255. package/corpus/templates/dispatch/actions/upsert-workspace-connection.ts +66 -1
  256. package/corpus/templates/dispatch/actions/upsert-workspace-user-group.ts +27 -0
  257. package/corpus/templates/dispatch/app/chat-first-pages.ts +84 -0
  258. package/corpus/templates/dispatch/app/i18n-data.ts +3989 -3527
  259. package/corpus/templates/dispatch/app/routes/integrations.tsx +1568 -685
  260. package/corpus/templates/dispatch/app/routes/settings.tsx +14 -9
  261. package/corpus/templates/dispatch/changelog/2026-08-12-search-and-pin-workspace-apps-from-the-app-catalog.md +6 -0
  262. package/corpus/templates/dispatch/changelog/2026-08-12-workspace-integration-access-now-shows-exactly-which-apps-ca.md +6 -0
  263. package/corpus/templates/dispatch/server/lib/app-roles.ts +5 -0
  264. package/corpus/templates/dispatch/shared/app-roles.ts +1 -0
  265. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +3 -2
  266. package/corpus/templates/factory/.agents/skills/context-awareness/SKILL.md +206 -0
  267. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +73 -80
  268. package/corpus/templates/factory/.agents/skills/portability/SKILL.md +107 -0
  269. package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +339 -0
  270. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +3 -3
  271. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +1 -1
  272. package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +1 -0
  273. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +116 -44
  274. package/corpus/templates/factory/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  275. package/corpus/templates/factory/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  276. package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +93 -0
  277. package/corpus/templates/factory/AGENTS.md +10 -1
  278. package/corpus/templates/factory/README.md +18 -7
  279. package/corpus/templates/factory/actions/list-triage-items.ts +10 -4
  280. package/corpus/templates/factory/actions/poll-github-sources.ts +53 -14
  281. package/corpus/templates/factory/actions/poll-sentry-errors.ts +31 -13
  282. package/corpus/templates/factory/actions/poll-slack-channel.ts +41 -5
  283. package/corpus/templates/factory/actions/provider-api-catalog.ts +13 -0
  284. package/corpus/templates/factory/actions/provider-api-docs.ts +11 -0
  285. package/corpus/templates/factory/actions/provider-api-request.ts +17 -0
  286. package/corpus/templates/factory/actions/save-triage-config.ts +87 -38
  287. package/corpus/templates/factory/app/components/factory/FactoryAuditView.tsx +14 -12
  288. package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +60 -77
  289. package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +66 -125
  290. package/corpus/templates/factory/app/components/layout/Header.tsx +1 -0
  291. package/corpus/templates/factory/app/components/layout/Layout.tsx +8 -3
  292. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +9 -5
  293. package/corpus/templates/factory/app/components/ui/input.tsx +15 -1
  294. package/corpus/templates/factory/app/components/ui/popover.tsx +1 -0
  295. package/corpus/templates/factory/app/components/ui/switch.tsx +1 -0
  296. package/corpus/templates/factory/app/components/ui/textarea.tsx +20 -1
  297. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -3
  298. package/corpus/templates/factory/app/i18n/en-US.ts +17 -0
  299. package/corpus/templates/factory/app/routes/_index.tsx +5 -87
  300. package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -1
  301. package/corpus/templates/factory/app/routes/chat.tsx +91 -0
  302. package/corpus/templates/factory/app/routes/factory.tsx +554 -427
  303. package/corpus/templates/factory/app/routes/settings.tsx +1 -1
  304. package/corpus/templates/factory/server/connectors/credentials.ts +25 -0
  305. package/corpus/templates/factory/server/lib/provider-api.ts +34 -0
  306. package/corpus/templates/factory/server/plugins/agent-chat.ts +15 -3
  307. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +96 -24
  308. package/corpus/templates/factory/server/triage/review-state.ts +33 -0
  309. package/corpus/templates/factory/server/triage/slack-poller.ts +1 -0
  310. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +208 -0
  311. package/corpus/templates/forms/.agents/skills/context-awareness/SKILL.md +206 -0
  312. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +73 -80
  313. package/corpus/templates/forms/.agents/skills/portability/SKILL.md +107 -0
  314. package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +339 -0
  315. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +3 -3
  316. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +1 -1
  317. package/corpus/templates/forms/.agents/skills/sharing/SKILL.md +1 -0
  318. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +116 -44
  319. package/corpus/templates/forms/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  320. package/corpus/templates/forms/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  321. package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +93 -0
  322. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +1 -0
  323. package/corpus/templates/forms/shared/types.ts +1 -1
  324. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +208 -0
  325. package/corpus/templates/macros/.agents/skills/context-awareness/SKILL.md +206 -0
  326. package/corpus/templates/macros/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  327. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +73 -80
  328. package/corpus/templates/macros/.agents/skills/portability/SKILL.md +107 -0
  329. package/corpus/templates/macros/.agents/skills/real-time-sync/SKILL.md +232 -0
  330. package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +339 -0
  331. package/corpus/templates/macros/.agents/skills/self-modifying-code/SKILL.md +123 -0
  332. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +1 -1
  333. package/corpus/templates/macros/.agents/skills/sharing/SKILL.md +1 -0
  334. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +116 -44
  335. package/corpus/templates/macros/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  336. package/corpus/templates/macros/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  337. package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +93 -0
  338. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +208 -0
  339. package/corpus/templates/mail/.agents/skills/context-awareness/SKILL.md +206 -0
  340. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +73 -80
  341. package/corpus/templates/mail/.agents/skills/portability/SKILL.md +107 -0
  342. package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +339 -0
  343. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +3 -3
  344. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +1 -1
  345. package/corpus/templates/mail/.agents/skills/sharing/SKILL.md +1 -0
  346. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +116 -44
  347. package/corpus/templates/mail/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  348. package/corpus/templates/mail/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  349. package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +93 -0
  350. package/corpus/templates/mail/actions/send-email.ts +9 -0
  351. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +4 -4
  352. package/corpus/templates/mail/changelog/2026-08-12-agent-sent-messages-appear-immediately.md +6 -0
  353. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +3 -2
  354. package/corpus/templates/plan/.agents/skills/context-awareness/SKILL.md +206 -0
  355. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +73 -80
  356. package/corpus/templates/plan/.agents/skills/portability/SKILL.md +107 -0
  357. package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +339 -0
  358. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +3 -3
  359. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +1 -1
  360. package/corpus/templates/plan/.agents/skills/sharing/SKILL.md +1 -0
  361. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +116 -44
  362. package/corpus/templates/plan/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  363. package/corpus/templates/plan/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  364. package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +93 -0
  365. package/corpus/templates/plan/actions/delete-plan-comment.ts +6 -0
  366. package/corpus/templates/plan/actions/reply-to-plan-comment.ts +7 -1
  367. package/corpus/templates/plan/actions/resolve-plan-comment.ts +7 -1
  368. package/corpus/templates/plan/actions/update-visual-plan.ts +6 -0
  369. package/corpus/templates/plan/app/hooks/use-plans.ts +1 -1
  370. package/corpus/templates/plan/app/pages/PlansPage.tsx +51 -23
  371. package/corpus/templates/plan/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  372. package/corpus/templates/plan/server/plans.ts +2 -2
  373. package/corpus/templates/plan/shared/types.ts +1 -1
  374. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +208 -0
  375. package/corpus/templates/slides/.agents/skills/context-awareness/SKILL.md +206 -0
  376. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +6 -0
  377. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +73 -80
  378. package/corpus/templates/slides/.agents/skills/portability/SKILL.md +107 -0
  379. package/corpus/templates/slides/.agents/skills/real-time-sync/SKILL.md +232 -0
  380. package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +339 -0
  381. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +3 -3
  382. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +1 -1
  383. package/corpus/templates/slides/.agents/skills/sharing/SKILL.md +1 -0
  384. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +116 -44
  385. package/corpus/templates/slides/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  386. package/corpus/templates/slides/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  387. package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +93 -0
  388. package/corpus/templates/slides/AGENTS.md +4 -0
  389. package/corpus/templates/slides/actions/add-slide-comment.ts +1 -1
  390. package/corpus/templates/slides/actions/delete-slide-comment.ts +1 -1
  391. package/corpus/templates/slides/actions/get-layout-overflows.ts +67 -2
  392. package/corpus/templates/slides/actions/update-slide-comment.ts +1 -1
  393. package/corpus/templates/slides/actions/view-screen.ts +76 -26
  394. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +30 -8
  395. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -1
  396. package/corpus/templates/slides/app/components/editor/AlignmentGuides.tsx +75 -0
  397. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +80 -80
  398. package/corpus/templates/slides/app/components/editor/SlideContextToolbar.tsx +125 -10
  399. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +244 -9
  400. package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +1 -1
  401. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +3 -3
  402. package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +218 -0
  403. package/corpus/templates/slides/app/context/DeckContext.tsx +56 -30
  404. package/corpus/templates/slides/app/hooks/use-deck-role.ts +13 -5
  405. package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -1
  406. package/corpus/templates/slides/app/i18n/en-US.ts +6 -2
  407. package/corpus/templates/slides/app/lib/create-deck-generation.ts +1 -0
  408. package/corpus/templates/slides/app/lib/pending-deck-changes.ts +32 -0
  409. package/corpus/templates/slides/app/pages/DeckEditor.tsx +85 -4
  410. package/corpus/templates/slides/app/pages/Index.tsx +65 -66
  411. package/corpus/templates/slides/changelog/2026-08-12-viewers-are-read-only-and-commenters-can-comment.md +6 -0
  412. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +3 -2
  413. package/corpus/templates/tasks/.agents/skills/context-awareness/SKILL.md +206 -0
  414. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +73 -80
  415. package/corpus/templates/tasks/.agents/skills/portability/SKILL.md +107 -0
  416. package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +339 -0
  417. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +3 -3
  418. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +1 -1
  419. package/corpus/templates/tasks/.agents/skills/sharing/SKILL.md +1 -0
  420. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +116 -44
  421. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  422. package/corpus/templates/tasks/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  423. package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +93 -0
  424. package/corpus/templates/tasks/app/components/custom-fields/FieldsPage.tsx +1 -4
  425. package/corpus/templates/tasks/app/components/inbox/InboxList.tsx +0 -1
  426. package/corpus/templates/tasks/app/components/inbox/InboxListPage.tsx +0 -1
  427. package/corpus/templates/tasks/app/components/shared/ListViewHeader.tsx +0 -3
  428. package/corpus/templates/tasks/app/components/shared/PageHeader.tsx +1 -4
  429. package/corpus/templates/tasks/app/components/tasks/TaskList.tsx +0 -1
  430. package/corpus/templates/tasks/app/components/tasks/TaskListPage.tsx +0 -1
  431. package/dist/agent/engine/ai-sdk-engine.js +5 -0
  432. package/dist/agent/engine/anthropic-engine.js +8 -0
  433. package/dist/agent/engine/registry.js +24 -19
  434. package/dist/agent/engine/translate-anthropic.js +16 -1
  435. package/dist/agent/production-agent.d.ts +8 -0
  436. package/dist/agent/production-agent.js +66 -0
  437. package/dist/automations/service.d.ts +2 -0
  438. package/dist/automations/service.js +5 -1
  439. package/dist/chat-threads/schema.d.ts +2 -2
  440. package/dist/cli/changelog.js +21 -4
  441. package/dist/cli/create.d.ts +12 -1
  442. package/dist/cli/create.js +99 -11
  443. package/dist/cli/index.js +6 -6
  444. package/dist/cli/process.d.ts +7 -0
  445. package/dist/cli/process.js +12 -0
  446. package/dist/cli/workspace-skill-policy.d.ts +15 -0
  447. package/dist/cli/workspace-skill-policy.js +62 -0
  448. package/dist/cli/workspacify.js +36 -0
  449. package/dist/client/AgentPanel.d.ts +14 -2
  450. package/dist/client/AgentPanel.js +40 -24
  451. package/dist/client/AssistantChat.js +93 -183
  452. package/dist/client/FeedbackButton.js +15 -2
  453. package/dist/client/RouteTransitionIndicator.d.ts +14 -2
  454. package/dist/client/RouteTransitionIndicator.js +16 -5
  455. package/dist/client/agent-page/AgentTabsPage.js +19 -6
  456. package/dist/client/app-config.d.ts +3 -0
  457. package/dist/client/app-config.js +6 -0
  458. package/dist/client/app-providers.js +2 -1
  459. package/dist/client/changelog/Changelog.d.ts +2 -1
  460. package/dist/client/changelog/Changelog.js +7 -5
  461. package/dist/client/chat/markdown-renderer.d.ts +3 -1
  462. package/dist/client/chat/markdown-renderer.js +24 -24
  463. package/dist/client/chat/message-components.d.ts +23 -0
  464. package/dist/client/chat/message-components.js +27 -44
  465. package/dist/client/chat/tool-call-display.d.ts +2 -2
  466. package/dist/client/chat/tool-call-display.js +6 -3
  467. package/dist/client/chat-first/app-open-actions.d.ts +28 -0
  468. package/dist/client/chat-first/app-open-actions.js +25 -0
  469. package/dist/client/chat-first/index.d.ts +1 -0
  470. package/dist/client/chat-first/index.js +1 -0
  471. package/dist/client/chat-first/primary-nav.d.ts +2 -1
  472. package/dist/client/chat-first/primary-nav.js +12 -5
  473. package/dist/client/conversation/use-near-bottom-autoscroll.d.ts +14 -0
  474. package/dist/client/conversation/use-near-bottom-autoscroll.js +14 -0
  475. package/dist/client/error-format.js +32 -3
  476. package/dist/client/extensions/EmbeddedExtension.js +1 -0
  477. package/dist/client/extensions/ExtensionViewer.js +3 -1
  478. package/dist/client/extensions/InlineExtensionFrame.js +1 -0
  479. package/dist/client/extensions/iframe-bridge.d.ts +3 -2
  480. package/dist/client/extensions/iframe-bridge.js +4 -2
  481. package/dist/client/guided-questions.d.ts +15 -1
  482. package/dist/client/guided-questions.js +33 -15
  483. package/dist/client/i18n.js +28 -5
  484. package/dist/client/integrations/IntegrationConnectionChoice.d.ts +11 -0
  485. package/dist/client/integrations/IntegrationConnectionChoice.js +6 -0
  486. package/dist/client/integrations/IntegrationGrid.d.ts +23 -0
  487. package/dist/client/integrations/IntegrationGrid.js +12 -0
  488. package/dist/client/integrations/IntegrationsPanel.js +92 -26
  489. package/dist/client/integrations/index.d.ts +2 -0
  490. package/dist/client/integrations/index.js +2 -0
  491. package/dist/client/onboarding/FirstRunOnboarding.d.ts +3 -1
  492. package/dist/client/onboarding/FirstRunOnboarding.js +26 -16
  493. package/dist/client/onboarding/first-run-enabled.js +1 -5
  494. package/dist/client/onboarding/first-run-startup-gate.d.ts +5 -0
  495. package/dist/client/onboarding/first-run-startup-gate.js +51 -0
  496. package/dist/client/onboarding/first-run-status.d.ts +7 -0
  497. package/dist/client/onboarding/first-run-status.js +26 -0
  498. package/dist/client/onboarding/index.d.ts +3 -0
  499. package/dist/client/onboarding/index.js +3 -0
  500. package/dist/client/onboarding/use-onboarding.d.ts +1 -0
  501. package/dist/client/onboarding/use-onboarding.js +13 -11
  502. package/dist/client/org/TeamPage.js +174 -28
  503. package/dist/client/resources/McpConnectionSuggestion.js +29 -72
  504. package/dist/client/resources/McpIntegrationDialog.d.ts +3 -1
  505. package/dist/client/resources/McpIntegrationDialog.js +176 -51
  506. package/dist/client/resources/index.d.ts +1 -0
  507. package/dist/client/resources/index.js +1 -0
  508. package/dist/client/resources/mcp-integration-catalog.d.ts +8 -0
  509. package/dist/client/resources/mcp-integration-catalog.js +28 -0
  510. package/dist/client/settings/ExtensionsSettingsContent.js +2 -2
  511. package/dist/client/settings/SettingsPanel.d.ts +6 -0
  512. package/dist/client/settings/SettingsPanel.js +21 -8
  513. package/dist/client/settings/SettingsRow.d.ts +3 -1
  514. package/dist/client/settings/SettingsRow.js +4 -2
  515. package/dist/client/settings/SettingsSkeleton.js +5 -3
  516. package/dist/client/settings/SettingsTabsPage.js +2 -2
  517. package/dist/client/settings/UsageSection.d.ts +4 -1
  518. package/dist/client/settings/UsageSection.js +187 -93
  519. package/dist/client/settings/agent-settings-search.js +6 -2
  520. package/dist/client/setup-connections/useBuilderConnectCardController.d.ts +1 -1
  521. package/dist/client/setup-connections/useBuilderConnectCardController.js +2 -2
  522. package/dist/client/sharing/ShareButton.d.ts +2 -0
  523. package/dist/client/sharing/ShareButton.js +9 -2
  524. package/dist/client/sharing/ShareDialog.js +4 -1
  525. package/dist/client/sharing/useShareButtonController.d.ts +2 -1
  526. package/dist/client/sharing/useShareButtonController.js +8 -0
  527. package/dist/client/sharing/useShareDialogController.d.ts +1 -1
  528. package/dist/client/sharing/useShareDialogController.js +2 -1
  529. package/dist/config.d.ts +13 -0
  530. package/dist/config.js +53 -0
  531. package/dist/dashboard-storage/schema.d.ts +2 -2
  532. package/dist/data-programs/schema.d.ts +2 -2
  533. package/dist/extensions/actions.js +2 -1
  534. package/dist/extensions/html-shell.d.ts +2 -2
  535. package/dist/extensions/routes.js +4 -1
  536. package/dist/extensions/schema.d.ts +2 -2
  537. package/dist/file-upload/pre-upload-attachments.js +1 -1
  538. package/dist/framework-tools.js +3 -0
  539. package/dist/history/types.d.ts +1 -1
  540. package/dist/index.d.ts +2 -1
  541. package/dist/index.js +2 -1
  542. package/dist/integrations/webhook-handler.js +11 -3
  543. package/dist/jobs/background-automation-runner.d.ts +1 -0
  544. package/dist/jobs/background-automation-runner.js +4 -2
  545. package/dist/jobs/frontmatter.d.ts +4 -0
  546. package/dist/jobs/frontmatter.js +16 -0
  547. package/dist/jobs/run-history.js +1 -1
  548. package/dist/jobs/tools.js +9 -5
  549. package/dist/localization/default-messages.d.ts +27 -0
  550. package/dist/localization/default-messages.js +28 -1
  551. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  552. package/dist/notifications/routes.d.ts +2 -2
  553. package/dist/observability/routes.d.ts +3 -3
  554. package/dist/onboarding/plugin.js +17 -2
  555. package/dist/org/context.js +16 -0
  556. package/dist/progress/routes.d.ts +1 -1
  557. package/dist/provider-api/actions/custom-provider-registration.d.ts +12 -12
  558. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  559. package/dist/review/actions/create-review-comment.js +1 -1
  560. package/dist/review/actions/delete-review-comment.js +4 -1
  561. package/dist/review/actions/list-review-comments.js +4 -2
  562. package/dist/review/actions/reply-review-comment.js +1 -1
  563. package/dist/review/types.d.ts +1 -1
  564. package/dist/server/action-discovery.js +29 -0
  565. package/dist/server/agent-chat/context-tools.js +27 -6
  566. package/dist/server/agent-chat/plugin-options.d.ts +7 -0
  567. package/dist/server/agent-chat-plugin.d.ts +2 -0
  568. package/dist/server/agent-chat-plugin.js +12 -4
  569. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  570. package/dist/server/builder-browser.js +31 -0
  571. package/dist/server/onboarding-html.js +1 -1
  572. package/dist/server/realtime-token.d.ts +1 -1
  573. package/dist/server/workspace-provider-oauth.js +38 -26
  574. package/dist/setup-connections/index.d.ts +1 -1
  575. package/dist/setup-connections/index.js +1 -1
  576. package/dist/shared/first-run-onboarding.d.ts +6 -0
  577. package/dist/shared/first-run-onboarding.js +6 -0
  578. package/dist/sharing/access.d.ts +1 -1
  579. package/dist/sharing/access.js +4 -1
  580. package/dist/sharing/actions/share-resource.d.ts +1 -1
  581. package/dist/sharing/actions/share-resource.js +2 -2
  582. package/dist/sharing/registry.d.ts +2 -2
  583. package/dist/sharing/schema.d.ts +5 -5
  584. package/dist/sharing/schema.js +9 -6
  585. package/dist/styles/agent-native.css +21 -0
  586. package/dist/styles/chat-history-list.css +1 -1
  587. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  588. package/dist/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  589. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  590. package/dist/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  591. package/dist/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  592. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  593. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  594. package/dist/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  595. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  596. package/dist/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  597. package/dist/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  598. package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  599. package/dist/templates/chat/AGENTS.md +4 -5
  600. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  601. package/dist/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  602. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  603. package/dist/templates/default/.agents/skills/portability/SKILL.md +107 -0
  604. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  605. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  606. package/dist/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  607. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  608. package/dist/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  609. package/dist/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  610. package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  611. package/dist/templates/default/AGENTS.md +17 -2
  612. package/dist/templates/default/agent-native.config.ts +6 -0
  613. package/dist/templates/default/app/i18n/ar-SA.ts +2 -0
  614. package/dist/templates/default/app/i18n/de-DE.ts +2 -0
  615. package/dist/templates/default/app/i18n/en-US.ts +3 -1
  616. package/dist/templates/default/app/i18n/es-ES.ts +2 -0
  617. package/dist/templates/default/app/i18n/fr-FR.ts +2 -0
  618. package/dist/templates/default/app/i18n/hi-IN.ts +2 -0
  619. package/dist/templates/default/app/i18n/ja-JP.ts +2 -0
  620. package/dist/templates/default/app/i18n/ko-KR.ts +2 -0
  621. package/dist/templates/default/app/i18n/pt-BR.ts +2 -0
  622. package/dist/templates/default/app/i18n/zh-CN.ts +2 -0
  623. package/dist/templates/default/app/i18n/zh-TW.ts +2 -0
  624. package/dist/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  625. package/dist/templates/headless/.agents/skills/security/SKILL.md +324 -0
  626. package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  627. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  628. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  629. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  630. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  631. package/dist/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  632. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  633. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  634. package/dist/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  635. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  636. package/dist/templates/workspace-core/AGENTS.md +9 -3
  637. package/dist/templates/workspace-root/AGENTS.md +26 -1
  638. package/dist/templates/workspace-root/agent-native.config.ts +8 -0
  639. package/dist/triggers/actions.js +2 -2
  640. package/dist/usage/actions/get-usage-alerts.d.ts +5 -0
  641. package/dist/usage/actions/get-usage-alerts.js +16 -0
  642. package/dist/usage/actions/get-usage-metrics.d.ts +7 -0
  643. package/dist/usage/actions/get-usage-metrics.js +26 -0
  644. package/dist/usage/actions/manage-usage-alert.d.ts +14 -0
  645. package/dist/usage/actions/manage-usage-alert.js +48 -0
  646. package/dist/usage/alerts-store.d.ts +78 -0
  647. package/dist/usage/alerts-store.js +592 -0
  648. package/dist/usage/metrics-store.d.ts +95 -0
  649. package/dist/usage/metrics-store.js +386 -0
  650. package/dist/usage/store.js +10 -0
  651. package/dist/vite/action-types-plugin.js +28 -0
  652. package/dist/vite/agent-native-config-loader.d.ts +6 -0
  653. package/dist/vite/agent-native-config-loader.js +54 -2
  654. package/dist/vite/client.js +11 -5
  655. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.d.ts +6 -0
  656. package/dist/workspace-connections/actions/bulk-update-workspace-user-groups.js +24 -0
  657. package/dist/workspace-connections/actions/delete-workspace-user-group.d.ts +7 -0
  658. package/dist/workspace-connections/actions/delete-workspace-user-group.js +29 -0
  659. package/dist/workspace-connections/actions/list-workspace-user-groups.d.ts +2 -0
  660. package/dist/workspace-connections/actions/list-workspace-user-groups.js +13 -0
  661. package/dist/workspace-connections/actions/upsert-workspace-user-group.d.ts +6 -0
  662. package/dist/workspace-connections/actions/upsert-workspace-user-group.js +22 -0
  663. package/dist/workspace-connections/credential-key-aliases.d.ts +3 -0
  664. package/dist/workspace-connections/credential-key-aliases.js +31 -0
  665. package/dist/workspace-connections/credentials.js +1 -25
  666. package/dist/workspace-connections/groups.d.ts +32 -0
  667. package/dist/workspace-connections/groups.js +288 -0
  668. package/dist/workspace-connections/index.d.ts +3 -1
  669. package/dist/workspace-connections/index.js +3 -1
  670. package/dist/workspace-connections/store.d.ts +9 -0
  671. package/dist/workspace-connections/store.js +68 -8
  672. package/docs/content/components.mdx +2 -2
  673. package/docs/content/sharing.mdx +2 -1
  674. package/package.json +10 -2
  675. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +3 -2
  676. package/src/templates/chat/.agents/skills/context-awareness/SKILL.md +206 -0
  677. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +73 -80
  678. package/src/templates/chat/.agents/skills/portability/SKILL.md +107 -0
  679. package/src/templates/chat/.agents/skills/secrets/SKILL.md +339 -0
  680. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +3 -3
  681. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +1 -1
  682. package/src/templates/chat/.agents/skills/sharing/SKILL.md +1 -0
  683. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +116 -44
  684. package/src/templates/chat/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  685. package/src/templates/chat/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  686. package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +93 -0
  687. package/src/templates/chat/AGENTS.md +4 -5
  688. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +3 -2
  689. package/src/templates/default/.agents/skills/context-awareness/SKILL.md +206 -0
  690. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +73 -80
  691. package/src/templates/default/.agents/skills/portability/SKILL.md +107 -0
  692. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +3 -3
  693. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +1 -1
  694. package/src/templates/default/.agents/skills/sharing/SKILL.md +233 -0
  695. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +116 -44
  696. package/src/templates/default/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  697. package/src/templates/default/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  698. package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +93 -0
  699. package/src/templates/default/AGENTS.md +17 -2
  700. package/src/templates/default/agent-native.config.ts +6 -0
  701. package/src/templates/default/app/i18n/ar-SA.ts +2 -0
  702. package/src/templates/default/app/i18n/de-DE.ts +2 -0
  703. package/src/templates/default/app/i18n/en-US.ts +3 -1
  704. package/src/templates/default/app/i18n/es-ES.ts +2 -0
  705. package/src/templates/default/app/i18n/fr-FR.ts +2 -0
  706. package/src/templates/default/app/i18n/hi-IN.ts +2 -0
  707. package/src/templates/default/app/i18n/ja-JP.ts +2 -0
  708. package/src/templates/default/app/i18n/ko-KR.ts +2 -0
  709. package/src/templates/default/app/i18n/pt-BR.ts +2 -0
  710. package/src/templates/default/app/i18n/zh-CN.ts +2 -0
  711. package/src/templates/default/app/i18n/zh-TW.ts +2 -0
  712. package/src/templates/headless/.agents/skills/delegate-to-agent/SKILL.md +289 -0
  713. package/src/templates/headless/.agents/skills/security/SKILL.md +324 -0
  714. package/src/templates/headless/.agents/skills/storing-data/SKILL.md +178 -0
  715. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +3 -2
  716. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +73 -80
  717. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +3 -3
  718. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +1 -1
  719. package/src/templates/workspace-core/.agents/skills/sharing/SKILL.md +1 -0
  720. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +116 -44
  721. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/fresh-project.md +9 -3
  722. package/src/templates/workspace-core/.agents/skills/turn-into-app/references/spreadsheet-source.md +148 -0
  723. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +3 -2
  724. package/src/templates/workspace-core/AGENTS.md +9 -3
  725. package/src/templates/workspace-root/AGENTS.md +26 -1
  726. package/src/templates/workspace-root/agent-native.config.ts +8 -0
  727. package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +0 -89
  728. package/corpus/templates/analytics/.agents/skills/create-skill/SKILL.md +0 -195
  729. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +0 -169
  730. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  731. package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +0 -89
  732. package/corpus/templates/assets/.agents/skills/create-skill/SKILL.md +0 -195
  733. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +0 -169
  734. package/corpus/templates/assets/.agents/skills/real-time-collab/SKILL.md +0 -392
  735. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  736. package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +0 -89
  737. package/corpus/templates/brain/.agents/skills/create-skill/SKILL.md +0 -195
  738. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +0 -169
  739. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  740. package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +0 -89
  741. package/corpus/templates/calendar/.agents/skills/create-skill/SKILL.md +0 -195
  742. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +0 -169
  743. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  744. package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  745. package/corpus/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  746. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  747. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  748. package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +0 -89
  749. package/corpus/templates/clips/.agents/skills/create-skill/SKILL.md +0 -195
  750. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +0 -169
  751. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  752. package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +0 -89
  753. package/corpus/templates/content/.agents/skills/create-skill/SKILL.md +0 -195
  754. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +0 -169
  755. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  756. package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
  757. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  758. package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +0 -89
  759. package/corpus/templates/design/.agents/skills/create-skill/SKILL.md +0 -195
  760. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +0 -169
  761. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  762. package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +0 -89
  763. package/corpus/templates/dispatch/.agents/skills/create-skill/SKILL.md +0 -195
  764. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +0 -169
  765. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  766. package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +0 -89
  767. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +0 -195
  768. package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +0 -169
  769. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  770. package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +0 -89
  771. package/corpus/templates/forms/.agents/skills/create-skill/SKILL.md +0 -195
  772. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +0 -169
  773. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  774. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +0 -169
  775. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  776. package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +0 -89
  777. package/corpus/templates/mail/.agents/skills/create-skill/SKILL.md +0 -195
  778. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +0 -169
  779. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  780. package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +0 -89
  781. package/corpus/templates/plan/.agents/skills/create-skill/SKILL.md +0 -195
  782. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +0 -169
  783. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  784. package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +0 -89
  785. package/corpus/templates/slides/.agents/skills/create-skill/SKILL.md +0 -195
  786. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +0 -169
  787. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  788. package/corpus/templates/tasks/.agents/skills/capture-learnings/SKILL.md +0 -89
  789. package/corpus/templates/tasks/.agents/skills/create-skill/SKILL.md +0 -195
  790. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +0 -169
  791. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  792. package/dist/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  793. package/dist/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  794. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  795. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  796. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  797. package/dist/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  798. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  799. package/dist/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  800. package/dist/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  801. package/dist/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  802. package/dist/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  803. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  804. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  805. package/dist/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  806. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  807. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  808. package/dist/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  809. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  810. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  811. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  812. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  813. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  814. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  815. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  816. package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  817. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  818. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  819. package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  820. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  821. package/dist/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  822. package/dist/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  823. package/dist/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  824. package/dist/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  825. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  826. package/dist/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  827. package/dist/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  828. package/dist/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  829. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  830. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  831. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  832. package/dist/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  833. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  834. package/dist/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  835. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  836. package/dist/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  837. package/dist/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  838. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  839. package/dist/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  840. package/dist/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  841. package/dist/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  842. package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  843. package/dist/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  844. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  845. package/dist/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  846. package/dist/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  847. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  848. package/dist/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  849. package/dist/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  850. package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  851. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  852. package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  853. package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  854. package/dist/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
  855. package/src/templates/chat/.agents/skills/capture-learnings/SKILL.md +0 -89
  856. package/src/templates/chat/.agents/skills/create-skill/SKILL.md +0 -195
  857. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +0 -169
  858. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  859. package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +0 -89
  860. package/src/templates/default/.agents/skills/create-skill/SKILL.md +0 -195
  861. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +0 -169
  862. package/src/templates/default/.agents/skills/integration-webhooks/SKILL.md +0 -364
  863. package/src/templates/default/.agents/skills/internationalization/SKILL.md +0 -82
  864. package/src/templates/default/.agents/skills/onboarding/SKILL.md +0 -56
  865. package/src/templates/default/.agents/skills/real-time-collab/SKILL.md +0 -392
  866. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  867. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +0 -169
  868. package/src/templates/headless/.agents/skills/integration-webhooks/SKILL.md +0 -364
  869. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +0 -402
  870. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +0 -4
  871. package/src/templates/headless/.agents/skills/turn-into-app/references/fresh-project.md +0 -90
  872. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +0 -112
  873. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +0 -4
  874. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  875. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +0 -411
  876. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +0 -107
  877. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +0 -176
  878. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +0 -63
  879. package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +0 -96
  880. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +0 -295
  881. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +0 -242
  882. package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +0 -131
  883. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +0 -89
  884. package/src/templates/workspace-core/.agents/skills/changelog/SKILL.md +0 -114
  885. package/src/templates/workspace-core/.agents/skills/client-methods/SKILL.md +0 -115
  886. package/src/templates/workspace-core/.agents/skills/client-methods/references/legacy-client-fetch-audit-2026-06-03.md +0 -62
  887. package/src/templates/workspace-core/.agents/skills/client-side-routing/SKILL.md +0 -87
  888. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +0 -139
  889. package/src/templates/workspace-core/.agents/skills/context-xray/SKILL.md +0 -72
  890. package/src/templates/workspace-core/.agents/skills/create-skill/SKILL.md +0 -195
  891. package/src/templates/workspace-core/.agents/skills/data-programs/SKILL.md +0 -128
  892. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +0 -219
  893. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +0 -533
  894. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +0 -340
  895. package/src/templates/workspace-core/.agents/skills/extensions/references/examples.md +0 -259
  896. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +0 -547
  897. package/src/templates/workspace-core/.agents/skills/external-agents/references/mcp-apps-embedding.md +0 -157
  898. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +0 -169
  899. package/src/templates/workspace-core/.agents/skills/generative-ui/SKILL.md +0 -117
  900. package/src/templates/workspace-core/.agents/skills/harness-agents/SKILL.md +0 -170
  901. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +0 -364
  902. package/src/templates/workspace-core/.agents/skills/internationalization/SKILL.md +0 -82
  903. package/src/templates/workspace-core/.agents/skills/mvp-followup/SKILL.md +0 -52
  904. package/src/templates/workspace-core/.agents/skills/native-navigation/SKILL.md +0 -67
  905. package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +0 -329
  906. package/src/templates/workspace-core/.agents/skills/onboarding/SKILL.md +0 -56
  907. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +0 -299
  908. package/src/templates/workspace-core/.agents/skills/qa/SKILL.md +0 -333
  909. package/src/templates/workspace-core/.agents/skills/real-time-collab/SKILL.md +0 -392
  910. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +0 -74
  911. package/src/templates/workspace-core/.agents/skills/reliable-mutations/SKILL.md +0 -70
  912. package/src/templates/workspace-core/.agents/skills/server-plugins/SKILL.md +0 -84
  913. package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +0 -278
  914. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +0 -127
  915. package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +0 -101
  916. package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +0 -222
  917. package/src/templates/workspace-core/.agents/skills/writing-agent-instructions/SKILL.md +0 -363
@@ -0,0 +1,148 @@
1
+ # Spreadsheet source review
2
+
3
+ Use this reference after a workbook upload or Google Sheets link is supplied to
4
+ `/turn-into-app`. It defines the bounded review contract before app creation.
5
+
6
+ ## 1. Establish the source boundary
7
+
8
+ Record the source before interpreting it:
9
+
10
+ | Field | Record |
11
+ | ------------ | --------------------------------------------------------------------------------- |
12
+ | Source kind | `xlsx`, `xls`, `csv`, or Google Sheets URL |
13
+ | Provenance | Original file name or spreadsheet ID and URL; never credentials or workbook bytes |
14
+ | Access | Upload preview, authenticated provider read, or unavailable |
15
+ | Coverage | Worksheet names, selected range(s), row/column bounds, and sample counts |
16
+ | Completeness | Complete within the requested bound, partial, truncated, unreadable, or empty |
17
+ | Refresh | One-time snapshot or live refreshable source |
18
+
19
+ For an uploaded XLS/XLSX file, the framework preview contains worksheet names,
20
+ dimensions, and representative displayed values within bounds. It does not
21
+ currently preserve cell fills or font colors in that text preview. Treat the
22
+ original workbook as the formatting authority only when a tool actually returns
23
+ cell formatting metadata. Never describe a text-only upload as style-verified.
24
+
25
+ For a Google Sheets URL:
26
+
27
+ 1. Parse the spreadsheet ID and preserve the original URL as provenance.
28
+ 2. Use the authenticated `google_drive` provider path. Inspect
29
+ `provider-api-catalog` first, use `provider-api-docs` if the endpoint or
30
+ fields are uncertain, and then call `provider-api-request`.
31
+ 3. Read spreadsheet metadata and only bounded worksheet/range data. Request
32
+ formatting metadata when the I/O decision depends on colors, including
33
+ `userEnteredFormat.backgroundColor` and
34
+ `userEnteredFormat.textFormat.foregroundColor` where the provider supports
35
+ it. Do not use a public export URL to bypass access.
36
+ 4. Preserve the spreadsheet ID, worksheet title, A1 range, account/connection
37
+ choice without secrets, row limits, and refresh behavior in the brief.
38
+
39
+ Keep provider responses bounded. For large sheets, stage or save the response
40
+ and reduce it with the available dataset/code tools. A failed page, truncated
41
+ response, or unavailable connection is not an empty sheet.
42
+
43
+ ## 2. Infer cells and ranges, then show the evidence
44
+
45
+ Classify source material into three separate buckets. Include representative
46
+ cell addresses or ranges and the evidence behind each classification.
47
+
48
+ | Bucket | Default signal | App treatment |
49
+ | ------------------ | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
50
+ | Inputs | Yellow cell background, editable assumptions, user-entered constants, or labels such as `assumption` / `driver` | Editable controls or bounded source parameters |
51
+ | Outputs | Blue text, formula-derived result cells, summary blocks, or labels such as `forecast` / `recommendation` | Read-only results, charts, recommendations, exports, or review actions |
52
+ | Static historicals | Black text used intentionally for prior-period/source records, raw rows, or labels such as `actual` / `historical` | Read-only context; never turn into editable inputs by default |
53
+
54
+ These are conventions, not permission to guess. A default black font with no
55
+ explicit style metadata is not enough to label a range as historical. Resolve
56
+ conflicts using labels, formulas, neighboring headers, repeated patterns, and
57
+ the user's stated goal. If the evidence still conflicts, lower confidence and
58
+ ask the user to confirm the proposed mapping.
59
+
60
+ Keep source cells and app behavior distinct:
61
+
62
+ - `Source inputs` are the workbook cells or ranges the user is expected to
63
+ change or refresh.
64
+ - `Source outputs` are the workbook cells or ranges the source already derives
65
+ or presents.
66
+ - `Static historicals` are context the app may filter, compare, or summarize,
67
+ but should not edit.
68
+ - `App outputs` are the new app's visible results, saved records, exports,
69
+ alerts, or downstream handoffs. Do not invent these until the repeatable job
70
+ or user confirmation makes them clear.
71
+
72
+ ## 3. Offer candidate apps, not a tab dump
73
+
74
+ Group related worksheets into candidate repeatable jobs. A candidate should
75
+ have a recognizable user, trigger, inputs, transformation or judgment, and
76
+ outputs. Utility tabs such as lookups, raw imports, instructions, pivots, and
77
+ calculation helpers can support a candidate without becoming destinations.
78
+
79
+ Present a compact Q&A review with multi-select options. In generated app code,
80
+ use `askUserQuestion` from `@agent-native/core/client/agent-chat` with
81
+ `allowMultiple: true`, stable candidate IDs as option values, and
82
+ `allowFreeText: true` for corrections. It renders inline in the agent panel;
83
+ do not build a custom modal. Each option should fit in a scannable row or
84
+ choice card:
85
+
86
+ ```text
87
+ Candidate: Pipeline forecast
88
+ Uses: Assumptions, Historical Pipeline, Forecast
89
+ Inputs: yellow assumptions in Assumptions!B4:B12 (high confidence)
90
+ Outputs: blue forecast summary in Forecast!B3:H10 (medium confidence)
91
+ Historical context: Historical Pipeline!A1:K500
92
+ Question: Confirm that forecast assumptions should be editable?
93
+ ```
94
+
95
+ Mark the strongest recommendation with `recommended: true`, but do not silently
96
+ select it. Let the user select none, one, or several candidates, correct a
97
+ proposed tab/range, or answer the unresolved question. Keep each question to
98
+ 2-4 grouped candidate jobs; for a larger workbook, group related tabs into
99
+ jobs rather than showing a tab dump or asking a separate question for every
100
+ worksheet. If there is only one high-confidence candidate, keep the review
101
+ compact and ask for confirmation only when the I/O mapping or source access is
102
+ unclear.
103
+
104
+ When several candidates are selected, pass a stable candidate ID, display name,
105
+ source worksheet/ranges, I/O mapping, confidence, and confirmation status for
106
+ each. The generated app should expose them as separate named left-navigation
107
+ destinations or tabs, not merge them into an opaque dashboard and not create a
108
+ separate workspace app for every worksheet.
109
+
110
+ ## 4. Confirm before building or publishing
111
+
112
+ The confirmation view is a source-integrity checkpoint, not a product-design
113
+ questionnaire. Show:
114
+
115
+ - the source file or spreadsheet ID and snapshot/live choice;
116
+ - selected candidate destinations and their source tabs/ranges;
117
+ - editable inputs, read-only outputs, and static historical context;
118
+ - the evidence and confidence for each mapping;
119
+ - truncation, unreadable, missing-connection, and refresh limitations;
120
+ - the app outputs/actions that will be created.
121
+
122
+ Use clear actions such as `Confirm and build`, `Edit mapping`, and `Use a
123
+ different source`. If the host has a structured question or multi-select UI,
124
+ use it. Otherwise, ask one concise assistant message that presents the same
125
+ options and requires an explicit confirmation/correction before handoff.
126
+
127
+ After confirmation, the online host may call
128
+ `start-workspace-app-creation`; the Builder run itself remains autonomous and
129
+ must record any remaining non-blocking assumptions. In a local generated app,
130
+ persist the confirmation state in SQL/application state and keep the user on
131
+ the review surface while the agent builds. Never claim a full import, live
132
+ refresh, or output write until the corresponding source/action has succeeded.
133
+
134
+ ## 5. Failure and recovery states
135
+
136
+ Keep these states distinct in the review and in the handoff:
137
+
138
+ - `unreadable` - parser/provider could not read the source;
139
+ - `partial` - only some worksheets, ranges, rows, or pages were read;
140
+ - `truncated` - the bounded preview ended before full coverage;
141
+ - `empty` - the requested readable range contains no values;
142
+ - `not-connected` - authenticated Google access is required but unavailable;
143
+ - `confirmed` - the user approved the candidate and I/O mapping.
144
+
145
+ For unreadable or not-connected sources, request a CSV/XLSX export or the
146
+ required connection. For partial or truncated sources, continue only with a
147
+ clearly bounded snapshot or ask for a narrower range. Do not coerce any of
148
+ these states into a successful empty source.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: workspace-conventions
3
+ description: >-
4
+ Shared conventions for a multi-app Agent Native workspace: finding
5
+ version-matched framework docs and source, shared vs app-owned code, file and
6
+ blob storage, env and secrets, agent scratch files, and Dispatch Resources.
7
+ Use when working across workspace apps, storing files or credentials, or
8
+ looking up framework APIs.
9
+ scope: dev
10
+ ---
11
+
12
+ # Workspace Conventions
13
+
14
+ The long-form detail behind the workspace `AGENTS.md` core rules. Read this
15
+ before adding shared code, storing files or secrets, creating workspace
16
+ resources, or looking up framework APIs.
17
+
18
+ ## Framework Docs Lookup
19
+
20
+ Read `agent-native-docs` for the lookup workflow (`framework-search` first, then
21
+ the focused `docs-search` / `source-search` readers, and the `rg` fallback).
22
+
23
+ The workspace-specific slugs it does not list are `workspace` and
24
+ `multi-app-workspace`. Feature flags and other specialized workflows are
25
+ optional; read their skill only when the app uses them. Use package docs for framework APIs,
26
+ the package corpus for reusable framework/template patterns, and this
27
+ `AGENTS.md` plus `.agents/skills/` for workspace-specific conventions.
28
+
29
+ Before building common workspace or agent UI, read `agent-native-toolkit` to
30
+ inventory existing public kits and installed package seams. Read
31
+ `customizing-agent-native` before adapting shared UI. Use the supported
32
+ ladder: configure → compose → eject the smallest unit → propose a shared seam.
33
+ Preview before `--apply`, commit `agent-native.ejections.json`, and never edit
34
+ `node_modules` or eject protected runtime contracts.
35
+
36
+ ## Shared Conventions
37
+
38
+ - All AI/LLM behavior goes through the app's agent chat. UI and server code
39
+ must not call model providers, AI SDK `generateText()` / `streamText()`, or
40
+ other inline LLM APIs directly. Use `sendToAgentChat()` for local app-agent
41
+ work, including hidden `context` and `submit: false` prefill/review flows.
42
+ Keep actions deterministic and focused. If a workflow is framed as research,
43
+ analysis, generation, recommendation, or synthesis, let the agent
44
+ orchestrate provider/data actions in the open AgentSidebar instead of hiding
45
+ the work in one opaque action or a separate follow-up textbox.
46
+ Only use `useAgentChatContext`, `setAgentChatContextItem`,
47
+ `listAgentChatContext`, `removeAgentChatContextItem`, and
48
+ `clearAgentChatContext` when UI needs two-way sync with staged context chips.
49
+ Read `.agents/skills/delegate-to-agent/SKILL.md` before building agent-driven
50
+ UI or "AI" features.
51
+ - Put shared code in `packages/shared` only when multiple apps need it.
52
+ - Keep app-specific screens, actions, state, and skills inside `apps/<app>`.
53
+ - SQL is for structured records, metadata, references, and searchable text. Store
54
+ large files/blob payloads (base64, `data:` URLs, images, video/audio, PDFs,
55
+ ZIPs, screenshots, thumbnails, session replay chunks) in configured file/blob
56
+ storage and persist only URLs, ids, or handles.
57
+ - Store shared runtime configuration in the workspace root `.env`; use
58
+ `apps/<app>/.env` only for app-specific overrides. Never hardcode API keys,
59
+ tokens, webhook URLs, signing secrets, private Builder/internal data, customer
60
+ data, or credential-looking literals in source, docs, prompts, fixtures,
61
+ application state, action responses, or generated app content. Use
62
+ secrets/OAuth/runtime configuration and obvious placeholders in examples.
63
+ - Each app deploys its own `/*` page function, and that function ships whatever
64
+ the app's server bundle depends on — including a dependency only a background
65
+ job uses. Before an app takes on a heavy runtime (headless browser, ffmpeg,
66
+ media processing, ML), read `.agents/skills/performance/SKILL.md` §9 and keep
67
+ that work in a background function or job. A dependency belonging to one app
68
+ does not belong in `packages/shared`.
69
+ - Prefer framework defaults until the workspace has a real custom rule,
70
+ component, plugin, action, or skill to share.
71
+ - Keep the Workspace files view for user-authored or user-requested resources.
72
+ Agents may create hidden `agent_scratch` resources for temporary working
73
+ notes, scripts, task plans, or intermediate outputs, but should promote them
74
+ to normal workspace visibility only when the user explicitly asks to keep or
75
+ manage the file.
76
+ - Runtime-editable global resources can be managed from Dispatch Resources.
77
+ Use `AGENTS.md` or `instructions/<slug>.md` for always-on guardrails,
78
+ `skills/<slug>/SKILL.md` for workspace skills, `context/<slug>.md` for
79
+ personas/positioning/messaging/company facts/brand guidelines, and
80
+ `agents/<slug>.md` for custom agent profiles. Scope them to All apps when
81
+ every workspace app should inherit them. All-app resources are inherited at
82
+ runtime; do not copy or sync them into individual apps.
83
+
84
+ ## Related Skills
85
+
86
+ - **adding-workspace-apps** — Creating and mounting a new app under `apps/`.
87
+ - **agent-native-docs** — The full docs and source-corpus lookup workflow.
88
+ - **agent-native-toolkit** — Inventory of shared workspace and agent UI.
89
+ - **customizing-agent-native** — The configure → compose → eject ladder.
90
+ - **delegate-to-agent** — Routing every AI feature through the agent chat.
91
+ - **performance** — Load cost, and (§9) cold-start artifact size per app.
92
+ - **secrets** — Registering API keys and service credentials.
93
+ - **storing-data** — Where structured data and large payloads belong.
@@ -30,10 +30,7 @@ export function FieldsPage() {
30
30
 
31
31
  return (
32
32
  <div className="mx-auto flex h-full min-h-0 w-full max-w-5xl flex-col gap-6 overflow-hidden p-4 md:p-6">
33
- <PageHeader
34
- title={t("fields.pageTitle")}
35
- description={t("fields.pageDescription")}
36
- />
33
+ <PageHeader title={t("fields.pageTitle")} />
37
34
 
38
35
  <FieldsList
39
36
  activeFieldId={activeFieldId}
@@ -99,7 +99,6 @@ export function InboxList({
99
99
  <>
100
100
  <ListViewHeader
101
101
  title={t("inbox.pageTitle")}
102
- description={t("inbox.pageDescription")}
103
102
  isPending={isPending}
104
103
  showSelectToggle={items.length > 0}
105
104
  selection={selection}
@@ -18,7 +18,6 @@ export function InboxListPage() {
18
18
  <>
19
19
  <ListViewHeader
20
20
  title={t("inbox.pageTitle")}
21
- description={t("inbox.pageDescription")}
22
21
  isPending={false}
23
22
  showSelectToggle={false}
24
23
  selection={null}
@@ -9,7 +9,6 @@ import { Switch } from "@/components/ui/switch";
9
9
 
10
10
  export interface ListViewHeaderProps<T extends { id: string }> {
11
11
  title: string;
12
- description: string;
13
12
  isPending: boolean;
14
13
  showSelectToggle: boolean;
15
14
  selection: ListSelection<T> | null;
@@ -21,7 +20,6 @@ export interface ListViewHeaderProps<T extends { id: string }> {
21
20
 
22
21
  export function ListViewHeader<T extends { id: string }>({
23
22
  title,
24
- description,
25
23
  isPending,
26
24
  showSelectToggle,
27
25
  selection,
@@ -39,7 +37,6 @@ export function ListViewHeader<T extends { id: string }>({
39
37
  return (
40
38
  <PageHeader
41
39
  title={title}
42
- description={description}
43
40
  actions={
44
41
  hasActions ? (
45
42
  <>
@@ -2,15 +2,13 @@ import type { ReactNode } from "react";
2
2
 
3
3
  export function PageHeader({
4
4
  title,
5
- description,
6
5
  actions,
7
6
  }: {
8
7
  title: string;
9
- description: string;
10
8
  actions?: ReactNode;
11
9
  }) {
12
10
  return (
13
- <header className="shrink-0 space-y-1">
11
+ <header className="shrink-0">
14
12
  <div className="flex items-center justify-between gap-3">
15
13
  <h1 className="min-w-0 truncate text-2xl font-semibold tracking-tight">
16
14
  {title}
@@ -19,7 +17,6 @@ export function PageHeader({
19
17
  <div className="flex shrink-0 items-center gap-2">{actions}</div>
20
18
  ) : null}
21
19
  </div>
22
- <p className="text-sm text-muted-foreground">{description}</p>
23
20
  </header>
24
21
  );
25
22
  }
@@ -186,7 +186,6 @@ export function TaskList({
186
186
  <div className="flex min-h-0 flex-col gap-6 overflow-hidden">
187
187
  <ListViewHeader
188
188
  title={t("tasks.pageTitle")}
189
- description={t("tasks.pageDescription")}
190
189
  isPending={isPending}
191
190
  showSelectToggle={hasTasks}
192
191
  selection={selection}
@@ -87,7 +87,6 @@ export function TaskListPage() {
87
87
  <>
88
88
  <ListViewHeader
89
89
  title={t("tasks.pageTitle")}
90
- description={t("tasks.pageDescription")}
91
90
  isPending={false}
92
91
  showSelectToggle={false}
93
92
  selection={null}
@@ -422,6 +422,11 @@ class AISDKEngine {
422
422
  // A step can finish having announced a tool call it never delivered.
423
423
  // Assemble it from its deltas, or report it in-band, rather than ending
424
424
  // the turn as if the model never asked for it.
425
+ for (const part of assistantContent) {
426
+ if (part.type === "tool-call") {
427
+ observeStreamedToolInput(toolInputs, part);
428
+ }
429
+ }
425
430
  for (const recovered of finalizeStreamedToolInputs(toolInputs, assistantContent.flatMap((part) => part.type === "tool-call" ? [part.id] : []))) {
426
431
  if (recovered.type === "tool-call") {
427
432
  assistantContent.push({
@@ -169,6 +169,14 @@ class AnthropicEngine {
169
169
  }
170
170
  const finalMessage = await apiStream.finalMessage();
171
171
  const assistantContent = anthropicContentToEngine(finalMessage.content);
172
+ // The final content can carry the same tool call with an empty input
173
+ // even though the stream already delivered complete argument deltas.
174
+ // Reconcile that copy before marking its id delivered.
175
+ for (const part of assistantContent) {
176
+ if (part.type === "tool-call") {
177
+ observeStreamedToolInput(toolInputs, part);
178
+ }
179
+ }
172
180
  // A tool call the stream announced but the final message never carried
173
181
  // would otherwise vanish, leaving the turn claiming an action it never
174
182
  // ran. Recover it from its deltas, or tell the model in-band.
@@ -574,9 +574,14 @@ async function apiKeyBelongsToDifferentProvider(apiKey, selectedEntry) {
574
574
  }
575
575
  return false;
576
576
  }
577
- async function engineCreateConfigForEntry(entry, apiKey, extra, preferResolvedCredential = false, apiKeyEnvVar, credentialIdentity) {
577
+ async function engineCreateConfigForEntry(entry, apiKey, extra, credentialResolution = "explicit", apiKeyEnvVar, credentialIdentity) {
578
578
  const safeExtra = { ...(extra ?? {}) };
579
579
  let matchingApiKey = apiKey;
580
+ if (matchingApiKey === undefined &&
581
+ typeof safeExtra.apiKey === "string" &&
582
+ safeExtra.apiKey.trim()) {
583
+ matchingApiKey = safeExtra.apiKey;
584
+ }
580
585
  // A declared provenance settles the question without inspecting values: a
581
586
  // credential issued for another provider's env var is never this entry's
582
587
  // key, so drop it on explicit branches too. Value comparison below cannot
@@ -586,14 +591,14 @@ async function engineCreateConfigForEntry(entry, apiKey, extra, preferResolvedCr
586
591
  !entry.requiredEnvVars.includes(apiKeyEnvVar)) {
587
592
  matchingApiKey = undefined;
588
593
  }
589
- // Automatic engine selection must also select that engine's credential.
590
- // Callers historically passed one untagged "active" key before the registry
591
- // chose an engine, which could hand an Anthropic key to an app-default
592
- // OpenAI engine (or vice versa). Explicit engineOption branches retain their
593
- // paired key. Automatic branches replace only a key proven to belong to a
594
- // different configured provider; opaque caller-supplied keys keep the public
595
- // `ResolveEngineConfig.apiKey` contract.
596
- if (preferResolvedCredential &&
594
+ // Engine selection must also select that engine's credential. Callers
595
+ // historically passed one untagged "active" key before the registry chose
596
+ // an engine, which could hand an Anthropic key to an OpenAI engine (or vice
597
+ // versa). Explicit engine options can also arrive without a key when the
598
+ // owner resolver missed a shared vault row, so resolve those missing keys at
599
+ // this construction boundary too. Opaque caller-supplied keys remain intact
600
+ // unless they are proven to belong to another configured provider.
601
+ if ((credentialResolution === "automatic" || matchingApiKey === undefined) &&
597
602
  entry.name !== "builder" &&
598
603
  entry.requiredEnvVars.length > 0) {
599
604
  let resolvedMatchingCredential;
@@ -616,8 +621,8 @@ async function engineCreateConfigForEntry(entry, apiKey, extra, preferResolvedCr
616
621
  if (matchingApiKey === undefined || suppliedKeyBelongsElsewhere) {
617
622
  // Keep deploy-only credentials implicit so provider SDKs retain their
618
623
  // established env-fallback behavior. Scoped credentials must be passed
619
- // explicitly. A proven different-provider key is replaced or cleared;
620
- // an opaque caller-supplied key is preserved by the branch above.
624
+ // explicitly. Automatic selection replaces a proven
625
+ // different-provider key; an opaque explicit key is left untouched.
621
626
  matchingApiKey =
622
627
  resolvedMatchingCredential && !matchingCredentialUsesDeployFallback
623
628
  ? resolvedMatchingCredential
@@ -820,7 +825,7 @@ export async function resolveEngine(config) {
820
825
  if (!entry)
821
826
  throw new Error(`[agent-engine] Unknown engine: "${name}". Registered: ${[..._registry.keys()].join(", ")}`);
822
827
  assertAgentEnginePackageInstalled(entry);
823
- return entry.create(await engineCreateConfigForEntry(entry, apiKey, engineConfig, false, apiKeyEnvVar, credentialIdentity));
828
+ return entry.create(await engineCreateConfigForEntry(entry, apiKey, engineConfig, "explicit", apiKeyEnvVar, credentialIdentity));
824
829
  }
825
830
  // 3. Explicit string name from options
826
831
  if (typeof engineOption === "string") {
@@ -828,7 +833,7 @@ export async function resolveEngine(config) {
828
833
  if (!entry)
829
834
  throw new Error(`[agent-engine] Unknown engine: "${engineOption}". Registered: ${[..._registry.keys()].join(", ")}`);
830
835
  assertAgentEnginePackageInstalled(entry);
831
- return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, false, apiKeyEnvVar, credentialIdentity));
836
+ return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, "explicit", apiKeyEnvVar, credentialIdentity));
832
837
  }
833
838
  // 4. Env var — explicit engine name override
834
839
  const envEngine = process.env.AGENT_ENGINE;
@@ -836,7 +841,7 @@ export async function resolveEngine(config) {
836
841
  const entry = _registry.get(envEngine);
837
842
  if (entry) {
838
843
  assertAgentEnginePackageInstalled(entry);
839
- return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, true, apiKeyEnvVar, credentialIdentity));
844
+ return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, "automatic", apiKeyEnvVar, credentialIdentity));
840
845
  }
841
846
  }
842
847
  const appDefault = await getAgentAppModelDefaultForCurrentRequest(appId);
@@ -846,7 +851,7 @@ export async function resolveEngine(config) {
846
851
  (await isStoredEngineUsableForRequest(appDefault, entry, {
847
852
  credentialIdentity,
848
853
  }))) {
849
- return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, true, apiKeyEnvVar, credentialIdentity));
854
+ return entry.create(await engineCreateConfigForEntry(entry, apiKey, undefined, "automatic", apiKeyEnvVar, credentialIdentity));
850
855
  }
851
856
  }
852
857
  let stored = null;
@@ -873,25 +878,25 @@ export async function resolveEngine(config) {
873
878
  (await isStoredEngineUsableForRequest(storedRaw, entry, {
874
879
  credentialIdentity,
875
880
  }))) {
876
- return entry.create(await engineCreateConfigForEntry(entry, apiKey, stripInlineApiKeyConfig(storedConfig), true, apiKeyEnvVar, credentialIdentity));
881
+ return entry.create(await engineCreateConfigForEntry(entry, apiKey, stripInlineApiKeyConfig(storedConfig), "automatic", apiKeyEnvVar, credentialIdentity));
877
882
  }
878
883
  }
879
884
  if (detectedFromUser) {
880
- return detectedFromUser.create(await engineCreateConfigForEntry(detectedFromUser, apiKey, undefined, true, apiKeyEnvVar, credentialIdentity));
885
+ return detectedFromUser.create(await engineCreateConfigForEntry(detectedFromUser, apiKey, undefined, "automatic", apiKeyEnvVar, credentialIdentity));
881
886
  }
882
887
  // 8. Auto-detect from any provider env var — so just dropping a key in
883
888
  // .env works without also setting AGENT_ENGINE. Skip keys with active
884
889
  // auth-failure markers so a rejected deploy key cannot permanently win.
885
890
  const detected = await detectEngineFromEnvForRequest();
886
891
  if (detected) {
887
- return detected.create(await engineCreateConfigForEntry(detected, apiKey, undefined, true, apiKeyEnvVar, credentialIdentity));
892
+ return detected.create(await engineCreateConfigForEntry(detected, apiKey, undefined, "automatic", apiKeyEnvVar, credentialIdentity));
888
893
  }
889
894
  // 9. Default: anthropic
890
895
  const anthropicEntry = _registry.get("anthropic");
891
896
  if (!anthropicEntry) {
892
897
  throw new Error("[agent-engine] Default Anthropic engine is not registered. Did builtin.ts fail to load?");
893
898
  }
894
- return anthropicEntry.create(await engineCreateConfigForEntry(anthropicEntry, apiKey, undefined, true, apiKeyEnvVar, credentialIdentity));
899
+ return anthropicEntry.create(await engineCreateConfigForEntry(anthropicEntry, apiKey, undefined, "automatic", apiKeyEnvVar, credentialIdentity));
895
900
  }
896
901
  /**
897
902
  * Read the user-selected model for an engine from the `agent-engine` setting.
@@ -503,7 +503,19 @@ export function observeStreamedToolInput(state, event) {
503
503
  state.byId.set(id, { name: event.name ?? "", text, delivered: false });
504
504
  return;
505
505
  }
506
- if (event.type === "tool-call" || event.type === "tool-call-error") {
506
+ if (event.type === "tool-call") {
507
+ // Non-empty terminal input remains authoritative. Some gateways emit the
508
+ // complete argument JSON as deltas but follow it with an empty terminal
509
+ // input, so recover the already-complete stream in that case.
510
+ if (isEmptyToolInput(event.input)) {
511
+ const streamedInput = parseStreamedToolInput(state.byId.get(event.id)?.text ?? "");
512
+ if (streamedInput !== undefined)
513
+ event.input = streamedInput;
514
+ }
515
+ markStreamedToolInputDelivered(state, event.id);
516
+ return;
517
+ }
518
+ if (event.type === "tool-call-error") {
507
519
  markStreamedToolInputDelivered(state, event.id);
508
520
  }
509
521
  }
@@ -555,6 +567,9 @@ function parseStreamedToolInput(text) {
555
567
  return undefined;
556
568
  }
557
569
  }
570
+ function isEmptyToolInput(input) {
571
+ return input == null || (isRecord(input) && Object.keys(input).length === 0);
572
+ }
558
573
  // ---------------------------------------------------------------------------
559
574
  // Build tool_result blocks to append to messages after tool dispatch
560
575
  // ---------------------------------------------------------------------------
@@ -235,6 +235,14 @@ export interface ActionEntry {
235
235
  * `needsApproval` option. See `packages/core/docs/content/actions.mdx`.
236
236
  */
237
237
  needsApproval?: boolean | ((args: any, ctx?: import("../action.js").ActionRunContext) => boolean | Promise<boolean>);
238
+ /**
239
+ * The action hands control back to the user: once it succeeds the loop stops
240
+ * the turn instead of asking the model for another step, and any remaining
241
+ * tool calls in the same assistant message do not execute. Only for actions
242
+ * whose whole purpose is to wait on a human (`ask-question`) — telling the
243
+ * model to stop in the tool result does not make it stop.
244
+ */
245
+ endsTurn?: boolean;
238
246
  /** Which framework tool group contributed this action. Set by the framework,
239
247
  * never by an app: apps own their action names, and a tagged action is one
240
248
  * the app can switch off wholesale through `frameworkTools`. Tagged actions
@@ -3823,6 +3823,23 @@ export async function runAgentLoop(opts) {
3823
3823
  emptyFinalResponseRetries = 0;
3824
3824
  flushUnstreamedAssistantText();
3825
3825
  let requestedActionStop = null;
3826
+ // An `endsTurn` action ran and handed control to the user. Distinct from
3827
+ // `requestedActionStop`, which also covers failure stops that must not
3828
+ // suppress the remaining tool calls.
3829
+ let turnYieldedToUser = false;
3830
+ // Called by every path that completes a tool call successfully — a fresh
3831
+ // invocation, a journal replay, a ledger recovery. A replayed
3832
+ // `ask-question` that skipped this would let the resumed run ask a second
3833
+ // time over the card the user is already looking at.
3834
+ const noteToolCallSucceeded = (actionEntry) => {
3835
+ if (actionEntry.endsTurn !== true)
3836
+ return;
3837
+ turnYieldedToUser = true;
3838
+ requestedActionStop ??= {
3839
+ message: "Waiting for your answer before continuing.",
3840
+ errorCode: "awaiting-user-input",
3841
+ };
3842
+ };
3826
3843
  const noteRepeatedToolCall = (toolName, input) => {
3827
3844
  const key = toolCallCacheKey(toolName, input);
3828
3845
  const count = (repeatedToolCalls.get(key) ?? 0) + 1;
@@ -4167,6 +4184,7 @@ export async function runAgentLoop(opts) {
4167
4184
  completedSideEffect: true,
4168
4185
  });
4169
4186
  recordToolResult(result, false);
4187
+ noteToolCallSucceeded(actionEntry);
4170
4188
  return {
4171
4189
  type: "tool-result",
4172
4190
  toolCallId: toolCall.id,
@@ -4220,6 +4238,7 @@ export async function runAgentLoop(opts) {
4220
4238
  ...(actionEntry.chatUI ? { chatUI: actionEntry.chatUI } : {}),
4221
4239
  });
4222
4240
  recordToolResult(result, false);
4241
+ noteToolCallSucceeded(actionEntry);
4223
4242
  return {
4224
4243
  type: "tool-result",
4225
4244
  toolCallId: toolCall.id,
@@ -4645,6 +4664,7 @@ export async function runAgentLoop(opts) {
4645
4664
  });
4646
4665
  recordToolResult(result, isError);
4647
4666
  if (!isError) {
4667
+ noteToolCallSucceeded(actionEntry);
4648
4668
  if (cacheKey) {
4649
4669
  readOnlyToolResultCache.set(cacheKey, result);
4650
4670
  }
@@ -4715,7 +4735,46 @@ export async function runAgentLoop(opts) {
4715
4735
  parallelBatchKind = null;
4716
4736
  toolResultParts.push(...(await Promise.all(batch.map(runToolCall))));
4717
4737
  };
4738
+ // An `endsTurn` action already handed control to the user, so the rest of
4739
+ // this assistant message belongs to a turn that is over. Report those calls
4740
+ // as not executed rather than running them: a second `ask-question` would
4741
+ // overwrite the first one's card before anyone could answer it.
4742
+ const skipToolCallAfterYield = (toolCall) => {
4743
+ const result = `Not executed: ${toolCall.name} was called after an action that ends the turn. ` +
4744
+ `The turn is paused for the user's answer — call it again on a later turn if still needed.`;
4745
+ send({
4746
+ type: "tool_start",
4747
+ id: toolCall.id,
4748
+ tool: toolCall.name,
4749
+ input: toolCall.input,
4750
+ });
4751
+ send({
4752
+ type: "tool_done",
4753
+ id: toolCall.id,
4754
+ tool: toolCall.name,
4755
+ input: toolCall.input,
4756
+ result,
4757
+ completedSideEffect: false,
4758
+ });
4759
+ toolResultHistory.push({
4760
+ name: toolCall.name,
4761
+ content: result,
4762
+ isError: false,
4763
+ });
4764
+ return {
4765
+ type: "tool-result",
4766
+ toolCallId: toolCall.id,
4767
+ toolName: toolCall.name,
4768
+ toolInput: JSON.stringify(toolCall.input ?? {}),
4769
+ content: result,
4770
+ };
4771
+ };
4718
4772
  for (const toolCall of toolCallParts) {
4773
+ if (turnYieldedToUser) {
4774
+ await flushParallelBatch();
4775
+ toolResultParts.push(skipToolCallAfterYield(toolCall));
4776
+ continue;
4777
+ }
4719
4778
  const batchKind = getParallelBatchKind(toolCall);
4720
4779
  if (batchKind) {
4721
4780
  if (parallelBatchKind && parallelBatchKind !== batchKind) {
@@ -4829,6 +4888,13 @@ export async function runAgentLoop(opts) {
4829
4888
  message: terminalActionStop.message,
4830
4889
  });
4831
4890
  }
4891
+ else if (terminalActionStop?.errorCode === "awaiting-user-input") {
4892
+ reportOutcome({
4893
+ state: "input_required",
4894
+ code: "awaiting_user_input",
4895
+ message: terminalActionStop.message,
4896
+ });
4897
+ }
4832
4898
  else if (terminalActionStop) {
4833
4899
  reportOutcome({
4834
4900
  state: "failed",
@@ -1,6 +1,8 @@
1
1
  import { type JobFrontmatter } from "../jobs/frontmatter.js";
2
2
  import { type Resource } from "../resources/store.js";
3
3
  export type AutomationScope = "personal" | "organization";
4
+ /** Conservative default for new scheduled automations when no cadence is given. */
5
+ export declare const DEFAULT_AUTOMATION_SCHEDULE = "0 * * * *";
4
6
  export interface AutomationActor {
5
7
  userEmail: string;
6
8
  orgId?: string | null;