Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Learn more about the protocol itself at <https://agentclientprotocol.com>.
<!-- `$ printf 'go get github.com/coder/acp-go-sdk@v%s\n' "$(cat schema/version)"` as bash -->

```bash
go get github.com/coder/acp-go-sdk@v0.13.0
go get github.com/coder/acp-go-sdk@v0.13.4
```

## Get Started
Expand Down
46 changes: 31 additions & 15 deletions acp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,21 +121,22 @@ type agentFuncs struct {
ListSessionsFunc func(context.Context, ListSessionsRequest) (ListSessionsResponse, error)
ResumeSessionFunc func(context.Context, ResumeSessionRequest) (ResumeSessionResponse, error)
SetSessionConfigOptionFunc func(context.Context, SetSessionConfigOptionRequest) (SetSessionConfigOptionResponse, error)
LogoutFunc func(context.Context, LogoutRequest) (LogoutResponse, error)
// Unstable (schema/meta.unstable.json)
UnstableDidChangeDocumentFunc func(context.Context, UnstableDidChangeDocumentNotification) error
UnstableDidCloseDocumentFunc func(context.Context, UnstableDidCloseDocumentNotification) error
UnstableDidFocusDocumentFunc func(context.Context, UnstableDidFocusDocumentNotification) error
UnstableDidOpenDocumentFunc func(context.Context, UnstableDidOpenDocumentNotification) error
UnstableDidSaveDocumentFunc func(context.Context, UnstableDidSaveDocumentNotification) error
UnstableLogoutFunc func(context.Context, UnstableLogoutRequest) (UnstableLogoutResponse, error)
UnstableAcceptNesFunc func(context.Context, UnstableAcceptNesNotification) error
UnstableCloseNesFunc func(context.Context, UnstableCloseNesRequest) (UnstableCloseNesResponse, error)
UnstableRejectNesFunc func(context.Context, UnstableRejectNesNotification) error
UnstableStartNesFunc func(context.Context, UnstableStartNesRequest) (UnstableStartNesResponse, error)
UnstableSuggestNesFunc func(context.Context, UnstableSuggestNesRequest) (UnstableSuggestNesResponse, error)
UnstableDisableProvidersFunc func(context.Context, UnstableDisableProvidersRequest) (UnstableDisableProvidersResponse, error)
UnstableDisableProviderFunc func(context.Context, UnstableDisableProviderRequest) (UnstableDisableProviderResponse, error)
UnstableListProvidersFunc func(context.Context, UnstableListProvidersRequest) (UnstableListProvidersResponse, error)
UnstableSetProvidersFunc func(context.Context, UnstableSetProvidersRequest) (UnstableSetProvidersResponse, error)
UnstableSetProviderFunc func(context.Context, UnstableSetProviderRequest) (UnstableSetProviderResponse, error)
UnstableDeleteSessionFunc func(context.Context, UnstableDeleteSessionRequest) (UnstableDeleteSessionResponse, error)
UnstableForkSessionFunc func(context.Context, UnstableForkSessionRequest) (UnstableForkSessionResponse, error)
UnstableSetSessionModelFunc func(context.Context, UnstableSetSessionModelRequest) (UnstableSetSessionModelResponse, error)

Expand Down Expand Up @@ -282,11 +283,11 @@ func (a agentFuncs) UnstableDidSaveDocument(ctx context.Context, params Unstable
return nil
}

func (a agentFuncs) UnstableLogout(ctx context.Context, params UnstableLogoutRequest) (UnstableLogoutResponse, error) {
if a.UnstableLogoutFunc != nil {
return a.UnstableLogoutFunc(ctx, params)
func (a agentFuncs) Logout(ctx context.Context, params LogoutRequest) (LogoutResponse, error) {
if a.LogoutFunc != nil {
return a.LogoutFunc(ctx, params)
}
return UnstableLogoutResponse{}, nil
return LogoutResponse{}, nil
}

func (a agentFuncs) UnstableAcceptNes(ctx context.Context, params UnstableAcceptNesNotification) error {
Expand Down Expand Up @@ -324,11 +325,11 @@ func (a agentFuncs) UnstableSuggestNes(ctx context.Context, params UnstableSugge
return UnstableSuggestNesResponse{}, nil
}

func (a agentFuncs) UnstableDisableProviders(ctx context.Context, params UnstableDisableProvidersRequest) (UnstableDisableProvidersResponse, error) {
if a.UnstableDisableProvidersFunc != nil {
return a.UnstableDisableProvidersFunc(ctx, params)
func (a agentFuncs) UnstableDisableProvider(ctx context.Context, params UnstableDisableProviderRequest) (UnstableDisableProviderResponse, error) {
if a.UnstableDisableProviderFunc != nil {
return a.UnstableDisableProviderFunc(ctx, params)
}
return UnstableDisableProvidersResponse{}, nil
return UnstableDisableProviderResponse{}, nil
}

func (a agentFuncs) UnstableListProviders(ctx context.Context, params UnstableListProvidersRequest) (UnstableListProvidersResponse, error) {
Expand All @@ -338,11 +339,18 @@ func (a agentFuncs) UnstableListProviders(ctx context.Context, params UnstableLi
return UnstableListProvidersResponse{}, nil
}

func (a agentFuncs) UnstableSetProviders(ctx context.Context, params UnstableSetProvidersRequest) (UnstableSetProvidersResponse, error) {
if a.UnstableSetProvidersFunc != nil {
return a.UnstableSetProvidersFunc(ctx, params)
func (a agentFuncs) UnstableSetProvider(ctx context.Context, params UnstableSetProviderRequest) (UnstableSetProviderResponse, error) {
if a.UnstableSetProviderFunc != nil {
return a.UnstableSetProviderFunc(ctx, params)
}
return UnstableSetProvidersResponse{}, nil
return UnstableSetProviderResponse{}, nil
}

func (a agentFuncs) UnstableDeleteSession(ctx context.Context, params UnstableDeleteSessionRequest) (UnstableDeleteSessionResponse, error) {
if a.UnstableDeleteSessionFunc != nil {
return a.UnstableDeleteSessionFunc(ctx, params)
}
return UnstableDeleteSessionResponse{}, nil
}

func (a agentFuncs) HandleExtensionMethod(ctx context.Context, method string, params json.RawMessage) (any, error) {
Expand Down Expand Up @@ -372,6 +380,10 @@ func (a *forkOnlyUnstableAgent) CloseSession(context.Context, CloseSessionReques
return CloseSessionResponse{}, nil
}

func (a *forkOnlyUnstableAgent) Logout(context.Context, LogoutRequest) (LogoutResponse, error) {
return LogoutResponse{}, nil
}

func (a *forkOnlyUnstableAgent) NewSession(context.Context, NewSessionRequest) (NewSessionResponse, error) {
return NewSessionResponse{}, nil
}
Expand Down Expand Up @@ -1253,6 +1265,10 @@ func (agentNoExtensions) Initialize(ctx context.Context, params InitializeReques

func (agentNoExtensions) Cancel(ctx context.Context, params CancelNotification) error { return nil }

func (agentNoExtensions) Logout(ctx context.Context, params LogoutRequest) (LogoutResponse, error) {
return LogoutResponse{}, nil
}

func (agentNoExtensions) CloseSession(ctx context.Context, params CloseSessionRequest) (CloseSessionResponse, error) {
return CloseSessionResponse{}, nil
}
Expand Down
41 changes: 27 additions & 14 deletions agent_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 10 additions & 6 deletions client_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions constants_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 14 additions & 9 deletions example/agent/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@ func (a *exampleAgent) UnstableDidSaveDocument(ctx context.Context, params acp.U
return nil
}

// UnstableLogout implements acp.AgentExperimental.
func (a *exampleAgent) UnstableLogout(ctx context.Context, params acp.UnstableLogoutRequest) (acp.UnstableLogoutResponse, error) {
return acp.UnstableLogoutResponse{}, acp.NewMethodNotFound(acp.AgentMethodLogout)
// Logout implements acp.Agent.
func (a *exampleAgent) Logout(ctx context.Context, params acp.LogoutRequest) (acp.LogoutResponse, error) {
return acp.LogoutResponse{}, acp.NewMethodNotFound(acp.AgentMethodLogout)
}

// UnstableAcceptNes implements acp.AgentExperimental.
Expand Down Expand Up @@ -121,19 +121,24 @@ func (a *exampleAgent) UnstableSuggestNes(ctx context.Context, params acp.Unstab
return acp.UnstableSuggestNesResponse{}, acp.NewMethodNotFound(acp.AgentMethodNesSuggest)
}

// UnstableDisableProviders implements acp.AgentExperimental.
func (a *exampleAgent) UnstableDisableProviders(ctx context.Context, params acp.UnstableDisableProvidersRequest) (acp.UnstableDisableProvidersResponse, error) {
return acp.UnstableDisableProvidersResponse{}, acp.NewMethodNotFound(acp.AgentMethodProvidersDisable)
// UnstableDisableProvider implements acp.AgentExperimental.
func (a *exampleAgent) UnstableDisableProvider(ctx context.Context, params acp.UnstableDisableProviderRequest) (acp.UnstableDisableProviderResponse, error) {
return acp.UnstableDisableProviderResponse{}, acp.NewMethodNotFound(acp.AgentMethodProvidersDisable)
}

// UnstableListProviders implements acp.AgentExperimental.
func (a *exampleAgent) UnstableListProviders(ctx context.Context, params acp.UnstableListProvidersRequest) (acp.UnstableListProvidersResponse, error) {
return acp.UnstableListProvidersResponse{}, acp.NewMethodNotFound(acp.AgentMethodProvidersList)
}

// UnstableSetProviders implements acp.AgentExperimental.
func (a *exampleAgent) UnstableSetProviders(ctx context.Context, params acp.UnstableSetProvidersRequest) (acp.UnstableSetProvidersResponse, error) {
return acp.UnstableSetProvidersResponse{}, acp.NewMethodNotFound(acp.AgentMethodProvidersSet)
// UnstableSetProvider implements acp.AgentExperimental.
func (a *exampleAgent) UnstableSetProvider(ctx context.Context, params acp.UnstableSetProviderRequest) (acp.UnstableSetProviderResponse, error) {
return acp.UnstableSetProviderResponse{}, acp.NewMethodNotFound(acp.AgentMethodProvidersSet)
}

// UnstableDeleteSession implements acp.AgentExperimental.
func (a *exampleAgent) UnstableDeleteSession(ctx context.Context, params acp.UnstableDeleteSessionRequest) (acp.UnstableDeleteSessionResponse, error) {
return acp.UnstableDeleteSessionResponse{}, acp.NewMethodNotFound(acp.AgentMethodSessionDelete)
}

// CloseSession implements acp.Agent.
Expand Down
5 changes: 5 additions & 0 deletions example_agent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ func (a *agentExample) SetSessionConfigOption(ctx context.Context, params SetSes
return SetSessionConfigOptionResponse{}, nil
}

// Logout implements Agent.
func (a *agentExample) Logout(ctx context.Context, params LogoutRequest) (LogoutResponse, error) {
return LogoutResponse{}, nil
}

func (a *agentExample) SetAgentConnection(c *AgentSideConnection) { a.conn = c }

func (agentExample) Authenticate(ctx context.Context, _ AuthenticateRequest) (AuthenticateResponse, error) {
Expand Down
27 changes: 27 additions & 0 deletions helpers_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions schema/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"agentMethods": {
"authenticate": "authenticate",
"initialize": "initialize",
"logout": "logout",
"session_cancel": "session/cancel",
"session_close": "session/close",
"session_list": "session/list",
Expand Down
1 change: 1 addition & 0 deletions schema/meta.unstable.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"providers_set": "providers/set",
"session_cancel": "session/cancel",
"session_close": "session/close",
"session_delete": "session/delete",
"session_fork": "session/fork",
"session_list": "session/list",
"session_load": "session/load",
Expand Down
Loading