lex-lex 0.3.0 → 0.3.1

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: 6dc3e76881ecf51e9b1db09057880ced19b7daffcb8b997ec3c338166a924f4a
4
- data.tar.gz: 248dffd3c5999db11f7248cccd5a23330f261905eb62e32e649d7fd08364c2c7
3
+ metadata.gz: 93780b160c34e525aba1595937595ccf5313d4cb0542a2d419dc676b0fd02831
4
+ data.tar.gz: b0b53037503181537ad91f9588fc0849e58a6211f5ef1669e294e957daf88006
5
5
  SHA512:
6
- metadata.gz: 480a5427ba9ccf651a4b09c1e6f0a531cb099a4f53478969b62f41030199e00ace1a94aa89b7dde66ef82a357d293b2eb71d53f5cfea4f61501328d93bc72105
7
- data.tar.gz: a0f7ac11038cdcb7b3cbe2e3b362e95389b624bb8c57e2cb92b3908d743288179a5b1ec96a1585328ac367d2aef9c32e12c1a6cf3188c2fa061cba4455ef4d22
6
+ metadata.gz: a40d14b40f89d72785bbe9a2343f5059812ec1058f75f89b842a1ec9be2d5603f2e3741f20b1d88ff7e4749e88f66fe14b1f48596cde276a3cce69a41c3187f8
7
+ data.tar.gz: a4296c1dcff4f3d7000844b5f9ffc7aade39b9a26ee69987f44bedfe92143ead0b4789e8d8c63df5e8d400728069ae9d78610bbf34423caf4b537732861baada
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.1] - 2026-03-20
4
+
5
+ ### Added
6
+ - `Actor::AgentWatcher` — interval actor (every 30s) that detects file modifications to loaded YAML agent definitions and triggers hot-reload via `Legion::Extensions.load_yaml_agents`
7
+ - Conditional require of `AgentWatcher` in entry point (only when `Legion::Extensions::Actors::Every` is available)
8
+
3
9
  ## [0.3.0] - 2026-03-18
4
10
 
5
11
  ### Fixed
data/CLAUDE.md CHANGED
@@ -67,7 +67,7 @@ Startup (after all extensions load):
67
67
 
68
68
  ```bash
69
69
  bundle install
70
- bundle exec rspec # 55 specs
70
+ bundle exec rspec # 71 specs, 0 failures
71
71
  bundle exec rubocop # 0 offenses
72
72
  ```
73
73
 
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Lex
6
+ module Actor
7
+ class AgentWatcher < Legion::Extensions::Actors::Every
8
+ def time = 30
9
+ def run_now? = false
10
+ def use_runner? = false
11
+ def check_subtask? = false
12
+ def generate_task? = false
13
+
14
+ def action(**_opts)
15
+ current = Legion::Extensions.instance_variable_get(:@load_yaml_agents) || []
16
+ reloaded = 0
17
+
18
+ current.each do |agent|
19
+ path = agent[:_source_path]
20
+ next unless path && File.exist?(path)
21
+ next unless File.mtime(path) > agent[:_source_mtime]
22
+
23
+ reloaded += 1
24
+ end
25
+
26
+ if reloaded.positive?
27
+ Legion::Extensions.instance_variable_set(:@load_yaml_agents, nil)
28
+ Legion::Extensions.load_yaml_agents
29
+ end
30
+
31
+ { reloaded: reloaded }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Lex
6
- VERSION = '0.3.0'
6
+ VERSION = '0.3.1'
7
7
  end
8
8
  end
9
9
  end
@@ -6,6 +6,7 @@ require_relative 'lex/runners/runner'
6
6
  require_relative 'lex/runners/function'
7
7
  require_relative 'lex/runners/register'
8
8
  require_relative 'lex/runners/sync'
9
+ require_relative 'lex/actors/agent_watcher' if defined?(Legion::Extensions::Actors::Every)
9
10
 
10
11
  module Legion
11
12
  module Extensions
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-lex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -112,6 +112,7 @@ files:
112
112
  - README.md
113
113
  - lex-lex.gemspec
114
114
  - lib/legion/extensions/lex.rb
115
+ - lib/legion/extensions/lex/actors/agent_watcher.rb
115
116
  - lib/legion/extensions/lex/actors/sync.rb
116
117
  - lib/legion/extensions/lex/runners/extension.rb
117
118
  - lib/legion/extensions/lex/runners/function.rb