Class: SmartBrain::Server::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_brain/server/service.rb

Overview

Shared facade over the SmartBrain runtime. The HTTP app, MCP server, and CLI all go through a Service instance so behavior is identical across every front-end and only the transport differs.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeService

Returns a new instance of Service.



19
20
21
# File 'lib/smart_brain/server/service.rb', line 19

def initialize
  raise 'SmartBrain runtime not configured; call Service.build first' unless SmartBrain.instance_variable_get(:@runtime)
end

Class Method Details

.build(config_path: nil, smart_rag_client: nil) ⇒ Object

Configure the singleton runtime and return a Service bound to it.



13
14
15
16
# File 'lib/smart_brain/server/service.rb', line 13

def build(config_path: nil, smart_rag_client: nil)
  SmartBrain.configure(config_path: config_path, smart_rag_client: smart_rag_client)
  new
end

Instance Method Details

#backendObject



50
51
52
# File 'lib/smart_brain/server/service.rb', line 50

def backend
  SmartBrain.storage_backend
end

#brief(session_id:, query: nil, **opts) ⇒ Object



116
117
118
# File 'lib/smart_brain/server/service.rb', line 116

def brief(session_id:, query: nil, **opts)
  SmartBrain.brief(session_id: session_id, query: query, **opts)
end

#commit(session_id:, turn_events:, domain_id: nil, scope_context: nil) ⇒ Object



23
24
25
# File 'lib/smart_brain/server/service.rb', line 23

def commit(session_id:, turn_events:, domain_id: nil, scope_context: nil)
  SmartBrain.commit_turn(session_id: session_id, turn_events: turn_events, domain_id: domain_id, scope_context: scope_context)
end

#compose(session_id:, user_message:, agent_state: {}, domain_id: nil, scope_context: nil) ⇒ Object



27
28
29
30
31
32
# File 'lib/smart_brain/server/service.rb', line 27

def compose(session_id:, user_message:, agent_state: {}, domain_id: nil, scope_context: nil)
  SmartBrain.compose_context(
    session_id: session_id, user_message: user_message, agent_state: agent_state,
    domain_id: domain_id, scope_context: scope_context
  )
end

#demote(memory_item_id:, evidence_refs:, reason:, reason_type:, **opts) ⇒ Object



69
70
71
72
# File 'lib/smart_brain/server/service.rb', line 69

def demote(memory_item_id:, evidence_refs:, reason:, reason_type:, **opts)
  SmartBrain.demote(memory_item_id: memory_item_id, evidence_refs: evidence_refs,
                    reason: reason, reason_type: reason_type, **opts)
end

#distill(session_id:, statement:, content: nil, tier:, supporting_refs: [], **opts) ⇒ Object

--- knowledge lifecycle (Stage-1) ---



55
56
57
58
# File 'lib/smart_brain/server/service.rb', line 55

def distill(session_id:, statement:, content: nil, tier:, supporting_refs: [], **opts)
  SmartBrain.distill(session_id: session_id, statement: statement, content: content,
                     tier: tier, supporting_refs: supporting_refs, **opts)
end

#fact_check(session_id:, text:, **opts) ⇒ Object

--- fact-check / briefing ---



112
113
114
# File 'lib/smart_brain/server/service.rb', line 112

def fact_check(session_id:, text:, **opts)
  SmartBrain.fact_check(session_id: session_id, text: text, **opts)
end

#gate(memory_item_id:, **opts) ⇒ Object



60
61
62
# File 'lib/smart_brain/server/service.rb', line 60

def gate(memory_item_id:, **opts)
  SmartBrain.gate(memory_item_id: memory_item_id, **opts)
end

#kg_add(session_id:, subject:, predicate:, object:, **opts) ⇒ Object

--- knowledge graph ---



91
92
93
# File 'lib/smart_brain/server/service.rb', line 91

def kg_add(session_id:, subject:, predicate:, object:, **opts)
  SmartBrain.kg_add(session_id: session_id, subject: subject, predicate: predicate, object: object, **opts)
