@agent-native/core 0.132.2 → 0.133.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 (436) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +161 -0
  3. package/corpus/core/package.json +1 -1
  4. package/corpus/core/src/a2a/correlation.ts +11 -1
  5. package/corpus/core/src/a2a/types.ts +11 -3
  6. package/corpus/core/src/agent/engine/ai-sdk-engine.ts +33 -46
  7. package/corpus/core/src/agent/engine/builder-engine.ts +22 -10
  8. package/corpus/core/src/agent/engine/error-detail.ts +184 -3
  9. package/corpus/core/src/agent/engine/failure-taxonomy.ts +123 -0
  10. package/corpus/core/src/agent/engine/index.ts +8 -0
  11. package/corpus/core/src/agent/engine/registry.ts +92 -8
  12. package/corpus/core/src/agent/engine/translate-ai-sdk.ts +17 -2
  13. package/corpus/core/src/agent/production-agent.ts +13 -33
  14. package/corpus/core/src/agent/run-loop-with-resume.ts +1 -1
  15. package/corpus/core/src/agent/run-manager.ts +43 -14
  16. package/corpus/core/src/agent/run-store.ts +30 -3
  17. package/corpus/core/src/agent/thread-data-builder.ts +36 -4
  18. package/corpus/core/src/cli/templates-meta.ts +13 -0
  19. package/corpus/core/src/cli/workspace-dev.ts +1 -0
  20. package/corpus/core/src/client/error-format.ts +12 -0
  21. package/corpus/core/src/credentials/index.ts +51 -12
  22. package/corpus/core/src/extensions/url-safety.ts +46 -12
  23. package/corpus/core/src/integrations/adapters/slack.ts +32 -10
  24. package/corpus/core/src/integrations/google-docs-poller.ts +12 -1
  25. package/corpus/core/src/integrations/installations-store.ts +30 -0
  26. package/corpus/core/src/integrations/plugin.ts +5 -5
  27. package/corpus/core/src/integrations/types.ts +7 -0
  28. package/corpus/core/src/integrations/webhook-handler.ts +24 -1
  29. package/corpus/core/src/jobs/background-automation-runner.ts +38 -1
  30. package/corpus/core/src/provider-api/index.ts +8 -2
  31. package/corpus/core/src/scripts/call-agent.ts +6 -0
  32. package/corpus/core/src/server/agent-chat-plugin.ts +30 -9
  33. package/corpus/core/src/server/agent-discovery.ts +2 -0
  34. package/corpus/core/src/server/builder-design-systems.ts +21 -0
  35. package/corpus/core/src/server/credential-provider.ts +51 -12
  36. package/corpus/core/src/server/index.ts +1 -0
  37. package/corpus/core/src/server/onboarding-html.ts +37 -2
  38. package/corpus/core/src/shared/reasoning-effort.ts +1 -1
  39. package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
  40. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +6 -2
  41. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +39 -19
  42. package/corpus/templates/assets/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  43. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +30 -3
  44. package/corpus/templates/brain/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  45. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
  46. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +54 -25
  47. package/corpus/templates/calendar/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  48. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +30 -3
  49. package/corpus/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  50. package/corpus/templates/clips/app/components/library/library-layout.tsx +37 -21
  51. package/corpus/templates/clips/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  52. package/corpus/templates/clips/desktop/src/hooks/useMediaDevices.ts +1 -1
  53. package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +1 -1
  54. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +34 -17
  55. package/corpus/templates/content/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  56. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +6 -2
  57. package/corpus/templates/design/actions/create-design-system.ts +1 -0
  58. package/corpus/templates/design/actions/set-default-design-system.ts +34 -26
  59. package/corpus/templates/design/app/components/layout/Sidebar.tsx +21 -4
  60. package/corpus/templates/design/app/i18n-data.ts +39 -0
  61. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +229 -12
  62. package/corpus/templates/design/app/pages/DesignSystems.tsx +10 -4
  63. package/corpus/templates/design/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  64. package/corpus/templates/design/changelog/2026-07-31-design-system-indexing-keeps-your-chosen-name-when-you-uploa.md +6 -0
  65. package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +19 -4
  66. package/corpus/templates/dispatch/AGENTS.md +4 -0
  67. package/corpus/templates/factory/.agents/skills/actions/SKILL.md +562 -0
  68. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +198 -0
  69. package/corpus/templates/factory/.agents/skills/agent-native-docs/SKILL.md +115 -0
  70. package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +182 -0
  71. package/corpus/templates/factory/.agents/skills/capture-learnings/SKILL.md +89 -0
  72. package/corpus/templates/factory/.agents/skills/create-skill/SKILL.md +221 -0
  73. package/corpus/templates/factory/.agents/skills/customizing-agent-native/SKILL.md +220 -0
  74. package/corpus/templates/factory/.agents/skills/delegate-to-agent/SKILL.md +263 -0
  75. package/corpus/templates/factory/.agents/skills/factory-graphs/SKILL.md +52 -0
  76. package/corpus/templates/factory/.agents/skills/feature-flags/SKILL.md +169 -0
  77. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +174 -0
  78. package/corpus/templates/factory/.agents/skills/real-time-sync/SKILL.md +232 -0
  79. package/corpus/templates/factory/.agents/skills/security/SKILL.md +324 -0
  80. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +119 -0
  81. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +123 -0
  82. package/corpus/templates/factory/.agents/skills/sharing/SKILL.md +232 -0
  83. package/corpus/templates/factory/.agents/skills/storing-data/SKILL.md +178 -0
  84. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +122 -0
  85. package/corpus/templates/factory/.env.example +24 -0
  86. package/corpus/templates/factory/.ignore +0 -0
  87. package/corpus/templates/factory/.oxfmtrc.json +8 -0
  88. package/corpus/templates/factory/AGENTS.md +90 -0
  89. package/corpus/templates/factory/CHANGELOG.md +10 -0
  90. package/corpus/templates/factory/DEVELOPING.md +185 -0
  91. package/corpus/templates/factory/README.md +64 -0
  92. package/corpus/templates/factory/_gitignore +42 -0
  93. package/corpus/templates/factory/actions/add-factory-comment.ts +55 -0
  94. package/corpus/templates/factory/actions/approve-factory-item.ts +214 -0
  95. package/corpus/templates/factory/actions/babysit-pull-request.ts +126 -0
  96. package/corpus/templates/factory/actions/evaluate-triage-item.ts +172 -0
  97. package/corpus/templates/factory/actions/get-factory-graph.ts +62 -0
  98. package/corpus/templates/factory/actions/get-triage-config.ts +42 -0
  99. package/corpus/templates/factory/actions/get-triage-item.ts +74 -0
  100. package/corpus/templates/factory/actions/hello.ts +13 -0
  101. package/corpus/templates/factory/actions/ingest-github-observation.ts +100 -0
  102. package/corpus/templates/factory/actions/list-factories.ts +40 -0
  103. package/corpus/templates/factory/actions/list-factory-comments.ts +40 -0
  104. package/corpus/templates/factory/actions/list-triage-items.ts +85 -0
  105. package/corpus/templates/factory/actions/list-triage-rules.ts +44 -0
  106. package/corpus/templates/factory/actions/navigate.ts +41 -0
  107. package/corpus/templates/factory/actions/poll-slack-channel.ts +118 -0
  108. package/corpus/templates/factory/actions/reconcile-triage-run.ts +179 -0
  109. package/corpus/templates/factory/actions/record-triage-feedback.ts +58 -0
  110. package/corpus/templates/factory/actions/run.ts +2 -0
  111. package/corpus/templates/factory/actions/save-factory-graph.ts +129 -0
  112. package/corpus/templates/factory/actions/save-triage-config.ts +67 -0
  113. package/corpus/templates/factory/actions/save-triage-rule.ts +89 -0
  114. package/corpus/templates/factory/actions/suggest-factory-rules.ts +70 -0
  115. package/corpus/templates/factory/actions/view-screen.ts +73 -0
  116. package/corpus/templates/factory/app/components/factory/FactoryCanvas.tsx +441 -0
  117. package/corpus/templates/factory/app/components/factory/FactoryInspector.tsx +388 -0
  118. package/corpus/templates/factory/app/components/layout/Header.tsx +60 -0
  119. package/corpus/templates/factory/app/components/layout/Layout.tsx +190 -0
  120. package/corpus/templates/factory/app/components/layout/Sidebar.tsx +538 -0
  121. package/corpus/templates/factory/app/components/triage/triage-status-pill.tsx +28 -0
  122. package/corpus/templates/factory/app/components/ui/button.tsx +1 -0
  123. package/corpus/templates/factory/app/components/ui/card.tsx +1 -0
  124. package/corpus/templates/factory/app/components/ui/dropdown-menu.tsx +1 -0
  125. package/corpus/templates/factory/app/components/ui/input.tsx +1 -0
  126. package/corpus/templates/factory/app/components/ui/label.tsx +1 -0
  127. package/corpus/templates/factory/app/components/ui/sheet.tsx +1 -0
  128. package/corpus/templates/factory/app/components/ui/textarea.tsx +1 -0
  129. package/corpus/templates/factory/app/components/ui/toolkit-provider.tsx +17 -0
  130. package/corpus/templates/factory/app/components/ui/tooltip.tsx +1 -0
  131. package/corpus/templates/factory/app/design-system.ts +3 -0
  132. package/corpus/templates/factory/app/entry.client.tsx +22 -0
  133. package/corpus/templates/factory/app/entry.server.tsx +10 -0
  134. package/corpus/templates/factory/app/global.css +93 -0
  135. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +113 -0
  136. package/corpus/templates/factory/app/i18n/en-US.ts +211 -0
  137. package/corpus/templates/factory/app/i18n/index.ts +34 -0
  138. package/corpus/templates/factory/app/i18n-data.ts +556 -0
  139. package/corpus/templates/factory/app/lib/agent-page.tsx +49 -0
  140. package/corpus/templates/factory/app/lib/app-config.ts +11 -0
  141. package/corpus/templates/factory/app/lib/tab-id.ts +1 -0
  142. package/corpus/templates/factory/app/lib/utils.ts +1 -0
  143. package/corpus/templates/factory/app/root.tsx +175 -0
  144. package/corpus/templates/factory/app/routes/_index.tsx +94 -0
  145. package/corpus/templates/factory/app/routes/agent.tsx +24 -0
  146. package/corpus/templates/factory/app/routes/chat.$threadId.tsx +1 -0
  147. package/corpus/templates/factory/app/routes/database.tsx +17 -0
  148. package/corpus/templates/factory/app/routes/extensions.$id.$slug.tsx +2 -0
  149. package/corpus/templates/factory/app/routes/extensions.$id.tsx +11 -0
  150. package/corpus/templates/factory/app/routes/extensions._index.tsx +11 -0
  151. package/corpus/templates/factory/app/routes/extensions.tsx +5 -0
  152. package/corpus/templates/factory/app/routes/factory.tsx +1003 -0
  153. package/corpus/templates/factory/app/routes/observability.tsx +19 -0
  154. package/corpus/templates/factory/app/routes/settings.tsx +89 -0
  155. package/corpus/templates/factory/app/routes/team.tsx +11 -0
  156. package/corpus/templates/factory/app/routes.ts +4 -0
  157. package/corpus/templates/factory/app/vite-env.d.ts +6 -0
  158. package/corpus/templates/factory/changelog/2026-06-24-a-new-settings-page-gives-quick-access-to-language-workspace.md +6 -0
  159. package/corpus/templates/factory/changelog/2026-06-24-added-a-language-picker-and-localized-app-chrome-for-support.md +6 -0
  160. package/corpus/templates/factory/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  161. package/corpus/templates/factory/changelog/2026-06-28-left-sidebar-collapse-motion-and-footer-chrome-are-quieter.md +6 -0
  162. package/corpus/templates/factory/changelog/2026-06-29-chat-layouts-adapt-when-the-agent-sidebar-is-open.md +6 -0
  163. package/corpus/templates/factory/changelog/2026-07-08-settings-are-cleaner-and-searchable.md +5 -0
  164. package/corpus/templates/factory/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  165. package/corpus/templates/factory/changelog/2026-07-13-a-full-agent-page-now-brings-context-files-connections-jobs-.md +6 -0
  166. package/corpus/templates/factory/changelog/2026-07-14-chat-opens-reliably-on-hosted-deployments-instead-of-failing.md +6 -0
  167. package/corpus/templates/factory/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  168. package/corpus/templates/factory/changelog/2026-07-15-chat-navigation-focuses-on-chat-and-agent.md +6 -0
  169. package/corpus/templates/factory/changelog/2026-07-17-the-agent-chat-sidebar-stays-closed-until-you-open-it-or-sta.md +6 -0
  170. package/corpus/templates/factory/changelog/2026-07-22-compact-sidebar-footer.md +6 -0
  171. package/corpus/templates/factory/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +6 -0
  172. package/corpus/templates/factory/changelog/2026-07-22-manage-agent-navigation-now-uses-the-connected-nodes-icon.md +6 -0
  173. package/corpus/templates/factory/changelog/2026-07-22-recent-chats-are-easier-to-scan-and-expand.md +6 -0
  174. package/corpus/templates/factory/changelog/2026-07-23-full-page-chat-is-better-centered-with-quieter-chat-history-.md +6 -0
  175. package/corpus/templates/factory/changelog/2026-07-24-borderless-secondary-surfaces.md +6 -0
  176. package/corpus/templates/factory/changelog/2026-07-24-sidebar-footer-controls-follow-a-consistent-order.md +6 -0
  177. package/corpus/templates/factory/changelog/2026-07-25-settings-navigation-now-keeps-manage-agent-as-a-dedicated-li.md +6 -0
  178. package/corpus/templates/factory/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
  179. package/corpus/templates/factory/changelog/2026-07-31-added-an-inspectable-observe-only-factory-queue-for-slack-.md +6 -0
  180. package/corpus/templates/factory/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  181. package/corpus/templates/factory/components.json +20 -0
  182. package/corpus/templates/factory/data/sync-config.json +1 -0
  183. package/corpus/templates/factory/learnings.defaults.md +5 -0
  184. package/corpus/templates/factory/netlify.toml +10 -0
  185. package/corpus/templates/factory/package.json +105 -0
  186. package/corpus/templates/factory/public/agent-native-icon-dark.svg +10 -0
  187. package/corpus/templates/factory/public/agent-native-icon-light.svg +10 -0
  188. package/corpus/templates/factory/public/agent-native-logo-dark.svg +21 -0
  189. package/corpus/templates/factory/public/agent-native-logo-light.svg +21 -0
  190. package/corpus/templates/factory/public/favicon.svg +1 -0
  191. package/corpus/templates/factory/public/icon-180.svg +1 -0
  192. package/corpus/templates/factory/public/icon-192.svg +1 -0
  193. package/corpus/templates/factory/public/icon-512.svg +1 -0
  194. package/corpus/templates/factory/public/manifest.json +21 -0
  195. package/corpus/templates/factory/react-router.config.ts +7 -0
  196. package/corpus/templates/factory/server/connectors/credentials.ts +129 -0
  197. package/corpus/templates/factory/server/connectors/slack.ts +129 -0
  198. package/corpus/templates/factory/server/db/index.ts +6 -0
  199. package/corpus/templates/factory/server/db/schema.ts +193 -0
  200. package/corpus/templates/factory/server/factory-graph/contracts.ts +212 -0
  201. package/corpus/templates/factory/server/factory-graph/store.ts +121 -0
  202. package/corpus/templates/factory/server/lib/require-workspace-member.ts +55 -0
  203. package/corpus/templates/factory/server/middleware/auth.ts +15 -0
  204. package/corpus/templates/factory/server/plugins/agent-chat.ts +58 -0
  205. package/corpus/templates/factory/server/plugins/auth.ts +14 -0
  206. package/corpus/templates/factory/server/plugins/factory-migrations.ts +247 -0
  207. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +116 -0
  208. package/corpus/templates/factory/server/plugins/integrations.ts +46 -0
  209. package/corpus/templates/factory/server/routes/[...page].get.ts +5 -0
  210. package/corpus/templates/factory/server/routes/_agent-native/factory/builder-callback.post.ts +116 -0
  211. package/corpus/templates/factory/server/triage/ai-services-git.ts +197 -0
  212. package/corpus/templates/factory/server/triage/builder-executor.ts +118 -0
  213. package/corpus/templates/factory/server/triage/contracts.ts +164 -0
  214. package/corpus/templates/factory/server/triage/github-ingestion.ts +35 -0
  215. package/corpus/templates/factory/server/triage/guards.ts +121 -0
  216. package/corpus/templates/factory/server/triage/ids.ts +27 -0
  217. package/corpus/templates/factory/server/triage/pr-babysit.ts +100 -0
  218. package/corpus/templates/factory/server/triage/pr-monitor.ts +220 -0
  219. package/corpus/templates/factory/server/triage/slack-client.ts +55 -0
  220. package/corpus/templates/factory/server/triage/slack-poller.ts +152 -0
  221. package/corpus/templates/factory/ssr-entry.ts +15 -0
  222. package/corpus/templates/factory/tsconfig.json +21 -0
  223. package/corpus/templates/factory/vite.config.ts +19 -0
  224. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +55 -5
  225. package/corpus/templates/forms/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  226. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +6 -2
  227. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +21 -6
  228. package/corpus/templates/plan/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  229. package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +12 -0
  230. package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +9 -0
  231. package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +11 -0
  232. package/corpus/templates/slides/AGENTS.md +5 -6
  233. package/corpus/templates/slides/actions/_await-fit-check.ts +20 -10
  234. package/corpus/templates/slides/actions/add-slide.ts +17 -4
  235. package/corpus/templates/slides/actions/create-design-system.ts +16 -4
  236. package/corpus/templates/slides/actions/delete-design-system.ts +18 -2
  237. package/corpus/templates/slides/actions/get-layout-overflows.ts +88 -0
  238. package/corpus/templates/slides/actions/import-file.ts +1 -0
  239. package/corpus/templates/slides/actions/index-design-system-with-builder.ts +8 -0
  240. package/corpus/templates/slides/actions/patch-deck.ts +48 -16
  241. package/corpus/templates/slides/actions/set-default-design-system.ts +49 -19
  242. package/corpus/templates/slides/actions/update-slide.ts +13 -3
  243. package/corpus/templates/slides/actions/view-screen.ts +87 -10
  244. package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +155 -28
  245. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +21 -17
  246. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +849 -341
  247. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +102 -2
  248. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +13 -16
  249. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +60 -12
  250. package/corpus/templates/slides/app/components/editor/SlideOverflowWarning.tsx +11 -1
  251. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +66 -19
  252. package/corpus/templates/slides/app/i18n/en-US.ts +23 -0
  253. package/corpus/templates/slides/app/lib/normalize-slide-padding.ts +8 -15
  254. package/corpus/templates/slides/app/pages/DeckEditor.tsx +4 -3
  255. package/corpus/templates/slides/app/pages/DesignSystems.tsx +4 -3
  256. package/corpus/templates/slides/app/pages/Index.tsx +1 -1
  257. package/corpus/templates/slides/changelog/2026-07-31-design-system-details-now-show-their-source-and-indexing-sta.md +6 -0
  258. package/corpus/templates/slides/changelog/2026-07-31-design-system-indexing-keeps-your-chosen-name-when-you-uploa.md +6 -0
  259. package/corpus/templates/slides/changelog/2026-07-31-design-system-setup-keeps-focus-rings-visible-and-uses-a-sim.md +6 -0
  260. package/corpus/templates/slides/changelog/2026-07-31-skip-prompt-is-now-available-in-the-new-deck-prompt-header.md +6 -0
  261. package/corpus/templates/slides/changelog/2026-07-31-slides-now-detect-real-text-and-box-overflow-across-the-deck.md +6 -0
  262. package/corpus/templates/slides/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +6 -0
  263. package/corpus/templates/slides/server/handlers/design-systems.ts +1 -0
  264. package/corpus/templates/slides/server/handlers/index-design-system-sources.ts +1 -0
  265. package/corpus/templates/slides/server/lib/builder-design-system-proxy.ts +23 -4
  266. package/corpus/templates/slides/server/plugins/agent-chat.ts +5 -0
  267. package/corpus/templates/slides/server/plugins/creative-context.ts +16 -3
  268. package/corpus/templates/slides/server/workspace-defaults.ts +5 -1
  269. package/corpus/templates/slides/shared/slide-fit.ts +26 -0
  270. package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +30 -3
  271. package/corpus/templates/tasks/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  272. package/dist/a2a/correlation.d.ts +4 -1
  273. package/dist/a2a/correlation.d.ts.map +1 -1
  274. package/dist/a2a/correlation.js +8 -1
  275. package/dist/a2a/correlation.js.map +1 -1
  276. package/dist/a2a/types.d.ts +11 -3
  277. package/dist/a2a/types.d.ts.map +1 -1
  278. package/dist/a2a/types.js.map +1 -1
  279. package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
  280. package/dist/agent/engine/ai-sdk-engine.js +27 -41
  281. package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
  282. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  283. package/dist/agent/engine/builder-engine.js +18 -8
  284. package/dist/agent/engine/builder-engine.js.map +1 -1
  285. package/dist/agent/engine/error-detail.d.ts +61 -0
  286. package/dist/agent/engine/error-detail.d.ts.map +1 -1
  287. package/dist/agent/engine/error-detail.js +145 -3
  288. package/dist/agent/engine/error-detail.js.map +1 -1
  289. package/dist/agent/engine/failure-taxonomy.d.ts +24 -0
  290. package/dist/agent/engine/failure-taxonomy.d.ts.map +1 -0
  291. package/dist/agent/engine/failure-taxonomy.js +88 -0
  292. package/dist/agent/engine/failure-taxonomy.js.map +1 -0
  293. package/dist/agent/engine/index.d.ts +2 -1
  294. package/dist/agent/engine/index.d.ts.map +1 -1
  295. package/dist/agent/engine/index.js +2 -1
  296. package/dist/agent/engine/index.js.map +1 -1
  297. package/dist/agent/engine/registry.d.ts +16 -0
  298. package/dist/agent/engine/registry.d.ts.map +1 -1
  299. package/dist/agent/engine/registry.js +71 -6
  300. package/dist/agent/engine/registry.js.map +1 -1
  301. package/dist/agent/engine/translate-ai-sdk.d.ts.map +1 -1
  302. package/dist/agent/engine/translate-ai-sdk.js +14 -2
  303. package/dist/agent/engine/translate-ai-sdk.js.map +1 -1
  304. package/dist/agent/production-agent.d.ts.map +1 -1
  305. package/dist/agent/production-agent.js +13 -24
  306. package/dist/agent/production-agent.js.map +1 -1
  307. package/dist/agent/run-loop-with-resume.js +1 -1
  308. package/dist/agent/run-loop-with-resume.js.map +1 -1
  309. package/dist/agent/run-manager.d.ts.map +1 -1
  310. package/dist/agent/run-manager.js +39 -10
  311. package/dist/agent/run-manager.js.map +1 -1
  312. package/dist/agent/run-store.d.ts +10 -0
  313. package/dist/agent/run-store.d.ts.map +1 -1
  314. package/dist/agent/run-store.js +20 -3
  315. package/dist/agent/run-store.js.map +1 -1
  316. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  317. package/dist/agent/thread-data-builder.js +28 -4
  318. package/dist/agent/thread-data-builder.js.map +1 -1
  319. package/dist/cli/templates-meta.d.ts.map +1 -1
  320. package/dist/cli/templates-meta.js +13 -0
  321. package/dist/cli/templates-meta.js.map +1 -1
  322. package/dist/cli/workspace-dev.d.ts.map +1 -1
  323. package/dist/cli/workspace-dev.js +1 -0
  324. package/dist/cli/workspace-dev.js.map +1 -1
  325. package/dist/client/error-format.d.ts.map +1 -1
  326. package/dist/client/error-format.js +10 -0
  327. package/dist/client/error-format.js.map +1 -1
  328. package/dist/collab/awareness.d.ts +2 -2
  329. package/dist/collab/awareness.d.ts.map +1 -1
  330. package/dist/credentials/index.d.ts +9 -2
  331. package/dist/credentials/index.d.ts.map +1 -1
  332. package/dist/credentials/index.js +50 -8
  333. package/dist/credentials/index.js.map +1 -1
  334. package/dist/extensions/url-safety.d.ts.map +1 -1
  335. package/dist/extensions/url-safety.js +38 -12
  336. package/dist/extensions/url-safety.js.map +1 -1
  337. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  338. package/dist/integrations/adapters/slack.js +25 -8
  339. package/dist/integrations/adapters/slack.js.map +1 -1
  340. package/dist/integrations/google-docs-poller.d.ts.map +1 -1
  341. package/dist/integrations/google-docs-poller.js +13 -1
  342. package/dist/integrations/google-docs-poller.js.map +1 -1
  343. package/dist/integrations/installations-store.d.ts +10 -0
  344. package/dist/integrations/installations-store.d.ts.map +1 -1
  345. package/dist/integrations/installations-store.js +24 -0
  346. package/dist/integrations/installations-store.js.map +1 -1
  347. package/dist/integrations/plugin.d.ts.map +1 -1
  348. package/dist/integrations/plugin.js +6 -5
  349. package/dist/integrations/plugin.js.map +1 -1
  350. package/dist/integrations/types.d.ts +7 -0
  351. package/dist/integrations/types.d.ts.map +1 -1
  352. package/dist/integrations/types.js.map +1 -1
  353. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  354. package/dist/integrations/webhook-handler.js +16 -1
  355. package/dist/integrations/webhook-handler.js.map +1 -1
  356. package/dist/jobs/background-automation-runner.d.ts.map +1 -1
  357. package/dist/jobs/background-automation-runner.js +35 -2
  358. package/dist/jobs/background-automation-runner.js.map +1 -1
  359. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  360. package/dist/mcp/screen-memory-stdio.d.ts.map +1 -1
  361. package/dist/notifications/routes.d.ts +3 -3
  362. package/dist/observability/routes.d.ts +3 -3
  363. package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
  364. package/dist/provider-api/actions/provider-api.d.ts +8 -8
  365. package/dist/provider-api/index.js +7 -3
  366. package/dist/provider-api/index.js.map +1 -1
  367. package/dist/scripts/call-agent.d.ts.map +1 -1
  368. package/dist/scripts/call-agent.js +6 -1
  369. package/dist/scripts/call-agent.js.map +1 -1
  370. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  371. package/dist/server/agent-chat-plugin.js +25 -7
  372. package/dist/server/agent-chat-plugin.js.map +1 -1
  373. package/dist/server/agent-discovery.d.ts +2 -0
  374. package/dist/server/agent-discovery.d.ts.map +1 -1
  375. package/dist/server/agent-discovery.js.map +1 -1
  376. package/dist/server/builder-design-systems.d.ts +4 -1
  377. package/dist/server/builder-design-systems.d.ts.map +1 -1
  378. package/dist/server/builder-design-systems.js +11 -1
  379. package/dist/server/builder-design-systems.js.map +1 -1
  380. package/dist/server/credential-provider.d.ts.map +1 -1
  381. package/dist/server/credential-provider.js +49 -12
  382. package/dist/server/credential-provider.js.map +1 -1
  383. package/dist/server/index.d.ts +1 -1
  384. package/dist/server/index.d.ts.map +1 -1
  385. package/dist/server/index.js.map +1 -1
  386. package/dist/server/onboarding-html.d.ts.map +1 -1
  387. package/dist/server/onboarding-html.js +37 -2
  388. package/dist/server/onboarding-html.js.map +1 -1
  389. package/dist/server/transcribe-voice.d.ts +1 -1
  390. package/dist/shared/reasoning-effort.d.ts +1 -0
  391. package/dist/shared/reasoning-effort.d.ts.map +1 -1
  392. package/dist/shared/reasoning-effort.js +1 -1
  393. package/dist/shared/reasoning-effort.js.map +1 -1
  394. package/dist/templates/chat/app/components/layout/Sidebar.tsx +30 -3
  395. package/dist/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  396. package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
  397. package/package.json +1 -1
  398. package/src/a2a/correlation.ts +11 -1
  399. package/src/a2a/types.ts +11 -3
  400. package/src/agent/engine/ai-sdk-engine.ts +33 -46
  401. package/src/agent/engine/builder-engine.ts +22 -10
  402. package/src/agent/engine/error-detail.ts +184 -3
  403. package/src/agent/engine/failure-taxonomy.ts +123 -0
  404. package/src/agent/engine/index.ts +8 -0
  405. package/src/agent/engine/registry.ts +92 -8
  406. package/src/agent/engine/translate-ai-sdk.ts +17 -2
  407. package/src/agent/production-agent.ts +13 -33
  408. package/src/agent/run-loop-with-resume.ts +1 -1
  409. package/src/agent/run-manager.ts +43 -14
  410. package/src/agent/run-store.ts +30 -3
  411. package/src/agent/thread-data-builder.ts +36 -4
  412. package/src/cli/templates-meta.ts +13 -0
  413. package/src/cli/workspace-dev.ts +1 -0
  414. package/src/client/error-format.ts +12 -0
  415. package/src/credentials/index.ts +51 -12
  416. package/src/extensions/url-safety.ts +46 -12
  417. package/src/integrations/adapters/slack.ts +32 -10
  418. package/src/integrations/google-docs-poller.ts +12 -1
  419. package/src/integrations/installations-store.ts +30 -0
  420. package/src/integrations/plugin.ts +5 -5
  421. package/src/integrations/types.ts +7 -0
  422. package/src/integrations/webhook-handler.ts +24 -1
  423. package/src/jobs/background-automation-runner.ts +38 -1
  424. package/src/provider-api/index.ts +8 -2
  425. package/src/scripts/call-agent.ts +6 -0
  426. package/src/server/agent-chat-plugin.ts +30 -9
  427. package/src/server/agent-discovery.ts +2 -0
  428. package/src/server/builder-design-systems.ts +21 -0
  429. package/src/server/credential-provider.ts +51 -12
  430. package/src/server/index.ts +1 -0
  431. package/src/server/onboarding-html.ts +37 -2
  432. package/src/shared/reasoning-effort.ts +1 -1
  433. package/src/templates/chat/app/components/layout/Sidebar.tsx +30 -3
  434. package/src/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +6 -0
  435. package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +11 -0
  436. package/corpus/templates/clips/desktop/src/lib/media-device-selection.ts +0 -157
