-
Notifications
You must be signed in to change notification settings - Fork 49
gnomAD assistant prototype #1820
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
mattsolo1
wants to merge
19
commits into
main
Choose a base branch
from
gnomad-assistant
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is the first implementation of gnomAD Assistant, an AI-powered chat interface that helps users navigate and explore the gnomAD database. Key changes: - Created separate CopilotKit server to avoid GraphQL conflicts - Added CopilotKit React dependencies to browser - Integrated CopilotSidebar component with variant navigation action - Added Copilot button to navigation bar - Connected to gmd MCP tool server for gnomAD-specific functionality - Updated pnpm-lock.yaml with new dependencies The assistant can currently: - Navigate to variant pages based on variant IDs or rsIDs - Use the gmd tool server for additional gnomAD queries 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
… gnomAD Assistant - Create new GnomadCopilot component with non-floating layout - Chat panel takes up 1/3 of screen by default (was 50%) - Add resizable functionality with drag handle - Remove Copilot menu item from navbar - Increase chat input font size to 14px - Update initial greeting message The assistant now integrates better with the page layout and provides a more intuitive user experience with adjustable panel width. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Add page context tracking to DocumentTitle using useCopilotReadable - Pass gene/variant context from GenePage and VariantPage to assistant - Add useGnomadCopilotActions hook for displaying variant data in chat - Add styles for chat components to properly display tables and data This enables the assistant to understand what the user is viewing and display rich data components directly in the chat interface. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Change action name from 'showVariantInfo' to 'get_variant_summary' - Update parameter names to match MCP tool (variantId -> variant_id) - Add optional dataset parameter with fallback to current dataset This fixes the variant table display in the chat interface by ensuring the frontend action properly invokes the backend MCP tool. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Removed the get_variant_summary action and its associated useGnomadCopilotActions hook. This action is no longer needed in the CopilotKit integration. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Add "Interpret this variant" suggestion on variant pages - Set assistant chat window to be open by default - Style suggestion chips with 14px font size to match chat UI - Use conditional rendering to show suggestions only on relevant pages 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
…on registration The CopilotSidebar component was registering a duplicate navigateToVariantPage action which caused "Action argument unparsable" errors due to receiving malformed JSON. Since this component is not imported anywhere and GnomadCopilot provides the same functionality with a better split-screen layout, it's safe to remove. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Add Progress component for displaying MCP tool activity logs - Implement useMCPStateRender hook for inline tool state visualization - Integrate agent state rendering into GnomadCopilot - Remove old ActionMessage/CustomRenderMessage code in favor of new system - Add collapsible parameter display and status indicators 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add region context to MCP tools by passing region data to DocumentTitle component and handling it in the context detection logic. This enables the assistant to access genomic region information (chrom, start, stop). Add example pill questions for Juha Genetics API queries across variant, gene, and region pages. Users can now easily query for credible sets, colocalizations, QTL data, and gene-disease associations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
- Create table column definitions for credible sets, colocalizations, and gene-disease data - Implement JuhaToolsDisplay component with virtualized Grid tables for large datasets - Add useJuhaActions hook defining 6 frontend MCP actions for Juha API tools - Integrate Juha actions into GnomadCopilot - Support proper sorting state management for each table type - Fix React key uniqueness and variant link generation - Add proper spacing to prevent visual overlap with LLM summaries 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
…ent issues Major changes: - Integrate CopilotKit server into GraphQL API as colocalized service - Upgrade CopilotKit packages from v1.0.0 to v1.10.6 (fixes duplicate request bug) - Add MCP client with singleton pattern to support multi-turn conversations - Configure nginx to disable caching for /api/copilotkit endpoint - Add deployment scripts and documentation for CopilotKit artifacts - Update Docker configuration to include gmd binary (linux/amd64) and Mendelian TSV - Add comprehensive logging for CopilotKit requests and MCP tool executions - Remove copilotkit-server from pnpm workspace (code moved to graphql-api) Technical details: - CopilotKit now runs as part of the GraphQL API server (not standalone) - MCP client reuses single instance per pod to maintain conversation state - GraphQL upgraded from v15 to v16 for CopilotKit compatibility - Nginx proxy cache explicitly bypassed for chat endpoint - Build artifacts prepared via deploy/scripts/prepare-copilotkit-artifacts.sh Fixes: - Fix duplicate HTTP requests caused by frontend/backend version mismatch - Fix cached responses in production by disabling nginx caching for chat - Fix missing Juha tools by using gmd binary from juha-api worktree - Fix architecture mismatch by building linux/amd64 gmd binary for Docker 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.