-
Notifications
You must be signed in to change notification settings - Fork 118
feat: Ask Sourcebot #392
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
Merged
Merged
feat: Ask Sourcebot #392
Changes from 121 commits
Commits
Show all changes
123 commits
Select commit
Hold shift + click to select a range
5e400bd
wip
brendan-kellam e4ee716
wip
brendan-kellam c73b00d
wip: add inline citations
brendan-kellam fb0e44a
Add read file tool
brendan-kellam 446112b
code block rendering
brendan-kellam 571b55f
Add find all refs / get defs tool
brendan-kellam c7a771a
Add range field to citations
brendan-kellam bbf4bec
wip on context system
brendan-kellam 4c1ebae
wip on adding context window panel
brendan-kellam fe8479e
wip on adding context system
brendan-kellam 36202ee
Add useBrowsePath
brendan-kellam 8534924
try out claude
brendan-kellam f7ab5f9
clickable links
brendan-kellam 53fcb5a
WIP: playing around with slate to drive @ mentions
brendan-kellam 187a092
experiment: reduce input token usage by altering file search payload …
brendan-kellam 97bbebd
small improvements
brendan-kellam cea3962
further improvements to @ mention system
brendan-kellam 2b1952f
chat persistance + working on new chat UI
brendan-kellam 828ba99
add input message support
brendan-kellam aea6c18
switch to openai
brendan-kellam 824c2bf
fix
brendan-kellam 1ab148b
fix
brendan-kellam b76ca87
Add markdown rendering using marked
brendan-kellam 63b87e8
formatting nits
brendan-kellam a9bb163
wip on annotations using markdown
brendan-kellam fd02802
Add line numbers to source to make it easier for LLMs to reference sp…
brendan-kellam d9facb2
nits
brendan-kellam aa21412
centralize vscode icons
brendan-kellam 74b3517
stylelized read files tool component
brendan-kellam 14a985c
much progress on styled tool results
brendan-kellam b1997da
fix bug with scroll area width
brendan-kellam d8816fb
switch over to rendering using react-markdown. Render code blocks usi…
brendan-kellam fea6e47
Add metadata to generated codeblocks. Make codemirror rendering nicer
brendan-kellam 5d1e1e6
fix: only encode path part
brendan-kellam 83cda04
fix: remove forced session update on settings dropdown since that was…
brendan-kellam 1e6e18d
wip on perf improvements: render lightweight code editor when streaming
brendan-kellam d661bde
resolve conflicts
brendan-kellam bb02fb1
scroll restoration + some improvements to code block rendering
brendan-kellam 1d65f25
fix
brendan-kellam 907027a
rendering nits + auto scroll
brendan-kellam 90992da
Add hints to inline code blocks
brendan-kellam 4ec001e
fix issues with scroll restoration
brendan-kellam 6f32b76
refactor everything into seperate components
brendan-kellam 956d98e
proper initial message handling
brendan-kellam f4e3bf8
Make the repo selector actually do something
brendan-kellam d40acaa
configurable model providers
brendan-kellam 83a6231
save search mode to local storage. Other small nits
brendan-kellam 9059907
Add support for gemini
brendan-kellam c468a3c
Add bedrock support
brendan-kellam 70a9395
small ux nits: submit button, keyboard shortcuts, auto focus, etc.
brendan-kellam 10cdcba
persist chats to DB
brendan-kellam 8c4ad65
feat: Add chat history side panel
brendan-kellam d9fcdcf
Add chat title summarization
brendan-kellam cafbcd8
add ability to rename / delete chats
brendan-kellam 3662977
chore: add chat name to top-bar; make things work when user is unauth…
brendan-kellam ddc9159
Add stop button
brendan-kellam 752d8b8
wip: Add reasoning output
brendan-kellam 5b8ace7
chore: upgrade to ai-sdk v5 beta
brendan-kellam 466695b
Add remark reference plugin
brendan-kellam 1bfd7ee
small overhall in how we present the chat thread
brendan-kellam af45097
Add table of contents
brendan-kellam 624b48b
Adds a navigation guard to chat that warns the user that leaving the …
brendan-kellam 9fb0503
fix issue with rendering code blocks
brendan-kellam f2100c9
fix docker build errors
msukkari 2f253a6
Revert "fix docker build errors"
brendan-kellam ec96fd2
wip: Reference list viewer
brendan-kellam 25ceee2
nits
brendan-kellam 1c3e93b
chore: remove full codemirror cell output in chat thread
brendan-kellam 7e3a658
Add tool UX for find refs / defs
brendan-kellam df50e28
Clarify the concept of a source and a reference. Various cleanup work
brendan-kellam cb0fe49
Add reference scrolling
brendan-kellam 9071159
scroll handling
brendan-kellam 87f3381
small nit
brendan-kellam c16fcfc
improved highlight range styling
brendan-kellam e1f616a
color selection tweak
brendan-kellam 90187f6
color tweak
brendan-kellam b5a3d74
feat: Add code folding to file reference viewer
brendan-kellam 5b50c04
Collapsable code cells
brendan-kellam 86c56d0
Small UX improvements like collapsable chat
brendan-kellam 4193a21
support file references with only a start line
brendan-kellam 27fbb78
cleanup & some devex improvements to how we handle file references
brendan-kellam e20d810
output openai reasoning tokens
brendan-kellam fe6fdcc
Add tooltip to mention elements
brendan-kellam 44e28d0
wip on refactoring homepage
brendan-kellam 35b5a46
feat: Add repo suggestions. todo: wire up repo selector to chat box
brendan-kellam 281d8f0
wip on homepage redesign - add agentic search examples
brendan-kellam 110d1d7
Add model provider info to 'new chat' page
brendan-kellam 3e7acf8
wip: source selected repos from @ mentions found in the chat box
brendan-kellam 6b2df65
chore: add a mechanism to truncate large files
brendan-kellam cc06480
chore: bump to latest ai sdk version
brendan-kellam e38f469
Various refactors, including: 1) move LLM invocation into a sperate '…
brendan-kellam 6d2081b
resolve conflicts
brendan-kellam 585d3ed
Add back table of contents
brendan-kellam 507d537
Copy button
brendan-kellam c349add
Add support for like / dislike buttons
brendan-kellam 27ef6d3
Add chat history to LLM input
brendan-kellam dd99109
switch over to using config.json for configuring models. Add language…
brendan-kellam cda8a7f
Add tooltips explaining each search mode
brendan-kellam 9270f29
more nits with search mode tooltip
brendan-kellam 8a5c7e7
Load repos in server component. Various other nit fixes and improvements
brendan-kellam 4fbb459
Remove repositories from being a mentionable item, instead opting for…
brendan-kellam 4293cbd
simplification: remove file truncation
brendan-kellam ac8126c
instruct the LLM to output the answer and stop researching when we ar…
brendan-kellam 334ac73
Add news data
brendan-kellam da21a5b
Add basic chat history component to homepag
brendan-kellam 253b055
small tweaks here and there
brendan-kellam 6e531fd
rename to ask sourcebot
brendan-kellam 14e9660
update readme
msukkari e61ae50
Improved anonymous access handling: add concept of chat visibility an…
brendan-kellam 3e0c5b1
Fix build errors
brendan-kellam c9a7fcc
add support for google vertex
msukkari 0d894cf
small nits with example queries
brendan-kellam fca9c68
add antrhopic vertex support:
msukkari 95cfd11
remove log
msukkari 0377e2f
changelog
brendan-kellam 096b245
Make repo selection required
brendan-kellam d54ffd7
docs
msukkari 64b9f99
Add langfuse integration
brendan-kellam 2cc5027
Update og metadata description
brendan-kellam eea0e06
nits
brendan-kellam fa74f03
readme nit
brendan-kellam 1707be8
more docs
msukkari d29a972
feedback
brendan-kellam File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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 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 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 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 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
--- | ||
title: Language Model Providers | ||
sidebarTitle: Language model providers | ||
--- |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: Ask Sourcebot | ||
--- | ||
|
||
Ask Sourcebot gives you the ability to ask complex questions about your codebase in natural language. | ||
|
||
It uses Sourcebot’s existing [code search](/docs/features/search/overview) and [navigation](/docs/features/code-navigation) tools to allow reasoning models to search your code, | ||
follow code nav references, and provide an answer that’s rich with inline citations and navigable code snippets. | ||
|
||
<CardGroup> | ||
<Card title="Configure language models" icon="robot" href="/docs/configuration/language-model-providers" horizontal="true"> | ||
Learn how to connect your language model to Sourcebot | ||
</Card> | ||
<Card title="Index repos" icon="book" href="/docs/connections/overview" horizontal="true"> | ||
Learn how to index your repos so you can ask questions about them | ||
</Card> | ||
</CardGroup> | ||
|
||
<video | ||
autoPlay | ||
muted | ||
loop | ||
playsInline | ||
className="w-full aspect-video" | ||
src="/images/ask_sourcebot_low_res.mp4" | ||
></video> | ||
|
||
# Why do we need another AI dev tool? | ||
|
||
Existing AI dev tools (Cursor, Claude Code, Copilot) are great at generating code. However, we believe one of the hardest parts of being | ||
a software engineer is **understanding code**. | ||
|
||
In this domain, these tools fall short: | ||
- You can only ask questions about the code you have checked out locally | ||
- You get a wall of text that's difficult to parse, requiring you to go back and forth through different code snippets in the response | ||
- The richness of the explanation is limited by the fact that you're in your IDE | ||
|
||
We built Ask Sourcebot to address these problems. With Ask Sourcebot, you can: | ||
- Ask questions about your teams entire codebase (even on repos you don't have locally) | ||
- Easily parse the response with side-by-side citations and code navigation | ||
- Share answers with your team to spread the knowledge | ||
|
||
Being a web app is less convenient than being in your IDE, but it allows Sourcebot to provide responses in a richer UI that isn't constrained by the IDE. | ||
|
||
We believe this experience of understanding your codebase is superior, and we hope you find it useful. We'd love to know what you think! Feel free to join the discussion on our | ||
[GitHub](https://github.com/sourcebot-dev/sourcebot/discussions). |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- | ||
title: Overview | ||
--- | ||
|
||
Search across all your repos/branches across any code host platform. Blazingly fast, and supports regular expressions, repo/language search filters, boolean logic, and more. | ||
|
||
<Accordion title="Key benefits"> | ||
- **Regex support:** Use regular expressions to find code with precision. | ||
- **Query language:** Scope searches to specific files, repos, languages, symbol definitions and more using a rich [query language](/docs/features/search/syntax-reference). | ||
- **Branch search:** Specify a list of branches to search across ([docs](/docs/features/search/multi-branch-indexing)). | ||
- **Fast & scalable:** Sourcebot uses [trigram indexing](https://en.wikipedia.org/wiki/Trigram_search), allowing it to scale to massive codebases. | ||
- **Syntax highlighting:** Syntax highlighting support for over [100+ languages](https://github.com/sourcebot-dev/sourcebot/blob/57724689303f351c279d37f45b6406f1d5d5d5ab/packages/web/src/lib/codemirrorLanguage.ts#L125). | ||
- **Multi-repository:** Search across all of your repositories in a single search. | ||
- **Search suggestions:** Get search suggestions as you craft your query. | ||
- **Filter panel:** Filter results by repository or by language. | ||
</Accordion> | ||
|
||
<CardGroup> | ||
<Card title="Index repos" icon="book" href="/docs/connections/overview" horizontal="true"> | ||
Learn how to index your repos so you can ask questions about them | ||
</Card> | ||
<Card title="Branches" icon="split" href="/docs/features/search/multi-branch-indexing" horizontal="true"> | ||
Learn how to index and search through your branches | ||
</Card> | ||
</CardGroup> | ||
|
||
<video | ||
autoPlay | ||
muted | ||
loop | ||
playsInline | ||
className="w-full aspect-video" | ||
src="https://framerusercontent.com/assets/cEqHNSLiMbNeG3bk5xheQWXmKqc.mp4" | ||
></video> |
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
Binary file not shown.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.