mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-23 09:35:13 +00:00
Align Copilot SDK documentation with permission handling requirements (#1107)
* Apply permission handler requirements across Copilot SDK docs Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> Agent-Logs-Url: https://github.com/jamesmontemagno/awesome-copilot/sessions/adf27a88-92f8-4ca6-b3fe-1204e3bb9963 * Polish permission update formatting in SDK examples Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> Agent-Logs-Url: https://github.com/jamesmontemagno/awesome-copilot/sessions/adf27a88-92f8-4ca6-b3fe-1204e3bb9963 * Fix review comments on SDK permission handling PR Address 5 review comments from PR #1103: 1. Fix invalid object literal syntax (stray comma) in resumeSession example in copilot-sdk-nodejs.instructions.md 2. Replace unused PermissionHandler import with actual usage in cookbook/copilot-sdk/python/recipe/ralph_loop.py (was using inline lambda instead) 3. Replace unused approveAll import with actual usage in cookbook/copilot-sdk/nodejs/recipe/ralph-loop.ts (was using inline handler instead) 4. Add missing PermissionHandler import to 4 Python code snippets in skills/copilot-sdk/SKILL.md that reference it without importing 5. Add missing approveAll import to 3 TypeScript code snippets in skills/copilot-sdk/SKILL.md that reference it without importing * Refactor session creation to improve code formatting and consistency across SDK examples * Fix formatting: split multi-property lines and put closing braces on own lines Address review comments on PR #1107: - Split OnPermissionRequest + Model onto separate lines in Go, C#, TypeScript - Put closing }); on its own line consistently across all examples - Fix indentation in SKILL.md Quick Start, CLI URL, Error Handling sections - Fix cookbook Go multiple-sessions and error-handling formatting - Fix ralph-loop.md TypeScript indentation --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com>
This commit is contained in:
@@ -72,6 +72,7 @@ Use `SessionConfig` for configuration:
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
Streaming: true,
|
||||
Tools: []copilot.Tool{...},
|
||||
@@ -104,7 +105,7 @@ if err != nil {
|
||||
### Resuming Sessions
|
||||
|
||||
```go
|
||||
session, err := client.ResumeSession("session-id")
|
||||
session, err := client.ResumeSession("session-id", &copilot.ResumeSessionConfig{OnPermissionRequest: copilot.PermissionHandler.ApproveAll})
|
||||
// Or with options:
|
||||
session, err := client.ResumeSessionWithOptions("session-id", &copilot.ResumeSessionConfig{ ... })
|
||||
```
|
||||
@@ -190,6 +191,7 @@ Set `Streaming: true` in SessionConfig:
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
Streaming: true,
|
||||
})
|
||||
@@ -243,6 +245,7 @@ Note: Final events (`AssistantMessage`, `AssistantReasoning`) are ALWAYS sent re
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
Tools: []copilot.Tool{
|
||||
{
|
||||
@@ -300,6 +303,7 @@ When Copilot invokes a tool, the client automatically:
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
SystemMessage: &copilot.SystemMessageConfig{
|
||||
Mode: "append",
|
||||
@@ -317,6 +321,7 @@ session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
SystemMessage: &copilot.SystemMessageConfig{
|
||||
Mode: "replace",
|
||||
@@ -361,8 +366,14 @@ session.Send(copilot.MessageOptions{
|
||||
Sessions are independent and can run concurrently:
|
||||
|
||||
```go
|
||||
session1, _ := client.CreateSession(&copilot.SessionConfig{Model: "gpt-5"})
|
||||
session2, _ := client.CreateSession(&copilot.SessionConfig{Model: "claude-sonnet-4.5"})
|
||||
session1, _ := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
})
|
||||
session2, _ := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "claude-sonnet-4.5",
|
||||
})
|
||||
|
||||
session1.Send(copilot.MessageOptions{Prompt: "Hello from session 1"})
|
||||
session2.Send(copilot.MessageOptions{Prompt: "Hello from session 2"})
|
||||
@@ -374,6 +385,7 @@ Use custom API providers via `ProviderConfig`:
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Provider: &copilot.ProviderConfig{
|
||||
Type: "openai",
|
||||
BaseURL: "https://api.openai.com/v1",
|
||||
@@ -396,7 +408,9 @@ state := client.GetState()
|
||||
### Standard Exception Handling
|
||||
|
||||
```go
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{})
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to create session: %v", err)
|
||||
}
|
||||
@@ -447,7 +461,7 @@ if err := client.Start(); err != nil {
|
||||
}
|
||||
defer client.Stop()
|
||||
|
||||
session, err := client.CreateSession(nil)
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{OnPermissionRequest: copilot.PermissionHandler.ApproveAll})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -465,7 +479,7 @@ if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
session, err := client.CreateSession(nil)
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{OnPermissionRequest: copilot.PermissionHandler.ApproveAll})
|
||||
if err != nil {
|
||||
client.Stop()
|
||||
log.Fatal(err)
|
||||
@@ -504,7 +518,10 @@ if err := client.Start(); err != nil {
|
||||
}
|
||||
defer client.Stop()
|
||||
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{Model: "gpt-5"})
|
||||
session, err := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Model: "gpt-5",
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -527,7 +544,7 @@ session.Send(copilot.MessageOptions{Prompt: "What is 2+2?"})
|
||||
### Multi-Turn Conversation
|
||||
|
||||
```go
|
||||
session, _ := client.CreateSession(nil)
|
||||
session, _ := client.CreateSession(&copilot.SessionConfig{OnPermissionRequest: copilot.PermissionHandler.ApproveAll})
|
||||
defer session.Destroy()
|
||||
|
||||
sendAndWait := func(prompt string) error {
|
||||
@@ -588,6 +605,7 @@ type UserInfo struct {
|
||||
}
|
||||
|
||||
session, _ := client.CreateSession(&copilot.SessionConfig{
|
||||
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
|
||||
Tools: []copilot.Tool{
|
||||
{
|
||||
Name: "get_user",
|
||||
|
||||
Reference in New Issue
Block a user