end

#kg_invalidate(edge_id:, reason: nil, **opts) ⇒ Object



103
104
105
# File 'lib/smart_brain/server/service.rb', line 103

def kg_invalidate(edge_id:, reason: nil, **opts)
  SmartBrain.kg_invalidate(edge_id: edge_id, reason: reason, **opts)
end

#kg_query(session_id:, **opts) ⇒ Object



95
96
97
# File 'lib/smart_brain/server/service.rb', line 95

def kg_query(session_id:, **opts)
  SmartBrain.kg_query(session_id: session_id, **opts)
end

#kg_stats(session_id:, **opts) ⇒ Object



107
108
109
# File 'lib/smart_brain/server/service.rb', line 107

def kg_stats(session_id:, **opts)
  SmartBrain.kg_stats(session_id: session_id, **opts)
end

#kg_timeline(session_id:, subject:, **opts) ⇒ Object



99
100
101
# File 'lib/smart_brain/server/service.rb', line 99

def kg_timeline(session_id:, subject:, **opts)
  SmartBrain.kg_timeline(session_id: session_id, subject: subject, **opts)
end

#knowledge_events(memory_item_id:, **opts) ⇒ Object



86
87
88
# File 'lib/smart_brain/server/service.rb', line 86

def knowledge_events(memory_item_id:, **opts)
  SmartBrain.knowledge_events(memory_item_id: memory_item_id, **opts)
end

#migrateObject



44
45
46
47
48
# File 'lib/smart_brain/server/service.rb', line 44

def migrate
  SmartBrain.migrate
rescue StandardError => e
  { ok: false, error: "#{e.class}: #{e.message}" }
end

#promote(memory_item_id:, verification_refs:, reason:, **opts) ⇒ Object



64
65
66
67
# File 'lib/smart_brain/server/service.rb', line 64

def promote(memory_item_id:, verification_refs:, reason:, **opts)
  SmartBrain.promote(memory_item_id: memory_item_id, verification_refs: verification_refs,
                     reason: reason, **opts)
end

#promote_to_scope(**args) ⇒ Object



78
79
80
# File 'lib/smart_brain/server/service.rb', line 78

def promote_to_scope(**args)
  SmartBrain.promote_to_scope(**args)
end

#promotion_lineage(memory_item_id:, **opts) ⇒ Object



82
83
84
# File 'lib/smart_brain/server/service.rb', line 82

def promotion_lineage(memory_item_id:, **opts)
  SmartBrain.promotion_lineage(memory_item_id: memory_item_id, **opts)
end

#resume(query:) ⇒ Object



124
125
126
# File 'lib/smart_brain/server/service.rb', line 124

def resume(query:)
  SmartBrain.resume(query: query)
end

#retract(memory_item_id:, evidence_refs:, reason:, **opts) ⇒ Object



74
75
76
# File 'lib/smart_brain/server/service.rb', line 74

def retract(memory_item_id:, evidence_refs:, reason:, **opts)
  SmartBrain.retract(memory_item_id: memory_item_id, evidence_refs: evidence_refs, reason: reason, **opts)
end

#search(session_id:, query:, limit: nil, domain_id: nil, scope_context: nil) ⇒ Object



34
35
36
37
38
# File 'lib/smart_brain/server/service.rb', line 34

def search(session_id:, query:, limit: nil, domain_id: nil, scope_context: nil)
  SmartBrain.search_memory(
    session_id: session_id, query: query, limit: limit, domain_id: domain_id, scope_context: scope_context
  )
end

#statusObject



40
41
42
# File 'lib/smart_brain/server/service.rb', line 40

def status
  SmartBrain.diagnostics
end

#wake_up(session_id:, **opts) ⇒ Object



120
121
122
# File 'lib/smart_brain/server/service.rb', line 120

def wake_up(session_id:, **opts)
  SmartBrain.wake_up(session_id: session_id, **opts)
end