Documentation
¶
Overview ¶
Package server provides the HTTP API for Engram.
This is how external clients (OpenCode plugin, Claude Code hooks, any agent) communicate with the memory engine. Simple JSON REST API.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SemanticPromptBuilder ¶ added in v1.15.0
type SemanticPromptBuilder func(a, b store.ObservationSnippet) string
SemanticPromptBuilder constructs the LLM prompt for a given pair of observation snippets. Injected from cmd/engram/main.go alongside SemanticRunnerFactory.
type SemanticRunnerFactory ¶ added in v1.15.0
type SemanticRunnerFactory func(name string) (store.SemanticRunner, error)
SemanticRunnerFactory is a function that resolves a store.SemanticRunner by name. It is injected from cmd/engram/main.go so that internal/server does not depend on internal/llm directly (preserving the import-cycle boundary).
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) SetOnWrite ¶ added in v1.8.0
func (s *Server) SetOnWrite(fn func())
SetOnWrite configures a callback invoked after every successful local write. This is used to notify autosync.Manager via NotifyDirty().
func (*Server) SetPromptBuilder ¶ added in v1.15.0
func (s *Server) SetPromptBuilder(fn SemanticPromptBuilder)
SetPromptBuilder configures the LLM prompt builder for semantic scan pairs. When not set, an empty-string builder is used (valid for tests, not production).
func (*Server) SetRunnerFactory ¶ added in v1.15.0
func (s *Server) SetRunnerFactory(fn SemanticRunnerFactory)
SetRunnerFactory configures the semantic runner factory used by POST /conflicts/scan when semantic=true. When not set, semantic=true requests fail with 500.
func (*Server) SetSyncStatus ¶ added in v1.8.0
func (s *Server) SetSyncStatus(provider SyncStatusProvider)
SetSyncStatus configures the sync status provider for the /sync/status endpoint.
type SyncStatus ¶ added in v1.8.0
type SyncStatus struct {
Enabled bool `json:"enabled"`
Phase string `json:"phase"`
LastError string `json:"last_error,omitempty"`
ConsecutiveFailures int `json:"consecutive_failures"`
BackoffUntil *time.Time `json:"backoff_until,omitempty"`
LastSyncAt *time.Time `json:"last_sync_at,omitempty"`
ReasonCode string `json:"reason_code,omitempty"`
ReasonMessage string `json:"reason_message,omitempty"`
UpgradeStage string `json:"upgrade_stage,omitempty"`
UpgradeReasonCode string `json:"upgrade_reason_code,omitempty"`
UpgradeReasonMessage string `json:"upgrade_reason_message,omitempty"`
// Phase 2: deferred relation retry counts surfaced from sync_apply_deferred.
DeferredCount int `json:"deferred_count"`
DeadCount int `json:"dead_count"`
}
SyncStatus mirrors autosync.Status to avoid a direct import cycle.
type SyncStatusProvider ¶ added in v1.8.0
type SyncStatusProvider interface {
Status(project string) SyncStatus
}
SyncStatusProvider returns the current sync status. This is implemented by autosync.Manager and injected from cmd/engram/main.go.