@agent-native/core 0.92.12 → 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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +39 -0
- package/corpus/core/docs/content/automation-connectors.mdx +80 -0
- package/corpus/core/docs/content/extensions.mdx +8 -0
- package/corpus/core/docs/content/locales/ar-SA/extensions.mdx +8 -0
- package/corpus/core/docs/content/locales/ar-SA/messaging.mdx +84 -15
- package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/ar-SA/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/de-DE/extensions.mdx +10 -0
- package/corpus/core/docs/content/locales/de-DE/messaging.mdx +92 -15
- package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/de-DE/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/es-ES/extensions.mdx +10 -0
- package/corpus/core/docs/content/locales/es-ES/messaging.mdx +91 -15
- package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/es-ES/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/fr-FR/extensions.mdx +10 -0
- package/corpus/core/docs/content/locales/fr-FR/messaging.mdx +91 -15
- package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/fr-FR/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/hi-IN/extensions.mdx +8 -0
- package/corpus/core/docs/content/locales/hi-IN/messaging.mdx +81 -15
- package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/hi-IN/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/ja-JP/extensions.mdx +9 -0
- package/corpus/core/docs/content/locales/ja-JP/messaging.mdx +81 -15
- package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/ja-JP/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/ko-KR/extensions.mdx +8 -0
- package/corpus/core/docs/content/locales/ko-KR/messaging.mdx +80 -15
- package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/ko-KR/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/pt-BR/extensions.mdx +9 -0
- package/corpus/core/docs/content/locales/pt-BR/messaging.mdx +88 -15
- package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/pt-BR/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/zh-CN/extensions.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-CN/messaging.mdx +78 -15
- package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/zh-CN/template-design.mdx +1 -0
- package/corpus/core/docs/content/locales/zh-TW/extensions.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-TW/messaging.mdx +78 -15
- package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +1 -0
- package/corpus/core/docs/content/locales/zh-TW/template-design.mdx +1 -0
- package/corpus/core/docs/content/messaging.mdx +227 -45
- package/corpus/core/docs/content/template-clips.mdx +3 -0
- package/corpus/core/docs/content/template-design.mdx +4 -0
- package/corpus/core/package.json +5 -1
- package/corpus/core/src/a2a/artifact-response.ts +131 -2
- package/corpus/core/src/a2a/client.ts +10 -0
- package/corpus/core/src/a2a/handlers.ts +40 -76
- package/corpus/core/src/a2a/types.ts +2 -0
- package/corpus/core/src/agent/durable-background.ts +24 -0
- package/corpus/core/src/agent/production-agent.ts +15 -3
- package/corpus/core/src/agent/run-manager.ts +130 -10
- package/corpus/core/src/agent/run-store.ts +225 -15
- package/corpus/core/src/agent/types.ts +23 -0
- package/corpus/core/src/audit/record.ts +31 -0
- package/corpus/core/src/audit/store.ts +69 -3
- package/corpus/core/src/audit/types.ts +13 -0
- package/corpus/core/src/automation/index.ts +802 -0
- package/corpus/core/src/cli/create.ts +12 -5
- package/corpus/core/src/cli/design-connect.ts +596 -36
- package/corpus/core/src/client/AgentPanel.tsx +51 -6
- package/corpus/core/src/client/AssistantChat.tsx +274 -147
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +3 -0
- package/corpus/core/src/client/RunStuckBanner.tsx +69 -20
- package/corpus/core/src/client/agent-chat-adapter.ts +54 -5
- package/corpus/core/src/client/automation.ts +22 -0
- package/corpus/core/src/client/chat/run-recovery.tsx +67 -50
- package/corpus/core/src/client/composer/TiptapComposer.tsx +8 -0
- package/corpus/core/src/client/index.ts +30 -0
- package/corpus/core/src/client/integrations/api.ts +295 -0
- package/corpus/core/src/client/integrations/index.ts +26 -0
- package/corpus/core/src/client/transcription/use-live-transcription.ts +68 -5
- package/corpus/core/src/client/use-run-stuck-detection.ts +41 -3
- package/corpus/core/src/deploy/build.ts +59 -3
- package/corpus/core/src/deploy/workspace-deploy.ts +37 -2
- package/corpus/core/src/file-upload/types.ts +2 -0
- package/corpus/core/src/index.ts +37 -0
- package/corpus/core/src/integrations/a2a-continuations-store.ts +6 -4
- package/corpus/core/src/integrations/adapters/discord.ts +362 -0
- package/corpus/core/src/integrations/adapters/index.ts +29 -0
- package/corpus/core/src/integrations/adapters/microsoft-teams.ts +411 -0
- package/corpus/core/src/integrations/adapters/slack.ts +861 -27
- package/corpus/core/src/integrations/adapters/telegram.ts +54 -15
- package/corpus/core/src/integrations/adapters/whatsapp.ts +41 -17
- package/corpus/core/src/integrations/catalog.ts +571 -0
- package/corpus/core/src/integrations/controls-store.ts +187 -0
- package/corpus/core/src/integrations/index.ts +100 -0
- package/corpus/core/src/integrations/installations-store.ts +677 -0
- package/corpus/core/src/integrations/integration-memory.ts +187 -0
- package/corpus/core/src/integrations/pending-tasks-retry-job.ts +6 -6
- package/corpus/core/src/integrations/pending-tasks-store.ts +83 -5
- package/corpus/core/src/integrations/plugin.ts +685 -47
- package/corpus/core/src/integrations/scope-store.ts +498 -0
- package/corpus/core/src/integrations/slack-manifest.ts +78 -0
- package/corpus/core/src/integrations/slack-oauth.ts +343 -0
- package/corpus/core/src/integrations/types.ts +179 -0
- package/corpus/core/src/integrations/usage-budget-store.ts +906 -0
- package/corpus/core/src/integrations/webhook-handler.ts +562 -51
- package/corpus/core/src/jobs/scheduler.ts +100 -2
- package/corpus/core/src/jobs/tools.ts +45 -9
- package/corpus/core/src/provider-api/index.ts +72 -1
- package/corpus/core/src/resources/handlers.ts +88 -14
- package/corpus/core/src/resources/script-helpers.ts +36 -7
- package/corpus/core/src/resources/store.ts +59 -52
- package/corpus/core/src/scripts/call-agent.ts +107 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +294 -119
- package/corpus/core/src/server/auth.ts +10 -14
- package/corpus/core/src/server/builder-design-systems.ts +16 -1
- package/corpus/core/src/server/edge.ts +18 -0
- package/corpus/core/src/server/index.ts +26 -0
- package/corpus/core/src/server/request-context.ts +18 -0
- package/corpus/core/src/server/social-og-image.ts +3 -2
- package/corpus/core/src/styles/agent-native.css +62 -44
- package/corpus/core/src/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/core/src/templates/default/AGENTS.md +7 -3
- package/corpus/core/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/core/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
- package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
- package/corpus/core/src/templates/workspace-core/AGENTS.md +3 -2
- package/corpus/core/src/usage/store.ts +37 -2
- package/corpus/templates/analytics/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/analytics/.agents/skills/provider-api/SKILL.md +23 -0
- package/corpus/templates/analytics/.builder/skills/provider-api/SKILL.md +15 -0
- package/corpus/templates/analytics/actions/save-monitor.ts +25 -2
- package/corpus/templates/analytics/app/lib/data-sources.ts +28 -0
- package/corpus/templates/analytics/changelog/2026-07-10-agent-created-uptime-monitors-now-return-a-direct-link-to-th.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-dashboard-email-reports-still-arrive-when-screenshot-capture-temporarily-fails.md +6 -0
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +3 -7
- package/corpus/templates/analytics/server/lib/credential-keys.ts +12 -0
- package/corpus/templates/analytics/server/lib/dashboard-report.ts +5 -1
- package/corpus/templates/analytics/server/lib/provider-credentials.ts +2 -0
- package/corpus/templates/analytics/server/routes/api/test-connection.post.ts +16 -0
- package/corpus/templates/assets/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/brain/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/calendar/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/calendar/app/components/calendar/CommandPalette.tsx +98 -108
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +97 -90
- package/corpus/templates/calendar/changelog/2026-07-10-event-guest-details-and-option-menus-now-use-valid-accessibl.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-10-natural-language-event-phrases-stay-available-as-quick-creat.md +6 -0
- package/corpus/templates/chat/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/chat/changelog/2026-07-10-chat-now-makes-ai-connection-setup-clear-without-shifting-th.md +6 -0
- package/corpus/templates/clips/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/clips/.agents/skills/recording/SKILL.md +17 -1
- package/corpus/templates/clips/.agents/skills/video-sharing/SKILL.md +8 -0
- package/corpus/templates/clips/AGENTS.md +8 -3
- package/corpus/templates/clips/actions/finalize-recording.ts +63 -23
- package/corpus/templates/clips/actions/get-recording-player-data.ts +6 -2
- package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +72 -9
- package/corpus/templates/clips/actions/list-recordings.ts +19 -3
- package/corpus/templates/clips/actions/navigate.ts +2 -0
- package/corpus/templates/clips/actions/reprocess-recording.ts +20 -6
- package/corpus/templates/clips/actions/request-transcript.ts +16 -31
- package/corpus/templates/clips/actions/view-screen.ts +57 -5
- package/corpus/templates/clips/app/components/layout/Header.tsx +1 -0
- package/corpus/templates/clips/app/components/library/empty-state.tsx +2 -0
- package/corpus/templates/clips/app/components/library/library-grid.tsx +69 -42
- package/corpus/templates/clips/app/components/library/library-layout.tsx +15 -1
- package/corpus/templates/clips/app/components/library/recording-card.tsx +81 -68
- package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -3
- package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +9 -3
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +1 -1
- package/corpus/templates/clips/app/hooks/use-library.ts +1 -1
- package/corpus/templates/clips/app/hooks/use-navigation-state.ts +10 -2
- package/corpus/templates/clips/app/i18n/ar-SA.ts +7 -1
- package/corpus/templates/clips/app/i18n/de-DE.ts +7 -1
- package/corpus/templates/clips/app/i18n/en-US.ts +7 -1
- package/corpus/templates/clips/app/i18n/es-ES.ts +7 -1
- package/corpus/templates/clips/app/i18n/fr-FR.ts +7 -1
- package/corpus/templates/clips/app/i18n/hi-IN.ts +7 -1
- package/corpus/templates/clips/app/i18n/ja-JP.ts +7 -1
- package/corpus/templates/clips/app/i18n/ko-KR.ts +7 -1
- package/corpus/templates/clips/app/i18n/pt-BR.ts +7 -1
- package/corpus/templates/clips/app/i18n/zh-CN.ts +8 -1
- package/corpus/templates/clips/app/i18n/zh-TW.ts +8 -1
- package/corpus/templates/clips/app/lib/recording-visibility.ts +70 -0
- package/corpus/templates/clips/app/routes/_app.shared.tsx +20 -0
- package/corpus/templates/clips/app/routes/download.tsx +24 -8
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +115 -2
- package/corpus/templates/clips/app/routes/record.tsx +62 -0
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +25 -16
- package/corpus/templates/clips/changelog/2026-07-10-clips-desktop-is-now-available-for-linux-with-appimage-debia.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-clips-downloads-updates-sooner-in-the-background-and-offers-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-clips-shared-with-you-now-appear-in-a-searchable-shared-with.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-clips-with-missing-mobile-video-frames-can-be-repaired-witho.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-mobile-camera-recordings-pause-while-backgrounded.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-mp4-downloads-now-show-progress-immediately-after-the-option.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-recording-pages-now-open-as-soon-as-you-stop-with-a-share-li.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-recordings-now-seek-smoothly-downloads-use-the-correct-file-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-10-s3-compatible-storage-now-saves-hosted-recordings-without-re.md +6 -0
- package/corpus/templates/clips/desktop/README.md +22 -6
- package/corpus/templates/clips/desktop/package.json +1 -1
- package/corpus/templates/clips/desktop/src/app.tsx +32 -19
- package/corpus/templates/clips/desktop/src/components/ReadinessPanel.tsx +15 -9
- package/corpus/templates/clips/desktop/src/lib/finalization-guard.ts +22 -0
- package/corpus/templates/clips/desktop/src/lib/permissions.ts +3 -1
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +97 -120
- package/corpus/templates/clips/desktop/src/lib/updater.ts +26 -4
- package/corpus/templates/clips/desktop/src/overlays/finalizing.tsx +4 -8
- package/corpus/templates/clips/desktop/src-tauri/Cargo.toml +1 -1
- package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +2 -2
- package/corpus/templates/clips/desktop/src-tauri/src/permission_status.rs +11 -7
- package/corpus/templates/clips/desktop/src-tauri/tauri.linux.conf.json +11 -0
- package/corpus/templates/clips/netlify.toml +3 -0
- package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +106 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +9 -1
- package/corpus/templates/clips/server/lib/resumable-upload-provider.ts +52 -0
- package/corpus/templates/clips/server/lib/s3-upload-provider.ts +433 -85
- package/corpus/templates/clips/server/lib/video-remux.ts +114 -0
- package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +109 -0
- package/corpus/templates/clips/server/routes/api/clips-updater.json.get.ts +22 -11
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +4 -2
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +47 -5
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +10 -2
- package/corpus/templates/clips/shared/share-loader-response.ts +12 -0
- package/corpus/templates/clips/shared/transcript-status.ts +40 -0
- package/corpus/templates/content/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/content/.agents/skills/content/SKILL.md +57 -5
- package/corpus/templates/content/AGENTS.md +65 -55
- package/corpus/templates/content/actions/_builder-cms-read-client.ts +10 -16
- package/corpus/templates/content/actions/_database-source-utils.ts +58 -11
- package/corpus/templates/content/actions/_property-utils.ts +30 -2
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +312 -114
- package/corpus/templates/content/actions/submit-content-database-form.ts +497 -0
- package/corpus/templates/content/actions/update-content-database-view.ts +8 -1
- package/corpus/templates/content/actions/view-screen.ts +4 -1
- package/corpus/templates/content/agent-native.app-skill.json +1 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +250 -64
- package/corpus/templates/content/app/components/editor/database/FormView.tsx +460 -0
- package/corpus/templates/content/app/components/editor/database/navigation-state.ts +3 -0
- package/corpus/templates/content/app/components/editor/database/settings.tsx +30 -37
- package/corpus/templates/content/app/components/editor/database/shared.tsx +2 -0
- package/corpus/templates/content/app/components/editor/database/view-config.ts +29 -1
- package/corpus/templates/content/app/components/ui/textarea.tsx +1 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +22 -0
- package/corpus/templates/content/app/i18n/zh-TW.ts +21 -0
- package/corpus/templates/content/app/i18n-data.ts +225 -0
- package/corpus/templates/content/changelog/2026-07-10-builder-backed-properties-now-load-current-source-values-as-.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-builder-database-refreshes-now-stay-explicit-and-accurate.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-database-form-views-now-collect-ordered-required-answers-and.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-database-tables-now-use-a-quieter-more-compact-layout-with-c.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-slack-intake-routes-to-content-database-forms.md +6 -0
- package/corpus/templates/content/parity/matrix.md +1 -0
- package/corpus/templates/content/parity/matrix.ts +18 -0
- package/corpus/templates/content/shared/api.ts +27 -1
- package/corpus/templates/content/shared/database-form.ts +53 -0
- package/corpus/templates/design/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/design/.agents/skills/design-generation/SKILL.md +26 -0
- package/corpus/templates/design/.agents/skills/design-systems/SKILL.md +85 -12
- package/corpus/templates/design/AGENTS.md +72 -18
- package/corpus/templates/design/DESIGN.md +1 -1
- package/corpus/templates/design/DEVELOPING.md +1 -1
- package/corpus/templates/design/FIGMA_INTEROPERABILITY.md +116 -0
- package/corpus/templates/design/actions/create-design-from-template.ts +220 -0
- package/corpus/templates/design/actions/create-design-system.ts +92 -16
- package/corpus/templates/design/actions/delete-design-template.ts +28 -0
- package/corpus/templates/design/actions/delete-file.ts +7 -0
- package/corpus/templates/design/actions/edit-design.ts +3 -0
- package/corpus/templates/design/actions/export-design-as-figma-svg.ts +137 -5
- package/corpus/templates/design/actions/export-pdf.ts +1 -1
- package/corpus/templates/design/actions/generate-design.ts +3 -0
- package/corpus/templates/design/actions/get-design-snapshot.ts +9 -0
- package/corpus/templates/design/actions/get-figma-connection-status.ts +26 -0
- package/corpus/templates/design/actions/get-figma-design-context.ts +138 -0
- package/corpus/templates/design/actions/get-figma-styles.ts +2 -2
- package/corpus/templates/design/actions/import-figma-clipboard.ts +112 -16
- package/corpus/templates/design/actions/import-figma-frame.ts +15 -4
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +4 -0
- package/corpus/templates/design/actions/list-design-templates.ts +118 -0
- package/corpus/templates/design/actions/navigate.ts +16 -2
- package/corpus/templates/design/actions/provider-api-request.ts +11 -1
- package/corpus/templates/design/actions/save-design-as-template.ts +156 -0
- package/corpus/templates/design/actions/set-active-breakpoint.ts +13 -4
- package/corpus/templates/design/actions/take-design-screenshot.ts +73 -3
- package/corpus/templates/design/actions/update-file.ts +39 -22
- package/corpus/templates/design/actions/view-screen.ts +36 -1
- package/corpus/templates/design/actions/write-local-file.ts +50 -38
- package/corpus/templates/design/app/components/design/AutoLayoutSuggestionDialog.tsx +151 -0
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +20 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +251 -22
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +3 -3
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +384 -9
- package/corpus/templates/design/app/components/design/EditPanel.tsx +105 -32
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +58 -28
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -0
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +539 -53
- package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +40 -0
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +1 -0
- package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +1 -0
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +5 -1
- package/corpus/templates/design/app/components/design/code-workbench/workspace/create-providers.ts +2 -0
- package/corpus/templates/design/app/components/design/code-workbench/workspace/localhost-provider.ts +3 -1
- package/corpus/templates/design/app/components/design/code-workbench/workspace/types.ts +2 -0
- package/corpus/templates/design/app/components/design/edit-panel/element-identity.ts +19 -0
- package/corpus/templates/design/app/components/design/edit-panel/frame-presets-panel.tsx +1 -0
- package/corpus/templates/design/app/components/design/edit-panel/interaction-state-helpers.ts +27 -0
- package/corpus/templates/design/app/components/design/inspector/InteractionStatePanel.tsx +137 -81
- package/corpus/templates/design/app/components/design/inspector/frame-size-presets.ts +25 -5
- package/corpus/templates/design/app/components/design/multi-screen/chrome-transitions.ts +1 -1
- package/corpus/templates/design/app/components/design/multi-screen/frame-geometry.ts +220 -3
- package/corpus/templates/design/app/components/design/multi-screen/overview-layout.ts +13 -0
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +22 -1
- package/corpus/templates/design/app/components/design/types.ts +4 -0
- package/corpus/templates/design/app/components/design-system/ProductionDesignSystemShowcase.tsx +208 -0
- package/corpus/templates/design/app/components/editor/FigmaLinkComposerBubble.tsx +321 -0
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +24 -4
- package/corpus/templates/design/app/components/layout/Layout.tsx +16 -2
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/design/app/components/templates/TemplatePreview.tsx +72 -0
- package/corpus/templates/design/app/global.css +2 -35
- package/corpus/templates/design/app/hooks/use-navigation-state.ts +10 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +127 -5
- package/corpus/templates/design/app/i18n-breakpoints.ts +209 -0
- package/corpus/templates/design/app/i18n-data.ts +1317 -59
- package/corpus/templates/design/app/i18n-template-feature.ts +458 -0
- package/corpus/templates/design/app/lib/design-clipboard.ts +202 -0
- package/corpus/templates/design/app/lib/design-file-upload.ts +87 -0
- package/corpus/templates/design/app/lib/design-import.ts +168 -11
- package/corpus/templates/design/app/lib/desktop-design-preview.ts +423 -0
- package/corpus/templates/design/app/lib/figma-clipboard.ts +74 -8
- package/corpus/templates/design/app/lib/figma-connection.ts +161 -0
- package/corpus/templates/design/app/lib/figma-svg-copy.ts +814 -22
- package/corpus/templates/design/app/lib/figma-url.ts +77 -0
- package/corpus/templates/design/app/lib/pending-generation.ts +35 -0
- package/corpus/templates/design/app/pages/DesignSystems.tsx +236 -177
- package/corpus/templates/design/app/pages/Index.tsx +38 -0
- package/corpus/templates/design/app/pages/Templates.tsx +498 -0
- package/corpus/templates/design/app/pages/design-editor/auto-layout-suggestion.ts +328 -0
- package/corpus/templates/design/app/pages/design-editor/clone-idrefs.ts +113 -0
- package/corpus/templates/design/app/pages/design-editor/created-screen-navigation.ts +55 -0
- package/corpus/templates/design/app/pages/design-editor/editor-session.ts +32 -0
- package/corpus/templates/design/app/pages/design-editor/editor-state.ts +49 -2
- package/corpus/templates/design/app/pages/design-editor/export-capture.ts +296 -0
- package/corpus/templates/design/app/pages/design-editor/history.ts +101 -2
- package/corpus/templates/design/app/pages/design-editor/layout-operations.ts +28 -1
- package/corpus/templates/design/app/pages/design-editor/overview-camera.ts +34 -0
- package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +202 -6
- package/corpus/templates/design/app/pages/design-editor/pending-structure-verification.ts +92 -0
- package/corpus/templates/design/app/pages/design-editor/save-failure.ts +58 -0
- package/corpus/templates/design/app/routes/templates.tsx +4 -6
- package/corpus/templates/design/changelog/2026-07-10-app-workspaces-now-use-clean-borderless-main-surfaces-throug.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-ask-chat-what-s-in-a-figma-file-or-frame-structure-screensho.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-canvas-edits-now-reject-malformed-html-before-it-can-corrupt.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-complex-designs-now-export-as-valid-secure-svgs-and-crisp-ra.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-complex-figma-masks-arcs-rich-text-transformed-images-and-ad.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-copied-layers-paste-across-designs-and-browser-tabs.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-copy-and-download-editable-figma-svg.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-copying-design-text-now-pastes-readable-text-into-other-apps.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-deleted-screens-can-be-restored-with-undo-and-removed-again-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-design-changes-now-save-before-switching-apps-and-retry-when.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-design-stays-usable-on-phones-by-keeping-editor-panels-and-f.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-download-all-screens-as-one-multi-page-pdf-from-the-overview.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-duplicated-layers-now-keep-labels-aria-relationships-fragmen.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fig-import-results-stay-compact.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-figma-imports-now-load-real-fonts-fix-rotated-gradient-dashe.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-figma-links-in-chat-and-the-import-tab-now-offer-secure-one-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-cmd-z-not-restoring-content-after-an-agent-driven-desi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-download-pdf-being-unreachable-from-the-export-panel-e.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-dragging-a-layer-out-of-an-auto-layout-row-column-no-l.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-figma-svg-export-text-wrapping-sizing-and-inner-layer.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-hiding-or-locking-one-layer-no-longer-hides-or-blocks-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-png-screenshots-of-tall-screens-being-cropped-to-one-v.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-fixed-png-svg-exports-capturing-broken-layout-when-webfonts-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-frame-tool-now-offers-standard-ad-unit-size-presets-medium-r.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-full-view-controls-stay-within-their-frame-instead-of-coveri.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-hover-focus-focus-visible-pressed-and-disabled-states-now-pr.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-layer-drops-now-land-in-the-intended-grid-row-stay-visually-.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-local-code-workspaces-now-keep-unsaved-edits-across-panel-sw.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-local-visual-editing-now-keeps-authenticated-sessions-shared.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-long-running-agent-work-no-longer-shows-a-premature-stuck-wa.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-managed-figma-connections-are-recognized-automatically.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-new-designs-can-open-directly-in-the-editor-without-a-pr.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-new-screens-are-selected-and-revealed-immediately.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-new-text-layers-undo-as-one-safe-creation.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-preview-and-apply-inferred-auto-layout-without-changing-yo.md +5 -0
- package/corpus/templates/design/changelog/2026-07-10-print-pdf-exports-and-paper-size-presets-letter-a4-now-match.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-responsive-frame-editing.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-reusable-design-templates.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-screen-overview-frames-now-use-a-clearer-interact-action-wit.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-start-designs-from-source-linked-material-3-carbon-or-primer.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-tweaks-guidance.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-uploaded-fig-files-can-now-become-editable-design-screens-wi.md +6 -0
- package/corpus/templates/design/e2e/helpers.ts +3 -3
- package/corpus/templates/design/package.json +2 -0
- package/corpus/templates/design/scripts/qa-figma-stress-import.ts +96 -0
- package/corpus/templates/design/server/db/index.ts +10 -0
- package/corpus/templates/design/server/db/schema.ts +44 -0
- package/corpus/templates/design/server/handlers/import-design-file.ts +114 -80
- package/corpus/templates/design/server/handlers/index-design-system-with-builder.ts +19 -6
- package/corpus/templates/design/server/lib/design-export.ts +240 -3
- package/corpus/templates/design/server/lib/design-template-data.ts +89 -0
- package/corpus/templates/design/server/lib/design-to-figma-svg.ts +250 -26
- package/corpus/templates/design/server/lib/fig-file-decoder.ts +839 -0
- package/corpus/templates/design/server/lib/fig-file-import.ts +287 -0
- package/corpus/templates/design/server/lib/fig-file-limits.ts +3 -0
- package/corpus/templates/design/server/lib/fig-file-to-html.ts +2568 -0
- package/corpus/templates/design/server/lib/figma-design-context.ts +359 -0
- package/corpus/templates/design/server/lib/figma-node-import.ts +478 -22
- package/corpus/templates/design/server/lib/figma-node-to-html.ts +554 -29
- package/corpus/templates/design/server/lib/local-figma-qa-upload.ts +112 -0
- package/corpus/templates/design/server/lib/verify-write-grant.ts +16 -2
- package/corpus/templates/design/server/lib/visible-clipboard-html.ts +13 -3
- package/corpus/templates/design/server/plugins/agent-chat.ts +7 -0
- package/corpus/templates/design/server/plugins/db.ts +42 -0
- package/corpus/templates/design/server/plugins/local-figma-qa-upload.ts +7 -0
- package/corpus/templates/design/server/register-secrets.ts +8 -8
- package/corpus/templates/design/server/routes/api/qa-figma-import-assets/[assetId].get.ts +46 -0
- package/corpus/templates/design/server/source-workspace.ts +104 -12
- package/corpus/templates/design/shared/code-layer.ts +105 -28
- package/corpus/templates/design/shared/design-system-templates.ts +301 -0
- package/corpus/templates/design/shared/design-template-presets.ts +195 -0
- package/corpus/templates/design/shared/figma-url.ts +8 -0
- package/corpus/templates/design/shared/html-integrity.ts +306 -0
- package/corpus/templates/design/shared/interaction-states.ts +318 -23
- package/corpus/templates/design/shared/locked-layers.ts +151 -0
- package/corpus/templates/dispatch/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/dispatch/app/i18n/zh-TW.ts +48 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +536 -1
- package/corpus/templates/dispatch/changelog/2026-07-10-connect-slack-workspaces-with-oauth-and-manage-channel-ident.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-10-microsoft-teams-bots-and-discord-slash-commands-can-now-conn.md +6 -0
- package/corpus/templates/dispatch/changelog/2026-07-10-slack-and-telegram-now-route-uptime-monitor-requests-to-anal.md +6 -0
- package/corpus/templates/forms/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/forms/.agents/skills/form-publishing/SKILL.md +7 -0
- package/corpus/templates/forms/AGENTS.md +4 -0
- package/corpus/templates/forms/actions/create-form.ts +44 -7
- package/corpus/templates/forms/actions/lib/assert-publishable-form.ts +38 -0
- package/corpus/templates/forms/actions/patch-form-fields.ts +4 -0
- package/corpus/templates/forms/actions/update-form.ts +2 -36
- package/corpus/templates/forms/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/forms/app/i18n/de-DE.ts +3 -0
- package/corpus/templates/forms/app/i18n/en-US.ts +3 -0
- package/corpus/templates/forms/app/i18n/es-ES.ts +3 -0
- package/corpus/templates/forms/app/i18n/fr-FR.ts +3 -0
- package/corpus/templates/forms/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/forms/app/i18n/ja-JP.ts +3 -0
- package/corpus/templates/forms/app/i18n/ko-KR.ts +3 -0
- package/corpus/templates/forms/app/i18n/pt-BR.ts +3 -0
- package/corpus/templates/forms/app/i18n/zh-CN.ts +2 -0
- package/corpus/templates/forms/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +17 -0
- package/corpus/templates/forms/changelog/2026-07-10-agent-created-published-forms-now-return-the-anonymous-publi.md +6 -0
- package/corpus/templates/forms/changelog/2026-07-10-published-forms-can-no-longer-be-edited-into-an-unusable-emp.md +6 -0
- package/corpus/templates/forms/server/handlers/submissions.ts +4 -3
- package/corpus/templates/forms/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/forms/shared/types.ts +5 -0
- package/corpus/templates/mail/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/mail/changelog/2026-07-10-mail-navigation-now-uses-a-clean-borderless-drawer.md +6 -0
- package/corpus/templates/plan/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/corpus/templates/plan/app/lib/plan-local-bridge.ts +4 -1
- package/corpus/templates/plan/changelog/2026-07-10-local-plans-now-keep-valid-content-visible-when-one-generate.md +6 -0
- package/corpus/templates/plan/server/lib/local-plan-files.ts +4 -1
- package/corpus/templates/slides/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/dist/a2a/artifact-response.d.ts.map +1 -1
- package/dist/a2a/artifact-response.js +88 -2
- package/dist/a2a/artifact-response.js.map +1 -1
- package/dist/a2a/client.d.ts +9 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +1 -0
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +24 -69
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/types.d.ts +2 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/agent/durable-background.d.ts +11 -0
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +17 -0
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/production-agent.d.ts +2 -2
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +15 -5
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +44 -2
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +90 -9
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +109 -0
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +206 -15
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/types.d.ts +22 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/audit/record.d.ts.map +1 -1
- package/dist/audit/record.js +29 -0
- package/dist/audit/record.js.map +1 -1
- package/dist/audit/store.d.ts.map +1 -1
- package/dist/audit/store.js +62 -3
- package/dist/audit/store.js.map +1 -1
- package/dist/audit/types.d.ts +13 -0
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js.map +1 -1
- package/dist/automation/index.d.ts +193 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +464 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +10 -3
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +492 -35
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +7 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +32 -8
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +15 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +115 -47
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +1 -1
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts +14 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +35 -7
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts +4 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +49 -4
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/automation.d.ts +14 -0
- package/dist/client/automation.d.ts.map +1 -0
- package/dist/client/automation.js +9 -0
- package/dist/client/automation.js.map +1 -0
- package/dist/client/chat/run-recovery.d.ts +4 -0
- package/dist/client/chat/run-recovery.d.ts.map +1 -1
- package/dist/client/chat/run-recovery.js +12 -10
- package/dist/client/chat/run-recovery.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +8 -0
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/integrations/api.d.ts +115 -0
- package/dist/client/integrations/api.d.ts.map +1 -0
- package/dist/client/integrations/api.js +123 -0
- package/dist/client/integrations/api.js.map +1 -0
- package/dist/client/integrations/index.d.ts +1 -0
- package/dist/client/integrations/index.d.ts.map +1 -1
- package/dist/client/integrations/index.js +1 -0
- package/dist/client/integrations/index.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
- package/dist/client/transcription/use-live-transcription.js +59 -5
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts +16 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +23 -4
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +49 -4
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/workspace-deploy.d.ts.map +1 -1
- package/dist/deploy/workspace-deploy.js +31 -2
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/file-upload/types.d.ts +2 -0
- package/dist/file-upload/types.d.ts.map +1 -1
- package/dist/file-upload/types.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/a2a-continuations-store.d.ts.map +1 -1
- package/dist/integrations/a2a-continuations-store.js +6 -4
- package/dist/integrations/a2a-continuations-store.js.map +1 -1
- package/dist/integrations/adapters/discord.d.ts +3 -0
- package/dist/integrations/adapters/discord.d.ts.map +1 -0
- package/dist/integrations/adapters/discord.js +261 -0
- package/dist/integrations/adapters/discord.js.map +1 -0
- package/dist/integrations/adapters/index.d.ts +4 -0
- package/dist/integrations/adapters/index.d.ts.map +1 -0
- package/dist/integrations/adapters/index.js +26 -0
- package/dist/integrations/adapters/index.js.map +1 -0
- package/dist/integrations/adapters/microsoft-teams.d.ts +5 -0
- package/dist/integrations/adapters/microsoft-teams.d.ts.map +1 -0
- package/dist/integrations/adapters/microsoft-teams.js +295 -0
- package/dist/integrations/adapters/microsoft-teams.js.map +1 -0
- package/dist/integrations/adapters/slack.d.ts +8 -2
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +736 -27
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/adapters/telegram.d.ts +0 -2
- package/dist/integrations/adapters/telegram.d.ts.map +1 -1
- package/dist/integrations/adapters/telegram.js +49 -15
- package/dist/integrations/adapters/telegram.js.map +1 -1
- package/dist/integrations/adapters/whatsapp.d.ts +0 -2
- package/dist/integrations/adapters/whatsapp.d.ts.map +1 -1
- package/dist/integrations/adapters/whatsapp.js +40 -17
- package/dist/integrations/adapters/whatsapp.js.map +1 -1
- package/dist/integrations/catalog.d.ts +75 -0
- package/dist/integrations/catalog.d.ts.map +1 -0
- package/dist/integrations/catalog.js +451 -0
- package/dist/integrations/catalog.js.map +1 -0
- package/dist/integrations/controls-store.d.ts +44 -0
- package/dist/integrations/controls-store.d.ts.map +1 -0
- package/dist/integrations/controls-store.js +129 -0
- package/dist/integrations/controls-store.js.map +1 -0
- package/dist/integrations/index.d.ts +13 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +9 -0
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/installations-store.d.ts +112 -0
- package/dist/integrations/installations-store.d.ts.map +1 -0
- package/dist/integrations/installations-store.js +493 -0
- package/dist/integrations/installations-store.js.map +1 -0
- package/dist/integrations/integration-memory.d.ts +24 -0
- package/dist/integrations/integration-memory.d.ts.map +1 -0
- package/dist/integrations/integration-memory.js +136 -0
- package/dist/integrations/integration-memory.js.map +1 -0
- package/dist/integrations/pending-tasks-retry-job.d.ts.map +1 -1
- package/dist/integrations/pending-tasks-retry-job.js +6 -5
- package/dist/integrations/pending-tasks-retry-job.js.map +1 -1
- package/dist/integrations/pending-tasks-store.d.ts +17 -0
- package/dist/integrations/pending-tasks-store.d.ts.map +1 -1
- package/dist/integrations/pending-tasks-store.js +71 -5
- package/dist/integrations/pending-tasks-store.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +520 -35
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/scope-store.d.ts +65 -0
- package/dist/integrations/scope-store.d.ts.map +1 -0
- package/dist/integrations/scope-store.js +361 -0
- package/dist/integrations/scope-store.js.map +1 -0
- package/dist/integrations/slack-manifest.d.ts +66 -0
- package/dist/integrations/slack-manifest.d.ts.map +1 -0
- package/dist/integrations/slack-manifest.js +70 -0
- package/dist/integrations/slack-manifest.js.map +1 -0
- package/dist/integrations/slack-oauth.d.ts +99 -0
- package/dist/integrations/slack-oauth.d.ts.map +1 -0
- package/dist/integrations/slack-oauth.js +226 -0
- package/dist/integrations/slack-oauth.js.map +1 -0
- package/dist/integrations/types.d.ts +144 -0
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/integrations/types.js +16 -1
- package/dist/integrations/types.js.map +1 -1
- package/dist/integrations/usage-budget-store.d.ts +84 -0
- package/dist/integrations/usage-budget-store.d.ts.map +1 -0
- package/dist/integrations/usage-budget-store.js +650 -0
- package/dist/integrations/usage-budget-store.js.map +1 -0
- package/dist/integrations/webhook-handler.d.ts +4 -0
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +415 -47
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/jobs/scheduler.d.ts +6 -0
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +83 -4
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +43 -11
- package/dist/jobs/tools.js.map +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/index.d.ts +4 -4
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +72 -1
- package/dist/provider-api/index.js.map +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +57 -15
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/script-helpers.d.ts.map +1 -1
- package/dist/resources/script-helpers.js +34 -8
- package/dist/resources/script-helpers.js.map +1 -1
- package/dist/resources/store.d.ts +10 -0
- package/dist/resources/store.d.ts.map +1 -1
- package/dist/resources/store.js +54 -47
- package/dist/resources/store.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +106 -1
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +15 -4
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +248 -113
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +10 -14
- package/dist/server/auth.js.map +1 -1
- package/dist/server/builder-design-systems.d.ts +3 -1
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +9 -2
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/edge.d.ts +1 -1
- package/dist/server/edge.d.ts.map +1 -1
- package/dist/server/edge.js +1 -1
- package/dist/server/edge.js.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/request-context.d.ts +18 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/social-og-image.d.ts.map +1 -1
- package/dist/server/social-og-image.js +3 -2
- package/dist/server/social-og-image.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/styles/agent-native.css +62 -44
- package/dist/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/dist/templates/default/AGENTS.md +7 -3
- package/dist/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
- package/dist/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
- package/dist/templates/workspace-core/AGENTS.md +3 -2
- package/dist/usage/store.d.ts +7 -0
- package/dist/usage/store.d.ts.map +1 -1
- package/dist/usage/store.js +24 -3
- package/dist/usage/store.js.map +1 -1
- package/docs/content/automation-connectors.mdx +80 -0
- package/docs/content/extensions.mdx +8 -0
- package/docs/content/locales/ar-SA/extensions.mdx +8 -0
- package/docs/content/locales/ar-SA/messaging.mdx +84 -15
- package/docs/content/locales/ar-SA/template-clips.mdx +1 -0
- package/docs/content/locales/ar-SA/template-design.mdx +1 -0
- package/docs/content/locales/de-DE/extensions.mdx +10 -0
- package/docs/content/locales/de-DE/messaging.mdx +92 -15
- package/docs/content/locales/de-DE/template-clips.mdx +1 -0
- package/docs/content/locales/de-DE/template-design.mdx +1 -0
- package/docs/content/locales/es-ES/extensions.mdx +10 -0
- package/docs/content/locales/es-ES/messaging.mdx +91 -15
- package/docs/content/locales/es-ES/template-clips.mdx +1 -0
- package/docs/content/locales/es-ES/template-design.mdx +1 -0
- package/docs/content/locales/fr-FR/extensions.mdx +10 -0
- package/docs/content/locales/fr-FR/messaging.mdx +91 -15
- package/docs/content/locales/fr-FR/template-clips.mdx +1 -0
- package/docs/content/locales/fr-FR/template-design.mdx +1 -0
- package/docs/content/locales/hi-IN/extensions.mdx +8 -0
- package/docs/content/locales/hi-IN/messaging.mdx +81 -15
- package/docs/content/locales/hi-IN/template-clips.mdx +1 -0
- package/docs/content/locales/hi-IN/template-design.mdx +1 -0
- package/docs/content/locales/ja-JP/extensions.mdx +9 -0
- package/docs/content/locales/ja-JP/messaging.mdx +81 -15
- package/docs/content/locales/ja-JP/template-clips.mdx +1 -0
- package/docs/content/locales/ja-JP/template-design.mdx +1 -0
- package/docs/content/locales/ko-KR/extensions.mdx +8 -0
- package/docs/content/locales/ko-KR/messaging.mdx +80 -15
- package/docs/content/locales/ko-KR/template-clips.mdx +1 -0
- package/docs/content/locales/ko-KR/template-design.mdx +1 -0
- package/docs/content/locales/pt-BR/extensions.mdx +9 -0
- package/docs/content/locales/pt-BR/messaging.mdx +88 -15
- package/docs/content/locales/pt-BR/template-clips.mdx +1 -0
- package/docs/content/locales/pt-BR/template-design.mdx +1 -0
- package/docs/content/locales/zh-CN/extensions.mdx +6 -0
- package/docs/content/locales/zh-CN/messaging.mdx +78 -15
- package/docs/content/locales/zh-CN/template-clips.mdx +1 -0
- package/docs/content/locales/zh-CN/template-design.mdx +1 -0
- package/docs/content/locales/zh-TW/extensions.mdx +6 -0
- package/docs/content/locales/zh-TW/messaging.mdx +78 -15
- package/docs/content/locales/zh-TW/template-clips.mdx +1 -0
- package/docs/content/locales/zh-TW/template-design.mdx +1 -0
- package/docs/content/messaging.mdx +227 -45
- package/docs/content/template-clips.mdx +3 -0
- package/docs/content/template-design.mdx +4 -0
- package/package.json +5 -1
- package/src/templates/default/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/src/templates/default/AGENTS.md +7 -3
- package/src/templates/workspace-core/.agents/skills/authentication/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/capture-learnings/SKILL.md +22 -9
- package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +6 -3
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +25 -0
- package/src/templates/workspace-core/.agents/skills/integration-webhooks/SKILL.md +15 -0
- 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
|
|
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
|
|
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** –
|
|
127
|
-
- **DMs** –
|
|
128
|
-
- **
|
|
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
|
-
|
|
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: "
|
|
485
|
-
label: "
|
|
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: "
|
|
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: "
|
|
587
|
+
platform: "my-chat",
|
|
511
588
|
externalThreadId: "channel-or-thread-id",
|
|
512
589
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
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: "
|
|
542
|
-
label: "
|
|
618
|
+
platform: "my-chat",
|
|
619
|
+
label: "My Chat",
|
|
543
620
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
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,
|
|
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
|
|
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
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
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
|
-
|
|
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: "
|
|
485
|
-
label: "
|
|
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: "
|
|
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: "
|
|
586
|
+
platform: "my-chat",
|
|
511
587
|
externalThreadId: "channel-or-thread-id",
|
|
512
588
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
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: "
|
|
542
|
-
label: "
|
|
617
|
+
platform: "my-chat",
|
|
618
|
+
label: "My Chat",
|
|
543
619
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
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,
|
|
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,
|
|
8
|
+
Connectez votre agent à Slack, Microsoft Teams, aux interactions Discord, à l’e-mail, Telegram ou WhatsApp. Il s’agit 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
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
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
|
-
|
|
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 d’environnement 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: "
|
|
485
|
-
label: "
|
|
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: "
|
|
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: "
|
|
586
|
+
platform: "my-chat",
|
|
511
587
|
externalThreadId: "channel-or-thread-id",
|
|
512
588
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
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: "
|
|
542
|
-
label: "
|
|
617
|
+
platform: "my-chat",
|
|
618
|
+
label: "My Chat",
|
|
543
619
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
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.
|