actionagent 1.6.0 → 1.6.2

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.
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Agent releases: a version cut from the agent's code carries the digest of
4
+ # what the model was given and the deploy it shipped in, and every trace,
5
+ # run and evaluation run records the version it ran under. Emitted for an
6
+ # install whose dashboard tables predate releases; the create-table
7
+ # migration carries the same columns for a fresh install.
8
+ #
9
+ # Each step is guarded so the migration is safe to re-run against a database
10
+ # that already has some of these columns.
11
+ class AddAgentReleases < ActiveRecord::Migration<%= migration_version %>
12
+ def up
13
+ add_column_unless_exists :active_agent_agents, :release_digest, :string
14
+
15
+ add_column_unless_exists :active_agent_agent_versions, :release_digest, :string
16
+ add_column_unless_exists :active_agent_agent_versions, :revision, :string
17
+ add_index_unless_exists :active_agent_agent_versions, [ :agent_id, :release_digest ]
18
+
19
+ %i[active_agent_telemetry_traces active_agent_agent_runs active_agent_evaluation_runs].each do |table|
20
+ add_column_unless_exists table, :agent_version_id, :bigint
21
+ add_index_unless_exists table, :agent_version_id
22
+ end
23
+ end
24
+
25
+ def down
26
+ remove_column :active_agent_agents, :release_digest if column_exists?(:active_agent_agents, :release_digest)
27
+ remove_column :active_agent_agent_versions, :release_digest if column_exists?(:active_agent_agent_versions, :release_digest)
28
+ remove_column :active_agent_agent_versions, :revision if column_exists?(:active_agent_agent_versions, :revision)
29
+
30
+ %i[active_agent_telemetry_traces active_agent_agent_runs active_agent_evaluation_runs].each do |table|
31
+ remove_column table, :agent_version_id if column_exists?(table, :agent_version_id)
32
+ end
33
+ end
34
+
35
+ private
36
+
37
+ def add_column_unless_exists(table, column, type)
38
+ return unless table_exists?(table)
39
+ return if column_exists?(table, column)
40
+
41
+ add_column table, column, type
42
+ end
43
+
44
+ def add_index_unless_exists(table, columns)
45
+ return unless table_exists?(table)
46
+ return if index_exists?(table, columns)
47
+
48
+ add_index table, columns
49
+ end
50
+ end
@@ -7,3 +7,36 @@ namespace :action_agent do
7
7
  puts "Agent template library: #{ActionAgent::AgentTemplate.count} templates"
8
8
  end
9
9
  end
10
+
11
+ namespace :action_agent do
12
+ namespace :agents do
13
+ desc "Cut a dashboard version for every agent whose code changed (run on deploy; REVISION=<git sha> to label it)"
14
+ task :release, [ :revision ] => :environment do |_task, args|
15
+ Rails.application.eager_load!
16
+ result = ActionAgent::AgentRelease.call(revision: args[:revision] || ENV["REVISION"], released_by: ENV["RELEASED_BY"])
17
+
18
+ puts "Release #{result.revision.presence || '(no revision)'}"
19
+ result.rows.each do |row|
20
+ if row.skipped
21
+ puts format(" %-28s skipped — %s", row.agent.name, row.skipped)
22
+ elsif row.cut
23
+ puts format(" %-28s v%-3d cut %s", row.agent.name, row.version.version_number, row.version.change_summary)
24
+ else
25
+ puts format(" %-28s v%-3d unchanged (%s)", row.agent.name, row.version.version_number, row.version.release_digest)
26
+ end
27
+ end
28
+ puts "#{result.cut.size} cut, #{result.rows.size - result.cut.size - result.skipped.size} unchanged, #{result.skipped.size} skipped"
29
+ end
30
+
31
+ desc "List each agent's current version and release"
32
+ task versions: :environment do
33
+ ActionAgent::Agent.order(:name).find_each do |agent|
34
+ version = agent.latest_version
35
+ release = agent.latest_release
36
+ puts format("%-28s v%-3s %s%s", agent.name, version&.version_number || "-",
37
+ release ? "release #{release.release_digest}" : "no release",
38
+ release&.revision.present? ? " · #{release.revision}" : "")
39
+ end
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionagent
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Bowen
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-09-17 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: activeagent
@@ -192,6 +193,7 @@ files:
192
193
  - app/serializers/action_agent/trace_interaction_serializer.rb
193
194
  - app/services/action_agent/agent_execution_service.rb
194
195
  - app/services/action_agent/agent_registrar.rb
196
+ - app/services/action_agent/agent_release.rb
195
197
  - app/services/action_agent/agent_scorecard.rb
196
198
  - app/services/action_agent/agent_tool_roster.rb
197
199
  - app/services/action_agent/agent_toolbox.rb
@@ -226,6 +228,7 @@ files:
226
228
  - lib/generators/action_agent/install_generator.rb
227
229
  - lib/generators/action_agent/templates/action_agent.rb.erb
228
230
  - lib/generators/action_agent/templates/add_agent_id_to_active_agent_telemetry_traces.rb.erb
231
+ - lib/generators/action_agent/templates/add_agent_releases.rb.erb
229
232
  - lib/generators/action_agent/templates/create_active_agent_dashboard_tables.rb.erb
230
233
  - lib/generators/action_agent/templates/create_active_agent_evaluation_scenarios.rb.erb
231
234
  - lib/generators/action_agent/templates/create_active_agent_telemetry_traces.rb.erb
@@ -238,6 +241,7 @@ metadata:
238
241
  documentation_uri: https://docs.activeagents.ai/framework/self-hosted-observability
239
242
  source_code_uri: https://github.com/activeagents/activeagent
240
243
  rubygems_mfa_required: 'true'
244
+ post_install_message:
241
245
  rdoc_options: []
242
246
  require_paths:
243
247
  - lib
@@ -252,7 +256,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
256
  - !ruby/object:Gem::Version
253
257
  version: '0'
254
258
  requirements: []
255
- rubygems_version: 3.6.9
259
+ rubygems_version: 3.5.22
260
+ signing_key:
256
261
  specification_version: 4
257
262
  summary: The Active Agent dashboard, as a mountable Rails engine
258
263
  test_files: []