activematrix 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -28
  3. data/app/models/active_matrix/agent.rb +36 -1
  4. data/app/models/active_matrix/agent_store.rb +29 -0
  5. data/app/models/active_matrix/application_record.rb +8 -0
  6. data/app/models/active_matrix/chat_session.rb +29 -0
  7. data/app/models/active_matrix/knowledge_base.rb +26 -0
  8. data/exe/activematrix +7 -0
  9. data/lib/active_matrix/agent_manager.rb +160 -121
  10. data/lib/active_matrix/agent_registry.rb +25 -21
  11. data/lib/active_matrix/api.rb +8 -2
  12. data/lib/active_matrix/async_query.rb +58 -0
  13. data/lib/active_matrix/bot/base.rb +3 -3
  14. data/lib/active_matrix/bot/builtin_commands.rb +188 -0
  15. data/lib/active_matrix/bot/command_parser.rb +175 -0
  16. data/lib/active_matrix/cli.rb +273 -0
  17. data/lib/active_matrix/client.rb +21 -6
  18. data/lib/active_matrix/client_pool.rb +38 -27
  19. data/lib/active_matrix/daemon/probe_server.rb +118 -0
  20. data/lib/active_matrix/daemon/signal_handler.rb +156 -0
  21. data/lib/active_matrix/daemon/worker.rb +109 -0
  22. data/lib/active_matrix/daemon.rb +236 -0
  23. data/lib/active_matrix/engine.rb +5 -1
  24. data/lib/active_matrix/errors.rb +1 -1
  25. data/lib/active_matrix/event_router.rb +61 -49
  26. data/lib/active_matrix/events.rb +1 -0
  27. data/lib/active_matrix/instrumentation.rb +148 -0
  28. data/lib/active_matrix/memory/agent_memory.rb +7 -21
  29. data/lib/active_matrix/memory/conversation_memory.rb +4 -20
  30. data/lib/active_matrix/memory/global_memory.rb +15 -30
  31. data/lib/active_matrix/message_dispatcher.rb +197 -0
  32. data/lib/active_matrix/metrics.rb +424 -0
  33. data/lib/active_matrix/presence_manager.rb +181 -0
  34. data/lib/active_matrix/telemetry.rb +134 -0
  35. data/lib/active_matrix/version.rb +1 -1
  36. data/lib/active_matrix.rb +12 -2
  37. data/lib/generators/active_matrix/install/install_generator.rb +3 -15
  38. data/lib/generators/active_matrix/install/templates/README +5 -2
  39. metadata +141 -45
  40. data/lib/active_matrix/protocols/cs/message_relationships.rb +0 -318
  41. data/lib/generators/active_matrix/install/templates/create_agent_memories.rb +0 -17
  42. data/lib/generators/active_matrix/install/templates/create_conversation_contexts.rb +0 -21
  43. data/lib/generators/active_matrix/install/templates/create_global_memories.rb +0 -20
  44. data/lib/generators/active_matrix/install/templates/create_matrix_agents.rb +0 -26
@@ -0,0 +1,134 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveMatrix
4
+ # OpenTelemetry integration for ActiveMatrix
5
+ #
6
+ # Provides distributed tracing for:
7
+ # - Agent lifecycle (connect, disconnect, error)
8
+ # - Message handling
9
+ # - Room operations
10
+ # - Matrix API calls
11
+ #
12
+ # @example Enable with OTLP exporter
13
+ # ENV['OTEL_TRACES_EXPORTER'] = 'otlp'
14
+ # ENV['OTEL_SERVICE_NAME'] = 'activematrix'
15
+ # ActiveMatrix::Telemetry.configure!
16
+ #
17
+ # @example Enable with console exporter for debugging
18
+ # ActiveMatrix::Telemetry.configure!(exporter: :console)
19
+ #
20
+ module Telemetry
21
+ TRACER_NAME = 'activematrix'
22
+ TRACER_VERSION = ActiveMatrix::VERSION
23
+
24
+ class << self
25
+ # @return [Boolean] whether OpenTelemetry is available
26
+ def available?
27
+ @available ||= begin
28
+ require 'opentelemetry/sdk'
29
+ true
30
+ rescue LoadError
31
+ false
32
+ end
33
+ end
34
+
35
+ # @return [Boolean] whether telemetry has been configured
36
+ def configured?
37
+ @configured ||= false
38
+ end
39
+
40
+ # Configure OpenTelemetry SDK for ActiveMatrix
41
+ #
42
+ # @param exporter [Symbol, nil] :console, :otlp, or nil for env-based config
43
+ # @param service_name [String] service name for traces
44
+ def configure!(exporter: nil, service_name: 'activematrix')
45
+ return false unless available?
46
+ return true if configured?
47
+
48
+ require 'opentelemetry/sdk'
49
+
50
+ case exporter
51
+ when :console
52
+ require 'opentelemetry/sdk'
53
+ OpenTelemetry::SDK.configure do |c|
54
+ c.service_name = service_name
55
+ c.add_span_processor(
56
+ OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(
57
+ OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter.new
58
+ )
59
+ )
60
+ end
61
+ when :otlp
62
+ require 'opentelemetry/exporter/otlp'
63
+ ENV['OTEL_SERVICE_NAME'] ||= service_name
64
+ OpenTelemetry::SDK.configure
65
+ else
66
+ # Use environment variables
67
+ ENV['OTEL_SERVICE_NAME'] ||= service_name
68
+ OpenTelemetry::SDK.configure
69
+ end
70
+
71
+ @configured = true
72
+ end
73
+
74
+ # Get the ActiveMatrix tracer
75
+ #
76
+ # @return [OpenTelemetry::Trace::Tracer, NullTracer]
77
+ def tracer
78
+ return NullTracer.instance unless configured?
79
+
80
+ OpenTelemetry.tracer_provider.tracer(TRACER_NAME, TRACER_VERSION)
81
+ end
82
+
83
+ # Trace a block of code
84
+ #
85
+ # @param name [String] span name
86
+ # @param attributes [Hash] span attributes
87
+ # @yield [span] the current span
88
+ def trace(name, attributes: {}, kind: :internal, &)
89
+ return yield(NullSpan.instance) unless configured?
90
+
91
+ tracer.in_span(name, attributes: attributes, kind: kind, &)
92
+ end
93
+
94
+ # Record an exception on the current span
95
+ #
96
+ # @param exception [Exception]
97
+ # @param attributes [Hash] additional attributes
98
+ def record_exception(exception, attributes: {})
99
+ return unless configured?
100
+
101
+ span = OpenTelemetry::Trace.current_span
102
+ span.record_exception(exception, attributes: attributes)
103
+ span.status = OpenTelemetry::Trace::Status.error(exception.message)
104
+ end
105
+
106
+ # Shutdown the tracer provider
107
+ def shutdown
108
+ return unless configured?
109
+
110
+ OpenTelemetry.tracer_provider.shutdown
111
+ @configured = false
112
+ end
113
+ end
114
+
115
+ # Null tracer for when OTel is not available
116
+ class NullTracer
117
+ include Singleton
118
+
119
+ def in_span(_name, **_opts)
120
+ yield NullSpan.instance
121
+ end
122
+ end
123
+
124
+ # Null span for when OTel is not available
125
+ class NullSpan
126
+ include Singleton
127
+
128
+ def set_attribute(_key, _value); end
129
+ def add_event(_name, **_opts); end
130
+ def record_exception(_exception, **_opts); end
131
+ def status=(_status); end
132
+ end
133
+ end
134
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveMatrix
4
- VERSION = '0.0.7'
4
+ VERSION = '0.0.8'
5
5
  end
data/lib/active_matrix.rb CHANGED
@@ -28,7 +28,9 @@ module ActiveMatrix
28
28
  :conversation_stale_after, :memory_cleanup_interval,
29
29
  :event_queue_size, :event_processing_timeout,
30
30
  :max_clients_per_homeserver, :client_idle_timeout,
31
- :agent_log_level, :log_agent_events
31
+ :agent_log_level, :log_agent_events,
32
+ # Daemon settings
33
+ :daemon_workers, :probe_port, :probe_host, :shutdown_timeout
32
34
 
33
35
  def initialize
34
36
  # Set defaults
@@ -44,6 +46,11 @@ module ActiveMatrix
44
46
  @client_idle_timeout = 300 # 5 minutes
