@agent-native/core 0.141.6 → 0.144.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 (501) hide show
  1. package/agent-native.eject.json +9 -0
  2. package/corpus/README.md +1 -1
  3. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +3 -14
  4. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +11 -6
  5. package/corpus/templates/analytics/.agents/skills/prometheus/SKILL.md +5 -5
  6. package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +19 -0
  7. package/corpus/templates/analytics/.agents/skills/turn-into-app/SKILL.md +296 -0
  8. package/corpus/templates/analytics/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  9. package/corpus/templates/analytics/.agents/skills/turn-into-skill/SKILL.md +112 -0
  10. package/corpus/templates/analytics/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  11. package/corpus/templates/analytics/AGENTS.md +37 -40
  12. package/corpus/templates/analytics/actions/compose-dashboard.ts +1 -1
  13. package/corpus/templates/analytics/actions/ensure-native-v2-dashboards.ts +1 -1
  14. package/corpus/templates/analytics/actions/list-dashboard-usage-stats.ts +17 -22
  15. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +135 -0
  16. package/corpus/templates/analytics/actions/navigate.ts +5 -6
  17. package/corpus/templates/analytics/actions/provider-api-register.ts +50 -0
  18. package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +46 -13
  19. package/corpus/templates/analytics/actions/test-custom-api-connection.ts +106 -0
  20. package/corpus/templates/analytics/actions/update-dashboard.ts +0 -1
  21. package/corpus/templates/analytics/actions/view-screen.ts +0 -20
  22. package/corpus/templates/analytics/app/components/CustomApiCard.tsx +430 -0
  23. package/corpus/templates/analytics/app/components/layout/Header.tsx +0 -1
  24. package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +5 -5
  25. package/corpus/templates/analytics/app/i18n-data.ts +682 -90
  26. package/corpus/templates/analytics/app/lib/native-mcp-exclusions.ts +6 -0
  27. package/corpus/templates/analytics/app/lib/sql-query.ts +33 -6
  28. package/corpus/templates/analytics/app/pages/Agents.tsx +0 -3
  29. package/corpus/templates/analytics/app/pages/DataSources.tsx +4 -0
  30. package/corpus/templates/analytics/app/pages/Settings.tsx +22 -43
  31. package/corpus/templates/analytics/app/pages/settings/settings-search.ts +23 -20
  32. package/corpus/templates/analytics/app/routes/extensions._index.tsx +1 -1
  33. package/corpus/templates/analytics/app/routes/settings.$.tsx +1 -0
  34. package/corpus/templates/analytics/app/routes/team.tsx +1 -1
  35. package/corpus/templates/analytics/changelog/2026-08-05-settings-no-longer-includes-an-unnecessary-about-section.md +6 -0
  36. package/corpus/templates/analytics/changelog/2026-08-06-analytics-dashboards-load-reliably-during-background-data-sw.md +6 -0
  37. package/corpus/templates/analytics/changelog/2026-08-06-analytics-dashboards-remain-responsive-while-historical-data.md +6 -0
  38. package/corpus/templates/analytics/changelog/2026-08-06-analytics-query-results-now-render-as-a-table-with-csv-downl.md +6 -0
  39. package/corpus/templates/analytics/changelog/2026-08-06-connect-public-https-custom-apis-and-hand-tested-endpoints-t.md +6 -0
  40. package/corpus/templates/analytics/changelog/2026-08-06-durable-agent-worker-memory.md +6 -0
  41. package/corpus/templates/analytics/changelog/2026-08-06-live-dashboard-panels-use-the-shared-query-timeout.md +6 -0
  42. package/corpus/templates/analytics/changelog/2026-08-06-on-demand-billing-is-available-as-a-native-dashboard-with-ta.md +6 -0
  43. package/corpus/templates/analytics/changelog/2026-08-06-visible-dashboard-names-are-unique.md +6 -0
  44. package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +1 -1
  45. package/corpus/templates/analytics/netlify.toml +7 -0
  46. package/corpus/templates/analytics/scripts/emit-netlify-dashboard-report-cron.ts +4 -0
  47. package/corpus/templates/analytics/scripts/first-party-analytics-bigquery.sql +104 -0
  48. package/corpus/templates/analytics/server/db/index.ts +27 -0
  49. package/corpus/templates/analytics/server/db/schema.ts +10 -0
  50. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +0 -2
  51. package/corpus/templates/analytics/server/lib/dashboards-store.ts +227 -60
  52. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +1147 -0
  53. package/corpus/templates/analytics/server/lib/first-party-analytics-health.ts +34 -15
  54. package/corpus/templates/analytics/server/lib/first-party-analytics.ts +57 -4
  55. package/corpus/templates/analytics/server/lib/native-v2-dashboards.ts +227 -1
  56. package/corpus/templates/analytics/server/lib/real-data-actions.ts +1 -3
  57. package/corpus/templates/analytics/server/plugins/agent-chat.ts +7 -4
  58. package/corpus/templates/analytics/server/plugins/analytics-rollup-backfill-jobs.ts +1 -0
  59. package/corpus/templates/analytics/server/plugins/db.ts +52 -18
  60. package/corpus/templates/assets/.agents/skills/asset-generation/SKILL.md +36 -8
  61. package/corpus/templates/assets/.agents/skills/image-generation/SKILL.md +16 -1
  62. package/corpus/templates/assets/.agents/skills/library-management/SKILL.md +16 -1
  63. package/corpus/templates/assets/.agents/skills/turn-into-app/SKILL.md +296 -0
  64. package/corpus/templates/assets/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  65. package/corpus/templates/assets/.agents/skills/turn-into-skill/SKILL.md +112 -0
  66. package/corpus/templates/assets/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  67. package/corpus/templates/assets/AGENTS.md +1 -0
  68. package/corpus/templates/assets/actions/_helpers.ts +12 -0
  69. package/corpus/templates/assets/actions/generate-image.ts +9 -3
  70. package/corpus/templates/assets/actions/import-style-from-url.ts +115 -0
  71. package/corpus/templates/assets/app/hooks/use-navigation-state.ts +3 -1
  72. package/corpus/templates/assets/app/routes/extensions._index.tsx +1 -1
  73. package/corpus/templates/assets/app/routes/settings.$.tsx +1 -0
  74. package/corpus/templates/assets/app/routes/settings.tsx +5 -0
  75. package/corpus/templates/assets/app/routes/team.tsx +1 -1
  76. package/corpus/templates/assets/changelog/2026-08-05-brand-kits-can-import-a-website-s-hydrated-visual-language-a.md +6 -0
  77. package/corpus/templates/assets/changelog/2026-08-05-generated-images-now-hand-off-embeddable-previews-to-other-w.md +6 -0
  78. package/corpus/templates/assets/server/lib/generation.ts +58 -0
  79. package/corpus/templates/assets/shared/api.ts +12 -0
  80. package/corpus/templates/brain/.agents/skills/turn-into-app/SKILL.md +296 -0
  81. package/corpus/templates/brain/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  82. package/corpus/templates/brain/.agents/skills/turn-into-skill/SKILL.md +112 -0
  83. package/corpus/templates/brain/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  84. package/corpus/templates/brain/actions/list-connection-providers.ts +24 -3
  85. package/corpus/templates/brain/app/lib/dispatch-links.ts +44 -0
  86. package/corpus/templates/brain/app/routes/extensions._index.tsx +1 -1
  87. package/corpus/templates/brain/app/routes/sources.tsx +15 -7
  88. package/corpus/templates/brain/app/routes/team.tsx +1 -1
  89. package/corpus/templates/brain/app/routes.ts +1 -1
  90. package/corpus/templates/brain/changelog/2026-08-06-brain-provider-setup-links-open-dispatch-correctly-in-standa.md +6 -0
  91. package/corpus/templates/brain/server/plugins/agent-chat.ts +1 -0
  92. package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +26 -0
  93. package/corpus/templates/calendar/.agents/skills/turn-into-app/SKILL.md +296 -0
  94. package/corpus/templates/calendar/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  95. package/corpus/templates/calendar/.agents/skills/turn-into-skill/SKILL.md +112 -0
  96. package/corpus/templates/calendar/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  97. package/corpus/templates/calendar/AGENTS.md +11 -32
  98. package/corpus/templates/calendar/actions/update-event.ts +107 -1
  99. package/corpus/templates/calendar/app/components/calendar/EventCalendarSelect.tsx +83 -0
  100. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +57 -0
  101. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +59 -73
  102. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +3 -1
  103. package/corpus/templates/calendar/app/hooks/use-events.ts +4 -1
  104. package/corpus/templates/calendar/app/i18n-data.ts +20 -0
  105. package/corpus/templates/calendar/app/routes/_app.extensions._index.tsx +1 -1
  106. package/corpus/templates/calendar/app/routes/_app.settings.$.tsx +1 -0
  107. package/corpus/templates/calendar/app/routes/_app.team.tsx +1 -1
  108. package/corpus/templates/calendar/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  109. package/corpus/templates/calendar/changelog/2026-08-06-existing-events-can-move-between-connected-google-account-ca.md +6 -0
  110. package/corpus/templates/calendar/server/lib/google-calendar.ts +101 -0
  111. package/corpus/templates/calendar/server/plugins/agent-chat.ts +7 -1
  112. package/corpus/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  113. package/corpus/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  114. package/corpus/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  115. package/corpus/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  116. package/corpus/templates/chat/app/components/layout/Layout.tsx +1 -1
  117. package/corpus/templates/chat/app/hooks/use-navigation-state.ts +1 -1
  118. package/corpus/templates/chat/app/root.tsx +1 -1
  119. package/corpus/templates/chat/app/routes/agent.tsx +7 -7
  120. package/corpus/templates/chat/app/routes/extensions._index.tsx +1 -1
  121. package/corpus/templates/chat/app/routes/settings.$.tsx +1 -0
  122. package/corpus/templates/chat/app/routes/team.tsx +1 -1
  123. package/corpus/templates/clips/.agents/skills/turn-into-app/SKILL.md +296 -0
  124. package/corpus/templates/clips/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  125. package/corpus/templates/clips/.agents/skills/turn-into-skill/SKILL.md +112 -0
  126. package/corpus/templates/clips/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  127. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +9 -24
  128. package/corpus/templates/clips/app/components/editor/timeline-geometry.ts +15 -0
  129. package/corpus/templates/clips/app/components/editor/waveform.tsx +4 -17
  130. package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
  131. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +14 -3
  132. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +1 -1
  133. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
  134. package/corpus/templates/clips/app/routes/_app.extensions._index.tsx +1 -1
  135. package/corpus/templates/clips/app/routes/_app.settings.$.tsx +1 -0
  136. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +28 -38
  137. package/corpus/templates/clips/app/routes/share.$shareId.tsx +21 -27
  138. package/corpus/templates/clips/changelog/2026-08-06-clips-recovers-from-stalled-recording-setup-without-requirin.md +6 -0
  139. package/corpus/templates/clips/changelog/2026-08-06-clips-starts-faster-after-a-deploy-or-idle-period-startup-no.md +6 -0
  140. package/corpus/templates/clips/changelog/2026-08-06-deleting-a-recording-returns-cleanly-to-the-library-and-fit-.md +6 -0
  141. package/corpus/templates/clips/changelog/2026-08-06-hide-clip-insights-from-viewers-without-analytics-access.md +6 -0
  142. package/corpus/templates/clips/desktop/src/app.tsx +48 -20
  143. package/corpus/templates/clips/desktop/src/lib/recorder.ts +275 -74
  144. package/corpus/templates/clips/desktop/src/lib/recording-start-guard.ts +84 -0
  145. package/corpus/templates/clips/desktop/src/overlays/toolbar.tsx +14 -4
  146. package/corpus/templates/clips/server/plugins/db.ts +214 -26
  147. package/corpus/templates/content/.agents/skills/turn-into-app/SKILL.md +296 -0
  148. package/corpus/templates/content/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  149. package/corpus/templates/content/.agents/skills/turn-into-skill/SKILL.md +112 -0
  150. package/corpus/templates/content/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  151. package/corpus/templates/content/app/routes/_app.extensions._index.tsx +1 -1
  152. package/corpus/templates/content/app/routes/_app.settings.$.tsx +1 -0
  153. package/corpus/templates/content/app/routes/_app.team.tsx +1 -1
  154. package/corpus/templates/content/e2e/global-setup.ts +1 -1
  155. package/corpus/templates/crm/.agents/skills/turn-into-app/SKILL.md +296 -0
  156. package/corpus/templates/crm/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  157. package/corpus/templates/crm/.agents/skills/turn-into-skill/SKILL.md +112 -0
  158. package/corpus/templates/crm/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  159. package/corpus/templates/crm/changelog/2026-08-06-crm-starts-faster-after-a-deploy-or-idle-period-one-time-dat.md +6 -0
  160. package/corpus/templates/crm/server/plugins/db.ts +11 -8
  161. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +36 -1
  162. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +6 -1
  163. package/corpus/templates/design/.agents/skills/turn-into-app/SKILL.md +296 -0
  164. package/corpus/templates/design/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  165. package/corpus/templates/design/.agents/skills/turn-into-skill/SKILL.md +112 -0
  166. package/corpus/templates/design/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  167. package/corpus/templates/design/actions/analyze-brand-assets.ts +7 -7
  168. package/corpus/templates/design/actions/import-from-url.ts +6 -5
  169. package/corpus/templates/design/app/components/design/LayersPanel.tsx +27 -18
  170. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +2 -2
  171. package/corpus/templates/design/app/pages/Index.tsx +6 -2
  172. package/corpus/templates/design/app/routes/extensions._index.tsx +1 -1
  173. package/corpus/templates/design/app/routes/settings.$.tsx +1 -0
  174. package/corpus/templates/design/app/routes/team.tsx +1 -1
  175. package/corpus/templates/design/changelog/2026-08-05-deleting-a-design-from-the-home-page-no-longer-leaves-the-ap.md +6 -0
  176. package/corpus/templates/design/changelog/2026-08-05-renaming-a-layer-now-focuses-its-name-field-automatically.md +6 -0
  177. package/corpus/templates/design/changelog/2026-08-05-website-url-imports-now-capture-hydrated-browser-computed-de.md +6 -0
  178. package/corpus/templates/design/e2e/global-setup.ts +1 -1
  179. package/corpus/templates/design/server/plugins/agent-chat.ts +2 -0
  180. package/corpus/templates/dispatch/.agents/skills/turn-into-app/SKILL.md +296 -0
  181. package/corpus/templates/dispatch/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  182. package/corpus/templates/dispatch/.agents/skills/turn-into-skill/SKILL.md +112 -0
  183. package/corpus/templates/dispatch/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  184. package/corpus/templates/dispatch/app/hooks/use-navigation-state.ts +1 -1
  185. package/corpus/templates/dispatch/app/routes/settings.$.tsx +1 -0
  186. package/corpus/templates/dispatch/app/routes/team.tsx +1 -1
  187. package/corpus/templates/dispatch/changelog/2026-08-06-ready-workspace-apps-stay-one-click-away-in-a-compact-dispat.md +6 -0
  188. package/corpus/templates/dispatch/changelog/2026-08-06-shared-vault-values-and-management-are-now-restricted-to-wor.md +6 -0
  189. package/corpus/templates/factory/.agents/skills/turn-into-app/SKILL.md +296 -0
  190. package/corpus/templates/factory/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  191. package/corpus/templates/factory/.agents/skills/turn-into-skill/SKILL.md +112 -0
  192. package/corpus/templates/factory/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  193. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +1 -1
  194. package/corpus/templates/factory/app/routes/extensions._index.tsx +1 -1
  195. package/corpus/templates/factory/app/routes/settings.$.tsx +1 -0
  196. package/corpus/templates/factory/app/routes/team.tsx +1 -1
  197. package/corpus/templates/forms/.agents/skills/turn-into-app/SKILL.md +296 -0
  198. package/corpus/templates/forms/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  199. package/corpus/templates/forms/.agents/skills/turn-into-skill/SKILL.md +112 -0
  200. package/corpus/templates/forms/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  201. package/corpus/templates/forms/app/routes/_app.extensions._index.tsx +1 -1
  202. package/corpus/templates/forms/app/routes/_app.settings.$.tsx +1 -0
  203. package/corpus/templates/forms/app/routes/_app.team.tsx +1 -1
  204. package/corpus/templates/forms/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  205. package/corpus/templates/forms/server/plugins/agent-chat.ts +4 -0
  206. package/corpus/templates/forms/shared/navigation.ts +1 -1
  207. package/corpus/templates/macros/.agents/skills/turn-into-app/SKILL.md +296 -0
  208. package/corpus/templates/macros/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  209. package/corpus/templates/macros/.agents/skills/turn-into-skill/SKILL.md +112 -0
  210. package/corpus/templates/macros/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  211. package/corpus/templates/macros/app/routes/extensions._index.tsx +1 -1
  212. package/corpus/templates/macros/app/routes/settings.$.tsx +1 -0
  213. package/corpus/templates/macros/app/routes/team.tsx +1 -1
  214. package/corpus/templates/mail/.agents/skills/turn-into-app/SKILL.md +296 -0
  215. package/corpus/templates/mail/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  216. package/corpus/templates/mail/.agents/skills/turn-into-skill/SKILL.md +112 -0
  217. package/corpus/templates/mail/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  218. package/corpus/templates/mail/app/routes/extensions._index.tsx +1 -1
  219. package/corpus/templates/mail/app/routes/settings.$.tsx +1 -0
  220. package/corpus/templates/mail/changelog/2026-08-06-delegated-requests-continue-in-the-background.md +6 -0
  221. package/corpus/templates/mail/server/plugins/agent-chat.ts +6 -0
  222. package/corpus/templates/plan/.agents/skills/turn-into-app/SKILL.md +296 -0
  223. package/corpus/templates/plan/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  224. package/corpus/templates/plan/.agents/skills/turn-into-skill/SKILL.md +112 -0
  225. package/corpus/templates/plan/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  226. package/corpus/templates/plan/app/hooks/use-navigation-state.ts +1 -1
  227. package/corpus/templates/plan/app/routes/extensions._index.tsx +1 -1
  228. package/corpus/templates/plan/app/routes/settings.$.tsx +1 -0
  229. package/corpus/templates/plan/app/routes/team.tsx +1 -1
  230. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +48 -5
  231. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +40 -2
  232. package/corpus/templates/slides/.agents/skills/image-generation-via-a2a/SKILL.md +6 -0
  233. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +15 -2
  234. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +29 -24
  235. package/corpus/templates/slides/.agents/skills/turn-into-app/SKILL.md +296 -0
  236. package/corpus/templates/slides/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  237. package/corpus/templates/slides/.agents/skills/turn-into-skill/SKILL.md +112 -0
  238. package/corpus/templates/slides/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  239. package/corpus/templates/slides/AGENTS.md +7 -9
  240. package/corpus/templates/slides/_gitignore +1 -0
  241. package/corpus/templates/slides/actions/analyze-brand-assets.ts +7 -7
  242. package/corpus/templates/slides/actions/export-pptx.ts +402 -36
  243. package/corpus/templates/slides/actions/import-file.ts +46 -85
  244. package/corpus/templates/slides/actions/import-from-url.ts +6 -6
  245. package/corpus/templates/slides/actions/import-google-slides-reference.ts +271 -12
  246. package/corpus/templates/slides/actions/import-pptx.ts +85 -60
  247. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +10 -13
  248. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +1 -1
  249. package/corpus/templates/slides/app/components/editor/AddSlidePopover.tsx +5 -1
  250. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +25 -12
  251. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +112 -57
  252. package/corpus/templates/slides/app/components/editor/GoogleDriveConnectionCta.tsx +202 -0
  253. package/corpus/templates/slides/app/components/editor/GoogleSlidesReferenceImport.tsx +26 -14
  254. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +176 -0
  255. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +182 -141
  256. package/corpus/templates/slides/app/components/editor/canvas-interactions/index.ts +1 -0
  257. package/corpus/templates/slides/app/components/editor/canvas-interactions/slides-canvas-adapter.ts +18 -0
  258. package/corpus/templates/slides/app/components/editor/slide-text-targets.ts +85 -0
  259. package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -0
  260. package/corpus/templates/slides/app/components/onboarding/FirstDeckOnboardingFlow.tsx +13 -3
  261. package/corpus/templates/slides/app/components/presentation/PresentationView.tsx +27 -1
  262. package/corpus/templates/slides/app/context/DeckContext.tsx +71 -20
  263. package/corpus/templates/slides/app/global.css +6 -0
  264. package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
  265. package/corpus/templates/slides/app/lib/create-deck-generation.ts +10 -6
  266. package/corpus/templates/slides/app/lib/deck-preview-frame.ts +15 -0
  267. package/corpus/templates/slides/app/lib/deck-share-links.ts +9 -0
  268. package/corpus/templates/slides/app/lib/export-pptx-client.ts +89 -0
  269. package/corpus/templates/slides/app/lib/slide-animation-elements.ts +3 -0
  270. package/corpus/templates/slides/app/pages/DeckEditor.tsx +17 -0
  271. package/corpus/templates/slides/app/pages/Index.tsx +107 -6
  272. package/corpus/templates/slides/app/routes/extensions._index.tsx +1 -1
  273. package/corpus/templates/slides/app/routes/settings.$.tsx +1 -0
  274. package/corpus/templates/slides/app/routes/team.tsx +1 -1
  275. package/corpus/templates/slides/changelog/2026-08-05-failed-deck-creation-and-reference-uploads-now-recover-clean.md +6 -0
  276. package/corpus/templates/slides/changelog/2026-08-05-slides-recover-completed-generation-results-after-a-sync-hic.md +6 -0
  277. package/corpus/templates/slides/changelog/2026-08-05-website-url-imports-now-capture-hydrated-browser-computed-st.md +6 -0
  278. package/corpus/templates/slides/changelog/2026-08-06-clicking-the-gray-canvas-around-a-slide-clears-its-selection.md +6 -0
  279. package/corpus/templates/slides/changelog/2026-08-06-deck-thumbnails-keep-a-consistent-listing-frame-across-aspec.md +6 -0
  280. package/corpus/templates/slides/changelog/2026-08-06-deep-linked-decks-open-directly-instead-of-being-interrupted.md +6 -0
  281. package/corpus/templates/slides/changelog/2026-08-06-google-slides-exports-now-show-clear-import-steps-when-direc.md +6 -0
  282. package/corpus/templates/slides/changelog/2026-08-06-import-pdf-google-slides-and-powerpoint-decks-directly-from-.md +6 -0
  283. package/corpus/templates/slides/changelog/2026-08-06-imported-powerpoint-exports-keep-text-and-images-editable-an.md +6 -0
  284. package/corpus/templates/slides/changelog/2026-08-06-presentation-prompts-continue-adding-rendered-slides-until-t.md +6 -0
  285. package/corpus/templates/slides/changelog/2026-08-06-public-decks-now-share-read-only-presentation-links-by-defau.md +6 -0
  286. package/corpus/templates/slides/changelog/2026-08-06-slides-offers-a-direct-connect-google-button-when-a-drive-co.md +6 -0
  287. package/corpus/templates/slides/changelog/2026-08-06-slides-preserve-uploaded-pdf-layouts-accept-larger-reference.md +6 -0
  288. package/corpus/templates/slides/changelog/2026-08-06-styled-words-stay-part-of-their-text-box-instead-of-becoming.md +6 -0
  289. package/corpus/templates/slides/server/handlers/google-docs-auth.ts +7 -20
  290. package/corpus/templates/slides/server/handlers/import/html-converter.ts +236 -13
  291. package/corpus/templates/slides/server/handlers/import/pptx-assets.ts +67 -0
  292. package/corpus/templates/slides/server/handlers/import/pptx-parser.ts +2 -0
  293. package/corpus/templates/slides/server/handlers/uploads.ts +7 -3
  294. package/corpus/templates/slides/server/lib/chat-attachments.ts +6 -3
  295. package/corpus/templates/slides/server/lib/emails.ts +7 -2
  296. package/corpus/templates/slides/server/lib/google-docs-error.ts +50 -0
  297. package/corpus/templates/slides/server/lib/google-docs-oauth.ts +1 -0
  298. package/corpus/templates/slides/server/lib/import-asset-storage.ts +127 -0
  299. package/corpus/templates/slides/server/plugins/agent-chat.ts +4 -3
  300. package/corpus/templates/slides/server/routes/api/import-assets/[token].get.ts +70 -0
  301. package/corpus/templates/slides/shared/upload-types.ts +3 -0
  302. package/corpus/templates/tasks/.agents/skills/turn-into-app/SKILL.md +296 -0
  303. package/corpus/templates/tasks/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  304. package/corpus/templates/tasks/.agents/skills/turn-into-skill/SKILL.md +112 -0
  305. package/corpus/templates/tasks/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  306. package/corpus/templates/tasks/app/components/layout/Header.tsx +3 -1
  307. package/corpus/templates/tasks/app/routes/extensions._index.tsx +1 -1
  308. package/corpus/templates/tasks/app/routes/settings.$.tsx +1 -0
  309. package/dist/agent/engine/ai-sdk-engine.js +49 -3
  310. package/dist/agent/production-agent.d.ts +18 -0
  311. package/dist/agent/production-agent.js +80 -1
  312. package/dist/agent/types.d.ts +7 -0
  313. package/dist/cli/agent-plugin.d.ts +112 -0
  314. package/dist/cli/agent-plugin.js +1081 -0
  315. package/dist/cli/app-skill.js +39 -1
  316. package/dist/cli/code-agent-executor.d.ts +3 -0
  317. package/dist/cli/code-agent-executor.js +51 -13
  318. package/dist/cli/index.js +13 -0
  319. package/dist/cli/templates-meta.js +1 -1
  320. package/dist/client/AgentPanel.d.ts +3 -1
  321. package/dist/client/AgentPanel.js +9 -2
  322. package/dist/client/AssistantChat.d.ts +8 -0
  323. package/dist/client/AssistantChat.js +23 -8
  324. package/dist/client/NewWorkspaceAppFlow.js +1 -0
  325. package/dist/client/agent-chat-adapter.d.ts +1 -1
  326. package/dist/client/agent-chat-adapter.js +153 -7
  327. package/dist/client/agent-page/AgentWorkspaceContent.d.ts +1 -1
  328. package/dist/client/agent-page/AgentWorkspaceContent.js +13 -13
  329. package/dist/client/assistant-ui-recovery.d.ts +2 -1
  330. package/dist/client/assistant-ui-recovery.js +7 -3
  331. package/dist/client/chat/run-recovery.js +5 -1
  332. package/dist/client/embed-auth.js +6 -2
  333. package/dist/client/error-format.js +12 -0
  334. package/dist/client/integrations/IntegrationsPanel.js +40 -6
  335. package/dist/client/onboarding/FirstRunOnboarding.js +11 -4
  336. package/dist/client/org/OrgSwitcher.js +2 -2
  337. package/dist/client/org/TeamPage.js +92 -72
  338. package/dist/client/require-session.d.ts +1 -1
  339. package/dist/client/require-session.js +4 -4
  340. package/dist/client/resources/McpConnectionSuggestion.d.ts +1 -0
  341. package/dist/client/resources/McpConnectionSuggestion.js +27 -10
  342. package/dist/client/resources/McpIntegrationDialog.js +77 -45
  343. package/dist/client/resources/mcp-integration-catalog.d.ts +13 -1
  344. package/dist/client/resources/mcp-integration-catalog.js +255 -2
  345. package/dist/client/resources/mcp-integration-logos.js +18 -2
  346. package/dist/client/resources/use-mcp-servers.d.ts +5 -0
  347. package/dist/client/resources/use-mcp-servers.js +36 -0
  348. package/dist/client/settings/AccountSettingsCard.js +42 -36
  349. package/dist/client/settings/AutomationsSection.js +1 -1
  350. package/dist/client/settings/DemoModeSection.d.ts +3 -1
  351. package/dist/client/settings/DemoModeSection.js +4 -1
  352. package/dist/client/settings/ExtensionsSettingsContent.js +1 -1
  353. package/dist/client/settings/SchedulingTimezoneField.d.ts +3 -1
  354. package/dist/client/settings/SchedulingTimezoneField.js +9 -5
  355. package/dist/client/settings/SettingsPanel.d.ts +4 -1
  356. package/dist/client/settings/SettingsPanel.js +21 -21
  357. package/dist/client/settings/SettingsTabsPage.d.ts +2 -2
  358. package/dist/client/settings/SettingsTabsPage.js +98 -45
  359. package/dist/client/settings/VoiceTranscriptionSection.js +6 -1
  360. package/dist/client/settings/useSettingsPanelController.js +47 -8
  361. package/dist/collab/routes.d.ts +1 -1
  362. package/dist/db/client.d.ts +9 -0
  363. package/dist/db/client.js +51 -16
  364. package/dist/db/create-get-db.js +2 -2
  365. package/dist/db/ddl-guard.d.ts +11 -10
  366. package/dist/db/ddl-guard.js +40 -12
  367. package/dist/deploy/build.d.ts +2 -0
  368. package/dist/deploy/build.js +97 -4
  369. package/dist/deploy/workspace-deploy.js +0 -2
  370. package/dist/guards/no-env-credentials.js +9 -0
  371. package/dist/ingestion/index.d.ts +1 -1
  372. package/dist/ingestion/pptx.d.ts +68 -0
  373. package/dist/ingestion/pptx.js +660 -213
  374. package/dist/ingestion/website.d.ts +30 -0
  375. package/dist/integrations/plugin.js +9 -6
  376. package/dist/localization/default-messages.d.ts +59 -0
  377. package/dist/localization/default-messages.js +62 -2
  378. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  379. package/dist/mcp-client/oauth-routes.d.ts +2 -0
  380. package/dist/mcp-client/oauth-routes.js +74 -7
  381. package/dist/mcp-client/routes.d.ts +1 -0
  382. package/dist/mcp-client/routes.js +49 -0
  383. package/dist/navigation/index.js +16 -5
  384. package/dist/notifications/routes.d.ts +1 -1
  385. package/dist/observability/routes.d.ts +3 -3
  386. package/dist/onboarding/app-profile.js +11 -0
  387. package/dist/progress/routes.d.ts +1 -1
  388. package/dist/provider-api/actions/custom-provider-registration.d.ts +13 -13
  389. package/dist/provider-api/actions/provider-api.d.ts +11 -11
  390. package/dist/resources/store.js +15 -1
  391. package/dist/scripts/call-agent.js +45 -4
  392. package/dist/secrets/routes.d.ts +6 -6
  393. package/dist/server/agent-chat/action-filters-a2a.d.ts +1 -1
  394. package/dist/server/agent-chat/action-filters-a2a.js +36 -1
  395. package/dist/server/agent-chat-plugin.js +29 -8
  396. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  397. package/dist/server/auth.js +55 -17
  398. package/dist/server/better-auth-instance.js +5 -3
  399. package/dist/server/core-routes-plugin.d.ts +8 -1
  400. package/dist/server/core-routes-plugin.js +28 -3
  401. package/dist/server/credential-provider.d.ts +3 -3
  402. package/dist/server/credential-provider.js +90 -4
  403. package/dist/server/identity-sso.js +2 -1
  404. package/dist/server/onboarding-html.d.ts +2 -0
  405. package/dist/server/onboarding-html.js +171 -62
  406. package/dist/server/realtime-token.d.ts +1 -1
  407. package/dist/server/self-dispatch.d.ts +5 -4
  408. package/dist/server/self-dispatch.js +25 -14
  409. package/dist/server/ssr-handler.d.ts +1 -1
  410. package/dist/server/ssr-handler.js +1 -1
  411. package/dist/server/workspace-provider-oauth.js +1 -1
  412. package/dist/setup-connections/onboarding.js +1 -1
  413. package/dist/shared/cache-control.d.ts +26 -2
  414. package/dist/shared/cache-control.js +43 -2
  415. package/dist/shared/index.d.ts +1 -1
  416. package/dist/shared/index.js +1 -1
  417. package/dist/shared/password-policy.d.ts +3 -0
  418. package/dist/shared/password-policy.js +3 -0
  419. package/dist/shared/sign-in-journey.d.ts +5 -2
  420. package/dist/shared/sign-in-journey.js +10 -4
  421. package/dist/sharing/actions/set-resource-visibility.js +16 -4
  422. package/dist/sharing/registry.d.ts +14 -0
  423. package/dist/styles/agent-native.css +6 -0
  424. package/dist/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  425. package/dist/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  426. package/dist/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  427. package/dist/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  428. package/dist/templates/chat/app/components/layout/Layout.tsx +1 -1
  429. package/dist/templates/chat/app/hooks/use-navigation-state.ts +1 -1
  430. package/dist/templates/chat/app/root.tsx +1 -1
  431. package/dist/templates/chat/app/routes/agent.tsx +7 -7
  432. package/dist/templates/chat/app/routes/extensions._index.tsx +1 -1
  433. package/dist/templates/chat/app/routes/settings.$.tsx +1 -0
  434. package/dist/templates/chat/app/routes/team.tsx +1 -1
  435. package/dist/templates/default/.agents/skills/turn-into-app/SKILL.md +296 -0
  436. package/dist/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  437. package/dist/templates/default/.agents/skills/turn-into-skill/SKILL.md +112 -0
  438. package/dist/templates/default/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  439. package/dist/templates/headless/.agents/skills/turn-into-app/SKILL.md +296 -0
  440. package/dist/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  441. package/dist/templates/headless/.agents/skills/turn-into-skill/SKILL.md +112 -0
  442. package/dist/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  443. package/dist/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +6 -0
  444. package/dist/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +37 -6
  445. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +4 -2
  446. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +51 -0
  447. package/dist/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +296 -0
  448. package/dist/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  449. package/dist/templates/workspace-core/.agents/skills/turn-into-skill/SKILL.md +112 -0
  450. package/dist/templates/workspace-core/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  451. package/dist/templates/workspace-root/AGENTS.md +7 -0
  452. package/dist/user-profile/actions/change-password.js +8 -3
  453. package/dist/user-profile/actions/set-password.js +5 -1
  454. package/dist/vite/action-types-plugin.js +59 -0
  455. package/docs/content/authentication.mdx +4 -5
  456. package/docs/content/skills-guide.mdx +13 -0
  457. package/docs/content/template-analytics-developers.mdx +1 -1
  458. package/docs/content/template-calendar-developers.mdx +1 -1
  459. package/docs/content/template-chat-developers.mdx +2 -2
  460. package/docs/content/template-content-developers.mdx +1 -1
  461. package/docs/content/template-mail-developers.mdx +1 -1
  462. package/docs/content/template-plan-developers.mdx +1 -1
  463. package/docs/content/toolkit-command-navigation.mdx +6 -6
  464. package/docs/content/toolkit-org-team.mdx +1 -1
  465. package/docs/content/toolkit-settings.mdx +8 -8
  466. package/docs/content/toolkit-setup-connections.mdx +1 -1
  467. package/package.json +6 -2
  468. package/src/templates/chat/.agents/skills/turn-into-app/SKILL.md +296 -0
  469. package/src/templates/chat/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  470. package/src/templates/chat/.agents/skills/turn-into-skill/SKILL.md +112 -0
  471. package/src/templates/chat/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  472. package/src/templates/chat/app/components/layout/Layout.tsx +1 -1
  473. package/src/templates/chat/app/hooks/use-navigation-state.ts +1 -1
  474. package/src/templates/chat/app/root.tsx +1 -1
  475. package/src/templates/chat/app/routes/agent.tsx +7 -7
  476. package/src/templates/chat/app/routes/extensions._index.tsx +1 -1
  477. package/src/templates/chat/app/routes/settings.$.tsx +1 -0
  478. package/src/templates/chat/app/routes/team.tsx +1 -1
  479. package/src/templates/default/.agents/skills/turn-into-app/SKILL.md +296 -0
  480. package/src/templates/default/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  481. package/src/templates/default/.agents/skills/turn-into-skill/SKILL.md +112 -0
  482. package/src/templates/default/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  483. package/src/templates/headless/.agents/skills/turn-into-app/SKILL.md +296 -0
  484. package/src/templates/headless/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  485. package/src/templates/headless/.agents/skills/turn-into-skill/SKILL.md +112 -0
  486. package/src/templates/headless/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  487. package/src/templates/workspace-core/.agents/skills/adding-workspace-apps/SKILL.md +6 -0
  488. package/src/templates/workspace-core/.agents/skills/address-feedback/SKILL.md +37 -6
  489. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +4 -2
  490. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +51 -0
  491. package/src/templates/workspace-core/.agents/skills/turn-into-app/SKILL.md +296 -0
  492. package/src/templates/workspace-core/.agents/skills/turn-into-app/agents/openai.yaml +4 -0
  493. package/src/templates/workspace-core/.agents/skills/turn-into-skill/SKILL.md +112 -0
  494. package/src/templates/workspace-core/.agents/skills/turn-into-skill/agents/openai.yaml +4 -0
  495. package/src/templates/workspace-root/AGENTS.md +7 -0
  496. package/corpus/templates/analytics/.agents/skills/dashboard-management/references/template-catalog-and-demo.md +0 -62
  497. package/corpus/templates/analytics/actions/install-dashboard-template.ts +0 -369
  498. package/corpus/templates/analytics/actions/list-dashboard-templates.ts +0 -47
  499. package/corpus/templates/analytics/actions/list-native-v2-dashboard-templates.ts +0 -34
  500. package/corpus/templates/analytics/app/routes/catalog.tsx +0 -240
  501. package/src/templates/default/actions/navigate.spec.ts +0 -53
