|
1 | 1 | package io.quarkus.agroal.deployment.devui;
|
2 | 2 |
|
| 3 | +import java.util.Optional; |
| 4 | + |
3 | 5 | import io.quarkus.agroal.runtime.DataSourcesJdbcBuildTimeConfig;
|
4 | 6 | import io.quarkus.agroal.runtime.dev.ui.DatabaseInspector;
|
| 7 | +import io.quarkus.assistant.deployment.Assistant; |
| 8 | +import io.quarkus.assistant.deployment.AssistantBuildItem; |
5 | 9 | import io.quarkus.deployment.IsLocalDevelopment;
|
6 | 10 | import io.quarkus.deployment.annotations.BuildProducer;
|
7 | 11 | import io.quarkus.deployment.annotations.BuildStep;
|
8 | 12 | import io.quarkus.deployment.annotations.BuildSteps;
|
9 | 13 | import io.quarkus.deployment.builditem.LaunchModeBuildItem;
|
10 | 14 | import io.quarkus.dev.spi.DevModeType;
|
11 | 15 | import io.quarkus.devui.spi.JsonRPCProvidersBuildItem;
|
| 16 | +import io.quarkus.devui.spi.buildtime.BuildTimeActionBuildItem; |
12 | 17 | import io.quarkus.devui.spi.page.CardPageBuildItem;
|
13 | 18 | import io.quarkus.devui.spi.page.Page;
|
14 | 19 |
|
@@ -37,8 +42,35 @@ void devUI(DataSourcesJdbcBuildTimeConfig config,
|
37 | 42 | }
|
38 | 43 | }
|
39 | 44 |
|
| 45 | + @BuildStep |
| 46 | + void createBuildTimeActions(Optional<AssistantBuildItem> assistantBuildItem, |
| 47 | + BuildProducer<BuildTimeActionBuildItem> buildTimeActionProducer) { |
| 48 | + |
| 49 | + if (assistantBuildItem.isPresent()) { |
| 50 | + BuildTimeActionBuildItem bta = new BuildTimeActionBuildItem(); |
| 51 | + |
| 52 | + Assistant assistant = assistantBuildItem.get().getAssistant(); |
| 53 | + |
| 54 | + // TODO: If currentInsertScript is empty, maybe send tables schema |
| 55 | + |
| 56 | + bta.addAction("generateMoreData", params -> { |
| 57 | + return assistant.assist(USER_MESSAGE, params); |
| 58 | + }); |
| 59 | + |
| 60 | + buildTimeActionProducer.produce(bta); |
| 61 | + } |
| 62 | + } |
| 63 | + |
40 | 64 | @BuildStep
|
41 | 65 | JsonRPCProvidersBuildItem createJsonRPCService() {
|
42 | 66 | return new JsonRPCProvidersBuildItem(DatabaseInspector.class);
|
43 | 67 | }
|
| 68 | + |
| 69 | + private static final String USER_MESSAGE = """ |
| 70 | + Given the provided sql script: |
| 71 | + {{currentInsertScript}} |
| 72 | + Can you add 10 more inserts into the script and return the result |
| 73 | + (including the provided entries, so update the script) |
| 74 | + Return the result in a field called `script`. |
| 75 | + """; |
44 | 76 | }
|
0 commit comments