@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
package/corpus/README.md CHANGED
@@ -27,5 +27,5 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core/corpus
27
27
 
28
28
  ## Generated Counts
29
29
 
30
- - core files: 2029
31
- - template files: 4374
30
+ - core files: 2030
31
+ - template files: 4398
@@ -1,5 +1,30 @@
1
1
  # @agent-native/core
2
2
 
3
+ ## 0.79.16
4
+
5
+ ### Patch Changes
6
+
7
+ - 5bf3efe: Fix Cloudflare Pages worker builds for content actions that import Node built-in helpers, and refine shared shell depth styling.
8
+
9
+ ## 0.79.15
10
+
11
+ ### Patch Changes
12
+
13
+ - 4a73032: Make shared agent and default navigation drawers feel recessed behind rounded app content.
14
+
15
+ ## 0.79.14
16
+
17
+ ### Patch Changes
18
+
19
+ - 6598a72: Polish Traditional Chinese localization wording for Taiwan users.
20
+
21
+ ## 0.79.13
22
+
23
+ ### Patch Changes
24
+
25
+ - d47bfcb: Document the Clips embedded bug-report workflow.
26
+ - d47bfcb: Avoid pulling Node-only server exports and edge-incompatible optional packages into Cloudflare Pages worker bundles.
27
+
3
28
  ## 0.79.12
4
29
 
5
30
  ### Patch Changes
@@ -1,26 +1,26 @@
1
1
  ---
2
- title: "A2A協議"
3
- description: "通過 JSON-RPC 進行代理間通信:發現、訊息傳遞、流式傳輸和工作管理。"
2
+ title: "A2A 協議"
3
+ description: "透過 JSON-RPC 進行代理間通信:發現、訊息傳遞、流式傳輸和工作管理。"
4
4
  ---
5
5
 
6
- # A2A協議
6
+ # A2A 協議
7
7
 
8
- 通過 HTTP 進行代理間通信。代理相互發現、發送訊息並接收結構化結果。
8
+ 透過 HTTP 進行代理間通信。代理相互發現、傳送訊息並接收結構化結果。
9
9
 
10
10
  ## 概述 {#overview}
11
11
 
12
- A2A(代理到代理)是用於代理間通信的 JSON-RPC 協議。郵件代理可以要求分析代理執行查詢。行事曆代理可以搜尋專案管理代理中的問題。每個代理通過代理卡公開其功能,並通過標準 JSON-RPC 端點接受工作。
12
+ A2A(代理到代理)是用於代理間通信的 JSON-RPC 協議。郵件代理可以要求分析代理執行查詢。行事曆代理可以搜尋專案管理代理中的問題。每個代理透過代理卡公開其功能,並透過標準 JSON-RPC 端點接受工作。
13
13
 
14
- A2A 是此框架中跨應用程式委派的基礎 - 最顯著的是 [Dispatch](/docs/dispatch),它將單個入站訊息(Slack、電子郵件等)路由到工作區中最適合處理它的任何應用程式。
14
+ A2A 是此框架中跨應用程式委派的基礎 - 最顯著的是 [Dispatch](/docs/dispatch),它將單一入站訊息(Slack、電子郵件等)路由到工作區中最適合處理它的任何應用程式。
15
15
 
16
16
  關鍵概念:
17
17
 
18
- - **代理卡** — `/.well-known/agent-card.json` 上描述 skills 和功能的公開元資料
19
- - **JSON-RPC** — 代理本機應用程式使用 `POST /_agent-native/a2a`;外部/遺留節點可以使用 `POST /a2a`
18
+ - **代理卡** — `/.well-known/agent-card.json` 上描述 skills 和功能的公開中繼資料
19
+ - **JSON-RPC** — Agent-Native 應用程式使用 `POST /_agent-native/a2a`;外部/遺留節點可以使用 `POST /a2a`
20
20
  - **工作** - 每條訊息都會建立一個具有生命週期的工作(已提交、正在工作、已完成、失敗、已取消)
21
21
  - **JWT 承載驗證** - 正式環境 A2A 需要 `A2A_SECRET` 或顯式遺留 `apiKeyEnv`
22
22
 
23
- ```an-diagram title="一名代理人將工作交給另一名代理人" summary="郵件代理發現分析代理的卡,發送 JSON-RPC 訊息,並返回已完成的工作。"
23
+ ```an-diagram title="一名代理將工作交給另一名代理" summary="郵件代理發現分析代理的卡,傳送 JSON-RPC 訊息,並返回已完成的工作。"
24
24
  {
25
25
  "html": "<div class=\"diagram-handoff\"><div class=\"diagram-card\"><strong>郵件 Agent</strong><small class=\"diagram-muted\">needs analytics</small></div><div class=\"diagram-col\"><div class=\"diagram-pill\">GET /.well-known/agent-card.json</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-pill accent\">POST /_agent-native/a2a<br><small class=\"diagram-muted\">message/send</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&larr;</div><div class=\"diagram-pill ok\">工作 · 已完成</div></div><div class=\"diagram-card\" data-rough><strong>分析 Agent</strong><small class=\"diagram-muted\">執行 run-query,返回結果</small></div></div>",
26
26
  "css": ".diagram-handoff{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.diagram-handoff .diagram-col{display:flex;flex-direction:column;align-items:center;gap:6px}.diagram-handoff .diagram-arrow{font-size:20px;line-height:1}"
@@ -29,7 +29,7 @@ A2A 是此框架中跨應用程式委派的基礎 - 最顯著的是 [Dispatch](/
29
29
 
30
30
  ## 伺服器設定 {#server-setup}
31
31
 
32
- 大多數範本通過框架代理聊天外掛獲取 A2A。如果您自己安裝它,請在伺服器外掛中調用 `mountA2A()`:
32
+ 大多數範本透過框架代理聊天外掛取得 A2A。如果您自己安裝它,請在伺服器外掛中呼叫 `mountA2A()`:
33
33
 
34
34
  ```ts
35
35
  // server/plugins/a2a.ts
@@ -58,19 +58,19 @@ export default defineNitroPlugin((nitro) => {
58
58
 
59
59
  此安裝座:
60
60
 
61
- - `GET /.well-known/agent-card.json` — 公開發現元資料。
62
- - `POST /_agent-native/a2a` — 主要代理本機 JSON-RPC 端點。
61
+ - `GET /.well-known/agent-card.json` — 公開發現中繼資料。
62
+ - `POST /_agent-native/a2a` — 主要 Agent-Native JSON-RPC 端點。
63
63
  - `POST /_agent-native/a2a/_process-task` — 內部非同步處理器路由,使用 `A2A_SECRET` 簽名。
64
64
 
65
- 對於公開傳統/簡單路徑的外部代理,用戶端還回退到 `/a2a`。正式環境代理本機部署應設定 `A2A_SECRET`;如果沒有它,託管執行時將無法關閉,而不是接受未經驗證的遠端工作。
65
+ 對於公開傳統/簡單路徑的外部代理,用戶端還回退到 `/a2a`。正式環境 Agent-Native 部署應設定 `A2A_SECRET`;如果沒有它,託管執行時將無法關閉,而不是接受未經驗證的遠端工作。
66
66
 
67
67
  ## 代理卡 {#agent-card}
68
68
 
69
- 代理卡是根據您的設定自動生成的,並在 `/.well-known/agent-card.json` 上提供。其他代理獲取它以發現您的代理的 skills。
69
+ 代理卡是根據您的設定自動產生的,並在 `/.well-known/agent-card.json` 上提供。其他代理取得它以發現您的代理的 skills。
70
70
 
71
71
  ### 每租戶技能過濾 {#agent-card-filtering}
72
72
 
73
- 卡端點是公開的,因此框架會在提供服務之前編輯 skills,其 ID 顯示每個使用者或每個組織的整合。任何 ID 以 `mcp__user_<emailhash>_…` 或 `mcp__org_<orgid>_…` 開頭的技能都會從已發布的卡牌中刪除。操作員控制的 stdio MCP 工具(從 `mcp.config.json` 載入)和範本定義的 skills 保持可見。這可以防止未經驗證的調用者對存在哪些租戶或他們連線的整合進行指紋識別。參見`packages/core/src/a2a/server.ts`。
73
+ 卡端點是公開的,因此框架會在提供服務之前編輯 skills,其 ID 顯示每個使用者或每個組織的整合。任何 ID 以 `mcp__user_<emailhash>_…` 或 `mcp__org_<orgid>_…` 開頭的技能都會從已發布的卡牌中刪除。操作者控制的 stdio MCP 工具(從 `mcp.config.json` 載入)和範本定義的 skills 保持可見。這可以防止未經驗證的呼叫者對存在哪些租戶或他們連線的整合進行指紋識別。參見`packages/core/src/a2a/server.ts`。
74
74
 
75
75
  ```json
76
76
  {
@@ -101,7 +101,7 @@ export default defineNitroPlugin((nitro) => {
101
101
  }
102
102
  ```
103
103
 
104
- _(版本可能有所不同;在 `/.well-known/agent-card.json` 獲取目前 `protocolVersion` 的應用的實時卡。)_
104
+ _(版本可能有所不同;在 `/.well-known/agent-card.json` 取得目前 `protocolVersion` 的應用的即時卡。)_
105
105
 
106
106
  當設定了`A2A_SECRET`(推薦路徑)時,該卡會通告一個
107
107
  `jwtBearer` 方案如上。僅當遺留時才新增`apiKey`方案
@@ -110,20 +110,20 @@ _(版本可能有所不同;在 `/.well-known/agent-card.json` 獲取目前 `
110
110
 
111
111
  ## JSON-RPC方法 {#json-rpc-methods}
112
112
 
113
- 所有方法均通過 `POST /_agent-native/a2a` 調用,格式為 JSON-RPC 2.0:
113
+ 所有方法均透過 `POST /_agent-native/a2a` 呼叫,格式為 JSON-RPC 2.0:
114
114
 
115
115
  | 方法 | 描述 | 關鍵參數 |
116
116
  | ---------------- | ---------------------------------------------------------------------- | ----------------------------- |
117
- | `message/send` | 發送訊息並等待工作完成。通過`async: true`立即返回`working`狀態並輪詢。 | `message, contextId?, async?` |
118
- | `message/stream` | 發送訊息,接收SSE工作更新 | `message, contextId?` |
119
- | `tasks/get` | 按 ID 獲取工作 - 用於輪詢非同步工作是否完成 | `id` |
117
+ | `message/send` | 傳送訊息並等待工作完成。透過`async: true`立即返回`working`狀態並輪詢。 | `message, contextId?, async?` |
118
+ | `message/stream` | 傳送訊息,接收 SSE 工作更新 | `message, contextId?` |
119
+ | `tasks/get` | 按 ID 取得工作 - 用於輪詢非同步工作是否完成 | `id` |
120
120
  | `tasks/cancel` | 取消正在執行的工作 | `id` |
121
121
 
122
122
  ```an-api title="主要 A2A 端點" summary="所有 JSON-RPC 方法都是這裡的 POSTed。顯示message/send。"
123
123
  {
124
124
  "method": "POST",
125
125
  "path": "/_agent-native/a2a",
126
- "summary": "發送訊息並等待工作完成",
126
+ "summary": "傳送訊息並等待工作完成",
127
127
  "description": "JSON-RPC 2.0 endpoint for `message/send`, `message/stream`, `tasks/get`, and `tasks/cancel`. Pass `async: true` to return immediately in `working` state and poll with `tasks/get`.",
128
128
  "auth": "JWT bearer signed with A2A_SECRET (or legacy apiKeyEnv static token)",
129
129
  "params": [
@@ -144,9 +144,9 @@ _(版本可能有所不同;在 `/.well-known/agent-card.json` 獲取目前 `
144
144
  }
145
145
  ```
146
146
 
147
- 當使用 `async: true` 調用 `message/send` 時,JSON-RPC 處理程序會將工作排入佇列,並將 POST 自觸發到內部 `/_agent-native/a2a/_process-task` 路由,以便處理程序在具有自己的完全超時的新函數執行中執行。該路由使用綁定到工作 ID 的 HMAC 權杖進行驗證(5 分鐘生存期,使用 `A2A_SECRET` 簽名)。它安裝在 `/_agent-native/a2a` JSON-RPC 路由之前,因此 h3 的前綴匹配不會吞噬它。
147
+ 當使用 `async: true` 呼叫 `message/send` 時,JSON-RPC 處理常式會將工作排入佇列,並將 POST 自觸發到內部 `/_agent-native/a2a/_process-task` 路由,以便處理常式在具有自己的完全超時的新函式執行中執行。該路由使用綁定到工作 ID 的 HMAC 權杖進行驗證(5 分鐘生存期,使用 `A2A_SECRET` 簽名)。它安裝在 `/_agent-native/a2a` JSON-RPC 路由之前,因此 h3 的前綴匹配不會吞噬它。
148
148
 
149
- ```an-diagram title="無伺服器上的非同步工作生命週期" summary="async:true 在幾毫秒內返回工作,然後在調用者輪詢時重新執行執行代理循環。"
149
+ ```an-diagram title="無伺服器上的非同步工作生命週期" summary="async:true 在幾毫秒內返回工作,然後在呼叫者輪詢時重新執行執行代理迴圈。"
150
150
  {
151
151
  "html": "<div class=\"diagram-async\"><div class=\"diagram-box\" data-rough>message/send<br><small class=\"diagram-muted\">async: true</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel\"><span class=\"diagram-pill\">enqueue task</span><span class=\"diagram-pill warn\">return working</span><small class=\"diagram-muted\">約毫秒級</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-box\" data-rough>自觸發 POST /_agent-native/a2a/_process-task<br><small class=\"diagram-muted\">HMAC token · 全新執行 · 完整超時</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-pill\">tasks/get (poll)</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&#8635;</div><div class=\"diagram-pill ok\">completed</div></div></div>",
152
152
  "css": ".diagram-async{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.diagram-async .diagram-panel{display:flex;flex-direction:column;align-items:center;gap:6px}.diagram-async .diagram-col{display:flex;flex-direction:column;align-items:center;gap:6px}.diagram-async .diagram-arrow{font-size:20px;line-height:1}",
@@ -155,10 +155,10 @@ _(版本可能有所不同;在 `/.well-known/agent-card.json` 獲取目前 `
155
155
  ```
156
156
 
157
157
  > [!IMPORTANT]
158
- > **無伺服器 Webhook 和網關超時:**
159
- > 託管環境網關(例如 Netlify、Vercel 或 Cloudflare Pages)對面向公眾的 HTTP 路由施加嚴格的執行限制(通常為 10 到 30 秒)。由於代理循環可能需要大量時間來執行查詢、獲取上下文和執行工具,因此在調用 A2A 端點或處理外部 webhooks 時,您**必須使用 `async: true`**。這會立即將 `working` 狀態返回到 API 網關,僅保持連線開啟幾毫秒,而自觸發的 `/process-task` POST 在後台執行代理循環。不要阻止主 HTTP 請求等待代理循環完成。
158
+ > **無伺服器 Webhook 和閘道超時:**
159
+ > 託管環境閘道(例如 Netlify、Vercel 或 Cloudflare Pages)對面向公眾的 HTTP 路由施加嚴格的執行限制(通常為 10 到 30 秒)。由於代理迴圈可能需要大量時間來執行查詢、取得脈絡和執行工具,因此在呼叫 A2A 端點或處理外部 webhooks 時,您**必須使用 `async: true`**。這會立即將 `working` 狀態返回到 API 閘道,僅保持連線開啟幾毫秒,而自觸發的 `/process-task` POST 在背景執行代理迴圈。不要阻止主 HTTP 請求等待代理迴圈完成。
160
160
 
161
- 訊息包含鍵入的部分 - 文本、結構化資料和檔案都可以在一條訊息中傳輸:
161
+ 訊息包含鍵入的部分 - 文字、結構化資料和檔案都可以在一條訊息中傳輸:
162
162
 
163
163
  ```an-annotated-code title="帶有鍵入部分的 A2A 訊息"
164
164
  {
@@ -210,7 +210,7 @@ for await (const update of client.stream({
210
210
 
211
211
  ## 方便幫手 {#convenience-helper}
212
212
 
213
- 對於簡單的文本輸入/文本輸出調用,請使用 `callAgent()`:
213
+ 對於簡單的文字輸入/文字輸出呼叫,請使用 `callAgent()`:
214
214
 
215
215
  ```ts
216
216
  import { callAgent } from "@agent-native/core/a2a";
@@ -224,10 +224,10 @@ const response = await callAgent(
224
224
  console.log(response); // "There were 1,247 signups last week..."
225
225
  ```
226
226
 
227
- ## 編程工作區調用 {#programmatic-invoke}
227
+ ## 程式化工作區呼叫 {#programmatic-invoke}
228
228
 
229
- 對於代理本機工作區,在程式碼或 a 時更喜歡 `agentNative` 幫助器
230
- 無頭應用程式需要發現同級應用程式並通過 ID、名稱或調用它們
229
+ 對於 Agent-Native 工作區,在程式碼或 a 時更喜歡 `agentNative` 幫助器
230
+ 無頭應用程式需要發現同級應用程式並透過 ID、名稱或呼叫它們
231
231
  URL。它使用與
232
232
  `agent-native agents` 和 `agent-native invoke` CLI 指令。
233
233
 
@@ -246,34 +246,34 @@ console.log(`Called ${result.target.name}: ${result.responseText}`);
246
246
  ```
247
247
 
248
248
  將此用於可組合的迷你應用程式:調度或協調器應用程式發現
249
- 工作空間同級,然後調用擁有提供程序的專業應用程式,
250
- 資料集或工作流程。在正式環境代理本機應用程式中,在每個中設定 `A2A_SECRET`
249
+ 工作空間同級,然後呼叫擁有提供者的專業應用程式,
250
+ 資料集或工作流程。在正式環境 Agent-Native 應用程式中,在每個中設定 `A2A_SECRET`
251
251
  應用程式環境並傳遞呼叫者身分(`userEmail`),因此出站呼叫
252
252
  簽名為 JWT 不記名代幣。僅將 `apiKeyEnv` 用於舊版外部對等點
253
- 需要靜態不記名權杖。使用本機actions而不是自己調用。
253
+ 需要靜態不記名權杖。使用本機actions而不是自己呼叫。
254
254
 
255
255
  ## 工作生命週期 {#task-lifecycle}
256
256
 
257
- 每條訊息都會建立一個在以下狀態之間行動的工作:
257
+ 每條訊息都會建立一個在以下狀態之間移動的工作:
258
258
 
259
259
  `submitted` → `working` → `completed` | `failed` | `canceled` | `input-required`
260
260
 
261
- `input-required` 是非終端:處理程序正在等待來自調用者的更多資訊,一旦輸入到達,工作就可以移回 `working`。
261
+ `input-required` 是非終端:處理常式正在等待來自呼叫者的更多資訊,一旦輸入到達,工作就可以移回 `working`。
262
262
 
263
263
  | 狀態 | 含義 |
264
264
  | ---------------- | ------------------------------ |
265
265
  | `submitted` | 工作已建立,已排隊等待處理 |
266
266
  | `working` | Handler正在處理訊息 |
267
- | `completed` | 處理程序成功完成 |
268
- | `failed` | 處理程序拋出錯誤 |
269
- | `canceled` | 工作已通過tasks/cancel取消 |
270
- | `input-required` | 處理程序需要調用者提供更多資訊 |
267
+ | `completed` | 處理常式成功完成 |
268
+ | `failed` | 處理常式拋出錯誤 |
269
+ | `canceled` | 工作已透過tasks/cancel取消 |
270
+ | `input-required` | 處理常式需要呼叫者提供更多資訊 |
271
271
 
272
- 工作保留在 `a2a_tasks` SQL 表中,稍後可以通過 `tasks/get` 檢索。
272
+ 工作保留在 `a2a_tasks` SQL 表中,稍後可以透過 `tasks/get` 檢索。
273
273
 
274
274
  ## 安全 {#security}
275
275
 
276
- 在每個調用或接收 A2A 流量的正式環境應用上設定 `A2A_SECRET`。代理本機呼叫者使用此秘密簽署 JWT 不記名權杖,以便接收者可以在代理循環開始之前驗證呼叫者身分。
276
+ 在每個呼叫或接收 A2A 流量的正式環境應用上設定 `A2A_SECRET`。Agent-Native 呼叫者使用此秘密簽署 JWT 不記名權杖,以便接收者可以在代理迴圈開始之前驗證呼叫者身分。
277
277
 
278
278
  對於仍然使用共用靜態權杖的外部對等點,請將設定中的 `apiKeyEnv` 設定為包含預期持有者權杖的環境變數的名稱:
279
279
 
@@ -292,21 +292,21 @@ const client = new A2AClient(url, process.env.A2A_API_KEY);
292
292
 
293
293
  ### 驗證策略邊界 {#auth-policy}
294
294
 
295
- 承載驗證在代理循環看到訊息之前在請求邊界(JSON-RPC 處理程序中)執行。 `packages/core/src/a2a/auth-policy.ts` 中的共用助手決定部署需要什么:
295
+ 承載驗證在代理迴圈看到訊息之前在請求邊界(JSON-RPC 處理常式中)執行。 `packages/core/src/a2a/auth-policy.ts` 中的共用助手決定部署需要什麼:
296
296
 
297
- - `isA2AProductionRuntime()` 在 Netlify、AWS Lambda、Cloudflare Pages/Workers、Vercel、Render、Fly 和 Cloud Run 上返回 `true` — 即使 `NODE_ENV` 不是 `"production"`。一些無伺服器提供者不會一致地設定 `NODE_ENV`,因此該策略也會讀取特定於提供者的標志。
297
+ - `isA2AProductionRuntime()` 在 Netlify、AWS Lambda、Cloudflare Pages/Workers、Vercel、Render、Fly 和 Cloud Run 上返回 `true` — 即使 `NODE_ENV` 不是 `"production"`。一些無伺服器提供者不會一致地設定 `NODE_ENV`,因此該策略也會讀取特定於提供者的標誌。
298
298
  - 當 `A2A_SECRET` 設定時,`hasConfiguredA2ASecret()` 返回 `true`。
299
299
  - `shouldAdvertiseJwtA2AAuth()`是代理卡用來決定是否發布`jwtBearer`安全方案的依據。
300
300
 
301
- 正式環境策略是嚴格的:在任何正式環境執行時中,除非設定了 `A2A_SECRET`(返回 503),否則非同步 `_process-task` 路由拒絕調度,並且 JSON-RPC 端點拒絕未經驗證的調用。開發回退(警告一次,允許)僅在未設定正式環境標志時觸發。
301
+ 正式環境策略是嚴格的:在任何正式環境執行時中,除非設定了 `A2A_SECRET`(返回 503),否則非同步 `_process-task` 路由拒絕調度,並且 JSON-RPC 端點拒絕未經驗證的呼叫。開發回退(警告一次,允許)僅在未設定正式環境標誌時觸發。
302
302
 
303
- 此邊界很重要,因為代理循環接受來自遠端調用者的自由格式輸入。將不記名檢查放入循環內,或依靠工具來強制執行它,將使提示注入或有問題的處理程序繞過驗證。將其保持在 HTTP 邊界意味著權杖故障會在任何 LLM 調用之前短路。
303
+ 此邊界很重要,因為代理迴圈接受來自遠端呼叫者的自由格式輸入。將不記名檢查放入迴圈內,或依靠工具來強制執行它,將使提示注入或有問題的處理常式繞過驗證。將其保持在 HTTP 邊界意味著權杖故障會在任何 LLM 呼叫之前短路。
304
304
 
305
- JWT 驗證(`server.ts` 中的 `verifyA2AToken`)接受使用全域 `A2A_SECRET` 或通過權杖的 `org_domain` 聲明從 SQL 查找的組織範圍秘密簽名的權杖,並在存在時強制執行權杖自己的 `aud`/`iss` 聲明。
305
+ JWT 驗證(`server.ts` 中的 `verifyA2AToken`)接受使用全域 `A2A_SECRET` 或透過權杖的 `org_domain` 聲明從 SQL 尋找的組織範圍秘密簽名的權杖,並在存在時強制執行權杖自己的 `aud`/`iss` 聲明。
306
306
 
307
307
  ## 繼續 {#continuations}
308
308
 
309
- 當代理調用未立即返回的遠端 A2A 對等點時,框架會輪詢 `tasks/get` 直到工作解決。這是通過 `A2AClient.sendAndWait` 連線的,這是 `callAgent()` 幫助程序使用的預設模式。
309
+ 當代理呼叫未立即返回的遠端 A2A 對等點時,框架會輪詢 `tasks/get` 直到工作解決。這是透過 `A2AClient.sendAndWait` 連線的,這是 `callAgent()` 幫助程式使用的預設模式。
310
310
 
311
311
  ```ts
312
312
  // Default: async + poll (safe on serverless hosts)
@@ -320,54 +320,54 @@ const reply2 = await callAgent(url, "Quick lookup", { async: false });
320
320
 
321
321
  對於由訊息傳遞整合(Slack、電子郵件)觸發的入站延續,框架會將延續保留在 SQL 中並在帶外進行處理:
322
322
 
323
- - 當整合處理程序將其移交給遠端代理時,一行將寫入 `a2a_continuations` 表。
324
- - 自觸發的 `POST /_agent-native/integrations/process-a2a-continuation` 聲明該行,在遠端代理上調用 `tasks/get`,並將回複傳遞給整合適配器或重新安排。
325
- - 如果遠端工作仍在工作,則會重新計畫並重新分派該行。投票預算**受約 20 分鐘遠端工作** (`MAX_REMOTE_WORK_MS`) 和 **30 次調度嘗試** (`MAX_ATTEMPTS`) 的限制;在任一限制之後,繼續都會失敗並出現明顯錯誤,並且使用者會收到“代理未及時回應”回複。
326
- - 循環清理器 (`claimDueA2AContinuations`) 重新聲明上一個函數執行終止時剩餘的所有連續行。即使調用應用程式在輪詢中當機,下一次掃描也會恢復工作。
323
+ - 當整合處理常式將其移交給遠端代理時,一行將寫入 `a2a_continuations` 表。
324
+ - 自觸發的 `POST /_agent-native/integrations/process-a2a-continuation` 聲明該行,在遠端代理上呼叫 `tasks/get`,並將回覆傳遞給整合轉接器或重新安排。
325
+ - 如果遠端工作仍在工作,則會重新計畫並重新分派該行。投票預算**受約 20 分鐘遠端工作** (`MAX_REMOTE_WORK_MS`) 和 **30 次調度嘗試** (`MAX_ATTEMPTS`) 的限制;在任一限制之後,繼續都會失敗並出現明顯錯誤,並且使用者會收到“代理未及時回應”回覆。
326
+ - 迴圈清理器 (`claimDueA2AContinuations`) 重新聲明上一個函式執行終止時剩餘的所有連續行。即使呼叫應用程式在輪詢中當機,下一次掃描也會恢復工作。
327
327
 
328
328
  在`packages/core/src/integrations/a2a-continuation-processor.ts`中定義。相同的重試作業模式用於整合 Webhook 工作 (`pending-tasks-retry-job.ts`),這是一個上限為 3 次嘗試的獨特佇列 - 與上面的連續輪詢預算分開。
329
329
 
330
- ## 工作區A2A {#workspace-a2a}
330
+ ## 工作區 A2A {#workspace-a2a}
331
331
 
332
- 在部署到單個 Netlify 站點的多應用工作區中(請參閱 [multi-app workspace](/docs/multi-app-workspace)),`apps/<id>/` 下的每個應用都會自動註冊為 A2A 對等點:
332
+ 在部署到單一 Netlify 站點的多應用工作區中(請參閱 [multi-app workspace](/docs/multi-app-workspace)),`apps/<id>/` 下的每個應用都會自動註冊為 A2A 對等點:
333
333
 
334
334
  - 共用的 `A2A_SECRET` 在建置時安裝到每個應用程式的環境中。
335
- - 跨應用調用是同來源的 - `https://workspace.example.com/apps/analytics` 調用 `https://workspace.example.com/apps/mail` - 因此沒有 DNS、CORS 或每對 JWT 設定。
336
- - 使用共用金鑰簽名的出站呼叫攜帶呼叫者的電子郵件(`sub`)和組織域(如果存在)。接收方的 JWT 驗證程序按順序接受來自 SQL 的共用秘密或組織範圍秘密。
337
- - 代理發現會遍歷工作區註冊表,而不是依賴操作員手動連線每個對等點。請參閱 `packages/core/src/server/agent-discovery.ts` 中的 `discoverAgents` 和 `packages/core/src/org/handlers.ts` 中的組織刷新路徑。
335
+ - 跨應用呼叫是同來源的 - `https://workspace.example.com/apps/analytics` 呼叫 `https://workspace.example.com/apps/mail` - 因此沒有 DNS、CORS 或每對 JWT 設定。
336
+ - 使用共用金鑰簽名的出站呼叫攜帶呼叫者的電子郵件(`sub`)和組織域(如果存在)。接收方的 JWT 驗證程式按順序接受來自 SQL 的共用秘密或組織範圍秘密。
337
+ - 代理發現會遍歷工作區註冊表,而不是依賴操作者手動連線每個對等點。請參閱 `packages/core/src/server/agent-discovery.ts` 中的 `discoverAgents` 和 `packages/core/src/org/handlers.ts` 中的組織重新整理路徑。
338
338
 
339
- 外部 A2A — 呼叫工作區之外的代理 — 仍然使用不記名權杖模型 (`apiKeyEnv` + `A2AClient(url, apiKey)`)。工作區A2A位於頂部;外部對等點沒有任何變化。
339
+ 外部 A2A — 呼叫工作區之外的代理 — 仍然使用不記名權杖模型 (`apiKeyEnv` + `A2AClient(url, apiKey)`)。工作區 A2A 位於頂部;外部對等點沒有任何變化。
340
340
 
341
341
  ## 無伺服器陷阱 {#serverless}
342
342
 
343
- **永遠不要依賴“一勞永逸”的 `Promise` 超過回應的壽命。**無伺服器函數(Netlify、Vercel、AWS Lambda、Cloud Run)會在回應內文刷新時凍結 - 有時甚至在未等待的 `fetch(...)` 的 TCP 握手完成之前。在 Node 上本機工作的模式將默默地放棄正式環境中的工作。
343
+ **永遠不要依賴“一勞永逸”的 `Promise` 超過回應的壽命。**無伺服器函式(Netlify、Vercel、AWS Lambda、Cloud Run)會在回應內文重新整理時凍結 - 有時甚至在未等待的 `fetch(...)` 的 TCP 握手完成之前。在 Node 上本機工作的模式將默默地放棄正式環境中的工作。
344
344
 
345
345
  A2A 非同步調度和 [integration webhook queue](/docs/messaging) 使用的框架模式是:
346
346
 
347
- 1. 接受請求,保留SQL需要發生的事情,立即返回200。
348
- 2. 將 `POST` 自觸發到單獨的框架路由(`/_agent-native/a2a/_process-task` 或 `/_agent-native/integrations/process-task`),以便實際工作在**新函數執行**中執行,並具有自己的完整超時。
347
+ 1. 接受請求,保留 SQL 需要發生的事情,立即返回200。
348
+ 2. 將 `POST` 自觸發到單獨的框架路由(`/_agent-native/a2a/_process-task` 或 `/_agent-native/integrations/process-task`),以便實際工作在**新函式執行**中執行,並具有自己的完整超時。
349
349
  3. 使用綁定到行 ID 的 HMAC 權杖來驗證 self-fire,並使用 `A2A_SECRET` 簽名。
350
- 4. 重複的重試作業會清除所有已聲明但未完成的行,因此當機的函數不會使工作陷入困境。
350
+ 4. 重複的重試作業會清除所有已聲明但未完成的行,因此當機的函式不會使工作陷入困境。
351
351
 
352
- 當您編寫自己的 A2A 處理程序或整合適配器時,請遵循相同的形狀。不要將工作附加到 `return` 之後的獨立承諾中。如果您必須從無伺服器處理程序中自行啟動,請在返回之前啟動提取,並給它一個微小的啟動時間(框架使用較短的超時),以便 Lambda 式執行時不會在出站請求離開進程之前凍結。 `integration-webhooks`技能是規範參考。
352
+ 當您編寫自己的 A2A 處理常式或整合轉接器時,請遵循相同的形狀。不要將工作附加到 `return` 之後的獨立承諾中。如果您必須從無伺服器處理常式中自行啟動,請在返回之前啟動擷取,並給它一個微小的啟動時間(框架使用較短的超時),以便 Lambda 式執行時不會在出站請求離開行程之前凍結。 `integration-webhooks`技能是規範參考。
353
353
 
354
354
  ## 代理提及 {#agent-mentions}
355
355
 
356
- 您可以在聊天編輯器中直接提及客服人員 `@`。連線代理使用 A2A:當您提及連線代理時,伺服器會對該代理進行 A2A 調用,並將回應編織到您的對話上下文中。
356
+ 您可以在聊天編輯器中直接提及代理 `@`。連線代理使用 A2A:當您提及連線代理時,伺服器會對該代理進行 A2A 呼叫,並將回應編織到您的對話脈絡中。
357
357
 
358
- 自訂工作區代理有所不同:它們在目前應用/執行時本機執行,而不是通過 A2A 執行。
358
+ 自訂工作區代理有所不同:它們在目前應用/執行時本機執行,而不是透過 A2A 執行。
359
359
 
360
- 請參閱 [Agent Mentions](/docs/agent-mentions),詳細了解提及的工作原理、如何新增代理以及如何建立自訂提及提供程序。
360
+ 請參閱 [Agent Mentions](/docs/agent-mentions),詳細了解提及的工作原理、如何新增代理以及如何建立自訂提及提供者。
361
361
 
362
362
  ## 訊息傳遞整合 {#messaging-integrations}
363
363
 
364
- 還可以通過 Slack、電子郵件、Telegram 和 WhatsApp 等外部訊息平台聯系客服人員。使用者在這些平台上發送訊息,代理在同一線程中使用與網路聊天相同的工具和 actions 進行回應。
364
+ 還可以透過 Slack、電子郵件、Telegram 和 WhatsApp 等外部訊息平台聯絡代理。使用者在這些平台上傳送訊息,代理在同一對話串中使用與網頁聊天相同的工具和 actions 進行回應。
365
365
 
366
366
  有關每個平台的設定詳細資訊,請參閱 [Messaging](/docs/messaging)。
367
367
 
368
368
  ## 範例:跨代理查詢 {#example}
369
369
 
370
- 郵件代理需要分析資料。分析代理通過 A2A 公開“執行查詢”技能:
370
+ 郵件代理需要分析資料。分析代理透過 A2A 公開“執行查詢”技能:
371
371
 
372
372
  ```ts
373
373
  // In the mail agent's actions/get-analytics.ts
@@ -389,4 +389,4 @@ export default defineAction({
389
389
  });
390
390
  ```
391
391
 
392
- 分析代理接收訊息,通過其處理程序執行查詢,並返回結果。郵件操作獲取文本回應。沒有共用資料庫,沒有直接的 API 調用——只有代理到代理的通信。
392
+ 分析代理接收訊息,透過其處理常式執行查詢,並返回結果。郵件操作取得文字回應。沒有共用資料庫,沒有直接的 API 呼叫——只有代理到代理的通信。