lex-tick 0.1.14 → 0.1.15

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: 5057fa93fb198fd044c7bf73802d9e454311d0913bf32c8c01b73cb508f0ed02
4
- data.tar.gz: 85ee186078e9db6e4d7250de0745f51d5c85703385c2e9396c21ed947f1b57fd
3
+ metadata.gz: e85775bbf80feaa0ab2ee2701639aaa40615c83b2bcd7614ad1bdedda75cb3e8
4
+ data.tar.gz: 24d04ca1ac1b8306b5fcc08fa330c9b875ee60eb496cb4ae80de920f421ab85c
5
5
  SHA512:
6
- metadata.gz: 43833d847d50dd1e1a5a88549c1082c5a076198ee04cf8cf511b6dca3029b1b8c357d435bf6838fa5b8f3a06cf45dab6477f041219326c2f609b7c9ef4ab8179
7
- data.tar.gz: e74030f8aabd9eb496a01b18b36e782cd61cfb6be83cb3ba842c1d5ca62098a2defb9c2c02a4a3c28a465805bce74dee5c25c487fad75371878ebcae5ba0659d
6
+ metadata.gz: 5f5b92c4ff69e1409e2b5dcd90d22c90ba940748dbe6436352f1c27a8fc5828661263b8f7d98888f260f828f19736e370f5ef0c3751ebad31f692415db543c56
7
+ data.tar.gz: b9e3518b9bd20ccf17397b8733878772f1847711e690f9942952abc4f6bd02b94805a22605c1d19f96cff868e0c47556989d36e6b6fbac448c0bf1367780fa61
data/lex-tick.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['matthewdiverson@gmail.com']
10
10
 
11
11
  spec.summary = 'LEX Tick'
12
- spec.description = 'Atomic cognitive processing cycle (11 phases, 3 modes) for brain-modeled agentic AI'
12
+ spec.description = 'Atomic cognitive processing cycle (16 phases, 4 modes, 10 dream phases) for brain-modeled agentic AI'
13
13
  spec.homepage = 'https://github.com/LegionIO/lex-tick'
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = '>= 3.4'
@@ -60,7 +60,9 @@ module Legion
60
60
  DORMANT_TICK_BUDGET = 0.2 # time budget for dormant tick
61
61
  EMERGENCY_PROMOTION_BUDGET = 0.05 # max latency for emergency mode promotion
62
62
 
63
- # Phase timing budgets (fraction of total tick time)
63
+ # Phase timing budgets (fraction of total tick time).
64
+ # Informational only — not enforced by run_phases, which uses the tick-level budget.
65
+ # Useful as a reference for callers that want to self-limit within a phase handler.
64
66
  PHASE_BUDGETS = {
65
67
  sensory_processing: 0.12,
66
68
  emotional_evaluation: 0.08,
@@ -98,7 +98,9 @@ module Legion
98
98
 
99
99
  previous = tick_state.mode
100
100
  tick_state.transition_to(mode)
101
- log.info "[tick] mode forced: #{previous} -> #{mode}"
101
+ @mode_forced = true
102
+ @force_expires_at = Time.now.utc + Helpers::Constants.tick_budget(mode).clamp(0, Helpers::Constants::MAX_TICK_DURATION)
103
+ log.info "[tick] mode forced: #{previous} -> #{mode} (protected until #{@force_expires_at})"
102
104
  { mode: mode }
103
105
  end
104
106
 
@@ -114,7 +116,15 @@ module Legion
114
116
 
115
117
  log.debug "[tick] ##{state.tick_count} starting | mode=#{state.mode} signals=#{signals.size} max_salience=#{max_salience.round(2)}"
116
118
 
117
- evaluate_mode_transition(signals: signals)
119
+ # Skip automatic mode evaluation for the one tick following a forced set_mode call.
120
+ # @mode_forced is set by set_mode and cleared here so the force lasts exactly one cycle.
121
+ if @mode_forced
122
+ log.debug "[tick] ##{state.tick_count} skipping mode evaluation (mode forced to #{state.mode})"
123
+ @mode_forced = false
124
+ @force_expires_at = nil
125
+ else
126
+ evaluate_mode_transition(signals: signals)
127
+ end
118
128
 
119
129
  phases = Helpers::Constants.phases_for_mode(state.mode)
120
130
  budget = Helpers::Constants.tick_budget(state.mode)
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Tick
6
- VERSION = '0.1.14'
6
+ VERSION = '0.1.15'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-tick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -107,8 +107,8 @@ dependencies:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: 1.3.9
110
- description: Atomic cognitive processing cycle (11 phases, 3 modes) for brain-modeled
111
- agentic AI
110
+ description: Atomic cognitive processing cycle (16 phases, 4 modes, 10 dream phases)
111
+ for brain-modeled agentic AI
112
112
  email:
113
113
  - matthewdiverson@gmail.com
114
114
  executables: []