@@ -31,11 +31,20 @@
31
31
  "vercel",
32
32
  "github",
33
33
  "fullstory",
34
+ "amplitude",
34
35
  "slack",
35
36
  "asana",
36
37
  "hubspot",
38
+ "apollo",
39
+ "builder-cms",
40
+ "common-room",
41
+ "exa",
42
+ "gong",
43
+ "google-workspace",
44
+ "grafana",
37
45
  "intercom",
38
46
  "monday",
47
+ "pylon",
39
48
  "webflow",
40
49
  "paypal",
41
50
  "box",
package/corpus/README.md CHANGED
@@ -31,4 +31,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
31
31
 
32
32
  ## Generated Counts
33
33
 
34
- - template files: 7684
34
+ - template files: 7821
@@ -715,15 +715,9 @@ state or tracker context, but docs traffic is not app usage and should not appea
715
715
  as an app/template series. Use a minimum cohort-size threshold for retention
716
716
  rates so one or two identities cannot create misleading 100% or 0% spikes.
717
717
 
718
- ## Template Catalog And Demo Dashboards
718
+ ## Demo Dashboards
719
719
 
720
- `list-dashboard-templates` / `install-dashboard-template` install shipped
721
- dashboard templates (Node Exporter, the canonical Agent Native observability
722
- dashboard, etc.), and `ensure-demo-dashboards` auto-installs a per-user demo
723
- on first app open. See
724
- `references/template-catalog-and-demo.md` for the canonical-dashboard panel
725
- rule, Node Exporter template specifics, and the full demo-dashboard lifecycle
726
- (source routing, env var overrides, tombstoning, reset).
720
+ `ensure-demo-dashboards` auto-installs a per-user demo on first app open.
727
721
 
