lex-cognitive-immune-memory 0.1.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 +7 -0
- data/.github/workflows/ci.yml +16 -0
- data/.gitignore +10 -0
- data/.rspec +3 -0
- data/.rubocop.yml +37 -0
- data/CLAUDE.md +116 -0
- data/Gemfile +11 -0
- data/README.md +47 -0
- data/lex-cognitive-immune-memory.gemspec +29 -0
- data/lib/legion/extensions/cognitive_immune_memory/client.rb +15 -0
- data/lib/legion/extensions/cognitive_immune_memory/helpers/constants.rb +80 -0
- data/lib/legion/extensions/cognitive_immune_memory/helpers/encounter.rb +50 -0
- data/lib/legion/extensions/cognitive_immune_memory/helpers/immune_memory_engine.rb +167 -0
- data/lib/legion/extensions/cognitive_immune_memory/helpers/memory_cell.rb +93 -0
- data/lib/legion/extensions/cognitive_immune_memory/runners/cognitive_immune_memory.rb +72 -0
- data/lib/legion/extensions/cognitive_immune_memory/version.rb +9 -0
- data/lib/legion/extensions/cognitive_immune_memory.rb +16 -0
- data/spec/legion/extensions/cognitive_immune_memory/client_spec.rb +18 -0
- data/spec/legion/extensions/cognitive_immune_memory/helpers/encounter_spec.rb +85 -0
- data/spec/legion/extensions/cognitive_immune_memory/helpers/immune_memory_engine_spec.rb +203 -0
- data/spec/legion/extensions/cognitive_immune_memory/helpers/memory_cell_spec.rb +190 -0
- data/spec/legion/extensions/cognitive_immune_memory/runners_spec.rb +83 -0
- data/spec/legion/extensions/cognitive_immune_memory_spec.rb +7 -0
- data/spec/spec_helper.rb +28 -0
- metadata +84 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe Legion::Extensions::CognitiveImmuneMemory::Runners::CognitiveImmuneMemory do
|
|
4
|
+
let(:engine) { Legion::Extensions::CognitiveImmuneMemory::Helpers::ImmuneMemoryEngine.new }
|
|
5
|
+
let(:runner) do
|
|
6
|
+
obj = Object.new
|
|
7
|
+
obj.extend(described_class)
|
|
8
|
+
obj.instance_variable_set(:@default_engine, engine)
|
|
9
|
+
obj
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe '#create_memory_cell' do
|
|
13
|
+
it 'returns success with cell hash' do
|
|
14
|
+
result = runner.create_memory_cell(threat_type: :prompt_injection, signature: 'sig-001', engine: engine)
|
|
15
|
+
expect(result[:success]).to be true
|
|
16
|
+
expect(result[:cell][:threat_type]).to eq(:prompt_injection)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe '#vaccinate' do
|
|
21
|
+
it 'returns success' do
|
|
22
|
+
result = runner.vaccinate(threat_type: :data_poisoning, signature: 'vax-001', engine: engine)
|
|
23
|
+
expect(result[:success]).to be true
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe '#encounter_threat' do
|
|
28
|
+
it 'returns success with encounter hash' do
|
|
29
|
+
result = runner.encounter_threat(threat_type: :prompt_injection, threat_signature: 'new', engine: engine)
|
|
30
|
+
expect(result[:success]).to be true
|
|
31
|
+
expect(result[:encounter][:response_type]).to eq(:primary)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#decay_all' do
|
|
36
|
+
it 'returns success' do
|
|
37
|
+
result = runner.decay_all(engine: engine)
|
|
38
|
+
expect(result[:success]).to be true
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe '#immunity_for' do
|
|
43
|
+
it 'returns immunity level' do
|
|
44
|
+
engine.create_memory_cell(threat_type: :prompt_injection, signature: 's1', strength: 0.8)
|
|
45
|
+
result = runner.immunity_for(threat_type: :prompt_injection, engine: engine)
|
|
46
|
+
expect(result[:success]).to be true
|
|
47
|
+
expect(result[:immunity]).to eq(0.8)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe '#active_cells' do
|
|
52
|
+
it 'returns cell list' do
|
|
53
|
+
engine.create_memory_cell(threat_type: :prompt_injection, signature: 's1')
|
|
54
|
+
result = runner.active_cells(engine: engine)
|
|
55
|
+
expect(result[:success]).to be true
|
|
56
|
+
expect(result[:count]).to eq(1)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
describe '#veteran_cells' do
|
|
61
|
+
it 'returns veteran list' do
|
|
62
|
+
result = runner.veteran_cells(engine: engine)
|
|
63
|
+
expect(result[:success]).to be true
|
|
64
|
+
expect(result[:count]).to eq(0)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
describe '#threat_coverage' do
|
|
69
|
+
it 'returns coverage' do
|
|
70
|
+
result = runner.threat_coverage(engine: engine)
|
|
71
|
+
expect(result[:success]).to be true
|
|
72
|
+
expect(result[:coverage]).to eq(0.0)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
describe '#immune_status' do
|
|
77
|
+
it 'returns comprehensive status' do
|
|
78
|
+
result = runner.immune_status(engine: engine)
|
|
79
|
+
expect(result[:success]).to be true
|
|
80
|
+
expect(result).to include(:total_cells, :overall_health)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/cognitive_immune_memory'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Helpers
|
|
8
|
+
module Lex; end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Logging
|
|
13
|
+
def self.method_missing(_, *) = nil
|
|
14
|
+
def self.respond_to_missing?(_, _ = false) = true
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
RSpec.configure do |config|
|
|
19
|
+
config.expect_with :rspec do |expectations|
|
|
20
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
21
|
+
end
|
|
22
|
+
config.mock_with :rspec do |mocks|
|
|
23
|
+
mocks.verify_partial_doubles = true
|
|
24
|
+
end
|
|
25
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
|
26
|
+
config.order = :random
|
|
27
|
+
Kernel.srand config.seed
|
|
28
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-cognitive-immune-memory
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Esity
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: legion-gaia
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
26
|
+
description: T-cell/B-cell persistent threat recognition with secondary response amplification
|
|
27
|
+
for the LegionIO cognitive architecture
|
|
28
|
+
email:
|
|
29
|
+
- matthewdiverson@gmail.com
|
|
30
|
+
executables: []
|
|
31
|
+
extensions: []
|
|
32
|
+
extra_rdoc_files: []
|
|
33
|
+
files:
|
|
34
|
+
- ".github/workflows/ci.yml"
|
|
35
|
+
- ".gitignore"
|
|
36
|
+
- ".rspec"
|
|
37
|
+
- ".rubocop.yml"
|
|
38
|
+
- CLAUDE.md
|
|
39
|
+
- Gemfile
|
|
40
|
+
- README.md
|
|
41
|
+
- lex-cognitive-immune-memory.gemspec
|
|
42
|
+
- lib/legion/extensions/cognitive_immune_memory.rb
|
|
43
|
+
- lib/legion/extensions/cognitive_immune_memory/client.rb
|
|
44
|
+
- lib/legion/extensions/cognitive_immune_memory/helpers/constants.rb
|
|
45
|
+
- lib/legion/extensions/cognitive_immune_memory/helpers/encounter.rb
|
|
46
|
+
- lib/legion/extensions/cognitive_immune_memory/helpers/immune_memory_engine.rb
|
|
47
|
+
- lib/legion/extensions/cognitive_immune_memory/helpers/memory_cell.rb
|
|
48
|
+
- lib/legion/extensions/cognitive_immune_memory/runners/cognitive_immune_memory.rb
|
|
49
|
+
- lib/legion/extensions/cognitive_immune_memory/version.rb
|
|
50
|
+
- spec/legion/extensions/cognitive_immune_memory/client_spec.rb
|
|
51
|
+
- spec/legion/extensions/cognitive_immune_memory/helpers/encounter_spec.rb
|
|
52
|
+
- spec/legion/extensions/cognitive_immune_memory/helpers/immune_memory_engine_spec.rb
|
|
53
|
+
- spec/legion/extensions/cognitive_immune_memory/helpers/memory_cell_spec.rb
|
|
54
|
+
- spec/legion/extensions/cognitive_immune_memory/runners_spec.rb
|
|
55
|
+
- spec/legion/extensions/cognitive_immune_memory_spec.rb
|
|
56
|
+
- spec/spec_helper.rb
|
|
57
|
+
homepage: https://github.com/LegionIO/lex-cognitive-immune-memory
|
|
58
|
+
licenses:
|
|
59
|
+
- MIT
|
|
60
|
+
metadata:
|
|
61
|
+
homepage_uri: https://github.com/LegionIO/lex-cognitive-immune-memory
|
|
62
|
+
source_code_uri: https://github.com/LegionIO/lex-cognitive-immune-memory
|
|
63
|
+
documentation_uri: https://github.com/LegionIO/lex-cognitive-immune-memory/blob/origin/README.md
|
|
64
|
+
changelog_uri: https://github.com/LegionIO/lex-cognitive-immune-memory/blob/origin/CHANGELOG.md
|
|
65
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-cognitive-immune-memory/issues
|
|
66
|
+
rubygems_mfa_required: 'true'
|
|
67
|
+
rdoc_options: []
|
|
68
|
+
require_paths:
|
|
69
|
+
- lib
|
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '3.4'
|
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '0'
|
|
80
|
+
requirements: []
|
|
81
|
+
rubygems_version: 3.6.9
|
|
82
|
+
specification_version: 4
|
|
83
|
+
summary: Long-term adaptive immune memory for LegionIO agents
|
|
84
|
+
test_files: []
|