|
19 | 19 | import org.junit.jupiter.api.Test; |
20 | 20 |
|
21 | 21 | import com.github.copilot.sdk.json.MessageOptions; |
| 22 | +import com.github.copilot.sdk.json.PermissionHandler; |
22 | 23 | import com.github.copilot.sdk.json.PostToolUseHookInput; |
23 | 24 | import com.github.copilot.sdk.json.PreToolUseHookInput; |
24 | 25 | import com.github.copilot.sdk.json.PreToolUseHookOutput; |
@@ -67,11 +68,12 @@ void testInvokePreToolUseHookWhenModelRunsATool() throws Exception { |
67 | 68 | var preToolUseInputs = new ArrayList<PreToolUseHookInput>(); |
68 | 69 | final String[] sessionIdHolder = new String[1]; |
69 | 70 |
|
70 | | - var config = new SessionConfig().setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
71 | | - preToolUseInputs.add(input); |
72 | | - assertEquals(sessionIdHolder[0], invocation.getSessionId()); |
73 | | - return CompletableFuture.completedFuture(PreToolUseHookOutput.allow()); |
74 | | - })); |
| 71 | + var config = new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL) |
| 72 | + .setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
| 73 | + preToolUseInputs.add(input); |
| 74 | + assertEquals(sessionIdHolder[0], invocation.getSessionId()); |
| 75 | + return CompletableFuture.completedFuture(PreToolUseHookOutput.allow()); |
| 76 | + })); |
75 | 77 |
|
76 | 78 | try (CopilotClient client = ctx.createClient()) { |
77 | 79 | CopilotSession session = client.createSession(config).get(); |
@@ -106,11 +108,12 @@ void testInvokePostToolUseHookAfterModelRunsATool() throws Exception { |
106 | 108 | var postToolUseInputs = new ArrayList<PostToolUseHookInput>(); |
107 | 109 | final String[] sessionIdHolder = new String[1]; |
108 | 110 |
|
109 | | - var config = new SessionConfig().setHooks(new SessionHooks().setOnPostToolUse((input, invocation) -> { |
110 | | - postToolUseInputs.add(input); |
111 | | - assertEquals(sessionIdHolder[0], invocation.getSessionId()); |
112 | | - return CompletableFuture.completedFuture(null); |
113 | | - })); |
| 111 | + var config = new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL) |
| 112 | + .setHooks(new SessionHooks().setOnPostToolUse((input, invocation) -> { |
| 113 | + postToolUseInputs.add(input); |
| 114 | + assertEquals(sessionIdHolder[0], invocation.getSessionId()); |
| 115 | + return CompletableFuture.completedFuture(null); |
| 116 | + })); |
114 | 117 |
|
115 | 118 | try (CopilotClient client = ctx.createClient()) { |
116 | 119 | CopilotSession session = client.createSession(config).get(); |
@@ -147,13 +150,14 @@ void testInvokeBothHooksForSingleToolCall() throws Exception { |
147 | 150 | var preToolUseInputs = new ArrayList<PreToolUseHookInput>(); |
148 | 151 | var postToolUseInputs = new ArrayList<PostToolUseHookInput>(); |
149 | 152 |
|
150 | | - var config = new SessionConfig().setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
151 | | - preToolUseInputs.add(input); |
152 | | - return CompletableFuture.completedFuture(PreToolUseHookOutput.allow()); |
153 | | - }).setOnPostToolUse((input, invocation) -> { |
154 | | - postToolUseInputs.add(input); |
155 | | - return CompletableFuture.completedFuture(null); |
156 | | - })); |
| 153 | + var config = new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL) |
| 154 | + .setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
| 155 | + preToolUseInputs.add(input); |
| 156 | + return CompletableFuture.completedFuture(PreToolUseHookOutput.allow()); |
| 157 | + }).setOnPostToolUse((input, invocation) -> { |
| 158 | + postToolUseInputs.add(input); |
| 159 | + return CompletableFuture.completedFuture(null); |
| 160 | + })); |
157 | 161 |
|
158 | 162 | try (CopilotClient client = ctx.createClient()) { |
159 | 163 | CopilotSession session = client.createSession(config).get(); |
@@ -192,11 +196,12 @@ void testDenyToolExecutionWhenPreToolUseReturnsDeny() throws Exception { |
192 | 196 |
|
193 | 197 | var preToolUseInputs = new ArrayList<PreToolUseHookInput>(); |
194 | 198 |
|
195 | | - var config = new SessionConfig().setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
196 | | - preToolUseInputs.add(input); |
197 | | - // Deny all tool calls |
198 | | - return CompletableFuture.completedFuture(PreToolUseHookOutput.deny()); |
199 | | - })); |
| 199 | + var config = new SessionConfig().setOnPermissionRequest(PermissionHandler.APPROVE_ALL) |
| 200 | + .setHooks(new SessionHooks().setOnPreToolUse((input, invocation) -> { |
| 201 | + preToolUseInputs.add(input); |
| 202 | + // Deny all tool calls |
| 203 | + return CompletableFuture.completedFuture(PreToolUseHookOutput.deny()); |
| 204 | + })); |
200 | 205 |
|
201 | 206 | try (CopilotClient client = ctx.createClient()) { |
202 | 207 | CopilotSession session = client.createSession(config).get(); |
|
0 commit comments