728
722
  ## Building Large First-Party Dashboards (compose-dashboard)
729
723
 
@@ -758,21 +752,16 @@ Hosted agent runs have a **~40s budget**. Many sequential `update-dashboard` cal
758
752
  - To make nested config edits, use
759
753
  `setConfigPath("yAxis.format", "percent")` instead of resending/clobbering
760
754
  the whole nested object.
761
- - **To add a shipped template's panels, prefer `install-dashboard-template` with `mergePanels: true`** and the existing `dashboardId`. It appends only the template panels whose id is not already present (preserving existing panels and order) in one atomic save — you don't author each panel yourself.
762
755
  - **Always verify the returned proof-of-done and report it.**
763
756
  `mutate-dashboard` returns `panelCount`, `appliedOps`, `panelOrder`,
764
757
  `firstPanelIds`, `changedPanelIds`, `commandLog`, and a `summary` string.
765
- `install-dashboard-template --mergePanels` returns `addedPanelIds`,
766
- `skippedExistingIds`, and `panelCount`. Tell the user the resulting panel
767
- count instead of assuming success.
758
+ Tell the user the resulting panel count instead of assuming success.
768
759
 
769
760
  ```bash
770
761
  # Add or edit several panels in ONE atomic call (never one call per panel)
771
762
  pnpm action mutate-dashboard --dashboardId weekly-metrics \
772
763
  --code 'dashboard.panelsMatching({"source":"first-party"}).setWidth(2);'
773
764
 
774
- # Append a template's panels to an existing dashboard in one call
775
- pnpm action install-dashboard-template --templateId skills-cli-funnel --dashboardId weekly-metrics --mergePanels true
776
765
  ```
