@agent-native/core 0.118.0 → 0.119.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +32 -0
- package/corpus/core/docs/content/a2a-protocol.mdx +15 -0
- package/corpus/core/docs/content/template-chat.mdx +1 -1
- package/corpus/core/docs/content/template-plan.mdx +3 -3
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/activity.ts +371 -0
- package/corpus/core/src/a2a/client.ts +35 -11
- package/corpus/core/src/a2a/index.ts +21 -0
- package/corpus/core/src/a2a/types.ts +8 -0
- package/corpus/core/src/agent/model-config.ts +19 -23
- package/corpus/core/src/agent/production-agent.ts +167 -100
- package/corpus/core/src/agent/types.ts +16 -1
- package/corpus/core/src/cli/index.ts +18 -10
- package/corpus/core/src/cli/multi-frontier-runs.ts +5 -3
- package/corpus/core/src/cli/templates-meta.ts +0 -12
- package/corpus/core/src/cli/workspace-dev.ts +1 -1
- package/corpus/core/src/client/AgentPanel.tsx +9 -1
- package/corpus/core/src/client/RunStuckBanner.tsx +39 -47
- package/corpus/core/src/client/chat/action-chat-ui-surface.tsx +32 -0
- package/corpus/core/src/client/chat/message-components.tsx +53 -8
- package/corpus/core/src/client/chat/tool-call-display.tsx +214 -44
- package/corpus/core/src/client/chat/widgets/InlineExtensionWidget.tsx +0 -1
- package/corpus/core/src/client/chat/widgets/builtin-tool-renderers.tsx +7 -3
- package/corpus/core/src/client/chat-model-groups.ts +67 -27
- package/corpus/core/src/client/conversation/AgentConversation.tsx +12 -1
- package/corpus/core/src/client/error-capture.ts +2 -6
- package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +20 -14
- package/corpus/core/src/client/resources/ResourcesPanel.tsx +5 -1
- package/corpus/core/src/client/resources/mcp-integration-catalog.ts +7 -17
- package/corpus/core/src/client/resources/mcp-integration-logos.ts +2 -2
- package/corpus/core/src/client/route-chunk-recovery.ts +5 -3
- package/corpus/core/src/client/session-replay.ts +3 -3
- package/corpus/core/src/client/settings/SettingsPanel.tsx +15 -6
- package/corpus/core/src/client/sharing/ShareButton.tsx +1 -27
- package/corpus/core/src/client/sharing/ShareDialog.tsx +0 -16
- package/corpus/core/src/client/sharing/useShareButtonController.ts +0 -7
- package/corpus/core/src/client/sharing/useShareDialogController.ts +0 -2
- package/corpus/core/src/client/sse-event-processor.ts +85 -1
- package/corpus/core/src/client/transcription/use-live-transcription.ts +64 -45
- package/corpus/core/src/deploy/build.ts +2 -1
- package/corpus/core/src/guards/db-tool-scoping.ts +1 -1
- package/corpus/core/src/integrations/adapters/slack.ts +84 -5
- package/corpus/core/src/integrations/index.ts +5 -1
- package/corpus/core/src/localization/default-messages.ts +7 -1
- package/corpus/core/src/mcp-client/oauth-routes.ts +45 -12
- package/corpus/core/src/scripts/agent-engines/list-agent-engines.ts +1 -18
- package/corpus/core/src/scripts/call-agent.ts +49 -6
- package/corpus/core/src/server/agent-chat-plugin.ts +50 -10
- package/corpus/core/src/server/realtime-voice.ts +4 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +16 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
- package/corpus/core/src/terminal/cli-registry.ts +1 -1
- package/corpus/core/src/vite/client.ts +166 -1
- package/corpus/templates/analytics/app/hooks/use-dashboard-views.ts +13 -1
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +10 -0
- package/corpus/templates/analytics/changelog/2026-07-22-show-a-useful-error-when-saving-a-dashboard-view-fails.md +6 -0
- package/corpus/templates/brain/app/routes/sources.tsx +181 -114
- package/corpus/templates/clips/AGENTS.md +8 -6
- package/corpus/templates/clips/actions/request-transcript.ts +90 -420
- package/corpus/templates/clips/actions/save-browser-transcript.ts +11 -28
- package/corpus/templates/clips/app/components/capture-install-options.tsx +5 -3
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +3 -136
- package/corpus/templates/clips/app/lib/capture-install-options.ts +15 -4
- package/corpus/templates/clips/app/routes/download.tsx +3 -2
- package/corpus/templates/clips/changelog/2026-07-22-fixed-an-intermittent-hydration-error-on-the-download-page.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-fixed-transcript-generation-when-native-speech-capture-retur.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-22-transcript-generation-now-retries-with-backup-speech-recogni.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-23-fixed-recordings-failing-to-save-with-a-cancelled-or-cleanup.md +6 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +2 -2
- package/corpus/templates/clips/server/plugins/db.ts +9 -1
- package/corpus/templates/clips/server/register-secrets.ts +7 -6
- package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +16 -84
- package/corpus/templates/content/app/components/editor/VisualEditor.tsx +13 -7
- package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +2 -2
- package/corpus/templates/content/app/i18n-data.ts +10 -0
- package/corpus/templates/design/server/lib/fig-file-decoder.ts +1 -0
- package/corpus/templates/plan/app/entry.client.tsx +3 -0
- package/corpus/templates/plan/changelog/2026-07-22-recover-stale-pages-after-a-deployment-refresh-automatically.md +6 -0
- package/corpus/templates/slides/app/hooks/use-agent-generating.ts +10 -3
- package/corpus/templates/slides/app/pages/Index.tsx +1 -0
- package/corpus/templates/slides/changelog/2026-07-22-new-deck-prompts-now-open-in-their-own-visible-chat-thread.md +6 -0
- package/corpus/toolkit/CHANGELOG.md +9 -0
- package/corpus/toolkit/package.json +1 -1
- package/corpus/toolkit/src/composer/PromptComposer.tsx +5 -1
- package/corpus/toolkit/src/composer/RealtimeVoiceMode.tsx +119 -31
- package/corpus/toolkit/src/composer/useRealtimeVoiceMode.tsx +30 -0
- package/corpus/toolkit/src/conformance/runner.tsx +153 -1
- package/corpus/toolkit/src/editor/SharedRichEditor.tsx +13 -2
- package/corpus/toolkit/src/editor/SlashCommandMenu.tsx +20 -0
- package/corpus/toolkit/src/editor/index.ts +2 -0
- package/corpus/toolkit/src/styles.css +52 -23
- package/dist/a2a/activity.d.ts +50 -0
- package/dist/a2a/activity.d.ts.map +1 -0
- package/dist/a2a/activity.js +236 -0
- package/dist/a2a/activity.js.map +1 -0
- package/dist/a2a/client.d.ts +5 -1
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +18 -13
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/index.d.ts +2 -1
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js +1 -0
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/types.d.ts +1 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts +1 -1
- package/dist/agent/engine/builder-engine.d.ts +2 -2
- package/dist/agent/engine/builder-engine.d.ts.map +1 -1
- package/dist/agent/model-config.d.ts +16 -16
- package/dist/agent/model-config.d.ts.map +1 -1
- package/dist/agent/model-config.js +19 -23
- package/dist/agent/model-config.js.map +1 -1
- package/dist/agent/production-agent.d.ts +26 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +137 -80
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/types.d.ts +10 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/index.js +18 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/multi-frontier-runs.js +3 -3
- package/dist/cli/multi-frontier-runs.js.map +1 -1
- package/dist/cli/templates-meta.d.ts.map +1 -1
- package/dist/cli/templates-meta.js +0 -12
- package/dist/cli/templates-meta.js.map +1 -1
- package/dist/cli/workspace-dev.js +1 -1
- package/dist/cli/workspace-dev.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +4 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts +3 -5
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +17 -18
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/chat/action-chat-ui-surface.d.ts +8 -0
- package/dist/client/chat/action-chat-ui-surface.d.ts.map +1 -0
- package/dist/client/chat/action-chat-ui-surface.js +10 -0
- package/dist/client/chat/action-chat-ui-surface.js.map +1 -0
- package/dist/client/chat/message-components.d.ts +3 -0
- package/dist/client/chat/message-components.d.ts.map +1 -1
- package/dist/client/chat/message-components.js +40 -7
- package/dist/client/chat/message-components.js.map +1 -1
- package/dist/client/chat/tool-call-display.d.ts +3 -1
- package/dist/client/chat/tool-call-display.d.ts.map +1 -1
- package/dist/client/chat/tool-call-display.js +76 -23
- package/dist/client/chat/tool-call-display.js.map +1 -1
- package/dist/client/chat/widgets/InlineExtensionWidget.d.ts.map +1 -1
- package/dist/client/chat/widgets/InlineExtensionWidget.js +1 -1
- package/dist/client/chat/widgets/InlineExtensionWidget.js.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.d.ts.map +1 -1
- package/dist/client/chat/widgets/builtin-tool-renderers.js +5 -3
- package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
- package/dist/client/chat-model-groups.d.ts.map +1 -1
- package/dist/client/chat-model-groups.js +44 -21
- package/dist/client/chat-model-groups.js.map +1 -1
- package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
- package/dist/client/conversation/AgentConversation.js +3 -2
- package/dist/client/conversation/AgentConversation.js.map +1 -1
- package/dist/client/error-capture.d.ts.map +1 -1
- package/dist/client/error-capture.js +2 -2
- package/dist/client/error-capture.js.map +1 -1
- package/dist/client/resources/McpConnectionSuggestion.d.ts +1 -0
- package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -1
- package/dist/client/resources/McpConnectionSuggestion.js +9 -8
- package/dist/client/resources/McpConnectionSuggestion.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +3 -1
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.d.ts +1 -0
- package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
- package/dist/client/resources/mcp-integration-catalog.js +4 -17
- package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
- package/dist/client/resources/mcp-integration-logos.js +2 -2
- package/dist/client/resources/mcp-integration-logos.js.map +1 -1
- package/dist/client/route-chunk-recovery.d.ts.map +1 -1
- package/dist/client/route-chunk-recovery.js +5 -3
- package/dist/client/route-chunk-recovery.js.map +1 -1
- package/dist/client/session-replay.js +3 -3
- package/dist/client/session-replay.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +2 -2
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/sharing/ShareButton.d.ts +1 -1
- package/dist/client/sharing/ShareButton.d.ts.map +1 -1
- package/dist/client/sharing/ShareButton.js +3 -4
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
- package/dist/client/sharing/ShareDialog.js +1 -2
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/client/sharing/useShareButtonController.d.ts +0 -1
- package/dist/client/sharing/useShareButtonController.d.ts.map +1 -1
- package/dist/client/sharing/useShareButtonController.js +0 -6
- package/dist/client/sharing/useShareButtonController.js.map +1 -1
- package/dist/client/sharing/useShareDialogController.d.ts +0 -1
- package/dist/client/sharing/useShareDialogController.d.ts.map +1 -1
- package/dist/client/sharing/useShareDialogController.js +0 -1
- package/dist/client/sharing/useShareDialogController.js.map +1 -1
- package/dist/client/sse-event-processor.d.ts +12 -0
- package/dist/client/sse-event-processor.d.ts.map +1 -1
- package/dist/client/sse-event-processor.js +63 -1
- package/dist/client/sse-event-processor.js.map +1 -1
- package/dist/client/transcription/use-live-transcription.d.ts +3 -3
- package/dist/client/transcription/use-live-transcription.d.ts.map +1 -1
- package/dist/client/transcription/use-live-transcription.js +22 -11
- package/dist/client/transcription/use-live-transcription.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/deploy/build.d.ts.map +1 -1
- package/dist/deploy/build.js +1 -1
- package/dist/deploy/build.js.map +1 -1
- package/dist/guards/db-tool-scoping.js +1 -1
- package/dist/guards/db-tool-scoping.js.map +1 -1
- package/dist/integrations/adapters/slack.d.ts +1 -0
- package/dist/integrations/adapters/slack.d.ts.map +1 -1
- package/dist/integrations/adapters/slack.js +61 -5
- package/dist/integrations/adapters/slack.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/localization/default-messages.d.ts +6 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +7 -1
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/mcp-client/oauth-routes.d.ts +3 -0
- package/dist/mcp-client/oauth-routes.d.ts.map +1 -1
- package/dist/mcp-client/oauth-routes.js +41 -12
- package/dist/mcp-client/oauth-routes.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/provider-api/actions/custom-provider-registration.d.ts +8 -8
- package/dist/provider-api/actions/provider-api.d.ts +11 -11
- package/dist/scripts/agent-engines/list-agent-engines.d.ts.map +1 -1
- package/dist/scripts/agent-engines/list-agent-engines.js +1 -18
- package/dist/scripts/agent-engines/list-agent-engines.js.map +1 -1
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +49 -6
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/secrets/routes.d.ts +6 -6
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +38 -10
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/realtime-voice.d.ts.map +1 -1
- package/dist/server/realtime-voice.js +1 -1
- package/dist/server/realtime-voice.js.map +1 -1
- package/dist/server/transcribe-voice.d.ts +1 -1
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +16 -0
- package/dist/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
- package/dist/terminal/cli-registry.js +1 -1
- package/dist/terminal/cli-registry.js.map +1 -1
- package/dist/vite/client.d.ts +8 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +113 -2
- package/dist/vite/client.js.map +1 -1
- package/docs/content/a2a-protocol.mdx +15 -0
- package/docs/content/template-chat.mdx +1 -1
- package/docs/content/template-plan.mdx +3 -3
- package/package.json +2 -2
- package/src/a2a/activity.ts +371 -0
- package/src/a2a/client.ts +35 -11
- package/src/a2a/index.ts +21 -0
- package/src/a2a/types.ts +8 -0
- package/src/agent/model-config.ts +19 -23
- package/src/agent/production-agent.ts +167 -100
- package/src/agent/types.ts +16 -1
- package/src/cli/index.ts +18 -10
- package/src/cli/multi-frontier-runs.ts +5 -3
- package/src/cli/templates-meta.ts +0 -12
- package/src/cli/workspace-dev.ts +1 -1
- package/src/client/AgentPanel.tsx +9 -1
- package/src/client/RunStuckBanner.tsx +39 -47
- package/src/client/chat/action-chat-ui-surface.tsx +32 -0
- package/src/client/chat/message-components.tsx +53 -8
- package/src/client/chat/tool-call-display.tsx +214 -44
- package/src/client/chat/widgets/InlineExtensionWidget.tsx +0 -1
- package/src/client/chat/widgets/builtin-tool-renderers.tsx +7 -3
- package/src/client/chat-model-groups.ts +67 -27
- package/src/client/conversation/AgentConversation.tsx +12 -1
- package/src/client/error-capture.ts +2 -6
- package/src/client/resources/McpConnectionSuggestion.tsx +20 -14
- package/src/client/resources/ResourcesPanel.tsx +5 -1
- package/src/client/resources/mcp-integration-catalog.ts +7 -17
- package/src/client/resources/mcp-integration-logos.ts +2 -2
- package/src/client/route-chunk-recovery.ts +5 -3
- package/src/client/session-replay.ts +3 -3
- package/src/client/settings/SettingsPanel.tsx +15 -6
- package/src/client/sharing/ShareButton.tsx +1 -27
- package/src/client/sharing/ShareDialog.tsx +0 -16
- package/src/client/sharing/useShareButtonController.ts +0 -7
- package/src/client/sharing/useShareDialogController.ts +0 -2
- package/src/client/sse-event-processor.ts +85 -1
- package/src/client/transcription/use-live-transcription.ts +64 -45
- package/src/deploy/build.ts +2 -1
- package/src/guards/db-tool-scoping.ts +1 -1
- package/src/integrations/adapters/slack.ts +84 -5
- package/src/integrations/index.ts +5 -1
- package/src/localization/default-messages.ts +7 -1
- package/src/mcp-client/oauth-routes.ts +45 -12
- package/src/scripts/agent-engines/list-agent-engines.ts +1 -18
- package/src/scripts/call-agent.ts +49 -6
- package/src/server/agent-chat-plugin.ts +50 -10
- package/src/server/realtime-voice.ts +4 -1
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +16 -0
- package/src/templates/workspace-core/.agents/skills/voice-transcription/SKILL.md +7 -5
- package/src/terminal/cli-registry.ts +1 -1
- package/src/vite/client.ts +166 -1
- package/corpus/core/src/observability/hosted-model-experiment.ts +0 -118
- package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +0 -115
- package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +0 -177
- package/corpus/templates/crm/.agents/skills/crm/SKILL.md +0 -128
- package/corpus/templates/crm/.agents/skills/customizing-agent-native/SKILL.md +0 -220
- package/corpus/templates/crm/.agents/skills/feature-flags/SKILL.md +0 -169
- package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +0 -100
- package/corpus/templates/crm/.env.example +0 -5
- package/corpus/templates/crm/AGENTS.md +0 -120
- package/corpus/templates/crm/CHANGELOG.md +0 -1
- package/corpus/templates/crm/DEVELOPING.md +0 -66
- package/corpus/templates/crm/README.md +0 -106
- package/corpus/templates/crm/_gitignore +0 -12
- package/corpus/templates/crm/actions/_crm-action-utils.ts +0 -87
- package/corpus/templates/crm/actions/_crm-dashboard.ts +0 -69
- package/corpus/templates/crm/actions/_crm-data-program-actions.ts +0 -15
- package/corpus/templates/crm/actions/_crm-signal-utils.ts +0 -79
- package/corpus/templates/crm/actions/apply-crm-proposals.ts +0 -203
- package/corpus/templates/crm/actions/attach-call-evidence.ts +0 -170
- package/corpus/templates/crm/actions/configure-crm-connection.ts +0 -126
- package/corpus/templates/crm/actions/configure-native-crm.ts +0 -44
- package/corpus/templates/crm/actions/create-crm-record.ts +0 -148
- package/corpus/templates/crm/actions/create-crm-signal-tracker.ts +0 -58
- package/corpus/templates/crm/actions/delete-staged-dataset.ts +0 -14
- package/corpus/templates/crm/actions/get-crm-automation-recipe.ts +0 -36
- package/corpus/templates/crm/actions/get-crm-dashboard-panel.ts +0 -35
- package/corpus/templates/crm/actions/get-crm-dashboard.ts +0 -14
- package/corpus/templates/crm/actions/get-crm-overview.ts +0 -13
- package/corpus/templates/crm/actions/get-crm-pipeline-data.ts +0 -61
- package/corpus/templates/crm/actions/get-crm-record.ts +0 -75
- package/corpus/templates/crm/actions/install-crm-pipeline-dashboard.ts +0 -81
- package/corpus/templates/crm/actions/list-crm-dashboard-revisions.ts +0 -15
- package/corpus/templates/crm/actions/list-crm-dashboards.ts +0 -15
- package/corpus/templates/crm/actions/list-crm-proposals.ts +0 -31
- package/corpus/templates/crm/actions/list-crm-records.ts +0 -79
- package/corpus/templates/crm/actions/list-crm-saved-views.ts +0 -15
- package/corpus/templates/crm/actions/list-crm-signal-hits.ts +0 -43
- package/corpus/templates/crm/actions/list-crm-signal-trackers.ts +0 -32
- package/corpus/templates/crm/actions/list-crm-tasks.ts +0 -22
- package/corpus/templates/crm/actions/list-staged-datasets.ts +0 -14
- package/corpus/templates/crm/actions/list-workspace-connections.ts +0 -47
- package/corpus/templates/crm/actions/manage-crm-signal-tracker.ts +0 -87
- package/corpus/templates/crm/actions/manage-crm-task.ts +0 -132
- package/corpus/templates/crm/actions/navigate.ts +0 -63
- package/corpus/templates/crm/actions/provider-api-catalog.ts +0 -22
- package/corpus/templates/crm/actions/provider-api-docs.ts +0 -54
- package/corpus/templates/crm/actions/provider-api-request.ts +0 -92
- package/corpus/templates/crm/actions/query-staged-dataset.ts +0 -44
- package/corpus/templates/crm/actions/record-crm-call-insight.ts +0 -160
- package/corpus/templates/crm/actions/record-crm-smart-signal.ts +0 -150
- package/corpus/templates/crm/actions/restore-crm-dashboard-revision.ts +0 -23
- package/corpus/templates/crm/actions/review-crm-signal.ts +0 -31
- package/corpus/templates/crm/actions/run-crm-saved-view-program.ts +0 -103
- package/corpus/templates/crm/actions/run-crm-signal-trackers.ts +0 -275
- package/corpus/templates/crm/actions/run.ts +0 -7
- package/corpus/templates/crm/actions/save-crm-dashboard.ts +0 -51
- package/corpus/templates/crm/actions/save-crm-saved-view.ts +0 -119
- package/corpus/templates/crm/actions/sync-crm.ts +0 -146
- package/corpus/templates/crm/actions/update-crm-record.ts +0 -510
- package/corpus/templates/crm/actions/view-screen.ts +0 -218
- package/corpus/templates/crm/agent-native.app-skill.json +0 -58
- package/corpus/templates/crm/app/components/crm/CreateCrmRecordDialog.tsx +0 -158
- package/corpus/templates/crm/app/components/crm/CrmDashboardPanel.tsx +0 -78
- package/corpus/templates/crm/app/components/crm/CrmSignalsPanel.tsx +0 -226
- package/corpus/templates/crm/app/components/crm/IntelligenceSettings.tsx +0 -414
- package/corpus/templates/crm/app/components/crm/RecordActions.tsx +0 -510
- package/corpus/templates/crm/app/components/crm/RecordGrid.tsx +0 -134
- package/corpus/templates/crm/app/components/crm/RecordWorkspace.tsx +0 -362
- package/corpus/templates/crm/app/components/crm/SavedViewDataProgram.tsx +0 -93
- package/corpus/templates/crm/app/components/crm/Surface.tsx +0 -97
- package/corpus/templates/crm/app/components/crm/WorkOverview.tsx +0 -180
- package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +0 -112
- package/corpus/templates/crm/app/components/layout/CrmSidebar.tsx +0 -84
- package/corpus/templates/crm/app/components/ui/alert-dialog.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/badge.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/button.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/card.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/dialog.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/input.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/label.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/select.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/sheet.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/skeleton.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/switch.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/table.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/tabs.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/textarea.tsx +0 -1
- package/corpus/templates/crm/app/components/ui/toolkit-provider.tsx +0 -17
- package/corpus/templates/crm/app/design-system.ts +0 -3
- package/corpus/templates/crm/app/entry.client.tsx +0 -16
- package/corpus/templates/crm/app/entry.server.tsx +0 -10
- package/corpus/templates/crm/app/global.css +0 -167
- package/corpus/templates/crm/app/hooks/use-navigation-state.ts +0 -60
- package/corpus/templates/crm/app/i18n/en-US.ts +0 -89
- package/corpus/templates/crm/app/i18n/index.ts +0 -34
- package/corpus/templates/crm/app/lib/dashboard.ts +0 -13
- package/corpus/templates/crm/app/lib/navigation.ts +0 -54
- package/corpus/templates/crm/app/lib/tab-id.ts +0 -1
- package/corpus/templates/crm/app/lib/types.ts +0 -172
- package/corpus/templates/crm/app/lib/utils.ts +0 -1
- package/corpus/templates/crm/app/root.tsx +0 -91
- package/corpus/templates/crm/app/routes/_index.tsx +0 -26
- package/corpus/templates/crm/app/routes/accounts.tsx +0 -41
- package/corpus/templates/crm/app/routes/agent.tsx +0 -5
- package/corpus/templates/crm/app/routes/ask.tsx +0 -53
- package/corpus/templates/crm/app/routes/dashboard.tsx +0 -118
- package/corpus/templates/crm/app/routes/opportunities.tsx +0 -41
- package/corpus/templates/crm/app/routes/people.tsx +0 -41
- package/corpus/templates/crm/app/routes/proposals.tsx +0 -266
- package/corpus/templates/crm/app/routes/records.$recordId.tsx +0 -35
- package/corpus/templates/crm/app/routes/settings.tsx +0 -63
- package/corpus/templates/crm/app/routes/setup.tsx +0 -308
- package/corpus/templates/crm/app/routes/tasks.tsx +0 -252
- package/corpus/templates/crm/app/routes/views.tsx +0 -333
- package/corpus/templates/crm/app/routes.ts +0 -17
- package/corpus/templates/crm/app/vite-env.d.ts +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-agent-native-crm.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-clips-call-evidence-review-recipe.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-find-and-review-evidence-grounded-call-signals-w.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-crm-can-now-manage-keyword-and-smart-call-signal-trackers-fr.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-delegated-local-crm-automation.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-native-sql.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboard.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-pipeline-dashboards-now-install-correctly-from-the-crm-actio.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-21-salesforce-connection.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-22-crm-field-validation-now-explains-which-fields-cannot-be-edi.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-22-fixed-hubspot-contact-syncs-missing-records-updated-after-th.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-22-fixed-pipeline-dashboard-panels-so-their-opportunity-data-lo.md +0 -6
- package/corpus/templates/crm/changelog/2026-07-22-full-page-chat-keeps-the-active-conversation-when-moving-to-.md +0 -6
- package/corpus/templates/crm/components.json +0 -20
- package/corpus/templates/crm/docs/architecture/crm-contract.md +0 -180
- package/corpus/templates/crm/learnings.defaults.md +0 -5
- package/corpus/templates/crm/package.json +0 -59
- package/corpus/templates/crm/public/favicon.svg +0 -1
- package/corpus/templates/crm/public/icon-180.svg +0 -1
- package/corpus/templates/crm/public/manifest.json +0 -11
- package/corpus/templates/crm/react-router.config.ts +0 -7
- package/corpus/templates/crm/server/crm/adapter.ts +0 -32
- package/corpus/templates/crm/server/crm/crm-field-firewall.ts +0 -64
- package/corpus/templates/crm/server/crm/crm-mirror.ts +0 -711
- package/corpus/templates/crm/server/crm/hubspot-adapter.ts +0 -1146
- package/corpus/templates/crm/server/crm/native-adapter.ts +0 -1715
- package/corpus/templates/crm/server/crm/read-through.ts +0 -207
- package/corpus/templates/crm/server/crm/salesforce-adapter.ts +0 -1255
- package/corpus/templates/crm/server/db/crm-store.ts +0 -1170
- package/corpus/templates/crm/server/db/index.ts +0 -169
- package/corpus/templates/crm/server/db/schema.ts +0 -441
- package/corpus/templates/crm/server/lib/intelligence/default-detectors.ts +0 -65
- package/corpus/templates/crm/server/lib/intelligence/evidence.ts +0 -105
- package/corpus/templates/crm/server/lib/intelligence/keyword-detector.ts +0 -100
- package/corpus/templates/crm/server/lib/intelligence/smart-detector.ts +0 -144
- package/corpus/templates/crm/server/lib/intelligence/summary.ts +0 -141
- package/corpus/templates/crm/server/lib/provider-api.ts +0 -64
- package/corpus/templates/crm/server/middleware/auth.ts +0 -4
- package/corpus/templates/crm/server/plugins/agent-chat.ts +0 -68
- package/corpus/templates/crm/server/plugins/auth.ts +0 -14
- package/corpus/templates/crm/server/plugins/core-routes.ts +0 -17
- package/corpus/templates/crm/server/plugins/db.ts +0 -454
- package/corpus/templates/crm/server/routes/[...page].get.ts +0 -5
- package/corpus/templates/crm/shared/crm-automation-recipes.ts +0 -132
- package/corpus/templates/crm/shared/crm-contract.ts +0 -254
- package/corpus/templates/crm/shared/crm-sales-config.ts +0 -63
- package/corpus/templates/crm/ssr-entry.ts +0 -11
- package/corpus/templates/crm/tsconfig.json +0 -24
- package/corpus/templates/crm/vite.config.ts +0 -15
- package/corpus/templates/crm/vitest.config.ts +0 -5
- package/dist/observability/hosted-model-experiment.d.ts +0 -39
- package/dist/observability/hosted-model-experiment.d.ts.map +0 -1
- package/dist/observability/hosted-model-experiment.js +0 -90
- package/dist/observability/hosted-model-experiment.js.map +0 -1
- package/src/observability/hosted-model-experiment.ts +0 -118
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
IconBrandGithub,
|
|
10
10
|
IconBrandSlack,
|
|
11
11
|
IconChecks,
|
|
12
|
+
IconChevronDown,
|
|
12
13
|
IconCircleCheck,
|
|
13
14
|
IconCircleDashed,
|
|
14
15
|
IconClock,
|
|
@@ -40,7 +41,6 @@ import {
|
|
|
40
41
|
} from "@/components/brain/Surface";
|
|
41
42
|
import { Badge } from "@/components/ui/badge";
|
|
42
43
|
import { Button } from "@/components/ui/button";
|
|
43
|
-
import { Card, CardContent } from "@/components/ui/card";
|
|
44
44
|
import {
|
|
45
45
|
Dialog,
|
|
46
46
|
DialogContent,
|
|
@@ -75,6 +75,11 @@ import {
|
|
|
75
75
|
} from "@/components/ui/sheet";
|
|
76
76
|
import { Switch } from "@/components/ui/switch";
|
|
77
77
|
import { Textarea } from "@/components/ui/textarea";
|
|
78
|
+
import {
|
|
79
|
+
Tooltip,
|
|
80
|
+
TooltipContent,
|
|
81
|
+
TooltipTrigger,
|
|
82
|
+
} from "@/components/ui/tooltip";
|
|
78
83
|
import {
|
|
79
84
|
type BrainConnectionProvider,
|
|
80
85
|
type BrainHealthResponse,
|
|
@@ -104,6 +109,7 @@ import {
|
|
|
104
109
|
createOneTimeIngestHandoff,
|
|
105
110
|
type OneTimeIngestHandoff,
|
|
106
111
|
} from "@/lib/ingest-handoff";
|
|
112
|
+
import { cn } from "@/lib/utils";
|
|
107
113
|
|
|
108
114
|
type Provider = "manual" | "generic" | "clips" | "slack" | "granola" | "github";
|
|
109
115
|
type CaptureStatusFilter = BrainCaptureReviewStatus | "all";
|
|
@@ -1536,6 +1542,7 @@ function SourceListItem({
|
|
|
1536
1542
|
onTune: () => void;
|
|
1537
1543
|
}) {
|
|
1538
1544
|
const t = useT();
|
|
1545
|
+
const [expanded, setExpanded] = useState(false);
|
|
1539
1546
|
const Icon = sourceProviderIcon(source.provider);
|
|
1540
1547
|
const retry = sourceRetryAfter(source);
|
|
1541
1548
|
const hasSyncNotice = Boolean(
|
|
@@ -1546,113 +1553,171 @@ function SourceListItem({
|
|
|
1546
1553
|
: null;
|
|
1547
1554
|
const coverage =
|
|
1548
1555
|
typeof source.coverage === "number" ? formatPercent(source.coverage) : null;
|
|
1556
|
+
const captureCount = (source.recordCount ?? 0).toLocaleString();
|
|
1557
|
+
const lastSync = shortDate(sourceLastSync(source)) ?? t("sources.never");
|
|
1549
1558
|
|
|
1550
1559
|
return (
|
|
1551
|
-
<
|
|
1552
|
-
<
|
|
1553
|
-
<
|
|
1554
|
-
<
|
|
1555
|
-
|
|
1556
|
-
|
|
1560
|
+
<div className="group bg-card transition-colors hover:bg-muted/20">
|
|
1561
|
+
<div className="flex min-w-0 items-center gap-3 px-4 py-3 sm:px-5">
|
|
1562
|
+
<span className="flex size-8 shrink-0 items-center justify-center rounded-md border border-border bg-muted/35">
|
|
1563
|
+
<Icon className="size-4 text-muted-foreground" />
|
|
1564
|
+
</span>
|
|
1565
|
+
|
|
1566
|
+
<div className="min-w-0 flex-1">
|
|
1567
|
+
<div className="flex min-w-0 flex-wrap items-center gap-2">
|
|
1568
|
+
<h2 className="truncate text-sm font-medium text-foreground sm:text-[0.9375rem]">
|
|
1569
|
+
{sourceName(source)}
|
|
1570
|
+
</h2>
|
|
1571
|
+
<StatusBadge status={sourceHealth(source)} />
|
|
1572
|
+
</div>
|
|
1573
|
+
<div className="mt-1 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground">
|
|
1574
|
+
<span className="capitalize">{sourceType(source)}</span>
|
|
1575
|
+
<span aria-hidden="true">·</span>
|
|
1576
|
+
<span>
|
|
1577
|
+
{captureCount} {t("sources.captures").toLocaleLowerCase()}
|
|
1557
1578
|
</span>
|
|
1558
|
-
<
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
<span className="text-xs text-muted-foreground">
|
|
1571
|
-
{t("sources.nextSync", { date: nextSync })}
|
|
1579
|
+
<span aria-hidden="true">·</span>
|
|
1580
|
+
<span className="truncate">
|
|
1581
|
+
{t("sources.lastSyncWithDate", { date: lastSync })}
|
|
1582
|
+
</span>
|
|
1583
|
+
{hasSyncNotice ? (
|
|
1584
|
+
<Tooltip>
|
|
1585
|
+
<TooltipTrigger asChild>
|
|
1586
|
+
<span
|
|
1587
|
+
className="ms-1 inline-flex size-4 items-center justify-center text-destructive"
|
|
1588
|
+
aria-label={t("sources.actionFailedTitle")}
|
|
1589
|
+
>
|
|
1590
|
+
<IconAlertTriangle className="size-3.5" />
|
|
1572
1591
|
</span>
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
</
|
|
1578
|
-
</div>
|
|
1579
|
-
</div>
|
|
1580
|
-
|
|
1581
|
-
<div
|
|
1582
|
-
className={
|
|
1583
|
-
coverage
|
|
1584
|
-
? "grid grid-cols-2 gap-4 sm:grid-cols-3 xl:min-w-80"
|
|
1585
|
-
: "grid grid-cols-2 gap-4 xl:min-w-64"
|
|
1586
|
-
}
|
|
1587
|
-
>
|
|
1588
|
-
<SourceFact
|
|
1589
|
-
label={t("sources.captures")}
|
|
1590
|
-
value={(source.recordCount ?? 0).toLocaleString()}
|
|
1591
|
-
/>
|
|
1592
|
-
<SourceFact
|
|
1593
|
-
label={t("sources.lastSync")}
|
|
1594
|
-
value={shortDate(sourceLastSync(source)) ?? t("sources.never")}
|
|
1595
|
-
/>
|
|
1596
|
-
{coverage ? (
|
|
1597
|
-
<SourceFact label={t("sources.coverage")} value={coverage} />
|
|
1592
|
+
</TooltipTrigger>
|
|
1593
|
+
<TooltipContent>
|
|
1594
|
+
{t("sources.actionFailedTitle")}
|
|
1595
|
+
</TooltipContent>
|
|
1596
|
+
</Tooltip>
|
|
1598
1597
|
) : null}
|
|
1599
1598
|
</div>
|
|
1599
|
+
</div>
|
|
1600
1600
|
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
<
|
|
1620
|
-
|
|
1601
|
+
<div className="flex shrink-0 items-center gap-0.5">
|
|
1602
|
+
<Tooltip>
|
|
1603
|
+
<TooltipTrigger asChild>
|
|
1604
|
+
<Button
|
|
1605
|
+
size="icon"
|
|
1606
|
+
variant="ghost"
|
|
1607
|
+
className="size-8"
|
|
1608
|
+
onClick={onReview}
|
|
1609
|
+
aria-label={`${t("sources.captures")}: ${sourceName(source)}`}
|
|
1610
|
+
>
|
|
1611
|
+
<IconFileSearch className="size-4" />
|
|
1612
|
+
</Button>
|
|
1613
|
+
</TooltipTrigger>
|
|
1614
|
+
<TooltipContent>{t("sources.captures")}</TooltipContent>
|
|
1615
|
+
</Tooltip>
|
|
1616
|
+
|
|
1617
|
+
<DropdownMenu>
|
|
1618
|
+
<DropdownMenuTrigger asChild>
|
|
1619
|
+
<Button
|
|
1620
|
+
size="icon"
|
|
1621
|
+
variant="ghost"
|
|
1622
|
+
className="size-8"
|
|
1623
|
+
aria-label={t("sources.moreActionsFor", {
|
|
1624
|
+
source: sourceName(source),
|
|
1625
|
+
})}
|
|
1626
|
+
>
|
|
1627
|
+
<IconDotsVertical className="size-4" />
|
|
1628
|
+
</Button>
|
|
1629
|
+
</DropdownMenuTrigger>
|
|
1630
|
+
<DropdownMenuContent align="end" className="w-40">
|
|
1631
|
+
<DropdownMenuItem disabled={syncPending} onSelect={onSync}>
|
|
1632
|
+
<IconRefresh className="size-4" />
|
|
1633
|
+
{t("sources.syncNow")}
|
|
1634
|
+
</DropdownMenuItem>
|
|
1635
|
+
<DropdownMenuItem onSelect={onTune}>
|
|
1636
|
+
<IconSettings2 className="size-4" />
|
|
1637
|
+
{t("sources.tuneSource")}
|
|
1638
|
+
</DropdownMenuItem>
|
|
1639
|
+
{onRotateIngestToken ? (
|
|
1640
|
+
<DropdownMenuItem onSelect={onRotateIngestToken}>
|
|
1621
1641
|
<IconRefresh className="size-4" />
|
|
1622
|
-
{t("sources.
|
|
1642
|
+
{t("sources.rotateIngestToken")}
|
|
1623
1643
|
</DropdownMenuItem>
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1644
|
+
) : null}
|
|
1645
|
+
</DropdownMenuContent>
|
|
1646
|
+
</DropdownMenu>
|
|
1647
|
+
|
|
1648
|
+
<Tooltip>
|
|
1649
|
+
<TooltipTrigger asChild>
|
|
1650
|
+
<Button
|
|
1651
|
+
size="icon"
|
|
1652
|
+
variant="ghost"
|
|
1653
|
+
className="size-8"
|
|
1654
|
+
onClick={() => setExpanded((value) => !value)}
|
|
1655
|
+
aria-expanded={expanded}
|
|
1656
|
+
aria-label={
|
|
1657
|
+
expanded ? t("sources.hideDetails") : t("sources.details")
|
|
1658
|
+
}
|
|
1659
|
+
>
|
|
1660
|
+
<IconChevronDown
|
|
1661
|
+
className={cn(
|
|
1662
|
+
"size-4 transition-transform duration-200 ease-out",
|
|
1663
|
+
expanded && "rotate-180",
|
|
1664
|
+
)}
|
|
1665
|
+
/>
|
|
1666
|
+
</Button>
|
|
1667
|
+
</TooltipTrigger>
|
|
1668
|
+
<TooltipContent>
|
|
1669
|
+
{expanded ? t("sources.hideDetails") : t("sources.details")}
|
|
1670
|
+
</TooltipContent>
|
|
1671
|
+
</Tooltip>
|
|
1637
1672
|
</div>
|
|
1673
|
+
</div>
|
|
1638
1674
|
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
className="
|
|
1643
|
-
|
|
1644
|
-
|
|
1675
|
+
{expanded ? (
|
|
1676
|
+
<div className="border-t border-border/70 px-4 pb-4 pt-3 sm:px-5">
|
|
1677
|
+
<div className="grid gap-4 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-start">
|
|
1678
|
+
<div className="min-w-0">
|
|
1679
|
+
<p className="max-w-3xl text-sm leading-6 text-muted-foreground">
|
|
1680
|
+
{sourceDescription(source)}
|
|
1681
|
+
</p>
|
|
1682
|
+
{hasSyncNotice ? (
|
|
1683
|
+
<div className="mt-3 flex gap-2 rounded-md border border-destructive/20 bg-destructive/5 px-3 py-2 text-sm">
|
|
1684
|
+
<IconAlertTriangle className="mt-0.5 size-4 shrink-0 text-destructive" />
|
|
1685
|
+
<p className="min-w-0 text-muted-foreground">
|
|
1686
|
+
{syncDetail(source, t)}
|
|
1687
|
+
</p>
|
|
1688
|
+
</div>
|
|
1689
|
+
) : null}
|
|
1690
|
+
</div>
|
|
1645
1691
|
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1692
|
+
<div
|
|
1693
|
+
className={cn(
|
|
1694
|
+
"grid grid-cols-2 gap-x-6 gap-y-3 lg:min-w-64",
|
|
1695
|
+
coverage && "lg:grid-cols-3 lg:min-w-80",
|
|
1696
|
+
)}
|
|
1697
|
+
>
|
|
1698
|
+
<SourceFact label={t("sources.captures")} value={captureCount} />
|
|
1699
|
+
<SourceFact label={t("sources.lastSync")} value={lastSync} />
|
|
1700
|
+
{coverage ? (
|
|
1701
|
+
<SourceFact label={t("sources.coverage")} value={coverage} />
|
|
1702
|
+
) : null}
|
|
1703
|
+
</div>
|
|
1652
1704
|
</div>
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1705
|
+
|
|
1706
|
+
{coverage ? (
|
|
1707
|
+
<Progress
|
|
1708
|
+
value={(source.coverage ?? 0) * 100}
|
|
1709
|
+
className="mt-4 h-1.5 bg-muted"
|
|
1710
|
+
/>
|
|
1711
|
+
) : null}
|
|
1712
|
+
|
|
1713
|
+
{nextSync ? (
|
|
1714
|
+
<p className="mt-3 text-xs text-muted-foreground">
|
|
1715
|
+
{t("sources.nextSync", { date: nextSync })}
|
|
1716
|
+
</p>
|
|
1717
|
+
) : null}
|
|
1718
|
+
</div>
|
|
1719
|
+
) : null}
|
|
1720
|
+
</div>
|
|
1656
1721
|
);
|
|
1657
1722
|
}
|
|
1658
1723
|
|
|
@@ -1975,25 +2040,27 @@ export default function SourcesRoute() {
|
|
|
1975
2040
|
<LoadingRows rows={3} />
|
|
1976
2041
|
</div>
|
|
1977
2042
|
) : visibleSources.length ? (
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
source.provider === "
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
2043
|
+
<div className="overflow-hidden rounded-lg border border-border bg-card divide-y divide-border">
|
|
2044
|
+
{visibleSources.map((source) => (
|
|
2045
|
+
<SourceListItem
|
|
2046
|
+
key={source.id}
|
|
2047
|
+
source={source}
|
|
2048
|
+
syncPending={
|
|
2049
|
+
syncSource.isPending || rotateSourceIngestToken.isPending
|
|
2050
|
+
}
|
|
2051
|
+
onReview={() => openCaptureReview(source)}
|
|
2052
|
+
onRotateIngestToken={
|
|
2053
|
+
(source.provider === "clips" ||
|
|
2054
|
+
source.provider === "generic") &&
|
|
2055
|
+
ingestSourceKey(source)
|
|
2056
|
+
? () => void rotateIngestToken(source)
|
|
2057
|
+
: undefined
|
|
2058
|
+
}
|
|
2059
|
+
onSync={() => syncSource.mutate({ sourceId: source.id })}
|
|
2060
|
+
onTune={() => openEdit(source)}
|
|
2061
|
+
/>
|
|
2062
|
+
))}
|
|
2063
|
+
</div>
|
|
1997
2064
|
) : (
|
|
1998
2065
|
<div>
|
|
1999
2066
|
<EmptyActionState
|
|
@@ -96,14 +96,16 @@ ladder.
|
|
|
96
96
|
bounded `voiceContext` to the shared cleanup/transcription path when active
|
|
97
97
|
app context, learned vocabulary, user notes, or AGENTS.md preferences are
|
|
98
98
|
available.
|
|
99
|
-
- Cloud transcription is fallback-only for Clips recordings
|
|
100
|
-
|
|
99
|
+
- Cloud transcription is fallback-only for Clips recordings. Preserve the
|
|
100
|
+
browser/macOS native transcript first, then use the configured Builder/Gemini
|
|
101
|
+
path against the original recording when native capture is unavailable.
|
|
101
102
|
- AI setup must be visible and paid-account-backed: lead with Builder.io Connect
|
|
102
103
|
for managed credits, object storage, uploads, and transcription. BYOK belongs
|
|
103
104
|
in the agent sidebar's API Keys & Connections panel; template settings may
|
|
104
105
|
signpost that panel but should not create a second credential vault.
|
|
105
106
|
Anthropic/OpenAI power the agent chat; Gemini powers cleanup, titles, and
|
|
106
|
-
meeting notes;
|
|
107
|
+
meeting notes; any optional third-party speech provider is limited to
|
|
108
|
+
desktop voice dictation and is not used for recording transcripts.
|
|
107
109
|
- Hosted/shared recording uploads require configured storage. Do not preserve
|
|
108
110
|
video bytes in SQL as a production fallback; only local SQLite/dev flows may
|
|
109
111
|
keep scratch chunks while a user connects Builder.io or S3-compatible storage.
|
|
@@ -148,9 +150,9 @@ ladder.
|
|
|
148
150
|
recordings. Do not pivot straight to frames or tell the user there is no
|
|
149
151
|
transcript until the retry budget is exhausted.
|
|
150
152
|
- If transcription failed because Builder transcription credits are exhausted,
|
|
151
|
-
tell the user that clearly and point them to Builder.io credits/upgrade
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
tell the user that clearly and point them to Builder.io credits/upgrade.
|
|
154
|
+
Native browser/macOS capture remains the first transcript source; Builder
|
|
155
|
+
transcribes the original recording only when native capture is unavailable.
|
|
154
156
|
- Use `get-builder-credit-status` when the user asks whether Builder.io credit
|
|
155
157
|
limits are pausing backup transcription, transcript cleanup, summaries, or AI
|
|
156
158
|
title generation. Treat an exhausted status as an FYI/upgrade path, not an app
|