@agent-native/core 0.130.2 → 0.131.3

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 (895) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +79 -0
  3. package/corpus/core/docs/content/agent-surfaces.mdx +4 -4
  4. package/corpus/core/docs/content/automations.mdx +61 -12
  5. package/corpus/core/docs/content/deployment.mdx +11 -4
  6. package/corpus/core/docs/content/extensions.mdx +39 -33
  7. package/corpus/core/docs/content/recurring-jobs.mdx +41 -19
  8. package/corpus/core/docs/content/template-dispatch-operations.mdx +19 -7
  9. package/corpus/core/package.json +3 -1
  10. package/corpus/core/src/a2a/types.ts +6 -0
  11. package/corpus/core/src/action.ts +68 -0
  12. package/corpus/core/src/agent/engine/builder-engine.ts +8 -4
  13. package/corpus/core/src/agent/production-agent.ts +175 -100
  14. package/corpus/core/src/agent/tool-search.ts +36 -0
  15. package/corpus/core/src/automations/service.ts +506 -0
  16. package/corpus/core/src/browser-context/index.ts +392 -0
  17. package/corpus/core/src/client/AgentPanel.tsx +2 -1
  18. package/corpus/core/src/client/FeedbackButton.tsx +37 -4
  19. package/corpus/core/src/client/MultiTabAssistantChat.tsx +21 -0
  20. package/corpus/core/src/client/agent-chat.ts +31 -3
  21. package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +438 -310
  22. package/corpus/core/src/client/agent-page/AgentTabsPage.tsx +4 -4
  23. package/corpus/core/src/client/agent-page/use-jobs.ts +7 -0
  24. package/corpus/core/src/client/analytics-session.ts +13 -0
  25. package/corpus/core/src/client/extensions/ExtensionViewer.tsx +67 -0
  26. package/corpus/core/src/client/settings/AutomationsSection.tsx +27 -499
  27. package/corpus/core/src/client/settings/SettingsPanel.tsx +32 -11
  28. package/corpus/core/src/client/settings/index.ts +2 -0
  29. package/corpus/core/src/client/use-agent-chat.ts +35 -3
  30. package/corpus/core/src/client/use-chat-threads.ts +8 -25
  31. package/corpus/core/src/deploy/build.ts +2 -0
  32. package/corpus/core/src/deploy/workspace-deploy.ts +2 -0
  33. package/corpus/core/src/extensions/actions.ts +115 -3
  34. package/corpus/core/src/extensions/fetch-tool.ts +11 -0
  35. package/corpus/core/src/extensions/routes.ts +16 -1
  36. package/corpus/core/src/extensions/web-content.ts +96 -1
  37. package/corpus/core/src/integrations/computer-supervision.ts +33 -1
  38. package/corpus/core/src/integrations/index.ts +6 -0
  39. package/corpus/core/src/integrations/integration-durable-dispatch-config.ts +10 -0
  40. package/corpus/core/src/integrations/integration-durable-dispatch.ts +4 -0
  41. package/corpus/core/src/integrations/plugin.ts +94 -41
  42. package/corpus/core/src/integrations/remote-browser-actions.ts +621 -0
  43. package/corpus/core/src/jobs/actions/list-recurring-jobs.ts +5 -7
  44. package/corpus/core/src/jobs/actions/manage-recurring-job.ts +3 -7
  45. package/corpus/core/src/jobs/background-automation-runner.ts +437 -0
  46. package/corpus/core/src/jobs/frontmatter.ts +308 -0
  47. package/corpus/core/src/jobs/scheduler.ts +89 -598
  48. package/corpus/core/src/jobs/tools.ts +22 -3
  49. package/corpus/core/src/localization/default-messages.ts +45 -45
  50. package/corpus/core/src/mcp-client/index.ts +6 -0
  51. package/corpus/core/src/notifications/actions.ts +5 -0
  52. package/corpus/core/src/progress/actions.ts +5 -0
  53. package/corpus/core/src/provider-api/actions/github-repo-files.ts +11 -0
  54. package/corpus/core/src/provider-api/actions/provider-api.ts +13 -0
  55. package/corpus/core/src/server/action-discovery.ts +7 -0
  56. package/corpus/core/src/server/agent-capabilities.ts +43 -8
  57. package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +63 -1
  58. package/corpus/core/src/server/agent-chat/browser-team-tools.ts +126 -3
  59. package/corpus/core/src/server/agent-chat/framework-prompts.ts +7 -11
  60. package/corpus/core/src/server/agent-chat/plugin-options.ts +3 -3
  61. package/corpus/core/src/server/agent-chat/script-entries.ts +52 -1
  62. package/corpus/core/src/server/agent-chat-plugin.ts +25 -5
  63. package/corpus/core/src/server/attribution.ts +22 -0
  64. package/corpus/core/src/server/auth.ts +20 -6
  65. package/corpus/core/src/server/better-auth-instance.ts +10 -2
  66. package/corpus/core/src/server/core-routes-plugin.ts +10 -1
  67. package/corpus/core/src/server/csrf.ts +25 -0
  68. package/corpus/core/src/server/google-oauth.ts +21 -1
  69. package/corpus/core/src/server/onboarding-html.ts +18 -0
  70. package/corpus/core/src/server/prompts/framework-core-compact.ts +3 -3
  71. package/corpus/core/src/server/prompts/framework-core.ts +3 -3
  72. package/corpus/core/src/server/prompts/shared-rules.ts +3 -3
  73. package/corpus/core/src/settings/index.ts +1 -0
  74. package/corpus/core/src/shared/analytics-anonymous-id.ts +35 -0
  75. package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  76. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +26 -0
  77. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +28 -0
  78. package/corpus/core/src/templates/default/app/i18n/en-US.ts +27 -0
  79. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +28 -0
  80. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +28 -0
  81. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +25 -0
  82. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +27 -0
  83. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +27 -0
  84. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +27 -0
  85. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +24 -0
  86. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +24 -0
  87. package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  88. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  89. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
  90. package/corpus/core/src/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
  91. package/corpus/core/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
  92. package/corpus/core/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
  93. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
  94. package/corpus/core/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
  95. package/corpus/core/src/tracking/providers.ts +1 -0
  96. package/corpus/core/src/tracking/registry.ts +2 -1
  97. package/corpus/core/src/tracking/types.ts +1 -0
  98. package/corpus/core/src/triggers/actions/list-automations.ts +43 -44
  99. package/corpus/core/src/triggers/actions/manage-automation.ts +17 -48
  100. package/corpus/core/src/triggers/actions.ts +218 -127
  101. package/corpus/core/src/triggers/dispatcher.ts +181 -367
  102. package/corpus/core/src/triggers/routes.ts +84 -27
  103. package/corpus/core/src/triggers/types.ts +9 -23
  104. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  105. package/corpus/templates/analytics/AGENTS.md +5 -0
  106. package/corpus/templates/analytics/actions/hubspot-deals.ts +1 -0
  107. package/corpus/templates/analytics/actions/hubspot-records.ts +1 -0
  108. package/corpus/templates/analytics/actions/install-dashboard-template.ts +13 -4
  109. package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -3
  110. package/corpus/templates/analytics/actions/restore-dashboard-revision.ts +8 -3
  111. package/corpus/templates/analytics/actions/update-dashboard.ts +22 -5
  112. package/corpus/templates/analytics/app/components/dashboard/DashboardPanelSkeleton.tsx +7 -1
  113. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +1 -82
  114. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +4 -4
  115. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +23 -13
  116. package/corpus/templates/analytics/app/global.css +21 -0
  117. package/corpus/templates/analytics/app/i18n-data.ts +165 -101
  118. package/corpus/templates/analytics/app/lib/custom-block-promotion.ts +62 -0
  119. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +17 -2
  120. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +3 -1
  121. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +77 -12
  122. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-save-queue.ts +34 -0
  123. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +42 -26
  124. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +15 -0
  125. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -1
  126. package/corpus/templates/analytics/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
  127. package/corpus/templates/analytics/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-the-dashboard.md +6 -0
  128. package/corpus/templates/analytics/changelog/2026-07-29-custom-dashboard-blocks-now-identify-one-off-agent-patches-a.md +6 -0
  129. package/corpus/templates/analytics/changelog/2026-07-29-dashboard-chart-deletions-now-save-in-order-so-removed-rows-.md +6 -0
  130. package/corpus/templates/analytics/changelog/2026-07-29-dashboard-chart-loaders-are-easier-to-see-and-animate-more-s.md +6 -0
  131. package/corpus/templates/analytics/changelog/2026-07-29-plan-mode-can-now-query-connected-analytics-sources-while-ke.md +6 -0
  132. package/corpus/templates/analytics/changelog/2026-07-29-plan-mode-can-use-clips-as-read-only-prompt-context.md +6 -0
  133. package/corpus/templates/analytics/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  134. package/corpus/templates/analytics/changelog/2026-07-29-signup-entry-pages-now-show-the-first-page-viewed-before-eac.md +6 -0
  135. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +26 -1
  136. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +0 -33
  137. package/corpus/templates/analytics/server/lib/analytics-connector-catalog.ts +2 -0
  138. package/corpus/templates/analytics/server/lib/canonical-first-party-dashboard-repair.ts +13 -3
  139. package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +9 -1
  140. package/corpus/templates/analytics/server/lib/first-party-analytics.ts +44 -1
  141. package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +96 -16
  142. package/corpus/templates/analytics/server/plugins/agent-chat.ts +18 -27
  143. package/corpus/templates/analytics/server/plugins/core-routes.ts +1 -0
  144. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  145. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -8
  146. package/corpus/templates/assets/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
  147. package/corpus/templates/assets/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-the-workspace.md +6 -0
  148. package/corpus/templates/assets/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  149. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  150. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +3 -7
  151. package/corpus/templates/brain/app/root.tsx +0 -3
  152. package/corpus/templates/brain/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
  153. package/corpus/templates/brain/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-ask-brain.md +6 -0
  154. package/corpus/templates/brain/changelog/2026-07-29-extensions-are-no-longer-shown-as-a-default-command-menu-des.md +6 -0
  155. package/corpus/templates/brain/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  156. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  157. package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +25 -5
  158. package/corpus/templates/calendar/AGENTS.md +5 -0
  159. package/corpus/templates/calendar/actions/create-event.ts +43 -13
  160. package/corpus/templates/calendar/actions/event-action-helpers.ts +131 -1
  161. package/corpus/templates/calendar/actions/get-event.ts +1 -0
  162. package/corpus/templates/calendar/actions/manage-event-draft.ts +65 -2
  163. package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +438 -258
  164. package/corpus/templates/calendar/app/components/calendar/DayView.tsx +19 -3
  165. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -3
  166. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +14 -19
  167. package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +24 -0
  168. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +15 -2
  169. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +1 -5
  170. package/corpus/templates/calendar/app/hooks/use-events.ts +51 -5
  171. package/corpus/templates/calendar/app/i18n-data.ts +50 -0
  172. package/corpus/templates/calendar/app/lib/all-day-layout.ts +9 -2
  173. package/corpus/templates/calendar/app/lib/event-form-initialization.ts +4 -8
  174. package/corpus/templates/calendar/app/lib/event-form-utils.ts +43 -8
  175. package/corpus/templates/calendar/app/lib/location-suggestions.ts +36 -0
  176. package/corpus/templates/calendar/app/lib/out-of-office.ts +87 -1
  177. package/corpus/templates/calendar/app/pages/CalendarView.tsx +82 -20
  178. package/corpus/templates/calendar/changelog/2026-07-26-out-of-office-events-now-default-to-full-days-with-a-ready.md +6 -0
  179. package/corpus/templates/calendar/changelog/2026-07-29-recent-calendar-locations-now-appear-as-address-suggestions-.md +6 -0
  180. package/corpus/templates/calendar/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  181. package/corpus/templates/calendar/changelog/2026-07-29-unnamed-events-now-use-a-title-placeholder.md +6 -0
  182. package/corpus/templates/calendar/server/lib/find-time.ts +29 -5
  183. package/corpus/templates/calendar/server/lib/google-calendar.ts +2 -0
  184. package/corpus/templates/calendar/server/lib/ical-fetcher.ts +1 -0
  185. package/corpus/templates/calendar/shared/api.ts +4 -0
  186. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  187. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +1 -5
  188. package/corpus/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  189. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  190. package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -5
  191. package/corpus/templates/clips/changelog/2026-07-29-fixed-system-audio-recordings-picking-up-your-microphone-in-.md +6 -0
  192. package/corpus/templates/clips/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  193. package/corpus/templates/clips/changelog/2026-07-29-the-desktop-camera-preview-now-closes-after-a-recording-fin.md +6 -0
  194. package/corpus/templates/clips/desktop/src/app.tsx +14 -15
  195. package/corpus/templates/clips/desktop/src/lib/bubble-session.ts +11 -0
  196. package/corpus/templates/clips/desktop/src/lib/recorder.ts +9 -4
  197. package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +11 -0
  198. package/corpus/templates/clips/server/jobs/transactional-emails.ts +47 -23
  199. package/corpus/templates/clips/server/lib/transactional-email-store.ts +16 -6
  200. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  201. package/corpus/templates/content/.agents/skills/content-product-development/SKILL.md +103 -0
  202. package/corpus/templates/content/.agents/skills/content-product-development/references/verification.md +57 -0
  203. package/corpus/templates/content/AGENTS.md +2 -0
  204. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -6
  205. package/corpus/templates/content/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  206. package/corpus/templates/content/docs/product/README.md +115 -0
  207. package/corpus/templates/content/docs/product/architecture.md +98 -0
  208. package/corpus/templates/content/docs/product/capabilities/content.access.page-database.md +76 -0
  209. package/corpus/templates/content/docs/product/capabilities/content.access.row-private.md +75 -0
  210. package/corpus/templates/content/docs/product/capabilities/content.access.safe-aggregate.md +75 -0
  211. package/corpus/templates/content/docs/product/capabilities/content.access.visibility-closure.md +79 -0
  212. package/corpus/templates/content/docs/product/capabilities/content.action.button.md +67 -0
  213. package/corpus/templates/content/docs/product/capabilities/content.agent.action-parity.md +73 -0
  214. package/corpus/templates/content/docs/product/capabilities/content.agent.audience-safe.md +91 -0
  215. package/corpus/templates/content/docs/product/capabilities/content.agent.automation.md +67 -0
  216. package/corpus/templates/content/docs/product/capabilities/content.agent.expression-authoring.md +71 -0
  217. package/corpus/templates/content/docs/product/capabilities/content.agent.presence.md +103 -0
  218. package/corpus/templates/content/docs/product/capabilities/content.agent.resource-consent.md +90 -0
  219. package/corpus/templates/content/docs/product/capabilities/content.agent.skill-catalog.md +67 -0
  220. package/corpus/templates/content/docs/product/capabilities/content.api.cms.md +70 -0
  221. package/corpus/templates/content/docs/product/capabilities/content.author.code.md +71 -0
  222. package/corpus/templates/content/docs/product/capabilities/content.author.document-editor.md +71 -0
  223. package/corpus/templates/content/docs/product/capabilities/content.author.footnotes.md +71 -0
  224. package/corpus/templates/content/docs/product/capabilities/content.author.math.md +71 -0
  225. package/corpus/templates/content/docs/product/capabilities/content.author.media.md +71 -0
  226. package/corpus/templates/content/docs/product/capabilities/content.author.mermaid.md +71 -0
  227. package/corpus/templates/content/docs/product/capabilities/content.automation.scheduled.md +67 -0
  228. package/corpus/templates/content/docs/product/capabilities/content.capture.enrich.md +75 -0
  229. package/corpus/templates/content/docs/product/capabilities/content.command.fabric.md +67 -0
  230. package/corpus/templates/content/docs/product/capabilities/content.comment.page-owned.md +75 -0
  231. package/corpus/templates/content/docs/product/capabilities/content.diff.ai-assist.md +75 -0
  232. package/corpus/templates/content/docs/product/capabilities/content.diff.filtered-review.md +79 -0
  233. package/corpus/templates/content/docs/product/capabilities/content.diff.in-place.md +80 -0
  234. package/corpus/templates/content/docs/product/capabilities/content.discussion.page.md +80 -0
  235. package/corpus/templates/content/docs/product/capabilities/content.embed.host-grant.md +70 -0
  236. package/corpus/templates/content/docs/product/capabilities/content.embed.mcp-app.md +69 -0
  237. package/corpus/templates/content/docs/product/capabilities/content.embed.surface.md +74 -0
  238. package/corpus/templates/content/docs/product/capabilities/content.event.committed.md +85 -0
  239. package/corpus/templates/content/docs/product/capabilities/content.expression.cached-result.md +71 -0
  240. package/corpus/templates/content/docs/product/capabilities/content.expression.catalog.md +71 -0
  241. package/corpus/templates/content/docs/product/capabilities/content.expression.language.md +76 -0
  242. package/corpus/templates/content/docs/product/capabilities/content.feedback.signal.md +67 -0
  243. package/corpus/templates/content/docs/product/capabilities/content.form.shared-engine.md +72 -0
  244. package/corpus/templates/content/docs/product/capabilities/content.history.queryable.md +79 -0
  245. package/corpus/templates/content/docs/product/capabilities/content.home.global.md +80 -0
  246. package/corpus/templates/content/docs/product/capabilities/content.job.durable.md +76 -0
  247. package/corpus/templates/content/docs/product/capabilities/content.knowledge.graph.md +67 -0
  248. package/corpus/templates/content/docs/product/capabilities/content.knowledge.links.md +67 -0
  249. package/corpus/templates/content/docs/product/capabilities/content.knowledge.search.md +67 -0
  250. package/corpus/templates/content/docs/product/capabilities/content.layout.responsive.md +80 -0
  251. package/corpus/templates/content/docs/product/capabilities/content.navigation.sidebar.md +86 -0
  252. package/corpus/templates/content/docs/product/capabilities/content.notification.source.md +71 -0
  253. package/corpus/templates/content/docs/product/capabilities/content.object.block.md +76 -0
  254. package/corpus/templates/content/docs/product/capabilities/content.object.blocks-field.md +79 -0
  255. package/corpus/templates/content/docs/product/capabilities/content.object.database.md +92 -0
  256. package/corpus/templates/content/docs/product/capabilities/content.object.multi-membership.md +75 -0
  257. package/corpus/templates/content/docs/product/capabilities/content.object.page.md +76 -0
  258. package/corpus/templates/content/docs/product/capabilities/content.object.reference.md +75 -0
  259. package/corpus/templates/content/docs/product/capabilities/content.object.transclusion.md +75 -0
  260. package/corpus/templates/content/docs/product/capabilities/content.organization.teams.md +71 -0
  261. package/corpus/templates/content/docs/product/capabilities/content.portability.pdf-export.md +78 -0
  262. package/corpus/templates/content/docs/product/capabilities/content.portability.roundtrip.md +154 -0
  263. package/corpus/templates/content/docs/product/capabilities/content.portability.source-representation.md +70 -0
  264. package/corpus/templates/content/docs/product/capabilities/content.portability.vault-export.md +80 -0
  265. package/corpus/templates/content/docs/product/capabilities/content.presentation.mode.md +76 -0
  266. package/corpus/templates/content/docs/product/capabilities/content.preset.catalog.md +71 -0
  267. package/corpus/templates/content/docs/product/capabilities/content.property.actor.md +75 -0
  268. package/corpus/templates/content/docs/product/capabilities/content.property.catalog.md +76 -0
  269. package/corpus/templates/content/docs/product/capabilities/content.property.constraints.md +75 -0
  270. package/corpus/templates/content/docs/product/capabilities/content.property.guarded-change.md +76 -0
  271. package/corpus/templates/content/docs/product/capabilities/content.property.location.md +71 -0
  272. package/corpus/templates/content/docs/product/capabilities/content.property.typed.md +71 -0
  273. package/corpus/templates/content/docs/product/capabilities/content.publish.public.md +75 -0
  274. package/corpus/templates/content/docs/product/capabilities/content.publish.reading.md +74 -0
  275. package/corpus/templates/content/docs/product/capabilities/content.query.object.md +114 -0
  276. package/corpus/templates/content/docs/product/capabilities/content.reader.documents.md +69 -0
  277. package/corpus/templates/content/docs/product/capabilities/content.reader.surface.md +75 -0
  278. package/corpus/templates/content/docs/product/capabilities/content.relationship.edge.md +183 -0
  279. package/corpus/templates/content/docs/product/capabilities/content.renderer.artifact-block.md +71 -0
  280. package/corpus/templates/content/docs/product/capabilities/content.renderer.custom-block.md +81 -0
  281. package/corpus/templates/content/docs/product/capabilities/content.renderer.graph.md +71 -0
  282. package/corpus/templates/content/docs/product/capabilities/content.renderer.typed.md +92 -0
  283. package/corpus/templates/content/docs/product/capabilities/content.research.annotation.md +75 -0
  284. package/corpus/templates/content/docs/product/capabilities/content.research.citation.md +70 -0
  285. package/corpus/templates/content/docs/product/capabilities/content.review.code.md +67 -0
  286. package/corpus/templates/content/docs/product/capabilities/content.revision.suggestions.md +76 -0
  287. package/corpus/templates/content/docs/product/capabilities/content.rule.deterministic.md +79 -0
  288. package/corpus/templates/content/docs/product/capabilities/content.schedule.constraints.md +81 -0
  289. package/corpus/templates/content/docs/product/capabilities/content.security.private-vault.md +71 -0
  290. package/corpus/templates/content/docs/product/capabilities/content.share.views.md +140 -0
  291. package/corpus/templates/content/docs/product/capabilities/content.source.adapters.md +154 -0
  292. package/corpus/templates/content/docs/product/capabilities/content.source.builder-codec.md +70 -0
  293. package/corpus/templates/content/docs/product/capabilities/content.source.catalog.md +149 -0
  294. package/corpus/templates/content/docs/product/capabilities/content.source.file-folder.md +71 -0
  295. package/corpus/templates/content/docs/product/capabilities/content.source.local-bridge.md +156 -0
  296. package/corpus/templates/content/docs/product/capabilities/content.source.local-project.md +70 -0
  297. package/corpus/templates/content/docs/product/capabilities/content.source.page-link.md +70 -0
  298. package/corpus/templates/content/docs/product/capabilities/content.source.row-union.md +69 -0
  299. package/corpus/templates/content/docs/product/capabilities/content.source.spaces-files.md +75 -0
  300. package/corpus/templates/content/docs/product/capabilities/content.source.sync-policy.md +161 -0
  301. package/corpus/templates/content/docs/product/capabilities/content.system.dependencies.md +80 -0
  302. package/corpus/templates/content/docs/product/capabilities/content.system.my-tasks.md +75 -0
  303. package/corpus/templates/content/docs/product/capabilities/content.system.project-status.md +77 -0
  304. package/corpus/templates/content/docs/product/capabilities/content.system.research-workspace.md +80 -0
  305. package/corpus/templates/content/docs/product/capabilities/content.system.task-project.md +76 -0
  306. package/corpus/templates/content/docs/product/capabilities/content.template.governance.md +76 -0
  307. package/corpus/templates/content/docs/product/capabilities/content.template.graph.md +76 -0
  308. package/corpus/templates/content/docs/product/capabilities/content.template.item-body.md +71 -0
  309. package/corpus/templates/content/docs/product/capabilities/content.template.update.md +71 -0
  310. package/corpus/templates/content/docs/product/capabilities/content.time.types.md +85 -0
  311. package/corpus/templates/content/docs/product/capabilities/content.version.branching.md +151 -0
  312. package/corpus/templates/content/docs/product/capabilities/content.version.field-history.md +103 -0
  313. package/corpus/templates/content/docs/product/capabilities/content.view.canvas.md +94 -0
  314. package/corpus/templates/content/docs/product/capabilities/content.view.chart.md +91 -0
  315. package/corpus/templates/content/docs/product/capabilities/content.view.dynamic-create.md +137 -0
  316. package/corpus/templates/content/docs/product/capabilities/content.view.fast-capture.md +82 -0
  317. package/corpus/templates/content/docs/product/capabilities/content.view.graph.md +95 -0
  318. package/corpus/templates/content/docs/product/capabilities/content.view.grouping-aggregation.md +83 -0
  319. package/corpus/templates/content/docs/product/capabilities/content.view.map.md +77 -0
  320. package/corpus/templates/content/docs/product/capabilities/content.view.personal-state.md +99 -0
  321. package/corpus/templates/content/docs/product/capabilities/content.view.pivot.md +76 -0
  322. package/corpus/templates/content/docs/product/capabilities/content.view.query.md +106 -0
  323. package/corpus/templates/content/docs/product/capabilities/content.view.renderer-conformance.md +77 -0
  324. package/corpus/templates/content/docs/product/capabilities/content.view.scale.md +77 -0
  325. package/corpus/templates/content/docs/product/capabilities/content.view.source-query.md +159 -0
  326. package/corpus/templates/content/docs/product/capabilities/content.view.timeline.md +86 -0
  327. package/corpus/templates/content/docs/product/capabilities/content.view.tree.md +77 -0
  328. package/corpus/templates/content/docs/product/capabilities/content.workspace.multi-scope.md +80 -0
  329. package/corpus/templates/content/docs/product/capabilities/content.workspace.session-restore.md +76 -0
  330. package/corpus/templates/content/docs/product/capabilities/content.workspace.view-instance.md +76 -0
  331. package/corpus/templates/content/docs/product/capabilities/content.workspace.working-set.md +77 -0
  332. package/corpus/templates/content/docs/product/chapters/content.chapter.capture-research.md +20 -0
  333. package/corpus/templates/content/docs/product/chapters/content.chapter.connected-sources.md +20 -0
  334. package/corpus/templates/content/docs/product/chapters/content.chapter.consensus.md +19 -0
  335. package/corpus/templates/content/docs/product/chapters/content.chapter.durable-home.md +21 -0
  336. package/corpus/templates/content/docs/product/chapters/content.chapter.publishing-portability.md +21 -0
  337. package/corpus/templates/content/docs/product/chapters/content.chapter.working-systems.md +27 -0
  338. package/corpus/templates/content/docs/product/encyclopedia.md +559 -0
  339. package/corpus/templates/content/docs/product/features/content.feature.bring-your-local-work.md +39 -0
  340. package/corpus/templates/content/docs/product/features/content.feature.build-living-dashboards.md +34 -0
  341. package/corpus/templates/content/docs/product/features/content.feature.build-new-surfaces.md +33 -0
  342. package/corpus/templates/content/docs/product/features/content.feature.capture-into-action.md +34 -0
  343. package/corpus/templates/content/docs/product/features/content.feature.cite-what-you-found.md +34 -0
  344. package/corpus/templates/content/docs/product/features/content.feature.collaborate-in-context.md +59 -0
  345. package/corpus/templates/content/docs/product/features/content.feature.collect-structured-input.md +38 -0
  346. package/corpus/templates/content/docs/product/features/content.feature.connect-your-sources.md +38 -0
  347. package/corpus/templates/content/docs/product/features/content.feature.data-that-keeps-itself-right.md +45 -0
  348. package/corpus/templates/content/docs/product/features/content.feature.durable-foundations.md +48 -0
  349. package/corpus/templates/content/docs/product/features/content.feature.evolve-systems-safely.md +38 -0
  350. package/corpus/templates/content/docs/product/features/content.feature.explore-alternatives-safely.md +39 -0
  351. package/corpus/templates/content/docs/product/features/content.feature.find-your-place-again.md +40 -0
  352. package/corpus/templates/content/docs/product/features/content.feature.keep-your-private-vault-private.md +39 -0
  353. package/corpus/templates/content/docs/product/features/content.feature.living-references.md +38 -0
  354. package/corpus/templates/content/docs/product/features/content.feature.make-the-workspace-yours.md +40 -0
  355. package/corpus/templates/content/docs/product/features/content.feature.move-without-starting-over.md +38 -0
  356. package/corpus/templates/content/docs/product/features/content.feature.plan-work-across-time.md +39 -0
  357. package/corpus/templates/content/docs/product/features/content.feature.publish-with-confidence.md +43 -0
  358. package/corpus/templates/content/docs/product/features/content.feature.put-your-organizations-know-how-to-work.md +38 -0
  359. package/corpus/templates/content/docs/product/features/content.feature.read-and-annotate-anything.md +38 -0
  360. package/corpus/templates/content/docs/product/features/content.feature.review-changes-in-place.md +39 -0
  361. package/corpus/templates/content/docs/product/features/content.feature.run-projects-your-way.md +44 -0
  362. package/corpus/templates/content/docs/product/features/content.feature.see-your-information-your-way.md +44 -0
  363. package/corpus/templates/content/docs/product/features/content.feature.share-how-your-organization-works.md +38 -0
  364. package/corpus/templates/content/docs/product/features/content.feature.sketch-connections-keep-whats-true.md +39 -0
  365. package/corpus/templates/content/docs/product/features/content.feature.take-the-whole-vault-with-you.md +39 -0
  366. package/corpus/templates/content/docs/product/features/content.feature.trust-your-connected-sources.md +40 -0
  367. package/corpus/templates/content/docs/product/features/content.feature.understand-what-your-data-says.md +39 -0
  368. package/corpus/templates/content/docs/product/features/content.feature.when-this-happens-that-follows.md +43 -0
  369. package/corpus/templates/content/docs/product/features/content.feature.work-across-every-workspace.md +37 -0
  370. package/corpus/templates/content/docs/product/features/content.feature.work-on-content-inside-another-application.md +37 -0
  371. package/corpus/templates/content/docs/product/roadmap.md +878 -0
  372. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  373. package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +1 -7
  374. package/corpus/templates/crm/app/i18n/en-US.ts +4 -0
  375. package/corpus/templates/crm/app/routes/settings.tsx +33 -8
  376. package/corpus/templates/crm/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  377. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  378. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +133 -63
  379. package/corpus/templates/design/.generated/bridge/embedded-wheel.generated.ts +19 -2
  380. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +51 -14
  381. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +41 -26
  382. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +22 -4
  383. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +216 -116
  384. package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +21 -2
  385. package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +5 -1
  386. package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbenchLoader.tsx +10 -2
  387. package/corpus/templates/design/app/components/design/code-workbench/code-workbench-shell.ts +2 -0
  388. package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +60 -55
  389. package/corpus/templates/design/app/components/design/design-canvas/content-size-report.ts +88 -2
  390. package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +3 -2
  391. package/corpus/templates/design/app/components/design/types.ts +4 -0
  392. package/corpus/templates/design/app/components/layout/Sidebar.tsx +1 -5
  393. package/corpus/templates/design/app/pages/design-editor/clipboard-layer-source.ts +28 -0
  394. package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +117 -0
  395. package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +3 -1
  396. package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +120 -74
  397. package/corpus/templates/design/app/pages/design-editor/pending-structure-verification.ts +11 -0
  398. package/corpus/templates/design/app/pages/design-editor/react-semantic-handoff.ts +2 -0
  399. package/corpus/templates/design/app/pages/design-editor/source-location.ts +1 -1
  400. package/corpus/templates/design/changelog/2026-07-29-copy-rendered-ui-between-live-local-apps-and-design-files-wh.md +6 -0
  401. package/corpus/templates/design/changelog/2026-07-29-design-boards-stay-dark-and-viewport-height-content-keeps-it.md +6 -0
  402. package/corpus/templates/design/changelog/2026-07-29-design-frames-no-longer-grow-continuously-when-their-content.md +6 -0
  403. package/corpus/templates/design/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  404. package/corpus/templates/design/changelog/2026-07-29-the-code-panel-and-apply-design-update-control-now-use-clear.md +6 -0
  405. package/corpus/templates/design/changelog/2026-07-29-the-tools-panel-now-keeps-extension-creation-and-discovery-h.md +6 -0
  406. package/corpus/templates/design/shared/source-mode.ts +7 -1
  407. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  408. package/corpus/templates/dispatch/app/i18n-data.ts +171 -0
  409. package/corpus/templates/dispatch/app/routes/browser-chat.tsx +4 -0
  410. package/corpus/templates/dispatch/app/routes/browser-connect.tsx +4 -0
  411. package/corpus/templates/dispatch/changelog/2026-07-29-browser-chat-can-securely-connect-the-agent-native-chrome-ex.md +6 -0
  412. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  413. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +1 -6
  414. package/corpus/templates/forms/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  415. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  416. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -5
  417. package/corpus/templates/macros/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  418. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  419. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +1 -9
  420. package/corpus/templates/mail/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  421. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  422. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +3 -7
  423. package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
  424. package/corpus/templates/plan/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
  425. package/corpus/templates/plan/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-ask-plan.md +6 -0
  426. package/corpus/templates/plan/changelog/2026-07-29-fixed-plan-pages-crashing-when-recent-activity-is-unavailabl.md +6 -0
  427. package/corpus/templates/plan/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  428. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  429. package/corpus/templates/slides/.agents/skills/analytics-data-for-decks/SKILL.md +48 -0
  430. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +60 -4
  431. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +20 -0
  432. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +30 -1
  433. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +3 -1
  434. package/corpus/templates/slides/AGENTS.md +25 -24
  435. package/corpus/templates/slides/actions/check-image-gen.ts +8 -2
  436. package/corpus/templates/slides/actions/create-deck.ts +4 -12
  437. package/corpus/templates/slides/actions/export-pptx.ts +25 -3
  438. package/corpus/templates/slides/actions/generate-image-api.ts +4 -2
  439. package/corpus/templates/slides/actions/generate-slides-ai.ts +1 -1
  440. package/corpus/templates/slides/actions/get-deck-reference-context.ts +136 -0
  441. package/corpus/templates/slides/actions/get-workspace-defaults.ts +55 -0
  442. package/corpus/templates/slides/actions/image-gen-status.ts +10 -1
  443. package/corpus/templates/slides/actions/import-file.ts +53 -38
  444. package/corpus/templates/slides/actions/list-decks.ts +2 -0
  445. package/corpus/templates/slides/actions/patch-deck.ts +2 -0
  446. package/corpus/templates/slides/actions/set-workspace-defaults.ts +50 -0
  447. package/corpus/templates/slides/actions/view-screen.ts +6 -0
  448. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +1 -1
  449. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +67 -3
  450. package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +40 -8
  451. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +33 -8
  452. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +6 -2
  453. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +114 -128
  454. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +74 -9
  455. package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +1 -1
  456. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +1193 -267
  457. package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +302 -102
  458. package/corpus/templates/slides/app/components/editor/rich-text-selection.ts +270 -0
  459. package/corpus/templates/slides/app/components/editor/slide-escape-arbiter.ts +34 -0
  460. package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +368 -0
  461. package/corpus/templates/slides/app/components/editor/slide-presence.ts +13 -0
  462. package/corpus/templates/slides/app/components/layout/AgentWorkIndicator.tsx +23 -3
  463. package/corpus/templates/slides/app/components/layout/Layout.tsx +39 -6
  464. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +1 -6
  465. package/corpus/templates/slides/app/components/layout/layout-route-policy.ts +23 -0
  466. package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +0 -2
  467. package/corpus/templates/slides/app/context/DeckContext.tsx +2 -0
  468. package/corpus/templates/slides/app/global.css +60 -0
  469. package/corpus/templates/slides/app/hooks/use-agent-generating.ts +76 -5
  470. package/corpus/templates/slides/app/hooks/use-workspace-defaults.ts +26 -0
  471. package/corpus/templates/slides/app/i18n/en-US.ts +39 -3
  472. package/corpus/templates/slides/app/lib/generation-state.ts +13 -3
  473. package/corpus/templates/slides/app/lib/slide-image-replacement.ts +27 -6
  474. package/corpus/templates/slides/app/lib/text-tool-shortcut.ts +62 -0
  475. package/corpus/templates/slides/app/pages/DeckEditor.tsx +197 -83
  476. package/corpus/templates/slides/app/pages/DesignSystems.tsx +95 -0
  477. package/corpus/templates/slides/app/pages/Index.tsx +348 -53
  478. package/corpus/templates/slides/changelog/2026-07-28-pick-an-existing-deck-as-a-style-reference-when-creating-a-n.md +6 -0
  479. package/corpus/templates/slides/changelog/2026-07-29-ai-editing-status-is-now-quieter-and-only-shows-slide-presen.md +6 -0
  480. package/corpus/templates/slides/changelog/2026-07-29-design-systems-and-reference-decks-are-easier-to-choose-toge.md +6 -0
  481. package/corpus/templates/slides/changelog/2026-07-29-generated-decks-now-receive-a-concise-relevant-title-before-.md +6 -0
  482. package/corpus/templates/slides/changelog/2026-07-29-google-slides-exports-can-connect-your-google-account-direct.md +6 -0
  483. package/corpus/templates/slides/changelog/2026-07-29-new-deck-prompts-reuse-empty-chats.md +6 -0
  484. package/corpus/templates/slides/changelog/2026-07-29-new-deck-setup-now-stays-in-the-editor-with-closable-style-a.md +6 -0
  485. package/corpus/templates/slides/changelog/2026-07-29-selected-words-and-text-runs-can-now-be-styled-independently.md +6 -0
  486. package/corpus/templates/slides/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  487. package/corpus/templates/slides/changelog/2026-07-29-slide-annotation-tools-are-clearer-and-escape-now-exits-anno.md +6 -0
  488. package/corpus/templates/slides/changelog/2026-07-29-slide-editing-now-opens-with-the-app-navigation-collapsed-fo.md +6 -0
  489. package/corpus/templates/slides/changelog/2026-07-29-slide-editing-stays-visually-clean-on-hover-without-a-canvas.md +6 -0
  490. package/corpus/templates/slides/changelog/2026-07-29-slides-now-appear-one-by-one-while-ai-builds-a-deck-with-ste.md +6 -0
  491. package/corpus/templates/slides/changelog/2026-07-29-text-boxes-now-select-move-duplicate-resize-and-style-like-a.md +6 -0
  492. package/corpus/templates/slides/changelog/2026-07-29-untitled-decks-now-use-a-clearer-this-deck-label-in-the-agen.md +6 -0
  493. package/corpus/templates/slides/server/handlers/google-docs-auth.ts +4 -2
  494. package/corpus/templates/slides/server/handlers/image-providers/builder.ts +305 -0
  495. package/corpus/templates/slides/server/handlers/image-providers/index.ts +6 -3
  496. package/corpus/templates/slides/server/plugins/agent-chat.ts +1 -0
  497. package/corpus/templates/slides/server/workspace-defaults.ts +169 -0
  498. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  499. package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +31 -8
  500. package/corpus/templates/tasks/app/i18n/en-US.ts +7 -0
  501. package/corpus/templates/tasks/app/routes/settings.tsx +25 -2
  502. package/corpus/templates/tasks/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  503. package/corpus/toolkit/CHANGELOG.md +15 -0
  504. package/corpus/toolkit/README.md +2 -2
  505. package/corpus/toolkit/package.json +1 -1
  506. package/corpus/toolkit/src/app-shell/sidebar-footer-actions.tsx +0 -3
  507. package/corpus/toolkit/src/chat-history.css +1 -0
  508. package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +35 -14
  509. package/corpus/toolkit/src/composer/PromptComposer.tsx +6 -0
  510. package/corpus/toolkit/src/composer/TiptapComposer.tsx +11 -3
  511. package/corpus/toolkit/src/design-tweaks/visual-style-controls.tsx +64 -11
  512. package/dist/a2a/types.d.ts +6 -0
  513. package/dist/a2a/types.d.ts.map +1 -1
  514. package/dist/a2a/types.js.map +1 -1
  515. package/dist/action.d.ts +57 -0
  516. package/dist/action.d.ts.map +1 -1
  517. package/dist/action.js +9 -0
  518. package/dist/action.js.map +1 -1
  519. package/dist/agent/engine/builder-engine.js +6 -4
  520. package/dist/agent/engine/builder-engine.js.map +1 -1
  521. package/dist/agent/production-agent.d.ts +11 -1
  522. package/dist/agent/production-agent.d.ts.map +1 -1
  523. package/dist/agent/production-agent.js +131 -90
  524. package/dist/agent/production-agent.js.map +1 -1
  525. package/dist/agent/tool-search.d.ts +4 -0
  526. package/dist/agent/tool-search.d.ts.map +1 -1
  527. package/dist/agent/tool-search.js +30 -0
  528. package/dist/agent/tool-search.js.map +1 -1
  529. package/dist/automations/service.d.ts +85 -0
  530. package/dist/automations/service.d.ts.map +1 -0
  531. package/dist/automations/service.js +332 -0
  532. package/dist/automations/service.js.map +1 -0
  533. package/dist/browser-context/index.d.ts +579 -0
  534. package/dist/browser-context/index.d.ts.map +1 -0
  535. package/dist/browser-context/index.js +331 -0
  536. package/dist/browser-context/index.js.map +1 -0
  537. package/dist/client/AgentPanel.d.ts.map +1 -1
  538. package/dist/client/AgentPanel.js +1 -1
  539. package/dist/client/AgentPanel.js.map +1 -1
  540. package/dist/client/FeedbackButton.d.ts +6 -2
  541. package/dist/client/FeedbackButton.d.ts.map +1 -1
  542. package/dist/client/FeedbackButton.js +20 -3
  543. package/dist/client/FeedbackButton.js.map +1 -1
  544. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  545. package/dist/client/MultiTabAssistantChat.js +19 -2
  546. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  547. package/dist/client/agent-chat.d.ts +15 -0
  548. package/dist/client/agent-chat.d.ts.map +1 -1
  549. package/dist/client/agent-chat.js +13 -3
  550. package/dist/client/agent-chat.js.map +1 -1
  551. package/dist/client/agent-page/AgentJobsTab.d.ts +1 -0
  552. package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -1
  553. package/dist/client/agent-page/AgentJobsTab.js +186 -98
  554. package/dist/client/agent-page/AgentJobsTab.js.map +1 -1
  555. package/dist/client/agent-page/AgentTabsPage.js +4 -4
  556. package/dist/client/agent-page/AgentTabsPage.js.map +1 -1
  557. package/dist/client/agent-page/use-jobs.d.ts +7 -0
  558. package/dist/client/agent-page/use-jobs.d.ts.map +1 -1
  559. package/dist/client/agent-page/use-jobs.js.map +1 -1
  560. package/dist/client/analytics-session.d.ts.map +1 -1
  561. package/dist/client/analytics-session.js +13 -0
  562. package/dist/client/analytics-session.js.map +1 -1
  563. package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
  564. package/dist/client/extensions/ExtensionViewer.js +29 -6
  565. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  566. package/dist/client/settings/AutomationsSection.d.ts +0 -9
  567. package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
  568. package/dist/client/settings/AutomationsSection.js +9 -168
  569. package/dist/client/settings/AutomationsSection.js.map +1 -1
  570. package/dist/client/settings/SettingsPanel.d.ts +9 -1
  571. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  572. package/dist/client/settings/SettingsPanel.js +19 -11
  573. package/dist/client/settings/SettingsPanel.js.map +1 -1
  574. package/dist/client/settings/index.d.ts +1 -1
  575. package/dist/client/settings/index.d.ts.map +1 -1
  576. package/dist/client/settings/index.js +1 -1
  577. package/dist/client/settings/index.js.map +1 -1
  578. package/dist/client/use-agent-chat.d.ts.map +1 -1
  579. package/dist/client/use-agent-chat.js +20 -3
  580. package/dist/client/use-agent-chat.js.map +1 -1
  581. package/dist/client/use-chat-threads.d.ts.map +1 -1
  582. package/dist/client/use-chat-threads.js +4 -17
  583. package/dist/client/use-chat-threads.js.map +1 -1
  584. package/dist/collab/awareness.d.ts +2 -2
  585. package/dist/collab/awareness.d.ts.map +1 -1
  586. package/dist/collab/struct-routes.d.ts +1 -1
  587. package/dist/deploy/build.d.ts.map +1 -1
  588. package/dist/deploy/build.js +2 -1
  589. package/dist/deploy/build.js.map +1 -1
  590. package/dist/deploy/workspace-deploy.d.ts.map +1 -1
  591. package/dist/deploy/workspace-deploy.js +2 -1
  592. package/dist/deploy/workspace-deploy.js.map +1 -1
  593. package/dist/extensions/actions.d.ts.map +1 -1
  594. package/dist/extensions/actions.js +82 -6
  595. package/dist/extensions/actions.js.map +1 -1
  596. package/dist/extensions/fetch-tool.d.ts.map +1 -1
  597. package/dist/extensions/fetch-tool.js +11 -0
  598. package/dist/extensions/fetch-tool.js.map +1 -1
  599. package/dist/extensions/routes.d.ts +5 -1
  600. package/dist/extensions/routes.d.ts.map +1 -1
  601. package/dist/extensions/routes.js +7 -1
  602. package/dist/extensions/routes.js.map +1 -1
  603. package/dist/extensions/web-content.d.ts +1 -0
  604. package/dist/extensions/web-content.d.ts.map +1 -1
  605. package/dist/extensions/web-content.js +82 -1
  606. package/dist/extensions/web-content.js.map +1 -1
  607. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  608. package/dist/integrations/computer-supervision.d.ts.map +1 -1
  609. package/dist/integrations/computer-supervision.js +22 -1
  610. package/dist/integrations/computer-supervision.js.map +1 -1
  611. package/dist/integrations/index.d.ts +3 -2
  612. package/dist/integrations/index.d.ts.map +1 -1
  613. package/dist/integrations/index.js +3 -2
  614. package/dist/integrations/index.js.map +1 -1
  615. package/dist/integrations/integration-durable-dispatch-config.d.ts +2 -0
  616. package/dist/integrations/integration-durable-dispatch-config.d.ts.map +1 -1
  617. package/dist/integrations/integration-durable-dispatch-config.js +4 -0
  618. package/dist/integrations/integration-durable-dispatch-config.js.map +1 -1
  619. package/dist/integrations/integration-durable-dispatch.d.ts +2 -2
  620. package/dist/integrations/integration-durable-dispatch.d.ts.map +1 -1
  621. package/dist/integrations/integration-durable-dispatch.js +2 -2
  622. package/dist/integrations/integration-durable-dispatch.js.map +1 -1
  623. package/dist/integrations/plugin.d.ts.map +1 -1
  624. package/dist/integrations/plugin.js +84 -39
  625. package/dist/integrations/plugin.js.map +1 -1
  626. package/dist/integrations/remote-browser-actions.d.ts +7 -0
  627. package/dist/integrations/remote-browser-actions.d.ts.map +1 -0
  628. package/dist/integrations/remote-browser-actions.js +482 -0
  629. package/dist/integrations/remote-browser-actions.js.map +1 -0
  630. package/dist/jobs/actions/list-recurring-jobs.d.ts.map +1 -1
  631. package/dist/jobs/actions/list-recurring-jobs.js +4 -6
  632. package/dist/jobs/actions/list-recurring-jobs.js.map +1 -1
  633. package/dist/jobs/actions/manage-recurring-job.js +3 -6
  634. package/dist/jobs/actions/manage-recurring-job.js.map +1 -1
  635. package/dist/jobs/background-automation-runner.d.ts +76 -0
  636. package/dist/jobs/background-automation-runner.d.ts.map +1 -0
  637. package/dist/jobs/background-automation-runner.js +288 -0
  638. package/dist/jobs/background-automation-runner.js.map +1 -0
  639. package/dist/jobs/frontmatter.d.ts +63 -0
  640. package/dist/jobs/frontmatter.d.ts.map +1 -0
  641. package/dist/jobs/frontmatter.js +216 -0
  642. package/dist/jobs/frontmatter.js.map +1 -0
  643. package/dist/jobs/scheduler.d.ts +6 -60
  644. package/dist/jobs/scheduler.d.ts.map +1 -1
  645. package/dist/jobs/scheduler.js +67 -484
  646. package/dist/jobs/scheduler.js.map +1 -1
  647. package/dist/jobs/tools.d.ts.map +1 -1
  648. package/dist/jobs/tools.js +24 -3
  649. package/dist/jobs/tools.js.map +1 -1
  650. package/dist/localization/default-messages.d.ts +28 -33
  651. package/dist/localization/default-messages.d.ts.map +1 -1
  652. package/dist/localization/default-messages.js +34 -39
  653. package/dist/localization/default-messages.js.map +1 -1
  654. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  655. package/dist/mcp/screen-memory-stdio.d.ts.map +1 -1
  656. package/dist/mcp-client/index.d.ts.map +1 -1
  657. package/dist/mcp-client/index.js +4 -0
  658. package/dist/mcp-client/index.js.map +1 -1
  659. package/dist/notifications/actions.d.ts.map +1 -1
  660. package/dist/notifications/actions.js +5 -0
  661. package/dist/notifications/actions.js.map +1 -1
  662. package/dist/notifications/routes.d.ts +3 -3
  663. package/dist/progress/actions.d.ts.map +1 -1
  664. package/dist/progress/actions.js +5 -0
  665. package/dist/progress/actions.js.map +1 -1
  666. package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
  667. package/dist/provider-api/actions/github-repo-files.d.ts.map +1 -1
  668. package/dist/provider-api/actions/github-repo-files.js +9 -0
  669. package/dist/provider-api/actions/github-repo-files.js.map +1 -1
  670. package/dist/provider-api/actions/provider-api.d.ts +16 -16
  671. package/dist/provider-api/actions/provider-api.d.ts.map +1 -1
  672. package/dist/provider-api/actions/provider-api.js +14 -0
  673. package/dist/provider-api/actions/provider-api.js.map +1 -1
  674. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  675. package/dist/resources/handlers.d.ts +1 -1
  676. package/dist/server/action-discovery.d.ts.map +1 -1
  677. package/dist/server/action-discovery.js +5 -0
  678. package/dist/server/action-discovery.js.map +1 -1
  679. package/dist/server/agent-capabilities.d.ts.map +1 -1
  680. package/dist/server/agent-capabilities.js +32 -3
  681. package/dist/server/agent-capabilities.js.map +1 -1
  682. package/dist/server/agent-chat/action-filters-a2a.d.ts +17 -1
  683. package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
  684. package/dist/server/agent-chat/action-filters-a2a.js +50 -1
  685. package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
  686. package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -1
  687. package/dist/server/agent-chat/browser-team-tools.js +90 -3
  688. package/dist/server/agent-chat/browser-team-tools.js.map +1 -1
  689. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
  690. package/dist/server/agent-chat/framework-prompts.js +7 -11
  691. package/dist/server/agent-chat/framework-prompts.js.map +1 -1
  692. package/dist/server/agent-chat/plugin-options.d.ts +3 -3
  693. package/dist/server/agent-chat/plugin-options.js.map +1 -1
  694. package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
  695. package/dist/server/agent-chat/script-entries.js +43 -1
  696. package/dist/server/agent-chat/script-entries.js.map +1 -1
  697. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  698. package/dist/server/agent-chat-plugin.js +24 -5
  699. package/dist/server/agent-chat-plugin.js.map +1 -1
  700. package/dist/server/attribution.d.ts +6 -0
  701. package/dist/server/attribution.d.ts.map +1 -1
  702. package/dist/server/attribution.js +14 -14
  703. package/dist/server/attribution.js.map +1 -1
  704. package/dist/server/auth.d.ts.map +1 -1
  705. package/dist/server/auth.js +5 -2
  706. package/dist/server/auth.js.map +1 -1
  707. package/dist/server/better-auth-instance.d.ts +2 -1
  708. package/dist/server/better-auth-instance.d.ts.map +1 -1
  709. package/dist/server/better-auth-instance.js +6 -3
  710. package/dist/server/better-auth-instance.js.map +1 -1
  711. package/dist/server/core-routes-plugin.d.ts +7 -0
  712. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  713. package/dist/server/core-routes-plugin.js +3 -1
  714. package/dist/server/core-routes-plugin.js.map +1 -1
  715. package/dist/server/csrf.d.ts.map +1 -1
  716. package/dist/server/csrf.js +25 -0
  717. package/dist/server/csrf.js.map +1 -1
  718. package/dist/server/google-oauth.d.ts +3 -0
  719. package/dist/server/google-oauth.d.ts.map +1 -1
  720. package/dist/server/google-oauth.js +12 -1
  721. package/dist/server/google-oauth.js.map +1 -1
  722. package/dist/server/onboarding-html.d.ts.map +1 -1
  723. package/dist/server/onboarding-html.js +18 -0
  724. package/dist/server/onboarding-html.js.map +1 -1
  725. package/dist/server/prompts/framework-core-compact.js +3 -3
  726. package/dist/server/prompts/framework-core-compact.js.map +1 -1
  727. package/dist/server/prompts/framework-core.js +3 -3
  728. package/dist/server/prompts/framework-core.js.map +1 -1
  729. package/dist/server/prompts/shared-rules.js +3 -3
  730. package/dist/server/prompts/shared-rules.js.map +1 -1
  731. package/dist/settings/index.d.ts +1 -1
  732. package/dist/settings/index.d.ts.map +1 -1
  733. package/dist/settings/index.js +1 -1
  734. package/dist/settings/index.js.map +1 -1
  735. package/dist/shared/analytics-anonymous-id.d.ts +12 -0
  736. package/dist/shared/analytics-anonymous-id.d.ts.map +1 -0
  737. package/dist/shared/analytics-anonymous-id.js +29 -0
  738. package/dist/shared/analytics-anonymous-id.js.map +1 -0
  739. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  740. package/dist/templates/chat/app/components/layout/Sidebar.tsx +1 -5
  741. package/dist/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  742. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  743. package/dist/templates/default/app/i18n/ar-SA.ts +26 -0
  744. package/dist/templates/default/app/i18n/de-DE.ts +28 -0
  745. package/dist/templates/default/app/i18n/en-US.ts +27 -0
  746. package/dist/templates/default/app/i18n/es-ES.ts +28 -0
  747. package/dist/templates/default/app/i18n/fr-FR.ts +28 -0
  748. package/dist/templates/default/app/i18n/hi-IN.ts +25 -0
  749. package/dist/templates/default/app/i18n/ja-JP.ts +27 -0
  750. package/dist/templates/default/app/i18n/ko-KR.ts +27 -0
  751. package/dist/templates/default/app/i18n/pt-BR.ts +27 -0
  752. package/dist/templates/default/app/i18n/zh-CN.ts +24 -0
  753. package/dist/templates/default/app/i18n/zh-TW.ts +24 -0
  754. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  755. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  756. package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
  757. package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
  758. package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
  759. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
  760. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
  761. package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
  762. package/dist/tracking/providers.d.ts.map +1 -1
  763. package/dist/tracking/providers.js +1 -0
  764. package/dist/tracking/providers.js.map +1 -1
  765. package/dist/tracking/registry.d.ts +1 -0
  766. package/dist/tracking/registry.d.ts.map +1 -1
  767. package/dist/tracking/registry.js +1 -0
  768. package/dist/tracking/registry.js.map +1 -1
  769. package/dist/tracking/types.d.ts +1 -0
  770. package/dist/tracking/types.d.ts.map +1 -1
  771. package/dist/tracking/types.js.map +1 -1
  772. package/dist/triggers/actions/list-automations.d.ts +7 -0
  773. package/dist/triggers/actions/list-automations.d.ts.map +1 -1
  774. package/dist/triggers/actions/list-automations.js +29 -41
  775. package/dist/triggers/actions/list-automations.js.map +1 -1
  776. package/dist/triggers/actions/manage-automation.js +15 -33
  777. package/dist/triggers/actions/manage-automation.js.map +1 -1
  778. package/dist/triggers/actions.d.ts.map +1 -1
  779. package/dist/triggers/actions.js +184 -95
  780. package/dist/triggers/actions.js.map +1 -1
  781. package/dist/triggers/dispatcher.d.ts +3 -9
  782. package/dist/triggers/dispatcher.d.ts.map +1 -1
  783. package/dist/triggers/dispatcher.js +134 -304
  784. package/dist/triggers/dispatcher.js.map +1 -1
  785. package/dist/triggers/routes.d.ts.map +1 -1
  786. package/dist/triggers/routes.js +76 -17
  787. package/dist/triggers/routes.js.map +1 -1
  788. package/dist/triggers/types.d.ts +4 -23
  789. package/dist/triggers/types.d.ts.map +1 -1
  790. package/dist/triggers/types.js.map +1 -1
  791. package/docs/content/agent-surfaces.mdx +4 -4
  792. package/docs/content/automations.mdx +61 -12
  793. package/docs/content/deployment.mdx +11 -4
  794. package/docs/content/extensions.mdx +39 -33
  795. package/docs/content/recurring-jobs.mdx +41 -19
  796. package/docs/content/template-dispatch-operations.mdx +19 -7
  797. package/package.json +4 -2
  798. package/src/a2a/types.ts +6 -0
  799. package/src/action.ts +68 -0
  800. package/src/agent/engine/builder-engine.ts +8 -4
  801. package/src/agent/production-agent.ts +175 -100
  802. package/src/agent/tool-search.ts +36 -0
  803. package/src/automations/service.ts +506 -0
  804. package/src/browser-context/index.ts +392 -0
  805. package/src/client/AgentPanel.tsx +2 -1
  806. package/src/client/FeedbackButton.tsx +37 -4
  807. package/src/client/MultiTabAssistantChat.tsx +21 -0
  808. package/src/client/agent-chat.ts +31 -3
  809. package/src/client/agent-page/AgentJobsTab.tsx +438 -310
  810. package/src/client/agent-page/AgentTabsPage.tsx +4 -4
  811. package/src/client/agent-page/use-jobs.ts +7 -0
  812. package/src/client/analytics-session.ts +13 -0
  813. package/src/client/extensions/ExtensionViewer.tsx +67 -0
  814. package/src/client/settings/AutomationsSection.tsx +27 -499
  815. package/src/client/settings/SettingsPanel.tsx +32 -11
  816. package/src/client/settings/index.ts +2 -0
  817. package/src/client/use-agent-chat.ts +35 -3
  818. package/src/client/use-chat-threads.ts +8 -25
  819. package/src/deploy/build.ts +2 -0
  820. package/src/deploy/workspace-deploy.ts +2 -0
  821. package/src/extensions/actions.ts +115 -3
  822. package/src/extensions/fetch-tool.ts +11 -0
  823. package/src/extensions/routes.ts +16 -1
  824. package/src/extensions/web-content.ts +96 -1
  825. package/src/integrations/computer-supervision.ts +33 -1
  826. package/src/integrations/index.ts +6 -0
  827. package/src/integrations/integration-durable-dispatch-config.ts +10 -0
  828. package/src/integrations/integration-durable-dispatch.ts +4 -0
  829. package/src/integrations/plugin.ts +94 -41
  830. package/src/integrations/remote-browser-actions.ts +621 -0
  831. package/src/jobs/actions/list-recurring-jobs.ts +5 -7
  832. package/src/jobs/actions/manage-recurring-job.ts +3 -7
  833. package/src/jobs/background-automation-runner.ts +437 -0
  834. package/src/jobs/frontmatter.ts +308 -0
  835. package/src/jobs/scheduler.ts +89 -598
  836. package/src/jobs/tools.ts +22 -3
  837. package/src/localization/default-messages.ts +45 -45
  838. package/src/mcp-client/index.ts +6 -0
  839. package/src/notifications/actions.ts +5 -0
  840. package/src/progress/actions.ts +5 -0
  841. package/src/provider-api/actions/github-repo-files.ts +11 -0
  842. package/src/provider-api/actions/provider-api.ts +13 -0
  843. package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +4 -4
  844. package/src/server/action-discovery.ts +7 -0
  845. package/src/server/agent-capabilities.ts +43 -8
  846. package/src/server/agent-chat/action-filters-a2a.ts +63 -1
  847. package/src/server/agent-chat/browser-team-tools.ts +126 -3
  848. package/src/server/agent-chat/framework-prompts.ts +7 -11
  849. package/src/server/agent-chat/plugin-options.ts +3 -3
  850. package/src/server/agent-chat/script-entries.ts +52 -1
  851. package/src/server/agent-chat-plugin.ts +25 -5
  852. package/src/server/attribution.ts +22 -0
  853. package/src/server/auth.ts +20 -6
  854. package/src/server/better-auth-instance.ts +10 -2
  855. package/src/server/core-routes-plugin.ts +10 -1
  856. package/src/server/csrf.ts +25 -0
  857. package/src/server/google-oauth.ts +21 -1
  858. package/src/server/onboarding-html.ts +18 -0
  859. package/src/server/prompts/framework-core-compact.ts +3 -3
  860. package/src/server/prompts/framework-core.ts +3 -3
  861. package/src/server/prompts/shared-rules.ts +3 -3
  862. package/src/settings/index.ts +1 -0
  863. package/src/shared/analytics-anonymous-id.ts +35 -0
  864. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  865. package/src/templates/chat/app/components/layout/Sidebar.tsx +1 -5
  866. package/src/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  867. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  868. package/src/templates/default/app/i18n/ar-SA.ts +26 -0
  869. package/src/templates/default/app/i18n/de-DE.ts +28 -0
  870. package/src/templates/default/app/i18n/en-US.ts +27 -0
  871. package/src/templates/default/app/i18n/es-ES.ts +28 -0
  872. package/src/templates/default/app/i18n/fr-FR.ts +28 -0
  873. package/src/templates/default/app/i18n/hi-IN.ts +25 -0
  874. package/src/templates/default/app/i18n/ja-JP.ts +27 -0
  875. package/src/templates/default/app/i18n/ko-KR.ts +27 -0
  876. package/src/templates/default/app/i18n/pt-BR.ts +27 -0
  877. package/src/templates/default/app/i18n/zh-CN.ts +24 -0
  878. package/src/templates/default/app/i18n/zh-TW.ts +24 -0
  879. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  880. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
  881. package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
  882. package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
  883. package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
  884. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
  885. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
  886. package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
  887. package/src/tracking/providers.ts +1 -0
  888. package/src/tracking/registry.ts +2 -1
  889. package/src/tracking/types.ts +1 -0
  890. package/src/triggers/actions/list-automations.ts +43 -44
  891. package/src/triggers/actions/manage-automation.ts +17 -48
  892. package/src/triggers/actions.ts +218 -127
  893. package/src/triggers/dispatcher.ts +181 -367
  894. package/src/triggers/routes.ts +84 -27
  895. package/src/triggers/types.ts +9 -23
@@ -637,11 +637,17 @@ const enUS = {
637
637
  off: "Off",
638
638
  since: "Since",
639
639
  sectionOptions: "Section options",
640
- extensionMissingId: "This extension panel has no extension selected.",
640
+ extensionMissingId: "This custom block has no source selected.",
641
641
  extensionUnavailable:
642
- "This extension isn't shared with you, or it no longer exists.",
642
+ "This custom block isn't shared with you, or it no longer exists.",
643
643
  panelOptions: "Panel options",
644
644
  chatWithPanel: "Chat with panel",
645
+ customBlock: "Custom block",
646
+ customBlockProvenance: "Sandboxed dashboard block",
647
+ customBlockAgentProvenance: "Agent-authored dashboard patch",
648
+ promoteToAppCode: "Promote to app code",
649
+ promoteCustomBlockMessage:
650
+ 'Promote the custom block "{{title}}" into reusable native Analytics app code.',
645
651
  fullScreen: "Full screen",
646
652
  refresh: "Refresh",
647
653
  refreshing: "Refreshing...",
@@ -941,22 +947,23 @@ const enUS = {
941
947
  chartTypePie: "Pie",
942
948
  chartTypeMetric: "Metric",
943
949
  chartTypeTable: "Table",
944
- chartTypeExtension: "Extension",
950
+ chartTypeExtension: "Custom visualization",
945
951
  failedToSavePanel: "Failed to save panel",
946
952
  failedToFormatSql: "Failed to format SQL",
947
953
  title: "Title",
948
954
  titlePlaceholder: "e.g. Weekly signups",
949
955
  chartType: "Chart type",
950
956
  source: "Source",
951
- extensionDisplay: "Extension display",
952
- sharedExtension: "Shared extension",
957
+ extensionDisplay: "Custom block display",
958
+ sharedExtension: "Shared custom block",
953
959
  perViewerSlot: "Per-viewer slot",
954
- extension: "Extension",
955
- loadingExtensions: "Loading extensions...",
956
- selectExtension: "Select an extension",
957
- noExtensions: "No visible extensions. Create or share one first.",
960
+ extension: "Custom block",
961
+ loadingExtensions: "Loading custom blocks...",
962
+ selectExtension: "Select a custom block",
963
+ noExtensions:
964
+ "No visible custom blocks. Ask the agent to create one first.",
958
965
  sharedExtensionHelp:
959
- "The selected extension is shared with this dashboard and appears in scheduled reports. Viewers still need access to the extension.",
966
+ "The selected custom block is shared with this dashboard and appears in scheduled reports. Viewers still need access to it.",
960
967
  slotIdOptional: "Slot ID (optional)",
961
968
  perViewerSlotHelp:
962
969
  "Each viewer installs their own extension. Scheduled reports may show an empty slot. Leave blank to generate a stable ID.",
@@ -1409,22 +1416,22 @@ const analyticsSliceTranslations: {
1409
1416
  chartTypePie: "馅饼",
1410
1417
  chartTypeMetric: "公制",
1411
1418
  chartTypeTable: "桌子",
1412
- chartTypeExtension: "扩展",
1419
+ chartTypeExtension: "自定义可视化",
1413
1420
  failedToSavePanel: "保存面板失败",
1414
1421
  failedToFormatSql: "格式化SQL失败",
1415
1422
  title: "标题",
1416
1423
  titlePlaceholder: "例如每周注册人数",
1417
1424
  chartType: "图表类型",
1418
1425
  source: "来源",
1419
- extensionDisplay: "扩展显示方式",
1420
- sharedExtension: "共享扩展",
1426
+ extensionDisplay: "自定义块显示方式",
1427
+ sharedExtension: "共享自定义块",
1421
1428
  perViewerSlot: "每位查看者的插槽",
1422
- extension: "扩展",
1423
- loadingExtensions: "正在加载扩展...",
1424
- selectExtension: "选择扩展",
1425
- noExtensions: "没有可见的扩展。请先创建或共享一个。",
1429
+ extension: "自定义块",
1430
+ loadingExtensions: "正在加载自定义块...",
1431
+ selectExtension: "选择自定义块",
1432
+ noExtensions: "没有可见的自定义块。请让代理先创建一个。",
1426
1433
  sharedExtensionHelp:
1427
- "所选扩展会与此仪表板共享并显示在计划报告中。查看者仍需拥有该扩展的访问权限。",
1434
+ "所选自定义块会与此仪表板共享并显示在计划报告中。查看者仍需拥有访问权限。",
1428
1435
  slotIdOptional: "插槽 ID(可选)",
1429
1436
  perViewerSlotHelp:
1430
1437
  "每位查看者各自安装扩展。计划报告可能显示空插槽。留空即可生成稳定 ID。",
@@ -1709,22 +1716,23 @@ const analyticsSliceTranslations: {
1709
1716
  chartTypePie: "Pastel",
1710
1717
  chartTypeMetric: "Métrico",
1711
1718
  chartTypeTable: "Mesa",
1712
- chartTypeExtension: "Extensión",
1719
+ chartTypeExtension: "Visualización personalizada",
1713
1720
  failedToSavePanel: "No se pudo guardar el panel",
1714
1721
  failedToFormatSql: "No se pudo formatear SQL",
1715
1722
  title: "Título",
1716
1723
  titlePlaceholder: "p.ej. Inscripciones semanales",
1717
1724
  chartType: "Tipo de gráfico",
1718
1725
  source: "Fuente",
1719
- extensionDisplay: "Visualización de extensión",
1720
- sharedExtension: "Extensión compartida",
1726
+ extensionDisplay: "Visualización del bloque personalizado",
1727
+ sharedExtension: "Bloque personalizado compartido",
1721
1728
  perViewerSlot: "Espacio por usuario",
1722
- extension: "Extensión",
1723
- loadingExtensions: "Cargando extensiones...",
1724
- selectExtension: "Selecciona una extensión",
1725
- noExtensions: "No hay extensiones visibles. Crea o comparte una primero.",
1729
+ extension: "Bloque personalizado",
1730
+ loadingExtensions: "Cargando bloques personalizados...",
1731
+ selectExtension: "Selecciona un bloque personalizado",
1732
+ noExtensions:
1733
+ "No hay bloques personalizados visibles. Pide al agente que cree uno.",
1726
1734
  sharedExtensionHelp:
1727
- "La extensión seleccionada se comparte con este panel y aparece en los informes programados. Los usuarios aún necesitan acceso a ella.",
1735
+ "El bloque personalizado seleccionado se comparte con este panel y aparece en los informes programados. Los usuarios aún necesitan acceso.",
1728
1736
  slotIdOptional: "ID del espacio (opcional)",
1729
1737
  perViewerSlotHelp:
1730
1738
  "Cada usuario instala su propia extensión. Los informes programados pueden mostrar un espacio vacío. Déjalo en blanco para generar un ID estable.",
@@ -2025,22 +2033,23 @@ const analyticsSliceTranslations: {
2025
2033
  chartTypePie: "Tarte",
2026
2034
  chartTypeMetric: "Métrique",
2027
2035
  chartTypeTable: "Tableau",
2028
- chartTypeExtension: "Extension",
2036
+ chartTypeExtension: "Visualisation personnalisée",
2029
2037
  failedToSavePanel: "Échec de l'enregistrement du panneau",
2030
2038
  failedToFormatSql: "Échec du formatage du SQL",
2031
2039
  title: "Titre",
2032
2040
  titlePlaceholder: "par ex. Inscriptions hebdomadaires",
2033
2041
  chartType: "Type de graphique",
2034
2042
  source: "Source de données",
2035
- extensionDisplay: "Affichage de l'extension",
2036
- sharedExtension: "Extension partagée",
2043
+ extensionDisplay: "Affichage du bloc personnalisé",
2044
+ sharedExtension: "Bloc personnalisé partagé",
2037
2045
  perViewerSlot: "Emplacement par utilisateur",
2038
- extension: "Extension",
2039
- loadingExtensions: "Chargement des extensions...",
2040
- selectExtension: "Sélectionner une extension",
2041
- noExtensions: "Aucune extension visible. Créez-en ou partagez-en une.",
2046
+ extension: "Bloc personnalisé",
2047
+ loadingExtensions: "Chargement des blocs personnalisés...",
2048
+ selectExtension: "Sélectionner un bloc personnalisé",
2049
+ noExtensions:
2050
+ "Aucun bloc personnalisé visible. Demandez à l’agent d’en créer un.",
2042
2051
  sharedExtensionHelp:
2043
- "L'extension sélectionnée est partagée avec ce tableau de bord et apparaît dans les rapports planifiés. Les utilisateurs doivent toujours y avoir accès.",
2052
+ "Le bloc personnalisé sélectionné est partagé avec ce tableau de bord et apparaît dans les rapports planifiés. Les utilisateurs doivent toujours y avoir accès.",
2044
2053
  slotIdOptional: "ID de l'emplacement (facultatif)",
2045
2054
  perViewerSlotHelp:
2046
2055
  "Chaque utilisateur installe sa propre extension. Les rapports planifiés peuvent afficher un emplacement vide. Laissez ce champ vide pour générer un ID stable.",
@@ -2339,23 +2348,23 @@ const analyticsSliceTranslations: {
2339
2348
  chartTypePie: "Torte",
2340
2349
  chartTypeMetric: "Metrisch",
2341
2350
  chartTypeTable: "Tisch",
2342
- chartTypeExtension: "Erweiterung",
2351
+ chartTypeExtension: "Benutzerdefinierte Visualisierung",
2343
2352
  failedToSavePanel: "Das Panel konnte nicht gespeichert werden",
2344
2353
  failedToFormatSql: "SQL konnte nicht formatiert werden",
2345
2354
  title: "Titel",
2346
2355
  titlePlaceholder: "z.B. Wöchentliche Anmeldungen",
2347
2356
  chartType: "Diagrammtyp",
2348
2357
  source: "Datenquelle",
2349
- extensionDisplay: "Erweiterungsanzeige",
2350
- sharedExtension: "Geteilte Erweiterung",
2358
+ extensionDisplay: "Anzeige des benutzerdefinierten Blocks",
2359
+ sharedExtension: "Geteilter benutzerdefinierter Block",
2351
2360
  perViewerSlot: "Slot pro Betrachter",
2352
- extension: "Erweiterung",
2353
- loadingExtensions: "Erweiterungen werden geladen...",
2354
- selectExtension: "Erweiterung auswählen",
2361
+ extension: "Benutzerdefinierter Block",
2362
+ loadingExtensions: "Benutzerdefinierte Blöcke werden geladen...",
2363
+ selectExtension: "Benutzerdefinierten Block auswählen",
2355
2364
  noExtensions:
2356
- "Keine sichtbaren Erweiterungen. Erstellen oder teilen Sie zuerst eine.",
2365
+ "Keine sichtbaren benutzerdefinierten Blöcke. Bitten Sie den Agenten, einen zu erstellen.",
2357
2366
  sharedExtensionHelp:
2358
- "Die ausgewählte Erweiterung wird mit diesem Dashboard geteilt und erscheint in geplanten Berichten. Betrachter benötigen weiterhin Zugriff darauf.",
2367
+ "Der ausgewählte benutzerdefinierte Block wird mit diesem Dashboard geteilt und erscheint in geplanten Berichten. Betrachter benötigen weiterhin Zugriff darauf.",
2359
2368
  slotIdOptional: "Slot-ID (optional)",
2360
2369
  perViewerSlotHelp:
2361
2370
  "Jeder Betrachter installiert eine eigene Erweiterung. Geplante Berichte können einen leeren Slot zeigen. Leer lassen, um eine stabile ID zu erzeugen.",
@@ -2649,23 +2658,23 @@ const analyticsSliceTranslations: {
2649
2658
  chartTypePie: "パイ",
2650
2659
  chartTypeMetric: "メトリック",
2651
2660
  chartTypeTable: "テーブル",
2652
- chartTypeExtension: "拡張機能",
2661
+ chartTypeExtension: "カスタム可視化",
2653
2662
  failedToSavePanel: "パネルの保存に失敗しました",
2654
2663
  failedToFormatSql: "SQLのフォーマットに失敗しました",
2655
2664
  title: "タイトル",
2656
2665
  titlePlaceholder: "例えば毎週のサインアップ",
2657
2666
  chartType: "グラフの種類",
2658
2667
  source: "ソース",
2659
- extensionDisplay: "拡張機能の表示",
2660
- sharedExtension: "共有拡張機能",
2668
+ extensionDisplay: "カスタムブロックの表示",
2669
+ sharedExtension: "共有カスタムブロック",
2661
2670
  perViewerSlot: "閲覧者ごとのスロット",
2662
- extension: "拡張機能",
2663
- loadingExtensions: "拡張機能を読み込んでいます...",
2664
- selectExtension: "拡張機能を選択",
2671
+ extension: "カスタムブロック",
2672
+ loadingExtensions: "カスタムブロックを読み込んでいます...",
2673
+ selectExtension: "カスタムブロックを選択",
2665
2674
  noExtensions:
2666
- "表示できる拡張機能がありません。先に作成または共有してください。",
2675
+ "表示できるカスタムブロックがありません。エージェントに作成を依頼してください。",
2667
2676
  sharedExtensionHelp:
2668
- "選択した拡張機能はこのダッシュボードと共有され、スケジュール済みレポートにも表示されます。閲覧者には拡張機能へのアクセス権が必要です。",
2677
+ "選択したカスタムブロックはこのダッシュボードと共有され、スケジュール済みレポートにも表示されます。閲覧者にはアクセス権が必要です。",
2669
2678
  slotIdOptional: "スロット ID(任意)",
2670
2679
  perViewerSlotHelp:
2671
2680
  "各閲覧者が自分の拡張機能をインストールします。スケジュール済みレポートでは空のスロットが表示される場合があります。空欄にすると安定した ID が生成されます。",
@@ -2953,23 +2962,23 @@ const analyticsSliceTranslations: {
2953
2962
  chartTypePie: "파이",
2954
2963
  chartTypeMetric: "미터법",
2955
2964
  chartTypeTable: "테이블",
2956
- chartTypeExtension: "확장 프로그램",
2965
+ chartTypeExtension: "사용자 지정 시각화",
2957
2966
  failedToSavePanel: "패널을 저장하지 못했습니다.",
2958
2967
  failedToFormatSql: "SQL 포맷 실패",
2959
2968
  title: "제목",
2960
2969
  titlePlaceholder: "예를 들어 주간 가입",
2961
2970
  chartType: "차트 종류",
2962
2971
  source: "소스",
2963
- extensionDisplay: "확장 프로그램 표시",
2964
- sharedExtension: "공유 확장 프로그램",
2972
+ extensionDisplay: "사용자 지정 블록 표시",
2973
+ sharedExtension: "공유 사용자 지정 블록",
2965
2974
  perViewerSlot: "사용자별 슬롯",
2966
- extension: "확장 프로그램",
2967
- loadingExtensions: "확장 프로그램을 불러오는 중...",
2968
- selectExtension: "확장 프로그램 선택",
2975
+ extension: "사용자 지정 블록",
2976
+ loadingExtensions: "사용자 지정 블록을 불러오는 중...",
2977
+ selectExtension: "사용자 지정 블록 선택",
2969
2978
  noExtensions:
2970
- "표시할 확장 프로그램이 없습니다. 먼저 만들거나 공유하세요.",
2979
+ "표시할 사용자 지정 블록이 없습니다. 에이전트에게 생성을 요청하세요.",
2971
2980
  sharedExtensionHelp:
2972
- "선택한 확장 프로그램은 이 대시보드와 공유되며 예약 보고서에 표시됩니다. 사용자는 해당 확장 프로그램에 대한 액세스 권한이 필요합니다.",
2981
+ "선택한 사용자 지정 블록은 이 대시보드와 공유되며 예약 보고서에 표시됩니다. 사용자는 해당 블록에 대한 액세스 권한이 필요합니다.",
2973
2982
  slotIdOptional: "슬롯 ID(선택 사항)",
2974
2983
  perViewerSlotHelp:
2975
2984
  "각 사용자가 자신의 확장 프로그램을 설치합니다. 예약 보고서에는 빈 슬롯이 표시될 수 있습니다. 비워 두면 안정적인 ID가 생성됩니다.",
@@ -3257,23 +3266,23 @@ const analyticsSliceTranslations: {
3257
3266
  chartTypePie: "Torta",
3258
3267
  chartTypeMetric: "Métrica",
3259
3268
  chartTypeTable: "Mesa",
3260
- chartTypeExtension: "Extensão",
3269
+ chartTypeExtension: "Visualização personalizada",
3261
3270
  failedToSavePanel: "Falha ao salvar painel",
3262
3271
  failedToFormatSql: "Falha ao formatar SQL",
3263
3272
  title: "Título",
3264
3273
  titlePlaceholder: "por exemplo Inscrições semanais",
3265
3274
  chartType: "Tipo de gráfico",
3266
3275
  source: "Fonte",
3267
- extensionDisplay: "Exibição da extensão",
3268
- sharedExtension: "Extensão compartilhada",
3276
+ extensionDisplay: "Exibição do bloco personalizado",
3277
+ sharedExtension: "Bloco personalizado compartilhado",
3269
3278
  perViewerSlot: "Slot por usuário",
3270
- extension: "Extensão",
3271
- loadingExtensions: "Carregando extensões...",
3272
- selectExtension: "Selecione uma extensão",
3279
+ extension: "Bloco personalizado",
3280
+ loadingExtensions: "Carregando blocos personalizados...",
3281
+ selectExtension: "Selecione um bloco personalizado",
3273
3282
  noExtensions:
3274
- "Nenhuma extensão visível. Crie ou compartilhe uma primeiro.",
3283
+ "Nenhum bloco personalizado visível. Peça ao agente para criar um.",
3275
3284
  sharedExtensionHelp:
3276
- "A extensão selecionada é compartilhada com este painel e aparece nos relatórios agendados. Os usuários ainda precisam de acesso à extensão.",
3285
+ "O bloco personalizado selecionado é compartilhado com este painel e aparece nos relatórios agendados. Os usuários ainda precisam de acesso.",
3277
3286
  slotIdOptional: "ID do slot (opcional)",
3278
3287
  perViewerSlotHelp:
3279
3288
  "Cada usuário instala sua própria extensão. Relatórios agendados podem mostrar um slot vazio. Deixe em branco para gerar um ID estável.",
@@ -3563,22 +3572,22 @@ const analyticsSliceTranslations: {
3563
3572
  chartTypePie: "पाई",
3564
3573
  chartTypeMetric: "मीट्रिक",
3565
3574
  chartTypeTable: "मेज़",
3566
- chartTypeExtension: "एक्सटेंशन",
3575
+ chartTypeExtension: "कस्टम विज़ुअलाइज़ेशन",
3567
3576
  failedToSavePanel: "पैनल सहेजने में विफल",
3568
3577
  failedToFormatSql: "SQL को फ़ॉर्मेट करने में विफल",
3569
3578
  title: "शीर्षक",
3570
3579
  titlePlaceholder: "जैसे साप्ताहिक साइनअप",
3571
3580
  chartType: "चार्ट प्रकार",
3572
3581
  source: "स्रोत",
3573
- extensionDisplay: "एक्सटेंशन प्रदर्शन",
3574
- sharedExtension: "साझा एक्सटेंशन",
3582
+ extensionDisplay: "कस्टम ब्लॉक प्रदर्शन",
3583
+ sharedExtension: "साझा कस्टम ब्लॉक",
3575
3584
  perViewerSlot: "प्रति-दर्शक स्लॉट",
3576
- extension: "एक्सटेंशन",
3577
- loadingExtensions: "एक्सटेंशन लोड हो रहे हैं...",
3578
- selectExtension: "एक एक्सटेंशन चुनें",
3579
- noExtensions: "कोई दृश्यमान एक्सटेंशन नहीं है। पहले एक बनाएं या साझा करें।",
3585
+ extension: "कस्टम ब्लॉक",
3586
+ loadingExtensions: "कस्टम ब्लॉक लोड हो रहे हैं...",
3587
+ selectExtension: "कस्टम ब्लॉक चुनें",
3588
+ noExtensions: "कोई कस्टम ब्लॉक दिखाई नहीं दे रहा है। एजेंट से एक बनाने को कहें।",
3580
3589
  sharedExtensionHelp:
3581
- "चुना गया एक्सटेंशन इस डैशबोर्ड के साथ साझा होता है और निर्धारित रिपोर्ट में दिखाई देता है। दर्शकों को फिर भी एक्सटेंशन की पहुंच चाहिए।",
3590
+ "चुना गया कस्टम ब्लॉक इस डैशबोर्ड के साथ साझा होता है और निर्धारित रिपोर्ट में दिखाई देता है। दर्शकों को फिर भी इसकी पहुंच चाहिए।",
3582
3591
  slotIdOptional: "स्लॉट ID (वैकल्पिक)",
3583
3592
  perViewerSlotHelp:
3584
3593
  "हर दर्शक अपना एक्सटेंशन इंस्टॉल करता है। निर्धारित रिपोर्ट में खाली स्लॉट दिख सकता है। स्थिर ID बनाने के लिए खाली छोड़ें।",
@@ -3862,22 +3871,22 @@ const analyticsSliceTranslations: {
3862
3871
  chartTypePie: "فطيرة",
3863
3872
  chartTypeMetric: "متري",
3864
3873
  chartTypeTable: "طاولة",
3865
- chartTypeExtension: "إضافة",
3874
+ chartTypeExtension: "عرض مرئي مخصص",
3866
3875
  failedToSavePanel: "فشل حفظ اللوحة",
3867
3876
  failedToFormatSql: "فشل تهيئة SQL",
3868
3877
  title: "عنوان",
3869
3878
  titlePlaceholder: "على سبيل المثال الاشتراكات الأسبوعية",
3870
3879
  chartType: "نوع الرسم البياني",
3871
3880
  source: "المصدر",
3872
- extensionDisplay: "عرض الإضافة",
3873
- sharedExtension: "إضافة مشتركة",
3881
+ extensionDisplay: "عرض الكتلة المخصصة",
3882
+ sharedExtension: "كتلة مخصصة مشتركة",
3874
3883
  perViewerSlot: "فتحة لكل مشاهد",
3875
- extension: "إضافة",
3876
- loadingExtensions: "جارٍ تحميل الإضافات...",
3877
- selectExtension: "اختر إضافة",
3878
- noExtensions: "لا توجد إضافات ظاهرة. أنشئ إضافة أو شاركها أولاً.",
3884
+ extension: "كتلة مخصصة",
3885
+ loadingExtensions: "جارٍ تحميل الكتل المخصصة...",
3886
+ selectExtension: "اختر كتلة مخصصة",
3887
+ noExtensions: "لا توجد كتل مخصصة ظاهرة. اطلب من الوكيل إنشاء واحدة.",
3879
3888
  sharedExtensionHelp:
3880
- "تتم مشاركة الإضافة المحددة مع لوحة المعلومات هذه وتظهر في التقارير المجدولة. لا يزال المشاهدون بحاجة إلى صلاحية الوصول إليها.",
3889
+ "تتم مشاركة الكتلة المخصصة المحددة مع لوحة المعلومات هذه وتظهر في التقارير المجدولة. لا يزال المشاهدون بحاجة إلى صلاحية الوصول إليها.",
3881
3890
  slotIdOptional: "معرّف الفتحة (اختياري)",
3882
3891
  perViewerSlotHelp:
3883
3892
  "يثبّت كل مشاهد إضافته الخاصة. قد تعرض التقارير المجدولة فتحة فارغة. اتركه فارغاً لإنشاء معرّف ثابت.",
@@ -6224,14 +6233,20 @@ const translatedAnalyticsDebtTranslations = {
6224
6233
  noSavedViews: "尚未保存视图。",
6225
6234
  panelOptions: "面板选项",
6226
6235
  chatWithPanel: "与面板聊天",
6236
+ customBlock: "自定义块",
6237
+ customBlockProvenance: "沙盒化仪表板块",
6238
+ customBlockAgentProvenance: "代理编写的仪表板补丁",
6239
+ promoteToAppCode: "提升为应用代码",
6240
+ promoteCustomBlockMessage:
6241
+ "将自定义块“{{title}}”提升为可复用的原生 Analytics 应用代码。",
6227
6242
  saveAsView: "另存为视图",
6228
6243
  saveCurrentView: "保存当前视图",
6229
6244
  saveFailed: "无法保存仪表板",
6230
6245
  saveView: "保存视图",
6231
6246
  savedViews: "已保存的视图",
6232
6247
  sectionOptions: "部分选项",
6233
- extensionMissingId: "此扩展面板未选择任何扩展。",
6234
- extensionUnavailable: "此扩展未与您共享,或已不存在。",
6248
+ extensionMissingId: "此自定义块未选择来源。",
6249
+ extensionUnavailable: "此自定义块未与您共享,或已不存在。",
6235
6250
  sharedWithOrg: "与组织共享",
6236
6251
  unhideFailed: "无法取消隐藏仪表板",
6237
6252
  untitledDashboard: "无标题仪表板",
@@ -6443,6 +6458,12 @@ const translatedAnalyticsDebtTranslations = {
6443
6458
  noSavedViews: "Aún no hay vistas guardadas.",
6444
6459
  panelOptions: "Opciones de paneles",
6445
6460
  chatWithPanel: "Chatear sobre el panel",
6461
+ customBlock: "Bloque personalizado",
6462
+ customBlockProvenance: "Bloque de panel en entorno aislado",
6463
+ customBlockAgentProvenance: "Parche de panel creado por el agente",
6464
+ promoteToAppCode: "Promover a código de la aplicación",
6465
+ promoteCustomBlockMessage:
6466
+ 'Promueve el bloque personalizado "{{title}}" a código nativo y reutilizable de Analytics.',
6446
6467
  saveAsView: "Guardar como vista",
6447
6468
  saveCurrentView: "Guardar vista actual",
6448
6469
  saveFailed: "No se pudo guardar el panel",
@@ -6450,9 +6471,9 @@ const translatedAnalyticsDebtTranslations = {
6450
6471
  savedViews: "Vistas guardadas",
6451
6472
  sectionOptions: "Opciones de sección",
6452
6473
  extensionMissingId:
6453
- "Este panel de extensión no tiene ninguna extensión seleccionada.",
6474
+ "Este bloque personalizado no tiene una fuente seleccionada.",
6454
6475
  extensionUnavailable:
6455
- "Esta extensión no está compartida contigo o ya no existe.",
6476
+ "Este bloque personalizado no está compartido contigo o ya no existe.",
6456
6477
  sharedWithOrg: "Compartido con la organización",
6457
6478
  unhideFailed: "No se pudo mostrar el panel",
6458
6479
  untitledDashboard: "Panel de control sin título",
@@ -6666,6 +6687,13 @@ const translatedAnalyticsDebtTranslations = {
6666
6687
  noSavedViews: "Aucune vue enregistrée pour l'instant.",
6667
6688
  panelOptions: "Options du panneau",
6668
6689
  chatWithPanel: "Discuter du panneau",
6690
+ customBlock: "Bloc personnalisé",
6691
+ customBlockProvenance: "Bloc de tableau de bord isolé",
6692
+ customBlockAgentProvenance:
6693
+ "Correctif de tableau de bord créé par l’agent",
6694
+ promoteToAppCode: "Promouvoir en code d’application",
6695
+ promoteCustomBlockMessage:
6696
+ "Promouvoir le bloc personnalisé « {{title}} » en code Analytics natif et réutilisable.",
6669
6697
  saveAsView: "Enregistrer sous vue",
6670
6698
  saveCurrentView: "Enregistrer la vue actuelle",
6671
6699
  saveFailed: "Impossible d'enregistrer le tableau de bord",
@@ -6673,9 +6701,9 @@ const translatedAnalyticsDebtTranslations = {
6673
6701
  savedViews: "Vues enregistrées",
6674
6702
  sectionOptions: "Options de sections",
6675
6703
  extensionMissingId:
6676
- "Ce panneau d'extension n'a aucune extension sélectionnée.",
6704
+ "Ce bloc personnalisé na aucune source sélectionnée.",
6677
6705
  extensionUnavailable:
6678
- "Cette extension n'est pas partagée avec vous ou n'existe plus.",
6706
+ "Ce bloc personnalisé nest pas partagé avec vous ou nexiste plus.",
6679
6707
  sharedWithOrg: "Partagé avec l'organisation",
6680
6708
  unhideFailed: "Impossible d'afficher le tableau de bord",
6681
6709
  untitledDashboard: "Tableau de bord sans titre",
@@ -6890,6 +6918,12 @@ const translatedAnalyticsDebtTranslations = {
6890
6918
  noSavedViews: "Noch keine gespeicherten Ansichten.",
6891
6919
  panelOptions: "Panel-Optionen",
6892
6920
  chatWithPanel: "Mit Panel chatten",
6921
+ customBlock: "Benutzerdefinierter Block",
6922
+ customBlockProvenance: "Sandbox-Dashboard-Block",
6923
+ customBlockAgentProvenance: "Vom Agenten erstellter Dashboard-Patch",
6924
+ promoteToAppCode: "In App-Code überführen",
6925
+ promoteCustomBlockMessage:
6926
+ "Den benutzerdefinierten Block „{{title}}“ in wiederverwendbaren nativen Analytics-App-Code überführen.",
6893
6927
  saveAsView: "Als Ansicht speichern",
6894
6928
  saveCurrentView: "Aktuelle Ansicht speichern",
6895
6929
  saveFailed: "Das Dashboard konnte nicht gespeichert werden",
@@ -6897,9 +6931,9 @@ const translatedAnalyticsDebtTranslations = {
6897
6931
  savedViews: "Gespeicherte Ansichten",
6898
6932
  sectionOptions: "Abschnittsoptionen",
6899
6933
  extensionMissingId:
6900
- "Für dieses Erweiterungs-Panel ist keine Erweiterung ausgewählt.",
6934
+ "Für diesen benutzerdefinierten Block ist keine Quelle ausgewählt.",
6901
6935
  extensionUnavailable:
6902
- "Diese Erweiterung ist nicht für Sie freigegeben oder existiert nicht mehr.",
6936
+ "Dieser benutzerdefinierte Block ist nicht für Sie freigegeben oder existiert nicht mehr.",
6903
6937
  sharedWithOrg: "Mit Org geteilt",
6904
6938
  unhideFailed: "Das Dashboard konnte nicht eingeblendet werden",
6905
6939
  untitledDashboard: "Unbenanntes Dashboard",
@@ -7109,6 +7143,12 @@ const translatedAnalyticsDebtTranslations = {
7109
7143
  noSavedViews: "保存されたビューはまだありません。",
7110
7144
  panelOptions: "パネルオプション",
7111
7145
  chatWithPanel: "パネルについてチャット",
7146
+ customBlock: "カスタムブロック",
7147
+ customBlockProvenance: "サンドボックス化されたダッシュボードブロック",
7148
+ customBlockAgentProvenance: "エージェントが作成したダッシュボードパッチ",
7149
+ promoteToAppCode: "アプリコードに昇格",
7150
+ promoteCustomBlockMessage:
7151
+ "カスタムブロック「{{title}}」を再利用可能なネイティブ Analytics アプリコードに昇格します。",
7112
7152
  saveAsView: "ビューとして保存",
7113
7153
  saveCurrentView: "現在のビューを保存する",
7114
7154
  saveFailed: "ダッシュボードを保存できませんでした",
@@ -7116,9 +7156,9 @@ const translatedAnalyticsDebtTranslations = {
7116
7156
  savedViews: "保存されたビュー",
7117
7157
  sectionOptions: "セクションのオプション",
7118
7158
  extensionMissingId:
7119
- "この拡張機能パネルには拡張機能が選択されていません。",
7159
+ "このカスタムブロックにはソースが選択されていません。",
7120
7160
  extensionUnavailable:
7121
- "この拡張機能はあなたと共有されていないか、存在しません。",
7161
+ "このカスタムブロックはあなたと共有されていないか、存在しません。",
7122
7162
  sharedWithOrg: "組織と共有",
7123
7163
  unhideFailed: "ダッシュボードを再表示できませんでした",
7124
7164
  untitledDashboard: "無題のダッシュボード",
@@ -7327,16 +7367,21 @@ const translatedAnalyticsDebtTranslations = {
7327
7367
  noSavedViews: "아직 저장된 보기가 없습니다.",
7328
7368
  panelOptions: "패널 옵션",
7329
7369
  chatWithPanel: "패널에 대해 채팅",
7370
+ customBlock: "사용자 지정 블록",
7371
+ customBlockProvenance: "샌드박스 대시보드 블록",
7372
+ customBlockAgentProvenance: "에이전트가 작성한 대시보드 패치",
7373
+ promoteToAppCode: "앱 코드로 승격",
7374
+ promoteCustomBlockMessage:
7375
+ '사용자 지정 블록 "{{title}}"을 재사용 가능한 네이티브 Analytics 앱 코드로 승격합니다.',
7330
7376
  saveAsView: "보기로 저장",
7331
7377
  saveCurrentView: "현재 보기 저장",
7332
7378
  saveFailed: "대시보드를 저장할 수 없습니다.",
7333
7379
  saveView: "보기 저장",
7334
7380
  savedViews: "저장된 보기",
7335
7381
  sectionOptions: "섹션 옵션",
7336
- extensionMissingId:
7337
- "이 확장 프로그램 패널에 선택된 확장 프로그램이 없습니다.",
7382
+ extensionMissingId: "이 사용자 지정 블록에 선택된 소스가 없습니다.",
7338
7383
  extensionUnavailable:
7339
- "이 확장 프로그램이 공유되지 않았거나 더 이상 존재하지 않습니다.",
7384
+ "이 사용자 지정 블록이 공유되지 않았거나 더 이상 존재하지 않습니다.",
7340
7385
  sharedWithOrg: "조직과 공유됨",
7341
7386
  unhideFailed: "대시보드를 숨기기 해제할 수 없습니다.",
7342
7387
  untitledDashboard: "제목 없는 대시보드",
@@ -7549,6 +7594,12 @@ const translatedAnalyticsDebtTranslations = {
7549
7594
  noSavedViews: "Nenhuma visualização salva ainda.",
7550
7595
  panelOptions: "Opções do painel",
7551
7596
  chatWithPanel: "Conversar sobre o painel",
7597
+ customBlock: "Bloco personalizado",
7598
+ customBlockProvenance: "Bloco de painel em sandbox",
7599
+ customBlockAgentProvenance: "Patch de painel criado pelo agente",
7600
+ promoteToAppCode: "Promover para código do app",
7601
+ promoteCustomBlockMessage:
7602
+ 'Promova o bloco personalizado "{{title}}" para código nativo e reutilizável do Analytics.',
7552
7603
  saveAsView: "Salvar como visualização",
7553
7604
  saveCurrentView: "Salvar visualização atual",
7554
7605
  saveFailed: "Não foi possível salvar o painel",
@@ -7556,9 +7607,9 @@ const translatedAnalyticsDebtTranslations = {
7556
7607
  savedViews: "Visualizações salvas",
7557
7608
  sectionOptions: "Opções de seção",
7558
7609
  extensionMissingId:
7559
- "Este painel de extensão não tem nenhuma extensão selecionada.",
7610
+ "Este bloco personalizado não tem uma fonte selecionada.",
7560
7611
  extensionUnavailable:
7561
- "Esta extensão não foi compartilhada com você ou não existe mais.",
7612
+ "Este bloco personalizado não foi compartilhado com você ou não existe mais.",
7562
7613
  sharedWithOrg: "Compartilhado com a organização",
7563
7614
  unhideFailed: "Não foi possível exibir o painel",
7564
7615
  untitledDashboard: "Painel sem título",
@@ -7767,15 +7818,21 @@ const translatedAnalyticsDebtTranslations = {
7767
7818
  noSavedViews: "अभी तक कोई सहेजा गया दृश्य नहीं.",
7768
7819
  panelOptions: "पैनल विकल्प",
7769
7820
  chatWithPanel: "पैनल के बारे में चैट करें",
7821
+ customBlock: "कस्टम ब्लॉक",
7822
+ customBlockProvenance: "सैंडबॉक्स डैशबोर्ड ब्लॉक",
7823
+ customBlockAgentProvenance: "एजेंट द्वारा बनाया गया डैशबोर्ड पैच",
7824
+ promoteToAppCode: "ऐप कोड में प्रमोट करें",
7825
+ promoteCustomBlockMessage:
7826
+ 'कस्टम ब्लॉक "{{title}}" को पुन: उपयोग योग्य नेटिव Analytics ऐप कोड में प्रमोट करें।',
7770
7827
  saveAsView: "दृश्य के रूप में सहेजें",
7771
7828
  saveCurrentView: "वर्तमान दृश्य सहेजें",
7772
7829
  saveFailed: "डैशबोर्ड सहेजा नहीं जा सका",
7773
7830
  saveView: "दृश्य सहेजें",
7774
7831
  savedViews: "सहेजे गए दृश्य",
7775
7832
  sectionOptions: "अनुभाग विकल्प",
7776
- extensionMissingId: "इस एक्सटेंशन पैनल में कोई एक्सटेंशन चयनित नहीं है।",
7833
+ extensionMissingId: "इस कस्टम ब्लॉक में कोई स्रोत चयनित नहीं है।",
7777
7834
  extensionUnavailable:
7778
- "यह एक्सटेंशन आपके साथ साझा नहीं किया गया है, या अब मौजूद नहीं है।",
7835
+ "यह कस्टम ब्लॉक आपके साथ साझा नहीं किया गया है, या अब मौजूद नहीं है।",
7779
7836
  sharedWithOrg: "संगठन के साथ साझा किया गया",
7780
7837
  unhideFailed: "डैशबोर्ड को उजागर नहीं किया जा सका",
7781
7838
  untitledDashboard: "शीर्षक रहित डैशबोर्ड",
@@ -7983,14 +8040,21 @@ const translatedAnalyticsDebtTranslations = {
7983
8040
  noSavedViews: "لا توجد طرق عرض محفوظة حتى الآن.",
7984
8041
  panelOptions: "خيارات اللوحة",
7985
8042
  chatWithPanel: "الدردشة حول اللوحة",
8043
+ customBlock: "كتلة مخصصة",
8044
+ customBlockProvenance: "كتلة لوحة معلومات معزولة",
8045
+ customBlockAgentProvenance: "تصحيح لوحة معلومات أنشأه الوكيل",
8046
+ promoteToAppCode: "ترقية إلى كود التطبيق",
8047
+ promoteCustomBlockMessage:
8048
+ 'رقّ الكتلة المخصصة "{{title}}" إلى كود Analytics أصلي قابل لإعادة الاستخدام.',
7986
8049
  saveAsView: "حفظ كعرض",
7987
8050
  saveCurrentView: "حفظ العرض الحالي",
7988
8051
  saveFailed: "تعذر حفظ لوحة البيانات",
7989
8052
  saveView: "حفظ العرض",
7990
8053
  savedViews: "المشاهدات المحفوظة",
7991
8054
  sectionOptions: "خيارات القسم",
7992
- extensionMissingId: "لم يتم تحديد أي إضافة في لوحة الإضافة هذه.",
7993
- extensionUnavailable: "هذه الإضافة غير مشاركة معك، أو لم تعد موجودة.",
8055
+ extensionMissingId: "لم يتم تحديد مصدر لهذه الكتلة المخصصة.",
8056
+ extensionUnavailable:
8057
+ "هذه الكتلة المخصصة غير مشتركة معك، أو لم تعد موجودة.",
7994
8058
  sharedWithOrg: "تمت المشاركة مع منظمة",
7995
8059
  unhideFailed: "تعذر إظهار لوحة البيانات",
7996
8060
  untitledDashboard: "لوحة تحكم بلا عنوان",
@@ -0,0 +1,62 @@
1
+ import type { AgentChatMessage } from "@agent-native/core/client/agent-chat";
2
+
3
+ export interface CustomBlockPromotionContext {
4
+ dashboardId: string;
5
+ dashboardName?: string;
6
+ panelId: string;
7
+ panelTitle: string;
8
+ extensionId: string;
9
+ nativeGapReason?: unknown;
10
+ }
11
+
12
+ const NATIVE_GAP_REASONS = new Set([
13
+ "custom-visualization",
14
+ "custom-interaction",
15
+ "custom-layout",
16
+ "other",
17
+ ]);
18
+
19
+ function normalizeNativeGapReason(value: unknown): string | undefined {
20
+ return typeof value === "string" && NATIVE_GAP_REASONS.has(value)
21
+ ? value
22
+ : undefined;
23
+ }
24
+
25
+ export function buildCustomBlockPromotionRequest(
26
+ context: CustomBlockPromotionContext,
27
+ message: string,
28
+ ): AgentChatMessage {
29
+ const promotion = {
30
+ version: 1,
31
+ operation: "promote-to-app-code",
32
+ source: {
33
+ kind: "analytics-custom-block",
34
+ dashboardId: context.dashboardId,
35
+ dashboardName: context.dashboardName,
36
+ panelId: context.panelId,
37
+ panelTitle: context.panelTitle,
38
+ extensionId: context.extensionId,
39
+ nativeGapReason: normalizeNativeGapReason(context.nativeGapReason),
40
+ },
41
+ target: {
42
+ kind: "native-analytics-feature",
43
+ reusable: true,
44
+ },
45
+ preserveSource: true,
46
+ };
47
+
48
+ return {
49
+ message,
50
+ context:
51
+ "<analytics-custom-block-promotion>\n" +
52
+ `${JSON.stringify(promotion, null, 2)}\n` +
53
+ "The user explicitly chose Promote to app code. Call `connect-builder` with this request and artifact context. Preserve the existing custom block until the native implementation is reviewed and deployed; do not delete or replace it automatically.\n" +
54
+ "</analytics-custom-block-promotion>",
55
+ submit: true,
56
+ newTab: true,
57
+ openSidebar: true,
58
+ chatTarget: "local",
59
+ type: "content",
60
+ preset: "analytics-custom-block-promotion",
61
+ };
62
+ }