@agent-native/core 0.92.11 → 0.93.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +45 -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 +48 -5
- package/corpus/core/src/agent/run-manager.ts +171 -20
- package/corpus/core/src/agent/run-store.ts +297 -42
- 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 +110 -17
- 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/components/player/transcript-panel.tsx +27 -5
- 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/hooks/use-player-shortcuts.ts +1 -0
- 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-fixed-copying-agent-responses-and-transcript-text-from-recor.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 +92 -23
- package/corpus/templates/content/actions/_database-source-utils.ts +207 -41
- package/corpus/templates/content/actions/_property-utils.ts +30 -2
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +316 -121
- package/corpus/templates/content/actions/attach-content-database-source.ts +41 -17
- package/corpus/templates/content/actions/change-content-database-source-role.ts +46 -8
- package/corpus/templates/content/actions/submit-content-database-form.ts +497 -0
- package/corpus/templates/content/actions/suggest-source-join-key.ts +8 -1
- 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-09-builder-source-refreshes-now-keep-mapped-fields-such-as-topi.md +6 -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 +28 -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 +5 -3
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +34 -8
- 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 +124 -18
- 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 +274 -37
- 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 +97 -16
- 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/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +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/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.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,15 @@ QuickBooks Online を使用したことがある方は、このモデルを見
|
|
|
11
11
|
|
|
12
12
|
フレームワークは重要です。拡張機能は、一般的な「何でもできる」サンドボックスではありません。これは、特定のテンプレート** (メール、アナリティクス、カレンダー、クリップ、デザイン) を拡張する **ミニアプリであり、そのテンプレートの actions とデータを使用します。 Mail 拡張機能は電子メールを読み取ります。 Analytics 拡張機能は、ダッシュボードのメトリクスを読み取ります。カレンダー拡張機能は、開いているイベントに作用します。それらはホスト製品の一部であるため、ホスト製品の一部のように感じられます。
|
|
13
13
|
|
|
14
|
+
> **拡張機能は UI を追加するものであり、ホスト UI 自体を書き換えるものでは
|
|
15
|
+
> ありません。** 拡張機能は独自のページ、またはテンプレートが公開する名前付きの
|
|
16
|
+
> [スロット](#slots) 内に表示されます。たとえばカレンダーの各参加者の横など、
|
|
17
|
+
> 任意のネイティブコンポーネント内に要素を挿入することは、その場所にスロットが
|
|
18
|
+
> 公開されていない限りできません。より深いカスタマイズが必要な場合は、エージェントに
|
|
19
|
+
> テンプレートのソースコードを編集するよう依頼してください。コード全体を
|
|
20
|
+
> カスタマイズできることは Agent Native の中核機能であり、拡張機能はデプロイ不要で
|
|
21
|
+
> すばやく追加できるレイヤーです。
|
|
22
|
+
|
|
14
23
|
拡張機能を機能させるには 3 つの要素があります:
|
|
15
24
|
|
|
16
25
|
- **コードもデプロイも必要ありません。** エージェントがそれらを作成すると、数秒で有効になります。リポジトリではなくデータベースに保存されます。
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "メッセージ"
|
|
3
|
-
description: "Slack
|
|
3
|
+
description: "Slack、Microsoft Teams、Discord インタラクション、メール、Telegram、WhatsApp からエージェントと会話します。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# メッセージング
|
|
7
7
|
|
|
8
|
-
エージェントを Slack
|
|
8
|
+
エージェントを Slack、Microsoft Teams、Discord インタラクション、メール、Telegram、WhatsApp に接続できます。メモリ、ツール、会話履歴は同じです。
|
|
9
|
+
|
|
10
|
+
> **正確なサポート範囲:** Teams は公式 Bot Framework JWT を検証し、元の会話へ返信します。Discord は Ed25519 署名付き HTTP インタラクションによるスラッシュコマンドと遅延応答をサポートします。通常のサーバーメッセージや DM には Gateway ランタイムが必要です。Telegram は `message_thread_id` を保持し、WhatsApp は受信した `wamid` をコンテキスト返信に使用します。
|
|
11
|
+
>
|
|
12
|
+
> Teams には `MICROSOFT_TEAMS_APP_ID`、`MICROSOFT_TEAMS_APP_PASSWORD`、`MICROSOFT_TEAMS_ALLOWED_TENANT_IDS` が必要です。Discord には `DISCORD_APPLICATION_ID` と `DISCORD_PUBLIC_KEY` が必要です。Telegram には `TELEGRAM_WEBHOOK_SECRET`、WhatsApp には `WHATSAPP_APP_SECRET` も必要です。
|
|
9
13
|
|
|
10
14
|
> **ディスパッチ テンプレートを使用しますか?** これらすべては **[設定] → [メッセージング]** で設定されます。クリックして各プラットフォームに接続します。独自のテンプレートをカスタマイズまたは構築する場合を除き、このページの残りの部分を読む必要はありません。 [Dispatch](/docs/dispatch) または [Dispatch template reference](/docs/template-dispatch) を参照してください。
|
|
11
15
|
|
|
@@ -78,7 +82,6 @@ description: "Slack、電子メール、テレグラム、または WhatsApp か
|
|
|
78
82
|
- `chat:write` — エージェントがメッセージを送信できるようにします
|
|
79
83
|
- `app_mentions:read` — エージェントがいつ @ メンションされたかを確認できるようにします (オプション)
|
|
80
84
|
- `im:history` — エージェントに送信された DM を読めるようにします
|
|
81
|
-
- `assistant:write` — オプション。 Slack がアシスタント スレッドでネイティブの「考え中...」ステータスを表示できるようにします
|
|
82
85
|
- `users:read.email` — オプション。 Mail などのテンプレートは、ドラフト キュー ID について Slack 送信者の電子メールを検証するのに役立ちます
|
|
83
86
|
3. そのページの上部にある [**ワークスペースにインストール**] をクリックします。 Slack は、`xoxb-` で始まる **ボット ユーザー OAuth トークン**を提供します。コピーしてください。
|
|
84
87
|
4. サイドバーの **基本情報** に移動し、**署名シークレット**をコピーします。
|
|
@@ -123,12 +126,73 @@ Slack アプリには 1 つのイベント API リクエスト URL がありま
|
|
|
123
126
|
|
|
124
127
|
### ヒント
|
|
125
128
|
|
|
126
|
-
- **チャンネルメンション** —
|
|
127
|
-
- **DM** —
|
|
128
|
-
-
|
|
129
|
+
- **チャンネルメンション** — 作業開始時は @mention します。メンションなしの返信は、その同じスレッドで作業中の間だけ続行されます。
|
|
130
|
+
- **DM** — 受け付ける個人 DM は非公開の会話であり、確認済み組織メンバーまたはリンク済み Slack ID が必要です。
|
|
131
|
+
- **ID** — DM は検証済み Slack メールを同じアプリユーザーに関連付けられます。管理チャンネルは独自のサービス ID とポリシーを使用します。
|
|
129
132
|
- **運用許可リスト** — 有効な署名シークレットが予期しないワークスペースで再利用されないように、`SLACK_ALLOWED_TEAM_IDS` を設定し、共有 Slack アプリの場合は `SLACK_ALLOWED_API_APP_IDS` を設定します。
|
|
130
133
|
- **Clips アプリの展開** — Slack 用のインストール可能な Agent-Native Clips は、`SLACK_CLIENT_ID`、`SLACK_CLIENT_SECRET`、`SLACK_SIGNING_SECRET`、および `/api/slack/oauth/callback` を使用します。接続された各 Slack ワークスペースは、`app_secrets` で独自の暗号化されたボット トークンを取得します。 `SLACK_BOT_TOKEN` は、従来の単一ワークスペースのフォールバックにすぎません。
|
|
131
134
|
|
|
135
|
+
### 管理対象の Add to Slack
|
|
136
|
+
|
|
137
|
+
管理対象 OAuth が推奨設定です。**設定 → Messaging** で **Agent manifest** を選択し、
|
|
138
|
+
ホスト固有の `agent-native-slack-manifest.json` をダウンロードして、Slack の
|
|
139
|
+
**App Manifest** からインポートします。このマニフェストは現在の `agent_view` と、
|
|
140
|
+
DM 用の書き込み可能な **Messages** タブを有効にします。次の Bot Token Scopes を確認します。
|
|
141
|
+
|
|
142
|
+
アプリアイコンはマニフェストには含まれません。Agents ピッカーを製品ブランドに合わせるため、
|
|
143
|
+
**Basic Information → Display Information** で Agent Native アイコンをアップロードします。
|
|
144
|
+
アプリの公開 `icon-512.svg` を元に、必要に応じて Slack が受け付けるアップロード形式へ変換できます。
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
assistant:write
|
|
148
|
+
app_mentions:read
|
|
149
|
+
channels:history
|
|
150
|
+
channels:read
|
|
151
|
+
chat:write
|
|
152
|
+
files:read
|
|
153
|
+
groups:history
|
|
154
|
+
groups:read
|
|
155
|
+
im:history
|
|
156
|
+
im:read
|
|
157
|
+
mpim:history
|
|
158
|
+
mpim:read
|
|
159
|
+
pins:read
|
|
160
|
+
reactions:read
|
|
161
|
+
users:read
|
|
162
|
+
users:read.email
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
OAuth Redirect URL を
|
|
166
|
+
`https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`、
|
|
167
|
+
Event Subscriptions Request URL を
|
|
168
|
+
`https://your-app.example.com/_agent-native/integrations/slack/webhook`、
|
|
169
|
+
Interactivity Request URL を
|
|
170
|
+
`https://your-app.example.com/_agent-native/integrations/slack/interactions` に設定します。
|
|
171
|
+
`app_home_opened`、`app_context_changed`、`app_mention`、`message.channels`、
|
|
172
|
+
`message.groups`、`message.im`、`message.mpim` を購読します。
|
|
173
|
+
`SLACK_CLIENT_ID`、`SLACK_CLIENT_SECRET`、`SLACK_SIGNING_SECRET`
|
|
174
|
+
を設定したら、**設定 → Messaging** で **Add to Slack** を選択します。各インストールの
|
|
175
|
+
トークンは暗号化され、会話キーはワークスペース、アプリ、チャンネル、スレッド別です。
|
|
176
|
+
|
|
177
|
+
マニフェスト、スコープ、イベント、Agent view、Messages タブを変更した後は Slack アプリを
|
|
178
|
+
再インストールしてください。`app_home_opened` は DM が開かれたことを検出し、
|
|
179
|
+
`app_context_changed` は現在表示中の Slack コンテキストを提供し、`message.im` は DM を
|
|
180
|
+
配信します。Slack 管理者は組織全体でインストール済みエージェントを非表示にでき、各メンバーも
|
|
181
|
+
自分のトップバーから非表示にできます。インストール済みなのに表示されない場合は、これらの設定を
|
|
182
|
+
確認するか、**Tools → Apps** から開いてください。
|
|
183
|
+
|
|
184
|
+
個人の Slack DM は、確認済みの Agent Native 組織メンバー、またはそのメンバーにリンク済みの
|
|
185
|
+
Slack ID からのみ受け付けます。チャンネルのサービスプリンシパルに対するポリシーと予算は別です。
|
|
186
|
+
|
|
187
|
+
メンションなしの返信は実行中の同じスレッドだけを操作し、通常のチャンネル会話は
|
|
188
|
+
エージェントを起動しません。制限された文脈にはリアクションとファイル参照が含まれ、
|
|
189
|
+
ネイティブカードに計画、進捗、キャンセル、承認/拒否が表示されます。DM は個人 ID、
|
|
190
|
+
管理チャンネルは明示したサービス ID とゲスト、Slack Connect、モデルのポリシーを
|
|
191
|
+
使用します。チャンネルメモリは明示的な依頼だけで保存または削除され、自動保存されません。
|
|
192
|
+
チャンネルで作成したルーチンは同じ Slack に配信されます。組織、依頼者、チャンネルの
|
|
193
|
+
日次または月次予算は完全な監査系統とともに適用されます。`assistant:write` は Agent View の
|
|
194
|
+
コンテキストイベントを有効にし、`chat:write` は返信とライブ状態更新に使用されます。
|
|
195
|
+
|
|
132
196
|
## テレグラムを設定する {#telegram}
|
|
133
197
|
|
|
134
198
|
### 必要なもの
|
|
@@ -435,7 +499,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
499
|
| メール | `EMAIL_AGENT_ADDRESS`、および `RESEND_API_KEY` または `SENDGRID_API_KEY` のいずれか | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
500
|
| WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
501
|
|
|
438
|
-
|
|
502
|
+
統合資格情報は、まず統合所有者のスコープ付きシークレット(ユーザー、組織、ワークスペースの順)から解決されます。デプロイ環境変数は、ローカルまたは意図的な単一テナント構成のフォールバックです。設定 UI はスコープ付きシークレットを保存し、値がブラウザーに返されたりソースコードに保存されたりすることはありません。
|
|
503
|
+
|
|
504
|
+
組み込みランタイムアダプターは **Slack**、**Telegram**、**WhatsApp Cloud API**、およびプロバイダー webhook 電子メール(Resend または SendGrid)です。Discord と Microsoft Teams は、検証済みアダプターが実装・登録されるまで接続できません。
|
|
439
505
|
|
|
440
506
|
### スレッドとアイデンティティ {#threading-and-identity}
|
|
441
507
|
|
|
@@ -481,13 +547,13 @@ import type {
|
|
|
481
547
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
548
|
|
|
483
549
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
550
|
+
platform: "my-chat",
|
|
551
|
+
label: "My Chat",
|
|
486
552
|
|
|
487
553
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
554
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
555
|
return [
|
|
490
|
-
{ key: "
|
|
556
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
557
|
];
|
|
492
558
|
},
|
|
493
559
|
|
|
@@ -507,10 +573,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
573
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
574
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
575
|
return {
|
|
510
|
-
platform: "
|
|
576
|
+
platform: "my-chat",
|
|
511
577
|
externalThreadId: "channel-or-thread-id",
|
|
512
578
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
579
|
+
senderId: "my-chat-user-id",
|
|
514
580
|
platformContext: { channelId: "channel-id" },
|
|
515
581
|
timestamp: Date.now(),
|
|
516
582
|
};
|
|
@@ -538,10 +604,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
604
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
605
|
async getStatus(baseUrl?: string) {
|
|
540
606
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
607
|
+
platform: "my-chat",
|
|
608
|
+
label: "My Chat",
|
|
543
609
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
610
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
611
|
};
|
|
546
612
|
},
|
|
547
613
|
};
|
|
@@ -77,6 +77,7 @@ Loom + Granola + Wispr Flow を 1 つのアプリに統合したものと考え
|
|
|
77
77
|
## それを使って何ができるか
|
|
78
78
|
|
|
79
79
|
- **内蔵レコーダー、ウェブカメラ オーバーレイ、オーディオ キャプチャ、一時停止/トリムを使用して画面を録画**します。
|
|
80
|
+
- **公開 Loom 動画をインポートします。** Web で **録画 → Loom をインポート** を選択し、Loom の共有 URL または埋め込み URL を貼り付けます。Clips はライブラリにコピーを保存し、利用可能な場合は公開トランスクリプトをインポートします。
|
|
80
81
|
- **カレンダーから会議をキャプチャします。** Google Calendar に接続し、サイドバーで今後の会議を確認し、いずれかの会議の記録を押します。ライブトランスクリプトに加えて、AI の概要、箇条書き、およびアクションアイテムが終了と同時に表示されます。
|
|
81
82
|
- **プッシュツートークディクテーション。** マシン上で Fn を押しながら話すと、クリーンアップされたテキストが使用しているアプリにドロップされます。すべてのディクテーションは、オリジナルと AI でクリーンアップされたバージョンが並べて検索可能な履歴に保存されます。
|
|
82
83
|
- **すべての録画に対して自動生成されたタイトル、概要、チャプター マーカーを取得します** - エージェントがそれらを入力し、最新の状態に保ちます。
|
|
@@ -91,6 +91,7 @@ Design は、エージェントネイティブの HTML プロトタイピング
|
|
|
91
91
|
## それを使って何ができるか
|
|
92
92
|
|
|
93
93
|
- **完全なプロトタイプを生成します。** 必要な画面またはページを説明すると、エージェントは Tailwind スタイルと Alpine interactions を備えた実用的な HTML ドキュメントを作成します。
|
|
94
|
+
- **再利用可能なテンプレートから開始します。** 広告、1 ページ資料、ランディングページなどのサイズ付きテンプレートを選ぶか、インラインデザインをテンプレートとして保存できます。プロンプトはロックされていない内容だけを調整し、ロゴや背景は保持します。
|
|
94
95
|
- **バリエーションを比較します。** 複数の方向から始めて、最も強力なものを選択し、その後改良を続けます。
|
|
95
96
|
- **視覚的に調整します。** 一般的な変更には組み込みの調整コントロールを使用するか、エージェントにコピー、レイアウト、色、間隔、およびインタラクションの更新を依頼します。
|
|
96
97
|
- **デザイン システムを適用します。** デザイン システムの設定を保存して再利用することで、生成された作品をブランドに近づけることができます。
|
|
@@ -11,6 +11,14 @@ QuickBooks Online을 사용해 본 적이 있다면 모델을 본 적이 있을
|
|
|
11
11
|
|
|
12
12
|
프레임 구성이 중요합니다. 확장 프로그램은 "원하는 대로 수행"하는 일반적인 샌드박스가 아닙니다. 메일, 분석, 캘린더, 클립, 디자인 등 특정 템플릿을 확장하고 해당 템플릿의 actions 및 데이터를 사용하는 \*\*미니 앱입니다. 메일 확장은 이메일을 읽습니다. Analytics 확장은 대시보드의 지표를 읽습니다. 캘린더 확장은 공개 이벤트에 대해 작동합니다. 호스트 제품의 일부이기 때문에 호스트 제품의 일부처럼 느껴집니다.
|
|
13
13
|
|
|
14
|
+
> **확장 프로그램은 UI를 추가하지만 호스트 UI 자체를 다시 작성하지는
|
|
15
|
+
> 않습니다.** 확장 프로그램은 자체 페이지 또는 템플릿이 제공하는 이름 있는
|
|
16
|
+
> [슬롯](#slots) 안에 표시됩니다. 예를 들어 캘린더의 각 참석자 옆처럼 임의의
|
|
17
|
+
> 네이티브 컴포넌트 안에 요소를 삽입하려면 해당 위치에 슬롯이 있어야 합니다.
|
|
18
|
+
> 더 깊은 사용자 지정이 필요하면 에이전트에게 템플릿의 소스 코드를 편집해
|
|
19
|
+
> 달라고 요청하세요. 전체 코드를 사용자 지정할 수 있다는 점은 Agent Native의
|
|
20
|
+
> 핵심 기능이며, 확장 프로그램은 배포 없이 빠르게 추가하는 계층입니다.
|
|
21
|
+
|
|
14
22
|
확장 프로그램이 작동하는 세 가지 요소:
|
|
15
23
|
|
|
16
24
|
- **코드도 없고 배포도 없습니다.** 에이전트가 이를 작성하면 몇 초 만에 활성화됩니다. 저장소가 아닌 데이터베이스에 저장됩니다.
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "메시지"
|
|
3
|
-
description: "Slack, 이메일, Telegram 또는 WhatsApp에서 에이전트와 대화하세요.
|
|
3
|
+
description: "Slack, Microsoft Teams, Discord 인터랙션, 이메일, Telegram 또는 WhatsApp에서 에이전트와 대화하세요."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 메시지
|
|
7
7
|
|
|
8
|
-
에이전트를 Slack, 이메일, Telegram 또는 WhatsApp에
|
|
8
|
+
에이전트를 Slack, Microsoft Teams, Discord 인터랙션, 이메일, Telegram 또는 WhatsApp에 연결할 수 있습니다. 메모리, 도구, 대화 기록은 그대로 유지됩니다.
|
|
9
|
+
|
|
10
|
+
> **정확한 지원 범위:** Teams는 공식 Bot Framework JWT를 검증하고 원래 대화에 답합니다. Discord는 Ed25519 서명 HTTP 인터랙션을 통한 슬래시 명령과 지연 응답을 지원합니다. 일반 서버 메시지와 DM에는 Gateway 런타임이 필요합니다. Telegram은 `message_thread_id`를 유지하고 WhatsApp은 수신 `wamid`를 문맥 답장에 사용합니다.
|
|
11
|
+
>
|
|
12
|
+
> Teams에는 `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD`, `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`가 필요합니다. Discord에는 `DISCORD_APPLICATION_ID`와 `DISCORD_PUBLIC_KEY`가 필요합니다. Telegram에는 `TELEGRAM_WEBHOOK_SECRET`, WhatsApp에는 `WHATSAPP_APP_SECRET`도 필요합니다.
|
|
9
13
|
|
|
10
14
|
> **디스패치 템플릿을 사용하십니까?** 이 모든 것이 **설정 → 메시지**에 연결되어 있습니다. 각 플랫폼을 연결하려면 클릭하세요. 자신만의 템플릿을 사용자 정의하거나 구축하지 않는 한 이 페이지의 나머지 부분을 읽을 필요가 없습니다. [Dispatch](/docs/dispatch) 또는 [Dispatch template reference](/docs/template-dispatch)를 참조하세요.
|
|
11
15
|
|
|
@@ -78,7 +82,6 @@ description: "Slack, 이메일, Telegram 또는 WhatsApp에서 에이전트와
|
|
|
78
82
|
- `chat:write` — 에이전트가 메시지를 보낼 수 있게 합니다
|
|
79
83
|
- `app_mentions:read` — @-멘션이 언제인지 에이전트가 확인할 수 있도록 합니다(선택 사항)
|
|
80
84
|
- `im:history` — 에이전트가 자신에게 전송된 DM을 읽을 수 있도록 합니다.
|
|
81
|
-
- `assistant:write` — 선택 사항; Slack는 보조 스레드에서 기본 "생각 중..." 상태를 표시합니다.
|
|
82
85
|
- `users:read.email` — 선택 사항; 메일과 같은 템플릿이 Slack 발신자 이메일에서 초안 대기열 신원을 확인하는 데 도움이 됩니다.
|
|
83
86
|
3. 해당 페이지 상단에서 **작업공간에 설치**를 클릭하세요. Slack는 `xoxb-`로 시작하는 **봇 사용자 OAuth 토큰**을 제공합니다. 복사하세요.
|
|
84
87
|
4. 사이드바의 **기본 정보**로 이동하여 **서명 비밀**을 복사하세요.
|
|
@@ -123,12 +126,72 @@ Slack 앱에는 하나의 이벤트 API 요청 URL가 있습니다. 동일한 Sl
|
|
|
123
126
|
|
|
124
127
|
### 팁
|
|
125
128
|
|
|
126
|
-
- **채널 멘션** —
|
|
127
|
-
- **DM** —
|
|
128
|
-
-
|
|
129
|
+
- **채널 멘션** — 작업을 시작할 때 @mention을 사용합니다. 멘션 없는 답글은 같은 스레드에 활성 작업이 있을 때만 이어집니다.
|
|
130
|
+
- **DM** — 허용되는 개인 DM은 비공개 대화이며 확인된 조직 구성원 또는 연결된 Slack 신원이 필요합니다.
|
|
131
|
+
- **신원** — DM은 확인된 Slack 이메일을 같은 앱 사용자에 연결할 수 있으며 관리 채널은 자체 서비스 신원과 정책을 사용합니다.
|
|
129
132
|
- **프로덕션 허용 목록** — `SLACK_ALLOWED_TEAM_IDS`를 설정하고 공유 Slack 앱의 경우 `SLACK_ALLOWED_API_APP_IDS`를 설정하여 예상치 못한 작업 공간에서 유효한 서명 비밀을 재사용할 수 없도록 합니다.
|
|
130
133
|
- **Clips 앱이 펼쳐집니다** — 설치 가능한 Agent-Native Slack용 클립은 `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` 및 `/api/slack/oauth/callback`를 사용합니다. 연결된 각 Slack 작업 공간은 `app_secrets`에서 자체 암호화된 봇 토큰을 얻습니다. `SLACK_BOT_TOKEN`는 레거시 단일 작업공간 대체일 뿐입니다.
|
|
131
134
|
|
|
135
|
+
### 관리형 Add to Slack
|
|
136
|
+
|
|
137
|
+
관리형 OAuth가 권장 설정입니다. **설정 → 메시징**에서 **Agent manifest**를 선택해
|
|
138
|
+
호스트별 `agent-native-slack-manifest.json`을 다운로드한 뒤 Slack의 **App Manifest**에서
|
|
139
|
+
가져오세요. 이 매니페스트는 현재 `agent_view` 환경과 DM을 위한 쓰기 가능한 **Messages**
|
|
140
|
+
탭을 활성화합니다. 다음 Bot Token Scopes가 포함되었는지 확인하세요.
|
|
141
|
+
|
|
142
|
+
앱 아이콘은 매니페스트에 포함되지 않습니다. Agents 선택 화면이 제품 브랜딩과 일치하도록
|
|
143
|
+
**Basic Information → Display Information**에서 Agent Native 아이콘을 업로드하세요. 앱의 공개
|
|
144
|
+
`icon-512.svg`를 원본으로 사용하고 필요하면 Slack이 지원하는 업로드 형식으로 변환할 수 있습니다.
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
assistant:write
|
|
148
|
+
app_mentions:read
|
|
149
|
+
channels:history
|
|
150
|
+
channels:read
|
|
151
|
+
chat:write
|
|
152
|
+
files:read
|
|
153
|
+
groups:history
|
|
154
|
+
groups:read
|
|
155
|
+
im:history
|
|
156
|
+
im:read
|
|
157
|
+
mpim:history
|
|
158
|
+
mpim:read
|
|
159
|
+
pins:read
|
|
160
|
+
reactions:read
|
|
161
|
+
users:read
|
|
162
|
+
users:read.email
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
OAuth Redirect URL은
|
|
166
|
+
`https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`,
|
|
167
|
+
Event Subscriptions Request URL은
|
|
168
|
+
`https://your-app.example.com/_agent-native/integrations/slack/webhook`,
|
|
169
|
+
Interactivity Request URL은
|
|
170
|
+
`https://your-app.example.com/_agent-native/integrations/slack/interactions`로 설정합니다.
|
|
171
|
+
`app_home_opened`, `app_context_changed`, `app_mention`, `message.channels`,
|
|
172
|
+
`message.groups`, `message.im`, `message.mpim`을 구독하세요.
|
|
173
|
+
`SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET`을
|
|
174
|
+
설정한 뒤 **설정 → 메시징**에서 **Add to Slack**을 선택합니다. 설치별 토큰은
|
|
175
|
+
암호화되고 대화 키는 작업 공간, 앱, 채널, 스레드별로 분리됩니다.
|
|
176
|
+
|
|
177
|
+
매니페스트, 범위, 이벤트, Agent view 또는 Messages 탭을 변경한 뒤에는 Slack 앱을 다시
|
|
178
|
+
설치하세요. `app_home_opened`는 DM 열기를 감지하고, `app_context_changed`는 현재 보고 있는
|
|
179
|
+
Slack 컨텍스트를 제공하며, `message.im`은 DM을 전달합니다. Slack 관리자는 설치된 에이전트를
|
|
180
|
+
조직 전체에서 숨길 수 있고, 각 사용자는 자신의 상단 바에서 숨길 수 있습니다. 설치에 성공했지만
|
|
181
|
+
에이전트가 보이지 않으면 이 표시 설정을 확인하거나 **Tools → Apps**에서 여세요.
|
|
182
|
+
|
|
183
|
+
개인 Slack DM은 확인된 Agent Native 조직 구성원이나 이미 연결된 Slack 신원에서만
|
|
184
|
+
허용됩니다. 채널 서비스 주체의 정책과 예산은 이 개인 신원과 별도로 적용됩니다.
|
|
185
|
+
|
|
186
|
+
멘션 없는 답글은 실행 중인 같은 스레드만 이어가며 일반 채널 대화는 에이전트를
|
|
187
|
+
실행하지 않습니다. 제한된 컨텍스트에는 리액션과 파일 참조가 포함되고 네이티브
|
|
188
|
+
카드는 계획, 진행률, 취소, 승인/거부를 표시합니다. DM은 개인 ID를, 관리 채널은
|
|
189
|
+
명시적인 서비스 ID와 게스트, Slack Connect, 모델 정책을 사용합니다. 채널 메모리는
|
|
190
|
+
명시적인 요청으로만 저장하거나 삭제되며 자동 저장되지 않습니다. 채널에서 만든
|
|
191
|
+
루틴은 같은 Slack 대상으로 결과를 보냅니다. 조직, 요청자, 채널의 일별 또는 월별
|
|
192
|
+
예산은 전체 감사 계보와 함께 적용됩니다. `assistant:write`는 Agent View 컨텍스트 이벤트를
|
|
193
|
+
활성화하고, `chat:write`는 답글과 실시간 상태 업데이트를 처리합니다.
|
|
194
|
+
|
|
132
195
|
## 텔레그램 설정 {#telegram}
|
|
133
196
|
|
|
134
197
|
### 필요한 것
|
|
@@ -438,7 +501,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
438
501
|
| 이메일 | `EMAIL_AGENT_ADDRESS`와 `RESEND_API_KEY` 또는 `SENDGRID_API_KEY` 중 하나 | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
439
502
|
| 왓츠앱 | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
440
503
|
|
|
441
|
-
|
|
504
|
+
통합 자격 증명은 먼저 통합 소유자의 범위 지정 시크릿(사용자, 조직, 그다음 워크스페이스)에서 확인됩니다. 배포 환경 변수는 로컬 또는 의도적인 단일 테넌트 설치를 위한 대체 수단입니다. 설정 UI는 범위 지정 시크릿을 저장하며, 값이 브라우저로 반환되거나 소스 코드에 저장되지는 않습니다.
|
|
505
|
+
|
|
506
|
+
기본 제공 런타임 어댑터는 **Slack**, **Telegram**, **WhatsApp Cloud API**, 그리고 공급자 webhook 이메일(Resend 또는 SendGrid)입니다. 검증된 어댑터를 구현하고 등록하기 전까지 Discord와 Microsoft Teams는 연결할 수 없습니다.
|
|
442
507
|
|
|
443
508
|
### 스레딩 및 ID {#threading-and-identity}
|
|
444
509
|
|
|
@@ -484,13 +549,13 @@ import type {
|
|
|
484
549
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
485
550
|
|
|
486
551
|
const myAdapter: PlatformAdapter = {
|
|
487
|
-
platform: "
|
|
488
|
-
label: "
|
|
552
|
+
platform: "my-chat",
|
|
553
|
+
label: "My Chat",
|
|
489
554
|
|
|
490
555
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
491
556
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
492
557
|
return [
|
|
493
|
-
{ key: "
|
|
558
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
494
559
|
];
|
|
495
560
|
},
|
|
496
561
|
|
|
@@ -510,10 +575,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
510
575
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
511
576
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
512
577
|
return {
|
|
513
|
-
platform: "
|
|
578
|
+
platform: "my-chat",
|
|
514
579
|
externalThreadId: "channel-or-thread-id",
|
|
515
580
|
text: "the user's message",
|
|
516
|
-
senderId: "
|
|
581
|
+
senderId: "my-chat-user-id",
|
|
517
582
|
platformContext: { channelId: "channel-id" },
|
|
518
583
|
timestamp: Date.now(),
|
|
519
584
|
};
|
|
@@ -541,10 +606,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
541
606
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
542
607
|
async getStatus(baseUrl?: string) {
|
|
543
608
|
return {
|
|
544
|
-
platform: "
|
|
545
|
-
label: "
|
|
609
|
+
platform: "my-chat",
|
|
610
|
+
label: "My Chat",
|
|
546
611
|
enabled: true,
|
|
547
|
-
configured: !!process.env.
|
|
612
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
548
613
|
};
|
|
549
614
|
},
|
|
550
615
|
};
|
|
@@ -77,6 +77,7 @@ Loom + Granola + Wispr Flow가 하나의 앱으로 통합되었다고 생각해
|
|
|
77
77
|
## 그것으로 무엇을 할 수 있나요
|
|
78
78
|
|
|
79
79
|
- **내장 레코더, 웹캠 오버레이, 오디오 캡처 및 일시 중지/자르기를 사용하여 화면을 녹화**하세요.
|
|
80
|
+
- **공개 Loom 동영상을 가져오세요.** 웹에서 **녹화 → Loom 가져오기**를 선택한 다음 Loom 공유 또는 삽입 URL을 붙여넣으세요. Clips는 라이브러리에 사본을 저장하고, 공개 트랜스크립트가 있으면 가져옵니다.
|
|
80
81
|
- **캘린더에서 회의를 캡처하세요.** Google Calendar를 연결하고 사이드바에서 예정된 회의를 확인하고 원하는 회의를 기록하세요. 실시간 기록과 AI 요약, 글머리 기호 메모, 작업 항목이 끝나는 순간 바로 받아보실 수 있습니다.
|
|
81
82
|
- **푸시 투 토크 받아쓰기.** 컴퓨터에서 Fn을 누른 채 말을 하면 정리된 텍스트가 사용 중인 앱에 드롭됩니다. 모든 받아쓰기는 원본과 AI 정리 버전이 나란히 검색 가능한 기록에 보관됩니다.
|
|
82
83
|
- **모든 녹음에 대해 자동 생성된 제목, 요약 및 챕터 마커**를 받으세요. 상담원이 이를 채우고 최신 상태로 유지합니다.
|
|
@@ -89,6 +89,7 @@ Design은 에이전트 기반 HTML 프로토타이핑 스튜디오입니다. 에
|
|
|
89
89
|
## 그것으로 무엇을 할 수 있나요
|
|
90
90
|
|
|
91
91
|
- **완전한 프로토타입을 생성합니다.** 필요한 화면이나 페이지를 설명하면 상담원이 Tailwind 스타일과 Alpine interactions를 사용하여 작동하는 HTML 문서를 만듭니다.
|
|
92
|
+
- **재사용 가능한 템플릿에서 시작하세요.** 광고, 원페이지, 랜딩 페이지 등에 맞는 크기의 템플릿을 선택하거나 인라인 디자인을 템플릿으로 저장할 수 있습니다. 프롬프트는 잠기지 않은 내용만 조정하고 잠긴 로고와 배경은 그대로 유지합니다.
|
|
92
93
|
- **변형을 비교하세요.** 여러 방향으로 시작하여 가장 강력한 방향을 선택한 다음 계속해서 개선하세요.
|
|
93
94
|
- **시각적으로 조정하세요.** 일반적인 변경 사항에는 내장된 조정 컨트롤을 사용하거나 상담원에게 복사, 레이아웃, 색상, 간격 및 상호 작용 업데이트를 요청하세요.
|
|
94
95
|
- **디자인 시스템을 적용합니다.** 디자인 시스템 기본 설정을 저장하고 재사용하여 생성된 작업이 귀하의 브랜드에 더 가깝게 유지됩니다.
|
|
@@ -11,6 +11,15 @@ Se você usou QuickBooks Online, você viu o modelo: QBO fornece um produto cont
|
|
|
11
11
|
|
|
12
12
|
O enquadramento é importante: uma extensão não é uma sandbox genérica do tipo "faça o que quiser". É um **miniaplicativo que estende um modelo específico** — Mail, Analytics, Calendar, Clips, Design — e usa o actions e os dados desse modelo. Uma extensão Mail lê e-mails. Uma extensão do Analytics lê as métricas de um painel. Uma extensão do Calendário atua no evento aberto. Eles se sentem parte do produto hospedeiro porque _são_ parte do produto hospedeiro.
|
|
13
13
|
|
|
14
|
+
> **As extensões adicionam interface; elas não reescrevem a interface do
|
|
15
|
+
> aplicativo host.** Uma extensão é exibida em sua própria página ou em um
|
|
16
|
+
> [slot](#slots) nomeado exposto pelo modelo. Ela não pode inserir elementos em
|
|
17
|
+
> componentes nativos arbitrários — por exemplo, ao lado de cada participante
|
|
18
|
+
> no Calendário — a menos que o modelo exponha um slot nesse local. Para uma
|
|
19
|
+
> personalização mais profunda, peça ao agente para editar o código-fonte do
|
|
20
|
+
> modelo. A personalização completa do código é um recurso central do Agent
|
|
21
|
+
> Native; as extensões são a camada rápida, sem implantação.
|
|
22
|
+
|
|
14
23
|
Três coisas fazem as extensões funcionarem:
|
|
15
24
|
|
|
16
25
|
- **Sem código, sem implantação.** O agente os grava e eles ficam ativos em segundos. Armazenado no banco de dados, não no repositório.
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Mensagens"
|
|
3
|
-
description: "Fale com seu agente
|
|
3
|
+
description: "Fale com seu agente pelo Slack, Microsoft Teams, interações do Discord, e-mail, Telegram ou WhatsApp."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Mensagens
|
|
7
7
|
|
|
8
|
-
Conecte seu agente ao Slack, e-mail, Telegram ou WhatsApp
|
|
8
|
+
Conecte seu agente ao Slack, Microsoft Teams, interações do Discord, e-mail, Telegram ou WhatsApp. É o mesmo agente, com a mesma memória, ferramentas e histórico.
|
|
9
|
+
|
|
10
|
+
> **Escopo exato:** o Teams valida os JWTs oficiais do Bot Framework e responde na conversa original. O Discord oferece comandos de barra por interações HTTP assinadas com Ed25519 e confirmação adiada; mensagens comuns de servidor e DMs ainda exigem um runtime Gateway. O Telegram preserva `message_thread_id`, e o WhatsApp usa o `wamid` recebido em respostas contextuais.
|
|
11
|
+
>
|
|
12
|
+
> O Teams exige `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD` e `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`. O Discord exige `DISCORD_APPLICATION_ID` e `DISCORD_PUBLIC_KEY`. O Telegram também exige `TELEGRAM_WEBHOOK_SECRET`, e o WhatsApp, `WHATSAPP_APP_SECRET`.
|
|
9
13
|
|
|
10
14
|
> **Usando o modelo Dispatch?** Tudo isso está configurado para você em **Configurações → Mensagens**. Clique para conectar cada plataforma — você não precisa ler o restante desta página, a menos que esteja personalizando ou construindo seu próprio modelo. Consulte [Dispatch](/docs/dispatch) ou [Dispatch template reference](/docs/template-dispatch).
|
|
11
15
|
|
|
@@ -78,7 +82,6 @@ Conecte seu agente ao Slack, e-mail, Telegram ou WhatsApp para que você possa c
|
|
|
78
82
|
- `chat:write` — permite que o agente envie mensagens
|
|
79
83
|
- `app_mentions:read` — permite que o agente veja quando ele é @mencionado (opcional)
|
|
80
84
|
- `im:history` — permite que o agente leia mensagens diretas enviadas a ele
|
|
81
|
-
- `assistant:write` — opcional; permite que Slack mostre o status nativo "está pensando..." em threads assistentes
|
|
82
85
|
- `users:read.email` — opcional; ajuda modelos como o Mail a verificar o e-mail do remetente Slack quanto à identidade da fila de rascunho
|
|
83
86
|
3. Clique em **Instalar no Workspace** na parte superior da página. Slack lhe dará um **Token de usuário de bot OAuth** que começa com `xoxb-`. Copie.
|
|
84
87
|
4. Acesse **Informações básicas** na barra lateral e copie o **Segredo de assinatura**.
|
|
@@ -123,12 +126,80 @@ e eventos `link_shared` para o manipulador de desdobramento de clipes.
|
|
|
123
126
|
|
|
124
127
|
### Dicas
|
|
125
128
|
|
|
126
|
-
- **Menções ao canal** — o
|
|
127
|
-
- **
|
|
128
|
-
- **
|
|
129
|
+
- **Menções ao canal** — use uma @menção para iniciar o trabalho. Respostas sem menção só continuam enquanto esse mesmo tópico tiver trabalho ativo.
|
|
130
|
+
- **Mensagens diretas** — as mensagens diretas pessoais aceitas são conversas privadas e exigem um membro verificado da organização ou uma identidade Slack vinculada.
|
|
131
|
+
- **Identidade** — DMs podem associar um e-mail Slack verificado ao mesmo usuário do app; canais gerenciados usam sua identidade de serviço e política.
|
|
129
132
|
- **Listas de permissões de produção** — defina `SLACK_ALLOWED_TEAM_IDS` e, para aplicativos Slack compartilhados, `SLACK_ALLOWED_API_APP_IDS` para que um segredo de assinatura válido não possa ser reutilizado por um espaço de trabalho inesperado.
|
|
130
133
|
- **O aplicativo Clips é aberto** — Agent-Native instalável Os clipes para Slack usam `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` e `/api/slack/oauth/callback`. Cada espaço de trabalho Slack conectado obtém seu próprio token de bot criptografado em `app_secrets`; `SLACK_BOT_TOKEN` é apenas um substituto herdado de espaço de trabalho único.
|
|
131
134
|
|
|
135
|
+
### Add to Slack gerenciado
|
|
136
|
+
|
|
137
|
+
OAuth gerenciado é a configuração recomendada. Em **Configurações → Mensagens**,
|
|
138
|
+
selecione **Agent manifest** para baixar o arquivo específico do host
|
|
139
|
+
`agent-native-slack-manifest.json` e importe-o em **App Manifest** no Slack.
|
|
140
|
+
O manifesto ativa a experiência `agent_view` atual e uma aba **Messages** gravável
|
|
141
|
+
para mensagens diretas. Confirme estes escopos de bot:
|
|
142
|
+
|
|
143
|
+
O ícone do aplicativo não faz parte do manifesto. Em **Basic Information →
|
|
144
|
+
Display Information**, envie o ícone do Agent Native para que o seletor de Agents
|
|
145
|
+
corresponda à marca do produto. Você pode usar o `icon-512.svg` público do
|
|
146
|
+
aplicativo como origem e convertê-lo para um formato de upload aceito pelo Slack,
|
|
147
|
+
se necessário.
|
|
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
|
+
Defina 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
|
+
Assine `app_home_opened`, `app_context_changed`, `app_mention`,
|
|
175
|
+
`message.channels`, `message.groups`, `message.im` e `message.mpim`.
|
|
176
|
+
Configure `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET` e
|
|
177
|
+
`SLACK_SIGNING_SECRET`; depois escolha **Add to Slack** em
|
|
178
|
+
**Configurações → Mensagens**. Cada instalação mantém seu token criptografado e
|
|
179
|
+
separa chaves de conversa por espaço, app, canal e tópico.
|
|
180
|
+
|
|
181
|
+
Reinstale o aplicativo Slack depois de alterar o manifesto, os escopos, os
|
|
182
|
+
eventos, a Agent view ou a aba Messages. `app_home_opened` detecta quando a DM é
|
|
183
|
+
aberta, `app_context_changed` fornece o contexto atual do Slack e `message.im`
|
|
184
|
+
entrega as mensagens diretas. Administradores do Slack podem ocultar agentes
|
|
185
|
+
instalados para toda a organização, e cada usuário pode ocultá-los da própria
|
|
186
|
+
barra superior. Se a instalação funcionar mas o agente não aparecer, verifique
|
|
187
|
+
esses controles ou abra-o em **Tools → Apps**.
|
|
188
|
+
|
|
189
|
+
Mensagens diretas pessoais do Slack só são aceitas de um membro verificado da
|
|
190
|
+
organização Agent Native ou de uma identidade Slack já vinculada. As políticas e
|
|
191
|
+
os orçamentos do principal de serviço do canal são separados.
|
|
192
|
+
|
|
193
|
+
Respostas sem menção só orientam um tópico com tarefa ativa; o restante da conversa
|
|
194
|
+
do canal não chama o agente. Um contexto limitado inclui reações e referências de
|
|
195
|
+
arquivo, e um cartão nativo mostra plano, progresso, cancelar e aprovar/negar. DMs
|
|
196
|
+
usam identidade pessoal; canais gerenciados usam uma identidade de serviço explícita
|
|
197
|
+
e políticas de convidados, Slack Connect e modelo. A memória do canal é explícita,
|
|
198
|
+
isolada e nunca automática. Rotinas criadas no canal retornam ao mesmo Slack.
|
|
199
|
+
Orçamentos diários ou mensais por organização, solicitante e canal são aplicados com
|
|
200
|
+
linhagem completa de auditoria. `assistant:write` ativa os eventos de contexto do
|
|
201
|
+
Agent View; `chat:write` possibilita respostas e atualizações de status ao vivo.
|
|
202
|
+
|
|
132
203
|
## Configurar o Telegram {#telegram}
|
|
133
204
|
|
|
134
205
|
### O que você precisa
|
|
@@ -435,7 +506,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
506
|
| E-mail | `EMAIL_AGENT_ADDRESS`, mais um de `RESEND_API_KEY` ou `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
507
|
| WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
508
|
|
|
438
|
-
|
|
509
|
+
As credenciais de integração são resolvidas primeiro a partir dos segredos com escopo do proprietário da integração (usuário, organização e depois espaço de trabalho); variáveis de ambiente de implantação são um fallback para instalações locais ou deliberadamente de tenant único. A UI de configuração salva segredos com escopo; os valores nunca retornam ao navegador nem são armazenados no código-fonte.
|
|
510
|
+
|
|
511
|
+
Os adaptadores de runtime integrados são **Slack**, **Telegram**, **WhatsApp Cloud API** e e-mail por webhook de provedor (Resend ou SendGrid). Discord e Microsoft Teams não são conectáveis até que um adaptador verificado seja implementado e registrado.
|
|
439
512
|
|
|
440
513
|
### Rodeamento e identidade {#threading-and-identity}
|
|
441
514
|
|
|
@@ -481,13 +554,13 @@ import type {
|
|
|
481
554
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
555
|
|
|
483
556
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
557
|
+
platform: "my-chat",
|
|
558
|
+
label: "My Chat",
|
|
486
559
|
|
|
487
560
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
561
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
562
|
return [
|
|
490
|
-
{ key: "
|
|
563
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
564
|
];
|
|
492
565
|
},
|
|
493
566
|
|
|
@@ -507,10 +580,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
580
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
581
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
582
|
return {
|
|
510
|
-
platform: "
|
|
583
|
+
platform: "my-chat",
|
|
511
584
|
externalThreadId: "channel-or-thread-id",
|
|
512
585
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
586
|
+
senderId: "my-chat-user-id",
|
|
514
587
|
platformContext: { channelId: "channel-id" },
|
|
515
588
|
timestamp: Date.now(),
|
|
516
589
|
};
|
|
@@ -538,10 +611,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
611
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
612
|
async getStatus(baseUrl?: string) {
|
|
540
613
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
614
|
+
platform: "my-chat",
|
|
615
|
+
label: "My Chat",
|
|
543
616
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
617
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
618
|
};
|
|
546
619
|
},
|
|
547
620
|
};
|
|
@@ -77,6 +77,7 @@ Pense nos moldes de Loom + Granola + Wispr Flow reunidos em um aplicativo - mas
|
|
|
77
77
|
## O que você pode fazer com isso
|
|
78
78
|
|
|
79
79
|
- **Grave sua tela** com um gravador integrado, sobreposição de webcam, captura de áudio e pausa/corte.
|
|
80
|
+
- **Importe vídeos públicos do Loom.** Na web, selecione **Gravar → Importar Loom** e cole um URL de compartilhamento ou incorporação do Loom. O Clips salva uma cópia na sua biblioteca e importa a transcrição pública quando ela estiver disponível.
|
|
80
81
|
- **Capture reuniões do seu calendário.** Conecte Google Calendar, veja as próximas reuniões na barra lateral e clique em gravar em qualquer uma. Você recebe uma transcrição ao vivo, além de um resumo da IA, notas com marcadores e itens de ação no momento em que termina.
|
|
81
82
|
- **Ditado push-to-talk.** Segure Fn em sua máquina, fale, e o texto limpo será exibido em qualquer aplicativo que você estiver usando. Cada ditado é mantido em um histórico pesquisável com os originais e as versões limpas por IA lado a lado.
|
|
82
83
|
- **Obtenha títulos, resumos e marcadores de capítulo gerados automaticamente** para cada gravação. O agente os preenche e os mantém atualizados.
|
|
@@ -89,6 +89,7 @@ Quando você abre o aplicativo, o protótipo gerado é o centro da área de trab
|
|
|
89
89
|
## O que você pode fazer com isso
|
|
90
90
|
|
|
91
91
|
- **Gere protótipos completos.** Descreva a tela ou página necessária e o agente criará um documento HTML funcional com estilo Tailwind e interactions Alpine.
|
|
92
|
+
- **Comece com modelos reutilizáveis.** Escolha um formato dimensionado para anúncios, páginas únicas ou páginas de destino, ou salve qualquer design integrado como modelo. O prompt ajusta apenas o conteúdo desbloqueado e mantém logotipos e fundos bloqueados.
|
|
92
93
|
- **Compare variantes.** Comece com várias direções, escolha a mais forte e continue refinando.
|
|
93
94
|
- **Ajuste visual.** Use os controles de ajuste integrados para alterações comuns ou peça ao agente atualizações de cópia, layout, cor, espaçamento e interação.
|
|
94
95
|
- **Aplique sistemas de design.** Salve e reutilize as preferências do sistema de design para que o trabalho gerado fique mais próximo de sua marca.
|
|
@@ -11,6 +11,12 @@ description: "用户在模板内构建的迷你应用程序 - Analytics 中的
|
|
|
11
11
|
|
|
12
12
|
框架很重要:扩展不是通用的“做你想做的”沙箱。它是一个**迷你应用程序,扩展了特定模板**(邮件、分析、日历、剪辑、设计)并使用该模板的 actions 和数据。邮件扩展可以读取电子邮件。 Analytics 扩展读取仪表板的指标。日历扩展作用于打开的事件。它们感觉像是主机产品的一部分,因为它们*是*主机产品的一部分。
|
|
13
13
|
|
|
14
|
+
> **扩展用于添加 UI,而不会重写宿主应用的 UI。** 扩展会显示在自己的页面中,
|
|
15
|
+
> 或显示在模板公开的命名[插槽](#slots)中。它不能向任意原生组件中注入元素
|
|
16
|
+
> ——例如显示在日历的每位参与者旁边——除非模板在该位置公开了插槽。
|
|
17
|
+
> 如需更深入的自定义,请让代理编辑模板的源代码。完整的代码自定义是 Agent
|
|
18
|
+
> Native 的核心能力;扩展则是快速、无需部署的自定义层。
|
|
19
|
+
|
|
14
20
|
使扩展发挥作用的三件事:
|
|
15
21
|
|
|
16
22
|
- **无需代码,无需部署。** 代理编写它们并且它们在几秒钟内即可生效。存储在数据库中,而不是存储库中。
|