Skip to content

Commit 7f8bce2

Browse files
authored
Merge pull request #164 from copilot-community-sdk/copilot/update-documentation-and-samples
Sync docs and samples with breaking session permission API changes
2 parents d78db83 + 2a06a6c commit 7f8bce2

File tree

15 files changed

+209
-64
lines changed

15 files changed

+209
-64
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class CopilotSDK {
5959

6060
// Create a session
6161
var session = client.createSession(
62-
new SessionConfig().setModel("claude-sonnet-4.5")).get();
62+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("claude-sonnet-4.5")).get();
6363

6464
// Handle assistant message events
6565
session.on(AssistantMessageEvent.class, msg -> {

jbang-example.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static void main(String[] args) throws Exception {
1515

1616
// Create a session
1717
var session = client.createSession(
18-
new SessionConfig().setModel("claude-sonnet-4.5")).get();
18+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("claude-sonnet-4.5")).get();
1919

2020
// Handle assistant message events
2121
session.on(AssistantMessageEvent.class, msg -> {

src/site/markdown/advanced.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ var lookupTool = ToolDefinition.create(
6666
);
6767

6868
var session = client.createSession(
69-
new SessionConfig()
69+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
7070
.setTools(List.of(lookupTool))
7171
).get();
7272
```
@@ -85,7 +85,7 @@ Use `APPEND` mode to add constraints while keeping default guardrails:
8585

8686
```java
8787
var session = client.createSession(
88-
new SessionConfig()
88+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
8989
.setSystemMessage(new SystemMessageConfig()
9090
.setMode(SystemMessageMode.APPEND)
9191
.setContent("""
@@ -103,7 +103,7 @@ Use `REPLACE` mode for complete control (removes default guardrails):
103103

104104
```java
105105
var session = client.createSession(
106-
new SessionConfig()
106+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
107107
.setSystemMessage(new SystemMessageConfig()
108108
.setMode(SystemMessageMode.REPLACE)
109109
.setContent("You are a helpful coding assistant."))
@@ -164,7 +164,7 @@ Supported providers:
164164

165165
```java
166166
var session = client.createSession(
167-
new SessionConfig()
167+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
168168
.setProvider(new ProviderConfig()
169169
.setType("openai")
170170
.setBaseUrl("https://api.openai.com/v1")
@@ -178,7 +178,7 @@ Some providers require bearer token authentication instead of API keys:
178178

179179
```java
180180
var session = client.createSession(
181-
new SessionConfig()
181+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
182182
.setProvider(new ProviderConfig()
183183
.setType("openai")
184184
.setBaseUrl("https://my-custom-endpoint.example.com/v1")
@@ -194,7 +194,7 @@ var session = client.createSession(
194194

195195
```java
196196
var session = client.createSession(
197-
new SessionConfig()
197+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
198198
.setProvider(new ProviderConfig()
199199
.setType("openai")
200200
.setBaseUrl("http://localhost:<PORT>/v1"))
@@ -248,7 +248,7 @@ When enabled (default), the session automatically compacts older messages as the
248248

249249
```java
250250
var session = client.createSession(
251-
new SessionConfig()
251+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
252252
.setInfiniteSessions(new InfiniteSessionConfig()
253253
.setEnabled(true)
254254
.setBackgroundCompactionThreshold(0.80) // Start compacting at 80%
@@ -295,7 +295,7 @@ Map<String, Object> server = Map.of(
295295
);
296296

297297
var session = client.createSession(
298-
new SessionConfig()
298+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
299299
.setMcpServers(Map.of("filesystem", server))
300300
).get();
301301
```
@@ -317,7 +317,7 @@ var reviewer = new CustomAgentConfig()
317317
.setTools(List.of("read_file", "search_code"));
318318

319319
var session = client.createSession(
320-
new SessionConfig()
320+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
321321
.setCustomAgents(List.of(reviewer))
322322
).get();
323323

@@ -355,7 +355,7 @@ var agents = List.of(
355355
);
356356

357357
var session = client.createSession(
358-
new SessionConfig().setCustomAgents(agents)
358+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setCustomAgents(agents)
359359
).get();
360360
```
361361

@@ -373,7 +373,7 @@ Skills are loaded from `SKILL.md` files in subdirectories of the specified skill
373373

374374
```java
375375
var session = client.createSession(
376-
new SessionConfig()
376+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
377377
.setSkillDirectories(List.of("/path/to/skills"))
378378
).get();
379379
```
@@ -397,7 +397,7 @@ Disable specific skills by name:
397397

398398
```java
399399
var session = client.createSession(
400-
new SessionConfig()
400+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
401401
.setSkillDirectories(List.of("/path/to/skills"))
402402
.setDisabledSkills(List.of("my-skill"))
403403
).get();
@@ -411,7 +411,7 @@ Use a custom configuration directory for session settings:
411411

412412
```java
413413
var session = client.createSession(
414-
new SessionConfig()
414+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
415415
.setConfigDir("/path/to/custom/config")
416416
).get();
417417
```
@@ -426,7 +426,7 @@ Handle user input requests when the AI uses the `ask_user` tool to gather inform
426426

427427
```java
428428
var session = client.createSession(
429-
new SessionConfig()
429+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
430430
.setOnUserInputRequest((request, invocation) -> {
431431
System.out.println("Agent asks: " + request.getQuestion());
432432

@@ -471,7 +471,7 @@ Approve or deny permission requests from the AI.
471471

472472
```java
473473
var session = client.createSession(
474-
new SessionConfig()
474+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
475475
.setOnPermissionRequest((request, invocation) -> {
476476
// Inspect request and approve/deny
477477
var result = new PermissionRequestResult();
@@ -499,7 +499,7 @@ var hooks = new SessionHooks()
499499
});
500500

501501
var session = client.createSession(
502-
new SessionConfig().setHooks(hooks)
502+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setHooks(hooks)
503503
).get();
504504
```
505505

src/site/markdown/cookbook/error-handling.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public class BasicErrorHandling {
4141
client.start().get();
4242

4343
var session = client.createSession(
44-
new SessionConfig().setModel("gpt-5")).get();
44+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get();
4545

4646
session.on(AssistantMessageEvent.class, msg -> {
4747
System.out.println(msg.getData().getContent());
@@ -206,7 +206,7 @@ public class TryWithResources {
206206
client.start().get();
207207

208208
try (var session = client.createSession(
209-
new SessionConfig().setModel("gpt-5")).get()) {
209+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get()) {
210210

211211
session.on(AssistantMessageEvent.class, msg -> {
212212
System.out.println(msg.getData().getContent());
@@ -251,7 +251,7 @@ public class ToolErrorHandling {
251251
client.start().get();
252252

253253
var session = client.createSession(
254-
new SessionConfig().setTools(List.of(errorTool))).get();
254+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setTools(List.of(errorTool))).get();
255255

256256
session.on(AssistantMessageEvent.class, msg -> {
257257
System.out.println(msg.getData().getContent());

src/site/markdown/cookbook/managing-local-files.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class ManagingLocalFiles {
4848

4949
// Create session
5050
var session = client.createSession(
51-
new SessionConfig().setModel("gpt-5")).get();
51+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get();
5252

5353
// Set up event handlers
5454
var done = new CountDownLatch(1);
@@ -168,7 +168,7 @@ public class InteractiveFileOrganizer {
168168
client.start().get();
169169

170170
var session = client.createSession(
171-
new SessionConfig().setModel("gpt-5")).get();
171+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get();
172172

173173
session.on(AssistantMessageEvent.class, msg ->
174174
System.out.println("\nCopilot: " + msg.getData().getContent())

src/site/markdown/cookbook/multiple-sessions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ public class MultipleSessions {
4242

4343
// Create multiple independent sessions
4444
var session1 = client.createSession(
45-
new SessionConfig().setModel("gpt-5")).get();
45+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get();
4646
var session2 = client.createSession(
47-
new SessionConfig().setModel("gpt-5")).get();
47+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")).get();
4848
var session3 = client.createSession(
49-
new SessionConfig().setModel("claude-sonnet-4.5")).get();
49+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("claude-sonnet-4.5")).get();
5050

5151
// Set up event handlers for each session
5252
session1.on(AssistantMessageEvent.class, msg ->
@@ -90,7 +90,7 @@ Use custom IDs for easier tracking:
9090

9191
```java
9292
var session = client.createSession(
93-
new SessionConfig()
93+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
9494
.setSessionId("user-123-chat")
9595
.setModel("gpt-5")
9696
).get();
@@ -129,9 +129,9 @@ public class ParallelSessions {
129129
public static void runParallelSessions(CopilotClient client) throws Exception {
130130
// Create sessions in parallel
131131
var sessionFutures = List.of(
132-
client.createSession(new SessionConfig().setModel("gpt-5")),
133-
client.createSession(new SessionConfig().setModel("gpt-5")),
134-
client.createSession(new SessionConfig().setModel("claude-sonnet-4.5"))
132+
client.createSession(new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")),
133+
client.createSession(new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("gpt-5")),
134+
client.createSession(new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setModel("claude-sonnet-4.5"))
135135
);
136136

137137
// Wait for all sessions to be created

src/site/markdown/cookbook/persisting-sessions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class PersistingSessions {
4242

4343
// Create session with a memorable ID
4444
var session = client.createSession(
45-
new SessionConfig()
45+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
4646
.setSessionId("user-123-conversation")
4747
.setModel("gpt-5")
4848
).get();
@@ -73,7 +73,7 @@ public class ResumeSession {
7373
client.start().get();
7474

7575
// Resume the previous session
76-
var session = client.resumeSession("user-123-conversation").get();
76+
var session = client.resumeSession("user-123-conversation", new ResumeSessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
7777

7878
session.on(AssistantMessageEvent.class, msg ->
7979
System.out.println(msg.getData().getContent())
@@ -135,7 +135,7 @@ public class SessionHistory {
135135
try (var client = new CopilotClient()) {
136136
client.start().get();
137137

138-
var session = client.resumeSession("user-123-conversation").get();
138+
var session = client.resumeSession("user-123-conversation", new ResumeSessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
139139

140140
var messages = session.getMessages().get();
141141
for (var event : messages) {
@@ -184,7 +184,7 @@ public class SessionManager {
184184
System.out.print("Enter session ID: ");
185185
String sessionId = scanner.nextLine();
186186
session = client.createSession(
187-
new SessionConfig()
187+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
188188
.setSessionId(sessionId)
189189
.setModel("gpt-5")
190190
).get();
@@ -195,7 +195,7 @@ public class SessionManager {
195195
System.out.print("Enter session ID to resume: ");
196196
String resumeId = scanner.nextLine();
197197
try {
198-
session = client.resumeSession(resumeId).get();
198+
session = client.resumeSession(resumeId, new ResumeSessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
199199
System.out.println("Resumed session: " + resumeId);
200200
} catch (Exception ex) {
201201
System.err.println("Failed to resume session: " + ex.getMessage());
@@ -264,13 +264,13 @@ public class CheckSession {
264264

265265
if (sessionExists(client, sessionId)) {
266266
System.out.println("Session exists, resuming...");
267-
var session = client.resumeSession(sessionId).get();
267+
var session = client.resumeSession(sessionId, new ResumeSessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)).get();
268268
// ... use session ...
269269
session.close();
270270
} else {
271271
System.out.println("Session doesn't exist, creating new one...");
272272
var session = client.createSession(
273-
new SessionConfig().setSessionId(sessionId).setModel("gpt-5")
273+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL).setSessionId(sessionId).setModel("gpt-5")
274274
).get();
275275
// ... use session ...
276276
session.close();

src/site/markdown/cookbook/pr-visualization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public class PRVisualization {
9494
""", owner, repoName, cwd);
9595

9696
var session = client.createSession(
97-
new SessionConfig()
97+
new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
9898
.setModel("gpt-5")
9999
.setSystemMessage(new SystemMessageConfig().setContent(systemMessage))
100100
).get();

0 commit comments

Comments
 (0)