Skip to content

Commit 7eff855

Browse files
committed
Refactor example class: rename to CopilotSDK and enhance message handling with usage metrics
1 parent d8101a4 commit 7eff855

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

README.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,34 @@ import com.github.copilot.sdk.events.*;
4949
import com.github.copilot.sdk.json.*;
5050
import java.util.concurrent.CompletableFuture;
5151

52-
public class Example {
52+
public class CopilotSDK {
5353
public static void main(String[] args) throws Exception {
54+
// Create and start client
5455
try (var client = new CopilotClient()) {
5556
client.start().get();
56-
57+
58+
// Create a session
5759
var session = client.createSession(
58-
new SessionConfig().setModel("claude-sonnet-4.5")
59-
).get();
60+
new SessionConfig().setModel("claude-sonnet-4.5")).get();
6061

61-
var done = new CompletableFuture<Void>();
62+
// Handle assistant message events
6263
session.on(AssistantMessageEvent.class, msg -> {
6364
System.out.println(msg.getData().getContent());
6465
});
65-
session.on(SessionIdleEvent.class, idle -> done.complete(null));
6666

67-
session.send(new MessageOptions().setPrompt("What is 2+2?")).get();
68-
done.get();
67+
// Handle session usage info events
68+
session.on(SessionUsageInfoEvent.class, usage -> {
69+
var data = usage.getData();
70+
System.out.println("\n--- Usage Metrics ---");
71+
System.out.println("Current tokens: " + (int) data.getCurrentTokens());
72+
System.out.println("Token limit: " + (int) data.getTokenLimit());
73+
System.out.println("Messages count: " + (int) data.getMessagesLength());
74+
});
75+
76+
// Send a message
77+
var completable = session.sendAndWait(new MessageOptions().setPrompt("What is 2+2?"));
78+
// and wait for completion
79+
completable.get();
6980
}
7081
}
7182
}

0 commit comments

Comments
 (0)