mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-11 04:50:31 +00:00
fix: settings state on server failure
This commit is contained in:
parent
0e61bee0f8
commit
46b88a4952
3 changed files with 20 additions and 13 deletions
|
|
@ -10,14 +10,12 @@ import com.intellij.execution.process.ProcessAdapter;
|
|||
import com.intellij.execution.process.ProcessEvent;
|
||||
import com.intellij.execution.process.ProcessListener;
|
||||
import com.intellij.execution.process.ProcessOutputType;
|
||||
import com.intellij.icons.AllIcons.Actions;
|
||||
import com.intellij.notification.NotificationType;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.Service;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import ee.carlrobert.codegpt.CodeGPTBundle;
|
||||
import ee.carlrobert.codegpt.CodeGPTPlugin;
|
||||
import ee.carlrobert.codegpt.settings.service.ServerProgressPanel;
|
||||
|
|
@ -26,7 +24,6 @@ import ee.carlrobert.codegpt.util.OverlayUtil;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import javax.swing.SwingConstants;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
@ -41,14 +38,15 @@ public final class LlamaServerAgent implements Disposable {
|
|||
public void startAgent(
|
||||
LlamaServerStartupParams params,
|
||||
ServerProgressPanel serverProgressPanel,
|
||||
Runnable onSuccess) {
|
||||
Runnable onSuccess,
|
||||
Runnable onServerTerminated) {
|
||||
ApplicationManager.getApplication().invokeLater(() -> {
|
||||
try {
|
||||
serverProgressPanel.updateText(
|
||||
CodeGPTBundle.get("llamaServerAgent.buildingProject.description"));
|
||||
makeProcessHandler = new OSProcessHandler(getMakeCommandLinde());
|
||||
makeProcessHandler.addProcessListener(
|
||||
getMakeProcessListener(params, serverProgressPanel, onSuccess));
|
||||
getMakeProcessListener(params, serverProgressPanel, onSuccess, onServerTerminated));
|
||||
makeProcessHandler.startNotify();
|
||||
} catch (ExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
@ -71,7 +69,8 @@ public final class LlamaServerAgent implements Disposable {
|
|||
private ProcessListener getMakeProcessListener(
|
||||
LlamaServerStartupParams params,
|
||||
ServerProgressPanel serverProgressPanel,
|
||||
Runnable onSuccess) {
|
||||
Runnable onSuccess,
|
||||
Runnable onServerTerminated) {
|
||||
LOG.info("Building llama project");
|
||||
|
||||
return new ProcessAdapter() {
|
||||
|
|
@ -89,7 +88,7 @@ public final class LlamaServerAgent implements Disposable {
|
|||
CodeGPTBundle.get("llamaServerAgent.serverBootup.description"));
|
||||
startServerProcessHandler = new OSProcessHandler.Silent(getServerCommandLine(params));
|
||||
startServerProcessHandler.addProcessListener(
|
||||
getProcessListener(params.getPort(), serverProgressPanel, onSuccess));
|
||||
getProcessListener(params.getPort(), onSuccess, onServerTerminated));
|
||||
startServerProcessHandler.startNotify();
|
||||
} catch (ExecutionException ex) {
|
||||
LOG.error("Unable to start llama server", ex);
|
||||
|
|
@ -101,8 +100,8 @@ public final class LlamaServerAgent implements Disposable {
|
|||
|
||||
private ProcessListener getProcessListener(
|
||||
int port,
|
||||
ServerProgressPanel serverProgressPanel,
|
||||
Runnable onSuccess) {
|
||||
Runnable onSuccess,
|
||||
Runnable onServerTerminated) {
|
||||
return new ProcessAdapter() {
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
private final List<String> errorLines = new CopyOnWriteArrayList<>();
|
||||
|
|
@ -117,10 +116,7 @@ public final class LlamaServerAgent implements Disposable {
|
|||
LOG.error(error);
|
||||
}
|
||||
|
||||
serverProgressPanel.displayComponent(new JBLabel(
|
||||
"Server terminated",
|
||||
Actions.Cancel,
|
||||
SwingConstants.LEADING));
|
||||
onServerTerminated.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -194,6 +194,16 @@ public class LlamaServiceSelectionForm extends JPanel {
|
|||
CodeGPTBundle.get("settingsConfigurable.service.llama.progress.serverRunning"),
|
||||
Actions.Checked,
|
||||
SwingConstants.LEADING));
|
||||
},
|
||||
() -> {
|
||||
setFormEnabled(true);
|
||||
serverButton.setText(
|
||||
CodeGPTBundle.get("settingsConfigurable.service.llama.startServer.label"));
|
||||
serverButton.setIcon(Actions.Execute);
|
||||
serverProgressPanel.displayComponent(new JBLabel(
|
||||
CodeGPTBundle.get("settingsConfigurable.service.llama.progress.serverTerminated"),
|
||||
Actions.Cancel,
|
||||
SwingConstants.LEADING));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ settingsConfigurable.service.llama.port.label=Port:
|
|||
settingsConfigurable.service.llama.startServer.label=Start server
|
||||
settingsConfigurable.service.llama.stopServer.label=Stop server
|
||||
settingsConfigurable.service.llama.progress.serverRunning=Server running
|
||||
settingsConfigurable.service.llama.progress.serverTerminated=Server terminated
|
||||
settingsConfigurable.service.llama.progress.stoppingServer=Stopping a server...
|
||||
settingsConfigurable.service.llama.progress.startingServer=Starting a server...
|
||||
settingsConfigurable.service.llama.progress.downloadingModel.title=Downloading Model
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue