usecase

package
v0.0.0-...-aaedd79 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2026 License: MIT Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ProbeEnabledRunners

func ProbeEnabledRunners(ctx context.Context, pool *llmrunner.Pool, runners []llmrunner.RunnerInfo) []llmrunner.RunnerInfo

Types

type AuthUseCase

type AuthUseCase struct {
	// contains filtered or unexported fields
}

func NewAuthUseCase

func NewAuthUseCase(
	authTx repository.AuthTransactionRunner,
	userRepo repository.UserRepository,
	tokenRepo repository.TokenRepository,
	jwtService *service.JWTService,
) *AuthUseCase

func (*AuthUseCase) ChangePassword

func (a *AuthUseCase) ChangePassword(ctx context.Context, userId int, oldPassword, newPassword string) error

func (*AuthUseCase) Login

func (a *AuthUseCase) Login(ctx context.Context, username, password string) (*domain.User, string, string, error)

func (*AuthUseCase) Logout

func (a *AuthUseCase) Logout(ctx context.Context, userId int) error

func (*AuthUseCase) RefreshToken

func (a *AuthUseCase) RefreshToken(ctx context.Context, refreshToken string) (string, string, error)

func (*AuthUseCase) ValidateToken

func (a *AuthUseCase) ValidateToken(ctx context.Context, token string) (*domain.User, error)

type ChatBootstrapResult

type ChatBootstrapResult struct {
	Sessions          []*domain.ChatSession
	SessionsTotal     int32
	Page              int32
	PageSize          int32
	Runner            RunnableRunnerSnapshot
	WebSearchGlobally bool
}

type ChatUseCase

type ChatUseCase struct {
	// contains filtered or unexported fields
}

func NewChatUseCase

func NewChatUseCase(
	chatTx repository.ChatTransactionRunner,
	sessionRepo repository.ChatSessionRepository,
	preferenceRepo repository.ChatPreferenceRepository,
	sessionSettingsRepo repository.ChatSessionSettingsRepository,
	messageRepo repository.MessageRepository,
	messageEditRepo repository.MessageEditRepository,
	assistantRegenRepo repository.AssistantMessageRegenerationRepository,
	fileRepo repository.FileRepository,
	runnerRepo repository.RunnerRepository,
	llmRepo domain.LLMRepository,
	runnerPool *llmrunner.Pool,
	runnerReg *llmrunner.Registry,
	attachmentsSaveDir string,
	attachmentHydrateParallelism int,
	webSearchSettingsRepo repository.WebSearchSettingsRepository,
	mcpServerRepo repository.MCPServerRepository,
	mcpToolsListCache *mcpclient.ToolsListCache,
	documentIngest *DocumentIngestUseCase,
	ragBackgroundIndexTimeout time.Duration,
	llmContextFallbackTokens int,
	ragMaxExtractedRunesOnUpload int,
	ragNeighborChunkWindow int,
	preferFullDocumentWhenFits bool,
	deepRAGEnabled bool,
	deepRAGMaxMapCalls int,
	deepRAGChunksPerMap int,
	deepRAGMapMaxTokens int32,
	deepRAGMapTimeoutSeconds int32,
	deepRAGMaxMapOutputRunes int,
	mcpToolsAllowlistWhenUserImage []string,
	mcpSamplingModel string,
) *ChatUseCase

func (*ChatUseCase) ApplyMarkdownPatch

func (c *ChatUseCase) ApplyMarkdownPatch(_ context.Context, baseText, patchJSON string) (string, error)

func (*ChatUseCase) ApplySpreadsheet

func (c *ChatUseCase) ApplySpreadsheet(
	_ context.Context,
	workbook []byte,
	operationsJSON string,
	previewSheet string,
	previewRange string,
) (workbookOut []byte, previewTSV string, exportedCSV string, err error)

func (*ChatUseCase) BuildDocx

func (c *ChatUseCase) BuildDocx(_ context.Context, specJSON string) ([]byte, error)

func (*ChatUseCase) BuildRunnableRunnerSnapshot

func (c *ChatUseCase) BuildRunnableRunnerSnapshot(ctx context.Context, userID int, candidate string, persist bool) RunnableRunnerSnapshot

func (*ChatUseCase) ContinueAssistantResponse

func (c *ChatUseCase) ContinueAssistantResponse(ctx context.Context, userId int, sessionId int64, assistantMessageID int64) (chan chatstream.ChatStreamChunk, error)

func (*ChatUseCase) CreateSession

func (c *ChatUseCase) CreateSession(ctx context.Context, userId int, title string) (*domain.ChatSession, error)

func (*ChatUseCase) DeleteSession

func (c *ChatUseCase) DeleteSession(ctx context.Context, userId int, sessionID int64) error

func (*ChatUseCase) EditUserMessageAndContinue

func (c *ChatUseCase) EditUserMessageAndContinue(ctx context.Context, userId int, sessionId int64, userMessageID int64, newContent string) (chan chatstream.ChatStreamChunk, error)

func (*ChatUseCase) Embed

func (c *ChatUseCase) Embed(ctx context.Context, userID int, requestedModel string, text string) ([]float32, error)

func (*ChatUseCase) EmbedBatch

func (c *ChatUseCase) EmbedBatch(ctx context.Context, userID int, requestedModel string, texts []string) ([][]float32, error)

func (*ChatUseCase) GetAssistantMessageRegenerations

func (c *ChatUseCase) GetAssistantMessageRegenerations(ctx context.Context, userId int, sessionId int64, assistantMessageID int64) ([]*domain.AssistantMessageRegeneration, error)

func (*ChatUseCase) GetChatBootstrap

func (c *ChatUseCase) GetChatBootstrap(
	ctx context.Context,
	userID int,
	page, pageSize int32,
	runnerCandidate string,
	persistRunner bool,
) (*ChatBootstrapResult, error)

func (*ChatUseCase) GetModels

func (c *ChatUseCase) GetModels(ctx context.Context) ([]string, error)

func (*ChatUseCase) GetSelectedRunner

func (c *ChatUseCase) GetSelectedRunner(ctx context.Context, userID int) (string, error)

func (*ChatUseCase) GetSessionFile

func (c *ChatUseCase) GetSessionFile(ctx context.Context, userID int, sessionID int64, fileID int64) (filename string, content []byte, err error)

func (*ChatUseCase) GetSessionMessages

func (c *ChatUseCase) GetSessionMessages(ctx context.Context, userId int, sessionId int64, beforeMessageID int64, pageSize int32) ([]*domain.Message, int32, bool, error)

func (*ChatUseCase) GetSessionMessagesForAssistantMessageVersion

func (c *ChatUseCase) GetSessionMessagesForAssistantMessageVersion(ctx context.Context, userId int, sessionId int64, assistantMessageID int64, versionIndex int32) ([]*domain.Message, error)

func (*ChatUseCase) GetSessionMessagesForUserMessageVersion

func (c *ChatUseCase) GetSessionMessagesForUserMessageVersion(ctx context.Context, userId int, sessionId int64, userMessageID int64, versionIndex int32) ([]*domain.Message, error)

func (*ChatUseCase) GetSessionSettings

func (c *ChatUseCase) GetSessionSettings(ctx context.Context, userId int, sessionID int64) (*domain.ChatSessionSettings, error)

func (*ChatUseCase) GetSessions

func (c *ChatUseCase) GetSessions(ctx context.Context, userId int, page, pageSize int32) ([]*domain.ChatSession, int32, error)

func (*ChatUseCase) GetUserMessageEdits

func (c *ChatUseCase) GetUserMessageEdits(ctx context.Context, userId int, sessionId int64, userMessageID int64) ([]*domain.MessageEdit, error)

func (*ChatUseCase) PutSessionFile

func (c *ChatUseCase) PutSessionFile(ctx context.Context, userID int, sessionID int64, filename string, content []byte, ttlSeconds int32) (int64, error)

func (*ChatUseCase) RegenerateAssistantResponse

