You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These are mostly my ramblings/notes while investigating for my own uses. I leave them here in hopes that they might be useful to others.
After some further evalautation of the protocols/frontend code, the LSP and the Extension
seem to be very tightly coupled, with functionality moving from the extension to the LSP sort of adhoc as a need for native/performance-orientated code is identified.
Given this, it's feeling like the protobuf definitions alone are sufficient for only a very limited set of intended use-cases.
Background
Bit of background on me: My Job has bought in on windsurf, and I'm making the best of what they will provide.
My hope was to create a windsurf equivalent to the cursor-agent, with programatic invocation of new cascade conversations enabling:
Looking at Exafunction's repositories, they've recently made some serious changes to their frontends and broken support for many of their existing integrations. For example:
all of their source-available integrations (e.g. windsurf.el, windsurf.nvim, windsurf-vscode, etc.) are no longer compatible with the latest version of the LSP.
windsurf.vim and WindsurfVisualStudio have had the version of the LSP they use pinned to an old version.
the latest versions of the jetbrains plugin are no longer available in the public repo.
the webchat frontend that was previously bundled with the LSP appears to have been removed (this was the basis for using cascade with vim/emacs/visual studio)
As they have made these changes, they've made pretty radical changes to the boundary between the LSP and the extension. More of the tool-enablement and response parsing has been moved to the extension, and more dedicated batch processing procedures have been added to the LSP.
Some avenues of exploration
Unbundled App Code
Looks like the current version of the mac app has plenty of unpacked code in it, so we might have additional options for accessing unminified extension code.
The jetbrains plugin seems to integrate deeply with many features of the IDE,
it's likely that the classes are architeced/decoupled in a way that would allow
us to patch them or leverage them for our own purposes.
The relevant jars in the plugin classpath:
codeium-2.12.5-searchableOptions.jar
codeium-2.12.5.jar
And these are distributed along with 85 other jars as part of the plugin.zip,
suggesting that they are not bundled into an uber-jar.
Note
These are mostly my ramblings/notes while investigating for my own uses. I leave them here in hopes that they might be useful to others.
After some further evalautation of the protocols/frontend code, the LSP and the Extension
seem to be very tightly coupled, with functionality moving from the extension to the LSP sort of adhoc as a need for native/performance-orientated code is identified.
Given this, it's feeling like the protobuf definitions alone are sufficient for only a very limited set of intended use-cases.
Background
Bit of background on me: My Job has bought in on windsurf, and I'm making the best of what they will provide.
My hope was to create a windsurf equivalent to the
cursor-agent, with programatic invocation of new cascade conversations enabling:Protocol Changes
Looking at Exafunction's repositories, they've recently made some serious changes to their frontends and broken support for many of their existing integrations. For example:
windsurf.el,windsurf.nvim,windsurf-vscode, etc.) are no longer compatible with the latest version of the LSP.windsurf.vimandWindsurfVisualStudiohave had the version of the LSP they use pinned to an old version.As they have made these changes, they've made pretty radical changes to the boundary between the LSP and the extension. More of the tool-enablement and response parsing has been moved to the extension, and more dedicated batch processing procedures have been added to the LSP.
Some avenues of exploration
Unbundled App Code
Looks like the current version of the mac app has plenty of unpacked code in it, so we might have additional options for accessing unminified extension code.
/Applications/Windsurf.app/Contents/Resources/app/$ rg 'proto3' --only-matching --files-with-matchesJetbrains Plugin
The jetbrains plugin seems to integrate deeply with many features of the IDE,
it's likely that the classes are architeced/decoupled in a way that would allow
us to patch them or leverage them for our own purposes.
The relevant jars in the plugin classpath:
codeium-2.12.5-searchableOptions.jarcodeium-2.12.5.jarAnd these are distributed along with 85 other jars as part of the plugin.zip,
suggesting that they are not bundled into an uber-jar.