@agent-native/core 0.100.2 → 0.101.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +65 -0
  3. package/corpus/core/docs/content/locales/ar-SA/pr-visual-recap.mdx +48 -30
  4. package/corpus/core/docs/content/locales/ar-SA/template-plan.mdx +7 -0
  5. package/corpus/core/docs/content/locales/de-DE/pr-visual-recap.mdx +48 -30
  6. package/corpus/core/docs/content/locales/de-DE/template-plan.mdx +7 -0
  7. package/corpus/core/docs/content/locales/es-ES/pr-visual-recap.mdx +48 -30
  8. package/corpus/core/docs/content/locales/es-ES/template-plan.mdx +14 -0
  9. package/corpus/core/docs/content/locales/fr-FR/pr-visual-recap.mdx +48 -30
  10. package/corpus/core/docs/content/locales/fr-FR/template-plan.mdx +7 -0
  11. package/corpus/core/docs/content/locales/hi-IN/pr-visual-recap.mdx +48 -30
  12. package/corpus/core/docs/content/locales/hi-IN/template-plan.mdx +7 -0
  13. package/corpus/core/docs/content/locales/ja-JP/pr-visual-recap.mdx +48 -30
  14. package/corpus/core/docs/content/locales/ja-JP/template-plan.mdx +7 -0
  15. package/corpus/core/docs/content/locales/ko-KR/pr-visual-recap.mdx +48 -30
  16. package/corpus/core/docs/content/locales/ko-KR/template-plan.mdx +7 -0
  17. package/corpus/core/docs/content/locales/pt-BR/pr-visual-recap.mdx +48 -30
  18. package/corpus/core/docs/content/locales/pt-BR/template-plan.mdx +14 -0
  19. package/corpus/core/docs/content/locales/zh-CN/pr-visual-recap.mdx +48 -30
  20. package/corpus/core/docs/content/locales/zh-CN/template-plan.mdx +7 -0
  21. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.mdx +48 -30
  22. package/corpus/core/docs/content/locales/zh-TW/template-plan.mdx +7 -0
  23. package/corpus/core/docs/content/pr-visual-recap.mdx +50 -32
  24. package/corpus/core/docs/content/template-plan.mdx +14 -0
  25. package/corpus/core/docs/content/toolkit-comments-review.mdx +16 -2
  26. package/corpus/core/package.json +4 -1
  27. package/corpus/core/src/a2a/index.ts +2 -1
  28. package/corpus/core/src/a2a/server.ts +34 -9
  29. package/corpus/core/src/agent/production-agent.ts +56 -10
  30. package/corpus/core/src/cli/create.ts +47 -19
  31. package/corpus/core/src/cli/pr-visual-recap-workflow.ts +2 -3
  32. package/corpus/core/src/cli/recap.ts +3 -4932
  33. package/corpus/core/src/cli/skills-content/visual-plan-skill.ts +6 -4
  34. package/corpus/core/src/cli/skills-content/visual-recap-skill.ts +7 -1
  35. package/corpus/core/src/client/AgentPanel.tsx +19 -17
  36. package/corpus/core/src/client/analytics.ts +8 -1
  37. package/corpus/core/src/client/chat/markdown-renderer.tsx +54 -8
  38. package/corpus/core/src/client/chat/message-components.tsx +8 -2
  39. package/corpus/core/src/client/clipboard.ts +28 -1
  40. package/corpus/core/src/client/guided-questions.tsx +4 -0
  41. package/corpus/core/src/client/i18n.tsx +2 -1
  42. package/corpus/core/src/client/index.ts +4 -0
  43. package/corpus/core/src/client/review/ReviewCommentComposer.tsx +108 -0
  44. package/corpus/core/src/client/review/ReviewThreadPanel.tsx +482 -150
  45. package/corpus/core/src/client/review/index.ts +8 -0
  46. package/corpus/core/src/client/review/use-review.ts +35 -1
  47. package/corpus/core/src/client/use-agent-chat-context.ts +3 -2
  48. package/corpus/core/src/review/actions/create-review-comment.ts +2 -1
  49. package/corpus/core/src/review/actions/get-review-feedback.ts +6 -11
  50. package/corpus/core/src/review/actions/list-review-comments.ts +38 -4
  51. package/corpus/core/src/review/actions/reply-review-comment.ts +33 -22
  52. package/corpus/core/src/review/actions/resolve-review-thread.ts +29 -2
  53. package/corpus/core/src/review/actions/send-review-thread-to-agent.ts +62 -0
  54. package/corpus/core/src/review/identity.ts +101 -0
  55. package/corpus/core/src/review/index.ts +14 -0
  56. package/corpus/core/src/review/store.ts +315 -8
  57. package/corpus/core/src/review/types.ts +4 -0
  58. package/corpus/core/src/server/action-discovery.ts +4 -0
  59. package/corpus/core/src/server/action-routes.ts +125 -4
  60. package/corpus/core/src/server/agent-chat/plugin-options.ts +16 -0
  61. package/corpus/core/src/server/agent-chat-plugin.ts +1 -0
  62. package/corpus/core/src/server/index.ts +8 -0
  63. package/corpus/core/src/vite/action-types-plugin.ts +4 -0
  64. package/corpus/templates/analytics/changelog/2026-07-14-daily-dashboard-email-captures-authenticate-with-a-sessi.md +6 -0
  65. package/corpus/templates/analytics/server/lib/dashboard-report.ts +156 -3
  66. package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +402 -142
  67. package/corpus/templates/assets/app/i18n/zh-TW.ts +1 -0
  68. package/corpus/templates/assets/app/i18n-data.ts +1 -0
  69. package/corpus/templates/assets/app/routes/library.tsx +187 -48
  70. package/corpus/templates/assets/changelog/2026-07-13-merged-the-candidates-panel-into-the-library-as-a-drafts-tab.md +6 -0
  71. package/corpus/templates/chat/app/lib/agent-page.tsx +40 -0
  72. package/corpus/templates/chat/app/routes/agent.tsx +5 -3
  73. package/corpus/templates/chat/changelog/2026-07-14-fixed-chat-template-startup-with-older-core-versions.md +6 -0
  74. package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +5 -0
  75. package/corpus/templates/clips/AGENTS.md +4 -0
  76. package/corpus/templates/clips/actions/get-feature-flags.ts +30 -0
  77. package/corpus/templates/clips/actions/lib/transcript-preview.ts +48 -0
  78. package/corpus/templates/clips/actions/request-transcript.ts +41 -1
  79. package/corpus/templates/clips/actions/view-screen.ts +5 -9
  80. package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
  81. package/corpus/templates/clips/app/components/player/video-player.tsx +39 -1
  82. package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +6 -12
  83. package/corpus/templates/clips/app/hooks/use-mse-video-source.ts +146 -0
  84. package/corpus/templates/clips/app/lib/capture-install-options.ts +21 -0
  85. package/corpus/templates/clips/app/lib/fmp4.ts +271 -0
  86. package/corpus/templates/clips/app/lib/mse-video-loader.ts +585 -0
  87. package/corpus/templates/clips/app/routes/_app.dictate.tsx +0 -4
  88. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +5 -13
  89. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +2 -37
  90. package/corpus/templates/clips/app/routes/download.tsx +3 -2
  91. package/corpus/templates/clips/changelog/2026-07-10-shared-clips-now-start-playing-instantly-instead-of-showing-.md +6 -0
  92. package/corpus/templates/clips/changelog/2026-07-14-clips-now-distinguishes-transcript-previews-from-incomplete-.md +6 -0
  93. package/corpus/templates/clips/changelog/2026-07-14-desktop-app-prompts-stay-hidden-after-you-download-the-insta.md +6 -0
  94. package/corpus/templates/clips/desktop/src/lib/recorder.ts +5 -0
  95. package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +10 -0
  96. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +4 -0
  97. package/corpus/templates/clips/desktop/src-tauri/src/native_screen/custom_capture.rs +2518 -0
  98. package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +353 -0
  99. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +558 -67
  100. package/corpus/templates/clips/desktop/src-tauri/src/recording_indicator.rs +11 -1
  101. package/corpus/templates/clips/desktop/src-tauri/src/remote_flags.rs +188 -0
  102. package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +1 -1
  103. package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +1 -0
  104. package/corpus/templates/clips/server/plugins/agent-chat.ts +5 -0
  105. package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +5 -1
  106. package/corpus/templates/clips/shared/feature-flags.ts +41 -0
  107. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +3 -0
  108. package/corpus/templates/design/.agents/skills/design-review-feedback/SKILL.md +42 -0
  109. package/corpus/templates/design/AGENTS.md +6 -0
  110. package/corpus/templates/design/README.md +1 -0
  111. package/corpus/templates/design/actions/navigate.ts +4 -4
  112. package/corpus/templates/design/actions/view-screen.ts +116 -2
  113. package/corpus/templates/design/agent-native.app-skill.json +5 -0
  114. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +52 -59
  115. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +13 -9
  116. package/corpus/templates/design/app/components/design/EditPanel.tsx +79 -11
  117. package/corpus/templates/design/app/components/design/LayersPanel.tsx +78 -65
  118. package/corpus/templates/design/app/components/design/ReviewCommentsPanel.tsx +161 -0
  119. package/corpus/templates/design/app/components/design/ReviewStatusControl.tsx +96 -0
  120. package/corpus/templates/design/app/components/design/bridge/hit-test.bridge.ts +166 -0
  121. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -0
  122. package/corpus/templates/design/app/components/visual-editor/ReviewCanvasPins.tsx +1077 -0
  123. package/corpus/templates/design/app/components/visual-editor/index.ts +1 -0
  124. package/corpus/templates/design/app/components/visual-editor/review-canvas-state.ts +42 -0
  125. package/corpus/templates/design/app/hooks/use-design-systems.ts +2 -2
  126. package/corpus/templates/design/app/hooks/use-navigation-state.ts +9 -6
  127. package/corpus/templates/design/app/hooks/use-question-flow.ts +7 -1
  128. package/corpus/templates/design/app/i18n/ar-SA.ts +56 -1
  129. package/corpus/templates/design/app/i18n/de-DE.ts +57 -1
  130. package/corpus/templates/design/app/i18n/en-US.ts +56 -1
  131. package/corpus/templates/design/app/i18n/es-ES.ts +56 -1
  132. package/corpus/templates/design/app/i18n/fr-FR.ts +57 -1
  133. package/corpus/templates/design/app/i18n/hi-IN.ts +56 -1
  134. package/corpus/templates/design/app/i18n/ja-JP.ts +56 -1
  135. package/corpus/templates/design/app/i18n/ko-KR.ts +56 -1
  136. package/corpus/templates/design/app/i18n/pt-BR.ts +57 -1
  137. package/corpus/templates/design/app/i18n/zh-CN.ts +56 -1
  138. package/corpus/templates/design/app/i18n/zh-TW.ts +51 -0
  139. package/corpus/templates/design/app/pages/Present.tsx +172 -14
  140. package/corpus/templates/design/app/pages/design-editor/overview-camera.ts +23 -0
  141. package/corpus/templates/design/app/pages/design-editor/tool-state.ts +10 -0
  142. package/corpus/templates/design/app/pages/present-review-state.ts +18 -0
  143. package/corpus/templates/design/app/public-routes.ts +8 -0
  144. package/corpus/templates/design/app/root.tsx +7 -6
  145. package/corpus/templates/design/changelog/2026-07-13-dragged-design-assets-now-appear-at-the-visible-drop-locatio.md +6 -0
  146. package/corpus/templates/design/changelog/2026-07-13-reviewers-can-pin-comments-on-shared-designs-and-apply-verif.md +6 -0
  147. package/corpus/templates/design/server/plugins/agent-chat.ts +10 -0
  148. package/corpus/templates/design/server/plugins/auth.ts +7 -5
  149. package/corpus/templates/design/server/plugins/review.ts +9 -0
  150. package/corpus/templates/design/shared/review-anchor.ts +83 -0
  151. package/corpus/templates/design/shared/review-summary.ts +25 -0
  152. package/corpus/templates/forms/.agents/skills/form-publishing/SKILL.md +2 -0
  153. package/corpus/templates/forms/AGENTS.md +4 -0
  154. package/corpus/templates/forms/actions/create-form.ts +2 -1
  155. package/corpus/templates/forms/actions/update-form.ts +5 -2
  156. package/corpus/templates/forms/app/i18n/ar-SA.ts +3 -0
  157. package/corpus/templates/forms/app/i18n/de-DE.ts +3 -0
  158. package/corpus/templates/forms/app/i18n/en-US.ts +3 -0
  159. package/corpus/templates/forms/app/i18n/es-ES.ts +3 -0
  160. package/corpus/templates/forms/app/i18n/fr-FR.ts +3 -0
  161. package/corpus/templates/forms/app/i18n/hi-IN.ts +3 -0
  162. package/corpus/templates/forms/app/i18n/ja-JP.ts +3 -0
  163. package/corpus/templates/forms/app/i18n/ko-KR.ts +3 -0
  164. package/corpus/templates/forms/app/i18n/pt-BR.ts +3 -0
  165. package/corpus/templates/forms/app/i18n/zh-CN.ts +3 -0
  166. package/corpus/templates/forms/app/i18n/zh-TW.ts +3 -0
  167. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +19 -0
  168. package/corpus/templates/forms/changelog/2026-07-14-fixed-the-ask-forms-loading-input-appearing-above-the-welcom.md +6 -0
  169. package/corpus/templates/forms/changelog/2026-07-14-form-social-previews-now-show-the-form-title-description-and.md +6 -0
  170. package/corpus/templates/forms/changelog/2026-07-14-forms-can-email-the-form-owner-when-new-responses-arrive.md +6 -0
  171. package/corpus/templates/forms/server/handlers/submissions.ts +17 -0
  172. package/corpus/templates/forms/server/lib/form-og-image.ts +64 -6
  173. package/corpus/templates/forms/server/lib/public-form-ssr.ts +6 -2
  174. package/corpus/templates/forms/server/lib/response-email.ts +65 -0
  175. package/corpus/templates/forms/server/plugins/agent-chat.ts +1 -0
  176. package/corpus/templates/forms/server/routes/api/forms/og/[...slug]/og.png.get.ts +184 -0
  177. package/corpus/templates/forms/shared/types.ts +2 -0
  178. package/corpus/templates/plan/.agents/skills/visual-plan/SKILL.md +6 -4
  179. package/corpus/templates/plan/.agents/skills/visual-recap/SKILL.md +7 -1
  180. package/dist/a2a/index.d.ts +2 -1
  181. package/dist/a2a/index.d.ts.map +1 -1
  182. package/dist/a2a/index.js +1 -1
  183. package/dist/a2a/index.js.map +1 -1
  184. package/dist/a2a/server.d.ts +25 -0
  185. package/dist/a2a/server.d.ts.map +1 -1
  186. package/dist/a2a/server.js +30 -6
  187. package/dist/a2a/server.js.map +1 -1
  188. package/dist/agent/production-agent.d.ts +2 -0
  189. package/dist/agent/production-agent.d.ts.map +1 -1
  190. package/dist/agent/production-agent.js +37 -12
  191. package/dist/agent/production-agent.js.map +1 -1
  192. package/dist/cli/create.d.ts +5 -3
  193. package/dist/cli/create.d.ts.map +1 -1
  194. package/dist/cli/create.js +44 -19
  195. package/dist/cli/create.js.map +1 -1
  196. package/dist/cli/pr-visual-recap-workflow.d.ts +2 -2
  197. package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
  198. package/dist/cli/pr-visual-recap-workflow.js +2 -2
  199. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  200. package/dist/cli/recap.d.ts +3 -562
  201. package/dist/cli/recap.d.ts.map +1 -1
  202. package/dist/cli/recap.js +3 -3875
  203. package/dist/cli/recap.js.map +1 -1
  204. package/dist/cli/skills-content/visual-plan-skill.d.ts +1 -1
  205. package/dist/cli/skills-content/visual-plan-skill.d.ts.map +1 -1
  206. package/dist/cli/skills-content/visual-plan-skill.js +6 -4
  207. package/dist/cli/skills-content/visual-plan-skill.js.map +1 -1
  208. package/dist/cli/skills-content/visual-recap-skill.d.ts +1 -1
  209. package/dist/cli/skills-content/visual-recap-skill.d.ts.map +1 -1
  210. package/dist/cli/skills-content/visual-recap-skill.js +7 -1
  211. package/dist/cli/skills-content/visual-recap-skill.js.map +1 -1
  212. package/dist/client/AgentPanel.d.ts.map +1 -1
  213. package/dist/client/AgentPanel.js +3 -3
  214. package/dist/client/AgentPanel.js.map +1 -1
  215. package/dist/client/analytics.d.ts +5 -0
  216. package/dist/client/analytics.d.ts.map +1 -1
  217. package/dist/client/analytics.js +3 -1
  218. package/dist/client/analytics.js.map +1 -1
  219. package/dist/client/chat/markdown-renderer.d.ts +1 -0
  220. package/dist/client/chat/markdown-renderer.d.ts.map +1 -1
  221. package/dist/client/chat/markdown-renderer.js +36 -1
  222. package/dist/client/chat/markdown-renderer.js.map +1 -1
  223. package/dist/client/chat/message-components.d.ts.map +1 -1
  224. package/dist/client/chat/message-components.js +5 -2
  225. package/dist/client/chat/message-components.js.map +1 -1
  226. package/dist/client/clipboard.d.ts +3 -1
  227. package/dist/client/clipboard.d.ts.map +1 -1
  228. package/dist/client/clipboard.js +24 -1
  229. package/dist/client/clipboard.js.map +1 -1
  230. package/dist/client/guided-questions.d.ts +3 -1
  231. package/dist/client/guided-questions.d.ts.map +1 -1
  232. package/dist/client/guided-questions.js +2 -1
  233. package/dist/client/guided-questions.js.map +1 -1
  234. package/dist/client/i18n.d.ts.map +1 -1
  235. package/dist/client/i18n.js +3 -1
  236. package/dist/client/i18n.js.map +1 -1
  237. package/dist/client/index.d.ts +1 -1
  238. package/dist/client/index.d.ts.map +1 -1
  239. package/dist/client/index.js +1 -1
  240. package/dist/client/index.js.map +1 -1
  241. package/dist/client/review/ReviewCommentComposer.d.ts +18 -0
  242. package/dist/client/review/ReviewCommentComposer.d.ts.map +1 -0
  243. package/dist/client/review/ReviewCommentComposer.js +30 -0
  244. package/dist/client/review/ReviewCommentComposer.js.map +1 -0
  245. package/dist/client/review/ReviewThreadPanel.d.ts +28 -1
  246. package/dist/client/review/ReviewThreadPanel.d.ts.map +1 -1
  247. package/dist/client/review/ReviewThreadPanel.js +151 -39
  248. package/dist/client/review/ReviewThreadPanel.js.map +1 -1
  249. package/dist/client/review/index.d.ts +3 -2
  250. package/dist/client/review/index.d.ts.map +1 -1
  251. package/dist/client/review/index.js +2 -1
  252. package/dist/client/review/index.js.map +1 -1
  253. package/dist/client/review/use-review.d.ts +23 -0
  254. package/dist/client/review/use-review.d.ts.map +1 -1
  255. package/dist/client/review/use-review.js +3 -0
  256. package/dist/client/review/use-review.js.map +1 -1
  257. package/dist/client/use-agent-chat-context.d.ts +1 -1
  258. package/dist/client/use-agent-chat-context.d.ts.map +1 -1
  259. package/dist/client/use-agent-chat-context.js +4 -2
  260. package/dist/client/use-agent-chat-context.js.map +1 -1
  261. package/dist/collab/awareness.d.ts +2 -2
  262. package/dist/collab/awareness.d.ts.map +1 -1
  263. package/dist/collab/struct-routes.d.ts +1 -1
  264. package/dist/notifications/routes.d.ts +3 -3
  265. package/dist/observability/routes.d.ts +5 -5
  266. package/dist/progress/routes.d.ts +1 -1
  267. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  268. package/dist/resources/handlers.d.ts +2 -2
  269. package/dist/review/actions/create-review-comment.js +2 -1
  270. package/dist/review/actions/create-review-comment.js.map +1 -1
  271. package/dist/review/actions/get-review-feedback.js +6 -11
  272. package/dist/review/actions/get-review-feedback.js.map +1 -1
  273. package/dist/review/actions/list-review-comments.d.ts +1 -0
  274. package/dist/review/actions/list-review-comments.js +25 -4
  275. package/dist/review/actions/list-review-comments.js.map +1 -1
  276. package/dist/review/actions/reply-review-comment.js +12 -5
  277. package/dist/review/actions/reply-review-comment.js.map +1 -1
  278. package/dist/review/actions/resolve-review-thread.d.ts +3 -0
  279. package/dist/review/actions/resolve-review-thread.js +20 -3
  280. package/dist/review/actions/resolve-review-thread.js.map +1 -1
  281. package/dist/review/actions/send-review-thread-to-agent.d.ts +17 -0
  282. package/dist/review/actions/send-review-thread-to-agent.d.ts.map +1 -0
  283. package/dist/review/actions/send-review-thread-to-agent.js +49 -0
  284. package/dist/review/actions/send-review-thread-to-agent.js.map +1 -0
  285. package/dist/review/identity.d.ts +6 -0
  286. package/dist/review/identity.d.ts.map +1 -0
  287. package/dist/review/identity.js +68 -0
  288. package/dist/review/identity.js.map +1 -0
  289. package/dist/review/index.d.ts +3 -1
  290. package/dist/review/index.d.ts.map +1 -1
  291. package/dist/review/index.js +2 -1
  292. package/dist/review/index.js.map +1 -1
  293. package/dist/review/store.d.ts +36 -0
  294. package/dist/review/store.d.ts.map +1 -1
  295. package/dist/review/store.js +223 -8
  296. package/dist/review/store.js.map +1 -1
  297. package/dist/review/types.d.ts +4 -0
  298. package/dist/review/types.d.ts.map +1 -1
  299. package/dist/review/types.js.map +1 -1
  300. package/dist/secrets/routes.d.ts +9 -9
  301. package/dist/server/action-discovery.d.ts.map +1 -1
  302. package/dist/server/action-discovery.js +4 -0
  303. package/dist/server/action-discovery.js.map +1 -1
  304. package/dist/server/action-routes.d.ts +45 -0
  305. package/dist/server/action-routes.d.ts.map +1 -1
  306. package/dist/server/action-routes.js +71 -5
  307. package/dist/server/action-routes.js.map +1 -1
  308. package/dist/server/agent-chat/plugin-options.d.ts +16 -0
  309. package/dist/server/agent-chat/plugin-options.d.ts.map +1 -1
  310. package/dist/server/agent-chat/plugin-options.js.map +1 -1
  311. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  312. package/dist/server/agent-chat-plugin.js +1 -0
  313. package/dist/server/agent-chat-plugin.js.map +1 -1
  314. package/dist/server/index.d.ts +3 -1
  315. package/dist/server/index.d.ts.map +1 -1
  316. package/dist/server/index.js +2 -0
  317. package/dist/server/index.js.map +1 -1
  318. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  319. package/dist/vite/action-types-plugin.js +4 -0
  320. package/dist/vite/action-types-plugin.js.map +1 -1
  321. package/docs/content/locales/ar-SA/pr-visual-recap.mdx +48 -30
  322. package/docs/content/locales/ar-SA/template-plan.mdx +7 -0
  323. package/docs/content/locales/de-DE/pr-visual-recap.mdx +48 -30
  324. package/docs/content/locales/de-DE/template-plan.mdx +7 -0
  325. package/docs/content/locales/es-ES/pr-visual-recap.mdx +48 -30
  326. package/docs/content/locales/es-ES/template-plan.mdx +14 -0
  327. package/docs/content/locales/fr-FR/pr-visual-recap.mdx +48 -30
  328. package/docs/content/locales/fr-FR/template-plan.mdx +7 -0
  329. package/docs/content/locales/hi-IN/pr-visual-recap.mdx +48 -30
  330. package/docs/content/locales/hi-IN/template-plan.mdx +7 -0
  331. package/docs/content/locales/ja-JP/pr-visual-recap.mdx +48 -30
  332. package/docs/content/locales/ja-JP/template-plan.mdx +7 -0
  333. package/docs/content/locales/ko-KR/pr-visual-recap.mdx +48 -30
  334. package/docs/content/locales/ko-KR/template-plan.mdx +7 -0
  335. package/docs/content/locales/pt-BR/pr-visual-recap.mdx +48 -30
  336. package/docs/content/locales/pt-BR/template-plan.mdx +14 -0
  337. package/docs/content/locales/zh-CN/pr-visual-recap.mdx +48 -30
  338. package/docs/content/locales/zh-CN/template-plan.mdx +7 -0
  339. package/docs/content/locales/zh-TW/pr-visual-recap.mdx +48 -30
  340. package/docs/content/locales/zh-TW/template-plan.mdx +7 -0
  341. package/docs/content/pr-visual-recap.mdx +50 -32
  342. package/docs/content/template-plan.mdx +14 -0
  343. package/docs/content/toolkit-comments-review.mdx +16 -2
  344. package/package.json +4 -1
  345. package/corpus/templates/forms/server/routes/api/forms/og/[slug]/og.png.get.ts +0 -45
