@agent-native/core 0.107.2 → 0.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +24 -0
  3. package/corpus/core/docs/content/actions.mdx +48 -0
  4. package/corpus/core/docs/content/locales/ar-SA/actions.mdx +38 -0
  5. package/corpus/core/docs/content/locales/de-DE/actions.mdx +38 -0
  6. package/corpus/core/docs/content/locales/es-ES/actions.mdx +38 -0
  7. package/corpus/core/docs/content/locales/fr-FR/actions.mdx +38 -0
  8. package/corpus/core/docs/content/locales/hi-IN/actions.mdx +38 -0
  9. package/corpus/core/docs/content/locales/ja-JP/actions.mdx +38 -0
  10. package/corpus/core/docs/content/locales/ko-KR/actions.mdx +38 -0
  11. package/corpus/core/docs/content/locales/pt-BR/actions.mdx +38 -0
  12. package/corpus/core/docs/content/locales/zh-CN/actions.mdx +38 -0
  13. package/corpus/core/docs/content/locales/zh-TW/actions.mdx +38 -0
  14. package/corpus/core/package.json +5 -1
  15. package/corpus/core/src/a2a/client.ts +140 -17
  16. package/corpus/core/src/a2a/handlers.ts +60 -0
  17. package/corpus/core/src/a2a/index.ts +6 -1
  18. package/corpus/core/src/a2a/invoke.ts +68 -1
  19. package/corpus/core/src/a2a/server.ts +13 -1
  20. package/corpus/core/src/a2a/types.ts +16 -0
  21. package/corpus/core/src/a2a-claims.ts +52 -0
  22. package/corpus/core/src/action.ts +7 -2
  23. package/corpus/core/src/agent/production-agent.ts +10 -4
  24. package/corpus/core/src/audit/record.ts +6 -0
  25. package/corpus/core/src/client/AssistantChat.tsx +648 -603
  26. package/corpus/core/src/client/MultiTabAssistantChat.tsx +31 -4
  27. package/corpus/core/src/client/agent-chat-adapter.ts +23 -37
  28. package/corpus/core/src/client/agent-sidebar-state.ts +4 -0
  29. package/corpus/core/src/client/analytics.ts +84 -0
  30. package/corpus/core/src/client/chat/message-components.tsx +94 -22
  31. package/corpus/core/src/client/chat/tool-call-display.tsx +170 -47
  32. package/corpus/core/src/client/chat/use-agent-chat-lifecycle-tracking.ts +74 -0
  33. package/corpus/core/src/client/chat-thread-url.ts +11 -0
  34. package/corpus/core/src/client/error-capture.ts +12 -0
  35. package/corpus/core/src/client/extensions/ExtensionSlot.tsx +37 -1
  36. package/corpus/core/src/client/feature-flags/FeatureFlagsPanel.tsx +519 -0
  37. package/corpus/core/src/client/feature-flags/helpers.ts +77 -0
  38. package/corpus/core/src/client/feature-flags/index.ts +13 -0
  39. package/corpus/core/src/client/feature-flags/types.ts +29 -0
  40. package/corpus/core/src/client/feature-flags/use-feature-flag.ts +26 -0
  41. package/corpus/core/src/client/index.ts +13 -0
  42. package/corpus/core/src/client/route-chunk-recovery.ts +20 -8
  43. package/corpus/core/src/client/session-replay.ts +31 -0
  44. package/corpus/core/src/extensions/actions.ts +2 -14
  45. package/corpus/core/src/extensions/routes.ts +1 -1
  46. package/corpus/core/src/extensions/store.ts +1 -1
  47. package/corpus/core/src/feature-flags/a2a-action-route.ts +56 -0
  48. package/corpus/core/src/feature-flags/actions/get-feature-flags.ts +24 -0
  49. package/corpus/core/src/feature-flags/actions/list-feature-flags.ts +69 -0
  50. package/corpus/core/src/feature-flags/actions/set-feature-flag.ts +89 -0
  51. package/corpus/core/src/feature-flags/index.ts +21 -0
  52. package/corpus/core/src/feature-flags/permissions.ts +53 -0
  53. package/corpus/core/src/feature-flags/plugin.ts +44 -0
  54. package/corpus/core/src/feature-flags/registry.ts +96 -0
  55. package/corpus/core/src/feature-flags/store.ts +176 -0
  56. package/corpus/core/src/index.ts +15 -0
  57. package/corpus/core/src/localization/default-messages.ts +50 -0
  58. package/corpus/core/src/mcp/build-server.ts +2 -2
  59. package/corpus/core/src/progress/actions.ts +4 -2
  60. package/corpus/core/src/provider-api/index.ts +205 -105
  61. package/corpus/core/src/scripts/call-agent.ts +137 -17
  62. package/corpus/core/src/server/action-discovery.ts +12 -0
  63. package/corpus/core/src/server/action-routes.ts +47 -5
  64. package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +40 -0
  65. package/corpus/core/src/server/agent-chat-plugin.ts +31 -0
  66. package/corpus/core/src/server/index.ts +1 -0
  67. package/corpus/core/src/settings/org-settings.ts +13 -0
  68. package/corpus/core/src/settings/store.ts +57 -0
  69. package/corpus/core/src/styles/agent-conversation.css +7 -0
  70. package/corpus/core/src/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  71. package/corpus/core/src/templates/default/AGENTS.md +1 -0
  72. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +20 -0
  73. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +20 -0
  74. package/corpus/core/src/templates/default/app/i18n/en-US.ts +20 -0
  75. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +20 -0
  76. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +21 -0
  77. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +19 -0
  78. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +20 -0
  79. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +19 -0
  80. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +20 -0
  81. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +19 -0
  82. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +19 -0
  83. package/corpus/core/src/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  84. package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +28 -0
  85. package/corpus/core/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  86. package/corpus/core/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  87. package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  88. package/corpus/core/src/templates/workspace-core/AGENTS.md +1 -1
  89. package/corpus/core/src/templates/workspace-root/AGENTS.md +1 -1
  90. package/corpus/core/src/vite/action-types-plugin.ts +12 -0
  91. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +29 -10
  92. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +169 -0
  93. package/corpus/templates/analytics/.agents/skills/gong/SKILL.md +54 -23
  94. package/corpus/templates/analytics/.builder/skills/apollo/SKILL.md +19 -41
  95. package/corpus/templates/analytics/.builder/skills/commonroom/SKILL.md +20 -35
  96. package/corpus/templates/analytics/.builder/skills/github/SKILL.md +23 -67
  97. package/corpus/templates/analytics/.builder/skills/pylon/SKILL.md +25 -43
  98. package/corpus/templates/analytics/AGENTS.md +37 -16
  99. package/corpus/templates/analytics/actions/account-deep-dive.ts +1 -0
  100. package/corpus/templates/analytics/actions/configure-gong-native-insights.ts +29 -0
  101. package/corpus/templates/analytics/actions/content-calendar-schema.ts +8 -4
  102. package/corpus/templates/analytics/actions/content-calendar.ts +12 -4
  103. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +2 -1
  104. package/corpus/templates/analytics/actions/gong-calls.ts +113 -22
  105. package/corpus/templates/analytics/actions/gong-native-insights.ts +166 -0
  106. package/corpus/templates/analytics/actions/hubspot-deals.ts +190 -46
  107. package/corpus/templates/analytics/actions/list-workspace-feature-flags.ts +15 -0
  108. package/corpus/templates/analytics/actions/navigate.ts +2 -2
  109. package/corpus/templates/analytics/actions/pylon-issues.ts +123 -0
  110. package/corpus/templates/analytics/actions/set-workspace-feature-flag.ts +45 -0
  111. package/corpus/templates/analytics/actions/slack-messages.ts +179 -27
  112. package/corpus/templates/analytics/actions/view-screen.ts +13 -0
  113. package/corpus/templates/analytics/app/components/agents/FeatureFlagsFleetPanel.tsx +243 -0
  114. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +48 -152
  115. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +11 -3
  116. package/corpus/templates/analytics/app/components/ui/chart.tsx +1 -1
  117. package/corpus/templates/analytics/app/hooks/use-chart-tooltip-flip.ts +21 -6
  118. package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +3 -1
  119. package/corpus/templates/analytics/app/i18n/zh-TW.ts +30 -0
  120. package/corpus/templates/analytics/app/i18n-data.ts +385 -0
  121. package/corpus/templates/analytics/app/pages/Agents.tsx +22 -2
  122. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +181 -30
  123. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +6 -0
  124. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +4 -3
  125. package/corpus/templates/analytics/changelog/2026-07-17-dashboard-editors-can-add-shared-extensions-or-opt-into-per-.md +6 -0
  126. package/corpus/templates/analytics/changelog/2026-07-17-dashboard-extensions-show-a-loading-skeleton.md +6 -0
  127. package/corpus/templates/analytics/changelog/2026-07-17-errors-now-group-repeat-failures-consistently-and-keep-priva.md +6 -0
  128. package/corpus/templates/analytics/changelog/2026-07-17-gong-transcript-reviews-now-batch-bounded-call-windows-for-f.md +6 -0
  129. package/corpus/templates/analytics/changelog/2026-07-17-hubspot-deal-filters-now-run-in-hubspot-before-paging-result.md +6 -0
  130. package/corpus/templates/analytics/changelog/2026-07-17-manage-feature-flag-rollouts-across-your-organization-s-apps.md +6 -0
  131. package/corpus/templates/analytics/changelog/2026-07-17-notion-content-calendars-now-discover-the-matching-database-.md +6 -0
  132. package/corpus/templates/analytics/changelog/2026-07-17-pylon-dashboard-reads-now-use-the-paginated-issue-search-api.md +6 -0
  133. package/corpus/templates/analytics/changelog/2026-07-17-slack-reads-no-longer-join-channels-and-report-pagination-coverage.md +6 -0
  134. package/corpus/templates/analytics/server/handlers/notion.ts +14 -3
  135. package/corpus/templates/analytics/server/handlers/slack.ts +182 -29
  136. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +2 -6
  137. package/corpus/templates/analytics/server/lib/analytics-connector-catalog.ts +6 -2
  138. package/corpus/templates/analytics/server/lib/db-admin-connections.ts +13 -5
  139. package/corpus/templates/analytics/server/lib/error-capture.ts +75 -8
  140. package/corpus/templates/analytics/server/lib/gong-native-policy.ts +72 -0
  141. package/corpus/templates/analytics/server/lib/gong.ts +54 -66
  142. package/corpus/templates/analytics/server/lib/hubspot.ts +40 -3
  143. package/corpus/templates/analytics/server/lib/notion.ts +83 -8
  144. package/corpus/templates/analytics/server/lib/real-data-actions.ts +4 -0
  145. package/corpus/templates/analytics/server/lib/slack.ts +242 -90
  146. package/corpus/templates/analytics/server/lib/workspace-feature-flags.ts +347 -0
  147. package/corpus/templates/analytics/server/plugins/agent-chat.ts +3 -3
  148. package/corpus/templates/analytics/server/routes/api/pylon/accounts.get.ts +42 -1
  149. package/corpus/templates/analytics/server/routes/api/pylon/issues.get.ts +71 -1
  150. package/corpus/templates/analytics/server/routes/api/test-connection.post.ts +44 -4
  151. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +169 -0
  152. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +169 -0
  153. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +169 -0
  154. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  155. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +169 -0
  156. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +19 -1
  157. package/corpus/templates/clips/app/components/library/create-folder-dialog.tsx +123 -0
  158. package/corpus/templates/clips/app/components/library/library-grid.tsx +42 -4
  159. package/corpus/templates/clips/app/components/library/recording-card.tsx +30 -0
  160. package/corpus/templates/clips/app/entry.client.tsx +6 -1
  161. package/corpus/templates/clips/app/i18n/ar-SA.ts +12 -1
  162. package/corpus/templates/clips/app/i18n/de-DE.ts +12 -1
  163. package/corpus/templates/clips/app/i18n/en-US.ts +12 -1
  164. package/corpus/templates/clips/app/i18n/es-ES.ts +11 -1
  165. package/corpus/templates/clips/app/i18n/fr-FR.ts +11 -1
  166. package/corpus/templates/clips/app/i18n/hi-IN.ts +10 -1
  167. package/corpus/templates/clips/app/i18n/ja-JP.ts +12 -1
  168. package/corpus/templates/clips/app/i18n/ko-KR.ts +11 -1
  169. package/corpus/templates/clips/app/i18n/pt-BR.ts +11 -1
  170. package/corpus/templates/clips/app/i18n/zh-CN.ts +11 -1
  171. package/corpus/templates/clips/app/i18n/zh-TW.ts +11 -1
  172. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +72 -1
  173. package/corpus/templates/clips/changelog/2026-07-17-choose-which-workspace-receives-new-clips-recordings-and-des.md +6 -0
  174. package/corpus/templates/clips/changelog/2026-07-17-create-folders-directly-from-the-move-menu.md +6 -0
  175. package/corpus/templates/clips/changelog/2026-07-17-failed-desktop-uploads-now-offer-a-direct-way-to-reopen-clip.md +6 -0
  176. package/corpus/templates/clips/desktop/src/app.tsx +1 -1
  177. package/corpus/templates/clips/server/plugins/feature-flags.ts +11 -0
  178. package/corpus/templates/clips/shared/feature-flags.ts +30 -37
  179. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +169 -0
  180. package/corpus/templates/content/app/entry.client.tsx +6 -1
  181. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +169 -0
  182. package/corpus/templates/design/AGENTS.md +5 -3
  183. package/corpus/templates/design/actions/add-fusion-screens.ts +4 -6
  184. package/corpus/templates/design/actions/apply-fusion-edits.ts +4 -6
  185. package/corpus/templates/design/actions/create-fusion-app.ts +5 -4
  186. package/corpus/templates/design/actions/deploy-fusion-app.ts +4 -3
  187. package/corpus/templates/design/actions/get-fusion-deploy-status.ts +4 -6
  188. package/corpus/templates/design/actions/list-fusion-edits.ts +4 -3
  189. package/corpus/templates/design/actions/push-fusion-app.ts +4 -6
  190. package/corpus/templates/design/actions/queue-fusion-edit.ts +4 -3
  191. package/corpus/templates/design/actions/send-fusion-message.ts +4 -6
  192. package/corpus/templates/design/actions/sync-fusion-app.ts +4 -3
  193. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +1 -1
  194. package/corpus/templates/design/app/pages/Index.tsx +8 -6
  195. package/corpus/templates/design/server/plugins/feature-flags.ts +5 -0
  196. package/corpus/templates/design/shared/full-app.ts +10 -7
  197. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +169 -0
  198. package/corpus/templates/dispatch/AGENTS.md +5 -0
  199. package/corpus/templates/dispatch/changelog/2026-07-17-apps-page-links-to-other-available-apps.md +6 -0
  200. package/corpus/templates/dispatch/changelog/2026-07-17-curated-template-remixes.md +6 -0
  201. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +169 -0
  202. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +169 -0
  203. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +169 -0
  204. package/corpus/templates/mail/app/entry.client.tsx +6 -1
  205. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +169 -0
  206. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +169 -0
  207. package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +11 -7
  208. package/corpus/templates/slides/.env.example +0 -1
  209. package/corpus/templates/slides/AGENTS.md +4 -0
  210. package/corpus/templates/slides/DEVELOPING.md +2 -2
  211. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +1 -1
  212. package/corpus/templates/slides/actions/logo-config.ts +6 -7
  213. package/corpus/templates/slides/actions/search-images.ts +11 -39
  214. package/corpus/templates/slides/actions/search-logos.ts +5 -52
  215. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +1 -1
  216. package/corpus/templates/slides/app/components/editor/LogoSearchPanel.tsx +16 -26
  217. package/corpus/templates/slides/app/entry.client.tsx +6 -1
  218. package/corpus/templates/slides/server/lib/media-search-providers.ts +216 -0
  219. package/corpus/templates/slides/server/register-secrets.ts +30 -0
  220. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +169 -0
  221. package/dist/a2a/client.d.ts +38 -1
  222. package/dist/a2a/client.d.ts.map +1 -1
  223. package/dist/a2a/client.js +81 -12
  224. package/dist/a2a/client.js.map +1 -1
  225. package/dist/a2a/handlers.d.ts.map +1 -1
  226. package/dist/a2a/handlers.js +47 -0
  227. package/dist/a2a/handlers.js.map +1 -1
  228. package/dist/a2a/index.d.ts +4 -4
  229. package/dist/a2a/index.d.ts.map +1 -1
  230. package/dist/a2a/index.js +2 -2
  231. package/dist/a2a/index.js.map +1 -1
  232. package/dist/a2a/invoke.d.ts +26 -2
  233. package/dist/a2a/invoke.d.ts.map +1 -1
  234. package/dist/a2a/invoke.js +30 -1
  235. package/dist/a2a/invoke.js.map +1 -1
  236. package/dist/a2a/server.d.ts.map +1 -1
  237. package/dist/a2a/server.js +14 -1
  238. package/dist/a2a/server.js.map +1 -1
  239. package/dist/a2a/types.d.ts +12 -0
  240. package/dist/a2a/types.d.ts.map +1 -1
  241. package/dist/a2a/types.js.map +1 -1
  242. package/dist/a2a-claims.d.ts +10 -0
  243. package/dist/a2a-claims.d.ts.map +1 -0
  244. package/dist/a2a-claims.js +41 -0
  245. package/dist/a2a-claims.js.map +1 -0
  246. package/dist/action.d.ts +7 -2
  247. package/dist/action.d.ts.map +1 -1
  248. package/dist/action.js.map +1 -1
  249. package/dist/agent/production-agent.d.ts +5 -0
  250. package/dist/agent/production-agent.d.ts.map +1 -1
  251. package/dist/agent/production-agent.js +5 -3
  252. package/dist/agent/production-agent.js.map +1 -1
  253. package/dist/audit/record.d.ts +3 -0
  254. package/dist/audit/record.d.ts.map +1 -1
  255. package/dist/audit/record.js +3 -0
  256. package/dist/audit/record.js.map +1 -1
  257. package/dist/client/AssistantChat.d.ts +14 -1
  258. package/dist/client/AssistantChat.d.ts.map +1 -1
  259. package/dist/client/AssistantChat.js +158 -136
  260. package/dist/client/AssistantChat.js.map +1 -1
  261. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  262. package/dist/client/MultiTabAssistantChat.js +27 -4
  263. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  264. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  265. package/dist/client/agent-chat-adapter.js +21 -39
  266. package/dist/client/agent-chat-adapter.js.map +1 -1
  267. package/dist/client/agent-sidebar-state.d.ts +1 -0
  268. package/dist/client/agent-sidebar-state.d.ts.map +1 -1
  269. package/dist/client/agent-sidebar-state.js +4 -0
  270. package/dist/client/agent-sidebar-state.js.map +1 -1
  271. package/dist/client/analytics.d.ts +14 -0
  272. package/dist/client/analytics.d.ts.map +1 -1
  273. package/dist/client/analytics.js +67 -0
  274. package/dist/client/analytics.js.map +1 -1
  275. package/dist/client/chat/message-components.d.ts +8 -0
  276. package/dist/client/chat/message-components.d.ts.map +1 -1
  277. package/dist/client/chat/message-components.js +62 -19
  278. package/dist/client/chat/message-components.js.map +1 -1
  279. package/dist/client/chat/tool-call-display.d.ts +6 -0
  280. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  281. package/dist/client/chat/tool-call-display.js +83 -14
  282. package/dist/client/chat/tool-call-display.js.map +1 -1
  283. package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts +8 -0
  284. package/dist/client/chat/use-agent-chat-lifecycle-tracking.d.ts.map +1 -0
  285. package/dist/client/chat/use-agent-chat-lifecycle-tracking.js +51 -0
  286. package/dist/client/chat/use-agent-chat-lifecycle-tracking.js.map +1 -0
  287. package/dist/client/chat-thread-url.d.ts +2 -0
  288. package/dist/client/chat-thread-url.d.ts.map +1 -0
  289. package/dist/client/chat-thread-url.js +12 -0
  290. package/dist/client/chat-thread-url.js.map +1 -0
  291. package/dist/client/error-capture.d.ts.map +1 -1
  292. package/dist/client/error-capture.js +7 -0
  293. package/dist/client/error-capture.js.map +1 -1
  294. package/dist/client/extensions/ExtensionSlot.d.ts +3 -1
  295. package/dist/client/extensions/ExtensionSlot.d.ts.map +1 -1
  296. package/dist/client/extensions/ExtensionSlot.js +28 -3
  297. package/dist/client/extensions/ExtensionSlot.js.map +1 -1
  298. package/dist/client/feature-flags/FeatureFlagsPanel.d.ts +10 -0
  299. package/dist/client/feature-flags/FeatureFlagsPanel.d.ts.map +1 -0
  300. package/dist/client/feature-flags/FeatureFlagsPanel.js +143 -0
  301. package/dist/client/feature-flags/FeatureFlagsPanel.js.map +1 -0
  302. package/dist/client/feature-flags/helpers.d.ts +16 -0
  303. package/dist/client/feature-flags/helpers.d.ts.map +1 -0
  304. package/dist/client/feature-flags/helpers.js +50 -0
  305. package/dist/client/feature-flags/helpers.js.map +1 -0
  306. package/dist/client/feature-flags/index.d.ts +5 -0
  307. package/dist/client/feature-flags/index.d.ts.map +1 -0
  308. package/dist/client/feature-flags/index.js +4 -0
  309. package/dist/client/feature-flags/index.js.map +1 -0
  310. package/dist/client/feature-flags/types.d.ts +27 -0
  311. package/dist/client/feature-flags/types.d.ts.map +1 -0
  312. package/dist/client/feature-flags/types.js +2 -0
  313. package/dist/client/feature-flags/types.js.map +1 -0
  314. package/dist/client/feature-flags/use-feature-flag.d.ts +8 -0
  315. package/dist/client/feature-flags/use-feature-flag.d.ts.map +1 -0
  316. package/dist/client/feature-flags/use-feature-flag.js +15 -0
  317. package/dist/client/feature-flags/use-feature-flag.js.map +1 -0
  318. package/dist/client/index.d.ts +2 -1
  319. package/dist/client/index.d.ts.map +1 -1
  320. package/dist/client/index.js +2 -1
  321. package/dist/client/index.js.map +1 -1
  322. package/dist/client/route-chunk-recovery.d.ts.map +1 -1
  323. package/dist/client/route-chunk-recovery.js +14 -9
  324. package/dist/client/route-chunk-recovery.js.map +1 -1
  325. package/dist/client/session-replay.d.ts +15 -0
  326. package/dist/client/session-replay.d.ts.map +1 -1
  327. package/dist/client/session-replay.js +20 -0
  328. package/dist/client/session-replay.js.map +1 -1
  329. package/dist/collab/struct-routes.d.ts +1 -1
  330. package/dist/extensions/actions.d.ts.map +1 -1
  331. package/dist/extensions/actions.js +2 -10
  332. package/dist/extensions/actions.js.map +1 -1
  333. package/dist/extensions/routes.d.ts.map +1 -1
  334. package/dist/extensions/routes.js +1 -1
  335. package/dist/extensions/routes.js.map +1 -1
  336. package/dist/extensions/store.js +1 -1
  337. package/dist/extensions/store.js.map +1 -1
  338. package/dist/feature-flags/a2a-action-route.d.ts +14 -0
  339. package/dist/feature-flags/a2a-action-route.d.ts.map +1 -0
  340. package/dist/feature-flags/a2a-action-route.js +50 -0
  341. package/dist/feature-flags/a2a-action-route.js.map +1 -0
  342. package/dist/feature-flags/actions/get-feature-flags.d.ts +3 -0
  343. package/dist/feature-flags/actions/get-feature-flags.d.ts.map +1 -0
  344. package/dist/feature-flags/actions/get-feature-flags.js +18 -0
  345. package/dist/feature-flags/actions/get-feature-flags.js.map +1 -0
  346. package/dist/feature-flags/actions/list-feature-flags.d.ts +28 -0
  347. package/dist/feature-flags/actions/list-feature-flags.d.ts.map +1 -0
  348. package/dist/feature-flags/actions/list-feature-flags.js +60 -0
  349. package/dist/feature-flags/actions/list-feature-flags.js.map +1 -0
  350. package/dist/feature-flags/actions/set-feature-flag.d.ts +26 -0
  351. package/dist/feature-flags/actions/set-feature-flag.d.ts.map +1 -0
  352. package/dist/feature-flags/actions/set-feature-flag.js +78 -0
  353. package/dist/feature-flags/actions/set-feature-flag.js.map +1 -0
  354. package/dist/feature-flags/index.d.ts +5 -0
  355. package/dist/feature-flags/index.d.ts.map +1 -0
  356. package/dist/feature-flags/index.js +5 -0
  357. package/dist/feature-flags/index.js.map +1 -0
  358. package/dist/feature-flags/permissions.d.ts +13 -0
  359. package/dist/feature-flags/permissions.d.ts.map +1 -0
  360. package/dist/feature-flags/permissions.js +37 -0
  361. package/dist/feature-flags/permissions.js.map +1 -0
  362. package/dist/feature-flags/plugin.d.ts +17 -0
  363. package/dist/feature-flags/plugin.d.ts.map +1 -0
  364. package/dist/feature-flags/plugin.js +29 -0
  365. package/dist/feature-flags/plugin.js.map +1 -0
  366. package/dist/feature-flags/registry.d.ts +23 -0
  367. package/dist/feature-flags/registry.d.ts.map +1 -0
  368. package/dist/feature-flags/registry.js +59 -0
  369. package/dist/feature-flags/registry.js.map +1 -0
  370. package/dist/feature-flags/store.d.ts +31 -0
  371. package/dist/feature-flags/store.d.ts.map +1 -0
  372. package/dist/feature-flags/store.js +124 -0
  373. package/dist/feature-flags/store.js.map +1 -0
  374. package/dist/index.d.ts +1 -0
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +1 -0
  377. package/dist/index.js.map +1 -1
  378. package/dist/localization/default-messages.d.ts +45 -0
  379. package/dist/localization/default-messages.d.ts.map +1 -1
  380. package/dist/localization/default-messages.js +45 -0
  381. package/dist/localization/default-messages.js.map +1 -1
  382. package/dist/mcp/build-server.d.ts +2 -0
  383. package/dist/mcp/build-server.d.ts.map +1 -1
  384. package/dist/mcp/build-server.js +2 -2
  385. package/dist/mcp/build-server.js.map +1 -1
  386. package/dist/notifications/routes.d.ts +2 -2
  387. package/dist/progress/actions.d.ts.map +1 -1
  388. package/dist/progress/actions.js +3 -2
  389. package/dist/progress/actions.js.map +1 -1
  390. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  391. package/dist/provider-api/index.d.ts.map +1 -1
  392. package/dist/provider-api/index.js +91 -8
  393. package/dist/provider-api/index.js.map +1 -1
  394. package/dist/resources/handlers.d.ts +3 -3
  395. package/dist/scripts/call-agent.d.ts.map +1 -1
  396. package/dist/scripts/call-agent.js +107 -16
  397. package/dist/scripts/call-agent.js.map +1 -1
  398. package/dist/server/action-discovery.d.ts.map +1 -1
  399. package/dist/server/action-discovery.js +12 -0
  400. package/dist/server/action-discovery.js.map +1 -1
  401. package/dist/server/action-routes.d.ts +3 -0
  402. package/dist/server/action-routes.d.ts.map +1 -1
  403. package/dist/server/action-routes.js +45 -5
  404. package/dist/server/action-routes.js.map +1 -1
  405. package/dist/server/agent-chat/action-filters-a2a.d.ts +6 -0
  406. package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
  407. package/dist/server/agent-chat/action-filters-a2a.js +27 -0
  408. package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
  409. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  410. package/dist/server/agent-chat-plugin.js +27 -1
  411. package/dist/server/agent-chat-plugin.js.map +1 -1
  412. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  413. package/dist/server/index.d.ts +1 -0
  414. package/dist/server/index.d.ts.map +1 -1
  415. package/dist/server/index.js +1 -0
  416. package/dist/server/index.js.map +1 -1
  417. package/dist/server/transcribe-voice.d.ts +1 -1
  418. package/dist/settings/org-settings.d.ts +2 -0
  419. package/dist/settings/org-settings.d.ts.map +1 -1
  420. package/dist/settings/org-settings.js +5 -1
  421. package/dist/settings/org-settings.js.map +1 -1
  422. package/dist/settings/store.d.ts +8 -0
  423. package/dist/settings/store.d.ts.map +1 -1
  424. package/dist/settings/store.js +48 -0
  425. package/dist/settings/store.js.map +1 -1
  426. package/dist/styles/agent-conversation.css +7 -0
  427. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  428. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  429. package/dist/templates/default/AGENTS.md +1 -0
  430. package/dist/templates/default/app/i18n/ar-SA.ts +20 -0
  431. package/dist/templates/default/app/i18n/de-DE.ts +20 -0
  432. package/dist/templates/default/app/i18n/en-US.ts +20 -0
  433. package/dist/templates/default/app/i18n/es-ES.ts +20 -0
  434. package/dist/templates/default/app/i18n/fr-FR.ts +21 -0
  435. package/dist/templates/default/app/i18n/hi-IN.ts +19 -0
  436. package/dist/templates/default/app/i18n/ja-JP.ts +20 -0
  437. package/dist/templates/default/app/i18n/ko-KR.ts +19 -0
  438. package/dist/templates/default/app/i18n/pt-BR.ts +20 -0
  439. package/dist/templates/default/app/i18n/zh-CN.ts +19 -0
  440. package/dist/templates/default/app/i18n/zh-TW.ts +19 -0
  441. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  442. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +28 -0
  443. package/dist/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  444. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  445. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  446. package/dist/templates/workspace-core/AGENTS.md +1 -1
  447. package/dist/templates/workspace-root/AGENTS.md +1 -1
  448. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  449. package/dist/vite/action-types-plugin.js +12 -0
  450. package/dist/vite/action-types-plugin.js.map +1 -1
  451. package/docs/content/actions.mdx +48 -0
  452. package/docs/content/locales/ar-SA/actions.mdx +38 -0
  453. package/docs/content/locales/de-DE/actions.mdx +38 -0
  454. package/docs/content/locales/es-ES/actions.mdx +38 -0
  455. package/docs/content/locales/fr-FR/actions.mdx +38 -0
  456. package/docs/content/locales/hi-IN/actions.mdx +38 -0
  457. package/docs/content/locales/ja-JP/actions.mdx +38 -0
  458. package/docs/content/locales/ko-KR/actions.mdx +38 -0
  459. package/docs/content/locales/pt-BR/actions.mdx +38 -0
  460. package/docs/content/locales/zh-CN/actions.mdx +38 -0
  461. package/docs/content/locales/zh-TW/actions.mdx +38 -0
  462. package/package.json +5 -1
  463. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  464. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  465. package/src/templates/default/AGENTS.md +1 -0
  466. package/src/templates/default/app/i18n/ar-SA.ts +20 -0
  467. package/src/templates/default/app/i18n/de-DE.ts +20 -0
  468. package/src/templates/default/app/i18n/en-US.ts +20 -0
  469. package/src/templates/default/app/i18n/es-ES.ts +20 -0
  470. package/src/templates/default/app/i18n/fr-FR.ts +21 -0
  471. package/src/templates/default/app/i18n/hi-IN.ts +19 -0
  472. package/src/templates/default/app/i18n/ja-JP.ts +20 -0
  473. package/src/templates/default/app/i18n/ko-KR.ts +19 -0
  474. package/src/templates/default/app/i18n/pt-BR.ts +20 -0
  475. package/src/templates/default/app/i18n/zh-CN.ts +19 -0
  476. package/src/templates/default/app/i18n/zh-TW.ts +19 -0
  477. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  478. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +28 -0
  479. package/src/templates/workspace-core/.agents/skills/composable-mini-apps/SKILL.md +5 -0
  480. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  481. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +13 -0
  482. package/src/templates/workspace-core/AGENTS.md +1 -1
  483. package/src/templates/workspace-root/AGENTS.md +1 -1
  484. package/corpus/templates/analytics/server/handlers/github.ts +0 -200
  485. package/corpus/templates/analytics/server/handlers/pylon.ts +0 -43
  486. package/corpus/templates/analytics/server/lib/apollo.ts +0 -167
  487. package/corpus/templates/analytics/server/lib/commonroom.ts +0 -149
  488. package/corpus/templates/analytics/server/lib/github.ts +0 -660
  489. package/corpus/templates/analytics/server/lib/mixpanel.ts +0 -156
  490. package/corpus/templates/analytics/server/lib/posthog.ts +0 -194
  491. package/corpus/templates/analytics/server/lib/pylon.ts +0 -109
  492. package/corpus/templates/analytics/server/routes/api/github/graphql.post.ts +0 -1
  493. package/corpus/templates/analytics/server/routes/api/github/issue.get.ts +0 -1
  494. package/corpus/templates/analytics/server/routes/api/github/org-prs.get.ts +0 -1
  495. package/corpus/templates/analytics/server/routes/api/github/pr.get.ts +0 -1
  496. package/corpus/templates/analytics/server/routes/api/github/prs.get.ts +0 -1
  497. package/corpus/templates/analytics/server/routes/api/github/search.get.ts +0 -1
  498. package/corpus/templates/clips/actions/get-feature-flags.ts +0 -30
  499. package/corpus/templates/slides/actions/fetch-logos.ts +0 -90
  500. package/corpus/templates/slides/actions/image-search.ts +0 -64
  501. package/corpus/templates/slides/actions/import-github.ts +0 -182
  502. package/corpus/templates/slides/actions/logo-lookup.ts +0 -113
@@ -0,0 +1,169 @@
1
+ ---
2
+ name: feature-flags
3
+ description: >-
4
+ Declare, evaluate, manage, and remove framework feature flags. Use when
5
+ shipping a capability gradually, targeting users or organizations, or
6
+ replacing a compile-time rollout switch with a production-safe runtime flag.
7
+ scope: dev
8
+ metadata:
9
+ internal: true
10
+ ---
11
+
12
+ # Feature Flags
13
+
14
+ A feature flag is a boolean declared in app code, evaluated locally by Core,
15
+ and managed from the Analytics fleet control plane. Code owns whether a flag
16
+ exists. Runtime settings own only its rollout state.
17
+
18
+ Flags let an app deploy dormant code and turn it on in the real environment
19
+ without another deployment. They are not experiments: do not add variants,
20
+ hypotheses, conversion metrics, exposure tracking, or lifecycle states.
21
+
22
+ ## When to use one
23
+
24
+ Use a flag for a reversible rollout of a user-facing capability whose dormant
25
+ code is safe to deploy. Flags are useful for production dogfooding, exact-user
26
+ or organization pilots, and deterministic percentage rollouts.
27
+
28
+ Do not use a flag for authentication, authorization, secrets, audit enablement,
29
+ SSR cache behavior, or another security boundary. Client hiding is presentation
30
+ only; every guarded server action must evaluate the same registered flag.
31
+
32
+ ## Agent workflow
33
+
34
+ ### 1. Declare
35
+
36
+ Keep definitions in a shared TypeScript module so server and client code use the
37
+ same stable key. Flags are boolean and default-off.
38
+
39
+ ```ts
40
+ import { defineFeatureFlag } from "@agent-native/core/feature-flags";
41
+
42
+ export const FULL_APP_BUILDING = defineFeatureFlag({
43
+ key: "full-app-building",
44
+ displayName: "Full app building",
45
+ description: "Create and edit Fusion-backed applications.",
46
+ });
47
+ ```
48
+
49
+ Keys are immutable, never reused, and contain only letters, numbers, dots,
50
+ underscores, or hyphens. Prefer a concise app-owned name. Do not create flag
51
+ definitions or rollout rows from Analytics.
52
+
53
+ ### 2. Register
54
+
55
+ Register app definitions from a Nitro plugin before actions are discovered.
56
+ Do not add app-specific flags to a Core registry.
57
+
58
+ ```ts
59
+ import { createFeatureFlagsPlugin } from "@agent-native/core/server";
60
+
61
+ import { FULL_APP_BUILDING } from "../../shared/feature-flags.js";
62
+
63
+ export default createFeatureFlagsPlugin({ flags: [FULL_APP_BUILDING] });
64
+ ```
65
+
66
+ ### 3. Guard server and client
67
+
68
+ The server action is the enforcement boundary:
69
+
70
+ ```ts
71
+ import { isFeatureFlagEnabled } from "@agent-native/core/feature-flags";
72
+
73
+ run: async (args, ctx) => {
74
+ if (!(await isFeatureFlagEnabled(FULL_APP_BUILDING, ctx))) {
75
+ throw new Error("Full app building is not enabled for this account.");
76
+ }
77
+ // guarded operation
78
+ }
79
+ ```
80
+
81
+ Use the client hook only to hide or reveal hydrated UI:
82
+
83
+ ```tsx
84
+ import { useFeatureFlag } from "@agent-native/core/client";
85
+
86
+ const enabled = useFeatureFlag(FULL_APP_BUILDING.key);
87
+ return enabled ? <FullAppOption /> : null;
88
+ ```
89
+
90
+ The client hook intentionally returns false while loading or for an unknown
91
+ flag. Never replace that fail-closed behavior with app-local bucketing or a
92
+ compile-time fallback. Never evaluate personalized flags in the public SSR
93
+ shell; it is shared and cached for every visitor.
94
+
95
+ ### 4. Verify and roll out
96
+
97
+ 1. Verify the off path before changing rollout state.
98
+ 2. Confirm the registered flag appears in **Analytics → Feature flags** for the
99
+ app and is Off by default.
100
+ 3. Use **Enable for me** for initial production dogfood.
101
+ 4. Expand to exact emails, organization IDs, or a percentage only from
102
+ Analytics.
103
+ 5. Confirm the client presentation and authoritative server action agree.
104
+
105
+ ## Management contract
106
+
107
+ Core mounts three actions in registered apps:
108
+
109
+ | Action | Purpose |
110
+ | --- | --- |
111
+ | `get-feature-flags` | Return the current caller's evaluated boolean values. |
112
+ | `list-feature-flags` | Return definitions and rollout metadata to an authorized operator. |
113
+ | `set-feature-flag` | Atomically turn a flag off, enable it for the operator, or replace targeting rules. |
114
+
115
+ Analytics calls the app-local operator actions through narrowly scoped A2A
116
+ delegation. Tokens require an exact audience, organization, scope, operator
117
+ role, and audit correlation id. Management is permission-checked and audited
118
+ by the target app. Never manage flags through generic settings routes, raw SQL,
119
+ or per-app toggle UIs.
120
+
121
+ ## Rollout semantics
122
+
123
+ The operator modes are **Off**, **Targeted**, and **Everyone**. Core stores them
124
+ as `off`, `rules`, and `on`.
125
+
126
+ Targeted rules combine exact normalized emails, exact organization IDs, and a
127
+ percentage with OR semantics. Exact matches are checked first. Percentage
128
+ buckets use Core's stable hash of the flag key and authenticated user identity;
129
+ anonymous callers fail closed. Raising a percentage preserves the users already
130
+ included at a lower percentage. Do not implement bucketing in app code.
131
+
132
+ Unknown definitions, missing state, malformed state, storage errors, and
133
+ evaluation errors all return the code default (`false` in v1). Explicit Off
134
+ wins over every target; Everyone enables every authenticated caller.
135
+
136
+ ## Remove a flag
137
+
138
+ After a rollout is permanent:
139
+
140
+ 1. Replace guarded branches with the chosen behavior.
141
+ 2. Delete the server and client gates.
142
+ 3. Delete the definition and registration entry.
143
+ 4. Verify the flag disappears from the Analytics fleet.
144
+ 5. Remove stale tests and rollout instructions.
145
+
146
+ A permanent flag is just an if statement with a pension plan.
147
+
148
+ ## Verification checklist
149
+
150
+ - Unknown and unregistered keys evaluate false.
151
+ - UI hiding and server enforcement use the same registered key.
152
+ - Exact-user, organization, deterministic percentage, Everyone, and Off paths
153
+ have focused tests.
154
+ - Increasing a percentage is monotonic; anonymous percentage evaluation is off.
155
+ - Unauthorized callers cannot list targeting details or mutate flags.
156
+ - Mutations are atomic, read back stored state, emit refresh, and appear in the
157
+ audit log with the flag key.
158
+ - Analytics represents ready, no-definition, unsupported, forbidden, legacy,
159
+ and unreachable directory apps honestly.
160
+ - Future agents can find this skill from root `AGENTS.md`, and
161
+ `pnpm guard:workspace-skills` passes after syncing generated copies.
162
+
163
+ ## Related skills
164
+
165
+ - **adding-a-feature** — preserve UI/action/instruction/application-state parity
166
+ - **actions** — define and call guarded app operations
167
+ - **audit-log** — inspect automatic action mutation history
168
+ - **reliable-mutations** — make rollout changes atomic and provable
169
+ - **security** — keep security controls out of feature flags
@@ -158,6 +158,7 @@ Skills in `.agents/skills/` provide detailed guidance for each architectural rul
158
158
  | ---------------------- | --------------------------------------------------------------------------------- |
159
159
  | `agent-native-docs` | Before using advanced Agent Native framework APIs or generated-app features |
160
160
  | `adding-a-feature` | **Read first when adding ANY new feature** — the four-area parity checklist |
161
+ | `feature-flags` | Before shipping a staged production rollout or replacing a compile-time switch |
161
162
  | `real-time-sync` | Before wiring data fetching for anything the agent can mutate (must auto-refresh) |
162
163
  | `storing-data` | Before storing or reading any app state |
163
164
  | `internationalization` | Before adding or editing visible UI copy, prompts, toasts, labels, or formatting |
@@ -80,12 +80,32 @@ const messages = {
80
80
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
81
81
  appsInWorkspace: "Apps in {{workspace}}",
82
82
  workspaceApps: "تطبيقات مساحة العمل",
83
+ otherApps: "تطبيقات أخرى",
84
+ otherAppsDescription: "افتح التطبيقات الأخرى المتاحة لك.",
85
+ availableCount: "{{count}} متاح",
83
86
  activeCount: "{{count}} active",
84
87
  hiddenCount: "{{count}} hidden",
85
88
  createApp: "إنشاء التطبيق",
86
89
  templates: "القوالب",
87
90
  checkingTemplates: "التحقق من القوالب المتاحة",
88
91
  templatesAvailable: "{{count}} available to scaffold",
92
+ curatedTemplates: "قوالب منسقة",
93
+ curatedTemplatesDescription:
94
+ "ابدأ من شكل تطبيق تمت مراجعته، ثم اجعله خاصًا بك.",
95
+ remix: "إعادة المزج",
96
+ remixTemplate: "إعادة مزج {{name}}",
97
+ remixAppIdLabel: "معرّف التطبيق الجديد",
98
+ remixStarted: "بدأت إعادة مزج {{name}}",
99
+ viewLiveApp: "عرض التطبيق المباشر",
100
+ alreadyInWorkspace: "موجود بالفعل في مساحة العمل",
101
+ remixAppIdDescription:
102
+ "اختر معرّفًا آمنًا لعنوان URL لتطبيق مساحة العمل الجديد.",
103
+ integrationSetup: "إعداد التكامل",
104
+ source: "المصدر",
105
+ remixing: "جارٍ إعادة المزج…",
106
+ remixSuccess: "بدأت إعادة مزج القالب.",
107
+ remixError: "تعذرت إعادة مزج هذا القالب",
108
+ appIdRequired: "معرّف التطبيق مطلوب.",
89
109
  hide: "إخفاء",
90
110
  show: "Show",
91
111
  hiddenApps: "التطبيقات المخفية",
@@ -79,12 +79,32 @@ const messages = {
79
79
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
80
80
  appsInWorkspace: "Apps in {{workspace}}",
81
81
  workspaceApps: "Workspace-Apps",
82
+ otherApps: "Andere Apps",
83
+ otherAppsDescription: "Andere für dich verfügbare Apps öffnen.",
84
+ availableCount: "{{count}} verfügbar",
82
85
  activeCount: "{{count}} active",
83
86
  hiddenCount: "{{count}} hidden",
84
87
  createApp: "App erstellen",
85
88
  templates: "Vorlagen",
86
89
  checkingTemplates: "Überprüfen verfügbarer Vorlagen",
87
90
  templatesAvailable: "{{count}} available to scaffold",
91
+ curatedTemplates: "Kuratierte Vorlagen",
92
+ curatedTemplatesDescription:
93
+ "Starte mit einer geprüften App-Struktur und passe sie an.",
94
+ remix: "Remix",
95
+ remixTemplate: "{{name}} remixen",
96
+ remixAppIdLabel: "Neue App-ID",
97
+ remixStarted: "Remix für {{name}} gestartet",
98
+ viewLiveApp: "Live-App öffnen",
99
+ alreadyInWorkspace: "Bereits im Workspace",
100
+ remixAppIdDescription:
101
+ "Wähle eine URL-sichere ID für die neue Workspace-App.",
102
+ integrationSetup: "Integration einrichten",
103
+ source: "Quelle",
104
+ remixing: "Remix wird erstellt…",
105
+ remixSuccess: "Template-Remix gestartet.",
106
+ remixError: "Dieses Template konnte nicht geremixt werden",
107
+ appIdRequired: "App-ID ist erforderlich.",
88
108
  hide: "Ausblenden",
89
109
  show: "Show",
90
110
  hiddenApps: "Versteckte Apps",
@@ -77,12 +77,32 @@ const messages = {
77
77
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
78
78
  appsInWorkspace: "Apps in {{workspace}}",
79
79
  workspaceApps: "Workspace apps",
80
+ otherApps: "Other apps",
81
+ otherAppsDescription: "Open other apps available to you.",
82
+ availableCount: "{{count}} available",
80
83
  activeCount: "{{count}} active",
81
84
  hiddenCount: "{{count}} hidden",
82
85
  createApp: "Create app",
83
86
  templates: "Templates",
84
87
  checkingTemplates: "Checking available templates",
85
88
  templatesAvailable: "{{count}} available to scaffold",
89
+ curatedTemplates: "Curated templates",
90
+ curatedTemplatesDescription:
91
+ "Start from a reviewed app shape, then make it your own.",
92
+ remix: "Remix",
93
+ remixTemplate: "Remix {{name}}",
94
+ remixAppIdLabel: "New app id",
95
+ remixStarted: "Started {{name}} remix",
96
+ viewLiveApp: "View live app",
97
+ alreadyInWorkspace: "Already in workspace",
98
+ remixAppIdDescription:
99
+ "Choose the URL-safe id for the new workspace app.",
100
+ integrationSetup: "Integration setup",
101
+ source: "Source",
102
+ remixing: "Remixing…",
103
+ remixSuccess: "Template remix started.",
104
+ remixError: "Could not remix this template",
105
+ appIdRequired: "App ID is required.",
86
106
  hide: "Hide",
87
107
  show: "Show",
88
108
  hiddenApps: "Hidden apps",
@@ -79,12 +79,32 @@ const messages = {
79
79
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
80
80
  appsInWorkspace: "Apps in {{workspace}}",
81
81
  workspaceApps: "Aplicaciones de espacio de trabajo",
82
+ otherApps: "Otras aplicaciones",
83
+ otherAppsDescription: "Abre otras aplicaciones disponibles para ti.",
84
+ availableCount: "{{count}} disponibles",
82
85
  activeCount: "{{count}} active",
83
86
  hiddenCount: "{{count}} hidden",
84
87
  createApp: "Crear aplicación",
85
88
  templates: "Plantillas",
86
89
  checkingTemplates: "Comprobando plantillas disponibles",
87
90
  templatesAvailable: "{{count}} available to scaffold",
91
+ curatedTemplates: "Plantillas seleccionadas",
92
+ curatedTemplatesDescription:
93
+ "Empieza con una estructura de aplicación revisada y hazla tuya.",
94
+ remix: "Reutilizar",
95
+ remixTemplate: "Reutilizar {{name}}",
96
+ remixAppIdLabel: "Nuevo ID de aplicación",
97
+ remixStarted: "Se inició la reutilización de {{name}}",
98
+ viewLiveApp: "Ver aplicación en vivo",
99
+ alreadyInWorkspace: "Ya está en el espacio de trabajo",
100
+ remixAppIdDescription:
101
+ "Elige un ID seguro para URL para la nueva aplicación.",
102
+ integrationSetup: "Configuración de integración",
103
+ source: "Origen",
104
+ remixing: "Reutilizando…",
105
+ remixSuccess: "Se inició la reutilización de la plantilla.",
106
+ remixError: "No se pudo reutilizar esta plantilla",
107
+ appIdRequired: "El ID de aplicación es obligatorio.",
88
108
  hide: "Ocultar",
89
109
  show: "Show",
90
110
  hiddenApps: "Aplicaciones ocultas",
@@ -80,12 +80,33 @@ const messages = {
80
80
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
81
81
  appsInWorkspace: "Apps in {{workspace}}",
82
82
  workspaceApps: "Applications d'espace de travail",
83
+ otherApps: "Autres applications",
84
+ otherAppsDescription:
85
+ "Ouvrez les autres applications qui vous sont accessibles.",
86
+ availableCount: "{{count}} disponibles",
83
87
  activeCount: "{{count}} active",
84
88
  hiddenCount: "{{count}} hidden",
85
89
  createApp: "Créer une application",
86
90
  templates: "Modèles",
87
91
  checkingTemplates: "Vérification des modèles disponibles",
88
92
  templatesAvailable: "{{count}} available to scaffold",
93
+ curatedTemplates: "Modèles sélectionnés",
94
+ curatedTemplatesDescription:
95
+ "Partez d’une structure d’application vérifiée et personnalisez-la.",
96
+ remix: "Remixer",
97
+ remixTemplate: "Remixer {{name}}",
98
+ remixAppIdLabel: "Nouvel identifiant d’application",
99
+ remixStarted: "Remix de {{name}} lancé",
100
+ viewLiveApp: "Voir l’application en direct",
101
+ alreadyInWorkspace: "Déjà dans l’espace de travail",
102
+ remixAppIdDescription:
103
+ "Choisissez un identifiant compatible avec l’URL pour la nouvelle application.",
104
+ integrationSetup: "Configuration de l’intégration",
105
+ source: "Source",
106
+ remixing: "Remix en cours…",
107
+ remixSuccess: "Le remix du modèle a démarré.",
108
+ remixError: "Impossible de remixer ce modèle",
109
+ appIdRequired: "L’identifiant de l’application est requis.",
89
110
  hide: "Masquer",
90
111
  show: "Show",
91
112
  hiddenApps: "Applications cachées",
@@ -75,12 +75,31 @@ const messages = {
75
75
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
76
76
  appsInWorkspace: "Apps in {{workspace}}",
77
77
  workspaceApps: "कार्यक्षेत्र ऐप्स",
78
+ otherApps: "अन्य ऐप्स",
79
+ otherAppsDescription: "आपके लिए उपलब्ध अन्य ऐप्स खोलें।",
80
+ availableCount: "{{count}} उपलब्ध",
78
81
  activeCount: "{{count}} active",
79
82
  hiddenCount: "{{count}} hidden",
80
83
  createApp: "ऐप बनाएं",
81
84
  templates: "टेम्पलेट",
82
85
  checkingTemplates: "उपलब्ध टेम्प्लेट की जाँच करना",
83
86
  templatesAvailable: "{{count}} available to scaffold",
87
+ curatedTemplates: "चयनित टेम्पलेट",
88
+ curatedTemplatesDescription:
89
+ "समीक्षित ऐप संरचना से शुरू करें और इसे अपने अनुसार बनाएं।",
90
+ remix: "रीमिक्स",
91
+ remixTemplate: "{{name}} रीमिक्स करें",
92
+ remixAppIdLabel: "नया ऐप आईडी",
93
+ remixStarted: "{{name}} रीमिक्स शुरू हुआ",
94
+ viewLiveApp: "लाइव ऐप देखें",
95
+ alreadyInWorkspace: "वर्कस्पेस में पहले से मौजूद",
96
+ remixAppIdDescription: "नए वर्कस्पेस ऐप के लिए URL-सुरक्षित आईडी चुनें।",
97
+ integrationSetup: "इंटीग्रेशन सेटअप",
98
+ source: "स्रोत",
99
+ remixing: "रीमिक्स हो रहा है…",
100
+ remixSuccess: "टेम्पलेट रीमिक्स शुरू हुआ।",
101
+ remixError: "यह टेम्पलेट रीमिक्स नहीं हो सका",
102
+ appIdRequired: "ऐप आईडी आवश्यक है।",
84
103
  hide: "छिपाएं",
85
104
  show: "Show",
86
105
  hiddenApps: "छुपे हुए ऐप्स",
@@ -77,12 +77,32 @@ const messages = {
77
77
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
78
78
  appsInWorkspace: "Apps in {{workspace}}",
79
79
  workspaceApps: "ワークスペースアプリ",
80
+ otherApps: "その他のアプリ",
81
+ otherAppsDescription: "利用できるその他のアプリを開きます。",
82
+ availableCount: "{{count}}件利用可能",
80
83
  activeCount: "{{count}} active",
81
84
  hiddenCount: "{{count}} hidden",
82
85
  createApp: "アプリの作成",
83
86
  templates: "テンプレート",
84
87
  checkingTemplates: "利用可能なテンプレートを確認する",
85
88
  templatesAvailable: "{{count}} available to scaffold",
89
+ curatedTemplates: "厳選テンプレート",
90
+ curatedTemplatesDescription:
91
+ "レビュー済みのアプリ構成をベースに、自分用にカスタマイズできます。",
92
+ remix: "リミックス",
93
+ remixTemplate: "{{name}} をリミックス",
94
+ remixAppIdLabel: "新しいアプリ ID",
95
+ remixStarted: "{{name}} のリミックスを開始しました",
96
+ viewLiveApp: "ライブアプリを見る",
97
+ alreadyInWorkspace: "ワークスペースに追加済み",
98
+ remixAppIdDescription:
99
+ "新しいワークスペースアプリの URL セーフな ID を選択してください。",
100
+ integrationSetup: "連携の設定",
101
+ source: "提供元",
102
+ remixing: "リミックス中…",
103
+ remixSuccess: "テンプレートのリミックスを開始しました。",
104
+ remixError: "このテンプレートをリミックスできませんでした",
105
+ appIdRequired: "アプリ ID は必須です。",
86
106
  hide: "非表示",
87
107
  show: "Show",
88
108
  hiddenApps: "隠しアプリ",
@@ -76,12 +76,31 @@ const messages = {
76
76
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
77
77
  appsInWorkspace: "Apps in {{workspace}}",
78
78
  workspaceApps: "작업 공간 앱",
79
+ otherApps: "기타 앱",
80
+ otherAppsDescription: "사용할 수 있는 다른 앱을 엽니다.",
81
+ availableCount: "{{count}}개 사용 가능",
79
82
  activeCount: "{{count}} active",
80
83
  hiddenCount: "{{count}} hidden",
81
84
  createApp: "앱 만들기",
82
85
  templates: "템플릿",
83
86
  checkingTemplates: "사용 가능한 템플릿 확인 중",
84
87
  templatesAvailable: "{{count}} available to scaffold",
88
+ curatedTemplates: "엄선된 템플릿",
89
+ curatedTemplatesDescription:
90
+ "검토된 앱 구조에서 시작해 나만의 앱으로 만들어 보세요.",
91
+ remix: "리믹스",
92
+ remixTemplate: "{{name}} 리믹스",
93
+ remixAppIdLabel: "새 앱 ID",
94
+ remixStarted: "{{name}} 리믹스를 시작했습니다",
95
+ viewLiveApp: "라이브 앱 보기",
96
+ alreadyInWorkspace: "워크스페이스에 이미 있음",
97
+ remixAppIdDescription: "새 워크스페이스 앱의 URL 안전 ID를 선택하세요.",
98
+ integrationSetup: "연동 설정",
99
+ source: "소스",
100
+ remixing: "리믹스 중…",
101
+ remixSuccess: "템플릿 리믹스를 시작했습니다.",
102
+ remixError: "이 템플릿을 리믹스할 수 없습니다",
103
+ appIdRequired: "앱 ID가 필요합니다.",
85
104
  hide: "숨기기",
86
105
  show: "Show",
87
106
  hiddenApps: "숨겨진 앱",
@@ -80,12 +80,32 @@ const messages = {
80
80
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
81
81
  appsInWorkspace: "Apps in {{workspace}}",
82
82
  workspaceApps: "Aplicativos de espaço de trabalho",
83
+ otherApps: "Outros aplicativos",
84
+ otherAppsDescription: "Abra outros aplicativos disponíveis para você.",
85
+ availableCount: "{{count}} disponíveis",
83
86
  activeCount: "{{count}} active",
84
87
  hiddenCount: "{{count}} hidden",
85
88
  createApp: "Criar aplicativo",
86
89
  templates: "Modelos",
87
90
  checkingTemplates: "Verificando modelos disponíveis",
88
91
  templatesAvailable: "{{count}} available to scaffold",
92
+ curatedTemplates: "Modelos selecionados",
93
+ curatedTemplatesDescription:
94
+ "Comece com uma estrutura de app revisada e personalize-a.",
95
+ remix: "Remixar",
96
+ remixTemplate: "Remixar {{name}}",
97
+ remixAppIdLabel: "Novo ID do app",
98
+ remixStarted: "Remix de {{name}} iniciado",
99
+ viewLiveApp: "Ver app ao vivo",
100
+ alreadyInWorkspace: "Já está no workspace",
101
+ remixAppIdDescription:
102
+ "Escolha um ID seguro para URL para o novo app do workspace.",
103
+ integrationSetup: "Configuração da integração",
104
+ source: "Origem",
105
+ remixing: "Remixando…",
106
+ remixSuccess: "Remix do modelo iniciado.",
107
+ remixError: "Não foi possível remixar este modelo",
108
+ appIdRequired: "O ID do app é obrigatório.",
89
109
  hide: "Ocultar",
90
110
  show: "Show",
91
111
  hiddenApps: "Aplicativos ocultos",
@@ -73,12 +73,31 @@ const messages = {
73
73
  'Apps in the "{{workspace}}" workspace. Each app gets its own route under this workspace and shares its database, auth, and agent chat.',
74
74
  appsInWorkspace: "Apps in {{workspace}}",
75
75
  workspaceApps: "工作区应用程序",
76
+ otherApps: "其他应用",
77
+ otherAppsDescription: "打开你可以使用的其他应用。",
78
+ availableCount: "可用 {{count}} 个",
76
79
  activeCount: "{{count}} active",
77
80
  hiddenCount: "{{count}} hidden",
78
81
  createApp: "创建应用程序",
79
82
  templates: "模板",
80
83
  checkingTemplates: "检查可用模板",
81
84
  templatesAvailable: "{{count}} available to scaffold",
85
+ curatedTemplates: "精选模板",
86
+ curatedTemplatesDescription:
87
+ "从经过审核的应用结构开始,然后打造属于你的应用。",
88
+ remix: "再创作",
89
+ remixTemplate: "再创作 {{name}}",
90
+ remixAppIdLabel: "新应用 ID",
91
+ remixStarted: "已开始再创作 {{name}}",
92
+ viewLiveApp: "查看在线应用",
93
+ alreadyInWorkspace: "已在工作区中",
94
+ remixAppIdDescription: "为新的工作区应用选择一个 URL 安全的 ID。",
95
+ integrationSetup: "集成设置",
96
+ source: "来源",
97
+ remixing: "正在再创作…",
98
+ remixSuccess: "已开始再创作模板。",
99
+ remixError: "无法再创作此模板",
100
+ appIdRequired: "应用 ID 是必填项。",
82
101
  hide: "隐藏",
83
102
  show: "Show",
84
103
  hiddenApps: "隐藏的应用程序",
@@ -73,12 +73,31 @@ const messages = {
73
73
  "「{{workspace}}」工作區中的應用程式。每個應用程式都會在此工作區下取得自己的路由,並共用資料庫、驗證與代理聊天。",
74
74
  appsInWorkspace: "{{workspace}} 中的應用程式",
75
75
  workspaceApps: "工作區應用程式",
76
+ otherApps: "其他應用程式",
77
+ otherAppsDescription: "開啟你可以使用的其他應用程式。",
78
+ availableCount: "可用 {{count}} 個",
76
79
  activeCount: "{{count}} 個作用中",
77
80
  hiddenCount: "{{count}} 個已隱藏",
78
81
  createApp: "建立應用程式",
79
82
  templates: "範本",
80
83
  checkingTemplates: "檢查可用範本",
81
84
  templatesAvailable: "{{count}} 個可用於產生架構",
85
+ curatedTemplates: "精選範本",
86
+ curatedTemplatesDescription:
87
+ "從經過審核的應用程式結構開始,打造屬於你的應用程式。",
88
+ remix: "重新混搭",
89
+ remixTemplate: "重新混搭 {{name}}",
90
+ remixAppIdLabel: "新應用程式 ID",
91
+ remixStarted: "已開始重新混搭 {{name}}",
92
+ viewLiveApp: "查看線上應用程式",
93
+ alreadyInWorkspace: "已在工作區中",
94
+ remixAppIdDescription: "為新的工作區應用程式選擇 URL 安全的 ID。",
95
+ integrationSetup: "整合設定",
96
+ source: "來源",
97
+ remixing: "正在重新混搭…",
98
+ remixSuccess: "已開始重新混搭範本。",
99
+ remixError: "無法重新混搭此範本",
100
+ appIdRequired: "應用程式 ID 為必填項目。",
82
101
  hide: "隱藏",
83
102
  show: "Show",
84
103
  hiddenApps: "隱藏的應用程式",