lex-swarm-github 0.2.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51af406fe3fd169d214ad624baa8397ea249af6fd6b2931ce0c16e05476b3089
4
- data.tar.gz: dff84459e2f0fb6966b1942c271feac122d146d31f44a32a1e3949db3296b7fd
3
+ metadata.gz: 36ecaacf2a816da063f7aed44196fbd2c1c784c229271e9cddf7680b387bc499
4
+ data.tar.gz: 7f260d77233e6026bf0c66fc50dd98bfd0286d3ebaa1ebf8b19365fe1a5af4d7
5
5
  SHA512:
6
- metadata.gz: 185c32b2089ea81b7d714437c5ea2a468e6e20114831c466466905b548fe499ff1c7734bc6a76cf5fcdad91c279bd56baa0887e5519fdf7c15c58b1c6c5026c4
7
- data.tar.gz: f17146fded2ba6da1e07e742aaec32f942d2efa8501a66958fbdb00bf15c9c9aa2f308048cd54b1332b7f5009a2e3cf6f20de92d372b3ca53cfa914ee93bb6bb
6
+ metadata.gz: 62733f67a56f0ae47e558acdd02414666aba291af5a5727506919eba6bf22c4a8fa0e85fdbd40f963605e73f71b0c8c1528880760d68ace40ec0ed3678f12d11
7
+ data.tar.gz: 304f250017f4fbe5f2370ae842f30a93f3abbf1448028ec8c76fcb57ca359e4871f1eb0c4af99ed7caf63da85a517e183d2fe7832b49278e6f80cfd17ed6037d
@@ -25,4 +25,12 @@ Gem::Specification.new do |spec|
25
25
  Dir.glob('{lib,spec}/**/*') + %w[lex-swarm-github.gemspec Gemfile]
26
26
  end
27
27
  spec.require_paths = ['lib']
28
+
29
+ spec.add_dependency 'legion-cache', '>= 1.3.11'
30
+ spec.add_dependency 'legion-crypt', '>= 1.4.9'
31
+ spec.add_dependency 'legion-data', '>= 1.4.17'
32
+ spec.add_dependency 'legion-json', '>= 1.2.1'
33
+ spec.add_dependency 'legion-logging', '>= 1.3.2'
34
+ spec.add_dependency 'legion-settings', '>= 1.3.14'
35
+ spec.add_dependency 'legion-transport', '>= 1.3.9'
28
36
  end
@@ -10,17 +10,17 @@ module Legion
10
10
 
11
11
  def ingest_issue(repo:, issue_number:, title:, labels: [], **)
12
12
  key = issue_tracker.track(repo: repo, issue_number: issue_number, title: title, labels: labels)
13
- Legion::Logging.info "[github-swarm] ingested: key=#{key} title=#{title}"
13
+ log.info "[github-swarm] ingested: key=#{key} title=#{title}"
14
14
  { tracked: true, key: key, state: :received }
15
15
  end
16
16
 
17
17
  def claim_issue(key:, **)
18
18
  result = issue_tracker.transition(key, :found)
19
19
  if result == :found
20
- Legion::Logging.info "[github-swarm] claimed: key=#{key}"
20
+ log.info "[github-swarm] claimed: key=#{key}"
21
21
  { claimed: true, state: :found }
22
22
  else
23
- Legion::Logging.debug "[github-swarm] claim failed: key=#{key} result=#{result}"
23
+ log.debug "[github-swarm] claim failed: key=#{key} result=#{result}"
24
24
  { error: result || :not_found }
25
25
  end
26
26
  end
@@ -29,10 +29,10 @@ module Legion
29
29
  issue_tracker.transition(key, :fixing)
30
30
  attempt = issue_tracker.record_fix_attempt(key)
31
31
  if attempt && attempt > Helpers::Pipeline::MAX_FIX_ATTEMPTS
32
- Legion::Logging.warn "[github-swarm] max attempts exceeded: key=#{key} attempts=#{attempt}"
32
+ log.warn "[github-swarm] max attempts exceeded: key=#{key} attempts=#{attempt}"
33
33
  { error: :max_attempts_exceeded, attempts: attempt }
34
34
  else
35
- Legion::Logging.info "[github-swarm] fix started: key=#{key} attempt=#{attempt}"
35
+ log.info "[github-swarm] fix started: key=#{key} attempt=#{attempt}"
36
36
  { fixing: true, attempt: attempt }
37
37
  end
38
38
  end
@@ -41,10 +41,10 @@ module Legion
41
41
  consensus = issue_tracker.record_validation(key, validator: validator,
42
42
  approved: approved, reason: reason)
43
43
  if consensus
44
- Legion::Logging.info "[github-swarm] validation: key=#{key} validator=#{validator} approved=#{approved} consensus=#{consensus}"
44
+ log.info "[github-swarm] validation: key=#{key} validator=#{validator} approved=#{approved} consensus=#{consensus}"
45
45
  { recorded: true, consensus: consensus }
46
46
  else