@@ -102,13 +102,13 @@ PR Visual Recap 是一個 GitHub 操作,它將每個 pull request 轉變為**
102
102
  npx @agent-native/core@latest skills add visual-plan --with-github-action
103
103
  ```
104
104
 
105
- 這將安裝 `visual-plan` 技能(其中包括操作執行的 `visual-recap` 技能)並將 `.github/workflows/pr-visual-recap.yml` 寫入您的儲存庫。工作流程透過 `npx @agent-native/core@latest recap <subcommand>` 呼叫**發布的 CLI 子指令** — 包括 `gate`、`collect-diff`、`block-reference`、`scan`、`build-prompt`、`publish`、`shot`、`comment`、`check` 和`usage` - 因此沒有任何內容作為幫助程式指令碼複製到您的儲存庫中。 `setup`和`doctor`是您本機執行的互動式助手; `gate` 是工作流程在每次回顧之前執行的安全門步驟。
105
+ 這將安裝 `visual-plan` 技能(其中包括操作執行的 `visual-recap` 技能)並將 `.github/workflows/pr-visual-recap.yml` 寫入您的儲存庫。工作流程透過 `npx @agent-native/recap-cli@latest recap <subcommand>` 呼叫**發布的 CLI 子指令** — 包括 `gate`、`collect-diff`、`block-reference`、`scan`、`build-prompt`、`publish`、`shot`、`comment`、`check` 和`usage` - 因此沒有任何內容作為幫助程式指令碼複製到您的儲存庫中。 `setup`和`doctor`是您本機執行的互動式助手; `gate` 是工作流程在每次回顧之前執行的安全門步驟。
106
106
 
107
107
  然後執行引導設定幫助程式:
108
108
 
109
109
  ```bash
