@agent-native/core 0.117.0 → 0.117.2

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 (357) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +16 -0
  3. package/corpus/core/package.json +2 -1
  4. package/corpus/core/src/cli/context-xray-local.ts +1 -1
  5. package/corpus/core/src/client/extensions/ExtensionViewer.tsx +4 -4
  6. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +11 -11
  7. package/corpus/core/src/client/extensions/agent-native-extension-runtime.ts +1 -1
  8. package/corpus/core/src/client/extensions/delete-extension.ts +2 -2
  9. package/corpus/core/src/client/org/OrgSwitcher.tsx +25 -1
  10. package/corpus/core/src/client/settings/SettingsPanel.tsx +102 -10
  11. package/corpus/core/src/client/sharing/ShareButton.tsx +7 -6
  12. package/corpus/core/src/db/client.ts +13 -10
  13. package/corpus/core/src/deploy/workspace-deploy.ts +14 -4
  14. package/corpus/core/src/extensions/actions.ts +13 -5
  15. package/corpus/core/src/extensions/local.ts +1 -0
  16. package/corpus/core/src/extensions/routes.ts +10 -5
  17. package/corpus/core/src/extensions/schema.ts +5 -0
  18. package/corpus/core/src/extensions/slots/store.ts +14 -4
  19. package/corpus/core/src/extensions/store.ts +55 -19
  20. package/corpus/core/src/extensions/theme.ts +1 -1
  21. package/corpus/core/src/file-upload/registry.ts +9 -0
  22. package/corpus/core/src/index.browser.ts +5 -0
  23. package/corpus/core/src/index.ts +1 -0
  24. package/corpus/core/src/localization/default-messages.ts +23 -6
  25. package/corpus/core/src/server/action-discovery.ts +8 -0
  26. package/corpus/core/src/server/better-auth-instance.ts +7 -2
  27. package/corpus/core/src/server/email-template.ts +18 -0
  28. package/corpus/core/src/server/email-templates.ts +3 -0
  29. package/corpus/core/src/server/email.ts +40 -4
  30. package/corpus/core/src/sharing/actions/share-resource.ts +1 -0
  31. package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  32. package/corpus/core/src/templates/default/app/global.css +1 -1
  33. package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +6 -6
  34. package/corpus/core/src/templates/default/app/i18n/de-DE.ts +6 -6
  35. package/corpus/core/src/templates/default/app/i18n/en-US.ts +6 -6
  36. package/corpus/core/src/templates/default/app/i18n/es-ES.ts +6 -6
  37. package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +6 -6
  38. package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +6 -6
  39. package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +6 -6
  40. package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +6 -6
  41. package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +6 -6
  42. package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +7 -7
  43. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +7 -7
  44. package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  45. package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  46. package/corpus/core/src/user-profile/actions/get-user-profile.ts +16 -0
  47. package/corpus/core/src/user-profile/actions/update-user-profile.ts +24 -0
  48. package/corpus/core/src/user-profile/index.ts +5 -0
  49. package/corpus/core/src/user-profile/shared.ts +14 -0
  50. package/corpus/core/src/user-profile/store.ts +50 -0
  51. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  52. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  53. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +2 -2
  54. package/corpus/templates/assets/app/global.css +1 -1
  55. package/corpus/templates/assets/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  56. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  57. package/corpus/templates/brain/app/global.css +2 -2
  58. package/corpus/templates/brain/app/lib/brain.ts +2 -2
  59. package/corpus/templates/brain/app/root.tsx +2 -2
  60. package/corpus/templates/brain/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  61. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  62. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +6 -2
  63. package/corpus/templates/calendar/app/global.css +1 -1
  64. package/corpus/templates/calendar/app/root.tsx +2 -2
  65. package/corpus/templates/calendar/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  66. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  67. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +2 -2
  68. package/corpus/templates/chat/app/global.css +1 -1
  69. package/corpus/templates/chat/app/root.tsx +2 -2
  70. package/corpus/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  71. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  72. package/corpus/templates/clips/actions/export-to-brain.ts +1 -1
  73. package/corpus/templates/clips/actions/invite-member.ts +1 -0
  74. package/corpus/templates/clips/app/components/library/library-layout.tsx +2 -2
  75. package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +20 -11
  76. package/corpus/templates/clips/app/global.css +1 -1
  77. package/corpus/templates/clips/app/root.tsx +7 -2
  78. package/corpus/templates/clips/app/routes/record.tsx +2 -88
  79. package/corpus/templates/clips/changelog/2026-07-22-builder-connected-recordings-start-resumable-upload-sessions.md +6 -0
  80. package/corpus/templates/clips/changelog/2026-07-22-clip-thumbnails-now-come-from-the-recording-instead-of-the-p.md +6 -0
  81. package/corpus/templates/clips/changelog/2026-07-22-clips-emails-now-render-the-agent-native-logo-in-gmail-and-o.md +6 -0
  82. package/corpus/templates/clips/changelog/2026-07-22-dismissed-zoom-and-teams-meeting-note-prompts-now-stay-dismi.md +6 -0
  83. package/corpus/templates/clips/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  84. package/corpus/templates/clips/changelog/2026-07-22-quieter-permissions-and-rewind-controls.md +6 -0
  85. package/corpus/templates/clips/desktop/src/app.tsx +86 -52
  86. package/corpus/templates/clips/desktop/src/lib/meeting-notification-dismissal.ts +31 -0
  87. package/corpus/templates/clips/desktop/src/lib/recorder.ts +4 -167
  88. package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +10 -1
  89. package/corpus/templates/clips/desktop/src/styles.css +98 -36
  90. package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +67 -4
  91. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -1
  92. package/corpus/templates/clips/desktop/src-tauri/src/meetings_watcher.rs +51 -0
  93. package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +5 -1
  94. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +0 -189
  95. package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +62 -0
  96. package/corpus/templates/clips/server/plugins/db.ts +6 -2
  97. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  98. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +3 -3
  99. package/corpus/templates/content/app/global.css +1 -1
  100. package/corpus/templates/content/app/root.tsx +2 -2
  101. package/corpus/templates/content/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  102. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  103. package/corpus/templates/crm/app/global.css +1 -1
  104. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  105. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +19 -1
  106. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +12 -1
  107. package/corpus/templates/design/app/components/design/EditPanel.tsx +177 -52
  108. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +179 -59
  109. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +74 -27
  110. package/corpus/templates/design/app/components/design/multi-screen/types.ts +2 -0
  111. package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -2
  112. package/corpus/templates/design/app/global.css +1 -1
  113. package/corpus/templates/design/app/hooks/use-navigation-state.ts +6 -5
  114. package/corpus/templates/design/app/root.tsx +2 -2
  115. package/corpus/templates/design/changelog/2026-07-22-design-owners-can-keep-editing-their-designs-after-switching.md +6 -0
  116. package/corpus/templates/design/changelog/2026-07-22-inspector-tabs-keep-their-text-labels-at-narrow-widths.md +6 -0
  117. package/corpus/templates/design/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  118. package/corpus/templates/design/changelog/2026-07-22-narrow-breakpoint-previews-keep-their-device-labels-readable.md +6 -0
  119. package/corpus/templates/design/changelog/2026-07-22-removed-the-draft-status-chip-from-the-design-editor.md +6 -0
  120. package/corpus/templates/design/changelog/2026-07-22-responsive-breakpoint-controls-stay-within-narrow-sidebars.md +6 -0
  121. package/corpus/templates/design/changelog/2026-07-22-responsive-peers-now-use-a-softer-selection-highlight-withou.md +6 -0
  122. package/corpus/templates/design/changelog/2026-07-22-rotate-from-context-menu.md +6 -0
  123. package/corpus/templates/design/changelog/2026-07-22-the-selection-outline-now-stays-attached-while-moving-screen.md +6 -0
  124. package/corpus/templates/design/changelog/2026-07-22-view-only-designs-now-support-figma-style-layer-inspection-w.md +6 -0
  125. package/corpus/templates/design/server/db/index.ts +4 -0
  126. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  127. package/corpus/templates/dispatch/app/dispatch-extensions.tsx +2 -2
  128. package/corpus/templates/dispatch/app/global.css +1 -1
  129. package/corpus/templates/dispatch/app/root.tsx +2 -2
  130. package/corpus/templates/dispatch/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  131. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  132. package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
  133. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  134. package/corpus/templates/forms/app/global.css +1 -1
  135. package/corpus/templates/forms/app/hooks/use-forms.ts +55 -2
  136. package/corpus/templates/forms/app/i18n/en-US.ts +2 -0
  137. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +3 -3
  138. package/corpus/templates/forms/app/pages/FormsListPage.tsx +23 -6
  139. package/corpus/templates/forms/app/root.tsx +2 -2
  140. package/corpus/templates/forms/changelog/2026-07-22-forms-now-archive-with-optimistic-feedback.md +6 -0
  141. package/corpus/templates/forms/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  142. package/corpus/templates/forms/server/plugins/agent-chat.ts +1 -1
  143. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  144. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +2 -2
  145. package/corpus/templates/macros/app/root.tsx +2 -2
  146. package/corpus/templates/macros/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  147. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  148. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +3 -3
  149. package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +2 -2
  150. package/corpus/templates/mail/app/global.css +1 -1
  151. package/corpus/templates/mail/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  152. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  153. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +2 -2
  154. package/corpus/templates/plan/app/global.css +1 -1
  155. package/corpus/templates/plan/app/root.tsx +2 -2
  156. package/corpus/templates/plan/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  157. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  158. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +2 -2
  159. package/corpus/templates/slides/app/root.tsx +2 -2
  160. package/corpus/templates/slides/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  161. package/corpus/templates/slides/changelog/2026-07-22-slides-no-longer-fail-intermittently-on-fresh-server-instances.md +6 -0
  162. package/corpus/templates/slides/changelog/2026-07-22-uploaded-screenshots-can-now-be-analyzed-and-recreated-as-ed.md +6 -0
  163. package/corpus/templates/slides/server/lib/chat-attachments.ts +7 -3
  164. package/corpus/templates/slides/server/plugins/db.ts +44 -17
  165. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  166. package/corpus/templates/tasks/app/global.css +1 -1
  167. package/dist/cli/context-xray-local.js +1 -1
  168. package/dist/cli/context-xray-local.js.map +1 -1
  169. package/dist/client/extensions/ExtensionViewer.js +2 -2
  170. package/dist/client/extensions/ExtensionViewer.js.map +1 -1
  171. package/dist/client/extensions/ExtensionsSidebarSection.js +11 -11
  172. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  173. package/dist/client/extensions/agent-native-extension-runtime.js +1 -1
  174. package/dist/client/extensions/agent-native-extension-runtime.js.map +1 -1
  175. package/dist/client/extensions/delete-extension.d.ts +1 -1
  176. package/dist/client/extensions/delete-extension.d.ts.map +1 -1
  177. package/dist/client/extensions/delete-extension.js +1 -1
  178. package/dist/client/extensions/delete-extension.js.map +1 -1
  179. package/dist/client/org/OrgSwitcher.d.ts +3 -1
  180. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  181. package/dist/client/org/OrgSwitcher.js +12 -4
  182. package/dist/client/org/OrgSwitcher.js.map +1 -1
  183. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  184. package/dist/client/settings/SettingsPanel.js +37 -4
  185. package/dist/client/settings/SettingsPanel.js.map +1 -1
  186. package/dist/client/sharing/ShareButton.d.ts +3 -4
  187. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  188. package/dist/client/sharing/ShareButton.js +3 -2
  189. package/dist/client/sharing/ShareButton.js.map +1 -1
  190. package/dist/collab/awareness.d.ts +2 -2
  191. package/dist/collab/awareness.d.ts.map +1 -1
  192. package/dist/collab/routes.d.ts +1 -1
  193. package/dist/collab/struct-routes.d.ts +1 -1
  194. package/dist/db/client.d.ts +7 -7
  195. package/dist/db/client.d.ts.map +1 -1
  196. package/dist/db/client.js +13 -10
  197. package/dist/db/client.js.map +1 -1
  198. package/dist/deploy/workspace-deploy.js +14 -4
  199. package/dist/deploy/workspace-deploy.js.map +1 -1
  200. package/dist/extensions/actions.d.ts.map +1 -1
  201. package/dist/extensions/actions.js +8 -5
  202. package/dist/extensions/actions.js.map +1 -1
  203. package/dist/extensions/local.d.ts.map +1 -1
  204. package/dist/extensions/local.js +1 -0
  205. package/dist/extensions/local.js.map +1 -1
  206. package/dist/extensions/routes.d.ts.map +1 -1
  207. package/dist/extensions/routes.js +9 -4
  208. package/dist/extensions/routes.js.map +1 -1
  209. package/dist/extensions/schema.d.ts +23 -2
  210. package/dist/extensions/schema.d.ts.map +1 -1
  211. package/dist/extensions/schema.js +5 -0
  212. package/dist/extensions/schema.js.map +1 -1
  213. package/dist/extensions/slots/store.d.ts +1 -1
  214. package/dist/extensions/slots/store.d.ts.map +1 -1
  215. package/dist/extensions/slots/store.js +4 -4
  216. package/dist/extensions/slots/store.js.map +1 -1
  217. package/dist/extensions/store.d.ts +1 -0
  218. package/dist/extensions/store.d.ts.map +1 -1
  219. package/dist/extensions/store.js +38 -21
  220. package/dist/extensions/store.js.map +1 -1
  221. package/dist/extensions/theme.js +1 -1
  222. package/dist/extensions/theme.js.map +1 -1
  223. package/dist/file-upload/registry.d.ts.map +1 -1
  224. package/dist/file-upload/registry.js +9 -0
  225. package/dist/file-upload/registry.js.map +1 -1
  226. package/dist/index.browser.d.ts +1 -0
  227. package/dist/index.browser.d.ts.map +1 -1
  228. package/dist/index.browser.js +1 -0
  229. package/dist/index.browser.js.map +1 -1
  230. package/dist/index.d.ts +1 -0
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +1 -0
  233. package/dist/index.js.map +1 -1
  234. package/dist/localization/default-messages.d.ts +16 -0
  235. package/dist/localization/default-messages.d.ts.map +1 -1
  236. package/dist/localization/default-messages.js +22 -6
  237. package/dist/localization/default-messages.js.map +1 -1
  238. package/dist/notifications/routes.d.ts +2 -2
  239. package/dist/observability/routes.d.ts +5 -5
  240. package/dist/progress/routes.d.ts +1 -1
  241. package/dist/provider-api/actions/custom-provider-registration.d.ts +7 -7
  242. package/dist/provider-api/actions/provider-api.d.ts +11 -11
  243. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  244. package/dist/secrets/routes.d.ts +6 -6
  245. package/dist/server/action-discovery.d.ts.map +1 -1
  246. package/dist/server/action-discovery.js +8 -0
  247. package/dist/server/action-discovery.js.map +1 -1
  248. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  249. package/dist/server/better-auth-instance.d.ts +7 -2
  250. package/dist/server/better-auth-instance.d.ts.map +1 -1
  251. package/dist/server/better-auth-instance.js.map +1 -1
  252. package/dist/server/email-template.d.ts +3 -0
  253. package/dist/server/email-template.d.ts.map +1 -1
  254. package/dist/server/email-template.js +13 -0
  255. package/dist/server/email-template.js.map +1 -1
  256. package/dist/server/email-templates.d.ts.map +1 -1
  257. package/dist/server/email-templates.js +3 -0
  258. package/dist/server/email-templates.js.map +1 -1
  259. package/dist/server/email.d.ts.map +1 -1
  260. package/dist/server/email.js +27 -4
  261. package/dist/server/email.js.map +1 -1
  262. package/dist/server/transcribe-voice.d.ts +1 -1
  263. package/dist/sharing/actions/share-resource.js +1 -0
  264. package/dist/sharing/actions/share-resource.js.map +1 -1
  265. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  266. package/dist/templates/chat/app/components/layout/Sidebar.tsx +2 -2
  267. package/dist/templates/chat/app/global.css +1 -1
  268. package/dist/templates/chat/app/root.tsx +2 -2
  269. package/dist/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  270. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  271. package/dist/templates/default/app/global.css +1 -1
  272. package/dist/templates/default/app/i18n/ar-SA.ts +6 -6
  273. package/dist/templates/default/app/i18n/de-DE.ts +6 -6
  274. package/dist/templates/default/app/i18n/en-US.ts +6 -6
  275. package/dist/templates/default/app/i18n/es-ES.ts +6 -6
  276. package/dist/templates/default/app/i18n/fr-FR.ts +6 -6
  277. package/dist/templates/default/app/i18n/hi-IN.ts +6 -6
  278. package/dist/templates/default/app/i18n/ja-JP.ts +6 -6
  279. package/dist/templates/default/app/i18n/ko-KR.ts +6 -6
  280. package/dist/templates/default/app/i18n/pt-BR.ts +6 -6
  281. package/dist/templates/default/app/i18n/zh-CN.ts +7 -7
  282. package/dist/templates/default/app/i18n/zh-TW.ts +7 -7
  283. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  284. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  285. package/dist/user-profile/actions/get-user-profile.d.ts +4 -0
  286. package/dist/user-profile/actions/get-user-profile.d.ts.map +1 -0
  287. package/dist/user-profile/actions/get-user-profile.js +14 -0
  288. package/dist/user-profile/actions/get-user-profile.js.map +1 -0
  289. package/dist/user-profile/actions/update-user-profile.d.ts +6 -0
  290. package/dist/user-profile/actions/update-user-profile.d.ts.map +1 -0
  291. package/dist/user-profile/actions/update-user-profile.js +20 -0
  292. package/dist/user-profile/actions/update-user-profile.js.map +1 -0
  293. package/dist/user-profile/index.d.ts +2 -0
  294. package/dist/user-profile/index.d.ts.map +1 -0
  295. package/dist/user-profile/index.js +2 -0
  296. package/dist/user-profile/index.js.map +1 -0
  297. package/dist/user-profile/shared.d.ts +7 -0
  298. package/dist/user-profile/shared.d.ts.map +1 -0
  299. package/dist/user-profile/shared.js +6 -0
  300. package/dist/user-profile/shared.js.map +1 -0
  301. package/dist/user-profile/store.d.ts +4 -0
  302. package/dist/user-profile/store.d.ts.map +1 -0
  303. package/dist/user-profile/store.js +38 -0
  304. package/dist/user-profile/store.js.map +1 -0
  305. package/package.json +2 -1
  306. package/src/cli/context-xray-local.ts +1 -1
  307. package/src/client/extensions/ExtensionViewer.tsx +4 -4
  308. package/src/client/extensions/ExtensionsSidebarSection.tsx +11 -11
  309. package/src/client/extensions/agent-native-extension-runtime.ts +1 -1
  310. package/src/client/extensions/delete-extension.ts +2 -2
  311. package/src/client/org/OrgSwitcher.tsx +25 -1
  312. package/src/client/settings/SettingsPanel.tsx +102 -10
  313. package/src/client/sharing/ShareButton.tsx +7 -6
  314. package/src/db/client.ts +13 -10
  315. package/src/deploy/workspace-deploy.ts +14 -4
  316. package/src/extensions/actions.ts +13 -5
  317. package/src/extensions/local.ts +1 -0
  318. package/src/extensions/routes.ts +10 -5
  319. package/src/extensions/schema.ts +5 -0
  320. package/src/extensions/slots/store.ts +14 -4
  321. package/src/extensions/store.ts +55 -19
  322. package/src/extensions/theme.ts +1 -1
  323. package/src/file-upload/registry.ts +9 -0
  324. package/src/index.browser.ts +5 -0
  325. package/src/index.ts +1 -0
  326. package/src/localization/default-messages.ts +23 -6
  327. package/src/server/action-discovery.ts +8 -0
  328. package/src/server/better-auth-instance.ts +7 -2
  329. package/src/server/email-template.ts +18 -0
  330. package/src/server/email-templates.ts +3 -0
  331. package/src/server/email.ts +40 -4
  332. package/src/sharing/actions/share-resource.ts +1 -0
  333. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  334. package/src/templates/chat/app/components/layout/Sidebar.tsx +2 -2
  335. package/src/templates/chat/app/global.css +1 -1
  336. package/src/templates/chat/app/root.tsx +2 -2
  337. package/src/templates/chat/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  338. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  339. package/src/templates/default/app/global.css +1 -1
  340. package/src/templates/default/app/i18n/ar-SA.ts +6 -6
  341. package/src/templates/default/app/i18n/de-DE.ts +6 -6
  342. package/src/templates/default/app/i18n/en-US.ts +6 -6
  343. package/src/templates/default/app/i18n/es-ES.ts +6 -6
  344. package/src/templates/default/app/i18n/fr-FR.ts +6 -6
  345. package/src/templates/default/app/i18n/hi-IN.ts +6 -6
  346. package/src/templates/default/app/i18n/ja-JP.ts +6 -6
  347. package/src/templates/default/app/i18n/ko-KR.ts +6 -6
  348. package/src/templates/default/app/i18n/pt-BR.ts +6 -6
  349. package/src/templates/default/app/i18n/zh-CN.ts +7 -7
  350. package/src/templates/default/app/i18n/zh-TW.ts +7 -7
  351. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  352. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +6 -0
  353. package/src/user-profile/actions/get-user-profile.ts +16 -0
  354. package/src/user-profile/actions/update-user-profile.ts +24 -0
  355. package/src/user-profile/index.ts +5 -0
  356. package/src/user-profile/shared.ts +14 -0
  357. package/src/user-profile/store.ts +50 -0