func (c *ChatUseCase) RegenerateAssistantResponse(ctx context.Context, userId int, sessionId int64, assistantMessageID int64) (chan chatstream.ChatStreamChunk, error)

func (*ChatUseCase) SendMessage

func (c *ChatUseCase) SendMessage(ctx context.Context, userId int, sessionId int64, userMessage string, attachmentFileIDs []int64, fileRAG *chatattachment.SendMessageFileRAGOptions) (chan chatstream.ChatStreamChunk, error)

func (*ChatUseCase) SetSelectedRunner

func (c *ChatUseCase) SetSelectedRunner(ctx context.Context, userID int, runner string) error

func (*ChatUseCase) UpdateSessionSettings

func (c *ChatUseCase) UpdateSessionSettings(
	ctx context.Context,
	userId int,
	sessionID int64,
	systemPrompt string,
	stopSequences []string,
	timeoutSeconds int32,
	temperature *float32,
	topK *int32,
	topP *float32,
	profile string,
	modelReasoningEnabled bool,
	webSearchEnabled bool,
	webSearchProvider string,
	mcpEnabled bool,
	mcpServerIDs []int64,
) (*domain.ChatSessionSettings, error)

func (*ChatUseCase) UpdateSessionTitle

func (c *ChatUseCase) UpdateSessionTitle(ctx context.Context, userId int, sessionId int64, title string) (*domain.ChatSession, error)

type DocumentIngestUseCase

type DocumentIngestUseCase struct {
	// contains filtered or unexported fields
}

func NewDocumentIngestUseCase

func NewDocumentIngestUseCase(
	sessionRepo repository.ChatSessionRepository,
	fileRepo repository.FileRepository,
	ragRepo repository.DocumentRAGRepository,
	runnerRepo repository.RunnerRepository,
	llmRepo domain.LLMRepository,
	attachmentsSaveDir string,
	splitOpts rag.SplitOptions,
	embedBatchSize int,
	maxChunkEmbedRunes int,
	queryRewriteEnabled bool,
	queryRewriteMaxTokens int32,
	queryRewriteTimeoutSeconds int32,
	hydeEnabled bool,
	hydeMaxTokens int32,
	hydeTimeoutSeconds int32,
	adaptiveKEnabled bool,
	adaptiveKMultiplier int,
	minSimilarityScore float64,
	rerankEnabled bool,
	rerankMaxCandidates int,
	rerankMaxTokens int32,
	rerankTimeoutSeconds int32,
	rerankPassageMaxRunes int,
) *DocumentIngestUseCase

func (*DocumentIngestUseCase) DeleteSessionFileIndex

func (u *DocumentIngestUseCase) DeleteSessionFileIndex(ctx context.Context, userID int, sessionID, fileID int64) error

func (*DocumentIngestUseCase) GetIngestionStatus

func (u *DocumentIngestUseCase) GetIngestionStatus(ctx context.Context, userID int, sessionID, fileID int64) (*domain.FileRAGIndex, error)

func (*DocumentIngestUseCase) IndexSessionFile

func (u *DocumentIngestUseCase) IndexSessionFile(ctx context.Context, userID int, sessionID, fileID int64, requestedEmbeddingModel string) error

func (*DocumentIngestUseCase) SearchSessionKnowledge

func (u *DocumentIngestUseCase) SearchSessionKnowledge(ctx context.Context, userID int, sessionID int64, embeddingModel string, queryText string, topK int, restrictFileID *int64, neighborChunkWindow int) ([]domain.ScoredDocumentRAGChunk, error)

type EditorUseCase

type EditorUseCase struct {
	// contains filtered or unexported fields
}

func (*EditorUseCase) SaveHistory

func (e *EditorUseCase) SaveHistory(ctx context.Context, userID int, runner string, text string) error

func (*EditorUseCase) Transform

func (e *EditorUseCase) Transform(
	ctx context.Context,
	userID int,
	text string,
	t editorpb.TransformType,
	preserveMarkdown bool,
) (string, error)

type MCPContractServerResult

type MCPContractServerResult struct {
	ServerID         int64
	ServerName       string
	ProbeOK          bool
	ToolsListOK      bool
	ProtocolVersion  string
	DeclaredTools    int
	ContractPassed   bool
	ProbeError       string
	ToolsListError   string
	CheckedAtUnixSec int64
}

type MCPContractsUseCase

type MCPContractsUseCase struct {
	// contains filtered or unexported fields
}

func (*MCPContractsUseCase) RunActiveContracts

func (u *MCPContractsUseCase) RunActiveContracts(ctx context.Context) ([]MCPContractServerResult, error)

func (*MCPContractsUseCase) RunActiveContractsSummary

func (u *MCPContractsUseCase) RunActiveContractsSummary(ctx context.Context) (string, error)

type MCPServersUseCase

type MCPServersUseCase struct {
	// contains filtered or unexported fields
}

func (*MCPServersUseCase) CountOwnedByUser

func (u *MCPServersUseCase) CountOwnedByUser(ctx context.Context, userID int) (int64, error)

func (*MCPServersUseCase) CreateGlobal

func (*MCPServersUseCase) CreateOwned

func (u *MCPServersUseCase) CreateOwned(ctx context.Context, s *domain2.MCPServer, userID int) (*domain2.MCPServer, error)

func (*MCPServersUseCase) DeleteGlobal

func (u *MCPServersUseCase) DeleteGlobal(ctx context.Context, id int64) error

func (*MCPServersUseCase) DeleteOwned

func (u *MCPServersUseCase) DeleteOwned(ctx context.Context, id int64, userID int) error

func (*MCPServersUseCase) GetForUser

func (u *MCPServersUseCase) GetForUser(ctx context.Context, id int64, userID int) (*domain2.MCPServer, error)

func (*MCPServersUseCase) GetGlobal

func (u *MCPServersUseCase) GetGlobal(ctx context.Context, id int64) (*domain2.MCPServer, error)

func (*MCPServersUseCase) ListActive

func (u *MCPServersUseCase) ListActive(ctx context.Context) ([]*domain2.MCPServer, error)

func (*MCPServersUseCase) ListForUser

func (u *MCPServersUseCase) ListForUser(ctx context.Context, userID int) ([]*domain2.MCPServer, error)

func (*MCPServersUseCase) ListGlobal

func (u *MCPServersUseCase) ListGlobal(ctx context.Context) ([]*domain2.MCPServer, error)

func (*MCPServersUseCase) UpdateGlobal

func (u *MCPServersUseCase) UpdateGlobal(ctx context.Context, s *domain2.MCPServer) error

func (*MCPServersUseCase) UpdateOwned

func (u *MCPServersUseCase) UpdateOwned(ctx context.Context, s *domain2.MCPServer, userID int) error

type RunnableRunnerSnapshot

type RunnableRunnerSnapshot struct {
	Entries          []llmrunner.ResolveEntry
	Available        []string
	Names            map[string]string
	HasActiveRunners bool
	Selection        llmrunner.ResolveSelection
	Persisted        bool
}

type UserUseCase

type UserUseCase struct {
	// contains filtered or unexported fields
}

func NewUserUseCase

func NewUserUseCase(userRepo repository.UserRepository, tokenRepo repository.TokenRepository, jwtService *service.JWTService) *UserUseCase

func (*UserUseCase) CreateUser

func (u *UserUseCase) CreateUser(ctx context.Context, username, password, name, surname string, role int32) (*domain.User, error)

func (*UserUseCase) EditUser

func (u *UserUseCase) EditUser(ctx context.Context, id string, username, password, name, surname string, role int32) (*domain.User, error)

func (*UserUseCase) GetUsers

func (u *UserUseCase) GetUsers(ctx context.Context, page, pageSize int32) ([]*domain.User, int32, error)

type WebSearchSettingsUseCase

type WebSearchSettingsUseCase struct {
	// contains filtered or unexported fields
}

func (*WebSearchSettingsUseCase) Get

func (*WebSearchSettingsUseCase) Update

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL