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 +37 -2
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/METADATA +22 -10
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/RECORD +7 -7
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/WHEEL +0 -0
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/licenses/LICENSE +0 -0
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/licenses/NOTICE +0 -0
- {mrs_core-0.1.2.dist-info → mrs_core-0.1.4.dist-info}/top_level.txt +0 -0
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.
|
|
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`
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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=
|
|
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.
|
|
20
|
-
mrs_core-0.1.
|
|
21
|
-
mrs_core-0.1.
|
|
22
|
-
mrs_core-0.1.
|
|
23
|
-
mrs_core-0.1.
|
|
24
|
-
mrs_core-0.1.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|