@agent-native/core 0.134.0 → 0.135.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 +3 -3
- package/corpus/core/CHANGELOG.md +113 -0
- package/corpus/core/docs/content/template-content-developers.mdx +1 -1
- package/corpus/core/package.json +3 -2
- package/corpus/core/src/automations/service.ts +41 -4
- package/corpus/core/src/cli/mcp-config-writers.ts +27 -21
- package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +187 -85
- package/corpus/core/src/client/agent-page/AutomationDetailsDialog.tsx +208 -0
- package/corpus/core/src/client/agent-page/AutomationScheduleDialog.tsx +180 -0
- package/corpus/core/src/client/agent-page/TimezoneSelect.tsx +241 -0
- package/corpus/core/src/client/agent-page/use-jobs.ts +50 -10
- package/corpus/core/src/client/org/OrgSwitcher.tsx +26 -0
- package/corpus/core/src/client/settings/AccountSettingsCard.tsx +35 -31
- package/corpus/core/src/client/settings/SchedulingTimezoneField.tsx +71 -0
- package/corpus/core/src/client/settings/SettingsRow.tsx +113 -0
- package/corpus/core/src/client/settings/agent-settings-search.ts +2 -1
- package/corpus/core/src/client/settings/index.ts +6 -0
- package/corpus/core/src/integrations/identity.ts +2 -12
- package/corpus/core/src/jobs/actions/list-automation-runs.ts +33 -0
- package/corpus/core/src/jobs/actions/list-recurring-jobs.ts +27 -6
- package/corpus/core/src/jobs/actions/manage-recurring-job.ts +41 -9
- package/corpus/core/src/jobs/background-automation-runner.ts +88 -0
- package/corpus/core/src/jobs/cron.ts +52 -6
- package/corpus/core/src/jobs/frontmatter.ts +20 -0
- package/corpus/core/src/jobs/run-history.ts +242 -0
- package/corpus/core/src/jobs/scheduler.ts +73 -18
- package/corpus/core/src/jobs/tools.ts +54 -6
- package/corpus/core/src/localization/actions/get-localization-preference.ts +2 -2
- package/corpus/core/src/localization/actions/set-localization-preference.ts +49 -11
- package/corpus/core/src/localization/default-messages.ts +27 -0
- package/corpus/core/src/localization/shared.ts +39 -6
- package/corpus/core/src/localization/user-timezone.ts +36 -0
- package/corpus/core/src/org/app-roles-handlers.ts +1 -9
- package/corpus/core/src/org/index.ts +2 -0
- package/corpus/core/src/org/membership.ts +18 -0
- package/corpus/core/src/review/actions/create-review-comment.ts +4 -1
- package/corpus/core/src/review/actions/reply-review-comment.ts +4 -1
- package/corpus/core/src/review/index.ts +5 -0
- package/corpus/core/src/review/notifications.ts +163 -0
- package/corpus/core/src/review/types.ts +7 -0
- package/corpus/core/src/server/action-discovery.ts +4 -0
- package/corpus/core/src/server/activity-notifications.ts +174 -0
- package/corpus/core/src/server/app-name.ts +31 -0
- package/corpus/core/src/server/better-auth-instance.ts +4 -4
- package/corpus/core/src/server/email-templates.ts +70 -14
- package/corpus/core/src/server/email.ts +66 -3
- package/corpus/core/src/server/index.ts +10 -0
- package/corpus/core/src/sharing/index.ts +5 -0
- package/corpus/core/src/sharing/recipients.ts +67 -0
- package/corpus/core/src/triggers/actions/list-automations.ts +27 -8
- package/corpus/core/src/triggers/actions/manage-automation.ts +17 -6
- package/corpus/core/src/triggers/actions.ts +16 -4
- package/corpus/core/src/triggers/dispatcher.ts +44 -30
- package/corpus/core/src/triggers/routes.ts +19 -6
- package/corpus/core/src/vitest-config.ts +68 -0
- package/corpus/core/vitest.config.ts +5 -0
- package/corpus/templates/analytics/app/pages/Settings.tsx +37 -53
- package/corpus/templates/analytics/changelog/2026-08-01-new-error-alerts-now-reach-you-by-email-and-a-scheduled-dash.md +6 -0
- package/corpus/templates/analytics/server/jobs/dashboard-report.ts +43 -0
- package/corpus/templates/analytics/server/lib/error-capture.ts +5 -1
- package/corpus/templates/analytics/vitest.config.ts +16 -12
- package/corpus/templates/assets/actions/refresh-generation-run.ts +3 -0
- package/corpus/templates/assets/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/assets/app/hooks/use-assets-prefs.ts +55 -0
- package/corpus/templates/assets/app/i18n-data.ts +30 -0
- package/corpus/templates/assets/app/routes/settings.tsx +58 -55
- package/corpus/templates/assets/changelog/2026-08-01-get-an-email-when-a-generation-you-started-finishes-or-fails.md +6 -0
- package/corpus/templates/assets/server/lib/generation-run-notifications.ts +89 -0
- package/corpus/templates/assets/server/lib/video-runs.ts +8 -1
- package/corpus/templates/assets/server/routes/_agent-native/assets/user-prefs.get.ts +17 -0
- package/corpus/templates/assets/server/routes/_agent-native/assets/user-prefs.put.ts +36 -0
- package/corpus/templates/assets/shared/assets-user-prefs.ts +10 -0
- package/corpus/templates/assets/vitest.config.ts +16 -12
- package/corpus/templates/brain/app/routes/settings.tsx +15 -15
- package/corpus/templates/brain/vitest.config.ts +16 -12
- package/corpus/templates/calendar/app/pages/Settings.tsx +32 -40
- package/corpus/templates/calendar/changelog/2026-08-01-language-and-appearance-now-sit-together-in-one-preferences-.md +6 -0
- package/corpus/templates/calendar/vitest.config.ts +16 -12
- package/corpus/templates/chat/app/routes/settings.tsx +14 -22
- package/corpus/templates/chat/vitest.config.ts +9 -0
- package/corpus/templates/clips/.agents/skills/video-editing/SKILL.md +31 -0
- package/corpus/templates/clips/AGENTS.md +1 -0
- package/corpus/templates/clips/actions/add-comment.ts +12 -1
- package/corpus/templates/clips/actions/create-meeting.ts +2 -2
- package/corpus/templates/clips/actions/create-recording.ts +2 -2
- package/corpus/templates/clips/actions/finalize-recording.ts +42 -6
- package/corpus/templates/clips/actions/generate-filmstrip.ts +154 -0
- package/corpus/templates/clips/actions/get-recording-player-data.ts +6 -0
- package/corpus/templates/clips/actions/import-loom-recording.ts +2 -2
- package/corpus/templates/clips/actions/lib/ensure-recording-filmstrip.ts +258 -0
- package/corpus/templates/clips/actions/lib/ensure-seekable-video.ts +11 -3
- package/corpus/templates/clips/actions/react-to-comment.ts +13 -0
- package/corpus/templates/clips/actions/react-to-recording.ts +10 -1
- package/corpus/templates/clips/actions/reply-to-comment.ts +12 -1
- package/corpus/templates/clips/actions/stitch-recordings.ts +2 -2
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +152 -23
- package/corpus/templates/clips/app/components/editor/waveform.tsx +237 -75
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +23 -1
- package/corpus/templates/clips/app/components/settings/ai-setup-section.tsx +441 -0
- package/corpus/templates/clips/app/components/settings/slack-section.tsx +329 -0
- package/corpus/templates/clips/app/components/settings/types.ts +14 -0
- package/corpus/templates/clips/app/components/settings/video-storage-section.tsx +443 -0
- package/corpus/templates/clips/app/hooks/use-secret-status.ts +69 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +9 -1
- package/corpus/templates/clips/app/lib/video-filmstrip.ts +262 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +165 -1351
- package/corpus/templates/clips/changelog/2026-07-27-saved-clips-now-resume-from-the-last-uploaded-byte-after-an-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-meeting-notes-no-longer-transcribe-the-other-side-twice-when.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-31-editor-timeline-now-shows-video-frames-behind-the-waveform-g.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-31-email-notifications-now-go-out-when-someone-comments-on-or-r.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-31-you-can-now-set-a-default-visibility-for-new-recordings-in-s.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-01-email-notifications-for-comments-and-reactions-now-actually-.md +6 -0
- package/corpus/templates/clips/changelog/2026-08-03-the-desktop-app-now-opens-directly-beneath-its-tray-icon-on-.md +6 -0
- package/corpus/templates/clips/chrome-extension/package.json +1 -0
- package/corpus/templates/clips/chrome-extension/vitest.config.ts +9 -0
- package/corpus/templates/clips/desktop/package.json +1 -0
- package/corpus/templates/clips/desktop/src/app.tsx +17 -1
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +37 -48
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +331 -36
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +7 -5
- package/corpus/templates/clips/desktop/src/lib/transcription-engine.ts +182 -106
- package/corpus/templates/clips/desktop/src/lib/upload-recovery.ts +129 -0
- package/corpus/templates/clips/desktop/src/overlays/live-transcript.tsx +43 -14
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +3 -3
- package/corpus/templates/clips/desktop/src-tauri/src/echo_guard.rs +443 -0
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +1 -0
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +815 -15
- package/corpus/templates/clips/desktop/src-tauri/src/tray.rs +61 -11
- package/corpus/templates/clips/desktop/src-tauri/src/whisper_speech.rs +125 -16
- package/corpus/templates/clips/desktop/vitest.config.ts +9 -0
- package/corpus/templates/clips/server/db/schema.ts +17 -0
- package/corpus/templates/clips/server/jobs/media-verification.ts +4 -0
- package/corpus/templates/clips/server/lib/activity-notifications.ts +185 -0
- package/corpus/templates/clips/server/lib/recording-media-cleanup.ts +2 -0
- package/corpus/templates/clips/server/lib/recording-upload-state.ts +46 -9
- package/corpus/templates/clips/server/lib/recordings.ts +24 -0
- package/corpus/templates/clips/server/lib/resumable-session.ts +10 -4
- package/corpus/templates/clips/server/lib/transactional-email-templates.ts +109 -0
- package/corpus/templates/clips/server/lib/upload-interruption.ts +8 -0
- package/corpus/templates/clips/server/lib/upload-lease.ts +50 -4
- package/corpus/templates/clips/server/lib/video-filmstrip-sprite.ts +207 -0
- package/corpus/templates/clips/server/lib/video-remux.ts +13 -4
- package/corpus/templates/clips/server/plugins/db.ts +16 -0
- package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +4 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +123 -36
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +159 -29
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/interrupt.post.ts +197 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/reset-chunks.post.ts +193 -39
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/resume.get.ts +191 -12
- package/corpus/templates/clips/shared/clips-ai-prefs.ts +6 -0
- package/corpus/templates/clips/shared/feature-flags.ts +12 -0
- package/corpus/templates/clips/shared/recording-core.ts +4 -0
- package/corpus/templates/clips/vitest.config.ts +23 -19
- package/corpus/templates/content/.agents/skills/document-editing/references/databases.md +6 -4
- package/corpus/templates/content/actions/_database-membership-lock.ts +25 -0
- package/corpus/templates/content/actions/_database-row-batch.ts +6 -2
- package/corpus/templates/content/actions/_database-source-utils.ts +289 -129
- package/corpus/templates/content/actions/_database-utils.ts +12 -3
- package/corpus/templates/content/actions/add-comment.ts +15 -1
- package/corpus/templates/content/actions/add-content-database-source-field-property.ts +39 -21
- package/corpus/templates/content/actions/attach-content-database-source.ts +4 -1
- package/corpus/templates/content/actions/change-content-database-source-role.ts +3 -5
- package/corpus/templates/content/actions/duplicate-document-property.ts +59 -46
- package/corpus/templates/content/actions/execute-builder-source-execution.ts +77 -71
- package/corpus/templates/content/actions/list-documents.ts +1 -0
- package/corpus/templates/content/actions/materialize-builder-required-fields.ts +7 -0
- package/corpus/templates/content/actions/remove-database-items.ts +183 -0
- package/corpus/templates/content/actions/set-document-property.ts +57 -39
- package/corpus/templates/content/actions/sync-local-folder-source.ts +7 -0
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +5 -2
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +50 -1
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +471 -329
- package/corpus/templates/content/app/components/editor/database/row-access.ts +45 -0
- package/corpus/templates/content/app/components/editor/database/shared.tsx +141 -38
- package/corpus/templates/content/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +2 -2
- package/corpus/templates/content/app/hooks/use-content-prefs.ts +55 -0
- package/corpus/templates/content/app/i18n-data.ts +170 -0
- package/corpus/templates/content/app/routes/_app.settings.tsx +47 -18
- package/corpus/templates/content/changelog/2026-07-30-breadcrumb-menus-now-hide-internal-system-pages.md +6 -0
- package/corpus/templates/content/changelog/2026-07-30-database-rows-can-now-be-removed-without-deleting-their-page.md +6 -0
- package/corpus/templates/content/changelog/2026-08-01-get-an-email-when-someone-comments-on-replies-in-or-mentions.md +6 -0
- package/corpus/templates/content/parity/eval-scenarios.ts +2 -2
- package/corpus/templates/content/parity/matrix.md +1 -1
- package/corpus/templates/content/parity/matrix.ts +4 -5
- package/corpus/templates/content/server/lib/comment-notifications.ts +146 -0
- package/corpus/templates/content/server/routes/_agent-native/content/user-prefs.get.ts +17 -0
- package/corpus/templates/content/server/routes/_agent-native/content/user-prefs.put.ts +36 -0
- package/corpus/templates/content/shared/api.ts +4 -0
- package/corpus/templates/content/shared/content-user-prefs.ts +11 -0
- package/corpus/templates/content/vitest.config.ts +20 -16
- package/corpus/templates/crm/app/routes/settings.tsx +14 -22
- package/corpus/templates/crm/vitest.config.ts +8 -4
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +26 -11
- package/corpus/templates/design/actions/take-design-screenshot.ts +7 -0
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +11 -3
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +4 -1
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +54 -17
- package/corpus/templates/design/app/components/design/design-canvas/local-runtime.ts +126 -0
- package/corpus/templates/design/app/components/templates/TemplatePreview.tsx +2 -0
- package/corpus/templates/design/app/pages/Index.tsx +3 -1
- package/corpus/templates/design/app/pages/Present.tsx +2 -1
- package/corpus/templates/design/app/routes/settings.tsx +14 -22
- package/corpus/templates/design/changelog/2026-07-30-a-broken-inline-script-in-a-generated-screen-is-now-caught-o.md +6 -0
- package/corpus/templates/design/changelog/2026-07-30-design-html-is-now-validated-with-a-spec-grade-html-parser-i.md +6 -0
- package/corpus/templates/design/changelog/2026-07-30-designs-now-load-their-tailwind-and-alpine-runtimes-from-the.md +6 -0
- package/corpus/templates/design/changelog/2026-07-30-designs-with-a-broken-alpine-expression-are-now-caught-on-sa.md +6 -0
- package/corpus/templates/design/changelog/2026-07-30-editing-a-design-no-longer-strips-its-styling-the-canvas-kep.md +6 -0
- package/corpus/templates/design/changelog/2026-08-01-review-comments-replies-and-mentions-now-send-an-email-to-th.md +6 -0
- package/corpus/templates/design/package.json +4 -0
- package/corpus/templates/design/shared/html-integrity.ts +802 -556
- package/corpus/templates/design/vitest.config.ts +18 -12
- package/corpus/templates/dispatch/app/routes/settings.tsx +26 -40
- package/corpus/templates/dispatch/vitest.config.ts +11 -7
- package/corpus/templates/factory/app/routes/settings.tsx +14 -22
- package/corpus/templates/factory/vitest.config.ts +9 -0
- package/corpus/templates/forms/app/routes/_app.settings.tsx +14 -22
- package/corpus/templates/forms/vitest.config.ts +27 -23
- package/corpus/templates/macros/app/routes/settings.tsx +14 -22
- package/corpus/templates/macros/vitest.config.ts +16 -12
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +14 -16
- package/corpus/templates/mail/vitest.config.ts +16 -12
- package/corpus/templates/plan/app/routes/settings.tsx +30 -44
- package/corpus/templates/plan/vitest.config.ts +24 -20
- package/corpus/templates/slides/actions/add-slide-comment.ts +12 -1
- package/corpus/templates/slides/app/components/ui/switch.tsx +1 -0
- package/corpus/templates/slides/app/hooks/use-slides-prefs.ts +55 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +4 -0
- package/corpus/templates/slides/app/routes/settings.tsx +45 -22
- package/corpus/templates/slides/changelog/2026-08-01-get-an-email-when-someone-comments-on-or-replies-in-your-dec.md +6 -0
- package/corpus/templates/slides/server/lib/comment-notifications.ts +182 -0
- package/corpus/templates/slides/server/routes/_agent-native/slides/user-prefs.get.ts +16 -0
- package/corpus/templates/slides/server/routes/_agent-native/slides/user-prefs.put.ts +36 -0
- package/corpus/templates/slides/shared/slides-user-prefs.ts +11 -0
- package/corpus/templates/slides/vitest.config.ts +17 -13
- package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +2 -0
- package/corpus/templates/tasks/app/routes/settings.tsx +14 -22
- package/corpus/templates/tasks/vitest.config.ts +17 -13
- package/corpus/toolkit/CHANGELOG.md +9 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/vitest.config.ts +3 -0
- package/dist/automations/service.d.ts +2 -0
- package/dist/automations/service.d.ts.map +1 -1
- package/dist/automations/service.js +29 -4
- package/dist/automations/service.js.map +1 -1
- package/dist/cli/mcp-config-writers.d.ts.map +1 -1
- package/dist/cli/mcp-config-writers.js +24 -23
- package/dist/cli/mcp-config-writers.js.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.js +86 -29
- package/dist/client/agent-page/AgentJobsTab.js.map +1 -1
- package/dist/client/agent-page/AutomationDetailsDialog.d.ts +21 -0
- package/dist/client/agent-page/AutomationDetailsDialog.d.ts.map +1 -0
- package/dist/client/agent-page/AutomationDetailsDialog.js +33 -0
- package/dist/client/agent-page/AutomationDetailsDialog.js.map +1 -0
- package/dist/client/agent-page/AutomationScheduleDialog.d.ts +15 -0
- package/dist/client/agent-page/AutomationScheduleDialog.d.ts.map +1 -0
- package/dist/client/agent-page/AutomationScheduleDialog.js +46 -0
- package/dist/client/agent-page/AutomationScheduleDialog.js.map +1 -0
- package/dist/client/agent-page/TimezoneSelect.d.ts +17 -0
- package/dist/client/agent-page/TimezoneSelect.d.ts.map +1 -0
- package/dist/client/agent-page/TimezoneSelect.js +107 -0
- package/dist/client/agent-page/TimezoneSelect.js.map +1 -0
- package/dist/client/agent-page/use-jobs.d.ts +20 -7
- package/dist/client/agent-page/use-jobs.d.ts.map +1 -1
- package/dist/client/agent-page/use-jobs.js +24 -4
- package/dist/client/agent-page/use-jobs.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts +8 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +8 -2
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/settings/AccountSettingsCard.d.ts.map +1 -1
- package/dist/client/settings/AccountSettingsCard.js +10 -9
- package/dist/client/settings/AccountSettingsCard.js.map +1 -1
- package/dist/client/settings/SchedulingTimezoneField.d.ts +10 -0
- package/dist/client/settings/SchedulingTimezoneField.d.ts.map +1 -0
- package/dist/client/settings/SchedulingTimezoneField.js +30 -0
- package/dist/client/settings/SchedulingTimezoneField.js.map +1 -0
- package/dist/client/settings/SettingsRow.d.ts +36 -0
- package/dist/client/settings/SettingsRow.d.ts.map +1 -0
- package/dist/client/settings/SettingsRow.js +15 -0
- package/dist/client/settings/SettingsRow.js.map +1 -0
- package/dist/client/settings/agent-settings-search.d.ts.map +1 -1
- package/dist/client/settings/agent-settings-search.js +1 -1
- package/dist/client/settings/agent-settings-search.js.map +1 -1
- package/dist/client/settings/index.d.ts +1 -0
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +1 -0
- package/dist/client/settings/index.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/integrations/identity.d.ts.map +1 -1
- package/dist/integrations/identity.js +2 -11
- package/dist/integrations/identity.js.map +1 -1
- package/dist/jobs/actions/list-automation-runs.d.ts +8 -0
- package/dist/jobs/actions/list-automation-runs.d.ts.map +1 -0
- package/dist/jobs/actions/list-automation-runs.js +29 -0
- package/dist/jobs/actions/list-automation-runs.js.map +1 -0
- package/dist/jobs/actions/list-recurring-jobs.d.ts +2 -0
- package/dist/jobs/actions/list-recurring-jobs.d.ts.map +1 -1
- package/dist/jobs/actions/list-recurring-jobs.js +20 -7
- package/dist/jobs/actions/list-recurring-jobs.js.map +1 -1
- package/dist/jobs/actions/manage-recurring-job.d.ts +2 -0
- package/dist/jobs/actions/manage-recurring-job.js +30 -9
- package/dist/jobs/actions/manage-recurring-job.js.map +1 -1
- package/dist/jobs/background-automation-runner.d.ts.map +1 -1
- package/dist/jobs/background-automation-runner.js +60 -0
- package/dist/jobs/background-automation-runner.js.map +1 -1
- package/dist/jobs/cron.d.ts +16 -2
- package/dist/jobs/cron.d.ts.map +1 -1
- package/dist/jobs/cron.js +43 -6
- package/dist/jobs/cron.js.map +1 -1
- package/dist/jobs/frontmatter.d.ts +12 -0
- package/dist/jobs/frontmatter.d.ts.map +1 -1
- package/dist/jobs/frontmatter.js +8 -0
- package/dist/jobs/frontmatter.js.map +1 -1
- package/dist/jobs/run-history.d.ts +56 -0
- package/dist/jobs/run-history.d.ts.map +1 -0
- package/dist/jobs/run-history.js +169 -0
- package/dist/jobs/run-history.js.map +1 -0
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +51 -18
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +37 -6
- package/dist/jobs/tools.js.map +1 -1
- package/dist/localization/actions/get-localization-preference.d.ts +1 -2
- package/dist/localization/actions/get-localization-preference.d.ts.map +1 -1
- package/dist/localization/actions/get-localization-preference.js.map +1 -1
- package/dist/localization/actions/set-localization-preference.d.ts +3 -3
- package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
- package/dist/localization/actions/set-localization-preference.js +33 -8
- package/dist/localization/actions/set-localization-preference.js.map +1 -1
- package/dist/localization/default-messages.d.ts +25 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +25 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/localization/shared.d.ts +16 -1
- package/dist/localization/shared.d.ts.map +1 -1
- package/dist/localization/shared.js +22 -4
- package/dist/localization/shared.js.map +1 -1
- package/dist/localization/user-timezone.d.ts +11 -0
- package/dist/localization/user-timezone.d.ts.map +1 -0
- package/dist/localization/user-timezone.js +31 -0
- package/dist/localization/user-timezone.js.map +1 -0
- package/dist/notifications/routes.d.ts +2 -2
- package/dist/observability/routes.d.ts +1 -1
- package/dist/org/app-roles-handlers.d.ts.map +1 -1
- package/dist/org/app-roles-handlers.js +1 -8
- package/dist/org/app-roles-handlers.js.map +1 -1
- package/dist/org/index.d.ts +1 -0
- package/dist/org/index.d.ts.map +1 -1
- package/dist/org/index.js +1 -0
- package/dist/org/index.js.map +1 -1
- package/dist/org/membership.d.ts +6 -0
- package/dist/org/membership.d.ts.map +1 -0
- package/dist/org/membership.js +16 -0
- package/dist/org/membership.js.map +1 -0
- package/dist/provider-api/actions/custom-provider-registration.d.ts +10 -10
- package/dist/provider-api/actions/provider-api.d.ts +8 -8
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/review/actions/create-review-comment.d.ts +32 -1
- package/dist/review/actions/create-review-comment.d.ts.map +1 -1
- package/dist/review/actions/create-review-comment.js +3 -1
- package/dist/review/actions/create-review-comment.js.map +1 -1
- package/dist/review/actions/reply-review-comment.d.ts +32 -1
- package/dist/review/actions/reply-review-comment.d.ts.map +1 -1
- package/dist/review/actions/reply-review-comment.js +3 -1
- package/dist/review/actions/reply-review-comment.js.map +1 -1
- package/dist/review/index.d.ts +1 -0
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +1 -0
- package/dist/review/index.js.map +1 -1
- package/dist/review/notifications.d.ts +24 -0
- package/dist/review/notifications.d.ts.map +1 -0
- package/dist/review/notifications.js +123 -0
- package/dist/review/notifications.js.map +1 -0
- package/dist/review/types.d.ts +5 -0
- package/dist/review/types.d.ts.map +1 -1
- package/dist/review/types.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/activity-notifications.d.ts +61 -0
- package/dist/server/activity-notifications.d.ts.map +1 -0
- package/dist/server/activity-notifications.js +103 -0
- package/dist/server/activity-notifications.js.map +1 -0
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/app-name.d.ts +18 -0
- package/dist/server/app-name.d.ts.map +1 -1
- package/dist/server/app-name.js +31 -0
- package/dist/server/app-name.js.map +1 -1
- package/dist/server/better-auth-instance.js +4 -4
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/email-templates.d.ts +12 -0
- package/dist/server/email-templates.d.ts.map +1 -1
- package/dist/server/email-templates.js +57 -14
- package/dist/server/email-templates.js.map +1 -1
- package/dist/server/email.d.ts +12 -0
- package/dist/server/email.d.ts.map +1 -1
- package/dist/server/email.js +52 -5
- package/dist/server/email.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -0
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js +1 -0
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/recipients.d.ts +31 -0
- package/dist/sharing/recipients.d.ts.map +1 -0
- package/dist/sharing/recipients.js +40 -0
- package/dist/sharing/recipients.js.map +1 -0
- package/dist/templates/chat/app/routes/settings.tsx +14 -22
- package/dist/templates/chat/vitest.config.ts +9 -0
- package/dist/triggers/actions/list-automations.d.ts +2 -0
- package/dist/triggers/actions/list-automations.d.ts.map +1 -1
- package/dist/triggers/actions/list-automations.js +19 -8
- package/dist/triggers/actions/list-automations.js.map +1 -1
- package/dist/triggers/actions/manage-automation.d.ts +6 -0
- package/dist/triggers/actions/manage-automation.js +12 -6
- package/dist/triggers/actions/manage-automation.js.map +1 -1
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +15 -4
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +19 -17
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/routes.d.ts.map +1 -1
- package/dist/triggers/routes.js +6 -6
- package/dist/triggers/routes.js.map +1 -1
- package/dist/vitest-config.d.ts +10 -0
- package/dist/vitest-config.d.ts.map +1 -0
- package/dist/vitest-config.js +55 -0
- package/dist/vitest-config.js.map +1 -0
- package/docs/content/template-content-developers.mdx +1 -1
- package/package.json +5 -4
- package/src/automations/service.ts +41 -4
- package/src/cli/mcp-config-writers.ts +27 -21
- package/src/client/agent-page/AgentJobsTab.tsx +187 -85
- package/src/client/agent-page/AutomationDetailsDialog.tsx +208 -0
- package/src/client/agent-page/AutomationScheduleDialog.tsx +180 -0
- package/src/client/agent-page/TimezoneSelect.tsx +241 -0
- package/src/client/agent-page/use-jobs.ts +50 -10
- package/src/client/org/OrgSwitcher.tsx +26 -0
- package/src/client/settings/AccountSettingsCard.tsx +35 -31
- package/src/client/settings/SchedulingTimezoneField.tsx +71 -0
- package/src/client/settings/SettingsRow.tsx +113 -0
- package/src/client/settings/agent-settings-search.ts +2 -1
- package/src/client/settings/index.ts +6 -0
- package/src/integrations/identity.ts +2 -12
- package/src/jobs/actions/list-automation-runs.ts +33 -0
- package/src/jobs/actions/list-recurring-jobs.ts +27 -6
- package/src/jobs/actions/manage-recurring-job.ts +41 -9
- package/src/jobs/background-automation-runner.ts +88 -0
- package/src/jobs/cron.ts +52 -6
- package/src/jobs/frontmatter.ts +20 -0
- package/src/jobs/run-history.ts +242 -0
- package/src/jobs/scheduler.ts +73 -18
- package/src/jobs/tools.ts +54 -6
- package/src/localization/actions/get-localization-preference.ts +2 -2
- package/src/localization/actions/set-localization-preference.ts +49 -11
- package/src/localization/default-messages.ts +27 -0
- package/src/localization/shared.ts +39 -6
- package/src/localization/user-timezone.ts +36 -0
- package/src/org/app-roles-handlers.ts +1 -9
- package/src/org/index.ts +2 -0
- package/src/org/membership.ts +18 -0
- package/src/review/actions/create-review-comment.ts +4 -1
- package/src/review/actions/reply-review-comment.ts +4 -1
- package/src/review/index.ts +5 -0
- package/src/review/notifications.ts +163 -0
- package/src/review/types.ts +7 -0
- package/src/server/action-discovery.ts +4 -0
- package/src/server/activity-notifications.ts +174 -0
- package/src/server/app-name.ts +31 -0
- package/src/server/better-auth-instance.ts +4 -4
- package/src/server/email-templates.ts +70 -14
- package/src/server/email.ts +66 -3
- package/src/server/index.ts +10 -0
- package/src/sharing/index.ts +5 -0
- package/src/sharing/recipients.ts +67 -0
- package/src/templates/chat/app/routes/settings.tsx +14 -22
- package/src/templates/chat/vitest.config.ts +9 -0
- package/src/triggers/actions/list-automations.ts +27 -8
- package/src/triggers/actions/manage-automation.ts +17 -6
- package/src/triggers/actions.ts +16 -4
- package/src/triggers/dispatcher.ts +44 -30
- package/src/triggers/routes.ts +19 -6
- package/src/vitest-config.ts +68 -0
- package/corpus/templates/content/actions/delete-database-items.ts +0 -89
|
@@ -92,6 +92,9 @@ const databaseMessages = {
|
|
|
92
92
|
failedToDeleteRow: "Failed to delete row",
|
|
93
93
|
failedToDeleteSelectedRows: "Failed to delete selected rows",
|
|
94
94
|
failedToDuplicateEverySelectedRow: "Failed to duplicate every selected row",
|
|
95
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
96
|
+
"Failed to remove every selected row from the database",
|
|
97
|
+
failedToRemoveRowFromDatabase: "Failed to remove row from database",
|
|
95
98
|
failedToDuplicateRow: "Failed to duplicate row",
|
|
96
99
|
failedToMoveCard: "Failed to move card",
|
|
97
100
|
failedToMoveRow: "Failed to move row",
|
|
@@ -100,6 +103,15 @@ const databaseMessages = {
|
|
|
100
103
|
failedToSaveView: "Failed to save view",
|
|
101
104
|
failedToUpdateCheckbox: "Failed to update checkbox",
|
|
102
105
|
failedToUpdateEverySelectedRow: "Failed to update every selected row",
|
|
106
|
+
removeSelectedRowsFromDatabaseQuestion: "Remove selected rows from database?",
|
|
107
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
108
|
+
"The selected pages will remain available in Files and any other databases. Values belonging only to this database will be removed.",
|
|
109
|
+
removeFromDatabase: "Remove from database",
|
|
110
|
+
removeFromDatabaseQuestion: "Remove from database?",
|
|
111
|
+
removeFromDatabaseDescription:
|
|
112
|
+
"“{{title}}” will remain available in Files and any other databases. Values belonging only to this database will be removed.",
|
|
113
|
+
remove: "Remove",
|
|
114
|
+
removing: "Removing...",
|
|
103
115
|
filter: "Filter",
|
|
104
116
|
filterBy: "Filter by...",
|
|
105
117
|
addAdvancedFilter: "Add advanced filter",
|
|
@@ -598,6 +610,17 @@ const databaseMessagesByLocale = {
|
|
|
598
610
|
failedToDeleteRow: "删除行失败",
|
|
599
611
|
failedToDeleteSelectedRows: "删除所选行失败",
|
|
600
612
|
failedToDuplicateEverySelectedRow: "未能复制所有选中行",
|
|
613
|
+
failedToRemoveEverySelectedRowFromDatabase: "无法从数据库中移除所有选中行",
|
|
614
|
+
failedToRemoveRowFromDatabase: "无法从数据库中移除该行",
|
|
615
|
+
removeSelectedRowsFromDatabaseQuestion: "从数据库中移除选中行?",
|
|
616
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
617
|
+
"所选页面仍可在“文件”和其他数据库中使用。仅属于此数据库的值将被移除。",
|
|
618
|
+
removeFromDatabase: "从数据库中移除",
|
|
619
|
+
removeFromDatabaseQuestion: "从数据库中移除?",
|
|
620
|
+
removeFromDatabaseDescription:
|
|
621
|
+
"“{{title}}”仍可在“文件”和其他数据库中使用。仅属于此数据库的值将被移除。",
|
|
622
|
+
remove: "移除",
|
|
623
|
+
removing: "正在移除...",
|
|
601
624
|
failedToDuplicateRow: "复制行失败",
|
|
602
625
|
failedToMoveCard: "移动卡片失败",
|
|
603
626
|
failedToMoveRow: "移动行失败",
|
|
@@ -819,6 +842,20 @@ const databaseMessagesByLocale = {
|
|
|
819
842
|
"No se pudieron eliminar las filas seleccionadas",
|
|
820
843
|
failedToDuplicateEverySelectedRow:
|
|
821
844
|
"No se pudieron duplicar todas las filas seleccionadas",
|
|
845
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
846
|
+
"No se pudieron quitar todas las filas seleccionadas de la base de datos",
|
|
847
|
+
failedToRemoveRowFromDatabase:
|
|
848
|
+
"No se pudo quitar la fila de la base de datos",
|
|
849
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
850
|
+
"¿Quitar las filas seleccionadas de la base de datos?",
|
|
851
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
852
|
+
"Las páginas seleccionadas seguirán disponibles en Archivos y en otras bases de datos. Se quitarán los valores que solo pertenecen a esta base de datos.",
|
|
853
|
+
removeFromDatabase: "Quitar de la base de datos",
|
|
854
|
+
removeFromDatabaseQuestion: "¿Quitar de la base de datos?",
|
|
855
|
+
removeFromDatabaseDescription:
|
|
856
|
+
"“{{title}}” seguirá disponible en Archivos y en otras bases de datos. Se quitarán los valores que solo pertenecen a esta base de datos.",
|
|
857
|
+
remove: "Quitar",
|
|
858
|
+
removing: "Quitando...",
|
|
822
859
|
failedToDuplicateRow: "No se pudo duplicar la fila",
|
|
823
860
|
failedToMoveCard: "No se pudo mover la tarjeta",
|
|
824
861
|
failedToMoveRow: "No se pudo mover la fila",
|
|
@@ -1043,6 +1080,20 @@ const databaseMessagesByLocale = {
|
|
|
1043
1080
|
"Échec de la suppression des lignes sélectionnées",
|
|
1044
1081
|
failedToDuplicateEverySelectedRow:
|
|
1045
1082
|
"Impossible de dupliquer toutes les lignes sélectionnées",
|
|
1083
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
1084
|
+
"Impossible de retirer toutes les lignes sélectionnées de la base de données",
|
|
1085
|
+
failedToRemoveRowFromDatabase:
|
|
1086
|
+
"Impossible de retirer la ligne de la base de données",
|
|
1087
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
1088
|
+
"Retirer les lignes sélectionnées de la base de données ?",
|
|
1089
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
1090
|
+
"Les pages sélectionnées resteront disponibles dans Fichiers et dans les autres bases de données. Les valeurs propres à cette base de données seront supprimées.",
|
|
1091
|
+
removeFromDatabase: "Retirer de la base de données",
|
|
1092
|
+
removeFromDatabaseQuestion: "Retirer de la base de données ?",
|
|
1093
|
+
removeFromDatabaseDescription:
|
|
1094
|
+
"« {{title}} » restera disponible dans Fichiers et dans les autres bases de données. Les valeurs propres à cette base de données seront supprimées.",
|
|
1095
|
+
remove: "Retirer",
|
|
1096
|
+
removing: "Suppression...",
|
|
1046
1097
|
failedToDuplicateRow: "Échec de la duplication de la ligne",
|
|
1047
1098
|
failedToMoveCard: "Échec du déplacement de la carte",
|
|
1048
1099
|
failedToMoveRow: "Échec du déplacement de la ligne",
|
|
@@ -1267,6 +1318,20 @@ const databaseMessagesByLocale = {
|
|
|
1267
1318
|
"Ausgewählte Zeilen konnten nicht gelöscht werden",
|
|
1268
1319
|
failedToDuplicateEverySelectedRow:
|
|
1269
1320
|
"Nicht jede ausgewählte Zeile konnte dupliziert werden",
|
|
1321
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
1322
|
+
"Nicht alle ausgewählten Zeilen konnten aus der Datenbank entfernt werden",
|
|
1323
|
+
failedToRemoveRowFromDatabase:
|
|
1324
|
+
"Die Zeile konnte nicht aus der Datenbank entfernt werden",
|
|
1325
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
1326
|
+
"Ausgewählte Zeilen aus der Datenbank entfernen?",
|
|
1327
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
1328
|
+
"Die ausgewählten Seiten bleiben unter Dateien und in anderen Datenbanken verfügbar. Werte, die nur zu dieser Datenbank gehören, werden entfernt.",
|
|
1329
|
+
removeFromDatabase: "Aus Datenbank entfernen",
|
|
1330
|
+
removeFromDatabaseQuestion: "Aus der Datenbank entfernen?",
|
|
1331
|
+
removeFromDatabaseDescription:
|
|
1332
|
+
"„{{title}}“ bleibt unter Dateien und in anderen Datenbanken verfügbar. Werte, die nur zu dieser Datenbank gehören, werden entfernt.",
|
|
1333
|
+
remove: "Entfernen",
|
|
1334
|
+
removing: "Wird entfernt...",
|
|
1270
1335
|
failedToDuplicateRow: "Zeile konnte nicht dupliziert werden",
|
|
1271
1336
|
failedToMoveCard: "Karte konnte nicht verschoben werden",
|
|
1272
1337
|
failedToMoveRow: "Zeile konnte nicht verschoben werden",
|
|
@@ -1486,6 +1551,19 @@ const databaseMessagesByLocale = {
|
|
|
1486
1551
|
failedToDeleteSelectedRows: "選択した行を削除できませんでした",
|
|
1487
1552
|
failedToDuplicateEverySelectedRow:
|
|
1488
1553
|
"選択したすべての行を複製できませんでした",
|
|
1554
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
1555
|
+
"選択したすべての行をデータベースから削除できませんでした",
|
|
1556
|
+
failedToRemoveRowFromDatabase: "行をデータベースから削除できませんでした",
|
|
1557
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
1558
|
+
"選択した行をデータベースから削除しますか?",
|
|
1559
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
1560
|
+
"選択したページは引き続きファイルや他のデータベースで利用できます。このデータベースにのみ属する値は削除されます。",
|
|
1561
|
+
removeFromDatabase: "データベースから削除",
|
|
1562
|
+
removeFromDatabaseQuestion: "データベースから削除しますか?",
|
|
1563
|
+
removeFromDatabaseDescription:
|
|
1564
|
+
"「{{title}}」は引き続きファイルや他のデータベースで利用できます。このデータベースにのみ属する値は削除されます。",
|
|
1565
|
+
remove: "削除",
|
|
1566
|
+
removing: "削除中...",
|
|
1489
1567
|
failedToDuplicateRow: "行を複製できませんでした",
|
|
1490
1568
|
failedToMoveCard: "カードを移動できませんでした",
|
|
1491
1569
|
failedToMoveRow: "行を移動できませんでした",
|
|
@@ -1701,6 +1779,19 @@ const databaseMessagesByLocale = {
|
|
|
1701
1779
|
failedToDeleteRow: "행을 삭제하지 못했습니다",
|
|
1702
1780
|
failedToDeleteSelectedRows: "선택한 행을 삭제하지 못했습니다",
|
|
1703
1781
|
failedToDuplicateEverySelectedRow: "선택한 모든 행을 복제하지 못했습니다",
|
|
1782
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
1783
|
+
"선택한 모든 행을 데이터베이스에서 제거하지 못했습니다",
|
|
1784
|
+
failedToRemoveRowFromDatabase: "행을 데이터베이스에서 제거하지 못했습니다",
|
|
1785
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
1786
|
+
"선택한 행을 데이터베이스에서 제거할까요?",
|
|
1787
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
1788
|
+
"선택한 페이지는 파일 및 다른 데이터베이스에서 계속 사용할 수 있습니다. 이 데이터베이스에만 속한 값은 제거됩니다.",
|
|
1789
|
+
removeFromDatabase: "데이터베이스에서 제거",
|
|
1790
|
+
removeFromDatabaseQuestion: "데이터베이스에서 제거할까요?",
|
|
1791
|
+
removeFromDatabaseDescription:
|
|
1792
|
+
"“{{title}}”은(는) 파일 및 다른 데이터베이스에서 계속 사용할 수 있습니다. 이 데이터베이스에만 속한 값은 제거됩니다.",
|
|
1793
|
+
remove: "제거",
|
|
1794
|
+
removing: "제거 중...",
|
|
1704
1795
|
failedToDuplicateRow: "행을 복제하지 못했습니다",
|
|
1705
1796
|
failedToMoveCard: "카드를 이동하지 못했습니다",
|
|
1706
1797
|
failedToMoveRow: "행을 이동하지 못했습니다",
|
|
@@ -1922,6 +2013,20 @@ const databaseMessagesByLocale = {
|
|
|
1922
2013
|
failedToDeleteSelectedRows: "Falha ao excluir linhas selecionadas",
|
|
1923
2014
|
failedToDuplicateEverySelectedRow:
|
|
1924
2015
|
"Falha ao duplicar todas as linhas selecionadas",
|
|
2016
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
2017
|
+
"Não foi possível remover todas as linhas selecionadas do banco de dados",
|
|
2018
|
+
failedToRemoveRowFromDatabase:
|
|
2019
|
+
"Não foi possível remover a linha do banco de dados",
|
|
2020
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
2021
|
+
"Remover as linhas selecionadas do banco de dados?",
|
|
2022
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
2023
|
+
"As páginas selecionadas continuarão disponíveis em Arquivos e em outros bancos de dados. Os valores que pertencem somente a este banco de dados serão removidos.",
|
|
2024
|
+
removeFromDatabase: "Remover do banco de dados",
|
|
2025
|
+
removeFromDatabaseQuestion: "Remover do banco de dados?",
|
|
2026
|
+
removeFromDatabaseDescription:
|
|
2027
|
+
"“{{title}}” continuará disponível em Arquivos e em outros bancos de dados. Os valores que pertencem somente a este banco de dados serão removidos.",
|
|
2028
|
+
remove: "Remover",
|
|
2029
|
+
removing: "Removendo...",
|
|
1925
2030
|
failedToDuplicateRow: "Falha ao duplicar linha",
|
|
1926
2031
|
failedToMoveCard: "Falha ao mover cartão",
|
|
1927
2032
|
failedToMoveRow: "Falha ao mover linha",
|
|
@@ -2135,6 +2240,18 @@ const databaseMessagesByLocale = {
|
|
|
2135
2240
|
failedToDeleteRow: "पंक्ति हटाने में विफल",
|
|
2136
2241
|
failedToDeleteSelectedRows: "चुनी गई पंक्तियां हटाने में विफल",
|
|
2137
2242
|
failedToDuplicateEverySelectedRow: "हर चुनी गई पंक्ति डुप्लिकेट नहीं हो सकी",
|
|
2243
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
2244
|
+
"डेटाबेस से सभी चुनी गई पंक्तियां नहीं हटाई जा सकीं",
|
|
2245
|
+
failedToRemoveRowFromDatabase: "डेटाबेस से पंक्ति नहीं हटाई जा सकी",
|
|
2246
|
+
removeSelectedRowsFromDatabaseQuestion: "चुनी गई पंक्तियां डेटाबेस से हटाएं?",
|
|
2247
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
2248
|
+
"चुने गए पेज फ़ाइलें और अन्य डेटाबेस में उपलब्ध रहेंगे। केवल इस डेटाबेस से संबंधित मान हटा दिए जाएंगे।",
|
|
2249
|
+
removeFromDatabase: "डेटाबेस से हटाएं",
|
|
2250
|
+
removeFromDatabaseQuestion: "डेटाबेस से हटाएं?",
|
|
2251
|
+
removeFromDatabaseDescription:
|
|
2252
|
+
"“{{title}}” फ़ाइलें और अन्य डेटाबेस में उपलब्ध रहेगा। केवल इस डेटाबेस से संबंधित मान हटा दिए जाएंगे।",
|
|
2253
|
+
remove: "हटाएं",
|
|
2254
|
+
removing: "हटाया जा रहा है...",
|
|
2138
2255
|
failedToDuplicateRow: "पंक्ति डुप्लिकेट करने में विफल",
|
|
2139
2256
|
failedToMoveCard: "कार्ड ले जाने में विफल",
|
|
2140
2257
|
failedToMoveRow: "पंक्ति ले जाने में विफल",
|
|
@@ -2343,6 +2460,19 @@ const databaseMessagesByLocale = {
|
|
|
2343
2460
|
failedToDeleteRow: "فشل حذف الصف",
|
|
2344
2461
|
failedToDeleteSelectedRows: "فشل حذف الصفوف المحددة",
|
|
2345
2462
|
failedToDuplicateEverySelectedRow: "تعذر تكرار كل الصفوف المحددة",
|
|
2463
|
+
failedToRemoveEverySelectedRowFromDatabase:
|
|
2464
|
+
"تعذرت إزالة كل الصفوف المحددة من قاعدة البيانات",
|
|
2465
|
+
failedToRemoveRowFromDatabase: "تعذرت إزالة الصف من قاعدة البيانات",
|
|
2466
|
+
removeSelectedRowsFromDatabaseQuestion:
|
|
2467
|
+
"هل تريد إزالة الصفوف المحددة من قاعدة البيانات؟",
|
|
2468
|
+
removeSelectedRowsFromDatabaseDescription:
|
|
2469
|
+
"ستظل الصفحات المحددة متاحة في الملفات وقواعد البيانات الأخرى. ستُزال القيم التي تخص قاعدة البيانات هذه فقط.",
|
|
2470
|
+
removeFromDatabase: "إزالة من قاعدة البيانات",
|
|
2471
|
+
removeFromDatabaseQuestion: "هل تريد الإزالة من قاعدة البيانات؟",
|
|
2472
|
+
removeFromDatabaseDescription:
|
|
2473
|
+
"سيظل “{{title}}” متاحا في الملفات وقواعد البيانات الأخرى. ستُزال القيم التي تخص قاعدة البيانات هذه فقط.",
|
|
2474
|
+
remove: "إزالة",
|
|
2475
|
+
removing: "جار الإزالة...",
|
|
2346
2476
|
failedToDuplicateRow: "فشل تكرار الصف",
|
|
2347
2477
|
failedToMoveCard: "فشل نقل البطاقة",
|
|
2348
2478
|
failedToMoveRow: "فشل نقل الصف",
|
|
@@ -2925,6 +3055,10 @@ const enUS = {
|
|
|
2925
3055
|
metaTitle: "Settings - Content",
|
|
2926
3056
|
title: "Settings",
|
|
2927
3057
|
description: "Language and workspace preferences for Content.",
|
|
3058
|
+
emailNotifications: "Email notifications",
|
|
3059
|
+
emailNotificationsDescription:
|
|
3060
|
+
"Get an email when someone comments on, replies in, or mentions you on your document.",
|
|
3061
|
+
saveFailed: "Failed to save",
|
|
2928
3062
|
languageTitle: "Language",
|
|
2929
3063
|
languageDescription:
|
|
2930
3064
|
"Choose the interface language. This preference is saved for your account.",
|
|
@@ -9003,6 +9137,10 @@ export const messagesByLocale = {
|
|
|
9003
9137
|
settings: {
|
|
9004
9138
|
title: "设置",
|
|
9005
9139
|
description: "Content 的语言和工作区偏好设置。",
|
|
9140
|
+
emailNotifications: "邮件通知",
|
|
9141
|
+
emailNotificationsDescription:
|
|
9142
|
+
"当有人评论你的文档、在讨论串中回复或提到你时,收到邮件通知。",
|
|
9143
|
+
saveFailed: "保存失败",
|
|
9006
9144
|
languageTitle: "语言",
|
|
9007
9145
|
languageDescription: "选择界面语言。此偏好会保存到你的账户。",
|
|
9008
9146
|
languageLabel: "界面语言",
|
|
@@ -9195,6 +9333,10 @@ export const messagesByLocale = {
|
|
|
9195
9333
|
settings: {
|
|
9196
9334
|
title: "Ajustes",
|
|
9197
9335
|
description: "Preferencias de idioma y espacio de trabajo para Content.",
|
|
9336
|
+
emailNotifications: "Notificaciones por correo",
|
|
9337
|
+
emailNotificationsDescription:
|
|
9338
|
+
"Recibe un correo cuando alguien comente, responda o te mencione en tu documento.",
|
|
9339
|
+
saveFailed: "No se pudo guardar",
|
|
9198
9340
|
languageTitle: "Idioma",
|
|
9199
9341
|
languageDescription:
|
|
9200
9342
|
"Elige el idioma de la interfaz. Esta preferencia se guarda en tu cuenta.",
|
|
@@ -9394,6 +9536,10 @@ export const messagesByLocale = {
|
|
|
9394
9536
|
settings: {
|
|
9395
9537
|
title: "Paramètres",
|
|
9396
9538
|
description: "Préférences de langue et d’espace de travail pour Content.",
|
|
9539
|
+
emailNotifications: "Notifications par e-mail",
|
|
9540
|
+
emailNotificationsDescription:
|
|
9541
|
+
"Recevez un e-mail lorsqu’une personne commente, répond ou vous mentionne dans votre document.",
|
|
9542
|
+
saveFailed: "Échec de l’enregistrement",
|
|
9397
9543
|
languageTitle: "Langue",
|
|
9398
9544
|
languageDescription:
|
|
9399
9545
|
"Choisissez la langue de l’interface. Cette préférence est enregistrée dans votre compte.",
|
|
@@ -9591,6 +9737,10 @@ export const messagesByLocale = {
|
|
|
9591
9737
|
settings: {
|
|
9592
9738
|
title: "Einstellungen",
|
|
9593
9739
|
description: "Sprach- und Arbeitsbereichseinstellungen für Content.",
|
|
9740
|
+
emailNotifications: "E-Mail-Benachrichtigungen",
|
|
9741
|
+
emailNotificationsDescription:
|
|
9742
|
+
"Erhalte eine E-Mail, wenn jemand dein Dokument kommentiert, antwortet oder dich erwähnt.",
|
|
9743
|
+
saveFailed: "Speichern fehlgeschlagen",
|
|
9594
9744
|
languageTitle: "Sprache",
|
|
9595
9745
|
languageDescription:
|
|
9596
9746
|
"Wähle die Sprache der Oberfläche. Diese Einstellung wird in deinem Konto gespeichert.",
|
|
@@ -9787,6 +9937,10 @@ export const messagesByLocale = {
|
|
|
9787
9937
|
settings: {
|
|
9788
9938
|
title: "設定",
|
|
9789
9939
|
description: "Content の言語とワークスペース設定。",
|
|
9940
|
+
emailNotifications: "メール通知",
|
|
9941
|
+
emailNotificationsDescription:
|
|
9942
|
+
"誰かがあなたのドキュメントにコメント、返信、またはあなたにメンションしたときにメールを受け取ります。",
|
|
9943
|
+
saveFailed: "保存に失敗しました",
|
|
9790
9944
|
languageTitle: "言語",
|
|
9791
9945
|
languageDescription:
|
|
9792
9946
|
"インターフェース言語を選択します。この設定はアカウントに保存されます。",
|
|
@@ -9975,6 +10129,10 @@ export const messagesByLocale = {
|
|
|
9975
10129
|
settings: {
|
|
9976
10130
|
title: "설정",
|
|
9977
10131
|
description: "Content의 언어 및 워크스페이스 환경설정입니다.",
|
|
10132
|
+
emailNotifications: "이메일 알림",
|
|
10133
|
+
emailNotificationsDescription:
|
|
10134
|
+
"누군가 내 문서에 댓글을 달거나 답글을 남기거나 나를 멘션하면 이메일을 받습니다.",
|
|
10135
|
+
saveFailed: "저장 실패",
|
|
9978
10136
|
languageTitle: "언어",
|
|
9979
10137
|
languageDescription:
|
|
9980
10138
|
"인터페이스 언어를 선택하세요. 이 기본 설정은 계정에 저장됩니다.",
|
|
@@ -10169,6 +10327,10 @@ export const messagesByLocale = {
|
|
|
10169
10327
|
settings: {
|
|
10170
10328
|
title: "Configurações",
|
|
10171
10329
|
description: "Preferências de idioma e espaço de trabalho do Content.",
|
|
10330
|
+
emailNotifications: "Notificações por e-mail",
|
|
10331
|
+
emailNotificationsDescription:
|
|
10332
|
+
"Receba um e-mail quando alguém comentar, responder ou mencionar você no seu documento.",
|
|
10333
|
+
saveFailed: "Falha ao salvar",
|
|
10172
10334
|
languageTitle: "Idioma",
|
|
10173
10335
|
languageDescription:
|
|
10174
10336
|
"Escolha o idioma da interface. Essa preferência é salva na sua conta.",
|
|
@@ -10356,6 +10518,10 @@ export const messagesByLocale = {
|
|
|
10356
10518
|
settings: {
|
|
10357
10519
|
title: "सेटिंग्स",
|
|
10358
10520
|
description: "Content के लिए भाषा और कार्यस्थान प्राथमिकताएं।",
|
|
10521
|
+
emailNotifications: "ईमेल सूचनाएँ",
|
|
10522
|
+
emailNotificationsDescription:
|
|
10523
|
+
"जब कोई आपके दस्तावेज़ पर टिप्पणी करे, जवाब दे या आपका उल्लेख करे तो ईमेल पाएँ।",
|
|
10524
|
+
saveFailed: "सहेजने में विफल",
|
|
10359
10525
|
languageTitle: "भाषा",
|
|
10360
10526
|
languageDescription: "इंटरफ़ेस भाषा चुनें। यह पसंद आपके खाते में सहेजी जाती है।",
|
|
10361
10527
|
languageLabel: "इंटरफ़ेस भाषा",
|
|
@@ -10542,6 +10708,10 @@ export const messagesByLocale = {
|
|
|
10542
10708
|
settings: {
|
|
10543
10709
|
title: "الإعدادات",
|
|
10544
10710
|
description: "تفضيلات اللغة ومساحة العمل في Content.",
|
|
10711
|
+
emailNotifications: "إشعارات البريد الإلكتروني",
|
|
10712
|
+
emailNotificationsDescription:
|
|
10713
|
+
"احصل على بريد إلكتروني عندما يعلّق شخص على مستندك أو يرد أو يذكرك.",
|
|
10714
|
+
saveFailed: "فشل الحفظ",
|
|
10545
10715
|
languageTitle: "اللغة",
|
|
10546
10716
|
languageDescription: "اختر لغة الواجهة. يتم حفظ هذا التفضيل في حسابك.",
|
|
10547
10717
|
languageLabel: "لغة الواجهة",
|
|
@@ -3,6 +3,8 @@ import { LanguagePicker, useT } from "@agent-native/core/client/i18n";
|
|
|
3
3
|
import { TeamPage } from "@agent-native/core/client/org";
|
|
4
4
|
import {
|
|
5
5
|
AccountSettingsCard,
|
|
6
|
+
SettingsGroup,
|
|
7
|
+
SettingsRow,
|
|
6
8
|
SettingsTabsPage,
|
|
7
9
|
useAgentSettingsTabs,
|
|
8
10
|
type SettingsSearchEntry,
|
|
@@ -10,8 +12,10 @@ import {
|
|
|
10
12
|
import { CreativeContextSettingsLink } from "@agent-native/creative-context/client";
|
|
11
13
|
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
12
14
|
import { useMemo } from "react";
|
|
15
|
+
import { toast } from "sonner";
|
|
13
16
|
|
|
14
|
-
import {
|
|
17
|
+
import { Switch } from "@/components/ui/switch";
|
|
18
|
+
import { useContentPrefs } from "@/hooks/use-content-prefs";
|
|
15
19
|
import { messagesByLocale } from "@/i18n-data";
|
|
16
20
|
|
|
17
21
|
import changelog from "../../CHANGELOG.md?raw";
|
|
@@ -24,6 +28,7 @@ export default function SettingsRoute() {
|
|
|
24
28
|
const t = useT();
|
|
25
29
|
const agentSettingsTabs = useAgentSettingsTabs();
|
|
26
30
|
useSetPageTitle(t("settings.title"));
|
|
31
|
+
const { prefs, loading: prefsLoading, save: savePrefs } = useContentPrefs();
|
|
27
32
|
|
|
28
33
|
const generalSearchEntries = useMemo<SettingsSearchEntry[]>(
|
|
29
34
|
() => [
|
|
@@ -33,6 +38,12 @@ export default function SettingsRoute() {
|
|
|
33
38
|
keywords: "language locale translation i18n",
|
|
34
39
|
hash: "language",
|
|
35
40
|
},
|
|
41
|
+
{
|
|
42
|
+
id: "content-notifications",
|
|
43
|
+
label: t("settings.emailNotifications"),
|
|
44
|
+
keywords: "email notifications comments replies mentions alerts",
|
|
45
|
+
hash: "notifications",
|
|
46
|
+
},
|
|
36
47
|
],
|
|
37
48
|
[t],
|
|
38
49
|
);
|
|
@@ -52,23 +63,41 @@ export default function SettingsRoute() {
|
|
|
52
63
|
|
|
53
64
|
<CreativeContextSettingsLink />
|
|
54
65
|
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
<SettingsGroup>
|
|
67
|
+
<SettingsRow
|
|
68
|
+
id="language"
|
|
69
|
+
label={t("settings.languageTitle")}
|
|
70
|
+
description={t("settings.languageDescription")}
|
|
71
|
+
control={
|
|
72
|
+
<div className="w-56">
|
|
73
|
+
<LanguagePicker label={t("settings.languageLabel")} />
|
|
74
|
+
</div>
|
|
75
|
+
}
|
|
76
|
+
/>
|
|
77
|
+
<SettingsRow
|
|
78
|
+
id="notifications"
|
|
79
|
+
label={t("settings.emailNotifications")}
|
|
80
|
+
description={t("settings.emailNotificationsDescription")}
|
|
81
|
+
control={
|
|
82
|
+
<Switch
|
|
83
|
+
aria-label={t("settings.emailNotifications")}
|
|
84
|
+
checked={prefs.emailNotifications !== false}
|
|
85
|
+
disabled={prefsLoading}
|
|
86
|
+
onCheckedChange={(checked) => {
|
|
87
|
+
savePrefs({ emailNotifications: checked }).catch(
|
|
88
|
+
(err) => {
|
|
89
|
+
toast.error(
|
|
90
|
+
err instanceof Error
|
|
91
|
+
? err.message
|
|
92
|
+
: t("settings.saveFailed"),
|
|
93
|
+
);
|
|
94
|
+
},
|
|
95
|
+
);
|
|
96
|
+
}}
|
|
97
|
+
/>
|
|
98
|
+
}
|
|
99
|
+
/>
|
|
100
|
+
</SettingsGroup>
|
|
72
101
|
</main>
|
|
73
102
|
}
|
|
74
103
|
team={
|
|
@@ -22,12 +22,12 @@ export const parityEvalScenarios: ParityEvalScenario[] = [
|
|
|
22
22
|
"Using fixture Content database rows only, duplicate multiple selected rows and delete multiple selected rows through the action surface. Report the ordered duplicated item/document IDs, deleted IDs, and the verified remaining row count. Do not loop single-row duplicate or document delete actions for the multi-row operations.",
|
|
23
23
|
successSignals: [
|
|
24
24
|
"Uses duplicate-database-items once for the multi-row duplicate.",
|
|
25
|
-
"Uses
|
|
25
|
+
"Uses remove-database-items once for multi-row membership removal.",
|
|
26
26
|
"Reports ordered duplicated item and document IDs.",
|
|
27
27
|
"Reports deleted IDs and verified remaining row count.",
|
|
28
28
|
"Does not use private provider credentials.",
|
|
29
29
|
],
|
|
30
|
-
expectedTools: ["duplicate-database-items", "
|
|
30
|
+
expectedTools: ["duplicate-database-items", "remove-database-items"],
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
id: "database-source-scope",
|
|
@@ -9,7 +9,7 @@ This generated matrix tracks whether high-value Content UI operations use the sa
|
|
|
9
9
|
| database.lifecycle-and-trash | database | Create, soft-delete, restore, list, and inspect content databases | action-backed | `create-content-database`, `create-inline-content-database`, `delete-content-database`, `get-content-database`, `list-content-databases`, `list-trashed-content-databases`, `restore-content-database` | `app/components/editor/SlashCommandMenu.tsx`, `app/hooks/use-content-database.ts`, `app/hooks/use-documents.ts` | Database pages and database records are created, read, soft-deleted, restored, and listed. | - | - | P0 | covered | `actions/content-database-lifecycle.db.test.ts` | `database-source-scope` | - |
|
|
10
10
|
| database.private-preview-drafts | database | Persist and reconcile a user's private database-page preview draft | action-backed | `get-preview-document-draft`, `update-preview-document-draft` | `app/components/editor/database/DatabaseView.tsx`, `app/hooks/use-documents.ts` | A user's private preview draft is read, saved, conflict-checked, or deleted without changing the shared database page until the normal save flow applies it. | These per-user editor-state actions are intentionally hidden from agent tools because preview drafts are a private UI recovery mechanism. | - | P1 | covered | `actions/preview-document-draft.db.test.ts` | - | - |
|
|
11
11
|
| database.properties-and-view-config | database | Configure properties, values, ordering, and saved views | action-backed | `configure-document-property`, `delete-document-property`, `duplicate-document-property`, `get-content-database-personal-view`, `list-document-properties`, `reorder-document-property`, `set-document-property`, `update-content-database-personal-view`, `update-content-database-view` | `app/components/editor/DocumentProperties.tsx`, `app/components/editor/DocumentDatabase.tsx`, `app/components/editor/database/DatabaseView.tsx`, `app/hooks/use-document-properties.ts` | Property schemas, property values, property order, filters, sorts, grouping, hidden columns, view type, and view settings are stored. | - | - | P0 | covered | `actions/bind-content-database-source-field.db.test.ts`, `actions/content-database-source-actions.test.ts`, `actions/resync-content-database-source.db.test.ts` | `database-source-scope` | - |
|
|
12
|
-
| database.rows | database | Add, duplicate, move, open, and
|
|
12
|
+
| database.rows | database | Add, duplicate, move, open, edit, and remove database rows | action-backed | `add-database-item`, `remove-database-items`, `duplicate-database-items`, `duplicate-database-item`, `move-database-item`, `set-document-property` | `app/components/editor/DocumentDatabase.tsx`, `app/components/editor/database/DatabaseView.tsx` | Database row memberships and ordering are created, duplicated, moved, edited, and removed without deleting the backing page. | - | - | P0 | covered | `actions/database-row-batch-actions.db.test.ts`, `parity/__tests__/database-row-batch-reliability.test.ts` | `database-bulk-row-reliability` | - |
|
|
13
13
|
| database.table-query-page | database | Query one constrained page while retaining database metadata | action-backed | `query-content-database-items` | `app/components/editor/database/DatabaseView.tsx`, `app/hooks/use-content-database.ts` | - | This UI-only bounded projection is intentionally hidden with agentTool: false; agents use get-content-database for the complete database contract. | - | P0 | covered | `actions/content-database-lifecycle.db.test.ts`, `app/hooks/use-content-database.test.ts` | - | - |
|
|
14
14
|
| editor.agent-assist-prompts | editor | Ask AI from slash generation or comment context | client-assist | - | `app/components/editor/SlashCommandMenu.tsx`, `app/components/editor/CommentsSidebar.tsx` | No direct durable mutation; the prompt asks the agent to use document actions when it decides to write. | - | - | P1 | none | - | - | - |
|
|
15
15
|
| editor.client-formatting-and-insertions | editor | Rich text formatting, selection state, slash block insertion, and copy actions | client-only-ephemeral | - | `app/components/editor/BubbleToolbar.tsx`, `app/components/editor/SlashCommandMenu.tsx`, `app/components/editor/DocumentToolbar.tsx` | - | - | - | P1 | none | - | - | - |
|
|
@@ -311,20 +311,19 @@ export const parityMatrix: ParityRow[] = [
|
|
|
311
311
|
{
|
|
312
312
|
id: "database.rows",
|
|
313
313
|
surface: "database",
|
|
314
|
-
label: "Add, duplicate, move, open, and
|
|
314
|
+
label: "Add, duplicate, move, open, edit, and remove database rows",
|
|
315
315
|
uiEntrypoints: [
|
|
316
316
|
"app/components/editor/DocumentDatabase.tsx",
|
|
317
317
|
"app/components/editor/database/DatabaseView.tsx",
|
|
318
318
|
],
|
|
319
319
|
durableEffect:
|
|
320
|
-
"Database row
|
|
320
|
+
"Database row memberships and ordering are created, duplicated, moved, edited, and removed without deleting the backing page.",
|
|
321
321
|
uiImplementation:
|
|
322
|
-
"Row controls call row actions; selected-row duplicate/
|
|
322
|
+
"Row controls call row actions; selected-row duplicate/removal call bounded batch actions, while bulk property edits remain a later reliability slice.",
|
|
323
323
|
status: "action-backed",
|
|
324
324
|
actions: [
|
|
325
325
|
"add-database-item",
|
|
326
|
-
"
|
|
327
|
-
"delete-document",
|
|
326
|
+
"remove-database-items",
|
|
328
327
|
"duplicate-database-items",
|
|
329
328
|
"duplicate-database-item",
|
|
330
329
|
"move-database-item",
|