feat(acp/handlers): initialize + session/new param builders

This commit is contained in:
2026-05-07 12:22:31 +08:00
parent 6da1dc5a40
commit 64ff2a8c02
2 changed files with 61 additions and 0 deletions
@@ -0,0 +1,44 @@
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},
}
}