@agent-native/core 0.121.1 → 0.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +145 -0
  3. package/corpus/core/docs/content/actions.mdx +2 -2
  4. package/corpus/core/docs/content/agent-surfaces.mdx +1 -1
  5. package/corpus/core/docs/content/authentication.mdx +2 -0
  6. package/corpus/core/docs/content/deployment.mdx +36 -0
  7. package/corpus/core/docs/content/getting-started.mdx +477 -115
  8. package/corpus/core/docs/content/http-api.mdx +266 -0
  9. package/corpus/core/docs/content/syncing-template-changes.mdx +159 -0
  10. package/corpus/core/package.json +2 -1
  11. package/corpus/core/src/a2a/activity.ts +38 -27
  12. package/corpus/core/src/agent/engine/builder-engine.ts +35 -4
  13. package/corpus/core/src/agent/run-manager.ts +20 -1
  14. package/corpus/core/src/agent/run-store.ts +4 -1
  15. package/corpus/core/src/agent/types.ts +28 -8
  16. package/corpus/core/src/chat-threads/store.ts +45 -0
  17. package/corpus/core/src/checkpoints/index.ts +2 -0
  18. package/corpus/core/src/checkpoints/route-match.ts +13 -0
  19. package/corpus/core/src/cli/create.ts +105 -17
  20. package/corpus/core/src/cli/index.ts +20 -0
  21. package/corpus/core/src/cli/template-baseline.ts +410 -0
  22. package/corpus/core/src/cli/template-sync.ts +1004 -0
  23. package/corpus/core/src/cli/templates-meta.ts +1 -0
  24. package/corpus/core/src/client/AssistantChat.tsx +38 -12
  25. package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +75 -10
  26. package/corpus/core/src/client/chat/message-components.tsx +127 -66
  27. package/corpus/core/src/client/chat/tool-call-display.tsx +29 -5
  28. package/corpus/core/src/client/error-format.ts +18 -0
  29. package/corpus/core/src/client/org/OrgSwitcher.tsx +30 -8
  30. package/corpus/core/src/client/org/TeamPage.tsx +7 -6
  31. package/corpus/core/src/client/sse-event-processor.ts +3 -0
  32. package/corpus/core/src/data-widgets/index.ts +41 -0
  33. package/corpus/core/src/deploy/build.ts +11 -9
  34. package/corpus/core/src/integrations/webhook-handler.ts +63 -9
  35. package/corpus/core/src/org/auto-join-domain.ts +4 -3
  36. package/corpus/core/src/org/context.ts +108 -39
  37. package/corpus/core/src/org/index.ts +5 -0
  38. package/corpus/core/src/org/service-identity.ts +60 -0
  39. package/corpus/core/src/provider-api/index.ts +22 -1
  40. package/corpus/core/src/scripts/docs/search.ts +12 -1
  41. package/corpus/core/src/server/agent-chat/context-tools.ts +9 -4
  42. package/corpus/core/src/server/agent-chat/framework-prompts.ts +38 -66
  43. package/corpus/core/src/server/agent-chat-plugin.ts +17 -10
  44. package/corpus/core/src/server/agents-bundle.ts +84 -5
  45. package/corpus/core/src/server/auth.ts +4 -3
  46. package/corpus/core/src/server/builder-browser.ts +47 -19
  47. package/corpus/core/src/server/core-routes-plugin.ts +2 -2
  48. package/corpus/core/src/server/credential-provider.ts +209 -68
  49. package/corpus/core/src/server/index.ts +3 -0
  50. package/corpus/core/src/server/prompts/framework-core-compact.ts +6 -13
  51. package/corpus/core/src/server/prompts/framework-core.ts +9 -21
  52. package/corpus/core/src/server/prompts/index.ts +0 -1
  53. package/corpus/core/src/server/prompts/shared-rules.ts +19 -11
  54. package/corpus/core/src/server/ssr-handler.ts +13 -2
  55. package/corpus/core/src/settings/user-settings.ts +13 -1
  56. package/corpus/core/src/shared/cache-control.ts +141 -0
  57. package/corpus/core/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  58. package/corpus/core/src/templates/chat/_gitignore +1 -0
  59. package/corpus/core/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  60. package/corpus/core/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  61. package/corpus/core/src/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
  62. package/corpus/core/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  63. package/corpus/core/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
  64. package/corpus/core/src/vite/agents-bundle-plugin.ts +7 -6
  65. package/corpus/core/src/vite/client.ts +5 -0
  66. package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +4 -5
  67. package/corpus/templates/analytics/.agents/skills/admin-surfaces/SKILL.md +55 -0
  68. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +10 -0
  69. package/corpus/templates/analytics/.agents/skills/dashboard-management/references/template-catalog-and-demo.md +62 -0
  70. package/corpus/templates/analytics/.agents/skills/dashboard-ops/SKILL.md +85 -0
  71. package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +27 -2
  72. package/corpus/templates/analytics/.agents/skills/data-querying/references/inline-chart-embeds.md +139 -0
  73. package/corpus/templates/analytics/.agents/skills/monitoring/SKILL.md +77 -0
  74. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  75. package/corpus/templates/analytics/AGENTS.md +91 -563
  76. package/corpus/templates/analytics/_gitignore +1 -0
  77. package/corpus/templates/analytics/actions/bigquery.ts +12 -4
  78. package/corpus/templates/analytics/actions/generate-chart.ts +5 -5
  79. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +30 -1
  80. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +3 -0
  81. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +1 -1
  82. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +1 -0
  83. package/corpus/templates/analytics/changelog/2026-07-24-analytics-finds-saved-dashboards-and-queries-far-more-reliab.md +6 -0
  84. package/corpus/templates/analytics/changelog/2026-07-24-notion-access-errors-now-explain-that-a-page-needs-sharing-w.md +6 -0
  85. package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +7 -0
  86. package/corpus/templates/analytics/server/lib/analytics-query-catalog.ts +191 -30
  87. package/corpus/templates/analytics/server/lib/bigquery.ts +11 -1
  88. package/corpus/templates/analytics/server/lib/notion.ts +15 -4
  89. package/corpus/templates/analytics/server/plugins/agent-chat.ts +10 -0
  90. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  91. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  92. package/corpus/templates/brain/_gitignore +1 -0
  93. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  94. package/corpus/templates/calendar/_gitignore +1 -0
  95. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  96. package/corpus/templates/chat/_gitignore +1 -0
  97. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  98. package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +34 -0
  99. package/corpus/templates/clips/AGENTS.md +5 -4
  100. package/corpus/templates/clips/_gitignore +1 -0
  101. package/corpus/templates/clips/actions/cleanup-transcript.ts +5 -0
  102. package/corpus/templates/clips/actions/get-recording-insights.ts +44 -8
  103. package/corpus/templates/clips/actions/get-recording-player-data.ts +39 -70
  104. package/corpus/templates/clips/actions/list-clip-views.ts +2 -4
  105. package/corpus/templates/clips/actions/list-recordings.ts +69 -19
  106. package/corpus/templates/clips/actions/list-viewers.ts +5 -2
  107. package/corpus/templates/clips/actions/regenerate-summary.ts +5 -1
  108. package/corpus/templates/clips/actions/request-transcript.ts +28 -1
  109. package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +21 -1
  110. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +14 -1
  111. package/corpus/templates/clips/app/components/player/insights-panel.tsx +8 -20
  112. package/corpus/templates/clips/app/components/player/recording-views-badge.tsx +335 -0
  113. package/corpus/templates/clips/app/components/player/video-player.tsx +13 -8
  114. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -1
  115. package/corpus/templates/clips/app/i18n/en-US.ts +13 -2
  116. package/corpus/templates/clips/app/lib/capture-permissions.ts +110 -0
  117. package/corpus/templates/clips/app/lib/recording-link.ts +32 -0
  118. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +27 -0
  119. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +46 -15
  120. package/corpus/templates/clips/app/routes/record.tsx +77 -31
  121. package/corpus/templates/clips/app/routes/share.$shareId.tsx +42 -31
  122. package/corpus/templates/clips/changelog/2026-07-24-clip-pages-now-show-a-view-count-with-viewer-avatars-next-to.md +6 -0
  123. package/corpus/templates/clips/changelog/2026-07-24-clip-summaries-read-like-a-description-you-d-write-yourself-.md +6 -0
  124. package/corpus/templates/clips/changelog/2026-07-24-clip-view-counts-now-separate-human-views-from-agent-views-s.md +6 -0
  125. package/corpus/templates/clips/changelog/2026-07-24-clips-actions-can-now-be-called-by-org-service-tokens-so-ext.md +6 -0
  126. package/corpus/templates/clips/changelog/2026-07-24-clips-no-longer-briefly-shows-a-dock-icon-while-launching.md +6 -0
  127. package/corpus/templates/clips/changelog/2026-07-24-fixed-owner-and-editor-share-links-redirecting-to-the-record.md +6 -0
  128. package/corpus/templates/clips/changelog/2026-07-24-meeting-and-note-recordings-now-start-as-a-compact-pill-on-t.md +6 -0
  129. package/corpus/templates/clips/changelog/2026-07-24-new-clips-now-copy-a-shareable-link-instead-of-the-owner-onl.md +6 -0
  130. package/corpus/templates/clips/changelog/2026-07-24-opening-a-share-link-as-the-clip-s-owner-now-goes-straight-t.md +6 -0
  131. package/corpus/templates/clips/changelog/2026-07-24-permissions-and-rewind-controls-now-use-compact-consistent-h.md +6 -0
  132. package/corpus/templates/clips/changelog/2026-07-24-quitting-the-desktop-app-no-longer-shows-a-false-macos-crash.md +6 -0
  133. package/corpus/templates/clips/changelog/2026-07-24-screen-recording-permission-errors-now-name-the-exact-app-to.md +6 -0
  134. package/corpus/templates/clips/changelog/2026-07-24-the-desktop-app-now-copies-a-new-clip-s-share-link-to-your-c.md +6 -0
  135. package/corpus/templates/clips/changelog/2026-07-24-the-recording-toolbar-now-stays-above-other-apps-including-o.md +6 -0
  136. package/corpus/templates/clips/changelog/2026-07-24-transcript-captions-now-use-real-speech-timings-instead-of-a.md +6 -0
  137. package/corpus/templates/clips/changelog/2026-07-24-video-playback-no-longer-stutters-and-replays-the-last-momen.md +6 -0
  138. package/corpus/templates/clips/chrome-extension/src/background.ts +17 -1
  139. package/corpus/templates/clips/desktop/package.json +2 -0
  140. package/corpus/templates/clips/desktop/src/app.tsx +89 -0
  141. package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +9 -3
  142. package/corpus/templates/clips/desktop/src/lib/audio-meter.ts +51 -0
  143. package/corpus/templates/clips/desktop/src/lib/native-notification.ts +44 -0
  144. package/corpus/templates/clips/desktop/src/lib/recording-link.ts +67 -0
  145. package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +35 -35
  146. package/corpus/templates/clips/desktop/src/overlays/live-transcript.tsx +3 -2
  147. package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +47 -46
  148. package/corpus/templates/clips/desktop/src/styles.css +127 -78
  149. package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +7 -0
  150. package/corpus/templates/clips/desktop/src-tauri/Info.plist +6 -0
  151. package/corpus/templates/clips/desktop/src-tauri/capabilities/default.json +1 -0
  152. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +7 -3
  153. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +4 -1
  154. package/corpus/templates/clips/desktop/src-tauri/src/main.rs +8 -0
  155. package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +21 -10
  156. package/corpus/templates/clips/desktop/src-tauri/src/util.rs +40 -0
  157. package/corpus/templates/clips/server/db/schema.ts +25 -0
  158. package/corpus/templates/clips/server/lib/agent-views.ts +145 -0
  159. package/corpus/templates/clips/server/lib/public-agent-context.ts +7 -0
  160. package/corpus/templates/clips/server/lib/recording-share-grant.ts +79 -0
  161. package/corpus/templates/clips/server/lib/recordings.ts +51 -3
  162. package/corpus/templates/clips/server/plugins/db.ts +23 -0
  163. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +49 -17
  164. package/corpus/templates/clips/shared/recording-link.ts +43 -0
  165. package/corpus/templates/clips/shared/share-attribution.ts +4 -0
  166. package/corpus/templates/clips/shared/share-dashboard-redirect.ts +42 -0
  167. package/corpus/templates/clips/shared/view-analytics.ts +26 -0
  168. package/corpus/templates/content/.agents/skills/content/SKILL.md +5 -0
  169. package/corpus/templates/content/.agents/skills/content/references/local-file-mode.md +135 -0
  170. package/corpus/templates/content/.agents/skills/document-editing/SKILL.md +12 -0
  171. package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +238 -0
  172. package/corpus/templates/content/.agents/skills/document-editing/references/document-behavior.md +91 -0
  173. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  174. package/corpus/templates/content/AGENTS.md +62 -583
  175. package/corpus/templates/content/_gitignore +1 -0
  176. package/corpus/templates/design/.agents/skills/creative-context/SKILL.md +11 -0
  177. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +50 -8
  178. package/corpus/templates/design/.agents/skills/design-generation/references/code-layers.md +81 -0
  179. package/corpus/templates/design/.agents/skills/design-generation/references/code-workspace.md +42 -0
  180. package/corpus/templates/design/.agents/skills/design-generation/references/editor-extensions.md +34 -0
  181. package/corpus/templates/design/.agents/skills/responsive-breakpoints/SKILL.md +4 -1
  182. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  183. package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +17 -0
  184. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +8196 -0
  185. package/corpus/templates/design/.generated/bridge/embedded-wheel.generated.ts +265 -0
  186. package/corpus/templates/design/.generated/bridge/hit-test.generated.ts +642 -0
  187. package/corpus/templates/design/.generated/bridge/motion-preview.generated.ts +571 -0
  188. package/corpus/templates/design/.generated/bridge/nav.generated.ts +91 -0
  189. package/corpus/templates/design/.generated/bridge/sample.generated.ts +23 -0
  190. package/corpus/templates/design/.generated/bridge/shader-fill-preview.generated.ts +263 -0
  191. package/corpus/templates/design/.generated/bridge/shader-runtime.generated.ts +518 -0
  192. package/corpus/templates/design/.generated/bridge/tweak.generated.ts +20 -0
  193. package/corpus/templates/design/.generated/bridge/zoom.generated.ts +32 -0
  194. package/corpus/templates/design/AGENTS.md +88 -503
  195. package/corpus/templates/design/_gitignore +1 -0
  196. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  197. package/corpus/templates/dispatch/_gitignore +1 -0
  198. package/corpus/templates/dispatch/changelog/2026-07-24-signing-in-now-puts-you-in-your-companys-workspace.md +6 -0
  199. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  200. package/corpus/templates/forms/_gitignore +1 -0
  201. package/corpus/templates/forms/server/lib/public-form-ssr.ts +2 -2
  202. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  203. package/corpus/templates/macros/_gitignore +1 -0
  204. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  205. package/corpus/templates/mail/_gitignore +1 -0
  206. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  207. package/corpus/templates/plan/_gitignore +1 -0
  208. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  209. package/corpus/templates/slides/_gitignore +1 -0
  210. package/corpus/templates/slides/server/plugins/db.ts +4 -0
  211. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  212. package/corpus/templates/tasks/AGENTS.md +1 -1
  213. package/corpus/templates/tasks/_gitignore +1 -0
  214. package/dist/a2a/activity.d.ts +4 -1
  215. package/dist/a2a/activity.d.ts.map +1 -1
  216. package/dist/a2a/activity.js +27 -16
  217. package/dist/a2a/activity.js.map +1 -1
  218. package/dist/agent/engine/builder-engine.d.ts +1 -0
  219. package/dist/agent/engine/builder-engine.d.ts.map +1 -1
  220. package/dist/agent/engine/builder-engine.js +31 -4
  221. package/dist/agent/engine/builder-engine.js.map +1 -1
  222. package/dist/agent/run-manager.d.ts.map +1 -1
  223. package/dist/agent/run-manager.js +18 -1
  224. package/dist/agent/run-manager.js.map +1 -1
  225. package/dist/agent/run-store.d.ts +1 -0
  226. package/dist/agent/run-store.d.ts.map +1 -1
  227. package/dist/agent/run-store.js +2 -1
  228. package/dist/agent/run-store.js.map +1 -1
  229. package/dist/agent/types.d.ts +12 -1
  230. package/dist/agent/types.d.ts.map +1 -1
  231. package/dist/agent/types.js +21 -1
  232. package/dist/agent/types.js.map +1 -1
  233. package/dist/chat-threads/store.d.ts +10 -0
  234. package/dist/chat-threads/store.d.ts.map +1 -1
  235. package/dist/chat-threads/store.js +41 -0
  236. package/dist/chat-threads/store.js.map +1 -1
  237. package/dist/checkpoints/index.d.ts +1 -0
  238. package/dist/checkpoints/index.d.ts.map +1 -1
  239. package/dist/checkpoints/index.js +1 -0
  240. package/dist/checkpoints/index.js.map +1 -1
  241. package/dist/checkpoints/route-match.d.ts +8 -0
  242. package/dist/checkpoints/route-match.d.ts.map +1 -0
  243. package/dist/checkpoints/route-match.js +13 -0
  244. package/dist/checkpoints/route-match.js.map +1 -0
  245. package/dist/cli/create.d.ts +35 -4
  246. package/dist/cli/create.d.ts.map +1 -1
  247. package/dist/cli/create.js +69 -19
  248. package/dist/cli/create.js.map +1 -1
  249. package/dist/cli/index.js +19 -0
  250. package/dist/cli/index.js.map +1 -1
  251. package/dist/cli/template-baseline.d.ts +54 -0
  252. package/dist/cli/template-baseline.d.ts.map +1 -0
  253. package/dist/cli/template-baseline.js +334 -0
  254. package/dist/cli/template-baseline.js.map +1 -0
  255. package/dist/cli/template-sync.d.ts +57 -0
  256. package/dist/cli/template-sync.d.ts.map +1 -0
  257. package/dist/cli/template-sync.js +787 -0
  258. package/dist/cli/template-sync.js.map +1 -0
  259. package/dist/cli/templates-meta.d.ts.map +1 -1
  260. package/dist/cli/templates-meta.js +1 -0
  261. package/dist/cli/templates-meta.js.map +1 -1
  262. package/dist/client/AssistantChat.d.ts +2 -1
  263. package/dist/client/AssistantChat.d.ts.map +1 -1
  264. package/dist/client/AssistantChat.js +38 -10
  265. package/dist/client/AssistantChat.js.map +1 -1
  266. package/dist/client/NewWorkspaceAppFlow.d.ts.map +1 -1
  267. package/dist/client/NewWorkspaceAppFlow.js +32 -2
  268. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  269. package/dist/client/chat/message-components.d.ts +20 -0
  270. package/dist/client/chat/message-components.d.ts.map +1 -1
  271. package/dist/client/chat/message-components.js +81 -46
  272. package/dist/client/chat/message-components.js.map +1 -1
  273. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  274. package/dist/client/chat/tool-call-display.js +14 -6
  275. package/dist/client/chat/tool-call-display.js.map +1 -1
  276. package/dist/client/error-format.d.ts.map +1 -1
  277. package/dist/client/error-format.js +13 -0
  278. package/dist/client/error-format.js.map +1 -1
  279. package/dist/client/org/OrgSwitcher.d.ts +8 -1
  280. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  281. package/dist/client/org/OrgSwitcher.js +3 -2
  282. package/dist/client/org/OrgSwitcher.js.map +1 -1
  283. package/dist/client/org/TeamPage.d.ts.map +1 -1
  284. package/dist/client/org/TeamPage.js +1 -1
  285. package/dist/client/org/TeamPage.js.map +1 -1
  286. package/dist/client/sse-event-processor.d.ts.map +1 -1
  287. package/dist/client/sse-event-processor.js +3 -0
  288. package/dist/client/sse-event-processor.js.map +1 -1
  289. package/dist/collab/awareness.d.ts +2 -2
  290. package/dist/collab/awareness.d.ts.map +1 -1
  291. package/dist/data-widgets/index.d.ts +3 -0
  292. package/dist/data-widgets/index.d.ts.map +1 -1
  293. package/dist/data-widgets/index.js +33 -0
  294. package/dist/data-widgets/index.js.map +1 -1
  295. package/dist/deploy/build.d.ts.map +1 -1
  296. package/dist/deploy/build.js +11 -7
  297. package/dist/deploy/build.js.map +1 -1
  298. package/dist/eject/provider-api-definitions.d.ts +1 -0
  299. package/dist/eject/provider-api-definitions.d.ts.map +1 -1
  300. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  301. package/dist/integrations/webhook-handler.js +46 -9
  302. package/dist/integrations/webhook-handler.js.map +1 -1
  303. package/dist/notifications/routes.d.ts +3 -3
  304. package/dist/observability/routes.d.ts +3 -3
  305. package/dist/org/auto-join-domain.d.ts +3 -2
  306. package/dist/org/auto-join-domain.d.ts.map +1 -1
  307. package/dist/org/auto-join-domain.js +1 -1
  308. package/dist/org/auto-join-domain.js.map +1 -1
  309. package/dist/org/context.d.ts.map +1 -1
  310. package/dist/org/context.js +84 -28
  311. package/dist/org/context.js.map +1 -1
  312. package/dist/org/index.d.ts +1 -0
  313. package/dist/org/index.d.ts.map +1 -1
  314. package/dist/org/index.js +1 -0
  315. package/dist/org/index.js.map +1 -1
  316. package/dist/org/service-identity.d.ts +43 -0
  317. package/dist/org/service-identity.d.ts.map +1 -0
  318. package/dist/org/service-identity.js +34 -0
  319. package/dist/org/service-identity.js.map +1 -0
  320. package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
  321. package/dist/provider-api/actions/provider-api.d.ts +13 -11
  322. package/dist/provider-api/actions/provider-api.d.ts.map +1 -1
  323. package/dist/provider-api/index.d.ts +4 -0
  324. package/dist/provider-api/index.d.ts.map +1 -1
  325. package/dist/provider-api/index.js +17 -1
  326. package/dist/provider-api/index.js.map +1 -1
  327. package/dist/resources/handlers.d.ts +1 -1
  328. package/dist/scripts/docs/search.d.ts.map +1 -1
  329. package/dist/scripts/docs/search.js +12 -1
  330. package/dist/scripts/docs/search.js.map +1 -1
  331. package/dist/server/agent-chat/context-tools.d.ts.map +1 -1
  332. package/dist/server/agent-chat/context-tools.js +3 -3
  333. package/dist/server/agent-chat/context-tools.js.map +1 -1
  334. package/dist/server/agent-chat/framework-prompts.d.ts +8 -3
  335. package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
  336. package/dist/server/agent-chat/framework-prompts.js +33 -62
  337. package/dist/server/agent-chat/framework-prompts.js.map +1 -1
  338. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  339. package/dist/server/agent-chat-plugin.js +16 -10
  340. package/dist/server/agent-chat-plugin.js.map +1 -1
  341. package/dist/server/agents-bundle.d.ts +18 -0
  342. package/dist/server/agents-bundle.d.ts.map +1 -1
  343. package/dist/server/agents-bundle.js +70 -4
  344. package/dist/server/agents-bundle.js.map +1 -1
  345. package/dist/server/auth.d.ts.map +1 -1
  346. package/dist/server/auth.js +4 -3
  347. package/dist/server/auth.js.map +1 -1
  348. package/dist/server/builder-browser.d.ts.map +1 -1
  349. package/dist/server/builder-browser.js +43 -19
  350. package/dist/server/builder-browser.js.map +1 -1
  351. package/dist/server/core-routes-plugin.js +2 -2
  352. package/dist/server/core-routes-plugin.js.map +1 -1
  353. package/dist/server/credential-provider.d.ts +38 -2
  354. package/dist/server/credential-provider.d.ts.map +1 -1
  355. package/dist/server/credential-provider.js +142 -64
  356. package/dist/server/credential-provider.js.map +1 -1
  357. package/dist/server/index.d.ts +1 -1
  358. package/dist/server/index.d.ts.map +1 -1
  359. package/dist/server/index.js +1 -1
  360. package/dist/server/index.js.map +1 -1
  361. package/dist/server/prompts/framework-core-compact.d.ts +1 -1
  362. package/dist/server/prompts/framework-core-compact.d.ts.map +1 -1
  363. package/dist/server/prompts/framework-core-compact.js +7 -13
  364. package/dist/server/prompts/framework-core-compact.js.map +1 -1
  365. package/dist/server/prompts/framework-core.d.ts +1 -1
  366. package/dist/server/prompts/framework-core.d.ts.map +1 -1
  367. package/dist/server/prompts/framework-core.js +10 -21
  368. package/dist/server/prompts/framework-core.js.map +1 -1
  369. package/dist/server/prompts/index.d.ts +1 -1
  370. package/dist/server/prompts/index.d.ts.map +1 -1
  371. package/dist/server/prompts/index.js +1 -1
  372. package/dist/server/prompts/index.js.map +1 -1
  373. package/dist/server/prompts/shared-rules.d.ts +16 -10
  374. package/dist/server/prompts/shared-rules.d.ts.map +1 -1
  375. package/dist/server/prompts/shared-rules.js +19 -10
  376. package/dist/server/prompts/shared-rules.js.map +1 -1
  377. package/dist/server/ssr-handler.d.ts +1 -1
  378. package/dist/server/ssr-handler.d.ts.map +1 -1
  379. package/dist/server/ssr-handler.js +10 -3
  380. package/dist/server/ssr-handler.js.map +1 -1
  381. package/dist/server/transcribe-voice.d.ts +1 -1
  382. package/dist/settings/user-settings.d.ts.map +1 -1
  383. package/dist/settings/user-settings.js +13 -1
  384. package/dist/settings/user-settings.js.map +1 -1
  385. package/dist/shared/cache-control.d.ts +52 -0
  386. package/dist/shared/cache-control.d.ts.map +1 -1
  387. package/dist/shared/cache-control.js +107 -0
  388. package/dist/shared/cache-control.js.map +1 -1
  389. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  390. package/dist/templates/chat/_gitignore +1 -0
  391. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  392. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  393. package/dist/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
  394. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  395. package/dist/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
  396. package/dist/vite/agents-bundle-plugin.d.ts.map +1 -1
  397. package/dist/vite/agents-bundle-plugin.js +8 -7
  398. package/dist/vite/agents-bundle-plugin.js.map +1 -1
  399. package/dist/vite/client.d.ts.map +1 -1
  400. package/dist/vite/client.js +2 -0
  401. package/dist/vite/client.js.map +1 -1
  402. package/docs/content/actions.mdx +2 -2
  403. package/docs/content/agent-surfaces.mdx +1 -1
  404. package/docs/content/authentication.mdx +2 -0
  405. package/docs/content/deployment.mdx +36 -0
  406. package/docs/content/getting-started.mdx +477 -115
  407. package/docs/content/http-api.mdx +266 -0
  408. package/docs/content/syncing-template-changes.mdx +159 -0
  409. package/package.json +4 -3
  410. package/src/a2a/activity.ts +38 -27
  411. package/src/agent/engine/builder-engine.ts +35 -4
  412. package/src/agent/run-manager.ts +20 -1
  413. package/src/agent/run-store.ts +4 -1
  414. package/src/agent/types.ts +28 -8
  415. package/src/chat-threads/store.ts +45 -0
  416. package/src/checkpoints/index.ts +2 -0
  417. package/src/checkpoints/route-match.ts +13 -0
  418. package/src/cli/create.ts +105 -17
  419. package/src/cli/index.ts +20 -0
  420. package/src/cli/template-baseline.ts +410 -0
  421. package/src/cli/template-sync.ts +1004 -0
  422. package/src/cli/templates-meta.ts +1 -0
  423. package/src/client/AssistantChat.tsx +38 -12
  424. package/src/client/NewWorkspaceAppFlow.tsx +75 -10
  425. package/src/client/chat/message-components.tsx +127 -66
  426. package/src/client/chat/tool-call-display.tsx +29 -5
  427. package/src/client/error-format.ts +18 -0
  428. package/src/client/org/OrgSwitcher.tsx +30 -8
  429. package/src/client/org/TeamPage.tsx +7 -6
  430. package/src/client/sse-event-processor.ts +3 -0
  431. package/src/data-widgets/index.ts +41 -0
  432. package/src/deploy/build.ts +11 -9
  433. package/src/integrations/webhook-handler.ts +63 -9
  434. package/src/org/auto-join-domain.ts +4 -3
  435. package/src/org/context.ts +108 -39
  436. package/src/org/index.ts +5 -0
  437. package/src/org/service-identity.ts +60 -0
  438. package/src/provider-api/index.ts +22 -1
  439. package/src/scripts/docs/search.ts +12 -1
  440. package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +25 -36
  441. package/src/server/agent-chat/context-tools.ts +9 -4
  442. package/src/server/agent-chat/framework-prompts.ts +38 -66
  443. package/src/server/agent-chat-plugin.ts +17 -10
  444. package/src/server/agents-bundle.ts +84 -5
  445. package/src/server/auth.ts +4 -3
  446. package/src/server/builder-browser.ts +47 -19
  447. package/src/server/core-routes-plugin.ts +2 -2
  448. package/src/server/credential-provider.ts +209 -68
  449. package/src/server/index.ts +3 -0
  450. package/src/server/prompts/framework-core-compact.ts +6 -13
  451. package/src/server/prompts/framework-core.ts +9 -21
  452. package/src/server/prompts/index.ts +0 -1
  453. package/src/server/prompts/shared-rules.ts +19 -11
  454. package/src/server/ssr-handler.ts +13 -2
  455. package/src/settings/user-settings.ts +13 -1
  456. package/src/shared/cache-control.ts +141 -0
  457. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  458. package/src/templates/chat/_gitignore +1 -0
  459. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  460. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  461. package/src/templates/workspace-core/.agents/skills/performance/SKILL.md +19 -0
  462. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +24 -2
  463. package/src/templates/workspace-core/.agents/skills/visual-answer/SKILL.md +1 -0
  464. package/src/vite/agents-bundle-plugin.ts +7 -6
  465. package/src/vite/client.ts +5 -0
