Files
cursor-byok/internal/backend/forwarder/module.go
T
2026-06-30 10:38:52 +08:00

35 lines
1.2 KiB
Go

// module.go 负责把 forwarder service 装配成 legacy HTTP/Connect handler。
package forwarder
import (
"net/http"
"connectrpc.com/connect"
modeladapter "cursor/internal/backend/agent/model"
)
type Module struct {
Service *Service
LocalBidiHandler http.Handler
LocalRunSSE http.Handler
AiHandler http.Handler
RepositoryServiceHandler http.Handler
UploadServiceHandler http.Handler
}
// NewModule 创建 forwarder 模块,并导出本地 Bidi / RunSSE 处理器。
func NewModule(historyRoot string, channelService modeladapter.ChannelResolver) *Module {
service := NewService(historyRoot, channelService)
legacyBidiAppendProcedure := "/aiserver.v1.BidiService/BidiAppend"
legacyRunSSEProcedure := "/agent.v1.AgentService/RunSSE"
return &Module{
Service: service,
LocalBidiHandler: connect.NewUnaryHandler(legacyBidiAppendProcedure, service.BidiAppend),
LocalRunSSE: NewLegacyRunSSEHandler(legacyRunSSEProcedure, service.RunSSE),
AiHandler: newAIHandler(service),
RepositoryServiceHandler: newRepositoryServiceHandler(service),
UploadServiceHandler: newUploadServiceHandler(service),
}
}