777
766
 
778
767
  ## Archiving vs deleting
@@ -22,8 +22,10 @@ For events recorded by the analytics template itself via its `/track` endpoint,
22
22
 
23
23
  For first-party counts, active-user, and retention questions, prefer the compact
24
24
  tenant-scoped daily event and user-day rollups. Use `analytics_events` only for a
25
- bounded recent drill-down with an explicit date/time range; the built-in source
26
- does not require a customer warehouse connection.
25
+ bounded recent drill-down with an explicit date/time range. For the Builder.io
26
+ production organization after the BigQuery cutover, these logical tables are
27
+ served by partitioned BigQuery data and views; the source still does not require
28
+ an end user's separate warehouse connection.
27
29
 
28
30
  Before a large or historical first-party query, call
29
31
  `get-first-party-analytics-health`. Keep Neon as the default while its status is
@@ -37,10 +39,13 @@ a requirement to use BigQuery. The health result lists the supported options:
37
39
 
38
40
  If a suitable backend is not configured, use its returned setup link or
39
41
  `data-source-status --key <provider>` to guide the user through the existing
40
- Data Sources walkthrough. Do not silently move the collector: `/track` still
41
- lands in first-party Analytics, and connecting a query backend does not
42
- automatically copy existing Neon events. Use the provider's explicit collection
43
- or export path before querying that backend.
42
+ Data Sources walkthrough. Connecting a query backend alone does not move the
43
+ collector or copy existing Neon events. For the Builder.io production
44
+ organization, the hidden `migrate-first-party-analytics-to-bigquery` action is
45
+ the explicit state machine: prepare dual-write, backfill with its cursor, then
46
+ cut over with confirmation. After cutover, `/track` writes and event queries
47
+ use BigQuery; public-key metadata, derived exception issues, and session-replay
48
+ data remain in SQL.
44
49
 