@@ -0,0 +1,642 @@
1
+ // AUTO-GENERATED by bridge/codegen.ts — do not edit manually.
2
+ // Run: pnpm exec tsx app/components/design/bridge/codegen.ts
3
+
4
+ /** Compiled IIFE string for hit-test.bridge.ts — inject into an iframe via srcdoc or a <script> tag. */
5
+ export const hitTestBridgeScript: string = `"use strict";
6
+ (() => {
7
+ // app/components/design/bridge/hit-test.bridge.ts
8
+ (function() {
9
+ var insertionGuide = null;
10
+ function ensureInsertionGuide() {
11
+ if (insertionGuide && document.body.contains(insertionGuide)) {
12
+ return insertionGuide;
13
+ }
14
+ insertionGuide = document.createElement("div");
15
+ insertionGuide.setAttribute("data-agent-native-hit-test-preview", "");
16
+ insertionGuide.setAttribute("data-agent-native-edit-overlay", "drop-guide");
17
+ insertionGuide.style.cssText = "position:fixed;pointer-events:none;z-index:99995;display:none;box-sizing:border-box;";
18
+ document.body.appendChild(insertionGuide);
19
+ return insertionGuide;
20
+ }
21
+ function hideInsertionGuide() {
22
+ if (insertionGuide) insertionGuide.style.display = "none";
23
+ }
24
+ var BRIDGE_CONTAINER_TAGS = [
25
+ "div",
26
+ "section",
27
+ "main",
28
+ "header",
29
+ "footer",
30
+ "nav",
31
+ "article",
32
+ "aside",
33
+ "form",
34
+ "ul",
35
+ "ol",
36
+ "figure",
37
+ "fieldset",
38
+ "details",
39
+ "dialog",
40
+ "blockquote",
41
+ "table",
42
+ "tbody",
43
+ "thead",
44
+ "tr"
45
+ ];
46
+ var BRIDGE_LEAF_TAGS = [
47
+ "img",
48
+ "video",
49
+ "picture",
50
+ "audio",
51
+ "canvas",
52
+ "svg",
53
+ "path",
54
+ "input",
55
+ "textarea",
56
+ "select",
57
+ "br",
58
+ "hr",
59
+ "iframe"
60
+ ];
61
+ var BRIDGE_TEXT_TAGS = [
62
+ "p",
63
+ "h1",
64
+ "h2",
65
+ "h3",
66
+ "h4",
67
+ "h5",
68
+ "h6",
69
+ "span",
70
+ "a",
71
+ "strong",
72
+ "em",
73
+ "label",
74
+ "li"
75
+ ];
76
+ var BRIDGE_INTERACTIVE_LEAF_TAGS = ["button", "summary"];
77
+ function isOverlayElement(el) {
78
+ return Boolean(
79
+ el && el.closest && el.closest("[data-agent-native-edit-overlay]")
80
+ );
81
+ }
82
+ function isLayerInteractionBlocked(el) {
83
+ if (!el) return false;
84
+ if (el.closest && el.closest(
85
+ '[data-agent-native-locked="true"],[data-agent-native-hidden="true"]'
86
+ ))
87
+ return true;
88
+ return false;
89
+ }
90
+ function hasOnlyLeafContent(el) {
91
+ var children = el.children;
92
+ if (!children.length) return true;
93
+ for (var i = 0; i < children.length; i += 1) {
94
+ var child = children[i];
95
+ var childTag = (child.tagName || "").toLowerCase();
96
+ if (BRIDGE_LEAF_TAGS.indexOf(childTag) === -1 && BRIDGE_TEXT_TAGS.indexOf(childTag) === -1 && BRIDGE_INTERACTIVE_LEAF_TAGS.indexOf(childTag) === -1) {
97
+ return false;
98
+ }
99
+ if (child.children.length && !hasOnlyLeafContent(child)) return false;
100
+ }
101
+ return true;
102
+ }
103
+ function isContainerDropTarget(el) {
104
+ if (!el || el === document.documentElement) return false;
105
+ if (isOverlayElement(el) || isLayerInteractionBlocked(el)) return false;
106
+ if (el === document.body) return true;
107
+ var tag = (el.tagName || "").toLowerCase();
108
+ if (BRIDGE_LEAF_TAGS.indexOf(tag) !== -1 || BRIDGE_TEXT_TAGS.indexOf(tag) !== -1)
109
+ return false;
110
+ if (BRIDGE_INTERACTIVE_LEAF_TAGS.indexOf(tag) !== -1 && hasOnlyLeafContent(el)) {
111
+ return false;
112
+ }
113
+ var cs = window.getComputedStyle(el);
114
+ if (cs.display === "flex" || cs.display === "inline-flex" || cs.display === "grid" || cs.display === "inline-grid")
115
+ return true;
116
+ return BRIDGE_CONTAINER_TAGS.indexOf(tag) !== -1;
117
+ }
118
+ function elementFromEditorPoint(clientX, clientY) {
119
+ var targets = document.elementsFromPoint ? document.elementsFromPoint(clientX, clientY) : [document.elementFromPoint(clientX, clientY)];
120
+ for (var i = 0; i < targets.length; i += 1) {
121
+ var target = targets[i];
122
+ if (!target || target.nodeType !== 1) continue;
123
+ if (isOverlayElement(target)) continue;
124
+ if (isLayerInteractionBlocked(target)) return null;
125
+ return target;
126
+ }
127
+ return null;
128
+ }
129
+ function parentFlowAxis(parent) {
130
+ var cs = window.getComputedStyle(parent);
131
+ if (cs.display === "flex" || cs.display === "inline-flex") {
132
+ var isRow = cs.flexDirection && cs.flexDirection.indexOf("row") === 0;
133
+ var wraps = cs.flexWrap === "wrap" || cs.flexWrap === "wrap-reverse";
134
+ if (isRow && !wraps) return "x";
135
+ return "y";
136
+ }
137
+ if (cs.display === "grid" || cs.display === "inline-grid") {
138
+ var cols = (cs.gridTemplateColumns || "").split(" ").filter(Boolean).length;
139
+ return cols > 1 ? "x" : "y";
140
+ }
141
+ return "y";
142
+ }
143
+ function isAutoLayoutElement(el) {
144
+ if (!el) return false;
145
+ var cs = window.getComputedStyle(el);
146
+ return cs.display === "flex" || cs.display === "inline-flex" || cs.display === "grid" || cs.display === "inline-grid";
147
+ }
148
+ function isAbsolutePrimitiveContainer(el) {
149
+ if (!el || (el.tagName || "").toLowerCase() !== "div") return false;
150
+ var primitive = (el.getAttribute("data-an-primitive") || el.getAttribute("data-agent-native-primitive") || "").toLowerCase();
151
+ if (primitive !== "rectangle" && primitive !== "rect" && primitive !== "frame")
152
+ return false;
153
+ var cs = window.getComputedStyle(el);
154
+ return cs.position === "absolute" || cs.position === "fixed";
155
+ }
156
+ function absolutePrimitiveContainerTargetForPoint(clientX, clientY) {
157
+ var hits = document.elementsFromPoint ? document.elementsFromPoint(clientX, clientY) : [document.elementFromPoint(clientX, clientY)];
158
+ var seen = [];
159
+ for (var i = 0; i < hits.length; i += 1) {
160
+ var cursor = hits[i];
161
+ var candidate = null;
162
+ while (cursor && cursor !== document.body) {
163
+ if (isAbsolutePrimitiveContainer(cursor)) {
164
+ candidate = cursor;
165
+ break;
166
+ }
167
+ cursor = cursor.parentElement;
168
+ }
169
+ if (!candidate || seen.indexOf(candidate) !== -1) continue;
170
+ seen.push(candidate);
171
+ if (isOverlayElement(candidate) || isLayerInteractionBlocked(candidate)) {
172
+ continue;
173
+ }
174
+ return {
175
+ anchor: candidate,
176
+ placement: "inside",
177
+ axis: "y",
178
+ dropMode: "absolute-container"
179
+ };
180
+ }
181
+ return null;
182
+ }
183
+ function edgePlacementForRect(rect, axis, clientX, clientY) {
184
+ var size = axis === "x" ? rect.width : rect.height;
185
+ if (!size) return null;
186
+ var offset = axis === "x" ? clientX - rect.left : clientY - rect.top;
187
+ if (offset < size * 0.22) return "before";
188
+ if (offset > size * 0.78) return "after";
189
+ return null;
190
+ }
191
+ function getNodeId(el) {
192
+ if (!el) return "";
193
+ return el.getAttribute("data-agent-native-node-id") || el.getAttribute("data-code-layer-id") || el.getAttribute("data-layer-id") || el.getAttribute("data-builder-id") || el.id || "";
194
+ }
195
+ function isTemplateCloneElement(el) {
196
+ var node = el;
197
+ while (node && node !== document.documentElement) {
198
+ if (getNodeId(node)) return false;
199
+ var parent = node.parentElement;
200
+ if (!parent) return false;
201
+ var siblings = parent.children;
202
+ for (var i = 0; i < siblings.length; i += 1) {
203
+ var sib = siblings[i];
204
+ if (sib !== node && sib.tagName && sib.tagName.toLowerCase() === "template" && sib.hasAttribute("x-for")) {
205
+ return true;
206
+ }
207
+ }
208
+ node = parent;
209
+ }
210
+ return false;
211
+ }
212
+ function draggableElementChildren(parent) {
213
+ return Array.prototype.slice.call(parent.children).filter(function(child) {
214
+ return child.nodeType === 1 && !isOverlayElement(child) && !isLayerInteractionBlocked(child) && !isTemplateCloneElement(child);
215
+ });
216
+ }
217
+ function freshRuntimeNodeId(prefix) {
218
+ var random = "";
219
+ try {
220
+ if (window.crypto && window.crypto.getRandomValues) {
221
+ var bytes = new Uint32Array(2);
222
+ window.crypto.getRandomValues(bytes);
223
+ random = Array.prototype.map.call(bytes, function(part) {
224
+ return part.toString(36);
225
+ }).join("");
226
+ }
227
+ } catch (_err) {
228
+ }
229
+ if (!random)
230
+ random = Date.now().toString(36) + Math.random().toString(36).slice(2, 8);
231
+ return "an-" + String(prefix || "pending") + "-" + random;
232
+ }
233
+ function getOrMintPendingNodeId(el) {
234
+ if (!el || !el.getAttribute || !el.setAttribute) return "";
235
+ if (isTemplateCloneElement(el)) return "";
236
+ var existing = el.getAttribute("data-an-pending-node-id");
237
+ if (existing) return existing;
238
+ var minted = freshRuntimeNodeId("pending");
239
+ try {
240
+ el.setAttribute("data-an-pending-node-id", minted);
241
+ } catch (_err) {
242
+ }
243
+ return minted;
244
+ }
245
+ function alpineGeneratedChildrenOf(parent) {
246
+ var generated = [];
247
+ var children = parent.children;
248
+ for (var i = 0; i < children.length; i += 1) {
249
+ var child = children[i];
250
+ if (!child.tagName || child.tagName.toLowerCase() !== "template") {
251
+ continue;
252
+ }
253
+ try {
254
+ if (child._x_currentIfEl) generated.push(child._x_currentIfEl);
255
+ var lookup = child._x_lookup;
256
+ if (lookup) {
257
+ for (var key in lookup) {
258
+ if (Object.prototype.hasOwnProperty.call(lookup, key)) {
259
+ var item = lookup[key];
260
+ if (item) generated.push(item);
261
+ }
262
+ }
263
+ }
264
+ } catch (_err) {
265
+ }
266
+ }
267
+ return generated;
268
+ }
269
+ function isEditorInjectedElement(el) {
270
+ return !!(el.getAttribute && (el.getAttribute("data-agent-native-edit-overlay") !== null || el.getAttribute("data-agent-native-hit-test-preview") !== null));
271
+ }
272
+ function buildSourceEquivalentSelector(el) {
273
+ if (!el || el === document.documentElement || el === document.body) {
274
+ return "";
275
+ }
276
+ var parts = [];
277
+ var node = el;
278
+ while (node && node !== document.body) {
279
+ var parent = node.parentElement;
280
+ if (!parent) return "";
281
+ var generated = alpineGeneratedChildrenOf(parent);
282
+ if (generated.indexOf(node) !== -1) return "";
283
+ if (isEditorInjectedElement(node)) return "";
284
+ var tag = node.tagName ? node.tagName.toLowerCase() : "";
285
+ if (!tag || tag === "template") return "";
286
+ var nth = 0;
287
+ var siblings = parent.children;
288
+ for (var i = 0; i < siblings.length; i += 1) {
289
+ var sib = siblings[i];
290
+ if (!sib.tagName || sib.tagName.toLowerCase() !== tag) continue;
291
+ if (generated.indexOf(sib) !== -1) continue;
292
+ if (isEditorInjectedElement(sib)) continue;
293
+ nth += 1;
294
+ if (sib === node) break;
295
+ }
296
+ if (nth === 0) return "";
297
+ parts.unshift(tag + ":nth-of-type(" + nth + ")");
298
+ node = parent;
299
+ }
300
+ if (!node) return "";
301
+ parts.unshift("body");
302
+ return parts.join(" > ");
303
+ }
304
+ function nearestChildInsertionTarget(container, clientX, clientY) {
305
+ var children = draggableElementChildren(container);
306
+ if (!children.length) return null;
307
+ var axis = parentFlowAxis(container);
308
+ var best = null;
309
+ var bestDistance = Infinity;
310
+ var placement = "after";
311
+ for (var j = 0; j < children.length; j += 1) {
312
+ var rect = children[j].getBoundingClientRect();
313
+ if (rect.width <= 0 || rect.height <= 0) continue;
314
+ var center = axis === "x" ? rect.left + rect.width / 2 : rect.top + rect.height / 2;
315
+ var pointer = axis === "x" ? clientX : clientY;
316
+ var distance = Math.abs(pointer - center);
317
+ if (distance < bestDistance) {
318
+ bestDistance = distance;
319
+ best = children[j];
320
+ placement = pointer < center ? "before" : "after";
321
+ }
322
+ }
323
+ if (!best) return null;
324
+ return {
325
+ anchor: best,
326
+ placement,
327
+ axis,
328
+ dropMode: "flow-insert"
329
+ };
330
+ }
331
+ function resolveHitTarget(clientX, clientY) {
332
+ var hit = elementFromEditorPoint(clientX, clientY);
333
+ if (!hit || hit === document.documentElement) return null;
334
+ var cursor = hit;
335
+ while (cursor && cursor !== document.body) {
336
+ if (isLayerInteractionBlocked(cursor)) return null;
337
+ var parent = cursor.parentElement;
338
+ if (parent && isAutoLayoutElement(parent)) {
339
+ if (isTemplateCloneElement(cursor)) {
340
+ var cloneFallback = nearestChildInsertionTarget(
341
+ parent,
342
+ clientX,
343
+ clientY
344
+ );
345
+ if (cloneFallback) return cloneFallback;
346
+ return {
347
+ anchor: parent,
348
+ placement: "inside",
349
+ axis: parentFlowAxis(parent),
350
+ dropMode: "flow-insert"
351
+ };
352
+ }
353
+ var parentAxis = parentFlowAxis(parent);
354
+ var childRect = cursor.getBoundingClientRect();
355
+ var childCenter = parentAxis === "x" ? childRect.left + childRect.width / 2 : childRect.top + childRect.height / 2;
356
+ var childPointer = parentAxis === "x" ? clientX : clientY;
357
+ return {
358
+ anchor: cursor,
359
+ placement: childPointer < childCenter ? "before" : "after",
360
+ axis: parentAxis,
361
+ dropMode: "flow-insert"
362
+ };
363
+ }
364
+ if (isAutoLayoutElement(cursor) && isContainerDropTarget(cursor)) {
365
+ var containerRect = cursor.getBoundingClientRect();
366
+ var edgeAxis = parent ? parentFlowAxis(parent) : parentFlowAxis(cursor);
367
+ var edgePlacement = edgePlacementForRect(
368
+ containerRect,
369
+ edgeAxis,
370
+ clientX,
371
+ clientY
372
+ );
373
+ if (edgePlacement && parent && isAutoLayoutElement(parent)) {
374
+ return {
375
+ anchor: cursor,
376
+ placement: edgePlacement,
377
+ axis: edgeAxis,
378
+ dropMode: "flow-insert"
379
+ };
380
+ }
381
+ var betweenChildren = nearestChildInsertionTarget(
382
+ cursor,
383
+ clientX,
384
+ clientY
385
+ );
386
+ if (betweenChildren) return betweenChildren;
387
+ return {
388
+ anchor: cursor,
389
+ placement: "inside",
390
+ axis: parentFlowAxis(cursor),
391
+ dropMode: "flow-insert"
392
+ };
393
+ }
394
+ if (isAbsolutePrimitiveContainer(cursor)) {
395
+ return {
396
+ anchor: cursor,
397
+ placement: "inside",
398
+ axis: "y",
399
+ dropMode: "absolute-container"
400
+ };
401
+ }
402
+ cursor = parent;
403
+ }
404
+ return absolutePrimitiveContainerTargetForPoint(clientX, clientY);
405
+ }
406
+ function showInsertionGuideFor(target) {
407
+ if (!target || !target.anchor) {
408
+ hideInsertionGuide();
409
+ return;
410
+ }
411
+ var guide = ensureInsertionGuide();
412
+ var rect = target.anchor.getBoundingClientRect();
413
+ guide.style.display = "block";
414
+ guide.style.background = "var(--design-editor-accent-color)";
415
+ guide.style.border = "0";
416
+ guide.style.borderRadius = "999px";
417
+ guide.style.boxShadow = "0 0 0 1px var(--design-editor-accent-color)";
418
+ if (target.placement === "inside") {
419
+ guide.style.left = rect.left + "px";
420
+ guide.style.top = rect.top + "px";
421
+ guide.style.width = rect.width + "px";
422
+ guide.style.height = rect.height + "px";
423
+ guide.style.background = "color-mix(in srgb, var(--design-editor-accent-color) 14%, transparent)";
424
+ guide.style.border = "2px solid var(--design-editor-accent-color)";
425
+ guide.style.borderRadius = "2px";
426
+ guide.style.boxShadow = "none";
427
+ return;
428
+ }
429
+ if (target.axis === "x") {
430
+ var x = target.placement === "before" ? rect.left : rect.right;
431
+ guide.style.left = x + "px";
432
+ guide.style.top = rect.top + "px";
433
+ guide.style.width = "2px";
434
+ guide.style.height = rect.height + "px";
435
+ } else {
436
+ var y = target.placement === "before" ? rect.top : rect.bottom;
437
+ guide.style.left = rect.left + "px";
438
+ guide.style.top = y + "px";
439
+ guide.style.width = rect.width + "px";
440
+ guide.style.height = "2px";
441
+ }
442
+ }
443
+ function reviewAnchorElementAtPoint(clientX, clientY) {
444
+ var element = elementFromEditorPoint(clientX, clientY);
445
+ if (!element) return null;
446
+ var identifiedAncestor = element.closest(
447
+ "[data-agent-native-node-id],[data-code-layer-id],[data-layer-id],[data-builder-id],[id]"
448
+ );
449
+ if (identifiedAncestor && identifiedAncestor !== document.body && identifiedAncestor !== document.documentElement) {
450
+ return identifiedAncestor;
451
+ }
452
+ if (element === document.body || element === document.documentElement) {
453
+ return null;
454
+ }
455
+ return element;
456
+ }
457
+ function reviewNodeElements(nodeIds) {
458
+ var wanted = {};
459
+ var found = {};
460
+ for (var index = 0; index < nodeIds.length; index += 1) {
461
+ var nodeId = nodeIds[index];
462
+ if (nodeId) wanted[nodeId] = true;
463
+ }
464
+ var candidates = document.querySelectorAll(
465
+ "[data-agent-native-node-id],[data-code-layer-id],[data-layer-id],[data-builder-id],[id]"
466
+ );
467
+ for (var candidateIndex = 0; candidateIndex < candidates.length; candidateIndex += 1) {
468
+ var candidate = candidates[candidateIndex];
469
+ var candidateId = getNodeId(candidate);
470
+ if (candidateId && wanted[candidateId] && !found[candidateId]) {
471
+ found[candidateId] = candidate;
472
+ }
473
+ }
474
+ return found;
475
+ }
476
+ function postReviewLayout() {
477
+ try {
478
+ window.parent.postMessage(
479
+ { type: "agent-native:review-layout" },
480
+ "*"
481
+ );
482
+ } catch (_err) {
483
+ }
484
+ }
485
+ var reviewLayoutFrame = 0;
486
+ function scheduleReviewLayout() {
487
+ if (reviewLayoutFrame) return;
488
+ reviewLayoutFrame = window.requestAnimationFrame(function() {
489
+ reviewLayoutFrame = 0;
490
+ postReviewLayout();
491
+ });
492
+ }
493
+ window.addEventListener("scroll", scheduleReviewLayout, true);
494
+ window.addEventListener("resize", scheduleReviewLayout);
495
+ if (document.readyState === "loading") {
496
+ document.addEventListener("DOMContentLoaded", scheduleReviewLayout, {
497
+ once: true
498
+ });
499
+ } else {
500
+ scheduleReviewLayout();
501
+ }
502
+ window.addEventListener("message", function(e) {
503
+ if (e.source !== window.parent) return;
504
+ if (!e.data) return;
505
+ if (e.data.type === "agent-native:review-anchor-at-point") {
506
+ var reviewPointCorrelationId = e.data.correlationId;
507
+ var reviewPointX = Number(e.data.x);
508
+ var reviewPointY = Number(e.data.y);
509
+ if (!reviewPointCorrelationId) return;
510
+ var reviewPointElement = reviewAnchorElementAtPoint(
511
+ reviewPointX,
512
+ reviewPointY
513
+ );
514
+ var reviewPointNodeId = reviewPointElement ? getNodeId(reviewPointElement) : "";
515
+ var reviewPointSelector = reviewPointElement && !reviewPointNodeId ? buildSourceEquivalentSelector(reviewPointElement) : "";
516
+ try {
517
+ window.parent.postMessage(
518
+ {
519
+ type: "agent-native:review-anchor-at-point-result",
520
+ correlationId: reviewPointCorrelationId,
521
+ nodeId: reviewPointNodeId || void 0,
522
+ targetSelector: reviewPointSelector || void 0,
523
+ layerName: reviewPointElement?.getAttribute(
524
+ "data-agent-native-layer-name"
525
+ ) || void 0,
526
+ tagName: reviewPointElement?.tagName?.toLowerCase() || void 0
527
+ },
528
+ "*"
529
+ );
530
+ } catch (_err) {
531
+ }
532
+ return;
533
+ }
534
+ if (e.data.type === "agent-native:review-node-rects") {
535
+ var reviewRectsCorrelationId = e.data.correlationId;
536
+ var rawReviewNodeIds = e.data.nodeIds;
537
+ if (!reviewRectsCorrelationId || !Array.isArray(rawReviewNodeIds)) return;
538
+ var reviewNodeIds = rawReviewNodeIds.filter(function(value) {
539
+ return typeof value === "string" && value.length > 0;
540
+ }).slice(0, 500);
541
+ var reviewElements = reviewNodeElements(reviewNodeIds);
542
+ var reviewRects = {};
543
+ for (var reviewIndex = 0; reviewIndex < reviewNodeIds.length; reviewIndex += 1) {
544
+ var reviewNodeId = reviewNodeIds[reviewIndex];
545
+ var reviewElement = reviewElements[reviewNodeId];
546
+ if (!reviewElement) continue;
547
+ var reviewRect = reviewElement.getBoundingClientRect();
548
+ reviewRects[reviewNodeId] = {
549
+ left: reviewRect.left,
550
+ top: reviewRect.top,
551
+ width: reviewRect.width,
552
+ height: reviewRect.height
553
+ };
554
+ }
555
+ try {
556
+ window.parent.postMessage(
557
+ {
558
+ type: "agent-native:review-node-rects-result",
559
+ correlationId: reviewRectsCorrelationId,
560
+ rects: reviewRects,
561
+ viewportWidth: window.innerWidth,
562
+ viewportHeight: window.innerHeight
563
+ },
564
+ "*"
565
+ );
566
+ } catch (_err) {
567
+ }
568
+ return;
569
+ }
570
+ if (e.data.type === "agent-native:review-focus") {
571
+ var reviewFocusCorrelationId = e.data.correlationId;
572
+ var reviewFocusNodeId = String(e.data.nodeId || "");
573
+ if (!reviewFocusCorrelationId || !reviewFocusNodeId) return;
574
+ var reviewFocusElement = reviewNodeElements([reviewFocusNodeId])[reviewFocusNodeId];
575
+ if (reviewFocusElement) {
576
+ reviewFocusElement.scrollIntoView({
577
+ block: "center",
578
+ inline: "center"
579
+ });
580
+ var previousReviewBoxShadow = reviewFocusElement.style.boxShadow;
581
+ reviewFocusElement.style.boxShadow = "0 0 0 2px var(--design-editor-accent-color, #2563eb)";
582
+ window.setTimeout(function() {
583
+ reviewFocusElement.style.boxShadow = previousReviewBoxShadow;
584
+ }, 700);
585
+ }
586
+ try {
587
+ window.parent.postMessage(
588
+ {
589
+ type: "agent-native:review-focus-result",
590
+ correlationId: reviewFocusCorrelationId,
591
+ focused: Boolean(reviewFocusElement)
592
+ },
593
+ "*"
594
+ );
595
+ } catch (_err) {
596
+ }
597
+ return;
598
+ }
599
+ if (e.data.type === "agent-native:hit-test-preview-clear") {
600
+ hideInsertionGuide();
601
+ return;
602
+ }
603
+ if (e.data.type !== "agent-native:hit-test") return;
604
+ var correlationId = e.data.correlationId;
605
+ var x = Number(e.data.x);
606
+ var y = Number(e.data.y);
607
+ if (!correlationId) return;
608
+ var result = resolveHitTarget(x, y);
609
+ if (e.data.preview) showInsertionGuideFor(result);
610
+ var anchorNodeId = result ? getNodeId(result.anchor) : "";
611
+ var pendingNodeId = result && !anchorNodeId ? getOrMintPendingNodeId(result.anchor) : "";
612
+ var anchorSelector = pendingNodeId ? buildSourceEquivalentSelector(result ? result.anchor : null) : "";
613
+ var placement = result ? result.placement : "inside";
614
+ var axis = result ? result.axis : "y";
615
+ var dropMode = result ? result.dropMode : "flow-insert";
616
+ var anchorRect = result ? result.anchor.getBoundingClientRect() : null;
617
+ try {
618
+ window.parent.postMessage(
619
+ {
620
+ type: "agent-native:hit-test-result",
621
+ correlationId,
622
+ anchorNodeId,
623
+ pendingNodeId: pendingNodeId || void 0,
624
+ anchorSelector: anchorSelector || void 0,
625
+ placement,
626
+ axis,
627
+ dropMode,
628
+ anchorRect: anchorRect ? {
629
+ left: anchorRect.left,
630
+ top: anchorRect.top,
631
+ width: anchorRect.width,
632
+ height: anchorRect.height
633
+ } : void 0
634
+ },
635
+ "*"
636
+ );
637
+ } catch (_err) {
638
+ }
639
+ });
640
+ })();
641
+ })();
642
+ `;