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.
- checksums.yaml +4 -4
- data/README.md +96 -28
- data/app/models/active_matrix/agent.rb +36 -1
- data/app/models/active_matrix/agent_store.rb +29 -0
- data/app/models/active_matrix/application_record.rb +8 -0
- data/app/models/active_matrix/chat_session.rb +29 -0
- data/app/models/active_matrix/knowledge_base.rb +26 -0
- data/exe/activematrix +7 -0
- data/lib/active_matrix/agent_manager.rb +160 -121
- data/lib/active_matrix/agent_registry.rb +25 -21
- data/lib/active_matrix/api.rb +8 -2
- data/lib/active_matrix/async_query.rb +58 -0
- data/lib/active_matrix/bot/base.rb +3 -3
- data/lib/active_matrix/bot/builtin_commands.rb +188 -0
- data/lib/active_matrix/bot/command_parser.rb +175 -0
- data/lib/active_matrix/cli.rb +273 -0
- data/lib/active_matrix/client.rb +21 -6
- data/lib/active_matrix/client_pool.rb +38 -27
- data/lib/active_matrix/daemon/probe_server.rb +118 -0
- data/lib/active_matrix/daemon/signal_handler.rb +156 -0
- data/lib/active_matrix/daemon/worker.rb +109 -0
- data/lib/active_matrix/daemon.rb +236 -0
- data/lib/active_matrix/engine.rb +5 -1
- data/lib/active_matrix/errors.rb +1 -1
- data/lib/active_matrix/event_router.rb +61 -49
- data/lib/active_matrix/events.rb +1 -0
- data/lib/active_matrix/instrumentation.rb +148 -0
- data/lib/active_matrix/memory/agent_memory.rb +7 -21
- data/lib/active_matrix/memory/conversation_memory.rb +4 -20
- data/lib/active_matrix/memory/global_memory.rb +15 -30
- data/lib/active_matrix/message_dispatcher.rb +197 -0
- data/lib/active_matrix/metrics.rb +424 -0
- data/lib/active_matrix/presence_manager.rb +181 -0
- data/lib/active_matrix/telemetry.rb +134 -0
- data/lib/active_matrix/version.rb +1 -1
- data/lib/active_matrix.rb +12 -2
- data/lib/generators/active_matrix/install/install_generator.rb +3 -15
- data/lib/generators/active_matrix/install/templates/README +5 -2
- metadata +141 -45
- data/lib/active_matrix/protocols/cs/message_relationships.rb +0 -318
- data/lib/generators/active_matrix/install/templates/create_agent_memories.rb +0 -17
- data/lib/generators/active_matrix/install/templates/create_conversation_contexts.rb +0 -21
- data/lib/generators/active_matrix/install/templates/create_global_memories.rb +0 -20
- 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
|
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 '
|
|
10
|
+
desc 'Installs ActiveMatrix initializer and copies migrations'
|
|
14
11
|
|
|
15
|
-
def
|
|
16
|
-
|
|
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 =
|
|
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/
|
|
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.
|
|
4
|
+
version: 0.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Abdelkader Boudih
|
|
8
8
|
- Alexander Olofsson
|
|
9
|
-
bindir:
|
|
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:
|
|
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:
|
|
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
|
|
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-
|
|
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-
|
|
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:
|
|
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:
|
|
168
|
+
name: simplecov
|
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
|
142
170
|
requirements:
|
|
143
|
-
- - "
|
|
171
|
+
- - ">="
|
|
144
172
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '
|
|
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: '
|
|
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:
|
|
278
|
+
name: async
|
|
239
279
|
requirement: !ruby/object:Gem::Requirement
|
|
240
280
|
requirements:
|
|
241
|
-
- - "
|
|
281
|
+
- - ">="
|
|
242
282
|
- !ruby/object:Gem::Version
|
|
243
|
-
version: '
|
|
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: '
|
|
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:
|
|
306
|
+
name: bcrypt
|
|
253
307
|
requirement: !ruby/object:Gem::Requirement
|
|
254
308
|
requirements:
|
|
255
309
|
- - "~>"
|
|
256
310
|
- !ruby/object:Gem::Version
|
|
257
|
-
version: '1
|
|
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
|
|
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:
|
|
308
|
-
developers to build sophisticated multi-agent bot systems
|
|
309
|
-
features. This gem provides deep Rails integration with ActiveRecord models, state
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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:
|
|
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
|