Files
agentic-coding-workflow/internal/acp/handlers/client_initialize.go
T

45 lines
1.4 KiB
Go

package handlers
// Server-initiated initialize call: types per spec §5.4. Supervisor sends this
// immediately after spawn. clientCapabilities.terminal=false (MVP no terminal).
type InitializeParams struct {
ProtocolVersion int `json:"protocolVersion"`
ClientCapabilities ClientCapabilities `json:"clientCapabilities"`
ClientInfo ClientInfo `json:"clientInfo"`
}
type ClientCapabilities struct {
Fs FsCapability `json:"fs"`
Terminal bool `json:"terminal"`
}
type FsCapability struct {
ReadTextFile bool `json:"readTextFile"`
WriteTextFile bool `json:"writeTextFile"`
}
type ClientInfo struct {
Name string `json:"name"`
Version string `json:"version"`
}
type InitializeResult struct {
ProtocolVersion int `json:"protocolVersion"`
AgentCapabilities map[string]any `json:"agentCapabilities,omitempty"`
AgentInfo map[string]any `json:"agentInfo,omitempty"`
AuthMethods []any `json:"authMethods,omitempty"`
}
// BuildInitializeParams returns standard initialize params.
func BuildInitializeParams(version string) InitializeParams {
return InitializeParams{
ProtocolVersion: 1,
ClientCapabilities: ClientCapabilities{
Fs: FsCapability{ReadTextFile: true, WriteTextFile: true},
Terminal: false,
},
ClientInfo: ClientInfo{Name: "agent-coding-workflow", Version: version},
}
}