47
- Legion::Logging.debug "[github-swarm] validation failed: key=#{key} not found"
47
+ log.debug "[github-swarm] validation failed: key=#{key} not found"
48
48
  { error: :not_found }
49
49
  end
50
50
  end
@@ -52,23 +52,23 @@ module Legion
52
52
  def attach_pr(key:, pr_number:, **)
53
53
  result = issue_tracker.attach_pr(key, pr_number: pr_number)
54
54
  if result
55
- Legion::Logging.info "[github-swarm] PR attached: key=#{key} pr=##{pr_number}"
55
+ log.info "[github-swarm] PR attached: key=#{key} pr=##{pr_number}"
56
56
  { attached: true, pr_number: pr_number }
57
57
  else
58
- Legion::Logging.debug "[github-swarm] PR attach failed: key=#{key} not found"
58
+ log.debug "[github-swarm] PR attach failed: key=#{key} not found"
59
59
  { error: :not_found }
60
60
  end
61
61
  end
62
62
 
63
63
  def get_issue(key:, **)
64
64
  issue = issue_tracker.get(key)
65
- Legion::Logging.debug "[github-swarm] get: key=#{key} found=#{!issue.nil?}"
65
+ log.debug "[github-swarm] get: key=#{key} found=#{!issue.nil?}"
66
66
  issue ? { found: true, issue: issue } : { found: false }
67
67
  end
68
68
 
69
69
  def issues_by_state(state:, **)
70
70
  issues = issue_tracker.by_state(state)
71
- Legion::Logging.debug "[github-swarm] by_state: state=#{state} count=#{issues.size}"
71
+ log.debug "[github-swarm] by_state: state=#{state} count=#{issues.size}"
72
72
  { issues: issues, count: issues.size }
73
73
  end
74
74
 
@@ -77,7 +77,7 @@ module Legion
77
77
  [state, issue_tracker.by_state(state).size]
78
78
  end
79
79
  summary = status.select { |_, v| v.positive? }.map { |k, v| "#{k}=#{v}" }.join(' ')
80
- Legion::Logging.debug "[github-swarm] pipeline: total=#{issue_tracker.count} #{summary}"
80
+ log.debug "[github-swarm] pipeline: total=#{issue_tracker.count} #{summary}"
81
81
  { states: status, total: issue_tracker.count }
82
82
  end
83
83
 
@@ -93,7 +93,7 @@ module Legion
93
93
  issue_tracker.transition(key, :stale)
94
94
  stale_keys << key
95
95
  end
96
- Legion::Logging.debug "[swarm-github] stale check: checked=#{issue_tracker.count} stale=#{stale_keys.size}"
96
+ log.debug "[swarm-github] stale check: checked=#{issue_tracker.count} stale=#{stale_keys.size}"
97
97
  { checked: issue_tracker.count, marked_stale: stale_keys.size, stale_keys: stale_keys }
98
98
  end
99
99
 
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module SwarmGithub
6
- VERSION = '0.2.1'
6
+ VERSION = '0.2.2'
7
7
  end
8
8
  end
9
9
  end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'bundler/setup'
4
+ require 'legion/logging'
5
+ require 'legion/settings'
6
+ require 'legion/cache/helper'
7
+ require 'legion/crypt/helper'
8
+ require 'legion/data/helper'
9
+ require 'legion/json/helper'
10
+ require 'legion/transport/helper'
4
11
 
5
12
  module Legion
6
- module Logging
7
- def self.debug(_msg); end
8
- def self.info(_msg); end
9
- def self.warn(_msg); end
10
- def self.error(_msg); end
13
+ module Extensions
14
+ module Helpers
15
+ module Lex
16
+ include Legion::Logging::Helper
17
+ include Legion::Settings::Helper
18
+ include Legion::Cache::Helper
19
+ include Legion::Crypt::Helper
20
+ include Legion::Data::Helper
21
+ include Legion::JSON::Helper
22
+ include Legion::Transport::Helper
23
+ end
24
+ end
25
+
26
+ module Actors
27
+ class Every
28
+ include Helpers::Lex
29
+ end
30
+
31
+ class Once
32
+ include Helpers::Lex
33
+ end
34
+ end
11
35
  end
12
36
  end
13
37
 
metadata CHANGED
@@ -1,14 +1,112 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-swarm-github
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
8
  bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies: []
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: legion-cache
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 1.3.11
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 1.3.11
26
+ - !ruby/object:Gem::Dependency
27
+ name: legion-crypt
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.4.9
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.4.9
40
+ - !ruby/object:Gem::Dependency
41
+ name: legion-data
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.4.17
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.4.17
54
+ - !ruby/object:Gem::Dependency
55
+ name: legion-json
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.2.1
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.2.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: legion-logging
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.3.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.3.2
82
+ - !ruby/object:Gem::Dependency
83
+ name: legion-settings
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.3.14
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.3.14
96
+ - !ruby/object:Gem::Dependency
97
+ name: legion-transport
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.9
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.9
12
110
  description: GitHub-specific swarm pipeline (finder/fixer/validator) for brain-modeled
13
111
  agentic AI
14
112
  email: