@agent-native/core 0.130.2 → 0.131.3
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 +79 -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/a2a/types.ts +6 -0
- package/corpus/core/src/action.ts +68 -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-capabilities.ts +43 -8
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +63 -1
- 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/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/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/AGENTS.md +5 -0
- package/corpus/templates/analytics/actions/hubspot-deals.ts +1 -0
- package/corpus/templates/analytics/actions/hubspot-records.ts +1 -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/analytics-connector-catalog.ts +2 -0
- 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/get-event.ts +1 -0
- package/corpus/templates/calendar/actions/manage-event-draft.ts +65 -2
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +438 -258
- package/corpus/templates/calendar/app/components/calendar/DayView.tsx +19 -3
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -3
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +14 -19
- 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 +51 -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 +43 -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 +82 -20
- 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/changelog/2026-07-29-unnamed-events-now-use-a-title-placeholder.md +6 -0
- package/corpus/templates/calendar/server/lib/find-time.ts +29 -5
- package/corpus/templates/calendar/server/lib/google-calendar.ts +2 -0
- package/corpus/templates/calendar/server/lib/ical-fetcher.ts +1 -0
- package/corpus/templates/calendar/shared/api.ts +4 -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/library/library-layout.tsx +1 -5
- 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-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/desktop/src/app.tsx +14 -15
- 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/server/jobs/transactional-emails.ts +47 -23
- package/corpus/templates/clips/server/lib/transactional-email-store.ts +16 -6
- 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/analytics-data-for-decks/SKILL.md +48 -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 +25 -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 +74 -9
- 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 +39 -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-google-slides-exports-can-connect-your-google-account-direct.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/google-docs-auth.ts +4 -2
- 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/a2a/types.d.ts +6 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.d.ts +57 -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/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.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/file-upload/actions/upload-image.d.ts +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/screen-memory-stdio.d.ts +7 -7
- package/dist/mcp/screen-memory-stdio.d.ts.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 +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/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-capabilities.d.ts.map +1 -1
- package/dist/server/agent-capabilities.js +32 -3
- package/dist/server/agent-capabilities.js.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts +17 -1
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +50 -1
- package/dist/server/agent-chat/action-filters-a2a.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/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/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/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/a2a/types.ts +6 -0
- package/src/action.ts +68 -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-capabilities.ts +43 -8
- package/src/server/agent-chat/action-filters-a2a.ts +63 -1
- 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/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/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
|
@@ -84,6 +84,7 @@ import { prepareRewindRecordingStart } from "./rewind-recording-start";
|
|
|
84
84
|
import { singleFlight } from "./single-flight";
|
|
85
85
|
import {
|
|
86
86
|
startTranscriptionCapture,
|
|
87
|
+
shouldStartLocalRecordingTranscription,
|
|
87
88
|
type CapturedTranscript,
|
|
88
89
|
type TranscriptionCapture,
|
|
89
90
|
} from "./transcription-capture";
|
|
@@ -2539,6 +2540,8 @@ async function startNativeFullscreenRecording(
|
|
|
2539
2540
|
let nativeTranscriptFailureSaved = false;
|
|
2540
2541
|
const wantsSystemAudio = params.systemAudioOn !== false;
|
|
2541
2542
|
const wantsRecordedAudio = wantsAudio || wantsSystemAudio;
|
|
2543
|
+
const canTranscribeLocally =
|
|
2544
|
+
shouldStartLocalRecordingTranscription(wantsAudio);
|
|
2542
2545
|
let micDeviceLabel: string | null = params.micLabel || null;
|
|
2543
2546
|
const saveTranscriptFailure = async (
|
|
2544
2547
|
failureReason: string,
|
|
@@ -2554,7 +2557,7 @@ async function startNativeFullscreenRecording(
|
|
|
2554
2557
|
);
|
|
2555
2558
|
};
|
|
2556
2559
|
const startNativeTranscriptionBeforeRecording = async () => {
|
|
2557
|
-
if (localOnly || !
|
|
2560
|
+
if (localOnly || !canTranscribeLocally || transcriptionCapture) return;
|
|
2558
2561
|
transcriptionCapture = await startTranscriptionCapture(
|
|
2559
2562
|
{
|
|
2560
2563
|
deviceId: params.micId,
|
|
@@ -2564,7 +2567,7 @@ async function startNativeFullscreenRecording(
|
|
|
2564
2567
|
{ voiceProcessing: false },
|
|
2565
2568
|
);
|
|
2566
2569
|
if (
|
|
2567
|
-
|
|
2570
|
+
canTranscribeLocally &&
|
|
2568
2571
|
!transcriptionCapture &&
|
|
2569
2572
|
shouldSaveLocalTranscriptionStartupFailure()
|
|
2570
2573
|
) {
|
|
@@ -3387,6 +3390,8 @@ async function startRecordingInner(
|
|
|
3387
3390
|
const wantsAudio = params.micOn;
|
|
3388
3391
|
const wantsSystemAudio = wantsScreen && params.systemAudioOn !== false;
|
|
3389
3392
|
const wantsRecordedAudio = wantsAudio || wantsSystemAudio;
|
|
3393
|
+
const canTranscribeLocally =
|
|
3394
|
+
shouldStartLocalRecordingTranscription(wantsAudio);
|
|
3390
3395
|
const audioCue = createAudioCue();
|
|
3391
3396
|
const captureSource = params.source ?? "window";
|
|
3392
3397
|
const localRecordingMode = params.localRecordingMode ?? "off";
|
|
@@ -4203,7 +4208,7 @@ async function startRecordingInner(
|
|
|
4203
4208
|
// delaying capture, so the first ~1s the user expected to record was lost
|
|
4204
4209
|
// (and the recording felt cut at the end). It's a separate capture from the
|
|
4205
4210
|
// recorded audio tracks, so starting it slightly late is safe.
|
|
4206
|
-
transcriptionCapture =
|
|
4211
|
+
transcriptionCapture = canTranscribeLocally
|
|
4207
4212
|
? await startTranscriptionCapture(
|
|
4208
4213
|
{
|
|
4209
4214
|
deviceId: params.micId,
|
|
@@ -4228,7 +4233,7 @@ async function startRecordingInner(
|
|
|
4228
4233
|
);
|
|
4229
4234
|
void transcriptionCapture.pause().catch(() => {});
|
|
4230
4235
|
} else if (
|
|
4231
|
-
|
|
4236
|
+
canTranscribeLocally &&
|
|
4232
4237
|
!transcriptionCapture &&
|
|
4233
4238
|
shouldSaveLocalTranscriptionStartupFailure()
|
|
4234
4239
|
) {
|
|
@@ -286,6 +286,17 @@ async function startBrowserTranscriptionCapture(): Promise<TranscriptionCapture
|
|
|
286
286
|
|
|
287
287
|
export const __test = { createWebSpeechTranscriptBuffer };
|
|
288
288
|
|
|
289
|
+
/**
|
|
290
|
+
* Local transcription opens a microphone capture of its own. System-only
|
|
291
|
+
* recordings must wait for post-upload transcription instead of sampling the
|
|
292
|
+
* Mac's default microphone.
|
|
293
|
+
*/
|
|
294
|
+
export function shouldStartLocalRecordingTranscription(
|
|
295
|
+
microphoneEnabled: boolean,
|
|
296
|
+
): boolean {
|
|
297
|
+
return microphoneEnabled;
|
|
298
|
+
}
|
|
299
|
+
|
|
289
300
|
export async function startTranscriptionCapture(
|
|
290
301
|
mic?: {
|
|
291
302
|
deviceId?: string | null;
|
|
@@ -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;
|
|
@@ -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.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Agent Native Content architecture
|
|
2
|
+
|
|
3
|
+
Agent Native Content is one composable system in which documents, structured
|
|
4
|
+
records, connected data, human collaboration, and agent work share stable
|
|
5
|
+
objects and one Action surface. A person chooses the surface that fits the
|
|
6
|
+
moment: a Page for writing, a Database for governed records, a View for a
|
|
7
|
+
particular presentation, a Query for derived collections, a Reference for
|
|
8
|
+
reuse, an Expression for computation, or a Template for distributing a whole
|
|
9
|
+
working system.
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Stable Pages, Blocks, Blocks fields, Databases, and References
|
|
13
|
+
↓
|
|
14
|
+
Typed Properties and one expression language
|
|
15
|
+
↓
|
|
16
|
+
Queries, Views, and reusable renderers
|
|
17
|
+
↓
|
|
18
|
+
Committed Events and typed Actions
|
|
19
|
+
↓
|
|
20
|
+
History, review, Rules, notifications, and agents
|
|
21
|
+
↓
|
|
22
|
+
Templates compose and govern the same graph
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Everything uses one Content object graph and one access model. Tasks,
|
|
26
|
+
dashboards, public roadmaps, research systems, blogs, and editorial workflows
|
|
27
|
+
are configurations of these primitives, not parallel engines.
|
|
28
|
+
|
|
29
|
+
## Product principles
|
|
30
|
+
|
|
31
|
+
1. **One object, many projections.** Views, memberships, References, embeds,
|
|
32
|
+
Sources, Graphs, and Canvases do not create accidental copies.
|
|
33
|
+
2. **Simple gestures, composable machinery.** An `@` mention remains a
|
|
34
|
+
Reference; computation and automation appear only when requested.
|
|
35
|
+
3. **Typed underneath, humane on top.** Values retain stable meaning while
|
|
36
|
+
renderers change how they look.
|
|
37
|
+
4. **One Action surface.** People, agents, automations, APIs, and the interface
|
|
38
|
+
use the same permissions, validation, audit behavior, and mutation semantics.
|
|
39
|
+
5. **Access before computation.** Search, Queries, relationships, aggregates,
|
|
40
|
+
exports, agents, and embedded hosts see only authorized information.
|
|
41
|
+
6. **Source truth is explicit.** Every connected Source declares how reads,
|
|
42
|
+
synchronization, and write-back behave. Unknown provider data survives
|
|
43
|
+
faithful round-tripping.
|
|
44
|
+
7. **Events describe committed meaning.** They record actors, origins,
|
|
45
|
+
causality, and recoverable change rather than every keypress.
|
|
46
|
+
8. **Changes remain reviewable work.** Suggestions, typed diffs, Versions,
|
|
47
|
+
automation receipts, and History persist instead of evaporating with a
|
|
48
|
+
dialog.
|
|
49
|
+
9. **Templates fork; they do not possess.** Instances are owned, editable
|
|
50
|
+
snapshots with provenance and optional reviewed updates.
|
|
51
|
+
10. **Import and export are constitutional.** Collaborative Content may use SQL
|
|
52
|
+
as its working truth, but people can bring work in, take it out, and keep
|
|
53
|
+
connected originals where they belong.
|
|
54
|
+
11. **Product status stays honest.** Donor code, dependencies, and isolated
|
|
55
|
+
tests never prove a whole Capability or Feature by association.
|
|
56
|
+
|
|
57
|
+
## Object boundaries
|
|
58
|
+
|
|
59
|
+
- A **Page** owns stable identity, title, access, top-level Properties, and one
|
|
60
|
+
or more Blocks fields.
|
|
61
|
+
- A **Blocks field** owns one editable rich-content body and its attributable
|
|
62
|
+
revision history. Comments and Discussion messages use the same grammar
|
|
63
|
+
without becoming full Pages.
|
|
64
|
+
- A **Database** owns membership, schema, defaults, validation, Rules, and the
|
|
65
|
+
canonical creation route for its records.
|
|
66
|
+
- A **Query** derives a typed collection from Databases, Sources, or other
|
|
67
|
+
Queries without owning the source records.
|
|
68
|
+
- A **View** belongs to one Database or Query and owns downstream filtering and
|
|
69
|
+
presentation. It may be shared or Only me, but it never grants access to its
|
|
70
|
+
input.
|
|
71
|
+
- A **Relationship** is one canonical typed edge. Relation Properties, inline
|
|
72
|
+
references, Info, Queries, Graph, and Canvas are projections and editors of
|
|
73
|
+
that edge.
|
|
74
|
+
- A **Source** is an adapter with explicit capabilities, provenance, access,
|
|
75
|
+
and synchronization policy. It never becomes a Page's identity or primary
|
|
76
|
+
Database.
|
|
77
|
+
|
|
78
|
+
## Change and proof boundaries
|
|
79
|
+
|
|
80
|
+
Every atomic Capability has its own proof requirements. A Feature is complete
|
|
81
|
+
only when its required Capabilities are verified and its example workflow works
|
|
82
|
+
end to end through the real interface and Actions. Existing provider-specific
|
|
83
|
+
machinery may donate implementation, but it does not promote a generic contract
|
|
84
|
+
until that contract is tested on its own terms.
|
|
85
|
+
|
|
86
|
+
Named Page Versions sit above ordinary Blocks-field revision history. Revision
|
|
87
|
+
history supports attribution, comparison, and recovery everywhere. Named
|
|
88
|
+
Versions later provide deliberate alternatives, selective merge, access
|
|
89
|
+
restriction, and canonical promotion under one Page identity.
|
|
90
|
+
|
|
91
|
+
## Governance boundary
|
|
92
|
+
|
|
93
|
+
Content provides flexible local objects and governed reusable catalogs.
|
|
94
|
+
Organizations can approve Sources, Templates, Custom Properties, Expressions,
|
|
95
|
+
Skills, and Custom Blocks without turning every ordinary object into a global
|
|
96
|
+
type. Non-bypassable security and identity policy remains framework-wide;
|
|
97
|
+
Content can be its best management surface without becoming an independent
|
|
98
|
+
authority with conflicting answers.
|