@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,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
|
- **无需代码,无需部署。** 代理编写它们并且它们在几秒钟内即可生效。存储在数据库中,而不是存储库中。
|
|
@@ -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 交互执行斜杠命令和延迟确认;普通服务器消息和私信仍需要 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` — 可选;帮助 Mail 等模板验证 Slack 发件人电子邮件的草稿队列身份
|
|
83
86
|
3. 单击该页面顶部的“**安装到工作区**”。 Slack 将为您提供一个以 `xoxb-` 开头的 **机器人用户 OAuth 令牌**。复制它。
|
|
84
87
|
4. 转到侧边栏中的**基本信息**并复制**签名密钥**。
|
|
@@ -123,12 +126,70 @@ Slack 应用程序有一个事件 API 请求 URL。如果同一个 Slack 应用
|
|
|
123
126
|
|
|
124
127
|
### 提示
|
|
125
128
|
|
|
126
|
-
- **频道提及** -
|
|
127
|
-
- **私信** —
|
|
128
|
-
-
|
|
129
|
+
- **频道提及** - 使用 @mention 开始工作。只有同一线程仍有活跃任务时,未提及机器人的回复才会继续任务。
|
|
130
|
+
- **私信** — 已接受的个人私信属于私密会话,并要求已验证的组织成员或已关联的 Slack 身份。
|
|
131
|
+
- **身份** — 私信可把经过验证的 Slack 邮箱映射到同一应用用户;托管频道使用自己的服务身份和策略。
|
|
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。在**设置 → 消息**中选择 **Agent manifest**,下载当前主机专用的
|
|
138
|
+
`agent-native-slack-manifest.json`,然后从 Slack 的 **App Manifest** 导入。
|
|
139
|
+
该清单会启用当前的 `agent_view` 体验,以及可写入的 **Messages** 私信标签页。
|
|
140
|
+
请确认包含以下 Bot Token Scopes:
|
|
141
|
+
|
|
142
|
+
应用图标不包含在清单中。请在 **Basic Information → Display Information** 中上传
|
|
143
|
+
Agent Native 图标,使 Agents 选择器与产品品牌一致。可以使用应用公开的
|
|
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`、
|
|
172
|
+
`message.channels`、`message.groups`、`message.im` 和 `message.mpim`。
|
|
173
|
+
配置 `SLACK_CLIENT_ID`、`SLACK_CLIENT_SECRET` 和
|
|
174
|
+
`SLACK_SIGNING_SECRET` 后,在**设置 → 消息**中点击 **Add to Slack**。
|
|
175
|
+
每个安装使用独立的加密令牌,并按工作区、应用、频道和线程隔离会话键。
|
|
176
|
+
|
|
177
|
+
更改清单、权限范围、事件、Agent view 或 Messages 标签页后,请重新安装 Slack 应用。
|
|
178
|
+
`app_home_opened` 用于检测私信是否打开,`app_context_changed` 提供当前查看的 Slack
|
|
179
|
+
上下文,`message.im` 负责传递私信。Slack 管理员可以为整个组织隐藏已安装的代理,
|
|
180
|
+
每位成员也可以从自己的顶部栏隐藏代理。如果安装成功但代理未显示,请检查这些显示
|
|
181
|
+
设置,或从 **Tools → Apps** 打开。
|
|
182
|
+
|
|
183
|
+
个人 Slack 私信只接受已验证的 Agent Native 组织成员,或已关联到该成员的 Slack
|
|
184
|
+
身份。频道服务主体的策略和预算与个人身份分开管理。
|
|
185
|
+
|
|
186
|
+
未提及机器人的回复只会继续活跃线程;普通频道聊天不会调用代理。有限上下文包含
|
|
187
|
+
反应和文件引用,原生任务卡显示计划、进度、取消和批准/拒绝。私信使用个人身份;
|
|
188
|
+
托管频道使用明确的服务身份以及访客、Slack Connect 和模型策略。频道记忆仅在明确
|
|
189
|
+
要求时保存或删除,绝不自动记忆。在频道中创建的例程会把结果发送回同一 Slack。
|
|
190
|
+
组织、请求者和频道的每日或每月预算会随完整审计链一起执行。`assistant:write`
|
|
191
|
+
启用 Agent View 上下文事件,`chat:write` 用于回复和实时状态更新。
|
|
192
|
+
|
|
132
193
|
## 设置 Telegram {#telegram}
|
|
133
194
|
|
|
134
195
|
### 您需要什么
|
|
@@ -435,7 +496,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
496
|
| 电子邮件 | `EMAIL_AGENT_ADDRESS`,加上 `RESEND_API_KEY` 或 `SENDGRID_API_KEY` 之一 | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
497
|
| WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
498
|
|
|
438
|
-
|
|
499
|
+
集成凭证首先从集成所有者的作用域密钥中解析(用户、组织、再到工作区);部署环境变量是本地或有意单租户部署的后备方案。设置 UI 会保存作用域密钥;值绝不会返回给浏览器,也不会存入源代码。
|
|
500
|
+
|
|
501
|
+
内置运行时适配器包括 **Slack**、**Telegram**、**WhatsApp Cloud API** 和提供商 webhook 电子邮件(Resend 或 SendGrid)。在实现并注册经过验证的适配器之前,Discord 和 Microsoft Teams 不可连接。
|
|
439
502
|
|
|
440
503
|
### 线程和身份 {#threading-and-identity}
|
|
441
504
|
|
|
@@ -481,13 +544,13 @@ import type {
|
|
|
481
544
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
545
|
|
|
483
546
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
547
|
+
platform: "my-chat",
|
|
548
|
+
label: "My Chat",
|
|
486
549
|
|
|
487
550
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
551
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
552
|
return [
|
|
490
|
-
{ key: "
|
|
553
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
554
|
];
|
|
492
555
|
},
|
|
493
556
|
|
|
@@ -507,10 +570,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
570
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
571
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
572
|
return {
|
|
510
|
-
platform: "
|
|
573
|
+
platform: "my-chat",
|
|
511
574
|
externalThreadId: "channel-or-thread-id",
|
|
512
575
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
576
|
+
senderId: "my-chat-user-id",
|
|
514
577
|
platformContext: { channelId: "channel-id" },
|
|
515
578
|
timestamp: Date.now(),
|
|
516
579
|
};
|
|
@@ -538,10 +601,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
601
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
602
|
async getStatus(baseUrl?: string) {
|
|
540
603
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
604
|
+
platform: "my-chat",
|
|
605
|
+
label: "My Chat",
|
|
543
606
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
607
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
608
|
};
|
|
546
609
|
},
|
|
547
610
|
};
|
|
@@ -77,6 +77,7 @@ search: "Clips 浏览器日志 开发人员日志 控制台日志 网络日志
|
|
|
77
77
|
## 你可以用它做什么
|
|
78
78
|
|
|
79
79
|
- **使用内置录音机、网络摄像头覆盖、音频捕获和暂停/修剪来录制屏幕**。
|
|
80
|
+
- **导入公开的 Loom 视频。** 在网页端选择 **录制 → 导入 Loom**,然后粘贴 Loom 分享或嵌入 URL。Clips 会将副本保存到你的资料库,并在可用时导入公开的转录文本。
|
|
80
81
|
- **从日历中捕获会议。** 连接 Google Calendar,在侧边栏中查看即将举行的会议,并在任何一个会议上进行记录。您将在结束时获得实时记录以及 AI 摘要、项目符号注释和行动项目。
|
|
81
82
|
- **一键通听写。** 按住机器上的 Fn,说话,清理后的文本就会放入您正在使用的任何应用程序中。每个听写都保存在可搜索的历史记录中,原始版本和人工智能清理的版本并排保存。
|
|
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,12 @@ description: "使用者在範本內建置的迷你應用程式 - Analytics 中
|
|
|
11
11
|
|
|
12
12
|
框架很重要:擴充功能不是通用的“做你想做的”沙箱。它是一個**迷你應用程式,擴充功能了特定範本**(郵件、分析、行事曆、剪輯、設計)並使用該範本的 actions 和資料。郵件擴充功能可以讀取電子郵件。 Analytics 擴充功能讀取儀表板的指標。行事曆擴充功能作用於開啟的事件。它們感覺像是主機產品的一部分,因為它們*是*主機產品的一部分。
|
|
13
13
|
|
|
14
|
+
> **擴充功能用來新增 UI,而不會重寫主應用程式的 UI。** 擴充功能會顯示在
|
|
15
|
+
> 自己的頁面中,或顯示在範本公開的具名[插槽](#slots)中。它無法將元素注入
|
|
16
|
+
> 任意原生元件中——例如顯示在行事曆的每位與會者旁邊——除非範本在該位置
|
|
17
|
+
> 公開了插槽。如需更深入的自訂,請讓代理編輯範本的原始碼。完整的程式碼
|
|
18
|
+
> 自訂是 Agent Native 的核心能力;擴充功能則是快速、無需部署的自訂層。
|
|
19
|
+
|
|
14
20
|
使擴充功能發揮作用的三件事:
|
|
15
21
|
|
|
16
22
|
- **無需程式碼,無需部署。** 代理編寫它們並且它們在幾秒鐘內即可生效。儲存在資料庫中,而不是儲存庫中。
|
|
@@ -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 互動執行斜線命令和延遲確認;一般伺服器訊息和私訊仍需要 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` — 可選;幫助 Mail 等範本驗證 Slack 發件人電子郵件的草稿佇列身分
|
|
83
86
|
3. 點選該頁面頂部的“**安裝到工作區**”。 Slack 將為您提供一個以 `xoxb-` 開頭的 **機器人使用者 OAuth 權杖**。複製它。
|
|
84
87
|
4. 轉到側邊欄中的**基本資訊**並複製**簽名金鑰**。
|
|
@@ -123,12 +126,70 @@ Slack 應用程式有一個事件 API 請求 URL。如果同一個 Slack 應用
|
|
|
123
126
|
|
|
124
127
|
### 提示
|
|
125
128
|
|
|
126
|
-
- **頻道提及** -
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
+
- **頻道提及** - 使用 @mention 開始工作。只有同一對話串仍有進行中的任務時,未提及機器人的回覆才會繼續任務。
|
|
130
|
+
- **私訊** — 已接受的個人私訊屬於私密對話,並要求已驗證的組織成員或已連結的 Slack 身分。
|
|
131
|
+
- **身分** — 私訊可把驗證過的 Slack 電子郵件對應至同一應用使用者;受管理頻道使用自己的服務身分和政策。
|
|
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。在**設定 → 訊息**中選擇 **Agent manifest**,下載目前主機專用的
|
|
138
|
+
`agent-native-slack-manifest.json`,再從 Slack 的 **App Manifest** 匯入。
|
|
139
|
+
此清單會啟用目前的 `agent_view` 體驗,以及可寫入的 **Messages** 私訊分頁。
|
|
140
|
+
請確認包含以下 Bot Token Scopes:
|
|
141
|
+
|
|
142
|
+
應用程式圖示不包含在清單中。請在 **Basic Information → Display Information** 上傳
|
|
143
|
+
Agent Native 圖示,讓 Agents 選擇器符合產品品牌。可以使用應用程式公開的
|
|
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`、
|
|
172
|
+
`message.channels`、`message.groups`、`message.im` 和 `message.mpim`。
|
|
173
|
+
設定 `SLACK_CLIENT_ID`、`SLACK_CLIENT_SECRET` 和
|
|
174
|
+
`SLACK_SIGNING_SECRET` 後,在**設定 → 訊息**中點選 **Add to Slack**。
|
|
175
|
+
每個安裝使用獨立的加密權杖,並依工作區、應用、頻道和對話串隔離會話鍵。
|
|
176
|
+
|
|
177
|
+
變更清單、權限範圍、事件、Agent view 或 Messages 分頁後,請重新安裝 Slack 應用程式。
|
|
178
|
+
`app_home_opened` 用來偵測私訊是否開啟,`app_context_changed` 提供目前檢視的 Slack
|
|
179
|
+
內容,`message.im` 負責傳遞私訊。Slack 管理員可以為整個組織隱藏已安裝的代理,
|
|
180
|
+
每位成員也可從自己的頂端列隱藏代理。若安裝成功但未顯示代理,請檢查這些顯示
|
|
181
|
+
設定,或從 **Tools → Apps** 開啟。
|
|
182
|
+
|
|
183
|
+
個人 Slack 私訊只接受已驗證的 Agent Native 組織成員,或已連結到該成員的 Slack
|
|
184
|
+
身分。頻道服務主體的政策與預算會和個人身分分開管理。
|
|
185
|
+
|
|
186
|
+
未提及機器人的回覆只會繼續進行中的對話串;一般頻道聊天不會呼叫代理。有限內容
|
|
187
|
+
包含反應和檔案參照,原生任務卡顯示計畫、進度、取消與核准/拒絕。私訊使用個人
|
|
188
|
+
身分;受管理頻道使用明確的服務身分,以及訪客、Slack Connect 和模型政策。
|
|
189
|
+
頻道記憶只在明確要求時儲存或刪除,絕不自動記憶。在頻道中建立的例程會把結果
|
|
190
|
+
送回同一 Slack。組織、請求者與頻道的每日或每月預算會連同完整稽核脈絡一起執行。
|
|
191
|
+
`assistant:write` 會啟用 Agent View 內容事件;`chat:write` 用於回覆與即時狀態更新。
|
|
192
|
+
|
|
132
193
|
## 設定 Telegram {#telegram}
|
|
133
194
|
|
|
134
195
|
### 您需要什麼
|
|
@@ -435,7 +496,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
496
|
| 電子郵件 | `EMAIL_AGENT_ADDRESS`,加上 `RESEND_API_KEY` 或 `SENDGRID_API_KEY` 之一 | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
497
|
| WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
498
|
|
|
438
|
-
|
|
499
|
+
整合憑證會先從整合擁有者的範圍限定密鑰中解析(使用者、組織、再到工作區);部署環境變數是本機或刻意單一租戶部署的後備方案。設定 UI 會儲存範圍限定密鑰;值絕不會傳回瀏覽器,也不會存入來源程式碼。
|
|
500
|
+
|
|
501
|
+
內建執行階段轉接器包含 **Slack**、**Telegram**、**WhatsApp Cloud API** 和提供者 webhook 電子郵件(Resend 或 SendGrid)。在實作並註冊已驗證的轉接器之前,Discord 和 Microsoft Teams 無法連線。
|
|
439
502
|
|
|
440
503
|
### 對話串和身分 {#threading-and-identity}
|
|
441
504
|
|
|
@@ -481,13 +544,13 @@ import type {
|
|
|
481
544
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
545
|
|
|
483
546
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
547
|
+
platform: "my-chat",
|
|
548
|
+
label: "My Chat",
|
|
486
549
|
|
|
487
550
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
551
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
552
|
return [
|
|
490
|
-
{ key: "
|
|
553
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
554
|
];
|
|
492
555
|
},
|
|
493
556
|
|
|
@@ -507,10 +570,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
570
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
571
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
572
|
return {
|
|
510
|
-
platform: "
|
|
573
|
+
platform: "my-chat",
|
|
511
574
|
externalThreadId: "channel-or-thread-id",
|
|
512
575
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
576
|
+
senderId: "my-chat-user-id",
|
|
514
577
|
platformContext: { channelId: "channel-id" },
|
|
515
578
|
timestamp: Date.now(),
|
|
516
579
|
};
|
|
@@ -538,10 +601,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
601
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
602
|
async getStatus(baseUrl?: string) {
|
|
540
603
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
604
|
+
platform: "my-chat",
|
|
605
|
+
label: "My Chat",
|
|
543
606
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
607
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
608
|
};
|
|
546
609
|
},
|
|
547
610
|
};
|
|
@@ -77,6 +77,7 @@ search: "Clips 瀏覽器記錄 開發人員記錄 主控台記錄 網路記錄
|
|
|
77
77
|
## 你可以用它做什麼
|
|
78
78
|
|
|
79
79
|
- **使用內建錄音機、網路攝影機覆蓋、音訊捕獲和暫停/修剪來錄製螢幕**。
|
|
80
|
+
- **匯入公開的 Loom 影片。** 在網頁版選擇 **錄製 → 匯入 Loom**,然後貼上 Loom 分享或嵌入 URL。Clips 會將副本儲存到你的媒體庫,並在可用時匯入公開的逐字稿。
|
|
80
81
|
- **從行事曆中捕獲會議。** 連線 Google Calendar,在側邊欄中檢視即將舉行的會議,並在任何一個會議上進行紀錄。您將在結束時獲得即時紀錄以及 AI 摘要、專案符號註解和行動項目。
|
|
81
82
|
- **一鍵通聽寫。** 按住機器上的 Fn,說話,清理後的文字就會放入您正在使用的任何應用程式中。每個聽寫都儲存在可搜尋的歷史紀錄中,原始版本和人工智慧清理的版本並排儲存。
|
|
82
83
|
- **為每個錄音取得自動產生的標題、摘要和章節標記** - 代理會填寫這些內容並使其保持最新狀態。
|
|
@@ -89,6 +89,7 @@ Design 是一家 Agent-Native HTML 原型工作室。該代理不是分層繪圖
|
|
|
89
89
|
## 你可以用它做什麼
|
|
90
90
|
|
|
91
91
|
- **產生完整的原型。**描述您需要的螢幕或頁面,代理將建立一個具有 Tailwind 樣式和 Alpine interactions 的工作 HTML 檔案。
|
|
92
|
+
- **從可重複使用的範本開始。** 為廣告、單頁文件、到達頁面等選擇固定尺寸的起點,或將任何內嵌設計儲存為範本。提示只會調整副本中未鎖定的內容,鎖定的標誌與背景會保持不變。
|
|
92
93
|
- **比較變體。**從多個方向開始,選取最強的一個,然後繼續完善。
|
|
93
94
|
- **視覺上的調整。**使用內建的調整控制項進行常見更改,或向代理詢問副本、布局、顏色、間距和互動更新。
|
|
94
95
|
- **應用設計系統。**儲存並重用設計系統偏好設定,以便產生的作品更貼近您的品牌。
|