@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
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-native-toolkit
|
|
3
|
-
description: >-
|
|
4
|
-
Inventory and ownership rules for shared Agent Native workspace UI. Use
|
|
5
|
-
before building app chrome, settings, navigation, sharing, collaboration,
|
|
6
|
-
setup, history, comments, chat rails, agent UX, or repeated workspace behavior.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Agent-Native Toolkit
|
|
13
|
-
|
|
14
|
-
Use this skill when deciding whether app chrome, settings, collaboration,
|
|
15
|
-
sharing, navigation, organization, setup, history, comments, or agent UX should
|
|
16
|
-
be built app-locally or moved into reusable framework/toolkit pieces.
|
|
17
|
-
|
|
18
|
-
## Core Rule
|
|
19
|
-
|
|
20
|
-
Apps own domain models, domain actions, and product-specific workflows. The
|
|
21
|
-
framework and `@agent-native/toolkit` own repeated workspace behavior users
|
|
22
|
-
expect to work the same everywhere.
|
|
23
|
-
|
|
24
|
-
Move behavior into shared toolkit primitives when it is:
|
|
25
|
-
|
|
26
|
-
- workspace-wide, such as settings, nav, search, org membership, or setup
|
|
27
|
-
- agent-visible, such as context, actions, run progress, or proof-of-done
|
|
28
|
-
- governed, such as secrets, permissions, sharing, audit, or billing
|
|
29
|
-
- repeated by two or more apps
|
|
30
|
-
- not tied to one domain model
|
|
31
|
-
|
|
32
|
-
Keep behavior app-local when the abstraction would hide important domain
|
|
33
|
-
language or make a simple app-specific workflow harder to understand.
|
|
34
|
-
|
|
35
|
-
## Discover Before Building
|
|
36
|
-
|
|
37
|
-
Before creating an app-local version of repeated workspace or agent UI:
|
|
38
|
-
|
|
39
|
-
1. Check the reusable kits below and the installed package documentation.
|
|
40
|
-
2. Search installed public components and source with `docs-search` and
|
|
41
|
-
`source-search`.
|
|
42
|
-
3. Run `agent-native eject --list` to see the version-matched units published
|
|
43
|
-
by the packages installed in this app.
|
|
44
|
-
4. Read `customizing-agent-native` and configure, compose, or eject the
|
|
45
|
-
smallest unit instead of recreating shared behavior from memory.
|
|
46
|
-
|
|
47
|
-
Use public package exports at runtime. Published source and ejection manifests
|
|
48
|
-
are discovery and ownership-transfer mechanisms, not private runtime APIs.
|
|
49
|
-
|
|
50
|
-
## Design-System Boundary
|
|
51
|
-
|
|
52
|
-
Every app keeps an explicit design-system seam in `app/design-system.ts` using
|
|
53
|
-
`defineDesignSystem` from `@agent-native/toolkit/design-system`, and supplies it
|
|
54
|
-
to `ToolkitProvider`. The semantic contract contains:
|
|
55
|
-
|
|
56
|
-
- nine leaf components: `ActionButton`, `IconButton`, `TextField`, `TextArea`,
|
|
57
|
-
`Spinner`, `Skeleton`, `Status`, `Surface`, and `Avatar`
|
|
58
|
-
- eight behavior components: `Tooltip`, `Menu`, `Popover`, `Dialog`, `Picker`,
|
|
59
|
-
`Checkbox`, `Switch`, and `Tabs`
|
|
60
|
-
|
|
61
|
-
These are semantic contracts, not styling contracts. An adapter may use
|
|
62
|
-
Tailwind/shadcn, MUI-style theme providers, React Aria, CSS modules, CSS-in-JS,
|
|
63
|
-
or another React design system. Do not assume CVA, utility classes, or even a
|
|
64
|
-
`className`; behavior adapters may supply their overlay and focus
|
|
65
|
-
implementation wholesale while honoring portal, focus-restoration, keyboard,
|
|
66
|
-
dismissal, ARIA, and z-index interoperability.
|
|
67
|
-
|
|
68
|
-
Pages, routes, and domain components import ordinary controls through the app's
|
|
69
|
-
local adapter layer, usually `@/components/ui/*`. They must not import
|
|
70
|
-
`@agent-native/toolkit/ui/*` directly. Toolkit feature exports are still the
|
|
71
|
-
right home for shared workspace behavior; their presentation flows through the
|
|
72
|
-
registered semantic components, feature controller, and product-level slots.
|
|
73
|
-
|
|
74
|
-
Customer adapter packages are normal npm packages imported explicitly by the
|
|
75
|
-
app. Never auto-detect them or load React components from JSON. Run the adapter
|
|
76
|
-
against `@agent-native/toolkit/conformance` in customer CI before adopting it.
|
|
77
|
-
|
|
78
|
-
## Settings Direction
|
|
79
|
-
|
|
80
|
-
Durable settings belong in the Settings app or a registered settings route. The
|
|
81
|
-
agent sidebar should not become a second settings app. It can show contextual
|
|
82
|
-
quick controls and deep links such as:
|
|
83
|
-
|
|
84
|
-
- `/settings/ai`
|
|
85
|
-
- `/settings/connections`
|
|
86
|
-
- `/settings/secrets`
|
|
87
|
-
- `/settings/usage`
|
|
88
|
-
- `/settings/apps/:appId`
|
|
89
|
-
|
|
90
|
-
The shared Account section is the canonical profile surface at
|
|
91
|
-
`/settings#account`. It owns the editable display name and existing avatar
|
|
92
|
-
control through the authenticated `get-user-profile` and `update-user-profile`
|
|
93
|
-
actions. Shared workspace chrome such as `OrgSwitcher` should link to this
|
|
94
|
-
surface rather than creating an app-local profile page.
|
|
95
|
-
|
|
96
|
-
When adding a new API key, OAuth grant, provider connection, model selector, app
|
|
97
|
-
preference, notification preference, or usage/billing surface, register it as a
|
|
98
|
-
settings tab or app settings panel first. Only add sidebar UI when it is needed
|
|
99
|
-
in the moment of agent use.
|
|
100
|
-
|
|
101
|
-
## Reusable Kits
|
|
102
|
-
|
|
103
|
-
- **Settings kit**: a searchable settings page with account, workspace, AI
|
|
104
|
-
models, LLM keys, connections, secrets, usage, notifications, changelog, and
|
|
105
|
-
app-specific panels. Search is on by default; register a `SettingsSearchEntry`
|
|
106
|
-
per control so users find settings by name across tabs.
|
|
107
|
-
- **Collaboration kit**: Yjs docs, presence, agent presence, live cursors,
|
|
108
|
-
remote selections, recent edit highlights, real-time sync indicators, and
|
|
109
|
-
undo/redo grouping.
|
|
110
|
-
- **Sharing kit**: private/workspace/org/public-link access, invites, roles,
|
|
111
|
-
expirations, agent-readable links, and resource registration.
|
|
112
|
-
- **Navigation and command kit**: app shell, side nav, breadcrumbs, app switcher,
|
|
113
|
-
command palette entries, recent resources, pinned resources, and global search.
|
|
114
|
-
- **Organization kit**: folders, tags, favorites, archive, trash, ownership,
|
|
115
|
-
membership, and common resource metadata.
|
|
116
|
-
- **Setup and connections kit**: declarative setup requirements, model readiness,
|
|
117
|
-
missing-secret states, OAuth grants, and provider connection health.
|
|
118
|
-
- **Agent UX kit**: sidebar, composer, staged context, mentions, voice, human
|
|
119
|
-
approval, generative UI, progress, and screen-state exposure.
|
|
120
|
-
- **Chat history kit**: presentational chat lists and recent-chat rails belong
|
|
121
|
-
in Toolkit; Core keeps thread persistence, agent execution, transport, and
|
|
122
|
-
page-to-sidebar handoff. Use Toolkit's `ChatHistoryRail` for the standard
|
|
123
|
-
five-item sidebar preview and a footer row with New chat followed by an
|
|
124
|
-
ellipsis disclosure up to fifteen. Apps inject routing, labels, and domain
|
|
125
|
-
actions.
|
|
126
|
-
- **Agent page kit**: the full-page `/agent` surface (`AgentTabsPage` from
|
|
127
|
-
`@agent-native/core/client`) with Context, Files, Connections, Jobs, and
|
|
128
|
-
Access tabs plus a Personal/Organization scope toggle. The canonical home
|
|
129
|
-
for context transparency, MCP servers, A2A remote agents, recurring
|
|
130
|
-
jobs/automations, and external-client connect flows. See the `agent-page`
|
|
131
|
-
skill.
|
|
132
|
-
- **History and recovery kit**: audit log, activity feed, version history,
|
|
133
|
-
checkpoints, undo, redo, restore, and proof-of-done.
|
|
134
|
-
- **Comments and review kit**: anchored comments, pins, mentions, review
|
|
135
|
-
requests, resolved threads, agent follow-up tasks, and notifications.
|
|
136
|
-
- **Workflow and observability kit**: notifications, approvals, scheduled work,
|
|
137
|
-
background runs, recurring jobs, traces, evals, feedback, and run timelines.
|
|
138
|
-
|
|
139
|
-
## Implementation Checklist
|
|
140
|
-
|
|
141
|
-
When adding or refactoring one of these areas:
|
|
142
|
-
|
|
143
|
-
1. Search existing framework and template code for duplicated UI or actions.
|
|
144
|
-
2. Decide the shared contract: data shape, action API, feature-level headless
|
|
145
|
-
controller, default view, semantic components, and product-level render
|
|
146
|
-
slots.
|
|
147
|
-
3. Keep shared data provider-agnostic and scoped by auth/sharing rules.
|
|
148
|
-
4. Expose the same capability to the UI and agent through actions or documented
|
|
149
|
-
client helpers.
|
|
150
|
-
5. Register app-specific labels, routes, resource adapters, and settings panels
|
|
151
|
-
instead of hardcoding app names in core UI.
|
|
152
|
-
6. Update docs and relevant skills so future apps discover the shared path.
|
|
153
|
-
7. Keep the component easy to adopt piecemeal: expose props/slots first and
|
|
154
|
-
ship readable source plus a complete ejection unit so apps can take ownership
|
|
155
|
-
of the smallest feature when needed. See `customizing-agent-native` for the
|
|
156
|
-
configure → compose → eject → propose seam ladder.
|
|
157
|
-
8. Keep one controller as the source of truth for the default and custom render
|
|
158
|
-
paths. A custom design must not fork actions, analytics, async state, or
|
|
159
|
-
accessibility behavior.
|
|
160
|
-
9. Verify the default adapter and at least one non-Tailwind adapter with the
|
|
161
|
-
conformance kit, including focus and portal stacking across mixed overlay
|
|
162
|
-
implementations.
|
|
163
|
-
|
|
164
|
-
## Related Skills
|
|
165
|
-
|
|
166
|
-
Read these alongside this skill when the work touches the specific area:
|
|
167
|
-
|
|
168
|
-
- `sharing`
|
|
169
|
-
- `real-time-collab`
|
|
170
|
-
- `real-time-sync`
|
|
171
|
-
- `client-side-routing`
|
|
172
|
-
- `context-awareness`
|
|
173
|
-
- `onboarding`
|
|
174
|
-
- `secrets`
|
|
175
|
-
- `audit-log`
|
|
176
|
-
- `observability`
|
|
177
|
-
- `frontend-design`
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: crm
|
|
3
|
-
description: Work with Native SQL or HubSpot/Salesforce CRM using scoped records, field policies, evidence, proposals, and provider data programs.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# CRM Companion
|
|
7
|
-
|
|
8
|
-
Use actions as the operational source of truth and `shared/crm-contract.ts` as
|
|
9
|
-
the product-model source of truth. This scope supports standalone Native SQL
|
|
10
|
-
and HubSpot/Salesforce Connected/Hybrid behavior.
|
|
11
|
-
|
|
12
|
-
## Start with the right source
|
|
13
|
-
|
|
14
|
-
- Use `view-screen` only when the request depends on the current UI view,
|
|
15
|
-
selection, or saved view. Use `get-crm-overview`, `list-crm-records`, and
|
|
16
|
-
`get-crm-record` for ordinary CRM reads.
|
|
17
|
-
- Use `sync-crm` for a declared, bounded mirror cohort. It is not an exhaustive
|
|
18
|
-
provider export.
|
|
19
|
-
- Use `configure-native-crm` to start CRM without an external provider. Native
|
|
20
|
-
SQL records are local-authoritative and portable across SQLite, Postgres, and
|
|
21
|
-
D1. Use the normal CRM record, task, view, cadence, and evidence actions;
|
|
22
|
-
never require a provider connection or call `sync-crm` for Native SQL.
|
|
23
|
-
- After HubSpot or Salesforce is authorized in workspace Connections, use
|
|
24
|
-
`configure-crm-connection` with the selected provider to register it with
|
|
25
|
-
CRM. Never pass a token. HubSpot starts with `companies`, `contacts`, and
|
|
26
|
-
`deals`; Salesforce starts with `Account`, `Contact`, and `Opportunity`.
|
|
27
|
-
- Use `sync-crm` only for the declared recent cohort. HubSpot may be narrowed
|
|
28
|
-
by deal pipeline ids; Salesforce uses the updated-after boundary for its
|
|
29
|
-
standard objects. Record detail can perform a scoped read-through refresh;
|
|
30
|
-
do not treat it as permission for an export-all query.
|
|
31
|
-
- For an endpoint, object, filter, pagination mode, or schema not represented
|
|
32
|
-
by a CRM action, use `provider-api-catalog`, `provider-api-docs`, then the
|
|
33
|
-
read-only `provider-api-request` for the selected provider. Before broad work,
|
|
34
|
-
declare a cohort, selected fields, and a bounded page/row budget. Stage only
|
|
35
|
-
that result, then use `query-staged-dataset` or a data program to reduce it.
|
|
36
|
-
Report provider, scope, filters, page/row counts, truncation, and gaps.
|
|
37
|
-
- Always pass the selected workspace `connectionId` for Salesforce provider API
|
|
38
|
-
reads so its actor-bound OAuth token and instance URL cannot be separated.
|
|
39
|
-
|
|
40
|
-
## Field, evidence, and credential boundaries
|
|
41
|
-
|
|
42
|
-
- Credentials exist only in workspace Connections. Never request, paste, log,
|
|
43
|
-
save, or return a HubSpot or Salesforce token or secret.
|
|
44
|
-
- Treat the upstream CRM as authoritative for remote fields. Only configured
|
|
45
|
-
allow-listed fields are mirrored. Unknown fields are remote-only; sensitive
|
|
46
|
-
fields default to redacted and must not be fetched or shown.
|
|
47
|
-
- Salesforce reads must be revalidated against the current connection actor and
|
|
48
|
-
field permissions. Never infer a user's access from a service-account mirror
|
|
49
|
-
or from a previously visible local row; fail closed when access is ambiguous.
|
|
50
|
-
- Never save raw provider payloads, media, screenshots, audio, video,
|
|
51
|
-
transcripts, base64 data, or file bodies in CRM SQL. `attach-call-evidence`
|
|
52
|
-
stores only a source URL/id, bounded quote, timestamp, speaker, and metadata.
|
|
53
|
-
For Clips, use only a durable `/share/<id>` or `/r/<id>` page URL with no
|
|
54
|
-
access token or transcript fragment; never use a `clip.created` event URL.
|
|
55
|
-
- Use `run-crm-signal-trackers` only over evidence already attached to the CRM
|
|
56
|
-
record. Keyword hits are deterministic. Smart detector and summary requests
|
|
57
|
-
must go through agent chat, never a direct model call. Persist delegated
|
|
58
|
-
results with `record-crm-smart-signal` or one atomic
|
|
59
|
-
`record-crm-call-insight` batch; each quote/timestamp must cite the exact
|
|
60
|
-
bounded evidence row. Use `review-crm-signal` for human confirmation.
|
|
61
|
-
- Use `create-crm-signal-tracker` to add a keyword or smart tracker, and
|
|
62
|
-
`manage-crm-signal-tracker` to enable, disable, or delete one tracker with
|
|
63
|
-
editor access. Tracker management is local configuration only: it never
|
|
64
|
-
invokes a model or mutates a connected provider. Navigate with
|
|
65
|
-
`{ view: "settings", settingsSection: "intelligence" }` to open the
|
|
66
|
-
Intelligence settings tab.
|
|
67
|
-
- Do not identify or merge records by email/domain alone. Provider identity is
|
|
68
|
-
connection + provider + object type + remote id, and relationships retain
|
|
69
|
-
direction.
|
|
70
|
-
|
|
71
|
-
## Safe writes and workflows
|
|
72
|
-
|
|
73
|
-
- Use `update-crm-record` for a scoped typed edit. Provider writes are
|
|
74
|
-
prepared as revision-aware, access-checked, idempotent, audited proposals.
|
|
75
|
-
HubSpot proposals always hand off because HubSpot cannot apply the expected
|
|
76
|
-
revision atomically. Salesforce conditional-write capability is a
|
|
77
|
-
prerequisite for a future provider apply, not a reason to claim a write
|
|
78
|
-
succeeded without a confirmed provider response and the stored approval
|
|
79
|
-
policy.
|
|
80
|
-
- Agent provider writes default to proposals. For ownership, amount, stage,
|
|
81
|
-
delete, bulk, or external-side-effect changes, show exact scope and fields,
|
|
82
|
-
then require approval. Use `list-crm-proposals` and
|
|
83
|
-
`apply-crm-proposals` to review the change and record the upstream handoff;
|
|
84
|
-
direct the user to complete it in HubSpot or Salesforce and never claim it
|
|
85
|
-
was applied without a confirmed adapter result.
|
|
86
|
-
- The only stored delegation pack is `crm-sales-routine-local-v1`. It applies
|
|
87
|
-
only when a trusted automation trigger supplies that policy id and only to
|
|
88
|
-
one routine local record update. Do not pass policy ids as action input;
|
|
89
|
-
provider mutations stay proposal-first and risky, destructive, bulk, or
|
|
90
|
-
external-effect work stays gated.
|
|
91
|
-
- Native SQL writes are local-authoritative CRM mutations. They remain
|
|
92
|
-
access-checked, idempotent, and audited, but have no provider handoff or
|
|
93
|
-
remote revision to claim.
|
|
94
|
-
- Use `list-crm-saved-views` and `save-crm-saved-view` for saved views. Use
|
|
95
|
-
`list-crm-tasks` and `manage-crm-task` for CRM follow-ups. Use `navigate` to
|
|
96
|
-
show a requested view instead of merely describing it.
|
|
97
|
-
- Use `install-crm-pipeline-dashboard` to install the owner-scoped Pipeline
|
|
98
|
-
dashboard. Its stored data program calls the bounded, access-scoped
|
|
99
|
-
`get-crm-pipeline-data` action through `appAction`; do not reimplement the
|
|
100
|
-
aggregate with a provider request or put CRM rows in dashboard config. Use
|
|
101
|
-
`get-crm-dashboard` / `list-crm-dashboards` to inspect dashboards,
|
|
102
|
-
`save-crm-dashboard` with `expectedUpdatedAt` for safe edits, and
|
|
103
|
-
`list-crm-dashboard-revisions` / `restore-crm-dashboard-revision` to review
|
|
104
|
-
or restore prior dashboard configurations.
|
|
105
|
-
- Use `get-crm-automation-recipe` for the default-off Clips call-evidence
|
|
106
|
-
review recipe after the user explicitly selects a CRM record. The recipe is a
|
|
107
|
-
configuration aid, not permission to activate an automation. Before enabling
|
|
108
|
-
it, show the exact Clips-owned `clip.created` trigger, the selected CRM
|
|
109
|
-
record, and its one bounded local evidence-reference write, then obtain a
|
|
110
|
-
fresh approval. Use the recipe's exact `call-agent` input and content-bound
|
|
111
|
-
`approvedActions` grant. The Clips trigger must call
|
|
112
|
-
`prepare-crm-call-evidence`; never use the event URL or copy media/transcript
|
|
113
|
-
content. The downstream CRM call may only invoke `attach-call-evidence` for
|
|
114
|
-
that selected record and cannot create tasks, field updates, proposals, or
|
|
115
|
-
provider mutations.
|
|
116
|
-
|
|
117
|
-
## Four-area provider changes
|
|
118
|
-
|
|
119
|
-
Provider behavior must stay aligned across setup UI, CRM actions, this skill,
|
|
120
|
-
and `application_state`/`view-screen`. Reuse workspace Connections and action
|
|
121
|
-
hooks; do not add a provider-key field, legacy `/api` route, direct browser
|
|
122
|
-
fetch, or provider-specific state outside the shared CRM contract.
|
|
123
|
-
|
|
124
|
-
## Out of scope
|
|
125
|
-
|
|
126
|
-
Do not add provider migration, a page builder, or raw provider payload/media in
|
|
127
|
-
CRM SQL. Native SQL supports the canonical CRM objects and generic custom
|
|
128
|
-
records; a separate object-authoring engine is not part of this template.
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: customizing-agent-native
|
|
3
|
-
description: >-
|
|
4
|
-
How to configure, compose, or eject Agent Native features into app-owned
|
|
5
|
-
code. Use when overriding shared components or integrations, customizing a
|
|
6
|
-
template, adding UI to chat or headless apps, or inspecting package source.
|
|
7
|
-
scope: dev
|
|
8
|
-
metadata:
|
|
9
|
-
internal: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Customizing Agent Native
|
|
13
|
-
|
|
14
|
-
## Rule
|
|
15
|
-
|
|
16
|
-
Start with the app's registered design system and local UI adapters, then use
|
|
17
|
-
the public feature's props, semantic components, controller, product slots,
|
|
18
|
-
and callbacks. If those seams are not enough, use the eject CLI to transfer
|
|
19
|
-
the smallest supported feature into the app and make that copy app-owned.
|
|
20
|
-
Never edit `node_modules`, deep-import a private source file at runtime, or
|
|
21
|
-
patch an `@agent-native/*` package.
|
|
22
|
-
|
|
23
|
-
Use this order:
|
|
24
|
-
|
|
25
|
-
1. Set brand tokens with the build-time theme configuration when tokens are
|
|
26
|
-
enough.
|
|
27
|
-
2. Register company components in `app/design-system.ts` with
|
|
28
|
-
`defineDesignSystem`, then pass that definition to `ToolkitProvider`.
|
|
29
|
-
3. Configure a public feature through its semantic components, headless
|
|
30
|
-
controller, and product-level render slots.
|
|
31
|
-
4. Compose app primitives behind the app's local UI adapter layer.
|
|
32
|
-
5. Eject the smallest feature into app-owned source.
|
|
33
|
-
6. Propose a new Toolkit seam when the same override is useful in two apps.
|
|
34
|
-
|
|
35
|
-
Ejection is for intentional product customization, not for hiding an upgrade
|
|
36
|
-
failure or replacing Core runtime behavior.
|
|
37
|
-
|
|
38
|
-
## Use A Company Design System
|
|
39
|
-
|
|
40
|
-
Keep the explicit, typed registration seam in `app/design-system.ts`:
|
|
41
|
-
|
|
42
|
-
```tsx
|
|
43
|
-
import { defineDesignSystem } from "@agent-native/toolkit/design-system";
|
|
44
|
-
import {
|
|
45
|
-
AcmeActionButtonAdapter,
|
|
46
|
-
AcmeDialogAdapter,
|
|
47
|
-
} from "./design-system/acme-adapter";
|
|
48
|
-
|
|
49
|
-
export const designSystem = defineDesignSystem({
|
|
50
|
-
name: "Acme",
|
|
51
|
-
components: {
|
|
52
|
-
ActionButton: AcmeActionButtonAdapter,
|
|
53
|
-
Dialog: AcmeDialogAdapter,
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Adapters translate the semantic Toolkit contract into company component props.
|
|
59
|
-
They are ordinary React components and may use MUI-style providers, React Aria,
|
|
60
|
-
CSS modules, CSS-in-JS, or another styling runtime. `className` and `style` are
|
|
61
|
-
optional interoperability hooks, not Tailwind or CVA requirements.
|
|
62
|
-
|
|
63
|
-
The contract has nine leaf components (`ActionButton`, `IconButton`,
|
|
64
|
-
`TextField`, `TextArea`, `Spinner`, `Skeleton`, `Status`, `Surface`, `Avatar`)
|
|
65
|
-
and eight behavior components (`Tooltip`, `Menu`, `Popover`, `Dialog`,
|
|
66
|
-
`Picker`, `Checkbox`, `Switch`, `Tabs`). `Picker` covers select and combobox
|
|
67
|
-
behavior, not date picking. Behavior adapters own their portal, focus,
|
|
68
|
-
keyboard, dismissal, and stacking implementation while honoring the semantic
|
|
69
|
-
props and `portalContainer` interop contract.
|
|
70
|
-
|
|
71
|
-
App product code imports standard controls from its local adapter path, usually
|
|
72
|
-
`@/components/ui/*`. Do not import `@agent-native/toolkit/ui/*` directly from
|
|
73
|
-
pages, routes, or domain components. That bypasses the app seam and makes a
|
|
74
|
-
future design-system replacement incomplete. Toolkit feature packages remain
|
|
75
|
-
valid imports; configure their presentation through the registered semantic
|
|
76
|
-
components, controller, and product slots.
|
|
77
|
-
|
|
78
|
-
Run the published conformance kit against a complete adapter in its own CI:
|
|
79
|
-
|
|
80
|
-
```tsx
|
|
81
|
-
import { assertDesignSystemConformance } from "@agent-native/toolkit/conformance";
|
|
82
|
-
import { DESIGN_SYSTEM_CONTRACT_VERSION } from "@agent-native/toolkit/design-system";
|
|
83
|
-
|
|
84
|
-
await assertDesignSystemConformance({
|
|
85
|
-
adapterName: "Acme",
|
|
86
|
-
components,
|
|
87
|
-
contractVersion: DESIGN_SYSTEM_CONTRACT_VERSION,
|
|
88
|
-
});
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
New components and optional props are minor contract changes. Required props,
|
|
92
|
-
removed APIs, or behavioral changes require a new contract major.
|
|
93
|
-
|
|
94
|
-
## Customize A Shared Feature
|
|
95
|
-
|
|
96
|
-
Prefer feature-level headless controllers over rebuilding individual widgets.
|
|
97
|
-
One controller must power both the Toolkit default view and every custom render
|
|
98
|
-
path so behavior, actions, analytics, accessibility state, and error handling
|
|
99
|
-
cannot drift. Use a product-level render slot to replace the view while keeping
|
|
100
|
-
that controller. Eject only when the controller and slots cannot express the
|
|
101
|
-
required product behavior.
|
|
102
|
-
|
|
103
|
-
## Eject A Feature
|
|
104
|
-
|
|
105
|
-
Discover and inspect the ejection units published by installed first-party
|
|
106
|
-
packages before changing source:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
agent-native eject --list
|
|
110
|
-
agent-native eject inspect <unit>
|
|
111
|
-
agent-native eject <unit> --app <app>
|
|
112
|
-
agent-native eject <unit> --app <app> --apply
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
The command is dry-run by default. It prints the file closure, consumer import
|
|
116
|
-
rewrites, protected package contracts, and verification commands before
|
|
117
|
-
writing. `--apply` copies the package-version-matched source into the app and
|
|
118
|
-
rewrites only imports covered by the unit manifest.
|
|
119
|
-
|
|
120
|
-
Every first-party public ejection unit must have a complete manifest. If one is
|
|
121
|
-
missing, treat that as a framework coverage bug instead of inventing a copy
|
|
122
|
-
recipe. For an unknown third-party package, use the emitted add-style blueprint
|
|
123
|
-
as a starting point. Protected runtime behavior is never copied; follow the
|
|
124
|
-
reported configuration, adapter, or extension seam instead.
|
|
125
|
-
|
|
126
|
-
Applied ejections are recorded in the committed
|
|
127
|
-
`agent-native.ejections.json`, including package version, manifest digest,
|
|
128
|
-
target hashes, and import rewrites. Use the recorded state to review drift or
|
|
129
|
-
undo an unchanged ejection:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
agent-native eject diff <unit> --app <app>
|
|
133
|
-
agent-native eject restore <unit> --app <app>
|
|
134
|
-
agent-native eject restore <unit> --app <app> --apply
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Restore is hash-gated. It refuses to remove locally edited files or reverse
|
|
138
|
-
changed imports and prints their diff instead. Keep an edited ejection as
|
|
139
|
-
app-owned code, or reconcile those edits before restoring it.
|
|
140
|
-
|
|
141
|
-
## Find The Installed Implementation
|
|
142
|
-
|
|
143
|
-
Use the source that matches the installed package version:
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
pnpm action docs-search --query "<component or feature>"
|
|
147
|
-
pnpm action source-search --query "<component or symbol>"
|
|
148
|
-
rg -n "<component or symbol>" node_modules/@agent-native/toolkit/src
|
|
149
|
-
rg -n "<component or symbol>" node_modules/@agent-native/core/corpus
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
- Toolkit publishes readable TypeScript under
|
|
153
|
-
`node_modules/@agent-native/toolkit/src/` for selective UI adoption.
|
|
154
|
-
- Core and first-party template source lives under
|
|
155
|
-
`node_modules/@agent-native/core/corpus/core/` and
|
|
156
|
-
`node_modules/@agent-native/core/corpus/templates/`.
|
|
157
|
-
- Treat those trees as read-only references. Prefer `agent-native eject` so the
|
|
158
|
-
package manifest selects the complete source closure and rewrites imports.
|
|
159
|
-
Manual inspection is still useful for deciding whether to configure,
|
|
160
|
-
compose, eject, or propose a shared seam.
|
|
161
|
-
|
|
162
|
-
Do not manually guess at sibling dependencies. The ejection manifest owns the
|
|
163
|
-
required file closure and keeps protected contracts on public package imports.
|
|
164
|
-
|
|
165
|
-
## Preserve The Agent-Native Contract
|
|
166
|
-
|
|
167
|
-
UI ownership may change; product contracts should not:
|
|
168
|
-
|
|
169
|
-
- Keep app operations in `defineAction` actions and call them through
|
|
170
|
-
`useActionQuery`, `useActionMutation`, or another named client helper.
|
|
171
|
-
- Keep navigation, selection, and focused-object state visible through the
|
|
172
|
-
existing application-state keys.
|
|
173
|
-
- Keep AI work in the shared agent chat instead of adding direct LLM calls.
|
|
174
|
-
- Keep auth, access checks, persistence, chat transport, and agent execution in
|
|
175
|
-
Core. Do not copy those runtimes into the app.
|
|
176
|
-
- Keep local adapters narrow so package upgrades still improve every surface
|
|
177
|
-
the app has not intentionally taken ownership of.
|
|
178
|
-
- Keep page, route, and domain code on local UI adapter imports. Never reach
|
|
179
|
-
around the registered design system with direct Toolkit UI primitive imports.
|
|
180
|
-
|
|
181
|
-
## App Shapes
|
|
182
|
-
|
|
183
|
-
- **Template app:** begin with `app/design-system.ts`, its local UI adapters,
|
|
184
|
-
and domain UI. Use Toolkit features for repeated workspace behavior; eject
|
|
185
|
-
only the unit being customized.
|
|
186
|
-
- **Chat app:** keep `AgentChatSurface`, thread state, and chat transport in
|
|
187
|
-
Core. Compose or eject Toolkit presentation such as chat-history UI around it.
|
|
188
|
-
- **Headless app:** stay action-first while no UI is needed. When adding a UI,
|
|
189
|
-
use the Chat template as the on-ramp or add Toolkit components without
|
|
190
|
-
replacing the existing actions.
|
|
191
|
-
- **Workspace:** put one-app overrides in that app. Promote a local component
|
|
192
|
-
to `packages/shared` only when multiple workspace apps use it.
|
|
193
|
-
|
|
194
|
-
## After Ejecting
|
|
195
|
-
|
|
196
|
-
- Commit `agent-native.ejections.json` with the app-owned files and rewrites.
|
|
197
|
-
- Remove unused dependencies and imports from the ejected files.
|
|
198
|
-
- Keep visible text in the app's localization catalogs.
|
|
199
|
-
- Run the manifest verification commands plus the app's formatter, typecheck,
|
|
200
|
-
and focused tests.
|
|
201
|
-
- Re-check the installed source during future package upgrades; the app-owned
|
|
202
|
-
ejection does not receive upstream fixes automatically. Use `eject diff` to
|
|
203
|
-
distinguish recorded output from subsequent local edits.
|
|
204
|
-
|
|
205
|
-
## Don't
|
|
206
|
-
|
|
207
|
-
- Don't edit or import from `node_modules/@agent-native/*/src` at runtime.
|
|
208
|
-
- Don't add `pnpm.overrides`, patches, or resolutions for Agent Native packages.
|
|
209
|
-
- Don't copy Core auth, DB, action, agent-loop, or transport internals.
|
|
210
|
-
- Don't manually copy a first-party unit with a missing recipe; fix its manifest.
|
|
211
|
-
- Don't eject a full package when a prop, slot, wrapper, or smaller unit works.
|
|
212
|
-
- Don't fork feature state into a custom view; consume the feature's controller.
|
|
213
|
-
|
|
214
|
-
## Related Skills
|
|
215
|
-
|
|
216
|
-
- `agent-native-docs` — version-matched docs and source lookup
|
|
217
|
-
- `agent-native-toolkit` — shared-vs-app-owned architecture boundary
|
|
218
|
-
- `self-modifying-code` — safe app source edits
|
|
219
|
-
- `upgrade-agent-native` — supported package upgrade path
|
|
220
|
-
- `adding-a-feature` — UI/action/instructions/application-state parity
|