fpf-thinking-map 1.3.0__tar.gz → 1.3.1__tar.gz
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.
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/PKG-INFO +11 -5
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/README.md +10 -4
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map.egg-info/PKG-INFO +11 -5
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/pyproject.toml +1 -1
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/LICENSE +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/FPF_AUDIT_RESPONSE.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/FPF_FLOOR_MAP.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/FPF_SOURCE_TO_CODE_RELATION_AUDIT.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/README.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/REJECTED_C32_CANDIDATE_SYNTHESIS.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/REJECTED_NQD_OEE_CULTURAL_EVOLUTION.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/RELATED_WORK_GOFLOW_FPF_SKILL.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/SOURCES.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/WHY_THIS_EXISTS.md +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/__init__.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/examples.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/guards.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/logic.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/primitives.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/py.typed +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/state.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/traversal.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/verify.py +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map.egg-info/SOURCES.txt +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map.egg-info/dependency_links.txt +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map.egg-info/top_level.txt +0 -0
- {fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fpf-thinking-map
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: Agentic thinking map — structured reasoning constraints for LLMs with TTL evidence decay, deterministic guards, and propositional logic glue. Compiled from FPF (First Principles Framework).
|
|
5
5
|
Author-email: "prichindel.com" <igareosh@igareosh.com>
|
|
6
6
|
License: MIT
|
|
@@ -27,7 +27,7 @@ Dynamic: license-file
|
|
|
27
27
|
|
|
28
28
|
# prichindel.com Agentic Thinking Map
|
|
29
29
|
|
|
30
|
-
**v1.3.
|
|
30
|
+
**v1.3.1** — [FPF (First Principles Framework)](https://github.com/ailev/FPF) compiled into a semi-formal thinking map for agentic AI guidance.
|
|
31
31
|
|
|
32
32
|
A Python package that gives an AI model a small, structured board to reason on — one move at a time. Instead of freeform text generation, the model navigates a pre-shaped semantic field with deterministic guards and propositional logic constraints.
|
|
33
33
|
|
|
@@ -131,6 +131,12 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
131
131
|
- **Evidence status in prompt** — the LLM prompt state now includes per-evidence freshness and TTL remaining. The model sees "test_results: 3 steps left" instead of just "test_results: exists." Decisions informed by countdown, not by guessing.
|
|
132
132
|
- **Response contract** — every slice now ends with a `response_contract`: the structured template the model must fill when responding. Pre-filled fields (scope, basis with freshness/TTL, allowed use, not allowed use, modality, canonical terms, audience) come from the computed state. Empty fields (claim, risky aliases) are for the model. This is why all the code exists — so the contract has precomputed, validated values instead of being re-derived by the model from scratch.
|
|
133
133
|
|
|
134
|
+
## v1.3.0 changes
|
|
135
|
+
|
|
136
|
+
- **Bridge crossing is enforced, not just advertised** — `ActiveState.cross_bridge()` / `ThinkingMapTraversal.attempt_bridge()` actually perform a cross-context hop and check `substitution_license` against `risk_level` before mutating state. An unlicensed bridge under `high`/`critical` risk is refused (`ESCALATE`), not silently allowed. Before this, `bridge_options()` was advisory metadata only — the model decided for itself whether a lossy translation was acceptable.
|
|
137
|
+
- **`include_full_state=False`** — `step()` can now ship the scoped `slice()` alone, without the whole board bolted on. Default stays `True`; opt in when the caller already knows its `transition_id` and wants the lean payload.
|
|
138
|
+
- 21/21 self-verification checks (`python -m fpf_thinking_map.verify`), two new: bridge crossing and lean-slice payload shape.
|
|
139
|
+
|
|
134
140
|
## Design principles
|
|
135
141
|
|
|
136
142
|
- **Only add structure when it changes agentic behavior** — not for source fidelity alone
|
|
@@ -140,10 +146,10 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
140
146
|
|
|
141
147
|
## Using as a dependency
|
|
142
148
|
|
|
143
|
-
This package is the reasoning engine. Your domain maps run on top of it.
|
|
149
|
+
This package is the compiled map, not a reasoning engine — it doesn't think for the model. Denying unlawful moves is the smaller half of the job; the bigger half is handing back the lawful ones as a small, plain-JSON slice — what can fire, what's missing, why — so the model has simple, understandable room to behave properly instead of guessing at its own state. That slice also lets the agent check itself, at any point mid-run, against whatever context it's currently in: `can_fire`, `blockers`, `outcome.kind` are plain +/- signals the model reads to self-address its own progress, not a verdict it has to reconstruct by re-reasoning. Your domain maps run on top of it; the model just reads the slice and picks a move from what's actually open to it.
|
|
144
150
|
|
|
145
151
|
```bash
|
|
146
|
-
pip install
|
|
152
|
+
pip install fpf-thinking-map
|
|
147
153
|
```
|
|
148
154
|
|
|
149
155
|
```python
|
|
@@ -213,4 +219,4 @@ MIT. See [LICENSE](LICENSE).
|
|
|
213
219
|
|
|
214
220
|
---
|
|
215
221
|
|
|
216
|
-
**prichindel.com** — v1.
|
|
222
|
+
**prichindel.com** — v1.3.1 — 2026-07-06
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# prichindel.com Agentic Thinking Map
|
|
2
2
|
|
|
3
|
-
**v1.3.
|
|
3
|
+
**v1.3.1** — [FPF (First Principles Framework)](https://github.com/ailev/FPF) compiled into a semi-formal thinking map for agentic AI guidance.
|
|
4
4
|
|
|
5
5
|
A Python package that gives an AI model a small, structured board to reason on — one move at a time. Instead of freeform text generation, the model navigates a pre-shaped semantic field with deterministic guards and propositional logic constraints.
|
|
6
6
|
|
|
@@ -104,6 +104,12 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
104
104
|
- **Evidence status in prompt** — the LLM prompt state now includes per-evidence freshness and TTL remaining. The model sees "test_results: 3 steps left" instead of just "test_results: exists." Decisions informed by countdown, not by guessing.
|
|
105
105
|
- **Response contract** — every slice now ends with a `response_contract`: the structured template the model must fill when responding. Pre-filled fields (scope, basis with freshness/TTL, allowed use, not allowed use, modality, canonical terms, audience) come from the computed state. Empty fields (claim, risky aliases) are for the model. This is why all the code exists — so the contract has precomputed, validated values instead of being re-derived by the model from scratch.
|
|
106
106
|
|
|
107
|
+
## v1.3.0 changes
|
|
108
|
+
|
|
109
|
+
- **Bridge crossing is enforced, not just advertised** — `ActiveState.cross_bridge()` / `ThinkingMapTraversal.attempt_bridge()` actually perform a cross-context hop and check `substitution_license` against `risk_level` before mutating state. An unlicensed bridge under `high`/`critical` risk is refused (`ESCALATE`), not silently allowed. Before this, `bridge_options()` was advisory metadata only — the model decided for itself whether a lossy translation was acceptable.
|
|
110
|
+
- **`include_full_state=False`** — `step()` can now ship the scoped `slice()` alone, without the whole board bolted on. Default stays `True`; opt in when the caller already knows its `transition_id` and wants the lean payload.
|
|
111
|
+
- 21/21 self-verification checks (`python -m fpf_thinking_map.verify`), two new: bridge crossing and lean-slice payload shape.
|
|
112
|
+
|
|
107
113
|
## Design principles
|
|
108
114
|
|
|
109
115
|
- **Only add structure when it changes agentic behavior** — not for source fidelity alone
|
|
@@ -113,10 +119,10 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
113
119
|
|
|
114
120
|
## Using as a dependency
|
|
115
121
|
|
|
116
|
-
This package is the reasoning engine. Your domain maps run on top of it.
|
|
122
|
+
This package is the compiled map, not a reasoning engine — it doesn't think for the model. Denying unlawful moves is the smaller half of the job; the bigger half is handing back the lawful ones as a small, plain-JSON slice — what can fire, what's missing, why — so the model has simple, understandable room to behave properly instead of guessing at its own state. That slice also lets the agent check itself, at any point mid-run, against whatever context it's currently in: `can_fire`, `blockers`, `outcome.kind` are plain +/- signals the model reads to self-address its own progress, not a verdict it has to reconstruct by re-reasoning. Your domain maps run on top of it; the model just reads the slice and picks a move from what's actually open to it.
|
|
117
123
|
|
|
118
124
|
```bash
|
|
119
|
-
pip install
|
|
125
|
+
pip install fpf-thinking-map
|
|
120
126
|
```
|
|
121
127
|
|
|
122
128
|
```python
|
|
@@ -186,4 +192,4 @@ MIT. See [LICENSE](LICENSE).
|
|
|
186
192
|
|
|
187
193
|
---
|
|
188
194
|
|
|
189
|
-
**prichindel.com** — v1.
|
|
195
|
+
**prichindel.com** — v1.3.1 — 2026-07-06
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fpf-thinking-map
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: Agentic thinking map — structured reasoning constraints for LLMs with TTL evidence decay, deterministic guards, and propositional logic glue. Compiled from FPF (First Principles Framework).
|
|
5
5
|
Author-email: "prichindel.com" <igareosh@igareosh.com>
|
|
6
6
|
License: MIT
|
|
@@ -27,7 +27,7 @@ Dynamic: license-file
|
|
|
27
27
|
|
|
28
28
|
# prichindel.com Agentic Thinking Map
|
|
29
29
|
|
|
30
|
-
**v1.3.
|
|
30
|
+
**v1.3.1** — [FPF (First Principles Framework)](https://github.com/ailev/FPF) compiled into a semi-formal thinking map for agentic AI guidance.
|
|
31
31
|
|
|
32
32
|
A Python package that gives an AI model a small, structured board to reason on — one move at a time. Instead of freeform text generation, the model navigates a pre-shaped semantic field with deterministic guards and propositional logic constraints.
|
|
33
33
|
|
|
@@ -131,6 +131,12 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
131
131
|
- **Evidence status in prompt** — the LLM prompt state now includes per-evidence freshness and TTL remaining. The model sees "test_results: 3 steps left" instead of just "test_results: exists." Decisions informed by countdown, not by guessing.
|
|
132
132
|
- **Response contract** — every slice now ends with a `response_contract`: the structured template the model must fill when responding. Pre-filled fields (scope, basis with freshness/TTL, allowed use, not allowed use, modality, canonical terms, audience) come from the computed state. Empty fields (claim, risky aliases) are for the model. This is why all the code exists — so the contract has precomputed, validated values instead of being re-derived by the model from scratch.
|
|
133
133
|
|
|
134
|
+
## v1.3.0 changes
|
|
135
|
+
|
|
136
|
+
- **Bridge crossing is enforced, not just advertised** — `ActiveState.cross_bridge()` / `ThinkingMapTraversal.attempt_bridge()` actually perform a cross-context hop and check `substitution_license` against `risk_level` before mutating state. An unlicensed bridge under `high`/`critical` risk is refused (`ESCALATE`), not silently allowed. Before this, `bridge_options()` was advisory metadata only — the model decided for itself whether a lossy translation was acceptable.
|
|
137
|
+
- **`include_full_state=False`** — `step()` can now ship the scoped `slice()` alone, without the whole board bolted on. Default stays `True`; opt in when the caller already knows its `transition_id` and wants the lean payload.
|
|
138
|
+
- 21/21 self-verification checks (`python -m fpf_thinking_map.verify`), two new: bridge crossing and lean-slice payload shape.
|
|
139
|
+
|
|
134
140
|
## Design principles
|
|
135
141
|
|
|
136
142
|
- **Only add structure when it changes agentic behavior** — not for source fidelity alone
|
|
@@ -140,10 +146,10 @@ The model's job shrinks from "figure out the entire epistemic state of your own
|
|
|
140
146
|
|
|
141
147
|
## Using as a dependency
|
|
142
148
|
|
|
143
|
-
This package is the reasoning engine. Your domain maps run on top of it.
|
|
149
|
+
This package is the compiled map, not a reasoning engine — it doesn't think for the model. Denying unlawful moves is the smaller half of the job; the bigger half is handing back the lawful ones as a small, plain-JSON slice — what can fire, what's missing, why — so the model has simple, understandable room to behave properly instead of guessing at its own state. That slice also lets the agent check itself, at any point mid-run, against whatever context it's currently in: `can_fire`, `blockers`, `outcome.kind` are plain +/- signals the model reads to self-address its own progress, not a verdict it has to reconstruct by re-reasoning. Your domain maps run on top of it; the model just reads the slice and picks a move from what's actually open to it.
|
|
144
150
|
|
|
145
151
|
```bash
|
|
146
|
-
pip install
|
|
152
|
+
pip install fpf-thinking-map
|
|
147
153
|
```
|
|
148
154
|
|
|
149
155
|
```python
|
|
@@ -213,4 +219,4 @@ MIT. See [LICENSE](LICENSE).
|
|
|
213
219
|
|
|
214
220
|
---
|
|
215
221
|
|
|
216
|
-
**prichindel.com** — v1.
|
|
222
|
+
**prichindel.com** — v1.3.1 — 2026-07-06
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fpf-thinking-map"
|
|
3
|
-
version = "1.3.
|
|
3
|
+
version = "1.3.1"
|
|
4
4
|
description = "Agentic thinking map — structured reasoning constraints for LLMs with TTL evidence decay, deterministic guards, and propositional logic glue. Compiled from FPF (First Principles Framework)."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = {text = "MIT"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map/RELATED_WORK_GOFLOW_FPF_SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fpf_thinking_map-1.3.0 → fpf_thinking_map-1.3.1}/fpf_thinking_map.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|