45
50
  Example pageviews query for a local calendar day:
46
51
 
@@ -59,12 +59,10 @@ When a query fans out into many series, the `series` column will hold a `metric_
59
59
 
60
60
  ## Node Exporter dashboards
61
61
 
62
- Node Exporter dashboards are installed from the dashboard catalog:
62
+ Use `list-sql-dashboards` to find an existing Node Exporter dashboard, then use
63
+ `update-dashboard` to create or repair one from the supported panel definitions:
63
64
 
64
65
  ```bash
65
- pnpm action list-dashboard-templates
66
- pnpm action install-dashboard-template --templateId=node-exporter-macos
67
- pnpm action install-dashboard-template --templateId=node-exporter-full
68
66
  ```
69
67
 
70
68
  `node-exporter-macos` is the comprehensive Darwin/Homebrew dashboard for macOS scrapes; it covers CPU, load, macOS memory fields, swap, APFS filesystems, disk IO, network devices, battery/power, scrape health, exporter process stats, Go runtime stats, and a metric-family coverage table. `node-exporter-full` is converted from Grafana dashboard 1860 revision 45 and lives at `seeds/dashboards/node-exporter-full.json`; it contains 124 Prometheus query panels, 16 section dividers, and native tabs for Overview, CPU & Memory, System, Storage, Network, and Exporter. The Full dashboard is Linux-focused because Grafana 1860 expects Linux collectors such as `node_memory_MemAvailable_bytes`, pressure stall information, `node_sockstat_*`, `node_netstat_*`, `node_timex_*`, `node_systemd_*`, and `node_hwmon_*`; Homebrew/macOS node_exporter omits many of those, so empty panels on macOS are expected. The templates use `job`, `instance`, and `range` filters; set `instance` to the Prometheus `instance` label from `node_uname_info`.
@@ -92,7 +90,9 @@ scrape_configs:
92
90
  brew services restart prometheus # Prometheus UI at http://localhost:9090
93
91
  ```
