@agent-native/core 0.79.12 → 0.79.16

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 (289) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +25 -0
  3. package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
  4. package/corpus/core/docs/content/locales/zh-TW/actions.md +82 -82
  5. package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +22 -22
  6. package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
  7. package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +29 -29
  8. package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
  9. package/corpus/core/docs/content/locales/zh-TW/audit-log.md +16 -16
  10. package/corpus/core/docs/content/locales/zh-TW/authentication.md +32 -32
  11. package/corpus/core/docs/content/locales/zh-TW/automations.md +32 -32
  12. package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
  13. package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +17 -17
  14. package/corpus/core/docs/content/locales/zh-TW/client.md +62 -62
  15. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
  16. package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
  17. package/corpus/core/docs/content/locales/zh-TW/components.md +51 -51
  18. package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +66 -66
  19. package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +39 -39
  20. package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
  21. package/corpus/core/docs/content/locales/zh-TW/database.md +21 -21
  22. package/corpus/core/docs/content/locales/zh-TW/deployment.md +37 -37
  23. package/corpus/core/docs/content/locales/zh-TW/dispatch.md +43 -43
  24. package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
  25. package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +18 -18
  26. package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
  27. package/corpus/core/docs/content/locales/zh-TW/evals.md +16 -16
  28. package/corpus/core/docs/content/locales/zh-TW/extensions.md +81 -81
  29. package/corpus/core/docs/content/locales/zh-TW/external-agents.md +146 -146
  30. package/corpus/core/docs/content/locales/zh-TW/faq.md +43 -43
  31. package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +11 -11
  32. package/corpus/core/docs/content/locales/zh-TW/frames.md +33 -33
  33. package/corpus/core/docs/content/locales/zh-TW/getting-started.md +28 -28
  34. package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +78 -78
  35. package/corpus/core/docs/content/locales/zh-TW/human-approval.md +27 -27
  36. package/corpus/core/docs/content/locales/zh-TW/internationalization.md +19 -19
  37. package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +68 -68
  38. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +50 -50
  39. package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +38 -38
  40. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +67 -67
  41. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
  42. package/corpus/core/docs/content/locales/zh-TW/messaging.md +99 -99
  43. package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +6 -6
  44. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
  45. package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
  46. package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
  47. package/corpus/core/docs/content/locales/zh-TW/notifications.md +23 -23
  48. package/corpus/core/docs/content/locales/zh-TW/observability.md +49 -49
  49. package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +23 -23
  50. package/corpus/core/docs/content/locales/zh-TW/onboarding.md +40 -40
  51. package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +37 -37
  52. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
  53. package/corpus/core/docs/content/locales/zh-TW/processors.md +17 -17
  54. package/corpus/core/docs/content/locales/zh-TW/progress.md +15 -15
  55. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
  56. package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
  57. package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
  58. package/corpus/core/docs/content/locales/zh-TW/routing.md +9 -9
  59. package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
  60. package/corpus/core/docs/content/locales/zh-TW/security.md +49 -49
  61. package/corpus/core/docs/content/locales/zh-TW/server.md +47 -47
  62. package/corpus/core/docs/content/locales/zh-TW/sharing.md +22 -22
  63. package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +46 -46
  64. package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +40 -40
  65. package/corpus/core/docs/content/locales/zh-TW/template-assets.md +69 -69
  66. package/corpus/core/docs/content/locales/zh-TW/template-brain.md +81 -81
  67. package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +40 -40
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.md +27 -27
  69. package/corpus/core/docs/content/locales/zh-TW/template-clips.md +85 -85
  70. package/corpus/core/docs/content/locales/zh-TW/template-content.md +65 -66
  71. package/corpus/core/docs/content/locales/zh-TW/template-design.md +29 -29
  72. package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +51 -51
  73. package/corpus/core/docs/content/locales/zh-TW/template-forms.md +25 -25
  74. package/corpus/core/docs/content/locales/zh-TW/template-mail.md +71 -71
  75. package/corpus/core/docs/content/locales/zh-TW/template-plan.md +92 -92
  76. package/corpus/core/docs/content/locales/zh-TW/template-slides.md +52 -52
  77. package/corpus/core/docs/content/locales/zh-TW/template-videos.md +30 -30
  78. package/corpus/core/docs/content/locales/zh-TW/tracking.md +29 -29
  79. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +18 -18
  80. package/corpus/core/docs/content/locales/zh-TW/voice-input.md +19 -19
  81. package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
  82. package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +41 -41
  83. package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +27 -27
  84. package/corpus/core/docs/content/locales/zh-TW/workspace.md +58 -58
  85. package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
  86. package/corpus/core/docs/content/template-clips.md +48 -2
  87. package/corpus/core/package.json +2 -1
  88. package/corpus/core/src/client/AgentPanel.tsx +29 -6
  89. package/corpus/core/src/deploy/build.ts +432 -42
  90. package/corpus/core/src/deploy/route-discovery.ts +1 -1
  91. package/corpus/core/src/server/edge.ts +50 -0
  92. package/corpus/core/src/styles/agent-native.css +123 -0
  93. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +44 -44
  94. package/corpus/core/src/vite/client.ts +1 -0
  95. package/corpus/templates/analytics/app/components/layout/Layout.tsx +5 -3
  96. package/corpus/templates/analytics/app/i18n/zh-TW.ts +69 -70
  97. package/corpus/templates/analytics/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  98. package/corpus/templates/assets/app/components/layout/Layout.tsx +3 -3
  99. package/corpus/templates/assets/app/i18n/zh-TW.ts +82 -82
  100. package/corpus/templates/assets/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  101. package/corpus/templates/brain/app/components/layout/Layout.tsx +6 -4
  102. package/corpus/templates/brain/app/i18n/zh-TW.ts +90 -90
  103. package/corpus/templates/brain/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  104. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
  105. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +1 -1
  106. package/corpus/templates/calendar/app/i18n/zh-TW.ts +57 -57
  107. package/corpus/templates/calendar/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  108. package/corpus/templates/calendar/server/lib/booking-og-fonts.ts +20 -6
  109. package/corpus/templates/calendar/server/lib/booking-og-image.ts +17 -9
  110. package/corpus/templates/chat/app/components/layout/Layout.tsx +5 -3
  111. package/corpus/templates/chat/app/i18n/zh-TW.ts +3 -3
  112. package/corpus/templates/chat/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  113. package/corpus/templates/clips/AGENTS.md +6 -0
  114. package/corpus/templates/clips/actions/delete-recording-permanent.ts +7 -1
  115. package/corpus/templates/clips/actions/get-recording-player-data.ts +44 -2
  116. package/corpus/templates/clips/actions/navigate.ts +2 -0
  117. package/corpus/templates/clips/actions/save-bug-report-context.ts +173 -0
  118. package/corpus/templates/clips/actions/view-screen.ts +58 -7
  119. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +9 -3
  120. package/corpus/templates/clips/app/hooks/use-navigation-state.ts +17 -0
  121. package/corpus/templates/clips/app/i18n/ar-SA.ts +31 -0
  122. package/corpus/templates/clips/app/i18n/de-DE.ts +32 -0
  123. package/corpus/templates/clips/app/i18n/en-US.ts +32 -0
  124. package/corpus/templates/clips/app/i18n/es-ES.ts +32 -0
  125. package/corpus/templates/clips/app/i18n/fr-FR.ts +32 -0
  126. package/corpus/templates/clips/app/i18n/hi-IN.ts +32 -0
  127. package/corpus/templates/clips/app/i18n/ja-JP.ts +31 -0
  128. package/corpus/templates/clips/app/i18n/ko-KR.ts +32 -0
  129. package/corpus/templates/clips/app/i18n/pt-BR.ts +32 -0
  130. package/corpus/templates/clips/app/i18n/zh-CN.ts +30 -0
  131. package/corpus/templates/clips/app/i18n/zh-TW.ts +461 -451
  132. package/corpus/templates/clips/app/routes/bug-report.done.tsx +126 -0
  133. package/corpus/templates/clips/app/routes/bug-report.tsx +222 -0
  134. package/corpus/templates/clips/app/routes/record.tsx +104 -12
  135. package/corpus/templates/clips/changelog/2026-06-26-brief-network-blips-no-longer-block-recording-or-wrongly-pro.md +6 -0
  136. package/corpus/templates/clips/changelog/2026-06-26-bug-report-recordings-can-keep-redacted-host-app-context-wit.md +6 -0
  137. package/corpus/templates/clips/changelog/2026-06-26-bug-report-widgets-can-launch-clips-recordings-from-embedded.md +6 -0
  138. package/corpus/templates/clips/changelog/2026-06-26-desktop-recording-keeps-connected-users-out-of-the-storage-s.md +6 -0
  139. package/corpus/templates/clips/changelog/2026-06-26-if-a-recording-can-t-be-uploaded-the-chrome-extension-now-sa.md +6 -0
  140. package/corpus/templates/clips/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  141. package/corpus/templates/clips/chrome-extension/public/manifest.json +9 -2
  142. package/corpus/templates/clips/chrome-extension/src/background.ts +43 -0
  143. package/corpus/templates/clips/chrome-extension/src/offscreen.ts +111 -6
  144. package/corpus/templates/clips/chrome-extension/src/popup.ts +18 -7
  145. package/corpus/templates/clips/desktop/src/app.tsx +53 -19
  146. package/corpus/templates/clips/server/db/schema.ts +26 -0
  147. package/corpus/templates/clips/server/lib/public-agent-context.ts +51 -0
  148. package/corpus/templates/clips/server/plugins/auth.ts +1 -0
  149. package/corpus/templates/clips/server/plugins/db.ts +28 -0
  150. package/corpus/templates/clips/server/routes/api/agent-context.json.get.ts +4 -1
  151. package/corpus/templates/clips/shared/bug-report.ts +161 -0
  152. package/corpus/templates/content/app/components/layout/Layout.tsx +10 -8
  153. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -1
  154. package/corpus/templates/content/app/i18n/zh-TW.ts +67 -66
  155. package/corpus/templates/content/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  156. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
  157. package/corpus/templates/design/app/i18n/zh-TW.ts +44 -44
  158. package/corpus/templates/design/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  159. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +5 -4
  160. package/corpus/templates/dispatch/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  161. package/corpus/templates/forms/app/components/layout/Layout.tsx +4 -2
  162. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +1 -1
  163. package/corpus/templates/forms/app/i18n/zh-TW.ts +48 -48
  164. package/corpus/templates/forms/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  165. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +3 -3
  166. package/corpus/templates/macros/app/i18n/zh-TW.ts +5 -5
  167. package/corpus/templates/macros/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  168. package/corpus/templates/mail/app/i18n/zh-TW.ts +83 -83
  169. package/corpus/templates/mail/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  170. package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -3
  171. package/corpus/templates/plan/app/i18n/zh-TW.ts +69 -69
  172. package/corpus/templates/plan/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  173. package/corpus/templates/slides/app/components/layout/Layout.tsx +3 -3
  174. package/corpus/templates/slides/app/i18n/zh-TW.ts +64 -64
  175. package/corpus/templates/slides/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  176. package/corpus/templates/videos/app/components/layout/Layout.tsx +2 -2
  177. package/corpus/templates/videos/app/i18n/zh-TW.ts +54 -54
  178. package/corpus/templates/videos/changelog/2026-06-27-traditional-chinese-copy-uses-taiwan-terminology.md +6 -0
  179. package/dist/client/AgentPanel.d.ts.map +1 -1
  180. package/dist/client/AgentPanel.js +16 -6
  181. package/dist/client/AgentPanel.js.map +1 -1
  182. package/dist/collab/routes.d.ts +2 -2
  183. package/dist/deploy/build.d.ts +3 -1
  184. package/dist/deploy/build.d.ts.map +1 -1
  185. package/dist/deploy/build.js +372 -37
  186. package/dist/deploy/build.js.map +1 -1
  187. package/dist/deploy/route-discovery.d.ts +1 -1
  188. package/dist/deploy/route-discovery.js +1 -1
  189. package/dist/deploy/route-discovery.js.map +1 -1
  190. package/dist/notifications/routes.d.ts +1 -1
  191. package/dist/observability/routes.d.ts +5 -5
  192. package/dist/resources/handlers.d.ts +3 -3
  193. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  194. package/dist/server/edge.d.ts +11 -0
  195. package/dist/server/edge.d.ts.map +1 -0
  196. package/dist/server/edge.js +11 -0
  197. package/dist/server/edge.js.map +1 -0
  198. package/dist/server/transcribe-voice.d.ts +1 -1
  199. package/dist/styles/agent-native.css +123 -0
  200. package/dist/templates/default/app/i18n/zh-TW.ts +44 -44
  201. package/dist/vite/client.d.ts.map +1 -1
  202. package/dist/vite/client.js +1 -0
  203. package/dist/vite/client.js.map +1 -1
  204. package/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
  205. package/docs/content/locales/zh-TW/actions.md +82 -82
  206. package/docs/content/locales/zh-TW/agent-mentions.md +22 -22
  207. package/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
  208. package/docs/content/locales/zh-TW/agent-teams.md +29 -29
  209. package/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
  210. package/docs/content/locales/zh-TW/audit-log.md +16 -16
  211. package/docs/content/locales/zh-TW/authentication.md +32 -32
  212. package/docs/content/locales/zh-TW/automations.md +32 -32
  213. package/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
  214. package/docs/content/locales/zh-TW/cli-adapters.md +17 -17
  215. package/docs/content/locales/zh-TW/client.md +62 -62
  216. package/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
  217. package/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
  218. package/docs/content/locales/zh-TW/components.md +51 -51
  219. package/docs/content/locales/zh-TW/context-awareness.md +66 -66
  220. package/docs/content/locales/zh-TW/creating-templates.md +39 -39
  221. package/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
  222. package/docs/content/locales/zh-TW/database.md +21 -21
  223. package/docs/content/locales/zh-TW/deployment.md +37 -37
  224. package/docs/content/locales/zh-TW/dispatch.md +43 -43
  225. package/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
  226. package/docs/content/locales/zh-TW/durable-resume.md +18 -18
  227. package/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
  228. package/docs/content/locales/zh-TW/evals.md +16 -16
  229. package/docs/content/locales/zh-TW/extensions.md +81 -81
  230. package/docs/content/locales/zh-TW/external-agents.md +146 -146
  231. package/docs/content/locales/zh-TW/faq.md +43 -43
  232. package/docs/content/locales/zh-TW/file-uploads.md +11 -11
  233. package/docs/content/locales/zh-TW/frames.md +33 -33
  234. package/docs/content/locales/zh-TW/getting-started.md +28 -28
  235. package/docs/content/locales/zh-TW/harness-agents.md +78 -78
  236. package/docs/content/locales/zh-TW/human-approval.md +27 -27
  237. package/docs/content/locales/zh-TW/internationalization.md +19 -19
  238. package/docs/content/locales/zh-TW/key-concepts.md +68 -68
  239. package/docs/content/locales/zh-TW/local-file-mode.md +50 -50
  240. package/docs/content/locales/zh-TW/mcp-apps.md +38 -38
  241. package/docs/content/locales/zh-TW/mcp-clients.md +67 -67
  242. package/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
  243. package/docs/content/locales/zh-TW/messaging.md +99 -99
  244. package/docs/content/locales/zh-TW/migration-workbench.md +6 -6
  245. package/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
  246. package/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
  247. package/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
  248. package/docs/content/locales/zh-TW/notifications.md +23 -23
  249. package/docs/content/locales/zh-TW/observability.md +49 -49
  250. package/docs/content/locales/zh-TW/observational-memory.md +23 -23
  251. package/docs/content/locales/zh-TW/onboarding.md +40 -40
  252. package/docs/content/locales/zh-TW/plan-plugin.md +37 -37
  253. package/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
  254. package/docs/content/locales/zh-TW/processors.md +17 -17
  255. package/docs/content/locales/zh-TW/progress.md +15 -15
  256. package/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
  257. package/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
  258. package/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
  259. package/docs/content/locales/zh-TW/routing.md +9 -9
  260. package/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
  261. package/docs/content/locales/zh-TW/security.md +49 -49
  262. package/docs/content/locales/zh-TW/server.md +47 -47
  263. package/docs/content/locales/zh-TW/sharing.md +22 -22
  264. package/docs/content/locales/zh-TW/skills-guide.md +46 -46
  265. package/docs/content/locales/zh-TW/template-analytics.md +40 -40
  266. package/docs/content/locales/zh-TW/template-assets.md +69 -69
  267. package/docs/content/locales/zh-TW/template-brain.md +81 -81
  268. package/docs/content/locales/zh-TW/template-calendar.md +40 -40
  269. package/docs/content/locales/zh-TW/template-chat.md +27 -27
  270. package/docs/content/locales/zh-TW/template-clips.md +85 -85
  271. package/docs/content/locales/zh-TW/template-content.md +65 -66
  272. package/docs/content/locales/zh-TW/template-design.md +29 -29
  273. package/docs/content/locales/zh-TW/template-dispatch.md +51 -51
  274. package/docs/content/locales/zh-TW/template-forms.md +25 -25
  275. package/docs/content/locales/zh-TW/template-mail.md +71 -71
  276. package/docs/content/locales/zh-TW/template-plan.md +92 -92
  277. package/docs/content/locales/zh-TW/template-slides.md +52 -52
  278. package/docs/content/locales/zh-TW/template-videos.md +30 -30
  279. package/docs/content/locales/zh-TW/tracking.md +29 -29
  280. package/docs/content/locales/zh-TW/using-your-agent.md +18 -18
  281. package/docs/content/locales/zh-TW/voice-input.md +19 -19
  282. package/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
  283. package/docs/content/locales/zh-TW/workspace-connections.md +41 -41
  284. package/docs/content/locales/zh-TW/workspace-management.md +27 -27
  285. package/docs/content/locales/zh-TW/workspace.md +58 -58
  286. package/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
  287. package/docs/content/template-clips.md +48 -2
  288. package/package.json +2 -1
  289. package/src/templates/default/app/i18n/zh-TW.ts +44 -44
