@agent-native/core 0.79.12 → 0.79.15

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 (285) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +19 -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 +27 -3
  89. package/corpus/core/src/deploy/build.ts +417 -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 +93 -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 +14 -4
  181. package/dist/client/AgentPanel.js.map +1 -1
  182. package/dist/collab/routes.d.ts +1 -1
  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 +361 -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/resources/handlers.d.ts +2 -2
  191. package/dist/server/edge.d.ts +11 -0
  192. package/dist/server/edge.d.ts.map +1 -0
  193. package/dist/server/edge.js +11 -0
  194. package/dist/server/edge.js.map +1 -0
  195. package/dist/styles/agent-native.css +93 -0
  196. package/dist/templates/default/app/i18n/zh-TW.ts +44 -44
  197. package/dist/vite/client.d.ts.map +1 -1
  198. package/dist/vite/client.js +1 -0
  199. package/dist/vite/client.js.map +1 -1
  200. package/docs/content/locales/zh-TW/a2a-protocol.md +68 -68
  201. package/docs/content/locales/zh-TW/actions.md +82 -82
  202. package/docs/content/locales/zh-TW/agent-mentions.md +22 -22
  203. package/docs/content/locales/zh-TW/agent-surfaces.md +82 -82
  204. package/docs/content/locales/zh-TW/agent-teams.md +29 -29
  205. package/docs/content/locales/zh-TW/agent-web-surfaces.md +11 -11
  206. package/docs/content/locales/zh-TW/audit-log.md +16 -16
  207. package/docs/content/locales/zh-TW/authentication.md +32 -32
  208. package/docs/content/locales/zh-TW/automations.md +32 -32
  209. package/docs/content/locales/zh-TW/blueprint-installer.md +19 -19
  210. package/docs/content/locales/zh-TW/cli-adapters.md +17 -17
  211. package/docs/content/locales/zh-TW/client.md +62 -62
  212. package/docs/content/locales/zh-TW/cloneable-saas.md +32 -32
  213. package/docs/content/locales/zh-TW/code-agents-ui.md +91 -91
  214. package/docs/content/locales/zh-TW/components.md +51 -51
  215. package/docs/content/locales/zh-TW/context-awareness.md +66 -66
  216. package/docs/content/locales/zh-TW/creating-templates.md +39 -39
  217. package/docs/content/locales/zh-TW/cross-app-sso.md +29 -29
  218. package/docs/content/locales/zh-TW/database.md +21 -21
  219. package/docs/content/locales/zh-TW/deployment.md +37 -37
  220. package/docs/content/locales/zh-TW/dispatch.md +43 -43
  221. package/docs/content/locales/zh-TW/drop-in-agent.md +34 -34
  222. package/docs/content/locales/zh-TW/durable-resume.md +18 -18
  223. package/docs/content/locales/zh-TW/embedding-sdk.md +73 -73
  224. package/docs/content/locales/zh-TW/evals.md +16 -16
  225. package/docs/content/locales/zh-TW/extensions.md +81 -81
  226. package/docs/content/locales/zh-TW/external-agents.md +146 -146
  227. package/docs/content/locales/zh-TW/faq.md +43 -43
  228. package/docs/content/locales/zh-TW/file-uploads.md +11 -11
  229. package/docs/content/locales/zh-TW/frames.md +33 -33
  230. package/docs/content/locales/zh-TW/getting-started.md +28 -28
  231. package/docs/content/locales/zh-TW/harness-agents.md +78 -78
  232. package/docs/content/locales/zh-TW/human-approval.md +27 -27
  233. package/docs/content/locales/zh-TW/internationalization.md +19 -19
  234. package/docs/content/locales/zh-TW/key-concepts.md +68 -68
  235. package/docs/content/locales/zh-TW/local-file-mode.md +50 -50
  236. package/docs/content/locales/zh-TW/mcp-apps.md +38 -38
  237. package/docs/content/locales/zh-TW/mcp-clients.md +67 -67
  238. package/docs/content/locales/zh-TW/mcp-protocol.md +50 -50
  239. package/docs/content/locales/zh-TW/messaging.md +99 -99
  240. package/docs/content/locales/zh-TW/migration-workbench.md +6 -6
  241. package/docs/content/locales/zh-TW/multi-app-workspace.md +39 -39
  242. package/docs/content/locales/zh-TW/multi-tenancy.md +7 -7
  243. package/docs/content/locales/zh-TW/native-chat-ui.md +38 -38
  244. package/docs/content/locales/zh-TW/notifications.md +23 -23
  245. package/docs/content/locales/zh-TW/observability.md +49 -49
  246. package/docs/content/locales/zh-TW/observational-memory.md +23 -23
  247. package/docs/content/locales/zh-TW/onboarding.md +40 -40
  248. package/docs/content/locales/zh-TW/plan-plugin.md +37 -37
  249. package/docs/content/locales/zh-TW/pr-visual-recap.md +72 -72
  250. package/docs/content/locales/zh-TW/processors.md +17 -17
  251. package/docs/content/locales/zh-TW/progress.md +15 -15
  252. package/docs/content/locales/zh-TW/pure-agent-apps.md +10 -10
  253. package/docs/content/locales/zh-TW/real-time-collaboration.md +103 -103
  254. package/docs/content/locales/zh-TW/recurring-jobs.md +19 -19
  255. package/docs/content/locales/zh-TW/routing.md +9 -9
  256. package/docs/content/locales/zh-TW/sandbox-adapters.md +48 -48
  257. package/docs/content/locales/zh-TW/security.md +49 -49
  258. package/docs/content/locales/zh-TW/server.md +47 -47
  259. package/docs/content/locales/zh-TW/sharing.md +22 -22
  260. package/docs/content/locales/zh-TW/skills-guide.md +46 -46
  261. package/docs/content/locales/zh-TW/template-analytics.md +40 -40
  262. package/docs/content/locales/zh-TW/template-assets.md +69 -69
  263. package/docs/content/locales/zh-TW/template-brain.md +81 -81
  264. package/docs/content/locales/zh-TW/template-calendar.md +40 -40
  265. package/docs/content/locales/zh-TW/template-chat.md +27 -27
  266. package/docs/content/locales/zh-TW/template-clips.md +85 -85
  267. package/docs/content/locales/zh-TW/template-content.md +65 -66
  268. package/docs/content/locales/zh-TW/template-design.md +29 -29
  269. package/docs/content/locales/zh-TW/template-dispatch.md +51 -51
  270. package/docs/content/locales/zh-TW/template-forms.md +25 -25
  271. package/docs/content/locales/zh-TW/template-mail.md +71 -71
  272. package/docs/content/locales/zh-TW/template-plan.md +92 -92
  273. package/docs/content/locales/zh-TW/template-slides.md +52 -52
  274. package/docs/content/locales/zh-TW/template-videos.md +30 -30
  275. package/docs/content/locales/zh-TW/tracking.md +29 -29
  276. package/docs/content/locales/zh-TW/using-your-agent.md +18 -18
  277. package/docs/content/locales/zh-TW/voice-input.md +19 -19
  278. package/docs/content/locales/zh-TW/what-is-agent-native.md +61 -61
  279. package/docs/content/locales/zh-TW/workspace-connections.md +41 -41
  280. package/docs/content/locales/zh-TW/workspace-management.md +27 -27
  281. package/docs/content/locales/zh-TW/workspace.md +58 -58
  282. package/docs/content/locales/zh-TW/writing-agent-instructions.md +41 -41
  283. package/docs/content/template-clips.md +48 -2
  284. package/package.json +2 -1
  285. package/src/templates/default/app/i18n/zh-TW.ts +44 -44
@@ -5,21 +5,21 @@ description: "持久的、僅附加的紀錄,紀錄誰更改了哪些應用資
5
5
 
6
6
  # 審核記錄
7
7
 
8
- 每個代理本機應用程式都會獲得開箱即用的審核記錄:一個持久的、完整的、存取範圍的、僅附加的紀錄,紀錄**誰改變了哪些應用程式資料、何時、從哪裡以及(何時是代理)在哪個執行中。** 捕獲在操作接縫處自動進行;您無需為其編寫任何程式碼。
8
+ 每個 Agent-Native 應用程式都會獲得開箱即用的審核記錄:一個持久的、完整的、存取範圍的、僅附加的紀錄,紀錄**誰改變了哪些應用程式資料、何時、從哪裡以及(何時是代理)在哪個執行中。** 捕獲在操作接縫處自動進行;您無需為其編寫任何程式碼。
9
9
 
10
10
  由於代理可以代表您更改資料,因此審核記錄在這裡回答的標題問題不僅僅是“誰編輯了此紀錄”,而是 **“是我還是代理,以及哪個輪次導致了它?”** 框架中沒有其他系統可以回答這個問題。
11
11
 
12
12
  ## 審計與可觀察性與跟蹤 {#which}
13
13
 
14
- 三個系統出於三個不同的原因紀錄“發生了什么”。根據您要問的問題進行選取:
14
+ 三個系統出於三個不同的原因紀錄“發生了什麼”。根據您要問的問題進行選取:
15
15
 
16
16
  | 系統 | 它回答的問題 | 保真度 | 觀眾 |
17
17
  | ---------------------------------------- | -------------------------------------- | ---------------------- | ------------------------ |
18
18
  | **審核記錄**(本頁面) | “誰更改了此紀錄,何時更改,是代理嗎?” | **完整、耐用、有範圍** | 使用者、管理員、代理本身 |
19
- | **[Observability](/docs/observability)** | “代理為什么要這樣做,花費了多少?” | 采樣跨度遙測 | 開發人員 |
19
+ | **[Observability](/docs/observability)** | “代理為什麼要這樣做,花費了多少?” | 取樣跨度遙測 | 開發人員 |
20
20
  | **[Tracking](/docs/tracking)** | “人們如何使用該產品?” | 即發即忘外部 SaaS | PM/增長 |
21
21
 
22
- 采樣或發送給分析提供者的審核記錄是無用的 - 重點是它是完整的、本機的且可查詢的。所以它是它自己的子系統,而不是其他兩個的模式。
22
+ 取樣或傳送給分析提供者的審核記錄是無用的 - 重點是它是完整的、本機的且可查詢的。所以它是它自己的子系統,而不是其他兩個的模式。
23
23
 
24
24
  ## 自動捕獲的內容 {#captured}
25
25
 
@@ -27,15 +27,15 @@ description: "持久的、僅附加的紀錄,紀錄誰更改了哪些應用資
27
27
 
28
28
  - **操作** — 操作名稱(例如 `delete-recording`)。
29
29
  - **演員** - `agent`、`human` 或 `system`,加上演員的電子郵件 - 填充**即使是代理呼叫**,因此您會得到“代理,代表 alice@,...”。
30
- - **執行連結** - 觸發調用(工具調用)的代理 `threadId` / `turnId`,因此突變可以追溯到確切的代理回合。
30
+ - **執行連結** - 觸發呼叫(工具呼叫)的代理 `threadId` / `turnId`,因此突變可以追溯到確切的代理回合。
31
31
  - **Surface** — `tool`(代理)、`frontend`、`http`、`cli`、`mcp` 或 `a2a`。
32
- - **結果** — `success`、`error`(帶有錯誤程式碼)或 `denied`(被人工審批門阻止)。
33
- - **輸入** — 調用參數,具有憑證形狀的值 [redacted](#privacy)。
32
+ - **結果** — `success`、`error`(帶有錯誤程式碼)或 `denied`(被人工核准門阻止)。
33
+ - **輸入** — 呼叫參數,具有憑證形狀的值 [redacted](#privacy)。
34
34
  - **目標和所有者** — 操作更改的資源,用於 [scope reads](#reading)。
35
35
 
36
36
  無需接線 - 捕獲透明地連線到 `defineAction`。唯讀的actions會被跳過,並且預設會跳過一些高頻框架actions(app-statesync、context-xray、navigation)以避免記錄泛濫。
37
37
 
38
- ## 聲明操作更改了什么 {#target}
38
+ ## 聲明操作更改了什麼 {#target}
39
39
 
40
40
  預設情況下,事件的範圍僅限於 **參與者** - 您可以看到自己的更改以及代理代表您所做的更改。要對*shared*資源進行更改也出現在**所有者的**跟蹤中,並按資源標記事件,請聲明`target`:
41
41
 
@@ -73,12 +73,12 @@ export default defineAction({
73
73
 
74
74
  ## 閱讀蹤跡 {#reading}
75
75
 
76
- 每個應用程式中的代理**和**前端都可以使用兩個讀取的actions,調用者的範圍在SQL中 - 它們永遠不會返回其他租戶的行:
76
+ 每個應用程式中的代理**和**前端都可以使用兩個讀取的actions,呼叫者的範圍在 SQL 中 - 它們永遠不會返回其他租戶的行:
77
77
 
78
78
  - **`list-audit-events`** — 按 `targetType` / `targetId`、`actorKind` (`agent` | `human` | `system`)、`status`、`threadId` / `turnId`、`action` 過濾, `sinceMs`、`limit`。
79
79
  - **`get-audit-event`** — 按 id 的一個事件,包括其經過編輯的輸入負載。
80
80
 
81
- 通過使用 `useActionQuery` 從 UI 調用 `list-audit-events` 來建置活動來源或“誰更改了此”行 - 切勿手寫對審核表的提取:
81
+ 透過使用 `useActionQuery` 從 UI 呼叫 `list-audit-events` 來建置活動來源或“誰更改了此”行 - 切勿手寫對審核表的擷取:
82
82
 
83
83
  ```tsx
84
84
  import { useActionQuery } from "@agent-native/core/client";
@@ -90,22 +90,22 @@ const { data } = useActionQuery("list-audit-events", {
90
90
  // data.events → [{ action, actorKind, actorEmail, turnId, status, summary, createdAt }, …]
91
91
  ```
92
92
 
93
- 代理可以調用​​相同的操作 - 詢問它“你對此錄音做了什么更改?”它會從蹤跡中回答。
93
+ 代理可以呼叫​​相同的操作 - 詢問它“你對此錄音做了什麼更改?”它會從蹤跡中回答。
94
94
 
95
95
  ## 隱私和保留 {#privacy}
96
96
 
97
- - **編輯** - 在存儲任何輸入之前,憑證形狀的金鑰和值(權杖、秘密、密碼、承載字串)將被剝離,並截斷超大的有效負載。審核記錄永遠不會成為秘密的輔助存儲。也不要讓 `summary` 文本包含敏感資料。
97
+ - **編輯** - 在儲存任何輸入之前,憑證形狀的金鑰和值(權杖、秘密、密碼、承載字串)將被剝離,並截斷超大的有效負載。審核記錄永遠不會成為秘密的輔助儲存。也不要讓 `summary` 文字包含敏感資料。
98
98
  - **僅追加** — 審核行沒有更新或刪除操作。唯一的刪除是保留清除,這使得記錄作為審計跟蹤值得信賴。
99
- - **租戶隔離** — 讀取範圍僅限於調用者的身分和組織;沒有身分,沒有任何匹配。
99
+ - **租戶隔離** — 讀取範圍僅限於呼叫者的身分和組織;沒有身分,沒有任何匹配。
100
100
 
101
- 通過環境設定:
101
+ 透過環境設定:
102
102
 
103
103
  - `AGENT_NATIVE_AUDIT_RETENTION_DAYS` — 行保留多長時間(預設 `365`;`0` = 永遠保留)。
104
104
  - `AGENT_NATIVE_AUDIT_ENABLED=false` — 全域終止開關。
105
105
 
106
- ## 下一步是什么
106
+ ## 下一步是什麼
107
107
 
108
108
  - [**Actions**](/docs/actions) — 捕獲發生的 `defineAction` 接縫
109
109
  - [**Human-in-the-Loop Approvals**](/docs/human-approval) — 門控 actions,紀錄為 `denied`
110
110
  - [**Security & Data Scoping**](/docs/security) — 所有權模型審核讀取重用
111
- - [**Observability**](/docs/observability) - 代理執行的遙測(另一個“發生了什么”)
111
+ - [**Observability**](/docs/observability) - 代理執行的遙測(另一個“發生了什麼”)
@@ -5,17 +5,17 @@ description: "與電子郵件/密碼、社交提供者、組織和 MCP 持有者
5
5
 
6
6
  # 驗證
7
7
 
8
- 代理本機應用程式使用 [Better Auth](https://better-auth.com) 進行帳戶優先設計的驗證。使用者在第一次存取時建立一個帳戶,並從第一天起就獲得真實身分。
8
+ Agent-Native 應用程式使用 [Better Auth](https://better-auth.com) 進行帳戶優先設計的驗證。使用者在第一次存取時建立一個帳戶,並從第一天起就獲得真實身分。
9
9
 
10
10
  ## 概述 {#overview}
11
11
 
12
- Auth 是通過 auth 伺服器外掛中的 `autoMountAuth(app)` 自動設定的。共有三種模式:
12
+ Auth 是透過 auth 伺服器外掛中的 `autoMountAuth(app)` 自動設定的。共有三種模式:
13
13
 
14
14
  - **預設:**使用電子郵件/密碼+社交提供者進行更好的驗證。首次存取時顯示的入門頁面。
15
15
  - **遠端 MCP OAuth:** 適用於 MCP 主機的標準 OAuth 2.1,例如 Claude 程式碼和 ChatGPT 連線器。
16
- - **自訂:**通過 `getSession` 回調帶來您自己的驗證。
16
+ - **自訂:**透過 `getSession` 回調帶來您自己的驗證。
17
17
 
18
- ```an-diagram title="三種方式,一次會議" summary="瀏覽器訪客、編程 MCP 用戶端和自訂提供程序都解析為下游作用域讀取的同一 AuthSession。"
18
+ ```an-diagram title="三種方式,一次會議" summary="瀏覽器訪客、程式化 MCP 用戶端和自訂提供者都解析為下游作用域讀取的同一 AuthSession。"
19
19
  {
20
20
  "html": "<div class=\"auth-modes\"><div class=\"diagram-col\"><div class=\"diagram-card\"><span class=\"diagram-pill accent\">Default</span><strong>Better Auth</strong><small class=\"diagram-muted\">email/password &middot; Google &middot; GitHub</small></div><div class=\"diagram-card\"><span class=\"diagram-pill\">Remote MCP OAuth</span><strong>OAuth 2.1 + PKCE</strong><small class=\"diagram-muted\">Claude Code、ChatGPT 連線器</small></div><div class=\"diagram-card\"><span class=\"diagram-pill\">Custom</span><strong>getSession callback</strong><small class=\"diagram-muted\">Clerk &middot; Auth0 &middot; Firebase</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\"><span class=\"diagram-pill ok\">AuthSession</span><small class=\"diagram-muted\">email &middot; orgId &middot; orgRole</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\">Request context &amp; data scoping</div></div>",
21
21
  "css": ".auth-modes{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.auth-modes .diagram-col{display:flex;flex-direction:column;gap:10px}.auth-modes .diagram-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.auth-modes .diagram-arrow{font-size:22px;line-height:1}.auth-modes .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
@@ -30,10 +30,10 @@ Auth 是通過 auth 伺服器外掛中的 `autoMountAuth(app)` 自動設定的
30
30
  | **品質檢查/預覽** | 正常註冊,但可以跳過驗證,因此測試人員無需等待電子郵件 | 使用 `AUTH_SKIP_EMAIL_VERIFICATION=1` 跳過 |
31
31
  | **正式環境** | 正常更好的驗證註冊/登入 | 必需(設定電子郵件提供者時) |
32
32
 
33
- 一些標志對此進行了調整;完整詳細資訊位於 [Environment Variables](#environment-variables) 表中:
33
+ 一些標誌對此進行了調整;完整詳細資訊位於 [Environment Variables](#environment-variables) 表中:
34
34
 
35
35
  - `AGENT_NATIVE_DISABLE_AUTO_DEV_ACCOUNT=1` — 使用本機開發中的普通註冊頁面而不是自動開發帳戶。
36
- - `AUTH_DISABLED=true` — 完全跳過登入/註冊,並以一個共用使用者身分執行每個請求(僅限本機開發/預覽/演示,切勿與真實使用者一起進行正式環境)。
36
+ - `AUTH_DISABLED=true` — 完全跳過登入/註冊,並以一個共用使用者身分執行每個請求(僅限本機開發/預覽/示範,切勿與真實使用者一起進行正式環境)。
37
37
  - `AUTH_MODE=local` — 僅影響 CLI/代理身分(開發使用者 `pnpm action` 執行時的身分);它**不是**瀏覽器登入繞過。
38
38
 
39
39
  ```an-callout
@@ -45,17 +45,17 @@ Auth 是通過 auth 伺服器外掛中的 `autoMountAuth(app)` 自動設定的
45
45
 
46
46
  ## 更好的驗證(預設) {#better-auth}
47
47
 
48
- 預設情況下,Better Auth 支持驗證。它提供:
48
+ 預設情況下,Better Auth 支援驗證。它提供:
49
49
 
50
50
  - 電子郵件/密碼註冊和登入
51
51
  - 社交提供者(Google、GitHub 和 35 多個其他提供者)
52
52
  - 具有角色和邀請的組織
53
53
  - 用於 API 和 A2A 存取的 JWT 權杖
54
- - 對程序化用戶端的不記名權杖支持
54
+ - 對程式化用戶端的不記名權杖支援
55
55
 
56
- Better Auth 路由安裝在 `/_agent-native/auth/ba/*`。該框架還提供向後兼容的端點:
56
+ Better Auth 路由安裝在 `/_agent-native/auth/ba/*`。此框架還提供向後相容的端點:
57
57
 
58
- - `GET /_agent-native/auth/session` — 獲取目前工作階段
58
+ - `GET /_agent-native/auth/session` — 取得目前工作階段
59
59
  - `POST /_agent-native/auth/login` — 電子郵件/密碼登入
60
60
  - `POST /_agent-native/auth/register` — 建立帳戶
61
61
  - `POST /_agent-native/auth/logout` — 退出
@@ -67,13 +67,13 @@ Better Auth 路由安裝在 `/_agent-native/auth/ba/*`。該框架還提供向
67
67
 
68
68
  | 部署形狀 | Cookie 領域 |
69
69
  | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
70
- | 獨立應用 | 通過 slug(`APP_NAME`,或本機開發中的包名稱)隔離每個應用程式;正式環境中穩定的 `an` 前綴 |
70
+ | 獨立應用 | 透過 slug(`APP_NAME`,或本機開發中的包名稱)隔離每個應用程式;正式環境中穩定的 `an` 前綴 |
71
71
  | 工作區模式(`AGENT_NATIVE_WORKSPACE=1`) | 一個共用領域 - 工作區應用程式共用來源和資料庫 |
72
72
  | 自訂同資料庫子域 | 選取與 `COOKIE_DOMAIN` 共用 Cookie |
73
73
  | 第一方託管 (`*.agent-native.com`) | 每個應用程式的獨立命名空間(每個應用程式都有自己的驗證資料庫);預設情況下忽略 `COOKIE_DOMAIN=.agent-native.com` |
74
74
 
75
75
  第一方託管應用程式都有自己的驗證資料庫,因此可以跨應用程式登入
76
- 通過 [Cross-App SSO](/docs/cross-app-sso) 而不是共用 cookie。
76
+ 透過 [Cross-App SSO](/docs/cross-app-sso) 而不是共用 cookie。
77
77
  這些部署必須提供 `APP_NAME` 或可派生應用 URL(`APP_URL`、`URL`,
78
78
  `DEPLOY_PRIME_URL`,或`DEPLOY_URL`);否則啟動失敗而不是下降
79
79
  返回共用的 `an_session` 名稱。有意共用一個驗證資料庫
@@ -93,21 +93,21 @@ Better Auth 路由安裝在 `/_agent-native/auth/ba/*`。該框架還提供向
93
93
  AUTH_SKIP_EMAIL_VERIFICATION=1
94
94
  ```
95
95
 
96
- 設定此標志後,電子郵件/密碼註冊不需要電子郵件
97
- 驗證和註冊驗證電子郵件未發送。僅將其用於品質檢查
96
+ 設定此標誌後,電子郵件/密碼註冊不需要電子郵件
97
+ 驗證和註冊驗證電子郵件未傳送。僅將其用於品質檢查
98
98
  或預覽環境,並使用 `+qa` 地址命名測試帳戶
99
99
  (`name+qa@example.com`),因此很容易識別。
100
100
 
101
101
  ## 社交提供者 {#social-providers}
102
102
 
103
- 設定環境變數以啟用社交登入。 Better Auth 自動檢測它們:
103
+ 設定環境變數以啟用社交登入。 Better Auth 自動偵測它們:
104
104
 
105
105
  ```bash
106
106
  # GoogleOAuth
107
107
  GOOGLE_SIGN_IN_CLIENT_ID=your-low-scope-sign-in-client-id
108
108
  GOOGLE_SIGN_IN_CLIENT_SECRET=your-low-scope-sign-in-client-secret
109
109
 
110
- # 向後兼容的回退以及範本的提供者 OAuth 憑證
110
+ # 向後相容的回退以及範本的提供者 OAuth 憑證
111
111
  # 連線到 Google APIs,例如 Gmail 或行事曆。
112
112
  GOOGLE_CLIENT_ID=your-client-id
113
113
  GOOGLE_CLIENT_SECRET=your-client-secret
@@ -132,16 +132,16 @@ Google API 範圍,或作為部署未拆分時的舊後備
132
132
 
133
133
  ## 組織 {#organizations}
134
134
 
135
- 該框架提供了內置的組織系統。這是框架自己的 `org/` 模塊(由 `organizations` 和 `org_members` 表支持),而不是 Better Auth 的組織外掛,該外掛故意未註冊。每個應用程式都支持:
135
+ 此框架提供了內建的組織系統。這是框架自己的 `org/` 模組(由 `organizations` 和 `org_members` 表支援),而不是 Better Auth 的組織外掛,該外掛故意未註冊。每個應用程式都支援:
136
136
 
137
137
  - 建立組織
138
138
  - 邀請具有角色的成員(`owner`、`admin`、`member`)
139
139
  - 切換活動組織
140
- - 通過 `org_id` 列確定每個組織的資料範圍
140
+ - 透過 `org_id` 列確定每個組織的資料範圍
141
141
 
142
142
  活動組織在工作階段中被跟蹤為 `session.orgId`,切換組織會更改使用者和代理看到的資料。資料作用域本身發生在堆堆疊的更下方——有關完整的 `session.orgId → AGENT_ORG_ID → SQL` 管道和存取防護,請參閱 [Security & Data Scoping](/docs/security#data-scoping)。 [Multi-Tenancy](/docs/multi-tenancy) 檔案涵蓋了組織管理層面。
143
143
 
144
- ## 靜態MCP不記名權杖 {#access-tokens}
144
+ ## 靜態 MCP 不記名權杖 {#access-tokens}
145
145
 
146
146
  `ACCESS_TOKEN` 和 `ACCESS_TOKENS` 不是瀏覽器驗證,並且不會將應用程式設為私人。它們僅保留為無法使用 OAuth 流的 MCP/連線用戶端的靜態承載憑證。
147
147
 
@@ -155,30 +155,30 @@ ACCESS_TOKENS=token1,token2,token3
155
155
 
156
156
  設定這些變數永遠不會為訪客呈現權杖登入頁面。 Web 登入保留在 Better Auth 或您的自訂 `getSession` 提供者上。
157
157
 
158
- ## 遠端MCP OAuth {#remote-mcp-oauth}
158
+ ## 遠端 MCP OAuth {#remote-mcp-oauth}
159
159
 
160
- 每個應用程式的 MCP 端點都可以充當標準受保護的 MCP 資源。支持 OAuth 的用戶端只能設定遠端 MCP URL:
160
+ 每個應用程式的 MCP 端點都可以充當標準受保護的 MCP 資源。支援 OAuth 的用戶端只能設定遠端 MCP URL:
161
161
 
162
162
  ```text
163
163
  https://mail.agent-native.com/_agent-native/mcp
164
164
  ```
165
165
 
166
- 未經驗證的 MCP 請求返回指向 `/.well-known/oauth-protected-resource` 的 `WWW-Authenticate` 質詢。然後,用戶端發現應用程式的 OAuth 元資料,動態註冊公開用戶端,開啟應用程式的授權頁面,並與 PKCE 交換授權程式碼以獲取存取和刷新權杖。
166
+ 未經驗證的 MCP 請求返回指向 `/.well-known/oauth-protected-resource` 的 `WWW-Authenticate` 質詢。然後,用戶端發現應用程式的 OAuth 中繼資料,動態註冊公開用戶端,開啟應用程式的授權頁面,並與 PKCE 交換授權程式碼以取得存取和重新整理權杖。
167
167
 
168
- ```an-diagram title="遠端 MCP OAuth 握手" summary="具有 OAuth 功能的用戶端僅從 MCP URL 引導 — 挑战、發現、動態註冊,然後是 PKCE 程式碼交換。"
168
+ ```an-diagram title="遠端 MCP OAuth 握手" summary="具有 OAuth 功能的用戶端僅從 MCP URL 引導 — 質詢、發現、動態註冊,然後是 PKCE 程式碼交換。"
169
169
  {
170
170
  "html": "<div class=\"mcp-flow\"><div class=\"diagram-node\">1 &middot; MCP request<br><small class=\"diagram-muted\">no token</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node warn\">2 &middot; 401 challenge<br><small class=\"diagram-muted\">WWW-Authenticate</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">3 &middot; Discover metadata<br><small class=\"diagram-muted\">.well-known</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">4 &middot; Register client<br><small class=\"diagram-muted\">動態、公開</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node\">5 &middot; Authorize + PKCE<br><small class=\"diagram-muted\">code exchange</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-node ok\">6 &middot; Access + refresh<br><small class=\"diagram-muted\">audience-bound</small></div></div>",
171
171
  "css": ".mcp-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mcp-flow .diagram-node{display:flex;flex-direction:column;gap:2px;padding:8px 12px}.mcp-flow .diagram-arrow{font-size:20px;line-height:1}"
172
172
  }
173
173
  ```
174
174
 
175
- 設定時存取權杖使用 `A2A_SECRET` 進行簽名,否則使用 `BETTER_AUTH_SECRET` 進行簽名。它們攜帶簽名的使用者/組織身分和 `mcp:read`、`mcp:write` 和/或 `mcp:apps` 範圍,並且受眾綁定到確切的 MCP 資源 URL。刷新權杖僅存儲為哈希值並在每次刷新時輪換。工具調用和 MCP Apps 資源讀取在與登入使用者相同的請求上下文中執行;嵌入式 MCP 應用程式 iframe 永遠不會接收原始 OAuth 權杖。
175
+ 設定時存取權杖使用 `A2A_SECRET` 進行簽名,否則使用 `BETTER_AUTH_SECRET` 進行簽名。它們攜帶簽名的使用者/組織身分和 `mcp:read`、`mcp:write` 和/或 `mcp:apps` 範圍,並且受眾綁定到確切的 MCP 資源 URL。重新整理權杖僅儲存為雜湊值並在每次重新整理時輪換。工具呼叫和 MCP Apps 資源讀取在與登入使用者相同的請求脈絡中執行;嵌入式 MCP 應用程式 iframe 永遠不會接收原始 OAuth 權杖。
176
176
 
177
177
  `npx @agent-native/core@latest connect <url> --client claude-code` 為此標準流程寫入僅 URL 的 MCP 條目。對於無法執行遠端 MCP OAuth 的用戶端,請使用“連線”頁面或 `npx @agent-native/core@latest connect --token <token>` 回退來寫入顯式不記名權杖條目。
178
178
 
179
179
  ## 自帶驗證 {#byoa}
180
180
 
181
- 傳遞自訂 `getSession` 回調以使用任何驗證提供程序(Clerk、Auth0、Firebase 等):
181
+ 傳遞自訂 `getSession` 回調以使用任何驗證提供者(Clerk、Auth0、Firebase 等):
182
182
 
183
183
  ```ts
184
184
  // server/plugins/auth.ts
@@ -227,7 +227,7 @@ export default createAuthPlugin({
227
227
 
228
228
  `publicPaths`和`protectedPaths`使用前綴匹配,所以`"/admin"`也
229
229
  覆蓋 `"/admin/users"`。這些設定僅開啟頁面導覽。框架
230
- 路由(`/_agent-native/*`)和自訂API路由(`/api/*`)仍然需要驗證
230
+ 路由(`/_agent-native/*`)和自訂 API 路由(`/api/*`)仍然需要驗證
231
231
  除非應用明確新增這些前綴
232
232
  `createAuthPlugin({ publicPaths: [...] })`.
233
233
 
@@ -260,15 +260,15 @@ function MyComponent() {
260
260
  }
261
261
  ```
262
262
 
263
- ## 登入並返回URL {#sign-in-return-url}
263
+ ## 登入並傳回 URL {#sign-in-return-url}
264
264
 
265
- 具有**公開頁面**(共用連結、嵌入、營銷頁面)的範本通常需要一個頁面內 CTA 來要求匿名檢視者登入並將他們帶回到他們所在的頁面。該框架為此提供了一個入口點:
265
+ 具有**公開頁面**(共用連結、嵌入、行銷頁面)的範本通常需要一個頁面內 CTA 來要求匿名檢視者登入並將他們帶回到他們所在的頁面。此框架為此提供了一個入口點:
266
266
 
267
267
  ```
268
268
  /_agent-native/sign-in?return=<same-origin-path>
269
269
  ```
270
270
 
271
- 當匿名檢視者點擊此 URL 時,將提供框架的登入頁面。成功登入(任何流程 - 權杖、電子郵件/密碼或 GoogleOAuth)後,檢視者將 302 轉至 `return`。
271
+ 當匿名檢視者點選此 URL 時,將提供框架的登入頁面。成功登入(任何流程 - 權杖、電子郵件/密碼或 GoogleOAuth)後,檢視者將 302 轉至 `return`。
272
272
 
273
273
  `return` 參數被驗證為**同來源路徑**。網路路徑引用 (`//evil.com/...`)、絕對 URL、`data:` / `javascript:` 方案和嵌入式控制字符都回退到 `/`。驗證的路徑是從 URL 解析器重建的,而不是從輸入中回顯。
274
274
 
@@ -293,9 +293,9 @@ function SignInCta() {
293
293
 
294
294
  ### 幕後花絮:GoogleOAuth
295
295
 
296
- 兩個流(顯式 `/_agent-native/sign-in` 入口點和書簽路徑情況)都將返回 URL 線程穿過 OAuth 狀態。該狀態是 HMAC 簽名的,因此在運輸過程中無法偽造。在回調中,返回的 URL 在重新導向之前被重新驗證為同來源 - 因此泄漏的簽名金鑰仍然無法轉換為開放重新導向預言機。
296
+ 兩個流(顯式 `/_agent-native/sign-in` 入口點和書簽路徑情況)都將傳回 URL 對話串穿過 OAuth 狀態。該狀態是 HMAC 簽名的,因此在運輸過程中無法偽造。在回調中,返回的 URL 在重新導向之前被重新驗證為同來源 - 因此泄漏的簽名金鑰仍然無法轉換為開放重新導向預言機。
297
297
 
298
- 如果您的範本直接包裝 `/_agent-native/google/auth-url`(例如郵件和行事曆範本這樣做,以擴大範圍),則接受 `?return=<path>` 查詢並通過 `encodeOAuthState` 的選項物件形式轉發它:
298
+ 如果您的範本直接包裝 `/_agent-native/google/auth-url`(例如郵件和行事曆範本這樣做,以擴大範圍),則接受 `?return=<path>` 查詢並透過 `encodeOAuthState` 的選項物件形式轉發它:
299
299
 
300
300
  ```ts
301
301
  const returnUrl = getQuery(event).return;
@@ -326,7 +326,7 @@ const state = encodeOAuthState({
326
326
  | `GOOGLE_CLIENT_ID` | 舊版 Google 登入回退以及用於 Google API 整合的提供者 OAuth 用戶端 ID |
327
327
  | `GOOGLE_CLIENT_SECRET` | 舊版 Google 登入回退以及 Google API 整合的提供者 OAuth 金鑰 |
328
328
  | `GITHUB_CLIENT_ID` | 啟用GitHub OAuth |
329
- | `GITHUB_CLIENT_SECRET` | GitHub OAuth秘密 |
329
+ | `GITHUB_CLIENT_SECRET` | GitHub OAuth 秘密 |
330
330
  | `ACCESS_TOKEN` | MCP/連線用戶端的靜態承載回退;不是瀏覽器驗證 |
331
331
  | `ACCESS_TOKENS` | MCP/connect 用戶端的逗號分隔靜態承載回退;不是瀏覽器驗證 |
332
332
  | `A2A_SECRET` | JWT 簽名的 A2A 跨應用驗證的共用金鑰,以及 MCP OAuth 存取權杖簽名(如果存在) |
@@ -7,7 +7,7 @@ description: "具有自然語言條件的事件觸發和計畫自動化"
7
7
 
8
8
  **自動化**是一條規則:_當 X 發生時,執行 Y_ — 用自然語言描述。代理執行指令,因此自動化可以存取代理可以在互動式聊天中使用的每個操作、工具和 MCP 伺服器。
9
9
 
10
- 自動化通過 `web-request` 工具使用**事件觸發器**、**自然語言條件**和**出站 HTTP** 擴充功能 [recurring jobs](/docs/recurring-jobs)。它們使用與重複作業相同的 `jobs/<name>.md` 檔案格式、存儲和“建立三種方式”工作流程 - 請參閱 [Recurring Jobs](/docs/recurring-jobs#job-file) 了解共用格式。本頁面僅涵蓋事件驅動自動化的新增內容。
10
+ 自動化透過 `web-request` 工具使用**事件觸發器**、**自然語言條件**和**出站 HTTP** 擴充功能 [recurring jobs](/docs/recurring-jobs)。它們使用與重複作業相同的 `jobs/<name>.md` 檔案格式、儲存和“建立三種方式”工作流程 - 請參閱 [Recurring Jobs](/docs/recurring-jobs#job-file) 了解共用格式。本頁面僅涵蓋事件驅動自動化的新增內容。
11
11
 
12
12
  ```an-diagram title="當X發生時,做Y" summary="總線上觸發事件,可選的自然語言條件對其進行門控,代理執行具有完整工具存取權限的自動化主體。"
13
13
  {
@@ -27,17 +27,17 @@ description: "具有自然語言條件的事件觸發和計畫自動化"
27
27
 
28
28
  ## 建立自動化 {#creating}
29
29
 
30
- ### 通過詢問代理
30
+ ### 透過詢問代理
31
31
 
32
- > “當有人使用 @builder.io 電子郵件預訂會議時,請通過 Slack 向我發送訊息。”
32
+ > “當有人使用 @builder.io 電子郵件預訂會議時,請透過 Slack 向我傳送訊息。”
33
33
 
34
34
  代理發現可用事件,確認計畫,並為您編寫自動化。
35
35
 
36
- ### 來自設定UI
36
+ ### 來自設定 UI
37
37
 
38
38
  自動化出現在設定面板中。使用者可以在那裡檢視、啟用/停用和刪除它們。
39
39
 
40
- 第三條路徑 - 通過 `resourcePut` 手動寫入 `jobs/<name>.md` 檔案 - 與 [recurring jobs](/docs/recurring-jobs#creating) 的工作方式完全相同。對於事件驅動的自動化,您可以將下面的事件觸發 frontmatter 新增到同一檔案中。事件觸發作業設定 `schedule: ""` 並提供 `triggerType: event`、`event` 名稱和可選的 `condition`:
40
+ 第三條路徑 - 透過 `resourcePut` 手動寫入 `jobs/<name>.md` 檔案 - 與 [recurring jobs](/docs/recurring-jobs#creating) 的工作方式完全相同。對於事件驅動的自動化,您可以將下面的事件觸發 frontmatter 新增到同一檔案中。事件觸發作業設定 `schedule: ""` 並提供 `triggerType: event`、`event` 名稱和可選的 `condition`:
41
41
 
42
42
  ```an-annotated-code title="事件觸發的自動化"
43
43
  {
@@ -62,16 +62,16 @@ description: "具有自然語言條件的事件觸發和計畫自動化"
62
62
  | `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | 自動化如何啟動 |
63
63
  | `event` | 字串 | _(可選)_ | 要訂閱的事件名稱(僅限事件觸發器) |
64
64
  | `condition` | 字串 | _(可選)_ | 在調度之前評估自然語言條件 |
65
- | `mode` | `"agentic"` \| `"deterministic"` | `"agentic"` | 完整的代理循環。 (`"deterministic"` 已保留,但尚未實現 - 設定它的自動化將被跳過。對所有目前自動化使用 `"agentic"`。) |
65
+ | `mode` | `"agentic"` \| `"deterministic"` | `"agentic"` | 完整的代理迴圈。 (`"deterministic"` 已保留,但尚未實現 - 設定它的自動化將被跳過。對所有目前自動化使用 `"agentic"`。) |
66
66
  | `domain` | 字串 | _(可選)_ | 分組標籤(郵件、行事曆、剪輯等) |
67
67
 
68
- 對於事件觸發器,`schedule`為`""`(空);對於計畫觸發器,它帶有 cron 表達式。調度程序還寫入與調度程序相同的託管 `lastRun` / `lastStatus` / `lastError` 欄位,以及當條件評估為 false 時的 `"skipped"` 狀態。
68
+ 對於事件觸發器,`schedule`為`""`(空);對於計畫觸發器,它帶有 cron 表達式。調度程式還寫入與調度程式相同的託管 `lastRun` / `lastStatus` / `lastError` 欄位,以及當條件評估為 false 時的 `"skipped"` 狀態。
69
69
 
70
70
  ## 事件總線 {#event-bus}
71
71
 
72
- 整合在模塊載入時註冊事件。總線根據 [Standard Schema](https://standardschema.dev) 定義驗證有效負載並將其分派給訂閱者。
72
+ 整合在模組載入時註冊事件。總線根據 [Standard Schema](https://standardschema.dev) 定義驗證有效負載並將其分派給訂閱者。
73
73
 
74
- ### 內置事件 {#built-in-events}
74
+ ### 內建事件 {#built-in-events}
75
75
 
76
76
  | 活動 | 來源 |
77
77
  | ---------------------- | ------------------------------------------ |
@@ -81,11 +81,11 @@ description: "具有自然語言條件的事件觸發和計畫自動化"
81
81
  | `clip.*` | 剪輯整合 |
82
82
  | `mail.*` | 郵件整合 |
83
83
 
84
- 從代理中使用 `action=list-events` 調用 `manage-automations`,以檢視所有已註冊事件以及目前範本的描述和負載模式。
84
+ 從代理中使用 `action=list-events` 呼叫 `manage-automations`,以檢視所有已註冊事件以及目前範本的描述和負載模式。
85
85
 
86
86
  ### 發出自訂事件 {#emitting-events}
87
87
 
88
- 在伺服器外掛中註冊事件型別,然後從 actions 或 webhook 處理程序發出它:
88
+ 在伺服器外掛中註冊事件型別,然後從 actions 或 webhook 處理常式發出它:
89
89
 
90
90
  ```ts
91
91
  import { registerEvent, emit } from "@agent-native/core/event-bus";
@@ -119,15 +119,15 @@ emit(
119
119
  );
120
120
  ```
121
121
 
122
- 自動化觸發的發出元資料範圍中的 `owner` - 僅評估同一使用者擁有的自動化(或共用自動化)。
122
+ 自動化觸發的發出中繼資料範圍中的 `owner` - 僅評估同一使用者擁有的自動化(或共用自動化)。
123
123
 
124
124
  ## 條件 {#conditions}
125
125
 
126
126
  條件是 Claude Haiku 針對事件負載評估的自然語言字串。這是一個是/否分類,而不是生成工作。
127
127
 
128
128
  - **空或缺失條件** = 無條件(始終觸發)。
129
- - 結果通過 5 分鐘 TTL 和 500 個條目的 LRU 快取進行記憶(條件 + 負載的 SHA-256)。
130
- - 有效負載在發送到 Haiku 之前被截斷為 4000 個字符。
129
+ - 結果透過 5 分鐘 TTL 和 500 個條目的 LRU 快取進行記憶(條件 + 負載的 SHA-256)。
130
+ - 有效負載在傳送到 Haiku 之前被截斷為 4000 個字符。
131
131
  - 在 API 失敗時,條件評估為 `false`(安全預設值 - 跳過自動化)。
132
132
 
133
133
  條件範例:
@@ -138,7 +138,7 @@ emit(
138
138
 
139
139
  ## 網路請求工具 {#web-request}
140
140
 
141
- 自動化使用 `web-request` 工具進行出站 HTTP。它支持 URL、標頭和內文中的 `${keys.NAME}` 預留位置:
141
+ 自動化使用 `web-request` 工具進行出站 HTTP。它支援 URL、標頭和內文中的 `${keys.NAME}` 預留位置:
142
142
 
143
143
  ```
144
144
  POST to ${keys.SLACK_WEBHOOK}
@@ -148,13 +148,13 @@ Headers: {"Authorization": "Bearer ${keys.API_TOKEN}"}
148
148
  Body: {"text": "New booking from ${attendeeEmail}"}
149
149
  ```
150
150
 
151
- 在代理發出工具調用後,預留位置在**伺服器端**解析 - 原始秘密值永遠不會進入代理的上下文。
151
+ 在代理發出工具呼叫後,預留位置在**伺服器端**解析 - 原始秘密值永遠不會進入代理的脈絡。
152
152
 
153
153
  ### 參數 {#web-request-params}
154
154
 
155
155
  | 參數 | 型別 | 預設 | 描述 |
156
156
  | ------------ | ---- | ----- | -------------------------------------------------- |
157
- | `url` | 字串 | — | 完整的URL。可能包含 `${keys.NAME}` 引用。 |
157
+ | `url` | 字串 | — | 完整的 URL。可能包含 `${keys.NAME}` 引用。 |
158
158
  | `method` | 字串 | `GET` | HTTP 方法(GET、POST、PUT、PATCH、DELETE、HEAD)。 |
159
159
  | `headers` | 字串 | `{}` | JSON 標頭物件。可能包含 `${keys.NAME}`。 |
160
160
  | `body` | 字串 | — | 請求內文。可能包含 `${keys.NAME}`。 |
@@ -162,16 +162,16 @@ Body: {"text": "New booking from ${attendeeEmail}"}
162
162
 
163
163
  ## 按鍵 {#keys}
164
164
 
165
- 金鑰是由使用者或代理建立的用於自動化使用的臨時秘密(例如 `SLACK_WEBHOOK`、`HUBSPOT_API_KEY`)。它們與註冊機密 (`registerRequiredSecret`) 的不同之處在於它們沒有範本定義的元資料或入門步驟。
165
+ 金鑰是由使用者或代理建立的用於自動化使用的臨時秘密(例如 `SLACK_WEBHOOK`、`HUBSPOT_API_KEY`)。它們與註冊機密 (`registerRequiredSecret`) 的不同之處在於它們沒有範本定義的中繼資料或入門步驟。
166
166
 
167
- - 通過設定 UI 或 `/_agent-native/secrets/adhoc` API 建立。
168
- - 每個金鑰都可以有一個 **URL 允許清單**,用於限制金鑰可以發送到哪些來源(來源級別匹配)。
169
- - 原始值永遠不會暴露給 AI - 只有 `${keys.NAME}` 預留位置出現在代理的上下文中。
167
+ - 透過設定 UI 或 `/_agent-native/secrets/adhoc` API 建立。
168
+ - 每個金鑰都可以有一個 **URL 允許清單**,用於限制金鑰可以傳送到哪些來源(來源層級匹配)。
169
+ - 原始值永遠不會暴露給 AI - 只有 `${keys.NAME}` 預留位置出現在代理的脈絡中。
170
170
  - 分辨率從使用者範圍回退到工作區範圍,因此使用者可以覆蓋共用金鑰。
171
171
 
172
172
  ## 代理工具 {#agent-tools}
173
173
 
174
- 所有自動化操作均通過帶有 `action` 參數的單個 `manage-automations` 工具存取:
174
+ 所有自動化操作均透過帶有 `action` 參數的單一 `manage-automations` 工具存取:
175
175
 
176
176
  | 行動 | 目的 |
177
177
  | ------------- | ---------------------------------------------------- |
@@ -184,7 +184,7 @@ Body: {"text": "New booking from ${attendeeEmail}"}
184
184
 
185
185
  附加工具:`web-request` — 出站 HTTP 替換為 `${keys.NAME}`。
186
186
 
187
- ## API端點 {#api}
187
+ ## API 端點 {#api}
188
188
 
189
189
  | 端點 | 方法 | 描述 |
190
190
  | -------------------------------------- | ------ | ---------------------------- |
@@ -210,7 +210,7 @@ Body: {"text": "New booking from ${attendeeEmail}"}
210
210
 
211
211
  ```an-diagram title="調度路徑" summary="從觸發事件到完成代理執行,由所有權範圍和自然語言條件控制。"
212
212
  {
213
- "html": "<div class=\"disp\"><div class=\"diagram-box accent\">event fired on the bus</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">match</span><small class=\"diagram-muted\">load enabled automations subscribed to this event name</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">scope</span><small class=\"diagram-muted\">keep only those owned by the event's owner (or shared)</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill warn\">condition</span><small class=\"diagram-muted\">Haiku yes/no on the payload &mdash; false &rarr; <code>skipped</code></small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card accent\"><span class=\"diagram-pill accent\">run</span><small class=\"diagram-muted\"><code>runAgentLoop</code> body 作為提示、payload 作為上下文,5 分鐘超時</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card ok\"><span class=\"diagram-pill ok\">record</span><small class=\"diagram-muted\">write <code>lastRun</code> / <code>lastStatus</code> / <code>lastError</code></small></div></div>",
213
+ "html": "<div class=\"disp\"><div class=\"diagram-box accent\">event fired on the bus</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">match</span><small class=\"diagram-muted\">load enabled automations subscribed to this event name</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill\">scope</span><small class=\"diagram-muted\">keep only those owned by the event's owner (or shared)</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card\"><span class=\"diagram-pill warn\">condition</span><small class=\"diagram-muted\">Haiku yes/no on the payload &mdash; false &rarr; <code>skipped</code></small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card accent\"><span class=\"diagram-pill accent\">run</span><small class=\"diagram-muted\"><code>runAgentLoop</code> body 作為提示、payload 作為脈絡,5 分鐘超時</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&darr;</div><div class=\"diagram-card ok\"><span class=\"diagram-pill ok\">record</span><small class=\"diagram-muted\">write <code>lastRun</code> / <code>lastStatus</code> / <code>lastError</code></small></div></div>",
214
214
  "css": ".disp{display:flex;flex-direction:column;gap:6px;max-width:540px}.disp .diagram-card{display:flex;flex-direction:column;gap:2px;padding:10px 14px}.disp .diagram-box{align-self:flex-start}.disp .diagram-arrow{font-size:18px;align-self:center}"
215
215
  }
216
216
  ```
@@ -221,9 +221,9 @@ Body: {"text": "New booking from ${attendeeEmail}"}
221
221
 
222
222
  **代理流程:**
223
223
 
224
- 1. 使用 `action=list-events` 調用 `manage-automations` — 找到 `calendar.booking.created`。
224
+ 1. 使用 `action=list-events` 呼叫 `manage-automations` — 找到 `calendar.booking.created`。
225
225
  2. 與使用者確認計畫。
226
- 3. 使用 `action=define` 調用 `manage-automations`:
226
+ 3. 使用 `action=define` 呼叫 `manage-automations`:
227
227
  - `name`: `slack-on-builder-booking`
228
228
  - `trigger_type`: `event`
229
229
  - `event`: `calendar.booking.created`
@@ -231,11 +231,11 @@ Body: {"text": "New booking from ${attendeeEmail}"}
231
231
  - `mode`: `agentic`
232
232
  - `domain`: `calendar`
233
233
  - `body`: `Send a Slack message to #sales with the booking details. Use the web-request tool to POST to ${keys.SLACK_WEBHOOK}.`
234
- 4. 自動化儲存為 `jobs/slack-on-builder-booking.md` 並立即開始監听。
234
+ 4. 自動化儲存為 `jobs/slack-on-builder-booking.md` 並立即開始監聽。
235
235
 
236
236
  ## 更多範例 {#more-examples}
237
237
 
238
- ### 當計畫被評論時通過 webhook 通知
238
+ ### 當計畫被評論時透過 webhook 通知
239
239
 
240
240
  詢問計畫代理:_“當有人對計畫新增人工評論時,POST a
241
241
  向我的 webhook 發出通知。"_
@@ -257,12 +257,12 @@ POST to ${keys.NOTIFY_WEBHOOK} with a JSON body:
257
257
  將 `NOTIFY_WEBHOOK` 設定為任何 HTTP 端點 - Slack 傳入 Webhook,通用
258
258
  通知服務,或自訂接收器。 `web-request`工具解決
259
259
  `${keys.NOTIFY_WEBHOOK}` 伺服器端;原始的 URL 永遠不會出現在代理的
260
- 上下文。見[Visual Plans — Events and notifications](/docs/template-plan#events)
260
+ 脈絡。見[Visual Plans — Events and notifications](/docs/template-plan#events)
261
261
  完整的 `plan.commented` 有效負載參考和所有四個計畫事件。
262
262
 
263
- ## 下一步是什么
263
+ ## 下一步是什麼
264
264
 
265
- - [**Recurring Jobs**](/docs/recurring-jobs) - 計畫觸發的自動化重用相同的計畫程序
266
- - [**Actions**](/docs/actions) - 自動化可以通過代理循環調用任何註冊的操作
265
+ - [**Recurring Jobs**](/docs/recurring-jobs) - 計畫觸發的自動化重用相同的計畫程式
266
+ - [**Actions**](/docs/actions) - 自動化可以透過代理迴圈呼叫任何註冊的操作
267
267
  - [**Security**](/docs/security) - 輸入驗證和秘密處理
268
268
  - [**Visual Plans — Events**](/docs/template-plan#events) - 計畫事件參考和自動化秘訣
@@ -1,14 +1,14 @@
1
1
  ---
2
- title: "藍圖安裝程序"
3
- description: "agent-native add 將精心策劃的 Markdown 整合配方列印到標準輸出 - 將其通過管道傳輸到您的編碼代理,該代理將針對您的實時儲存庫應用更改。"
2
+ title: "藍圖安裝程式"
3
+ description: "agent-native add 將精心策劃的 Markdown 整合配方列印到標準輸出 - 將其透過管道傳輸到您的編碼代理,該代理將針對您的即時儲存庫應用更改。"
4
4
  ---
5
5
 
6
- # 藍圖安裝程序
6
+ # 藍圖安裝程式
7
7
 
8
- > **這是誰的:** 新增提供者、渠道的主機作者和整合商,
9
- > 沙箱後端,或通過將配方傳輸到其編碼代理中來對儲存庫進行操作。
8
+ > **這是誰的:** 新增提供者、管道的主機作者和整合商,
9
+ > 沙箱後端,或透過將配方傳輸到其編碼代理中來對儲存庫進行操作。
10
10
 
11
- `agent-native add` 不是\*\*一個為你編寫檔案的愚蠢的腳手架。它將精心策劃的 Markdown _整合藍圖_ 發送到標準輸出。您可以將該藍圖傳輸到您自己的編碼代理(Claude 程式碼、Codex 等)中,該代理將針對具有完整上下文的實時儲存庫應用更改。
11
+ `agent-native add` 不是\*\*一個為你編寫檔案的愚蠢的腳手架。它將精心策劃的 Markdown _整合藍圖_ 傳送到標準輸出。您可以將該藍圖傳輸到您自己的編碼代理(Claude 程式碼、Codex 等)中,該代理將針對具有完整脈絡的即時儲存庫應用更改。
12
12
 
13
13
  這符合代理應用更改、檔案系統優先的風格:框架提供配方(要接觸的規範檔案、要遵守的規則、驗證步驟),編碼代理進行編輯。
14
14
 
@@ -17,7 +17,7 @@ agent-native add provider stripe | claude
17
17
  agent-native add channel discord | codex
18
18
  ```
19
19
 
20
- ```an-diagram title="新增列印菜譜;您的編碼代理應用它" summary="agent-native 向 stdout 發出 Markdown 藍圖(對 stderr 進行診斷);您可以將其通過管道傳輸到 Claude Code 或 Codex,這將使用完整的上下文編輯您的實時儲存庫。"
20
+ ```an-diagram title="新增列印配方;您的編碼代理應用它" summary="agent-native 向 stdout 發出 Markdown 藍圖(對 stderr 進行診斷);您可以將其透過管道傳輸到 Claude Code 或 Codex,這將使用完整的脈絡編輯您的即時儲存庫。"
21
21
  {
22
22
  "html": "<div class=\"diagram-bp\"><div class=\"diagram-node\" data-rough>agent-native add<br><small class=\"diagram-muted\">&lt;kind&gt; &lt;name|URL&gt;</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>Markdown 藍圖<br><small class=\"diagram-muted\">stdout · 要觸碰的檔案 · 規則 · 驗證</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\" data-rough>編碼 Agent<br><small class=\"diagram-muted\">claude · codex</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-pill ok\">edits your live repo</div></div>",
23
23
  "css": ".diagram-bp{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-bp .diagram-arrow{font-size:22px;line-height:1}.diagram-bp .center{display:flex;flex-direction:column;align-items:center;gap:4px}"
@@ -34,20 +34,20 @@ agent-native add --list # list available kinds and blueprints
34
34
 
35
35
  - 一個赤裸裸的**名字**就能解析出`blueprints/<kind>/<name>.md`精心策劃的藍圖。
36
36
  - **URL**(而不是名稱)會發出此類的通用*研究和整合*藍圖,其中嵌入 URL 作為研究起點(URL 是研究種子,而不是已知配方)。
37
- - 藍圖轉到 **stdout**;診斷會發送到 stderr,因此 `… | claude` 只會收到藍圖。
37
+ - 藍圖轉到 **stdout**;診斷會傳送到 stderr,因此 `… | claude` 只會收到藍圖。
38
38
 
39
39
  ## 播種藍圖 {#seeded}
40
40
 
41
41
  `agent-native add --list` 顯示包裝盒中的物品:
42
42
 
43
- | 種類 | 姓名 | 它設定什么 |
43
+ | 種類 | 姓名 | 它設定什麼 |
44
44
  | ---------- | --------- | ---------------------------------------------------------------------- |
45
- | `provider` | `stripe` | 將提供程序連線到 `provider-api` 基板(目錄/檔案/請求三重奏)。 |
45
+ | `provider` | `stripe` | 將提供者連線到 `provider-api` 基板(目錄/檔案/請求三重奏)。 |
46
46
  | `channel` | `discord` | 實現 `PlatformAdapter` 入站 Webhook 通道並註冊它。 |
47
47
  | `sandbox` | `docker` | 實現 `SandboxAdapter` 接縫以在 Docker 容器中執行 `run-code`。 |
48
- | `action` | `crud` | 新增具有 Zod 架構的單個多表面 `defineAction`(一個 `update` 超過 N)。 |
48
+ | `action` | `crud` | 新增具有 Zod 架構的單一多表面 `defineAction`(一個 `update` 超過 N)。 |
49
49
 
50
- 每個藍圖都是獨立的:讀取它的編碼代理獲取要接觸的檔案、要遵守的框架規則(actions 是單一事實來源、從不硬編碼秘密、範圍可擁有的資料、為 `packages/*` 來源新增變更集)以及具體的 **驗證** 部分。
50
+ 每個藍圖都是獨立的:讀取它的編碼代理取得要接觸的檔案、要遵守的框架規則(actions 是單一事實來源、從不硬編碼秘密、範圍可擁有的資料、為 `packages/*` 來源新增變更集)以及具體的 **驗證** 部分。
51
51
 
52
52
  ## URL → 研究藍圖 {#url}
53
53
 
@@ -57,17 +57,17 @@ agent-native add --list # list available kinds and blueprints
57
57
  agent-native add provider https://docs.example.com/api | claude
58
58
  ```
59
59
 
60
- 生成的藍圖告訴編碼代理獲取真實端點的 URL(及其連結到的頁面)、驗證模型、有效負載形狀和簽名/驗證要求(而不是從訓練資料中猜測),然後實施和驗證。它還帶有特定型別的指導(例如,`provider` URL 轉向 `provider-api` 基板;`channel` URL 轉向 `PlatformAdapter`)。
60
+ 產生的藍圖告訴編碼代理取得真實端點的 URL(及其連結到的頁面)、驗證模型、有效負載形狀和簽名/驗證要求(而不是從訓練資料中猜測),然後實施和驗證。它還帶有特定型別的指導(例如,`provider` URL 轉向 `provider-api` 基板;`channel` URL 轉向 `PlatformAdapter`)。
61
61
 
62
62
  ## 新增您自己的藍圖 {#authoring}
63
63
 
64
- 將 Markdown 檔案拖放到 `packages/core/blueprints/<kind>/<name>.md` 中。 kind 是子目錄;該名稱是不帶 `.md` 的檔案名。它是自動拾取的 - `--list`、名稱解析和目錄都在執行時讀取目錄。無需更改程式碼即可註冊。
64
+ 將 Markdown 檔案拖放到 `packages/core/blueprints/<kind>/<name>.md` 中。 kind 是子目錄;該名稱是不帶 `.md` 的檔名。它是自動拾取的 - `--list`、名稱解析和目錄都在執行時讀取目錄。無需更改程式碼即可註冊。
65
65
 
66
- 藍圖 `.md` 檔案通過 `package.json` `files` 中的 `blueprints` 條目發送到已發布的包中,因此最終使用者可以在 `node_modules/@agent-native/core/blueprints/**` 上進行解析。
66
+ 藍圖 `.md` 檔案透過 `package.json` `files` 中的 `blueprints` 條目傳送到已發布的包中,因此最終使用者可以在 `node_modules/@agent-native/core/blueprints/**` 上進行解析。
67
67
 
68
- 將每個藍圖編寫為編碼代理的指令集,沒有其他上下文。一個好的藍圖具有:
68
+ 將每個藍圖編寫為編碼代理的指令集,沒有其他脈絡。一個好的藍圖具有:
69
69
 
70
- 1. **一行目標**和“您是代理本機應用程式中的編碼代理,將這些作為真正的來源更改應用”框架。
70
+ 1. **一行目標**和“您是 Agent-Native 應用程式中的編碼代理,將這些作為真正的來源更改應用”框架。
71
71
  2. **首先閱讀** - *是*合約的確切檔案。
72
72
  3. **要接觸的檔案** - 具體路徑以及每個更改的作用。
73
73
  4. **要遵守的框架規則** - actions-first,無硬編碼秘密,範圍可擁有的資料,新增可發布包來源的變更集。
@@ -76,8 +76,8 @@ agent-native add provider https://docs.example.com/api | claude
76
76
  > [!TIP]
77
77
  > 現有型別下的新策劃藍圖不需要程式碼 - 但如果您建立一個全新的型別目錄,該型別也會自動顯示在 `--list` 中。
78
78
 
79
- ## 下一步是什么
79
+ ## 下一步是什麼
80
80
 
81
81
  - [**Sandbox Adapters**](/docs/sandbox-adapters) — `add sandbox docker` 藍圖目標的接縫
82
82
  - [**Actions**](/docs/actions) - 每個藍圖建置的單一事實來源
83
- - [**External Agents**](/docs/external-agents) — 連線將藍圖通過管道傳輸到的編碼代理
83
+ - [**External Agents**](/docs/external-agents) — 連線將藍圖透過管道傳輸到的編碼代理