sub2api/backend/internal/gen/language_server_pbconnect/language_server_simplified.connect.go
win 84555dcb44 feat: Complete Phase 1 upstream API integration with real Anthropic API calls
- Injected HTTPUpstream service into LanguageServerService
- Implemented real upstream API requests via callUpstreamAPI()
- Added SSE streaming response handler for streaming messages
- Complete error handling and structured logging
- Support for masquerading headers (User-Agent, Authorization)
- Request/response body marshaling and streaming
- Thread-safe session management with metadata storage

Core implementation:
- LanguageServerService now depends on HTTPUpstream for all HTTP operations
- HTTP requests sent to configured Anthropic API endpoint
- SSE event parsing and forwarding to clients via update channels
- Proper context and timeout handling for streaming operations

Phase 1 Status: 95% complete
- Upstream API integration:  DONE
- Wire dependency injection:  TODO
- Masquerading layer:  TODO (Phase 2)

Next steps:
1. Add Wire provider for LanguageServerService
2. Register HTTP routes in application startup
3. Implement device fingerprinting and token refresh
4. End-to-end testing with real Anthropic API

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-10 21:10:45 +08:00

500 lines
33 KiB
Go

// Code generated by protoc-gen-connect-go. DO NOT EDIT.
//
// Source: language_server_simplified.proto
package language_server_pbconnect
import (
connect "connectrpc.com/connect"
context "context"
errors "errors"
language_server_pb "github.com/Wei-Shaw/sub2api/internal/gen/language_server_pb"
http "net/http"
strings "strings"
)
// This is a compile-time assertion to ensure that this generated file and the connect package are
// compatible. If you get a compiler error that this constant is not defined, this code was
// generated with a version of connect newer than the one compiled into your binary. You can fix the
// problem by either regenerating this code with an older version of connect or updating the connect
// version compiled into your binary.
const _ = connect.IsAtLeastVersion1_13_0
const (
// LanguageServerServiceName is the fully-qualified name of the LanguageServerService service.
LanguageServerServiceName = "exa.language_server_pb.LanguageServerService"
)
// These constants are the fully-qualified names of the RPCs defined in this package. They're
// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
//
// Note that these are different from the fully-qualified method names used by
// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
// LanguageServerServiceStartCascadeProcedure is the fully-qualified name of the
// LanguageServerService's StartCascade RPC.
LanguageServerServiceStartCascadeProcedure = "/exa.language_server_pb.LanguageServerService/StartCascade"
// LanguageServerServiceSendUserCascadeMessageProcedure is the fully-qualified name of the
// LanguageServerService's SendUserCascadeMessage RPC.
LanguageServerServiceSendUserCascadeMessageProcedure = "/exa.language_server_pb.LanguageServerService/SendUserCascadeMessage"
// LanguageServerServiceCancelCascadeInvocationProcedure is the fully-qualified name of the
// LanguageServerService's CancelCascadeInvocation RPC.
LanguageServerServiceCancelCascadeInvocationProcedure = "/exa.language_server_pb.LanguageServerService/CancelCascadeInvocation"
// LanguageServerServiceAcknowledgeCascadeCodeEditProcedure is the fully-qualified name of the
// LanguageServerService's AcknowledgeCascadeCodeEdit RPC.
LanguageServerServiceAcknowledgeCascadeCodeEditProcedure = "/exa.language_server_pb.LanguageServerService/AcknowledgeCascadeCodeEdit"
// LanguageServerServiceGetCascadeModelConfigsProcedure is the fully-qualified name of the
// LanguageServerService's GetCascadeModelConfigs RPC.
LanguageServerServiceGetCascadeModelConfigsProcedure = "/exa.language_server_pb.LanguageServerService/GetCascadeModelConfigs"
// LanguageServerServiceGetCommandModelConfigsProcedure is the fully-qualified name of the
// LanguageServerService's GetCommandModelConfigs RPC.
LanguageServerServiceGetCommandModelConfigsProcedure = "/exa.language_server_pb.LanguageServerService/GetCommandModelConfigs"
// LanguageServerServiceReadFileProcedure is the fully-qualified name of the LanguageServerService's
// ReadFile RPC.
LanguageServerServiceReadFileProcedure = "/exa.language_server_pb.LanguageServerService/ReadFile"
// LanguageServerServiceWriteFileProcedure is the fully-qualified name of the
// LanguageServerService's WriteFile RPC.
LanguageServerServiceWriteFileProcedure = "/exa.language_server_pb.LanguageServerService/WriteFile"
// LanguageServerServiceReadDirProcedure is the fully-qualified name of the LanguageServerService's
// ReadDir RPC.
LanguageServerServiceReadDirProcedure = "/exa.language_server_pb.LanguageServerService/ReadDir"
// LanguageServerServiceDeleteFileOrDirectoryProcedure is the fully-qualified name of the
// LanguageServerService's DeleteFileOrDirectory RPC.
LanguageServerServiceDeleteFileOrDirectoryProcedure = "/exa.language_server_pb.LanguageServerService/DeleteFileOrDirectory"
// LanguageServerServiceStatUriProcedure is the fully-qualified name of the LanguageServerService's
// StatUri RPC.
LanguageServerServiceStatUriProcedure = "/exa.language_server_pb.LanguageServerService/StatUri"
// LanguageServerServiceWatchDirectoryProcedure is the fully-qualified name of the
// LanguageServerService's WatchDirectory RPC.
LanguageServerServiceWatchDirectoryProcedure = "/exa.language_server_pb.LanguageServerService/WatchDirectory"
// LanguageServerServiceHeartbeatProcedure is the fully-qualified name of the
// LanguageServerService's Heartbeat RPC.
LanguageServerServiceHeartbeatProcedure = "/exa.language_server_pb.LanguageServerService/Heartbeat"
// LanguageServerServiceGetStatusProcedure is the fully-qualified name of the
// LanguageServerService's GetStatus RPC.
LanguageServerServiceGetStatusProcedure = "/exa.language_server_pb.LanguageServerService/GetStatus"
)
// LanguageServerServiceClient is a client for the exa.language_server_pb.LanguageServerService
// service.
type LanguageServerServiceClient interface {
// Cascade 流程
StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error)
SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest]) (*connect.ServerStreamForClient[language_server_pb.CascadeReactiveUpdate], error)
CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error)
AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error)
// 模型配置
GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error)
GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error)
// 文件操作
ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error)
WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error)
ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error)
DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error)
StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error)
WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest]) (*connect.ServerStreamForClient[language_server_pb.WatchDirectoryResponse], error)
// 健康检查
Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error)
GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error)
}
// NewLanguageServerServiceClient constructs a client for the
// exa.language_server_pb.LanguageServerService service. By default, it uses the Connect protocol
// with the binary Protobuf Codec, asks for gzipped responses, and sends uncompressed requests. To
// use the gRPC or gRPC-Web protocols, supply the connect.WithGRPC() or connect.WithGRPCWeb()
// options.
//
// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
// http://api.acme.com or https://acme.com/grpc).
func NewLanguageServerServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) LanguageServerServiceClient {
baseURL = strings.TrimRight(baseURL, "/")
languageServerServiceMethods := language_server_pb.File_language_server_simplified_proto.Services().ByName("LanguageServerService").Methods()
return &languageServerServiceClient{
startCascade: connect.NewClient[language_server_pb.StartCascadeRequest, language_server_pb.StartCascadeResponse](
httpClient,
baseURL+LanguageServerServiceStartCascadeProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("StartCascade")),
connect.WithClientOptions(opts...),
),
sendUserCascadeMessage: connect.NewClient[language_server_pb.SendUserCascadeMessageRequest, language_server_pb.CascadeReactiveUpdate](
httpClient,
baseURL+LanguageServerServiceSendUserCascadeMessageProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("SendUserCascadeMessage")),
connect.WithClientOptions(opts...),
),
cancelCascadeInvocation: connect.NewClient[language_server_pb.CancelCascadeInvocationRequest, language_server_pb.CancelCascadeInvocationResponse](
httpClient,
baseURL+LanguageServerServiceCancelCascadeInvocationProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("CancelCascadeInvocation")),
connect.WithClientOptions(opts...),
),
acknowledgeCascadeCodeEdit: connect.NewClient[language_server_pb.AcknowledgeCascadeCodeEditRequest, language_server_pb.AcknowledgeCascadeCodeEditResponse](
httpClient,
baseURL+LanguageServerServiceAcknowledgeCascadeCodeEditProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("AcknowledgeCascadeCodeEdit")),
connect.WithClientOptions(opts...),
),
getCascadeModelConfigs: connect.NewClient[language_server_pb.GetCascadeModelConfigsRequest, language_server_pb.GetCascadeModelConfigsResponse](
httpClient,
baseURL+LanguageServerServiceGetCascadeModelConfigsProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("GetCascadeModelConfigs")),
connect.WithClientOptions(opts...),
),
getCommandModelConfigs: connect.NewClient[language_server_pb.GetCommandModelConfigsRequest, language_server_pb.GetCommandModelConfigsResponse](
httpClient,
baseURL+LanguageServerServiceGetCommandModelConfigsProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("GetCommandModelConfigs")),
connect.WithClientOptions(opts...),
),
readFile: connect.NewClient[language_server_pb.ReadFileRequest, language_server_pb.ReadFileResponse](
httpClient,
baseURL+LanguageServerServiceReadFileProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("ReadFile")),
connect.WithClientOptions(opts...),
),
writeFile: connect.NewClient[language_server_pb.WriteFileRequest, language_server_pb.WriteFileResponse](
httpClient,
baseURL+LanguageServerServiceWriteFileProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("WriteFile")),
connect.WithClientOptions(opts...),
),
readDir: connect.NewClient[language_server_pb.ReadDirRequest, language_server_pb.ReadDirResponse](
httpClient,
baseURL+LanguageServerServiceReadDirProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("ReadDir")),
connect.WithClientOptions(opts...),
),
deleteFileOrDirectory: connect.NewClient[language_server_pb.DeleteFileOrDirectoryRequest, language_server_pb.DeleteFileOrDirectoryResponse](
httpClient,
baseURL+LanguageServerServiceDeleteFileOrDirectoryProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("DeleteFileOrDirectory")),
connect.WithClientOptions(opts...),
),
statUri: connect.NewClient[language_server_pb.StatUriRequest, language_server_pb.StatUriResponse](
httpClient,
baseURL+LanguageServerServiceStatUriProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("StatUri")),
connect.WithClientOptions(opts...),
),
watchDirectory: connect.NewClient[language_server_pb.WatchDirectoryRequest, language_server_pb.WatchDirectoryResponse](
httpClient,
baseURL+LanguageServerServiceWatchDirectoryProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("WatchDirectory")),
connect.WithClientOptions(opts...),
),
heartbeat: connect.NewClient[language_server_pb.HeartbeatRequest, language_server_pb.HeartbeatResponse](
httpClient,
baseURL+LanguageServerServiceHeartbeatProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("Heartbeat")),
connect.WithClientOptions(opts...),
),
getStatus: connect.NewClient[language_server_pb.GetStatusRequest, language_server_pb.GetStatusResponse](
httpClient,
baseURL+LanguageServerServiceGetStatusProcedure,
connect.WithSchema(languageServerServiceMethods.ByName("GetStatus")),
connect.WithClientOptions(opts...),
),
}
}
// languageServerServiceClient implements LanguageServerServiceClient.
type languageServerServiceClient struct {
startCascade *connect.Client[language_server_pb.StartCascadeRequest, language_server_pb.StartCascadeResponse]
sendUserCascadeMessage *connect.Client[language_server_pb.SendUserCascadeMessageRequest, language_server_pb.CascadeReactiveUpdate]
cancelCascadeInvocation *connect.Client[language_server_pb.CancelCascadeInvocationRequest, language_server_pb.CancelCascadeInvocationResponse]
acknowledgeCascadeCodeEdit *connect.Client[language_server_pb.AcknowledgeCascadeCodeEditRequest, language_server_pb.AcknowledgeCascadeCodeEditResponse]
getCascadeModelConfigs *connect.Client[language_server_pb.GetCascadeModelConfigsRequest, language_server_pb.GetCascadeModelConfigsResponse]
getCommandModelConfigs *connect.Client[language_server_pb.GetCommandModelConfigsRequest, language_server_pb.GetCommandModelConfigsResponse]
readFile *connect.Client[language_server_pb.ReadFileRequest, language_server_pb.ReadFileResponse]
writeFile *connect.Client[language_server_pb.WriteFileRequest, language_server_pb.WriteFileResponse]
readDir *connect.Client[language_server_pb.ReadDirRequest, language_server_pb.ReadDirResponse]
deleteFileOrDirectory *connect.Client[language_server_pb.DeleteFileOrDirectoryRequest, language_server_pb.DeleteFileOrDirectoryResponse]
statUri *connect.Client[language_server_pb.StatUriRequest, language_server_pb.StatUriResponse]
watchDirectory *connect.Client[language_server_pb.WatchDirectoryRequest, language_server_pb.WatchDirectoryResponse]
heartbeat *connect.Client[language_server_pb.HeartbeatRequest, language_server_pb.HeartbeatResponse]
getStatus *connect.Client[language_server_pb.GetStatusRequest, language_server_pb.GetStatusResponse]
}
// StartCascade calls exa.language_server_pb.LanguageServerService.StartCascade.
func (c *languageServerServiceClient) StartCascade(ctx context.Context, req *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) {
return c.startCascade.CallUnary(ctx, req)
}
// SendUserCascadeMessage calls exa.language_server_pb.LanguageServerService.SendUserCascadeMessage.
func (c *languageServerServiceClient) SendUserCascadeMessage(ctx context.Context, req *connect.Request[language_server_pb.SendUserCascadeMessageRequest]) (*connect.ServerStreamForClient[language_server_pb.CascadeReactiveUpdate], error) {
return c.sendUserCascadeMessage.CallServerStream(ctx, req)
}
// CancelCascadeInvocation calls
// exa.language_server_pb.LanguageServerService.CancelCascadeInvocation.
func (c *languageServerServiceClient) CancelCascadeInvocation(ctx context.Context, req *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) {
return c.cancelCascadeInvocation.CallUnary(ctx, req)
}
// AcknowledgeCascadeCodeEdit calls
// exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit.
func (c *languageServerServiceClient) AcknowledgeCascadeCodeEdit(ctx context.Context, req *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) {
return c.acknowledgeCascadeCodeEdit.CallUnary(ctx, req)
}
// GetCascadeModelConfigs calls exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs.
func (c *languageServerServiceClient) GetCascadeModelConfigs(ctx context.Context, req *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) {
return c.getCascadeModelConfigs.CallUnary(ctx, req)
}
// GetCommandModelConfigs calls exa.language_server_pb.LanguageServerService.GetCommandModelConfigs.
func (c *languageServerServiceClient) GetCommandModelConfigs(ctx context.Context, req *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) {
return c.getCommandModelConfigs.CallUnary(ctx, req)
}
// ReadFile calls exa.language_server_pb.LanguageServerService.ReadFile.
func (c *languageServerServiceClient) ReadFile(ctx context.Context, req *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) {
return c.readFile.CallUnary(ctx, req)
}
// WriteFile calls exa.language_server_pb.LanguageServerService.WriteFile.
func (c *languageServerServiceClient) WriteFile(ctx context.Context, req *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) {
return c.writeFile.CallUnary(ctx, req)
}
// ReadDir calls exa.language_server_pb.LanguageServerService.ReadDir.
func (c *languageServerServiceClient) ReadDir(ctx context.Context, req *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) {
return c.readDir.CallUnary(ctx, req)
}
// DeleteFileOrDirectory calls exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory.
func (c *languageServerServiceClient) DeleteFileOrDirectory(ctx context.Context, req *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) {
return c.deleteFileOrDirectory.CallUnary(ctx, req)
}
// StatUri calls exa.language_server_pb.LanguageServerService.StatUri.
func (c *languageServerServiceClient) StatUri(ctx context.Context, req *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) {
return c.statUri.CallUnary(ctx, req)
}
// WatchDirectory calls exa.language_server_pb.LanguageServerService.WatchDirectory.
func (c *languageServerServiceClient) WatchDirectory(ctx context.Context, req *connect.Request[language_server_pb.WatchDirectoryRequest]) (*connect.ServerStreamForClient[language_server_pb.WatchDirectoryResponse], error) {
return c.watchDirectory.CallServerStream(ctx, req)
}
// Heartbeat calls exa.language_server_pb.LanguageServerService.Heartbeat.
func (c *languageServerServiceClient) Heartbeat(ctx context.Context, req *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) {
return c.heartbeat.CallUnary(ctx, req)
}
// GetStatus calls exa.language_server_pb.LanguageServerService.GetStatus.
func (c *languageServerServiceClient) GetStatus(ctx context.Context, req *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) {
return c.getStatus.CallUnary(ctx, req)
}
// LanguageServerServiceHandler is an implementation of the
// exa.language_server_pb.LanguageServerService service.
type LanguageServerServiceHandler interface {
// Cascade 流程
StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error)
SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest], *connect.ServerStream[language_server_pb.CascadeReactiveUpdate]) error
CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error)
AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error)
// 模型配置
GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error)
GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error)
// 文件操作
ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error)
WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error)
ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error)
DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error)
StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error)
WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest], *connect.ServerStream[language_server_pb.WatchDirectoryResponse]) error
// 健康检查
Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error)
GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error)
}
// NewLanguageServerServiceHandler builds an HTTP handler from the service implementation. It
// returns the path on which to mount the handler and the handler itself.
//
// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
// and JSON codecs. They also support gzip compression.
func NewLanguageServerServiceHandler(svc LanguageServerServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
languageServerServiceMethods := language_server_pb.File_language_server_simplified_proto.Services().ByName("LanguageServerService").Methods()
languageServerServiceStartCascadeHandler := connect.NewUnaryHandler(
LanguageServerServiceStartCascadeProcedure,
svc.StartCascade,
connect.WithSchema(languageServerServiceMethods.ByName("StartCascade")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceSendUserCascadeMessageHandler := connect.NewServerStreamHandler(
LanguageServerServiceSendUserCascadeMessageProcedure,
svc.SendUserCascadeMessage,
connect.WithSchema(languageServerServiceMethods.ByName("SendUserCascadeMessage")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceCancelCascadeInvocationHandler := connect.NewUnaryHandler(
LanguageServerServiceCancelCascadeInvocationProcedure,
svc.CancelCascadeInvocation,
connect.WithSchema(languageServerServiceMethods.ByName("CancelCascadeInvocation")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceAcknowledgeCascadeCodeEditHandler := connect.NewUnaryHandler(
LanguageServerServiceAcknowledgeCascadeCodeEditProcedure,
svc.AcknowledgeCascadeCodeEdit,
connect.WithSchema(languageServerServiceMethods.ByName("AcknowledgeCascadeCodeEdit")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceGetCascadeModelConfigsHandler := connect.NewUnaryHandler(
LanguageServerServiceGetCascadeModelConfigsProcedure,
svc.GetCascadeModelConfigs,
connect.WithSchema(languageServerServiceMethods.ByName("GetCascadeModelConfigs")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceGetCommandModelConfigsHandler := connect.NewUnaryHandler(
LanguageServerServiceGetCommandModelConfigsProcedure,
svc.GetCommandModelConfigs,
connect.WithSchema(languageServerServiceMethods.ByName("GetCommandModelConfigs")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceReadFileHandler := connect.NewUnaryHandler(
LanguageServerServiceReadFileProcedure,
svc.ReadFile,
connect.WithSchema(languageServerServiceMethods.ByName("ReadFile")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceWriteFileHandler := connect.NewUnaryHandler(
LanguageServerServiceWriteFileProcedure,
svc.WriteFile,
connect.WithSchema(languageServerServiceMethods.ByName("WriteFile")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceReadDirHandler := connect.NewUnaryHandler(
LanguageServerServiceReadDirProcedure,
svc.ReadDir,
connect.WithSchema(languageServerServiceMethods.ByName("ReadDir")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceDeleteFileOrDirectoryHandler := connect.NewUnaryHandler(
LanguageServerServiceDeleteFileOrDirectoryProcedure,
svc.DeleteFileOrDirectory,
connect.WithSchema(languageServerServiceMethods.ByName("DeleteFileOrDirectory")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceStatUriHandler := connect.NewUnaryHandler(
LanguageServerServiceStatUriProcedure,
svc.StatUri,
connect.WithSchema(languageServerServiceMethods.ByName("StatUri")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceWatchDirectoryHandler := connect.NewServerStreamHandler(
LanguageServerServiceWatchDirectoryProcedure,
svc.WatchDirectory,
connect.WithSchema(languageServerServiceMethods.ByName("WatchDirectory")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceHeartbeatHandler := connect.NewUnaryHandler(
LanguageServerServiceHeartbeatProcedure,
svc.Heartbeat,
connect.WithSchema(languageServerServiceMethods.ByName("Heartbeat")),
connect.WithHandlerOptions(opts...),
)
languageServerServiceGetStatusHandler := connect.NewUnaryHandler(
LanguageServerServiceGetStatusProcedure,
svc.GetStatus,
connect.WithSchema(languageServerServiceMethods.ByName("GetStatus")),
connect.WithHandlerOptions(opts...),
)
return "/exa.language_server_pb.LanguageServerService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case LanguageServerServiceStartCascadeProcedure:
languageServerServiceStartCascadeHandler.ServeHTTP(w, r)
case LanguageServerServiceSendUserCascadeMessageProcedure:
languageServerServiceSendUserCascadeMessageHandler.ServeHTTP(w, r)
case LanguageServerServiceCancelCascadeInvocationProcedure:
languageServerServiceCancelCascadeInvocationHandler.ServeHTTP(w, r)
case LanguageServerServiceAcknowledgeCascadeCodeEditProcedure:
languageServerServiceAcknowledgeCascadeCodeEditHandler.ServeHTTP(w, r)
case LanguageServerServiceGetCascadeModelConfigsProcedure:
languageServerServiceGetCascadeModelConfigsHandler.ServeHTTP(w, r)
case LanguageServerServiceGetCommandModelConfigsProcedure:
languageServerServiceGetCommandModelConfigsHandler.ServeHTTP(w, r)
case LanguageServerServiceReadFileProcedure:
languageServerServiceReadFileHandler.ServeHTTP(w, r)
case LanguageServerServiceWriteFileProcedure:
languageServerServiceWriteFileHandler.ServeHTTP(w, r)
case LanguageServerServiceReadDirProcedure:
languageServerServiceReadDirHandler.ServeHTTP(w, r)
case LanguageServerServiceDeleteFileOrDirectoryProcedure:
languageServerServiceDeleteFileOrDirectoryHandler.ServeHTTP(w, r)
case LanguageServerServiceStatUriProcedure:
languageServerServiceStatUriHandler.ServeHTTP(w, r)
case LanguageServerServiceWatchDirectoryProcedure:
languageServerServiceWatchDirectoryHandler.ServeHTTP(w, r)
case LanguageServerServiceHeartbeatProcedure:
languageServerServiceHeartbeatHandler.ServeHTTP(w, r)
case LanguageServerServiceGetStatusProcedure:
languageServerServiceGetStatusHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
})
}
// UnimplementedLanguageServerServiceHandler returns CodeUnimplemented from all methods.
type UnimplementedLanguageServerServiceHandler struct{}
func (UnimplementedLanguageServerServiceHandler) StartCascade(context.Context, *connect.Request[language_server_pb.StartCascadeRequest]) (*connect.Response[language_server_pb.StartCascadeResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.StartCascade is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) SendUserCascadeMessage(context.Context, *connect.Request[language_server_pb.SendUserCascadeMessageRequest], *connect.ServerStream[language_server_pb.CascadeReactiveUpdate]) error {
return connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.SendUserCascadeMessage is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) CancelCascadeInvocation(context.Context, *connect.Request[language_server_pb.CancelCascadeInvocationRequest]) (*connect.Response[language_server_pb.CancelCascadeInvocationResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.CancelCascadeInvocation is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) AcknowledgeCascadeCodeEdit(context.Context, *connect.Request[language_server_pb.AcknowledgeCascadeCodeEditRequest]) (*connect.Response[language_server_pb.AcknowledgeCascadeCodeEditResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.AcknowledgeCascadeCodeEdit is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) GetCascadeModelConfigs(context.Context, *connect.Request[language_server_pb.GetCascadeModelConfigsRequest]) (*connect.Response[language_server_pb.GetCascadeModelConfigsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetCascadeModelConfigs is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) GetCommandModelConfigs(context.Context, *connect.Request[language_server_pb.GetCommandModelConfigsRequest]) (*connect.Response[language_server_pb.GetCommandModelConfigsResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetCommandModelConfigs is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) ReadFile(context.Context, *connect.Request[language_server_pb.ReadFileRequest]) (*connect.Response[language_server_pb.ReadFileResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.ReadFile is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) WriteFile(context.Context, *connect.Request[language_server_pb.WriteFileRequest]) (*connect.Response[language_server_pb.WriteFileResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.WriteFile is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) ReadDir(context.Context, *connect.Request[language_server_pb.ReadDirRequest]) (*connect.Response[language_server_pb.ReadDirResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.ReadDir is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) DeleteFileOrDirectory(context.Context, *connect.Request[language_server_pb.DeleteFileOrDirectoryRequest]) (*connect.Response[language_server_pb.DeleteFileOrDirectoryResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.DeleteFileOrDirectory is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) StatUri(context.Context, *connect.Request[language_server_pb.StatUriRequest]) (*connect.Response[language_server_pb.StatUriResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.StatUri is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) WatchDirectory(context.Context, *connect.Request[language_server_pb.WatchDirectoryRequest], *connect.ServerStream[language_server_pb.WatchDirectoryResponse]) error {
return connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.WatchDirectory is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) Heartbeat(context.Context, *connect.Request[language_server_pb.HeartbeatRequest]) (*connect.Response[language_server_pb.HeartbeatResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.Heartbeat is not implemented"))
}
func (UnimplementedLanguageServerServiceHandler) GetStatus(context.Context, *connect.Request[language_server_pb.GetStatusRequest]) (*connect.Response[language_server_pb.GetStatusResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("exa.language_server_pb.LanguageServerService.GetStatus is not implemented"))
}