Skip to content

Commit 0b28003

Browse files
brunoborgesCopilot
andauthored
Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 4d6855e commit 0b28003

File tree

7 files changed

+54
-41
lines changed

7 files changed

+54
-41
lines changed

cookbook/copilot-sdk/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ go run <filename>.go
9797
### Java
9898

9999
```bash
100-
cd java/cookbook/recipe
100+
cd java/recipe
101101
jbang <FileName>.java
102102
```
103103

cookbook/copilot-sdk/java/accessibility-report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ npx --version
2727
## Usage
2828
2929
```bash
30-
jbang AccessibilityReport.java
30+
jbang recipe/AccessibilityReport.java
3131
# Enter a URL when prompted
3232
```
3333

cookbook/copilot-sdk/java/multiple-sessions.md

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Manage multiple independent conversations simultaneously.
55
> **Runnable example:** [recipe/MultipleSessions.java](recipe/MultipleSessions.java)
66
>
77
> ```bash
8-
> jbang MultipleSessions.java
8+
> jbang recipe/MultipleSessions.java
99
> ```
1010
1111
## Example scenario
@@ -21,35 +21,39 @@ You need to run multiple conversations in parallel, each with its own context an
2121
import com.github.copilot.sdk.*;
2222
import com.github.copilot.sdk.json.*;
2323
24-
var client = new CopilotClient();
25-
client.start().get();
26-
27-
// Create multiple independent sessions
28-
var session1 = client.createSession(new SessionConfig()
29-
.setModel("gpt-5")
30-
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
31-
var session2 = client.createSession(new SessionConfig()
32-
.setModel("gpt-5")
33-
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
34-
var session3 = client.createSession(new SessionConfig()
35-
.setModel("claude-sonnet-4.5")
36-
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
37-
38-
// Each session maintains its own conversation history
39-
session1.sendAndWait(new MessageOptions().setPrompt("You are helping with a Python project")).get();
40-
session2.sendAndWait(new MessageOptions().setPrompt("You are helping with a TypeScript project")).get();
41-
session3.sendAndWait(new MessageOptions().setPrompt("You are helping with a Go project")).get();
42-
43-
// Follow-up messages stay in their respective contexts
44-
session1.sendAndWait(new MessageOptions().setPrompt("How do I create a virtual environment?")).get();
45-
session2.sendAndWait(new MessageOptions().setPrompt("How do I set up tsconfig?")).get();
46-
session3.sendAndWait(new MessageOptions().setPrompt("How do I initialize a module?")).get();
47-
48-
// Clean up all sessions
49-
session1.destroy().get();
50-
session2.destroy().get();
51-
session3.destroy().get();
52-
client.stop().get();
24+
public class MultipleSessions {
25+
public static void main(String[] args) throws Exception {
26+
var client = new CopilotClient();
27+
client.start().get();
28+
29+
// Create multiple independent sessions
30+
var session1 = client.createSession(new SessionConfig()
31+
.setModel("gpt-5")
32+
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
33+
var session2 = client.createSession(new SessionConfig()
34+
.setModel("gpt-5")
35+
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
36+
var session3 = client.createSession(new SessionConfig()
37+
.setModel("claude-sonnet-4.5")
38+
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
39+
40+
// Each session maintains its own conversation history
41+
session1.sendAndWait(new MessageOptions().setPrompt("You are helping with a Python project")).get();
42+
session2.sendAndWait(new MessageOptions().setPrompt("You are helping with a TypeScript project")).get();
43+
session3.sendAndWait(new MessageOptions().setPrompt("You are helping with a Go project")).get();
44+
45+
// Follow-up messages stay in their respective contexts
46+
session1.sendAndWait(new MessageOptions().setPrompt("How do I create a virtual environment?")).get();
47+
session2.sendAndWait(new MessageOptions().setPrompt("How do I set up tsconfig?")).get();
48+
session3.sendAndWait(new MessageOptions().setPrompt("How do I initialize a module?")).get();
49+
50+
// Clean up all sessions
51+
session1.destroy().get();
52+
session2.destroy().get();
53+
session3.destroy().get();
54+
client.stop().get();
55+
}
56+
}
5357
```
5458
5559
## Custom session IDs

cookbook/copilot-sdk/java/recipe/AccessibilityReport.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ public static void main(String[] args) throws Exception {
2222
var reader = new BufferedReader(new InputStreamReader(System.in));
2323

2424
System.out.print("Enter URL to analyze: ");
25-
String url = reader.readLine().trim();
25+
String urlLine = reader.readLine();
26+
if (urlLine == null) {
27+
System.out.println("No URL provided. Exiting.");
28+
return;
29+
}
30+
String url = urlLine.trim();
2631
if (url.isEmpty()) {
2732
System.out.println("No URL provided. Exiting.");
2833
return;

cookbook/copilot-sdk/java/recipe/ErrorHandling.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,14 @@ public static void main(String[] args) {
2424

2525
session.close();
2626
} catch (ExecutionException ex) {
27-
System.err.println("Error: " + ex.getCause().getMessage());
28-
ex.getCause().printStackTrace();
27+
Throwable cause = ex.getCause();
28+
Throwable error = cause != null ? cause : ex;
29+
System.err.println("Error: " + error.getMessage());
30+
error.printStackTrace();
31+
} catch (InterruptedException ex) {
32+
Thread.currentThread().interrupt();
33+
System.err.println("Interrupted: " + ex.getMessage());
34+
ex.printStackTrace();
2935
} catch (Exception ex) {
3036
System.err.println("Error: " + ex.getMessage());
3137
ex.printStackTrace();

cookbook/copilot-sdk/java/recipe/MultipleSessions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public static void main(String[] args) throws Exception {
2525
var s1 = f1.get(); var s2 = f2.get(); var s3 = f3.get();
2626

2727
// Send a message to each session
28-
System.out.println("S1: " + s1.sendAndWait(new MessageOptions().setPrompt("Explain Java records")).get().getMessage());
29-
System.out.println("S2: " + s2.sendAndWait(new MessageOptions().setPrompt("Explain sealed classes")).get().getMessage());
30-
System.out.println("S3: " + s3.sendAndWait(new MessageOptions().setPrompt("Explain pattern matching")).get().getMessage());
28+
System.out.println("S1: " + s1.sendAndWait(new MessageOptions().setPrompt("Explain Java records")).get().getData().content());
29+
System.out.println("S2: " + s2.sendAndWait(new MessageOptions().setPrompt("Explain sealed classes")).get().getData().content());
30+
System.out.println("S3: " + s3.sendAndWait(new MessageOptions().setPrompt("Explain pattern matching")).get().getData().content());
3131

3232
// Clean up
3333
s1.destroy().get(); s2.destroy().get(); s3.destroy().get();

cookbook/copilot-sdk/java/recipe/README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ jbang PRVisualization.java github/copilot-sdk
5454
jbang ManagingLocalFiles.java /path/to/your/folder
5555
```
5656

57-
**Ralph Loop in planning mode:**
57+
**Ralph Loop with a prompt file:**
5858

59-
```bash
60-
jbang RalphLoop.java plan 5
6159
```
6260
6361
## Why JBang?

0 commit comments

Comments
 (0)