@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
package/corpus/README.md
CHANGED
package/corpus/core/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @agent-native/core
|
|
2
2
|
|
|
3
|
+
## 0.93.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d967304: Add managed multi-workspace Slack OAuth with Agent view and direct messages, team-aware threads, bounded native context, streaming task controls, channel identities, explicit memory, channel routines, and usage governance.
|
|
8
|
+
- d967304: Add verified Microsoft Teams and Discord interaction channel adapters, preserve Telegram topic and WhatsApp contextual-reply identity, and expose exact runtime capabilities in Dispatch setup.
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- d967304: Add Clay's Public API as a constrained provider preset with official API-key authentication, documentation discovery, and hosted-agent guidance.
|
|
13
|
+
- d967304: Add a safe, provider-neutral automation workflow runtime with explicit n8n support metadata and honest Zapier blueprint guidance.
|
|
14
|
+
- d967304: Remove outline-like shadows from shared app and agent main surfaces for a consistently borderless shell.
|
|
15
|
+
- d967304: Allow host apps to observe active shared-composer text and render contextual content above the composer.
|
|
16
|
+
- d967304: Back off browser speech-recognition retries after network failures, and let authenticated app workers reuse the durable Netlify background runtime.
|
|
17
|
+
- d967304: Clarify in docs and agent routing that extensions render on their own pages or in named slots, while deeper host UI customization should continue through the Builder.io Cloud Agent or local source editing flow.
|
|
18
|
+
- d967304: Allow resumable file-upload providers to clean up aborted upload sessions.
|
|
19
|
+
- d967304: Exclude local databases and generated visual plan previews from newly scaffolded apps.
|
|
20
|
+
- d967304: Keep unconnected chat composers stable with an accessible, icon-free AI connection popover.
|
|
21
|
+
- d967304: Point Figma provider API discovery at the current official documentation and explain required scopes and canvas-write limitations.
|
|
22
|
+
- d967304: Render horizontal grid lines in OG images with the same spacing and styling as the vertical lines.
|
|
23
|
+
- d967304: Route opted-in async A2A tasks through Netlify's durable background worker so long analytics queries are not killed by the foreground function timeout.
|
|
24
|
+
- d967304: Avoid false stuck warnings while a durable worker is alive inside its bounded tool window, make retries wait for the prior run to be durably aborted, and keep concurrent progress updates from moving the displayed no-progress clock backward.
|
|
25
|
+
- d967304: Fix a race where a background chat run silently deferred for sweep-based recovery could hit the client's idle timeout before the server redispatched it, surfacing a false "run stopped" error instead of resuming quietly. Queued follow-ups now reattach to the recovering run instead of colliding with it, and terminal continuation conflicts settle pending activity cards so completed or failed chats never retain a working spinner.
|
|
26
|
+
- d967304: Allow the Design local-file bridge to edit existing safe text and code files without relying on a narrow extension allowlist, while continuing to block secrets and binary files.
|
|
27
|
+
- d967304: Apply app final-response guards to delegated A2A turns and resolve Slack sender profiles with request-scoped configured credentials.
|
|
28
|
+
- d967304: Allow design-system indexing callers to fail loudly when inline files exceed size or count limits instead of silently dropping them.
|
|
29
|
+
- d967304: Stop the stuck-run banner's Retry button from aborting a run that still has a live tool call or sub-agent (A2A) `call agent` in flight — a slow provider query or cross-app call can legitimately go minutes without emitting progress, and Retry previously killed that work and re-executed it from scratch. When `AssistantChat`'s new `hasInFlightWork()` reports live work, `RunStuckBanner` hides Retry and offers only an explicit, clearly-labeled Cancel; auto-retry is likewise suppressed. `MultiTabAssistantChat` wires this through automatically.
|
|
30
|
+
- d967304: Scope shared workspace resources and learnings to the active organization, load them for queued Slack and integration turns, and preserve legacy app-wide resources as inherited defaults.
|
|
31
|
+
- d967304: Fix a false `stale_run` failure for background runs holding a long tool call or A2A `call-agent` delegation: the stale-run reaper now grants a bounded grace to a run whose in-flight work is provably still open, even when its heartbeat write itself failed, instead of killing it on a single missed heartbeat window. A genuinely dead run with stuck in-flight work is still failed loudly once the bounded grace elapses. `/runs/active` also now surfaces this signal as `hasInFlightWork` so clients can tell a run with live work apart from one that is truly stuck.
|
|
32
|
+
- d967304: Make Desktop's New action prompt-first: a coding agent now builds and registers local Agent Native apps, remembers the preferred apps folder, starts managed dev servers when opened, keeps the app's sidebar coding tools available for explicitly marked local Desktop previews, and adds native sidebar tab editing, removal, and reordering.
|
|
33
|
+
- d967304: Keep local development auto-login credentials out of terminal output while preserving zero-setup sign-in.
|
|
34
|
+
- d967304: Keep authenticated local Design preview sessions shared across URL-backed screens and proxy same-origin app mutations safely.
|
|
35
|
+
- d967304: Preserve canonical Slack and Telegram request context across A2A delegation, resolve structured intake and domain workflows through workspace instructions and app capabilities, and return verified destination links for saved Content records, Analytics monitors, and published Forms.
|
|
36
|
+
- d967304: Redact provider request audit targets and harden managed integration persistence against concurrent callbacks and SQLite migration failures.
|
|
37
|
+
- d967304: Harden integration tenant isolation, service-principal identity, shared job routing, audit visibility, and usage-budget settlement.
|
|
38
|
+
- d967304: Add a shared integration catalog with accurate built-in messaging metadata and reusable client helpers for integration setup routes.
|
|
39
|
+
- d967304: Surface real remote liveness during cross-app agent calls (call-agent): while the A2A poll waits on another app, each successful poll that reports the remote still working now keeps progress moving, so a slow-but-healthy sub-agent no longer triggers a false "no progress" stuck warning whose Retry button aborts the healthy call and re-runs it from scratch. A hung or unresponsive remote still emits nothing, so the stuck warning correctly appears.
|
|
40
|
+
- d967304: Keep in-memory run aborts successful when durable abort cleanup temporarily fails.
|
|
41
|
+
|
|
42
|
+
## 0.92.12
|
|
43
|
+
|
|
44
|
+
### Patch Changes
|
|
45
|
+
|
|
46
|
+
- 1ecce26: Surface missing LLM credentials and earlier stream errors as failed agent runs instead of successful completions.
|
|
47
|
+
|
|
3
48
|
## 0.92.11
|
|
4
49
|
|
|
5
50
|
### Patch Changes
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Automation connectors"
|
|
3
|
+
description: "Safely connect configured workflow systems without treating them as chat channels or generic provider APIs."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Automation connectors
|
|
7
|
+
|
|
8
|
+
Automation systems coordinate work. They are not messaging channels, and they are not a generic provider-data API.
|
|
9
|
+
|
|
10
|
+
Agent Native's automation connector runtime has two intentionally small directions:
|
|
11
|
+
|
|
12
|
+
- Invoke a **configured external workflow** from an action.
|
|
13
|
+
- Receive an **authenticated callback** from a configured workflow.
|
|
14
|
+
|
|
15
|
+
An app assigns each workflow a stable ID, a connector ID, input/output schemas, response behavior, credentials, timeout/retry limits, idempotency behavior, and capability flags. Agents pass the workflow ID and structured input; they never supply arbitrary target URLs or secret values.
|
|
16
|
+
|
|
17
|
+
## Safety model
|
|
18
|
+
|
|
19
|
+
Outbound workflow definitions use a static HTTPS base URL and static path. The runtime restricts requests to the configured origin, rejects private-network targets and redirects, resolves `${keys.NAME}` server-side, bounds request and response sizes, applies a timeout, retries only transient failures, and redacts resolved values from responses and errors.
|
|
20
|
+
|
|
21
|
+
Workflow callbacks authenticate with either a shared secret, an HMAC-SHA256 signature, or an app-owned provider verifier. Callbacks that start agent work must provide:
|
|
22
|
+
|
|
23
|
+
1. A durable, SQL-backed idempotency claim keyed by the provider event ID.
|
|
24
|
+
2. A durable queue handoff that runs in a fresh execution.
|
|
25
|
+
|
|
26
|
+
The callback returns an acknowledgement quickly. Never run an agent loop inside a webhook request or rely on an in-memory deduplication map.
|
|
27
|
+
|
|
28
|
+
## n8n
|
|
29
|
+
|
|
30
|
+
n8n is runtime-backed through configured Webhook workflows. Agent Native does **not** host or provision n8n.
|
|
31
|
+
|
|
32
|
+
Configure an n8n Webhook node with an explicit URL and one of n8n's supported authentication modes (Header, Basic, or JWT), then register that static URL/origin and the matching Agent Native secret reference. n8n supports immediate responses, final-node responses, and responses via a Respond to Webhook node; model the selected behavior as asynchronous or synchronous in the workflow definition.
|
|
33
|
+
|
|
34
|
+
For callbacks from n8n into Agent Native, configure an Agent Native callback URL and a shared-secret or HMAC adapter. Include a stable event ID header whenever n8n can retry delivery.
|
|
35
|
+
|
|
36
|
+
See the [n8n Webhook documentation](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/).
|
|
37
|
+
|
|
38
|
+
## Zapier
|
|
39
|
+
|
|
40
|
+
Zapier is currently **blueprint-only** in the integration catalog. There is no generic Zapier workflow execution API in this runtime, and Zapier must not be presented as a chat channel or a provider-api preset.
|
|
41
|
+
|
|
42
|
+
Zapier REST Hook triggers are an app-integration contract: an app implements subscribe and unsubscribe endpoints, stores Zapier's unique target URL, and delivers events to that URL. A static inbound webhook is not a public Zapier REST Hook integration.
|
|
43
|
+
|
|
44
|
+
Zapier MCP is a separately configured remote MCP connection with a Zapier account and its own authorization flow. It is not interchangeable with an Agent Native workflow callback credential.
|
|
45
|
+
|
|
46
|
+
See [Zapier REST Hook triggers](https://docs.zapier.com/integrations/build/hook-trigger) and [Zapier MCP](https://docs.zapier.com/mcp/home).
|
|
47
|
+
|
|
48
|
+
## App setup
|
|
49
|
+
|
|
50
|
+
Create a runtime and expose only the narrow action:
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import {
|
|
54
|
+
createAutomationRuntime,
|
|
55
|
+
createInvokeAutomationWorkflowAction,
|
|
56
|
+
} from "@agent-native/core/automation";
|
|
57
|
+
|
|
58
|
+
const automation = createAutomationRuntime({
|
|
59
|
+
workflows: [
|
|
60
|
+
/* app-owned static workflow definitions */
|
|
61
|
+
],
|
|
62
|
+
resolveSecret: async (ref, context) => {
|
|
63
|
+
// Resolve a scoped vault/credential reference here. Never return it to UI.
|
|
64
|
+
return null;
|
|
65
|
+
},
|
|
66
|
+
claimInboundEvent: async ({ workflow, eventId }) => {
|
|
67
|
+
// Insert a unique SQL row and return false on a duplicate event.
|
|
68
|
+
return true;
|
|
69
|
+
},
|
|
70
|
+
enqueueInboundEvent: async ({ workflow, eventId, payload }) => {
|
|
71
|
+
// Reuse the app's established durable queue; do not run an agent here.
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export default createInvokeAutomationWorkflowAction(automation);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Mount callback handlers only under `/_agent-native/automations/`; all normal app operations remain actions. Keep the callback route minimal: authenticate, claim idempotency, enqueue, and acknowledge.
|
|
79
|
+
|
|
80
|
+
The client can call a registered action with `invokeConfiguredAutomationWorkflow()` from `@agent-native/core/client`; it does not hand-write a browser `fetch`.
|
|
@@ -17,6 +17,14 @@ If you've used QuickBooks Online, you've seen the model: QBO ships a core accoun
|
|
|
17
17
|
|
|
18
18
|
The framing matters: an extension isn't a generic "do whatever you want" sandbox. It's a **mini-app that extends a specific template** — Mail, Analytics, Calendar, Clips, Design — and uses that template's actions and data. A Mail extension reads emails. An Analytics extension reads a dashboard's metrics. A Calendar extension acts on the open event. They feel like part of the host product because they _are_ part of the host product.
|
|
19
19
|
|
|
20
|
+
> **Extensions add UI; they do not rewrite the host UI.** An extension renders on
|
|
21
|
+
> its own page or inside a named [slot](#slots) exposed by the template. It
|
|
22
|
+
> cannot inject elements into arbitrary native components — for example, beside
|
|
23
|
+
> every attendee in Calendar — unless the template exposes a slot there. For
|
|
24
|
+
> deeper customization, ask the agent to edit the template's source code. Full
|
|
25
|
+
> code customization is a core Agent Native capability; extensions are the
|
|
26
|
+
> fast, no-deploy layer.
|
|
27
|
+
|
|
20
28
|
Three things make extensions work:
|
|
21
29
|
|
|
22
30
|
- **No code, no deploy.** The agent writes them and they're live in seconds. Stored in the database, not the repo.
|
|
@@ -11,6 +11,14 @@ description: "التطبيقات المصغرة التي ينشئها المست
|
|
|
11
11
|
|
|
12
12
|
التأطير مهم: الإضافة ليست عبارة عن وضع حماية عام "افعل ما تريد". إنه **تطبيق صغير يعمل على توسيع قالب معين** - البريد والتحليلات والتقويم والقصاصات والتصميم - ويستخدم actions لهذا القالب وبياناته. ملحق البريد يقرأ رسائل البريد الإلكتروني. يقرأ ملحق Analytics مقاييس لوحة المعلومات. يعمل ملحق التقويم على الحدث المفتوح. إنهم يشعرون وكأنهم جزء من المنتج المضيف لأنهم _هم_ جزء من المنتج المضيف.
|
|
13
13
|
|
|
14
|
+
> **تضيف الامتدادات واجهة مستخدم، لكنها لا تعيد كتابة واجهة التطبيق
|
|
15
|
+
> المضيف.** يظهر الامتداد في صفحته الخاصة أو داخل [فتحة](#slots) مسماة
|
|
16
|
+
> يوفّرها القالب. ولا يمكنه إدراج عناصر داخل مكونات أصلية عشوائية — مثل
|
|
17
|
+
> وضع عنصر بجوار كل حاضر في التقويم — ما لم يوفّر القالب فتحة في ذلك الموضع.
|
|
18
|
+
> وللتخصيص الأعمق، اطلب من الوكيل تعديل التعليمات البرمجية المصدرية للقالب.
|
|
19
|
+
> يُعد التخصيص الكامل للتعليمات البرمجية قدرة أساسية في Agent Native؛ أما
|
|
20
|
+
> الامتدادات فهي طبقة سريعة لا تتطلب النشر.
|
|
21
|
+
|
|
14
22
|
هناك ثلاثة أشياء تجعل الإضافات تعمل:
|
|
15
23
|
|
|
16
24
|
- **لا يوجد تعليمات برمجية، ولا يوجد نشر.** يكتبها الوكيل وستكون مباشرة في ثوانٍ. مخزنة في قاعدة البيانات، وليس الريبو.
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "المراسلة"
|
|
3
|
-
description: "تحدث إلى وكيلك
|
|
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 من رموز JWT الرسمية لـ Bot Framework ويرد في المحادثة الأصلية. يدعم Discord أوامر الشرطة المائلة عبر تفاعلات HTTP الموقعة بـ Ed25519 مع إقرار مؤجل؛ ولا يستقبل رسائل الخادم العادية أو الرسائل المباشرة من دون تشغيل 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 أو البريد الإلك
|
|
|
78
82
|
- `chat:write` — يتيح للوكيل إرسال الرسائل
|
|
79
83
|
- `app_mentions:read` — يتيح للوكيل معرفة متى يتم ذكره @ (اختياري)
|
|
80
84
|
- `im:history` — يتيح للوكيل قراءة الرسائل المباشرة المرسلة إليه
|
|
81
|
-
- `assistant:write` — اختياري؛ يتيح لـ Slack عرض حالة "يفكر..." الأصلية في سلاسل الرسائل المساعدة
|
|
82
85
|
- `users:read.email` — اختياري؛ تساعد القوالب مثل البريد في التحقق من البريد الإلكتروني للمرسل Slack للحصول على هوية قائمة انتظار المسودة
|
|
83
86
|
3. انقر فوق **التثبيت على مساحة العمل** أعلى تلك الصفحة. سوف يمنحك Slack **رمز Bot User OAuth** الذي يبدأ بـ `xoxb-`. انسخه.
|
|
84
87
|
4. انتقل إلى **المعلومات الأساسية** في الشريط الجانبي وانسخ **سر التوقيع**.
|
|
@@ -123,12 +126,76 @@ https://your-clips.example.com/api/slack/unfurl
|
|
|
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** — تستخدم مقاطع 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 المُدار هو الإعداد الموصى به. من **الإعدادات → المراسلة**، اختر
|
|
138
|
+
**Agent manifest** لتنزيل ملف `agent-native-slack-manifest.json` الخاص بمضيفك،
|
|
139
|
+
ثم استورده من **App Manifest** في Slack. يفعّل الملف تجربة `agent_view` الحالية
|
|
140
|
+
وعلامة تبويب **Messages** قابلة للكتابة للرسائل المباشرة. تحقّق من هذه النطاقات:
|
|
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
|
+
|
|
178
|
+
أعد تثبيت تطبيق Slack بعد تغيير البيان أو النطاقات أو الأحداث أو Agent view أو
|
|
179
|
+
علامة تبويب Messages. يستخدم `app_home_opened` لاكتشاف فتح الرسائل المباشرة،
|
|
180
|
+
ويضيف `app_context_changed` سياق العرض الحالي، ويسلّم `message.im` الرسائل الخاصة.
|
|
181
|
+
قد يخفي مسؤولو Slack الوكلاء المثبتين عن المؤسسة، كما يمكن لكل مستخدم إخفاؤهم من
|
|
182
|
+
الشريط العلوي. إذا نجح التثبيت ولم يظهر الوكيل، فتحقق من عناصر التحكم هذه أو افتحه
|
|
183
|
+
من **Tools → Apps**.
|
|
184
|
+
|
|
185
|
+
لا تُقبل الرسائل الخاصة الشخصية في Slack إلا من عضو موثّق في مؤسسة Agent Native
|
|
186
|
+
أو من هوية Slack مرتبطة مسبقًا بذلك العضو. أما سياسات وميزانيات هوية الخدمة الخاصة
|
|
187
|
+
بالقناة فهي منفصلة.
|
|
188
|
+
|
|
189
|
+
أثناء تشغيل مهمة في سلسلة رسائل، تواصل الردود غير المشار إليها المهمة نفسها؛
|
|
190
|
+
ولا تبدأ محادثات القناة العامة مهمة. يحمّل الوكيل سياقًا محدودًا مع التفاعلات
|
|
191
|
+
ومراجع الملفات فقط، ويعرض خطة وتقدمًا مباشرًا مع أزرار الإلغاء والموافقة/الرفض.
|
|
192
|
+
الرسائل الخاصة تستخدم هوية المستخدم الشخصية، بينما تستخدم القنوات المُدارة هوية
|
|
193
|
+
خدمة صريحة وسياسات للضيوف وSlack Connect والنموذج الافتراضي. ذاكرة القناة صريحة
|
|
194
|
+
ومعزولة ولا تُحفظ تلقائيًا. تحتفظ الإجراءات الدورية التي تُنشأ من القناة بوجهة
|
|
195
|
+
Slack، وتفرض ميزانيات يومية أو شهرية للمؤسسة أو الطالب أو القناة مع سجل تدقيق كامل.
|
|
196
|
+
يتيح `assistant:write` أحداث سياق Agent View، بينما يتيح `chat:write` الردود
|
|
197
|
+
وتحديثات الحالة المباشرة.
|
|
198
|
+
|
|
132
199
|
## إعداد تيليجرام {#telegram}
|
|
133
200
|
|
|
134
201
|
### ما ستحتاج إليه
|
|
@@ -435,7 +502,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
502
|
| البريد الإلكتروني | `EMAIL_AGENT_ADDRESS`، بالإضافة إلى واحد من `RESEND_API_KEY` أو `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
503
|
| واتساب | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
504
|
|
|
438
|
-
|
|
505
|
+
يتم حل بيانات اعتماد التكامل أولاً من الأسرار ذات النطاق لمالك التكامل (المستخدم ثم المؤسسة ثم مساحة العمل)؛ وتكون متغيرات بيئة النشر بديلاً للتثبيت المحلي أو أحادي المستأجر المقصود. تحفظ واجهة الإعداد أسراراً ذات نطاق؛ ولا تُعاد القيم أبداً إلى المتصفح أو تُخزَّن في كود المصدر.
|
|
506
|
+
|
|
507
|
+
محولات وقت التشغيل المضمنة هي **Slack** و**Telegram** و**WhatsApp Cloud API** والبريد الإلكتروني عبر webhooks لموفر الخدمة (Resend أو SendGrid). لا يمكن توصيل Discord أو Microsoft Teams حتى يتم تنفيذ محول تم التحقق منه وتسجيله.
|
|
439
508
|
|
|
440
509
|
### الترابط والهوية {#threading-and-identity}
|
|
441
510
|
|
|
@@ -481,13 +550,13 @@ import type {
|
|
|
481
550
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
551
|
|
|
483
552
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
553
|
+
platform: "my-chat",
|
|
554
|
+
label: "My Chat",
|
|
486
555
|
|
|
487
556
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
557
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
558
|
return [
|
|
490
|
-
{ key: "
|
|
559
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
560
|
];
|
|
492
561
|
},
|
|
493
562
|
|
|
@@ -507,10 +576,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
576
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
577
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
578
|
return {
|
|
510
|
-
platform: "
|
|
579
|
+
platform: "my-chat",
|
|
511
580
|
externalThreadId: "channel-or-thread-id",
|
|
512
581
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
582
|
+
senderId: "my-chat-user-id",
|
|
514
583
|
platformContext: { channelId: "channel-id" },
|
|
515
584
|
timestamp: Date.now(),
|
|
516
585
|
};
|
|
@@ -538,10 +607,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
607
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
608
|
async getStatus(baseUrl?: string) {
|
|
540
609
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
610
|
+
platform: "my-chat",
|
|
611
|
+
label: "My Chat",
|
|
543
612
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
613
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
614
|
};
|
|
546
615
|
},
|
|
547
616
|
};
|
|
@@ -77,6 +77,7 @@ search: "سجلات متصفح Clips، سجلات المطورين، سجلات
|
|
|
77
77
|
## ما يمكنك فعله به
|
|
78
78
|
|
|
79
79
|
- **سجل شاشتك** باستخدام مسجل مدمج وتراكب كاميرا الويب والتقاط الصوت والإيقاف المؤقت/الاقتطاع.
|
|
80
|
+
- **استورد مقاطع فيديو Loom العامة.** على الويب، اختر **تسجيل ← استيراد Loom**، ثم الصق رابط مشاركة أو تضمين من Loom. يحفظ Clips نسخة في مكتبتك ويستورد النص العام عندما يكون متاحًا.
|
|
80
81
|
- **التقط الاجتماعات من التقويم الخاص بك.** قم بتوصيل Google Calendar، وشاهد الاجتماعات القادمة في الشريط الجانبي، ثم اضغط على تسجيل أي اجتماع. ستحصل على نص مباشر بالإضافة إلى ملخص AI وملاحظات نقطية وعناصر عمل بمجرد انتهاء النص.
|
|
81
82
|
- **إملاء الضغط والتحدث.** اضغط باستمرار على Fn على جهازك، وتحدث، وسيسقط النص المنظف في أي تطبيق تستخدمه. يتم الاحتفاظ بكل إملاء في سجل قابل للبحث مع النسخ الأصلية والإصدارات التي تم تنظيفها بواسطة الذكاء الاصطناعي جنبًا إلى جنب.
|
|
82
83
|
- **احصل على عنوان وملخص وعلامات فصول يتم إنشاؤها تلقائيًا** لكل تسجيل — يقوم الوكيل بملئها وتحديثها باستمرار.
|
|
@@ -91,6 +91,7 @@ description: "استوديو نماذج أولية HTML للوكيل - يمكن
|
|
|
91
91
|
## ما يمكنك فعله به
|
|
92
92
|
|
|
93
93
|
- **إنشاء نماذج أولية كاملة.** قم بوصف الشاشة أو الصفحة التي تحتاجها وسيقوم الوكيل بإنشاء مستند HTML صالح مع تصميم Tailwind وAlpine interactions.
|
|
94
|
+
- **ابدأ من قوالب قابلة لإعادة الاستخدام.** اختر مقاسًا جاهزًا للإعلانات أو مستندات الصفحة الواحدة أو صفحات الهبوط، أو احفظ أي تصميم مضمّن كقالب. تعدّل المطالبة المحتوى غير المقفل فقط وتحافظ على الشعارات والخلفيات المقفلة.
|
|
94
95
|
- **مقارنة المتغيرات.** ابدأ باتجاهات متعددة، واختر الاتجاه الأقوى، ثم تابع التحسين.
|
|
95
96
|
- **التعديل بشكل مرئي.** استخدم عناصر التحكم في التعديل المضمنة لإجراء التغييرات الشائعة، أو اطلب من الوكيل تحديثات النسخ والتخطيط واللون والتباعد والتفاعل.
|
|
96
97
|
- **تطبيق أنظمة التصميم.** يمكنك حفظ تفضيلات نظام التصميم وإعادة استخدامها حتى يظل العمل الذي يتم إنشاؤه أقرب إلى علامتك التجارية.
|
|
@@ -11,6 +11,16 @@ Wenn Sie QuickBooks Online verwendet haben, haben Sie das Modell gesehen: QBO li
|
|
|
11
11
|
|
|
12
12
|
Der Rahmen ist wichtig: Eine Erweiterung ist keine generische Sandbox „Machen Sie, was Sie wollen“. Es handelt sich um eine **Mini-App, die eine bestimmte Vorlage** – Mail, Analytics, Kalender, Clips, Design – erweitert und die actions und Daten dieser Vorlage verwendet. Eine Mail-Erweiterung liest E-Mails. Eine Analytics-Erweiterung liest die Metriken eines Dashboards. Eine Kalendererweiterung wirkt auf das offene Ereignis. Sie fühlen sich als Teil des Host-Produkts, weil sie Teil des Host-Produkts sind.
|
|
13
13
|
|
|
14
|
+
> **Erweiterungen ergänzen die Benutzeroberfläche; sie schreiben die
|
|
15
|
+
> Host-Benutzeroberfläche nicht um.** Eine Erweiterung wird auf einer eigenen
|
|
16
|
+
> Seite oder in einem benannten [Slot](#slots) dargestellt, den die Vorlage
|
|
17
|
+
> bereitstellt. Sie kann keine Elemente in beliebige native Komponenten
|
|
18
|
+
> einfügen – zum Beispiel neben jeden Teilnehmer im Kalender –, sofern dort
|
|
19
|
+
> kein Slot vorhanden ist. Für tiefere Anpassungen bitten Sie den Agenten, den
|
|
20
|
+
> Quellcode der Vorlage zu bearbeiten. Die vollständige Anpassbarkeit des Codes
|
|
21
|
+
> ist eine Kernfunktion von Agent Native; Erweiterungen sind die schnelle Ebene
|
|
22
|
+
> ohne Bereitstellung.
|
|
23
|
+
|
|
14
24
|
Drei Dinge sorgen dafür, dass Erweiterungen funktionieren:
|
|
15
25
|
|
|
16
26
|
- **Kein Code, keine Bereitstellung.** Der Agent schreibt sie und sie sind in Sekundenschnelle live. Wird in der Datenbank gespeichert, nicht im Repo.
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Nachrichten"
|
|
3
|
-
description: "Sprechen Sie mit Ihrem Agenten über Slack, E-Mail, Telegram oder WhatsApp
|
|
3
|
+
description: "Sprechen Sie mit Ihrem Agenten über Slack, Microsoft Teams, Discord-Interaktionen, E-Mail, Telegram oder WhatsApp."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Nachrichten
|
|
7
7
|
|
|
8
|
-
Verbinden Sie Ihren Agenten mit Slack, E-Mail, Telegram oder WhatsApp
|
|
8
|
+
Verbinden Sie Ihren Agenten mit Slack, Microsoft Teams, Discord-Interaktionen, E-Mail, Telegram oder WhatsApp. Es ist derselbe Agent mit demselben Speicher, denselben Tools und demselben Verlauf.
|
|
9
|
+
|
|
10
|
+
> **Genauer Supportumfang:** Teams validiert offizielle Bot-Framework-JWTs und antwortet in der ursprünglichen Unterhaltung. Discord unterstützt Slash-Befehle über Ed25519-signierte HTTP-Interaktionen mit verzögerter Bestätigung; normale Servernachrichten und DMs benötigen weiterhin eine Gateway-Laufzeit. Telegram erhält `message_thread_id`, und WhatsApp verwendet die eingehende `wamid` für kontextbezogene Antworten.
|
|
11
|
+
>
|
|
12
|
+
> Teams benötigt `MICROSOFT_TEAMS_APP_ID`, `MICROSOFT_TEAMS_APP_PASSWORD` und `MICROSOFT_TEAMS_ALLOWED_TENANT_IDS`. Discord benötigt `DISCORD_APPLICATION_ID` und `DISCORD_PUBLIC_KEY`. Telegram benötigt zusätzlich `TELEGRAM_WEBHOOK_SECRET`, WhatsApp zusätzlich `WHATSAPP_APP_SECRET`.
|
|
9
13
|
|
|
10
14
|
> **Verwenden Sie die Dispatch-Vorlage?** All dies ist für Sie unter **Einstellungen → Nachrichten** eingerichtet. Klicken Sie, um jede Plattform zu verbinden – Sie müssen den Rest dieser Seite nicht lesen, es sei denn, Sie passen Ihre eigene Vorlage an oder erstellen sie. Siehe [Dispatch](/docs/dispatch) oder [Dispatch template reference](/docs/template-dispatch).
|
|
11
15
|
|
|
@@ -78,7 +82,6 @@ Verbinden Sie Ihren Agenten mit Slack, E-Mail, Telegram oder WhatsApp, damit Sie
|
|
|
78
82
|
- `chat:write` – ermöglicht dem Agenten das Senden von Nachrichten
|
|
79
83
|
- `app_mentions:read` – lässt den Agenten sehen, wann es @-erwähnt wird (optional)
|
|
80
84
|
- `im:history` – ermöglicht dem Agenten, an ihn gesendete DMs zu lesen
|
|
81
|
-
- `assistant:write` – optional; Lässt Slack den nativen „Denkt...“-Status in Assistententhreads anzeigen
|
|
82
85
|
- `users:read.email` – optional; hilft Vorlagen wie Mail bei der Überprüfung der Slack-Absender-E-Mail auf die Identität der Entwurfswarteschlange
|
|
83
86
|
3. Klicken Sie oben auf dieser Seite auf **In Workspace installieren**. Mit Slack erhalten Sie ein **Bot-Benutzer-OAuth-Token**, das mit `xoxb-` beginnt. Kopieren Sie es.
|
|
84
87
|
4. Gehen Sie in der Seitenleiste zu **Grundlegende Informationen** und kopieren Sie das **Signierungsgeheimnis**.
|
|
@@ -123,12 +126,84 @@ und `link_shared`-Ereignisse an den Clips-Unfurl-Handler.
|
|
|
123
126
|
|
|
124
127
|
### Tipps
|
|
125
128
|
|
|
126
|
-
- **Kanalerwähnungen** –
|
|
127
|
-
- **DMs** –
|
|
128
|
-
- **
|
|
129
|
+
- **Kanalerwähnungen** – Starten Sie Arbeit mit einer @Erwähnung. Antworten ohne Erwähnung gelten nur, solange genau dieser Thread aktive Arbeit enthält.
|
|
130
|
+
- **DMs** – akzeptierte persönliche DMs sind private Unterhaltungen und erfordern ein verifiziertes Organisationsmitglied oder eine verknüpfte Slack-Identität.
|
|
131
|
+
- **Identität** – DMs können eine verifizierte Slack-E-Mail demselben App-Benutzer zuordnen; verwaltete Kanäle verwenden ihre Dienstidentität und Richtlinie.
|
|
129
132
|
- **Produktionszulassungslisten** – Legen Sie `SLACK_ALLOWED_TEAM_IDS` und für freigegebene Slack-Apps `SLACK_ALLOWED_API_APP_IDS` fest, damit ein gültiges Signaturgeheimnis nicht von einem unerwarteten Arbeitsbereich wiederverwendet werden kann.
|
|
130
133
|
- **Clips-App entfaltet sich** – installierbare Agent-Native-Clips für Slack verwenden `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_SIGNING_SECRET` und `/api/slack/oauth/callback`. Jeder verbundene Slack-Arbeitsbereich erhält seinen eigenen verschlüsselten Bot-Token in `app_secrets`; `SLACK_BOT_TOKEN` ist nur ein Legacy-Fallback für einen einzelnen Arbeitsbereich.
|
|
131
134
|
|
|
135
|
+
### Verwaltetes Add to Slack
|
|
136
|
+
|
|
137
|
+
Verwaltetes OAuth ist die empfohlene Einrichtung. Wählen Sie unter
|
|
138
|
+
**Einstellungen → Messaging** die Option **Agent manifest**, laden Sie die
|
|
139
|
+
hostspezifische Datei `agent-native-slack-manifest.json` herunter und importieren
|
|
140
|
+
Sie sie in Slack unter **App Manifest**. Das Manifest aktiviert die aktuelle
|
|
141
|
+
`agent_view`-Oberfläche und einen beschreibbaren **Messages**-Tab für DMs.
|
|
142
|
+
Prüfen Sie anschließend diese Bot-Bereiche:
|
|
143
|
+
|
|
144
|
+
App-Symbole sind nicht Bestandteil des Manifests. Laden Sie unter **Basic
|
|
145
|
+
Information → Display Information** das Agent-Native-Symbol hoch, damit die
|
|
146
|
+
Agents-Auswahl zur Produktmarke passt. Sie können das öffentliche
|
|
147
|
+
`icon-512.svg` der App als Quelle verwenden und es bei Bedarf in ein von Slack
|
|
148
|
+
unterstütztes Uploadformat konvertieren.
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
assistant:write
|
|
152
|
+
app_mentions:read
|
|
153
|
+
channels:history
|
|
154
|
+
channels:read
|
|
155
|
+
chat:write
|
|
156
|
+
files:read
|
|
157
|
+
groups:history
|
|
158
|
+
groups:read
|
|
159
|
+
im:history
|
|
160
|
+
im:read
|
|
161
|
+
mpim:history
|
|
162
|
+
mpim:read
|
|
163
|
+
pins:read
|
|
164
|
+
reactions:read
|
|
165
|
+
users:read
|
|
166
|
+
users:read.email
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Setzen Sie die OAuth Redirect URL auf
|
|
170
|
+
`https://your-app.example.com/_agent-native/integrations/slack/oauth/callback`,
|
|
171
|
+
die Event Subscriptions Request URL auf
|
|
172
|
+
`https://your-app.example.com/_agent-native/integrations/slack/webhook` und die
|
|
173
|
+
Interactivity Request URL auf
|
|
174
|
+
`https://your-app.example.com/_agent-native/integrations/slack/interactions`.
|
|
175
|
+
Abonnieren Sie `app_home_opened`, `app_context_changed`, `app_mention`,
|
|
176
|
+
`message.channels`, `message.groups`, `message.im` und `message.mpim`.
|
|
177
|
+
Konfigurieren Sie `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`
|
|
178
|
+
und `SLACK_SIGNING_SECRET`; klicken Sie dann unter **Einstellungen → Messaging**
|
|
179
|
+
auf **Add to Slack**. Jede Installation besitzt einen verschlüsselten Token und
|
|
180
|
+
team-, app-, kanal- und threadbezogene Konversationsschlüssel.
|
|
181
|
+
|
|
182
|
+
Installieren Sie die Slack-App nach Änderungen an Manifest, Bereichen,
|
|
183
|
+
Ereignissen, Agent View oder Messages-Tab erneut. `app_home_opened` erkennt das
|
|
184
|
+
Öffnen der DMs, `app_context_changed` liefert den aktuell sichtbaren Slack-Kontext
|
|
185
|
+
und `message.im` übermittelt Direktnachrichten. Slack-Administratoren können
|
|
186
|
+
installierte Agenten organisationsweit ausblenden; Mitglieder können sie zudem
|
|
187
|
+
aus ihrer eigenen oberen Leiste entfernen. Prüfen Sie bei einer erfolgreichen,
|
|
188
|
+
aber unsichtbaren Installation diese Anzeigeeinstellungen oder öffnen Sie die App
|
|
189
|
+
unter **Tools → Apps**.
|
|
190
|
+
|
|
191
|
+
Persönliche Slack-DMs werden nur von verifizierten Mitgliedern der
|
|
192
|
+
Agent-Native-Organisation oder von bereits verknüpften Slack-Identitäten
|
|
193
|
+
angenommen. Richtlinien und Budgets des Dienstprinzipals eines Kanals sind davon
|
|
194
|
+
getrennt.
|
|
195
|
+
|
|
196
|
+
Antworten ohne Erwähnung steuern nur einen gerade aktiven Thread weiter; sonstiger
|
|
197
|
+
Kanalverkehr wird ignoriert. Der Agent lädt begrenzten Thread-Kontext samt
|
|
198
|
+
Reaktionen und Dateiverweisen und zeigt einen nativen Live-Arbeitsplan mit
|
|
199
|
+
Abbrechen sowie Genehmigen/Ablehnen. DMs verwenden die persönliche Identität,
|
|
200
|
+
verwaltete Kanäle eine ausdrückliche Dienstidentität mit Gast-, Slack-Connect-
|
|
201
|
+
und Modellrichtlinien. Kanalspeicher wird nur auf ausdrücklichen Wunsch gespeichert
|
|
202
|
+
oder gelöscht. Im Kanal erstellte Routinen liefern dorthin zurück. Tägliche oder
|
|
203
|
+
monatliche Budgets für Organisation, Anfragende und Kanal werden mit vollständiger
|
|
204
|
+
Audit-Lineage durchgesetzt. `assistant:write` aktiviert die Kontextereignisse von
|
|
205
|
+
Agent View; `chat:write` ermöglicht Antworten und Live-Statusaktualisierungen.
|
|
206
|
+
|
|
132
207
|
## Telegramm einrichten {#telegram}
|
|
133
208
|
|
|
134
209
|
### Was Sie brauchen
|
|
@@ -435,7 +510,9 @@ POST /_agent-native/integrations/telegram/setup
|
|
|
435
510
|
| E-Mail | `EMAIL_AGENT_ADDRESS`, plus eines von `RESEND_API_KEY` oder `SENDGRID_API_KEY` | `EMAIL_INBOUND_WEBHOOK_SECRET` |
|
|
436
511
|
| WhatsApp | `WHATSAPP_ACCESS_TOKEN`, `WHATSAPP_VERIFY_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID` | — |
|
|
437
512
|
|
|
438
|
-
|
|
513
|
+
Integrations-Anmeldeinformationen werden zuerst aus bereichsbezogenen Geheimnissen des Integrationsbesitzers aufgelöst (Benutzer, Organisation, dann Arbeitsbereich); Bereitstellungs-Umgebungsvariablen sind ein Fallback für lokale oder bewusst mandantenfähige Einzel-Setups. Die Setup-UI speichert bereichsbezogene Geheimnisse; Werte werden weder an den Browser zurückgegeben noch im Quellcode gespeichert.
|
|
514
|
+
|
|
515
|
+
Die integrierten Laufzeitadapter sind **Slack**, **Telegram**, **WhatsApp Cloud API** und **anbieterbasierte Webhook-E-Mail** (Resend oder SendGrid). Discord und Microsoft Teams sind nicht verbindbar, bis ein verifizierter Adapter implementiert und registriert wurde.
|
|
439
516
|
|
|
440
517
|
### Threading und Identität {#threading-and-identity}
|
|
441
518
|
|
|
@@ -481,13 +558,13 @@ import type {
|
|
|
481
558
|
import type { EnvKeyConfig } from "@agent-native/core/server";
|
|
482
559
|
|
|
483
560
|
const myAdapter: PlatformAdapter = {
|
|
484
|
-
platform: "
|
|
485
|
-
label: "
|
|
561
|
+
platform: "my-chat",
|
|
562
|
+
label: "My Chat",
|
|
486
563
|
|
|
487
564
|
// Env keys this adapter needs (rendered in the settings UI)
|
|
488
565
|
getRequiredEnvKeys(): EnvKeyConfig[] {
|
|
489
566
|
return [
|
|
490
|
-
{ key: "
|
|
567
|
+
{ key: "MY_CHAT_BOT_TOKEN", label: "My Chat Bot Token", required: true },
|
|
491
568
|
];
|
|
492
569
|
},
|
|
493
570
|
|
|
@@ -507,10 +584,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
507
584
|
// Return null to silently ignore the event (bot messages, edits, etc.).
|
|
508
585
|
async parseIncomingMessage(event: H3Event): Promise<IncomingMessage | null> {
|
|
509
586
|
return {
|
|
510
|
-
platform: "
|
|
587
|
+
platform: "my-chat",
|
|
511
588
|
externalThreadId: "channel-or-thread-id",
|
|
512
589
|
text: "the user's message",
|
|
513
|
-
senderId: "
|
|
590
|
+
senderId: "my-chat-user-id",
|
|
514
591
|
platformContext: { channelId: "channel-id" },
|
|
515
592
|
timestamp: Date.now(),
|
|
516
593
|
};
|
|
@@ -538,10 +615,10 @@ const myAdapter: PlatformAdapter = {
|
|
|
538
615
|
// baseUrl is the app's public URL, used for status checks that need it.
|
|
539
616
|
async getStatus(baseUrl?: string) {
|
|
540
617
|
return {
|
|
541
|
-
platform: "
|
|
542
|
-
label: "
|
|
618
|
+
platform: "my-chat",
|
|
619
|
+
label: "My Chat",
|
|
543
620
|
enabled: true,
|
|
544
|
-
configured: !!process.env.
|
|
621
|
+
configured: !!process.env.MY_CHAT_BOT_TOKEN,
|
|
545
622
|
};
|
|
546
623
|
},
|
|
547
624
|
};
|
|
@@ -77,6 +77,7 @@ Denken Sie an Loom + Granola + Wispr Flow in einer App – aber der Agent ist ei
|
|
|
77
77
|
## Was Sie damit machen können
|
|
78
78
|
|
|
79
79
|
- **Nehmen Sie Ihren Bildschirm auf** mit integriertem Rekorder, Webcam-Overlay, Audioaufnahme und Pause/Zuschneiden.
|
|
80
|
+
- **Importieren Sie öffentliche Loom-Videos.** Wählen Sie im Web **Aufzeichnen → Loom importieren** und fügen Sie dann eine Loom-Freigabe- oder Einbettungs-URL ein. Clips speichert eine Kopie in Ihrer Bibliothek und importiert das öffentliche Transkript, sofern eines verfügbar ist.
|
|
80
81
|
- **Erfassen Sie Besprechungen aus Ihrem Kalender.** Verbinden Sie Google Calendar, sehen Sie sich bevorstehende Besprechungen in der Seitenleiste an und klicken Sie bei einer beliebigen Besprechung auf „Aufzeichnen“. Sobald es endet, erhalten Sie ein Live-Transkript sowie eine KI-Zusammenfassung, Aufzählungszeichen und Aktionspunkte.
|
|
81
82
|
- **Push-to-Talk-Diktat.** Halten Sie Fn auf Ihrem Gerät gedrückt, sprechen Sie, und der bereinigte Text wird in die von Ihnen verwendete App verschoben. Jedes Diktat wird in einem durchsuchbaren Verlauf mit Originalen und KI-bereinigten Versionen nebeneinander gespeichert.
|
|
82
83
|
- **Erhalten Sie einen automatisch generierten Titel, eine Zusammenfassung und Kapitelmarkierungen** für jede Aufnahme – der Agent füllt sie aus und hält sie auf dem neuesten Stand.
|
|
@@ -89,6 +89,7 @@ Wenn Sie die App öffnen, befindet sich der generierte Prototyp im Mittelpunkt d
|
|
|
89
89
|
## Was Sie damit machen können
|
|
90
90
|
|
|
91
91
|
- **Generieren Sie vollständige Prototypen.** Beschreiben Sie den Bildschirm oder die Seite, die Sie benötigen, und der Agent erstellt ein funktionierendes HTML-Dokument mit Tailwind-Stil und Alpine interactions.
|
|
92
|
+
- **Mit wiederverwendbaren Vorlagen starten.** Wähle ein passendes Format für Anzeigen, Einseiter oder Landingpages oder speichere ein Inline-Design als Vorlage. Der Prompt passt nur entsperrte Inhalte an; gesperrte Logos und Hintergründe bleiben unverändert.
|
|
92
93
|
- **Varianten vergleichen.** Beginnen Sie mit mehreren Richtungen, wählen Sie die stärkste aus und verfeinern Sie sie dann weiter.
|
|
93
94
|
- **Optimieren Sie visuell.** Verwenden Sie die integrierten Optimierungssteuerelemente für häufige Änderungen oder bitten Sie den Agenten um Aktualisierungen von Text, Layout, Farbe, Abstand und Interaktion.
|
|
94
95
|
- **Wenden Sie Designsysteme an.** Speichern Sie Designsystemeinstellungen und verwenden Sie sie wieder, damit die generierte Arbeit näher an Ihrer Marke bleibt.
|
|
@@ -11,6 +11,16 @@ Si ha utilizado QuickBooks Online, habrá visto el modelo: QBO incluye un produc
|
|
|
11
11
|
|
|
12
12
|
El marco importa: una extensión no es un entorno limitado genérico de "haz lo que quieras". Es una **miniaplicación que amplía una plantilla específica** (correo, análisis, calendario, clips, diseño) y utiliza el actions y los datos de esa plantilla. Una extensión de correo lee correos electrónicos. Una extensión de Analytics lee las métricas de un panel. Una extensión de Calendario actúa sobre el evento abierto. Se sienten parte del producto anfitrión porque _son_ parte del producto anfitrión.
|
|
13
13
|
|
|
14
|
+
> **Las extensiones añaden interfaz; no reescriben la interfaz de la aplicación
|
|
15
|
+
> anfitriona.** Una extensión se muestra en su propia página o dentro de una
|
|
16
|
+
> [ranura](#slots) con nombre que expone la plantilla. No puede insertar
|
|
17
|
+
> elementos en componentes nativos arbitrarios —por ejemplo, junto a cada
|
|
18
|
+
> asistente en Calendario— a menos que la plantilla exponga una ranura allí.
|
|
19
|
+
> Para una personalización más profunda, pide al agente que edite el código
|
|
20
|
+
> fuente de la plantilla. La personalización completa del código es una
|
|
21
|
+
> capacidad central de Agent Native; las extensiones son la capa rápida y sin
|
|
22
|
+
> despliegues.
|
|
23
|
+
|
|
14
24
|
Tres cosas hacen que las extensiones funcionen:
|
|
15
25
|
|
|
16
26
|
- **Sin código, sin implementación.** El agente los escribe y están activos en segundos. Almacenado en la base de datos, no en el repositorio.
|