@@ -775,31 +775,60 @@ export function Sidebar({
775
775
  collapsed ? "px-1" : "px-4",
776
776
  )}
777
777
  >
778
- {!collapsed && (
779
- <>
780
- <Link
781
- to="/"
782
- onClick={onClose}
783
- className="flex items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring"
784
- >
785
- <img
786
- src={appPath("/agent-native-icon-light.svg")}
787
- alt=""
788
- aria-hidden="true"
789
- className="block h-4 w-auto shrink-0 dark:hidden"
790
- />
791
- <img
792
- src={appPath("/agent-native-icon-dark.svg")}
793
- alt=""
794
- aria-hidden="true"
795
- className="hidden h-4 w-auto shrink-0 dark:block"
796
- />
797
- <span className="text-base font-semibold tracking-tight">
798
- {t("navigation.brand")}
799
- </span>
800
- </Link>
801
- </>
802
- )}
778
+ <Link
779
+ to="/"
780
+ onClick={(event) => {
781
+ onClose();
782
+ if (
783
+ !onCollapsedChange ||
784
+ event.metaKey ||
785
+ event.ctrlKey ||
786
+ event.shiftKey ||
787
+ event.altKey ||
788
+ event.button !== 0
789
+ ) {
790
+ return;
791
+ }
792
+ event.preventDefault();
793
+ onCollapsedChange(!collapsed);
794
+ }}
795
+ className={cn(
796
+ "flex items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
797
+ collapsed ? "size-8 justify-center" : "flex-1",
798
+ )}
799
+ aria-label={
800
+ onCollapsedChange
801
+ ? collapsed
802
+ ? t("sidebar.expandSidebar")
803
+ : t("sidebar.collapseSidebar")
804
+ : collapsed
805
+ ? t("navigation.brand")
806
+ : undefined
807
+ }
808
+ data-sidebar-brand-toggle
809
+ >
810
+ <img
811
+ src={appPath("/agent-native-icon-light.svg")}
812
+ alt=""
813
+ aria-hidden="true"
814
+ width={28}
815
+ height={16}
816
+ className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
817
+ />
818
+ <img
819
+ src={appPath("/agent-native-icon-dark.svg")}
820
+ alt=""
821
+ aria-hidden="true"
822
+ width={28}
823
+ height={16}
824
+ className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
825
+ />
826
+ {!collapsed && (
827
+ <span className="text-base font-semibold tracking-tight">
828
+ {t("navigation.brand")}
829
+ </span>
830
+ )}
831
+ </Link>
803
832
  </div>
