Class: SimpleAcp::Storage::Base Abstract
- Inherits:
-
Object
- Object
- SimpleAcp::Storage::Base
- Defined in:
- lib/simple_acp/storage/base.rb
Overview
Subclass and implement all methods
Abstract base class for storage backends.
Defines the interface for storing runs, sessions, and events. Implementations include Memory, Redis, and PostgreSQL.
Direct Known Subclasses
Instance Method Summary collapse
-
#add_event(run_id, event) ⇒ Models::Event
Add an event to a run.
-
#close ⇒ void
Close the storage connection.
-
#delete_run(run_id) ⇒ void
Delete a run.
-
#delete_session(session_id) ⇒ void
Delete a session.
-
#get_events(run_id, limit: 100, offset: 0) ⇒ Array<Models::Event>
Get events for a run.
-
#get_run(run_id) ⇒ Models::Run?
Retrieve a run by ID.
-
#get_session(session_id) ⇒ Models::Session?
Retrieve a session by ID.
-
#initialize(options = {}) ⇒ Base
constructor
Initialize the storage backend.
-
#list_runs(agent_name: nil, session_id: nil, limit: 10, offset: 0) ⇒ Hash
List runs with optional filtering.
-
#ping ⇒ Boolean
Check if the storage is accessible.
-
#save_run(run) ⇒ Models::Run
Save a run.
-
#save_session(session) ⇒ Models::Session
Save a session.
Constructor Details
#initialize(options = {}) ⇒ Base
Initialize the storage backend.
23 24 25 |
# File 'lib/simple_acp/storage/base.rb', line 23 def initialize( = {}) = end |
Instance Method Details
#add_event(run_id, event) ⇒ Models::Event
Add an event to a run.
99 100 101 |
# File 'lib/simple_acp/storage/base.rb', line 99 def add_event(run_id, event) raise NotImplementedError, "#{self.class}#add_event must be implemented" end |
#close ⇒ void
This method returns an undefined value.
Close the storage connection.
117 118 119 |
# File 'lib/simple_acp/storage/base.rb', line 117 def close # Override in subclasses if needed end |
#delete_run(run_id) ⇒ void
This method returns an undefined value.
Delete a run.
50 51 52 |
# File 'lib/simple_acp/storage/base.rb', line 50 def delete_run(run_id) raise NotImplementedError, "#{self.class}#delete_run must be implemented" end |
#delete_session(session_id) ⇒ void
This method returns an undefined value.
Delete a session.
89 90 91 |
# File 'lib/simple_acp/storage/base.rb', line 89 def delete_session(session_id) raise NotImplementedError, "#{self.class}#delete_session must be implemented" end |
#get_events(run_id, limit: 100, offset: 0) ⇒ Array<Models::Event>
Get events for a run.
110 111 112 |
# File 'lib/simple_acp/storage/base.rb', line 110 def get_events(run_id, limit: 100, offset: 0) raise NotImplementedError, "#{self.class}#get_events must be implemented" end |
#get_run(run_id) ⇒ Models::Run?
Retrieve a run by ID.
32 33 34 |
# File 'lib/simple_acp/storage/base.rb', line 32 def get_run(run_id) raise NotImplementedError, "#{self.class}#get_run must be implemented" end |
#get_session(session_id) ⇒ Models::Session?
Retrieve a session by ID.
71 72 73 |
# File 'lib/simple_acp/storage/base.rb', line 71 def get_session(session_id) raise NotImplementedError, "#{self.class}#get_session must be implemented" end |
#list_runs(agent_name: nil, session_id: nil, limit: 10, offset: 0) ⇒ Hash
List runs with optional filtering.
62 63 64 |
# File 'lib/simple_acp/storage/base.rb', line 62 def list_runs(agent_name: nil, session_id: nil, limit: 10, offset: 0) raise NotImplementedError, "#{self.class}#list_runs must be implemented" end |
#ping ⇒ Boolean
Check if the storage is accessible.
124 125 126 |
# File 'lib/simple_acp/storage/base.rb', line 124 def ping true end |
#save_run(run) ⇒ Models::Run
Save a run.
41 42 43 |
# File 'lib/simple_acp/storage/base.rb', line 41 def save_run(run) raise NotImplementedError, "#{self.class}#save_run must be implemented" end |
#save_session(session) ⇒ Models::Session
Save a session.
80 81 82 |
# File 'lib/simple_acp/storage/base.rb', line 80 def save_session(session) raise NotImplementedError, "#{self.class}#save_session must be implemented" end |