lex-coldstart 0.1.0 → 0.1.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: 0fb6a1e08b7bb5ba42d3ef2c62f2e4c4d90f8f9d3c2cf4891fdffda7f55af3cd
4
- data.tar.gz: cb3d573d7657a27333bbed0b5850b429b20c9f8f8a62a64318f585e311a2917a
3
+ metadata.gz: 652ebe463901fe4e6716fecd9161a16b84a4a336282b527029d831d7bede8893
4
+ data.tar.gz: 587549c798664f4aed65a110fa723a10f5c6454184e0b1f297fdd60d5e932a86
5
5
  SHA512:
6
- metadata.gz: cb3d44fa4365e62518583c7e0ac42848d999e7ea40419a378b3372029da2835bfae7a048c0925b3363f16941488163d21ad736815362e9b6ed46239acbaca2ff
7
- data.tar.gz: 9ff4f0933b47c8111502cf0c7450cdf25b9ca91c69dd4da2fd6a997e79e662d49ef502202e8a0c243bcb8223ce86b611ee36ef5c296cc56fbddb7195f786babb
6
+ metadata.gz: b3fe74502f5433dee026f66f4237e9f1da5d4afc0d69c8f714451e42df8407a5be06fca831f85c07089cbde8fa0370e3f10b773024d7fc7f0c7259657080ab33
7
+ data.tar.gz: e89611a6ab69bed2a8e0b8714dfba9a07aeade0c450716d8f2d0d575d915df2af0ff27aa39082158cbeb458e24f9ae2a509101d39811c460f6e73b20cd4d973c
@@ -25,6 +25,13 @@ Gem::Specification.new do |spec|
25
25
  Dir.glob('{lib,spec}/**/*') + %w[lex-coldstart.gemspec Gemfile]
26
26
  end
27
27
  spec.require_paths = ['lib']
28
+ spec.add_dependency 'legion-cache', '>= 1.3.11'
29
+ spec.add_dependency 'legion-crypt', '>= 1.4.9'
30
+ spec.add_dependency 'legion-data', '>= 1.4.17'
31
+ spec.add_dependency 'legion-json', '>= 1.2.1'
32
+ spec.add_dependency 'legion-logging', '>= 1.3.2'
33
+ spec.add_dependency 'legion-settings', '>= 1.3.14'
34
+ spec.add_dependency 'legion-transport', '>= 1.3.9'
28
35
  spec.add_development_dependency 'sequel', '~> 5.70'
29
36
  spec.add_development_dependency 'sqlite3', '~> 2.0'
30
37
  end
@@ -14,7 +14,7 @@ module Legion
14
14
  dur = Helpers::Imprint::IMPRINT_DURATION
15
15
  mul = Helpers::Imprint::IMPRINT_MULTIPLIER
16
16
  tier = Helpers::Imprint::IMPRINT_CONSENT_TIER
17
- Legion::Logging.info "[coldstart] imprint begun: duration=#{dur}s multiplier=#{mul}x consent=#{tier}"
17
+ log.info "[coldstart] imprint begun: duration=#{dur}s multiplier=#{mul}x consent=#{tier}"
18
18
  {
19
19
  started: true,
20
20
  imprint_duration: Helpers::Imprint::IMPRINT_DURATION,
@@ -25,8 +25,8 @@ module Legion
25
25
 
26
26
  def record_observation(**)
27
27
  bootstrap.record_observation
28
- Legion::Logging.debug "[coldstart] observation: count=#{bootstrap.observation_count} " \
29
- "calibration=#{bootstrap.calibration_state} layer=#{bootstrap.current_layer}"
28
+ log.debug "[coldstart] observation: count=#{bootstrap.observation_count} " \
29
+ "calibration=#{bootstrap.calibration_state} layer=#{bootstrap.current_layer}"
30
30
  {
31
31
  observation_count: bootstrap.observation_count,
32
32
  calibration_state: bootstrap.calibration_state,
@@ -36,20 +36,20 @@ module Legion
36
36
 
37
37
  def coldstart_progress(**)
38
38
  progress = bootstrap.progress
39
- Legion::Logging.debug "[coldstart] progress: #{progress.inspect}"
39
+ log.debug "[coldstart] progress: #{progress.inspect}"
40
40
  progress
41
41
  end
42
42
 
43
43
  def imprint_active?(**) # rubocop:disable Naming/PredicateMethod
44
44
  active = bootstrap.imprint_active?
45
- Legion::Logging.debug "[coldstart] imprint_active?=#{active}"
45
+ log.debug "[coldstart] imprint_active?=#{active}"
46
46
  { active: active }
47
47
  end
48
48
 
49
49
  def current_multiplier(**)
50
50
  active = bootstrap.imprint_active?
51
51
  multiplier = active ? Helpers::Imprint::IMPRINT_MULTIPLIER : 1.0
52
- Legion::Logging.debug "[coldstart] multiplier=#{multiplier} imprint_active=#{active}"
52
+ log.debug "[coldstart] multiplier=#{multiplier} imprint_active=#{active}"
53
53
  { multiplier: multiplier, imprint_active: active }
54
54
  end
55
55
 
@@ -16,13 +16,13 @@ module Legion
16
16
  # @return [Hash] { file:, file_type:, traces_parsed:, traces_stored:, traces: }
17
17
  def ingest_file(file_path:, store_traces: true, **)
18
18
  unless File.exist?(file_path)
19
- Legion::Logging.warn "[coldstart:ingest] file not found: #{file_path}"
19
+ log.warn "[coldstart:ingest] file not found: #{file_path}"
20
20
  return { file: file_path, error: 'file not found' }
21
21
  end
22
22
 
23
23
  candidates = Helpers::ClaudeParser.parse_file(file_path)
24
24
  file_type = Helpers::ClaudeParser.detect_file_type(file_path)
25
- Legion::Logging.info "[coldstart:ingest] parsed #{candidates.size} traces from #{file_path} (#{file_type})"
25
+ log.info "[coldstart:ingest] parsed #{candidates.size} traces from #{file_path} (#{file_type})"
26
26
 
27
27
  stored = store_traces ? store_candidates(candidates) : []
28
28
 
@@ -43,13 +43,13 @@ module Legion
43
43
  # @return [Hash] { directory:, files_found:, total_parsed:, total_stored:, files: }
44
44
  def ingest_directory(dir_path:, pattern: '**/{CLAUDE,MEMORY}.md', store_traces: true, **)
45
45
  unless Dir.exist?(dir_path)
46
- Legion::Logging.warn "[coldstart:ingest] directory not found: #{dir_path}"
46
+ log.warn "[coldstart:ingest] directory not found: #{dir_path}"
47
47
  return { directory: dir_path, error: 'directory not found' }
48
48
  end
49
49
 
50
50
  candidates = Helpers::ClaudeParser.parse_directory(dir_path, pattern: pattern)
51
51
  files = candidates.map { |c| c[:source_file] }.uniq
52
- Legion::Logging.info "[coldstart:ingest] parsed #{candidates.size} traces from #{files.size} files in #{dir_path}"
52
+ log.info "[coldstart:ingest] parsed #{candidates.size} traces from #{files.size} files in #{dir_path}"
53
53
 
54
54
  stored = store_traces ? store_candidates(candidates) : []
55
55
 
@@ -101,14 +101,14 @@ module Legion
101
101
  )
102
102
  stored << result if result
103
103
  rescue StandardError => e
104
- Legion::Logging.warn "[coldstart:ingest] failed to store trace: #{e.message}"
104
+ log.warn "[coldstart:ingest] failed to store trace: #{e.message}"
105
105
  end
106
106
 
107
107
  # Flush the cache-backed store if it supports it
108
108
  store = runner.send(:default_store)
109
109
  store.flush if store.respond_to?(:flush)
110
110
 
111
- Legion::Logging.info "[coldstart:ingest] stored #{stored.size} traces (imprint_active=#{imprint})"
111
+ log.info "[coldstart:ingest] stored #{stored.size} traces (imprint_active=#{imprint})"
112
112
 
113
113
  # Co-activate traces from the same section to form Hebbian links
114
114
  coactivate_section_traces(stored, candidates, runner)
@@ -163,9 +163,9 @@ module Legion
163
163
  end
164
164
  end
165
165
 
166
- Legion::Logging.debug "[coldstart:ingest] co-activated #{coactivations} trace pairs across #{groups.size} sections"
166
+ log.debug "[coldstart:ingest] co-activated #{coactivations} trace pairs across #{groups.size} sections"
167
167
  rescue StandardError => e
168
- Legion::Logging.warn "[coldstart:ingest] co-activation failed: #{e.message}"
168
+ log.warn "[coldstart:ingest] co-activation failed: #{e.message}"
169
169
  end
170
170
  end
171
171
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Coldstart
6
- VERSION = '0.1.0'
6
+ VERSION = '0.1.1'
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-coldstart
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -9,6 +9,104 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
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
  - !ruby/object:Gem::Dependency
13
111
  name: sequel
14
112
  requirement: !ruby/object:Gem::Requirement