110
- npx @agent-native/core@latest recap setup
111
- npx @agent-native/core@latest recap doctor
110
+ npx @agent-native/recap-cli@latest recap setup
111
+ npx @agent-native/recap-cli@latest recap doctor
112
112
  ```
113
113
 
114
114
  `recap setup`重新整理工作流程,使用`gh`設定GitHub Actions
@@ -118,7 +118,7 @@ npx @agent-native/core@latest recap doctor
118
118
  產生的工作流程檔案並開啟 PR 以檢視其執行。
119
119
 
120
120
  預設情況下,工作流程根據最新捆綁的內容建置其代理提示
121
- `@agent-native/core@latest` 中的 `visual-recap` 指導,包括任何同級
121
+ `@agent-native/recap-cli@latest` 中的 `visual-recap` 指導,包括任何同級
122
122
  技能附帶的參考檔案。如果您的儲存庫有意定制並且
123
123
  固定其提交的`visual-recap`資料夾,設定儲存庫變數
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
@@ -135,8 +135,8 @@ npx @agent-native/core@latest recap doctor
135
135
  JSON 引號不可省略。此值會選取完整 `recap` 工作的執行器。若要在引導設定期間進行設定,請將相同的 JSON 值傳給 `--runs-on`,然後使用 `doctor` 驗證工作流程和執行器可用性:
136
136
 
137
137
  ```bash
