lex-dream 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 +7 -0
- data/.github/workflows/ci.yml +16 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +56 -0
- data/CHANGELOG.md +19 -0
- data/CLAUDE.md +152 -0
- data/Gemfile +17 -0
- data/README.md +56 -0
- data/lex-dream.gemspec +30 -0
- data/lib/legion/extensions/dream/actors/dream_cycle.rb +41 -0
- data/lib/legion/extensions/dream/client.rb +25 -0
- data/lib/legion/extensions/dream/helpers/agenda.rb +70 -0
- data/lib/legion/extensions/dream/helpers/association_walker.rb +55 -0
- data/lib/legion/extensions/dream/helpers/constants.rb +30 -0
- data/lib/legion/extensions/dream/helpers/contradiction_detector.rb +82 -0
- data/lib/legion/extensions/dream/helpers/dream_journal.rb +227 -0
- data/lib/legion/extensions/dream/helpers/dream_store.rb +87 -0
- data/lib/legion/extensions/dream/helpers/llm_enhancer.rb +269 -0
- data/lib/legion/extensions/dream/runners/dream_cycle.rb +324 -0
- data/lib/legion/extensions/dream/version.rb +9 -0
- data/lib/legion/extensions/dream.rb +20 -0
- data/logs/dreams/dream-2026-03-14_064520.md +49 -0
- data/logs/dreams/dream-2026-03-14_064546.md +49 -0
- data/logs/dreams/dream-2026-03-14_065244.md +49 -0
- data/logs/dreams/dream-2026-03-14_065358.md +49 -0
- data/logs/dreams/dream-2026-03-14_065435.md +49 -0
- metadata +87 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Dream
|
|
6
|
+
module Runners
|
|
7
|
+
module DreamCycle
|
|
8
|
+
extend self
|
|
9
|
+
|
|
10
|
+
CONSOLIDATION_CANDIDATE_THRESHOLD = 5
|
|
11
|
+
|
|
12
|
+
EMERGENT_UNRESOLVED = lambda { |trace|
|
|
13
|
+
return true if trace[:unresolved] == true
|
|
14
|
+
|
|
15
|
+
# Episodic traces with high emotional intensity that haven't been reinforced
|
|
16
|
+
return true if trace[:trace_type] == :episodic &&
|
|
17
|
+
trace[:reinforcement_count].zero? &&
|
|
18
|
+
trace[:emotional_intensity] >= 0.5
|
|
19
|
+
|
|
20
|
+
# Any trace with low confidence that hasn't been reinforced
|
|
21
|
+
return true if trace[:confidence].is_a?(Numeric) &&
|
|
22
|
+
trace[:confidence] < 0.4 &&
|
|
23
|
+
trace[:reinforcement_count].zero?
|
|
24
|
+
|
|
25
|
+
# Semantic/procedural traces with negative valence (potential concerns worth examining)
|
|
26
|
+
return true if %i[semantic procedural].include?(trace[:trace_type]) &&
|
|
27
|
+
trace[:emotional_valence].is_a?(Numeric) &&
|
|
28
|
+
trace[:emotional_valence] < -0.3 &&
|
|
29
|
+
trace[:reinforcement_count] <= 1
|
|
30
|
+
|
|
31
|
+
# Unreinforced traces with moderate-high intensity (emotionally salient but unprocessed)
|
|
32
|
+
return true if trace[:reinforcement_count].zero? &&
|
|
33
|
+
trace[:emotional_intensity].is_a?(Numeric) &&
|
|
34
|
+
trace[:emotional_intensity] >= 0.6
|
|
35
|
+
|
|
36
|
+
false
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
def execute_dream_cycle(**)
|
|
40
|
+
@phase_data = {}
|
|
41
|
+
results = {}
|
|
42
|
+
|
|
43
|
+
unless memory
|
|
44
|
+
Legion::Logging.warn '[dream] skipping cycle: lex-memory not available'
|
|
45
|
+
return { status: :skipped, reason: :memory_not_available }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Reload from cache to pick up traces written by other runners (e.g. coldstart)
|
|
49
|
+
store = memory.send(:default_store)
|
|
50
|
+
store.reload if store.respond_to?(:reload)
|
|
51
|
+
|
|
52
|
+
Legion::Logging.info '[dream] cycle starting'
|
|
53
|
+
Helpers::Constants::DREAM_CYCLE_PHASES.each do |phase|
|
|
54
|
+
Legion::Logging.debug "[dream] starting phase: #{phase}"
|
|
55
|
+
results[phase] = send(:"phase_#{phase}")
|
|
56
|
+
rescue StandardError => e
|
|
57
|
+
Legion::Logging.error "[dream] phase #{phase} failed: #{e.message}"
|
|
58
|
+
Legion::Logging.error "[dream] #{e.backtrace&.first(3)&.join("\n")}"
|
|
59
|
+
results[phase] = { error: e.message }
|
|
60
|
+
end
|
|
61
|
+
# Flush cache-backed store after all phases
|
|
62
|
+
store = memory.send(:default_store)
|
|
63
|
+
store.flush if store.respond_to?(:flush)
|
|
64
|
+
|
|
65
|
+
# Write human-readable dream journal before clearing state
|
|
66
|
+
Helpers::DreamJournal.write_entry(results: results, phase_data: @phase_data, dream_store: dream_store)
|
|
67
|
+
|
|
68
|
+
Legion::Logging.info "[dream] cycle complete: #{results.keys.join(', ')}"
|
|
69
|
+
{ status: :completed, phases: results }
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def phase_memory_audit(**)
|
|
73
|
+
store = memory.send(:default_store)
|
|
74
|
+
decay_result = memory.decay_cycle(store: store)
|
|
75
|
+
migrate_result = memory.migrate_tier(store: store)
|
|
76
|
+
|
|
77
|
+
candidates = store.all_traces.select do |t|
|
|
78
|
+
t[:trace_type] == :episodic &&
|
|
79
|
+
t[:reinforcement_count] >= CONSOLIDATION_CANDIDATE_THRESHOLD &&
|
|
80
|
+
t[:strength] < Legion::Extensions::Memory::Helpers::Trace::STARTING_STRENGTHS[:episodic]
|
|
81
|
+
end
|
|
82
|
+
candidates.each do |t|
|
|
83
|
+
t[:consolidation_candidate] = true
|
|
84
|
+
store.store(t)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
unresolved = store.all_traces.select(&EMERGENT_UNRESOLVED)
|
|
88
|
+
@phase_data[:unresolved_traces] = unresolved
|
|
89
|
+
|
|
90
|
+
Legion::Logging.debug "[dream] memory_audit: decayed=#{decay_result[:decayed]} pruned=#{decay_result[:pruned]} " \
|
|
91
|
+
"migrated=#{migrate_result[:migrated]} candidates=#{candidates.size} unresolved=#{unresolved.size}"
|
|
92
|
+
{
|
|
93
|
+
decayed: decay_result[:decayed],
|
|
94
|
+
pruned: decay_result[:pruned],
|
|
95
|
+
migrated: migrate_result[:migrated],
|
|
96
|
+
consolidation_candidates: candidates.size,
|
|
97
|
+
unresolved_count: unresolved.size
|
|
98
|
+
}
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def phase_association_walk(**)
|
|
102
|
+
store = memory.send(:default_store)
|
|
103
|
+
start_trace = Helpers::AssociationWalker.select_start_trace(store: store)
|
|
104
|
+
|
|
105
|
+
unless start_trace
|
|
106
|
+
@phase_data[:walk_results] = []
|
|
107
|
+
return { walk_results: [], start_trace: nil }
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
known = Set.new(dream_store.walk_results.map { |w| w[:path].join('->') })
|
|
111
|
+
results = Helpers::AssociationWalker.walk(
|
|
112
|
+
store: store, start_id: start_trace[:trace_id], known_paths: known
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
results.each do |wr|
|
|
116
|
+
dream_store.record_walk_result(
|
|
117
|
+
source_id: start_trace[:trace_id], path: wr[:path], novelty_score: wr[:novelty_score]
|
|
118
|
+
)
|
|
119
|
+
wr[:path].each_cons(2) do |a_id, b_id|
|
|
120
|
+
memory.hebbian_link(trace_id_a: a_id, trace_id_b: b_id, store: store)
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
@phase_data[:walk_results] = results
|
|
125
|
+
Legion::Logging.debug "[dream] association_walk: start=#{start_trace[:trace_id][0..7]} results=#{results.size}"
|
|
126
|
+
{ walk_results: results, start_trace: start_trace[:trace_id] }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def phase_contradiction_resolution(**)
|
|
130
|
+
store = memory.send(:default_store)
|
|
131
|
+
detected = Helpers::ContradictionDetector.detect(store: store)
|
|
132
|
+
use_llm = Helpers::LlmEnhancer.available?
|
|
133
|
+
|
|
134
|
+
resolutions = detected.map do |contradiction|
|
|
135
|
+
trace_a = store.get(contradiction[:trace_ids][0])
|
|
136
|
+
trace_b = store.get(contradiction[:trace_ids][1])
|
|
137
|
+
|
|
138
|
+
result = resolve_single_contradiction(
|
|
139
|
+
trace_a, trace_b, contradiction, store, use_llm
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
dream_store.record_contradiction(
|
|
143
|
+
trace_ids: contradiction[:trace_ids],
|
|
144
|
+
domain: contradiction[:domain],
|
|
145
|
+
resolution: result[:resolution]
|
|
146
|
+
)
|
|
147
|
+
result.merge(
|
|
148
|
+
domain: contradiction[:domain],
|
|
149
|
+
valence_a: contradiction[:valence_a],
|
|
150
|
+
valence_b: contradiction[:valence_b]
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
@phase_data[:contradictions] = resolutions
|
|
155
|
+
resolved_count = resolutions.count { |r| r[:resolution] == :resolved }
|
|
156
|
+
Legion::Logging.debug "[dream] contradiction_resolution: detected=#{detected.size} " \
|
|
157
|
+
"resolved=#{resolved_count} llm=#{use_llm}"
|
|
158
|
+
{ detected: detected.size, resolutions: resolutions }
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def resolve_single_contradiction(trace_a, trace_b, contradiction, store, use_llm)
|
|
162
|
+
# Try LLM-enhanced resolution first
|
|
163
|
+
if use_llm && trace_a && trace_b
|
|
164
|
+
llm_result = Helpers::LlmEnhancer.resolve_contradiction(
|
|
165
|
+
trace_a, trace_b,
|
|
166
|
+
strategy: Helpers::Constants::CONTRADICTION_RESOLUTION_STRATEGY
|
|
167
|
+
)
|
|
168
|
+
if llm_result
|
|
169
|
+
apply_contradiction_result(llm_result, store)
|
|
170
|
+
return llm_result
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Mechanical fallback — ContradictionDetector.resolve mutates traces in-place
|
|
175
|
+
Helpers::ContradictionDetector.resolve(
|
|
176
|
+
trace_ids: contradiction[:trace_ids],
|
|
177
|
+
store: store,
|
|
178
|
+
strategy: Helpers::Constants::CONTRADICTION_RESOLUTION_STRATEGY
|
|
179
|
+
)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def apply_contradiction_result(result, store)
|
|
183
|
+
return unless result[:resolution] == :resolved
|
|
184
|
+
|
|
185
|
+
winner = store.get(result[:winner_id])
|
|
186
|
+
loser = store.get(result[:loser_id])
|
|
187
|
+
return unless winner && loser
|
|
188
|
+
|
|
189
|
+
now = Time.now.utc
|
|
190
|
+
winner[:strength] = [winner[:strength] + 0.1, 1.0].min
|
|
191
|
+
winner[:peak_strength] = [winner[:peak_strength], winner[:strength]].max
|
|
192
|
+
winner[:last_reinforced] = now
|
|
193
|
+
store.store(winner)
|
|
194
|
+
|
|
195
|
+
loser[:strength] = [loser[:strength] - 0.1, 0.0].max
|
|
196
|
+
store.store(loser)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def phase_identity_entropy_check(**)
|
|
200
|
+
unless identity
|
|
201
|
+
Legion::Logging.warn '[dream] skipping identity_entropy_check: lex-identity not available'
|
|
202
|
+
return { status: :skipped, reason: :identity_not_available }
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
result = identity.check_entropy(observations: {})
|
|
206
|
+
dream_store.record_entropy(
|
|
207
|
+
entropy: result[:entropy],
|
|
208
|
+
classification: result[:classification],
|
|
209
|
+
trend: result[:trend]
|
|
210
|
+
)
|
|
211
|
+
@phase_data[:entropy] = result
|
|
212
|
+
Legion::Logging.debug "[dream] identity_entropy: #{result[:classification]} trend=#{result[:trend]}"
|
|
213
|
+
result
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
def phase_agenda_formation(**)
|
|
217
|
+
unresolved = @phase_data[:unresolved_traces] || []
|
|
218
|
+
contradictions = @phase_data[:contradictions] || []
|
|
219
|
+
walk_results = @phase_data[:walk_results] || []
|
|
220
|
+
entropy = @phase_data[:entropy] || {}
|
|
221
|
+
|
|
222
|
+
# Try LLM-synthesized agenda first
|
|
223
|
+
items = if Helpers::LlmEnhancer.available?
|
|
224
|
+
Helpers::LlmEnhancer.synthesize_agenda(
|
|
225
|
+
unresolved_traces: unresolved,
|
|
226
|
+
contradictions: contradictions,
|
|
227
|
+
walk_results: walk_results,
|
|
228
|
+
entropy: entropy
|
|
229
|
+
)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
# Mechanical fallback
|
|
233
|
+
items ||= Helpers::Agenda.build_from_phases(
|
|
234
|
+
unresolved_traces: unresolved,
|
|
235
|
+
contradictions: contradictions,
|
|
236
|
+
walk_results: walk_results,
|
|
237
|
+
entropy: entropy
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
items.each do |item|
|
|
241
|
+
dream_store.add_agenda_item(type: item[:type], content: item[:content], weight: item[:weight])
|
|
242
|
+
end
|
|
243
|
+
Legion::Logging.debug "[dream] agenda_formation: #{items.size} items (llm=#{Helpers::LlmEnhancer.available?})"
|
|
244
|
+
{ agenda_items: items.size }
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def phase_consolidation_commit(**)
|
|
248
|
+
# Snapshot agenda before clearing — used by dream journal
|
|
249
|
+
@phase_data[:agenda_snapshot] = dream_store.agenda.dup
|
|
250
|
+
store = memory.send(:default_store)
|
|
251
|
+
traces = Helpers::Agenda.to_semantic_traces(dream_store.agenda)
|
|
252
|
+
traces.each { |t| store.store(t) }
|
|
253
|
+
|
|
254
|
+
Array(@phase_data[:unresolved_traces]).each do |t|
|
|
255
|
+
trace = store.get(t[:trace_id])
|
|
256
|
+
next unless trace
|
|
257
|
+
|
|
258
|
+
trace[:unresolved] = false
|
|
259
|
+
store.store(trace)
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
dream_store.expire_stale!
|
|
263
|
+
dream_store.clear
|
|
264
|
+
Legion::Logging.info "[dream] consolidation_commit: #{traces.size} traces written to memory"
|
|
265
|
+
{ traces_written: traces.size, dream_store_cleared: true }
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def phase_dream_reflection(**)
|
|
269
|
+
return { status: :skipped, reason: :extension_not_loaded } unless reflection_available?
|
|
270
|
+
|
|
271
|
+
reflection_runner = Object.new.extend(Legion::Extensions::Reflection::Runners::Reflection)
|
|
272
|
+
result = reflection_runner.reflect(tick_results: @phase_data)
|
|
273
|
+
|
|
274
|
+
@phase_data[:dream_health] = result[:cognitive_health]
|
|
275
|
+
Legion::Logging.debug "[dream] dream_reflection: health=#{result[:cognitive_health]} reflections=#{result[:reflections_generated]}"
|
|
276
|
+
result
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
def phase_dream_narration(**)
|
|
280
|
+
return { status: :skipped, reason: :extension_not_loaded } unless narrator_available?
|
|
281
|
+
|
|
282
|
+
narrator_runner = Object.new.extend(Legion::Extensions::Narrator::Runners::Narrator)
|
|
283
|
+
result = narrator_runner.narrate(tick_results: @phase_data, cognitive_state: { source: :dream })
|
|
284
|
+
|
|
285
|
+
Legion::Logging.debug "[dream] dream_narration: mood=#{result[:mood]}"
|
|
286
|
+
result
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
|
|
290
|
+
|
|
291
|
+
private
|
|
292
|
+
|
|
293
|
+
def memory
|
|
294
|
+
@memory ||= Legion::Extensions::Memory::Client.new if defined?(Legion::Extensions::Memory::Client)
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
def identity
|
|
298
|
+
@identity ||= Object.new.extend(Legion::Extensions::Identity::Runners::Identity) if defined?(Legion::Extensions::Identity::Runners::Identity)
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
def reflection_available?
|
|
302
|
+
Legion::Extensions.const_defined?(:Reflection) &&
|
|
303
|
+
Legion::Extensions::Reflection.const_defined?(:Runners) &&
|
|
304
|
+
Legion::Extensions::Reflection::Runners.const_defined?(:Reflection)
|
|
305
|
+
rescue StandardError
|
|
306
|
+
false
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
def narrator_available?
|
|
310
|
+
Legion::Extensions.const_defined?(:Narrator) &&
|
|
311
|
+
Legion::Extensions::Narrator.const_defined?(:Runners) &&
|
|
312
|
+
Legion::Extensions::Narrator::Runners.const_defined?(:Narrator)
|
|
313
|
+
rescue StandardError
|
|
314
|
+
false
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
def dream_store
|
|
318
|
+
@dream_store ||= Helpers::DreamStore.new
|
|
319
|
+
end
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
end
|
|
324
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/dream/version'
|
|
4
|
+
require 'legion/extensions/dream/helpers/constants'
|
|
5
|
+
require 'legion/extensions/dream/helpers/dream_store'
|
|
6
|
+
require 'legion/extensions/dream/helpers/association_walker'
|
|
7
|
+
require 'legion/extensions/dream/helpers/contradiction_detector'
|
|
8
|
+
require 'legion/extensions/dream/helpers/agenda'
|
|
9
|
+
require 'legion/extensions/dream/helpers/dream_journal'
|
|
10
|
+
require 'legion/extensions/dream/helpers/llm_enhancer'
|
|
11
|
+
require 'legion/extensions/dream/runners/dream_cycle'
|
|
12
|
+
require 'legion/extensions/dream/client'
|
|
13
|
+
|
|
14
|
+
module Legion
|
|
15
|
+
module Extensions
|
|
16
|
+
module Dream
|
|
17
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Dream Cycle — 2026-03-14 06:45:20 UTC
|
|
2
|
+
|
|
3
|
+
## Phase 1: Memory Audit
|
|
4
|
+
|
|
5
|
+
- Traces decayed: 0
|
|
6
|
+
- Traces pruned: 0
|
|
7
|
+
- Tier migrations: 0
|
|
8
|
+
- Consolidation candidates: 0
|
|
9
|
+
- Unresolved traces found: 0
|
|
10
|
+
|
|
11
|
+
## Phase 2: Association Walk
|
|
12
|
+
|
|
13
|
+
- Start trace: none
|
|
14
|
+
- Paths found: 0
|
|
15
|
+
|
|
16
|
+
## Phase 3: Contradiction Resolution
|
|
17
|
+
|
|
18
|
+
- Contradictions detected: 0
|
|
19
|
+
- Resolved: 0
|
|
20
|
+
- Unresolvable: 0
|
|
21
|
+
|
|
22
|
+
## Phase 4: Identity Entropy
|
|
23
|
+
|
|
24
|
+
- Classification: normal
|
|
25
|
+
- Trend: stable
|
|
26
|
+
- Entropy value: 0.5
|
|
27
|
+
|
|
28
|
+
## Phase 5: Agenda Formation
|
|
29
|
+
|
|
30
|
+
- Total agenda items: 0
|
|
31
|
+
|
|
32
|
+
## Phase 6: Consolidation Commit
|
|
33
|
+
|
|
34
|
+
- Traces written to memory: 0
|
|
35
|
+
- Dream store cleared: true
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Summary
|
|
40
|
+
|
|
41
|
+
| Metric | Value |
|
|
42
|
+
|--------|-------|
|
|
43
|
+
| Traces decayed | 0 |
|
|
44
|
+
| Unresolved found | 0 |
|
|
45
|
+
| Associations walked | 0 |
|
|
46
|
+
| Contradictions detected | 0 |
|
|
47
|
+
| Contradictions resolved | 0 |
|
|
48
|
+
| Agenda items formed | 0 |
|
|
49
|
+
| Traces consolidated | 0 |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Dream Cycle — 2026-03-14 06:45:46 UTC
|
|
2
|
+
|
|
3
|
+
## Phase 1: Memory Audit
|
|
4
|
+
|
|
5
|
+
- Traces decayed: 0
|
|
6
|
+
- Traces pruned: 0
|
|
7
|
+
- Tier migrations: 0
|
|
8
|
+
- Consolidation candidates: 0
|
|
9
|
+
- Unresolved traces found: 0
|
|
10
|
+
|
|
11
|
+
## Phase 2: Association Walk
|
|
12
|
+
|
|
13
|
+
- Start trace: none
|
|
14
|
+
- Paths found: 0
|
|
15
|
+
|
|
16
|
+
## Phase 3: Contradiction Resolution
|
|
17
|
+
|
|
18
|
+
- Contradictions detected: 0
|
|
19
|
+
- Resolved: 0
|
|
20
|
+
- Unresolvable: 0
|
|
21
|
+
|
|
22
|
+
## Phase 4: Identity Entropy
|
|
23
|
+
|
|
24
|
+
- Classification: normal
|
|
25
|
+
- Trend: stable
|
|
26
|
+
- Entropy value: 0.5
|
|
27
|
+
|
|
28
|
+
## Phase 5: Agenda Formation
|
|
29
|
+
|
|
30
|
+
- Total agenda items: 0
|
|
31
|
+
|
|
32
|
+
## Phase 6: Consolidation Commit
|
|
33
|
+
|
|
34
|
+
- Traces written to memory: 0
|
|
35
|
+
- Dream store cleared: true
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Summary
|
|
40
|
+
|
|
41
|
+
| Metric | Value |
|
|
42
|
+
|--------|-------|
|
|
43
|
+
| Traces decayed | 0 |
|
|
44
|
+
| Unresolved found | 0 |
|
|
45
|
+
| Associations walked | 0 |
|
|
46
|
+
| Contradictions detected | 0 |
|
|
47
|
+
| Contradictions resolved | 0 |
|
|
48
|
+
| Agenda items formed | 0 |
|
|
49
|
+
| Traces consolidated | 0 |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Dream Cycle — 2026-03-14 06:52:44 UTC
|
|
2
|
+
|
|
3
|
+
## Phase 1: Memory Audit
|
|
4
|
+
|
|
5
|
+
- Traces decayed: 0
|
|
6
|
+
- Traces pruned: 0
|
|
7
|
+
- Tier migrations: 0
|
|
8
|
+
- Consolidation candidates: 0
|
|
9
|
+
- Unresolved traces found: 0
|
|
10
|
+
|
|
11
|
+
## Phase 2: Association Walk
|
|
12
|
+
|
|
13
|
+
- Start trace: none
|
|
14
|
+
- Paths found: 0
|
|
15
|
+
|
|
16
|
+
## Phase 3: Contradiction Resolution
|
|
17
|
+
|
|
18
|
+
- Contradictions detected: 0
|
|
19
|
+
- Resolved: 0
|
|
20
|
+
- Unresolvable: 0
|
|
21
|
+
|
|
22
|
+
## Phase 4: Identity Entropy
|
|
23
|
+
|
|
24
|
+
- Classification: normal
|
|
25
|
+
- Trend: stable
|
|
26
|
+
- Entropy value: 0.5
|
|
27
|
+
|
|
28
|
+
## Phase 5: Agenda Formation
|
|
29
|
+
|
|
30
|
+
- Total agenda items: 0
|
|
31
|
+
|
|
32
|
+
## Phase 6: Consolidation Commit
|
|
33
|
+
|
|
34
|
+
- Traces written to memory: 0
|
|
35
|
+
- Dream store cleared: true
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Summary
|
|
40
|
+
|
|
41
|
+
| Metric | Value |
|
|
42
|
+
|--------|-------|
|
|
43
|
+
| Traces decayed | 0 |
|
|
44
|
+
| Unresolved found | 0 |
|
|
45
|
+
| Associations walked | 0 |
|
|
46
|
+
| Contradictions detected | 0 |
|
|
47
|
+
| Contradictions resolved | 0 |
|
|
48
|
+
| Agenda items formed | 0 |
|
|
49
|
+
| Traces consolidated | 0 |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Dream Cycle — 2026-03-14 06:53:58 UTC
|
|
2
|
+
|
|
3
|
+
## Phase 1: Memory Audit
|
|
4
|
+
|
|
5
|
+
- Traces decayed: 0
|
|
6
|
+
- Traces pruned: 0
|
|
7
|
+
- Tier migrations: 0
|
|
8
|
+
- Consolidation candidates: 0
|
|
9
|
+
- Unresolved traces found: 0
|
|
10
|
+
|
|
11
|
+
## Phase 2: Association Walk
|
|
12
|
+
|
|
13
|
+
- Start trace: none
|
|
14
|
+
- Paths found: 0
|
|
15
|
+
|
|
16
|
+
## Phase 3: Contradiction Resolution
|
|
17
|
+
|
|
18
|
+
- Contradictions detected: 0
|
|
19
|
+
- Resolved: 0
|
|
20
|
+
- Unresolvable: 0
|
|
21
|
+
|
|
22
|
+
## Phase 4: Identity Entropy
|
|
23
|
+
|
|
24
|
+
- Classification: normal
|
|
25
|
+
- Trend: stable
|
|
26
|
+
- Entropy value: 0.5
|
|
27
|
+
|
|
28
|
+
## Phase 5: Agenda Formation
|
|
29
|
+
|
|
30
|
+
- Total agenda items: 0
|
|
31
|
+
|
|
32
|
+
## Phase 6: Consolidation Commit
|
|
33
|
+
|
|
34
|
+
- Traces written to memory: 0
|
|
35
|
+
- Dream store cleared: true
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Summary
|
|
40
|
+
|
|
41
|
+
| Metric | Value |
|
|
42
|
+
|--------|-------|
|
|
43
|
+
| Traces decayed | 0 |
|
|
44
|
+
| Unresolved found | 0 |
|
|
45
|
+
| Associations walked | 0 |
|
|
46
|
+
| Contradictions detected | 0 |
|
|
47
|
+
| Contradictions resolved | 0 |
|
|
48
|
+
| Agenda items formed | 0 |
|
|
49
|
+
| Traces consolidated | 0 |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Dream Cycle — 2026-03-14 06:54:35 UTC
|
|
2
|
+
|
|
3
|
+
## Phase 1: Memory Audit
|
|
4
|
+
|
|
5
|
+
- Traces decayed: 0
|
|
6
|
+
- Traces pruned: 0
|
|
7
|
+
- Tier migrations: 0
|
|
8
|
+
- Consolidation candidates: 0
|
|
9
|
+
- Unresolved traces found: 0
|
|
10
|
+
|
|
11
|
+
## Phase 2: Association Walk
|
|
12
|
+
|
|
13
|
+
- Start trace: none
|
|
14
|
+
- Paths found: 0
|
|
15
|
+
|
|
16
|
+
## Phase 3: Contradiction Resolution
|
|
17
|
+
|
|
18
|
+
- Contradictions detected: 0
|
|
19
|
+
- Resolved: 0
|
|
20
|
+
- Unresolvable: 0
|
|
21
|
+
|
|
22
|
+
## Phase 4: Identity Entropy
|
|
23
|
+
|
|
24
|
+
- Classification: normal
|
|
25
|
+
- Trend: stable
|
|
26
|
+
- Entropy value: 0.5
|
|
27
|
+
|
|
28
|
+
## Phase 5: Agenda Formation
|
|
29
|
+
|
|
30
|
+
- Total agenda items: 0
|
|
31
|
+
|
|
32
|
+
## Phase 6: Consolidation Commit
|
|
33
|
+
|
|
34
|
+
- Traces written to memory: 0
|
|
35
|
+
- Dream store cleared: true
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Summary
|
|
40
|
+
|
|
41
|
+
| Metric | Value |
|
|
42
|
+
|--------|-------|
|
|
43
|
+
| Traces decayed | 0 |
|
|
44
|
+
| Unresolved found | 0 |
|
|
45
|
+
| Associations walked | 0 |
|
|
46
|
+
| Contradictions detected | 0 |
|
|
47
|
+
| Contradictions resolved | 0 |
|
|
48
|
+
| Agenda items formed | 0 |
|
|
49
|
+
| Traces consolidated | 0 |
|
metadata
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-dream
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.1
|
|
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: Autonomous dream cycle for brain-modeled agentic AI — memory consolidation,
|
|
27
|
+
association walking, contradiction resolution, and agenda formation
|
|
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
|
+
- CHANGELOG.md
|
|
39
|
+
- CLAUDE.md
|
|
40
|
+
- Gemfile
|
|
41
|
+
- README.md
|
|
42
|
+
- lex-dream.gemspec
|
|
43
|
+
- lib/legion/extensions/dream.rb
|
|
44
|
+
- lib/legion/extensions/dream/actors/dream_cycle.rb
|
|
45
|
+
- lib/legion/extensions/dream/client.rb
|
|
46
|
+
- lib/legion/extensions/dream/helpers/agenda.rb
|
|
47
|
+
- lib/legion/extensions/dream/helpers/association_walker.rb
|
|
48
|
+
- lib/legion/extensions/dream/helpers/constants.rb
|
|
49
|
+
- lib/legion/extensions/dream/helpers/contradiction_detector.rb
|
|
50
|
+
- lib/legion/extensions/dream/helpers/dream_journal.rb
|
|
51
|
+
- lib/legion/extensions/dream/helpers/dream_store.rb
|
|
52
|
+
- lib/legion/extensions/dream/helpers/llm_enhancer.rb
|
|
53
|
+
- lib/legion/extensions/dream/runners/dream_cycle.rb
|
|
54
|
+
- lib/legion/extensions/dream/version.rb
|
|
55
|
+
- logs/dreams/dream-2026-03-14_064520.md
|
|
56
|
+
- logs/dreams/dream-2026-03-14_064546.md
|
|
57
|
+
- logs/dreams/dream-2026-03-14_065244.md
|
|
58
|
+
- logs/dreams/dream-2026-03-14_065358.md
|
|
59
|
+
- logs/dreams/dream-2026-03-14_065435.md
|
|
60
|
+
homepage: https://github.com/LegionIO/lex-dream
|
|
61
|
+
licenses:
|
|
62
|
+
- MIT
|
|
63
|
+
metadata:
|
|
64
|
+
homepage_uri: https://github.com/LegionIO/lex-dream
|
|
65
|
+
source_code_uri: https://github.com/LegionIO/lex-dream
|
|
66
|
+
documentation_uri: https://github.com/LegionIO/lex-dream
|
|
67
|
+
changelog_uri: https://github.com/LegionIO/lex-dream
|
|
68
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-dream/issues
|
|
69
|
+
rubygems_mfa_required: 'true'
|
|
70
|
+
rdoc_options: []
|
|
71
|
+
require_paths:
|
|
72
|
+
- lib
|
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - ">="
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '3.4'
|
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
requirements: []
|
|
84
|
+
rubygems_version: 3.6.9
|
|
85
|
+
specification_version: 4
|
|
86
|
+
summary: LEX Dream
|
|
87
|
+
test_files: []
|