94
92
 
95
- Paste `http://localhost:9090` as the Prometheus URL in Data Sources, then install the desired Node Exporter dashboard from Catalog.
93
+ Paste `http://localhost:9090` as the Prometheus URL in Data Sources, then use
94
+ `list-sql-dashboards` and `update-dashboard` to manage the desired Node Exporter
95
+ dashboard.
96
96
 
97
97
  ## Incident Investigation Pattern
98
98
 
@@ -31,6 +31,25 @@ expose.
31
31
  counts, and column names.
32
32
  - `delete-staged-dataset` — remove a staged dataset to free scratch storage.
33
33
 
34
+ ## Custom API sources
35
+
36
+ Use `provider-api-register` when a public HTTPS API is not in the built-in
37
+ catalog. Registration stores the provider label, base URL, docs URL, auth mode,
38
+ and credential key names only. Save the actual key in Analytics Settings before
39
+ testing or querying it. Org-scoped registration is restricted to organization
40
+ owners/admins; use user scope for a personal source.
41
+
42
+ The Analytics Data Sources page provides a bounded GET test with an optional
43
+ query and response items path. It returns status, row count, columns, and a few
44
+ sample rows without returning raw headers or response bodies. After the test
45
+ passes, use the handoff to save a manual-refresh Data Program with
46
+ `providerFetch` and `emit(rows, schema)`. Keep pagination and scheduled refresh
47
+ inside the Data Program rather than inventing a second cache.
48
+
49
+ Custom provider base URLs must be public HTTPS. Hosted Analytics cannot resolve
50
+ the user's localhost or private LAN; use a deployed endpoint or an approved
51
+ secure tunnel. Never bypass the provider runtime's DNS-aware SSRF protection.
52
+
34
53
  ## Clay
35
54
 
36
55
  Clay is a credentialed GTM data and enrichment provider, not a messaging