@@ -1,19 +1,19 @@
1
1
  ---
2
- title: "嵌入SDK"
3
- description: "使用頁面上下文和主機指令將 Agent-Native sidecar 嵌入到現有 SaaS 應用中。"
2
+ title: "嵌入 SDK"
3
+ description: "使用頁面脈絡和主機指令將 Agent-Native sidecar 嵌入到現有 SaaS 應用中。"
4
4
  ---
5
5
 
6
- # 嵌入SDK
6
+ # 嵌入 SDK
7
7
 
8
8
  將 Agent-Native 嵌入現有產品:保留您的 SaaS 應用程式,新增耐用的
9
9
  代理sidecar,讓該代理檢視使用者所在頁面並進行操作
10
- 已在使用。如果您仍在無頭代理、丰富聊天和
10
+ 已在使用。如果您仍在無頭代理、豐富聊天和
11
11
  嵌入式邊車,或完整的應用程式,從
12
12
  [Agent Surfaces](/docs/agent-surfaces).
13
13
 
14
- ```an-diagram title="包埋膜" summary="主機應用程式提供伺服器端驗證和實時頁面上下文; Agent-Native 執行持久 sidecar 並通過用戶端操作和主機指令到達開啟的分頁。"
14
+ ```an-diagram title="包埋膜" summary="主機應用程式提供伺服器端驗證和即時頁面脈絡; Agent-Native 執行持久 sidecar 並透過用戶端操作和主機指令到達開啟的分頁。"
15
15
  {
16
- "html": "<div class=\"diagram-embed\"><div class=\"diagram-box\" data-rough><strong>宿主 SaaS 應用</strong><small class=\"diagram-muted\">你的介面,你的認證</small></div><div class=\"diagram-col\"><div class=\"diagram-pill accent\">getContext &rarr;</div><div class=\"diagram-pill\">&larr; 用戶端操作</div><div class=\"diagram-pill\">&larr; 宿主指令</div></div><div class=\"diagram-panel center\" data-rough><strong>Agent-Native sidecar</strong><small class=\"diagram-muted\">持久聊天 · 應用狀態 · 擴充功能</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>SQL<br><small class=\"diagram-muted\">框架表</small></div></div>",
16
+ "html": "<div class=\"diagram-embed\"><div class=\"diagram-box\" data-rough><strong>主機 SaaS 應用</strong><small class=\"diagram-muted\">你的介面,你的認證</small></div><div class=\"diagram-col\"><div class=\"diagram-pill accent\">getContext &rarr;</div><div class=\"diagram-pill\">&larr; 用戶端操作</div><div class=\"diagram-pill\">&larr; 主機指令</div></div><div class=\"diagram-panel center\" data-rough><strong>Agent-Native sidecar</strong><small class=\"diagram-muted\">持久聊天 · 應用狀態 · 擴充功能</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>SQL<br><small class=\"diagram-muted\">框架表</small></div></div>",
17
17
  "css": ".diagram-embed{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-embed .diagram-col{display:flex;flex-direction:column;gap:8px}.diagram-embed .diagram-arrow{font-size:22px;line-height:1}.diagram-embed .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
18
18
  }
19
19
  ```
@@ -23,15 +23,15 @@ description: "使用頁面上下文和主機指令將 Agent-Native sidecar 嵌
23
23
  對於大多數 SaaS 主機,**使用完整的嵌入式執行時** - 伺服器外掛
24
24
  `createAgentNativeEmbeddedPlugin` 加上 `<AgentNativeEmbedded>` 用戶端
25
25
  元件。這是推薦的預設值:它重用整個框架
26
- (actions、SQL 支持的應用程式狀態、擴充功能、瀏覽器工作階段工具)並給出
26
+ (actions、SQL 支援的應用程式狀態、擴充功能、瀏覽器工作階段工具)並給出
27
27
  代理檢視使用者正在使用的頁面並進行操作的能力。
28
28
 
29
29
  主機將 Agent-Native 伺服器路由掛載到其現有應用程式中,傳遞其
30
- 使用者登入Agent-Native,並在產品UI中渲染React側邊欄。
30
+ 使用者登入 Agent-Native,並在產品 UI 中渲染 React 側邊欄。
31
31
  Agent-Native 使用主機部署、主機工作階段和設定
32
- `DATABASE_URL` 管理自己的框架表:聊天線程、設定,
32
+ `DATABASE_URL` 管理自己的框架表:聊天對話串、設定,
33
33
  應用程式狀態、擴充功能、擴充功能資料、機密、瀏覽器工作階段和
34
- 行動路線。
34
+ 行動路由。
35
35
 
36
36
  ```bash
37
37
  pnpm add @agent-native/core
@@ -121,13 +121,13 @@ export function BuilderAppShell({ children, content, editor }) {
121
121
  }
122
122
  ```
123
123
 
124
- 此模式是建議的預設模式,因為它重用了完整的框架:後端 actions 安裝在 `/_agent-native/actions` 下,代理可以調用與 UI 相同的 actions,使用者建立的擴充功能存儲在 SQL 中,`extensionData` 是持久的且具有使用者/組織範圍,瀏覽器工作階段工具允許後端代理檢查或操作目前開啟的分頁。
124
+ 此模式是建議的預設模式,因為它重用了完整的框架:後端 actions 安裝在 `/_agent-native/actions` 下,代理可以呼叫與 UI 相同的 actions,使用者建立的擴充功能儲存在 SQL 中,`extensionData` 是持久的且具有使用者/組織範圍,瀏覽器工作階段工具允許後端代理檢查或操作目前開啟的分頁。
125
125
 
126
126
  主機驗證是伺服器端的。不要將瀏覽器的身分作為事實來源傳遞;使用主機的請求/工作階段物件或短期伺服器驗證的權杖。如果主機不公開電子郵件,則返回穩定的 `userId`,Agent-Native 將使用它作為所有者金鑰。
127
127
 
128
128
  ### 資料庫隔離
129
129
 
130
- 嵌入模式管理SQL中的Agent-Native表。對於成熟的 SaaS 產品,最安全的預設設定是**相同的託管和驗證、專用的 Agent-Native 資料庫/架構**:
130
+ 嵌入模式管理 SQL 中的 Agent-Native 表。對於成熟的 SaaS 產品,最安全的預設設定是**相同的託管和驗證、專用的 Agent-Native 資料庫/架構**:
131
131
 
132
132
  ```ts
