@agent-native/core 0.175.4-nightly-20260826190205 → 0.175.4

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 (508) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +1 -1
  3. package/corpus/templates/analytics/.agents/skills/agent-native-docs/SKILL.md +3 -3
  4. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  5. package/corpus/templates/analytics/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  6. package/corpus/templates/analytics/.agents/skills/frontend-design/SKILL.md +1 -1
  7. package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +1 -1
  8. package/corpus/templates/analytics/.agents/skills/session-replay/SKILL.md +2 -2
  9. package/corpus/templates/analytics/.agents/skills/shadcn-ui/SKILL.md +3 -3
  10. package/corpus/templates/analytics/.agents/skills/storing-data/SKILL.md +1 -1
  11. package/corpus/templates/analytics/.agents/skills/workspace-conventions/SKILL.md +1 -1
  12. package/corpus/templates/analytics/CHANGELOG.md +4 -4
  13. package/corpus/templates/analytics/actions/navigate.ts +1 -1
  14. package/corpus/templates/analytics/actions/search-analytics-query-catalog.ts +1 -1
  15. package/corpus/templates/analytics/app/i18n-data.ts +10 -10
  16. package/corpus/templates/analytics/app/pages/DataSources.tsx +1 -1
  17. package/corpus/templates/analytics/app/pages/monitoring/errors/IssueList.tsx +1 -1
  18. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +1 -1
  19. package/corpus/templates/analytics/changelog/2026-07-03-agent-llm-observability-dashboard.md +1 -1
  20. package/corpus/templates/analytics/changelog/2026-07-11-agent-feedback-sentiment-dashboard.md +1 -1
  21. package/corpus/templates/analytics/changelog/2026-07-11-inferred-message-sentiment-dashboard.md +1 -1
  22. package/corpus/templates/analytics/changelog/2026-08-07-template-activity-charts-now-show-only-core-agent-native-app.md +1 -1
  23. package/corpus/templates/analytics/changelog/2026-08-22-fixed-the-agent-native-templates-first-party-dashboard-panel.md +1 -1
  24. package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +1 -1
  25. package/corpus/templates/analytics/scripts/seed-session-replay.ts +1 -1
  26. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +1 -1
  27. package/corpus/templates/analytics/server/lib/analytics-alerts.ts +2 -2
  28. package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +1 -1
  29. package/corpus/templates/assets/.agents/skills/agent-native-docs/SKILL.md +3 -3
  30. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  31. package/corpus/templates/assets/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  32. package/corpus/templates/assets/.agents/skills/frontend-design/SKILL.md +1 -1
  33. package/corpus/templates/assets/.agents/skills/shadcn-ui/SKILL.md +3 -3
  34. package/corpus/templates/assets/.agents/skills/storing-data/SKILL.md +1 -1
  35. package/corpus/templates/assets/.agents/skills/workspace-conventions/SKILL.md +1 -1
  36. package/corpus/templates/assets/CHANGELOG.md +1 -1
  37. package/corpus/templates/assets/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  38. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +1 -1
  39. package/corpus/templates/brain/.agents/skills/agent-native-docs/SKILL.md +3 -3
  40. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  41. package/corpus/templates/brain/.agents/skills/brain/RUNBOOK.md +3 -3
  42. package/corpus/templates/brain/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  43. package/corpus/templates/brain/.agents/skills/frontend-design/SKILL.md +1 -1
  44. package/corpus/templates/brain/.agents/skills/ingestion-and-connectors/SKILL.md +1 -1
  45. package/corpus/templates/brain/.agents/skills/shadcn-ui/SKILL.md +3 -3
  46. package/corpus/templates/brain/.agents/skills/storing-data/SKILL.md +1 -1
  47. package/corpus/templates/brain/.agents/skills/workspace-conventions/SKILL.md +1 -1
  48. package/corpus/templates/brain/CHANGELOG.md +1 -1
  49. package/corpus/templates/brain/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  50. package/corpus/templates/brain/evals/slack-pilot-corpus.ts +6 -6
  51. package/corpus/templates/brain/server/lib/brain-response-guard.ts +1 -1
  52. package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +1 -1
  53. package/corpus/templates/calendar/.agents/skills/agent-native-docs/SKILL.md +3 -3
  54. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  55. package/corpus/templates/calendar/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  56. package/corpus/templates/calendar/.agents/skills/frontend-design/SKILL.md +1 -1
  57. package/corpus/templates/calendar/.agents/skills/shadcn-ui/SKILL.md +3 -3
  58. package/corpus/templates/calendar/.agents/skills/storing-data/SKILL.md +1 -1
  59. package/corpus/templates/calendar/.agents/skills/workspace-conventions/SKILL.md +1 -1
  60. package/corpus/templates/calendar/CHANGELOG.md +2 -2
  61. package/corpus/templates/calendar/changelog/2026-07-06-google-calendar-now-finishes-connecting-correctly-after-sign.md +1 -1
  62. package/corpus/templates/calendar/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  63. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +1 -1
  64. package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +3 -3
  65. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  66. package/corpus/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  67. package/corpus/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
  68. package/corpus/templates/chat/.agents/skills/shadcn-ui/SKILL.md +3 -3
  69. package/corpus/templates/chat/.agents/skills/storing-data/SKILL.md +1 -1
  70. package/corpus/templates/chat/.agents/skills/workspace-conventions/SKILL.md +1 -1
  71. package/corpus/templates/chat/CHANGELOG.md +1 -1
  72. package/corpus/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  73. package/corpus/templates/clips/.agents/skills/agent-native-docs/SKILL.md +3 -3
  74. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  75. package/corpus/templates/clips/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  76. package/corpus/templates/clips/.agents/skills/dictate/SKILL.md +1 -1
  77. package/corpus/templates/clips/.agents/skills/frontend-design/SKILL.md +1 -1
  78. package/corpus/templates/clips/.agents/skills/recording/SKILL.md +2 -2
  79. package/corpus/templates/clips/.agents/skills/shadcn-ui/SKILL.md +3 -3
  80. package/corpus/templates/clips/.agents/skills/workspace-conventions/SKILL.md +1 -1
  81. package/corpus/templates/clips/CHANGELOG.md +3 -3
  82. package/corpus/templates/clips/actions/set-mobile-capture-state.ts +1 -1
  83. package/corpus/templates/clips/app/lib/capture-permissions.ts +1 -1
  84. package/corpus/templates/clips/changelog/2026-07-07-the-clips-desktop-download-page-now-uses-the-agent-native-ap.md +1 -1
  85. package/corpus/templates/clips/changelog/2026-07-17-capture-dictation-background-meeting-audio-and-camera-videos.md +1 -1
  86. package/corpus/templates/clips/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  87. package/corpus/templates/clips/desktop/src/lib/rewind-agent-prompt.ts +1 -1
  88. package/corpus/templates/clips/desktop/src/styles.css +1 -1
  89. package/corpus/templates/clips/desktop/src-tauri/src/rewind_chapters.rs +1 -1
  90. package/corpus/templates/clips/server/db/index.ts +1 -1
  91. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +1 -1
  92. package/corpus/templates/content/.agents/skills/agent-native-docs/SKILL.md +3 -3
  93. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  94. package/corpus/templates/content/.agents/skills/content/SKILL.md +1 -1
  95. package/corpus/templates/content/.agents/skills/content/references/local-file-mode.md +2 -2
  96. package/corpus/templates/content/.agents/skills/content-product-development/SKILL.md +2 -2
  97. package/corpus/templates/content/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  98. package/corpus/templates/content/.agents/skills/frontend-design/SKILL.md +1 -1
  99. package/corpus/templates/content/.agents/skills/shadcn-ui/SKILL.md +3 -3
  100. package/corpus/templates/content/.agents/skills/storing-data/SKILL.md +1 -1
  101. package/corpus/templates/content/.agents/skills/workspace-conventions/SKILL.md +1 -1
  102. package/corpus/templates/content/CHANGELOG.md +2 -2
  103. package/corpus/templates/content/actions/_builder-cms-read-client.ts +33 -24
  104. package/corpus/templates/content/agent-native.app-skill.json +1 -1
  105. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +1 -1
  106. package/corpus/templates/content/app/components/editor/database/settings.tsx +3 -3
  107. package/corpus/templates/content/app/i18n-data.ts +49 -49
  108. package/corpus/templates/content/app/lib/local-content-source-files.ts +2 -2
  109. package/corpus/templates/content/changelog/2026-07-18-local-folder-selection-no-longer-invokes-the-unsafe-native-p.md +1 -1
  110. package/corpus/templates/content/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  111. package/corpus/templates/content/docs/product/README.md +1 -1
  112. package/corpus/templates/content/docs/product/architecture.md +2 -2
  113. package/corpus/templates/content/docs/product/capabilities/content.author.mermaid.md +2 -2
  114. package/corpus/templates/content/docs/product/capabilities/content.form.shared-engine.md +2 -2
  115. package/corpus/templates/content/docs/product/encyclopedia.md +2 -2
  116. package/corpus/templates/content/docs/product/features/content.feature.collect-structured-input.md +2 -2
  117. package/corpus/templates/content/docs/product/features/content.feature.connect-your-sources.md +1 -1
  118. package/corpus/templates/content/docs/product/features/content.feature.put-your-organizations-know-how-to-work.md +1 -1
  119. package/corpus/templates/content/docs/product/features/content.feature.read-and-annotate-anything.md +1 -1
  120. package/corpus/templates/content/docs/product/features/content.feature.understand-what-your-data-says.md +2 -2
  121. package/corpus/templates/content/docs/product/features/content.feature.work-on-content-inside-another-application.md +3 -3
  122. package/corpus/templates/content/docs/product/roadmap.md +12 -12
  123. package/corpus/templates/content/docs/solutions/2026-08-12-toggle-summary-focus-persistence-shape.md +3 -3
  124. package/corpus/templates/content/shared/nfm.ts +25 -1
  125. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +1 -1
  126. package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +3 -3
  127. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  128. package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  129. package/corpus/templates/crm/.agents/skills/frontend-design/SKILL.md +1 -1
  130. package/corpus/templates/crm/.agents/skills/shadcn-ui/SKILL.md +3 -3
  131. package/corpus/templates/crm/.agents/skills/storing-data/SKILL.md +1 -1
  132. package/corpus/templates/crm/.agents/skills/workspace-conventions/SKILL.md +1 -1
  133. package/corpus/templates/crm/DEVELOPING.md +1 -1
  134. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +1 -1
  135. package/corpus/templates/design/.agents/skills/agent-native-docs/SKILL.md +3 -3
  136. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  137. package/corpus/templates/design/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  138. package/corpus/templates/design/.agents/skills/frontend-design/SKILL.md +1 -1
  139. package/corpus/templates/design/.agents/skills/shadcn-ui/SKILL.md +3 -3
  140. package/corpus/templates/design/.agents/skills/storing-data/SKILL.md +1 -1
  141. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +3 -3
  142. package/corpus/templates/design/.agents/skills/workspace-conventions/SKILL.md +1 -1
  143. package/corpus/templates/design/CHANGELOG.md +3 -3
  144. package/corpus/templates/design/changelog/2026-06-28-editor-app-menus-now-use-an-outline-agent-native-mark-with-b.md +1 -1
  145. package/corpus/templates/design/changelog/2026-07-27-collapsed-sidebar-keeps-the-agent-native-logo.md +1 -1
  146. package/corpus/templates/design/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  147. package/corpus/templates/design/public/manifest.json +1 -1
  148. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +1 -1
  149. package/corpus/templates/dispatch/.agents/skills/agent-native-docs/SKILL.md +3 -3
  150. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  151. package/corpus/templates/dispatch/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  152. package/corpus/templates/dispatch/.agents/skills/frontend-design/SKILL.md +1 -1
  153. package/corpus/templates/dispatch/.agents/skills/shadcn-ui/SKILL.md +3 -3
  154. package/corpus/templates/dispatch/.agents/skills/storing-data/SKILL.md +1 -1
  155. package/corpus/templates/dispatch/.agents/skills/workspace-conventions/SKILL.md +1 -1
  156. package/corpus/templates/dispatch/AGENTS.md +1 -1
  157. package/corpus/templates/dispatch/CHANGELOG.md +1 -1
  158. package/corpus/templates/dispatch/changelog/2026-07-27-thread-debug-accepts-request-run-ids.md +1 -1
  159. package/corpus/templates/dispatch/shared/feature-flags.ts +1 -1
  160. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +1 -1
  161. package/corpus/templates/factory/.agents/skills/agent-native-docs/SKILL.md +3 -3
  162. package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  163. package/corpus/templates/factory/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  164. package/corpus/templates/factory/.agents/skills/frontend-design/SKILL.md +1 -1
  165. package/corpus/templates/factory/.agents/skills/shadcn-ui/SKILL.md +3 -3
  166. package/corpus/templates/factory/.agents/skills/storing-data/SKILL.md +1 -1
  167. package/corpus/templates/factory/.agents/skills/workspace-conventions/SKILL.md +1 -1
  168. package/corpus/templates/factory/CHANGELOG.md +1 -1
  169. package/corpus/templates/factory/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  170. package/corpus/templates/factory/changelog/2026-08-24-slack-polling-accepts-the-agentnative-bot-handle.md +1 -1
  171. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +1 -1
  172. package/corpus/templates/forms/.agents/skills/agent-native-docs/SKILL.md +3 -3
  173. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  174. package/corpus/templates/forms/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  175. package/corpus/templates/forms/.agents/skills/form-publishing/SKILL.md +1 -1
  176. package/corpus/templates/forms/.agents/skills/frontend-design/SKILL.md +1 -1
  177. package/corpus/templates/forms/.agents/skills/shadcn-ui/SKILL.md +3 -3
  178. package/corpus/templates/forms/.agents/skills/storing-data/SKILL.md +1 -1
  179. package/corpus/templates/forms/.agents/skills/workspace-conventions/SKILL.md +1 -1
  180. package/corpus/templates/forms/CHANGELOG.md +2 -2
  181. package/corpus/templates/forms/changelog/2026-06-27-anonymous-feedback-no-longer-shows-internal-agent-native-ano.md +1 -1
  182. package/corpus/templates/forms/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  183. package/corpus/templates/forms/server/lib/public-form-ssr.ts +1 -1
  184. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +1 -1
  185. package/corpus/templates/macros/.agents/skills/agent-native-docs/SKILL.md +3 -3
  186. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  187. package/corpus/templates/macros/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  188. package/corpus/templates/macros/.agents/skills/frontend-design/SKILL.md +1 -1
  189. package/corpus/templates/macros/.agents/skills/shadcn-ui/SKILL.md +3 -3
  190. package/corpus/templates/macros/.agents/skills/storing-data/SKILL.md +1 -1
  191. package/corpus/templates/macros/.agents/skills/workspace-conventions/SKILL.md +1 -1
  192. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +1 -1
  193. package/corpus/templates/mail/.agents/skills/agent-native-docs/SKILL.md +3 -3
  194. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  195. package/corpus/templates/mail/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  196. package/corpus/templates/mail/.agents/skills/frontend-design/SKILL.md +1 -1
  197. package/corpus/templates/mail/.agents/skills/shadcn-ui/SKILL.md +3 -3
  198. package/corpus/templates/mail/.agents/skills/storing-data/SKILL.md +1 -1
  199. package/corpus/templates/mail/.agents/skills/workspace-conventions/SKILL.md +1 -1
  200. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +1 -1
  201. package/corpus/templates/plan/.agents/skills/agent-native-docs/SKILL.md +3 -3
  202. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  203. package/corpus/templates/plan/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  204. package/corpus/templates/plan/.agents/skills/frontend-design/SKILL.md +1 -1
  205. package/corpus/templates/plan/.agents/skills/plan-source-sync/SKILL.md +1 -1
  206. package/corpus/templates/plan/.agents/skills/shadcn-ui/SKILL.md +3 -3
  207. package/corpus/templates/plan/.agents/skills/storing-data/SKILL.md +1 -1
  208. package/corpus/templates/plan/.agents/skills/workspace-conventions/SKILL.md +1 -1
  209. package/corpus/templates/plan/CHANGELOG.md +1 -1
  210. package/corpus/templates/plan/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  211. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +1 -1
  212. package/corpus/templates/slides/.agents/skills/agent-native-docs/SKILL.md +3 -3
  213. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  214. package/corpus/templates/slides/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  215. package/corpus/templates/slides/.agents/skills/frontend-design/SKILL.md +1 -1
  216. package/corpus/templates/slides/.agents/skills/shadcn-ui/SKILL.md +3 -3
  217. package/corpus/templates/slides/.agents/skills/storing-data/SKILL.md +1 -1
  218. package/corpus/templates/slides/.agents/skills/workspace-conventions/SKILL.md +1 -1
  219. package/corpus/templates/slides/CHANGELOG.md +1 -1
  220. package/corpus/templates/slides/actions/export-pptx.ts +1 -1
  221. package/corpus/templates/slides/changelog/2026-07-31-the-agent-native-logo-stays-visible-when-the-sidebar-is-coll.md +1 -1
  222. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +1 -1
  223. package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +3 -3
  224. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  225. package/corpus/templates/tasks/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  226. package/corpus/templates/tasks/.agents/skills/frontend-design/SKILL.md +1 -1
  227. package/corpus/templates/tasks/.agents/skills/shadcn-ui/SKILL.md +3 -3
  228. package/corpus/templates/tasks/.agents/skills/storing-data/SKILL.md +1 -1
  229. package/corpus/templates/tasks/.agents/skills/workspace-conventions/SKILL.md +1 -1
  230. package/corpus/templates/tasks/CHANGELOG.md +1 -1
  231. package/corpus/templates/tasks/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  232. package/corpus/templates/videos/.agents/skills/upgrade-agent-native/SKILL.md +3 -3
  233. package/dist/a2a/client.d.ts +1 -1
  234. package/dist/a2a/client.js +1 -1
  235. package/dist/agent/engine/builder-engine.js +2 -2
  236. package/dist/agent/harness/hosted.js +1 -1
  237. package/dist/agent/harness/types.d.ts +3 -3
  238. package/dist/agent/production-agent.js +2 -2
  239. package/dist/cli/agent.js +2 -2
  240. package/dist/cli/app-skill.js +1 -1
  241. package/dist/cli/clean.js +7 -7
  242. package/dist/cli/code-agent-connector.js +1 -1
  243. package/dist/cli/codex-cli-participant.d.ts +1 -1
  244. package/dist/cli/connect.js +6 -6
  245. package/dist/cli/create.js +5 -5
  246. package/dist/cli/design-connect.js +1 -1
  247. package/dist/cli/portal-workspace.js +1 -1
  248. package/dist/cli/skills-content/content-skill.d.ts +1 -1
  249. package/dist/cli/skills-content/content-skill.js +1 -1
  250. package/dist/cli/skills-content/design-visual-edit-skill.d.ts +1 -1
  251. package/dist/cli/skills-content/design-visual-edit-skill.js +3 -3
  252. package/dist/cli/skills-content/help.js +1 -1
  253. package/dist/cli/skills.d.ts +1 -1
  254. package/dist/cli/skills.js +8 -8
  255. package/dist/cli/telemetry.js +1 -1
  256. package/dist/cli/template-sync.js +1 -1
  257. package/dist/cli/templates-meta.js +7 -7
  258. package/dist/cli/upgrade.d.ts +1 -1
  259. package/dist/cli/upgrade.js +5 -5
  260. package/dist/client/AboutAgentNativeDialog.js +1 -1
  261. package/dist/client/AgentNativeFrame.js +1 -1
  262. package/dist/client/CommandMenu.d.ts +1 -1
  263. package/dist/client/CommandMenu.js +2 -2
  264. package/dist/client/EnvironmentBadge.js +2 -2
  265. package/dist/client/ErrorBoundary.js +1 -1
  266. package/dist/client/FeedbackButton.d.ts +1 -1
  267. package/dist/client/PoweredByBadge.d.ts +1 -1
  268. package/dist/client/PoweredByBadge.js +2 -2
  269. package/dist/client/agent-chat.d.ts +1 -1
  270. package/dist/client/analytics.d.ts +1 -1
  271. package/dist/client/analytics.js +1 -1
  272. package/dist/client/app-providers.js +3 -3
  273. package/dist/client/chat/run-recovery.js +1 -1
  274. package/dist/client/chat/runtime.js +1 -1
  275. package/dist/client/client-surface.d.ts +1 -1
  276. package/dist/client/components/CodeRequiredDialog.d.ts +1 -1
  277. package/dist/client/components/CodeRequiredDialog.js +1 -1
  278. package/dist/client/error-capture.js +1 -1
  279. package/dist/client/error-reporting.js +1 -1
  280. package/dist/client/extensions/portable-extension.js +1 -1
  281. package/dist/client/i18n.js +2 -2
  282. package/dist/client/mcp-app-host.js +1 -1
  283. package/dist/client/mcp-apps/McpAppRenderer.js +1 -1
  284. package/dist/client/settings/useBuilderStatus.js +1 -1
  285. package/dist/client/track.d.ts +1 -1
  286. package/dist/client/track.js +1 -1
  287. package/dist/collab/struct-routes.d.ts +1 -1
  288. package/dist/connections/catalog.d.ts +1 -1
  289. package/dist/connections/catalog.js +1 -1
  290. package/dist/integrations/catalog.d.ts +1 -1
  291. package/dist/integrations/catalog.js +4 -4
  292. package/dist/integrations/identity-links-store.d.ts +1 -1
  293. package/dist/integrations/identity-links-store.js +3 -3
  294. package/dist/integrations/identity.d.ts +1 -1
  295. package/dist/integrations/identity.js +2 -2
  296. package/dist/integrations/installations-store.d.ts +1 -1
  297. package/dist/integrations/installations-store.js +1 -1
  298. package/dist/integrations/plugin.js +4 -4
  299. package/dist/integrations/remote-browser-actions.js +3 -3
  300. package/dist/integrations/remote-push-delivery.js +1 -1
  301. package/dist/integrations/slack-manifest.d.ts +4 -4
  302. package/dist/integrations/slack-manifest.js +4 -4
  303. package/dist/integrations/slack-oauth.d.ts +2 -2
  304. package/dist/integrations/slack-oauth.js +2 -2
  305. package/dist/integrations/webhook-handler.js +1 -1
  306. package/dist/localization/core-messages/ar-SA.js +2 -2
  307. package/dist/localization/core-messages/de-DE.js +2 -2
  308. package/dist/localization/core-messages/en-US.d.ts +2 -2
  309. package/dist/localization/core-messages/en-US.js +2 -2
  310. package/dist/localization/core-messages/es-ES.js +2 -2
  311. package/dist/localization/core-messages/fr-FR.js +2 -2
  312. package/dist/localization/core-messages/hi-IN.js +2 -2
  313. package/dist/localization/core-messages/ja-JP.js +2 -2
  314. package/dist/localization/core-messages/ko-KR.js +2 -2
  315. package/dist/localization/core-messages/pt-BR.js +2 -2
  316. package/dist/localization/core-messages/zh-CN.js +2 -2
  317. package/dist/localization/core-messages/zh-TW.js +2 -2
  318. package/dist/localization/core-messages.d.ts +2 -2
  319. package/dist/localization/default-messages.js +6 -6
  320. package/dist/mcp/builtin-tools.js +3 -2
  321. package/dist/mcp/embed-app.js +4 -4
  322. package/dist/mcp/oauth-route.js +2 -2
  323. package/dist/mcp/stdio.js +1 -1
  324. package/dist/mcp-client/config.js +1 -1
  325. package/dist/mcp-client/manager.d.ts +9 -0
  326. package/dist/mcp-client/manager.js +7 -2
  327. package/dist/mcp-client/oauth-client.js +1 -1
  328. package/dist/observability/posthog-ai.d.ts +1 -1
  329. package/dist/observability/posthog-ai.js +1 -1
  330. package/dist/observability/routes.d.ts +3 -3
  331. package/dist/onboarding/default-steps.js +3 -3
  332. package/dist/provider-api/index.js +1 -1
  333. package/dist/scripts/call-agent.js +1 -1
  334. package/dist/secrets/routes.d.ts +9 -9
  335. package/dist/server/agent-chat/mcp-options.d.ts +1 -1
  336. package/dist/server/agent-chat/script-entries.js +1 -1
  337. package/dist/server/agent-chat-plugin.js +4 -4
  338. package/dist/server/auth.d.ts +1 -1
  339. package/dist/server/auth.js +1 -1
  340. package/dist/server/beta-opt-out-html.js +1 -1
  341. package/dist/server/builder-browser.js +1 -1
  342. package/dist/server/core-routes-plugin.js +4 -4
  343. package/dist/server/credential-provider.js +3 -0
  344. package/dist/server/deep-link.d.ts +1 -1
  345. package/dist/server/deep-link.js +1 -1
  346. package/dist/server/email-template.d.ts +1 -1
  347. package/dist/server/email-template.js +1 -1
  348. package/dist/server/email-templates.js +7 -7
  349. package/dist/server/email.js +1 -1
  350. package/dist/server/google-auth-mode.d.ts +1 -1
  351. package/dist/server/google-oauth.d.ts +2 -2
  352. package/dist/server/google-oauth.js +10 -8
  353. package/dist/server/onboarding-html.d.ts +1 -1
  354. package/dist/server/onboarding-html.js +2 -2
  355. package/dist/server/realtime-token.d.ts +1 -1
  356. package/dist/server/realtime-voice.js +1 -1
  357. package/dist/server/security-headers.d.ts +1 -1
  358. package/dist/server/security-headers.js +1 -1
  359. package/dist/shared/document-title.js +1 -1
  360. package/dist/sharing/actions/share-resource.js +1 -1
  361. package/dist/sharing/registry.d.ts +1 -1
  362. package/dist/styles/agent-native.css +1 -1
  363. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +1 -1
  364. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +3 -3
  365. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  366. package/dist/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  367. package/dist/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
  368. package/dist/templates/chat/.agents/skills/shadcn-ui/SKILL.md +3 -3
  369. package/dist/templates/chat/.agents/skills/storing-data/SKILL.md +1 -1
  370. package/dist/templates/chat/.agents/skills/workspace-conventions/SKILL.md +1 -1
  371. package/dist/templates/chat/CHANGELOG.md +1 -1
  372. package/dist/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  373. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +1 -1
  374. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +3 -3
  375. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  376. package/dist/templates/default/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  377. package/dist/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  378. package/dist/templates/default/.agents/skills/shadcn-ui/SKILL.md +3 -3
  379. package/dist/templates/default/.agents/skills/storing-data/SKILL.md +1 -1
  380. package/dist/templates/default/.agents/skills/workspace-conventions/SKILL.md +1 -1
  381. package/dist/templates/default/app/i18n/ar-SA.ts +2 -2
  382. package/dist/templates/default/app/i18n/de-DE.ts +2 -2
  383. package/dist/templates/default/app/i18n/en-US.ts +2 -2
  384. package/dist/templates/default/app/i18n/es-ES.ts +2 -2
  385. package/dist/templates/default/app/i18n/fr-FR.ts +2 -2
  386. package/dist/templates/default/app/i18n/hi-IN.ts +2 -2
  387. package/dist/templates/default/app/i18n/ja-JP.ts +2 -2
  388. package/dist/templates/default/app/i18n/ko-KR.ts +2 -2
  389. package/dist/templates/default/app/i18n/pt-BR.ts +2 -2
  390. package/dist/templates/default/app/i18n/zh-CN.ts +2 -2
  391. package/dist/templates/default/app/i18n/zh-TW.ts +2 -2
  392. package/dist/templates/default/public/manifest.json +1 -1
  393. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +3 -3
  394. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  395. package/dist/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  396. package/dist/templates/headless/.agents/skills/storing-data/SKILL.md +1 -1
  397. package/dist/templates/headless/AGENTS.md +6 -6
  398. package/dist/templates/headless/actions/run.ts +1 -1
  399. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +1 -1
  400. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +3 -3
  401. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  402. package/dist/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  403. package/dist/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  404. package/dist/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +3 -3
  405. package/dist/templates/workspace-core/.agents/skills/storing-data/SKILL.md +1 -1
  406. package/dist/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +1 -1
  407. package/dist/templates/workspace-core/AGENTS.md +1 -1
  408. package/dist/templates/workspace-root/AGENTS.md +1 -1
  409. package/dist/tracking/providers.d.ts +2 -2
  410. package/dist/tracking/providers.js +5 -5
  411. package/dist/vite/client.d.ts +1 -1
  412. package/dist/vite/client.js +1 -1
  413. package/docs/AGENTS.md +3 -3
  414. package/docs/SKILL.md +3 -3
  415. package/docs/content/a2a-protocol.mdx +2 -2
  416. package/docs/content/actions-overview.mdx +3 -3
  417. package/docs/content/agent-resources.mdx +4 -2
  418. package/docs/content/authentication.mdx +4 -2
  419. package/docs/content/automation-connectors.mdx +5 -5
  420. package/docs/content/client-data.mdx +1 -1
  421. package/docs/content/client-overview.mdx +2 -2
  422. package/docs/content/client-routing.mdx +3 -1
  423. package/docs/content/cloneable-saas.mdx +5 -5
  424. package/docs/content/creating-templates.mdx +4 -2
  425. package/docs/content/cross-app-sso.mdx +4 -2
  426. package/docs/content/custom-design-system.mdx +9 -9
  427. package/docs/content/docs-components.mdx +1 -1
  428. package/docs/content/external-agents-catalog.mdx +2 -2
  429. package/docs/content/external-agents.mdx +1 -1
  430. package/docs/content/frames.mdx +3 -3
  431. package/docs/content/integrations.mdx +1 -1
  432. package/docs/content/internationalization.mdx +2 -2
  433. package/docs/content/mcp-clients.mdx +4 -2
  434. package/docs/content/messaging.mdx +5 -3
  435. package/docs/content/multi-app-workspace.mdx +3 -1
  436. package/docs/content/organizations-teams-permissions.mdx +2 -2
  437. package/docs/content/package-lifecycle.mdx +4 -2
  438. package/docs/content/plan-plugin.mdx +1 -1
  439. package/docs/content/pr-visual-recap.mdx +1 -1
  440. package/docs/content/security.mdx +3 -1
  441. package/docs/content/server-database.mdx +3 -1
  442. package/docs/content/server-overview.mdx +6 -4
  443. package/docs/content/skills-guide.mdx +3 -3
  444. package/docs/content/template-assets-integrations.mdx +1 -1
  445. package/docs/content/template-brain-agent.mdx +1 -1
  446. package/docs/content/template-brain-developers.mdx +1 -1
  447. package/docs/content/template-calendar-integrations.mdx +1 -1
  448. package/docs/content/template-clips-ai-and-editing.mdx +1 -1
  449. package/docs/content/template-clips-capture-everywhere.mdx +1 -1
  450. package/docs/content/template-content-local-files.mdx +1 -1
  451. package/docs/content/template-content-sync.mdx +2 -2
  452. package/docs/content/template-design-collaboration-and-full-apps.mdx +1 -1
  453. package/docs/content/template-dispatch.mdx +1 -1
  454. package/docs/content/template-forms-building-publishing.mdx +2 -2
  455. package/docs/content/template-forms.mdx +3 -1
  456. package/docs/content/template-plan-local-and-desktop.mdx +3 -3
  457. package/docs/content/template-plan.mdx +1 -1
  458. package/docs/content/tracking.mdx +5 -5
  459. package/docs/content/voice-input.mdx +3 -1
  460. package/docs/content/webmcp.mdx +2 -0
  461. package/docs/content/workspace-management.mdx +3 -1
  462. package/package.json +3 -3
  463. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +1 -1
  464. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +3 -3
  465. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  466. package/src/templates/chat/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  467. package/src/templates/chat/.agents/skills/frontend-design/SKILL.md +1 -1
  468. package/src/templates/chat/.agents/skills/shadcn-ui/SKILL.md +3 -3
  469. package/src/templates/chat/.agents/skills/storing-data/SKILL.md +1 -1
  470. package/src/templates/chat/.agents/skills/workspace-conventions/SKILL.md +1 -1
  471. package/src/templates/chat/CHANGELOG.md +1 -1
  472. package/src/templates/chat/changelog/2026-07-31-clicking-the-agent-native-logo-now-toggles-the-app-sidebar.md +1 -1
  473. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +1 -1
  474. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +3 -3
  475. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  476. package/src/templates/default/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  477. package/src/templates/default/.agents/skills/frontend-design/SKILL.md +1 -1
  478. package/src/templates/default/.agents/skills/shadcn-ui/SKILL.md +3 -3
  479. package/src/templates/default/.agents/skills/storing-data/SKILL.md +1 -1
  480. package/src/templates/default/.agents/skills/workspace-conventions/SKILL.md +1 -1
  481. package/src/templates/default/app/i18n/ar-SA.ts +2 -2
  482. package/src/templates/default/app/i18n/de-DE.ts +2 -2
  483. package/src/templates/default/app/i18n/en-US.ts +2 -2
  484. package/src/templates/default/app/i18n/es-ES.ts +2 -2
  485. package/src/templates/default/app/i18n/fr-FR.ts +2 -2
  486. package/src/templates/default/app/i18n/hi-IN.ts +2 -2
  487. package/src/templates/default/app/i18n/ja-JP.ts +2 -2
  488. package/src/templates/default/app/i18n/ko-KR.ts +2 -2
  489. package/src/templates/default/app/i18n/pt-BR.ts +2 -2
  490. package/src/templates/default/app/i18n/zh-CN.ts +2 -2
  491. package/src/templates/default/app/i18n/zh-TW.ts +2 -2
  492. package/src/templates/default/public/manifest.json +1 -1
  493. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +3 -3
  494. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  495. package/src/templates/headless/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  496. package/src/templates/headless/.agents/skills/storing-data/SKILL.md +1 -1
  497. package/src/templates/headless/AGENTS.md +6 -6
  498. package/src/templates/headless/actions/run.ts +1 -1
  499. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +1 -1
  500. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +3 -3
  501. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +1 -1
  502. package/src/templates/workspace-core/.agents/skills/customizing-agent-native/SKILL.md +3 -3
  503. package/src/templates/workspace-core/.agents/skills/frontend-design/SKILL.md +1 -1
  504. package/src/templates/workspace-core/.agents/skills/shadcn-ui/SKILL.md +3 -3
  505. package/src/templates/workspace-core/.agents/skills/storing-data/SKILL.md +1 -1
  506. package/src/templates/workspace-core/.agents/skills/workspace-conventions/SKILL.md +1 -1
  507. package/src/templates/workspace-core/AGENTS.md +1 -1
  508. package/src/templates/workspace-root/AGENTS.md +1 -1