138
- npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
- npx @agent-native/core@latest recap doctor
138
+ npx @agent-native/recap-cli@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/recap-cli@latest recap doctor
140
140
  ```
141
141
 
142
142
  輕量級閘道會另外使用 `ubuntu-latest`。停用 GitHub 託管執行器的儲存庫可以將 `VISUAL_RECAP_GATE_RUNS_ON` 設為一個不含 JSON 的純文字標籤,或使用 `--gate-runs-on visual-recap-gate`。自訂標籤僅用於同一儲存庫中身分為 `OWNER`、`MEMBER` 或 `COLLABORATOR` 的作者;分支及其他作者會被強制使用 `ubuntu-latest`,在停用 GitHub 託管執行器時可能一直無法排程。請使用專用且最好是暫時性的執行器;標準閘道不會簽出 PR 樹,只評估工作流程邏輯與 PR 中繼資料。
@@ -160,12 +160,30 @@ npx @agent-native/core@latest recap doctor
160
160
 
161
161
  除了後端之外,兩個儲存庫變數還可以調整代理的執行方式:
162
162
 
163
- - **`VISUAL_RECAP_MODEL`** 固定傳遞給 CLI (`--model`) 的模型 — 例如 `gpt-5.6-sol` 用於 Codex,或 Claude 模型 ID。保留其未設定以使用 CLI 自己的預設模型。
163
+ - **`VISUAL_RECAP_MODEL`** 固定傳遞給 CLI (`--model`) 的模型 — 例如 Codex 使用 `gpt-5.6-luna`、Claude 模型 ID,或 DeepSeek 使用 `deepseek-chat`。對於 `openai-compatible` 是必需的。對於 **Claude** 後端,保留未設定現在預設使用 `claude-sonnet-5`;要使用其他 Claude 模型(例如更便宜的 `claude-haiku-4-5`),請明確設定該變數。對於 **Codex** 後端,保留未設定將使用 Codex CLI 自身的預設模型。
164
164
  - **`VISUAL_RECAP_REASONING`** 設定推理深度:`none`、`minimal`、`low`、`medium`、`high` 或 `xhigh`。適用於Codex後端; Claude 的推理是模型驅動的,因此該變數被忽略。
165
165
  - **`VISUAL_RECAP_SKILL_SOURCE`** 控制提示新鮮度:`auto`/unset 使用最新的捆綁技能指南,而 `repo` 固定到已提交的儲存庫本機 `visual-recap` 技能資料夾。
166
166
 
167
167
  例如,要在 Codex 和 GPT-5.6 Sol 上以高推理執行回顧,請設定儲存庫變數 `VISUAL_RECAP_AGENT=codex`、`VISUAL_RECAP_MODEL=gpt-5.6-sol` 和 `VISUAL_RECAP_REASONING=high`。
168
168
 
169
+ ## 成本
170
+
171
+ 每次回顧執行都是一次完整的代理式編碼代理工作階段,讀取真實的 diff,而不是廉價的範本化摘要,因此其成本取決於模型選擇和執行頻率:
172
+
173
+ - **每次 PR 推送都會執行完整工作階段。** 預設觸發程序在 `synchronize` 時觸發,因此被推送十次的 PR 會執行代理十次。
174
+ - **每次都是整個 PR**,而不僅僅是自上次執行以來的提交 — 成本隨 PR 總大小而非增量差異大小擴展。
175
+ - **差異輸入上限約為 600KB。** 這限制了每次執行的最壞情況,但大差異的成本仍然明顯高於小差異。
176
+ - **失敗時自動重試一次**,這可能會讓一次暫時性失敗的執行成本大約加倍。
177
+
178
+ 若要降低成本:
179
+
180
+ - **固定使用較便宜的模型。** 對於 Claude,為簡單或小型儲存庫設定 `VISUAL_RECAP_MODEL=claude-haiku-4-5` — 這是最便宜的 Claude 層級;`claude-sonnet-5`(預設值)是均衡層級。
181
+ - **切換到使用較便宜模型的 Codex。** 設定 `VISUAL_RECAP_AGENT=codex` 並搭配 `VISUAL_RECAP_MODEL=gpt-5.6-luna`(最便宜的 GPT-5.6 層級)或 `gpt-5.6-terra`(中間層級),並設定 `VISUAL_RECAP_REASONING=low` 以進一步減少推理 token 花費。推理深度僅適用於 Codex。
182
+ - **指向較便宜的 OpenAI 相容供應商。** 設定 `VISUAL_RECAP_AGENT=openai-compatible`,並搭配指向 DeepSeek、Kimi 或任何其他 OpenAI 相容端點的 `VISUAL_RECAP_BASE_URL`/`VISUAL_RECAP_MODEL`/`VISUAL_RECAP_API_KEY`。
183
+ - **降低回顧頻率。** 將已安裝工作流程的 `on.pull_request.types` 從 `[opened, synchronize, reopened, ready_for_review, closed]` 編輯為 `[opened, ready_for_review, closed]`,使其僅在 PR 開啟和合併時回顧,而不是每次推送都回顧。
184
+
185
+ 每次執行都會記錄實際花費:工作流程的 `recap usage` 步驟會將 token 和成本使用情況附加到已發布的計畫中,因此你可以查看每次執行的實際花費,而不是靠猜測。
186
+
169
187
  ## 秘密和變數
170
188
 
171
189
  在儲存庫的 **設定 → 秘密和變數 → Actions** 中設定這些內容。
@@ -196,11 +214,11 @@ npx @agent-native/core@latest connect https://plan.agent-native.com --service-to
196
214
 
197
215
  **Solo:個人代幣仍然有效。**用 `npx @agent-native/core@latest connect` 鑄造它
198
216
  針對您的計畫應用程式。對於託管應用程式,這還會寫入本機
199
- `npx @agent-native/core@latest recap setup`可以讀取的發布權杖檔案:
217
+ `npx @agent-native/recap-cli@latest recap setup`可以讀取的發布權杖檔案:
200
218
 
201
219
  ```bash
202
220
  npx @agent-native/core@latest connect https://plan.agent-native.com --client codex
