@agent-native/core 0.92.11 → 0.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (777) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +45 -0
  3. package/corpus/core/docs/content/automation-connectors.mdx +80 -0
  4. package/corpus/core/docs/content/extensions.mdx +8 -0
  5. package/corpus/core/docs/content/locales/ar-SA/extensions.mdx +8 -0
  6. package/corpus/core/docs/content/locales/ar-SA/messaging.mdx +84 -15
  7. package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +1 -0
  8. package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +1 -0
  9. package/corpus/core/docs/content/locales/de-DE/extensions.mdx +10 -0
  10. package/corpus/core/docs/content/locales/de-DE/messaging.mdx +92 -15
  11. package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +1 -0
  12. package/corpus/core/docs/content/locales/de-DE/template-design.mdx +1 -0
  13. package/corpus/core/docs/content/locales/es-ES/extensions.mdx +10 -0
  14. package/corpus/core/docs/content/locales/es-ES/messaging.mdx +91 -15
  15. package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +1 -0
  16. package/corpus/core/docs/content/locales/es-ES/template-design.mdx +1 -0
  17. package/corpus/core/docs/content/locales/fr-FR/extensions.mdx +10 -0
  18. package/corpus/core/docs/content/locales/fr-FR/messaging.mdx +91 -15
  19. package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +1 -0
  20. package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +1 -0
  21. package/corpus/core/docs/content/locales/hi-IN/extensions.mdx +8 -0
  22. package/corpus/core/docs/content/locales/hi-IN/messaging.mdx +81 -15
  23. package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +1 -0
  24. package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +1 -0
  25. package/corpus/core/docs/content/locales/ja-JP/extensions.mdx +9 -0
  26. package/corpus/core/docs/content/locales/ja-JP/messaging.mdx +81 -15
  27. package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +1 -0
  28. package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +1 -0
  29. package/corpus/core/docs/content/locales/ko-KR/extensions.mdx +8 -0
  30. package/corpus/core/docs/content/locales/ko-KR/messaging.mdx +80 -15
  31. package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +1 -0
  32. package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +1 -0
  33. package/corpus/core/docs/content/locales/pt-BR/extensions.mdx +9 -0
  34. package/corpus/core/docs/content/locales/pt-BR/messaging.mdx +88 -15
  35. package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +1 -0
  36. package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +1 -0
  37. package/corpus/core/docs/content/locales/zh-CN/extensions.mdx +6 -0
  38. package/corpus/core/docs/content/locales/zh-CN/messaging.mdx +78 -15
  39. package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +1 -0
  40. package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +1 -0
  41. package/corpus/core/docs/content/locales/zh-TW/extensions.mdx +6 -0
  42. package/corpus/core/docs/content/locales/zh-TW/messaging.mdx +78 -15
  43. package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +1 -0
  44. package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +1 -0
  45. package/corpus/core/docs/content/messaging.mdx +227 -45
  46. package/corpus/core/docs/content/template-clips.mdx +3 -0
  47. package/corpus/core/docs/content/template-design.mdx +4 -0
  48. package/corpus/core/package.json +5 -1
  49. package/corpus/core/src/a2a/artifact-response.ts +131 -2
  50. package/corpus/core/src/a2a/client.ts +10 -0
  51. package/corpus/core/src/a2a/handlers.ts +40 -76
  52. package/corpus/core/src/a2a/types.ts +2 -0
  53. package/corpus/core/src/agent/durable-background.ts +24 -0
  54. package/corpus/core/src/agent/production-agent.ts +48 -5
  55. package/corpus/core/src/agent/run-manager.ts +171 -20
  56. package/corpus/core/src/agent/run-store.ts +297 -42
  57. package/corpus/core/src/agent/types.ts +23 -0
  58. package/corpus/core/src/audit/record.ts +31 -0
  59. package/corpus/core/src/audit/store.ts +69 -3
  60. package/corpus/core/src/audit/types.ts +13 -0
  61. package/corpus/core/src/automation/index.ts +802 -0
  62. package/corpus/core/src/cli/create.ts +12 -5
  63. package/corpus/core/src/cli/design-connect.ts +596 -36
  64. package/corpus/core/src/client/AgentPanel.tsx +51 -6
  65. package/corpus/core/src/client/AssistantChat.tsx +274 -147
  66. package/corpus/core/src/client/MultiTabAssistantChat.tsx +3 -0
  67. package/corpus/core/src/client/RunStuckBanner.tsx +69 -20
  68. package/corpus/core/src/client/agent-chat-adapter.ts +110 -17
  69. package/corpus/core/src/client/automation.ts +22 -0
  70. package/corpus/core/src/client/chat/run-recovery.tsx +67 -50
  71. package/corpus/core/src/client/composer/TiptapComposer.tsx +8 -0
  72. package/corpus/core/src/client/index.ts +30 -0
  73. package/corpus/core/src/client/integrations/api.ts +295 -0
  74. package/corpus/core/src/client/integrations/index.ts +26 -0
  75. package/corpus/core/src/client/transcription/use-live-transcription.ts +68 -5
  76. package/corpus/core/src/client/use-run-stuck-detection.ts +41 -3
  77. package/corpus/core/src/deploy/build.ts +59 -3
  78. package/corpus/core/src/deploy/workspace-deploy.ts +37 -2
  79. package/corpus/core/src/file-upload/types.ts +2 -0
  80. package/corpus/core/src/index.ts +37 -0
  81. package/corpus/core/src/integrations/a2a-continuations-store.ts +6 -4
  82. package/corpus/core/src/integrations/adapters/discord.ts +362 -0
  83. package/corpus/core/src/integrations/adapters/index.ts +29 -0
  84. package/corpus/core/src/integrations/adapters/microsoft-teams.ts +411 -0
  85. package/corpus/core/src/integrations/adapters/slack.ts +861 -27
  86. package/corpus/core/src/integrations/adapters/telegram.ts +54 -15
  87. package/corpus/core/src/integrations/adapters/whatsapp.ts +41 -17
  88. package/corpus/core/src/integrations/catalog.ts +571 -0
  89. package/corpus/core/src/integrations/controls-store.ts +187 -0
  90. package/corpus/core/src/integrations/index.ts +100 -0
  91. package/corpus/core/src/integrations/installations-store.ts +677 -0
  92. package/corpus/core/src/integrations/integration-memory.ts +187 -0
  93. package/corpus/core/src/integrations/pending-tasks-retry-job.ts +6 -6
  94. package/corpus/core/src/integrations/pending-tasks-store.ts +83 -5
  95. package/corpus/core/src/integrations/plugin.ts +685 -47
  96. package/corpus/core/src/integrations/scope-store.ts +498 -0
  97. package/corpus/core/src/integrations/slack-manifest.ts +78 -0
  98. package/corpus/core/src/integrations/slack-oauth.ts +343 -0
  99. package/corpus/core/src/integrations/types.ts +179 -0
  100. package/corpus/core/src/integrations/usage-budget-store.ts +906 -0
  101. package/corpus/core/src/integrations/webhook-handler.ts +562 -51
  102. package/corpus/core/src/jobs/scheduler.ts +100 -2
  103. package/corpus/core/src/jobs/tools.ts +45 -9
  104. package/corpus/core/src/provider-api/index.ts +72 -1
  105. package/corpus/core/src/resources/handlers.ts +88 -14
  106. package/corpus/core/src/resources/script-helpers.ts +36 -7
  107. package/corpus/core/src/resources/store.ts +59 -52
  108. package/corpus/core/src/scripts/call-agent.ts +107 -1
  109. package/corpus/core/src/server/agent-chat-plugin.ts +294 -119
  110. package/corpus/core/src/server/auth.ts +10 -14
  111. package/corpus/core/src/server/builder-design-systems.ts +16 -1
  112. package/corpus/core/src/server/edge.ts +18 -0
  113. package/corpus/core/src/server/index.ts +26 -0
  114. package/corpus/core/src/server/request-context.ts +18 -0
  115. package/corpus/core/src/server/social-og-image.ts +3 -2
  116. package/corpus/core/src/styles/agent-native.css +62 -44
  117. package/corpus/core/src/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
  118. package/corpus/core/src/templates/default/AGENTS.md +7 -3
  119. package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
  120. package/corpus/core/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
  121. package/corpus/core/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
  122. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
  123. package/corpus/core/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
  124. package/corpus/core/src/templates/workspace-core/AGENTS.md +3 -2
  125. package/corpus/core/src/usage/store.ts +37 -2
  126. package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +22 -9
  127. package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +23 -0
  128. package/corpus/templates/analytics/.builder/skills/provider-api/SKILL.md +15 -0
  129. package/corpus/templates/analytics/actions/save-monitor.ts +25 -2
  130. package/corpus/templates/analytics/app/lib/data-sources.ts +28 -0
  131. package/corpus/templates/analytics/changelog/2026-07-10-agent-created-uptime-monitors-now-return-a-direct-link-to-th.md +6 -0
  132. package/corpus/templates/analytics/changelog/2026-07-10-dashboard-email-reports-still-arrive-when-screenshot-capture-temporarily-fails.md +6 -0
  133. package/corpus/templates/analytics/server/jobs/dashboard-report.ts +3 -7
  134. package/corpus/templates/analytics/server/lib/credential-keys.ts +12 -0
  135. package/corpus/templates/analytics/server/lib/dashboard-report.ts +5 -1
  136. package/corpus/templates/analytics/server/lib/provider-credentials.ts +2 -0
  137. package/corpus/templates/analytics/server/routes/api/test-connection.post.ts +16 -0
  138. package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +22 -9
  139. package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +22 -9
  140. package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +22 -9
  141. package/corpus/templates/calendar/app/components/calendar/CommandPalette.tsx +98 -108
  142. package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +97 -90
  143. package/corpus/templates/calendar/changelog/2026-07-10-event-guest-details-and-option-menus-now-use-valid-accessibl.md +6 -0
  144. package/corpus/templates/calendar/changelog/2026-07-10-natural-language-event-phrases-stay-available-as-quick-creat.md +6 -0
  145. package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +22 -9
  146. package/corpus/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
  147. package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +22 -9
  148. package/corpus/templates/clips/.agents/skills/recording/SKILL.md +17 -1
  149. package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +8 -0
  150. package/corpus/templates/clips/AGENTS.md +8 -3
  151. package/corpus/templates/clips/actions/finalize-recording.ts +63 -23
  152. package/corpus/templates/clips/actions/get-recording-player-data.ts +6 -2
  153. package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +72 -9
  154. package/corpus/templates/clips/actions/list-recordings.ts +19 -3
  155. package/corpus/templates/clips/actions/navigate.ts +2 -0
  156. package/corpus/templates/clips/actions/reprocess-recording.ts +20 -6
  157. package/corpus/templates/clips/actions/request-transcript.ts +16 -31
  158. package/corpus/templates/clips/actions/view-screen.ts +57 -5
  159. package/corpus/templates/clips/app/components/layout/Header.tsx +1 -0
  160. package/corpus/templates/clips/app/components/library/empty-state.tsx +2 -0
  161. package/corpus/templates/clips/app/components/library/library-grid.tsx +69 -42
  162. package/corpus/templates/clips/app/components/library/library-layout.tsx +15 -1
  163. package/corpus/templates/clips/app/components/library/recording-card.tsx +81 -68
  164. package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -3
  165. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +9 -3
  166. package/corpus/templates/clips/app/components/player/share-dialog.tsx +1 -1
  167. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +27 -5
  168. package/corpus/templates/clips/app/hooks/use-library.ts +1 -1
  169. package/corpus/templates/clips/app/hooks/use-navigation-state.ts +10 -2
  170. package/corpus/templates/clips/app/hooks/use-player-shortcuts.ts +1 -0
  171. package/corpus/templates/clips/app/i18n/ar-SA.ts +7 -1
  172. package/corpus/templates/clips/app/i18n/de-DE.ts +7 -1
  173. package/corpus/templates/clips/app/i18n/en-US.ts +7 -1
  174. package/corpus/templates/clips/app/i18n/es-ES.ts +7 -1
  175. package/corpus/templates/clips/app/i18n/fr-FR.ts +7 -1
  176. package/corpus/templates/clips/app/i18n/hi-IN.ts +7 -1
  177. package/corpus/templates/clips/app/i18n/ja-JP.ts +7 -1
  178. package/corpus/templates/clips/app/i18n/ko-KR.ts +7 -1
  179. package/corpus/templates/clips/app/i18n/pt-BR.ts +7 -1
  180. package/corpus/templates/clips/app/i18n/zh-CN.ts +8 -1
  181. package/corpus/templates/clips/app/i18n/zh-TW.ts +8 -1
  182. package/corpus/templates/clips/app/lib/recording-visibility.ts +70 -0
  183. package/corpus/templates/clips/app/routes/_app.shared.tsx +20 -0
  184. package/corpus/templates/clips/app/routes/download.tsx +24 -8
  185. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +115 -2
  186. package/corpus/templates/clips/app/routes/record.tsx +62 -0
  187. package/corpus/templates/clips/app/routes/share.$shareId.tsx +25 -16
  188. package/corpus/templates/clips/changelog/2026-07-10-clips-desktop-is-now-available-for-linux-with-appimage-debia.md +6 -0
  189. package/corpus/templates/clips/changelog/2026-07-10-clips-downloads-updates-sooner-in-the-background-and-offers-.md +6 -0
  190. package/corpus/templates/clips/changelog/2026-07-10-clips-shared-with-you-now-appear-in-a-searchable-shared-with.md +6 -0
  191. package/corpus/templates/clips/changelog/2026-07-10-clips-with-missing-mobile-video-frames-can-be-repaired-witho.md +6 -0
  192. package/corpus/templates/clips/changelog/2026-07-10-fixed-copying-agent-responses-and-transcript-text-from-recor.md +6 -0
  193. package/corpus/templates/clips/changelog/2026-07-10-mobile-camera-recordings-pause-while-backgrounded.md +6 -0
  194. package/corpus/templates/clips/changelog/2026-07-10-mp4-downloads-now-show-progress-immediately-after-the-option.md +6 -0
  195. package/corpus/templates/clips/changelog/2026-07-10-recording-pages-now-open-as-soon-as-you-stop-with-a-share-li.md +6 -0
  196. package/corpus/templates/clips/changelog/2026-07-10-recordings-now-seek-smoothly-downloads-use-the-correct-file-.md +6 -0
  197. package/corpus/templates/clips/changelog/2026-07-10-s3-compatible-storage-now-saves-hosted-recordings-without-re.md +6 -0
  198. package/corpus/templates/clips/desktop/README.md +22 -6
  199. package/corpus/templates/clips/desktop/package.json +1 -1
  200. package/corpus/templates/clips/desktop/src/app.tsx +32 -19
  201. package/corpus/templates/clips/desktop/src/components/ReadinessPanel.tsx +15 -9
  202. package/corpus/templates/clips/desktop/src/lib/finalization-guard.ts +22 -0
  203. package/corpus/templates/clips/desktop/src/lib/permissions.ts +3 -1
  204. package/corpus/templates/clips/desktop/src/lib/recorder.ts +97 -120
  205. package/corpus/templates/clips/desktop/src/lib/updater.ts +26 -4
  206. package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +4 -8
  207. package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +1 -1
  208. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +2 -2
  209. package/corpus/templates/clips/desktop/src-tauri/src/permission_status.rs +11 -7
  210. package/corpus/templates/clips/desktop/src-tauri/tauri.linux.conf.json +11 -0
  211. package/corpus/templates/clips/netlify.toml +3 -0
  212. package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +106 -0
  213. package/corpus/templates/clips/server/lib/public-agent-context.ts +9 -1
  214. package/corpus/templates/clips/server/lib/resumable-upload-provider.ts +52 -0
  215. package/corpus/templates/clips/server/lib/s3-upload-provider.ts +433 -85
  216. package/corpus/templates/clips/server/lib/video-remux.ts +114 -0
  217. package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +109 -0
  218. package/corpus/templates/clips/server/routes/api/clips-updater.json.get.ts +22 -11
  219. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +4 -2
  220. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +47 -5
  221. package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +10 -2
  222. package/corpus/templates/clips/shared/share-loader-response.ts +12 -0
  223. package/corpus/templates/clips/shared/transcript-status.ts +40 -0
  224. package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +22 -9
  225. package/corpus/templates/content/.agents/skills/content/SKILL.md +57 -5
  226. package/corpus/templates/content/AGENTS.md +65 -55
  227. package/corpus/templates/content/actions/_builder-cms-read-client.ts +92 -23
  228. package/corpus/templates/content/actions/_database-source-utils.ts +207 -41
  229. package/corpus/templates/content/actions/_property-utils.ts +30 -2
  230. package/corpus/templates/content/actions/add-content-database-source-field-property.ts +316 -121
  231. package/corpus/templates/content/actions/attach-content-database-source.ts +41 -17
  232. package/corpus/templates/content/actions/change-content-database-source-role.ts +46 -8
  233. package/corpus/templates/content/actions/submit-content-database-form.ts +497 -0
  234. package/corpus/templates/content/actions/suggest-source-join-key.ts +8 -1
  235. package/corpus/templates/content/actions/update-content-database-view.ts +8 -1
  236. package/corpus/templates/content/actions/view-screen.ts +4 -1
  237. package/corpus/templates/content/agent-native.app-skill.json +1 -1
  238. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +250 -64
  239. package/corpus/templates/content/app/components/editor/database/FormView.tsx +460 -0
  240. package/corpus/templates/content/app/components/editor/database/navigation-state.ts +3 -0
  241. package/corpus/templates/content/app/components/editor/database/settings.tsx +30 -37
  242. package/corpus/templates/content/app/components/editor/database/shared.tsx +2 -0
  243. package/corpus/templates/content/app/components/editor/database/view-config.ts +29 -1
  244. package/corpus/templates/content/app/components/ui/textarea.tsx +1 -0
  245. package/corpus/templates/content/app/hooks/use-content-database.ts +22 -0
  246. package/corpus/templates/content/app/i18n/zh-TW.ts +21 -0
  247. package/corpus/templates/content/app/i18n-data.ts +225 -0
  248. package/corpus/templates/content/changelog/2026-07-09-builder-source-refreshes-now-keep-mapped-fields-such-as-topi.md +6 -0
  249. package/corpus/templates/content/changelog/2026-07-10-builder-backed-properties-now-load-current-source-values-as-.md +6 -0
  250. package/corpus/templates/content/changelog/2026-07-10-builder-database-refreshes-now-stay-explicit-and-accurate.md +6 -0
  251. package/corpus/templates/content/changelog/2026-07-10-database-form-views-now-collect-ordered-required-answers-and.md +6 -0
  252. package/corpus/templates/content/changelog/2026-07-10-database-tables-now-use-a-quieter-more-compact-layout-with-c.md +6 -0
  253. package/corpus/templates/content/changelog/2026-07-10-slack-intake-routes-to-content-database-forms.md +6 -0
  254. package/corpus/templates/content/parity/matrix.md +1 -0
  255. package/corpus/templates/content/parity/matrix.ts +18 -0
  256. package/corpus/templates/content/shared/api.ts +28 -1
  257. package/corpus/templates/content/shared/database-form.ts +53 -0
  258. package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +22 -9
  259. package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +26 -0
  260. package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +85 -12
  261. package/corpus/templates/design/AGENTS.md +72 -18
  262. package/corpus/templates/design/DESIGN.md +1 -1
  263. package/corpus/templates/design/DEVELOPING.md +1 -1
  264. package/corpus/templates/design/FIGMA_INTEROPERABILITY.md +116 -0
  265. package/corpus/templates/design/actions/create-design-from-template.ts +220 -0
  266. package/corpus/templates/design/actions/create-design-system.ts +92 -16
  267. package/corpus/templates/design/actions/delete-design-template.ts +28 -0
  268. package/corpus/templates/design/actions/delete-file.ts +7 -0
  269. package/corpus/templates/design/actions/edit-design.ts +3 -0
  270. package/corpus/templates/design/actions/export-design-as-figma-svg.ts +137 -5
  271. package/corpus/templates/design/actions/export-pdf.ts +1 -1
  272. package/corpus/templates/design/actions/generate-design.ts +3 -0
  273. package/corpus/templates/design/actions/get-design-snapshot.ts +9 -0
  274. package/corpus/templates/design/actions/get-figma-connection-status.ts +26 -0
  275. package/corpus/templates/design/actions/get-figma-design-context.ts +138 -0
  276. package/corpus/templates/design/actions/get-figma-styles.ts +2 -2
  277. package/corpus/templates/design/actions/import-figma-clipboard.ts +112 -16
  278. package/corpus/templates/design/actions/import-figma-frame.ts +15 -4
  279. package/corpus/templates/design/actions/index-design-system-with-builder.ts +4 -0
  280. package/corpus/templates/design/actions/list-design-templates.ts +118 -0
  281. package/corpus/templates/design/actions/navigate.ts +16 -2
  282. package/corpus/templates/design/actions/provider-api-request.ts +11 -1
  283. package/corpus/templates/design/actions/save-design-as-template.ts +156 -0
  284. package/corpus/templates/design/actions/set-active-breakpoint.ts +13 -4
  285. package/corpus/templates/design/actions/take-design-screenshot.ts +73 -3
  286. package/corpus/templates/design/actions/update-file.ts +39 -22
  287. package/corpus/templates/design/actions/view-screen.ts +36 -1
  288. package/corpus/templates/design/actions/write-local-file.ts +50 -38
  289. package/corpus/templates/design/app/components/design/AutoLayoutSuggestionDialog.tsx +151 -0
  290. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +20 -0
  291. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +251 -22
  292. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +3 -3
  293. package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +384 -9
  294. package/corpus/templates/design/app/components/design/EditPanel.tsx +105 -32
  295. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +58 -28
  296. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -0
  297. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +539 -53
  298. package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +40 -0
  299. package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +1 -0
  300. package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +1 -0
  301. package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +5 -1
  302. package/corpus/templates/design/app/components/design/code-workbench/workspace/create-providers.ts +2 -0
  303. package/corpus/templates/design/app/components/design/code-workbench/workspace/localhost-provider.ts +3 -1
  304. package/corpus/templates/design/app/components/design/code-workbench/workspace/types.ts +2 -0
  305. package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +19 -0
  306. package/corpus/templates/design/app/components/design/edit-panel/frame-presets-panel.tsx +1 -0
  307. package/corpus/templates/design/app/components/design/edit-panel/interaction-state-helpers.ts +27 -0
  308. package/corpus/templates/design/app/components/design/inspector/InteractionStatePanel.tsx +137 -81
  309. package/corpus/templates/design/app/components/design/inspector/frame-size-presets.ts +25 -5
  310. package/corpus/templates/design/app/components/design/multi-screen/chrome-transitions.ts +1 -1
  311. package/corpus/templates/design/app/components/design/multi-screen/frame-geometry.ts +220 -3
  312. package/corpus/templates/design/app/components/design/multi-screen/overview-layout.ts +13 -0
  313. package/corpus/templates/design/app/components/design/multi-screen/types.ts +22 -1
  314. package/corpus/templates/design/app/components/design/types.ts +4 -0
  315. package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +208 -0
  316. package/corpus/templates/design/app/components/editor/FigmaLinkComposerBubble.tsx +321 -0
  317. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +24 -4
  318. package/corpus/templates/design/app/components/layout/Layout.tsx +16 -2
  319. package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -0
  320. package/corpus/templates/design/app/components/templates/TemplatePreview.tsx +72 -0
  321. package/corpus/templates/design/app/global.css +2 -35
  322. package/corpus/templates/design/app/hooks/use-navigation-state.ts +10 -0
  323. package/corpus/templates/design/app/i18n/zh-TW.ts +127 -5
  324. package/corpus/templates/design/app/i18n-breakpoints.ts +209 -0
  325. package/corpus/templates/design/app/i18n-data.ts +1317 -59
  326. package/corpus/templates/design/app/i18n-template-feature.ts +458 -0
  327. package/corpus/templates/design/app/lib/design-clipboard.ts +202 -0
  328. package/corpus/templates/design/app/lib/design-file-upload.ts +87 -0
  329. package/corpus/templates/design/app/lib/design-import.ts +168 -11
  330. package/corpus/templates/design/app/lib/desktop-design-preview.ts +423 -0
  331. package/corpus/templates/design/app/lib/figma-clipboard.ts +74 -8
  332. package/corpus/templates/design/app/lib/figma-connection.ts +161 -0
  333. package/corpus/templates/design/app/lib/figma-svg-copy.ts +814 -22
  334. package/corpus/templates/design/app/lib/figma-url.ts +77 -0
  335. package/corpus/templates/design/app/lib/pending-generation.ts +35 -0
  336. package/corpus/templates/design/app/pages/DesignSystems.tsx +236 -177
  337. package/corpus/templates/design/app/pages/Index.tsx +38 -0
  338. package/corpus/templates/design/app/pages/Templates.tsx +498 -0
  339. package/corpus/templates/design/app/pages/design-editor/auto-layout-suggestion.ts +328 -0
  340. package/corpus/templates/design/app/pages/design-editor/clone-idrefs.ts +113 -0
  341. package/corpus/templates/design/app/pages/design-editor/created-screen-navigation.ts +55 -0
  342. package/corpus/templates/design/app/pages/design-editor/editor-session.ts +32 -0
  343. package/corpus/templates/design/app/pages/design-editor/editor-state.ts +49 -2
  344. package/corpus/templates/design/app/pages/design-editor/export-capture.ts +296 -0
  345. package/corpus/templates/design/app/pages/design-editor/history.ts +101 -2
  346. package/corpus/templates/design/app/pages/design-editor/layout-operations.ts +28 -1
  347. package/corpus/templates/design/app/pages/design-editor/overview-camera.ts +34 -0
  348. package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +202 -6
  349. package/corpus/templates/design/app/pages/design-editor/pending-structure-verification.ts +92 -0
  350. package/corpus/templates/design/app/pages/design-editor/save-failure.ts +58 -0
  351. package/corpus/templates/design/app/routes/templates.tsx +4 -6
  352. package/corpus/templates/design/changelog/2026-07-10-app-workspaces-now-use-clean-borderless-main-surfaces-throug.md +6 -0
  353. package/corpus/templates/design/changelog/2026-07-10-ask-chat-what-s-in-a-figma-file-or-frame-structure-screensho.md +6 -0
  354. package/corpus/templates/design/changelog/2026-07-10-canvas-edits-now-reject-malformed-html-before-it-can-corrupt.md +6 -0
  355. package/corpus/templates/design/changelog/2026-07-10-complex-designs-now-export-as-valid-secure-svgs-and-crisp-ra.md +6 -0
  356. package/corpus/templates/design/changelog/2026-07-10-complex-figma-masks-arcs-rich-text-transformed-images-and-ad.md +6 -0
  357. package/corpus/templates/design/changelog/2026-07-10-copied-layers-paste-across-designs-and-browser-tabs.md +6 -0
  358. package/corpus/templates/design/changelog/2026-07-10-copy-and-download-editable-figma-svg.md +6 -0
  359. package/corpus/templates/design/changelog/2026-07-10-copying-design-text-now-pastes-readable-text-into-other-apps.md +6 -0
  360. package/corpus/templates/design/changelog/2026-07-10-deleted-screens-can-be-restored-with-undo-and-removed-again-.md +6 -0
  361. package/corpus/templates/design/changelog/2026-07-10-design-changes-now-save-before-switching-apps-and-retry-when.md +6 -0
  362. package/corpus/templates/design/changelog/2026-07-10-design-stays-usable-on-phones-by-keeping-editor-panels-and-f.md +6 -0
  363. package/corpus/templates/design/changelog/2026-07-10-download-all-screens-as-one-multi-page-pdf-from-the-overview.md +6 -0
  364. package/corpus/templates/design/changelog/2026-07-10-duplicated-layers-now-keep-labels-aria-relationships-fragmen.md +6 -0
  365. package/corpus/templates/design/changelog/2026-07-10-fig-import-results-stay-compact.md +6 -0
  366. package/corpus/templates/design/changelog/2026-07-10-figma-imports-now-load-real-fonts-fix-rotated-gradient-dashe.md +6 -0
  367. package/corpus/templates/design/changelog/2026-07-10-figma-links-in-chat-and-the-import-tab-now-offer-secure-one-.md +6 -0
  368. package/corpus/templates/design/changelog/2026-07-10-fixed-cmd-z-not-restoring-content-after-an-agent-driven-desi.md +6 -0
  369. package/corpus/templates/design/changelog/2026-07-10-fixed-download-pdf-being-unreachable-from-the-export-panel-e.md +6 -0
  370. package/corpus/templates/design/changelog/2026-07-10-fixed-dragging-a-layer-out-of-an-auto-layout-row-column-no-l.md +6 -0
  371. package/corpus/templates/design/changelog/2026-07-10-fixed-figma-svg-export-text-wrapping-sizing-and-inner-layer.md +6 -0
  372. package/corpus/templates/design/changelog/2026-07-10-fixed-hiding-or-locking-one-layer-no-longer-hides-or-blocks-.md +6 -0
  373. package/corpus/templates/design/changelog/2026-07-10-fixed-png-screenshots-of-tall-screens-being-cropped-to-one-v.md +6 -0
  374. package/corpus/templates/design/changelog/2026-07-10-fixed-png-svg-exports-capturing-broken-layout-when-webfonts-.md +6 -0
  375. package/corpus/templates/design/changelog/2026-07-10-frame-tool-now-offers-standard-ad-unit-size-presets-medium-r.md +6 -0
  376. package/corpus/templates/design/changelog/2026-07-10-full-view-controls-stay-within-their-frame-instead-of-coveri.md +6 -0
  377. package/corpus/templates/design/changelog/2026-07-10-hover-focus-focus-visible-pressed-and-disabled-states-now-pr.md +6 -0
  378. package/corpus/templates/design/changelog/2026-07-10-layer-drops-now-land-in-the-intended-grid-row-stay-visually-.md +6 -0
  379. package/corpus/templates/design/changelog/2026-07-10-local-code-workspaces-now-keep-unsaved-edits-across-panel-sw.md +6 -0
  380. package/corpus/templates/design/changelog/2026-07-10-local-visual-editing-now-keeps-authenticated-sessions-shared.md +6 -0
  381. package/corpus/templates/design/changelog/2026-07-10-long-running-agent-work-no-longer-shows-a-premature-stuck-wa.md +6 -0
  382. package/corpus/templates/design/changelog/2026-07-10-managed-figma-connections-are-recognized-automatically.md +6 -0
  383. package/corpus/templates/design/changelog/2026-07-10-new-designs-can-open-directly-in-the-editor-without-a-pr.md +6 -0
  384. package/corpus/templates/design/changelog/2026-07-10-new-screens-are-selected-and-revealed-immediately.md +6 -0
  385. package/corpus/templates/design/changelog/2026-07-10-new-text-layers-undo-as-one-safe-creation.md +6 -0
  386. package/corpus/templates/design/changelog/2026-07-10-preview-and-apply-inferred-auto-layout-without-changing-yo.md +5 -0
  387. package/corpus/templates/design/changelog/2026-07-10-print-pdf-exports-and-paper-size-presets-letter-a4-now-match.md +6 -0
  388. package/corpus/templates/design/changelog/2026-07-10-responsive-frame-editing.md +6 -0
  389. package/corpus/templates/design/changelog/2026-07-10-reusable-design-templates.md +6 -0
  390. package/corpus/templates/design/changelog/2026-07-10-screen-overview-frames-now-use-a-clearer-interact-action-wit.md +6 -0
  391. package/corpus/templates/design/changelog/2026-07-10-start-designs-from-source-linked-material-3-carbon-or-primer.md +6 -0
  392. package/corpus/templates/design/changelog/2026-07-10-tweaks-guidance.md +6 -0
  393. package/corpus/templates/design/changelog/2026-07-10-uploaded-fig-files-can-now-become-editable-design-screens-wi.md +6 -0
  394. package/corpus/templates/design/e2e/helpers.ts +3 -3
  395. package/corpus/templates/design/package.json +2 -0
  396. package/corpus/templates/design/scripts/qa-figma-stress-import.ts +96 -0
  397. package/corpus/templates/design/server/db/index.ts +10 -0
  398. package/corpus/templates/design/server/db/schema.ts +44 -0
  399. package/corpus/templates/design/server/handlers/import-design-file.ts +114 -80
  400. package/corpus/templates/design/server/handlers/index-design-system-with-builder.ts +19 -6
  401. package/corpus/templates/design/server/lib/design-export.ts +240 -3
  402. package/corpus/templates/design/server/lib/design-template-data.ts +89 -0
  403. package/corpus/templates/design/server/lib/design-to-figma-svg.ts +250 -26
  404. package/corpus/templates/design/server/lib/fig-file-decoder.ts +839 -0
  405. package/corpus/templates/design/server/lib/fig-file-import.ts +287 -0
  406. package/corpus/templates/design/server/lib/fig-file-limits.ts +3 -0
  407. package/corpus/templates/design/server/lib/fig-file-to-html.ts +2568 -0
  408. package/corpus/templates/design/server/lib/figma-design-context.ts +359 -0
  409. package/corpus/templates/design/server/lib/figma-node-import.ts +478 -22
  410. package/corpus/templates/design/server/lib/figma-node-to-html.ts +554 -29
  411. package/corpus/templates/design/server/lib/local-figma-qa-upload.ts +112 -0
  412. package/corpus/templates/design/server/lib/verify-write-grant.ts +16 -2
  413. package/corpus/templates/design/server/lib/visible-clipboard-html.ts +13 -3
  414. package/corpus/templates/design/server/plugins/agent-chat.ts +7 -0
  415. package/corpus/templates/design/server/plugins/db.ts +42 -0
  416. package/corpus/templates/design/server/plugins/local-figma-qa-upload.ts +7 -0
  417. package/corpus/templates/design/server/register-secrets.ts +8 -8
  418. package/corpus/templates/design/server/routes/api/qa-figma-import-assets/[assetId].get.ts +46 -0
  419. package/corpus/templates/design/server/source-workspace.ts +104 -12
  420. package/corpus/templates/design/shared/code-layer.ts +105 -28
  421. package/corpus/templates/design/shared/design-system-templates.ts +301 -0
  422. package/corpus/templates/design/shared/design-template-presets.ts +195 -0
  423. package/corpus/templates/design/shared/figma-url.ts +8 -0
  424. package/corpus/templates/design/shared/html-integrity.ts +306 -0
  425. package/corpus/templates/design/shared/interaction-states.ts +318 -23
  426. package/corpus/templates/design/shared/locked-layers.ts +151 -0
  427. package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +22 -9
  428. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +48 -0
  429. package/corpus/templates/dispatch/app/i18n-data.ts +536 -1
  430. package/corpus/templates/dispatch/changelog/2026-07-10-connect-slack-workspaces-with-oauth-and-manage-channel-ident.md +6 -0
  431. package/corpus/templates/dispatch/changelog/2026-07-10-microsoft-teams-bots-and-discord-slash-commands-can-now-conn.md +6 -0
  432. package/corpus/templates/dispatch/changelog/2026-07-10-slack-and-telegram-now-route-uptime-monitor-requests-to-anal.md +6 -0
  433. package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +22 -9
  434. package/corpus/templates/forms/.agents/skills/form-publishing/SKILL.md +7 -0
  435. package/corpus/templates/forms/AGENTS.md +4 -0
  436. package/corpus/templates/forms/actions/create-form.ts +44 -7
  437. package/corpus/templates/forms/actions/lib/assert-publishable-form.ts +38 -0
  438. package/corpus/templates/forms/actions/patch-form-fields.ts +4 -0
  439. package/corpus/templates/forms/actions/update-form.ts +2 -36
  440. package/corpus/templates/forms/app/i18n/ar-SA.ts +3 -0
  441. package/corpus/templates/forms/app/i18n/de-DE.ts +3 -0
  442. package/corpus/templates/forms/app/i18n/en-US.ts +3 -0
  443. package/corpus/templates/forms/app/i18n/es-ES.ts +3 -0
  444. package/corpus/templates/forms/app/i18n/fr-FR.ts +3 -0
  445. package/corpus/templates/forms/app/i18n/hi-IN.ts +3 -0
  446. package/corpus/templates/forms/app/i18n/ja-JP.ts +3 -0
  447. package/corpus/templates/forms/app/i18n/ko-KR.ts +3 -0
  448. package/corpus/templates/forms/app/i18n/pt-BR.ts +3 -0
  449. package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
  450. package/corpus/templates/forms/app/i18n/zh-TW.ts +3 -0
  451. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +17 -0
  452. package/corpus/templates/forms/changelog/2026-07-10-agent-created-published-forms-now-return-the-anonymous-publi.md +6 -0
  453. package/corpus/templates/forms/changelog/2026-07-10-published-forms-can-no-longer-be-edited-into-an-unusable-emp.md +6 -0
  454. package/corpus/templates/forms/server/handlers/submissions.ts +4 -3
  455. package/corpus/templates/forms/server/plugins/agent-chat.ts +1 -0
  456. package/corpus/templates/forms/shared/types.ts +5 -0
  457. package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +22 -9
  458. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +2 -2
  459. package/corpus/templates/mail/changelog/2026-07-10-mail-navigation-now-uses-a-clean-borderless-drawer.md +6 -0
  460. package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +22 -9
  461. package/corpus/templates/plan/app/lib/plan-local-bridge.ts +4 -1
  462. package/corpus/templates/plan/changelog/2026-07-10-local-plans-now-keep-valid-content-visible-when-one-generate.md +6 -0
  463. package/corpus/templates/plan/server/lib/local-plan-files.ts +4 -1
  464. package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +22 -9
  465. package/dist/a2a/artifact-response.d.ts.map +1 -1
  466. package/dist/a2a/artifact-response.js +88 -2
  467. package/dist/a2a/artifact-response.js.map +1 -1
  468. package/dist/a2a/client.d.ts +9 -0
  469. package/dist/a2a/client.d.ts.map +1 -1
  470. package/dist/a2a/client.js +1 -0
  471. package/dist/a2a/client.js.map +1 -1
  472. package/dist/a2a/handlers.d.ts.map +1 -1
  473. package/dist/a2a/handlers.js +24 -69
  474. package/dist/a2a/handlers.js.map +1 -1
  475. package/dist/a2a/types.d.ts +2 -0
  476. package/dist/a2a/types.d.ts.map +1 -1
  477. package/dist/a2a/types.js.map +1 -1
  478. package/dist/agent/durable-background.d.ts +11 -0
  479. package/dist/agent/durable-background.d.ts.map +1 -1
  480. package/dist/agent/durable-background.js +17 -0
  481. package/dist/agent/durable-background.js.map +1 -1
  482. package/dist/agent/production-agent.d.ts +5 -3
  483. package/dist/agent/production-agent.d.ts.map +1 -1
  484. package/dist/agent/production-agent.js +34 -8
  485. package/dist/agent/production-agent.js.map +1 -1
  486. package/dist/agent/run-manager.d.ts +44 -2
  487. package/dist/agent/run-manager.d.ts.map +1 -1
  488. package/dist/agent/run-manager.js +124 -18
  489. package/dist/agent/run-manager.js.map +1 -1
  490. package/dist/agent/run-store.d.ts +109 -0
  491. package/dist/agent/run-store.d.ts.map +1 -1
  492. package/dist/agent/run-store.js +274 -37
  493. package/dist/agent/run-store.js.map +1 -1
  494. package/dist/agent/types.d.ts +22 -0
  495. package/dist/agent/types.d.ts.map +1 -1
  496. package/dist/agent/types.js.map +1 -1
  497. package/dist/audit/record.d.ts.map +1 -1
  498. package/dist/audit/record.js +29 -0
  499. package/dist/audit/record.js.map +1 -1
  500. package/dist/audit/store.d.ts.map +1 -1
  501. package/dist/audit/store.js +62 -3
  502. package/dist/audit/store.js.map +1 -1
  503. package/dist/audit/types.d.ts +13 -0
  504. package/dist/audit/types.d.ts.map +1 -1
  505. package/dist/audit/types.js.map +1 -1
  506. package/dist/automation/index.d.ts +193 -0
  507. package/dist/automation/index.d.ts.map +1 -0
  508. package/dist/automation/index.js +464 -0
  509. package/dist/automation/index.js.map +1 -0
  510. package/dist/cli/create.d.ts.map +1 -1
  511. package/dist/cli/create.js +10 -3
  512. package/dist/cli/create.js.map +1 -1
  513. package/dist/cli/design-connect.d.ts.map +1 -1
  514. package/dist/cli/design-connect.js +492 -35
  515. package/dist/cli/design-connect.js.map +1 -1
  516. package/dist/client/AgentPanel.d.ts +7 -1
  517. package/dist/client/AgentPanel.d.ts.map +1 -1
  518. package/dist/client/AgentPanel.js +32 -8
  519. package/dist/client/AgentPanel.js.map +1 -1
  520. package/dist/client/AssistantChat.d.ts +15 -0
  521. package/dist/client/AssistantChat.d.ts.map +1 -1
  522. package/dist/client/AssistantChat.js +115 -47
  523. package/dist/client/AssistantChat.js.map +1 -1
  524. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  525. package/dist/client/MultiTabAssistantChat.js +1 -1
  526. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  527. package/dist/client/RunStuckBanner.d.ts +14 -1
  528. package/dist/client/RunStuckBanner.d.ts.map +1 -1
  529. package/dist/client/RunStuckBanner.js +35 -7
  530. package/dist/client/RunStuckBanner.js.map +1 -1
  531. package/dist/client/agent-chat-adapter.d.ts +4 -1
  532. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  533. package/dist/client/agent-chat-adapter.js +97 -16
  534. package/dist/client/agent-chat-adapter.js.map +1 -1
  535. package/dist/client/automation.d.ts +14 -0
  536. package/dist/client/automation.d.ts.map +1 -0
  537. package/dist/client/automation.js +9 -0
  538. package/dist/client/automation.js.map +1 -0
  539. package/dist/client/chat/run-recovery.d.ts +4 -0
  540. package/dist/client/chat/run-recovery.d.ts.map +1 -1
  541. package/dist/client/chat/run-recovery.js +12 -10
  542. package/dist/client/chat/run-recovery.js.map +1 -1
  543. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  544. package/dist/client/composer/TiptapComposer.js +8 -0
  545. package/dist/client/composer/TiptapComposer.js.map +1 -1
  546. package/dist/client/index.d.ts +2 -0
  547. package/dist/client/index.d.ts.map +1 -1
  548. package/dist/client/index.js +2 -0
  549. package/dist/client/index.js.map +1 -1
  550. package/dist/client/integrations/api.d.ts +115 -0
  551. package/dist/client/integrations/api.d.ts.map +1 -0
  552. package/dist/client/integrations/api.js +123 -0
  553. package/dist/client/integrations/api.js.map +1 -0
  554. package/dist/client/integrations/index.d.ts +1 -0
  555. package/dist/client/integrations/index.d.ts.map +1 -1
  556. package/dist/client/integrations/index.js +1 -0
  557. package/dist/client/integrations/index.js.map +1 -1
  558. package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
  559. package/dist/client/transcription/use-live-transcription.js +59 -5
  560. package/dist/client/transcription/use-live-transcription.js.map +1 -1
  561. package/dist/client/use-run-stuck-detection.d.ts +16 -1
  562. package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
  563. package/dist/client/use-run-stuck-detection.js +23 -4
  564. package/dist/client/use-run-stuck-detection.js.map +1 -1
  565. package/dist/collab/awareness.d.ts +2 -2
  566. package/dist/collab/awareness.d.ts.map +1 -1
  567. package/dist/deploy/build.d.ts.map +1 -1
  568. package/dist/deploy/build.js +49 -4
  569. package/dist/deploy/build.js.map +1 -1
  570. package/dist/deploy/workspace-deploy.d.ts.map +1 -1
  571. package/dist/deploy/workspace-deploy.js +31 -2
  572. package/dist/deploy/workspace-deploy.js.map +1 -1
  573. package/dist/file-upload/types.d.ts +2 -0
  574. package/dist/file-upload/types.d.ts.map +1 -1
  575. package/dist/file-upload/types.js.map +1 -1
  576. package/dist/index.d.ts +2 -0
  577. package/dist/index.d.ts.map +1 -1
  578. package/dist/index.js +2 -0
  579. package/dist/index.js.map +1 -1
  580. package/dist/integrations/a2a-continuations-store.d.ts.map +1 -1
  581. package/dist/integrations/a2a-continuations-store.js +6 -4
  582. package/dist/integrations/a2a-continuations-store.js.map +1 -1
  583. package/dist/integrations/adapters/discord.d.ts +3 -0
  584. package/dist/integrations/adapters/discord.d.ts.map +1 -0
  585. package/dist/integrations/adapters/discord.js +261 -0
  586. package/dist/integrations/adapters/discord.js.map +1 -0
  587. package/dist/integrations/adapters/index.d.ts +4 -0
  588. package/dist/integrations/adapters/index.d.ts.map +1 -0
  589. package/dist/integrations/adapters/index.js +26 -0
  590. package/dist/integrations/adapters/index.js.map +1 -0
  591. package/dist/integrations/adapters/microsoft-teams.d.ts +5 -0
  592. package/dist/integrations/adapters/microsoft-teams.d.ts.map +1 -0
  593. package/dist/integrations/adapters/microsoft-teams.js +295 -0
  594. package/dist/integrations/adapters/microsoft-teams.js.map +1 -0
  595. package/dist/integrations/adapters/slack.d.ts +8 -2
  596. package/dist/integrations/adapters/slack.d.ts.map +1 -1
  597. package/dist/integrations/adapters/slack.js +736 -27
  598. package/dist/integrations/adapters/slack.js.map +1 -1
  599. package/dist/integrations/adapters/telegram.d.ts +0 -2
  600. package/dist/integrations/adapters/telegram.d.ts.map +1 -1
  601. package/dist/integrations/adapters/telegram.js +49 -15
  602. package/dist/integrations/adapters/telegram.js.map +1 -1
  603. package/dist/integrations/adapters/whatsapp.d.ts +0 -2
  604. package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
  605. package/dist/integrations/adapters/whatsapp.js +40 -17
  606. package/dist/integrations/adapters/whatsapp.js.map +1 -1
  607. package/dist/integrations/catalog.d.ts +75 -0
  608. package/dist/integrations/catalog.d.ts.map +1 -0
  609. package/dist/integrations/catalog.js +451 -0
  610. package/dist/integrations/catalog.js.map +1 -0
  611. package/dist/integrations/controls-store.d.ts +44 -0
  612. package/dist/integrations/controls-store.d.ts.map +1 -0
  613. package/dist/integrations/controls-store.js +129 -0
  614. package/dist/integrations/controls-store.js.map +1 -0
  615. package/dist/integrations/index.d.ts +13 -1
  616. package/dist/integrations/index.d.ts.map +1 -1
  617. package/dist/integrations/index.js +9 -0
  618. package/dist/integrations/index.js.map +1 -1
  619. package/dist/integrations/installations-store.d.ts +112 -0
  620. package/dist/integrations/installations-store.d.ts.map +1 -0
  621. package/dist/integrations/installations-store.js +493 -0
  622. package/dist/integrations/installations-store.js.map +1 -0
  623. package/dist/integrations/integration-memory.d.ts +24 -0
  624. package/dist/integrations/integration-memory.d.ts.map +1 -0
  625. package/dist/integrations/integration-memory.js +136 -0
  626. package/dist/integrations/integration-memory.js.map +1 -0
  627. package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -1
  628. package/dist/integrations/pending-tasks-retry-job.js +6 -5
  629. package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
  630. package/dist/integrations/pending-tasks-store.d.ts +17 -0
  631. package/dist/integrations/pending-tasks-store.d.ts.map +1 -1
  632. package/dist/integrations/pending-tasks-store.js +71 -5
  633. package/dist/integrations/pending-tasks-store.js.map +1 -1
  634. package/dist/integrations/plugin.d.ts.map +1 -1
  635. package/dist/integrations/plugin.js +520 -35
  636. package/dist/integrations/plugin.js.map +1 -1
  637. package/dist/integrations/scope-store.d.ts +65 -0
  638. package/dist/integrations/scope-store.d.ts.map +1 -0
  639. package/dist/integrations/scope-store.js +361 -0
  640. package/dist/integrations/scope-store.js.map +1 -0
  641. package/dist/integrations/slack-manifest.d.ts +66 -0
  642. package/dist/integrations/slack-manifest.d.ts.map +1 -0
  643. package/dist/integrations/slack-manifest.js +70 -0
  644. package/dist/integrations/slack-manifest.js.map +1 -0
  645. package/dist/integrations/slack-oauth.d.ts +99 -0
  646. package/dist/integrations/slack-oauth.d.ts.map +1 -0
  647. package/dist/integrations/slack-oauth.js +226 -0
  648. package/dist/integrations/slack-oauth.js.map +1 -0
  649. package/dist/integrations/types.d.ts +144 -0
  650. package/dist/integrations/types.d.ts.map +1 -1
  651. package/dist/integrations/types.js +16 -1
  652. package/dist/integrations/types.js.map +1 -1
  653. package/dist/integrations/usage-budget-store.d.ts +84 -0
  654. package/dist/integrations/usage-budget-store.d.ts.map +1 -0
  655. package/dist/integrations/usage-budget-store.js +650 -0
  656. package/dist/integrations/usage-budget-store.js.map +1 -0
  657. package/dist/integrations/webhook-handler.d.ts +4 -0
  658. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  659. package/dist/integrations/webhook-handler.js +415 -47
  660. package/dist/integrations/webhook-handler.js.map +1 -1
  661. package/dist/jobs/scheduler.d.ts +6 -0
  662. package/dist/jobs/scheduler.d.ts.map +1 -1
  663. package/dist/jobs/scheduler.js +83 -4
  664. package/dist/jobs/scheduler.js.map +1 -1
  665. package/dist/jobs/tools.d.ts.map +1 -1
  666. package/dist/jobs/tools.js +43 -11
  667. package/dist/jobs/tools.js.map +1 -1
  668. package/dist/provider-api/index.d.ts +4 -4
  669. package/dist/provider-api/index.d.ts.map +1 -1
  670. package/dist/provider-api/index.js +72 -1
  671. package/dist/provider-api/index.js.map +1 -1
  672. package/dist/resources/handlers.d.ts.map +1 -1
  673. package/dist/resources/handlers.js +57 -15
  674. package/dist/resources/handlers.js.map +1 -1
  675. package/dist/resources/script-helpers.d.ts.map +1 -1
  676. package/dist/resources/script-helpers.js +34 -8
  677. package/dist/resources/script-helpers.js.map +1 -1
  678. package/dist/resources/store.d.ts +10 -0
  679. package/dist/resources/store.d.ts.map +1 -1
  680. package/dist/resources/store.js +54 -47
  681. package/dist/resources/store.js.map +1 -1
  682. package/dist/scripts/call-agent.d.ts.map +1 -1
  683. package/dist/scripts/call-agent.js +106 -1
  684. package/dist/scripts/call-agent.js.map +1 -1
  685. package/dist/server/agent-chat-plugin.d.ts +15 -4
  686. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  687. package/dist/server/agent-chat-plugin.js +248 -113
  688. package/dist/server/agent-chat-plugin.js.map +1 -1
  689. package/dist/server/auth.d.ts.map +1 -1
  690. package/dist/server/auth.js +10 -14
  691. package/dist/server/auth.js.map +1 -1
  692. package/dist/server/builder-design-systems.d.ts +3 -1
  693. package/dist/server/builder-design-systems.d.ts.map +1 -1
  694. package/dist/server/builder-design-systems.js +9 -2
  695. package/dist/server/builder-design-systems.js.map +1 -1
  696. package/dist/server/edge.d.ts +1 -1
  697. package/dist/server/edge.d.ts.map +1 -1
  698. package/dist/server/edge.js +1 -1
  699. package/dist/server/edge.js.map +1 -1
  700. package/dist/server/index.d.ts +2 -1
  701. package/dist/server/index.d.ts.map +1 -1
  702. package/dist/server/index.js +2 -1
  703. package/dist/server/index.js.map +1 -1
  704. package/dist/server/request-context.d.ts +18 -0
  705. package/dist/server/request-context.d.ts.map +1 -1
  706. package/dist/server/request-context.js.map +1 -1
  707. package/dist/server/social-og-image.d.ts.map +1 -1
  708. package/dist/server/social-og-image.js +3 -2
  709. package/dist/server/social-og-image.js.map +1 -1
  710. package/dist/server/transcribe-voice.d.ts +1 -1
  711. package/dist/styles/agent-native.css +62 -44
  712. package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
  713. package/dist/templates/default/AGENTS.md +7 -3
  714. package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
  715. package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
  716. package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
  717. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
  718. package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
  719. package/dist/templates/workspace-core/AGENTS.md +3 -2
  720. package/dist/usage/store.d.ts +7 -0
  721. package/dist/usage/store.d.ts.map +1 -1
  722. package/dist/usage/store.js +24 -3
  723. package/dist/usage/store.js.map +1 -1
  724. package/docs/content/automation-connectors.mdx +80 -0
  725. package/docs/content/extensions.mdx +8 -0
  726. package/docs/content/locales/ar-SA/extensions.mdx +8 -0
  727. package/docs/content/locales/ar-SA/messaging.mdx +84 -15
  728. package/docs/content/locales/ar-SA/template-clips.mdx +1 -0
  729. package/docs/content/locales/ar-SA/template-design.mdx +1 -0
  730. package/docs/content/locales/de-DE/extensions.mdx +10 -0
  731. package/docs/content/locales/de-DE/messaging.mdx +92 -15
  732. package/docs/content/locales/de-DE/template-clips.mdx +1 -0
  733. package/docs/content/locales/de-DE/template-design.mdx +1 -0
  734. package/docs/content/locales/es-ES/extensions.mdx +10 -0
  735. package/docs/content/locales/es-ES/messaging.mdx +91 -15
  736. package/docs/content/locales/es-ES/template-clips.mdx +1 -0
  737. package/docs/content/locales/es-ES/template-design.mdx +1 -0
  738. package/docs/content/locales/fr-FR/extensions.mdx +10 -0
  739. package/docs/content/locales/fr-FR/messaging.mdx +91 -15
  740. package/docs/content/locales/fr-FR/template-clips.mdx +1 -0
  741. package/docs/content/locales/fr-FR/template-design.mdx +1 -0
  742. package/docs/content/locales/hi-IN/extensions.mdx +8 -0
  743. package/docs/content/locales/hi-IN/messaging.mdx +81 -15
  744. package/docs/content/locales/hi-IN/template-clips.mdx +1 -0
  745. package/docs/content/locales/hi-IN/template-design.mdx +1 -0
  746. package/docs/content/locales/ja-JP/extensions.mdx +9 -0
  747. package/docs/content/locales/ja-JP/messaging.mdx +81 -15
  748. package/docs/content/locales/ja-JP/template-clips.mdx +1 -0
  749. package/docs/content/locales/ja-JP/template-design.mdx +1 -0
  750. package/docs/content/locales/ko-KR/extensions.mdx +8 -0
  751. package/docs/content/locales/ko-KR/messaging.mdx +80 -15
  752. package/docs/content/locales/ko-KR/template-clips.mdx +1 -0
  753. package/docs/content/locales/ko-KR/template-design.mdx +1 -0
  754. package/docs/content/locales/pt-BR/extensions.mdx +9 -0
  755. package/docs/content/locales/pt-BR/messaging.mdx +88 -15
  756. package/docs/content/locales/pt-BR/template-clips.mdx +1 -0
  757. package/docs/content/locales/pt-BR/template-design.mdx +1 -0
  758. package/docs/content/locales/zh-CN/extensions.mdx +6 -0
  759. package/docs/content/locales/zh-CN/messaging.mdx +78 -15
  760. package/docs/content/locales/zh-CN/template-clips.mdx +1 -0
  761. package/docs/content/locales/zh-CN/template-design.mdx +1 -0
  762. package/docs/content/locales/zh-TW/extensions.mdx +6 -0
  763. package/docs/content/locales/zh-TW/messaging.mdx +78 -15
  764. package/docs/content/locales/zh-TW/template-clips.mdx +1 -0
  765. package/docs/content/locales/zh-TW/template-design.mdx +1 -0
  766. package/docs/content/messaging.mdx +227 -45
  767. package/docs/content/template-clips.mdx +3 -0
  768. package/docs/content/template-design.mdx +4 -0
  769. package/package.json +5 -1
  770. package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
  771. package/src/templates/default/AGENTS.md +7 -3
  772. package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
  773. package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
  774. package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
  775. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
  776. package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
  777. package/src/templates/workspace-core/AGENTS.md +3 -2
@@ -11,6 +11,16 @@ Wenn Sie QuickBooks Online verwendet haben, haben Sie das Modell gesehen: QBO li
11
11
 
12
12
  Der Rahmen ist wichtig: Eine Erweiterung ist keine generische Sandbox „Machen Sie, was Sie wollen“. Es handelt sich um eine **Mini-App, die eine bestimmte Vorlage** – Mail, Analytics, Kalender, Clips, Design – erweitert und die actions und Daten dieser Vorlage verwendet. Eine Mail-Erweiterung liest E-Mails. Eine Analytics-Erweiterung liest die Metriken eines Dashboards. Eine Kalendererweiterung wirkt auf das offene Ereignis. Sie fühlen sich als Teil des Host-Produkts, weil sie Teil des Host-Produkts sind.
13
13
 
14
+ > **Erweiterungen ergänzen die Benutzeroberfläche; sie schreiben die
15
+ > Host-Benutzeroberfläche nicht um.** Eine Erweiterung wird auf einer eigenen
16
+ > Seite oder in einem benannten [Slot](#slots) dargestellt, den die Vorlage
17
+ > bereitstellt. Sie kann keine Elemente in beliebige native Komponenten
18
+ > einfügen – zum Beispiel neben jeden Teilnehmer im Kalender –, sofern dort
19
+ > kein Slot vorhanden ist. Für tiefere Anpassungen bitten Sie den Agenten, den
20
+ > Quellcode der Vorlage zu bearbeiten. Die vollständige Anpassbarkeit des Codes
21
+ > ist eine Kernfunktion von Agent Native; Erweiterungen sind die schnelle Ebene
22
+ > ohne Bereitstellung.
23
+
14
24
  Drei Dinge sorgen dafür, dass Erweiterungen funktionieren:
15
25
 
16
26
  - **Kein Code, keine Bereitstellung.** Der Agent schreibt sie und sie sind in Sekundenschnelle live. Wird in der Datenbank gespeichert, nicht im Repo.
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  title: "Nachrichten"
3
- description: "Sprechen Sie mit Ihrem Agenten über Slack, E-Mail, Telegram oder WhatsApp – derselbe Agent, derselbe Speicher, die gleichen Tools."
3
+ description: "Sprechen Sie mit Ihrem Agenten über Slack, Microsoft Teams, Discord-Interaktionen, E-Mail, Telegram oder WhatsApp."
4
4
  ---
5
5
 
6
6
  # Nachrichten
7
7
 
8
- Verbinden Sie Ihren Agenten mit Slack, E-Mail, Telegram oder WhatsApp, damit Sie über die Apps, die Sie bereits verwenden, mit ihm chatten können. Es ist derselbe Agent derselbe Speicher, die gleichen Tools, die gleichen Threads – nur von mehr Orten aus erreichbar.
8
+ Verbinden Sie Ihren Agenten mit Slack, Microsoft Teams, Discord-Interaktionen, E-Mail, Telegram oder WhatsApp. Es ist derselbe Agent mit demselben Speicher, denselben Tools und demselben Verlauf.
9
+
10
+ > **Genauer Supportumfang:** Teams validiert offizielle Bot-Framework-JWTs und antwortet in der ursprünglichen Unterhaltung. Discord unterstützt Slash-Befehle über Ed25519-signierte HTTP-Interaktionen mit verzögerter Bestätigung; normale Servernachrichten und DMs benötigen weiterhin eine Gateway-Laufzeit. Telegram erhält `message_thread_id`, und WhatsApp verwendet die eingehende `wamid` für kontextbezogene Antworten.
11
+ >
12
+ > Teams benötigt `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD` und `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`. Discord benötigt `DISCORD_APPLICATION_ID` und `DISCORD_PUBLIC_KEY`. Telegram benötigt zusätzlich `TELEGRAM_WEBHOOK_SECRET`, WhatsApp zusätzlich `WHATSAPP_APP_SECRET`.
9
13
 
10
14
  > **Verwenden Sie die Dispatch-Vorlage?** All dies ist für Sie unter **Einstellungen → Nachrichten** eingerichtet. Klicken Sie, um jede Plattform zu verbinden – Sie müssen den Rest dieser Seite nicht lesen, es sei denn, Sie passen Ihre eigene Vorlage an oder erstellen sie. Siehe [Dispatch](/docs/dispatch) oder [Dispatch template reference](/docs/template-dispatch).
11
15
 
@@ -78,7 +82,6 @@ Verbinden Sie Ihren Agenten mit Slack, E-Mail, Telegram oder WhatsApp, damit Sie
78
82
  - `chat:write` – ermöglicht dem Agenten das Senden von Nachrichten
79
83
  - `app_mentions:read` – lässt den Agenten sehen, wann es @-erwähnt wird (optional)
80
84
  - `im:history` – ermöglicht dem Agenten, an ihn gesendete DMs zu lesen
81
- - `assistant:write` – optional; Lässt Slack den nativen „Denkt...“-Status in Assistententhreads anzeigen
82
85
  - `users:read.email` – optional; hilft Vorlagen wie Mail bei der Überprüfung der Slack-Absender-E-Mail auf die Identität der Entwurfswarteschlange
83
86
  3. Klicken Sie oben auf dieser Seite auf **In Workspace installieren**. Mit Slack erhalten Sie ein **Bot-Benutzer-OAuth-Token**, das mit `xoxb-` beginnt. Kopieren Sie es.
84
87
  4. Gehen Sie in der Seitenleiste zu **Grundlegende Informationen** und kopieren Sie das **Signierungsgeheimnis**.
@@ -123,12 +126,84 @@ und `link_shared`-Ereignisse an den Clips-Unfurl-Handler.
123
126
 
124
127
  ### Tipps
125
128
 
126
- - **Kanalerwähnungen** – der Bot antwortet in Kanälen nur, wenn er @-erwähnt wird, um Störgeräusche zu vermeiden.
127
- - **DMs** – jede DM wird als private Konversation mit dem Agenten behandelt.
128
- - **Gleiche Identität, alle Kanäle** – wenn ein Slack-Benutzer dieselbe E-Mail-Adresse wie ein registrierter Benutzer in Ihrer App hat, behandelt der Agent ihn als dieselbe Person.
129
+ - **Kanalerwähnungen** – Starten Sie Arbeit mit einer @Erwähnung. Antworten ohne Erwähnung gelten nur, solange genau dieser Thread aktive Arbeit enthält.
130
+ - **DMs** – akzeptierte persönliche DMs sind private Unterhaltungen und erfordern ein verifiziertes Organisationsmitglied oder eine verknüpfte Slack-Identität.
131
+ - **Identität** – DMs können eine verifizierte Slack-E-Mail demselben App-Benutzer zuordnen; verwaltete Kanäle verwenden ihre Dienstidentität und Richtlinie.
129
132
  - **Produktionszulassungslisten** – Legen Sie `SLACK_ALLOWED_TEAM_IDS` und für freigegebene Slack-Apps `SLACK_ALLOWED_API_APP_IDS` fest, damit ein gültiges Signaturgeheimnis nicht von einem unerwarteten Arbeitsbereich wiederverwendet werden kann.
130
133
  - **Clips-App entfaltet sich** – installierbare Agent-Native-Clips für Slack verwenden `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` und `/api/slack/oauth/callback`. Jeder verbundene Slack-Arbeitsbereich erhält seinen eigenen verschlüsselten Bot-Token in `app_secrets`; `SLACK_BOT_TOKEN` ist nur ein Legacy-Fallback für einen einzelnen Arbeitsbereich.
131
134
 
135
+ ### Verwaltetes Add to Slack
136
+
137
+ Verwaltetes OAuth ist die empfohlene Einrichtung. Wählen Sie unter
138
+ **Einstellungen → Messaging** die Option **Agent manifest**, laden Sie die
139
+ hostspezifische Datei `agent-native-slack-manifest.json` herunter und importieren
140
+ Sie sie in Slack unter **App Manifest**. Das Manifest aktiviert die aktuelle
141
+ `agent_view`-Oberfläche und einen beschreibbaren **Messages**-Tab für DMs.
142
+ Prüfen Sie anschließend diese Bot-Bereiche:
143
+
144
+ App-Symbole sind nicht Bestandteil des Manifests. Laden Sie unter **Basic
145
+ Information → Display Information** das Agent-Native-Symbol hoch, damit die
146
+ Agents-Auswahl zur Produktmarke passt. Sie können das öffentliche
147
+ `icon-512.svg` der App als Quelle verwenden und es bei Bedarf in ein von Slack
148
+ unterstütztes Uploadformat konvertieren.
149
+
150
+ ```text
151
+ assistant:write
152
+ app_mentions:read
153
+ channels:history
154
+ channels:read
155
+ chat:write
156
+ files:read
157
+ groups:history
158
+ groups:read
159
+ im:history
160
+ im:read
161
+ mpim:history
162
+ mpim:read
163
+ pins:read
164
+ reactions:read
165
+ users:read
166
+ users:read.email
167
+ ```
168
+
169
+ Setzen Sie die OAuth Redirect URL auf
170
+ `https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`,
171
+ die Event Subscriptions Request URL auf
172
+ `https://your-app.example.com/_agent-native/integrations/slack/webhook` und die
173
+ Interactivity Request URL auf
174
+ `https://your-app.example.com/_agent-native/integrations/slack/interactions`.
175
+ Abonnieren Sie `app_home_opened`, `app_context_changed`, `app_mention`,
176
+ `message.channels`, `message.groups`, `message.im` und `message.mpim`.
177
+ Konfigurieren Sie `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`
178
+ und `SLACK_SIGNING_SECRET`; klicken Sie dann unter **Einstellungen → Messaging**
179
+ auf **Add to Slack**. Jede Installation besitzt einen verschlüsselten Token und
180
+ team-, app-, kanal- und threadbezogene Konversationsschlüssel.
181
+
182
+ Installieren Sie die Slack-App nach Änderungen an Manifest, Bereichen,
183
+ Ereignissen, Agent View oder Messages-Tab erneut. `app_home_opened` erkennt das
184
+ Öffnen der DMs, `app_context_changed` liefert den aktuell sichtbaren Slack-Kontext
185
+ und `message.im` übermittelt Direktnachrichten. Slack-Administratoren können
186
+ installierte Agenten organisationsweit ausblenden; Mitglieder können sie zudem
187
+ aus ihrer eigenen oberen Leiste entfernen. Prüfen Sie bei einer erfolgreichen,
188
+ aber unsichtbaren Installation diese Anzeigeeinstellungen oder öffnen Sie die App
189
+ unter **Tools → Apps**.
190
+
191
+ Persönliche Slack-DMs werden nur von verifizierten Mitgliedern der
192
+ Agent-Native-Organisation oder von bereits verknüpften Slack-Identitäten
193
+ angenommen. Richtlinien und Budgets des Dienstprinzipals eines Kanals sind davon
194
+ getrennt.
195
+
196
+ Antworten ohne Erwähnung steuern nur einen gerade aktiven Thread weiter; sonstiger
197
+ Kanalverkehr wird ignoriert. Der Agent lädt begrenzten Thread-Kontext samt
198
+ Reaktionen und Dateiverweisen und zeigt einen nativen Live-Arbeitsplan mit
199
+ Abbrechen sowie Genehmigen/Ablehnen. DMs verwenden die persönliche Identität,
200
+ verwaltete Kanäle eine ausdrückliche Dienstidentität mit Gast-, Slack-Connect-
201
+ und Modellrichtlinien. Kanalspeicher wird nur auf ausdrücklichen Wunsch gespeichert
202
+ oder gelöscht. Im Kanal erstellte Routinen liefern dorthin zurück. Tägliche oder
203
+ monatliche Budgets für Organisation, Anfragende und Kanal werden mit vollständiger
204
+ Audit-Lineage durchgesetzt. `assistant:write` aktiviert die Kontextereignisse von
205
+ Agent View; `chat:write` ermöglicht Antworten und Live-Statusaktualisierungen.
206
+
132
207
  ## Telegramm einrichten {#telegram}
133
208
 
134
209
  ### Was Sie brauchen
@@ -435,7 +510,9 @@ POST /_agent-native/integrations/telegram/setup
435
510
  | E-Mail | `EMAIL_AGENT_ADDRESS`, plus eines von `RESEND_API_KEY` oder `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
436
511
  | WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
437
512
 
438
- Alle Anmeldeinformationen befinden sich in Umgebungsvariablen niemals in der Datenbank, niemals im Quellcode. Verwenden Sie die Seitenleisteneinstellungen UI oder das Env-Panel Ihres Hosting-Anbieters.
513
+ Integrations-Anmeldeinformationen werden zuerst aus bereichsbezogenen Geheimnissen des Integrationsbesitzers aufgelöst (Benutzer, Organisation, dann Arbeitsbereich); Bereitstellungs-Umgebungsvariablen sind ein Fallback für lokale oder bewusst mandantenfähige Einzel-Setups. Die Setup-UI speichert bereichsbezogene Geheimnisse; Werte werden weder an den Browser zurückgegeben noch im Quellcode gespeichert.
514
+
515
+ Die integrierten Laufzeitadapter sind **Slack**, **Telegram**, **WhatsApp Cloud API** und **anbieterbasierte Webhook-E-Mail** (Resend oder SendGrid). Discord und Microsoft Teams sind nicht verbindbar, bis ein verifizierter Adapter implementiert und registriert wurde.
439
516
 
440
517
  ### Threading und Identität {#threading-and-identity}
441
518
 
@@ -481,13 +558,13 @@ import type {
481
558
  import type { EnvKeyConfig } from "@agent-native/core/server";
482
559
 
483
560
  const myAdapter: PlatformAdapter = {
484
- platform: "discord",
485
- label: "Discord",
561
+ platform: "my-chat",
562
+ label: "My Chat",
486
563
 
487
564
  // Env keys this adapter needs (rendered in the settings UI)
488
565
  getRequiredEnvKeys(): EnvKeyConfig[] {
489
566
  return [
490
- { key: "DISCORD_BOT_TOKEN", label: "Discord Bot Token", required: true },
567
+ { key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
491
568
  ];
492
569
  },
493
570
 
@@ -507,10 +584,10 @@ const myAdapter: PlatformAdapter = {
507
584
  // Return null to silently ignore the event (bot messages, edits, etc.).
508
585
  async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
509
586
  return {
510
- platform: "discord",
587
+ platform: "my-chat",
511
588
  externalThreadId: "channel-or-thread-id",
512
589
  text: "the user's message",
513
- senderId: "discord-user-id",
590
+ senderId: "my-chat-user-id",
514
591
  platformContext: { channelId: "channel-id" },
515
592
  timestamp: Date.now(),
516
593
  };
@@ -538,10 +615,10 @@ const myAdapter: PlatformAdapter = {
538
615
  // baseUrl is the app's public URL, used for status checks that need it.
539
616
  async getStatus(baseUrl?: string) {
540
617
  return {
541
- platform: "discord",
542
- label: "Discord",
618
+ platform: "my-chat",
619
+ label: "My Chat",
543
620
  enabled: true,
544
- configured: !!process.env.DISCORD_BOT_TOKEN,
621
+ configured: !!process.env.MY_CHAT_BOT_TOKEN,
545
622
  };
546
623
  },
547
624
  };
@@ -77,6 +77,7 @@ Denken Sie an Loom + Granola + Wispr Flow in einer App – aber der Agent ist ei
77
77
  ## Was Sie damit machen können
78
78
 
79
79
  - **Nehmen Sie Ihren Bildschirm auf** mit integriertem Rekorder, Webcam-Overlay, Audioaufnahme und Pause/Zuschneiden.
80
+ - **Importieren Sie öffentliche Loom-Videos.** Wählen Sie im Web **Aufzeichnen → Loom importieren** und fügen Sie dann eine Loom-Freigabe- oder Einbettungs-URL ein. Clips speichert eine Kopie in Ihrer Bibliothek und importiert das öffentliche Transkript, sofern eines verfügbar ist.
80
81
  - **Erfassen Sie Besprechungen aus Ihrem Kalender.** Verbinden Sie Google Calendar, sehen Sie sich bevorstehende Besprechungen in der Seitenleiste an und klicken Sie bei einer beliebigen Besprechung auf „Aufzeichnen“. Sobald es endet, erhalten Sie ein Live-Transkript sowie eine KI-Zusammenfassung, Aufzählungszeichen und Aktionspunkte.
81
82
  - **Push-to-Talk-Diktat.** Halten Sie Fn auf Ihrem Gerät gedrückt, sprechen Sie, und der bereinigte Text wird in die von Ihnen verwendete App verschoben. Jedes Diktat wird in einem durchsuchbaren Verlauf mit Originalen und KI-bereinigten Versionen nebeneinander gespeichert.
82
83
  - **Erhalten Sie einen automatisch generierten Titel, eine Zusammenfassung und Kapitelmarkierungen** für jede Aufnahme – der Agent füllt sie aus und hält sie auf dem neuesten Stand.
@@ -89,6 +89,7 @@ Wenn Sie die App öffnen, befindet sich der generierte Prototyp im Mittelpunkt d
89
89
  ## Was Sie damit machen können
90
90
 
91
91
  - **Generieren Sie vollständige Prototypen.** Beschreiben Sie den Bildschirm oder die Seite, die Sie benötigen, und der Agent erstellt ein funktionierendes HTML-Dokument mit Tailwind-Stil und Alpine interactions.
92
+ - **Mit wiederverwendbaren Vorlagen starten.** Wähle ein passendes Format für Anzeigen, Einseiter oder Landingpages oder speichere ein Inline-Design als Vorlage. Der Prompt passt nur entsperrte Inhalte an; gesperrte Logos und Hintergründe bleiben unverändert.
92
93
  - **Varianten vergleichen.** Beginnen Sie mit mehreren Richtungen, wählen Sie die stärkste aus und verfeinern Sie sie dann weiter.
93
94
  - **Optimieren Sie visuell.** Verwenden Sie die integrierten Optimierungssteuerelemente für häufige Änderungen oder bitten Sie den Agenten um Aktualisierungen von Text, Layout, Farbe, Abstand und Interaktion.
94
95
  - **Wenden Sie Designsysteme an.** Speichern Sie Designsystemeinstellungen und verwenden Sie sie wieder, damit die generierte Arbeit näher an Ihrer Marke bleibt.
@@ -11,6 +11,16 @@ Si ha utilizado QuickBooks Online, habrá visto el modelo: QBO incluye un produc
11
11
 
12
12
  El marco importa: una extensión no es un entorno limitado genérico de "haz lo que quieras". Es una **miniaplicación que amplía una plantilla específica** (correo, análisis, calendario, clips, diseño) y utiliza el actions y los datos de esa plantilla. Una extensión de correo lee correos electrónicos. Una extensión de Analytics lee las métricas de un panel. Una extensión de Calendario actúa sobre el evento abierto. Se sienten parte del producto anfitrión porque _son_ parte del producto anfitrión.
13
13
 
14
+ > **Las extensiones añaden interfaz; no reescriben la interfaz de la aplicación
15
+ > anfitriona.** Una extensión se muestra en su propia página o dentro de una
16
+ > [ranura](#slots) con nombre que expone la plantilla. No puede insertar
17
+ > elementos en componentes nativos arbitrarios —por ejemplo, junto a cada
18
+ > asistente en Calendario— a menos que la plantilla exponga una ranura allí.
19
+ > Para una personalización más profunda, pide al agente que edite el código
20
+ > fuente de la plantilla. La personalización completa del código es una
21
+ > capacidad central de Agent Native; las extensiones son la capa rápida y sin
22
+ > despliegues.
23
+
14
24
  Tres cosas hacen que las extensiones funcionen:
15
25
 
16
26
  - **Sin código, sin implementación.** El agente los escribe y están activos en segundos. Almacenado en la base de datos, no en el repositorio.
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  title: "Mensajería"
3
- description: "Hable con su agente desde Slack, correo electrónico, Telegram o WhatsApp: el mismo agente, la misma memoria, las mismas herramientas."
3
+ description: "Hable con su agente desde Slack, Microsoft Teams, interacciones de Discord, correo electrónico, Telegram o WhatsApp."
4
4
  ---
5
5
 
6
6
  # Mensajería
7
7
 
8
- Conecta tu agente a Slack, correo electrónico, Telegram o WhatsApp para que puedas chatear con él desde las aplicaciones que ya usas. Es el mismo agente (la misma memoria, las mismas herramientas, los mismos subprocesos), pero al que se puede acceder desde más lugares.
8
+ Conecta tu agente a Slack, Microsoft Teams, interacciones de Discord, correo electrónico, Telegram o WhatsApp. Es el mismo agente, con la misma memoria, herramientas e historial.
9
+
10
+ > **Compatibilidad exacta:** Teams valida los JWT oficiales de Bot Framework y responde en la conversación de origen. Discord admite comandos de barra mediante interacciones HTTP con verificación Ed25519 y respuesta diferida; no recibe mensajes normales del servidor ni mensajes directos sin un runtime Gateway. Telegram conserva `message_thread_id` y WhatsApp usa el `wamid` entrante para respuestas contextuales.
11
+ >
12
+ > Teams requiere `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD` y `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`. Discord requiere `DISCORD_APPLICATION_ID` y `DISCORD_PUBLIC_KEY`. Telegram requiere `TELEGRAM_WEBHOOK_SECRET`, y WhatsApp requiere `WHATSAPP_APP_SECRET`, además de sus credenciales existentes.
9
13
 
10
14
  > **¿Estás usando la plantilla de Despacho?** Todo esto está conectado para ti en **Configuración → Mensajería**. Haga clic para conectar cada plataforma; no necesita leer el resto de esta página a menos que esté personalizando o creando su propia plantilla. Ver [Dispatch](/docs/dispatch) o [Dispatch template reference](/docs/template-dispatch).
11
15
 
@@ -78,7 +82,6 @@ Conecta tu agente a Slack, correo electrónico, Telegram o WhatsApp para que pue
78
82
  - `chat:write`: permite al agente enviar mensajes
79
83
  - `app_mentions:read`: permite al agente ver cuándo se menciona @ (opcional)
80
84
  - `im:history`: permite al agente leer los mensajes directos que se le envían
81
- - `assistant:write` — opcional; permite que Slack muestre el estado nativo "está pensando..." en los hilos del asistente
82
85
  - `users:read.email` — opcional; ayuda a plantillas como Mail a verificar el correo electrónico del remitente Slack para verificar la identidad de la cola de borradores
83
86
  3. Haga clic en **Instalar en el espacio de trabajo** en la parte superior de esa página. Slack le dará un **Token de usuario de bot OAuth** que comienza con `xoxb-`. Cópialo.
84
87
  4. Vaya a **Información básica** en la barra lateral y copie el **Secreto de firma**.
@@ -123,12 +126,83 @@ y `link_shared` al controlador de despliegue de clips.
123
126
 
124
127
  ### Consejos
125
128
 
126
- - **Menciones de canales**: el bot solo responde en los canales cuando se @-menciona, para evitar ruido.
127
- - **DM**: cada DM se trata como una conversación privada con el agente.
128
- - **Misma identidad, todos los canales**: si un usuario de Slack tiene el mismo correo electrónico que un usuario registrado en su aplicación, el agente lo trata como a la misma persona.
129
+ - **Menciones de canales**: use una @mención para iniciar el trabajo. Las respuestas sin mención solo continúan mientras ese hilo exacto tenga trabajo activo.
130
+ - **Mensajes directos**: los mensajes directos personales aceptados son conversaciones privadas y requieren un miembro verificado de la organización o una identidad de Slack vinculada.
131
+ - **Identidad**: los mensajes directos pueden vincular un correo de Slack verificado al mismo usuario de la aplicación; los canales administrados usan su identidad de servicio y política.
129
132
  - **Listas permitidas de producción**: configure `SLACK_ALLOWED_TEAM_IDS` y, para aplicaciones Slack compartidas, `SLACK_ALLOWED_API_APP_IDS` para que un espacio de trabajo inesperado no pueda reutilizar un secreto de firma válido.
130
133
  - **La aplicación Clips se despliega**: los clips Agent-Native instalables para Slack utilizan `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` y `/api/slack/oauth/callback`. Cada espacio de trabajo Slack conectado obtiene su propio token de bot cifrado en `app_secrets`; `SLACK_BOT_TOKEN` es solo un respaldo heredado de un único espacio de trabajo.
131
134
 
135
+ ### Add to Slack administrado
136
+
137
+ OAuth administrado es la configuración recomendada. En **Configuración →
138
+ Mensajería**, seleccione **Agent manifest** para descargar el archivo específico
139
+ del host `agent-native-slack-manifest.json` e impórtelo en **App Manifest** de
140
+ Slack. El manifiesto activa la experiencia actual `agent_view` y una pestaña
141
+ **Messages** editable para mensajes directos. Verifique estos alcances de bot:
142
+
143
+ El icono de la aplicación no forma parte del manifiesto. En **Basic Information
144
+ → Display Information**, cargue el icono de Agent Native para que el selector de
145
+ Agents coincida con la marca del producto. Puede usar el `icon-512.svg` público
146
+ de la aplicación como origen y convertirlo a un formato de carga admitido por
147
+ Slack si es necesario.
148
+
149
+ ```text
150
+ assistant:write
151
+ app_mentions:read
152
+ channels:history
153
+ channels:read
154
+ chat:write
155
+ files:read
156
+ groups:history
157
+ groups:read
158
+ im:history
159
+ im:read
160
+ mpim:history
161
+ mpim:read
162
+ pins:read
163
+ reactions:read
164
+ users:read
165
+ users:read.email
166
+ ```
167
+
168
+ Configure OAuth Redirect URL como
169
+ `https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`,
170
+ Event Subscriptions Request URL como
171
+ `https://your-app.example.com/_agent-native/integrations/slack/webhook` e
172
+ Interactivity Request URL como
173
+ `https://your-app.example.com/_agent-native/integrations/slack/interactions`.
174
+ Suscríbase a `app_home_opened`, `app_context_changed`, `app_mention`,
175
+ `message.channels`, `message.groups`, `message.im` y `message.mpim`.
176
+ Configure `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET` y
177
+ `SLACK_SIGNING_SECRET`; después, en **Configuración → Mensajería**, pulse
178
+ **Add to Slack**. Cada instalación guarda su token cifrado y usa claves de
179
+ conversación separadas por espacio, aplicación, canal e hilo.
180
+
181
+ Reinstale la aplicación de Slack después de cambiar el manifiesto, los alcances,
182
+ los eventos, Agent view o la pestaña Messages. `app_home_opened` detecta cuándo se
183
+ abre el DM, `app_context_changed` aporta el contexto visible en Slack y
184
+ `message.im` entrega los mensajes directos. Los administradores de Slack pueden
185
+ ocultar los agentes instalados para toda la organización y cada usuario puede
186
+ ocultarlos de su propia barra superior. Si la instalación funciona pero el agente
187
+ no aparece, revise esos controles o ábralo desde **Tools → Apps**.
188
+
189
+ Los mensajes directos personales de Slack solo se aceptan de un miembro
190
+ verificado de la organización de Agent Native o de una identidad de Slack ya
191
+ vinculada. Las políticas y los presupuestos del principal de servicio del canal
192
+ son independientes.
193
+
194
+ Las respuestas sin mención solo dirigen un hilo con una tarea activa; el resto
195
+ de la conversación del canal no invoca al agente. Se carga un contexto acotado
196
+ con reacciones y referencias de archivo, y una tarjeta nativa muestra el plan,
197
+ el progreso, cancelar y aprobar/rechazar. Los mensajes directos usan la identidad
198
+ personal; los canales administrados usan una identidad de servicio explícita y
199
+ políticas para invitados, Slack Connect y modelo. La memoria del canal es explícita,
200
+ aislada y nunca automática. Las rutinas creadas allí vuelven al mismo Slack. Los
201
+ presupuestos diarios o mensuales por organización, solicitante y canal se aplican
202
+ con linaje de auditoría. `assistant:write` habilita los eventos de contexto de
203
+ Agent View; `chat:write` permite las respuestas y las actualizaciones de estado
204
+ en directo.
205
+
132
206
  ## Configurar Telegrama {#telegram}
133
207
 
134
208
  ### Qué necesitarás
@@ -435,7 +509,9 @@ POST /_agent-native/integrations/telegram/setup
435
509
  | Correo electrónico | `EMAIL_AGENT_ADDRESS`, más uno de `RESEND_API_KEY` o `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
436
510
  | WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
437
511
 
438
- Todas las credenciales residen en env vars: nunca la base de datos, nunca el código fuente. Utilice la configuración de la barra lateral UI o el panel ambiental de su proveedor de hosting.
512
+ Las credenciales de integración se resuelven primero desde secretos con ámbito del propietario de la integración (usuario, organización y después espacio de trabajo); las variables de entorno de despliegue son una alternativa para instalaciones locales o deliberadamente de un solo tenant. La UI de configuración guarda secretos con ámbito; los valores nunca se devuelven al navegador ni se guardan en el código fuente.
513
+
514
+ Los adaptadores de runtime integrados son **Slack**, **Telegram**, **WhatsApp Cloud API** y correo electrónico basado en webhooks de proveedor (Resend o SendGrid). Discord y Microsoft Teams no son conectables hasta implementar y registrar un adaptador verificado.
439
515
 
440
516
  ### Subprocesos e identidad {#threading-and-identity}
441
517
 
@@ -481,13 +557,13 @@ import type {
481
557
  import type { EnvKeyConfig } from "@agent-native/core/server";
482
558
 
483
559
  const myAdapter: PlatformAdapter = {
484
- platform: "discord",
485
- label: "Discord",
560
+ platform: "my-chat",
561
+ label: "My Chat",
486
562
 
487
563
  // Env keys this adapter needs (rendered in the settings UI)
488
564
  getRequiredEnvKeys(): EnvKeyConfig[] {
489
565
  return [
490
- { key: "DISCORD_BOT_TOKEN", label: "Discord Bot Token", required: true },
566
+ { key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
491
567
  ];
492
568
  },
493
569
 
@@ -507,10 +583,10 @@ const myAdapter: PlatformAdapter = {
507
583
  // Return null to silently ignore the event (bot messages, edits, etc.).
508
584
  async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
509
585
  return {
510
- platform: "discord",
586
+ platform: "my-chat",
511
587
  externalThreadId: "channel-or-thread-id",
512
588
  text: "the user's message",
513
- senderId: "discord-user-id",
589
+ senderId: "my-chat-user-id",
514
590
  platformContext: { channelId: "channel-id" },
515
591
  timestamp: Date.now(),
516
592
  };
@@ -538,10 +614,10 @@ const myAdapter: PlatformAdapter = {
538
614
  // baseUrl is the app's public URL, used for status checks that need it.
539
615
  async getStatus(baseUrl?: string) {
540
616
  return {
541
- platform: "discord",
542
- label: "Discord",
617
+ platform: "my-chat",
618
+ label: "My Chat",
543
619
  enabled: true,
544
- configured: !!process.env.DISCORD_BOT_TOKEN,
620
+ configured: !!process.env.MY_CHAT_BOT_TOKEN,
545
621
  };
546
622
  },
547
623
  };
@@ -77,6 +77,7 @@ Piense en la línea de Loom + Granola + Wispr Flow en una sola aplicación, pero
77
77
  ## Qué puedes hacer con él
78
78
 
79
79
  - **Graba tu pantalla** con una grabadora integrada, superposición de cámara web, captura de audio y pausa/recorte.
80
+ - **Importa vídeos públicos de Loom.** En la web, selecciona **Grabar → Importar Loom** y pega una URL para compartir o incrustar de Loom. Clips guarda una copia en tu biblioteca e importa la transcripción pública cuando está disponible.
80
81
  - **Capture reuniones de su calendario.** Conecte Google Calendar, vea las próximas reuniones en la barra lateral y presione grabar en cualquiera. Obtienes una transcripción en vivo más un resumen de IA, notas con viñetas y elementos de acción en el momento en que finaliza.
81
82
  - **Dictado pulsar para hablar.** Mantenga presionada la tecla Fn en su máquina, hable y el texto limpio aparecerá en cualquier aplicación que esté usando. Cada dictado se mantiene en un historial con capacidad de búsqueda con originales y versiones limpiadas por IA, una al lado de la otra.
82
83
  - **Obtenga un título, un resumen y marcadores de capítulo generados automáticamente** para cada grabación: el agente los completa y los mantiene actualizados.
@@ -89,6 +89,7 @@ Cuando abre la aplicación, el prototipo generado es el centro del espacio de tr
89
89
  ## Qué puedes hacer con él
90
90
 
91
91
  - **Genere prototipos completos.** Describa la pantalla o página que necesita y el agente creará un documento funcional HTML con estilo Tailwind y Alpine interactions.
92
+ - **Empieza con plantillas reutilizables.** Elige un formato con dimensiones para anuncios, documentos de una página o páginas de destino, o guarda cualquier diseño integrado como plantilla. La indicación ajusta el contenido desbloqueado y conserva logotipos y fondos bloqueados.
92
93
  - **Compara variantes.** Comience con varias direcciones, elija la más fuerte y luego continúe perfeccionando.
93
94
  - **Ajuste visualmente.** Utilice los controles de ajuste integrados para realizar cambios comunes o solicite al agente actualizaciones de copia, diseño, color, espaciado e interacción.
94
95
  - **Aplica sistemas de diseño.** Guarda y reutiliza las preferencias del sistema de diseño para que el trabajo generado esté más cerca de tu marca.
@@ -11,6 +11,16 @@ Si vous avez utilisé QuickBooks en ligne, vous avez vu le modèle : QBO est li
11
11
 
12
12
  Le cadrage est important : une extension n'est pas un bac à sable générique "faites ce que vous voulez". Il s'agit d'une **mini-application qui étend un modèle spécifique** (Mail, Analytics, Calendrier, Clips, Conception) et utilise le actions et les données de ce modèle. Une extension Mail lit les e-mails. Une extension Analytics lit les métriques d'un tableau de bord. Une extension Calendrier agit sur l'événement ouvert. Ils ont l'impression de faire partie du produit hôte car ils _font_ partie du produit hôte.
13
13
 
14
+ > **Les extensions ajoutent une interface ; elles ne réécrivent pas l'interface
15
+ > de l'application hôte.** Une extension s'affiche sur sa propre page ou dans un
16
+ > [emplacement](#slots) nommé exposé par le modèle. Elle ne peut pas injecter
17
+ > d'éléments dans n'importe quel composant natif — par exemple à côté de chaque
18
+ > participant dans Calendrier — sauf si le modèle expose un emplacement à cet
19
+ > endroit. Pour une personnalisation plus poussée, demandez à l'agent de
20
+ > modifier le code source du modèle. La personnalisation complète du code est
21
+ > une capacité fondamentale d'Agent Native ; les extensions constituent la
22
+ > couche rapide, sans déploiement.
23
+
14
24
  Trois éléments font que les extensions fonctionnent :
15
25
 
16
26
  - **Pas de code, pas de déploiement.** L'agent les écrit et ils sont opérationnels en quelques secondes. Stocké dans la base de données, pas dans le dépôt.
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  title: "Messagerie"
3
- description: "Parlez à votre agent depuis Slack, par e-mail, Telegram ou WhatsApp : même agent, même mémoire, mêmes outils."
3
+ description: "Parlez à votre agent depuis Slack, Microsoft Teams, les interactions Discord, l’e-mail, Telegram ou WhatsApp."
4
4
  ---
5
5
 
6
6
  # Messagerie
7
7
 
8
- Connectez votre agent à Slack, à la messagerie électronique, à Telegram ou à WhatsApp afin de pouvoir discuter avec lui à partir des applications que vous utilisez déjà. Il s'agit du même agent : même mémoire, mêmes outils, mêmes threads, accessible depuis plusieurs endroits.
8
+ Connectez votre agent à Slack, Microsoft Teams, aux interactions Discord, à l’e-mail, Telegram ou WhatsApp. Il sagit du même agent, avec la même mémoire, les mêmes outils et le même historique.
9
+
10
+ > **Périmètre exact :** Teams valide les JWT officiels de Bot Framework et répond dans la conversation d’origine. Discord prend en charge les commandes slash via des interactions HTTP signées Ed25519 avec accusé différé ; les messages serveur ordinaires et les DM nécessitent toujours un runtime Gateway. Telegram conserve `message_thread_id` et WhatsApp utilise le `wamid` entrant pour les réponses contextuelles.
11
+ >
12
+ > Teams requiert `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD` et `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`. Discord requiert `DISCORD_APPLICATION_ID` et `DISCORD_PUBLIC_KEY`. Telegram requiert aussi `TELEGRAM_WEBHOOK_SECRET`, et WhatsApp `WHATSAPP_APP_SECRET`.
9
13
 
10
14
  > **Vous utilisez le modèle Dispatch ?** Tout cela est configuré pour vous dans **Paramètres → Messagerie**. Cliquez pour connecter chaque plateforme. Vous n'avez pas besoin de lire le reste de cette page, sauf si vous personnalisez ou créez votre propre modèle. Voir [Dispatch](/docs/dispatch) ou [Dispatch template reference](/docs/template-dispatch).
11
15
 
@@ -78,7 +82,6 @@ Connectez votre agent à Slack, à la messagerie électronique, à Telegram ou
78
82
  - `chat:write` : permet à l'agent d'envoyer des messages
79
83
  - `app_mentions:read` — permet à l'agent de voir quand il est @-mentionné (facultatif)
80
84
  - `im:history` — permet à l'agent de lire les DM qui lui sont envoyés
81
- - `assistant:write` — facultatif ; permet à Slack d'afficher le statut natif "pense..." dans les fils de discussion de l'assistant
82
85
  - `users:read.email` — facultatif ; aide les modèles tels que Mail à vérifier l'e-mail de l'expéditeur Slack pour l'identité de la file d'attente des brouillons
83
86
  3. Cliquez sur **Installer sur Workspace** en haut de cette page. Slack vous donnera un **Jeton OAuth d'utilisateur de robot** qui commence par `xoxb-`. Copiez-le.
84
87
  4. Accédez à **Informations de base** dans la barre latérale et copiez le **Secret de signature**.
@@ -123,12 +126,83 @@ et les événements `link_shared` vers le gestionnaire de déploiement des clips
123
126
 
124
127
  ### Conseils
125
128
 
126
- - **Mentions de canal** : le bot ne répond dans les canaux que lorsqu'il est mentionné par @, pour éviter le bruit.
127
- - **DMs** — chaque DM est traité comme une conversation privée avec l'agent.
128
- - **Même identité, tous les canaux** si un utilisateur Slack a la même adresse e-mail qu'un utilisateur enregistré dans votre application, l'agent le traite comme la même personne.
129
+ - **Mentions de canal** : utilisez une @mention pour démarrer le travail. Les réponses sans mention ne continuent que tant que ce fil précis contient un travail actif.
130
+ - **Messages directs** — les messages directs personnels acceptés restent privés et exigent un membre vérifié de l’organisation ou une identité Slack associée.
131
+ - **Identité** les DM peuvent associer un e-mail Slack vérifié au même utilisateur de l'application ; les canaux gérés utilisent leur identité de service et leur règle.
129
132
  - **Listes autorisées de production** : définissez `SLACK_ALLOWED_TEAM_IDS` et, pour les applications Slack partagées, `SLACK_ALLOWED_API_APP_IDS` afin qu'un secret de signature valide ne puisse pas être réutilisé par un espace de travail inattendu.
130
133
  - **L'application Clips se déploie** — Les clips Agent-Native installables pour Slack utilisent `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` et `/api/slack/oauth/callback`. Chaque espace de travail Slack connecté obtient son propre jeton de bot crypté dans `app_secrets` ; `SLACK_BOT_TOKEN` n'est qu'une solution de secours héritée pour un seul espace de travail.
131
134
 
135
+ ### Add to Slack géré
136
+
137
+ OAuth géré est la configuration recommandée. Dans **Paramètres → Messagerie**,
138
+ sélectionnez **Agent manifest** pour télécharger le fichier propre à l’hôte
139
+ `agent-native-slack-manifest.json`, puis importez-le dans **App Manifest** dans
140
+ Slack. Le manifeste active l’expérience `agent_view` actuelle et un onglet
141
+ **Messages** modifiable pour les messages directs. Vérifiez ces portées de bot :
142
+
143
+ L’icône de l’application ne fait pas partie du manifeste. Dans **Basic
144
+ Information → Display Information**, chargez l’icône Agent Native afin que le
145
+ sélecteur Agents respecte l’identité du produit. Vous pouvez partir du fichier
146
+ public `icon-512.svg` de l’application et le convertir dans un format de
147
+ téléversement accepté par Slack si nécessaire.
148
+
149
+ ```text
150
+ assistant:write
151
+ app_mentions:read
152
+ channels:history
153
+ channels:read
154
+ chat:write
155
+ files:read
156
+ groups:history
157
+ groups:read
158
+ im:history
159
+ im:read
160
+ mpim:history
161
+ mpim:read
162
+ pins:read
163
+ reactions:read
164
+ users:read
165
+ users:read.email
166
+ ```
167
+
168
+ Définissez OAuth Redirect URL sur
169
+ `https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`,
170
+ Event Subscriptions Request URL sur
171
+ `https://your-app.example.com/_agent-native/integrations/slack/webhook` et
172
+ Interactivity Request URL sur
173
+ `https://your-app.example.com/_agent-native/integrations/slack/interactions`.
174
+ Abonnez-vous à `app_home_opened`, `app_context_changed`, `app_mention`,
175
+ `message.channels`, `message.groups`, `message.im` et `message.mpim`.
176
+ Configurez `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET` et
177
+ `SLACK_SIGNING_SECRET`, puis cliquez sur **Add to Slack** dans
178
+ **Paramètres → Messagerie**. Chaque installation conserve son jeton chiffré et
179
+ isole ses clés par espace, application, canal et fil.
180
+
181
+ Réinstallez l’application Slack après toute modification du manifeste, des
182
+ portées, des événements, de la vue Agent ou de l’onglet Messages.
183
+ `app_home_opened` détecte l’ouverture des messages directs,
184
+ `app_context_changed` fournit le contexte Slack affiché et `message.im` transmet
185
+ les messages directs. Les administrateurs Slack peuvent masquer les agents
186
+ installés pour l’organisation, et chaque membre peut les masquer de sa propre
187
+ barre supérieure. Si l’installation réussit mais que l’agent reste invisible,
188
+ vérifiez ces contrôles ou ouvrez-le via **Tools → Apps**.
189
+
190
+ Les messages directs Slack personnels ne sont acceptés que pour un membre
191
+ vérifié de l’organisation Agent Native ou une identité Slack déjà associée.
192
+ Les règles et budgets du principal de service d’un canal restent distincts.
193
+
194
+ Les réponses sans mention ne pilotent qu'un fil dont la tâche est active ; les
195
+ autres messages du canal n'appellent pas l'agent. Un contexte borné charge les
196
+ réactions et références de fichiers, tandis qu'une carte native affiche plan,
197
+ progression, annulation et approbation/refus. Les DM utilisent l'identité personnelle ;
198
+ les canaux gérés utilisent une identité de service explicite et des règles pour
199
+ invités, Slack Connect et modèle. La mémoire de canal est explicite, isolée et
200
+ jamais automatique. Les routines créées dans le canal y renvoient leurs résultats.
201
+ Des budgets quotidiens ou mensuels par organisation, demandeur et canal sont
202
+ appliqués avec une traçabilité d'audit. `assistant:write` active les événements
203
+ de contexte Agent View ; `chat:write` permet les réponses et les mises à jour
204
+ d’état en direct.
205
+
132
206
  ## Configurer Telegram {#telegram}
133
207
 
134
208
  ### Ce dont vous aurez besoin
@@ -435,7 +509,9 @@ POST /_agent-native/integrations/telegram/setup
435
509
  | E-mail | `EMAIL_AGENT_ADDRESS`, plus un parmi `RESEND_API_KEY` ou `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
436
510
  | WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
437
511
 
438
- Toutes les informations d'identification résident dans les variables d'environnement – jamais dans la base de données, jamais dans le code source. Utilisez les paramètres de la barre latérale UI ou le panneau d'environnement de votre fournisseur d'hébergement.
512
+ Les identifiants d’intégration sont d’abord résolus depuis les secrets à portée du propriétaire de l’intégration (utilisateur, organisation, puis espace de travail) ; les variables denvironnement de déploiement servent de secours pour une installation locale ou volontairement mono-tenant. L’UI de configuration enregistre des secrets à portée ; les valeurs ne sont jamais renvoyées au navigateur ni stockées dans le code source.
513
+
514
+ Les adaptateurs d’exécution intégrés sont **Slack**, **Telegram**, **WhatsApp Cloud API** et l’e-mail via webhook de fournisseur (Resend ou SendGrid). Discord et Microsoft Teams ne sont pas connectables tant qu’un adaptateur vérifié n’est pas implémenté et enregistré.
439
515
 
440
516
  ### Threading et identité {#threading-and-identity}
441
517
 
@@ -481,13 +557,13 @@ import type {
481
557
  import type { EnvKeyConfig } from "@agent-native/core/server";
482
558
 
483
559
  const myAdapter: PlatformAdapter = {
484
- platform: "discord",
485
- label: "Discord",
560
+ platform: "my-chat",
561
+ label: "My Chat",
486
562
 
487
563
  // Env keys this adapter needs (rendered in the settings UI)
488
564
  getRequiredEnvKeys(): EnvKeyConfig[] {
489
565
  return [
490
- { key: "DISCORD_BOT_TOKEN", label: "Discord Bot Token", required: true },
566
+ { key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
491
567
  ];
492
568
  },
493
569
 
@@ -507,10 +583,10 @@ const myAdapter: PlatformAdapter = {
507
583
  // Return null to silently ignore the event (bot messages, edits, etc.).
508
584
  async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
509
585
  return {
510
- platform: "discord",
586
+ platform: "my-chat",
511
587
  externalThreadId: "channel-or-thread-id",
512
588
  text: "the user's message",
513
- senderId: "discord-user-id",
589
+ senderId: "my-chat-user-id",
514
590
  platformContext: { channelId: "channel-id" },
515
591
  timestamp: Date.now(),
516
592
  };
@@ -538,10 +614,10 @@ const myAdapter: PlatformAdapter = {
538
614
  // baseUrl is the app's public URL, used for status checks that need it.
539
615
  async getStatus(baseUrl?: string) {
540
616
  return {
541
- platform: "discord",
542
- label: "Discord",
617
+ platform: "my-chat",
618
+ label: "My Chat",
543
619
  enabled: true,
544
- configured: !!process.env.DISCORD_BOT_TOKEN,
620
+ configured: !!process.env.MY_CHAT_BOT_TOKEN,
545
621
  };
546
622
  },
547
623
  };
@@ -77,6 +77,7 @@ Pensez à l'exemple de Loom + Granola + Wispr Flow regroupés dans une seule app
77
77
  ## Ce que vous pouvez en faire
78
78
 
79
79
  - **Enregistrez votre écran** avec un enregistreur intégré, une superposition de webcam, une capture audio et une pause/recadrage.
80
+ - **Importez des vidéos Loom publiques.** Sur le Web, sélectionnez **Enregistrer → Importer Loom**, puis collez une URL de partage ou d’intégration Loom. Clips enregistre une copie dans votre bibliothèque et importe la transcription publique lorsqu’elle est disponible.
80
81
  - **Capturez des réunions à partir de votre calendrier.** Connectez Google Calendar, consultez les réunions à venir dans la barre latérale et cliquez sur Enregistrer sur l'une d'entre elles. Vous obtenez une transcription en direct ainsi qu'un résumé de l'IA, des notes à puces et des éléments d'action dès la fin.
81
82
  - **Dictée Push-to-talk.** Maintenez Fn sur votre appareil, parlez et le texte nettoyé apparaît dans l'application que vous utilisez. Chaque dictée est conservée dans un historique consultable avec les originaux et les versions nettoyées par l'IA côte à côte.
82
83
  - **Obtenez un titre, un résumé et des marqueurs de chapitre générés automatiquement** pour chaque enregistrement : l'agent les remplit et les tient à jour.
@@ -89,6 +89,7 @@ Lorsque vous ouvrez l'application, le prototype généré est au centre de l'esp
89
89
  ## Ce que vous pouvez en faire
90
90
 
91
91
  - **Générez des prototypes complets.** Décrivez l'écran ou la page dont vous avez besoin et l'agent crée un document HTML fonctionnel avec le style Tailwind et Alpine interactions.
92
+ - **Commencez avec des modèles réutilisables.** Choisissez un format dimensionné pour une publicité, un document d’une page ou une page d’atterrissage, ou enregistrez un design intégré comme modèle. L’invite adapte le contenu déverrouillé tout en conservant les logos et arrière-plans verrouillés.
92
93
  - **Comparez les variantes.** Commencez par plusieurs directions, choisissez la plus forte, puis continuez à affiner.
93
94
  - **Ajustez visuellement.** Utilisez les commandes d'ajustement intégrées pour les modifications courantes ou demandez à l'agent des mises à jour de copie, de mise en page, de couleur, d'espacement et d'interaction.
94
95
  - **Appliquez les systèmes de conception.** Enregistrez et réutilisez les préférences du système de conception afin que le travail généré reste plus proche de votre marque.