Exafunction / codeium-chrome

Free, ultrafast code autocomplete for Chrome
https://www.codeium.com/
MIT License
114 stars 19 forks source link

Compatibility status #9

Open pqn opened 1 year ago

pqn commented 1 year ago

This issue is meant to track known issues with various well-known sites. Resolution will usually either require contacting the website to help support Codeium by changing their website build, or creating an alternative to the CodeMirror 5 and Monaco injection code which uses raw HTML/JS.

Monaco

The issue here is generally that the Monaco version being used is too old, or webpack is pruning the required inline completion features since they aren't being used by the website themselves.

JupyterLab 4/CodeMirror 6

CodeMirror 6

Ace

cnaples79 commented 1 year ago

Hello! is there any sort of update on any of the sites listed here, or will they be posted / checked off when they become compatible? In particular looking at CodeSandbox. I've tried adding the site to the Allow List, it actually causes the editor to not work so I'm assuming it is due to pruning / webpack. Thank you for any update!

pqn commented 1 year ago

We are working through CodeSandbox right now, stay tuned. Contributions or ideas are welcome for the other websites.

pqn commented 10 months ago

We're excited to announce a direct integration with CodeSandbox, no extension required! https://codesandbox.io/blog/introducing-ai-code-autocomplete-powered-by-codeium https://codeium.com/blog/codesandbox-codeium-partnership-announcement

jtpio commented 4 months ago

Hey folks,

JupyterLab 4/CodeMirror 6

JupyterLab 4.1 added an inline completer API: https://jupyterlab.readthedocs.io/en/latest/extension/extension_points.html#inline-completer

Using the inline completer API means that this functionality can be distributed as a regular JupyterLab extension, without having to inject code in a CodeMirror 6 editor.

I spent some time experimenting with this and put up this first prototype: https://github.com/jtpio/jupyterlab-codeium. It's still very early, but can be tested in the browser directly with JupyterLite: http://jtpio.github.io/jupyterlab-codeium/ For now the auth flow involves a few manual steps and requires providing an API key directly, but could likely be improved to follow the same flow as for other Codeium integrations (https://github.com/jtpio/jupyterlab-codeium/issues/3).

jupyterlab-codeium-demo.webm

Let me know what you think and if there is interest in having such extension!

pqn commented 3 months ago

@jtpio this seems great! Let us know how we can support you on this.

jtpio commented 3 months ago

Thanks @pqn!

A few questions:

matrs commented 3 months ago

Hey Exafunction, I think plenty of people is using jupyterlab 4, it was released almost one year ago.

pqn commented 3 months ago

@jtpio:

Is there a documented way for implementing the auth flow that would redirect the user to the Codeium website to retrieve their API key automatically? (logged in https://github.com/jtpio/jupyterlab-codeium/issues/3)

  1. The extension opens a URL in the user's browser to get a token: https://github.com/Exafunction/codeium.vim/blob/590d6eabc447088388a19459e2cb558fa1fd0c8c/autoload/codeium/command.vim#L59-L61 We can create a new specific page that instead of displaying the token, triggers a URI handler that directly receives the token, if that's supported.
  2. The extension then issues a request to another URL to convert it to the API key/account name: https://github.com/Exafunction/codeium.vim/blob/590d6eabc447088388a19459e2cb558fa1fd0c8c/autoload/codeium/command.vim#L87-L122

For demo purposes on http://jtpio.github.io/jupyterlab-codeium, would it be fine to use the same API key as the one used for the Codeium Playground? So folks can try the extension more easily without having to find and put their own API key.

I can generate you a different one to use there and send it over email, but feel free to use the same one for now.

Would you be interested in having this repo in the https://github.com/Exafunction GitHub organization (and potentially helping developing it), or would you prefer having it somewhere else?

Yes, we can move it into our organization and support development. I will ask around within the company to see who we will assign to the active development and maintenance.

kevinzlu commented 3 months ago

@jtpio

FYI, I have forked your repo to https://github.com/Exafunction/codeium.jupyter, we will be doing further development on the extension there.