203
- npx @agent-native/core@latest recap setup
221
+ npx @agent-native/recap-cli@latest recap setup
204
222
  ```
205
223
 
206
224
  如果您更喜歡手動設定,請將權杖貼上到 GitHub 金鑰中。使用
@@ -209,16 +227,16 @@ npx @agent-native/core@latest recap setup
209
227
 
210
228
  ### 可選(僅當您更改預設值時)
211
229
 
212
- | 秘密/變數 | 預設 | 當你需要的時候 |
213
- | ------------------------ | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
214
- | `OPENAI_API_KEY` | — | 秘密。與 `VISUAL_RECAP_AGENT=codex` 一起設定以使用 Codex 執行回顧。 |
215
- | `VISUAL_RECAP_AGENT` | `claude` | 變數。選取編碼代理後端(`claude` 或 `codex`)。 |
216
- | `VISUAL_RECAP_MODEL` | 每個 CLI 的預設值 | 變數。固定模型 - 例如`gpt-5.6-sol` 表示 Codex,或 Claude 型號 ID。取消設定使用 CLI 自己的預設值。 |
217
- | `VISUAL_RECAP_REASONING` | 每個模型的預設值 | 變數。推理深度:`none`、`minimal`、`low`、`medium`、`high` 或 `xhigh`。適用於Codex後端。 |
218
- | `RECAP_CLI_VERSION` | `latest` | 變數。固定工作流程安裝的 `@agent-native/core` CLI 版本 - 例如`1.5.0`。參見[Version pinning](#version-pinning-copy-variant)。 |
219
- | `PLAN_RECAP_APP_URL` | `https://plan.agent-native.com` | 秘密。僅當在不同來源自行託管計畫應用時。 |
230
+ | 秘密/變數 | 預設 | 當你需要的時候 |
231
+ | ------------------------ | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
232
+ | `OPENAI_API_KEY` | — | 秘密。與 `VISUAL_RECAP_AGENT=codex` 一起設定以使用 Codex 執行回顧。 |
233
+ | `VISUAL_RECAP_AGENT` | `claude` | 變數。選取編碼代理後端(`claude` 或 `codex`)。 |
234
+ | `VISUAL_RECAP_MODEL` | Claude 使用 `claude-sonnet-5`;相容後端必需 | 變數。OpenAI 相容後端的供應商模型 ID(在該後端為必需)。對於 Claude,未設定時現在預設使用 `claude-sonnet-5` 設定以覆寫,例如使用最便宜層級的 `claude-haiku-4-5`。對於 Codex,未設定時使用 Codex CLI 自身的預設值。 |
235
+ | `VISUAL_RECAP_REASONING` | 每個模型的預設值 | 變數。推理深度:`none`、`minimal`、`low`、`medium`、`high` 或 `xhigh`。適用於Codex後端。 |
236
+ | `RECAP_CLI_VERSION` | `latest` | 變數。固定工作流程安裝的 `@agent-native/recap-cli` CLI 版本 - 例如`1.5.0`。參見[Version pinning](#version-pinning-copy-variant)。 |
237
+ | `PLAN_RECAP_APP_URL` | `https://plan.agent-native.com` | 秘密。僅當在不同來源自行託管計畫應用時。 |
220
238
 
221
- 工作流自動偵測如何呼叫其助手 CLI(此 monorepo 內的本機來源,在其他地方發布的 `@agent-native/core`),因此無需設定 `RECAP_CLI` 變數。
239
+ 工作流自動偵測如何呼叫其助手 CLI(此 monorepo 內的本機來源,在其他地方發布的 `@agent-native/recap-cli`),因此無需設定 `RECAP_CLI` 變數。
222
240
 
223
241
  ## 評論內嵌截圖
224
242
 
@@ -357,9 +375,9 @@ GitHub 操作專為託管、可共用的 PR 審核而設計。如果你想要一
357
375
  相同的幫助程式在本機檔案模式下本機流動:
358
376
 
359
377
  ```bash
360
- npx @agent-native/core@latest recap collect-diff --base main --head HEAD --out recap.diff --stat recap.stat
361
- npx @agent-native/core@latest recap scan --diff recap.diff
362
- npx @agent-native/core@latest recap build-prompt --pr 123 --diff recap.diff --stat recap.stat --local-files --local-dir plans/pr-123-visual-recap
378
+ npx @agent-native/recap-cli@latest recap collect-diff --base main --head HEAD --out recap.diff --stat recap.stat
379
+ npx @agent-native/recap-cli@latest recap scan --diff recap.diff
380
+ npx @agent-native/recap-cli@latest recap build-prompt --pr 123 --diff recap.diff --stat recap.stat --local-files --local-dir plans/pr-123-visual-recap
363
381
  ```
364
382
 
365
383
  將產生的 `recap-prompt.md` 交給您的編碼代理。在本機檔案模式
@@ -389,7 +407,7 @@ npx @agent-native/core@latest plan local serve --dir plans/pr-123-visual-recap -
389
407
 
390
408
  ## 版本固定(複製變體) {#version-pinning-copy-variant}
391
409
 
392
- 預設情況下,複製變體工作流程在執行時安裝 `@agent-native/core@latest`,因此每次回顧執行都會自動選取最新的 CLI。如果您的 CI 需要可重現的工具,請設定 **`RECAP_CLI_VERSION`** 儲存庫變數來固定已安裝的版本:
410
+ 預設情況下,複製變體工作流程在執行時安裝 `@agent-native/recap-cli@latest`,因此每次回顧執行都會自動選取最新的 CLI。如果您的 CI 需要可重現的工具,請設定 **`RECAP_CLI_VERSION`** 儲存庫變數來固定已安裝的版本:
393
411
 
394
412
  1. 轉到您的儲存庫的**設定 → 秘密和變數 → Actions → 變數**。
395
413
  2. 建立一個名為 `RECAP_CLI_VERSION` 的變數,其值類似於 `1.5.0`。
@@ -400,7 +418,7 @@ npx @agent-native/core@latest plan local serve --dir plans/pr-123-visual-recap -
400
418
 
401
419
  ## 秘密掃描允許清單
402
420
 
403
- 在發布回顧之前,工作流程執行 `npx @agent-native/core@latest recap scan` 以偵測差異中可能的秘密。任何其 diff 與已知秘密模式匹配的 PR 都會被阻止並帶有解釋性註解 - 不會發布摘要,並且不會將 diff 內容傳送到編碼代理。
421
+ 在發布回顧之前,工作流程執行 `npx @agent-native/recap-cli@latest recap scan` 以偵測差異中可能的秘密。任何其 diff 與已知秘密模式匹配的 PR 都會被阻止並帶有解釋性註解 - 不會發布摘要,並且不會將 diff 內容傳送到編碼代理。
404
422
 
405
423
  在極少數情況下,儲存庫具有故意的測試裝置或表面上類似於秘密模式的非秘密字串(例如,測試檔案中的裝置金鑰)。要抑制誤報,請在儲存庫的根目錄中建立 `.github/recap-scan-allowlist`。
406
424
 
@@ -434,7 +452,7 @@ EXAMPLE_API_KEY=placeholder-value
434
452
 
435
453
  ### 為什麼使用可重用變體?
436
454
 
437
- 預設安裝程式將完整的約 360 行工作流程 YAML 複製到您的儲存庫中(**複製**選項)。對於氣隙儲存庫或需要審核每一行執行內容的儲存庫來說,這是正確的選取。缺點是錯誤修復和改進永遠不會到達您的手中 - 您需要在每次發布後手動重新執行 `npx @agent-native/core@latest recap setup`。
455
+ 預設安裝程式將完整的約 360 行工作流程 YAML 複製到您的儲存庫中(**複製**選項)。對於氣隙儲存庫或需要審核每一行執行內容的儲存庫來說,這是正確的選取。缺點是錯誤修復和改進永遠不會到達您的手中 - 您需要在每次發布後手動重新執行 `npx @agent-native/recap-cli@latest recap setup`。
438
456
 
439
457
  **可重用**選項改為編寫一個精簡的約 20 行呼叫程式。它透過`uses:`委托給`BuilderIO/agent-native/.github/workflows/pr-visual-recap-reusable.yml`。當工作流程執行時,每個呼叫者都會自動取得最新邏輯,無需本機更新。
440
458
 
@@ -447,7 +465,7 @@ EXAMPLE_API_KEY=placeholder-value
447
465
 
448
466
  ### 呼叫者片段
449
467
 
450
- 這是`npx @agent-native/core@latest recap setup --reusable`寫的(或者你可以手動貼上):
468
+ 這是`npx @agent-native/recap-cli@latest recap setup --reusable`寫的(或者你可以手動貼上):
451
469
 
452
470
  ```yaml
453
471
  name: PR Visual Recap
@@ -482,7 +500,7 @@ jobs:
482
500
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
483
501
  runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
484
502
  gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
485
- # cli-version: "latest" # pin to a specific @agent-native/core version
503
+ # cli-version: "latest" # pin to a specific @agent-native/recap-cli version
486
504
  ```
487
505
 
488
506
  適用 [Secrets and variables](#secrets-and-variables) 中描述的相同秘密和變數。可重複使用的呼叫端會將完整工作的 `VISUAL_RECAP_RUNS_ON` 轉送為 `runs-on`,並將閘道的 `VISUAL_RECAP_GATE_RUNS_ON` 轉送為單一標籤 `gate-runs-on`。省略時兩者都使用 `ubuntu-latest`。
@@ -491,15 +509,15 @@ jobs:
491
509
 
492
510
  ```bash
493
511
  # 編寫瘦呼叫者而不是完整副本:
494
- npx @agent-native/core@latest recap setup --reusable
512
+ npx @agent-native/recap-cli@latest recap setup --reusable
495
513
 
496
514
  # 或者使用固定參考來實現可重複性:
497
- npx @agent-native/core@latest recap setup --reusable --ref v1.2.3
515
+ npx @agent-native/recap-cli@latest recap setup --reusable --ref v1.2.3
498
516
  ```
499
517
 
500
518
  兩種變體都將工作流程寫入 `.github/workflows/pr-visual-recap.yml`。如果現有工作流程已存在且有所不同,則該指令會拒絕並告訴您傳遞 `--force` 進行覆蓋。
501
519
 
502
- 寫入後,照常執行 `npx @agent-native/core@latest recap doctor` 以確認機密已設定。
520
+ 寫入後,照常執行 `npx @agent-native/recap-cli@latest recap doctor` 以確認機密已設定。
503
521
 
504
522
  ### 版本固定
505
523
 
@@ -509,7 +527,7 @@ npx @agent-native/core@latest recap setup --reusable --ref v1.2.3
509
527
  uses: BuilderIO/agent-native/.github/workflows/pr-visual-recap-reusable.yml@v1.2.3
510
528
  ```
511
529
 
512
- `cli-version` 輸入控制工作流程中執行的 `@agent-native/core` CLI 版本 - 將其保留在 `"latest"` 以跟蹤最新版本,或將其固定到版本字串(例如 `"1.5.0"`)以實現完全可重複性。
530
+ `cli-version` 輸入控制工作流程中執行的 `@agent-native/recap-cli` CLI 版本 - 將其保留在 `"latest"` 以跟蹤最新版本,或將其固定到版本字串(例如 `"1.5.0"`)以實現完全可重複性。
513
531
 
514
532
  ### workflow_call事件脈絡
515
533
 
@@ -208,6 +208,13 @@ vscode://builder.agent-native/open?url=<encoded-plan-url>
208
208
  **開放式問題**表格位於同一計畫的底部。接聽並傳送
209
209
  它向代理啟動針對現有計畫的修訂。
210
210
 
211
+ ## 成本和模型選擇
212
+
213
+ 產生計畫或回顧會對你的編碼代理的 LLM 執行一次完整的代理式工作階段,而不是輕量級的範本填充,因此成本會隨 diff 或計畫的大小以及你選擇的模型而變化。
214
+
215
+ - 應用程式自身的預設聊天模型是 Sonnet 5;你可以隨時在 **設定** 中變更它。Haiku 是較便宜的 Claude 選項,Luna 是 GPT-5.6 系列中較便宜的選項。
216
+ - 來自 GitHub Action 的自動化 PR 回顧與互動式應用程式分開執行,擁有自己的模型和成本調整項 — 關於 `VISUAL_RECAP_MODEL`、`VISUAL_RECAP_AGENT` 和 `VISUAL_RECAP_REASONING`,請參見[PR Visual Recap](/docs/pr-visual-recap)。
217
+
211
218
  ## 你可以用它做什麼
212
219
 
213
220
  - **實施前審查。** React 到圖表、線框圖、選項分頁,
@@ -102,13 +102,13 @@ explicitly at any time:
102
102
  npx @agent-native/core@latest skills add visual-plan --with-github-action
103
103
  ```
104
104
 
105
- This installs the `visual-plan` skill (which includes the `visual-recap` skill the action runs) and writes `.github/workflows/pr-visual-recap.yml` into your repo. The workflow calls **published CLI subcommands** through `npx @agent-native/core@latest recap <subcommand>` — including `gate`, `collect-diff`, `block-reference`, `scan`, `build-prompt`, `publish`, `shot`, `comment`, `check`, and `usage` — so nothing is copied into your repo as helper scripts. `setup` and `doctor` are the interactive helpers you run locally; `gate` is the security-gate step the workflow runs before every recap.
105
+ This installs the `visual-plan` skill (which includes the `visual-recap` skill the action runs) and writes `.github/workflows/pr-visual-recap.yml` into your repo. The workflow calls **published CLI subcommands** through `npx @agent-native/recap-cli@latest recap <subcommand>` — including `gate`, `collect-diff`, `block-reference`, `scan`, `build-prompt`, `publish`, `shot`, `comment`, `check`, and `usage` — so nothing is copied into your repo as helper scripts. `setup` and `doctor` are the interactive helpers you run locally; `gate` is the security-gate step the workflow runs before every recap.
106
106
 
107
107
  Then run the guided setup helper:
108
108
 
109
109
  ```bash
110
- npx @agent-native/core@latest recap setup
111
- npx @agent-native/core@latest recap doctor
110
+ npx @agent-native/recap-cli@latest recap setup
111
+ npx @agent-native/recap-cli@latest recap doctor
112
112
  ```
113
113
 
114
114
  `recap setup` refreshes the workflow, uses `gh` to set GitHub Actions
@@ -118,7 +118,7 @@ set. Secret values are sent to `gh` through stdin, not command arguments. Commit
118
118
  the generated workflow file and open a PR to see it run.
119
119
 
120
120
  By default, the workflow builds its agent prompt from the latest bundled
121
- `visual-recap` guidance in `@agent-native/core@latest`, including any sibling
121
+ `visual-recap` guidance in `@agent-native/recap-cli@latest`, including any sibling
122
122
  reference files the skill ships with. If your repo intentionally customizes and
123
123
  pins its committed `visual-recap` folder, set the repository variable
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
@@ -140,8 +140,8 @@ To configure it during guided setup, pass the same JSON value to `--runs-on`,
140
140
  then validate the workflow and runner availability with `doctor`:
141
141
 
142
142
  ```bash
143
- npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
144
- npx @agent-native/core@latest recap doctor
143
+ npx @agent-native/recap-cli@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
144
+ npx @agent-native/recap-cli@latest recap doctor
145
145
  ```
146
146
 
147
147
  The lightweight security gate defaults separately to GitHub-hosted
@@ -186,7 +186,7 @@ If the variable is unset, the action uses `claude`.
186
186
 
187
187
  Beyond the backend, these repository variables tune how the agent runs:
188
188
 
189
- - **`VISUAL_RECAP_MODEL`** pins the model passed to the CLI (`--model`) — for example `gpt-5.6-sol` for Codex, a Claude model id, or `deepseek-chat` for DeepSeek. It is required for `openai-compatible`; Claude and Codex may leave it unset to use their CLI default.
189
+ - **`VISUAL_RECAP_MODEL`** pins the model passed to the CLI (`--model`) — for example `gpt-5.6-luna` for Codex, a Claude model id, or `deepseek-chat` for DeepSeek. It is required for `openai-compatible`. For the **Claude** backend, leaving it unset now defaults to `claude-sonnet-5`; set the variable explicitly to use a different Claude model, such as the cheaper `claude-haiku-4-5`. For the **Codex** backend, leaving it unset uses the Codex CLI's own default model.
190
190
  - **`VISUAL_RECAP_REASONING`** sets the reasoning depth: `none`, `minimal`, `low`, `medium`, `high`, or `xhigh`. It applies to the Codex backend; Claude's reasoning is model-driven, so this variable is ignored there.
191
191
  - **`VISUAL_RECAP_BASE_URL`** selects the HTTP(S) base URL for the `openai-compatible` backend. Use the provider's OpenAI-compatible endpoint, such as DeepSeek or Kimi, without embedding credentials in the URL.
192
192
  - **`VISUAL_RECAP_SKILL_SOURCE`** controls prompt freshness: `auto`/unset uses the latest bundled skill guidance, while `repo` pins to the committed repo-local `visual-recap` skill folder.
@@ -195,6 +195,24 @@ For example, to run the recap on Codex with GPT-5.6 Sol at high reasoning, set t
195
195
 
196
196
  For DeepSeek, set `VISUAL_RECAP_AGENT=openai-compatible`, `VISUAL_RECAP_BASE_URL=https://api.deepseek.com/v1`, `VISUAL_RECAP_MODEL=deepseek-chat`, and the `VISUAL_RECAP_API_KEY` secret. Kimi works the same way with its OpenAI-compatible base URL and model id. Other OpenAI-compatible providers use the same three settings.
197
197
 
198
+ ## Cost
199
+
200
+ Each recap run is a full agentic coding-agent session reading a real diff, not a cheap templated summary, so its cost tracks model choice and how often it runs:
201
+
202
+ - **A full session per PR push.** The default trigger fires on `synchronize`, so a PR that gets pushed to ten times runs the agent ten times.
203
+ - **The whole PR each time**, not just the commits since the last run — cost scales with total PR size, not incremental diff size.
204
+ - **Diff input capped at ~600KB.** This bounds the worst case per run, but large diffs still cost meaningfully more than small ones.
205
+ - **One automatic retry on failure**, which can roughly double the cost of a run that fails transiently.
206
+
207
+ To reduce cost:
208
+
209
+ - **Pin a cheaper model.** For Claude, set `VISUAL_RECAP_MODEL=claude-haiku-4-5` for simple or small repos — it's the cheapest Claude tier; `claude-sonnet-5` (the default) is the balanced tier.
210
+ - **Switch to Codex with a cheaper model.** Set `VISUAL_RECAP_AGENT=codex` with `VISUAL_RECAP_MODEL=gpt-5.6-luna` (the cheapest GPT-5.6 tier) or `gpt-5.6-terra` (mid-tier), and set `VISUAL_RECAP_REASONING=low` to cut reasoning-token spend further. Reasoning depth only applies to Codex.
211
+ - **Point at a cheaper OpenAI-compatible provider.** Set `VISUAL_RECAP_AGENT=openai-compatible` with `VISUAL_RECAP_BASE_URL`/`VISUAL_RECAP_MODEL`/`VISUAL_RECAP_API_KEY` targeting DeepSeek, Kimi, or any other OpenAI-compatible endpoint.
212
+ - **Recap less often.** Edit the installed workflow's `on.pull_request.types` from `[opened, synchronize, reopened, ready_for_review, closed]` to `[opened, ready_for_review, closed]` so it recaps only when a PR opens and when it merges, instead of on every push.
213
+
214
+ Every run records what it actually spent: the workflow's `recap usage` step attaches token and cost usage to the published plan, so you can look at real spend per run instead of guessing.
215
+
198
216
  ## Secrets and variables
199
217
 
200
218
  Set these in your repository's **Settings → Secrets and variables → Actions**.
@@ -225,11 +243,11 @@ Plans app.
225
243
 
226
244
  **Solo: a personal token still works.** Mint it with `npx @agent-native/core@latest connect`
227
245
  against your Plans app. For the hosted app, this also writes a local
228
- publish-token file that `npx @agent-native/core@latest recap setup` can read:
246
+ publish-token file that `npx @agent-native/recap-cli@latest recap setup` can read:
229
247
 
230
248
  ```bash
231
249
  npx @agent-native/core@latest connect https://plan.agent-native.com --client codex
232
- npx @agent-native/core@latest recap setup
250
+ npx @agent-native/recap-cli@latest recap setup
233
251
  ```
234
252
 
235
253
  If you prefer manual setup, paste the token into the GitHub secret. Use a
@@ -238,18 +256,18 @@ real token.
238
256
 
239
257
  ### Optional (only if you change defaults)
240
258
 
241
- | Secret / variable | Default | When you need it |
242
- | ------------------------ | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
243
- | `OPENAI_API_KEY` | — | Secret. Set together with `VISUAL_RECAP_AGENT=codex` to run the recap with Codex instead. |
244
- | `VISUAL_RECAP_API_KEY` | — | Secret. Set with `VISUAL_RECAP_AGENT=openai-compatible` for DeepSeek, Kimi, or another OpenAI-compatible provider. |
245
- | `VISUAL_RECAP_AGENT` | `claude` | Variable. Selects the coding-agent backend (`claude`, `codex`, or `openai-compatible`). |
246
- | `VISUAL_RECAP_BASE_URL` | required for compatible backend | Variable. HTTP(S) base URL for the OpenAI-compatible backend; credentials are rejected. |
247
- | `VISUAL_RECAP_MODEL` | required for compatible backend | Variable. Provider model id for OpenAI-compatible backends; optional for Claude/Codex, where unset uses the CLI default. |
248
- | `VISUAL_RECAP_REASONING` | each model's default | Variable. Reasoning depth: `none`, `minimal`, `low`, `medium`, `high`, or `xhigh`. Applies to the Codex backend. |
249
- | `RECAP_CLI_VERSION` | `latest` | Variable. Pins the `@agent-native/core` CLI version the workflow installs — e.g. `1.5.0`. See [Version pinning](#version-pinning-copy-variant). |
250
- | `PLAN_RECAP_APP_URL` | `https://plan.agent-native.com` | Secret. Only when self-hosting the Plans app at a different origin. |
259
+ | Secret / variable | Default | When you need it |
260
+ | ------------------------ | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
261
+ | `OPENAI_API_KEY` | — | Secret. Set together with `VISUAL_RECAP_AGENT=codex` to run the recap with Codex instead. |
262
+ | `VISUAL_RECAP_API_KEY` | — | Secret. Set with `VISUAL_RECAP_AGENT=openai-compatible` for DeepSeek, Kimi, or another OpenAI-compatible provider. |
263
+ | `VISUAL_RECAP_AGENT` | `claude` | Variable. Selects the coding-agent backend (`claude`, `codex`, or `openai-compatible`). |
264
+ | `VISUAL_RECAP_BASE_URL` | required for compatible backend | Variable. HTTP(S) base URL for the OpenAI-compatible backend; credentials are rejected. |
265
+ | `VISUAL_RECAP_MODEL` | `claude-sonnet-5` for Claude; required for compatible backend | Variable. Provider model id for OpenAI-compatible backends (required there). For Claude, unset now defaults to `claude-sonnet-5` — set it to override, e.g. `claude-haiku-4-5` for the cheapest tier. For Codex, unset uses the Codex CLI's own default. |
266
+ | `VISUAL_RECAP_REASONING` | each model's default | Variable. Reasoning depth: `none`, `minimal`, `low`, `medium`, `high`, or `xhigh`. Applies to the Codex backend. |
267
+ | `RECAP_CLI_VERSION` | `latest` | Variable. Pins the `@agent-native/recap-cli` version the workflow installs — e.g. `1.5.0`. See [Version pinning](#version-pinning-copy-variant). |
268
+ | `PLAN_RECAP_APP_URL` | `https://plan.agent-native.com` | Secret. Only when self-hosting the Plans app at a different origin. |
251
269
 
252
- The workflow auto-detects how to invoke its helper CLI (local source inside this monorepo, the published `@agent-native/core` elsewhere), so there is no `RECAP_CLI` variable to set.
270
+ The workflow auto-detects how to invoke its helper CLI (local source inside this monorepo, the published `@agent-native/recap-cli` elsewhere), so there is no `RECAP_CLI` variable to set.
253
271
 
254
272
  ## Inline screenshot in the comment
255
273
 
@@ -390,9 +408,9 @@ recap without sending recap content to the Agent-Native Plan database, run the
390
408
  same helper flow locally in local-files mode instead:
391
409
 
392
410
  ```bash
393
- npx @agent-native/core@latest recap collect-diff --base main --head HEAD --out recap.diff --stat recap.stat
394
- npx @agent-native/core@latest recap scan --diff recap.diff
395
- npx @agent-native/core@latest recap build-prompt --pr 123 --diff recap.diff --stat recap.stat --local-files --local-dir plans/pr-123-visual-recap
411
+ npx @agent-native/recap-cli@latest recap collect-diff --base main --head HEAD --out recap.diff --stat recap.stat
412
+ npx @agent-native/recap-cli@latest recap scan --diff recap.diff
413
+ npx @agent-native/recap-cli@latest recap build-prompt --pr 123 --diff recap.diff --stat recap.stat --local-files --local-dir plans/pr-123-visual-recap
396
414
  ```
397
415
 
398
416
  Give the generated `recap-prompt.md` to your coding agent. In local-files mode
@@ -422,7 +440,7 @@ The recap is a review aid layered on top of the normal PR flow:
422
440
 
423
441
  ## Version pinning (copy variant) {#version-pinning-copy-variant}
424
442
 
425
- By default the copy-variant workflow installs `@agent-native/core@latest` at run time so every recap run automatically picks up the newest CLI. If your CI needs reproducible tooling, set the **`RECAP_CLI_VERSION`** repository variable to pin the installed version:
443
+ By default the copy-variant workflow installs `@agent-native/recap-cli@latest` at run time so every recap run automatically picks up the newest CLI. If your CI needs reproducible tooling, set the **`RECAP_CLI_VERSION`** repository variable to pin the installed version:
426
444
 
427
445
  1. Go to your repo's **Settings → Secrets and variables → Actions → Variables**.
428
446
  2. Create a variable named `RECAP_CLI_VERSION` with a value like `1.5.0`.
@@ -433,7 +451,7 @@ For the reusable-caller variant, use the `cli-version` input instead (see [Versi
433
451
 
434
452
  ## Secret-scan allowlist
435
453
 
436
- Before publishing a recap the workflow runs `npx @agent-native/core@latest recap scan` to detect likely secrets in the diff. Any PR whose diff matches a known-secret pattern is blocked with an explanatory comment — the recap is not published, and no diff content is sent to the coding agent.
454
+ Before publishing a recap the workflow runs `npx @agent-native/recap-cli@latest recap scan` to detect likely secrets in the diff. Any PR whose diff matches a known-secret pattern is blocked with an explanatory comment — the recap is not published, and no diff content is sent to the coding agent.
437
455
 
438
456
  In rare cases a repo has intentional test fixtures or non-secret strings that superficially resemble secret patterns (e.g., a fixture key in a test file). To suppress a false positive, create `.github/recap-scan-allowlist` in the root of your repository.
439
457
 
@@ -467,7 +485,7 @@ The allowlist is only consulted by the secret-scan gate. It does not affect what
467
485
 
468
486
  ### Why use the reusable variant?
469
487
 
470
- The default installer copies the full ~360-line workflow YAML into your repo (the **copy** option). This is the right choice for air-gapped repos or repos that need to audit every line of what runs. The downside is that bug fixes and improvements never reach you — you need to re-run `npx @agent-native/core@latest recap setup` manually after each release.
488
+ The default installer copies the full ~360-line workflow YAML into your repo (the **copy** option). This is the right choice for air-gapped repos or repos that need to audit every line of what runs. The downside is that bug fixes and improvements never reach you — you need to re-run `npx @agent-native/recap-cli@latest recap setup` manually after each release.
471
489
 
472
490
  The **reusable** option writes a thin ~20-line caller instead. It delegates to `BuilderIO/agent-native/.github/workflows/pr-visual-recap-reusable.yml` via `uses:`. Every caller automatically picks up the latest logic when the workflow runs, with no local update needed.
473
491
 
@@ -480,7 +498,7 @@ The **reusable** option writes a thin ~20-line caller instead. It delegates to `
480
498
 
481
499
  ### Caller snippet
482
500
 
483
- This is what `npx @agent-native/core@latest recap setup --reusable` writes (or you can paste it manually):
501
+ This is what `npx @agent-native/recap-cli@latest recap setup --reusable` writes (or you can paste it manually):
484
502
 
485
503
  ```yaml
486
504
  name: PR Visual Recap
@@ -517,7 +535,7 @@ jobs:
517
535
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
518
536
  runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
519
537
  gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
520
- # cli-version: "latest" # pin to a specific @agent-native/core version
538
+ # cli-version: "latest" # pin to a specific @agent-native/recap-cli version
521
539
  ```
522
540
 
523
541
  The same secrets and variables described in [Secrets and variables](#secrets-and-variables) apply — set them in your repo settings the same way as for the copy variant. The reusable caller forwards `VISUAL_RECAP_RUNS_ON` through its JSON `runs-on` input for the full recap job and `VISUAL_RECAP_GATE_RUNS_ON` through its plain-label `gate-runs-on` input for the metadata-only gate. The latter is used only for trusted same-repository authors; other PRs use GitHub-hosted `ubuntu-latest`. Omitting either input preserves its `ubuntu-latest` default.
@@ -526,15 +544,15 @@ The same secrets and variables described in [Secrets and variables](#secrets-and
526
544
 
527
545
  ```bash
528
546
  # Write the thin caller instead of the full copy:
529
- npx @agent-native/core@latest recap setup --reusable
547
+ npx @agent-native/recap-cli@latest recap setup --reusable
530
548
 
531
549
  # Or with a pinned ref for reproducibility:
532
- npx @agent-native/core@latest recap setup --reusable --ref v1.2.3
550
+ npx @agent-native/recap-cli@latest recap setup --reusable --ref v1.2.3
533
551
  ```
534
552
 
535
553
  Both variants write the workflow to `.github/workflows/pr-visual-recap.yml`. If an existing workflow is already there and differs, the command refuses and tells you to pass `--force` to overwrite.
536
554
 
537
- After writing, run `npx @agent-native/core@latest recap doctor` as usual to confirm secrets are configured.
555
+ After writing, run `npx @agent-native/recap-cli@latest recap doctor` as usual to confirm secrets are configured.
538
556
 
539
557
  ### Version pinning
540
558
 
@@ -544,7 +562,7 @@ By default the caller references `@main`, which always uses the latest published
544
562
  uses: BuilderIO/agent-native/.github/workflows/pr-visual-recap-reusable.yml@v1.2.3
545
563
  ```
546
564
 
547
- The `cli-version` input controls which `@agent-native/core` CLI version runs inside the workflow — leave it at `"latest"` to track the newest release, or pin it to a version string (e.g. `"1.5.0"`) for full reproducibility.
565
+ The `cli-version` input controls which `@agent-native/recap-cli` version runs inside the workflow — leave it at `"latest"` to track the newest release, or pin it to a version string (e.g. `"1.5.0"`) for full reproducibility.
548
566
 
549
567
  ### workflow_call event context
550
568
 
@@ -226,6 +226,20 @@ If the first pass still has answerable decisions, the agent can place an
226
226
  **Open Questions** form at the bottom of the same plan. Answering it and sending
227
227
  it to the agent starts a revision turn against the existing plan.
228
228
 
229
+ ## Cost and model choice
230
+
231
+ Generating a plan or recap runs a full agentic session against your coding
232
+ agent's LLM, not a lightweight template fill, so cost scales with the size of
233
+ the diff or plan and the model you choose.
234
+
235
+ - The app's own default chat model is Sonnet 5; change it any time in
236
+ **Settings**. Haiku is the cheaper Claude option, and Luna is the cheaper
237
+ option in the GPT-5.6 family.
238
+ - Automated PR recaps from the GitHub Action run separately from the
239
+ interactive app and have their own model and cost knobs — see
240
+ [PR Visual Recap](/docs/pr-visual-recap) for `VISUAL_RECAP_MODEL`,
241
+ `VISUAL_RECAP_AGENT`, and `VISUAL_RECAP_REASONING`.
242
+
229
243
  ## What you can do with it
230
244
 
231
245
  - **Review before implementation.** React to diagrams, wireframes, option tabs,
@@ -24,9 +24,9 @@ status such as draft, review, approved, or needs changes.
24
24
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
25
  | `registerReviewableResource()` | Register a resource type and optional access resolver for review actions. |
26
26
  | Comment actions | `list-review-comments`, `create-review-comment`, `reply-review-comment`, `resolve-review-thread`, and `delete-review-comment`. |
27
- | Feedback actions | `get-review-feedback` and `consume-review-feedback` for agent-readable review queues. |
27
+ | Feedback actions | `get-review-feedback`, `send-review-thread-to-agent`, and `consume-review-feedback` for root-thread agent queues and human handoffs. |
28
28
  | Review status action | `set-review-status` for draft, in review, approved, and changes requested states. |
29
- | `ReviewThreadPanel` | Drop-in React panel with comment composer, replies, resolve, and delete controls. |
29
+ | `ReviewThreadPanel` | Drop-in React panel with capability-gated composer, reply, resolve, delete, and custom thread-action controls. |
30
30
  | `ReviewStatusBadge` | Controlled status badge for app headers, sidebars, and review panels. |
31
31
  | Review hooks | `useReviewComments()`, `useCreateReviewComment()`, `useReplyReviewComment()`, `useResolveReviewThread()`, `useDeleteReviewComment()`, and `useSetReviewStatus()`. |
32
32
  | Mentions helpers | `extractReviewMentions()` and `normalizeReviewMentions()` for `@[Label](mailto:email@example.com)` tokens. |
@@ -42,6 +42,13 @@ specialize anchor shapes, but the common model preserves:
42
42
  - `parentCommentId` for replies
43
43
  - optional `mentions`
44
44
  - optional `anchor` or `resolutionTarget`
45
+ - optional `resolutionNote` on a resolved root thread
46
+
47
+ `list-review-comments` supports anonymous reads for resources whose access
48
+ resolver grants public viewer access. Public viewer responses redact ownership,
49
+ organization, email, and actor metadata while preserving safe display names and
50
+ the caller-specific `canDelete` capability. Its `summary` reports unpaginated
51
+ open-root and agent-queue counts even when the returned comment page is bounded.
45
52
 
46
53
  ## Register A Resource {#register-resource}
47
54
 
@@ -76,6 +83,9 @@ export function DocumentReview({ documentId }: { documentId: string }) {
76
83
  resourceType="document"
77
84
  resourceId={documentId}
78
85
  targetId="intro-section"
86
+ canReply
87
+ canResolve={false}
88
+ canDeleteComment={(comment) => comment.canDelete === true}
79
89
  />
80
90
  );
81
91
  }
@@ -93,6 +103,10 @@ actions and thread UI.
93
103
  - Agents can read open review feedback before changing code or content.
94
104
  - `consumedAt` and `resolved` are separate. An agent can consume a piece of
95
105
  feedback without closing the reviewer-visible thread.
106
+ - The root comment owns routing. A human-targeted root is absent from the agent
107
+ queue; sending it back to the agent clears its previous consumption marker.
108
+ - Agents can pass `resolutionNote` to `resolve-review-thread` so verification
109
+ evidence remains attached to the resolved root.
96
110
 
97
111
  ## What's next
98
112
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.100.2",
3
+ "version": "0.101.2",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -156,6 +156,7 @@
156
156
  "./review/actions/consume-review-feedback": "./dist/review/actions/consume-review-feedback.js",
157
157
  "./review/actions/get-review-feedback": "./dist/review/actions/get-review-feedback.js",
158
158
  "./review/actions/set-review-status": "./dist/review/actions/set-review-status.js",
159
+ "./review/actions/send-review-thread-to-agent": "./dist/review/actions/send-review-thread-to-agent.js",
159
160
  "./comments-review/actions/list-review-comments": "./dist/review/actions/list-review-comments.js",
160
161
  "./comments-review/actions/create-review-comment": "./dist/review/actions/create-review-comment.js",
161
162
  "./comments-review/actions/reply-review-comment": "./dist/review/actions/reply-review-comment.js",
@@ -164,6 +165,7 @@
164
165
  "./comments-review/actions/consume-review-feedback": "./dist/review/actions/consume-review-feedback.js",
165
166
  "./comments-review/actions/get-review-feedback": "./dist/review/actions/get-review-feedback.js",
166
167
  "./comments-review/actions/set-review-status": "./dist/review/actions/set-review-status.js",
168
+ "./comments-review/actions/send-review-thread-to-agent": "./dist/review/actions/send-review-thread-to-agent.js",
167
169
  "./sharing": "./dist/sharing/index.js",
168
170
  "./sharing/actions/share-resource": "./dist/sharing/actions/share-resource.js",
169
171
  "./sharing/actions/unshare-resource": "./dist/sharing/actions/unshare-resource.js",
@@ -333,6 +335,7 @@
333
335
  "y-protocols": "^1.0.7",
334
336
  "yjs": "^13.6.31",
335
337
  "zod": "^4.3.6",
338
+ "@agent-native/recap-cli": "0.3.0",
336
339
  "@agent-native/toolkit": "^0.4.10"
337
340
  },
338
341
  "devDependencies": {
@@ -1,45 +0,0 @@
1
- import { agentNativeOgImageResponseHeaders } from "@agent-native/core/server";
2
- import {
3
- defineEventHandler,
4
- getMethod,
5
- getRouterParam,
6
- setResponseStatus,
7
- type H3Event,
8
- } from "h3";
9
-
10
- import { renderFormOgImagePng } from "../../../../../lib/form-og-image.js";
11
- import { getPublicFormBySlugOrId } from "../../../../../lib/public-form-ssr.js";
12
-
13
- function pngBody(bytes: Uint8Array): ArrayBuffer {
14
- const body = new ArrayBuffer(bytes.byteLength);
15
- new Uint8Array(body).set(bytes);
16
- return body;
17
- }
18
-
19
- export default defineEventHandler(async (event: H3Event) => {
20
- const slug = getRouterParam(event, "slug");
21
- if (!slug) {
22
- setResponseStatus(event, 400);
23
- return { error: "slug is required" };
24
- }
25
-
26
- const form = await getPublicFormBySlugOrId(slug);
27
- if (!form) {
28
- setResponseStatus(event, 404);
29
- return { error: "Form not found" };
30
- }
31
-
32
- if (getMethod(event) === "HEAD") {
33
- return new Response(null, {
34
- headers: agentNativeOgImageResponseHeaders(0),
35
- });
36
- }
37
-
38
- const png = await renderFormOgImagePng({
39
- title: form.title,
40
- });
41
-
42
- return new Response(pngBody(png), {
43
- headers: agentNativeOgImageResponseHeaders(png.byteLength),
44
- });
45
- });