@@ -0,0 +1,296 @@
1
+ ---
2
+ name: turn-into-app
3
+ description: >-
4
+ Turn a proven thread, skill, or workflow into a runnable Agent-Native app
5
+ with simple buttons, visible agent steps, preview, and deployment handoff.
6
+ Use when a user invokes `/turn-into-app` or asks to make a workflow into an
7
+ app.
8
+ user-invocable: true
9
+ scope: both
10
+ metadata:
11
+ internal: true
12
+ ---
13
+
14
+ # Turn Into App
15
+
16
+ ## Default behavior
17
+
18
+ This is an end-to-end build skill, not a request for an app proposal.
19
+
20
+ - With no argument, use the current thread as the source. This is the normal
21
+ invocation at the end of a successful workflow.
22
+ - With a named skill or local workflow, read that source and package it
23
+ immediately, even at the beginning of a thread. For example,
24
+ `/turn-into-app /some-skill` means “turn `/some-skill` into an app.”
25
+ - With an attachment or path, read the supplied artifact as the source.
26
+ - Do not ask the user to restate context that is already in the thread.
27
+ - When invoked from an Agent-Native app, keep the current thread as the source
28
+ and use the available workspace/coding-agent handoff when the current runtime
29
+ cannot edit files. Do not claim the app exists without an actual path and
30
+ verification result.
31
+
32
+ ## Source support
33
+
34
+ Supported source paths today are the current Codex thread, a named skill, or a
35
+ local workflow/transcript supplied as a path or attachment. An exported
36
+ ChatGPT or Claude transcript can use the same local-file path today.
37
+
38
+ ChatGPT shared-conversation import and Claude web conversation/project import
39
+ are **coming soon**. Do not claim private web access, invent an importer, add
40
+ fake OAuth, or scrape a logged-in page without an explicit supported adapter.
41
+ If a user gives one of those URLs before an adapter exists, ask for an export or
42
+ transcript instead and treat it as imported source material.
43
+
44
+ Deliver a fresh app in a new directory, implement the repeatable workflow with
45
+ buttons and agent handoffs, start its dev server, verify the main path, and
46
+ continue through build/deployment handoff. Do not stop at a plan.
47
+
48
+ ## Source selection guard
49
+
50
+ The generated app must implement the concrete workflow found in the source. It
51
+ must not become a generic “what app do you want to make?” intake form.
52
+
53
+ - In a delegated or forked task, read the actual referenced source thread and
54
+ the latest explicit workflow direction in the current task. If they disagree,
55
+ the latest concrete workflow direction wins.
56
+ - Do not treat a thread that merely discusses building this skill as the product
57
+ source unless the user explicitly asks to appify that meta-workflow.
58
+ - If the source contains several workflows, choose the latest successful,
59
+ repeatable job that motivated the request and name it in the handoff. If no
60
+ concrete job can be identified, stop and report what is missing instead of
61
+ inventing an app-builder UI.
62
+
63
+ ## UI contract for generated apps
64
+
65
+ Generated apps must follow the shared Agent-Native surface model:
66
+
67
+ - Keep the domain workflow on a named route (`/workflow`, `/automations`,
68
+ `/block`, or the source's equivalent). Preserve the scaffold's full-page
69
+ chat route instead of replacing it with a domain form while leaving the
70
+ layout configured as a chat page.
71
+ - Use the right `AgentSidebar` for contextual AI. Every button-triggered
72
+ `sendToAgentChat` handoff should open or focus that sidebar and keep the user
73
+ on the current domain page.
74
+ - Use a sans-first SaaS hierarchy for the app shell. Choose a named visual
75
+ direction in `DESIGN.md` before styling: product mode, audience, palette
76
+ family, type treatment, composition, shape language, and anti-references.
77
+ One restrained editorial cue is welcome, but warm beige plus terracotta is
78
+ not the default and serif type belongs in content previews or a deliberate
79
+ brand moment rather than the whole tool.
80
+ - Preserve existing brand tokens. For a new unbranded app, choose a
81
+ product-fitting palette family and compare sibling apps before reusing their
82
+ accent. Keep shared semantic tokens and Agent-Native behavior consistent
83
+ while varying the visual world, density, composition, and shape language.
84
+ - Give the AgentSidebar a subtle surface or divider boundary so it is visually
85
+ distinct from the domain page without becoming a heavy panel wall.
86
+ - Every AI-labeled button must actually call `sendToAgentChat` with bounded
87
+ context and `openSidebar: true`. Keep `submit: true` for direct execution and
88
+ `submit: false` only when the user should edit the staged prompt first. Label
89
+ deterministic local actions as local, preview, or analyze instead of AI.
90
+ - Standalone apps that render `AgentSidebar` must keep one assistant-ui runtime
91
+ context. Pin the versions compatible with the installed core/toolkit peer
92
+ graph, and add Vite dedupe/aliases when linked or transitive packages resolve
93
+ duplicate assistant-ui modules. Verify a fresh AI handoff has no
94
+ `AssistantUiStaleIndexErrorBoundary` or stale-index console error.
95
+ - Make the left navigation describe domain destinations. Chat is a separate
96
+ destination, not the label for every app page.
97
+ - Start with one primary action and one compact state. Put setup choices,
98
+ advanced inputs, diagnostics, and long explanations behind progressive
99
+ disclosure or later workflow steps.
100
+ - Never use sparkle, wand, magic, robot, or similar decorative AI icons. Use a
101
+ message or neutral action icon, or no icon when the button label is enough.
102
+ - Before handoff, inspect the first viewport for text density, repeated cards,
103
+ unrelated forms, and generic helper copy. Remove what the user does not need
104
+ until the next decision.
105
+ - Run a `distill`, `typeset`, `colorize`, `layout`, `polish`, and `audit` pass
106
+ as useful named reviews. Make one intervention at a time and commit the
107
+ chosen direction rather than averaging several options into generic SaaS.
108
+ - For before/after or original/generated review, stack the source first and the
109
+ result second by default. Reserve side-by-side layouts for short content that
110
+ remains comfortable to scan at the target width.
111
+
112
+ ## 1. Extract the workflow
113
+
114
+ Read the full available source before coding. Reduce it to a short working
115
+ brief:
116
+
117
+ - the user and repeatable job;
118
+ - inputs and outputs;
119
+ - the 1-3 judgment-heavy agent moments;
120
+ - the buttons, review points, and retry states a user needs;
121
+ - data, permissions, integrations, and failure boundaries.
122
+
123
+ Preserve useful judgment from the source, but do not turn a one-off answer,
124
+ private data, or an unverified result into a product contract. If the source is
125
+ not available or does not contain a repeatable job, say what is missing rather
126
+ than claiming the app is complete.
127
+
128
+ ## 2. Create a fresh app
129
+
130
+ Choose a short slug from the workflow and create a new directory. Never
131
+ overwrite an existing app. If the user supplied a directory, use it; otherwise
132
+ use `apps/<slug>` inside an existing Agent-Native workspace, or a new sibling
133
+ directory when working outside one.
134
+
135
+ For a new UI-bearing standalone app, use the current Agent-Native scaffold and
136
+ then read the generated `AGENTS.md`:
137
+
138
+ ```bash
139
+ npx @agent-native/core@latest create <app-directory> --template chat
140
+ cd <app-directory>
141
+ pnpm install
142
+ ```
143
+
144
+ When working inside an existing Agent-Native workspace, create the app from
145
+ the workspace root instead:
146
+
147
+ ```bash
148
+ pnpm exec agent-native add-app <slug> --template=chat
149
+ ```
150
+
151
+ Do not use `create` for an existing workspace; it scaffolds a new standalone
152
+ workspace rather than adding an app to the current one.
153
+
154
+ Use a first-party template only when it materially fits the workflow. Keep the
155
+ new app independent from the source thread's working tree unless the user
156
+ explicitly asks to extend an existing app.
157
+
158
+ Read the generated `DESIGN.md` before building the first screen and fill in the
159
+ visual direction as part of the app brief. Do not copy the previous app's
160
+ palette just because its tokens are nearby.
161
+
162
+ ## 3. Turn the workflow into buttons and agent work
163
+
164
+ Implement the smallest useful surface around the extracted brief. The app
165
+ should make the repeated path obvious without hiding the agent's judgment:
166
+
167
+ - Give each important repeated moment a clear button, such as “Analyze,”
168
+ “Suggest options,” “Draft,” “Review,” or “Publish.” Use the source's actual
169
+ vocabulary when it is clear.
170
+ - Put deterministic reads, writes, approvals, and publishing in `actions/`
171
+ with `defineAction`. The UI and agent must call the same action surface.
172
+ - Use application state for the current screen, selected item, and focused
173
+ object so the agent can see where the user is.
174
+ - Use `sendToAgentChat({ message, context, submit: true })` for intentional
175
+ button-triggered agent work. Use `submit: false` when the user should review
176
+ or edit the proposed prompt first.
177
+ - Pass IDs, URLs, and bounded summaries in context. Do not paste large provider
178
+ dumps into prompts, call an LLM directly from the browser, or invent fake
179
+ progress.
180
+ - Make agent results visible, editable, retryable, and attributable. Keep
181
+ irreversible actions behind an explicit review or confirmation point.
182
+
183
+ Use the existing shadcn/ui primitives, Tabler icons, shared composer, and
184
+ optimistic action patterns. Do not add a parallel CRUD API route for an action.
185
+
186
+ ## 4. Keep onboarding shared
187
+
188
+ Use the framework's existing setup experience. The app should offer the normal
189
+ “Connect Builder” and “Add your own keys” paths for AI setup. Do not create a
190
+ second credential form or hardcode a provider key.
191
+
192
+ In local-development instructions, add a brief note that a developer can set
193
+ an environment variable such as `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` before
194
+ starting the app; after restart, the setup prompt is no longer shown when the
195
+ key is available. Keep real secrets out of source, examples, and generated
196
+ content.
197
+
198
+ Turn-into-app apps should commit an `agent-native.json` app configuration so a
199
+ plain `pnpm dev` has the right first-run behavior without extra flags:
200
+
201
+ ```json
202
+ {
203
+ "version": 1,
204
+ "onboarding": {
205
+ "firstRun": {
206
+ "development": "connect",
207
+ "production": "connect-and-integrations"
208
+ }
209
+ }
210
+ }
211
+ ```
212
+
213
+ `connect` keeps the Connect Builder / Add your own keys choice visible and
214
+ skips only the generic “This app is an agent.” integrations catalog. The
215
+ production value includes that catalog for a hosted app. Do not replace this
216
+ with a local credential form or remove the shared onboarding. In development,
217
+ the shared Connect Builder card also explains the deployment-level
218
+ `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` fallback and links to the full
219
+ environment-variable guide.
220
+
221
+ When the onboarding default needs code rather than a static mode map, add an
222
+ optional `agent-native.config.ts` with the same returned shape:
223
+
224
+ ```ts
225
+ import { defineAgentNativeConfig } from "@agent-native/core/config";
226
+
227
+ export default defineAgentNativeConfig(({ isDev }) => ({
228
+ version: 1,
229
+ onboarding: {
230
+ firstRun: isDev ? "connect" : "connect-and-integrations",
231
+ },
232
+ }));
233
+ ```
234
+
235
+ The Vite preset loads this file automatically on supported Node versions. The
236
+ JSON file remains the portable, inspectable fallback. See the [Agent-Native
237
+ app configuration guide](/docs/agent-native-config) for precedence, supported
238
+ modes, and the boundary between committed config and deployment secrets.
239
+
240
+ For an account-free local preview, create the ignored local `.env` file with
241
+ `AUTH_DISABLED=1` before starting the dev server. This is only for loopback
242
+ development; never commit or deploy this setting. AI/provider connections still
243
+ use the normal onboarding flow or the documented environment-variable keys.
244
+
245
+ ## 5. Run it immediately
246
+
247
+ From the new app directory:
248
+
249
+ ```bash
250
+ pnpm dev
251
+ ```
252
+
253
+ For a fresh local test app, use the ignored `.env` with `AUTH_DISABLED=1` so the
254
+ domain UI opens without an account; the committed app config makes shared
255
+ onboarding visible. Keep the process running so the user can try the app. Read
256
+ the actual server output and report the real local URL. If the app needs installation or a setup step,
257
+ complete it when possible and distinguish “not configured” from an unavailable
258
+ credential store.
259
+
260
+ ## 6. Verify, build, and deploy
261
+
262
+ Exercise the actual happy path, not only the source files:
263
+
264
+ 1. Load the reported URL and confirm the main route renders.
265
+ 2. Confirm the shared onboarding state or a configured local key.
266
+ 3. Click the primary workflow button and confirm the intended agent handoff.
267
+ Also click every other AI-labeled button and confirm it opens the same
268
+ contextual sidebar with the expected prompt or staged context.
269
+ 4. Confirm the result, action persistence, application state, and sync path.
270
+ 5. Check the dev output for browser/runtime errors, and capture input, result,
271
+ and agent-sidebar states so the complete flow is reviewable.
272
+
273
+ Then run the supported build. For a standalone app, use the generated app's
274
+ documented build and hosting path. For an app inside a workspace, use the
275
+ workspace deploy command, for example:
276
+
277
+ ```bash
278
+ npx @agent-native/core@latest build
279
+ npx @agent-native/core@latest deploy --preset netlify
280
+ ```
281
+
282
+ Use `vercel` or another supported preset when that is the configured target.
283
+ Attempt deployment when the user requested it or the project already has the
284
+ required provider configuration. If external authentication, a production
285
+ secret, or a hosting decision is missing, finish local verification and report
286
+ the exact remaining handoff without claiming a live deployment.
287
+
288
+ Label evidence separately: locally running, locally verified, build-ready,
289
+ deployed, and live-verified are different states.
290
+
291
+ ## Handoff
292
+
293
+ End with the new app directory, local URL, visual direction, what the buttons do,
294
+ account-free local-preview status, verification performed, deployment URL if it is real,
295
+ and one precise pending step when something could not be completed. Keep the
296
+ handoff short enough to use in a demo or recording.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Turn Into App"
3
+ short_description: "Turn a thread or skill into a runnable app"
4
+ default_prompt: "Scan the current thread, turn the workflow into a new Agent-Native app with clear buttons, run it locally, verify it, and complete the deployment handoff."
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: turn-into-skill
3
+ description: >-
4
+ Capture a proven thread or workflow as a reusable Agent-Native skill and save
5
+ it as a personal or organization resource. Use when a user invokes
6
+ `/turn-into-skill` or asks to save a workflow for reuse.
7
+ user-invocable: true
8
+ scope: both
9
+ metadata:
10
+ internal: true
11
+ ---
12
+
13
+ # Turn Into Skill
14
+
15
+ This is a packaging-and-save workflow, not a request for a proposal. A skill
16
+ is the lightweight path for a repeatable job that mostly needs guidance and
17
+ existing app actions. Use `turn-into-app` when the job needs a dedicated UI,
18
+ new persistent domain state, or a distinct app route.
19
+
20
+ ## Default behavior
21
+
22
+ - With no argument, use the current thread as the source.
23
+ - With a named skill, local workflow, transcript path, or attachment, read that
24
+ source and package it immediately.
25
+ - Do not ask the user to restate context already present in the source.
26
+ - Default to a personal skill unless the user explicitly asks for a team,
27
+ organization, or all-app skill, or passes `shared` as the scope.
28
+ - If the current thread only discusses creating a skill, do not package that
29
+ meta-workflow unless the user explicitly asks for it.
30
+ - Treat an explicit `/turn-into-skill` invocation as authorization to save the
31
+ resulting skill, but never overwrite an existing skill at the target path
32
+ unless the user clearly asks to update it.
33
+
34
+ ## 1. Extract the repeatable workflow
35
+
36
+ Read the full source before writing. Reduce it to a concise working brief:
37
+
38
+ - the repeatable job and the user outcome;
39
+ - when the skill should trigger;
40
+ - required inputs, context, permissions, and integrations;
41
+ - the ordered steps and the one to three judgment-heavy decisions;
42
+ - expected outputs, verification, retry, and failure boundaries.
43
+
44
+ Preserve the useful judgment from the source, not its transcript. Do not turn
45
+ one-off answers, private data, customer data, secrets, or unverified claims into
46
+ the skill's contract. If no repeatable job can be identified, stop and report
47
+ what is missing instead of inventing generic guidance.
48
+
49
+ ## 2. Author the skill
50
+
51
+ Create a single `SKILL.md` with:
52
+
53
+ - a short hyphen-case name and a description under 40 words that says what the
54
+ skill does and when to use it;
55
+ - `user-invocable: true` so it can be selected from the app's `/` picker;
56
+ - `scope: both` so the saved skill can guide the app runtime and connected
57
+ coding agents;
58
+ - concise sections for purpose, trigger, inputs, workflow, verification, and
59
+ failure or retry behavior.
60
+
61
+ Write imperative, reusable instructions. Keep exact action names, field rules,
62
+ and decision criteria when they matter. Use placeholders for credentials and
63
+ provider data. Do not paste the source transcript, large dumps, or ephemeral
64
+ thread details into the saved skill.
65
+
66
+ Choose a new slug when the target path already exists. Read an existing skill
67
+ before changing it, and update it only when the user explicitly requested an
68
+ update.
69
+
70
+ ## 3. Save at the requested scope
71
+
72
+ Skills are resources at `skills/<slug>/SKILL.md`.
73
+
74
+ | User intent | Save path |
75
+ | --- | --- |
76
+ | Just me or personal reuse | Use the `resources` tool with `action: "write"`, `scope: "personal"`, `visibility: "workspace"`, and the generated skill content. |
77
+ | Shared organization or app reuse | Use the `resources` tool with `action: "write"`, `scope: "shared"`, `visibility: "workspace"`, and the generated skill content. |
78
+ | Every workspace app | Use `create-workspace-resource` with `kind: "skill"`, `scope: "all"`, the generated path, name, description, and content. |
79
+ | Only selected apps | Use the workspace resource flow with `scope: "selected"` only when the user names the app set. |
80
+
81
+ For an all-app workspace skill, use the workspace resource action when it is
82
+ available. If the current app does not expose it, discover or delegate to the
83
+ configured Dispatch workspace agent. Do not silently save a personal skill and
84
+ report it as shared. If organization approval is queued, report that the skill
85
+ is pending approval rather than claiming it is active.
86
+
87
+ Set `visibility: "workspace"` for an explicitly requested saved skill. Use
88
+ `agent_scratch` only for temporary drafting, then promote or rewrite it before
89
+ reporting the skill as saved.
90
+
91
+ ## 4. Verify and hand off
92
+
93
+ After saving, read the exact `skills/<slug>/SKILL.md` resource back at the
94
+ target scope. Confirm that the frontmatter name, trigger description, and full
95
+ workflow body are present. If the read-back fails or the save returned an
96
+ approval request, say so plainly and include the actual pending state.
97
+
98
+ Report:
99
+
100
+ - the skill name and path;
101
+ - whether it is personal, organization-wide, or selected-app;
102
+ - the trigger users can invoke from `/`;
103
+ - the verification result and any approval or setup still required.
104
+
105
+ ## Related skills
106
+
107
+ - `turn-into-app` — package the same source as a UI-bearing app with buttons,
108
+ agent handoffs, and a domain workflow.
109
+ - `create-skill` — general skill format and authoring rules.
110
+ - `capture-learnings` — lightweight memory for preferences and corrections,
111
+ rather than reusable workflows.
112
+ - `self-modifying-code` — safety boundaries when the agent edits app source.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Turn Into Skill"
3
+ short_description: "Save a proven workflow as a reusable skill"
4
+ default_prompt: "Read the current thread, distill the repeatable workflow into a concise user-invocable skill, save it at personal or organization scope, verify the saved resource, and report its path."