804
833
 
805
834
  <div className="min-h-0 flex-1 overflow-y-auto">
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-31
4
+ ---
5
+
6
+ The Agent Native logo stays visible when the sidebar is collapsed and toggles the sidebar when clicked.
@@ -358,23 +358,50 @@ export function Sidebar({
358
358
  >
359
359
  <Link
360
360
  to="/"
361
+ onClick={(event) => {
362
+ if (
363
+ !collapsible ||
364
+ !onCollapsedChange ||
365
+ event.metaKey ||
366
+ event.ctrlKey ||
367
+ event.shiftKey ||
368
+ event.altKey ||
369
+ event.button !== 0
370
+ ) {
371
+ return;
372
+ }
373
+ event.preventDefault();
374
+ onCollapsedChange(!collapsed);
375
+ }}
361
376
  className={cn(
362
377
  "flex min-w-0 items-center rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
363
378
  collapsed ? "size-7 justify-center" : "flex-1 gap-3",
364
379
  )}
365
- aria-label={collapsed ? APP_TITLE : undefined}
380
+ aria-label={
381
+ collapsible && onCollapsedChange
382
+ ? collapsed
383
+ ? t("navigation.expandSidebar")
384
+ : t("navigation.collapseSidebar")
385
+ : collapsed
386
+ ? APP_TITLE
387
+ : undefined
388
+ }
366
389
  >
367
390
  <img
368
391
  src={appPath("/agent-native-icon-light.svg")}
369
392
  alt=""
370
393
  aria-hidden="true"
371
- className="block h-4 w-auto shrink-0 dark:hidden"
394
+ width={28}
395
+ height={16}
396
+ className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
372
397
  />
373
398
  <img
374
399
  src={appPath("/agent-native-icon-dark.svg")}
375
400
  alt=""
376
401
  aria-hidden="true"
377
- className="hidden h-4 w-auto shrink-0 dark:block"
402
+ width={28}
403
+ height={16}
404
+ className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
378
405
  />
379
406
  <div className={cn("min-w-0", collapsed && "sr-only")}>
380
407
  <p className="truncate text-sm font-semibold text-sidebar-accent-foreground">
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-31
4
+ ---
5
+
6
+ Clicking the Agent Native logo now toggles the app sidebar.
@@ -336,32 +336,48 @@ export function LibraryLayout({ children }: LibraryLayoutProps) {
336
336
  showCollapsedSidebar ? "justify-center px-2" : "px-4",
337
337
  )}
338
338
  >
339
- <div
339
+ <button
340
+ type="button"
341
+ onClick={() => {
342
+ if (!isMobile) setSidebarCollapsed((value) => !value);
343
+ }}
344
+ aria-label={
345
+ isMobile
346
+ ? t("navigation.brand")
347
+ : showCollapsedSidebar
348
+ ? t("navigation.expandSidebar")
349
+ : t("navigation.collapseSidebar")
350
+ }
340
351
  className={cn(
341
- "flex min-w-0 items-center gap-2",
342
- !showCollapsedSidebar && "flex-1",
352
+ "flex min-w-0 items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
353
+ showCollapsedSidebar
354
+ ? "size-8 justify-center"
355
+ : "flex-1 text-start",
343
356
  )}
357
+ data-sidebar-brand-toggle
344
358
  >
359
+ <img
360
+ src={appPath("/agent-native-icon-light.svg")}
361
+ alt=""
362
+ aria-hidden="true"
363
+ width={28}
364
+ height={16}
365
+ className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
366
+ />
367
+ <img
368
+ src={appPath("/agent-native-icon-dark.svg")}
369
+ alt=""
370
+ aria-hidden="true"
371
+ width={28}
372
+ height={16}
373
+ className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
374
+ />
345
375
  {!showCollapsedSidebar && (
346
- <>
347
- <img
348
- src={appPath("/agent-native-icon-light.svg")}
349
- alt=""
350
- aria-hidden="true"
351
- className="block h-4 w-auto shrink-0 dark:hidden"
352
- />
353
- <img
354
- src={appPath("/agent-native-icon-dark.svg")}
355
- alt=""
356
- aria-hidden="true"
357
- className="hidden h-4 w-auto shrink-0 dark:block"
358
- />
359
- <span className="truncate text-sm font-semibold text-foreground">
360
- {t("navigation.brand")}
361
- </span>
362
- </>
376
+ <span className="truncate text-sm font-semibold text-foreground">
377
+ {t("navigation.brand")}
378
+ </span>
363
379
  )}
364
- </div>
380
+ </button>
365
381
  </div>
366
382
  <div className="min-h-0 flex-1 overflow-y-auto">
367
383
  {showCollapsedSidebar ? (
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-31
4
+ ---
5
+
6
+ The Agent Native logo stays visible when the sidebar is collapsed and toggles the sidebar when clicked.
@@ -13,7 +13,7 @@ import {
13
13
  isPseudoMediaDeviceId,
14
14
  isSelectableAudioInputDevice,
15
15
  normalizedMediaDeviceId,
16
- } from "../lib/media-device-selection";
16
+ } from "../../../shared/media-device-selection";
17
17
  import {
18
18
  isHardCapturePermissionError,
19
19
  MACOS_CAPTURE_PERMISSION_MESSAGE,
@@ -3,7 +3,7 @@ import {
3
3
  enumerateAudioInputDevices,
4
4
  isLikelyPhoneMicLabel,
5
5
  type AudioInputFallback,
6
- } from "./media-device-selection";
6
+ } from "../../../shared/media-device-selection";
7
7
 
8
8
  export const VOICE_FOCUSED_AUDIO_CONSTRAINTS: MediaTrackConstraints = {
9
9
  echoCancellation: { ideal: true },
@@ -1617,6 +1617,38 @@ export function DocumentSidebar({
1617
1617
  className={collapsed ? "size-8" : "h-8 min-w-0"}
1618
1618
  />
1619
1619
  );
1620
+ const brandButton = (isCollapsed: boolean) => (
1621
+ <button
1622
+ type="button"
1623
+ onClick={onToggleCollapsed}
1624
+ aria-label={isCollapsed ? t("sidebar.expand") : t("sidebar.collapse")}
1625
+ className={cn(
1626
+ "flex items-center gap-2 rounded outline-none text-foreground transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring",
1627
+ isCollapsed ? "size-8 justify-center" : "min-w-0 text-start",
1628
+ )}
1629
+ data-sidebar-brand-toggle
1630
+ >
1631
+ <img
1632
+ src={appPath("/agent-native-icon-light.svg")}
1633
+ alt=""
1634
+ aria-hidden="true"
1635
+ width={28}
1636
+ height={16}
1637
+ className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
1638
+ />
1639
+ <img
1640
+ src={appPath("/agent-native-icon-dark.svg")}
1641
+ alt=""
1642
+ aria-hidden="true"
1643
+ width={28}
1644
+ height={16}
1645
+ className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
1646
+ />
1647
+ {!isCollapsed && (
1648
+ <span className="text-base font-semibold tracking-tight">Content</span>
1649
+ )}
1650
+ </button>
1651
+ );
1620
1652
 
1621
1653
  const toggleSection = (id: SidebarSectionId) => {
1622
1654
  setStoredCollapsedSections((current) => {
@@ -2118,6 +2150,7 @@ export function DocumentSidebar({
2118
2150
  if (collapsed) {
2119
2151
  return (
2120
2152
  <div className="agent-layout-left-drawer flex h-full w-12 flex-col items-center gap-1 border-e border-border bg-sidebar py-3 transition-[width] duration-200 ease-out">
2153
+ {brandButton(true)}
2121
2154
  {renderCollapsedNewButton()}
2122
2155
  <Tooltip>
2123
2156
  <TooltipTrigger asChild>
@@ -2156,23 +2189,7 @@ export function DocumentSidebar({
2156
2189
  >
2157
2190
  {/* Header */}
2158
2191
  <div className="flex h-12 shrink-0 items-center justify-between border-b border-border px-3">
2159
- <div className="flex items-center gap-2 min-w-0">
2160
- <img
2161
- src={appPath("/agent-native-icon-light.svg")}
2162
- alt=""
2163
- aria-hidden="true"
2164
- className="block h-4 w-auto shrink-0 dark:hidden"
2165
- />
2166
- <img
2167
- src={appPath("/agent-native-icon-dark.svg")}
2168
- alt=""
2169
- aria-hidden="true"
2170
- className="hidden h-4 w-auto shrink-0 dark:block"
2171
- />
2172
- <span className="text-base font-semibold tracking-tight text-foreground">
2173
- Content
2174
- </span>
2175
- </div>
2192
+ {brandButton(false)}
2176
2193
  </div>
2177
2194
 
2178
2195
  {/* Search */}
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-31
4
+ ---
5
+
6
+ The Agent Native logo stays visible when the sidebar is collapsed and toggles the sidebar when clicked.
@@ -30,6 +30,7 @@ Design systems are stored in the `design_systems` SQL table. Each has:
30
30
  - `is_default` — boolean, whether this is the user's default design system
31
31
  - `owner_email` — auto-set from session
32
32
  - `org_id` — organization scope
33
+ - `visibility` — defaults to `org` inside an organization, otherwise `private`
33
34
 
34
35
  ### DesignSystemData Schema
35
36
 
@@ -125,7 +126,9 @@ brand's actual extracted fonts) rather than defaulting to Space Grotesk/DM
125
126
  Sans every time; that pairing is this skill's own most common convergence
126
127
  fingerprint.
127
128
 
128
- If this is the user's first design system, it is automatically set as the default.
129
+ If this is the user's first design system in the active organization, it is
130
+ automatically set as the default. Organization-scoped systems are shared with
131
+ that organization by default.
129
132
 
130
133
  ### Starting from an established public system
131
134
 
@@ -175,7 +178,8 @@ Only provided fields are updated. You can also update `--title`, `--description`
175
178
  pnpm action set-default-design-system --id <id>
176
179
  ```
177
180
 
178
- Unsets any previously-default design system for this user.
181
+ Pass `--isDefault false` to clear the current default. Setting a system as the
182
+ default unsets the previous default in the same user and organization scope.
179
183
 
180
184
  ## Multi-Source Import Flow
181
185
 
@@ -166,6 +166,7 @@ export default defineAction({
166
166
  isDefault,
167
167
  ownerEmail,
168
168
  orgId,
169
+ visibility: orgId ? "org" : "private",
169
170
  createdAt: now,
170
171
  updatedAt: now,
171
172
  });
@@ -11,11 +11,16 @@ import { getDb, schema } from "../server/db/index.js";
11
11
 
12
12
  export default defineAction({
13
13
  description:
14
- "Set a design system as the default. Unsets any previously-default design system for this user.",
14
+ "Set or unset a design system as the default for the current user and organization.",
15
15
  schema: z.object({
16
16
  id: z.string().describe("Design system ID to set as default"),
17
+ isDefault: z
18
+ .boolean()
19
+ .optional()
20
+ .default(true)
21
+ .describe("Whether this design system should be the default"),
17
22
  }),
18
- run: async ({ id }) => {
23
+ run: async ({ id, isDefault = true }) => {
19
24
  await assertAccess("design-system", id, "editor");
20
25
 
21
26
  const db = getDb();
@@ -26,42 +31,45 @@ export default defineAction({
26
31
  const orgId = getRequestOrgId();
27
32
 
28
33
  const [target] = await db
29
- .select({ ownerEmail: schema.designSystems.ownerEmail })
34
+ .select({
35
+ ownerEmail: schema.designSystems.ownerEmail,
36
+ orgId: schema.designSystems.orgId,
37
+ })
30
38
  .from(schema.designSystems)
31
39
  .where(eq(schema.designSystems.id, id))
32
40
  .limit(1);
33
41
 
34
- if (target?.ownerEmail !== userEmail) {
42
+ if (
43
+ target?.ownerEmail !== userEmail ||
44
+ (target.orgId ?? null) !== (orgId ?? null)
45
+ ) {
35
46
  throw new Error("Only the owner can set a design system as default");
36
47
  }
37
48
 
38
49
  await db.transaction(async (tx) => {
39
- await tx
40
- .update(schema.designSystems)
41
- .set({ isDefault: false, updatedAt: now })
42
- .where(
43
- orgId
44
- ? and(
45
- eq(schema.designSystems.ownerEmail, userEmail),
46
- eq(schema.designSystems.orgId, orgId),
47
- )
48
- : and(
49
- eq(schema.designSystems.ownerEmail, userEmail),
50
- isNull(schema.designSystems.orgId),
51
- ),
52
- );
50
+ const targetScope = orgId
51
+ ? and(
52
+ eq(schema.designSystems.ownerEmail, userEmail),
53
+ eq(schema.designSystems.orgId, orgId),
54
+ )
55
+ : and(
56
+ eq(schema.designSystems.ownerEmail, userEmail),
57
+ isNull(schema.designSystems.orgId),
58
+ );
59
+
60
+ if (isDefault) {
61
+ await tx
62
+ .update(schema.designSystems)
63
+ .set({ isDefault: false, updatedAt: now })
64
+ .where(targetScope);
65
+ }
53
66
 
54
67
  await tx
55
68
  .update(schema.designSystems)
56
- .set({ isDefault: true, updatedAt: now })
57
- .where(
58
- and(
59
- eq(schema.designSystems.id, id),
60
- eq(schema.designSystems.ownerEmail, userEmail),
61
- ),
62
- );
69
+ .set({ isDefault, updatedAt: now })
70
+ .where(and(eq(schema.designSystems.id, id), targetScope));
63
71
  });
64
72
 
65
- return { id, isDefault: true };
73
+ return { id, isDefault };
66
74
  },
67
75
  });
@@ -124,25 +124,42 @@ export function Sidebar() {
124
124
  collapsed ? "justify-center px-2" : "justify-between px-4",
125
125
  )}
126
126
  >
127
- <div className="flex items-center gap-2">
127
+ <button
128
+ type="button"
129
+ onClick={() => setCollapsed((value) => !value)}
130
+ aria-label={
131
+ collapsed
132
+ ? t("navigation.expandSidebar")
133
+ : t("navigation.collapseSidebar")
134
+ }
135
+ className={cn(
136
+ "flex items-center gap-2 rounded outline-none focus-visible:ring-2 focus-visible:ring-ring",
137
+ collapsed ? "size-8 justify-center" : "text-start",
138
+ )}
139
+ data-sidebar-brand-toggle
140
+ >
128
141
  <img
129
142
  src={appPath("/agent-native-icon-light.svg")}
130
143
  alt=""
131
144
  aria-hidden="true"
132
- className="block h-4 w-auto dark:hidden"
145
+ width={28}
146
+ height={16}
147
+ className="block h-4 w-7 shrink-0 object-contain object-center dark:hidden"
133
148
  />
134
149
  <img
135
150
  src={appPath("/agent-native-icon-dark.svg")}
136
151
  alt=""
137
152
  aria-hidden="true"
138
- className="hidden h-4 w-auto dark:block"
153
+ width={28}
154
+ height={16}
155
+ className="hidden h-4 w-7 shrink-0 object-contain object-center dark:block"
139
156
  />
140
157
  {!collapsed && (
141
158
  <span className="text-sm font-semibold tracking-tight">
142
159
  {t("navigation.brand")}
143
160
  </span>
144
161
  )}
145
- </div>
162
+ </button>
146
163
  </div>
147
164
 
148
165
  <div className="flex min-h-0 flex-1 flex-col overflow-y-auto">
@@ -1452,6 +1452,10 @@ const enUS = {
1452
1452
  figmaCreateSuccess: "Design system created from Figma",
1453
1453
  figmaCreateError: "Could not create the design system",
1454
1454
  backToDesignSystems: "Back to design systems",
1455
+ otherSources: "Other",
1456
+ otherSourcesDescription:
1457
+ "Connect from a website, code, files, or an existing design system.",
1458
+ chooseSourcePrompt: "Choose one source to configure",
1455
1459
  continue: "Continue to generation",
1456
1460
  title: "Set up your design system",
1457
1461
  description:
@@ -1924,6 +1928,9 @@ const designLocaleOverrides = {
1924
1928
  figmaCreateSuccess: "由Figma创建的设计系统",
1925
1929
  figmaCreateError: "无法创建设计系统",
1926
1930
  backToDesignSystems: "返回设计系统",
1931
+ otherSources: "其他",
1932
+ otherSourcesDescription: "从网站、代码、文件或现有设计系统连接。",
1933
+ chooseSourcePrompt: "选择一个来源进行配置",
1927
1934
  continue: "继续生成",
1928
1935
  title: "设置您的设计系统",
1929
1936
  description:
@@ -2329,6 +2336,10 @@ const designLocaleOverrides = {
2329
2336
  figmaCreateSuccess: "Sistema de diseño creado a partir de Figma.",
2330
2337
  figmaCreateError: "No se pudo crear el sistema de diseño.",
2331
2338
  backToDesignSystems: "Volver a sistemas de diseño",
2339
+ otherSources: "Otros",
2340
+ otherSourcesDescription:
2341
+ "Conecta desde un sitio web, código, archivos o un sistema de diseño existente.",
2342
+ chooseSourcePrompt: "Elige una fuente para configurar",
2332
2343
  continue: "continuar con la generación",
2333
2344
  title: "Configure su sistema de diseño",
2334
2345
  description:
@@ -2756,6 +2767,10 @@ const designLocaleOverrides = {
2756
2767
  figmaCreateSuccess: "Système de conception créé à partir de Figma",
2757
2768
  figmaCreateError: "Impossible de créer le système de conception",
2758
2769
  backToDesignSystems: "Retour aux systèmes de conception",
2770
+ otherSources: "Autre",
2771
+ otherSourcesDescription:
2772
+ "Connectez-vous depuis un site web, du code, des fichiers ou un système de conception existant.",
2773
+ chooseSourcePrompt: "Choisissez une source à configurer",
2759
2774
  continue: "Continuer jusqu'à la génération",
2760
2775
  title: "Configurez votre système de conception",
2761
2776
  description:
@@ -3183,6 +3198,10 @@ const designLocaleOverrides = {
3183
3198
  figmaCreateSuccess: "Designsystem erstellt aus Figma",
3184
3199
  figmaCreateError: "Das Designsystem konnte nicht erstellt werden",
3185
3200
  backToDesignSystems: "Zurück zu Designsystemen",
3201
+ otherSources: "Andere",
3202
+ otherSourcesDescription:
3203
+ "Von einer Website, Code, Dateien oder einem vorhandenen Designsystem verbinden.",
3204
+ chooseSourcePrompt: "Quelle zum Konfigurieren auswählen",
3186
3205
  continue: "Weiter zur Generation",
3187
3206
  title: "Richten Sie Ihr Designsystem ein",
3188
3207
  description:
@@ -3610,6 +3629,10 @@ const designLocaleOverrides = {
3610
3629
  figmaCreateSuccess: "Figma から作成されたデザインシステム",
3611
3630
  figmaCreateError: "デザインシステムを作成できませんでした",
3612
3631
  backToDesignSystems: "設計システムに戻る",
3632
+ otherSources: "その他",
3633
+ otherSourcesDescription:
3634
+ "Webサイト、コード、ファイル、または既存のデザインシステムから接続します。",
3635
+ chooseSourcePrompt: "設定するソースを選択",
3613
3636
  continue: "世代を継続する",
3614
3637
  title: "デザインシステムをセットアップする",
3615
3638
  description:
@@ -4032,6 +4055,10 @@ const designLocaleOverrides = {
4032
4055
  figmaCreateSuccess: "Figma에서 생성된 디자인 시스템",
4033
4056
  figmaCreateError: "디자인 시스템을 만들 수 없습니다",
4034
4057
  backToDesignSystems: "디자인 시스템으로 돌아가기",
4058
+ otherSources: "기타",
4059
+ otherSourcesDescription:
4060
+ "웹사이트, 코드, 파일 또는 기존 디자인 시스템에서 연결합니다.",
4061
+ chooseSourcePrompt: "구성할 소스 선택",
4035
4062
  continue: "세대를 이어가다",
4036
4063
  title: "디자인 시스템 설정",
4037
4064
  description:
@@ -4448,6 +4475,10 @@ const designLocaleOverrides = {
4448
4475
  figmaCreateSuccess: "Sistema de design criado a partir de Figma",
4449
4476
  figmaCreateError: "Não foi possível criar o sistema de design",
4450
4477
  backToDesignSystems: "Voltar para sistemas de design",
4478
+ otherSources: "Outro",
4479
+ otherSourcesDescription:
4480
+ "Conecte-se de um site, código, arquivos ou um sistema de design existente.",
4481
+ chooseSourcePrompt: "Escolha uma fonte para configurar",
4451
4482
  continue: "Continuar para a geração",
4452
4483
  title: "Configure seu sistema de design",
4453
4484
  description:
@@ -4870,6 +4901,10 @@ const designLocaleOverrides = {
4870
4901
  figmaCreateSuccess: "Figma से डिज़ाइन सिस्टम बनाया गया",
4871
4902
  figmaCreateError: "डिज़ाइन सिस्टम नहीं बनाया जा सका",
4872
4903
  backToDesignSystems: "डिज़ाइन सिस्टम पर वापस जाएँ",
4904
+ otherSources: "अन्य",
4905
+ otherSourcesDescription:
4906
+ "वेबसाइट, कोड, फ़ाइलों या मौजूदा डिज़ाइन सिस्टम से कनेक्ट करें।",
4907
+ chooseSourcePrompt: "कॉन्फ़िगर करने के लिए एक स्रोत चुनें",
4873
4908
  continue: "पीढ़ी तक जारी रखें",
4874
4909
  title: "अपना डिज़ाइन सिस्टम सेट करें",
4875
4910
  description:
@@ -5282,6 +5317,10 @@ const designLocaleOverrides = {
5282
5317
  figmaCreateSuccess: "تم إنشاء نظام التصميم من Figma",
5283
5318
  figmaCreateError: "لا يمكن إنشاء نظام التصميم",
5284
5319
  backToDesignSystems: "العودة إلى أنظمة التصميم",
5320
+ otherSources: "أخرى",
5321
+ otherSourcesDescription:
5322
+ "الاتصال من موقع ويب أو رمز أو ملفات أو نظام تصميم موجود.",
5323
+ chooseSourcePrompt: "اختر مصدرًا لتهيئته",
5285
5324
  continue: "الاستمرار في الجيل",
5286
5325
  title: "قم بإعداد نظام التصميم الخاص بك",
5287
5326
  description: