@agent-native/core 0.130.1 → 0.131.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +57 -0
- package/corpus/core/docs/content/agent-surfaces.mdx +4 -4
- package/corpus/core/docs/content/automations.mdx +61 -12
- package/corpus/core/docs/content/deployment.mdx +11 -4
- package/corpus/core/docs/content/extensions.mdx +39 -33
- package/corpus/core/docs/content/recurring-jobs.mdx +41 -19
- package/corpus/core/docs/content/template-dispatch-operations.mdx +19 -7
- package/corpus/core/package.json +3 -1
- package/corpus/core/src/action.ts +55 -0
- package/corpus/core/src/agent/engine/builder-engine.ts +8 -4
- package/corpus/core/src/agent/production-agent.ts +175 -100
- package/corpus/core/src/agent/tool-search.ts +36 -0
- package/corpus/core/src/automations/service.ts +506 -0
- package/corpus/core/src/browser-context/index.ts +392 -0
- package/corpus/core/src/client/AgentPanel.tsx +2 -1
- package/corpus/core/src/client/FeedbackButton.tsx +37 -4
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +21 -0
- package/corpus/core/src/client/agent-chat.ts +31 -3
- package/corpus/core/src/client/agent-page/AgentJobsTab.tsx +438 -310
- package/corpus/core/src/client/agent-page/AgentTabsPage.tsx +4 -4
- package/corpus/core/src/client/agent-page/use-jobs.ts +7 -0
- package/corpus/core/src/client/analytics-session.ts +13 -0
- package/corpus/core/src/client/extensions/ExtensionViewer.tsx +67 -0
- package/corpus/core/src/client/settings/AutomationsSection.tsx +27 -499
- package/corpus/core/src/client/settings/SettingsPanel.tsx +32 -11
- package/corpus/core/src/client/settings/index.ts +2 -0
- package/corpus/core/src/client/use-agent-chat.ts +35 -3
- package/corpus/core/src/client/use-chat-threads.ts +8 -25
- package/corpus/core/src/deploy/build.ts +2 -0
- package/corpus/core/src/deploy/workspace-deploy.ts +2 -0
- package/corpus/core/src/extensions/actions.ts +115 -3
- package/corpus/core/src/extensions/fetch-tool.ts +11 -0
- package/corpus/core/src/extensions/routes.ts +16 -1
- package/corpus/core/src/extensions/web-content.ts +96 -1
- package/corpus/core/src/integrations/computer-supervision.ts +33 -1
- package/corpus/core/src/integrations/index.ts +6 -0
- package/corpus/core/src/integrations/integration-durable-dispatch-config.ts +10 -0
- package/corpus/core/src/integrations/integration-durable-dispatch.ts +4 -0
- package/corpus/core/src/integrations/plugin.ts +94 -41
- package/corpus/core/src/integrations/remote-browser-actions.ts +621 -0
- package/corpus/core/src/jobs/actions/list-recurring-jobs.ts +5 -7
- package/corpus/core/src/jobs/actions/manage-recurring-job.ts +3 -7
- package/corpus/core/src/jobs/background-automation-runner.ts +437 -0
- package/corpus/core/src/jobs/frontmatter.ts +308 -0
- package/corpus/core/src/jobs/scheduler.ts +89 -598
- package/corpus/core/src/jobs/tools.ts +22 -3
- package/corpus/core/src/localization/default-messages.ts +45 -45
- package/corpus/core/src/mcp-client/index.ts +6 -0
- package/corpus/core/src/notifications/actions.ts +5 -0
- package/corpus/core/src/progress/actions.ts +5 -0
- package/corpus/core/src/provider-api/actions/github-repo-files.ts +11 -0
- package/corpus/core/src/provider-api/actions/provider-api.ts +13 -0
- package/corpus/core/src/server/action-discovery.ts +7 -0
- package/corpus/core/src/server/agent-chat/browser-team-tools.ts +126 -3
- package/corpus/core/src/server/agent-chat/framework-prompts.ts +7 -11
- package/corpus/core/src/server/agent-chat/plugin-options.ts +3 -3
- package/corpus/core/src/server/agent-chat/script-entries.ts +52 -1
- package/corpus/core/src/server/agent-chat-plugin.ts +25 -5
- package/corpus/core/src/server/attribution.ts +22 -0
- package/corpus/core/src/server/auth.ts +20 -6
- package/corpus/core/src/server/better-auth-instance.ts +10 -2
- package/corpus/core/src/server/core-routes-plugin.ts +10 -1
- package/corpus/core/src/server/csrf.ts +25 -0
- package/corpus/core/src/server/email-template.ts +43 -13
- package/corpus/core/src/server/google-oauth.ts +21 -1
- package/corpus/core/src/server/onboarding-html.ts +18 -0
- package/corpus/core/src/server/prompts/framework-core-compact.ts +3 -3
- package/corpus/core/src/server/prompts/framework-core.ts +3 -3
- package/corpus/core/src/server/prompts/shared-rules.ts +3 -3
- package/corpus/core/src/settings/index.ts +1 -0
- package/corpus/core/src/shared/analytics-anonymous-id.ts +35 -0
- package/corpus/core/src/sharing/actions/share-resource.ts +26 -4
- package/corpus/core/src/sharing/index.ts +1 -0
- package/corpus/core/src/sharing/registry.ts +23 -0
- package/corpus/core/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/core/src/templates/default/app/i18n/ar-SA.ts +26 -0
- package/corpus/core/src/templates/default/app/i18n/de-DE.ts +28 -0
- package/corpus/core/src/templates/default/app/i18n/en-US.ts +27 -0
- package/corpus/core/src/templates/default/app/i18n/es-ES.ts +28 -0
- package/corpus/core/src/templates/default/app/i18n/fr-FR.ts +28 -0
- package/corpus/core/src/templates/default/app/i18n/hi-IN.ts +25 -0
- package/corpus/core/src/templates/default/app/i18n/ja-JP.ts +27 -0
- package/corpus/core/src/templates/default/app/i18n/ko-KR.ts +27 -0
- package/corpus/core/src/templates/default/app/i18n/pt-BR.ts +27 -0
- package/corpus/core/src/templates/default/app/i18n/zh-CN.ts +24 -0
- package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +24 -0
- package/corpus/core/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
- package/corpus/core/src/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
- package/corpus/core/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
- package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
- package/corpus/core/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
- package/corpus/core/src/tracking/providers.ts +1 -0
- package/corpus/core/src/tracking/registry.ts +2 -1
- package/corpus/core/src/tracking/types.ts +1 -0
- package/corpus/core/src/triggers/actions/list-automations.ts +43 -44
- package/corpus/core/src/triggers/actions/manage-automation.ts +17 -48
- package/corpus/core/src/triggers/actions.ts +218 -127
- package/corpus/core/src/triggers/dispatcher.ts +181 -367
- package/corpus/core/src/triggers/routes.ts +84 -27
- package/corpus/core/src/triggers/types.ts +9 -23
- package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/analytics/actions/install-dashboard-template.ts +13 -4
- package/corpus/templates/analytics/actions/rename-dashboard.ts +8 -3
- package/corpus/templates/analytics/actions/restore-dashboard-revision.ts +8 -3
- package/corpus/templates/analytics/actions/update-dashboard.ts +22 -5
- package/corpus/templates/analytics/app/components/dashboard/DashboardPanelSkeleton.tsx +7 -1
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +1 -82
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +4 -4
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +23 -13
- package/corpus/templates/analytics/app/global.css +21 -0
- package/corpus/templates/analytics/app/i18n-data.ts +165 -101
- package/corpus/templates/analytics/app/lib/custom-block-promotion.ts +62 -0
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +17 -2
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +3 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +77 -12
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/dashboard-save-queue.ts +34 -0
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +42 -26
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/types.ts +15 -0
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +1 -1
- package/corpus/templates/analytics/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-the-dashboard.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-custom-dashboard-blocks-now-identify-one-off-agent-patches-a.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-dashboard-chart-deletions-now-save-in-order-so-removed-rows-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-dashboard-chart-loaders-are-easier-to-see-and-animate-more-s.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-plan-mode-can-now-query-connected-analytics-sources-while-ke.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-plan-mode-can-use-clips-as-read-only-prompt-context.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-29-signup-entry-pages-now-show-the-first-page-viewed-before-eac.md +6 -0
- package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +26 -1
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +0 -33
- package/corpus/templates/analytics/server/lib/canonical-first-party-dashboard-repair.ts +13 -3
- package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +9 -1
- package/corpus/templates/analytics/server/lib/first-party-analytics.ts +44 -1
- package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +96 -16
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +18 -27
- package/corpus/templates/analytics/server/plugins/core-routes.ts +1 -0
- package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +4 -8
- package/corpus/templates/assets/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
- package/corpus/templates/assets/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-the-workspace.md +6 -0
- package/corpus/templates/assets/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +3 -7
- package/corpus/templates/brain/app/root.tsx +0 -3
- package/corpus/templates/brain/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-ask-brain.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-29-extensions-are-no-longer-shown-as-a-default-command-menu-des.md +6 -0
- package/corpus/templates/brain/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +25 -5
- package/corpus/templates/calendar/AGENTS.md +5 -0
- package/corpus/templates/calendar/actions/create-event.ts +43 -13
- package/corpus/templates/calendar/actions/event-action-helpers.ts +131 -1
- package/corpus/templates/calendar/actions/manage-event-draft.ts +65 -2
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +437 -258
- package/corpus/templates/calendar/app/components/calendar/DayView.tsx +19 -3
- package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +24 -0
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +15 -2
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +1 -5
- package/corpus/templates/calendar/app/hooks/use-events.ts +44 -5
- package/corpus/templates/calendar/app/i18n-data.ts +50 -0
- package/corpus/templates/calendar/app/lib/all-day-layout.ts +9 -2
- package/corpus/templates/calendar/app/lib/event-form-initialization.ts +4 -8
- package/corpus/templates/calendar/app/lib/event-form-utils.ts +30 -8
- package/corpus/templates/calendar/app/lib/location-suggestions.ts +36 -0
- package/corpus/templates/calendar/app/lib/out-of-office.ts +87 -1
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +68 -13
- package/corpus/templates/calendar/changelog/2026-07-26-out-of-office-events-now-default-to-full-days-with-a-ready.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-29-recent-calendar-locations-now-appear-as-address-suggestions-.md +6 -0
- package/corpus/templates/calendar/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/calendar/server/lib/find-time.ts +29 -5
- package/corpus/templates/calendar/shared/api.ts +2 -0
- package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +1 -5
- package/corpus/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +3 -1
- package/corpus/templates/clips/app/components/library/library-layout.tsx +2 -6
- package/corpus/templates/clips/app/components/meetings/day-header.tsx +1 -1
- package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +1 -22
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +26 -1
- package/corpus/templates/clips/app/components/workspace/organization-identity-card.tsx +107 -0
- package/corpus/templates/clips/app/i18n/en-US.ts +3 -4
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +0 -10
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +23 -51
- package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +1 -8
- package/corpus/templates/clips/changelog/2026-07-29-clearing-all-recording-edits-no-longer-leaves-the-editor-unr.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-clip-share-emails-now-open-with-who-shared-the-clip-add-a-su.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-finished-meeting-pills-now-have-a-clear-close-button.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-fixed-system-audio-recordings-picking-up-your-microphone-in-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-meeting-cards-no-longer-flicker-or-disappear-when-hovered-in.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-organization-name-logo-brand-color-and-default-visibility-no.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-the-desktop-camera-preview-now-closes-after-a-recording-fin.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-transcript-lines-on-the-meeting-page-no-longer-jump-to-the-r.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-29-when-a-meeting-wraps-up-the-recording-pill-now-shows-a-green.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +14 -15
- package/corpus/templates/clips/desktop/src/hooks/useMeetingTranscription.ts +6 -3
- package/corpus/templates/clips/desktop/src/lib/bubble-session.ts +11 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +9 -4
- package/corpus/templates/clips/desktop/src/lib/transcription-capture.ts +11 -0
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +112 -32
- package/corpus/templates/clips/desktop/src/styles.css +42 -2
- package/corpus/templates/clips/server/db/index.ts +6 -0
- package/corpus/templates/clips/server/jobs/transactional-emails.ts +47 -23
- package/corpus/templates/clips/server/lib/share-email-hero.ts +33 -0
- package/corpus/templates/clips/server/lib/transactional-email-store.ts +16 -6
- package/corpus/templates/clips/shared/clips-ai-prefs.ts +0 -1
- package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/content/.agents/skills/content-product-development/SKILL.md +103 -0
- package/corpus/templates/content/.agents/skills/content-product-development/references/verification.md +57 -0
- package/corpus/templates/content/AGENTS.md +2 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +1 -6
- package/corpus/templates/content/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/content/docs/product/README.md +115 -0
- package/corpus/templates/content/docs/product/architecture.md +98 -0
- package/corpus/templates/content/docs/product/capabilities/content.access.page-database.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.access.row-private.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.access.safe-aggregate.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.access.visibility-closure.md +79 -0
- package/corpus/templates/content/docs/product/capabilities/content.action.button.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.action-parity.md +73 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.audience-safe.md +91 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.automation.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.expression-authoring.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.presence.md +103 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.resource-consent.md +90 -0
- package/corpus/templates/content/docs/product/capabilities/content.agent.skill-catalog.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.api.cms.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.code.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.document-editor.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.footnotes.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.math.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.media.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.author.mermaid.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.automation.scheduled.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.capture.enrich.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.command.fabric.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.comment.page-owned.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.diff.ai-assist.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.diff.filtered-review.md +79 -0
- package/corpus/templates/content/docs/product/capabilities/content.diff.in-place.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.discussion.page.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.embed.host-grant.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.embed.mcp-app.md +69 -0
- package/corpus/templates/content/docs/product/capabilities/content.embed.surface.md +74 -0
- package/corpus/templates/content/docs/product/capabilities/content.event.committed.md +85 -0
- package/corpus/templates/content/docs/product/capabilities/content.expression.cached-result.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.expression.catalog.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.expression.language.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.feedback.signal.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.form.shared-engine.md +72 -0
- package/corpus/templates/content/docs/product/capabilities/content.history.queryable.md +79 -0
- package/corpus/templates/content/docs/product/capabilities/content.home.global.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.job.durable.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.knowledge.graph.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.knowledge.links.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.knowledge.search.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.layout.responsive.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.navigation.sidebar.md +86 -0
- package/corpus/templates/content/docs/product/capabilities/content.notification.source.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.block.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.blocks-field.md +79 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.database.md +92 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.multi-membership.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.page.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.reference.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.object.transclusion.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.organization.teams.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.portability.pdf-export.md +78 -0
- package/corpus/templates/content/docs/product/capabilities/content.portability.roundtrip.md +154 -0
- package/corpus/templates/content/docs/product/capabilities/content.portability.source-representation.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.portability.vault-export.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.presentation.mode.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.preset.catalog.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.actor.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.catalog.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.constraints.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.guarded-change.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.location.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.property.typed.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.publish.public.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.publish.reading.md +74 -0
- package/corpus/templates/content/docs/product/capabilities/content.query.object.md +114 -0
- package/corpus/templates/content/docs/product/capabilities/content.reader.documents.md +69 -0
- package/corpus/templates/content/docs/product/capabilities/content.reader.surface.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.relationship.edge.md +183 -0
- package/corpus/templates/content/docs/product/capabilities/content.renderer.artifact-block.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.renderer.custom-block.md +81 -0
- package/corpus/templates/content/docs/product/capabilities/content.renderer.graph.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.renderer.typed.md +92 -0
- package/corpus/templates/content/docs/product/capabilities/content.research.annotation.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.research.citation.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.review.code.md +67 -0
- package/corpus/templates/content/docs/product/capabilities/content.revision.suggestions.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.rule.deterministic.md +79 -0
- package/corpus/templates/content/docs/product/capabilities/content.schedule.constraints.md +81 -0
- package/corpus/templates/content/docs/product/capabilities/content.security.private-vault.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.share.views.md +140 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.adapters.md +154 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.builder-codec.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.catalog.md +149 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.file-folder.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.local-bridge.md +156 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.local-project.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.page-link.md +70 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.row-union.md +69 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.spaces-files.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.source.sync-policy.md +161 -0
- package/corpus/templates/content/docs/product/capabilities/content.system.dependencies.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.system.my-tasks.md +75 -0
- package/corpus/templates/content/docs/product/capabilities/content.system.project-status.md +77 -0
- package/corpus/templates/content/docs/product/capabilities/content.system.research-workspace.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.system.task-project.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.template.governance.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.template.graph.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.template.item-body.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.template.update.md +71 -0
- package/corpus/templates/content/docs/product/capabilities/content.time.types.md +85 -0
- package/corpus/templates/content/docs/product/capabilities/content.version.branching.md +151 -0
- package/corpus/templates/content/docs/product/capabilities/content.version.field-history.md +103 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.canvas.md +94 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.chart.md +91 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.dynamic-create.md +137 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.fast-capture.md +82 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.graph.md +95 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.grouping-aggregation.md +83 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.map.md +77 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.personal-state.md +99 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.pivot.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.query.md +106 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.renderer-conformance.md +77 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.scale.md +77 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.source-query.md +159 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.timeline.md +86 -0
- package/corpus/templates/content/docs/product/capabilities/content.view.tree.md +77 -0
- package/corpus/templates/content/docs/product/capabilities/content.workspace.multi-scope.md +80 -0
- package/corpus/templates/content/docs/product/capabilities/content.workspace.session-restore.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.workspace.view-instance.md +76 -0
- package/corpus/templates/content/docs/product/capabilities/content.workspace.working-set.md +77 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.capture-research.md +20 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.connected-sources.md +20 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.consensus.md +19 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.durable-home.md +21 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.publishing-portability.md +21 -0
- package/corpus/templates/content/docs/product/chapters/content.chapter.working-systems.md +27 -0
- package/corpus/templates/content/docs/product/encyclopedia.md +559 -0
- package/corpus/templates/content/docs/product/features/content.feature.bring-your-local-work.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.build-living-dashboards.md +34 -0
- package/corpus/templates/content/docs/product/features/content.feature.build-new-surfaces.md +33 -0
- package/corpus/templates/content/docs/product/features/content.feature.capture-into-action.md +34 -0
- package/corpus/templates/content/docs/product/features/content.feature.cite-what-you-found.md +34 -0
- package/corpus/templates/content/docs/product/features/content.feature.collaborate-in-context.md +59 -0
- package/corpus/templates/content/docs/product/features/content.feature.collect-structured-input.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.connect-your-sources.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.data-that-keeps-itself-right.md +45 -0
- package/corpus/templates/content/docs/product/features/content.feature.durable-foundations.md +48 -0
- package/corpus/templates/content/docs/product/features/content.feature.evolve-systems-safely.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.explore-alternatives-safely.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.find-your-place-again.md +40 -0
- package/corpus/templates/content/docs/product/features/content.feature.keep-your-private-vault-private.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.living-references.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.make-the-workspace-yours.md +40 -0
- package/corpus/templates/content/docs/product/features/content.feature.move-without-starting-over.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.plan-work-across-time.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.publish-with-confidence.md +43 -0
- package/corpus/templates/content/docs/product/features/content.feature.put-your-organizations-know-how-to-work.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.read-and-annotate-anything.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.review-changes-in-place.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.run-projects-your-way.md +44 -0
- package/corpus/templates/content/docs/product/features/content.feature.see-your-information-your-way.md +44 -0
- package/corpus/templates/content/docs/product/features/content.feature.share-how-your-organization-works.md +38 -0
- package/corpus/templates/content/docs/product/features/content.feature.sketch-connections-keep-whats-true.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.take-the-whole-vault-with-you.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.trust-your-connected-sources.md +40 -0
- package/corpus/templates/content/docs/product/features/content.feature.understand-what-your-data-says.md +39 -0
- package/corpus/templates/content/docs/product/features/content.feature.when-this-happens-that-follows.md +43 -0
- package/corpus/templates/content/docs/product/features/content.feature.work-across-every-workspace.md +37 -0
- package/corpus/templates/content/docs/product/features/content.feature.work-on-content-inside-another-application.md +37 -0
- package/corpus/templates/content/docs/product/roadmap.md +878 -0
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +1 -7
- package/corpus/templates/crm/app/i18n/en-US.ts +4 -0
- package/corpus/templates/crm/app/routes/settings.tsx +33 -8
- package/corpus/templates/crm/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +133 -63
- package/corpus/templates/design/.generated/bridge/embedded-wheel.generated.ts +19 -2
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +51 -14
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +41 -26
- package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +22 -4
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +216 -116
- package/corpus/templates/design/app/components/design/bridge/embedded-wheel.bridge.ts +21 -2
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +5 -1
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbenchLoader.tsx +10 -2
- package/corpus/templates/design/app/components/design/code-workbench/code-workbench-shell.ts +2 -0
- package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +60 -55
- package/corpus/templates/design/app/components/design/design-canvas/content-size-report.ts +88 -2
- package/corpus/templates/design/app/components/design/multi-screen/board-surface-html.ts +3 -2
- package/corpus/templates/design/app/components/design/types.ts +4 -0
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +1 -5
- package/corpus/templates/design/app/pages/design-editor/clipboard-layer-source.ts +28 -0
- package/corpus/templates/design/app/pages/design-editor/clone-and-pen-edit.ts +117 -0
- package/corpus/templates/design/app/pages/design-editor/code-layer-state.ts +3 -1
- package/corpus/templates/design/app/pages/design-editor/pending-edits.ts +120 -74
- package/corpus/templates/design/app/pages/design-editor/pending-structure-verification.ts +11 -0
- package/corpus/templates/design/app/pages/design-editor/react-semantic-handoff.ts +2 -0
- package/corpus/templates/design/app/pages/design-editor/source-location.ts +1 -1
- package/corpus/templates/design/changelog/2026-07-29-copy-rendered-ui-between-live-local-apps-and-design-files-wh.md +6 -0
- package/corpus/templates/design/changelog/2026-07-29-design-boards-stay-dark-and-viewport-height-content-keeps-it.md +6 -0
- package/corpus/templates/design/changelog/2026-07-29-design-frames-no-longer-grow-continuously-when-their-content.md +6 -0
- package/corpus/templates/design/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/design/changelog/2026-07-29-the-code-panel-and-apply-design-update-control-now-use-clear.md +6 -0
- package/corpus/templates/design/changelog/2026-07-29-the-tools-panel-now-keeps-extension-creation-and-discovery-h.md +6 -0
- package/corpus/templates/design/shared/source-mode.ts +7 -1
- package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/dispatch/app/i18n-data.ts +171 -0
- package/corpus/templates/dispatch/app/routes/browser-chat.tsx +4 -0
- package/corpus/templates/dispatch/app/routes/browser-connect.tsx +4 -0
- package/corpus/templates/dispatch/changelog/2026-07-29-browser-chat-can-securely-connect-the-agent-native-chrome-ex.md +6 -0
- package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +1 -6
- package/corpus/templates/forms/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +1 -5
- package/corpus/templates/macros/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +1 -9
- package/corpus/templates/mail/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +3 -7
- package/corpus/templates/plan/app/pages/PlansPage.tsx +2 -2
- package/corpus/templates/plan/changelog/2026-07-29-chat-history-now-closes-smoothly-and-stays-ready-when-you-re.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-29-chat-history-stays-visible-when-you-return-to-ask-plan.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-29-fixed-plan-pages-crashing-when-recent-activity-is-unavailabl.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/slides/.agents/skills/create-deck/SKILL.md +60 -4
- package/corpus/templates/slides/.agents/skills/design-systems/SKILL.md +20 -0
- package/corpus/templates/slides/.agents/skills/slide-editing/SKILL.md +30 -1
- package/corpus/templates/slides/.agents/skills/slide-images/SKILL.md +3 -1
- package/corpus/templates/slides/AGENTS.md +22 -24
- package/corpus/templates/slides/actions/check-image-gen.ts +8 -2
- package/corpus/templates/slides/actions/create-deck.ts +4 -12
- package/corpus/templates/slides/actions/export-pptx.ts +25 -3
- package/corpus/templates/slides/actions/generate-image-api.ts +4 -2
- package/corpus/templates/slides/actions/generate-slides-ai.ts +1 -1
- package/corpus/templates/slides/actions/get-deck-reference-context.ts +136 -0
- package/corpus/templates/slides/actions/get-workspace-defaults.ts +55 -0
- package/corpus/templates/slides/actions/image-gen-status.ts +10 -1
- package/corpus/templates/slides/actions/import-file.ts +53 -38
- package/corpus/templates/slides/actions/list-decks.ts +2 -0
- package/corpus/templates/slides/actions/patch-deck.ts +2 -0
- package/corpus/templates/slides/actions/set-workspace-defaults.ts +50 -0
- package/corpus/templates/slides/actions/view-screen.ts +6 -0
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +1 -1
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +67 -3
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +40 -8
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +33 -8
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +6 -2
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +114 -128
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +2 -1
- package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +1 -1
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +1193 -267
- package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +302 -102
- package/corpus/templates/slides/app/components/editor/rich-text-selection.ts +270 -0
- package/corpus/templates/slides/app/components/editor/slide-escape-arbiter.ts +34 -0
- package/corpus/templates/slides/app/components/editor/slide-object-interactions.ts +368 -0
- package/corpus/templates/slides/app/components/editor/slide-presence.ts +13 -0
- package/corpus/templates/slides/app/components/layout/AgentWorkIndicator.tsx +23 -3
- package/corpus/templates/slides/app/components/layout/Layout.tsx +39 -6
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +1 -6
- package/corpus/templates/slides/app/components/layout/layout-route-policy.ts +23 -0
- package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +0 -2
- package/corpus/templates/slides/app/context/DeckContext.tsx +2 -0
- package/corpus/templates/slides/app/global.css +60 -0
- package/corpus/templates/slides/app/hooks/use-agent-generating.ts +76 -5
- package/corpus/templates/slides/app/hooks/use-workspace-defaults.ts +26 -0
- package/corpus/templates/slides/app/i18n/en-US.ts +38 -3
- package/corpus/templates/slides/app/lib/generation-state.ts +13 -3
- package/corpus/templates/slides/app/lib/slide-image-replacement.ts +27 -6
- package/corpus/templates/slides/app/lib/text-tool-shortcut.ts +62 -0
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +197 -83
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +95 -0
- package/corpus/templates/slides/app/pages/Index.tsx +348 -53
- package/corpus/templates/slides/changelog/2026-07-28-pick-an-existing-deck-as-a-style-reference-when-creating-a-n.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-ai-editing-status-is-now-quieter-and-only-shows-slide-presen.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-design-systems-and-reference-decks-are-easier-to-choose-toge.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-generated-decks-now-receive-a-concise-relevant-title-before-.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-new-deck-prompts-reuse-empty-chats.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-new-deck-setup-now-stays-in-the-editor-with-closable-style-a.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-selected-words-and-text-runs-can-now-be-styled-independently.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-slide-annotation-tools-are-clearer-and-escape-now-exits-anno.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-slide-editing-now-opens-with-the-app-navigation-collapsed-fo.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-slide-editing-stays-visually-clean-on-hover-without-a-canvas.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-slides-now-appear-one-by-one-while-ai-builds-a-deck-with-ste.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-text-boxes-now-select-move-duplicate-resize-and-style-like-a.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-29-untitled-decks-now-use-a-clearer-this-deck-label-in-the-agen.md +6 -0
- package/corpus/templates/slides/server/handlers/image-providers/builder.ts +305 -0
- package/corpus/templates/slides/server/handlers/image-providers/index.ts +6 -3
- package/corpus/templates/slides/server/plugins/agent-chat.ts +1 -0
- package/corpus/templates/slides/server/workspace-defaults.ts +169 -0
- package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +31 -8
- package/corpus/templates/tasks/app/i18n/en-US.ts +7 -0
- package/corpus/templates/tasks/app/routes/settings.tsx +25 -2
- package/corpus/templates/tasks/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/corpus/toolkit/CHANGELOG.md +15 -0
- package/corpus/toolkit/README.md +2 -2
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/app-shell/sidebar-footer-actions.tsx +0 -3
- package/corpus/toolkit/src/chat-history.css +1 -0
- package/corpus/toolkit/src/composer/ComposerPlusMenu.tsx +35 -14
- package/corpus/toolkit/src/composer/PromptComposer.tsx +6 -0
- package/corpus/toolkit/src/composer/TiptapComposer.tsx +11 -3
- package/corpus/toolkit/src/design-tweaks/visual-style-controls.tsx +64 -11
- package/dist/action.d.ts +44 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js +9 -0
- package/dist/action.js.map +1 -1
- package/dist/agent/engine/builder-engine.js +6 -4
- package/dist/agent/engine/builder-engine.js.map +1 -1
- package/dist/agent/production-agent.d.ts +11 -1
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +131 -90
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/tool-search.d.ts +4 -0
- package/dist/agent/tool-search.d.ts.map +1 -1
- package/dist/agent/tool-search.js +30 -0
- package/dist/agent/tool-search.js.map +1 -1
- package/dist/automations/service.d.ts +85 -0
- package/dist/automations/service.d.ts.map +1 -0
- package/dist/automations/service.js +332 -0
- package/dist/automations/service.js.map +1 -0
- package/dist/browser-context/index.d.ts +579 -0
- package/dist/browser-context/index.d.ts.map +1 -0
- package/dist/browser-context/index.js +331 -0
- package/dist/browser-context/index.js.map +1 -0
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +1 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/FeedbackButton.d.ts +6 -2
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +20 -3
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +19 -2
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat.d.ts +15 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +13 -3
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.d.ts +1 -0
- package/dist/client/agent-page/AgentJobsTab.d.ts.map +1 -1
- package/dist/client/agent-page/AgentJobsTab.js +186 -98
- package/dist/client/agent-page/AgentJobsTab.js.map +1 -1
- package/dist/client/agent-page/AgentTabsPage.js +4 -4
- package/dist/client/agent-page/AgentTabsPage.js.map +1 -1
- package/dist/client/agent-page/use-jobs.d.ts +7 -0
- package/dist/client/agent-page/use-jobs.d.ts.map +1 -1
- package/dist/client/agent-page/use-jobs.js.map +1 -1
- package/dist/client/analytics-session.d.ts.map +1 -1
- package/dist/client/analytics-session.js +13 -0
- package/dist/client/analytics-session.js.map +1 -1
- package/dist/client/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionViewer.js +29 -6
- package/dist/client/extensions/ExtensionViewer.js.map +1 -1
- package/dist/client/settings/AutomationsSection.d.ts +0 -9
- package/dist/client/settings/AutomationsSection.d.ts.map +1 -1
- package/dist/client/settings/AutomationsSection.js +9 -168
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts +9 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +19 -11
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/index.d.ts +1 -1
- package/dist/client/settings/index.d.ts.map +1 -1
- package/dist/client/settings/index.js +1 -1
- package/dist/client/settings/index.js.map +1 -1
- package/dist/client/use-agent-chat.d.ts.map +1 -1
- package/dist/client/use-agent-chat.js +20 -3
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/use-chat-threads.d.ts.map +1 -1
- package/dist/client/use-chat-threads.js +4 -17
- package/dist/client/use-chat-threads.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +2 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/deploy/workspace-deploy.d.ts.map +1 -1
- package/dist/deploy/workspace-deploy.js +2 -1
- package/dist/deploy/workspace-deploy.js.map +1 -1
- package/dist/extensions/actions.d.ts.map +1 -1
- package/dist/extensions/actions.js +82 -6
- package/dist/extensions/actions.js.map +1 -1
- package/dist/extensions/fetch-tool.d.ts.map +1 -1
- package/dist/extensions/fetch-tool.js +11 -0
- package/dist/extensions/fetch-tool.js.map +1 -1
- package/dist/extensions/routes.d.ts +5 -1
- package/dist/extensions/routes.d.ts.map +1 -1
- package/dist/extensions/routes.js +7 -1
- package/dist/extensions/routes.js.map +1 -1
- package/dist/extensions/web-content.d.ts +1 -0
- package/dist/extensions/web-content.d.ts.map +1 -1
- package/dist/extensions/web-content.js +82 -1
- package/dist/extensions/web-content.js.map +1 -1
- package/dist/integrations/computer-supervision.d.ts.map +1 -1
- package/dist/integrations/computer-supervision.js +22 -1
- package/dist/integrations/computer-supervision.js.map +1 -1
- package/dist/integrations/index.d.ts +3 -2
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +3 -2
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/integration-durable-dispatch-config.d.ts +2 -0
- package/dist/integrations/integration-durable-dispatch-config.d.ts.map +1 -1
- package/dist/integrations/integration-durable-dispatch-config.js +4 -0
- package/dist/integrations/integration-durable-dispatch-config.js.map +1 -1
- package/dist/integrations/integration-durable-dispatch.d.ts +2 -2
- package/dist/integrations/integration-durable-dispatch.d.ts.map +1 -1
- package/dist/integrations/integration-durable-dispatch.js +2 -2
- package/dist/integrations/integration-durable-dispatch.js.map +1 -1
- package/dist/integrations/plugin.d.ts.map +1 -1
- package/dist/integrations/plugin.js +84 -39
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/remote-browser-actions.d.ts +7 -0
- package/dist/integrations/remote-browser-actions.d.ts.map +1 -0
- package/dist/integrations/remote-browser-actions.js +482 -0
- package/dist/integrations/remote-browser-actions.js.map +1 -0
- package/dist/jobs/actions/list-recurring-jobs.d.ts.map +1 -1
- package/dist/jobs/actions/list-recurring-jobs.js +4 -6
- package/dist/jobs/actions/list-recurring-jobs.js.map +1 -1
- package/dist/jobs/actions/manage-recurring-job.js +3 -6
- package/dist/jobs/actions/manage-recurring-job.js.map +1 -1
- package/dist/jobs/background-automation-runner.d.ts +76 -0
- package/dist/jobs/background-automation-runner.d.ts.map +1 -0
- package/dist/jobs/background-automation-runner.js +288 -0
- package/dist/jobs/background-automation-runner.js.map +1 -0
- package/dist/jobs/frontmatter.d.ts +63 -0
- package/dist/jobs/frontmatter.d.ts.map +1 -0
- package/dist/jobs/frontmatter.js +216 -0
- package/dist/jobs/frontmatter.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +6 -60
- package/dist/jobs/scheduler.d.ts.map +1 -1
- package/dist/jobs/scheduler.js +67 -484
- package/dist/jobs/scheduler.js.map +1 -1
- package/dist/jobs/tools.d.ts.map +1 -1
- package/dist/jobs/tools.js +24 -3
- package/dist/jobs/tools.js.map +1 -1
- package/dist/localization/default-messages.d.ts +28 -33
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +34 -39
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp-client/index.d.ts.map +1 -1
- package/dist/mcp-client/index.js +4 -0
- package/dist/mcp-client/index.js.map +1 -1
- package/dist/notifications/actions.d.ts.map +1 -1
- package/dist/notifications/actions.js +5 -0
- package/dist/notifications/actions.js.map +1 -1
- package/dist/notifications/routes.d.ts +6 -6
- package/dist/observability/routes.d.ts +3 -3
- package/dist/progress/actions.d.ts.map +1 -1
- package/dist/progress/actions.js +5 -0
- package/dist/progress/actions.js.map +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +14 -14
- package/dist/provider-api/actions/github-repo-files.d.ts.map +1 -1
- package/dist/provider-api/actions/github-repo-files.js +9 -0
- package/dist/provider-api/actions/github-repo-files.js.map +1 -1
- package/dist/provider-api/actions/provider-api.d.ts +16 -16
- package/dist/provider-api/actions/provider-api.d.ts.map +1 -1
- package/dist/provider-api/actions/provider-api.js +14 -0
- package/dist/provider-api/actions/provider-api.js.map +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/resources/handlers.d.ts +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/action-discovery.d.ts.map +1 -1
- package/dist/server/action-discovery.js +5 -0
- package/dist/server/action-discovery.js.map +1 -1
- package/dist/server/agent-chat/browser-team-tools.d.ts.map +1 -1
- package/dist/server/agent-chat/browser-team-tools.js +90 -3
- package/dist/server/agent-chat/browser-team-tools.js.map +1 -1
- package/dist/server/agent-chat/framework-prompts.d.ts.map +1 -1
- package/dist/server/agent-chat/framework-prompts.js +7 -11
- package/dist/server/agent-chat/framework-prompts.js.map +1 -1
- package/dist/server/agent-chat/plugin-options.d.ts +3 -3
- package/dist/server/agent-chat/plugin-options.js.map +1 -1
- package/dist/server/agent-chat/script-entries.d.ts.map +1 -1
- package/dist/server/agent-chat/script-entries.js +43 -1
- package/dist/server/agent-chat/script-entries.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +24 -5
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/attribution.d.ts +6 -0
- package/dist/server/attribution.d.ts.map +1 -1
- package/dist/server/attribution.js +14 -14
- package/dist/server/attribution.js.map +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +5 -2
- package/dist/server/auth.js.map +1 -1
- package/dist/server/better-auth-instance.d.ts +2 -1
- package/dist/server/better-auth-instance.d.ts.map +1 -1
- package/dist/server/better-auth-instance.js +6 -3
- package/dist/server/better-auth-instance.js.map +1 -1
- package/dist/server/core-routes-plugin.d.ts +7 -0
- package/dist/server/core-routes-plugin.d.ts.map +1 -1
- package/dist/server/core-routes-plugin.js +3 -1
- package/dist/server/core-routes-plugin.js.map +1 -1
- package/dist/server/csrf.d.ts.map +1 -1
- package/dist/server/csrf.js +25 -0
- package/dist/server/csrf.js.map +1 -1
- package/dist/server/email-template.d.ts +4 -0
- package/dist/server/email-template.d.ts.map +1 -1
- package/dist/server/email-template.js +25 -8
- package/dist/server/email-template.js.map +1 -1
- package/dist/server/google-oauth.d.ts +3 -0
- package/dist/server/google-oauth.d.ts.map +1 -1
- package/dist/server/google-oauth.js +12 -1
- package/dist/server/google-oauth.js.map +1 -1
- package/dist/server/onboarding-html.d.ts.map +1 -1
- package/dist/server/onboarding-html.js +18 -0
- package/dist/server/onboarding-html.js.map +1 -1
- package/dist/server/prompts/framework-core-compact.js +3 -3
- package/dist/server/prompts/framework-core-compact.js.map +1 -1
- package/dist/server/prompts/framework-core.js +3 -3
- package/dist/server/prompts/framework-core.js.map +1 -1
- package/dist/server/prompts/shared-rules.js +3 -3
- package/dist/server/prompts/shared-rules.js.map +1 -1
- package/dist/server/realtime-token.d.ts +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/settings/index.js.map +1 -1
- package/dist/shared/analytics-anonymous-id.d.ts +12 -0
- package/dist/shared/analytics-anonymous-id.d.ts.map +1 -0
- package/dist/shared/analytics-anonymous-id.js +29 -0
- package/dist/shared/analytics-anonymous-id.js.map +1 -0
- package/dist/sharing/actions/share-resource.d.ts.map +1 -1
- package/dist/sharing/actions/share-resource.js +23 -4
- package/dist/sharing/actions/share-resource.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/registry.d.ts +23 -0
- package/dist/sharing/registry.d.ts.map +1 -1
- package/dist/sharing/registry.js.map +1 -1
- package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +1 -5
- package/dist/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/default/app/i18n/ar-SA.ts +26 -0
- package/dist/templates/default/app/i18n/de-DE.ts +28 -0
- package/dist/templates/default/app/i18n/en-US.ts +27 -0
- package/dist/templates/default/app/i18n/es-ES.ts +28 -0
- package/dist/templates/default/app/i18n/fr-FR.ts +28 -0
- package/dist/templates/default/app/i18n/hi-IN.ts +25 -0
- package/dist/templates/default/app/i18n/ja-JP.ts +27 -0
- package/dist/templates/default/app/i18n/ko-KR.ts +27 -0
- package/dist/templates/default/app/i18n/pt-BR.ts +27 -0
- package/dist/templates/default/app/i18n/zh-CN.ts +24 -0
- package/dist/templates/default/app/i18n/zh-TW.ts +24 -0
- package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/dist/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
- package/dist/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
- package/dist/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
- package/dist/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
- package/dist/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
- package/dist/tracking/providers.d.ts.map +1 -1
- package/dist/tracking/providers.js +1 -0
- package/dist/tracking/providers.js.map +1 -1
- package/dist/tracking/registry.d.ts +1 -0
- package/dist/tracking/registry.d.ts.map +1 -1
- package/dist/tracking/registry.js +1 -0
- package/dist/tracking/registry.js.map +1 -1
- package/dist/tracking/types.d.ts +1 -0
- package/dist/tracking/types.d.ts.map +1 -1
- package/dist/tracking/types.js.map +1 -1
- package/dist/triggers/actions/list-automations.d.ts +7 -0
- package/dist/triggers/actions/list-automations.d.ts.map +1 -1
- package/dist/triggers/actions/list-automations.js +29 -41
- package/dist/triggers/actions/list-automations.js.map +1 -1
- package/dist/triggers/actions/manage-automation.js +15 -33
- package/dist/triggers/actions/manage-automation.js.map +1 -1
- package/dist/triggers/actions.d.ts.map +1 -1
- package/dist/triggers/actions.js +184 -95
- package/dist/triggers/actions.js.map +1 -1
- package/dist/triggers/dispatcher.d.ts +3 -9
- package/dist/triggers/dispatcher.d.ts.map +1 -1
- package/dist/triggers/dispatcher.js +134 -304
- package/dist/triggers/dispatcher.js.map +1 -1
- package/dist/triggers/routes.d.ts.map +1 -1
- package/dist/triggers/routes.js +76 -17
- package/dist/triggers/routes.js.map +1 -1
- package/dist/triggers/types.d.ts +4 -23
- package/dist/triggers/types.d.ts.map +1 -1
- package/dist/triggers/types.js.map +1 -1
- package/docs/content/agent-surfaces.mdx +4 -4
- package/docs/content/automations.mdx +61 -12
- package/docs/content/deployment.mdx +11 -4
- package/docs/content/extensions.mdx +39 -33
- package/docs/content/recurring-jobs.mdx +41 -19
- package/docs/content/template-dispatch-operations.mdx +19 -7
- package/package.json +4 -2
- package/src/action.ts +55 -0
- package/src/agent/engine/builder-engine.ts +8 -4
- package/src/agent/production-agent.ts +175 -100
- package/src/agent/tool-search.ts +36 -0
- package/src/automations/service.ts +506 -0
- package/src/browser-context/index.ts +392 -0
- package/src/client/AgentPanel.tsx +2 -1
- package/src/client/FeedbackButton.tsx +37 -4
- package/src/client/MultiTabAssistantChat.tsx +21 -0
- package/src/client/agent-chat.ts +31 -3
- package/src/client/agent-page/AgentJobsTab.tsx +438 -310
- package/src/client/agent-page/AgentTabsPage.tsx +4 -4
- package/src/client/agent-page/use-jobs.ts +7 -0
- package/src/client/analytics-session.ts +13 -0
- package/src/client/extensions/ExtensionViewer.tsx +67 -0
- package/src/client/settings/AutomationsSection.tsx +27 -499
- package/src/client/settings/SettingsPanel.tsx +32 -11
- package/src/client/settings/index.ts +2 -0
- package/src/client/use-agent-chat.ts +35 -3
- package/src/client/use-chat-threads.ts +8 -25
- package/src/deploy/build.ts +2 -0
- package/src/deploy/workspace-deploy.ts +2 -0
- package/src/extensions/actions.ts +115 -3
- package/src/extensions/fetch-tool.ts +11 -0
- package/src/extensions/routes.ts +16 -1
- package/src/extensions/web-content.ts +96 -1
- package/src/integrations/computer-supervision.ts +33 -1
- package/src/integrations/index.ts +6 -0
- package/src/integrations/integration-durable-dispatch-config.ts +10 -0
- package/src/integrations/integration-durable-dispatch.ts +4 -0
- package/src/integrations/plugin.ts +94 -41
- package/src/integrations/remote-browser-actions.ts +621 -0
- package/src/jobs/actions/list-recurring-jobs.ts +5 -7
- package/src/jobs/actions/manage-recurring-job.ts +3 -7
- package/src/jobs/background-automation-runner.ts +437 -0
- package/src/jobs/frontmatter.ts +308 -0
- package/src/jobs/scheduler.ts +89 -598
- package/src/jobs/tools.ts +22 -3
- package/src/localization/default-messages.ts +45 -45
- package/src/mcp-client/index.ts +6 -0
- package/src/notifications/actions.ts +5 -0
- package/src/progress/actions.ts +5 -0
- package/src/provider-api/actions/github-repo-files.ts +11 -0
- package/src/provider-api/actions/provider-api.ts +13 -0
- package/src/server/__snapshots__/agent-chat-plugin.surface.spec.ts.snap +4 -4
- package/src/server/action-discovery.ts +7 -0
- package/src/server/agent-chat/browser-team-tools.ts +126 -3
- package/src/server/agent-chat/framework-prompts.ts +7 -11
- package/src/server/agent-chat/plugin-options.ts +3 -3
- package/src/server/agent-chat/script-entries.ts +52 -1
- package/src/server/agent-chat-plugin.ts +25 -5
- package/src/server/attribution.ts +22 -0
- package/src/server/auth.ts +20 -6
- package/src/server/better-auth-instance.ts +10 -2
- package/src/server/core-routes-plugin.ts +10 -1
- package/src/server/csrf.ts +25 -0
- package/src/server/email-template.ts +43 -13
- package/src/server/google-oauth.ts +21 -1
- package/src/server/onboarding-html.ts +18 -0
- package/src/server/prompts/framework-core-compact.ts +3 -3
- package/src/server/prompts/framework-core.ts +3 -3
- package/src/server/prompts/shared-rules.ts +3 -3
- package/src/settings/index.ts +1 -0
- package/src/shared/analytics-anonymous-id.ts +35 -0
- package/src/sharing/actions/share-resource.ts +26 -4
- package/src/sharing/index.ts +1 -0
- package/src/sharing/registry.ts +23 -0
- package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/chat/app/components/layout/Sidebar.tsx +1 -5
- package/src/templates/chat/changelog/2026-07-29-sidebar-footers-now-keep-feedback-search-and-collapse-togeth.md +6 -0
- package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/default/app/i18n/ar-SA.ts +26 -0
- package/src/templates/default/app/i18n/de-DE.ts +28 -0
- package/src/templates/default/app/i18n/en-US.ts +27 -0
- package/src/templates/default/app/i18n/es-ES.ts +28 -0
- package/src/templates/default/app/i18n/fr-FR.ts +28 -0
- package/src/templates/default/app/i18n/hi-IN.ts +25 -0
- package/src/templates/default/app/i18n/ja-JP.ts +27 -0
- package/src/templates/default/app/i18n/ko-KR.ts +27 -0
- package/src/templates/default/app/i18n/pt-BR.ts +27 -0
- package/src/templates/default/app/i18n/zh-CN.ts +24 -0
- package/src/templates/default/app/i18n/zh-TW.ts +24 -0
- package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +5 -0
- package/src/templates/workspace-core/.agents/skills/agent-page/SKILL.md +10 -7
- package/src/templates/workspace-core/.agents/skills/automations/SKILL.md +53 -8
- package/src/templates/workspace-core/.agents/skills/browser-sessions/SKILL.md +131 -0
- package/src/templates/workspace-core/.agents/skills/extension-points/SKILL.md +13 -4
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +23 -15
- package/src/templates/workspace-core/.agents/skills/recurring-jobs/SKILL.md +33 -18
- package/src/tracking/providers.ts +1 -0
- package/src/tracking/registry.ts +2 -1
- package/src/tracking/types.ts +1 -0
- package/src/triggers/actions/list-automations.ts +43 -44
- package/src/triggers/actions/manage-automation.ts +17 -48
- package/src/triggers/actions.ts +218 -127
- package/src/triggers/dispatcher.ts +181 -367
- package/src/triggers/routes.ts +84 -27
- package/src/triggers/types.ts +9 -23
- package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +0 -232
|
@@ -5652,7 +5652,8 @@ body[data-clips-route="recording-pill"] #root {
|
|
|
5652
5652
|
opacity: 0.6;
|
|
5653
5653
|
}
|
|
5654
5654
|
|
|
5655
|
-
.pill-expand-btn
|
|
5655
|
+
.pill-expand-btn,
|
|
5656
|
+
.pill-close-btn {
|
|
5656
5657
|
margin-left: 4px;
|
|
5657
5658
|
display: inline-flex;
|
|
5658
5659
|
height: 28px;
|
|
@@ -5667,7 +5668,8 @@ body[data-clips-route="recording-pill"] #root {
|
|
|
5667
5668
|
transition: background 120ms;
|
|
5668
5669
|
}
|
|
5669
5670
|
|
|
5670
|
-
.pill-expand-btn:hover
|
|
5671
|
+
.pill-expand-btn:hover,
|
|
5672
|
+
.pill-close-btn:hover {
|
|
5671
5673
|
background: rgba(255, 255, 255, 0.1);
|
|
5672
5674
|
}
|
|
5673
5675
|
|
|
@@ -5862,6 +5864,44 @@ body[data-clips-route="recording-pill"] #root {
|
|
|
5862
5864
|
background: rgba(255, 255, 255, 0.1);
|
|
5863
5865
|
}
|
|
5864
5866
|
|
|
5867
|
+
.pill-finished-banner {
|
|
5868
|
+
display: flex;
|
|
5869
|
+
align-items: center;
|
|
5870
|
+
gap: 8px;
|
|
5871
|
+
flex-shrink: 0;
|
|
5872
|
+
margin: 8px 12px 2px;
|
|
5873
|
+
padding: 8px 10px;
|
|
5874
|
+
border: 1px solid rgba(34, 197, 94, 0.45);
|
|
5875
|
+
border-radius: 8px;
|
|
5876
|
+
background: rgba(34, 197, 94, 0.16);
|
|
5877
|
+
}
|
|
5878
|
+
|
|
5879
|
+
.pill-finished-text {
|
|
5880
|
+
min-width: 0;
|
|
5881
|
+
flex: 1;
|
|
5882
|
+
font-size: 12px;
|
|
5883
|
+
font-weight: 600;
|
|
5884
|
+
line-height: 1.35;
|
|
5885
|
+
color: #86efac;
|
|
5886
|
+
}
|
|
5887
|
+
|
|
5888
|
+
.pill-finished-open {
|
|
5889
|
+
flex-shrink: 0;
|
|
5890
|
+
padding: 5px 9px;
|
|
5891
|
+
border: none;
|
|
5892
|
+
border-radius: 6px;
|
|
5893
|
+
background: #22c55e;
|
|
5894
|
+
color: #052e16;
|
|
5895
|
+
font-size: 11px;
|
|
5896
|
+
font-weight: 700;
|
|
5897
|
+
cursor: pointer;
|
|
5898
|
+
transition: background 120ms;
|
|
5899
|
+
}
|
|
5900
|
+
|
|
5901
|
+
.pill-finished-open:hover {
|
|
5902
|
+
background: #4ade80;
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5865
5905
|
.pill-transcript-area {
|
|
5866
5906
|
min-height: 0;
|
|
5867
5907
|
flex: 1;
|
|
@@ -5,6 +5,7 @@ import { eq } from "drizzle-orm";
|
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
absoluteUrl,
|
|
8
|
+
recordingShareEmailExtras,
|
|
8
9
|
recordingShareHeroHtml,
|
|
9
10
|
} from "../lib/share-email-hero.js";
|
|
10
11
|
import * as schema from "./schema.js";
|
|
@@ -58,6 +59,11 @@ registerShareableResource({
|
|
|
58
59
|
replyTo: ctx.sender.email,
|
|
59
60
|
}),
|
|
60
61
|
getHeroHtml: (recording, ctx) => recordingShareHeroHtml(recording, ctx),
|
|
62
|
+
getShareEmailExtras: (_recording, ctx) =>
|
|
63
|
+
recordingShareEmailExtras({
|
|
64
|
+
href: ctx.href,
|
|
65
|
+
senderEmail: ctx.sender.email,
|
|
66
|
+
}),
|
|
61
67
|
getDb,
|
|
62
68
|
ownerAccessIgnoresOrg: true,
|
|
63
69
|
});
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
|
|
33
33
|
const JOB_INTERVAL_MS = 60_000;
|
|
34
34
|
const RECONCILIATION_BATCH_SIZE = 100;
|
|
35
|
+
const RECONCILIATION_WRITE_CONCURRENCY = 8;
|
|
35
36
|
const RECIPIENT_SHARE_BATCH_SIZE = 2;
|
|
36
37
|
const DELIVERY_BATCH_SIZE = 25;
|
|
37
38
|
const REMINDER_DELAY_MS = 48 * 60 * 60 * 1000;
|
|
@@ -77,6 +78,27 @@ type ReconciliationCursor = {
|
|
|
77
78
|
id: string;
|
|
78
79
|
};
|
|
79
80
|
|
|
81
|
+
async function mapWithConcurrency<Value, Result>(
|
|
82
|
+
values: readonly Value[],
|
|
83
|
+
mapper: (value: Value) => Promise<Result>,
|
|
84
|
+
): Promise<Result[]> {
|
|
85
|
+
const results = new Array<Result>(values.length);
|
|
86
|
+
let nextIndex = 0;
|
|
87
|
+
await Promise.all(
|
|
88
|
+
Array.from(
|
|
89
|
+
{ length: Math.min(RECONCILIATION_WRITE_CONCURRENCY, values.length) },
|
|
90
|
+
async () => {
|
|
91
|
+
while (nextIndex < values.length) {
|
|
92
|
+
const index = nextIndex;
|
|
93
|
+
nextIndex += 1;
|
|
94
|
+
results[index] = await mapper(values[index]);
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
),
|
|
98
|
+
);
|
|
99
|
+
return results;
|
|
100
|
+
}
|
|
101
|
+
|
|
80
102
|
export type TransactionalEmailStore = Pick<
|
|
81
103
|
typeof transactionalEmailStore,
|
|
82
104
|
| "ensureEnabledAt"
|
|
@@ -608,19 +630,21 @@ async function reconcileDueReminders(
|
|
|
608
630
|
cursor,
|
|
609
631
|
limit,
|
|
610
632
|
);
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
633
|
+
const enqueued = (
|
|
634
|
+
await mapWithConcurrency(page, async (rawShare) => {
|
|
635
|
+
const share = normalizeShare(rawShare);
|
|
636
|
+
if (!share) return false;
|
|
637
|
+
return (
|
|
638
|
+
await store.enqueue(`unviewed-reminder:${share.id}`, {
|
|
639
|
+
type: "unviewed-reminder",
|
|
640
|
+
recipient: share.recipient,
|
|
641
|
+
recordingIds: [share.recordingId],
|
|
642
|
+
shareId: share.id,
|
|
643
|
+
requestedBy: share.createdBy,
|
|
644
|
+
})
|
|
645
|
+
).created;
|
|
646
|
+
})
|
|
647
|
+
).filter(Boolean).length;
|
|
624
648
|
const lastShare = page[page.length - 1];
|
|
625
649
|
return {
|
|
626
650
|
enqueued,
|
|
@@ -892,16 +916,16 @@ export async function runTransactionalEmailsOnce(
|
|
|
892
916
|
});
|
|
893
917
|
}
|
|
894
918
|
}
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
job
|
|
898
|
-
|
|
899
|
-
job.type === "first-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
919
|
+
await mapWithConcurrency(
|
|
920
|
+
jobs.filter(
|
|
921
|
+
(job) =>
|
|
922
|
+
job.state === "pending" &&
|
|
923
|
+
(job.type === "first-view" ||
|
|
924
|
+
job.type === "first-import" ||
|
|
925
|
+
job.type === "unviewed-reminder"),
|
|
926
|
+
),
|
|
927
|
+
(job) => store.transition(job.logicalKey, ["pending"], "ready"),
|
|
928
|
+
);
|
|
905
929
|
|
|
906
930
|
if (!(await (dependencies.emailConfigured ?? isEmailConfigured)())) {
|
|
907
931
|
return result;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
+
emailLink,
|
|
2
3
|
getAppProductionUrl,
|
|
3
4
|
withConfiguredAppBasePath,
|
|
4
5
|
} from "@agent-native/core/server";
|
|
6
|
+
import type { ShareEmailExtras } from "@agent-native/core/sharing";
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* Origin plus the configured mount path. Deployments served under
|
|
@@ -52,6 +54,37 @@ function isHttpUrl(value: string): boolean {
|
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Clips-specific body for the share-notification email: the AI companion CTA,
|
|
59
|
+
* the copyable agent link, and the closing note that routes replies to the
|
|
60
|
+
* person who shared the clip.
|
|
61
|
+
*/
|
|
62
|
+
export function recordingShareEmailExtras(ctx: {
|
|
63
|
+
href: string;
|
|
64
|
+
senderEmail: string;
|
|
65
|
+
}): ShareEmailExtras {
|
|
66
|
+
const summarizeUrl = new URL(ctx.href);
|
|
67
|
+
summarizeUrl.searchParams.set("panel", "agent");
|
|
68
|
+
return {
|
|
69
|
+
// The heading already says who shared what, so the clip thumbnail follows
|
|
70
|
+
// it directly.
|
|
71
|
+
paragraphs: [],
|
|
72
|
+
secondaryCta: { label: "Summarize with AI", url: summarizeUrl.toString() },
|
|
73
|
+
linkBlock: {
|
|
74
|
+
intro: "Copy and paste this link for your own AI agent to summarize:",
|
|
75
|
+
url: ctx.href,
|
|
76
|
+
placement: "after-cta",
|
|
77
|
+
},
|
|
78
|
+
closingParagraphs: [
|
|
79
|
+
"Clips is a 100% free, open-source, Agent-Native app for sharing screengrabs with friends and colleagues. No download required.",
|
|
80
|
+
`Just reply to this email if you want to get back to ${emailLink(
|
|
81
|
+
ctx.senderEmail,
|
|
82
|
+
`mailto:${ctx.senderEmail}`,
|
|
83
|
+
)} directly.`,
|
|
84
|
+
],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
55
88
|
export type ShareHeroRecording = {
|
|
56
89
|
thumbnailUrl?: string | null;
|
|
57
90
|
animatedThumbnailUrl?: string | null;
|
|
@@ -180,6 +180,7 @@ export type TransactionalEmailStoreOptions = {
|
|
|
180
180
|
afterInitialJobTempSynced?: () => Promise<void>;
|
|
181
181
|
afterStaleLockSnapshot?: () => Promise<void>;
|
|
182
182
|
afterJobLockAcquired?: () => Promise<void>;
|
|
183
|
+
afterFreshLockContention?: () => Promise<void>;
|
|
183
184
|
};
|
|
184
185
|
};
|
|
185
186
|
|
|
@@ -462,6 +463,17 @@ export function createTransactionalEmailStore(
|
|
|
462
463
|
if (await takeoverMarkerBlocks(takeoverFile)) return null;
|
|
463
464
|
} catch (error) {
|
|
464
465
|
if (!isNodeError(error, "EEXIST")) throw error;
|
|
466
|
+
const existingLock = await stat(file).catch((statError: unknown) => {
|
|
467
|
+
if (isNodeError(statError, "ENOENT")) return null;
|
|
468
|
+
throw statError;
|
|
469
|
+
});
|
|
470
|
+
if (
|
|
471
|
+
existingLock &&
|
|
472
|
+
Date.now() - existingLock.mtimeMs <= LOCK_STALE_MS
|
|
473
|
+
) {
|
|
474
|
+
await testHooks?.afterFreshLockContention?.();
|
|
475
|
+
return null;
|
|
476
|
+
}
|
|
465
477
|
ownsTakeover = await acquireTakeoverMarker(ownerFile, takeoverFile);
|
|
466
478
|
if (!ownsTakeover) return null;
|
|
467
479
|
const lockStat = await stat(file).catch(() => null);
|
|
@@ -484,12 +496,10 @@ export function createTransactionalEmailStore(
|
|
|
484
496
|
if (!sameIdentity(await fileIdentity(file), ownerIdentity)) return null;
|
|
485
497
|
return await operation();
|
|
486
498
|
} finally {
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
if (acquired
|
|
491
|
-
await unlinkIfIdentity(file, ownerIdentity);
|
|
492
|
-
}
|
|
499
|
+
// A holder only releases the inode it acquired. A stale reclaimer may
|
|
500
|
+
// replace that inode while the original holder is paused; identity-based
|
|
501
|
+
// release preserves the replacement without a cleanup-time takeover race.
|
|
502
|
+
if (acquired) await unlinkIfIdentity(file, ownerIdentity);
|
|
493
503
|
if (ownsTakeover) {
|
|
494
504
|
await unlinkIfIdentity(takeoverFile, ownerIdentity);
|
|
495
505
|
}
|
|
@@ -117,6 +117,11 @@ in the moment of agent use.
|
|
|
117
117
|
missing-secret states, OAuth grants, and provider connection health.
|
|
118
118
|
- **Agent UX kit**: sidebar, composer, staged context, mentions, voice, human
|
|
119
119
|
approval, generative UI, progress, and screen-state exposure.
|
|
120
|
+
- **Custom block kit**: optional extension creation, viewer chrome, slots, and
|
|
121
|
+
promotion affordances. Apps must opt in; Core keeps the sandbox, SQL storage,
|
|
122
|
+
access checks, and compatibility routes, while Toolkit owns reusable adoption
|
|
123
|
+
UI. Analytics may expose this as one-off **Custom Blocks**; durable behavior
|
|
124
|
+
should be promoted to app code.
|
|
120
125
|
- **Chat history kit**: presentational chat lists and recent-chat rails belong
|
|
121
126
|
in Toolkit; Core keeps thread persistence, agent execution, transport, and
|
|
122
127
|
page-to-sidebar handoff. Use Toolkit's `ChatHistoryRail` for the standard
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-product-development
|
|
3
|
+
description: >-
|
|
4
|
+
Product contracts and proof boundaries for Agent Native Content. Use when
|
|
5
|
+
planning, implementing, reviewing, testing, or documenting Content behavior
|
|
6
|
+
or shared framework behavior that changes Content.
|
|
7
|
+
scope: dev
|
|
8
|
+
metadata:
|
|
9
|
+
internal: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Develop Agent Native Content
|
|
13
|
+
|
|
14
|
+
## Rule
|
|
15
|
+
|
|
16
|
+
Before changing Content, identify the user workflow, Feature, and atomic
|
|
17
|
+
Capabilities the work touches. Implement through Content's shared primitives,
|
|
18
|
+
then prove the affected workflow before claiming a Capability or Feature is
|
|
19
|
+
complete.
|
|
20
|
+
|
|
21
|
+
The roadmap is direction, not a substitute for current code. Current code is
|
|
22
|
+
evidence, not permission to invent a conflicting product contract.
|
|
23
|
+
|
|
24
|
+
## Retrieve the right context
|
|
25
|
+
|
|
26
|
+
The repository source of truth lives in `templates/content/docs/product/`.
|
|
27
|
+
|
|
28
|
+
1. Read [architecture.md](../../../docs/product/architecture.md).
|
|
29
|
+
2. Find the workflow in [roadmap.md](../../../docs/product/roadmap.md), or search
|
|
30
|
+
the Feature records:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
rg -n "<workflow or Feature>" templates/content/docs/product/features
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
3. Read the Feature's required and enhancing Capability records by stable ID,
|
|
37
|
+
including each record's workflow, contract, boundaries, acceptance stories,
|
|
38
|
+
current evidence, proof plan, and open questions. The encyclopedia row is an
|
|
39
|
+
index, not enough implementation context.
|
|
40
|
+
4. Inspect the current implementation, tests, feature flags, and provider state.
|
|
41
|
+
|
|
42
|
+
Load only the relevant records. Do not paste the encyclopedia into the context
|
|
43
|
+
and hope the important sentence floats to the top.
|
|
44
|
+
|
|
45
|
+
If a required record is missing or still contains only the legacy generated
|
|
46
|
+
shell, name the missing or incomplete ID. Do not manufacture edge behavior from
|
|
47
|
+
its one-line summary. A narrow bug fix may still proceed when tests and existing
|
|
48
|
+
behavior make the contract unambiguous; record the context gap in the handoff.
|
|
49
|
+
|
|
50
|
+
## Classify the change
|
|
51
|
+
|
|
52
|
+
| Lane | Meaning | Response |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| Contract repair | Existing behavior violates an accepted contract | Fix the smallest coherent path and prove the regression |
|
|
55
|
+
| Contract fulfillment | Work implements or hardens an incomplete Capability | Follow its dependencies and proof requirements |
|
|
56
|
+
| Local refinement | Reversible polish that does not change the promise | Implement without manufacturing a strategy meeting |
|
|
57
|
+
| Product decision candidate | Work changes identity, access, source truth, a shared primitive, or the user promise | Preserve the user problem and tradeoff for review before making it architecture |
|
|
58
|
+
|
|
59
|
+
The catalog welcomes new ideas. It prevents accidental decisions; it does not
|
|
60
|
+
require a permission slip for every useful bug fix.
|
|
61
|
+
|
|
62
|
+
## Preserve the architecture
|
|
63
|
+
|
|
64
|
+
- Stable objects may have many Views, memberships, embeds, and source mappings.
|
|
65
|
+
- People, agents, automations, APIs, and UI use one typed Action surface.
|
|
66
|
+
- Access applies before search, traversal, Queries, aggregates, exports, or AI.
|
|
67
|
+
- Sources declare truth and write-back policy; unknown provider data survives.
|
|
68
|
+
- Meaningful change preserves actor, origin, history, recovery, and review.
|
|
69
|
+
- Content remains portable and does not demand custody of connected originals.
|
|
70
|
+
- Donor code and completed dependencies do not prove a whole contract.
|
|
71
|
+
|
|
72
|
+
Load the domain skill for the work, especially `actions`, `security`, `sharing`,
|
|
73
|
+
`storing-data`, `portability`, `real-time-collab`, or `real-time-sync`.
|
|
74
|
+
|
|
75
|
+
## Prove and record the result
|
|
76
|
+
|
|
77
|
+
Use the affected Capability's proof requirements and the Feature's example
|
|
78
|
+
workflow. Read [references/verification.md](references/verification.md) for the
|
|
79
|
+
cross-surface matrix.
|
|
80
|
+
|
|
81
|
+
A Capability becomes `verified` only when its complete atomic contract passes.
|
|
82
|
+
A Feature becomes `available` only when every required Capability is verified
|
|
83
|
+
and its complete example workflow passes end to end. Useful machinery remains
|
|
84
|
+
substrate until then.
|
|
85
|
+
|
|
86
|
+
Update atomic records when work changes a contract, dependency, state, non-goal,
|
|
87
|
+
proof boundary, or accepted Feature workflow. Regenerate projections and run:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
pnpm guard:content-product-docs --write
|
|
91
|
+
pnpm guard:content-product-docs
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Handoff
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Product context: <Feature and Capability IDs>
|
|
98
|
+
Workflow: <what now works>
|
|
99
|
+
Proof: <tests and real-interface evidence>
|
|
100
|
+
Remaining gaps: <failures or missing evidence>
|
|
101
|
+
Product decisions: <none or accepted/candidate decision>
|
|
102
|
+
Record updates: <files changed or still needed>
|
|
103
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Content product verification
|
|
2
|
+
|
|
3
|
+
Choose proof in proportion to the affected contract. Deterministic tests prove
|
|
4
|
+
data and Action semantics; real-interface testing proves that the workflow is
|
|
5
|
+
actually usable.
|
|
6
|
+
|
|
7
|
+
## Cross-surface matrix
|
|
8
|
+
|
|
9
|
+
Verify the applicable rows:
|
|
10
|
+
|
|
11
|
+
| Surface | Proof question |
|
|
12
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| UI | Can a person complete the Feature's example workflow through the real interface? |
|
|
14
|
+
| Actions | Can an agent perform the same authorized operations without a second mutation path? |
|
|
15
|
+
| Application state | Does the agent receive the focused object, View, selection, and temporary filters the person sees? |
|
|
16
|
+
| Access | Do reads, writes, direct links, derived results, public output, and embeds preserve authority? |
|
|
17
|
+
| Persistence | Does the result survive reload, retry, interruption, and process boundaries appropriate to the Capability? |
|
|
18
|
+
| History | Does the record name the actual human, agent, automation, or integration actor and remain recoverable? |
|
|
19
|
+
| Sources | Does identity survive refresh and write-back without dropping unknown provider data? |
|
|
20
|
+
| Portability | Does import, export, or static rendering preserve the accepted meaning or report explicit degradation? |
|
|
21
|
+
| Accessibility | Do keyboard and assistive-technology paths support the primary workflow? |
|
|
22
|
+
| Performance | Does the workflow stay inside its declared scale, time, memory, and output limits? |
|
|
23
|
+
|
|
24
|
+
## Status evidence
|
|
25
|
+
|
|
26
|
+
- `verified`: current proof covers the complete atomic contract.
|
|
27
|
+
- `failing`: current behavior contradicts the promise.
|
|
28
|
+
- `stale`: prior proof exists but no longer matches the implementation or
|
|
29
|
+
environment.
|
|
30
|
+
- `in_progress`: implementation is actively being built or hardened.
|
|
31
|
+
- `approved_shape`: the contract is accepted but lacks implementation or proof.
|
|
32
|
+
- `exploring`: a material boundary remains unresolved.
|
|
33
|
+
- `deferred`: the contract is intentionally sequenced later.
|
|
34
|
+
- `superseded`: another record owns future work; follow `superseded_by`.
|
|
35
|
+
|
|
36
|
+
Never promote a generic Capability because one provider-specific donor works.
|
|
37
|
+
Never promote a Feature because several dependencies landed. The final proof is
|
|
38
|
+
the actual car, not a tasteful arrangement of engine parts on the garage floor.
|
|
39
|
+
|
|
40
|
+
## Updating the catalog
|
|
41
|
+
|
|
42
|
+
Change the atomic record first. Keep dependencies complete even when they are
|
|
43
|
+
already verified. Add public-safe evidence only: repository paths, tests, or
|
|
44
|
+
public documentation that proves the claim without private transcripts or
|
|
45
|
+
workspace links.
|
|
46
|
+
|
|
47
|
+
After editing records:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
pnpm test:content-product-docs
|
|
51
|
+
pnpm guard:content-product-docs --write
|
|
52
|
+
pnpm guard:content-product-docs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Inspect the generated roadmap and encyclopedia diff. A regenerated projection
|
|
56
|
+
is not an editorial review; make sure the underlying record still says what a
|
|
57
|
+
new contributor needs to know.
|
|
@@ -8,6 +8,8 @@ actions and application state.
|
|
|
8
8
|
|
|
9
9
|
Read the relevant skill before deeper work:
|
|
10
10
|
|
|
11
|
+
- `content-product-development` — accepted product contracts, roadmap context,
|
|
12
|
+
dependency records, and proof boundaries for any Content change.
|
|
11
13
|
- `content` — Markdown/MDX authoring, local folder sources, databases, intake
|
|
12
14
|
forms, and Slack/A2A artifact replies.
|
|
13
15
|
- `document-editing` — document and comment actions, screen context and IDs,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
useActionMutation,
|
|
8
8
|
useActionQuery,
|
|
9
9
|
} from "@agent-native/core/client/hooks";
|
|
10
|
-
import {
|
|
10
|
+
import { useT } from "@agent-native/core/client/i18n";
|
|
11
11
|
import { OrgSwitcher } from "@agent-native/core/client/org";
|
|
12
12
|
import { FeedbackButton } from "@agent-native/core/client/ui";
|
|
13
13
|
import { SidebarFooterActions } from "@agent-native/toolkit/app-shell";
|
|
@@ -1610,9 +1610,6 @@ export function DocumentSidebar({
|
|
|
1610
1610
|
<TooltipContent side="right">{t("sidebar.search")}</TooltipContent>
|
|
1611
1611
|
</Tooltip>
|
|
1612
1612
|
);
|
|
1613
|
-
const translateButton = (
|
|
1614
|
-
<LanguagePicker variant="ghost-icon" label={t("settings.languageLabel")} />
|
|
1615
|
-
);
|
|
1616
1613
|
const feedbackButton = (
|
|
1617
1614
|
<FeedbackButton
|
|
1618
1615
|
variant={collapsed ? "icon" : "sidebar"}
|
|
@@ -2141,7 +2138,6 @@ export function DocumentSidebar({
|
|
|
2141
2138
|
<SidebarFooterActions
|
|
2142
2139
|
collapsed
|
|
2143
2140
|
feedback={feedbackButton}
|
|
2144
|
-
translate={translateButton}
|
|
2145
2141
|
search={searchButton}
|
|
2146
2142
|
collapse={collapseButton}
|
|
2147
2143
|
/>
|
|
@@ -2387,7 +2383,6 @@ export function DocumentSidebar({
|
|
|
2387
2383
|
{isCodeMode ? <DevDatabaseLink /> : null}
|
|
2388
2384
|
<SidebarFooterActions
|
|
2389
2385
|
feedback={feedbackButton}
|
|
2390
|
-
translate={translateButton}
|
|
2391
2386
|
search={searchButton}
|
|
2392
2387
|
collapse={collapseButton}
|
|
2393
2388
|
className="px-0 py-0"
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Content product knowledge
|
|
2
|
+
|
|
3
|
+
This folder is the repository source of truth for Agent Native Content's accepted
|
|
4
|
+
product direction. It gives contributors and coding agents enough context to
|
|
5
|
+
change Content without relying on private conversations or a particular
|
|
6
|
+
person's computer.
|
|
7
|
+
|
|
8
|
+
Start with:
|
|
9
|
+
|
|
10
|
+
- [Architecture](architecture.md) for the product invariants.
|
|
11
|
+
- [Roadmap](roadmap.md) for the six public Chapters and their complete user
|
|
12
|
+
workflows.
|
|
13
|
+
- [Capability encyclopedia](encyclopedia.md) for the atomic contracts and
|
|
14
|
+
dependency graph beneath those workflows.
|
|
15
|
+
|
|
16
|
+
The roadmap and encyclopedia are deterministic projections. Edit the atomic
|
|
17
|
+
records in `chapters/`, `features/`, and `capabilities/`, then run:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
pnpm guard:content-product-docs --write
|
|
21
|
+
pnpm guard:content-product-docs
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## The record hierarchy
|
|
25
|
+
|
|
26
|
+
| Record | Meaning |
|
|
27
|
+
| ---------- | --------------------------------------------------------------------- |
|
|
28
|
+
| Chapter | A large public promise and ordering boundary. |
|
|
29
|
+
| Feature | A complete workflow an audience can understand and use. |
|
|
30
|
+
| Capability | One reusable primitive, surface, or workflow with its own proof gate. |
|
|
31
|
+
| Increment | A named deepening of one Feature, stored with that Feature. |
|
|
32
|
+
|
|
33
|
+
A Feature can require several Capabilities, and one Capability can enable
|
|
34
|
+
several Features. Completion therefore forms a graph rather than a ceremonial
|
|
35
|
+
checklist. Dependencies describe the complete logical contract even when the
|
|
36
|
+
dependency already exists.
|
|
37
|
+
|
|
38
|
+
## Capability mini-specs
|
|
39
|
+
|
|
40
|
+
A Capability record must stand on its own. Frontmatter makes the graph
|
|
41
|
+
queryable; the body teaches a source-blind contributor what the contract
|
|
42
|
+
actually means. Version 2 records include:
|
|
43
|
+
|
|
44
|
+
- **Why this exists:** the human problem, not an architectural noun.
|
|
45
|
+
- **Example workflow:** one concrete end-to-end use case.
|
|
46
|
+
- **Product contract:** settled interactions, identities, authority, failure,
|
|
47
|
+
deletion, retry, concurrency, or degraded-state behavior that matters for
|
|
48
|
+
this Capability.
|
|
49
|
+
- **Boundaries and non-goals:** which adjacent Capability owns neighboring
|
|
50
|
+
concerns and which tempting parallel systems must not be created.
|
|
51
|
+
- **Acceptance stories:** at least two independently named Given/when/then
|
|
52
|
+
scenarios a developer can execute.
|
|
53
|
+
- **Current evidence:** what the repository actually proves today, what is only
|
|
54
|
+
reusable donor machinery, and what is missing.
|
|
55
|
+
- **Proof plan:** the deterministic and real-interface evidence required to
|
|
56
|
+
change the state.
|
|
57
|
+
- **Open questions:** only decisions that are genuinely unresolved. A settled
|
|
58
|
+
decision omitted by an old summary is not an open question.
|
|
59
|
+
|
|
60
|
+
Use `primary_user_job` to make the record discoverable by intent. Use several
|
|
61
|
+
concrete `proof_requirements`, not one comma-heavy sentence pretending to be a
|
|
62
|
+
test plan. A mini-spec may add relevant sections, but it must not omit the core
|
|
63
|
+
ones above. These records preserve public product conclusions; private
|
|
64
|
+
conversations, review mechanics, names, local paths, and source links stay out
|
|
65
|
+
of the repository.
|
|
66
|
+
|
|
67
|
+
## Truthful status
|
|
68
|
+
|
|
69
|
+
Roadmap status describes a whole Feature:
|
|
70
|
+
|
|
71
|
+
- `available`: the complete example workflow has current end-to-end proof.
|
|
72
|
+
- `in_validation`: the workflow exists and is being hardened.
|
|
73
|
+
- `partially_implemented`: useful pieces exist, but the workflow is incomplete.
|
|
74
|
+
- `planned`: the shape is approved and ordered.
|
|
75
|
+
- `paused`: work deliberately stopped while its context remains preserved.
|
|
76
|
+
|
|
77
|
+
Capability state describes one atomic contract:
|
|
78
|
+
|
|
79
|
+
- `verified`, `failing`, `stale`, `in_progress`, `approved_shape`, `exploring`,
|
|
80
|
+
`deferred`, or `superseded`.
|
|
81
|
+
|
|
82
|
+
Donor code and finished dependencies do not make a Feature complete. A Feature
|
|
83
|
+
becomes `available` only when every required Capability is verified and the
|
|
84
|
+
Feature's own example workflow passes end to end.
|
|
85
|
+
|
|
86
|
+
## Normalization ledger
|
|
87
|
+
|
|
88
|
+
The original research used a few provisional or partial names. This repository
|
|
89
|
+
normalizes them deliberately:
|
|
90
|
+
|
|
91
|
+
- The incomplete `content.diff` token and the provisional
|
|
92
|
+
`content.diff.in-place-review` name resolve to `content.diff.in-place`.
|
|
93
|
+
- The provisional `content.query.typed` name resolves to
|
|
94
|
+
`content.query.object` for the durable object and `content.view.source-query`
|
|
95
|
+
for cross-source composition.
|
|
96
|
+
- Presets collapsed into Templates. `content.preset.catalog` remains only as a
|
|
97
|
+
superseded lineage record.
|
|
98
|
+
- Separate PDF and EPUB product identity collapsed into the shared Reader.
|
|
99
|
+
`content.reader.documents` points to `content.reader.surface`.
|
|
100
|
+
- Local mode collapsed into governed Sources. `content.source.local-project`
|
|
101
|
+
points to `content.source.adapters`.
|
|
102
|
+
- The materialized multi-source row-union interface is donor machinery rather
|
|
103
|
+
than the future product model. `content.source.row-union` points to
|
|
104
|
+
`content.view.source-query`.
|
|
105
|
+
|
|
106
|
+
## Change policy
|
|
107
|
+
|
|
108
|
+
Repairing a bug against an accepted record does not require a new product
|
|
109
|
+
debate. A change to identity, permissions, source truth, shared primitives, or
|
|
110
|
+
the user promise does. Preserve the concrete problem and tradeoff in the pull
|
|
111
|
+
request, then update these records when the decision is accepted.
|
|
112
|
+
|
|
113
|
+
The catalog is a compass, not a velvet rope. Good small fixes and new ideas are
|
|
114
|
+
welcome; they simply should not arrive disguised as architecture that everyone
|
|
115
|
+
already agreed to.
|