WIP commit保存以下定制工作以便后续合并 upstream v0.1.124-125: - Windsurf: tier access service, NLU extractor, cold threshold, Google login - Antigravity: client/oauth 调整 - Ops: log stream handler/broadcaster/middleware, OpsLogStreamView - Frontend: WindsurfLoginModal Google, GoogleIcon, AccountsView, sidebar/router/i18n
49 lines
1.5 KiB
Go
49 lines
1.5 KiB
Go
package routes
|
|
|
|
import (
|
|
"github.com/Wei-Shaw/sub2api/internal/config"
|
|
"github.com/Wei-Shaw/sub2api/internal/handler"
|
|
"github.com/Wei-Shaw/sub2api/internal/server/middleware"
|
|
"github.com/Wei-Shaw/sub2api/internal/service"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func RegisterWindsurfGatewayRoutes(
|
|
r *gin.Engine,
|
|
h *handler.Handlers,
|
|
apiKeyAuth middleware.APIKeyAuthMiddleware,
|
|
apiKeyService *service.APIKeyService,
|
|
subscriptionService *service.SubscriptionService,
|
|
opsService *service.OpsService,
|
|
settingService *service.SettingService,
|
|
cfg *config.Config,
|
|
opsLogBroadcaster *service.OpsLogBroadcaster,
|
|
) {
|
|
if h.Gateway == nil {
|
|
return
|
|
}
|
|
|
|
bodyLimit := middleware.RequestBodyLimit(cfg.Gateway.MaxBodySize)
|
|
clientRequestID := middleware.ClientRequestID()
|
|
opsErrorLogger := handler.OpsErrorLoggerMiddleware(opsService)
|
|
opsLogStream := handler.OpsLogStreamMiddleware(opsLogBroadcaster)
|
|
endpointNorm := handler.InboundEndpointMiddleware()
|
|
requireGroupAnthropic := middleware.RequireGroupAssignment(settingService, middleware.AnthropicErrorWriter)
|
|
|
|
windsurfV1 := r.Group("/windsurf/v1")
|
|
windsurfV1.Use(bodyLimit)
|
|
windsurfV1.Use(clientRequestID)
|
|
windsurfV1.Use(opsErrorLogger)
|
|
windsurfV1.Use(opsLogStream)
|
|
windsurfV1.Use(endpointNorm)
|
|
windsurfV1.Use(middleware.ForcePlatform(service.PlatformWindsurf))
|
|
windsurfV1.Use(gin.HandlerFunc(apiKeyAuth))
|
|
windsurfV1.Use(requireGroupAnthropic)
|
|
{
|
|
windsurfV1.POST("/messages", h.Gateway.Messages)
|
|
windsurfV1.POST("/chat/completions", h.Gateway.ChatCompletions)
|
|
windsurfV1.GET("/models", h.Gateway.Models)
|
|
}
|
|
}
|