@@ -63,7 +63,7 @@ export async function runCodeAgentConnector(options = {}) {
63
63
  "Agent-Native Code remote connector is not paired.",
64
64
  "",
65
65
  `Expected device config: ${configPath}`,
66
- "Pair this device from Agent Native, or set AGENT_NATIVE_REMOTE_DEVICE_PATH to a JSON file containing a device token.",
66
+ "Pair this device from Agent-Native, or set AGENT_NATIVE_REMOTE_DEVICE_PATH to a JSON file containing a device token.",
67
67
  "Then run: agent-native code serve --relay-url <relay-url>",
68
68
  "",
69
69
  ].join("\n"));
@@ -7,7 +7,7 @@ export interface CodexCliSubscriptionStatus {
7
7
  authMode?: "ChatGPT" | "API key" | "unknown";
8
8
  }
9
9
  export interface CodexCliParticipantSession {
10
- /** Codex owns and interprets this value; Agent Native only persists it. */
10
+ /** Codex owns and interprets this value; Agent-Native only persists it. */
11
11
  resumeSessionId?: string;
12
12
  }
13
13
  export interface CodexCliParticipantEvent {
@@ -316,7 +316,7 @@ function normalizeHostedAppNames(values, apps) {
316
316
  async function promptForHostedApps(context) {
317
317
  const clack = await import("@clack/prompts");
318
318
  const result = await clack.multiselect({
319
- message: "Which Agent Native apps do you want to connect?\n" +
319
+ message: "Which Agent-Native apps do you want to connect?\n" +
320
320
  " (all are selected by default; space toggles, enter confirms)",
321
321
  options: context.apps.map((app) => ({
322
322
  value: app.name,
@@ -413,7 +413,7 @@ function clientsNotIn(requestedClients, effectiveClients) {
413
413
  }
414
414
  function displayMcpServerName(serverName) {
415
415
  if (!serverName)
416
- return "Agent Native MCP";
416
+ return "Agent-Native MCP";
417
417
  if (serverName === "plan")
418
418
  return "Plan MCP";
419
419
  return `"${serverName}" MCP`;
@@ -1411,7 +1411,7 @@ async function resolveReconnectTarget(parsed, clients, deps) {
1411
1411
  const mcpUrl = mcpUrlForBaseUrl(normalizedUrl);
1412
1412
  const matches = distinctReconnectEntries(entries.filter((entry) => sameMcpUrl(entry.url, mcpUrl)));
1413
1413
  if (matches.length === 0) {
1414
- logErr(` No existing Agent Native MCP entry found for ${mcpUrl}.`);
1414
+ logErr(` No existing Agent-Native MCP entry found for ${mcpUrl}.`);
1415
1415
  logErr(" First-time setup still uses: npx @agent-native/core@latest connect <url> --client <client>");
1416
1416
  return null;
1417
1417
  }
@@ -1470,7 +1470,7 @@ async function resolveReconnectTarget(parsed, clients, deps) {
1470
1470
  byUrl.set(key, bucket);
1471
1471
  }
1472
1472
  if (byUrl.size === 0) {
1473
- logErr(" No existing Agent Native MCP entry found to reconnect.");
1473
+ logErr(" No existing Agent-Native MCP entry found to reconnect.");
1474
1474
  logErr(" Pass a URL, or use --name <serverName> if the entry has a custom name.");
1475
1475
  logErr(" First-time setup still uses: npx @agent-native/core@latest connect <url> --client <client>");
1476
1476
  return null;
@@ -1494,7 +1494,7 @@ async function resolveReconnectTarget(parsed, clients, deps) {
1494
1494
  if (shouldPrompt(deps)) {
1495
1495
  const clack = await import("@clack/prompts");
1496
1496
  const result = await clack.select({
1497
- message: "Multiple Agent Native apps found. Which one do you want to reconnect?",
1497
+ message: "Multiple Agent-Native apps found. Which one do you want to reconnect?",
1498
1498
  options: urlList.map((u) => {
1499
1499
  const representativeEntry = byUrl.get(u)[0];
1500
1500
  return {
@@ -1521,7 +1521,7 @@ async function resolveReconnectTarget(parsed, clients, deps) {
1521
1521
  clients: uniqueClients(bucket),
1522
1522
  };
1523
1523
  }
1524
- logErr(" Found multiple Agent Native MCP entries:");
1524
+ logErr(" Found multiple Agent-Native MCP entries:");
1525
1525
  for (const [u, bucket] of byUrl) {
1526
1526
  logErr(` ${bucket[0].serverName} → ${u}`);
1527
1527
  }
@@ -132,7 +132,7 @@ const HEADLESS_OPTION = {
132
132
  const COMMUNITY_OPTION = {
133
133
  name: "community",
134
134
  label: "Community template",
135
- hint: "Install a third-party Agent Native app from a public GitHub repository",
135
+ hint: "Install a third-party Agent-Native app from a public GitHub repository",
136
136
  };
137
137
  /**
138
138
  * Main entry for `agent-native create [name]`.
@@ -1170,7 +1170,7 @@ function communityTemplateTrustMessage(selection) {
1170
1170
  if (!community)
1171
1171
  return undefined;
1172
1172
  return [
1173
- `${community.repo} is third-party code and is not reviewed or maintained by Agent Native.`,
1173
+ `${community.repo} is third-party code and is not reviewed or maintained by Agent-Native.`,
1174
1174
  "The CLI downloads source only; it does not install dependencies or run template scripts.",
1175
1175
  "Review the generated files before running pnpm install.",
1176
1176
  community.ref
@@ -1958,7 +1958,7 @@ function assertSafeCommunityArchiveListing(listing) {
1958
1958
  return !isCanonicalAgentSymlinkListing(line);
1959
1959
  });
1960
1960
  if (unsafeEntry) {
1961
- throw new ValidationError("Community template archives may only contain Agent Native's canonical internal symlinks (CLAUDE.md and .claude/skills). Remove other symbolic or hard links and try again.");
1961
+ throw new ValidationError("Community template archives may only contain Agent-Native's canonical internal symlinks (CLAUDE.md and .claude/skills). Remove other symbolic or hard links and try again.");
1962
1962
  }
1963
1963
  }
1964
1964
  function isCanonicalAgentSymlinkListing(line) {
@@ -2031,7 +2031,7 @@ function communityTemplateTarballUrl(repo, ref) {
2031
2031
  function assertCommunityTemplateRoot(targetDir, repo) {
2032
2032
  const packagePath = path.join(targetDir, "package.json");
2033
2033
  if (!fs.existsSync(packagePath)) {
2034
- throw new ValidationError(`Community template ${repo} is not an Agent Native app at the repository root: package.json was not found. Point to a repository whose root is the app.`);
2034
+ throw new ValidationError(`Community template ${repo} is not an Agent-Native app at the repository root: package.json was not found. Point to a repository whose root is the app.`);
2035
2035
  }
2036
2036
  let pkg;
2037
2037
  try {
@@ -2051,7 +2051,7 @@ function assertCommunityTemplateRoot(targetDir, repo) {
2051
2051
  typeof group["@agent-native/core"] ===
2052
2052
  "string");
2053
2053
  if (!usesAgentNativeCore) {
2054
- throw new ValidationError(`Community template ${repo} is not an Agent Native app at the repository root. Its package.json must directly depend on @agent-native/core in dependencies, devDependencies, or peerDependencies.`);
2054
+ throw new ValidationError(`Community template ${repo} is not an Agent-Native app at the repository root. Its package.json must directly depend on @agent-native/core in dependencies, devDependencies, or peerDependencies.`);
2055
2055
  }
2056
2056
  }
2057
2057
  async function resolveCommunityTemplateSource(stagingDir, selection, options = {}) {
@@ -1883,7 +1883,7 @@ export async function startDesignConnectBridge(manifest, seedOrOptions) {
1883
1883
  if (!installsSupportedDesignBridge) {
1884
1884
  sendJson(res, 400, {
1885
1885
  ok: false,
1886
- error: "script must install an approved Agent Native editor or canvas-pan bridge",
1886
+ error: "script must install an approved Agent-Native editor or canvas-pan bridge",
1887
1887
  });
1888
1888
  return;
1889
1889
  }
@@ -83,7 +83,7 @@ export async function createPortalHandoff(input) {
83
83
  throw gitFailure(added, "Portal could not snapshot local code.");
84
84
  }
85
85
  const tree = await requiredGitOutput(executeGit, ["write-tree"], repositoryPath, "Portal could not write the local code snapshot.", indexEnv);
86
- const authorName = (await optionalGitOutput(executeGit, ["config", "--get", "user.name"], repositoryPath)) ?? "Agent Native Portal";
86
+ const authorName = (await optionalGitOutput(executeGit, ["config", "--get", "user.name"], repositoryPath)) ?? "Agent-Native Portal";
87
87
  const authorEmail = (await optionalGitOutput(executeGit, ["config", "--get", "user.email"], repositoryPath)) ?? "portal@agent-native.local";
88
88
  const committed = await requiredGitOutput(executeGit, ["commit-tree", tree, "-p", head, "-m", `Portal handoff ${handoffId}`], repositoryPath, "Portal could not create the local code snapshot.", {
89
89
  ...indexEnv,
@@ -1 +1 @@
1
- export declare const CONTENT_SKILL_MD = "---\nname: content\ndescription: >-\n Use Content for repo-backed Markdown/MDX docs, blogs, resources, rich\n document editing, local components, shareable copies, and database-backed\n local-folder sources. Prefer Content actions over raw filesystem writes when\n available.\nmetadata:\n visibility: exported\n---\n\n# Content\n\nUse the Content app when a workflow is about authoring, editing, reviewing, or\npublishing Markdown/MDX documents: docs sites, blogs, resource libraries,\nmarketing pages, internal notes, and local MDX components. Content gives the\nagent a document tree, a rich editor, normal document actions, and optional\nlocal-folder synchronization.\n\n## Choose The Path\n\n- Use Content actions when the Content MCP/action tools are available:\n `list-documents`, `search-documents`, `get-document`,\n `pull-document`, `create-document`, `edit-document`,\n `update-document`, `delete-document`,\n `sync-manifest-local-folder-source`, `sync-local-folder-source`,\n `list-local-component-files`, and `write-local-component-file`.\n- Use `pull-document` or `get-document` before editing a page. Use\n `edit-document` for precise find/replace changes and `update-document`\n for full rewrites or new content.\n- Local folders declared in `agent-native.json` are sources for ordinary\n SQL-backed Content pages. Use the trusted bridge's pull/check/push workflows to\n synchronize them; normal document actions always operate on the database.\n- If Content tools are not visible and no local Content app or Desktop bridge is\n running, treat this skill as repo-editing guidance. Edit configured\n `.md`/`.mdx` files directly, preserve frontmatter and MDX imports, and tell\n the user the Content action surface was not available.\n\n## Action Examples\n\nPrefer JSON input for action calls:\n\n```bash\npnpm action list-documents\npnpm action get-document '{\"id\":\"document-id\"}'\npnpm action edit-document '{\"id\":\"document-id\",\"find\":\"old copy\",\"replace\":\"new copy\"}'\npnpm action update-document '{\"id\":\"document-id\",\"content\":\"# Updated\\n\\nBody\"}'\n```\n\nRun `refresh-list` after create/update/delete operations when you need the\nopen Content UI sidebar to repaint immediately.\n\n## Local Folder Sources\n\nInstall into an existing repo with:\n\n```bash\nnpx @agent-native/core@latest skills add content --mode local-files --scope project\n```\n\nThe installer copies this skill and writes or updates `agent-native.json` with\ndatabase-backed local-folder sources for `docs/`, `blog/`, `content/`, and\n`resources/`, plus a `components/` folder for local MDX components. A trusted\nlocal bridge imports these files into the workspace's canonical Files database.\nRun `sync-manifest-local-folder-source` with a root's generated\n`source.connectionId`, or launch `agent-native content local-files <target>`,\nto connect and pull it. A typical root looks like:\n\n```json\n{\n \"version\": 1,\n \"apps\": {\n \"content\": {\n \"roots\": [\n {\n \"name\": \"Docs\",\n \"path\": \"docs\",\n \"kind\": \"docs\",\n \"extensions\": [\".md\", \".mdx\"],\n \"source\": {\n \"type\": \"local-folder\",\n \"connectionId\": \"local-folder:<opaque-id>\",\n \"truthPolicy\": \"source_primary\"\n }\n }\n ],\n \"components\": \"components\",\n \"extensions\": \"extensions\",\n \"hide\": [\"**/_*.md\", \"**/_*.mdx\"]\n }\n }\n}\n```\n\nLocal-folder synchronization does not make the host language model local, and\nthe hosted Content app cannot read private repo files by itself. File access\nrequires a local Content app, Agent Native Desktop, or another trusted bridge.\n\n## MDX And Components\n\n- Preserve frontmatter keys you do not understand. Preserve MDX imports,\n exports, JSX, and expression props unless the user explicitly asks to change\n them.\n- Use local components from the configured `components` folder. Components\n should be PascalCase exports from `.tsx` files; simple editable input metadata\n can live next to them as `ComponentNameInputs`.\n- Use `list-local-component-files` and `write-local-component-file` for\n component source changes when Content tools are available. Otherwise edit the\n component files directly like normal repo source.\n\n## Boundaries\n\n- A database page and its source file can change independently. Use folder\n check/pull/push and resolve reported conflicts rather than silently overwriting\n either revision.\n- Do not push/pull Notion, Builder.io, or other provider-backed content unless\n the user explicitly asks for provider sync.\n- Do not paste secrets, private provider data, or credential-looking values into\n docs, generated pages, frontmatter, examples, or local components.\n";
1
+ export declare const CONTENT_SKILL_MD = "---\nname: content\ndescription: >-\n Use Content for repo-backed Markdown/MDX docs, blogs, resources, rich\n document editing, local components, shareable copies, and database-backed\n local-folder sources. Prefer Content actions over raw filesystem writes when\n available.\nmetadata:\n visibility: exported\n---\n\n# Content\n\nUse the Content app when a workflow is about authoring, editing, reviewing, or\npublishing Markdown/MDX documents: docs sites, blogs, resource libraries,\nmarketing pages, internal notes, and local MDX components. Content gives the\nagent a document tree, a rich editor, normal document actions, and optional\nlocal-folder synchronization.\n\n## Choose The Path\n\n- Use Content actions when the Content MCP/action tools are available:\n `list-documents`, `search-documents`, `get-document`,\n `pull-document`, `create-document`, `edit-document`,\n `update-document`, `delete-document`,\n `sync-manifest-local-folder-source`, `sync-local-folder-source`,\n `list-local-component-files`, and `write-local-component-file`.\n- Use `pull-document` or `get-document` before editing a page. Use\n `edit-document` for precise find/replace changes and `update-document`\n for full rewrites or new content.\n- Local folders declared in `agent-native.json` are sources for ordinary\n SQL-backed Content pages. Use the trusted bridge's pull/check/push workflows to\n synchronize them; normal document actions always operate on the database.\n- If Content tools are not visible and no local Content app or Desktop bridge is\n running, treat this skill as repo-editing guidance. Edit configured\n `.md`/`.mdx` files directly, preserve frontmatter and MDX imports, and tell\n the user the Content action surface was not available.\n\n## Action Examples\n\nPrefer JSON input for action calls:\n\n```bash\npnpm action list-documents\npnpm action get-document '{\"id\":\"document-id\"}'\npnpm action edit-document '{\"id\":\"document-id\",\"find\":\"old copy\",\"replace\":\"new copy\"}'\npnpm action update-document '{\"id\":\"document-id\",\"content\":\"# Updated\\n\\nBody\"}'\n```\n\nRun `refresh-list` after create/update/delete operations when you need the\nopen Content UI sidebar to repaint immediately.\n\n## Local Folder Sources\n\nInstall into an existing repo with:\n\n```bash\nnpx @agent-native/core@latest skills add content --mode local-files --scope project\n```\n\nThe installer copies this skill and writes or updates `agent-native.json` with\ndatabase-backed local-folder sources for `docs/`, `blog/`, `content/`, and\n`resources/`, plus a `components/` folder for local MDX components. A trusted\nlocal bridge imports these files into the workspace's canonical Files database.\nRun `sync-manifest-local-folder-source` with a root's generated\n`source.connectionId`, or launch `agent-native content local-files <target>`,\nto connect and pull it. A typical root looks like:\n\n```json\n{\n \"version\": 1,\n \"apps\": {\n \"content\": {\n \"roots\": [\n {\n \"name\": \"Docs\",\n \"path\": \"docs\",\n \"kind\": \"docs\",\n \"extensions\": [\".md\", \".mdx\"],\n \"source\": {\n \"type\": \"local-folder\",\n \"connectionId\": \"local-folder:<opaque-id>\",\n \"truthPolicy\": \"source_primary\"\n }\n }\n ],\n \"components\": \"components\",\n \"extensions\": \"extensions\",\n \"hide\": [\"**/_*.md\", \"**/_*.mdx\"]\n }\n }\n}\n```\n\nLocal-folder synchronization does not make the host language model local, and\nthe hosted Content app cannot read private repo files by itself. File access\nrequires a local Content app, Agent-Native Desktop, or another trusted bridge.\n\n## MDX And Components\n\n- Preserve frontmatter keys you do not understand. Preserve MDX imports,\n exports, JSX, and expression props unless the user explicitly asks to change\n them.\n- Use local components from the configured `components` folder. Components\n should be PascalCase exports from `.tsx` files; simple editable input metadata\n can live next to them as `ComponentNameInputs`.\n- Use `list-local-component-files` and `write-local-component-file` for\n component source changes when Content tools are available. Otherwise edit the\n component files directly like normal repo source.\n\n## Boundaries\n\n- A database page and its source file can change independently. Use folder\n check/pull/push and resolve reported conflicts rather than silently overwriting\n either revision.\n- Do not push/pull Notion, Builder.io, or other provider-backed content unless\n the user explicitly asks for provider sync.\n- Do not paste secrets, private provider data, or credential-looking values into\n docs, generated pages, frontmatter, examples, or local components.\n";
@@ -94,7 +94,7 @@ to connect and pull it. A typical root looks like:
94
94
 
95
95
  Local-folder synchronization does not make the host language model local, and
96
96
  the hosted Content app cannot read private repo files by itself. File access
97
- requires a local Content app, Agent Native Desktop, or another trusted bridge.
97
+ requires a local Content app, Agent-Native Desktop, or another trusted bridge.
98
98
 
99
99
  ## MDX And Components
100
100
 
@@ -1 +1 @@
1
- export declare const DESIGN_VISUAL_EDIT_SKILL_MD = "---\nname: visual-edit\ndescription: >-\n Open a running local app in Design overview mode as URL-backed iframe screens\n for visual editing, flow review, duplication, and route-state exploration.\n Use when the user asks to inspect, compare, or edit a real local app visually\n in Design.\nmetadata:\n visibility: exported\n---\n\n# Visual Edit\n\nUse `/visual-edit` when the user wants to inspect or edit a real local app\nvisually instead of generating standalone Alpine HTML. The source of truth is\nthe running localhost app plus its route URLs. Design shows those routes as\niframe-backed screens on the infinite canvas.\n\n## Installing this skill for an external MCP host\n\nThe hosted install path\n(`npx @agent-native/core@latest skills add visual-edit`, or `design` for the\nfull Design bundle) installs the exported instructions and registers the\nhosted Design MCP connector together. The open Skills CLI path\n(`npx skills@latest add BuilderIO/agent-native --skill visual-edit`) installs\nexported instructions only, with no MCP connector registration.\n\n## Put Design Beside The Chat\n\nPrefer the interactive MCP App returned by `open-visual-edit` when the coding\nhost renders it. The user gets the Design canvas beside the conversation, and\n**Apply design updates** can submit the bounded source-edit handoff back to the\ncurrent host conversation through the standard MCP Apps message bridge. The\nhost may ask the user to confirm the current conversation or choose a new one.\n\nOtherwise, `openUrl` is a credential-free, read-only fallback that is safe to\nshow in model text or retain in logs. Do not claim that fallback is editable:\nthe edit capability is intentionally available only to the host-managed MCP App\nlauncher, where it is hidden from the model and redeemed once.\n\n- In Codex Desktop, prefer the rendered MCP App. Use the in-app Browser for the\n credential-free `openUrl` only when a read-only fallback is acceptable.\n- In Claude Code Desktop's Code tab, prefer the rendered MCP App. Preview\n `openUrl` in the Browser pane only as the read-only fallback.\n- In VS Code, use the Agent Native Design webview/deep link described below.\n- Inline browser availability is host-dependent. CLI, remote, or restricted\n sessions may not expose one. If the inline surface is unavailable or disabled,\n return the normal **Open design** link instead of claiming it opened.\n\nPrefer the MCP App surface for a connected Design plugin, then the host's\nbrowser/preview tool as the universal fallback. Keep the canvas beside chat\nwhen the host supports rearrangeable panes.\n\nInside Design, use **Show/Hide UI** from the `Cmd K` menu or press Figma's\n`Shift \\` shortcut to toggle all editing chrome so only the canvas remains.\nThe same action is available from Design's empty-canvas context menu.\n\n## Core Model\n\n- Each screen is a URL-backed iframe, not copied HTML.\n- Each screen keeps URL metadata: `connectionId`, `routeId`, `path`,\n `url`, `bridgeUrl`, title, and viewport size.\n- Localhost Edit mode renders the running app through the local bridge as a live\n iframe with the same editor bridge used by HTML designs. It is never a frozen\n static DOM snapshot. Editing is direct DOM manipulation against that live\n document; the parallel `/snapshot` fetch feeds the editable source model only\n and must never be rendered in the frame.\n- **The `/visual-edit` skill needs no Design account sign-in.**\n `open-visual-edit` mints a five-minute, single-use capability for the exact\n `/visual-edit/:designId` local-editor route. The MCP host redeems it outside\n model-visible text, then opens the existing editor with localhost edit access.\n This capability is not an account session: `/_agent-native/session` remains\n signed out, and account-backed save/share/generate actions remain denied.\n- The skill enters through local `pnpm action open-visual-edit`. When that CLI\n has no account session, the action uses a stable, workspace-scoped local\n principal to register the bridge, create/reuse the local design, and place\n screens. That principal exists only inside the in-process CLI call; it is not\n a browser login and cannot be selected by an HTTP, MCP, or tunneled caller.\n- Public links are always read-only, including on loopback. Loopback peer\n identity is not an authentication boundary because a tunnel or reverse proxy\n can make a remote request appear local. A bare `/visual-edit/:designId` or\n `/design/:designId` URL carries no capability and must never release the\n connection's `previewToken`.\n- The live editor is same-origin through the local bridge proxy. This boots\n CSR apps and root-relative assets, but it is still a localhost editing proxy:\n app-origin cookies, WebSockets/HMR, SSE, and non-GET app API calls may need a\n future dev-server/plugin integration for perfect parity with the app's own\n origin.\n- **There are exactly two views.** The infinite canvas is where all editing\n happens, and the responsive interactive view (Interact) is where the app runs\n for real. There is no third \"full view\"/focused-edit state \u2014 clicking a screen\n in the Screens list, or the view toggle, opens the responsive view, and\n closing it returns to the canvas.\n- Interact keeps the left and right rails and adds a device bar above the canvas\n (device preset, editable width/height, zoom, close). It renders the app's\n normal URL so navigation, scrolling, links, and form controls behave as they\n would in the browser, and the wheel scrolls the app rather than panning the\n canvas. The canvas view is the opposite: the wheel pans and zooms it, and\n native interaction inside the frame is suppressed.\n- While a localhost screen has pending live visual edits, do not switch back to\n Interact until the user either applies the edits to source or explicitly\n aborts/discards the preview.\n- Alt-drag duplicates a screen. For localhost screens, duplication copies the\n iframe frame and URL metadata; change the copy's path/query for a new state.\n- Flow visualization is multiple URL states: `/checkout?step=shipping`,\n `/checkout?step=payment`, `/checkout?step=done`, etc.\n- When the user gives a named flow or numbered screen list, preserve that order\n and create one screen per URL/path. Shorthand like\n `localhost:1234/onboarding/1` means\n `http://localhost:1234/onboarding/1`.\n\n## Useful Canvas Sets\n\nTranslate the user's requested review into the smallest useful set of frames:\n\n- **Multi-step flow:** one ordered frame per route or query state, such as cart,\n shipping, payment, and confirmation.\n- **Multiple pages:** one frame per meaningful route, such as home, pricing,\n docs, and account settings.\n- **Responsive comparison:** repeat the same route at the requested desktop,\n tablet, and mobile viewports so they align in one row.\n- **State review:** repeat a route for meaningful URL-addressable states such as\n empty, loading, error, modal-open, or selected-item views.\n\nDo not expand every discovered route or every viewport unless the user asks for\nan exhaustive audit. Preserve the user's labels and sequence so the canvas reads\nlike the workflow they described.\n\n## Select And Reprompt\n\nWhen a chat message begins with `[Reprompt selection]`, the selected subtree is\na hard write boundary. The only mutation path is `propose-node-rewrite` with\nthe exact `repromptId`, target, and `baseVersionHash` captured in\n`design-reprompt-pending:<designId>:<fileId>`. Never use `apply-visual-edit`,\n`apply-source-edit`, `write-source`, `write-local-file`, `edit-design`, or any\nother content-writing action for that request. Clarifying questions are allowed,\nbut a requested change must remain a proposal.\n\nProduce one variant by default. Produce two or three only when the instruction\nasks for options. A retry includes `priorProposalId`; keep the same target and\nbase version, incorporate the feedback, and call `propose-node-rewrite` again.\nThe UI previews the returned subtree without persisting it.\n\nUse `resolve-node-rewrite` for the accept/reject lifecycle. Accept applies the\nchosen variant as one version-checked inline/Yjs content transaction so one\nundo restores the prior structure; reject clears the proposal without changing\ncontent. For conversational resolution such as \"apply the second one,\" call\n`view-screen`, read the active `design.reprompt.proposal`, and pass its\n`proposalId` plus the zero-based `variantIndex` to `resolve-node-rewrite`.\n\n## Review Quality\n\n- Treat the running app as the truth. Preserve its component language, tokens,\n route state, and real content unless the user explicitly asks for a new visual\n direction.\n- Use multiple URL states to reveal meaningful UX moments: empty/loading/error\n states, focused panels, modals, responsive breakpoints, and completed flow\n steps when those matter to the review.\n- For visual edits, compare before/after at the relevant viewport sizes and\n check key hover/focus/scroll states when the app exposes them.\n\n## Account And Sharing Model\n\n- `/visual-edit/:id` is the dedicated local-editor surface. The one-time\n handoff returned by `open-visual-edit` opens it with edit access without a\n Design login. A copied or bare `/visual-edit/:id` URL is read-only because it\n does not carry the capability.\n- The capability permits live iframe inspection and session-local edits,\n undo/redo, **Apply design updates** through the connected host/local agent,\n and **Copy prompt**. Those flows hand bounded source instructions back to the\n coding agent; they do not silently persist account-owned Design data.\n- Public `/design/:id` links stay read-only without a signed-in owner/editor\n session. Never use the local capability to upgrade that ordinary sharing\n surface.\n- Prefer links returned by Design actions or `/_agent-native/open` deep links.\n Do not surface URLs with `_session=` tokens or hand-build capability URLs.\n- Do not attempt account-backed write actions with the browser capability. The\n trusted local `open-visual-edit` CLI call may register its bridge, create or\n reuse its workspace-owned local design, and place screens without an account.\n Direct source-file action writes, generation, saving into an account, and\n sharing still require an authenticated action caller. If a signed-out visitor\n wants those durable account operations, send them through the framework\n sign-in return flow first.\n\n## Required Local Bridge\n\nThe live-edit bridge is unlocked by a shared secret (the \"bridge token\") that\nmust match on two sides: the local bridge process, and the user's connection row\nin Design (which the browser reads to authorize `/live-edit-bridge`,\n`/read-file`, `/write-file`). Get them to match by letting the\n`open-visual-edit` action mint the token, then starting the\nbridge with it. This is the only ordering that works for the remote-MCP flow \u2014\nthe bridge cannot push its own token to the server without a CLI auth token, so\nthe server mints instead and the bridge adopts.\n\nFrom the target app repo, make sure its dev server is running, then:\n\n**1. Discover routes without starting a durable bridge** (one-shot, exits):\n\n```bash\nnpx @agent-native/core@latest design connect --url http://localhost:5173 --root . --json\n```\n\nThis prints the manifest (routes + capabilities). Parse it to build\n`routeManifest` for the next step. (Skip this if the user already gave explicit\npaths/URLs to place.)\n\nInside the agent-native monorepo itself, use the workspace CLI instead of\n`npx` \u2014 `npx` installs the last published `@agent-native/core`, which will not\ncontain local changes and costs a slow install on every call:\n\n```bash\npnpm dev:cli design connect --url http://localhost:5173 --root templates/<app> --json\n```\n\n**2. Call `open-visual-edit`** (see Action Flow below) with NO `bridgeToken`.\nThe server mints one, stores it on the user's connection row, copies it into the\nplaced screens' metadata, and returns it to you as `bridgeToken`. Capture it.\n\n**3. Start the persistent bridge adopting that token** (single line; prefer the\nenv var so the secret does not appear in `ps`):\n\n```bash\nAGENT_NATIVE_BRIDGE_TOKEN=\"<bridgeToken from step 2>\" npx @agent-native/core@latest design connect --url http://localhost:5173 --root . --daemon\n```\n\n(Equivalently, pass `--bridge-token <token>`.) This starts a detached bridge on\n`http://127.0.0.1:7331`, adopts the server-minted token \u2014 so bridge and row\nagree and live-edit authorizes with no self-registration \u2014 and stays alive after\nthe command exits.\n\nFor a manual health/manifest check on the running bridge:\n\n```bash\ncurl http://127.0.0.1:7331/health\n```\n\n`/health` needs no token. The full manifest at `/manifest.json` is\npreview-token protected, so an unauthenticated `curl` of it returns\n`{\"ok\":false,\"error\":\"invalid or missing preview token\"}` \u2014 that response means\nthe bridge is up, not that it is broken.\n\nOnly use `--json` for the step-1 route probe. Never use `--json`, `--once`,\nor `--dry-run` for the durable step-3 bridge: they print the manifest and exit,\nso Design falls back to a non-editable live iframe.\n\nThe bridge listens on a single fixed port (7331) and refuses to start for a\nsecond, different app. It is detached with no log file, so if `--daemon` reports\na timeout, check for a stale process (`lsof -ti:7331`) before retrying.\n\n## Action Flow\n\nPrefer the single `open-visual-edit` action. It registers or\nrefreshes the localhost bridge connection, mints and stores the bridge token,\ncreates or reuses a Design project, places URL-backed screens, stores the active\nvisual-edit context, and navigates to overview mode in one call. This avoids\ncreating a private design under a synthetic CLI user and then handing the browser\na tokenized URL that may be shadowed by an existing session.\n\nCall it BEFORE starting the durable bridge (step 3 above): it does not contact\nthe bridge, so the bridge need not be running yet, and you need its returned\n`bridgeToken` to start the bridge with a matching secret. Omit `bridgeToken`\non the call so the server mints one.\n\n```bash\npnpm action open-visual-edit '{\n \"title\": \"Docs homepage visual edit\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"bridgeUrl\": \"http://127.0.0.1:7331\",\n \"rootPath\": \"/absolute/path/to/app\",\n \"routeManifest\": { \"...\": \"from /manifest.json\" },\n \"paths\": [\"/\", \"/pricing\", \"/checkout?step=payment\"]\n}'\n```\n\nThe action returns `designId`, `connectionId`, `bridgeToken`, `screens`,\n`urlPath`, and a credential-free `openUrl`. Its MCP App metadata separately\ncarries the one-time editor launcher so the host can redeem it without showing\nthe capability to the model or retaining it in the action link. Keep\n`designId`/`connectionId` in the chat context for follow-ups, and pass\n`bridgeToken` to `design connect` (step 3) to start the bridge. On follow-up\ncalls reusing an existing `connectionId`, the same token is returned (it is\nminted once and reused), so the running bridge stays valid.\n\n### Desktop and mobile side by side\n\nPass `viewports` to place every requested route once per viewport. Frames lay\nout as a grid: one row per route, one column per viewport. Presets are\n`desktop` (1280x900), `laptop` (1440x900), `tablet` (834x1112), and `mobile`\n(390x844); an explicit `{ \"label\": \"...\", \"width\": N, \"height\": N }` also works.\n\n```bash\npnpm action open-visual-edit '{\n \"title\": \"Tasks responsive visual edit\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"bridgeUrl\": \"http://127.0.0.1:7331\",\n \"rootPath\": \"/absolute/path/to/app\",\n \"paths\": [\"/tasks\", \"/inbox\"],\n \"viewports\": [\"desktop\", \"mobile\"]\n}'\n```\n\nPrefer this over two separate calls with `defaultWidth`/`defaultHeight`: it\nkeeps each route's viewports aligned in a row and titles them\n`Tasks \u2014 Desktop` / `Tasks \u2014 Mobile` so the canvas reads clearly. `viewports`\noverrides `defaultWidth`/`defaultHeight`. With no `routes`/`paths`, it expands\nevery route in the localhost manifest, which is usually far more frames than\nthe user wants \u2014 name the paths.\n\n### Adding more page frames later\n\nCall `open-visual-edit` again with the same `designId` and `connectionId` and\nonly the new paths. Existing frames for the same route and viewport are\nrefreshed in place rather than duplicated, and a frame the user has dragged or\nresized keeps its position unless you explicitly pass `x`/`y`/`width`/`height`.\n\n```bash\npnpm action open-visual-edit '{\n \"designId\": \"<existing-design-id>\",\n \"connectionId\": \"<existing-connection-id>\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"paths\": [\"/settings\", \"/team\"],\n \"startY\": 2200\n}'\n```\n\nDo NOT add `defaultWidth`/`defaultHeight` just to restate the default size:\nsupplying either one marks the viewport as explicitly requested, which\noverwrites frame sizes the user has already adjusted on the canvas.\n\nFor a numbered flow the user describes in chat, keep the labels and order:\n\n```bash\npnpm action open-visual-edit '{\n \"designId\": \"<existing-design-id>\",\n \"connectionId\": \"<existing-connection-id>\",\n \"devServerUrl\": \"http://localhost:1234\",\n \"routes\": [\n { \"url\": \"localhost:1234/onboarding/1\", \"title\": \"Screen 1\" },\n { \"url\": \"localhost:1234/onboarding/2\", \"title\": \"Screen 2\" },\n { \"url\": \"localhost:1234/onboarding/3\", \"title\": \"Screen 3\" }\n ]\n}'\n```\n\nIf no `routes` or `paths` are supplied, `open-visual-edit` uses every route\nfrom the localhost manifest.\n\nFallback, only when `open-visual-edit` is unavailable:\n\n1. Register or refresh the bridge with `connect-localhost`, passing the\n `/manifest.json` result as `routeManifest` and `capabilities`.\n2. Create or reuse a Design project with `create-design`.\n3. Place URL-backed screens with `add-localhost-screens`.\n4. Navigate to overview mode with `navigate`.\n\n## Open The Design Surface\n\n- Use the `link`, `deepLink`, or MCP App embed returned by Design actions so\n the user sees the canvas. Follow **Put Design Beside The Chat**: prefer the\n MCP App; otherwise surface the credential-free **Open design** link.\n- Return or open the MCP App first. Its host-managed launcher carries the\n one-time local-editor capability. The credential-free `openUrl` / action link\n is the safe read-only fallback; never build a capability URL yourself.\n- Never return or open a hand-built `/design/:id?_session=...` URL.\n- If the user is working in VS Code, the Agent Native extension can open the\n same URL via\n `vscode://builder.agent-native/open?url=<encoded-design-url>`. Its\n `Agent Native: Open Design Canvas` command also starts the local bridge and\n opens hosted Design in the VS Code side panel.\n- After `open-visual-edit`, confirm the Design editor is in overview mode\n with the requested URL-backed frames visible, and that they render the app\n rather than a spinner. Do not stop at \"screens added\" when the user asked to\n inspect or edit visually.\n\n## Applying Visual Edits Back To Source\n\nCanvas edits on a localhost screen do not write source as you make them. They\naccumulate as pending edits and the editor shows an **Apply design updates**\nbutton on the canvas. In an MCP App, clicking it hands the bounded structured\nprompt to the current host coding conversation. In an ordinary browser or\nstandalone Design page, it falls back to the local Design agent. The dropdown's\n**Copy prompt to your agent** action is the universal manual fallback.\n\n- Style, text, and drag/drop structure edits all collect into the same pending\n batch, so the user can make several changes and apply once.\n- After the write lands, the target app's own dev-server HMR refreshes the\n frames \u2014 no manual reload. If frames do not refresh, the write did not land;\n say so rather than assuming.\n- The separate disk-icon \"Apply to source\" button is the deterministic\n whole-file HTML/CSS writer. It is intentionally disabled for compiled\n `.jsx`/`.tsx` routes \u2014 those must go through the agent path above.\n\n## Editing URLs\n\nKeep localhost screens as URL files plus `screenMetadata[fileId]`. Do not\nreplace them with copied `srcdoc` HTML unless the user explicitly asks for a\nfrozen snapshot. To change a state, rerun `open-visual-edit` with the new\npath/query or duplicate the screen and update the copy's URL metadata.\n\n## Local Files in the Code Tab\n\nOnce a connection is registered, the design editor's Code panel (left rail \u2192\nCode, or `navigate --view editor --designId <id> --leftPanel code`) shows a\nlocal-files workspace root for that connection next to the design's own files.\nTreat that root like VS Code opened at the connected project directory: file\ntree, search, open/edit, and save are backed by the real local files. It lists\nthe connected app's text/code files through the bridge\n(`list-local-files` / `read-local-file`); build output, `node_modules`,\n`.git`, and secret-looking paths (`.env*`, key files) are always excluded.\n\n- Browsing and reading need only editor access on the design plus the running\n bridge.\n- Saving goes through `write-local-file`: the first save opens the\n write-consent dialog (an 8-hour, folder-scoped grant) and retries\n automatically once granted. Only text/code files are writable; secret paths\n are always blocked.\n- If the agent calls `write-local-file` directly (not through a UI save) and it\n fails with \"no write-consent grant\", call `request-localhost-write-consent`.\n It opens the write-consent dialog in the editor, or reports `alreadyGranted`\n if one already exists. Granting is human-only \u2014\n `grant-localhost-write-consent` is hidden from agents, so you cannot approve\n it yourself. Tell the user to click \"Allow writes\", then retry\n `write-local-file` once. Do not keep retrying blindly: the write stays\n blocked until the user approves.\n- Saves are conflict-checked against the file's on-disk version \u2014 a file that\n changed since it was read fails with a version conflict instead of being\n overwritten.\n\n## React Source Writeback\n\n- Use compiler/debug provenance (project-relative file, line, column,\n component, and runtime multiplicity) to locate React/TSX source. Treat it as\n evidence, not as permission for a generic AST structural transform.\n- Read `positionPrecision` on every anchor before you trust `line`/`column`.\n `authored` means those are the real JSX coordinates. `transformed` means they\n are the dev server's own output coordinates \u2014 React 19 removed `_debugSource`\n and exposes only an owner stack, so this is the normal case on a Vite/Next\n dev server, and the line will not match the file. `unknown` means no tier was\n reported. On anything but `authored`, use the file and component to find the\n element by its JSX shape and re-derive the line from the file you read; never\n edit at the reported line.\n- A single-instance leaf text edit, literal `className`/`class` edit, or flat\n literal `style={{ ... }}` property may use `apply-visual-edit` with a\n `local-file` source and a complete `target.sourceAnchor`. Forward the\n anchor's `positionPrecision` with it \u2014 the action refuses a `transformed`\n anchor with `status: \"needsAgent\"` instead of seeking to a line that means\n something else in the authored file. Preview first (omit `persist`), inspect\n `proposedDiff`, then call with `persist: true`.\n- Reparenting, grouping/ungrouping, wrappers, dynamic expressions, repeated\n `.map()` instances, shared components, breakpoint-scoped edits, and\n cross-file changes go through the coding agent with complete subject/target\n anchors and their runtime relationship. `apply-visual-edit` refuses these\n with `status: \"needsAgent\"` rather than guessing.\n- Before each write, read the file and pass its exact `versionHash` to\n `write-local-file` with `requireExpectedVersionHash: true`; on conflict,\n re-read and re-plan. Keep the optimistic preview until HMR/runtime confirms\n the result. Human write consent remains mandatory and agents cannot grant it.\n\n## Verification\n\n- `list-localhost-connections` returns the expected connection and routes.\n- The Design editor opens in overview mode.\n- Every requested screen renders the intended localhost URL, showing real app\n content rather than an endless loading spinner.\n- The screen iframe carries a `src`, not a `srcdoc`. A localhost screen with a\n `srcdoc` is a bug, not a slow load \u2014 check it in the browser devtools before\n reporting the canvas as working.\n- Alt-dragging a screen copies the URL-backed frame, not an inline HTML clone.\n- A query/path edit changes only the target screen's URL metadata and iframe.\n- The Code tab shows a local-files root for the connection and opens its files.\n";
1
+ export declare const DESIGN_VISUAL_EDIT_SKILL_MD = "---\nname: visual-edit\ndescription: >-\n Open a running local app in Design overview mode as URL-backed iframe screens\n for visual editing, flow review, duplication, and route-state exploration.\n Use when the user asks to inspect, compare, or edit a real local app visually\n in Design.\nmetadata:\n visibility: exported\n---\n\n# Visual Edit\n\nUse `/visual-edit` when the user wants to inspect or edit a real local app\nvisually instead of generating standalone Alpine HTML. The source of truth is\nthe running localhost app plus its route URLs. Design shows those routes as\niframe-backed screens on the infinite canvas.\n\n## Installing this skill for an external MCP host\n\nThe hosted install path\n(`npx @agent-native/core@latest skills add visual-edit`, or `design` for the\nfull Design bundle) installs the exported instructions and registers the\nhosted Design MCP connector together. The open Skills CLI path\n(`npx skills@latest add BuilderIO/agent-native --skill visual-edit`) installs\nexported instructions only, with no MCP connector registration.\n\n## Put Design Beside The Chat\n\nPrefer the interactive MCP App returned by `open-visual-edit` when the coding\nhost renders it. The user gets the Design canvas beside the conversation, and\n**Apply design updates** can submit the bounded source-edit handoff back to the\ncurrent host conversation through the standard MCP Apps message bridge. The\nhost may ask the user to confirm the current conversation or choose a new one.\n\nOtherwise, `openUrl` is a credential-free, read-only fallback that is safe to\nshow in model text or retain in logs. Do not claim that fallback is editable:\nthe edit capability is intentionally available only to the host-managed MCP App\nlauncher, where it is hidden from the model and redeemed once.\n\n- In Codex Desktop, prefer the rendered MCP App. Use the in-app Browser for the\n credential-free `openUrl` only when a read-only fallback is acceptable.\n- In Claude Code Desktop's Code tab, prefer the rendered MCP App. Preview\n `openUrl` in the Browser pane only as the read-only fallback.\n- In VS Code, use the Agent-Native Design webview/deep link described below.\n- Inline browser availability is host-dependent. CLI, remote, or restricted\n sessions may not expose one. If the inline surface is unavailable or disabled,\n return the normal **Open design** link instead of claiming it opened.\n\nPrefer the MCP App surface for a connected Design plugin, then the host's\nbrowser/preview tool as the universal fallback. Keep the canvas beside chat\nwhen the host supports rearrangeable panes.\n\nInside Design, use **Show/Hide UI** from the `Cmd K` menu or press Figma's\n`Shift \\` shortcut to toggle all editing chrome so only the canvas remains.\nThe same action is available from Design's empty-canvas context menu.\n\n## Core Model\n\n- Each screen is a URL-backed iframe, not copied HTML.\n- Each screen keeps URL metadata: `connectionId`, `routeId`, `path`,\n `url`, `bridgeUrl`, title, and viewport size.\n- Localhost Edit mode renders the running app through the local bridge as a live\n iframe with the same editor bridge used by HTML designs. It is never a frozen\n static DOM snapshot. Editing is direct DOM manipulation against that live\n document; the parallel `/snapshot` fetch feeds the editable source model only\n and must never be rendered in the frame.\n- **The `/visual-edit` skill needs no Design account sign-in.**\n `open-visual-edit` mints a five-minute, single-use capability for the exact\n `/visual-edit/:designId` local-editor route. The MCP host redeems it outside\n model-visible text, then opens the existing editor with localhost edit access.\n This capability is not an account session: `/_agent-native/session` remains\n signed out, and account-backed save/share/generate actions remain denied.\n- The skill enters through local `pnpm action open-visual-edit`. When that CLI\n has no account session, the action uses a stable, workspace-scoped local\n principal to register the bridge, create/reuse the local design, and place\n screens. That principal exists only inside the in-process CLI call; it is not\n a browser login and cannot be selected by an HTTP, MCP, or tunneled caller.\n- Public links are always read-only, including on loopback. Loopback peer\n identity is not an authentication boundary because a tunnel or reverse proxy\n can make a remote request appear local. A bare `/visual-edit/:designId` or\n `/design/:designId` URL carries no capability and must never release the\n connection's `previewToken`.\n- The live editor is same-origin through the local bridge proxy. This boots\n CSR apps and root-relative assets, but it is still a localhost editing proxy:\n app-origin cookies, WebSockets/HMR, SSE, and non-GET app API calls may need a\n future dev-server/plugin integration for perfect parity with the app's own\n origin.\n- **There are exactly two views.** The infinite canvas is where all editing\n happens, and the responsive interactive view (Interact) is where the app runs\n for real. There is no third \"full view\"/focused-edit state \u2014 clicking a screen\n in the Screens list, or the view toggle, opens the responsive view, and\n closing it returns to the canvas.\n- Interact keeps the left and right rails and adds a device bar above the canvas\n (device preset, editable width/height, zoom, close). It renders the app's\n normal URL so navigation, scrolling, links, and form controls behave as they\n would in the browser, and the wheel scrolls the app rather than panning the\n canvas. The canvas view is the opposite: the wheel pans and zooms it, and\n native interaction inside the frame is suppressed.\n- While a localhost screen has pending live visual edits, do not switch back to\n Interact until the user either applies the edits to source or explicitly\n aborts/discards the preview.\n- Alt-drag duplicates a screen. For localhost screens, duplication copies the\n iframe frame and URL metadata; change the copy's path/query for a new state.\n- Flow visualization is multiple URL states: `/checkout?step=shipping`,\n `/checkout?step=payment`, `/checkout?step=done`, etc.\n- When the user gives a named flow or numbered screen list, preserve that order\n and create one screen per URL/path. Shorthand like\n `localhost:1234/onboarding/1` means\n `http://localhost:1234/onboarding/1`.\n\n## Useful Canvas Sets\n\nTranslate the user's requested review into the smallest useful set of frames:\n\n- **Multi-step flow:** one ordered frame per route or query state, such as cart,\n shipping, payment, and confirmation.\n- **Multiple pages:** one frame per meaningful route, such as home, pricing,\n docs, and account settings.\n- **Responsive comparison:** repeat the same route at the requested desktop,\n tablet, and mobile viewports so they align in one row.\n- **State review:** repeat a route for meaningful URL-addressable states such as\n empty, loading, error, modal-open, or selected-item views.\n\nDo not expand every discovered route or every viewport unless the user asks for\nan exhaustive audit. Preserve the user's labels and sequence so the canvas reads\nlike the workflow they described.\n\n## Select And Reprompt\n\nWhen a chat message begins with `[Reprompt selection]`, the selected subtree is\na hard write boundary. The only mutation path is `propose-node-rewrite` with\nthe exact `repromptId`, target, and `baseVersionHash` captured in\n`design-reprompt-pending:<designId>:<fileId>`. Never use `apply-visual-edit`,\n`apply-source-edit`, `write-source`, `write-local-file`, `edit-design`, or any\nother content-writing action for that request. Clarifying questions are allowed,\nbut a requested change must remain a proposal.\n\nProduce one variant by default. Produce two or three only when the instruction\nasks for options. A retry includes `priorProposalId`; keep the same target and\nbase version, incorporate the feedback, and call `propose-node-rewrite` again.\nThe UI previews the returned subtree without persisting it.\n\nUse `resolve-node-rewrite` for the accept/reject lifecycle. Accept applies the\nchosen variant as one version-checked inline/Yjs content transaction so one\nundo restores the prior structure; reject clears the proposal without changing\ncontent. For conversational resolution such as \"apply the second one,\" call\n`view-screen`, read the active `design.reprompt.proposal`, and pass its\n`proposalId` plus the zero-based `variantIndex` to `resolve-node-rewrite`.\n\n## Review Quality\n\n- Treat the running app as the truth. Preserve its component language, tokens,\n route state, and real content unless the user explicitly asks for a new visual\n direction.\n- Use multiple URL states to reveal meaningful UX moments: empty/loading/error\n states, focused panels, modals, responsive breakpoints, and completed flow\n steps when those matter to the review.\n- For visual edits, compare before/after at the relevant viewport sizes and\n check key hover/focus/scroll states when the app exposes them.\n\n## Account And Sharing Model\n\n- `/visual-edit/:id` is the dedicated local-editor surface. The one-time\n handoff returned by `open-visual-edit` opens it with edit access without a\n Design login. A copied or bare `/visual-edit/:id` URL is read-only because it\n does not carry the capability.\n- The capability permits live iframe inspection and session-local edits,\n undo/redo, **Apply design updates** through the connected host/local agent,\n and **Copy prompt**. Those flows hand bounded source instructions back to the\n coding agent; they do not silently persist account-owned Design data.\n- Public `/design/:id` links stay read-only without a signed-in owner/editor\n session. Never use the local capability to upgrade that ordinary sharing\n surface.\n- Prefer links returned by Design actions or `/_agent-native/open` deep links.\n Do not surface URLs with `_session=` tokens or hand-build capability URLs.\n- Do not attempt account-backed write actions with the browser capability. The\n trusted local `open-visual-edit` CLI call may register its bridge, create or\n reuse its workspace-owned local design, and place screens without an account.\n Direct source-file action writes, generation, saving into an account, and\n sharing still require an authenticated action caller. If a signed-out visitor\n wants those durable account operations, send them through the framework\n sign-in return flow first.\n\n## Required Local Bridge\n\nThe live-edit bridge is unlocked by a shared secret (the \"bridge token\") that\nmust match on two sides: the local bridge process, and the user's connection row\nin Design (which the browser reads to authorize `/live-edit-bridge`,\n`/read-file`, `/write-file`). Get them to match by letting the\n`open-visual-edit` action mint the token, then starting the\nbridge with it. This is the only ordering that works for the remote-MCP flow \u2014\nthe bridge cannot push its own token to the server without a CLI auth token, so\nthe server mints instead and the bridge adopts.\n\nFrom the target app repo, make sure its dev server is running, then:\n\n**1. Discover routes without starting a durable bridge** (one-shot, exits):\n\n```bash\nnpx @agent-native/core@latest design connect --url http://localhost:5173 --root . --json\n```\n\nThis prints the manifest (routes + capabilities). Parse it to build\n`routeManifest` for the next step. (Skip this if the user already gave explicit\npaths/URLs to place.)\n\nInside the agent-native monorepo itself, use the workspace CLI instead of\n`npx` \u2014 `npx` installs the last published `@agent-native/core`, which will not\ncontain local changes and costs a slow install on every call:\n\n```bash\npnpm dev:cli design connect --url http://localhost:5173 --root templates/<app> --json\n```\n\n**2. Call `open-visual-edit`** (see Action Flow below) with NO `bridgeToken`.\nThe server mints one, stores it on the user's connection row, copies it into the\nplaced screens' metadata, and returns it to you as `bridgeToken`. Capture it.\n\n**3. Start the persistent bridge adopting that token** (single line; prefer the\nenv var so the secret does not appear in `ps`):\n\n```bash\nAGENT_NATIVE_BRIDGE_TOKEN=\"<bridgeToken from step 2>\" npx @agent-native/core@latest design connect --url http://localhost:5173 --root . --daemon\n```\n\n(Equivalently, pass `--bridge-token <token>`.) This starts a detached bridge on\n`http://127.0.0.1:7331`, adopts the server-minted token \u2014 so bridge and row\nagree and live-edit authorizes with no self-registration \u2014 and stays alive after\nthe command exits.\n\nFor a manual health/manifest check on the running bridge:\n\n```bash\ncurl http://127.0.0.1:7331/health\n```\n\n`/health` needs no token. The full manifest at `/manifest.json` is\npreview-token protected, so an unauthenticated `curl` of it returns\n`{\"ok\":false,\"error\":\"invalid or missing preview token\"}` \u2014 that response means\nthe bridge is up, not that it is broken.\n\nOnly use `--json` for the step-1 route probe. Never use `--json`, `--once`,\nor `--dry-run` for the durable step-3 bridge: they print the manifest and exit,\nso Design falls back to a non-editable live iframe.\n\nThe bridge listens on a single fixed port (7331) and refuses to start for a\nsecond, different app. It is detached with no log file, so if `--daemon` reports\na timeout, check for a stale process (`lsof -ti:7331`) before retrying.\n\n## Action Flow\n\nPrefer the single `open-visual-edit` action. It registers or\nrefreshes the localhost bridge connection, mints and stores the bridge token,\ncreates or reuses a Design project, places URL-backed screens, stores the active\nvisual-edit context, and navigates to overview mode in one call. This avoids\ncreating a private design under a synthetic CLI user and then handing the browser\na tokenized URL that may be shadowed by an existing session.\n\nCall it BEFORE starting the durable bridge (step 3 above): it does not contact\nthe bridge, so the bridge need not be running yet, and you need its returned\n`bridgeToken` to start the bridge with a matching secret. Omit `bridgeToken`\non the call so the server mints one.\n\n```bash\npnpm action open-visual-edit '{\n \"title\": \"Docs homepage visual edit\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"bridgeUrl\": \"http://127.0.0.1:7331\",\n \"rootPath\": \"/absolute/path/to/app\",\n \"routeManifest\": { \"...\": \"from /manifest.json\" },\n \"paths\": [\"/\", \"/pricing\", \"/checkout?step=payment\"]\n}'\n```\n\nThe action returns `designId`, `connectionId`, `bridgeToken`, `screens`,\n`urlPath`, and a credential-free `openUrl`. Its MCP App metadata separately\ncarries the one-time editor launcher so the host can redeem it without showing\nthe capability to the model or retaining it in the action link. Keep\n`designId`/`connectionId` in the chat context for follow-ups, and pass\n`bridgeToken` to `design connect` (step 3) to start the bridge. On follow-up\ncalls reusing an existing `connectionId`, the same token is returned (it is\nminted once and reused), so the running bridge stays valid.\n\n### Desktop and mobile side by side\n\nPass `viewports` to place every requested route once per viewport. Frames lay\nout as a grid: one row per route, one column per viewport. Presets are\n`desktop` (1280x900), `laptop` (1440x900), `tablet` (834x1112), and `mobile`\n(390x844); an explicit `{ \"label\": \"...\", \"width\": N, \"height\": N }` also works.\n\n```bash\npnpm action open-visual-edit '{\n \"title\": \"Tasks responsive visual edit\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"bridgeUrl\": \"http://127.0.0.1:7331\",\n \"rootPath\": \"/absolute/path/to/app\",\n \"paths\": [\"/tasks\", \"/inbox\"],\n \"viewports\": [\"desktop\", \"mobile\"]\n}'\n```\n\nPrefer this over two separate calls with `defaultWidth`/`defaultHeight`: it\nkeeps each route's viewports aligned in a row and titles them\n`Tasks \u2014 Desktop` / `Tasks \u2014 Mobile` so the canvas reads clearly. `viewports`\noverrides `defaultWidth`/`defaultHeight`. With no `routes`/`paths`, it expands\nevery route in the localhost manifest, which is usually far more frames than\nthe user wants \u2014 name the paths.\n\n### Adding more page frames later\n\nCall `open-visual-edit` again with the same `designId` and `connectionId` and\nonly the new paths. Existing frames for the same route and viewport are\nrefreshed in place rather than duplicated, and a frame the user has dragged or\nresized keeps its position unless you explicitly pass `x`/`y`/`width`/`height`.\n\n```bash\npnpm action open-visual-edit '{\n \"designId\": \"<existing-design-id>\",\n \"connectionId\": \"<existing-connection-id>\",\n \"devServerUrl\": \"http://localhost:5173\",\n \"paths\": [\"/settings\", \"/team\"],\n \"startY\": 2200\n}'\n```\n\nDo NOT add `defaultWidth`/`defaultHeight` just to restate the default size:\nsupplying either one marks the viewport as explicitly requested, which\noverwrites frame sizes the user has already adjusted on the canvas.\n\nFor a numbered flow the user describes in chat, keep the labels and order:\n\n```bash\npnpm action open-visual-edit '{\n \"designId\": \"<existing-design-id>\",\n \"connectionId\": \"<existing-connection-id>\",\n \"devServerUrl\": \"http://localhost:1234\",\n \"routes\": [\n { \"url\": \"localhost:1234/onboarding/1\", \"title\": \"Screen 1\" },\n { \"url\": \"localhost:1234/onboarding/2\", \"title\": \"Screen 2\" },\n { \"url\": \"localhost:1234/onboarding/3\", \"title\": \"Screen 3\" }\n ]\n}'\n```\n\nIf no `routes` or `paths` are supplied, `open-visual-edit` uses every route\nfrom the localhost manifest.\n\nFallback, only when `open-visual-edit` is unavailable:\n\n1. Register or refresh the bridge with `connect-localhost`, passing the\n `/manifest.json` result as `routeManifest` and `capabilities`.\n2. Create or reuse a Design project with `create-design`.\n3. Place URL-backed screens with `add-localhost-screens`.\n4. Navigate to overview mode with `navigate`.\n\n## Open The Design Surface\n\n- Use the `link`, `deepLink`, or MCP App embed returned by Design actions so\n the user sees the canvas. Follow **Put Design Beside The Chat**: prefer the\n MCP App; otherwise surface the credential-free **Open design** link.\n- Return or open the MCP App first. Its host-managed launcher carries the\n one-time local-editor capability. The credential-free `openUrl` / action link\n is the safe read-only fallback; never build a capability URL yourself.\n- Never return or open a hand-built `/design/:id?_session=...` URL.\n- If the user is working in VS Code, the Agent-Native extension can open the\n same URL via\n `vscode://builder.agent-native/open?url=<encoded-design-url>`. Its\n `Agent-Native: Open Design Canvas` command also starts the local bridge and\n opens hosted Design in the VS Code side panel.\n- After `open-visual-edit`, confirm the Design editor is in overview mode\n with the requested URL-backed frames visible, and that they render the app\n rather than a spinner. Do not stop at \"screens added\" when the user asked to\n inspect or edit visually.\n\n## Applying Visual Edits Back To Source\n\nCanvas edits on a localhost screen do not write source as you make them. They\naccumulate as pending edits and the editor shows an **Apply design updates**\nbutton on the canvas. In an MCP App, clicking it hands the bounded structured\nprompt to the current host coding conversation. In an ordinary browser or\nstandalone Design page, it falls back to the local Design agent. The dropdown's\n**Copy prompt to your agent** action is the universal manual fallback.\n\n- Style, text, and drag/drop structure edits all collect into the same pending\n batch, so the user can make several changes and apply once.\n- After the write lands, the target app's own dev-server HMR refreshes the\n frames \u2014 no manual reload. If frames do not refresh, the write did not land;\n say so rather than assuming.\n- The separate disk-icon \"Apply to source\" button is the deterministic\n whole-file HTML/CSS writer. It is intentionally disabled for compiled\n `.jsx`/`.tsx` routes \u2014 those must go through the agent path above.\n\n## Editing URLs\n\nKeep localhost screens as URL files plus `screenMetadata[fileId]`. Do not\nreplace them with copied `srcdoc` HTML unless the user explicitly asks for a\nfrozen snapshot. To change a state, rerun `open-visual-edit` with the new\npath/query or duplicate the screen and update the copy's URL metadata.\n\n## Local Files in the Code Tab\n\nOnce a connection is registered, the design editor's Code panel (left rail \u2192\nCode, or `navigate --view editor --designId <id> --leftPanel code`) shows a\nlocal-files workspace root for that connection next to the design's own files.\nTreat that root like VS Code opened at the connected project directory: file\ntree, search, open/edit, and save are backed by the real local files. It lists\nthe connected app's text/code files through the bridge\n(`list-local-files` / `read-local-file`); build output, `node_modules`,\n`.git`, and secret-looking paths (`.env*`, key files) are always excluded.\n\n- Browsing and reading need only editor access on the design plus the running\n bridge.\n- Saving goes through `write-local-file`: the first save opens the\n write-consent dialog (an 8-hour, folder-scoped grant) and retries\n automatically once granted. Only text/code files are writable; secret paths\n are always blocked.\n- If the agent calls `write-local-file` directly (not through a UI save) and it\n fails with \"no write-consent grant\", call `request-localhost-write-consent`.\n It opens the write-consent dialog in the editor, or reports `alreadyGranted`\n if one already exists. Granting is human-only \u2014\n `grant-localhost-write-consent` is hidden from agents, so you cannot approve\n it yourself. Tell the user to click \"Allow writes\", then retry\n `write-local-file` once. Do not keep retrying blindly: the write stays\n blocked until the user approves.\n- Saves are conflict-checked against the file's on-disk version \u2014 a file that\n changed since it was read fails with a version conflict instead of being\n overwritten.\n\n## React Source Writeback\n\n- Use compiler/debug provenance (project-relative file, line, column,\n component, and runtime multiplicity) to locate React/TSX source. Treat it as\n evidence, not as permission for a generic AST structural transform.\n- Read `positionPrecision` on every anchor before you trust `line`/`column`.\n `authored` means those are the real JSX coordinates. `transformed` means they\n are the dev server's own output coordinates \u2014 React 19 removed `_debugSource`\n and exposes only an owner stack, so this is the normal case on a Vite/Next\n dev server, and the line will not match the file. `unknown` means no tier was\n reported. On anything but `authored`, use the file and component to find the\n element by its JSX shape and re-derive the line from the file you read; never\n edit at the reported line.\n- A single-instance leaf text edit, literal `className`/`class` edit, or flat\n literal `style={{ ... }}` property may use `apply-visual-edit` with a\n `local-file` source and a complete `target.sourceAnchor`. Forward the\n anchor's `positionPrecision` with it \u2014 the action refuses a `transformed`\n anchor with `status: \"needsAgent\"` instead of seeking to a line that means\n something else in the authored file. Preview first (omit `persist`), inspect\n `proposedDiff`, then call with `persist: true`.\n- Reparenting, grouping/ungrouping, wrappers, dynamic expressions, repeated\n `.map()` instances, shared components, breakpoint-scoped edits, and\n cross-file changes go through the coding agent with complete subject/target\n anchors and their runtime relationship. `apply-visual-edit` refuses these\n with `status: \"needsAgent\"` rather than guessing.\n- Before each write, read the file and pass its exact `versionHash` to\n `write-local-file` with `requireExpectedVersionHash: true`; on conflict,\n re-read and re-plan. Keep the optimistic preview until HMR/runtime confirms\n the result. Human write consent remains mandatory and agents cannot grant it.\n\n## Verification\n\n- `list-localhost-connections` returns the expected connection and routes.\n- The Design editor opens in overview mode.\n- Every requested screen renders the intended localhost URL, showing real app\n content rather than an endless loading spinner.\n- The screen iframe carries a `src`, not a `srcdoc`. A localhost screen with a\n `srcdoc` is a bug, not a slow load \u2014 check it in the browser devtools before\n reporting the canvas as working.\n- Alt-dragging a screen copies the URL-backed frame, not an inline HTML clone.\n- A query/path edit changes only the target screen's URL metadata and iframe.\n- The Code tab shows a local-files root for the connection and opens its files.\n";
@@ -42,7 +42,7 @@ launcher, where it is hidden from the model and redeemed once.
42
42
  credential-free \`openUrl\` only when a read-only fallback is acceptable.
43
43
  - In Claude Code Desktop's Code tab, prefer the rendered MCP App. Preview
44
44
  \`openUrl\` in the Browser pane only as the read-only fallback.
45
- - In VS Code, use the Agent Native Design webview/deep link described below.
45
+ - In VS Code, use the Agent-Native Design webview/deep link described below.
46
46
  - Inline browser availability is host-dependent. CLI, remote, or restricted
47
47
  sessions may not expose one. If the inline surface is unavailable or disabled,
48
48
  return the normal **Open design** link instead of claiming it opened.
@@ -363,10 +363,10 @@ Fallback, only when \`open-visual-edit\` is unavailable:
363
363
  one-time local-editor capability. The credential-free \`openUrl\` / action link
364
364
  is the safe read-only fallback; never build a capability URL yourself.
365
365
  - Never return or open a hand-built \`/design/:id?_session=...\` URL.
366
- - If the user is working in VS Code, the Agent Native extension can open the
366
+ - If the user is working in VS Code, the Agent-Native extension can open the
367
367
  same URL via
368
368
  \`vscode://builder.agent-native/open?url=<encoded-design-url>\`. Its
369
- \`Agent Native: Open Design Canvas\` command also starts the local bridge and
369
+ \`Agent-Native: Open Design Canvas\` command also starts the local bridge and
370
370
  opens hosted Design in the VS Code side panel.
371
371
  - After \`open-visual-edit\`, confirm the Design editor is in overview mode
372
372
  with the requested URL-backed frames visible, and that they render the app
@@ -72,7 +72,7 @@ Visual Recap GitHub Action. Pass --with-github-action to write it directly, then
72
72
  run "npx @agent-native/core@latest recap setup" / "npx @agent-native/core@latest recap doctor" to configure and
73
73
  verify GitHub Actions. Docs: ${docsUrl("pr-visual-recap")}.
74
74
 
75
- The status/update commands inspect copied Agent Native skill folders and refresh
75
+ The status/update commands inspect copied Agent-Native skill folders and refresh
76
76
  their instruction files from the current @agent-native/core package. In a
77
77
  standalone generated app, "skills update scaffold --project" refreshes the
78
78
  framework skill copies. In a generated workspace, it refreshes workspace-core,
@@ -195,7 +195,7 @@ export interface RunSkillsOptions {
195
195
  */
196
196
  publicSkillEntries?: PublicSkillCatalogEntry[];
197
197
  /**
198
- * Built-in Agent Native skill prompt/list entries to hide for wrapper CLIs.
198
+ * Built-in Agent-Native skill prompt/list entries to hide for wrapper CLIs.
199
199
  * Direct installs by explicit name still work; this only controls discovery.
200
200
  */
201
201
  hiddenBuiltInSkillTargets?: string[];
@@ -81,7 +81,7 @@ export const BUILT_IN_APP_SKILLS = {
81
81
  mcp: { serverName: "agent-native-content" },
82
82
  auth: {
83
83
  mode: "oauth",
84
- setup: "Authenticate with the Content MCP connector in the host app. Local-folder synchronization requires a local Content app, Agent Native Desktop, or trusted local bridge for filesystem access.",
84
+ setup: "Authenticate with the Content MCP connector in the host app. Local-folder synchronization requires a local Content app, Agent-Native Desktop, or trusted local bridge for filesystem access.",
85
85
  },
86
86
  surfaces: [
87
87
  {
@@ -607,7 +607,7 @@ function contentModeInstructionBlock(input) {
607
607
  Default storage for this installation is Content's SQL database. This repo's
608
608
  \`agent-native.json\` declares \`docs/\`, \`blog/\`, \`content/\`, and
609
609
  \`resources/\` as local-folder sources with opaque connection ids; it does not
610
- select a separate application mode. A trusted local Content app or Agent Native
610
+ select a separate application mode. A trusted local Content app or Agent-Native
611
611
  Desktop bridge imports those files into their workspace's canonical Files
612
612
  database, after which normal Content document actions read and edit the SQL-backed
613
613
  pages. Use \`sync-manifest-local-folder-source\` with each root's generated
@@ -720,7 +720,7 @@ function writeSkillFolder(dir, bundle, installedAt = new Date().toISOString()) {
720
720
  fs.rmSync(tempDir, { recursive: true, force: true });
721
721
  }
722
722
  catch { }
723
- throw new Error(`Cannot write Agent Native skill folder ${dir}: ${error?.message ?? error}`, { cause: error });
723
+ throw new Error(`Cannot write Agent-Native skill folder ${dir}: ${error?.message ?? error}`, { cause: error });
724
724
  }
725
725
  }
726
726
  function assertSkillFolderIsNotSymlink(dir) {
@@ -734,7 +734,7 @@ function assertSkillFolderIsNotSymlink(dir) {
734
734
  throw error;
735
735
  }
736
736
  if (stat.isSymbolicLink()) {
737
- throw new Error(`Refusing to replace symlinked Agent Native skill folder ${dir}. Update the linked source or remove the symlink before installing.`);
737
+ throw new Error(`Refusing to replace symlinked Agent-Native skill folder ${dir}. Update the linked source or remove the symlink before installing.`);
738
738
  }
739
739
  }
740
740
  function isJsonRecord(value) {
@@ -1876,7 +1876,7 @@ async function promptForUpdateInstructions() {
1876
1876
  async function promptForSkills(context) {
1877
1877
  const clack = await import("@clack/prompts");
1878
1878
  const result = await clack.multiselect({
1879
- message: "Which Agent Native skills do you want to install?\n" +
1879
+ message: "Which Agent-Native skills do you want to install?\n" +
1880
1880
  " (space toggles, enter confirms)",
1881
1881
  options: context.options,
1882
1882
  initialValues: context.initialTargets,
@@ -2452,7 +2452,7 @@ async function addPlainSkillRepo(parsed, options) {
2452
2452
  throw new Error("Plain skill repositories only install skill instructions. Run without --mcp-only.");
2453
2453
  }
2454
2454
  if (parsed.mcpUrl && !installModeSkillNamesSelected(parsed.plainSkillNames)) {
2455
- throw new Error("--mcp-url only applies to app-backed Agent Native skills.");
2455
+ throw new Error("--mcp-url only applies to app-backed Agent-Native skills.");
2456
2456
  }
2457
2457
  const clients = parsed.clients ?? resolveSkillsClientArg(parsed.client);
2458
2458
  const skillsAgents = skillsAgentsForClients(clients);
@@ -3216,11 +3216,11 @@ function runSkillsStatusOrUpdate(parsed, options, update) {
3216
3216
  if (beforeCount === 0) {
3217
3217
  const target = parsed.target ? ` for ${parsed.target}` : "";
3218
3218
  const hint = isScaffoldGuidanceTarget(parsed.target)
3219
- ? `Run this from a generated Agent Native app or workspace root.\n`
3219
+ ? `Run this from a generated Agent-Native app or workspace root.\n`
3220
3220
  : update
3221
3221
  ? `The update command only refreshes skill folders that already exist; it does not do first-time install, MCP registration, or auth. Run "npx @agent-native/core@latest skills add ${parsed.target ?? "visual-plan"}" for one-step setup.\n`
3222
3222
  : `Run "npx @agent-native/core@latest skills add ${parsed.target ?? "visual-plan"}" to install one.\n`;
3223
- process.stdout.write(`No installed Agent Native skill copies found${target}.\n${hint}`);
3223
+ process.stdout.write(`No installed Agent-Native skill copies found${target}.\n${hint}`);
3224
3224
  return;
3225
3225
  }
3226
3226
  if (update) {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Best-effort install-funnel telemetry for the core CLI.
3
3
  *
4
- * Events are POSTed to the first-party Agent Native Analytics endpoint
4
+ * Events are POSTed to the first-party Agent-Native Analytics endpoint
5
5
  * (analytics.agent-native.com/track) using a PUBLIC, write-only key — the same
6
6
  * mechanism every agent-native app uses to report client-side events. Nothing
7
7
  * here ever blocks or throws into the install flow: sends are fire-and-forget
@@ -281,7 +281,7 @@ export function resolveTargets(cwd, appArg) {
281
281
  return targets;
282
282
  }
283
283
  }
284
- throw new Error("No Agent Native app found. Run from an app directory, or pass an app name from a workspace root.");
284
+ throw new Error("No Agent-Native app found. Run from an app directory, or pass an app name from a workspace root.");
285
285
  }
286
286
  function toTarget(appDir) {
287
287
  const resolved = path.resolve(appDir);
@@ -18,7 +18,7 @@ export const TEMPLATES = [
18
18
  {
19
19
  name: "calendar",
20
20
  label: "Calendar",
21
- hint: "Agent-native Google Calendar — manage events, sync, and public booking",
21
+ hint: "Agent-Native Google Calendar — manage events, sync, and public booking",
22
22
  icon: "CalendarDays",
23
23
  color: "#00B5FF",
24
24
  colorRgb: "0 181 255",
@@ -56,7 +56,7 @@ export const TEMPLATES = [
56
56
  {
57
57
  name: "slides",
58
58
  label: "Slides",
59
- hint: "Agent-native Google Slides — generate and edit React presentations",
59
+ hint: "Agent-Native Google Slides — generate and edit React presentations",
60
60
  icon: "GalleryHorizontal",
61
61
  color: "#EC4899",
62
62
  colorRgb: "236 72 153",
@@ -69,7 +69,7 @@ export const TEMPLATES = [
69
69
  {
70
70
  name: "analytics",
71
71
  label: "Analytics",
72
- hint: "Agent-native provider analytics - connect data sources, prompt for charts and deep dives",
72
+ hint: "Agent-Native provider analytics - connect data sources, prompt for charts and deep dives",
73
73
  icon: "BarChart2",
74
74
  color: "#F59E0B",
75
75
  colorRgb: "245 158 11",
@@ -82,7 +82,7 @@ export const TEMPLATES = [
82
82
  {
83
83
  name: "mail",
84
84
  label: "Mail",
85
- hint: "Agent-native Superhuman — email client with keyboard shortcuts and AI triage",
85
+ hint: "Agent-Native Superhuman — email client with keyboard shortcuts and AI triage",
86
86
  icon: "Mail",
87
87
  color: "#3B82F6",
88
88
  colorRgb: "59 130 246",
@@ -106,7 +106,7 @@ export const TEMPLATES = [
106
106
  {
107
107
  name: "forms",
108
108
  label: "Forms",
109
- hint: "Agent-native form builder — create, edit, and manage forms",
109
+ hint: "Agent-Native form builder — create, edit, and manage forms",
110
110
  icon: "ClipboardList",
111
111
  color: "#06B6D4",
112
112
  colorRgb: "6 182 212",
@@ -156,7 +156,7 @@ export const TEMPLATES = [
156
156
  {
157
157
  name: "design",
158
158
  label: "Design",
159
- hint: "Agent-native design tool — create and edit visual designs with agent assistance",
159
+ hint: "Agent-Native design tool — create and edit visual designs with agent assistance",
160
160
  icon: "Brush",
161
161
  color: "#F472B6",
162
162
  colorRgb: "244 114 182",
@@ -196,7 +196,7 @@ export const TEMPLATES = [
196
196
  {
197
197
  name: "crm",
198
198
  label: "CRM",
199
- hint: "Agent-native CRM over native SQL, HubSpot, or Salesforce — typed attributes, lists, pipelines, and evidence-grounded signals",
199
+ hint: "Agent-Native CRM over native SQL, HubSpot, or Salesforce — typed attributes, lists, pipelines, and evidence-grounded signals",
200
200
  icon: "Users",
201
201
  color: "#2563EB",
202
202
  colorRgb: "37 99 235",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agent-native upgrade` — bring an existing Agent Native app/workspace current.
2
+ * `agent-native upgrade` — bring an existing Agent-Native app/workspace current.
3
3
  *
4
4
  * Older branches often break after a core bump. Agents then invent
5
5
  * `pnpm.overrides` / patches against `@agent-native/*` (especially dispatch),
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `agent-native upgrade` — bring an existing Agent Native app/workspace current.
2
+ * `agent-native upgrade` — bring an existing Agent-Native app/workspace current.
3
3
  *
4
4
  * Older branches often break after a core bump. Agents then invent
5
5
  * `pnpm.overrides` / patches against `@agent-native/*` (especially dispatch),
@@ -104,7 +104,7 @@ export function printUpgradeHelp(io = defaultIo) {
104
104
  "",
105
105
  "Options:",
106
106
  " --skip-install Bump package.json only; do not run the package manager",
107
- " --codemods Rewrite moved Agent Native imports and exports (preview by default)",
107
+ " --codemods Rewrite moved Agent-Native imports and exports (preview by default)",
108
108
  " --yes Apply codemods; without this flag --codemods is a dry run",
109
109
  " --skip-skills Skip `skills update scaffold --project`",
110
110
  " --skip-verify Skip typecheck after upgrade",
@@ -285,7 +285,7 @@ export function detectUpgradeProject(cwd) {
285
285
  const isWorkspace = hasWorkspaceYaml || workspacePatterns.length > 0;
286
286
  // A manifest we cannot parse cannot be ruled out as the project root:
287
287
  // stop here so the doctor reports the parse error instead of walking past
288
- // it and claiming no Agent Native project exists.
288
+ // it and claiming no Agent-Native project exists.
289
289
  const unreadable = !read.ok && read.reason === "unreadable";
290
290
  if (hasCore || isWorkspace || unreadable) {
291
291
  const packageFiles = [pkgPath];
@@ -502,7 +502,7 @@ function detectPackageManager(projectRoot) {
502
502
  return "yarn";
503
503
  if (fs.existsSync(path.join(projectRoot, "package-lock.json")))
504
504
  return "npm";
505
- // Prefer pnpm for Agent Native scaffolds.
505
+ // Prefer pnpm for Agent-Native scaffolds.
506
506
  return "pnpm";
507
507
  }
508
508
  function installArgs(pm) {
@@ -612,7 +612,7 @@ export async function runUpgrade(argv, io = defaultIo) {
612
612
  const cwd = path.resolve(opts.cwd ?? process.cwd());
613
613
  const project = detectUpgradeProject(cwd);
614
614
  if (!project) {
615
- const message = "No Agent Native app/workspace found. Run from an app or workspace root that depends on @agent-native/core.";
615
+ const message = "No Agent-Native app/workspace found. Run from an app or workspace root that depends on @agent-native/core.";
616
616
  if (opts.json) {
617
617
  io.err(JSON.stringify({ ok: false, message }, null, 2));
618
618
  }
@@ -35,7 +35,7 @@ export function AboutAgentNativeDialog({ open, onOpenChange, }) {
35
35
  }, 1600);
36
36
  };
37
37
  return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { "aria-describedby": undefined, className: "max-w-md gap-5", children: [_jsxs(DialogTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(IconCode, { className: "size-4 text-muted-foreground" }), t("agentChat.aboutAgentNative.title", {
38
- defaultValue: "About Agent Native",
38
+ defaultValue: "About Agent-Native",
39
39
  })] }), _jsx("div", { className: "overflow-hidden rounded-md border border-border", children: packageVersions.length > 0 ? (packageVersions.map(({ name, version }) => (_jsxs("div", { className: "flex items-center justify-between gap-4 border-b border-border px-3 py-2 last:border-b-0", children: [_jsx("span", { className: "min-w-0 truncate font-mono text-xs text-foreground", children: name }), _jsxs("span", { className: "shrink-0 font-mono text-xs text-muted-foreground", children: [_jsx("span", { className: "sr-only", children: t("agentChat.aboutAgentNative.version", {
40
40
  defaultValue: "Version",
41
41
  }) }), version] })] }, name)))) : (_jsxs("div", { className: "px-3 py-2 font-mono text-xs text-muted-foreground", children: ["@agent-native/core -", " ", t("agentChat.aboutAgentNative.unknown", {
@@ -23,7 +23,7 @@ const defaultStyle = {
23
23
  width: "100%",
24
24
  height: "100%",
25
25
  };
26
- export const AgentNativeFrame = forwardRef(function AgentNativeFrame({ agentUrl, agentOrigin, session, getContext, commands, actions, webmcp, auth, onBridgeEvent, onBridgeReady, title = "Agent Native assistant", sandbox = "allow-scripts allow-same-origin allow-forms allow-popups allow-downloads", allow = "clipboard-read; clipboard-write; microphone; fullscreen", referrerPolicy = "strict-origin-when-cross-origin", style, onLoad, ...iframeProps }, forwardedRef) {
26
+ export const AgentNativeFrame = forwardRef(function AgentNativeFrame({ agentUrl, agentOrigin, session, getContext, commands, actions, webmcp, auth, onBridgeEvent, onBridgeReady, title = "Agent-Native assistant", sandbox = "allow-scripts allow-same-origin allow-forms allow-popups allow-downloads", allow = "clipboard-read; clipboard-write; microphone; fullscreen", referrerPolicy = "strict-origin-when-cross-origin", style, onLoad, ...iframeProps }, forwardedRef) {
27
27
  const iframeRef = useRef(null);
28
28
  const bridgeRef = useRef(null);
29
29
  const resolvedOrigin = useMemo(() => agentOrigin ?? originFromUrl(agentUrl), [agentOrigin, agentUrl]);
@@ -90,7 +90,7 @@ export interface CommandMenuProps {
90
90
  */
91
91
  changelogKey?: string;
92
92
  /**
93
- * Whether to show the built-in "About Agent Native" entry. Defaults to true
93
+ * Whether to show the built-in "About Agent-Native" entry. Defaults to true
94
94
  * for app-shell menus that provide a changelog; set false for local menus.
95
95
  */
96
96
  showAbout?: boolean;
@@ -189,7 +189,7 @@ export function CommandMenu({ open, onOpenChange, children, renderResults, place
189
189
  .includes(search.toLowerCase());
190
190
  const showChangelogRow = hasChangelog && changelogRowMatches;
191
191
  const aboutLabel = t("agentChat.aboutAgentNative.title", {
192
- defaultValue: "About Agent Native",
192
+ defaultValue: "About Agent-Native",
193
193
  });
194
194
  const aboutVersionLabel = t("agentChat.aboutAgentNative.version", {
195
195
  defaultValue: "Version",
@@ -206,7 +206,7 @@ export function CommandMenu({ open, onOpenChange, children, renderResults, place
206
206
  const aboutRowMatches = !search ||
207
207
  [
208
208
  aboutLabel,
209
- "agent native",
209
+ "agent-native",
210
210
  aboutVersionLabel,
211
211
  "versions",
212
212
  "package",
@@ -116,8 +116,8 @@ function EnvironmentBadgeContent({ environment, targets, }) {
116
116
  return null;
117
117
  const label = environment === "beta" ? "beta" : "prod";
118
118
  const title = environment === "beta"
119
- ? "You're on Agent Native Beta"
120
- : "You're on Agent Native Production";
119
+ ? "You're on Agent-Native Beta"
120
+ : "You're on Agent-Native Production";
121
121
  return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { "aria-label": `Open ${title.toLowerCase()} switcher`, className: cn(environmentBadgePlacementClasses, environment === "beta"
122
122
  ? "border-primary/80"
123
123
  : "border-border/80 bg-background/95 text-foreground"), size: "sm", variant: environment === "beta" ? "default" : "outline", children: label }) }), _jsxs(PopoverContent, { align: "start", className: "w-[280px] p-5", side: "top", sideOffset: 8, children: [_jsx("div", { className: "mb-1 text-sm font-semibold leading-5", children: title }), _jsx("div", { className: "mb-4 text-sm text-muted-foreground", children: "Choose where you want to continue." }), _jsxs("div", { className: "grid gap-2", children: [environment === "beta" ? (_jsx(EnvironmentLink, { href: productionHref, label: "Switch to production" })) : (_jsx(EnvironmentLink, { href: betaHref, label: "Go to beta" })), _jsx(Button, { className: "mt-2 -mb-2 w-full justify-center text-muted-foreground", onClick: () => setIsHidden(true), size: "sm", type: "button", variant: "ghost", children: "Hide badge" })] })] })] }));