@@ -69,6 +69,15 @@ export async function getActiveFileUploadProviderForRequest(): Promise<FileUploa
69
69
  if (builderFileUploadProvider.isConfigured()) {
70
70
  return builderFileUploadProvider;
71
71
  }
72
+ try {
73
+ const { resolveHasBuilderPrivateKey } =
74
+ await import("../server/credential-provider.js");
75
+ if (await resolveHasBuilderPrivateKey()) {
76
+ return builderFileUploadProvider;
77
+ }
78
+ } catch {
79
+ // Treat failed scoped credential lookups as unavailable.
80
+ }
72
81
  return null;
73
82
  }
74
83
 
@@ -100,6 +100,11 @@ export {
100
100
  type ActionMcpAppResourceConfig,
101
101
  type ActionMcpAppResourceMeta,
102
102
  } from "./action.js";
103
+ export {
104
+ normalizeUserProfileName,
105
+ USER_PROFILE_SETTING_KEY,
106
+ type UserProfile,
107
+ } from "./user-profile/index.js";
103
108
  export {
104
109
  ACTION_CHAT_UI_DATA_CHART_RENDERER,
105
110
  ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER,
package/src/index.ts CHANGED
@@ -41,6 +41,7 @@ export {
41
41
  type ActionMcpAppResourceConfig,
42
42
  type ActionMcpAppResourceMeta,
43
43
  } from "./action.js";
44
+ export * from "./user-profile/index.js";
44
45
  export {
45
46
  embedApp,
46
47
  MCP_APP_REQUEST_ORIGIN_CSP_SOURCE,
@@ -32,6 +32,23 @@ const messages = {
32
32
  openTeamSettings: "Open team settings",
33
33
  openResourceSettings: "Open resource settings",
34
34
  backHome: "Back to home",
35
+ profileTitle: "Account",
36
+ profileDescription: "Your name, profile photo, and signed-in identity.",
37
+ profileLoading: "Loading...",
38
+ profileSignedOut: "Signed out",
39
+ profilePhotoUpdated: "Photo updated",
40
+ profilePhotoError: "Could not update photo",
41
+ profileUploading: "Uploading...",
42
+ profileChangePhoto: "Change photo",
43
+ profileNameLabel: "Name",
44
+ profileNamePlaceholder: "Your name",
45
+ profileNameDescription:
46
+ "This name is used when referring to you across Agent-Native apps.",
47
+ profileSave: "Save changes",
48
+ profileSaving: "Saving...",
49
+ profileSaved: "Profile updated",
50
+ profileSaveError: "Could not update profile",
51
+ profileMenuItem: "Profile",
35
52
  },
36
53
  agentResources: {
37
54
  openDocs: "Open {{section}} documentation",
@@ -634,23 +651,23 @@ const messages = {
634
651
  hideEveryone: "Hide from everyone",
635
652
  localFileDescription:
636
653
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
637
- deleteQuestion: "Delete {{name}}?",
654
+ deleteQuestion: "Archive {{name}}?",
638
655
  removeQuestion: "Remove {{name}}?",
639
656
  hideForYouDescription:
640
657
  "This hides it from your Extensions list without deleting it for anyone else.",
641
- removeEverywhereDescription: "This removes it everywhere it is shared.",
658
+ removeEverywhereDescription: "This archives it everywhere it is shared.",
642
659
  cancel: "Cancel",
643
660
  remove: "Remove",
644
661
  removing: "Removing...",
645
- delete: "Delete",
646
- deleting: "Deleting...",
662
+ delete: "Archive",
663
+ deleting: "Archiving...",
647
664
  openFullView: "Open full view",
648
665
  removeFromWidgetArea: "Remove from this widget area",
649
- deleteExtensionEllipsis: "Delete extension...",
666
+ deleteExtensionEllipsis: "Archive extension...",
650
667
  removeFromMyListEllipsis: "Remove from my list...",
651
668
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
652
669
  deleteEverywhereConfirmation:
653
- "This removes the extension everywhere, for everyone it's shared with.",
670
+ "This archives the extension everywhere, for everyone it's shared with.",
654
671
  addWidget: "Add widget",
655
672
  loading: "Loading...",
656
673
  noWidgetsAvailable: "No widgets available for this slot yet.",
@@ -658,6 +658,14 @@ export async function mergeCoreSharingActions(
658
658
  "set-localization-preference",
659
659
  () => import("../localization/actions/set-localization-preference.js"),
660
660
  ],
661
+ [
662
+ "get-user-profile",
663
+ () => import("../user-profile/actions/get-user-profile.js"),
664
+ ],
665
+ [
666
+ "update-user-profile",
667
+ () => import("../user-profile/actions/update-user-profile.js"),
668
+ ],
661
669
  [
662
670
  "change-appearance",
663
671
  () => import("../appearance/actions/change-appearance.js"),
@@ -740,8 +740,8 @@ export function getBetterAuthSync(): BetterAuthInstance | undefined {
740
740
  * The subset of Better Auth's internal adapter we use for federated-SSO
741
741
  * JIT account linking. Better Auth owns these writes (id + timestamp +
742
742
  * schema handling), so callers never hand-roll SQL against `user`/`account`.
743
- * Read-only lookups + strictly-additive `linkAccount`/`createUser` only no
744
- * update/delete of existing identity rows.
743
+ * Read-only lookups plus account-linking and profile-update operations used by
744
+ * shared Core surfaces. Better Auth owns the actual identity writes.
745
745
  */
746
746
  export interface BetterAuthInternalAdapter {
747
747
  findUserByEmail: (
@@ -761,6 +761,11 @@ export interface BetterAuthInternalAdapter {
761
761
  name: string;
762
762
  emailVerified?: boolean;
763
763
  }) => Promise<{ id: string }>;
764
+ /** Optional because older/custom adapter shapes may not expose mutations. */
765
+ updateUser?: (
766
+ userId: string,
767
+ data: { name?: string; image?: string | null },
768
+ ) => Promise<unknown>;
764
769
  }
765
770
 
766
771
  /**
@@ -18,6 +18,10 @@
18
18
  * });
19
19
  */
20
20
 
21
+ import { getAppName } from "./app-name.js";
22
+
23
+ export const AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID = "agent-native-logo";
24
+
21
25
  export interface EmailCta {
22
26
  label: string;
23
27
  url: string;
@@ -34,6 +38,8 @@ export interface RenderEmailArgs {
34
38
  cta?: EmailCta;
35
39
  /** Small muted text under the CTA (e.g. expiry note). */
36
40
  footer?: string;
41
+ /** Optional app name shown beside the framework logo. */
42
+ brandName?: string;
37
43
  /**
38
44
  * Optional brand hex color for the CTA button and inline links. Defaults to
39
45
  * a monochrome near-white button with dark text.
@@ -71,6 +77,7 @@ function sanitizeHexColor(input: string | undefined): string | undefined {
71
77
  export function renderEmail(args: RenderEmailArgs): RenderedEmail {
72
78
  const preheader = args.preheader || "";
73
79
  const brand = sanitizeHexColor(args.brandColor);
80
+ const brandName = args.brandName?.trim() || getAppName() || "Agent Native";
74
81
 
75
82
  // Monochrome default: near-white button with dark text. Brand override:
76
83
  // colored button with white text.
@@ -104,6 +111,16 @@ export function renderEmail(args: RenderEmailArgs): RenderedEmail {
104
111
  ? `<p style="margin:28px 0 0 0; font-size:13px; line-height:1.5; color:#71717a;">${escapeHtml(args.footer)}</p>`
105
112
  : "";
106
113
 
114
+ const brandHeaderHtml = `
115
+ <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" style="margin:0 0 28px 0; padding:0 0 24px 0; border-bottom:1px solid #27272a;">
116
+ <tr>
117
+ <td align="center">
118
+ <img src="cid:${AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID}" alt="${escapeAttr(brandName)}" width="28" height="28" style="display:inline-block; vertical-align:middle; width:28px; height:28px; margin:0 8px 0 0; border:0;" />
119
+ <span style="font-size:18px; line-height:28px; font-weight:600; color:#fafafa; vertical-align:middle;">${escapeHtml(brandName)}</span>
120
+ </td>
121
+ </tr>
122
+ </table>`;
123
+
107
124
  const html = `<!DOCTYPE html>
108
125
  <html lang="en">
109
126
  <head>
@@ -129,6 +146,7 @@ export function renderEmail(args: RenderEmailArgs): RenderedEmail {
129
146
  <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" style="max-width:560px;">
130
147
  <tr>
131
148
  <td style="background-color:#141417; border:1px solid #27272a; border-radius:16px; padding:36px 36px 32px 36px;">
149
+ ${brandHeaderHtml}
132
150
  <h1 style="margin:0 0 20px 0; font-size:24px; line-height:1.3; font-weight:600; color:#fafafa; letter-spacing:-0.02em;">
133
151
  ${escapeHtml(args.heading)}
134
152
  </h1>
@@ -58,6 +58,7 @@ export function renderInviteEmail(
58
58
  const onApp = appName ? ` on ${appName}` : "";
59
59
 
60
60
  const { html, text } = renderEmail({
61
+ brandName: appName,
61
62
  preheader: `${inviter} invited you to join ${orgName}${onApp}.`,
62
63
  heading: `You're invited to join ${orgName}`,
63
64
  paragraphs: [
@@ -95,6 +96,7 @@ export function renderVerifySignupEmail(
95
96
  const appName = resolveAppName();
96
97
 
97
98
  const { html, text } = renderEmail({
99
+ brandName: appName,
98
100
  preheader: `Confirm ${email} to finish setting up your ${appName} account.`,
99
101
  heading: `Verify your email for ${appName}`,
100
102
  paragraphs: [
@@ -130,6 +132,7 @@ export function renderResetPasswordEmail(
130
132
  const appName = resolveAppName();
131
133
 
132
134
  const { html, text } = renderEmail({
135
+ brandName: appName,
133
136
  preheader: `Reset the password for ${email}. This link expires in 1 hour.`,
134
137
  heading: `Reset your ${appName} password`,
135
138
  paragraphs: [
@@ -10,7 +10,10 @@
10
10
  * so the reset-password flow still works end-to-end for local development.
11
11
  */
12
12
 
13
+ import { readFileSync } from "node:fs";
14
+
13
15
  import { resolveSecret } from "./credential-provider.js";
16
+ import { AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID } from "./email-template.js";
14
17
 
15
18
  export type EmailProvider = "resend" | "sendgrid" | "dev";
16
19
 
@@ -35,6 +38,38 @@ export interface SendEmailArgs {
35
38
  attachments?: EmailAttachment[];
36
39
  }
37
40
 
41
+ let cachedAgentNativeLogo: Buffer | undefined;
42
+
43
+ function getAgentNativeLogoAttachment(): EmailAttachment {
44
+ cachedAgentNativeLogo ??= readFileSync(
45
+ new URL("../../src/assets/branding/favicon.png", import.meta.url),
46
+ );
47
+ return {
48
+ filename: "agent-native-logo.png",
49
+ content: cachedAgentNativeLogo,
50
+ contentType: "image/png",
51
+ contentId: AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID,
52
+ disposition: "inline",
53
+ };
54
+ }
55
+
56
+ function resolveAttachments(
57
+ args: SendEmailArgs,
58
+ ): EmailAttachment[] | undefined {
59
+ if (!args.html.includes(`cid:${AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID}`)) {
60
+ return args.attachments;
61
+ }
62
+ if (
63
+ args.attachments?.some(
64
+ (attachment) =>
65
+ attachment.contentId === AGENT_NATIVE_EMAIL_LOGO_CONTENT_ID,
66
+ )
67
+ ) {
68
+ return args.attachments;
69
+ }
70
+ return [...(args.attachments ?? []), getAgentNativeLogoAttachment()];
71
+ }
72
+
38
73
  interface EmailTransportConfig {
39
74
  provider: EmailProvider;
40
75
  resendApiKey?: string;
@@ -94,6 +129,7 @@ export async function sendEmail(args: SendEmailArgs): Promise<void> {
94
129
  const config = await resolveEmailTransport();
95
130
  const provider = config.provider;
96
131
  const from = getFromAddress(config, args.from);
132
+ const attachments = resolveAttachments(args);
97
133
 
98
134
  if (provider === "resend") {
99
135
  const payload: Record<string, unknown> = {
@@ -105,8 +141,8 @@ export async function sendEmail(args: SendEmailArgs): Promise<void> {
105
141
  };
106
142
  if (args.cc) payload.cc = Array.isArray(args.cc) ? args.cc : [args.cc];
107
143
  if (args.replyTo) payload.reply_to = args.replyTo;
108
- if (args.attachments?.length) {
109
- payload.attachments = args.attachments.map((a) => ({
144
+ if (attachments?.length) {
145
+ payload.attachments = attachments.map((a) => ({
110
146
  filename: a.filename,
111
147
  content:
112
148
  typeof a.content === "string"
@@ -159,8 +195,8 @@ export async function sendEmail(args: SendEmailArgs): Promise<void> {
159
195
  if (args.inReplyTo) sgHeaders["In-Reply-To"] = args.inReplyTo;
160
196
  if (args.references) sgHeaders["References"] = args.references;
161
197
  if (Object.keys(sgHeaders).length) sgPayload.headers = sgHeaders;
162
- if (args.attachments?.length) {
163
- sgPayload.attachments = args.attachments.map((a) => ({
198
+ if (attachments?.length) {
199
+ sgPayload.attachments = attachments.map((a) => ({
164
200
  filename: a.filename,
165
201
  content:
166
202
  typeof a.content === "string"
@@ -299,6 +299,7 @@ export default defineAction({
299
299
  process.env.APP_NAME || process.env.VITE_APP_NAME || "Agent Native";
300
300
  const subject = `${actor} shared "${resourceTitle}" with you on ${appName}`;
301
301
  const { html, text } = renderEmail({
302
+ brandName: appName,
302
303
  preheader: subject,
303
304
  heading: "You've been given access",
304
305
  paragraphs: [
@@ -59,6 +59,12 @@ quick controls and deep links such as:
59
59
  - `/settings/usage`
60
60
  - `/settings/apps/:appId`
61
61
 
62
+ The shared Account section is the canonical profile surface at
63
+ `/settings#account`. It owns the editable display name and existing avatar
64
+ control through the authenticated `get-user-profile` and `update-user-profile`
65
+ actions. Shared workspace chrome such as `OrgSwitcher` should link to this
66
+ surface rather than creating an app-local profile page.
67
+
62
68
  When adding a new API key, OAuth grant, provider connection, model selector, app
63
69
  preference, notification preference, or usage/billing surface, register it as a
64
70
  settings tab or app settings panel first. Only add sidebar UI when it is needed
@@ -13,7 +13,7 @@ import {
13
13
  type ChatHistoryItem,
14
14
  } from "@agent-native/toolkit/chat-history";
15
15
  import {
16
- IconBrain,
16
+ IconHierarchy2,
17
17
  IconLayoutSidebarLeftCollapse,
18
18
  IconLayoutSidebarLeftExpand,
19
19
  IconMessageCircle,
@@ -39,7 +39,7 @@ const navItems = [
39
39
  view: "chat",
40
40
  },
41
41
  {
42
- icon: IconBrain,
42
+ icon: IconHierarchy2,
43
43
  labelKey: "settings.agentTitle",
44
44
  href: "/agent",
45
45
  view: "agent",
@@ -53,7 +53,7 @@
53
53
  --muted-foreground: 0 0% 60%;
54
54
  --accent: 0 0% 18%;
55
55
  --accent-foreground: 0 0% 90%;
56
- --destructive: 0 63% 51%;
56
+ --destructive: 0 84% 60%;
57
57
  --destructive-foreground: 0 0% 98%;
58
58
  --border: 0 0% 24%;
59
59
  --input: 0 0% 24%;
@@ -11,7 +11,7 @@ import {
11
11
  useCommandMenuShortcut,
12
12
  } from "@agent-native/core/client/navigation";
13
13
  import { getThemeInitScript } from "@agent-native/core/client/ui";
14
- import { IconBrain, IconSun, IconMoon } from "@tabler/icons-react";
14
+ import { IconHierarchy2, IconSun, IconMoon } from "@tabler/icons-react";
15
15
  import { useQueryClient } from "@tanstack/react-query";
16
16
  import { useTheme } from "next-themes";
17
17
  import { useCallback, useState } from "react";
@@ -143,7 +143,7 @@ function AppContent() {
143
143
  "access",
144
144
  ]}
145
145
  >
146
- <IconBrain size={16} />
146
+ <IconHierarchy2 size={16} />
147
147
  {t("settings.openAgentSettings")}
148
148
  </CommandMenu.Item>
149
149
  </CommandMenu.Group>
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-22
4
+ ---
5
+
6
+ Manage agent navigation now uses the connected-nodes icon.
@@ -59,6 +59,12 @@ quick controls and deep links such as:
59
59
  - `/settings/usage`
60
60
  - `/settings/apps/:appId`
61
61
 
62
+ The shared Account section is the canonical profile surface at
63
+ `/settings#account`. It owns the editable display name and existing avatar
64
+ control through the authenticated `get-user-profile` and `update-user-profile`
65
+ actions. Shared workspace chrome such as `OrgSwitcher` should link to this
66
+ surface rather than creating an app-local profile page.
67
+
62
68
  When adding a new API key, OAuth grant, provider connection, model selector, app
63
69
  preference, notification preference, or usage/billing surface, register it as a
64
70
  settings tab or app settings panel first. Only add sidebar UI when it is needed
@@ -52,7 +52,7 @@
52
52
  --muted-foreground: 0 0% 60%;
53
53
  --accent: 0 0% 18%;
54
54
  --accent-foreground: 0 0% 90%;
55
- --destructive: 0 63% 51%;
55
+ --destructive: 0 84% 60%;
56
56
  --destructive-foreground: 0 0% 98%;
57
57
  --border: 0 0% 24%;
58
58
  --input: 0 0% 24%;
@@ -359,24 +359,24 @@ const messages = {
359
359
  hideEveryone: "إخفاء من الجميع",
360
360
  localFileDescription:
361
361
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
362
- deleteQuestion: "Delete {{name}}?",
362
+ deleteQuestion: "هل تريد أرشفة {{name}}؟",
363
363
  removeQuestion: "Remove {{name}}?",
364
364
  hideForYouDescription:
365
365
  "يؤدي هذا إلى إخفائه من قائمة الإضافات الخاصة بك دون حذفه لأي شخص آخر.",
366
366
  removeEverywhereDescription:
367
- "يؤدي هذا إلى إزالته في كل مكان تتم مشاركته فيه.",
367
+ "يؤدي هذا إلى أرشفته في كل مكان تتم مشاركته فيه.",
368
368
  cancel: "إلغاء",
369
369
  remove: "إزالة",
370
370
  removing: "جارٍ الإزالة...",
371
- delete: "حذف",
372
- deleting: "جار الحذف...",
371
+ delete: "أرشفة",
372
+ deleting: "جارٍ الأرشفة...",
373
373
  openFullView: "فتح عرض كامل",
374
374
  removeFromWidgetArea: "إزالة من منطقة القطعة هذه",
375
- deleteExtensionEllipsis: "حذف الامتداد...",
375
+ deleteExtensionEllipsis: "أرشفة الامتداد...",
376
376
  removeFromMyListEllipsis: "إزالة من قائمتي...",
377
377
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
378
378
  deleteEverywhereConfirmation:
379
- "يؤدي هذا إلى إزالة الامتداد في كل مكان، لكل شخص تمت مشاركته معه.",
379
+ "يؤدي هذا إلى أرشفة الامتداد في كل مكان، لكل شخص تمت مشاركته معه.",
380
380
  addWidget: "إضافة القطعة",
381
381
  loading: "جار التحميل...",
382
382
  noWidgetsAvailable: "لا توجد أدوات متاحة لهذه الفتحة حتى الآن.",
@@ -352,24 +352,24 @@ const messages = {
352
352
  hideEveryone: "Versteck dich vor allen",
353
353
  localFileDescription:
354
354
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
355
- deleteQuestion: "Delete {{name}}?",
355
+ deleteQuestion: "{{name}} archivieren?",
356
356
  removeQuestion: "Remove {{name}}?",
357
357
  hideForYouDescription:
358
358
  "Dadurch wird es aus Ihrer Erweiterungsliste ausgeblendet, ohne dass es für andere gelöscht wird.",
359
359
  removeEverywhereDescription:
360
- "Dadurch wird es überall dort entfernt, wo es geteilt wird.",
360
+ "Dadurch wird es überall dort archiviert, wo es geteilt wird.",
361
361
  cancel: "Abbrechen",
362
362
  remove: "Entfernen",
363
363
  removing: "Entfernen...",
364
- delete: "Löschen",
365
- deleting: "Wird gelöscht...",
364
+ delete: "Archivieren",
365
+ deleting: "Wird archiviert...",
366
366
  openFullView: "Vollansicht öffnen",
367
367
  removeFromWidgetArea: "Aus diesem Widget-Bereich entfernen",
368
- deleteExtensionEllipsis: "Erweiterung löschen...",
368
+ deleteExtensionEllipsis: "Erweiterung archivieren...",
369
369
  removeFromMyListEllipsis: "Von meiner Liste entfernen...",
370
370
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
371
371
  deleteEverywhereConfirmation:
372
- "Dadurch wird die Erweiterung überall und für alle entfernt, mit denen sie geteilt wird.",
372
+ "Dadurch wird die Erweiterung überall und für alle archiviert, mit denen sie geteilt wird.",
373
373
  addWidget: "Widget hinzufügen",
374
374
  loading: "Wird geladen...",
375
375
  noWidgetsAvailable: "Für diesen Slot sind noch keine Widgets verfügbar.",
@@ -344,23 +344,23 @@ const messages = {
344
344
  hideEveryone: "Hide from everyone",
345
345
  localFileDescription:
346
346
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
347
- deleteQuestion: "Delete {{name}}?",
347
+ deleteQuestion: "Archive {{name}}?",
348
348
  removeQuestion: "Remove {{name}}?",
349
349
  hideForYouDescription:
350
350
  "This hides it from your Extensions list without deleting it for anyone else.",
351
- removeEverywhereDescription: "This removes it everywhere it is shared.",
351
+ removeEverywhereDescription: "This archives it everywhere it is shared.",
352
352
  cancel: "Cancel",
353
353
  remove: "Remove",
354
354
  removing: "Removing...",
355
- delete: "Delete",
356
- deleting: "Deleting...",
355
+ delete: "Archive",
356
+ deleting: "Archiving...",
357
357
  openFullView: "Open full view",
358
358
  removeFromWidgetArea: "Remove from this widget area",
359
- deleteExtensionEllipsis: "Delete extension...",
359
+ deleteExtensionEllipsis: "Archive extension...",
360
360
  removeFromMyListEllipsis: "Remove from my list...",
361
361
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
362
362
  deleteEverywhereConfirmation:
363
- "This removes the extension everywhere, for everyone it's shared with.",
363
+ "This archives the extension everywhere, for everyone it's shared with.",
364
364
  addWidget: "Add widget",
365
365
  loading: "Loading...",
366
366
  noWidgetsAvailable: "No widgets available for this slot yet.",
@@ -355,24 +355,24 @@ const messages = {
355
355
  hideEveryone: "esconderse de todos",
356
356
  localFileDescription:
357
357
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
358
- deleteQuestion: "Delete {{name}}?",
358
+ deleteQuestion: "¿Archivar {{name}}?",
359
359
  removeQuestion: "Remove {{name}}?",
360
360
  hideForYouDescription:
361
361
  "Esto lo oculta de su lista de Extensiones sin eliminarlo para nadie más.",
362
362
  removeEverywhereDescription:
363
- "Esto lo elimina en todos los lugares donde se comparte.",
363
+ "Esto lo archiva en todos los lugares donde se comparte.",
364
364
  cancel: "Cancelar",
365
365
  remove: "Eliminar",
366
366
  removing: "Eliminando...",
367
- delete: "Eliminar",
368
- deleting: "Eliminando...",
367
+ delete: "Archivar",
368
+ deleting: "Archivando...",
369
369
  openFullView: "Abrir vista completa",
370
370
  removeFromWidgetArea: "Eliminar de esta área de widgets",
371
- deleteExtensionEllipsis: "Eliminar extensión...",
371
+ deleteExtensionEllipsis: "Archivar extensión...",
372
372
  removeFromMyListEllipsis: "Quitar de mi lista...",
373
373
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
374
374
  deleteEverywhereConfirmation:
375
- "Esto elimina la extensión en todas partes, para todas las personas con las que se comparte.",
375
+ "Esto archiva la extensión en todas partes, para todas las personas con las que se comparte.",
376
376
  addWidget: "Agregar widget",
377
377
  loading: "Cargando...",
378
378
  noWidgetsAvailable:
@@ -355,23 +355,23 @@ const messages = {
355
355
  hideEveryone: "Cacher de tout le monde",
356
356
  localFileDescription:
357
357
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
358
- deleteQuestion: "Delete {{name}}?",
358
+ deleteQuestion: "Archiver {{name}} ?",
359
359
  removeQuestion: "Remove {{name}}?",
360
360
  hideForYouDescription:
361
361
  "Cela le masque de votre liste d'extensions sans le supprimer pour quelqu'un d'autre.",
362
- removeEverywhereDescription: "Cela le supprime partout où il est partagé.",
362
+ removeEverywhereDescription: "Cela l’archive partout où il est partagé.",
363
363
  cancel: "Annuler",
364
364
  remove: "Retirer",
365
365
  removing: "Suppression...",
366
- delete: "Supprimer",
367
- deleting: "Suppression...",
366
+ delete: "Archiver",
367
+ deleting: "Archivage...",
368
368
  openFullView: "Ouvrir la vue complète",
369
369
  removeFromWidgetArea: "Supprimer de cette zone de widget",
370
- deleteExtensionEllipsis: "Supprimer l'extension...",
370
+ deleteExtensionEllipsis: "Archiver l'extension...",
371
371
  removeFromMyListEllipsis: "Supprimer de ma liste...",
372
372
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
373
373
  deleteEverywhereConfirmation:
374
- "Cela supprime l'extension partout, pour toutes les personnes avec lesquelles elle est partagée.",
374
+ "Cela archive l'extension partout, pour toutes les personnes avec lesquelles elle est partagée.",
375
375
  addWidget: "Ajouter un widget",
376
376
  loading: "Chargement...",
377
377
  noWidgetsAvailable:
@@ -338,24 +338,24 @@ const messages = {
338
338
  hideEveryone: "सबसे छुपाओ",
339
339
  localFileDescription:
340
340
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
341
- deleteQuestion: "Delete {{name}}?",
341
+ deleteQuestion: "{{name}} को संग्रहित करें?",
342
342
  removeQuestion: "Remove {{name}}?",
343
343
  hideForYouDescription:
344
344
  "यह इसे किसी अन्य के लिए हटाए बिना आपकी एक्सटेंशन सूची से छिपा देता है।",
345
345
  removeEverywhereDescription:
346
- "यह इसे हर जगह से हटा देता है जहां इसे साझा किया गया है।",
346
+ "यह इसे साझा किए गए हर स्थान पर संग्रहित कर देता है।",
347
347
  cancel: "रद्द करें",
348
348
  remove: "हटाएं",
349
349
  removing: "हटाया जा रहा है...",
350
- delete: "हटाएं",
351
- deleting: "हटाया जा रहा है...",
350
+ delete: "संग्रहित करें",
351
+ deleting: "संग्रहित किया जा रहा है...",
352
352
  openFullView: "पूरा दृश्य खोलें",
353
353
  removeFromWidgetArea: "इस विजेट क्षेत्र से हटाएँ",
354
- deleteExtensionEllipsis: "एक्सटेंशन हटाएं...",
354
+ deleteExtensionEllipsis: "एक्सटेंशन संग्रहित करें...",
355
355
  removeFromMyListEllipsis: "मेरी सूची से हटाएं...",
356
356
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
357
357
  deleteEverywhereConfirmation:
358
- "यह एक्सटेंशन को हर जगह से हटा देता है, उन सभी के लिए जिनके साथ इसे साझा किया गया है।",
358
+ "यह एक्सटेंशन को साझा किए गए हर स्थान पर, सभी लोगों के लिए संग्रहित कर देता है।",
359
359
  addWidget: "विजेट जोड़ें",
360
360
  loading: "लोड हो रहा है...",
361
361
  noWidgetsAvailable: "इस स्लॉट के लिए अभी तक कोई विजेट उपलब्ध नहीं है।",
@@ -344,24 +344,24 @@ const messages = {
344
344
  hideEveryone: "みんなから隠れて",
345
345
  localFileDescription:
346
346
  "This extension is backed by {{entryPath}}. Edit or remove it from the workspace.",
347
- deleteQuestion: "Delete {{name}}?",
347
+ deleteQuestion: "{{name}}をアーカイブしますか?",
348
348
  removeQuestion: "Remove {{name}}?",
349
349
  hideForYouDescription:
350
350
  "これにより、他のユーザーが削除することなく、拡張機能リストから非表示になります。",
351
351
  removeEverywhereDescription:
352
- "これにより、共有されているすべての場所で削除されます。",
352
+ "これにより、共有されているすべての場所でアーカイブされます。",
353
353
  cancel: "キャンセル",
354
354
  remove: "削除",
355
355
  removing: "削除中...",
356
- delete: "削除",
357
- deleting: "削除中...",
356
+ delete: "アーカイブ",
357
+ deleting: "アーカイブ中...",
358
358
  openFullView: "フルビューを開く",
359
359
  removeFromWidgetArea: "このウィジェット領域から削除する",
360
- deleteExtensionEllipsis: "拡張機能を削除...",
360
+ deleteExtensionEllipsis: "拡張機能をアーカイブ...",
361
361
  removeFromMyListEllipsis: "リストから削除...",
362
362
  removeFromWidgetAreaForMe: "Remove from this widget area (for me)",
363
363
  deleteEverywhereConfirmation:
364
- "これにより、共有されているすべてのユーザーの拡張機能がどこからでも削除されます。",
364
+ "これにより、共有されているすべてのユーザーの拡張機能がどこからでもアーカイブされます。",
365
365
  addWidget: "ウィジェットを追加する",
366
366
  loading: "読み込み中...",
367
367
  noWidgetsAvailable: