Skip to content
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

Compatibility status #9

Open
1 of 12 tasks
pqn opened this issue May 8, 2023 · 10 comments
Open
1 of 12 tasks

Compatibility status #9

pqn opened this issue May 8, 2023 · 10 comments

Comments

@pqn
Copy link
Contributor

pqn commented May 8, 2023

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

  • JupyterLab
  • Kaggle

CodeMirror 6

  • Replit: There's a potential workaround if we can set up the Replit extension to use the Monaco editor. Another path is to try to imitate the Ghostwriter API.

Ace

  • Dune Analytics
  • Online GDB
  • Dillinger
@cnaples79
Copy link

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
Copy link
Contributor Author

pqn commented Sep 27, 2023

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

@pqn
Copy link
Contributor Author

pqn commented Nov 22, 2023

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
Copy link

jtpio commented Jun 4, 2024

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 (jtpio/jupyterlab-codeium#3).

jupyterlab-codeium-demo.webm

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

@pqn
Copy link
Contributor Author

pqn commented Jun 7, 2024

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

@jtpio
Copy link

jtpio commented Jun 8, 2024

Thanks @pqn!

A few questions:

@matrs
Copy link

matrs commented Jun 10, 2024

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

@pqn
Copy link
Contributor Author

pqn commented Jun 13, 2024

@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 jtpio/jupyterlab-codeium#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
Copy link
Contributor

kevinzlu commented Jul 1, 2024

@jtpio

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

@cnaples79
Copy link

@pqn

Hey there!

Will editors like vscode.dev or Chatgpt Canvas work if I white-list them and they use Monaco or code mirror?

Or does support for each individual online IDE need to be added directly to the extension?

I tried adding Chatgpt.com with its new Canvas editor but it doesn't seem to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants