memory

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: May 8, 2026 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Memory

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

func New

func New() *Memory

func (*Memory) AcquireAlertThrottleSlot added in v0.14.0

func (r *Memory) AcquireAlertThrottleSlot(ctx context.Context, window time.Duration, limit int) (*alert.ThrottleResult, error)

AcquireAlertThrottleSlot atomically checks and consumes a throttle slot.

func (*Memory) AcquireSessionLock added in v0.16.0

func (r *Memory) AcquireSessionLock(ctx context.Context, sessionID types.SessionID, holderID string, ttl time.Duration) (bool, error)

AcquireSessionLock attempts to take the Session.Lock for the duration ttl. Returns (true, nil) on success, (false, nil) if the lock is already held and not yet expired.

func (*Memory) AllSessions added in v0.16.0

func (r *Memory) AllSessions() []*session.Session

AllSessions returns a snapshot copy of every Session stored in memory. Test-only: used by migration job tests that need to enumerate sessions without going through a listAll abstraction.

func (*Memory) BatchGetAlerts

func (r *Memory) BatchGetAlerts(ctx context.Context, alertIDs []types.AlertID) (alert.Alerts, error)

func (*Memory) BatchGetDiagnosisIssueCounts added in v0.13.0

func (r *Memory) BatchGetDiagnosisIssueCounts(ctx context.Context, diagnosisIDs []types.DiagnosisID) (map[types.DiagnosisID]diagnosis.IssueCounts, error)

BatchGetDiagnosisIssueCounts returns issue counts for multiple diagnoses in one call.

func (*Memory) BatchGetTickets

func (r *Memory) BatchGetTickets(ctx context.Context, ticketIDs []types.TicketID) ([]*ticket.Ticket, error)

func (*Memory) BatchPutAlerts

func (r *Memory) BatchPutAlerts(ctx context.Context, alerts alert.Alerts) error

func (*Memory) BatchUpdateTicketsStatus

func (r *Memory) BatchUpdateTicketsStatus(ctx context.Context, ticketIDs []types.TicketID, status types.TicketStatus) error

func (*Memory) BindAlertsToTicket

func (r *Memory) BindAlertsToTicket(ctx context.Context, alertIDs []types.AlertID, ticketID types.TicketID) error

func (*Memory) CheckAlertThrottle added in v0.14.0

func (r *Memory) CheckAlertThrottle(ctx context.Context, window time.Duration, limit int) (*alert.ThrottleResult, error)

CheckAlertThrottle checks whether throttle slots are available (read-only). Does NOT consume a slot.

func (*Memory) CountActivities

func (r *Memory) CountActivities(ctx context.Context) (int, error)

func (*Memory) CountAlertsWithoutTicket

func (r *Memory) CountAlertsWithoutTicket(ctx context.Context) (int, error)

func (*Memory) CountDeclinedAlerts added in v0.10.0

func (r *Memory) CountDeclinedAlerts(ctx context.Context) (int, error)

func (*Memory) CountDiagnosisIssues added in v0.13.0

func (r *Memory) CountDiagnosisIssues(_ context.Context, diagnosisID types.DiagnosisID, status *diagnosis.IssueStatus) (int, error)

CountDiagnosisIssues counts issues for a diagnosis, optionally filtered by status.

func (*Memory) CountQueuedAlerts added in v0.14.0

func (r *Memory) CountQueuedAlerts(ctx context.Context) (int, error)

CountQueuedAlerts returns the total number of queued alerts

func (*Memory) CountTicketsByStatus

func (r *Memory) CountTicketsByStatus(ctx context.Context, statuses []types.TicketStatus, keyword, assigneeID string) (int, error)

func (*Memory) CreateNotice

func (r *Memory) CreateNotice(ctx context.Context, notice *notice.Notice) error

func (*Memory) CreateSession added in v0.16.0

func (r *Memory) CreateSession(ctx context.Context, sess *session.Session) error

CreateSession inserts sess only if no Session with the same ID already exists. Returns interfaces.ErrSessionAlreadyExists on collision.

func (*Memory) CreateTagWithID

func (r *Memory) CreateTagWithID(ctx context.Context, tag *tag.Tag) error

func (*Memory) DeleteKnowledge added in v0.14.0

func (r *Memory) DeleteKnowledge(_ context.Context, id types.KnowledgeID) error

func (*Memory) DeleteKnowledgeTag added in v0.14.0

func (r *Memory) DeleteKnowledgeTag(_ context.Context, id types.KnowledgeTagID) error

func (*Memory) DeleteQueuedAlerts added in v0.14.0

func (r *Memory) DeleteQueuedAlerts(ctx context.Context, ids []types.QueuedAlertID) error

DeleteQueuedAlerts deletes queued alerts by IDs

func (*Memory) DeleteSession added in v0.8.0

func (r *Memory) DeleteSession(ctx context.Context, sessionID types.SessionID) error

func (*Memory) DeleteTagByID

func (r *Memory) DeleteTagByID(ctx context.Context, tagID string) error

func (*Memory) DeleteToken

func (r *Memory) DeleteToken(ctx context.Context, tokenID auth.TokenID) error

func (*Memory) FindNearestAlerts

func (r *Memory) FindNearestAlerts(ctx context.Context, embedding []float32, limit int) (alert.Alerts, error)

func (*Memory) FindNearestTickets

func (r *Memory) FindNearestTickets(ctx context.Context, embedding []float32, limit int) ([]*ticket.Ticket, error)

func (*Memory) FindNearestTicketsWithSpan

func (r *Memory) FindNearestTicketsWithSpan(ctx context.Context, embedding []float32, begin, end time.Time, limit int) ([]*ticket.Ticket, error)

func (*Memory) FindSimilarAlerts

func (r *Memory) FindSimilarAlerts(ctx context.Context, target alert.Alert, limit int) (alert.Alerts, error)

func (*Memory) GetActivities

func (r *Memory) GetActivities(ctx context.Context, offset, limit int) ([]*activity.Activity, error)

func (*Memory) GetAlert

func (r *Memory) GetAlert(ctx context.Context, alertID types.AlertID) (*alert.Alert, error)

func (*Memory) GetAlertList

func (r *Memory) GetAlertList(ctx context.Context, listID types.AlertListID) (*alert.List, error)

func (*Memory) GetAlertListByThread

func (r *Memory) GetAlertListByThread(ctx context.Context, thread slack.Thread) (*alert.List, error)

func (*Memory) GetAlertListsInThread

func (r *Memory) GetAlertListsInThread(ctx context.Context, thread slack.Thread) ([]*alert.List, error)

func (*Memory) GetAlertWithoutEmbedding

func (r *Memory) GetAlertWithoutEmbedding(ctx context.Context) (alert.Alerts, error)

func (*Memory) GetAlertWithoutTicket

func (r *Memory) GetAlertWithoutTicket(ctx context.Context, offset, limit int) (alert.Alerts, error)

func (*Memory) GetAlertsBySpan

func (r *Memory) GetAlertsBySpan(ctx context.Context, begin, end time.Time) (alert.Alerts, error)

func (*Memory) GetAlertsByThread

func (r *Memory) GetAlertsByThread(ctx context.Context, thread slack.Thread) (alert.Alerts, error)

func (*Memory) GetAlertsWithInvalidEmbedding

func (r *Memory) GetAlertsWithInvalidEmbedding(ctx context.Context) (alert.Alerts, error)

func (*Memory) GetAllAlerts added in v0.13.0

func (r *Memory) GetAllAlerts(_ context.Context) (alert.Alerts, error)

GetAllAlerts returns all alerts for full-scan diagnosis checks.

func (*Memory) GetAllCallCounts

func (r *Memory) GetAllCallCounts() map[string]int

GetAllCallCounts returns a copy of all call counts

func (*Memory) GetAllTickets added in v0.13.0

func (r *Memory) GetAllTickets(_ context.Context) ([]*ticket.Ticket, error)

GetAllTickets returns all tickets for full-scan diagnosis checks.

func (*Memory) GetCallCount

func (r *Memory) GetCallCount(methodName string) int

GetCallCount returns the number of times a method has been called

func (*Memory) GetDeclinedAlerts added in v0.10.0

func (r *Memory) GetDeclinedAlerts(ctx context.Context, offset, limit int) (alert.Alerts, error)

func (*Memory) GetDiagnosis added in v0.13.0

func (r *Memory) GetDiagnosis(_ context.Context, id types.DiagnosisID) (*diagnosis.Diagnosis, error)

GetDiagnosis retrieves a diagnosis by ID.

func (*Memory) GetDiagnosisIssue added in v0.13.0

func (r *Memory) GetDiagnosisIssue(_ context.Context, diagnosisID types.DiagnosisID, issueID string) (*diagnosis.Issue, error)

GetDiagnosisIssue retrieves a specific issue by diagnosisID and issueID.

func (*Memory) GetDiagnosisIssueCounts added in v0.13.0

func (r *Memory) GetDiagnosisIssueCounts(_ context.Context, diagnosisID types.DiagnosisID) (diagnosis.IssueCounts, error)

GetDiagnosisIssueCounts returns all status counts for a diagnosis in a single pass.

func (*Memory) GetHITLRequest added in v0.13.0

func (r *Memory) GetHITLRequest(ctx context.Context, id types.HITLRequestID) (*hitl.Request, error)

func (*Memory) GetKnowledge added in v0.8.0

func (r *Memory) GetKnowledge(_ context.Context, id types.KnowledgeID) (*knowledge.Knowledge, error)

func (*Memory) GetKnowledgeLog added in v0.14.0

func (r *Memory) GetKnowledgeLog(_ context.Context, knowledgeID types.KnowledgeID, logID types.KnowledgeLogID) (*knowledge.KnowledgeLog, error)

func (*Memory) GetKnowledgeTag added in v0.14.0

func (r *Memory) GetKnowledgeTag(_ context.Context, id types.KnowledgeTagID) (*knowledge.KnowledgeTag, error)

func (*Memory) GetLatestAlertByThread

func (r *Memory) GetLatestAlertByThread(ctx context.Context, thread slack.Thread) (*alert.Alert, error)

func (*Memory) GetLatestAlertListInThread

func (r *Memory) GetLatestAlertListInThread(ctx context.Context, thread slack.Thread) (*alert.List, error)

func (*Memory) GetMessagesByTurn added in v0.16.0

func (r *Memory) GetMessagesByTurn(ctx context.Context, turnID types.TurnID) ([]*session.Message, error)

func (*Memory) GetNotice

func (r *Memory) GetNotice(ctx context.Context, id types.NoticeID) (*notice.Notice, error)

func (*Memory) GetOrCreateTagByName

func (r *Memory) GetOrCreateTagByName(ctx context.Context, name, description, color, createdBy string) (*tag.Tag, error)

GetOrCreateTagByName atomically gets an existing tag or creates a new one

func (*Memory) GetQueuedAlert added in v0.14.0

func (r *Memory) GetQueuedAlert(ctx context.Context, id types.QueuedAlertID) (*alert.QueuedAlert, error)

GetQueuedAlert retrieves a queued alert by ID

func (*Memory) GetRefineGroup added in v0.10.0

func (r *Memory) GetRefineGroup(ctx context.Context, groupID types.RefineGroupID) (*refine.Group, error)

func (*Memory) GetReprocessBatchJob added in v0.14.0

func (r *Memory) GetReprocessBatchJob(ctx context.Context, id types.ReprocessBatchJobID) (*alert.ReprocessBatchJob, error)

GetReprocessBatchJob retrieves a reprocess batch job by ID

func (*Memory) GetReprocessJob added in v0.14.0

func (r *Memory) GetReprocessJob(ctx context.Context, id types.ReprocessJobID) (*alert.ReprocessJob, error)

GetReprocessJob retrieves a reprocess job by ID

func (*Memory) GetSession added in v0.8.0

func (r *Memory) GetSession(ctx context.Context, sessionID types.SessionID) (*session.Session, error)

func (*Memory) GetSessionMessages added in v0.8.0

func (r *Memory) GetSessionMessages(ctx context.Context, sessionID types.SessionID) ([]*session.Message, error)

func (*Memory) GetSessionsByTicket added in v0.8.0

func (r *Memory) GetSessionsByTicket(ctx context.Context, ticketID types.TicketID) ([]*session.Session, error)

func (*Memory) GetTagByID

func (r *Memory) GetTagByID(ctx context.Context, tagID string) (*tag.Tag, error)

func (*Memory) GetTagByName

func (r *Memory) GetTagByName(ctx context.Context, name string) (*tag.Tag, error)

func (*Memory) GetTagsByIDs

func (r *Memory) GetTagsByIDs(ctx context.Context, tagIDs []string) ([]*tag.Tag, error)

func (*Memory) GetTicket

func (r *Memory) GetTicket(ctx context.Context, ticketID types.TicketID) (*ticket.Ticket, error)

func (*Memory) GetTicketByThread

func (r *Memory) GetTicketByThread(ctx context.Context, thread slack.Thread) (*ticket.Ticket, error)

func (*Memory) GetTicketSessionMessages added in v0.16.0

func (r *Memory) GetTicketSessionMessages(ctx context.Context, ticketID types.TicketID, source *session.SessionSource, msgType *session.MessageType, limit, offset int) ([]*session.Message, error)

func (*Memory) GetTicketsBySpan

func (r *Memory) GetTicketsBySpan(ctx context.Context, start, end time.Time) ([]*ticket.Ticket, error)

func (*Memory) GetTicketsByStatus

func (r *Memory) GetTicketsByStatus(ctx context.Context, statuses []types.TicketStatus, keyword, assigneeID string, offset, limit int) ([]*ticket.Ticket, error)

func (*Memory) GetTicketsByStatusAndSpan

func (r *Memory) GetTicketsByStatusAndSpan(ctx context.Context, status types.TicketStatus, begin, end time.Time) ([]*ticket.Ticket, error)

func (*Memory) GetTicketsWithInvalidEmbedding

func (r *Memory) GetTicketsWithInvalidEmbedding(ctx context.Context) ([]*ticket.Ticket, error)

func (*Memory) GetToken

func (r *Memory) GetToken(ctx context.Context, tokenID auth.TokenID) (*auth.Token, error)

func (*Memory) GetTurn added in v0.16.0

func (r *Memory) GetTurn(ctx context.Context, turnID types.TurnID) (*session.Turn, error)

func (*Memory) GetTurnsBySession added in v0.16.0

func (r *Memory) GetTurnsBySession(ctx context.Context, sessionID types.SessionID) ([]*session.Turn, error)

func (*Memory) IsTagNameExists

func (r *Memory) IsTagNameExists(ctx context.Context, name string) (bool, error)

func (*Memory) ListAllKnowledges added in v0.14.0

func (r *Memory) ListAllKnowledges(_ context.Context) ([]*knowledge.Knowledge, error)

func (*Memory) ListAllTags

func (r *Memory) ListAllTags(ctx context.Context) ([]*tag.Tag, error)

func (*Memory) ListDiagnoses added in v0.13.0

func (r *Memory) ListDiagnoses(_ context.Context, offset, limit int) ([]*diagnosis.Diagnosis, int, error)

ListDiagnoses returns paginated diagnoses ordered by CreatedAt DESC.

func (*Memory) ListDiagnosisIssues added in v0.13.0

func (r *Memory) ListDiagnosisIssues(_ context.Context, diagnosisID types.DiagnosisID, offset, limit int, status *diagnosis.IssueStatus, ruleID *diagnosis.RuleID) ([]*diagnosis.Issue, int, error)

ListDiagnosisIssues returns paginated issues for a diagnosis ordered by CreatedAt ASC. status and ruleID are optional server-side filters.

func (*Memory) ListKnowledgeLogs added in v0.14.0

func (r *Memory) ListKnowledgeLogs(_ context.Context, knowledgeID types.KnowledgeID) ([]*knowledge.KnowledgeLog, error)

func (*Memory) ListKnowledgeTags added in v0.14.0

func (r *Memory) ListKnowledgeTags(_ context.Context) ([]*knowledge.KnowledgeTag, error)

func (*Memory) ListKnowledgesByCategoryAndTags added in v0.14.0

func (r *Memory) ListKnowledgesByCategoryAndTags(_ context.Context, category types.KnowledgeCategory, tagIDs []types.KnowledgeTagID) ([]*knowledge.Knowledge, error)

func (*Memory) ListLegacyKnowledges added in v0.14.0

func (r *Memory) ListLegacyKnowledges(_ context.Context) ([]*interfaces.LegacyKnowledge, error)

ListLegacyKnowledges returns nil for the memory repository since it has no legacy data.

func (*Memory) ListPendingDiagnosisIssues added in v0.13.0

func (r *Memory) ListPendingDiagnosisIssues(_ context.Context, diagnosisID types.DiagnosisID) ([]*diagnosis.Issue, error)

ListPendingDiagnosisIssues returns all pending issues for a diagnosis.

func (*Memory) ListQueuedAlerts added in v0.14.0

func (r *Memory) ListQueuedAlerts(ctx context.Context, offset, limit int) ([]*alert.QueuedAlert, error)

ListQueuedAlerts returns queued alerts ordered by CreatedAt ASC (FIFO) with pagination

func (*Memory) PromoteSessionToTicket added in v0.16.0

func (r *Memory) PromoteSessionToTicket(ctx context.Context, sessionID types.SessionID, ticketID types.TicketID) error

func (*Memory) PutActivity

func (r *Memory) PutActivity(ctx context.Context, activity *activity.Activity) error

Activity related methods

func (*Memory) PutAlert

func (r *Memory) PutAlert(ctx context.Context, alert alert.Alert) error

func (*Memory) PutAlertList

func (r *Memory) PutAlertList(ctx context.Context, list *alert.List) error

func (*Memory) PutDiagnosis added in v0.13.0

func (r *Memory) PutDiagnosis(_ context.Context, d *diagnosis.Diagnosis) error

PutDiagnosis saves or updates a diagnosis header.

func (*Memory) PutDiagnosisIssue added in v0.13.0

func (r *Memory) PutDiagnosisIssue(_ context.Context, issue *diagnosis.Issue) error

PutDiagnosisIssue saves or updates a diagnosis issue.

func (*Memory) PutHITLRequest added in v0.13.0

func (r *Memory) PutHITLRequest(ctx context.Context, req *hitl.Request) error

func (*Memory) PutKnowledge added in v0.8.0

func (r *Memory) PutKnowledge(_ context.Context, k *knowledge.Knowledge) error

func (*Memory) PutKnowledgeLog added in v0.14.0

func (r *Memory) PutKnowledgeLog(_ context.Context, log *knowledge.KnowledgeLog) error

func (*Memory) PutKnowledgeTag added in v0.14.0

func (r *Memory) PutKnowledgeTag(_ context.Context, tag *knowledge.KnowledgeTag) error

func (*Memory) PutQueuedAlert added in v0.14.0

func (r *Memory) PutQueuedAlert(ctx context.Context, qa *alert.QueuedAlert) error

PutQueuedAlert saves a queued alert

func (*Memory) PutRefineGroup added in v0.10.0

func (r *Memory) PutRefineGroup(ctx context.Context, group *refine.Group) error

func (*Memory) PutReprocessBatchJob added in v0.14.0

func (r *Memory) PutReprocessBatchJob(ctx context.Context, job *alert.ReprocessBatchJob) error

PutReprocessBatchJob saves a reprocess batch job

func (*Memory) PutReprocessJob added in v0.14.0

func (r *Memory) PutReprocessJob(ctx context.Context, job *alert.ReprocessJob) error

PutReprocessJob saves a reprocess job

func (*Memory) PutSession added in v0.8.0

func (r *Memory) PutSession(ctx context.Context, sess *session.Session) error

func (*Memory) PutSessionMessage added in v0.8.0

func (r *Memory) PutSessionMessage(ctx context.Context, message *session.Message) error

func (*Memory) PutTicket

func (r *Memory) PutTicket(ctx context.Context, t ticket.Ticket) error

func (*Memory) PutToken

func (r *Memory) PutToken(ctx context.Context, token *auth.Token) error

Token related methods

func (*Memory) PutTurn added in v0.16.0

func (r *Memory) PutTurn(ctx context.Context, turn *session.Turn) error

func (*Memory) RefreshSessionLock added in v0.16.0

func (r *Memory) RefreshSessionLock(ctx context.Context, sessionID types.SessionID, holderID string, ttl time.Duration) error

func (*Memory) ReleaseSessionLock added in v0.16.0

func (r *Memory) ReleaseSessionLock(ctx context.Context, sessionID types.SessionID, holderID string) error

func (*Memory) RemoveTagFromAllAlerts

func (r *Memory) RemoveTagFromAllAlerts(ctx context.Context, name string) error

func (*Memory) RemoveTagFromAllTickets

func (r *Memory) RemoveTagFromAllTickets(ctx context.Context, name string) error

func (*Memory) RemoveTagIDFromAllAlerts

func (r *Memory) RemoveTagIDFromAllAlerts(ctx context.Context, tagID string) error

func (*Memory) RemoveTagIDFromAllTickets

func (r *Memory) RemoveTagIDFromAllTickets(ctx context.Context, tagID string) error

func (*Memory) ResetCallCounts

func (r *Memory) ResetCallCounts()

ResetCallCounts clears all call counters

func (*Memory) SearchAlerts

func (r *Memory) SearchAlerts(ctx context.Context, path, op string, value any, limit int) (alert.Alerts, error)

func (*Memory) SearchQueuedAlerts added in v0.14.0

func (r *Memory) SearchQueuedAlerts(ctx context.Context, keyword string, offset, limit int) ([]*alert.QueuedAlert, int, error)

SearchQueuedAlerts searches queued alerts by keyword in title and data

func (*Memory) SearchSessionMessages added in v0.16.0

func (r *Memory) SearchSessionMessages(ctx context.Context, ticketID types.TicketID, query string, limit int) ([]*session.Message, error)

func (*Memory) UnbindAlertFromTicket

func (r *Memory) UnbindAlertFromTicket(ctx context.Context, alertID types.AlertID) error

func (*Memory) UpdateAlertStatus added in v0.10.0

func (r *Memory) UpdateAlertStatus(ctx context.Context, alertID types.AlertID, status alert.AlertStatus) error

func (*Memory) UpdateHITLRequestStatus added in v0.13.0

func (r *Memory) UpdateHITLRequestStatus(ctx context.Context, id types.HITLRequestID, status hitl.Status, respondedBy string, response map[string]any) error

func (*Memory) UpdateNotice

func (r *Memory) UpdateNotice(ctx context.Context, notice *notice.Notice) error

func (*Memory) UpdateSessionLastActive added in v0.16.0

func (r *Memory) UpdateSessionLastActive(ctx context.Context, sessionID types.SessionID, t time.Time) error

func (*Memory) UpdateTag

func (r *Memory) UpdateTag(ctx context.Context, tag *tag.Tag) error

func (*Memory) UpdateTurnIntent added in v0.16.0

func (r *Memory) UpdateTurnIntent(ctx context.Context, turnID types.TurnID, intent string) error

func (*Memory) UpdateTurnStatus added in v0.16.0

func (r *Memory) UpdateTurnStatus(ctx context.Context, turnID types.TurnID, status session.TurnStatus, endedAt *time.Time) error

func (*Memory) WatchHITLRequest added in v0.13.0

func (r *Memory) WatchHITLRequest(ctx context.Context, id types.HITLRequestID) (<-chan *hitl.Request, <-chan error)

Jump to

Keyboard shortcuts

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