mrs-core 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl

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.
mrs/phases.py CHANGED
@@ -1,3 +1,7 @@
1
+ # phases.py — MRS-Core
2
+ # Defines legal phase transitions and validation logic.
3
+
4
+ # Phase transition map for strict reasoning flow
1
5
  PHASE_FLOW = {
2
6
  "start": "transform",
3
7
  "transform": "reflect",
@@ -8,8 +12,39 @@ PHASE_FLOW = {
8
12
  "done": "done",
9
13
  }
10
14
 
11
- def validate_phase(operator_name, current_phase):
12
- return None # permissive for now
13
15
 
14
16
  def next_phase(operator_name, current_phase):
17
+ """
18
+ Given the current phase, return the next allowed phase.
19
+ Engine.py requires this — do NOT remove.
20
+ """
15
21
  return PHASE_FLOW.get(current_phase, "done")
22
+
23
+
24
+ # Legal phase definitions for each operator
25
+ LEGAL_PHASES = {
26
+ "transform": ["start"],
27
+ "reflect": ["transform"],
28
+ "evaluate": ["reflect"],
29
+ "rewrite": ["evaluate"],
30
+ "summarize": ["rewrite"],
31
+ # Inspect & filter are utility ops usable later in the chain
32
+ "inspect": ["evaluate", "rewrite", "summarize"],
33
+ "filter": ["evaluate", "rewrite", "summarize"],
34
+ }
35
+
36
+
37
+ def validate_phase(operator_name, current_phase):
38
+ """
39
+ Return an error string if operator is used in an illegal phase.
40
+ Return None if legal.
41
+
42
+ Engine.py expects:
43
+ - None = OK
44
+ - String = violation
45
+ """
46
+ allowed = LEGAL_PHASES.get(operator_name, [])
47
+ if current_phase not in allowed:
48
+ return f"Operator '{operator_name}' not allowed in phase '{current_phase}'"
49
+ return None
50
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mrs-core
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: MRS-Core: A deterministic modular reasoning engine.
5
5
  Author: Ryan Sabouhi
6
6
  License: Apache-2.0
@@ -81,7 +81,7 @@ MRS records:
81
81
  - Each operator is a small Python class registered via the Operator Registry.
82
82
 
83
83
  ### Drop-In Presets
84
- `simple`, `reasoning`, `full_chain` ready for production use.
84
+ `simple`, `reasoning`, `full_chain` presets included for immediate use and extension.
85
85
 
86
86
  ---
87
87
 
@@ -112,12 +112,19 @@ print(result["phase"])
112
112
 
113
113
  # Example Output
114
114
  ```bash
115
- [REFLECT] [TRANSFORM]
116
- MRS-CORE IS A MODULAR DETERMINISTIC REASONING PIPELINE.
117
-
118
- [EVAL CHARS=95 WORDS=14]
119
-
120
- PHASE: rewrite
115
+ FINAL TEXT:
116
+ [REFLECT] [TRANSFORM] THIS IS A TEST OF MRS-CORE.
117
+ [EVAL CHARS=49 WORDS=8]
118
+
119
+ LOG:
120
+ - Transform applied
121
+ - [PHASE] start → transform
122
+ - Reflect applied
123
+ - [PHASE] transform → reflect
124
+ - Evaluate applied
125
+ - [PHASE] reflect → evaluate
126
+ - Rewrite applied
127
+ - [PHASE] evaluate → rewrite
121
128
  ```
122
129
  ---
123
130
 
@@ -160,6 +167,11 @@ for name in ["simple", "reasoning", "full_chain"]:
160
167
  print(f"=== {name.upper()} ===")
161
168
  print(result["text"])
162
169
  ```
170
+
171
+ Note: Presets are *example chains*, not semantic models.
172
+ Operators are deterministic components; their meaning depends on the chain design.
173
+ `full_chain` is intentionally simple and does not represent a cognitive process.
174
+
163
175
  ---
164
176
 
165
177
  # Operator Anatomy
@@ -168,7 +180,7 @@ for name in ["simple", "reasoning", "full_chain"]:
168
180
  - receives the current ReasoningState
169
181
  - modifies state.text
170
182
  - appends to state.log
171
- - updates state.phase
183
+ - engine updates state.phase automatically based on the operator's phase transition rules
172
184
  - records an entry in state.history
173
185
 
174
186
  ### Example:
@@ -177,7 +189,7 @@ for name in ["simple", "reasoning", "full_chain"]:
177
189
  class ReflectOperator(Operator):
178
190
  phase = ("transform", "reflect")
179
191
 
180
- def run(self, state):
192
+ def run(self, state, **kwags):
181
193
  state.text = f"[REFLECT] {state.text}"
182
194
  state.log.append("Reflect applied")
183
195
  return state
@@ -2,7 +2,7 @@ mrs/__init__.py,sha256=WoQ9QtnmAbFUsLWuXUTxwpBYm0LS9XBQOcZGPpbV4cs,844
2
2
  mrs/diagnostics.py,sha256=zbAp0iM6Gko5R4Z2Yb8HKaesUuy-b21cwgxsUIjKM8I,606
3
3
  mrs/engine.py,sha256=dYaGZkeuz1YHc-q-PG48TJ6est0OAX5SpmdD-J_zIIU,1365
4
4
  mrs/exceptions.py,sha256=zTplNq6HbVzaZmIhJPOGUvuqQmE9rqprDzZRiJYxDQs,242
5
- mrs/phases.py,sha256=1RVVCJSfxGSYXBg8CRyhOKlvRFflDJWdZ_3Yco_aefc,398
5
+ mrs/phases.py,sha256=caqEwMLQrDE0e9VUrpPbDFXZboEgWsa4v6RtF_v5tNU,1403
6
6
  mrs/pipeline.py,sha256=8pIWEGOt9O42pxdwsYC3UsWSQFqT46rRLsHM-n8xR5A,288
7
7
  mrs/presets.py,sha256=tBKDBwX-PTRoIfjV4xGX1Wng12zsH42mHQ4DFunY5cc,698
8
8
  mrs/registry.py,sha256=cOO5E0W5i2qRdwK4W-lKGHyi_LlEoaPSEL8cBOWyWTw,465
@@ -16,9 +16,9 @@ mrs/operators/reflect.py,sha256=stlm4eeWRo50IQ1CAFB1Pk0KAkRRsGNTRFPJL9-huxo,299
16
16
  mrs/operators/rewrite.py,sha256=UyyhkYeq1c1916Izh47YltjLJ-LRaYIP8Rw_ZfwXsyo,347
17
17
  mrs/operators/summarize.py,sha256=Q-cMvU7Iu48kKi1RbggqItHSFqS6LFqf-qKJ5rlyenU,354
18
18
  mrs/operators/transform.py,sha256=g5Aq2LeziG1Xeqncz053Xmv1SCS_d9Fq_Zsriiebd8A,368
19
- mrs_core-0.1.2.dist-info/licenses/LICENSE,sha256=YhxJr-lCiJMIQLkwOsqof2ZhAr6cOMOnzKX_qOGWIwE,11489
20
- mrs_core-0.1.2.dist-info/licenses/NOTICE,sha256=Gh8CDLuJ2Jgixu3sQ9PgTQv4nTLyNozncfw0wW3hl9U,132
21
- mrs_core-0.1.2.dist-info/METADATA,sha256=KFcQNAcjdyxxBS0PTtALZodahejlcXbs0lvWWhU6Egg,5566
22
- mrs_core-0.1.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
23
- mrs_core-0.1.2.dist-info/top_level.txt,sha256=u-QA32S-jnY2FEXu4JwnPAZGDQdlPyQg2aCXHDAIjwY,4
24
- mrs_core-0.1.2.dist-info/RECORD,,
19
+ mrs_core-0.1.4.dist-info/licenses/LICENSE,sha256=YhxJr-lCiJMIQLkwOsqof2ZhAr6cOMOnzKX_qOGWIwE,11489
20
+ mrs_core-0.1.4.dist-info/licenses/NOTICE,sha256=Gh8CDLuJ2Jgixu3sQ9PgTQv4nTLyNozncfw0wW3hl9U,132
21
+ mrs_core-0.1.4.dist-info/METADATA,sha256=xDB7TmPl0GjDNt_DD7IG1l81cxWtSXkw1Dp4We4mw7Q,6073
22
+ mrs_core-0.1.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
23
+ mrs_core-0.1.4.dist-info/top_level.txt,sha256=u-QA32S-jnY2FEXu4JwnPAZGDQdlPyQg2aCXHDAIjwY,4
24
+ mrs_core-0.1.4.dist-info/RECORD,,