45
47
  @agent_log_level = :info
46
48
  @log_agent_events = false
49
+ # Daemon defaults
50
+ @daemon_workers = 1
51
+ @probe_port = 3042
52
+ @probe_host = '127.0.0.1'
53
+ @shutdown_timeout = 30
47
54
  end
48
55
  end
49
56
 
@@ -80,10 +87,13 @@ module ActiveMatrix
80
87
  Loader.ignore("#{__dir__}/generators")
81
88
  Loader.ignore("#{__dir__}/activematrix.rb")
82
89
 
83
- # Ignore files that don't follow Zeitwerk naming conventions
90
+ # Ignore files that don't follow Zeitwerk naming conventions or are standalone
84
91
  Loader.ignore("#{__dir__}/active_matrix/errors.rb")
85
92
  Loader.ignore("#{__dir__}/active_matrix/events.rb")
86
93
  Loader.ignore("#{__dir__}/active_matrix/uri_module.rb")
94
+ Loader.ignore("#{__dir__}/active_matrix/cli.rb")
95
+ Loader.ignore("#{__dir__}/active_matrix/daemon.rb")
96
+ Loader.ignore("#{__dir__}/active_matrix/daemon")
87
97
 
88
98
  # Configure inflections for special cases
89
99
  Loader.inflector.inflect(
@@ -1,22 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rails/generators'
4
- require 'rails/generators/active_record'
5
4
 
6
5
  module ActiveMatrix
7
6
  module Generators
8
7
  class InstallGenerator < Rails::Generators::Base
9
- include ActiveRecord::Generators::Migration
10
-
11
8
  source_root File.expand_path('templates', __dir__)
12
9
 
13
- desc 'Creates ActiveMatrix migrations and initializers'
10
+ desc 'Installs ActiveMatrix initializer and copies migrations'
14
11
 
15
- def create_migrations
16
- migration_template 'create_matrix_agents.rb', 'db/migrate/create_matrix_agents.rb'
17
- migration_template 'create_agent_memories.rb', 'db/migrate/create_agent_memories.rb'
18
- migration_template 'create_conversation_contexts.rb', 'db/migrate/create_conversation_contexts.rb'
19
- migration_template 'create_global_memories.rb', 'db/migrate/create_global_memories.rb'
12
+ def copy_migrations
13
+ rails_command 'active_matrix:install:migrations', inline: true
20
14
  end
21
15
 
22
16
  def create_initializer
@@ -26,12 +20,6 @@ module ActiveMatrix
26
20
  def display_post_install
27
21
  readme 'README' if behavior == :invoke
28
22
  end
29
-
30
- private
31
-
32
- def migration_version
33
- "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
34
- end
35
23
  end
36
24
  end
37
25
  end
@@ -2,6 +2,9 @@
2
2
 
3
3
  ActiveMatrix Multi-Agent System has been installed!
4
4
 
5
+ Requirements:
6
+ - PostgreSQL 18+ (for UUIDv7 support)
7
+
5
8
  Next steps:
6
9
 
7
10
  1. Run migrations:
@@ -11,7 +14,7 @@ Next steps:
11
14
  rails generate active_matrix:bot MyFirstBot
12
15
 
13
16
  3. Configure your agents in the Rails console:
14
- agent = MatrixAgent.create!(
17
+ agent = ActiveMatrix::Agent.create!(
15
18
  name: 'captain',
16
19
  homeserver: 'https://matrix.org',
17
20
  username: 'captain_bot',
@@ -25,6 +28,6 @@ Next steps:
25
28
  Or start individual agents:
26
29
  ActiveMatrix::AgentManager.instance.start_agent(agent)
27
30
 
28
- For more information, visit: https://github.com/seuros/agent_smith
31
+ For more information, visit: https://github.com/seuros/activematrix
29
32
 
30
33
  ===============================================================================
metadata CHANGED
@@ -1,17 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activematrix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih
8
8
  - Alexander Olofsson
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
11
  date: 1980-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maxitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '6.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-sdk
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - ">="
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: state_machines-mermaid
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: ostruct
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +81,7 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: rake
84
+ name: rails_lens
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - ">="
@@ -67,7 +95,7 @@ dependencies:
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: rubocop
98
+ name: rake
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - ">="
@@ -81,7 +109,7 @@ dependencies:
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
- name: rubocop-minitest
112
+ name: rubocop
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - ">="
@@ -95,7 +123,7 @@ dependencies:
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
- name: rubocop-performance
126
+ name: rubocop-minitest
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - ">="
@@ -109,7 +137,7 @@ dependencies:
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: rubocop-rails
140
+ name: rubocop-performance
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - ">="
@@ -123,7 +151,7 @@ dependencies:
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: simplecov
154
+ name: rubocop-rails
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="
@@ -137,19 +165,19 @@ dependencies:
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
- name: sqlite3
168
+ name: simplecov
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
- - - "~>"
171
+ - - ">="
144
172
  - !ruby/object:Gem::Version
145
- version: '2.0'
173
+ version: '0'
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
- - - "~>"
178
+ - - ">="
151
179
  - !ruby/object:Gem::Version
152
- version: '2.0'
180
+ version: '0'
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: syslog
155
183
  requirement: !ruby/object:Gem::Requirement
@@ -210,86 +238,146 @@ dependencies:
210
238
  name: activejob
211
239
  requirement: !ruby/object:Gem::Requirement
212
240
  requirements:
213
- - - "~>"
241
+ - - ">="
214
242
  - !ruby/object:Gem::Version
215
243
  version: '8.0'
244
+ - - "<"
245
+ - !ruby/object:Gem::Version
246
+ version: '9'
216
247
  type: :runtime
217
248
  prerelease: false
218
249
  version_requirements: !ruby/object:Gem::Requirement
219
250
  requirements:
220
- - - "~>"
251
+ - - ">="
221
252
  - !ruby/object:Gem::Version
222
253
  version: '8.0'
254
+ - - "<"
255
+ - !ruby/object:Gem::Version
256
+ version: '9'
223
257
  - !ruby/object:Gem::Dependency
224
258
  name: activerecord
225
259
  requirement: !ruby/object:Gem::Requirement
226
260
  requirements:
227
- - - "~>"
261
+ - - ">="
228
262
  - !ruby/object:Gem::Version
229
263
  version: '8.0'
264
+ - - "<"
265
+ - !ruby/object:Gem::Version
266
+ version: '9'
230
267
  type: :runtime
231
268
  prerelease: false
232
269
  version_requirements: !ruby/object:Gem::Requirement
233
270
  requirements:
234
- - - "~>"
271
+ - - ">="
235
272
  - !ruby/object:Gem::Version
236
273
  version: '8.0'
274
+ - - "<"
275
+ - !ruby/object:Gem::Version
276
+ version: '9'
237
277
  - !ruby/object:Gem::Dependency
238
- name: bcrypt
278
+ name: async
239
279
  requirement: !ruby/object:Gem::Requirement
240
280
  requirements:
241
- - - "~>"
281
+ - - ">="
242
282
  - !ruby/object:Gem::Version
243
- version: '3.1'
283
+ version: '2.21'
244
284
  type: :runtime
245
285
  prerelease: false
246
286
  version_requirements: !ruby/object:Gem::Requirement
247
287
  requirements:
248
- - - "~>"
288
+ - - ">="
249
289
  - !ruby/object:Gem::Version
250
- version: '3.1'
290
+ version: '2.21'
291
+ - !ruby/object:Gem::Dependency
292
+ name: async-http
293
+ requirement: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - ">="
296
+ - !ruby/object:Gem::Version
297
+ version: '0.86'
298
+ type: :runtime
299
+ prerelease: false
300
+ version_requirements: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - ">="
303
+ - !ruby/object:Gem::Version
304
+ version: '0.86'
251
305
  - !ruby/object:Gem::Dependency
252
- name: concurrent-ruby
306
+ name: bcrypt
253
307
  requirement: !ruby/object:Gem::Requirement
254
308
  requirements:
255
309
  - - "~>"
256
310
  - !ruby/object:Gem::Version
257
- version: '1.2'
311
+ version: '3.1'
258
312
  type: :runtime
259
313
  prerelease: false
260
314
  version_requirements: !ruby/object:Gem::Requirement
261
315
  requirements:
262
316
  - - "~>"
263
317
  - !ruby/object:Gem::Version
264
- version: '1.2'
318
+ version: '3.1'
265
319
  - !ruby/object:Gem::Dependency
266
320
  name: railties
267
321
  requirement: !ruby/object:Gem::Requirement
268
322
  requirements:
269
- - - "~>"
323
+ - - ">="
270
324
  - !ruby/object:Gem::Version
271
325
  version: '8.0'
326
+ - - "<"
327
+ - !ruby/object:Gem::Version
328
+ version: '9'
272
329
  type: :runtime
273
330
  prerelease: false
274
331
  version_requirements: !ruby/object:Gem::Requirement
275
332
  requirements:
276
- - - "~>"
333
+ - - ">="
277
334
  - !ruby/object:Gem::Version
278
335
  version: '8.0'
336
+ - - "<"
337
+ - !ruby/object:Gem::Version
338
+ version: '9'
339
+ - !ruby/object:Gem::Dependency
340
+ name: pg
341
+ requirement: !ruby/object:Gem::Requirement
342
+ requirements:
343
+ - - ">="
344
+ - !ruby/object:Gem::Version
345
+ version: '1.6'
346
+ type: :runtime
347
+ prerelease: false
348
+ version_requirements: !ruby/object:Gem::Requirement
349
+ requirements:
350
+ - - ">="
351
+ - !ruby/object:Gem::Version
352
+ version: '1.6'
279
353
  - !ruby/object:Gem::Dependency
280
354
  name: state_machines-activerecord
281
355
  requirement: !ruby/object:Gem::Requirement
282
356
  requirements:
283
- - - "<="
357
+ - - ">="
284
358
  - !ruby/object:Gem::Version
285
359
  version: 0.100.0
286
360
  type: :runtime
287
361
  prerelease: false
288
362
  version_requirements: !ruby/object:Gem::Requirement
289
363
  requirements:
290
- - - "<="
364
+ - - ">="
291
365
  - !ruby/object:Gem::Version
292
366
  version: 0.100.0
367
+ - !ruby/object:Gem::Dependency
368
+ name: thor
369
+ requirement: !ruby/object:Gem::Requirement
370
+ requirements:
371
+ - - ">="
372
+ - !ruby/object:Gem::Version
373
+ version: '1.0'
374
+ type: :runtime
375
+ prerelease: false
376
+ version_requirements: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - ">="
379
+ - !ruby/object:Gem::Version
380
+ version: '1.0'
293
381
  - !ruby/object:Gem::Dependency
294
382
  name: zeitwerk
295
383
  requirement: !ruby/object:Gem::Requirement
@@ -304,19 +392,18 @@ dependencies:
304
392
  - - "~>"
305
393
  - !ruby/object:Gem::Version
306
394
  version: '2.6'
307
- description: "ActiveMatrix is a comprehensive Rails-native Matrix SDK that enables
308
- developers to build sophisticated multi-agent bot systems \nand real-time communication
309
- features. This gem provides deep Rails integration with ActiveRecord models, state
310
- machines for \nbot lifecycle management, multi-tiered memory systems, intelligent
311
- event routing, connection pooling, and built-in \ninter-agent communication. Perfect
312
- for building chatbots, automation systems, monitoring agents, and collaborative
313
- AI \nsystems within Rails applications. Features include command handling, room
314
- management, media support, end-to-end encryption \ncapabilities, and extensive protocol
315
- support (CS, AS, IS, SS).\n"
395
+ description: |
396
+ ActiveMatrix is a comprehensive Rails-native Matrix SDK that enables developers to build sophisticated multi-agent bot systems
397
+ and real-time communication features. This gem provides deep Rails integration with ActiveRecord models, state machines for
398
+ bot lifecycle management, multi-tiered memory systems, intelligent event routing, connection pooling, and built-in
399
+ inter-agent communication. Perfect for building chatbots, automation systems, monitoring agents, and collaborative AI
400
+ systems within Rails applications. Features include command handling, room management, media support, end-to-end encryption
401
+ capabilities, and extensive protocol support (CS, AS, IS, SS).
316
402
  email:
317
403
  - terminale@gmail.com
318
404
  - ace@haxalot.com
319
- executables: []
405
+ executables:
406
+ - activematrix
320
407
  extensions: []
321
408
  extra_rdoc_files:
322
409
  - CHANGELOG.md
@@ -333,32 +420,44 @@ files:
333
420
  - app/models/active_matrix/application_record.rb
334
421
  - app/models/active_matrix/chat_session.rb
335
422
  - app/models/active_matrix/knowledge_base.rb
423
+ - exe/activematrix
336
424
  - lib/active_matrix.rb
337
425
  - lib/active_matrix/account_data_cache.rb
338
426
  - lib/active_matrix/agent_manager.rb
339
427
  - lib/active_matrix/agent_registry.rb
340
428
  - lib/active_matrix/api.rb
429
+ - lib/active_matrix/async_query.rb
341
430
  - lib/active_matrix/bot.rb
342
431
  - lib/active_matrix/bot/base.rb
432
+ - lib/active_matrix/bot/builtin_commands.rb
433
+ - lib/active_matrix/bot/command_parser.rb
343
434
  - lib/active_matrix/bot/multi_instance_base.rb
344
435
  - lib/active_matrix/cacheable.rb
436
+ - lib/active_matrix/cli.rb
345
437
  - lib/active_matrix/client.rb
346
438
  - lib/active_matrix/client_pool.rb
439
+ - lib/active_matrix/daemon.rb
440
+ - lib/active_matrix/daemon/probe_server.rb
441
+ - lib/active_matrix/daemon/signal_handler.rb
442
+ - lib/active_matrix/daemon/worker.rb
347
443
  - lib/active_matrix/engine.rb
348
444
  - lib/active_matrix/errors.rb
349
445
  - lib/active_matrix/event_router.rb
350
446
  - lib/active_matrix/events.rb
351
447
  - lib/active_matrix/extensions.rb
448
+ - lib/active_matrix/instrumentation.rb
352
449
  - lib/active_matrix/logging.rb
353
450
  - lib/active_matrix/memory.rb
354
451
  - lib/active_matrix/memory/agent_memory.rb
355
452
  - lib/active_matrix/memory/base.rb
356
453
  - lib/active_matrix/memory/conversation_memory.rb
357
454
  - lib/active_matrix/memory/global_memory.rb
455
+ - lib/active_matrix/message_dispatcher.rb
456
+ - lib/active_matrix/metrics.rb
358
457
  - lib/active_matrix/mxid.rb
458
+ - lib/active_matrix/presence_manager.rb
359
459
  - lib/active_matrix/protocols/as.rb
360
460
  - lib/active_matrix/protocols/cs.rb
361
- - lib/active_matrix/protocols/cs/message_relationships.rb
362
461
  - lib/active_matrix/protocols/is.rb
363
462
  - lib/active_matrix/protocols/msc.rb
364
463
  - lib/active_matrix/protocols/ss.rb
@@ -367,6 +466,7 @@ files:
367
466
  - lib/active_matrix/room.rb
368
467
  - lib/active_matrix/rooms/space.rb
369
468
  - lib/active_matrix/state_event_cache.rb
469
+ - lib/active_matrix/telemetry.rb
370
470
  - lib/active_matrix/uri_module.rb
371
471
  - lib/active_matrix/user.rb
372
472
  - lib/active_matrix/version.rb
@@ -377,10 +477,6 @@ files:
377
477
  - lib/generators/active_matrix/install/install_generator.rb
378
478
  - lib/generators/active_matrix/install/templates/README
379
479
  - lib/generators/active_matrix/install/templates/active_matrix.rb
380
- - lib/generators/active_matrix/install/templates/create_agent_memories.rb
381
- - lib/generators/active_matrix/install/templates/create_conversation_contexts.rb
382
- - lib/generators/active_matrix/install/templates/create_global_memories.rb
383
- - lib/generators/active_matrix/install/templates/create_matrix_agents.rb
384
480
  homepage: https://github.com/seuros/activematrix
385
481
  licenses:
386
482
  - MIT
@@ -409,7 +505,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
409
505
  - !ruby/object:Gem::Version
410
506
  version: '0'
411
507
  requirements: []
412
- rubygems_version: 3.6.7
508
+ rubygems_version: 4.0.1
413
509
  specification_version: 4
414
510
  summary: Rails-native Matrix SDK for building multi-agent bot systems and real-time
415
511
  communication