x_aeon_agents 2.1.0 → 2.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b1e7041fddfc65c38861e98fbfc8fda9ea487cb11559f4303632536ca36b6f1
4
- data.tar.gz: 20e83d9866bd6c2bbb373cfa264341b37e3c19e88d23192fef88eda253bf273f
3
+ metadata.gz: 27cc33652e611bff7bd98107244da36b0942437e30c0bdf188689276f85d5d65
4
+ data.tar.gz: 88a459efbfa58d325c11316d93770c48c19008274a0116e06a4eafde987219cf
5
5
  SHA512:
6
- metadata.gz: a7b20717c0585a4e4ee6e95f818c22e0c7ebafc98d302c3af4beb1899fb0406dbac3f5ec59050523702cb0a7e26946072ecebb171e6f9fee5c5aee26adcbe2d1
7
- data.tar.gz: 318d0c1d1dbdd6d3e2dfef4626f1e1c227b491db5536eeda6cad082398036d1d25f757c350e54f8defcffe388eedfe922c4d64a7dbb2815ca2e53b27d3f28577
6
+ metadata.gz: 46889be478e543cdc2278d16c31e9e03d3744477294c5bc64979707a2743d623253beebc0d55ac12f911eb9fc6dc0a971b4de1230dd85cc9ec3df72bc0fd4472
7
+ data.tar.gz: 429b150e56288f4a7f412765200337cc4150e57b83a59df4077b79d1179e7e95934a49a43c06200c62bfe143c46a29fcf62e332fdb63b812e73429ac861cd883
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ # [v2.3.0](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.2.0...v2.3.0) (2026-10-26 15:39:49)
2
+
3
+ ## Global changes
4
+ ### Patches
5
+
6
+ * [feat(cli): add version command to display library versions](https://github.com/Muriel-Salvan/x_aeon_agents/commit/13fce2b018775f6942f2d556683c17abad95ffed)
7
+
8
+ ## Changes for cli
9
+ ### Features
10
+
11
+ * [feat(cli): add version command to display library versions](https://github.com/Muriel-Salvan/x_aeon_agents/commit/13fce2b018775f6942f2d556683c17abad95ffed)
12
+
13
+ # [v2.2.0](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.1.0...v2.2.0) (2026-10-26 12:38:46)
14
+
15
+ ### Features
16
+
17
+ * [feat: add non-interactive answer fallback for agents](https://github.com/Muriel-Salvan/x_aeon_agents/commit/fc2e01beb4f7b88ae6a5ba97af5ca69422147632)
18
+
1
19
  # [v2.1.0](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.0.4...v2.1.0) (2026-10-22 13:25:41)
2
20
 
3
21
  ## Global changes
data/README.md CHANGED
@@ -225,6 +225,7 @@ Available commands:
225
225
 
226
226
  | Command | Description |
227
227
  | --- | --- |
228
+ | `xaa version` | Display the version of x_aeon_agents and its main libraries |
228
229
  | `xaa review-comments [PR_NUMBER]` | Read, address and reply to GitHub Pull Request review comments |
229
230
  | `xaa commit` | Commit staged changes with an AI-generated message |
230
231
  | `xaa create-pr` | Push the branch and create a GitHub Pull Request |
@@ -35,10 +35,16 @@ module XAeonAgents
35
35
  #
36
36
  # @param base [Class] The base class prepending this mixin
37
37
  def self.prepended(base)
38
- base.prepend ComposableAgents::Mixins::ArtifactContract unless base.ancestors.include?(ComposableAgents::Mixins::ArtifactContract)
39
- base.prepend ComposableAgents::Mixins::Resumable unless base.ancestors.include?(ComposableAgents::Mixins::Resumable)
38
+ mixins_to_prepend = [
39
+ ComposableAgents::Mixins::ArtifactContract,
40
+ ComposableAgents::Mixins::Resumable
41
+ ]
42
+ mixins_to_prepend << ComposableAgents::Mixins::UserInteraction if base.is_a?(ComposableAgents::Cline::Agent)
43
+ mixins_to_prepend << ComposableAgents::Mixins::AiAgentUserInteraction if base.is_a?(ComposableAgents::AiAgents::Agent)
44
+ mixins_to_prepend.each { |mixin| base.prepend mixin unless base.ancestors.include?(mixin) }
40
45
  # Make sure we always prepend at the top our initializer that sets all defaults
41
46
  base.prepend(
47
+ # TODO: Move this module into a dedicated mixin class and Ruby file.
42
48
  Module.new do
43
49
  # Constructor
44
50
  #
@@ -126,6 +132,20 @@ module XAeonAgents
126
132
  block&.call
127
133
  end
128
134
  end
135
+
136
+ # Answer an agent's question
137
+ #
138
+ # @param question [String] The agent's question
139
+ # @return [String] The answer that should be sent back to the agent
140
+ def answer_to(question)
141
+ if Config.interactive
142
+ super
143
+ else
144
+ 'You are running in non-interactive mode, so no human user is available to answer this question. ' \
145
+ 'Please continue using your best judgment and your existing knowledge to determine the most ' \
146
+ 'appropriate answer, and proceed with the task without further user input.'
147
+ end
148
+ end
129
149
  end
130
150
  )
131
151
  end
@@ -12,6 +12,34 @@ module XAeonAgents
12
12
  # explicit --no-interactive (which lets the config file take precedence).
13
13
  class_option :interactive, type: :boolean, default: nil, desc: 'Enable interactive prompts with the user'
14
14
 
15
+ # --------------------------------------------------------------------------- #
16
+ # version: Display the version of x_aeon_agents and its main libraries
17
+ # --------------------------------------------------------------------------- #
18
+
19
+ desc 'version', 'Display the version of x_aeon_agents and its main libraries'
20
+ long_desc <<~LONGDESC
21
+ Prints the version of x_aeon_agents itself and of its main libraries:
22
+ ai-agents, composable_agents, cline-rb and ruby_llm.
23
+
24
+ Examples:
25
+
26
+ $ xaa version
27
+ LONGDESC
28
+ # Displays the version of x_aeon_agents and its main libraries.
29
+ def version
30
+ lines = ["x_aeon_agents #{XAeonAgents::VERSION}"]
31
+ %w[ai-agents composable_agents cline-rb ruby_llm].each do |library|
32
+ version =
33
+ begin
34
+ Gem::Specification.find_by_name(library).version.to_s
35
+ rescue Gem::LoadError
36
+ 'not installed'
37
+ end
38
+ lines << " #{library}: #{version}"
39
+ end
40
+ puts lines.join("\n")
41
+ end
42
+
15
43
  # --------------------------------------------------------------------------- #
16
44
  # review-comments: Address Pull Request review comments
17
45
  # --------------------------------------------------------------------------- #
@@ -220,7 +220,7 @@ module XAeonAgents
220
220
  # Evict RubyLLM's memoized default logger in case it was resolved before we plugged our own
221
221
  RubyLLM.instance_variable_set(:@logger, nil)
222
222
  # Discover all the models
223
- RubyLLM::Models.refresh!
223
+ RubyLLM::Models.refresh
224
224
  end
225
225
 
226
226
  # Setup Cline in a lazy and memoized way
@@ -2,5 +2,5 @@ module XAeonAgents
2
2
  # @!group Global API
3
3
 
4
4
  # Gem version
5
- VERSION = '2.1.0'
5
+ VERSION = '2.3.0'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: x_aeon_agents
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Muriel Salvan
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0.10'
18
+ version: '0.13'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0.10'
25
+ version: '0.13'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: cleanroom-next
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +197,14 @@ dependencies:
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '1.14'
200
+ version: '2.0'
201
201
  type: :runtime
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: '1.14'
207
+ version: '2.0'
208
208
  - !ruby/object:Gem::Dependency
209
209
  name: secret_string
210
210
  requirement: !ruby/object:Gem::Requirement