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

build(deps): Bump aether.version from 1.0.2.v20150114 to 1.1.0 in /maven-plugins #109

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions biz.aQute.openai.eclipse.provider/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="aQute.bnd.classpath.container"/>
<classpathentry kind="src" output="bin" path="src"/>
<classpathentry kind="src" output="bin_test" path="test">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
2 changes: 2 additions & 0 deletions biz.aQute.openai.eclipse.provider/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/bin/
/bin_test/
23 changes: 23 additions & 0 deletions biz.aQute.openai.eclipse.provider/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>biz.aQute.openai.eclipse.provider</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>bndtools.core.bndbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>bndtools.core.bndnature</nature>
</natures>
</projectDescription>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
eclipse.preferences.version=1
encoding//test/biz/aQute/openai/eclipse/provider/ExampleTest.java=UTF-8
encoding/<project>=UTF-8
encoding/bnd.bnd=UTF-8
encoding/launch.bndrun=UTF-8
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
60 changes: 60 additions & 0 deletions biz.aQute.openai.eclipse.provider/bnd.bnd
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
-buildpath: \
osgi.annotation;version='6.0.1',\
osgi.core;version='6.0',\
org.eclipse.core.runtime,\
org.eclipse.jface,\
org.eclipse.jface.text,\
org.eclipse.core.resources,\
org.eclipse.swt,\
org.eclipse.swt.cocoa.macosx.x86_64,\
org.eclipse.text,\
org.eclipse.ui,\
org.eclipse.ui.ide,\
org.eclipse.ui.browser,\
org.eclipse.ui.editors,\
org.eclipse.ui.workbench,\
org.eclipse.e4.ui.workbench,\
org.eclipse.core.jobs,\
org.eclipse.equinox.common,\
org.eclipse.equinox.registry,\
org.eclipse.jdt.core,\
org.eclipse.jdt.ui,\
org.eclipse.jdt.core.manipulation,\
org.eclipse.osgi,\
org.eclipse.core.commands,\
org.eclipse.team.core,\
org.eclipse.ui.forms,\
org.eclipse.ui.workbench.texteditor,\
org.eclipse.ui.views,\
org.eclipse.debug.core,\
org.eclipse.debug.ui,\
org.eclipse.jdt.launching,\
org.eclipse.jdt.debug,\
org.eclipse.jdt.debug.ui,\
org.eclipse.jdt.junit,\
org.eclipse.jdt.junit.core,\
org.eclipse.equinox.preferences,\
org.eclipse.help.base,\
org.eclipse.ltk.core.refactoring,\
org.eclipse.ltk.ui.refactoring,\
org.eclipse.core.filebuffers,\
org.eclipse.core.expressions,\
org.eclipse.core.filesystem,\
org.eclipse.core.contenttype,\
org.eclipse.search,\
org.osgi.dto,\
javax.inject,\
org.osgi.service.component.annotations,\
biz.aQute.bndlib,\
aQute.libg,\
org.eclipse.compare

Bundle-SymbolicName: ${p};singleton=true
-testpath: \
${junit},\
org.eclipse.swt.cocoa.macosx.x86_64;version=latest,\
org.eclipse.swt.cocoa.macosx.aarch64;version=latest

-privatepackage: biz.aQute.openai.eclipse.provider
-includeresource plugin.xml
-conditionalpackage: aQute.lib*
Binary file not shown.
1 change: 1 addition & 0 deletions biz.aQute.openai.eclipse.provider/generated/buildfiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/Users/aqute/Ws/bnd/biz.aQute.openai.eclipse.provider/generated/biz.aQute.openai.eclipse.provider.jar
15 changes: 15 additions & 0 deletions biz.aQute.openai.eclipse.provider/launch.bndrun
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#-runfw: org.apache.felix.framework;version=5
#-runee: JavaSE-1.8

-runprovidedcapabilities: ${native_capability}

-resolve.effective: active;skip:="osgi.service"

-runbundles:\
org.apache.felix.gogo.runtime,\
org.apache.felix.gogo.shell,\
org.apache.felix.gogo.command

-runrequires:\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)'
7 changes: 7 additions & 0 deletions biz.aQute.openai.eclipse.provider/plugin.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<plugin>

<extension point="org.eclipse.ui.views">
<view id="my.view.id" name="Your Secretary" class="biz.aQute.openai.eclipse.provider.SecretaryView" icon="icons/sample.gif" />
</extension>

</plugin>
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package biz.aQute.openai.eclipse.provider;

import java.util.function.Supplier;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IExecutableExtensionFactory;
import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer;

public class Facade implements IExecutableExtensionFactory {
static Supplier<IJavaCompletionProposalComputer> service;

@Override
public Object create() throws CoreException {
try {
synchronized (Facade.class) {
while (service == null)
Facade.class.wait();
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new CoreException(Status.CANCEL_STATUS);
}
return service.get();
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
package biz.aQute.openai.eclipse.provider;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpClient.Version;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext;
import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.text.contentassist.IContextInformation;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.osgi.dto.DTO;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

import aQute.bnd.build.Workspace;
import aQute.bnd.exceptions.Exceptions;
import aQute.lib.json.JSONCodec;

@Component
public class MyContentAssistProcessor {
@Reference
Workspace ws;
static JSONCodec codec = new JSONCodec();

public static class CompletionRq extends DTO {
public String model;
public String prompt;
public int max_tokens;
public int n;
public double temperature;
}

public static class Choice extends DTO {
public String text;
public int index;
public Object logprobs;
public String finish_reason;
}

public static class Usage extends DTO {
public int prompt_tokens;
public int completion_tokens;
public int total_tokens;
}

public static class CompletionRsp extends DTO {
public String id;
public String object;
public long created;
public String model;
public Choice[] choices;
public Usage[] usage;
}

class Assist implements IJavaCompletionProposalComputer {
Assist() {
System.out.println("constructor");
}

@Override
public void sessionStarted() {
System.out.println("session started");
}

@Override
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context,
IProgressMonitor monitor) {

try {
IDocument document = context.getDocument();
String string = document.get();
int n = context.getInvocationOffset();
string = string.substring(0, n) + "|" + string.substring(n);
System.out.println("complete " + string);

CompletionRq crq = new CompletionRq();
crq.max_tokens = 1000;
crq.model = "text-davinci-003";
crq.n = 3;
crq.temperature = 0.2d;

String s = codec.enc().put(crq).toString();


HttpClient client = HttpClient.newBuilder()
.version(Version.HTTP_1_1)
.connectTimeout(Duration.ofSeconds(20))
.build();

HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.openai.com/v1/completions"))
.header("Authorization", "Bearer " + "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")
.timeout(Duration.ofMinutes(2))
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofString(s))
.build();

CompletableFuture<HttpResponse<String>> f = client.sendAsync(request, BodyHandlers.ofString());

List<ICompletionProposal> l = new ArrayList<>();

ICompletionProposal c = new ICompletionProposal() {

@Override
public void apply(IDocument document) {
try {
HttpResponse<String> response = f.get();
if (response.statusCode() != 200) {
System.out.println("sorry, failure");
return;
}

String body = response.body();
System.out.println("body " + body);
CompletionRsp resp = codec.dec().from(body).get(CompletionRsp.class);
System.out.println("proposal " + resp.choices[0].text);
document.replace(context.getInvocationOffset(), context.getInvocationOffset(),
resp.choices[0].text);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub

}

@Override
public Point getSelection(IDocument document) {
return null;
}

@Override
public String getAdditionalProposalInfo() {
// TODO Auto-generated method stub
return "Huh?";
}

@Override
public String getDisplayString() {
return "OpenAI";
}

@Override
public Image getImage() {
return null;
}

@Override
public IContextInformation getContextInformation() {
return null;
}

};
l.add(c);

return l;
} catch (Exception e1) {
throw Exceptions.duck(e1);
}

}

@Override
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context,
IProgressMonitor monitor) {
System.out.println("context");
return Collections.emptyList();
}

@Override
public String getErrorMessage() {
return "Error messsage";
}

@Override
public void sessionEnded() {
System.out.println("session ended");

}
}

@Activate
public MyContentAssistProcessor() {
synchronized (Facade.class) {
Facade.service = Assist::new;
Facade.class.notifyAll();
}
}
}
Loading