@agent-native/core 0.95.1 → 0.97.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/README.md +6 -0
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +64 -0
- package/corpus/core/docs/content/audit-log.mdx +2 -1
- package/corpus/core/docs/content/automations.mdx +7 -7
- package/corpus/core/docs/content/creating-templates.mdx +1 -1
- package/corpus/core/docs/content/internationalization.mdx +2 -1
- package/corpus/core/docs/content/locales/ar-SA/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/ar-SA/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/ar-SA/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/ar-SA/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/ar-SA/package-lifecycle.mdx +19 -0
- package/corpus/core/docs/content/locales/ar-SA/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/ar-SA/security.mdx +8 -0
- package/corpus/core/docs/content/locales/de-DE/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/de-DE/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/de-DE/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/de-DE/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/de-DE/package-lifecycle.mdx +22 -0
- package/corpus/core/docs/content/locales/de-DE/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/de-DE/security.mdx +8 -0
- package/corpus/core/docs/content/locales/es-ES/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/es-ES/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/es-ES/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/es-ES/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/es-ES/package-lifecycle.mdx +22 -0
- package/corpus/core/docs/content/locales/es-ES/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/es-ES/security.mdx +8 -0
- package/corpus/core/docs/content/locales/fr-FR/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/fr-FR/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/fr-FR/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/fr-FR/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/fr-FR/package-lifecycle.mdx +21 -0
- package/corpus/core/docs/content/locales/fr-FR/sandbox-adapters.mdx +19 -8
- package/corpus/core/docs/content/locales/fr-FR/security.mdx +8 -0
- package/corpus/core/docs/content/locales/hi-IN/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/hi-IN/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/hi-IN/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/hi-IN/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/hi-IN/package-lifecycle.mdx +20 -0
- package/corpus/core/docs/content/locales/hi-IN/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/hi-IN/security.mdx +8 -0
- package/corpus/core/docs/content/locales/ja-JP/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/ja-JP/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/ja-JP/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/ja-JP/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/ja-JP/package-lifecycle.mdx +21 -0
- package/corpus/core/docs/content/locales/ja-JP/sandbox-adapters.mdx +17 -6
- package/corpus/core/docs/content/locales/ja-JP/security.mdx +8 -0
- package/corpus/core/docs/content/locales/ko-KR/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/ko-KR/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/ko-KR/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/ko-KR/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/ko-KR/package-lifecycle.mdx +20 -0
- package/corpus/core/docs/content/locales/ko-KR/sandbox-adapters.mdx +17 -6
- package/corpus/core/docs/content/locales/ko-KR/security.mdx +8 -0
- package/corpus/core/docs/content/locales/pt-BR/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/pt-BR/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/pt-BR/getting-started.mdx +7 -1
- package/corpus/core/docs/content/locales/pt-BR/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/pt-BR/package-lifecycle.mdx +21 -0
- package/corpus/core/docs/content/locales/pt-BR/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/pt-BR/security.mdx +8 -0
- package/corpus/core/docs/content/locales/zh-CN/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/zh-CN/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/zh-CN/getting-started.mdx +6 -4
- package/corpus/core/docs/content/locales/zh-CN/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-CN/package-lifecycle.mdx +19 -0
- package/corpus/core/docs/content/locales/zh-CN/sandbox-adapters.mdx +17 -6
- package/corpus/core/docs/content/locales/zh-CN/security.mdx +8 -0
- package/corpus/core/docs/content/locales/zh-TW/audit-log.mdx +2 -1
- package/corpus/core/docs/content/locales/zh-TW/automations.mdx +7 -7
- package/corpus/core/docs/content/locales/zh-TW/getting-started.mdx +6 -4
- package/corpus/core/docs/content/locales/zh-TW/internationalization.mdx +1 -1
- package/corpus/core/docs/content/locales/zh-TW/package-lifecycle.mdx +19 -0
- package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.mdx +18 -7
- package/corpus/core/docs/content/locales/zh-TW/security.mdx +8 -0
- package/corpus/core/docs/content/package-lifecycle.mdx +51 -0
- package/corpus/core/docs/content/sandbox-adapters.mdx +16 -5
- package/corpus/core/package.json +11 -2
- package/corpus/core/src/a2a/auth-policy.ts +33 -0
- package/corpus/core/src/a2a/client.ts +11 -1
- package/corpus/core/src/agent/durable-background.ts +15 -7
- package/corpus/core/src/agent/production-agent.ts +87 -27
- package/corpus/core/src/agent/run-store.ts +13 -4
- package/corpus/core/src/agent/thread-data-builder.ts +7 -5
- package/corpus/core/src/audit/actions/export-audit-events.ts +162 -0
- package/corpus/core/src/audit/store.ts +8 -3
- package/corpus/core/src/audit/types.ts +3 -0
- package/corpus/core/src/chat-threads/store.ts +20 -1
- package/corpus/core/src/cli/code-agent-executor.ts +1 -0
- package/corpus/core/src/cli/code-agent-runs.ts +14 -0
- package/corpus/core/src/cli/doctor.ts +396 -0
- package/corpus/core/src/cli/index.ts +56 -0
- package/corpus/core/src/cli/info.ts +3 -3
- package/corpus/core/src/cli/package-lifecycle.ts +821 -0
- package/corpus/core/src/client/AgentPanel.tsx +32 -25
- package/corpus/core/src/client/AssistantChat.tsx +36 -20
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +141 -90
- package/corpus/core/src/client/agent-chat-adapter.ts +9 -9
- package/corpus/core/src/client/chat/ChatHistoryList.tsx +404 -0
- package/corpus/core/src/client/chat/index.ts +6 -0
- package/corpus/core/src/client/chat/tool-call-display.tsx +37 -3
- package/corpus/core/src/client/code-agent-chat-adapter.ts +72 -4
- package/corpus/core/src/client/composer/RealtimeVoiceMode.tsx +52 -11
- package/corpus/core/src/client/composer/TiptapComposer.tsx +157 -20
- package/corpus/core/src/client/composer/VoiceButton.tsx +28 -0
- package/corpus/core/src/client/composer/useRealtimeVoiceMode.tsx +5 -0
- package/corpus/core/src/client/conversation/code-agent-transcript.ts +4 -5
- package/corpus/core/src/client/guided-questions.tsx +2 -1
- package/corpus/core/src/client/index.ts +11 -0
- package/corpus/core/src/client/use-chat-threads.ts +10 -1
- package/corpus/core/src/client/voice-provider-status.ts +44 -0
- package/corpus/core/src/code-agents/transcript-normalizer.ts +76 -0
- package/corpus/core/src/deploy/build.ts +12 -11
- package/corpus/core/src/guards/db-tool-scoping.ts +129 -0
- package/corpus/core/src/guards/index.ts +23 -0
- package/corpus/core/src/guards/no-drizzle-push.ts +116 -0
- package/corpus/core/src/guards/no-env-credentials.ts +229 -0
- package/corpus/core/src/guards/no-env-mutation.ts +114 -0
- package/corpus/core/src/guards/no-localhost-fallback.ts +124 -0
- package/corpus/core/src/guards/no-unscoped-credentials.ts +227 -0
- package/corpus/core/src/guards/no-unscoped-queries.ts +834 -0
- package/corpus/core/src/guards/scan-utils.ts +105 -0
- package/corpus/core/src/guards/types.ts +30 -0
- package/corpus/core/src/integrations/a2a-continuation-processor.ts +35 -5
- package/corpus/core/src/integrations/adapters/slack.ts +74 -21
- package/corpus/core/src/integrations/webhook-handler.ts +14 -0
- package/corpus/core/src/localization/default-messages.ts +6 -0
- package/corpus/core/src/observability/hosted-model-experiment.ts +118 -0
- package/corpus/core/src/observability/routes.ts +17 -0
- package/corpus/core/src/observability/store.ts +4 -1
- package/corpus/core/src/observability/traces.ts +41 -2
- package/corpus/core/src/org/accept-pending.ts +9 -1
- package/corpus/core/src/org/migrations.ts +41 -0
- package/corpus/core/src/package-lifecycle/index.ts +1 -0
- package/corpus/core/src/package-lifecycle/manifest.ts +120 -0
- package/corpus/core/src/provider-api/custom-registry.ts +56 -0
- package/corpus/core/src/provider-api/index.ts +2 -0
- package/corpus/core/src/scripts/agent-engines/list-agent-engines.ts +19 -1
- package/corpus/core/src/scripts/call-agent.ts +53 -3
- package/corpus/core/src/scripts/chat/search-chats.ts +11 -8
- package/corpus/core/src/secrets/register-framework-secrets.ts +1 -1
- package/corpus/core/src/secrets/storage.ts +47 -27
- package/corpus/core/src/server/action-discovery.ts +4 -0
- package/corpus/core/src/server/agent-chat-plugin.ts +95 -18
- package/corpus/core/src/server/core-routes-plugin.ts +45 -14
- package/corpus/core/src/server/csrf.ts +24 -5
- package/corpus/core/src/server/framework-request-handler.ts +34 -0
- package/corpus/core/src/server/google-realtime-session.ts +1 -36
- package/corpus/core/src/server/poll.ts +24 -2
- package/corpus/core/src/server/realtime-voice.ts +80 -24
- package/corpus/core/src/server/request-origin.ts +63 -0
- package/corpus/core/src/server/transcribe-voice.ts +1 -50
- package/corpus/core/src/server/voice-providers-status.ts +4 -3
- package/corpus/core/src/shared/cache-control.ts +2 -8
- package/corpus/core/src/styles/agent-native.css +1 -0
- package/corpus/core/src/styles/chat-history-list.css +313 -0
- package/corpus/core/src/templates/default/package.json +2 -2
- package/corpus/core/src/templates/headless/package.json +0 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +3 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/automations/SKILL.md +1 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
- package/corpus/core/src/templates/workspace-core/package.json +0 -1
- package/corpus/core/src/templates/workspace-root/package.json +0 -1
- package/corpus/core/src/triggers/actions.ts +11 -3
- package/corpus/core/src/triggers/types.ts +7 -1
- package/corpus/core/src/vite/client.ts +1 -0
- package/corpus/templates/analytics/AGENTS.md +7 -0
- package/corpus/templates/analytics/actions/bigquery.ts +26 -2
- package/corpus/templates/analytics/actions/compose-dashboard.ts +65 -37
- package/corpus/templates/analytics/actions/data-source-status.ts +18 -0
- package/corpus/templates/analytics/actions/mutate-dashboard.ts +73 -24
- package/corpus/templates/analytics/actions/reorder-dashboard-panels.ts +16 -13
- package/corpus/templates/analytics/actions/update-dashboard.ts +53 -42
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +5 -4
- package/corpus/templates/analytics/app/global.css +10 -0
- package/corpus/templates/analytics/app/pages/Ask.tsx +25 -2
- package/corpus/templates/analytics/changelog/2026-07-10-analytics-answers-simple-time-bounded-metrics-without-unnece.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-analytics-chat-reliably-uses-connected-data-sources-across-s.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-chat-threads-now-stay-clear-of-top-actions-and-fade-smoothly.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-context-chips-can-now-be-selected-and-removed-one-at-a-time-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-dashboard-edits-from-the-agent-and-the-ui-at-the-same-time-n.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-the-ask-composer-no-longer-carries-dashboard-or-panel-contex.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-the-ask-section-stays-highlighted-while-its-chat-history-is-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-10-timed-out-bigquery-jobs-are-now-cancelled-so-they-stop-consu.md +6 -0
- package/corpus/templates/analytics/package.json +1 -2
- package/corpus/templates/analytics/server/lib/bigquery.ts +91 -14
- package/corpus/templates/analytics/server/lib/dashboards-store.ts +154 -11
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +82 -7
- package/corpus/templates/assets/package.json +1 -2
- package/corpus/templates/brain/package.json +1 -2
- package/corpus/templates/calendar/package.json +1 -2
- package/corpus/templates/chat/package.json +1 -2
- package/corpus/templates/clips/changelog/2026-07-10-atomic-view-tracking.md +6 -0
- package/corpus/templates/clips/chrome-extension/package.json +3 -2
- package/corpus/templates/clips/desktop/package.json +6 -4
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +26 -13
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +4 -1
- package/corpus/templates/clips/package.json +1 -2
- package/corpus/templates/clips/server/db/schema.ts +29 -17
- package/corpus/templates/clips/server/plugins/db.ts +8 -0
- package/corpus/templates/clips/server/routes/api/view-event.post.ts +260 -105
- package/corpus/templates/content/.agents/skills/notion-integration/SKILL.md +16 -0
- package/corpus/templates/content/AGENTS.md +72 -62
- package/corpus/templates/content/actions/_content-database-source-adapters.ts +84 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +206 -96
- package/corpus/templates/content/actions/_notion-database-source-adapter.ts +216 -0
- package/corpus/templates/content/actions/_position-utils.ts +76 -0
- package/corpus/templates/content/actions/_property-utils.ts +31 -20
- package/corpus/templates/content/actions/add-database-item.ts +52 -39
- package/corpus/templates/content/actions/attach-content-database-source.ts +95 -11
- package/corpus/templates/content/actions/change-content-database-source-role.ts +24 -1
- package/corpus/templates/content/actions/configure-document-property.ts +36 -27
- package/corpus/templates/content/actions/create-content-database.ts +40 -30
- package/corpus/templates/content/actions/create-document.ts +39 -32
- package/corpus/templates/content/actions/duplicate-document-property.ts +37 -28
- package/corpus/templates/content/actions/list-notion-database-sources.ts +80 -0
- package/corpus/templates/content/actions/move-document.ts +64 -48
- package/corpus/templates/content/actions/refresh-content-database-source.ts +42 -3
- package/corpus/templates/content/actions/share-local-file-document.ts +36 -27
- package/corpus/templates/content/actions/suggest-source-join-key.ts +39 -16
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +89 -23
- package/corpus/templates/content/app/components/editor/database/settings.tsx +1 -1
- package/corpus/templates/content/app/hooks/use-content-database.ts +18 -1
- package/corpus/templates/content/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/content/app/i18n-data.ts +40 -0
- package/corpus/templates/content/changelog/2026-07-10-failed-row-creation-and-source-attach-now-show-an-error-inst.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-items-added-at-the-same-time-no-longer-end-up-with-identical.md +6 -0
- package/corpus/templates/content/changelog/2026-07-10-notion-databases-can-add-read-only-details-to-content-tables.md +6 -0
- package/corpus/templates/content/package.json +1 -2
- package/corpus/templates/content/parity/matrix.md +25 -25
- package/corpus/templates/content/parity/matrix.ts +1 -0
- package/corpus/templates/content/server/routes/api/documents/[id]/move.patch.ts +43 -26
- package/corpus/templates/content/shared/api.ts +16 -1
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +8 -4
- package/corpus/templates/design/AGENTS.md +12 -2
- package/corpus/templates/design/DEVELOPING.md +10 -6
- package/corpus/templates/design/actions/apply-visual-edit.ts +191 -6
- package/corpus/templates/design/actions/duplicate-design.ts +31 -25
- package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +5 -1
- package/corpus/templates/design/changelog/2026-07-10-duplicating-a-design-can-no-longer-produce-a-copy-with-missi.md +6 -0
- package/corpus/templates/design/changelog/2026-07-10-local-visual-edits-can-now-save-safe-leaf-text-class-and.md +6 -0
- package/corpus/templates/design/package.json +1 -1
- package/corpus/templates/design/shared/local-jsx-visual-edit.ts +388 -0
- package/corpus/templates/dispatch/package.json +1 -2
- package/corpus/templates/forms/actions/patch-form-fields.ts +82 -44
- package/corpus/templates/forms/changelog/2026-07-10-simultaneous-edits-to-different-form-fields-no-longer-overwr.md +6 -0
- package/corpus/templates/forms/package.json +1 -2
- package/corpus/templates/macros/package.json +1 -2
- package/corpus/templates/mail/app/components/email/EmailThread.tsx +3 -1
- package/corpus/templates/mail/changelog/2026-07-10-fixed-calendar-rsvp-buttons-in-emails-firing-duplicate-respo.md +6 -0
- package/corpus/templates/mail/package.json +1 -2
- package/corpus/templates/plan/actions/restore-plan-version.ts +126 -96
- package/corpus/templates/plan/changelog/2026-07-10-restoring-a-plan-version-can-no-longer-leave-a-plan-half-res.md +6 -0
- package/corpus/templates/plan/package.json +1 -2
- package/corpus/templates/plan/server/plans.ts +9 -2
- package/corpus/templates/slides/actions/list-decks.ts +28 -0
- package/corpus/templates/slides/app/components/deck/MermaidRenderer.tsx +41 -26
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +4 -8
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +2 -4
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +4 -8
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +5 -12
- package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +3 -6
- package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +3 -6
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +2 -5
- package/corpus/templates/slides/app/context/DeckContext.tsx +47 -4
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +11 -30
- package/corpus/templates/slides/app/pages/Index.tsx +2 -3
- package/corpus/templates/slides/app/root.tsx +0 -5
- package/corpus/templates/slides/changelog/2026-07-10-deck-lists-load-much-faster-and-no-longer-re-download-slide-.md +6 -0
- package/corpus/templates/slides/package.json +1 -2
- package/dist/a2a/auth-policy.d.ts +19 -0
- package/dist/a2a/auth-policy.d.ts.map +1 -1
- package/dist/a2a/auth-policy.js +32 -0
- package/dist/a2a/auth-policy.js.map +1 -1
- package/dist/a2a/client.d.ts +7 -0
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +2 -1
- package/dist/a2a/client.js.map +1 -1
- package/dist/agent/durable-background.d.ts +8 -5
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +15 -8
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/production-agent.d.ts +6 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +63 -26
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +9 -4
- package/dist/agent/run-store.js.map +1 -1
- package/dist/agent/thread-data-builder.d.ts +1 -0
- package/dist/agent/thread-data-builder.d.ts.map +1 -1
- package/dist/agent/thread-data-builder.js +6 -5
- package/dist/agent/thread-data-builder.js.map +1 -1
- package/dist/audit/actions/export-audit-events.d.ts +27 -0
- package/dist/audit/actions/export-audit-events.d.ts.map +1 -0
- package/dist/audit/actions/export-audit-events.js +144 -0
- package/dist/audit/actions/export-audit-events.js.map +1 -0
- package/dist/audit/store.d.ts +1 -0
- package/dist/audit/store.d.ts.map +1 -1
- package/dist/audit/store.js +8 -3
- package/dist/audit/store.js.map +1 -1
- package/dist/audit/types.d.ts +3 -0
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js.map +1 -1
- package/dist/chat-threads/store.d.ts +10 -0
- package/dist/chat-threads/store.d.ts.map +1 -1
- package/dist/chat-threads/store.js +6 -0
- package/dist/chat-threads/store.js.map +1 -1
- package/dist/cli/code-agent-executor.d.ts.map +1 -1
- package/dist/cli/code-agent-executor.js +1 -0
- package/dist/cli/code-agent-executor.js.map +1 -1
- package/dist/cli/code-agent-runs.d.ts +12 -0
- package/dist/cli/code-agent-runs.d.ts.map +1 -1
- package/dist/cli/code-agent-runs.js +1 -0
- package/dist/cli/code-agent-runs.js.map +1 -1
- package/dist/cli/doctor.d.ts +83 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +277 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.js +50 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/info.js +3 -3
- package/dist/cli/info.js.map +1 -1
- package/dist/cli/package-lifecycle.d.ts +50 -0
- package/dist/cli/package-lifecycle.d.ts.map +1 -0
- package/dist/cli/package-lifecycle.js +560 -0
- package/dist/cli/package-lifecycle.js.map +1 -0
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +3 -3
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts +11 -0
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +7 -4
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +83 -10
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat-adapter.js +7 -3
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/chat/ChatHistoryList.d.ts +88 -0
- package/dist/client/chat/ChatHistoryList.d.ts.map +1 -0
- package/dist/client/chat/ChatHistoryList.js +83 -0
- package/dist/client/chat/ChatHistoryList.js.map +1 -0
- package/dist/client/chat/index.d.ts +1 -0
- package/dist/client/chat/index.d.ts.map +1 -1
- package/dist/client/chat/index.js +1 -0
- package/dist/client/chat/index.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +13 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +10 -2
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/code-agent-chat-adapter.d.ts +17 -1
- package/dist/client/code-agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/code-agent-chat-adapter.js +47 -3
- package/dist/client/code-agent-chat-adapter.js.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts +11 -1
- package/dist/client/composer/RealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/RealtimeVoiceMode.js +5 -3
- package/dist/client/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/client/composer/TiptapComposer.d.ts +25 -2
- package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/client/composer/TiptapComposer.js +96 -5
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/composer/VoiceButton.d.ts.map +1 -1
- package/dist/client/composer/VoiceButton.js +21 -1
- package/dist/client/composer/VoiceButton.js.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.d.ts.map +1 -1
- package/dist/client/composer/useRealtimeVoiceMode.js +5 -0
- package/dist/client/composer/useRealtimeVoiceMode.js.map +1 -1
- package/dist/client/conversation/code-agent-transcript.d.ts +2 -0
- package/dist/client/conversation/code-agent-transcript.d.ts.map +1 -1
- package/dist/client/conversation/code-agent-transcript.js +3 -5
- package/dist/client/conversation/code-agent-transcript.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +2 -1
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +9 -1
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/client/voice-provider-status.d.ts +10 -0
- package/dist/client/voice-provider-status.d.ts.map +1 -0
- package/dist/client/voice-provider-status.js +32 -0
- package/dist/client/voice-provider-status.js.map +1 -0
- package/dist/code-agents/transcript-normalizer.d.ts +29 -0
- package/dist/code-agents/transcript-normalizer.d.ts.map +1 -1
- package/dist/code-agents/transcript-normalizer.js +55 -0
- package/dist/code-agents/transcript-normalizer.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +13 -11
- package/dist/deploy/build.js.map +1 -1
- package/dist/guards/db-tool-scoping.d.ts +38 -0
- package/dist/guards/db-tool-scoping.d.ts.map +1 -0
- package/dist/guards/db-tool-scoping.js +114 -0
- package/dist/guards/db-tool-scoping.js.map +1 -0
- package/dist/guards/index.d.ts +23 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/index.js +19 -0
- package/dist/guards/index.js.map +1 -0
- package/dist/guards/no-drizzle-push.d.ts +14 -0
- package/dist/guards/no-drizzle-push.d.ts.map +1 -0
- package/dist/guards/no-drizzle-push.js +97 -0
- package/dist/guards/no-drizzle-push.js.map +1 -0
- package/dist/guards/no-env-credentials.d.ts +36 -0
- package/dist/guards/no-env-credentials.d.ts.map +1 -0
- package/dist/guards/no-env-credentials.js +204 -0
- package/dist/guards/no-env-credentials.js.map +1 -0
- package/dist/guards/no-env-mutation.d.ts +23 -0
- package/dist/guards/no-env-mutation.d.ts.map +1 -0
- package/dist/guards/no-env-mutation.js +90 -0
- package/dist/guards/no-env-mutation.js.map +1 -0
- package/dist/guards/no-localhost-fallback.d.ts +30 -0
- package/dist/guards/no-localhost-fallback.d.ts.map +1 -0
- package/dist/guards/no-localhost-fallback.js +105 -0
- package/dist/guards/no-localhost-fallback.js.map +1 -0
- package/dist/guards/no-unscoped-credentials.d.ts +28 -0
- package/dist/guards/no-unscoped-credentials.d.ts.map +1 -0
- package/dist/guards/no-unscoped-credentials.js +199 -0
- package/dist/guards/no-unscoped-credentials.js.map +1 -0
- package/dist/guards/no-unscoped-queries.d.ts +32 -0
- package/dist/guards/no-unscoped-queries.d.ts.map +1 -0
- package/dist/guards/no-unscoped-queries.js +720 -0
- package/dist/guards/no-unscoped-queries.js.map +1 -0
- package/dist/guards/scan-utils.d.ts +28 -0
- package/dist/guards/scan-utils.d.ts.map +1 -0
- package/dist/guards/scan-utils.js +92 -0
- package/dist/guards/scan-utils.js.map +1 -0
- package/dist/guards/types.d.ts +28 -0
- package/dist/guards/types.d.ts.map +1 -0
- package/dist/guards/types.js +11 -0
- package/dist/guards/types.js.map +1 -0
- package/dist/integrations/a2a-continuation-processor.d.ts.map +1 -1
- package/dist/integrations/a2a-continuation-processor.js +25 -5
- package/dist/integrations/a2a-continuation-processor.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +55 -21
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/webhook-handler.d.ts.map +1 -1
- package/dist/integrations/webhook-handler.js +11 -0
- package/dist/integrations/webhook-handler.js.map +1 -1
- package/dist/localization/default-messages.d.ts +5 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +5 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/hosted-model-experiment.d.ts +39 -0
- package/dist/observability/hosted-model-experiment.d.ts.map +1 -0
- package/dist/observability/hosted-model-experiment.js +90 -0
- package/dist/observability/hosted-model-experiment.js.map +1 -0
- package/dist/observability/routes.d.ts +1 -1
- package/dist/observability/routes.d.ts.map +1 -1
- package/dist/observability/routes.js +16 -0
- package/dist/observability/routes.js.map +1 -1
- package/dist/observability/store.d.ts.map +1 -1
- package/dist/observability/store.js +4 -1
- package/dist/observability/store.js.map +1 -1
- package/dist/observability/traces.d.ts +6 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +28 -2
- package/dist/observability/traces.js.map +1 -1
- package/dist/org/accept-pending.d.ts.map +1 -1
- package/dist/org/accept-pending.js +9 -1
- package/dist/org/accept-pending.js.map +1 -1
- package/dist/org/migrations.d.ts +7 -2
- package/dist/org/migrations.d.ts.map +1 -1
- package/dist/org/migrations.js +41 -0
- package/dist/org/migrations.js.map +1 -1
- package/dist/package-lifecycle/index.d.ts +2 -0
- package/dist/package-lifecycle/index.d.ts.map +1 -0
- package/dist/package-lifecycle/index.js +2 -0
- package/dist/package-lifecycle/index.js.map +1 -0
- package/dist/package-lifecycle/manifest.d.ts +24 -0
- package/dist/package-lifecycle/manifest.d.ts.map +1 -0
- package/dist/package-lifecycle/manifest.js +81 -0
- package/dist/package-lifecycle/manifest.js.map +1 -0
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/custom-registry.d.ts +32 -1
- package/dist/provider-api/custom-registry.d.ts.map +1 -1
- package/dist/provider-api/custom-registry.js +41 -1
- package/dist/provider-api/custom-registry.js.map +1 -1
- package/dist/provider-api/index.d.ts +1 -1
- package/dist/provider-api/index.d.ts.map +1 -1
- package/dist/provider-api/index.js +1 -1
- package/dist/provider-api/index.js.map +1 -1
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +19 -1
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +43 -3
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/scripts/chat/search-chats.d.ts +1 -1
- package/dist/scripts/chat/search-chats.d.ts.map +1 -1
- package/dist/scripts/chat/search-chats.js +11 -8
- package/dist/scripts/chat/search-chats.js.map +1 -1
- package/dist/secrets/register-framework-secrets.js +1 -1
- package/dist/secrets/register-framework-secrets.js.map +1 -1
- package/dist/secrets/storage.d.ts.map +1 -1
- package/dist/secrets/storage.js +45 -27
- package/dist/secrets/storage.js.map +1 -1
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +4 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +11 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +74 -19
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/core-routes-plugin.d.ts +3 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +36 -12
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/csrf.js +18 -5
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/framework-request-handler.d.ts.map +1 -1
- package/dist/server/framework-request-handler.js +34 -0
- package/dist/server/framework-request-handler.js.map +1 -1
- package/dist/server/google-realtime-session.d.ts.map +1 -1
- package/dist/server/google-realtime-session.js +2 -34
- package/dist/server/google-realtime-session.js.map +1 -1
- package/dist/server/poll.d.ts.map +1 -1
- package/dist/server/poll.js +24 -2
- package/dist/server/poll.js.map +1 -1
- package/dist/server/realtime-voice.d.ts.map +1 -1
- package/dist/server/realtime-voice.js +64 -21
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/request-origin.d.ts +10 -0
- package/dist/server/request-origin.d.ts.map +1 -0
- package/dist/server/request-origin.js +60 -0
- package/dist/server/request-origin.js.map +1 -0
- package/dist/server/transcribe-voice.d.ts.map +1 -1
- package/dist/server/transcribe-voice.js +2 -48
- package/dist/server/transcribe-voice.js.map +1 -1
- package/dist/server/voice-providers-status.d.ts.map +1 -1
- package/dist/server/voice-providers-status.js +2 -3
- package/dist/server/voice-providers-status.js.map +1 -1
- package/dist/shared/cache-control.d.ts +4 -6
- package/dist/shared/cache-control.d.ts.map +1 -1
- package/dist/shared/cache-control.js +2 -7
- package/dist/shared/cache-control.js.map +1 -1
- package/dist/styles/agent-native.css +1 -0
- package/dist/styles/chat-history-list.css +313 -0
- package/dist/templates/default/package.json +2 -2
- package/dist/templates/headless/package.json +0 -1
- package/dist/templates/workspace-core/.agents/skills/audit-log/SKILL.md +3 -0
- package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +1 -1
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
- package/dist/templates/workspace-core/package.json +0 -1
- package/dist/templates/workspace-root/package.json +0 -1
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +8 -3
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/types.d.ts +7 -1
- package/dist/triggers/types.d.ts.map +1 -1
- package/dist/triggers/types.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +1 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/audit-log.mdx +2 -1
- package/docs/content/automations.mdx +7 -7
- package/docs/content/creating-templates.mdx +1 -1
- package/docs/content/internationalization.mdx +2 -1
- package/docs/content/locales/ar-SA/audit-log.mdx +2 -1
- package/docs/content/locales/ar-SA/automations.mdx +7 -7
- package/docs/content/locales/ar-SA/getting-started.mdx +7 -1
- package/docs/content/locales/ar-SA/internationalization.mdx +1 -1
- package/docs/content/locales/ar-SA/package-lifecycle.mdx +19 -0
- package/docs/content/locales/ar-SA/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/ar-SA/security.mdx +8 -0
- package/docs/content/locales/de-DE/audit-log.mdx +2 -1
- package/docs/content/locales/de-DE/automations.mdx +7 -7
- package/docs/content/locales/de-DE/getting-started.mdx +7 -1
- package/docs/content/locales/de-DE/internationalization.mdx +1 -1
- package/docs/content/locales/de-DE/package-lifecycle.mdx +22 -0
- package/docs/content/locales/de-DE/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/de-DE/security.mdx +8 -0
- package/docs/content/locales/es-ES/audit-log.mdx +2 -1
- package/docs/content/locales/es-ES/automations.mdx +7 -7
- package/docs/content/locales/es-ES/getting-started.mdx +7 -1
- package/docs/content/locales/es-ES/internationalization.mdx +1 -1
- package/docs/content/locales/es-ES/package-lifecycle.mdx +22 -0
- package/docs/content/locales/es-ES/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/es-ES/security.mdx +8 -0
- package/docs/content/locales/fr-FR/audit-log.mdx +2 -1
- package/docs/content/locales/fr-FR/automations.mdx +7 -7
- package/docs/content/locales/fr-FR/getting-started.mdx +7 -1
- package/docs/content/locales/fr-FR/internationalization.mdx +1 -1
- package/docs/content/locales/fr-FR/package-lifecycle.mdx +21 -0
- package/docs/content/locales/fr-FR/sandbox-adapters.mdx +19 -8
- package/docs/content/locales/fr-FR/security.mdx +8 -0
- package/docs/content/locales/hi-IN/audit-log.mdx +2 -1
- package/docs/content/locales/hi-IN/automations.mdx +7 -7
- package/docs/content/locales/hi-IN/getting-started.mdx +7 -1
- package/docs/content/locales/hi-IN/internationalization.mdx +1 -1
- package/docs/content/locales/hi-IN/package-lifecycle.mdx +20 -0
- package/docs/content/locales/hi-IN/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/hi-IN/security.mdx +8 -0
- package/docs/content/locales/ja-JP/audit-log.mdx +2 -1
- package/docs/content/locales/ja-JP/automations.mdx +7 -7
- package/docs/content/locales/ja-JP/getting-started.mdx +7 -1
- package/docs/content/locales/ja-JP/internationalization.mdx +1 -1
- package/docs/content/locales/ja-JP/package-lifecycle.mdx +21 -0
- package/docs/content/locales/ja-JP/sandbox-adapters.mdx +17 -6
- package/docs/content/locales/ja-JP/security.mdx +8 -0
- package/docs/content/locales/ko-KR/audit-log.mdx +2 -1
- package/docs/content/locales/ko-KR/automations.mdx +7 -7
- package/docs/content/locales/ko-KR/getting-started.mdx +7 -1
- package/docs/content/locales/ko-KR/internationalization.mdx +1 -1
- package/docs/content/locales/ko-KR/package-lifecycle.mdx +20 -0
- package/docs/content/locales/ko-KR/sandbox-adapters.mdx +17 -6
- package/docs/content/locales/ko-KR/security.mdx +8 -0
- package/docs/content/locales/pt-BR/audit-log.mdx +2 -1
- package/docs/content/locales/pt-BR/automations.mdx +7 -7
- package/docs/content/locales/pt-BR/getting-started.mdx +7 -1
- package/docs/content/locales/pt-BR/internationalization.mdx +1 -1
- package/docs/content/locales/pt-BR/package-lifecycle.mdx +21 -0
- package/docs/content/locales/pt-BR/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/pt-BR/security.mdx +8 -0
- package/docs/content/locales/zh-CN/audit-log.mdx +2 -1
- package/docs/content/locales/zh-CN/automations.mdx +7 -7
- package/docs/content/locales/zh-CN/getting-started.mdx +6 -4
- package/docs/content/locales/zh-CN/internationalization.mdx +1 -1
- package/docs/content/locales/zh-CN/package-lifecycle.mdx +19 -0
- package/docs/content/locales/zh-CN/sandbox-adapters.mdx +17 -6
- package/docs/content/locales/zh-CN/security.mdx +8 -0
- package/docs/content/locales/zh-TW/audit-log.mdx +2 -1
- package/docs/content/locales/zh-TW/automations.mdx +7 -7
- package/docs/content/locales/zh-TW/getting-started.mdx +6 -4
- package/docs/content/locales/zh-TW/internationalization.mdx +1 -1
- package/docs/content/locales/zh-TW/package-lifecycle.mdx +19 -0
- package/docs/content/locales/zh-TW/sandbox-adapters.mdx +18 -7
- package/docs/content/locales/zh-TW/security.mdx +8 -0
- package/docs/content/package-lifecycle.mdx +51 -0
- package/docs/content/sandbox-adapters.mdx +16 -5
- package/package.json +12 -3
- package/src/templates/default/package.json +2 -2
- package/src/templates/headless/package.json +0 -1
- package/src/templates/workspace-core/.agents/skills/audit-log/SKILL.md +3 -0
- package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +1 -1
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +20 -0
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +8 -4
- package/src/templates/workspace-core/package.json +0 -1
- package/src/templates/workspace-root/package.json +0 -1
- package/corpus/templates/slides/app/components/ui/toast.tsx +0 -1
- package/corpus/templates/slides/app/components/ui/toaster.tsx +0 -1
- package/corpus/templates/slides/app/hooks/use-toast.ts +0 -1
|
@@ -73,10 +73,11 @@ Everything in `audit` is optional. The minimum useful addition is `target: () =>
|
|
|
73
73
|
|
|
74
74
|
## Reading the trail {#reading}
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Three read actions are available to the agent **and** the frontend in every app, scoped in SQL to the caller — they never return another tenant's rows:
|
|
77
77
|
|
|
78
78
|
- **`list-audit-events`** — filter by `targetType` / `targetId`, `actorKind` (`agent` | `human` | `system`), `status`, `threadId` / `turnId`, `action`, `sinceMs`, and `limit`.
|
|
79
79
|
- **`get-audit-event`** — one event by id, including its redacted input payload.
|
|
80
|
+
- **`export-audit-events`** — bulk-export the trail as CSV or NDJSON instead of hand-paging `list-audit-events`, for offline compliance pulls. Takes the same filters as `list-audit-events` (minus `limit`) plus `format` (`csv` | `ndjson`, default `csv`) and `maxRows` (default 5000, hard cap 10000), and returns `{ content, rowCount, truncated, format }` — `truncated: true` means more rows matched than `maxRows` allowed. It's itself a sensitive read, audited via `audit: { onRead: true }`.
|
|
80
81
|
|
|
81
82
|
Build an activity feed or a "who changed this" line by calling `list-audit-events` from the UI with `useActionQuery` — never hand-write a fetch to the audit table:
|
|
82
83
|
|
|
@@ -114,13 +114,13 @@ The third path — writing the `jobs/<name>.md` file by hand via `resourcePut`
|
|
|
114
114
|
|
|
115
115
|
Automations share every field in the [recurring-jobs frontmatter table](/docs/recurring-jobs#frontmatter). These additional fields control event triggers, conditions, and the execution mode:
|
|
116
116
|
|
|
117
|
-
| Field | Type
|
|
118
|
-
| ------------- |
|
|
119
|
-
| `triggerType` | `"schedule"` \| `"event"`
|
|
120
|
-
| `event` | string
|
|
121
|
-
| `condition` | string
|
|
122
|
-
| `mode` | `"agentic"`
|
|
123
|
-
| `domain` | string
|
|
117
|
+
| Field | Type | Default | Description |
|
|
118
|
+
| ------------- | ------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | How the automation fires |
|
|
120
|
+
| `event` | string | _(optional)_ | Event name to subscribe to (event triggers only) |
|
|
121
|
+
| `condition` | string | _(optional)_ | Natural-language condition evaluated before dispatch |
|
|
122
|
+
| `mode` | `"agentic"` | `"agentic"` | Full agent loop (the only supported mode). `"deterministic"` was removed — it was never implemented, and automations that set it never fired. |
|
|
123
|
+
| `domain` | string | _(optional)_ | Grouping tag (mail, calendar, clips, etc.) |
|
|
124
124
|
|
|
125
125
|
For an event trigger, `schedule` is `""` (empty); for a schedule trigger it carries the cron expression. The dispatcher also writes the same managed `lastRun` / `lastStatus` / `lastError` fields the scheduler does, plus a `"skipped"` status when a condition evaluates to false.
|
|
126
126
|
|
|
@@ -528,4 +528,4 @@ workspace pointed at current build output.
|
|
|
528
528
|
- [**Multi-App Workspace**](/docs/multi-app-workspace) — make the template fit
|
|
529
529
|
naturally alongside sibling apps and Dispatch.
|
|
530
530
|
- [**Templates**](/docs/cloneable-saas) — turn a template into a
|
|
531
|
-
publishable
|
|
531
|
+
publishable product you can share and deploy.
|
|
@@ -59,7 +59,8 @@ export const i18nCatalog = {
|
|
|
59
59
|
|
|
60
60
|
Always bundle `en-US`. Dynamic-import non-English catalogs so users only
|
|
61
61
|
download the active locale. The supported locale codes are `en-US`, `zh-CN`,
|
|
62
|
-
`es-ES`, `fr-FR`, `de-DE`, `ja-JP`, `ko-KR`, `pt-BR`, `hi-IN`, and
|
|
62
|
+
`zh-TW`, `es-ES`, `fr-FR`, `de-DE`, `ja-JP`, `ko-KR`, `pt-BR`, `hi-IN`, and
|
|
63
|
+
`ar-SA`.
|
|
63
64
|
|
|
64
65
|
## UI
|
|
65
66
|
|
|
@@ -73,10 +73,11 @@ export default defineAction({
|
|
|
73
73
|
|
|
74
74
|
## قراءة المسار {#reading}
|
|
75
75
|
|
|
76
|
-
تتوفر
|
|
76
|
+
تتوفر ثلاث قراءات actions للوكيل **و** الواجهة الأمامية في كل تطبيق، ويتم تحديد نطاقها في SQL للمتصل - ولا تُرجع أبدًا صفوف مستأجر آخر:
|
|
77
77
|
|
|
78
78
|
- **`list-audit-events`** — التصفية حسب `targetType` / `targetId`، `actorKind` (`agent` | `human` | `system`)، `status`، `threadId` / `turnId`، `action`، `sinceMs`، و`limit`.
|
|
79
79
|
- **`get-audit-event`** — حدث واحد حسب المعرف، بما في ذلك حمولة الإدخال المنقحة الخاصة به.
|
|
80
|
+
- **`export-audit-events`** — تصدير السجل بالجملة بصيغة CSV أو NDJSON بدلاً من ترقيم `list-audit-events` يدويًا، لعمليات السحب دون اتصال لأغراض الامتثال. تأخذ نفس عوامل تصفية `list-audit-events` (بدون `limit`) بالإضافة إلى `format` (`csv` | `ndjson`، الافتراضي `csv`) و`maxRows` (الافتراضي 5000، الحد الأقصى 10000)، وتُرجع `{ content, rowCount, truncated, format }` — تعني `truncated: true` أن عدد الصفوف المطابقة تجاوز `maxRows`. وهي نفسها قراءة حساسة، يتم تدقيقها عبر `audit: { onRead: true }`.
|
|
80
81
|
|
|
81
82
|
أنشئ خلاصة نشاط أو سطر "من قام بتغيير هذا" عن طريق استدعاء `list-audit-events` من UI باستخدام `useActionQuery` — لا تكتب أبدًا يدويًا أي جلب إلى جدول التدقيق:
|
|
82
83
|
|
|
@@ -114,13 +114,13 @@ description: "عمليات التشغيل التلقائي المجدولة وا
|
|
|
114
114
|
|
|
115
115
|
تشارك عمليات التشغيل الآلي كل حقل في [recurring-jobs frontmatter table](/docs/recurring-jobs#frontmatter). تتحكم هذه الحقول الإضافية في مشغلات الأحداث وشروطها ووضع التنفيذ:
|
|
116
116
|
|
|
117
|
-
| الحقل | اكتب
|
|
118
|
-
| ------------- |
|
|
119
|
-
| `triggerType` | `"schedule"` \| `"event"`
|
|
120
|
-
| `event` | سلسلة
|
|
121
|
-
| `condition` | سلسلة
|
|
122
|
-
| `mode` | `"agentic"`
|
|
123
|
-
| `domain` | سلسلة
|
|
117
|
+
| الحقل | اكتب | الافتراضي | الوصف |
|
|
118
|
+
| ------------- | ------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | كيفية تشغيل الأتمتة |
|
|
120
|
+
| `event` | سلسلة | _(اختياري)_ | اسم الحدث المطلوب الاشتراك فيه (مشغّلات الحدث فقط) |
|
|
121
|
+
| `condition` | سلسلة | _(اختياري)_ | تم تقييم حالة اللغة الطبيعية قبل الإرسال |
|
|
122
|
+
| `mode` | `"agentic"` | `"agentic"` | حلقة الوكيل الكاملة (الوضع الوحيد المدعوم). تمت إزالة `"deterministic"` — لم يتم تنفيذه قط، وعمليات الأتمتة التي تحدده لم تُطلق أبدًا. |
|
|
123
|
+
| `domain` | سلسلة | _(اختياري)_ | علامة التجميع (البريد، التقويم، المقاطع, إلخ.) |
|
|
124
124
|
|
|
125
125
|
بالنسبة لمشغل الحدث، `schedule` هو `""` (فارغ)؛ بالنسبة لمشغل الجدول الزمني فإنه يحمل تعبير cron. يكتب المرسل أيضًا نفس حقول `lastRun` / `lastStatus` / `lastError` المُدارة التي يكتبها المجدول، بالإضافة إلى حالة `"skipped"` عندما يتم تقييم الشرط إلى خطأ.
|
|
126
126
|
|
|
@@ -163,7 +163,13 @@ export const responseInsights = table("response_insights", {
|
|
|
163
163
|
/>
|
|
164
164
|
</WireframeBlock>
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
## 6. دع agent يتنقل {#agent-navigation}
|
|
167
|
+
|
|
168
|
+
يتضمن قالب Chat action من نوع `view-screen` و `navigate`. وسّعهما مع نمو تطبيقك:
|
|
169
|
+
|
|
170
|
+
- يجب أن يقرأ `view-screen` حالة التطبيق ويُعيد المسار الحالي، والرؤية المحددة، والفلاتر النشطة، وأي سياق صفحة مضغوط يحتاجه agent.
|
|
171
|
+
- يجب أن يكتب `navigate` مسارًا من نفس الأصل مثل `/response-insights` عندما يقرر agent أن على المستخدم معاينة النتيجة بصريًا.
|
|
172
|
+
- يمكن لنتائج action تضمين روابط مثل `href: "/response-insights"` كي تعرض الدردشة زر "افتح رؤى الردود" بشكل صريح.
|
|
167
173
|
|
|
168
174
|
عندما تفتح الدردشة الكاملة صفحة تطبيق، استخدم `AgentChatSurface` و `AgentSidebar` و `useAgentChatHomeHandoff` و `useAgentChatHomeHandoffLinks` و `chatViewTransition` من [Agent Surfaces](/docs/agent-surfaces#rich-chat) كي تنتقل الدردشة إلى اللوحة الجانبية مع الحفاظ على نفس thread.
|
|
169
175
|
|
|
@@ -59,7 +59,7 @@ export const i18nCatalog = {
|
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
حزمة `en-US` دائمًا. يتم استيراد الكتالوجات غير الإنجليزية بشكل ديناميكي للمستخدمين فقط
|
|
62
|
-
قم بتنزيل اللغة النشطة. الرموز المحلية المدعومة هي `en-US`، `zh-CN`،
|
|
62
|
+
قم بتنزيل اللغة النشطة. الرموز المحلية المدعومة هي `en-US`، `zh-CN`، `zh-TW`،
|
|
63
63
|
`es-ES`، و`fr-FR`، و`de-DE`، و`ja-JP`، و`ko-KR`، و`pt-BR`، و`hi-IN`، و`ar-SA`.
|
|
64
64
|
|
|
65
65
|
## UI
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: دورة حياة الحزم
|
|
3
|
+
description: فحص حزم Agent Native المعتمدة على بيان وإضافتها وإخراجها بأمان.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# دورة حياة الحزم
|
|
7
|
+
|
|
8
|
+
يمكن للحزم القابلة لإعادة الاستخدام نشر ملف `agent-native.package.json` ثابت ذي
|
|
9
|
+
إصدار. تقرأ أداة CLI ملف JSON فقط أثناء الفحص ولا تشغّل شيفرة الحزمة.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
agent-native package inspect @agent-native/scheduling --json
|
|
13
|
+
agent-native package add @agent-native/scheduling --apply
|
|
14
|
+
agent-native package eject @agent-native/scheduling --apply
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
الإضافة والإخراج معاينة افتراضيًا. يسمح `--apply` بالكتابة وتشغيل مدير الحزم. ترفض
|
|
18
|
+
الأداة التعارضات والتخطيطات غير المعروفة، وتستعيد الملفات وملفات القفل عند فشل التثبيت.
|
|
19
|
+
يدعم الإصدار التجريبي إخراج Scheduling فقط، بينما يبقى Pinpoint مؤجلاً.
|
|
@@ -103,6 +103,10 @@ search: "المحولات، محول وضع الحماية، محول cli، رم
|
|
|
103
103
|
path: "index.ts",
|
|
104
104
|
note: "الاختيار: getSandboxAdapter() / registerSandboxAdapter()",
|
|
105
105
|
},
|
|
106
|
+
{
|
|
107
|
+
path: "background.ts",
|
|
108
|
+
note: "علامة قائمة الانتظار الدائمة ودورة حياة التنفيذ في الخلفية",
|
|
109
|
+
},
|
|
106
110
|
{
|
|
107
111
|
path: "local-child-process-adapter.ts",
|
|
108
112
|
note: "ال backend الافتراضي: Node child process مقيد",
|
|
@@ -183,12 +187,17 @@ registerSandboxAdapter(adapter) → AGENT_NATIVE_SANDBOX → local default
|
|
|
183
187
|
|
|
184
188
|
### `AGENT_NATIVE_SANDBOX` env var {#env}
|
|
185
189
|
|
|
186
|
-
يحدد
|
|
190
|
+
يحدد محولًا مضمنًا حسب المعرف. كل من `local` (الافتراضي) و`background` موصولان؛ تعود القيم غير المعروفة إلى `local` بدلاً من فشل التشغيل.
|
|
187
191
|
|
|
188
192
|
```bash
|
|
189
|
-
AGENT_NATIVE_SANDBOX=local
|
|
193
|
+
AGENT_NATIVE_SANDBOX=local # الافتراضي — صريح
|
|
194
|
+
AGENT_NATIVE_SANDBOX=background # وضع كل استدعاء run-code في قائمة انتظار دائمة
|
|
190
195
|
```
|
|
191
196
|
|
|
197
|
+
يخزن `background` التعليمة البرمجية الأولية في `sandbox_executions` ويعيد فورًا `executionId` مع `status: "queued"`. يبدأ الإرسال الذاتي الموقّع استدعاءً جديدًا في بيئة serverless؛ ويبدأ Node طويل العمر عملاً منفصلًا داخل العملية؛ وتعيد عملية التحقق من الحالة والمسح الدوري تشغيل الإرسالات المفقودة أو عقود الإيجار المنتهية. تحقّق من التنفيذ لاحقًا للحصول على النتيجة المحفوظة.
|
|
198
|
+
|
|
199
|
+
`BackgroundQueueAdapter` هو علامة لقائمة انتظار دائمة، وليس المنفذ. يستخدم العمل الموجود في قائمة الانتظار محول تنفيذ مسجلًا غير قائم على قائمة الانتظار عند توفره؛ وإلا فإنه يعود إلى عملية Node الفرعية المحلية. لا يوفر تحديد `background` وحده عزلاً عن بُعد أو داخل حاوية، ولا يجعل وقت تشغيل edge متوافقًا مع `node:child_process`.
|
|
200
|
+
|
|
192
201
|
### `registerSandboxAdapter()` {#register}
|
|
193
202
|
|
|
194
203
|
تتجاوز العملية المضيفة الواجهة الخلفية لجميع استدعاءات `run-code` اللاحقة من خلال `index.ts` الخاص بالوصلة - على سبيل المثال، لتشغيل كل استدعاء في حاوية بعيدة:
|
|
@@ -213,13 +222,15 @@ registerSandboxAdapter(new RemoteSandboxAdapter());
|
|
|
213
222
|
|
|
214
223
|
## التماس لعداء متين {#durable}
|
|
215
224
|
|
|
216
|
-
|
|
225
|
+
يوفر المحول المضمن `background` بالفعل قائمة انتظار دائمة وميزانية تنفيذ جديدة، بينما يظل التنفيذ الفعلي مستخدمًا لمحول غير قائم على قائمة الانتظار أو للعملية الفرعية المحلية الاحتياطية. يمكن لمحول بعيد أو معزول مسجل بشكل منفصل (Docker أو مشغل بنمط Vercel-Sandbox) توفير حدود تنفيذ مختلفة وتنفيذ العمل في الخلفية لكل استدعاء أيضًا.
|
|
226
|
+
|
|
227
|
+
مثل هذا المحول سوف:
|
|
217
228
|
|
|
218
|
-
1.
|
|
219
|
-
2.
|
|
220
|
-
3.
|
|
229
|
+
1. ينفذ `SandboxAdapter.run` في وقت تشغيل خارج العملية.
|
|
230
|
+
2. ينشئ نفقًا لجسر loopback (أو يعيد توجيه استدعاءات الجسر إلى العملية الأصلية).
|
|
231
|
+
3. يوفر عزلاً عن بُعد أو داخل حاوية بشكل مستقل عن دورة حياة قائمة الانتظار الدائمة المشحونة.
|
|
221
232
|
|
|
222
|
-
|
|
233
|
+
سجله برمجيًا عبر `registerSandboxAdapter()`. لا تحتاج حلقة الوكيل و`run-code.ts` إلى التغيير.
|
|
223
234
|
|
|
224
235
|
> [!TIP]
|
|
225
236
|
> يُصدر مخطط `agent-native add sandbox docker` وصفة كاملة ومكتفية ذاتيًا لتنفيذ محول Docker مقابل هذا التماس. انظر [Blueprint Installer](/docs/blueprint-installer).
|
|
@@ -415,3 +415,11 @@ AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK=1
|
|
|
415
415
|
```
|
|
416
416
|
|
|
417
417
|
لا تزال عمليات الكتابة السرية لنطاق مساحة العمل تتطلب دور مالك/مسؤول المؤسسة بغض النظر عن هذه العلامة.
|
|
418
|
+
|
|
419
|
+
## الخطوات التالية
|
|
420
|
+
|
|
421
|
+
- [**Authentication**](/docs/authentication) — أوضاع المصادقة، ونطاقات الكوكيز (cookie)، وتفاصيل الجلسة التي تُبنى عليها هذه الصفحة
|
|
422
|
+
- [**Multi-Tenancy**](/docs/multi-tenancy) — نموذج عضوية المؤسسة وراء تحديد النطاق بـ `org_id`
|
|
423
|
+
- [**Sharing**](/docs/sharing) — نمط `ownableColumns()` وحارس الوصول المُطبَّق على الموارد القابلة للمشاركة
|
|
424
|
+
- [**Messaging**](/docs/messaging#env-vars) — أسرار توقيع webhook لكل تكامل، المُشار إليها في قائمة التحقق أعلاه
|
|
425
|
+
- [**Deployment**](/docs/deployment) — متغيرات بيئة الإنتاج التي تفترض قائمة التحقق هذه أنها مُعيَّنة
|
|
@@ -73,10 +73,11 @@ Alles in `audit` ist optional. Der minimale nützliche Zusatz ist `target: () =>
|
|
|
73
73
|
|
|
74
74
|
## Die Spur lesen {#reading}
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Drei gelesene actions stehen dem Agenten **und** dem Frontend in jeder App zur Verfügung, in SQL auf den Anrufer beschränkt – sie geben niemals die Zeilen eines anderen Mandanten zurück:
|
|
77
77
|
|
|
78
78
|
- **`list-audit-events`** – Filter nach `targetType` / `targetId`, `actorKind` (`agent` | `human` | `system`), `status`, `threadId` / `turnId`, `action`, `sinceMs` und `limit`.
|
|
79
79
|
- **`get-audit-event`** – ein Ereignis nach ID, einschließlich seiner redigierten Eingabenutzlast.
|
|
80
|
+
- **`export-audit-events`** – exportiert die Spur gesammelt als CSV oder NDJSON statt `list-audit-events` manuell zu paginieren, für Offline-Compliance-Abzüge. Nimmt dieselben Filter wie `list-audit-events` (ohne `limit`) sowie `format` (`csv` | `ndjson`, Standard `csv`) und `maxRows` (Standard 5000, harte Obergrenze 10000) und liefert `{ content, rowCount, truncated, format }` zurück – `truncated: true` bedeutet, dass mehr Zeilen übereinstimmten, als `maxRows` erlaubte. Es ist selbst ein sensibler Lesevorgang, geprüft über `audit: { onRead: true }`.
|
|
80
81
|
|
|
81
82
|
Erstellen Sie einen Aktivitäts-Feed oder eine „Wer hat das geändert“-Zeile, indem Sie `list-audit-events` vom UI mit `useActionQuery` aufrufen – schreiben Sie niemals einen Abruf in die Prüftabelle von Hand:
|
|
82
83
|
|
|
@@ -114,13 +114,13 @@ Der dritte Pfad – das manuelle Schreiben der `jobs/<name>.md`-Datei über `res
|
|
|
114
114
|
|
|
115
115
|
Automatisierungen teilen sich jedes Feld im [recurring-jobs frontmatter table](/docs/recurring-jobs#frontmatter). Diese zusätzlichen Felder steuern Ereignisauslöser, Bedingungen und den Ausführungsmodus:
|
|
116
116
|
|
|
117
|
-
| Feld | Typ
|
|
118
|
-
| ------------- |
|
|
119
|
-
| `triggerType` | `"schedule"` \| `"event"`
|
|
120
|
-
| `event` | Zeichenfolge
|
|
121
|
-
| `condition` | Zeichenfolge
|
|
122
|
-
| `mode` | `"agentic"`
|
|
123
|
-
| `domain` | Zeichenfolge
|
|
117
|
+
| Feld | Typ | Standard | Beschreibung |
|
|
118
|
+
| ------------- | ------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | Wie die Automatisierung ausgelöst wird |
|
|
120
|
+
| `event` | Zeichenfolge | _(optional)_ | Ereignisname zum Abonnieren (nur Ereignisauslöser) |
|
|
121
|
+
| `condition` | Zeichenfolge | _(optional)_ | Zustand in natürlicher Sprache wird vor dem Versand ausgewertet |
|
|
122
|
+
| `mode` | `"agentic"` | `"agentic"` | Vollständige Agentenschleife (der einzige unterstützte Modus). `"deterministic"` wurde entfernt – es wurde nie implementiert, und Automatisierungen, die es festlegten, wurden nie ausgelöst. |
|
|
123
|
+
| `domain` | Zeichenfolge | _(optional)_ | Gruppierungs-Tag (E-Mail, Kalender, Clips usw.) |
|
|
124
124
|
|
|
125
125
|
Für einen Ereignisauslöser ist `schedule` `""` (leer); Für einen Zeitplanauslöser trägt es den Cron-Ausdruck. Der Dispatcher schreibt außerdem dieselben verwalteten `lastRun`-/`lastStatus`-/`lastError`-Felder wie der Scheduler, plus einen `"skipped"`-Status, wenn eine Bedingung als „falsch“ ausgewertet wird.
|
|
126
126
|
|
|
@@ -163,7 +163,13 @@ Fügen Sie eine Route `/response-insights` mit `useActionQuery("list-response-in
|
|
|
163
163
|
/>
|
|
164
164
|
</WireframeBlock>
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
## 6. Agent navigieren lassen {#agent-navigation}
|
|
167
|
+
|
|
168
|
+
Die Chat-Vorlage enthält die actions `view-screen` und `navigate`. Erweitern Sie sie, wenn Ihre App wächst:
|
|
169
|
+
|
|
170
|
+
- `view-screen` sollte den application state lesen und die aktuelle Route, das ausgewählte Insight, aktive Filter und jeden knappen Seitenkontext zurückgeben, den der Agent braucht.
|
|
171
|
+
- `navigate` sollte einen same-origin Pfad wie `/response-insights` schreiben, wenn der Agent entscheidet, dass der Nutzer das Ergebnis visuell prüfen soll.
|
|
172
|
+
- Action-Ergebnisse können Links wie `href: "/response-insights"` enthalten, damit der Chat einen expliziten Button „Antwort-Insights öffnen“ anbieten kann.
|
|
167
173
|
|
|
168
174
|
Wenn der Vollseiten-Chat eine App-Seite öffnet, verwenden Sie `AgentChatSurface`, `AgentSidebar`, `useAgentChatHomeHandoff`, `useAgentChatHomeHandoffLinks` und `chatViewTransition` aus [Agent Surfaces](/docs/agent-surfaces#rich-chat), damit der Chat in die Seitenleiste gleitet und derselbe Thread erhalten bleibt.
|
|
169
175
|
|
|
@@ -59,7 +59,7 @@ export const i18nCatalog = {
|
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Always bundle `en-US`. Dynamic-import non-English catalogs so users only
|
|
62
|
-
Laden Sie das aktive Gebietsschema herunter. Die unterstützten Gebietsschemacodes sind `en-US`, `zh-CN`,
|
|
62
|
+
Laden Sie das aktive Gebietsschema herunter. Die unterstützten Gebietsschemacodes sind `en-US`, `zh-CN`, `zh-TW`,
|
|
63
63
|
`es-ES`, `fr-FR`, `de-DE`, `ja-JP`, `ko-KR`, `pt-BR`, `hi-IN` und `ar-SA`.
|
|
64
64
|
|
|
65
65
|
## UI
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Paketlebenszyklus
|
|
3
|
+
description: Manifestgesteuerte Agent-Native-Pakete sicher prüfen, hinzufügen und auswerfen.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Paketlebenszyklus
|
|
7
|
+
|
|
8
|
+
Wiederverwendbare Pakete können ein statisches, versioniertes
|
|
9
|
+
`agent-native.package.json` veröffentlichen. Die CLI liest nur diese JSON-Datei
|
|
10
|
+
und führt beim Prüfen keinen Paketcode aus.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
agent-native package inspect @agent-native/scheduling --json
|
|
14
|
+
agent-native package add @agent-native/scheduling --apply
|
|
15
|
+
agent-native package eject @agent-native/scheduling --apply
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Hinzufügen und Auswerfen sind standardmäßig Vorschauen. Erst `--apply` schreibt
|
|
19
|
+
Dateien und startet den erkannten Paketmanager. Kollisionen und unbekannte
|
|
20
|
+
Layouts werden abgelehnt; bei einem Installationsfehler werden Dateien und
|
|
21
|
+
Lockdateien zurückgesetzt. Zunächst unterstützt nur Scheduling das Auswerfen;
|
|
22
|
+
Pinpoint bleibt bis nach dem Pilotprojekt zurückgestellt.
|
|
@@ -103,6 +103,10 @@ Die Naht befindet sich im Kern bei `packages/core/src/coding-tools/sandbox/` –
|
|
|
103
103
|
path: "index.ts",
|
|
104
104
|
note: "Auswahl: getSandboxAdapter() / registerSandboxAdapter()",
|
|
105
105
|
},
|
|
106
|
+
{
|
|
107
|
+
path: "background.ts",
|
|
108
|
+
note: "Marker für die dauerhafte Warteschlange und Lebenszyklus der Hintergrundausführung",
|
|
109
|
+
},
|
|
106
110
|
{
|
|
107
111
|
path: "local-child-process-adapter.ts",
|
|
108
112
|
note: "Das Standard-Backend: gesperrter Node-Child-Prozess",
|
|
@@ -183,12 +187,17 @@ registerSandboxAdapter(adapter) → AGENT_NATIVE_SANDBOX → local default
|
|
|
183
187
|
|
|
184
188
|
### `AGENT_NATIVE_SANDBOX` Umgebungsvariable {#env}
|
|
185
189
|
|
|
186
|
-
Wählt einen integrierten Adapter anhand der ID aus.
|
|
190
|
+
Wählt einen integrierten Adapter anhand der ID aus. Sowohl `local` (Standard) als auch `background` sind eingebunden; unbekannte Werte fallen auf `local` zurück, statt die Ausführung fehlschlagen zu lassen.
|
|
187
191
|
|
|
188
192
|
```bash
|
|
189
|
-
AGENT_NATIVE_SANDBOX=local
|
|
193
|
+
AGENT_NATIVE_SANDBOX=local # die Standardeinstellung – explizit
|
|
194
|
+
AGENT_NATIVE_SANDBOX=background # jeden run-code-Aufruf dauerhaft einreihen
|
|
190
195
|
```
|
|
191
196
|
|
|
197
|
+
`background` speichert den Rohcode in `sandbox_executions` und gibt sofort eine `executionId` mit `status: "queued"` zurück. Ein signierter Self-Dispatch startet einen neuen Serverless-Aufruf; langlebiges Node startet abgekoppelte Arbeit im Prozess; Statusabfragen und der periodische Sweep treiben verlorene Dispatches oder abgelaufene Leases erneut an. Das gespeicherte Ergebnis wird später durch Abfragen der Ausführung gelesen.
|
|
198
|
+
|
|
199
|
+
`BackgroundQueueAdapter` ist ein Marker für die dauerhafte Warteschlange, nicht der Executor. Eingereihte Arbeit verwendet einen registrierten, nicht warteschlangenbasierten Ausführungsadapter, falls vorhanden; andernfalls fällt sie auf den lokalen Child-Prozess zurück. `background` allein bietet keine Remote- oder Container-Isolation und macht eine Edge-Laufzeit nicht mit `node:child_process` kompatibel.
|
|
200
|
+
|
|
192
201
|
### `registerSandboxAdapter()` {#register}
|
|
193
202
|
|
|
194
203
|
Ein Hostprozess überschreibt das Backend für alle nachfolgenden `run-code`-Aufrufe über den `index.ts` der Seam – zum Beispiel, um jeden Aufruf in einem Remote-Container auszuführen:
|
|
@@ -213,13 +222,15 @@ registerSandboxAdapter(new RemoteSandboxAdapter());
|
|
|
213
222
|
|
|
214
223
|
## Die Naht für einen langlebigen Läufer {#durable}
|
|
215
224
|
|
|
216
|
-
|
|
225
|
+
Der integrierte Adapter `background` bietet bereits dauerhafte Einreihung und ein neues Ausführungsbudget, während die eigentliche Ausführung weiterhin einen nicht warteschlangenbasierten Adapter oder den lokalen Child-Prozess als Fallback verwendet. Ein separat registrierter Remote- oder isolierter Adapter (Docker oder ein Vercel-Sandbox-artiger Runner) kann eine andere Ausführungsgrenze bereitstellen und auch Hintergrundarbeit pro Aufruf ausführen.
|
|
226
|
+
|
|
227
|
+
Ein solcher Adapter würde:
|
|
217
228
|
|
|
218
|
-
1.
|
|
219
|
-
2.
|
|
220
|
-
3.
|
|
229
|
+
1. `SandboxAdapter.run` gegen eine Out-of-Process-Laufzeit implementieren.
|
|
230
|
+
2. Die Loopback-Brücke tunneln oder Bridge-Aufrufe zum übergeordneten Prozess zurückleiten.
|
|
231
|
+
3. Remote- oder Container-Isolation unabhängig vom ausgelieferten dauerhaften Warteschlangenlebenszyklus bereitstellen.
|
|
221
232
|
|
|
222
|
-
Registrieren Sie
|
|
233
|
+
Registrieren Sie ihn programmgesteuert über `registerSandboxAdapter()`. Die Agentenschleife und `run-code.ts` müssen sich nicht ändern.
|
|
223
234
|
|
|
224
235
|
> [!TIP]
|
|
225
236
|
> Der `agent-native add sandbox docker`-Blueprint liefert ein vollständiges, eigenständiges Rezept für die Implementierung eines Docker-Adapters gegen diese Naht. Siehe [Blueprint Installer](/docs/blueprint-installer).
|
|
@@ -417,3 +417,11 @@ AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK=1
|
|
|
417
417
|
```
|
|
418
418
|
|
|
419
419
|
Für geheime Schreibvorgänge im Arbeitsbereichsbereich ist unabhängig von diesem Flag weiterhin die Rolle „Organisationsbesitzer/-administrator“ erforderlich.
|
|
420
|
+
|
|
421
|
+
## Nächste Schritte
|
|
422
|
+
|
|
423
|
+
- [**Authentication**](/docs/authentication) — Auth-Modi, Cookie-Realms und Sitzungsdetails, auf denen diese Seite aufbaut
|
|
424
|
+
- [**Multi-Tenancy**](/docs/multi-tenancy) — das Org-Mitgliedschaftsmodell hinter dem `org_id`-Scoping
|
|
425
|
+
- [**Sharing**](/docs/sharing) — das `ownableColumns()`- und Access-Guard-Muster, angewendet auf teilbare Ressourcen
|
|
426
|
+
- [**Messaging**](/docs/messaging#env-vars) — die Webhook-Signaturgeheimnisse pro Integration, auf die in der obigen Checkliste verwiesen wird
|
|
427
|
+
- [**Deployment**](/docs/deployment) — die Produktionsumgebungsvariablen, deren Vorhandensein diese Checkliste voraussetzt
|
|
@@ -73,10 +73,11 @@ Todo en `audit` es opcional. La adición mínima útil es `target: () => ({ type
|
|
|
73
73
|
|
|
74
74
|
## Leyendo el rastro {#reading}
|
|
75
75
|
|
|
76
|
-
Hay
|
|
76
|
+
Hay tres lecturas actions disponibles para el agente **y** la interfaz de cada aplicación, con alcance en SQL para la persona que llama; nunca devuelven las filas de otro inquilino:
|
|
77
77
|
|
|
78
78
|
- **`list-audit-events`** — filtrar por `targetType` / `targetId`, `actorKind` (`agent` | `human` | `system`), `status`, `threadId` / `turnId`, `action`, `sinceMs` y `limit`.
|
|
79
79
|
- **`get-audit-event`**: un evento por ID, incluida su carga útil de entrada redactada.
|
|
80
|
+
- **`export-audit-events`** — exporta el rastro en bloque como CSV o NDJSON en lugar de paginar manualmente `list-audit-events`, para extracciones de cumplimiento sin conexión. Toma los mismos filtros que `list-audit-events` (sin `limit`) más `format` (`csv` | `ndjson`, por defecto `csv`) y `maxRows` (por defecto 5000, tope máximo 10000), y devuelve `{ content, rowCount, truncated, format }` — `truncated: true` significa que hubo más filas coincidentes de las que permitía `maxRows`. Es en sí misma una lectura sensible, auditada mediante `audit: { onRead: true }`.
|
|
80
81
|
|
|
81
82
|
Cree una fuente de actividad o una línea "quién cambió esto" llamando a `list-audit-events` desde UI con `useActionQuery`; nunca escriba a mano una búsqueda en la tabla de auditoría:
|
|
82
83
|
|
|
@@ -114,13 +114,13 @@ La tercera ruta (escribir el archivo `jobs/<name>.md` a mano mediante `resourceP
|
|
|
114
114
|
|
|
115
115
|
Las automatizaciones comparten todos los campos del [recurring-jobs frontmatter table](/docs/recurring-jobs#frontmatter). Estos campos adicionales controlan los desencadenadores de eventos, las condiciones y el modo de ejecución:
|
|
116
116
|
|
|
117
|
-
| Campo | Tipo
|
|
118
|
-
| ------------- |
|
|
119
|
-
| `triggerType` | `"schedule"` \| `"event"`
|
|
120
|
-
| `event` | cadena
|
|
121
|
-
| `condition` | cadena
|
|
122
|
-
| `mode` | `"agentic"`
|
|
123
|
-
| `domain` | cadena
|
|
117
|
+
| Campo | Tipo | Predeterminado | Descripción |
|
|
118
|
+
| ------------- | ------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | Cómo se activa la automatización |
|
|
120
|
+
| `event` | cadena | _(opcional)_ | Nombre del evento al que suscribirse (solo activadores de eventos) |
|
|
121
|
+
| `condition` | cadena | _(opcional)_ | Condición del lenguaje natural evaluada antes del envío |
|
|
122
|
+
| `mode` | `"agentic"` | `"agentic"` | Bucle de agente completo (el único modo compatible). `"deterministic"` fue eliminado: nunca se implementó, y las automatizaciones que lo configuraban nunca se ejecutaban. |
|
|
123
|
+
| `domain` | cadena | _(opcional)_ | Etiqueta de agrupación (correo, calendario, clips, etc.) |
|
|
124
124
|
|
|
125
125
|
Para un desencadenador de evento, `schedule` es `""` (vacío); para un desencadenador de programación, lleva la expresión cron. El despachador también escribe los mismos campos administrados `lastRun` / `lastStatus` / `lastError` que escribe el programador, además de un estado `"skipped"` cuando una condición se evalúa como falsa.
|
|
126
126
|
|
|
@@ -163,7 +163,13 @@ Añade una route `/response-insights` con `useActionQuery("list-response-insight
|
|
|
163
163
|
/>
|
|
164
164
|
</WireframeBlock>
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
## 6. Deja que el agent navegue {#agent-navigation}
|
|
167
|
+
|
|
168
|
+
La Chat template incluye las actions `view-screen` y `navigate`. Amplíalas a medida que tu app crece:
|
|
169
|
+
|
|
170
|
+
- `view-screen` debería leer el application state y devolver la route actual, el insight seleccionado, los filtros activos y cualquier contexto de página compacto que el agent necesite.
|
|
171
|
+
- `navigate` debería escribir una route same-origin como `/response-insights` cuando el agent decida que el usuario debe inspeccionar el resultado visualmente.
|
|
172
|
+
- Los resultados de una action pueden incluir enlaces como `href: "/response-insights"` para que el chat ofrezca un botón explícito "Abrir insights de respuestas".
|
|
167
173
|
|
|
168
174
|
Cuando el chat de página completa abra una página de app, usa `AgentChatSurface`, `AgentSidebar`, `useAgentChatHomeHandoff`, `useAgentChatHomeHandoffLinks` y `chatViewTransition` desde [Agent Surfaces](/docs/agent-surfaces#rich-chat) para deslizar el chat al panel lateral sin perder el thread.
|
|
169
175
|
|
|
@@ -59,7 +59,7 @@ export const i18nCatalog = {
|
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Siempre incluya `en-US`. Importación dinámica de catálogos que no están en inglés para que sean solo usuarios
|
|
62
|
-
descargar la configuración regional activa. Los códigos locales admitidos son `en-US`, `zh-CN`,
|
|
62
|
+
descargar la configuración regional activa. Los códigos locales admitidos son `en-US`, `zh-CN`, `zh-TW`,
|
|
63
63
|
`es-ES`, `fr-FR`, `de-DE`, `ja-JP`, `ko-KR`, `pt-BR`, `hi-IN` y `ar-SA`.
|
|
64
64
|
|
|
65
65
|
## UI
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Ciclo de vida de paquetes
|
|
3
|
+
description: Inspecciona, añade y expulsa paquetes de Agent Native mediante manifiestos seguros.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ciclo de vida de paquetes
|
|
7
|
+
|
|
8
|
+
Los paquetes reutilizables pueden publicar un `agent-native.package.json`
|
|
9
|
+
estático y versionado. La CLI lee únicamente ese JSON y no ejecuta código del
|
|
10
|
+
paquete durante la inspección.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
agent-native package inspect @agent-native/scheduling --json
|
|
14
|
+
agent-native package add @agent-native/scheduling --apply
|
|
15
|
+
agent-native package eject @agent-native/scheduling --apply
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Añadir y expulsar solo muestran una vista previa de forma predeterminada.
|
|
19
|
+
`--apply` habilita las escrituras y el gestor de paquetes. La CLI rechaza
|
|
20
|
+
colisiones y diseños desconocidos, y revierte archivos y bloqueos si falla la
|
|
21
|
+
instalación. Solo Scheduling admite expulsión en este piloto; Pinpoint queda
|
|
22
|
+
aplazado.
|
|
@@ -104,6 +104,10 @@ La costura se encuentra en el núcleo en `packages/core/src/coding-tools/sandbox
|
|
|
104
104
|
path: "index.ts",
|
|
105
105
|
note: "Selección: getSandboxAdapter() / registerSandboxAdapter()",
|
|
106
106
|
},
|
|
107
|
+
{
|
|
108
|
+
path: "background.ts",
|
|
109
|
+
note: "marcador de cola duradera y ciclo de vida de ejecución en segundo plano",
|
|
110
|
+
},
|
|
107
111
|
{
|
|
108
112
|
path: "local-child-process-adapter.ts",
|
|
109
113
|
note: "Backend predeterminado: proceso hijo de Node bloqueado",
|
|
@@ -184,12 +188,17 @@ registerSandboxAdapter(adapter) → AGENT_NATIVE_SANDBOX → local default
|
|
|
184
188
|
|
|
185
189
|
### Var entorno `AGENT_NATIVE_SANDBOX` {#env}
|
|
186
190
|
|
|
187
|
-
Selecciona un adaptador integrado por id.
|
|
191
|
+
Selecciona un adaptador integrado por id. Están conectados tanto `local` (el predeterminado) como `background`; los valores desconocidos recurren a `local` en lugar de fallar la ejecución.
|
|
188
192
|
|
|
189
193
|
```bash
|
|
190
|
-
AGENT_NATIVE_SANDBOX=local
|
|
194
|
+
AGENT_NATIVE_SANDBOX=local # el valor predeterminado - explícito
|
|
195
|
+
AGENT_NATIVE_SANDBOX=background # pone en cola duradera cada llamada a run-code
|
|
191
196
|
```
|
|
192
197
|
|
|
198
|
+
`background` guarda el código sin procesar en `sandbox_executions` y devuelve inmediatamente un `executionId` con `status: "queued"`. Un autoenvío firmado inicia una nueva invocación serverless; un proceso Node de larga duración inicia trabajo desacoplado en el proceso; el sondeo de estado y el barrido periódico reactivan envíos perdidos o concesiones vencidas. Consulte la ejecución más tarde para obtener el resultado persistido.
|
|
199
|
+
|
|
200
|
+
`BackgroundQueueAdapter` es un marcador de cola duradera, no el ejecutor. El trabajo en cola usa un adaptador de ejecución registrado que no sea de cola cuando está disponible; de lo contrario, recurre al proceso secundario local. Seleccionar solo `background` no proporciona aislamiento remoto ni de contenedor, ni hace que un entorno edge sea compatible con `node:child_process`.
|
|
201
|
+
|
|
193
202
|
### `registerSandboxAdapter()` {#register}
|
|
194
203
|
|
|
195
204
|
Un proceso de host anula el backend para todas las invocaciones posteriores de `run-code` a través del `index.ts` de la costura, por ejemplo, para ejecutar cada llamada en un contenedor remoto:
|
|
@@ -214,13 +223,15 @@ registerSandboxAdapter(new RemoteSandboxAdapter());
|
|
|
214
223
|
|
|
215
224
|
## La costura para un corredor duradero {#durable}
|
|
216
225
|
|
|
217
|
-
|
|
226
|
+
El adaptador integrado `background` ya proporciona una cola duradera y un presupuesto de ejecución nuevo, mientras que la ejecución real sigue usando un adaptador que no sea de cola o el proceso secundario local como alternativa. Un adaptador remoto o aislado registrado por separado (Docker o un ejecutor estilo Vercel-Sandbox) puede proporcionar otro límite de ejecución y también ejecutar trabajo en segundo plano por llamada.
|
|
227
|
+
|
|
228
|
+
Ese adaptador:
|
|
218
229
|
|
|
219
|
-
1.
|
|
220
|
-
2.
|
|
221
|
-
3.
|
|
230
|
+
1. Implementaría `SandboxAdapter.run` en un entorno de ejecución fuera del proceso.
|
|
231
|
+
2. Crearía un túnel para el puente loopback o reenviaría sus llamadas al proceso principal.
|
|
232
|
+
3. Proporcionaría aislamiento remoto o de contenedor independientemente del ciclo de vida de la cola duradera incluida.
|
|
222
233
|
|
|
223
|
-
Regístrelo
|
|
234
|
+
Regístrelo mediante programación con `registerSandboxAdapter()`. El bucle del agente y `run-code.ts` no necesitan cambiar.
|
|
224
235
|
|
|
225
236
|
> [!TIP]
|
|
226
237
|
> El plano `agent-native add sandbox docker` emite una receta completa e independiente para implementar un adaptador Docker en esta unión. Ver [Blueprint Installer](/docs/blueprint-installer).
|
|
@@ -417,3 +417,11 @@ AGENT_NATIVE_KEYS_WORKSPACE_FALLBACK=1
|
|
|
417
417
|
```
|
|
418
418
|
|
|
419
419
|
Las escrituras secretas en el ámbito del espacio de trabajo aún requieren la función de propietario/administrador de la organización, independientemente de esta marca.
|
|
420
|
+
|
|
421
|
+
## Siguientes pasos
|
|
422
|
+
|
|
423
|
+
- [**Authentication**](/docs/authentication) — modos de auth, cookie realms y detalles de sesión sobre los que se construye esta página
|
|
424
|
+
- [**Multi-Tenancy**](/docs/multi-tenancy) — el modelo de membresía de la organización detrás del scoping por `org_id`
|
|
425
|
+
- [**Sharing**](/docs/sharing) — el patrón `ownableColumns()` y de access-guard aplicado a los recursos compartibles
|
|
426
|
+
- [**Messaging**](/docs/messaging#env-vars) — los secretos de firma de webhook por integración referenciados en la lista de verificación anterior
|
|
427
|
+
- [**Deployment**](/docs/deployment) — las variables de entorno de producción que esta lista de verificación asume que están configuradas
|
|
@@ -73,10 +73,11 @@ Tout dans `audit` est facultatif. L'ajout minimum utile est `target: () => ({ ty
|
|
|
73
73
|
|
|
74
74
|
## Lecture du parcours {#reading}
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Trois actions en lecture sont disponibles pour l'agent **et** le frontend dans chaque application, étendus dans SQL à l'appelant — ils ne renvoient jamais les lignes d'un autre locataire :
|
|
77
77
|
|
|
78
78
|
- **`list-audit-events`** — filtrer par `targetType` / `targetId`, `actorKind` (`agent` | `human` | `system`), `status`, `threadId` / `turnId`, `action`, `sinceMs` et `limit`.
|
|
79
79
|
- **`get-audit-event`** — un événement par identifiant, y compris sa charge utile d'entrée expurgée.
|
|
80
|
+
- **`export-audit-events`** — exporte le journal en masse au format CSV ou NDJSON plutôt que de paginer manuellement `list-audit-events`, pour des extractions de conformité hors ligne. Prend les mêmes filtres que `list-audit-events` (sans `limit`), plus `format` (`csv` | `ndjson`, par défaut `csv`) et `maxRows` (par défaut 5000, plafond strict 10000), et renvoie `{ content, rowCount, truncated, format }` — `truncated: true` signifie que davantage de lignes correspondaient que ce que `maxRows` autorisait. C'est elle-même une lecture sensible, auditée via `audit: { onRead: true }`.
|
|
80
81
|
|
|
81
82
|
Créez un flux d'activité ou une ligne « qui a modifié cela » en appelant `list-audit-events` à partir du UI avec `useActionQuery` — n'écrivez jamais manuellement une récupération dans la table d'audit :
|
|
82
83
|
|
|
@@ -114,13 +114,13 @@ Le troisième chemin (écriture manuelle du fichier `jobs/<name>.md` via `resour
|
|
|
114
114
|
|
|
115
115
|
Les automatisations partagent tous les champs du [recurring-jobs frontmatter table](/docs/recurring-jobs#frontmatter). Ces champs supplémentaires contrôlent les déclencheurs d'événements, les conditions et le mode d'exécution :
|
|
116
116
|
|
|
117
|
-
| Champ | Tapez
|
|
118
|
-
| ------------- |
|
|
119
|
-
| `triggerType` | `"schedule"` \| `"event"`
|
|
120
|
-
| `event` | chaîne
|
|
121
|
-
| `condition` | chaîne
|
|
122
|
-
| `mode` | `"agentic"`
|
|
123
|
-
| `domain` | chaîne
|
|
117
|
+
| Champ | Tapez | Par défaut | Description |
|
|
118
|
+
| ------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| `triggerType` | `"schedule"` \| `"event"` | `"schedule"` | Comment se déclenche l'automatisation |
|
|
120
|
+
| `event` | chaîne | _(facultatif)_ | Nom de l'événement auquel s'abonner (déclencheurs d'événement uniquement) |
|
|
121
|
+
| `condition` | chaîne | _(facultatif)_ | Condition du langage naturel évaluée avant l'envoi |
|
|
122
|
+
| `mode` | `"agentic"` | `"agentic"` | Boucle d'agent complète (le seul mode pris en charge). `"deterministic"` a été supprimé — il n'a jamais été implémenté, et les automatisations qui le définissaient ne se déclenchaient jamais. |
|
|
123
|
+
| `domain` | chaîne | _(facultatif)_ | Balise de regroupement (mail, calendrier, clips, etc.) |
|
|
124
124
|
|
|
125
125
|
Pour un déclencheur d'événement, `schedule` est `""` (vide) ; pour un déclencheur de planification, il porte l'expression cron. Le répartiteur écrit également les mêmes champs gérés `lastRun` / `lastStatus` / `lastError` que le planificateur, plus un statut `"skipped"` lorsqu'une condition est évaluée comme fausse.
|
|
126
126
|
|