133
133
  export default createAgentNativeEmbeddedPlugin({
@@ -137,22 +137,22 @@ export default createAgentNativeEmbeddedPlugin({
137
137
  });
138
138
  ```
139
139
 
140
- 支持使用主機產品的主要 `DATABASE_URL`,但請明確選取。 Agent-Native 建立 `settings`、`application_state`、`tools`、`tool_data` 等框架表、瀏覽器工作階段表、秘密、聊天線程和相關索引。專用的資料庫/模式可以避免表名衝突,保持託管表的所有權清晰,並使備份/保留策略更容易推理。如果您有意共用主機資料庫,請首先檢查現有表名稱,並將 Agent-Native 表視為框架擁有的表。
140
+ 支援使用主機產品的主要 `DATABASE_URL`,但請明確選取。 Agent-Native 建立 `settings`、`application_state`、`tools`、`tool_data` 等框架表、瀏覽器工作階段表、秘密、聊天對話串和相關索引。專用的資料庫/模式可以避免表名衝突,保持託管表的所有權清晰,並使備份/保留策略更容易推理。如果您有意共用主機資料庫,請首先檢查現有表名稱,並將 Agent-Native 表視為框架擁有的表。
141
141
 
142
142
  ## 其他模式 {#other-modes}
143
143
 
144
144
  上面的包含電池的外掛是幸福的道路。伸手去拿其中之一
145
145
  只有當它更適合您的情況時:
146
146
 
147
- | 模式 | 什么時候使用它 | 包 |
147
+ | 模式 | 什麼時候使用它 | 包 |
148
148
  | ------------------------ | ------------------------------------------------------------------------------------- | --------------------------------------- |
149
- | **嵌入式應用程式選取器** | 啟動完整的 Agent-Native 應用程式作為重點 iframe(資產選取器、表單生成器、審批面板)。 | `@agent-native/embedding` |
150
- | **`<AgentNative>` 主橋** | 手動連線頁面上下文和用戶端 actions 的獨立 sidecar 應用或跨來源 iframe。 | `@agent-native/core/client` |
151
- | **便攜式擴充功能** | 當 SaaS 已擁有擴充功能存儲/批準時,讓主機使用者建置沙盒迷你應用程式。 | `@agent-native/core/client`擴充功能插槽 |
149
+ | **嵌入式應用程式選取器** | 啟動完整的 Agent-Native 應用程式作為重點 iframe(資產選取器、表單生成器、核准面板)。 | `@agent-native/embedding` |
150
+ | **`<AgentNative>` 主橋** | 手動連線頁面脈絡和用戶端 actions 的獨立 sidecar 應用或跨來源 iframe。 | `@agent-native/core/client` |
151
+ | **便攜式擴充功能** | 當 SaaS 已擁有擴充功能儲存/核准時,讓主機使用者建置沙盒迷你應用程式。 | `@agent-native/core/client`擴充功能插槽 |
152
152
 
153
- 較低級別的 `@agent-native/embedding` 包公開:
153
+ 較低階別的 `@agent-native/embedding` 包公開:
154
154
 
155
- | 匯入路徑 | 它提供什么 |
155
+ | 匯入路徑 | 它提供什麼 |
156
156
  | ---------------------------------- | --------------------------------------------------------------------------------- |
157
157
  | `@agent-native/embedding` | `EmbeddedApp` 選取器元件、`getA2AUrl`、`getMcpUrl`、`sendMessage`(流式傳輸 A2A) |
158
158
  | `@agent-native/embedding/react` | React 特定的鉤子和元件 |
@@ -168,9 +168,9 @@ pnpm add @agent-native/embedding
168
168
 
169
169
  當主機產品想要推出完整的產品時,請使用`@agent-native/embedding`
170
170
  Agent-Native 應用程式作為聚焦的 iframe 表面:資產選取器、資產生成器,
171
- 表單建置器、行事曆時段選取器、審批面板或任何其他特定於工作的
171
+ 表單建置器、行事曆時段選取器、核准面板或任何其他特定於工作的
172
172
  工作流程。這是故意小於下面的 sidecar 主橋:
173
- iframe 宣布準備就緒,主機可以發送命名訊息,並且嵌入
173
+ iframe 宣布準備就緒,主機可以傳送命名訊息,並且嵌入
174
174
  應用程式可以發出域事件,例如 `chooseAsset` 或 `close`。
175
175
 
176
176
  ```tsx
@@ -200,7 +200,7 @@ export function AssetPickerDialog({ close }) {
200
200
  }
201
201
  ```
202
202
 
203
- 在嵌入式應用程式內,使用瀏覽器橋宣布準備就緒並發送
203
+ 在嵌入式應用程式內,使用瀏覽器橋宣布準備就緒並傳送
204
204
  事件返回主機:
205
205
 
206
206
  ```ts
@@ -217,8 +217,8 @@ sendEmbeddedAppMessage("chooseAsset", {
217
217
  });
218
218
  ```
219
219
 
220
- 資產還發出 `chooseImage` 作為舊圖片選取器的兼容性別名
221
- 主機;新的整合應該偵听 `chooseAsset`。
220
+ 資產還發出 `chooseImage` 作為舊圖片選取器的相容性別名
221
+ 主機;新的整合應該偵聽 `chooseAsset`。
222
222
 
223
223
  對於託管的第一方應用,啟用跨應用 SSO,並以 Dispatch 作為身分
224
224
  集線器,使 `content.agent-native.com` 和 `assets.agent-native.com` 連結使用者
@@ -226,8 +226,8 @@ sendEmbeddedAppMessage("chooseAsset", {
226
226
  在需要第三方 cookie 彈性時嵌入工作階段;普通應用程式cookie
227
227
  本身並不是一個完整的嵌入驗證故事。
228
228
 
229
- 同一包包括用於協議發現的代理端點幫助程序和
230
- 通過 A2A 流式傳輸文本:
229
+ 同一包包括用於協議發現的代理端點幫助程式和
230
+ 透過 A2A 流式傳輸文字:
231
231
 
232
232
  ```ts
233
233
  import { getA2AUrl, getMcpUrl, sendMessage } from "@agent-native/embedding";
@@ -245,11 +245,11 @@ for await (const chunk of sendMessage(
245
245
 
246
246
  ### 主機應用程式(`<AgentNative>`主機橋)
247
247
 
248
- > 首選上面包含電池的外掛。使用這個較低級別的橋
248
+ > 首選上面包含電池的外掛。使用這個較低階別的橋
249
249
  > 僅適用於您連線頁面的獨立 sidecar 應用程式或跨來源 iframe
250
- > 上下文和用戶端 actions 自己。
250
+ > 脈絡和用戶端 actions 自己。
251
251
 
252
- 對於獨立的 sidecar 應用程式或跨來源 iframe,請使用較低級別的 `<AgentNative />`。它將 iframe sidecar 和連線頁面上下文、實時用戶端 actions 以及主機刷新/導覽指令呈現在一個位置:
252
+ 對於獨立的 sidecar 應用程式或跨來源 iframe,請使用較低階別的 `<AgentNative />`。它將 iframe sidecar 和連線頁面脈絡、即時用戶端 actions 以及主機重新整理/導覽指令呈現在一個位置:
253
253
 
254
254
  ```tsx
255
255
  import { AgentNative, defineClientAction } from "@agent-native/core/client";
@@ -324,13 +324,13 @@ export function AssistantDock({ customer, sessionToken }) {
324
324
  }
325
325
  ```
326
326
 
327
- 如果您只需要顯式語義上下文,請使用 `screen={false}`。使用 `screen={{ includeDomHtml: true }}` 作為尚未將 UI 對應到語義 ID 和選取狀態的應用程式的後備。預設情況下,主橋僅接受來自 `agentUrl` 來源的訊息。如果 iframe URL 是可信來源不同的路由/代理 URL,則傳遞 `agentOrigin`。
327
+ 如果您只需要顯式語義脈絡,請使用 `screen={false}`。使用 `screen={{ includeDomHtml: true }}` 作為尚未將 UI 對應到語義 ID 和選取狀態的應用程式的後備。預設情況下,主橋僅接受來自 `agentUrl` 來源的訊息。如果 iframe URL 是可信來源不同的路由/代理 URL,則傳遞 `agentOrigin`。
328
328
 
329
- 對於非 React 主機,直接調用 `createAgentNativeHostBridge()` 並傳遞相同的 `getContext`、`actions` 和 `commands` 選項。
329
+ 對於非 React 主機,直接呼叫 `createAgentNativeHostBridge()` 並傳遞相同的 `getContext`、`actions` 和 `commands` 選項。
330
330
 
331
331
  ### Iframe 側
332
332
 
333
- 在 Agent-Native sidecar 內,使用框架助手請求主機上下文,發現實時瀏覽器工作階段 actions,執行它們,或要求主機執行 UI 工作。在正式環境中始終通過預期的 `hostOrigin`:
333
+ 在 Agent-Native sidecar 內,使用框架助手請求主機脈絡,發現即時瀏覽器工作階段 actions,執行它們,或要求主機執行 UI 工作。在正式環境中始終透過預期的 `hostOrigin`:
334
334
 
335
335
  ```ts
336
336
  import {
@@ -371,9 +371,9 @@ const hostTools = createAgentNativeHostTools({
371
371
 
372
372
  ### 伺服器中介工具橋
373
373
 
374
- 對於 CLAW 風格的同事,iframe 還可以向 sidecar 後端註冊其實時瀏覽器分頁。然後,代理獲取正常的後端工具,將請求排入佇列,iframe 聲明它,主機頁面執行它,後端將結果返回給代理。
374
+ 對於 CLAW 風格的同事,iframe 還可以向 sidecar 後端註冊其即時瀏覽器分頁。然後,代理取得正常的後端工具,將請求排入佇列,iframe 聲明它,主機頁面執行它,後端將結果返回給代理。
375
375
 
376
- ```an-diagram title="伺服器介導的瀏覽器工作階段橋" summary="後端工具將工作排隊;註冊的分頁聲明它,在實時頁面上執行它,並將結果返回給代理 - 因此 backend/Slack/A2A 代理仍然可以觸摸開啟的分頁。"
376
+ ```an-diagram title="伺服器介導的瀏覽器工作階段橋" summary="後端工具將工作排隊;註冊的分頁聲明它,在即時頁面上執行它,並將結果返回給代理 - 因此 backend/Slack/A2A 代理仍然可以觸摸開啟的分頁。"
377
377
  {
378
378
  "html": "<div class=\"diagram-bridge\"><div class=\"diagram-node\" data-rough>後端代理<br><small class=\"diagram-muted\">聊天 · Slack · A2A</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>enqueue request<br><small class=\"diagram-muted\">/_agent-native/browser-sessions</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\" data-rough>活動標籤頁面接管它<br><small class=\"diagram-muted\">registered bridge</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-pill ok\">result &rarr; agent</div></div>",
379
379
  "css": ".diagram-bridge{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-bridge .diagram-arrow{font-size:22px;line-height:1}"
@@ -401,15 +401,15 @@ export function SidecarRuntime() {
401
401
 
402
402
  框架自動掛載`/_agent-native/browser-sessions`。一旦網橋執行,sidecar 代理就可以使用:
403
403
 
404
- | 工具 | 目的 |
405
- | ------------------------------ | ---------------------------------------------- |
406
- | `list-browser-sessions` | 檢視目前使用者的已連線主機分頁。 |
407
- | `view-browser-session` | 向實時分頁詢問目前頁面上下文和螢幕快照。 |
408
- | `list-browser-session-actions` | 向實時分頁詢問目前用戶端操作清單。 |
409
- | `run-browser-session-action` | 通過實時分頁執行一項目前用戶端操作。 |
410
- | `send-browser-session-command` | 請求主機刷新、導覽、重新安裝、重新載入或批準。 |
404
+ | 工具 | 目的 |
405
+ | ------------------------------ | -------------------------------------------------- |
406
+ | `list-browser-sessions` | 檢視目前使用者的已連線主機分頁。 |
407
+ | `view-browser-session` | 向即時分頁詢問目前頁面脈絡和螢幕截圖。 |
408
+ | `list-browser-session-actions` | 向即時分頁詢問目前用戶端操作清單。 |
409
+ | `run-browser-session-action` | 透過即時分頁執行一項目前用戶端操作。 |
410
+ | `send-browser-session-command` | 請求主機重新整理、導覽、重新安裝、重新載入或核准。 |
411
411
 
412
- 這是當代理在後端、Slack/Telegram/email 中執行或作為 A2A 被調用者執行時使用的橋,但在開啟時仍需要觸摸使用者目前的瀏覽器分頁。如果瀏覽器關閉,後端 actions 仍應處理持久工作,並且瀏覽器工作階段工具將報告沒有連線活動分頁。
412
+ 這是當代理在後端、Slack/Telegram/email 中執行或作為 A2A 被呼叫者執行時使用的橋,但在開啟時仍需要觸摸使用者目前的瀏覽器分頁。如果瀏覽器關閉,後端 actions 仍應處理持久工作,並且瀏覽器工作階段工具將報告沒有連線活動分頁。
413
413
 
414
414
  ### Actions
415
415
 
@@ -417,20 +417,20 @@ export function SidecarRuntime() {
417
417
 
418
418
  | 動作型別 | 執行位置 | 瀏覽器關閉時可以工作嗎? | 最適合 |
419
419
  | ---------- | ----------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------- |
420
- | 後端操作 | Sidecar 應用、後端 API、MCP 或整合適配器 | 是 | 持久的工作,例如建立、更新、發布、同步、發送、匯入。 |
421
- | 用戶端操作 | 通過 `<AgentNative actions={...} />` 的目前瀏覽器分頁 | 否 | 臨時 UI 的工作方式類似於選取元素、讀取編輯器狀態、滾動到一行、複製目前畫布狀態。 |
420
+ | 後端操作 | Sidecar 應用、後端 API、MCP 或整合轉接器 | 是 | 持久的工作,例如建立、更新、發布、同步、傳送、匯入。 |
421
+ | 用戶端操作 | 透過 `<AgentNative actions={...} />` 的目前瀏覽器分頁 | 否 | 臨時 UI 的工作方式類似於選取元素、讀取編輯器狀態、滾動到一行、複製目前畫布狀態。 |
422
422
 
423
- 後端 actions 應該是任何必須在刷新、關閉瀏覽器、重試或整合觸發執行後仍然存在的預設設定。它們屬於 sidecar 應用程式的正常 Agent-Native 操作/工具層,代理可以在其中通過聊天、自動化、Slack/Telegram/電子郵件整合和後台作業調用它們。
423
+ 後端 actions 應該是任何必須在重新整理、關閉瀏覽器、重試或整合觸發執行後仍然存在的預設設定。它們屬於 sidecar 應用程式的正常 Agent-Native 操作/工具層,代理可以在其中透過聊天、自動化、Slack/Telegram/電子郵件整合和背景作業呼叫它們。
424
424
 
425
- 用戶端 actions 是一個瀏覽器分頁的實時橋梁。主機使用 `source: "client"` 和 `availability: "browser-session"` 來通告它們,並且 sidecar 應該將該清單視為臨時的。當路線或選取發生變化時重新列出 actions,並在分頁消失時回退到後端 actions。
425
+ 用戶端 actions 是一個瀏覽器分頁的即時橋梁。主機使用 `source: "client"` 和 `availability: "browser-session"` 來通告它們,並且 sidecar 應該將該清單視為臨時的。當路由或選取發生變化時重新列出 actions,並在分頁消失時回退到後端 actions。
426
426
 
427
427
  ### 便攜式擴充功能
428
428
 
429
429
  > 當您希望 Agent-Native 進行管理時,首選包含電池的外掛
430
- > 擴充功能定義、批準、存儲和代理建立的擴充功能。使用
430
+ > 擴充功能定義、核准、儲存和代理建立的擴充功能。使用
431
431
  > 僅當 SaaS 已經擁有這些問題時才使用下面的可移植插槽。
432
432
 
433
- SDK 還支持使用者定義的擴充功能:主機 SaaS 可以在命名槽中呈現的沙盒 Alpine.js 迷你應用程式。當客戶想要針對代理使用的相同操作/上下文介面建置自己的小面板、計算器、儀表板或工作流程助手時,請使用此選項。
433
+ SDK 還支援使用者定義的擴充功能:主機 SaaS 可以在命名槽中呈現的沙盒 Alpine.js 迷你應用程式。當客戶想要針對代理使用的相同操作/脈絡介面建置自己的小面板、計算器、儀表板或工作流程助手時,請使用此選項。
434
434
 
435
435
  ```tsx
436
436
  import {
@@ -506,7 +506,7 @@ export function CustomerSidebar({ customer, userExtensions }) {
506
506
  }
507
507
  ```
508
508
 
509
- 清單是安裝合同。當存在 `requestedActions`、`requestedCommands` 或 `storageScopes` 時,SDK 在 iframe 請求到達操作橋或存儲適配器之前在主機中強制執行它們。當 `slots` 存在時,`AgentNativeExtensionSlot` 僅在匹配插槽中渲染擴充功能。主機仍然可以使用 `allowedActions`、`allowedCommands` 和 `allowedStorageScopes` 覆蓋每個插槽的策略。
509
+ 清單是安裝合同。當存在 `requestedActions`、`requestedCommands` 或 `storageScopes` 時,SDK 在 iframe 請求到達操作橋或儲存轉接器之前在主機中強制執行它們。當 `slots` 存在時,`AgentNativeExtensionSlot` 僅在匹配插槽中渲染擴充功能。主機仍然可以使用 `allowedActions`、`allowedCommands` 和 `allowedStorageScopes` 覆蓋每個插槽的策略。
510
510
 
511
511
  擴充功能名是普通的 HTML。 iframe 執行時為迷你應用程式提供相同的安全橋原語:
512
512
 
@@ -531,51 +531,51 @@ iframe 內的可用全域變數:
531
531
  | ------------------------------ | ------------------------------------------ |
532
532
  | `appAction(name, args)` | 執行主機聲明的操作。 |
533
533
  | `agentNative.context()` | 讀取目前主機頁面、資源、插槽和使用者資料。 |
534
- | `agentNative.command(name, p)` | 要求主機導覽、刷新、重新安裝或開啟。 |
534
+ | `agentNative.command(name, p)` | 要求主機導覽、重新整理、重新安裝或開啟。 |
535
535
  | `agentNative.refresh(payload)` | `refreshData` 的快捷方式。 |
536
- | `extensionData.*` | 通過主機適配器保留擴充功能本機資料。 |
536
+ | `extensionData.*` | 透過主機轉接器保留擴充功能本機資料。 |
537
537
 
538
- 預設情況下,`extensionData` 使用瀏覽器 `localStorage`,這對於原型和本機小部件很有用。正式環境 SaaS 主機應傳遞後端支持的 `storage` 適配器,以便使用者和組織範圍的擴充功能資料持久、可審核並受應用程式權限管理。通用 HTTP 適配器發送 POST 主體(如 `{ operation, extensionId, slotId, collection, id, data, options, context }`),並直接期望 `{ result }` 或結果 JSON。
538
+ 預設情況下,`extensionData` 使用瀏覽器 `localStorage`,這對於原型和本機小工具很有用。正式環境 SaaS 主機應傳遞後端支援的 `storage` 轉接器,以便使用者和組織範圍的擴充功能資料持久、可審核並受應用程式權限管理。通用 HTTP 轉接器傳送 POST 主體(如 `{ operation, extensionId, slotId, collection, id, data, options, context }`),並直接期望 `{ result }` 或結果 JSON。
539
539
 
540
- 這個可移植的 SDK 層與框架的內置 SQL 支持的擴充功能存儲是分開的。在 Agent-Native 應用程式中,使用現有的 `ExtensionSlot`/`EmbeddedExtension` 元件和 `create-extension` 操作。在託管 SaaS 嵌入場景中,當您希望 Agent-Native 開箱即用地管理擴充功能定義、審批、存儲和代理建立的擴充功能時,首選 `createAgentNativeEmbeddedPlugin()` 加上 `AgentNativeEmbedded`。僅當 SaaS 已擁有擴充功能定義、批準、市場、存儲和計費時才使用 `AgentNativeExtensionSlot`。
540
+ 這個可移植的 SDK 層與框架的內建 SQL 支援的擴充功能儲存是分開的。在 Agent-Native 應用程式中,使用現有的 `ExtensionSlot`/`EmbeddedExtension` 元件和 `create-extension` 操作。在託管 SaaS 嵌入場景中,當您希望 Agent-Native 開箱即用地管理擴充功能定義、核准、儲存和代理建立的擴充功能時,首選 `createAgentNativeEmbeddedPlugin()` 加上 `AgentNativeEmbedded`。僅當 SaaS 已擁有擴充功能定義、核准、市場、儲存和計費時才使用 `AgentNativeExtensionSlot`。
541
541
 
542
542
  安全模型:
543
543
 
544
544
  - 擴充功能 iframe 是沙盒的,沒有 `allow-same-origin`;小應用程式無法直接讀取父DOM、cookies或應用程式執行時。
545
- - 擴充功能只能調用主機和擴充功能清單允許的 actions 和指令。
546
- - 有風險的 actions 應設定 `destructive` 或 `requiresApproval`,以便主機可以顯示審批流程。
547
- - 將使用者建立的擴充功能 HTML 視為不受信任。按使用者/組織檢視市場安裝、紀錄操作使用情況和範圍後端存儲。
545
+ - 擴充功能只能呼叫主機和擴充功能清單允許的 actions 和指令。
546
+ - 有風險的 actions 應設定 `destructive` 或 `requiresApproval`,以便主機可以顯示核准流程。
547
+ - 將使用者建立的擴充功能 HTML 視為不受信任。按使用者/組織檢視市場安裝、紀錄操作使用情況和範圍後端儲存。
548
548
 
549
549
  ### 工作階段和分頁
550
550
 
551
- 主機橋的作用域為一對 iframe/主機窗口。如果同一使用者開啟多個分頁,則每個分頁都有自己的 `session`、上下文、選取、用戶端 actions 和暫停的指令回應。不要假設在一個分頁中發現的用戶端操作可以在另一分頁中執行,或者它在導覽後仍然存在。
551
+ 主機橋的作用域為一對 iframe/主機視窗。如果同一使用者開啟多個分頁,則每個分頁都有自己的 `session`、脈絡、選取、用戶端 actions 和暫停的指令回應。不要假設在一個分頁中發現的用戶端操作可以在另一分頁中執行,或者它在導覽後仍然存在。
552
552
 
553
- 對於多分頁產品,在 SQL/後端 actions 中保持持久狀態,並僅將用戶端 actions 用於分頁本機部分:聚焦行、複製可見編輯器狀態、選取畫布元素或刷新目前 React 查詢快取。包含足夠的 `route`、`resource` 和 `selection` 上下文,以便 sidecar 決定目前分頁是否是執行瀏覽器工作階段操作的正確位置。
553
+ 對於多分頁產品,在 SQL/後端 actions 中保持持久狀態,並僅將用戶端 actions 用於分頁本機部分:聚焦行、複製可見編輯器狀態、選取畫布元素或重新整理目前 React 查詢快取。包含足夠的 `route`、`resource` 和 `selection` 脈絡,以便 sidecar 決定目前分頁是否是執行瀏覽器工作階段操作的正確位置。
554
554
 
555
555
  ### 指令模型
556
556
 
557
- 內置指令名稱故意采用應用程式形式,而不是資料庫形式:
557
+ 內建指令名稱故意采用應用程式形式,而不是資料庫形式:
558
558
 
559
559
  | 指令 | 目的 |
560
560
  | -------------------------------------- | ----------------------------------------------- |
561
- | `navigate` | 將主機 UI 行動到路徑/視圖/資源。 |
561
+ | `navigate` | 將主機 UI 行動到路徑/檢視/資源。 |
562
562
  | `refreshData` / `refresh-data` | 要求主機使用戶端資料無效。 |
563
563
  | `remountView` / `remount-view` | 要求主機重新掛載子樹,例如`<App key={key} />`。 |
564
564
  | `hardReload` / `hard-reload` | 完全重新載入瀏覽器。 |
565
- | `openResource` / `open-resource` | 在主機UI中開啟特定域物件。 |
566
- | `requestApproval` / `request-approval` | 要求主持人展示確認流程。為此註冊一個處理程序。 |
565
+ | `openResource` / `open-resource` | 在主機 UI 中開啟特定域物件。 |
566
+ | `requestApproval` / `request-approval` | 要求主持人展示確認流程。為此註冊一個處理常式。 |
567
567
 
568
- 如果未提供處理程序,安全預設值將調度瀏覽器事件,例如 `agentNative:refresh-data` 和 `agentNative:remount-view`。 `requestApproval`沒有預設處理程序;在依賴它之前先註冊一個。
568
+ 如果未提供處理常式,安全預設值將調度瀏覽器事件,例如 `agentNative:refresh-data` 和 `agentNative:remount-view`。 `requestApproval`沒有預設處理常式;在依賴它之前先註冊一個。
569
569
 
570
- ### 審批指南
570
+ ### 核准指南
571
571
 
572
- 在其清單中將有風險的用戶端 actions 標記為 `destructive: true`,並在執行刪除、發布、發送、收費、邀請、共用或以其他方式影響目前視圖之外的使用者的操作之前需要主機批準。後端 actions 也應該執行自己的授權和批準檢查;主機批準是有用的使用者體驗,而不是安全邊界。
572
+ 在其清單中將有風險的用戶端 actions 標記為 `destructive: true`,並在執行刪除、發布、傳送、收費、邀請、共用或以其他方式影響目前檢視之外的使用者的操作之前需要主機核准。後端 actions 也應該執行自己的授權和核准檢查;主機核准是有用的使用者體驗,而不是安全邊界。
573
573
 
574
574
  更喜歡這個形狀:
575
575
 
576
576
  - 持久突變在後端操作中執行,包括驗證、驗證、審核記錄紀錄和重試。
577
- - 主機指令開啟批準UI或聚焦受影響的資源。
578
- - 用戶端操作僅處理無法在後端發生的實時 UI 步驟。
577
+ - 主機指令開啟核准 UI 或聚焦受影響的資源。
578
+ - 用戶端操作僅處理無法在後端發生的即時 UI 步驟。
579
579
 
580
580
  ### 執行時整合
581
581
 
@@ -583,15 +583,15 @@ iframe 內的可用全域變數:
583
583
 
584
584
  | 工具 | 目的 |
585
585
  | ------------------- | ---------------------------------------------- |
586
- | `view-host-screen` | 讀取語義主機上下文和螢幕快照。 |
587
- | `list-host-actions` | 列出目前分頁公開的實時瀏覽器工作階段 actions。 |
588
- | `run-host-action` | 按名稱執行一個實時用戶端操作。 |
589
- | `send-host-command` | 發送刷新、導覽、重新安裝或批準等主機指令。 |
586
+ | `view-host-screen` | 讀取語義主機脈絡和螢幕截圖。 |
587
+ | `list-host-actions` | 列出目前分頁公開的即時瀏覽器工作階段 actions。 |
588
+ | `run-host-action` | 按名稱執行一個即時用戶端操作。 |
589
+ | `send-host-command` | 傳送重新整理、導覽、重新安裝或核准等主機指令。 |
590
590
 
591
- 助手有意返回普通的 `{ name, description, parameters, execute }` 物件,以便 sidecar 可以將它們調整為 AI SDK、Anthropic、OpenAI 函數調用或 Agent-Native `ActionEntry` 形狀,而無需將此 SDK 耦合到一個執行時。
591
+ 助手有意返回普通的 `{ name, description, parameters, execute }` 物件,以便 sidecar 可以將它們調整為 AI SDK、Anthropic、OpenAI 函式呼叫或 Agent-Native `ActionEntry` 形狀,而無需將此 SDK 耦合到一個執行時。
592
592
 
593
593
  ## 推薦產品形狀
594
594
 
595
595
  首先啟動 iframe。它適用於 Builder.io、客戶 SaaS 應用程式和內部管理工具,無需耦合發布週期或 CSS/執行時假設。
596
596
 
597
- sidecar 本身應該仍然是 Agent-Native 應用程式/範本:actions 是後端 API 表面,SQL 支持的應用程式狀態是代理的內存,並且 Slack 或 Telegram 等整合可以路由到相同的持久聊天。嵌入的 SDK 在該 sidecar 和目前主機頁面之間提供活動膜。
597
+ sidecar 本身應該仍然是 Agent-Native 應用程式/範本:actions 是後端 API 表面,SQL 支援的應用程式狀態是代理的記憶,並且 Slack 或 Telegram 等整合可以路由到相同的持久聊天。嵌入的 SDK 在該 sidecar 和目前主機頁面之間提供活動膜。
@@ -5,18 +5,18 @@ description: "編寫 *.eval.ts 測試用例,根據固定輸入執行真實代
5
5
 
6
6
  # CI 評估門
7
7
 
8
- 評估是一流的測試原語:您聲明一個提示加上您期望的行為,執行程序**實際上針對該輸入執行代理循環**,使用可組合評分器對輸出進行評分,如果任何情況得分低於其閾值,則以非零值退出。這種非零退出使 `agent-native eval` 成為一個嵌入式 CI 部署入口。
8
+ 評估是一流的測試原語:您聲明一個提示加上您期望的行為,執行程式**實際上針對該輸入執行代理迴圈**,使用可組合評分器對輸出進行評分,如果任何情況得分低於其閾值,則以非零值退出。這種非零退出使 `agent-native eval` 成為一個嵌入式 CI 部署入口。
9
9
 
10
10
  這是對 [Observability](/docs/observability) 中事後評分的補充:
11
11
 
12
- - **可觀測性評估** (`observability/evals.ts`) — _“這次實際執行效果如何?”_ 被動、采樣、緊鄰痕跡。
13
- - **`*.eval.ts`(此原語)** — _“代理在此固定輸入上執行正確的操作嗎?”_ 主動、確定性、通過 CLI 執行的 CI 門。
12
+ - **可觀測性評估** (`observability/evals.ts`) — _“這次實際執行效果如何?”_ 被動、取樣、緊鄰痕跡。
13
+ - **`*.eval.ts`(此原語)** — _“代理在此固定輸入上執行正確的操作嗎?”_ 主動、確定性、透過 CLI 執行的 CI 門。
14
14
 
15
- 執行程序從現有註冊表中解析與提供者無關的引擎/模型 - 沒有模型被硬編碼 - 因此相同的套件可以針對應用程式設定的任何引擎執行。
15
+ 執行程式從現有註冊表中解析與提供者無關的引擎/模型 - 沒有模型被硬編碼 - 因此相同的套件可以針對應用程式設定的任何引擎執行。
16
16
 
17
- ```an-diagram title="從固定輸入到部署門" summary="跑步者實際上在每種情況下執行代理循環,對輸出進行評分,如果任何評分者低於閾值,則以非零值退出——使其成為一個插入式 CI 門。"
17
+ ```an-diagram title="從固定輸入到部署門" summary="跑步者實際上在每種情況下執行代理迴圈,對輸出進行評分,如果任何評分者低於閾值,則以非零值退出——使其成為一個插入式 CI 門。"
18
18
  {
19
- "html": "<div class=\"eval-flow\"><div class=\"diagram-node\">*.eval.ts<br><small class=\"diagram-muted\">prompt + expected behavior</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">執行代理循環<br><small class=\"diagram-muted\">real engine/model</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">Scorers<br><small class=\"diagram-muted\">every one must pass threshold</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-box ok\">exit 0 &rarr; deploy</div><div class=\"diagram-box warn\">exit 1 &rarr; block</div></div></div>",
19
+ "html": "<div class=\"eval-flow\"><div class=\"diagram-node\">*.eval.ts<br><small class=\"diagram-muted\">prompt + expected behavior</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">執行代理迴圈<br><small class=\"diagram-muted\">real engine/model</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">Scorers<br><small class=\"diagram-muted\">every one must pass threshold</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-box ok\">exit 0 &rarr; deploy</div><div class=\"diagram-box warn\">exit 1 &rarr; block</div></div></div>",
20
20
  "css": ".eval-flow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.eval-flow .diagram-node{display:flex;flex-direction:column;gap:2px;padding:10px 14px}.eval-flow .diagram-col{display:flex;flex-direction:column;gap:8px}.eval-flow .diagram-arrow{font-size:22px;line-height:1}"
21
21
  }
22
22
  ```
@@ -40,9 +40,9 @@ export default defineEval({
40
40
  });
41
41
  ```
42
42
 
43
- 只有當**每個**得分者都達到閾值時,評估才會通過。關鍵 `defineEval` 欄位:
43
+ 只有當**每個**得分者都達到閾值時,評估才會透過。關鍵 `defineEval` 欄位:
44
44
 
45
- | 欄位 | 型別 | 注釋 |
45
+ | 欄位 | 型別 | 註解 |
46
46
  | ----------- | --------------------- | ------------------------------------------------ |
47
47
  | `name` | 字串 | 必填。報告中顯示。 |
48
48
  | `input` | `{ prompt, history }` | 需要`prompt`;可選的先前 `{ role, text }` 轉彎。 |
@@ -63,24 +63,24 @@ interface AgentRunOutput {
63
63
  }
64
64
  ```
65
65
 
66
- ## 內置記分器 {#built-in}
66
+ ## 內建記分器 {#built-in}
67
67
 
68
68
  從 `@agent-native/core/eval` 匯入:
69
69
 
70
70
  | 得分手 | 得分 | 型號? |
71
71
  | ------------------------ | ----------------------------------------------------- | ------ |
72
- | `exactMatch(expected)` | `1.0` 如果文本等於 `expected`(已修剪,不區分大小寫) | 沒有 |
72
+ | `exactMatch(expected)` | `1.0` 如果文字等於 `expected`(已修剪,不區分大小寫) | 沒有 |
73
73
  | `contains(needles)` | 存在所需子字串的分數(因此部分命中) | 不 |
74
- | `usesTool(toolName)` | `1.0`(如果代理調用該工具/操作至少一次) | 否 |
74
+ | `usesTool(toolName)` | `1.0`(如果代理呼叫該工具/操作至少一次) | 否 |
75
75
  | `llmJudge({ criteria })` | LLM 作為評委根據自然語言評分標準進行評分,→ `0..1` | 是 |
76
76
 
77
- `exactMatch` 和 `contains` 采用可選的 `{ caseSensitive }`。 `llmJudge` 采用 `{ criteria, rubric?, name?, scoreRange? }` - 其輸出標準化為 `[0, 1]`,判斷模型是執行程序解析的任何內容(絕不是硬編碼的提供程序)。
77
+ `exactMatch` 和 `contains` 采用可選的 `{ caseSensitive }`。 `llmJudge` 采用 `{ criteria, rubric?, name?, scoreRange? }` - 其輸出標準化為 `[0, 1]`,判斷模型是執行程式解析的任何內容(絕不是硬編碼的提供者)。
78
78
 
79
79
  ## 自訂評分器:4 步流程 {#custom}
80
80
 
81
81
  `createScorer` 從 Mastra 風格的 4 步管道建置一個記分器。僅需要 `generateScore`:
82
82
 
83
- ```an-diagram title="4 步評分管道" summary="預處理和分析預設身分;僅需要generateScore。 analyze 可以執行普通 JS 或通過 ctx 調用 LLM 判斷。"
83
+ ```an-diagram title="4 步評分管道" summary="預處理和分析預設身分;僅需要generateScore。 analyze 可以執行普通 JS 或透過 ctx 呼叫 LLM 判斷。"
84
84
  {
85
85
  "html": "<div class=\"scorer\"><div class=\"diagram-card\"><span class=\"diagram-pill\">preprocess(run)</span><small class=\"diagram-muted\">transform the run/output &middot; optional</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">analyze(x, ctx)</span><small class=\"diagram-muted\">plain JS or LLM judge &middot; optional</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><span class=\"diagram-pill accent\">generateScore(a)</span><small class=\"diagram-muted\">&rarr; 0..1 normalized &middot; <strong>required</strong></small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">generateReason</span><small class=\"diagram-muted\">human-readable why &middot; optional</small></div></div>",
86
86
  "css": ".scorer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scorer .diagram-card{display:flex;flex-direction:column;gap:2px;padding:8px 12px}.scorer .diagram-arrow{font-size:20px;line-height:1}"
@@ -94,7 +94,7 @@ generateScore(a) → 0..1 REQUIRED, normalized
94
94
  generateReason(...) → string human-readable why (optional)
95
95
  ```
96
96
 
97
- `preprocess` 和 `analyze` 預設為身分(記分員看到原始 `AgentRunOutput`)。 `analyze` 步驟接收 `ctx` 以及與提供者無關的 `judge()` 幫助程序,用於 LLM 支持的評分:
97
+ `preprocess` 和 `analyze` 預設為身分(記分員看到原始 `AgentRunOutput`)。 `analyze` 步驟接收 `ctx` 以及與提供者無關的 `judge()` 幫助程式,用於 LLM 支援的評分:
98
98
 
99
99
  ```ts
100
100
  import { createScorer, clamp01 } from "@agent-native/core/eval";
@@ -133,7 +133,7 @@ agent-native eval --threshold 0.8 # override every eval's pass threshold (0..
133
133
 
134
134
  | 程式碼 | 含義 |
135
135
  | ------ | ----------------------------------------------------- |
136
- | `0` | 所有評估均已通過 - *或*未找到評估檔案(CI 友好)。 |
136
+ | `0` | 所有評估均已透過 - *或*未找到評估檔案(CI 友好)。 |
137
137
  | `1` | 至少有一項評估得分低於閾值,或者套件出錯。 |
138
138
  | `2` | 錯誤的參數(例如 `--threshold` 位於 `[0, 1]` 之外)。 |
139
139
 
@@ -148,7 +148,7 @@ agent-native eval --threshold 0.8 # override every eval's pass threshold (0..
148
148
 
149
149
  將任何評分器降低到閾值以下的回歸會導致該步驟失敗並阻止部署。沒有評估檔案的應用程式會退出 `0`,因此采用評估是每個應用程式的選取。
150
150
 
151
- ## 下一步是什么
151
+ ## 下一步是什麼
152
152
 
153
153
  - [**Observability**](/docs/observability) - 實際正式環境執行的事後評分(補充層)
154
154
  - [**Actions**](/docs/actions) — `toolCalls` 中顯示的工具/actions