fpf-thinking-map 1.9.4__tar.gz → 2.0.0__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.9.4 → fpf_thinking_map-2.0.0}/LICENSE +1 -1
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/NOTICE +3 -3
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/PKG-INFO +110 -49
- fpf_thinking_map-1.9.4/fpf_thinking_map.egg-info/PKG-INFO → fpf_thinking_map-2.0.0/README.md +96 -71
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/__init__.py +75 -55
- fpf_thinking_map-2.0.0/fpf_thinking_map/agentic_structure.py +331 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/examples.py +32 -9
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/guards.py +63 -5
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/logic.py +92 -10
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/primitives.py +139 -32
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/reachability.py +92 -1
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/state.py +352 -22
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/traversal.py +210 -10
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/verify.py +749 -31
- fpf_thinking_map-2.0.0/fpf_thinking_map.egg-info/PKG-INFO +431 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map.egg-info/SOURCES.txt +1 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/pyproject.toml +14 -14
- fpf_thinking_map-1.9.4/README.md +0 -334
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/authorization.py +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/move_intent.py +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/pending_input.py +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map/py.typed +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map.egg-info/dependency_links.txt +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/fpf_thinking_map.egg-info/top_level.txt +0 -0
- {fpf_thinking_map-1.9.4 → fpf_thinking_map-2.0.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026
|
|
3
|
+
Copyright (c) 2026 CONSOLIDARE CONTINUUM S.R.L. <info@consolidare-continuum.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
FPF Thinking Map
|
|
2
2
|
================
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2026
|
|
5
|
-
GitHub
|
|
6
|
-
Website: https://
|
|
4
|
+
Copyright (c) 2026 CONSOLIDARE CONTINUUM S.R.L. <info@consolidare-continuum.com>
|
|
5
|
+
GitHub: @Consolidare-Continuum · maintainer contact: @igareosh
|
|
6
|
+
Website: https://consolidare-continuum.com
|
|
7
7
|
|
|
8
8
|
This is a small MIT-licensed community implementation: free to use,
|
|
9
9
|
open to inspect, and published as a working contribution rather than a
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fpf-thinking-map
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: Deterministic Python runtime for lawful agent traversal with explicit state, evidence, authorization, waiting, and move identity.
|
|
5
|
-
Author-email: "
|
|
6
|
-
Maintainer-email: "
|
|
5
|
+
Author-email: "CONSOLIDARE CONTINUUM S.R.L." <info@consolidare-continuum.com>
|
|
6
|
+
Maintainer-email: "CONSOLIDARE CONTINUUM S.R.L." <info@consolidare-continuum.com>
|
|
7
7
|
License-Expression: MIT
|
|
8
|
-
Project-URL: Homepage, https://github.com/
|
|
9
|
-
Project-URL: Repository, https://github.com/
|
|
10
|
-
Project-URL: Documentation, https://github.com/
|
|
11
|
-
Project-URL: Issues, https://github.com/
|
|
12
|
-
Project-URL: Architecture, https://github.com/
|
|
13
|
-
Project-URL: Changelog, https://github.com/
|
|
14
|
-
Project-URL: Contributing, https://github.com/
|
|
15
|
-
Project-URL: Advisories, https://github.com/
|
|
16
|
-
Project-URL: Website, https://
|
|
17
|
-
Project-URL: GitHub, https://github.com/
|
|
8
|
+
Project-URL: Homepage, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map
|
|
9
|
+
Project-URL: Repository, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map
|
|
10
|
+
Project-URL: Documentation, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map#readme
|
|
11
|
+
Project-URL: Issues, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/issues
|
|
12
|
+
Project-URL: Architecture, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md
|
|
13
|
+
Project-URL: Changelog, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CHANGELOG.md
|
|
14
|
+
Project-URL: Contributing, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CONTRIBUTING.md
|
|
15
|
+
Project-URL: Advisories, https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md
|
|
16
|
+
Project-URL: Website, https://consolidare-continuum.com
|
|
17
|
+
Project-URL: GitHub, https://github.com/Consolidare-Continuum
|
|
18
18
|
Project-URL: Telegram, https://t.me/igareosh
|
|
19
|
-
Project-URL: Demo, https://
|
|
19
|
+
Project-URL: Demo, https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html
|
|
20
20
|
Keywords: agentic,thinking-map,llm,reasoning,propositional-logic,evidence-decay,ttl,guards,gates,semantic-map,fpf,human-in-the-loop,ignition-lock,hitl,safety,authorization,await,move-intent,workflow
|
|
21
21
|
Classifier: Development Status :: 4 - Beta
|
|
22
22
|
Classifier: Intended Audience :: Developers
|
|
@@ -35,7 +35,7 @@ License-File: NOTICE
|
|
|
35
35
|
Dynamic: license-file
|
|
36
36
|
|
|
37
37
|
<p align="center">
|
|
38
|
-
<img src="https://raw.githubusercontent.com/
|
|
38
|
+
<img src="https://raw.githubusercontent.com/Consolidare-Continuum/fpf-agentic-thinking-map/main/docs/assets/fpf-agentic-thinking-map-header-v20260818.png" alt="FPF Agentic Thinking Map - Agent freedom. Explicit movement rules." width="100%" />
|
|
39
39
|
</p>
|
|
40
40
|
|
|
41
41
|
# FPF Agentic Thinking Map
|
|
@@ -49,12 +49,12 @@ context. The model can inspect the map and choose; the runtime decides whether
|
|
|
49
49
|
the move is valid.
|
|
50
50
|
|
|
51
51
|
[](https://pypi.org/project/fpf-thinking-map/)
|
|
52
|
-
[](https://github.com/
|
|
54
|
-
[](https://github.com/
|
|
55
|
-
[](https://github.com/
|
|
56
|
-
[](https://
|
|
52
|
+
[](https://pypistats.org/packages/fpf-thinking-map)
|
|
53
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/pyproject.toml)
|
|
54
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/LICENSE)
|
|
55
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/pyproject.toml)
|
|
56
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/fpf_thinking_map/verify.py)
|
|
57
|
+
[](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
pip install fpf-thinking-map
|
|
@@ -63,13 +63,13 @@ python -m fpf_thinking_map.verify
|
|
|
63
63
|
|
|
64
64
|
## Important links
|
|
65
65
|
|
|
66
|
-
- [ARCHITECTURE.md](https://github.com/
|
|
67
|
-
- [VERSION_TRACKER.md](https://github.com/
|
|
68
|
-
- [TRIPLE_TAX_CALCULUS.md](https://github.com/
|
|
69
|
-
- [REFLECTIONS.md](https://github.com/
|
|
70
|
-
- [CONTRIBUTING.md](https://github.com/
|
|
71
|
-
- [ADVISORIES.md](https://github.com/
|
|
72
|
-
- [`dev_mcp/`](https://github.com/
|
|
66
|
+
- [ARCHITECTURE.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md)
|
|
67
|
+
- [VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md)
|
|
68
|
+
- [TRIPLE_TAX_CALCULUS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/TRIPLE_TAX_CALCULUS.md)
|
|
69
|
+
- [REFLECTIONS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/REFLECTIONS.md)
|
|
70
|
+
- [CONTRIBUTING.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CONTRIBUTING.md)
|
|
71
|
+
- [ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md)
|
|
72
|
+
- [`dev_mcp/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/dev_mcp)
|
|
73
73
|
|
|
74
74
|
The `dev_mcp` development and compliance harness is genuinely tested against
|
|
75
75
|
the package and updated whenever runtime behavior, compliance checks, or
|
|
@@ -90,11 +90,31 @@ into ordinary code:
|
|
|
90
90
|
- cross-context bridges;
|
|
91
91
|
- human authorization;
|
|
92
92
|
- external dependencies and wake conditions;
|
|
93
|
-
- concrete move identity and trace lineage
|
|
93
|
+
- concrete move identity and trace lineage;
|
|
94
|
+
- typed claim scope and pathwise assurance;
|
|
95
|
+
- tool-call plan closure and hard autonomy budgets.
|
|
94
96
|
|
|
95
97
|
This is not another reasoning prompt. It is a compact control surface around
|
|
96
98
|
reasoning.
|
|
97
99
|
|
|
100
|
+
## Why this works across model sizes
|
|
101
|
+
|
|
102
|
+
The map clips interpretive slack at both ends. Strong models stop
|
|
103
|
+
free-associating past what a constraint actually says; lighter models receive
|
|
104
|
+
enough scaffolding that they do not have to infer the workflow's intent from
|
|
105
|
+
scratch.
|
|
106
|
+
|
|
107
|
+
Building a good map still requires real judgment, so new controls should be
|
|
108
|
+
designed and challenged with strong models first. Consuming the finished map
|
|
109
|
+
does not require the same reasoning capacity. Once a workflow is encoded as
|
|
110
|
+
explicit constraints and gates instead of tacit prose, following it correctly
|
|
111
|
+
stops depending on frontier-level inference. A lighter model does not have to
|
|
112
|
+
understand the workflow deeply; it has to respect the map.
|
|
113
|
+
|
|
114
|
+
That is what makes the result portable down to smaller models, not merely
|
|
115
|
+
across flagship ones: the hard reasoning was front-loaded into the encoding,
|
|
116
|
+
once, by the map author.
|
|
117
|
+
|
|
98
118
|
## The contract
|
|
99
119
|
|
|
100
120
|
The division of responsibility is deliberate:
|
|
@@ -112,15 +132,28 @@ The division of responsibility is deliberate:
|
|
|
112
132
|
The map constrains movement, not meaning. It does not replace the model,
|
|
113
133
|
application logic, retrieval, tools, or a task scheduler.
|
|
114
134
|
|
|
135
|
+
## Structural agentic controls
|
|
136
|
+
|
|
137
|
+
| Concern | Runtime structure | Enforced effect |
|
|
138
|
+
| --- | --- | --- |
|
|
139
|
+
| Claim applicability and assurance | `ContextSlice`, `ClaimScope`, `FormalityLevel`, `ReliabilityPath` | Numeric G is no longer treated as scope; unknown membership stays unknown; R folds pathwise |
|
|
140
|
+
| Tool-call planning | `CallPlanPrimitive`, `BudgetEnvelope`, `CheckpointReturn` | Incomplete or mismatched declared tool plans return `REVISE_PLAN` and cannot fire |
|
|
141
|
+
| Autonomous enactment | `AutonomyBudgetDecl`, `AutonomyLedgerEntry` | A transition opts in with `requires_autonomy_budget_id`; failed assignment/gate/envelope returns `ESCALATE` and successful burn is recorded |
|
|
142
|
+
| Performed-work attribution | `WorkPrimitive.performed_under`, `validate_work_attribution()` | Once a map declares RoleAssignments, a dangling or wrong-holder work record cannot satisfy completion |
|
|
143
|
+
| Gate decisions | `GateDecision`, `GateCheck.failure_decision`, `OutcomeCause` | `ABSTAIN` means the gate lacks enough basis to say yes; an explicit `BLOCK` means policy says no for the current evaluation. Traversal preserves the distinction as `cause=gate_block` without breaking the existing outcome enum |
|
|
144
|
+
| Map integrity | `ThinkingMapTraversal.validate_map()` | Opt-in preflight fails on dangling gate/rule references; explicit unknown transition IDs return typed `ABSTAIN` |
|
|
145
|
+
|
|
146
|
+
These are bounded runtime compilations, not a port of the full FPF framework.
|
|
147
|
+
|
|
115
148
|
## Live runtime visual
|
|
116
149
|
|
|
117
|
-
[](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)
|
|
118
151
|
|
|
119
|
-
**[Open the interactive
|
|
152
|
+
**[Open the interactive four-run trace](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)**
|
|
120
153
|
|
|
121
154
|
The visual follows evidence recovery, `PendingInput`/`AWAIT`, `MoveIntent`,
|
|
122
|
-
state-bound authorization, and
|
|
123
|
-
|
|
155
|
+
state-bound authorization, and the v1.9.5 distinction between an undecided
|
|
156
|
+
gate (`ABSTAIN`) and an explicit hard denial (`BLOCK`).
|
|
124
157
|
|
|
125
158
|
## Minimal example
|
|
126
159
|
|
|
@@ -160,6 +193,7 @@ semantic_map.register_transition(
|
|
|
160
193
|
"deploy",
|
|
161
194
|
"candidate",
|
|
162
195
|
"released",
|
|
196
|
+
required_gate_id="release_gate",
|
|
163
197
|
required_evidence=["test_results"],
|
|
164
198
|
)
|
|
165
199
|
)
|
|
@@ -211,6 +245,19 @@ Gates test declared conditions. Guards enforce hard constraints. A small
|
|
|
211
245
|
propositional layer composes facts without asking the model to reinterpret the
|
|
212
246
|
rules on every step.
|
|
213
247
|
|
|
248
|
+
When a gate cannot return `PASS`, v1.9.5 keeps two different situations apart:
|
|
249
|
+
|
|
250
|
+
| Gate result | Plain-language meaning | Typical traversal response |
|
|
251
|
+
| --- | --- | --- |
|
|
252
|
+
| `ABSTAIN` (`"insufficient"`) | The gate does not have enough basis to say yes | `COLLECT_EVIDENCE` when the missing evidence is declared; otherwise a denied outcome |
|
|
253
|
+
| `BLOCK` | A check explicitly says no under the current declared policy and state | denied with `cause=OutcomeCause.GATE_BLOCK` |
|
|
254
|
+
|
|
255
|
+
`BLOCK` is hard for that evaluation, not necessarily permanent. It must not be
|
|
256
|
+
downgraded by another check or treated as an invitation to guess, but the gate
|
|
257
|
+
may evaluate differently after its declared evidence, state, or policy changes.
|
|
258
|
+
Existing checks do not become hard blocks automatically; a check opts in with
|
|
259
|
+
`failure_decision=GateDecision.BLOCK`.
|
|
260
|
+
|
|
214
261
|
### Validated bridges
|
|
215
262
|
|
|
216
263
|
Cross-context movement is explicit. High-risk substitution without a
|
|
@@ -260,13 +307,14 @@ by expanding into a general agent framework.
|
|
|
260
307
|
| v1.7 | State-bound, expiring authorization receipts |
|
|
261
308
|
| v1.8 | External dependency tracking and `AWAIT` |
|
|
262
309
|
| v1.9 | Concrete move identity, inspection, lineage, authorization-clock fix |
|
|
310
|
+
| v1.9.5 "Ground Stop" | Correct A.21 gate join; explicit `BLOCK` versus insufficient `ABSTAIN`; typed denial causes; opt-in structural controls |
|
|
263
311
|
|
|
264
312
|
The complete reader-facing history is in
|
|
265
|
-
[docs/VERSION_TRACKER.md](https://github.com/
|
|
313
|
+
[docs/VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md).
|
|
266
314
|
Technical changes are in
|
|
267
|
-
[CHANGELOG.md](https://github.com/
|
|
315
|
+
[CHANGELOG.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CHANGELOG.md),
|
|
268
316
|
and full release bodies remain in
|
|
269
|
-
[GitHub Releases](https://github.com/
|
|
317
|
+
[GitHub Releases](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/releases).
|
|
270
318
|
|
|
271
319
|
This separation is intentional: the README describes the stable product; the
|
|
272
320
|
tracker records how that product became stronger.
|
|
@@ -287,15 +335,28 @@ python -m fpf_thinking_map.verify
|
|
|
287
335
|
python -m fpf_thinking_map.examples
|
|
288
336
|
```
|
|
289
337
|
|
|
338
|
+
The 1.9.5 gate distinction was also replayed through `dev_mcp` with the same
|
|
339
|
+
missing `release_permit` under two policies:
|
|
340
|
+
|
|
341
|
+
```text
|
|
342
|
+
default check -> gate: insufficient -> outcome: collect_evidence
|
|
343
|
+
explicit BLOCK -> gate: block -> outcome: denied (cause: gate_block)
|
|
344
|
+
permit present -> gate: pass -> outcome: continue
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
That is the release contract in one view: uncertainty requests a resolution
|
|
348
|
+
path; a declared hard denial stops the move and remains identifiable to the
|
|
349
|
+
caller.
|
|
350
|
+
|
|
290
351
|
The compiled state slice was also measured against injecting the corresponding
|
|
291
352
|
raw FPF sections at five shipped decision points. The measured slice was much
|
|
292
353
|
smaller, but this is a traversal-context result, not a claim about general
|
|
293
354
|
intelligence or total application cost. Method and limitations:
|
|
294
|
-
[TRIPLE_TAX_CALCULUS.md](https://github.com/
|
|
355
|
+
[TRIPLE_TAX_CALCULUS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/TRIPLE_TAX_CALCULUS.md).
|
|
295
356
|
|
|
296
357
|
For the authorization experiments, threat boundaries, failures found, and
|
|
297
358
|
claims deliberately not made, see
|
|
298
|
-
[IGNITION_LOCK_WIND_TUNNEL.md](https://github.com/
|
|
359
|
+
[IGNITION_LOCK_WIND_TUNNEL.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/IGNITION_LOCK_WIND_TUNNEL.md).
|
|
299
360
|
|
|
300
361
|
## Scope
|
|
301
362
|
|
|
@@ -320,19 +381,19 @@ Do not use it as:
|
|
|
320
381
|
|
|
321
382
|
Correct map authoring and correct host integration remain part of the trust
|
|
322
383
|
boundary. Known sharp edges and deliberate non-goals are recorded in
|
|
323
|
-
[ADVISORIES.md](https://github.com/
|
|
384
|
+
[ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md).
|
|
324
385
|
|
|
325
386
|
## Repository guide
|
|
326
387
|
|
|
327
388
|
| Path | Purpose |
|
|
328
389
|
| --- | --- |
|
|
329
|
-
| [`fpf_thinking_map/`](https://github.com/
|
|
330
|
-
| [`dev_mcp/`](https://github.com/
|
|
331
|
-
| [ARCHITECTURE.md](https://github.com/
|
|
332
|
-
| [docs/VERSION_TRACKER.md](https://github.com/
|
|
333
|
-
| [docs/DECISIONS_REJECTIONS_ADOPTIONS.md](https://github.com/
|
|
334
|
-
| [docs/deep/ADVISORIES.md](https://github.com/
|
|
335
|
-
| [SHA256SUMS](https://github.com/
|
|
390
|
+
| [`fpf_thinking_map/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/fpf_thinking_map) | Zero-dependency runtime published to PyPI |
|
|
391
|
+
| [`dev_mcp/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/dev_mcp) | Separate development and compliance-testing harness |
|
|
392
|
+
| [ARCHITECTURE.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md) | Verified control flow and module architecture |
|
|
393
|
+
| [docs/VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md) | Every release, with three practical consequences |
|
|
394
|
+
| [docs/DECISIONS_REJECTIONS_ADOPTIONS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/DECISIONS_REJECTIONS_ADOPTIONS.md) | Design provenance and rejected scope |
|
|
395
|
+
| [docs/deep/ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md) | Integration boundaries and known sharp edges |
|
|
396
|
+
| [SHA256SUMS](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/SHA256SUMS) | Repository-wide source fingerprints |
|
|
336
397
|
|
|
337
398
|
## Design rules
|
|
338
399
|
|
|
@@ -354,14 +415,14 @@ FPF provides the broad conceptual frame. This package compiles a selected part
|
|
|
354
415
|
of that frame into a practical traversal runtime. It may omit or reject
|
|
355
416
|
patterns that do not improve this package's observable agent behavior.
|
|
356
417
|
|
|
357
|
-
See [NOTICE](https://github.com/
|
|
358
|
-
and [SOURCES.md](https://github.com/
|
|
418
|
+
See [NOTICE](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/NOTICE)
|
|
419
|
+
and [SOURCES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/SOURCES.md)
|
|
359
420
|
for attribution and scope boundaries.
|
|
360
421
|
|
|
361
422
|
## License and contact
|
|
362
423
|
|
|
363
424
|
MIT License. See
|
|
364
|
-
[LICENSE](https://github.com/
|
|
425
|
+
[LICENSE](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/LICENSE).
|
|
365
426
|
|
|
366
427
|
Maintained by [igareosh.com](https://igareosh.com) ·
|
|
367
428
|
[@igareosh](https://github.com/igareosh) ·
|
fpf_thinking_map-1.9.4/fpf_thinking_map.egg-info/PKG-INFO → fpf_thinking_map-2.0.0/README.md
RENAMED
|
@@ -1,41 +1,5 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: fpf-thinking-map
|
|
3
|
-
Version: 1.9.4
|
|
4
|
-
Summary: Deterministic Python runtime for lawful agent traversal with explicit state, evidence, authorization, waiting, and move identity.
|
|
5
|
-
Author-email: "igareosh.com (@igareosh)" <igareosh@igareosh.com>
|
|
6
|
-
Maintainer-email: "igareosh.com (@igareosh)" <igareosh@igareosh.com>
|
|
7
|
-
License-Expression: MIT
|
|
8
|
-
Project-URL: Homepage, https://github.com/igareosh/fpf-agentic-thinking-map
|
|
9
|
-
Project-URL: Repository, https://github.com/igareosh/fpf-agentic-thinking-map
|
|
10
|
-
Project-URL: Documentation, https://github.com/igareosh/fpf-agentic-thinking-map#readme
|
|
11
|
-
Project-URL: Issues, https://github.com/igareosh/fpf-agentic-thinking-map/issues
|
|
12
|
-
Project-URL: Architecture, https://github.com/igareosh/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md
|
|
13
|
-
Project-URL: Changelog, https://github.com/igareosh/fpf-agentic-thinking-map/blob/main/CHANGELOG.md
|
|
14
|
-
Project-URL: Contributing, https://github.com/igareosh/fpf-agentic-thinking-map/blob/main/CONTRIBUTING.md
|
|
15
|
-
Project-URL: Advisories, https://github.com/igareosh/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md
|
|
16
|
-
Project-URL: Website, https://igareosh.com
|
|
17
|
-
Project-URL: GitHub, https://github.com/igareosh
|
|
18
|
-
Project-URL: Telegram, https://t.me/igareosh
|
|
19
|
-
Project-URL: Demo, https://igareosh.github.io/fpf-agentic-thinking-map/demos/three-runs.html
|
|
20
|
-
Keywords: agentic,thinking-map,llm,reasoning,propositional-logic,evidence-decay,ttl,guards,gates,semantic-map,fpf,human-in-the-loop,ignition-lock,hitl,safety,authorization,await,move-intent,workflow
|
|
21
|
-
Classifier: Development Status :: 4 - Beta
|
|
22
|
-
Classifier: Intended Audience :: Developers
|
|
23
|
-
Classifier: Intended Audience :: Science/Research
|
|
24
|
-
Classifier: Operating System :: OS Independent
|
|
25
|
-
Classifier: Programming Language :: Python :: 3
|
|
26
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
27
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
28
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
|
-
Classifier: Typing :: Typed
|
|
31
|
-
Requires-Python: >=3.12
|
|
32
|
-
Description-Content-Type: text/markdown
|
|
33
|
-
License-File: LICENSE
|
|
34
|
-
License-File: NOTICE
|
|
35
|
-
Dynamic: license-file
|
|
36
|
-
|
|
37
1
|
<p align="center">
|
|
38
|
-
<img src="https://raw.githubusercontent.com/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/Consolidare-Continuum/fpf-agentic-thinking-map/main/docs/assets/fpf-agentic-thinking-map-header-v20260818.png" alt="FPF Agentic Thinking Map - Agent freedom. Explicit movement rules." width="100%" />
|
|
39
3
|
</p>
|
|
40
4
|
|
|
41
5
|
# FPF Agentic Thinking Map
|
|
@@ -49,12 +13,12 @@ context. The model can inspect the map and choose; the runtime decides whether
|
|
|
49
13
|
the move is valid.
|
|
50
14
|
|
|
51
15
|
[](https://pypi.org/project/fpf-thinking-map/)
|
|
52
|
-
[](https://github.com/
|
|
54
|
-
[](https://github.com/
|
|
55
|
-
[](https://github.com/
|
|
56
|
-
[](https://
|
|
16
|
+
[](https://pypistats.org/packages/fpf-thinking-map)
|
|
17
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/pyproject.toml)
|
|
18
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/LICENSE)
|
|
19
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/pyproject.toml)
|
|
20
|
+
[](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/fpf_thinking_map/verify.py)
|
|
21
|
+
[](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)
|
|
58
22
|
|
|
59
23
|
```bash
|
|
60
24
|
pip install fpf-thinking-map
|
|
@@ -63,13 +27,13 @@ python -m fpf_thinking_map.verify
|
|
|
63
27
|
|
|
64
28
|
## Important links
|
|
65
29
|
|
|
66
|
-
- [ARCHITECTURE.md](https://github.com/
|
|
67
|
-
- [VERSION_TRACKER.md](https://github.com/
|
|
68
|
-
- [TRIPLE_TAX_CALCULUS.md](https://github.com/
|
|
69
|
-
- [REFLECTIONS.md](https://github.com/
|
|
70
|
-
- [CONTRIBUTING.md](https://github.com/
|
|
71
|
-
- [ADVISORIES.md](https://github.com/
|
|
72
|
-
- [`dev_mcp/`](https://github.com/
|
|
30
|
+
- [ARCHITECTURE.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md)
|
|
31
|
+
- [VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md)
|
|
32
|
+
- [TRIPLE_TAX_CALCULUS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/TRIPLE_TAX_CALCULUS.md)
|
|
33
|
+
- [REFLECTIONS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/REFLECTIONS.md)
|
|
34
|
+
- [CONTRIBUTING.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CONTRIBUTING.md)
|
|
35
|
+
- [ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md)
|
|
36
|
+
- [`dev_mcp/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/dev_mcp)
|
|
73
37
|
|
|
74
38
|
The `dev_mcp` development and compliance harness is genuinely tested against
|
|
75
39
|
the package and updated whenever runtime behavior, compliance checks, or
|
|
@@ -90,11 +54,31 @@ into ordinary code:
|
|
|
90
54
|
- cross-context bridges;
|
|
91
55
|
- human authorization;
|
|
92
56
|
- external dependencies and wake conditions;
|
|
93
|
-
- concrete move identity and trace lineage
|
|
57
|
+
- concrete move identity and trace lineage;
|
|
58
|
+
- typed claim scope and pathwise assurance;
|
|
59
|
+
- tool-call plan closure and hard autonomy budgets.
|
|
94
60
|
|
|
95
61
|
This is not another reasoning prompt. It is a compact control surface around
|
|
96
62
|
reasoning.
|
|
97
63
|
|
|
64
|
+
## Why this works across model sizes
|
|
65
|
+
|
|
66
|
+
The map clips interpretive slack at both ends. Strong models stop
|
|
67
|
+
free-associating past what a constraint actually says; lighter models receive
|
|
68
|
+
enough scaffolding that they do not have to infer the workflow's intent from
|
|
69
|
+
scratch.
|
|
70
|
+
|
|
71
|
+
Building a good map still requires real judgment, so new controls should be
|
|
72
|
+
designed and challenged with strong models first. Consuming the finished map
|
|
73
|
+
does not require the same reasoning capacity. Once a workflow is encoded as
|
|
74
|
+
explicit constraints and gates instead of tacit prose, following it correctly
|
|
75
|
+
stops depending on frontier-level inference. A lighter model does not have to
|
|
76
|
+
understand the workflow deeply; it has to respect the map.
|
|
77
|
+
|
|
78
|
+
That is what makes the result portable down to smaller models, not merely
|
|
79
|
+
across flagship ones: the hard reasoning was front-loaded into the encoding,
|
|
80
|
+
once, by the map author.
|
|
81
|
+
|
|
98
82
|
## The contract
|
|
99
83
|
|
|
100
84
|
The division of responsibility is deliberate:
|
|
@@ -112,15 +96,28 @@ The division of responsibility is deliberate:
|
|
|
112
96
|
The map constrains movement, not meaning. It does not replace the model,
|
|
113
97
|
application logic, retrieval, tools, or a task scheduler.
|
|
114
98
|
|
|
99
|
+
## Structural agentic controls
|
|
100
|
+
|
|
101
|
+
| Concern | Runtime structure | Enforced effect |
|
|
102
|
+
| --- | --- | --- |
|
|
103
|
+
| Claim applicability and assurance | `ContextSlice`, `ClaimScope`, `FormalityLevel`, `ReliabilityPath` | Numeric G is no longer treated as scope; unknown membership stays unknown; R folds pathwise |
|
|
104
|
+
| Tool-call planning | `CallPlanPrimitive`, `BudgetEnvelope`, `CheckpointReturn` | Incomplete or mismatched declared tool plans return `REVISE_PLAN` and cannot fire |
|
|
105
|
+
| Autonomous enactment | `AutonomyBudgetDecl`, `AutonomyLedgerEntry` | A transition opts in with `requires_autonomy_budget_id`; failed assignment/gate/envelope returns `ESCALATE` and successful burn is recorded |
|
|
106
|
+
| Performed-work attribution | `WorkPrimitive.performed_under`, `validate_work_attribution()` | Once a map declares RoleAssignments, a dangling or wrong-holder work record cannot satisfy completion |
|
|
107
|
+
| Gate decisions | `GateDecision`, `GateCheck.failure_decision`, `OutcomeCause` | `ABSTAIN` means the gate lacks enough basis to say yes; an explicit `BLOCK` means policy says no for the current evaluation. Traversal preserves the distinction as `cause=gate_block` without breaking the existing outcome enum |
|
|
108
|
+
| Map integrity | `ThinkingMapTraversal.validate_map()` | Opt-in preflight fails on dangling gate/rule references; explicit unknown transition IDs return typed `ABSTAIN` |
|
|
109
|
+
|
|
110
|
+
These are bounded runtime compilations, not a port of the full FPF framework.
|
|
111
|
+
|
|
115
112
|
## Live runtime visual
|
|
116
113
|
|
|
117
|
-
[](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)
|
|
118
115
|
|
|
119
|
-
**[Open the interactive
|
|
116
|
+
**[Open the interactive four-run trace](https://consolidare-continuum.github.io/fpf-agentic-thinking-map/demos/three-runs.html)**
|
|
120
117
|
|
|
121
118
|
The visual follows evidence recovery, `PendingInput`/`AWAIT`, `MoveIntent`,
|
|
122
|
-
state-bound authorization, and
|
|
123
|
-
|
|
119
|
+
state-bound authorization, and the v1.9.5 distinction between an undecided
|
|
120
|
+
gate (`ABSTAIN`) and an explicit hard denial (`BLOCK`).
|
|
124
121
|
|
|
125
122
|
## Minimal example
|
|
126
123
|
|
|
@@ -160,6 +157,7 @@ semantic_map.register_transition(
|
|
|
160
157
|
"deploy",
|
|
161
158
|
"candidate",
|
|
162
159
|
"released",
|
|
160
|
+
required_gate_id="release_gate",
|
|
163
161
|
required_evidence=["test_results"],
|
|
164
162
|
)
|
|
165
163
|
)
|
|
@@ -211,6 +209,19 @@ Gates test declared conditions. Guards enforce hard constraints. A small
|
|
|
211
209
|
propositional layer composes facts without asking the model to reinterpret the
|
|
212
210
|
rules on every step.
|
|
213
211
|
|
|
212
|
+
When a gate cannot return `PASS`, v1.9.5 keeps two different situations apart:
|
|
213
|
+
|
|
214
|
+
| Gate result | Plain-language meaning | Typical traversal response |
|
|
215
|
+
| --- | --- | --- |
|
|
216
|
+
| `ABSTAIN` (`"insufficient"`) | The gate does not have enough basis to say yes | `COLLECT_EVIDENCE` when the missing evidence is declared; otherwise a denied outcome |
|
|
217
|
+
| `BLOCK` | A check explicitly says no under the current declared policy and state | denied with `cause=OutcomeCause.GATE_BLOCK` |
|
|
218
|
+
|
|
219
|
+
`BLOCK` is hard for that evaluation, not necessarily permanent. It must not be
|
|
220
|
+
downgraded by another check or treated as an invitation to guess, but the gate
|
|
221
|
+
may evaluate differently after its declared evidence, state, or policy changes.
|
|
222
|
+
Existing checks do not become hard blocks automatically; a check opts in with
|
|
223
|
+
`failure_decision=GateDecision.BLOCK`.
|
|
224
|
+
|
|
214
225
|
### Validated bridges
|
|
215
226
|
|
|
216
227
|
Cross-context movement is explicit. High-risk substitution without a
|
|
@@ -260,13 +271,14 @@ by expanding into a general agent framework.
|
|
|
260
271
|
| v1.7 | State-bound, expiring authorization receipts |
|
|
261
272
|
| v1.8 | External dependency tracking and `AWAIT` |
|
|
262
273
|
| v1.9 | Concrete move identity, inspection, lineage, authorization-clock fix |
|
|
274
|
+
| v1.9.5 "Ground Stop" | Correct A.21 gate join; explicit `BLOCK` versus insufficient `ABSTAIN`; typed denial causes; opt-in structural controls |
|
|
263
275
|
|
|
264
276
|
The complete reader-facing history is in
|
|
265
|
-
[docs/VERSION_TRACKER.md](https://github.com/
|
|
277
|
+
[docs/VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md).
|
|
266
278
|
Technical changes are in
|
|
267
|
-
[CHANGELOG.md](https://github.com/
|
|
279
|
+
[CHANGELOG.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/CHANGELOG.md),
|
|
268
280
|
and full release bodies remain in
|
|
269
|
-
[GitHub Releases](https://github.com/
|
|
281
|
+
[GitHub Releases](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/releases).
|
|
270
282
|
|
|
271
283
|
This separation is intentional: the README describes the stable product; the
|
|
272
284
|
tracker records how that product became stronger.
|
|
@@ -287,15 +299,28 @@ python -m fpf_thinking_map.verify
|
|
|
287
299
|
python -m fpf_thinking_map.examples
|
|
288
300
|
```
|
|
289
301
|
|
|
302
|
+
The 1.9.5 gate distinction was also replayed through `dev_mcp` with the same
|
|
303
|
+
missing `release_permit` under two policies:
|
|
304
|
+
|
|
305
|
+
```text
|
|
306
|
+
default check -> gate: insufficient -> outcome: collect_evidence
|
|
307
|
+
explicit BLOCK -> gate: block -> outcome: denied (cause: gate_block)
|
|
308
|
+
permit present -> gate: pass -> outcome: continue
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
That is the release contract in one view: uncertainty requests a resolution
|
|
312
|
+
path; a declared hard denial stops the move and remains identifiable to the
|
|
313
|
+
caller.
|
|
314
|
+
|
|
290
315
|
The compiled state slice was also measured against injecting the corresponding
|
|
291
316
|
raw FPF sections at five shipped decision points. The measured slice was much
|
|
292
317
|
smaller, but this is a traversal-context result, not a claim about general
|
|
293
318
|
intelligence or total application cost. Method and limitations:
|
|
294
|
-
[TRIPLE_TAX_CALCULUS.md](https://github.com/
|
|
319
|
+
[TRIPLE_TAX_CALCULUS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/TRIPLE_TAX_CALCULUS.md).
|
|
295
320
|
|
|
296
321
|
For the authorization experiments, threat boundaries, failures found, and
|
|
297
322
|
claims deliberately not made, see
|
|
298
|
-
[IGNITION_LOCK_WIND_TUNNEL.md](https://github.com/
|
|
323
|
+
[IGNITION_LOCK_WIND_TUNNEL.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/IGNITION_LOCK_WIND_TUNNEL.md).
|
|
299
324
|
|
|
300
325
|
## Scope
|
|
301
326
|
|
|
@@ -320,19 +345,19 @@ Do not use it as:
|
|
|
320
345
|
|
|
321
346
|
Correct map authoring and correct host integration remain part of the trust
|
|
322
347
|
boundary. Known sharp edges and deliberate non-goals are recorded in
|
|
323
|
-
[ADVISORIES.md](https://github.com/
|
|
348
|
+
[ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md).
|
|
324
349
|
|
|
325
350
|
## Repository guide
|
|
326
351
|
|
|
327
352
|
| Path | Purpose |
|
|
328
353
|
| --- | --- |
|
|
329
|
-
| [`fpf_thinking_map/`](https://github.com/
|
|
330
|
-
| [`dev_mcp/`](https://github.com/
|
|
331
|
-
| [ARCHITECTURE.md](https://github.com/
|
|
332
|
-
| [docs/VERSION_TRACKER.md](https://github.com/
|
|
333
|
-
| [docs/DECISIONS_REJECTIONS_ADOPTIONS.md](https://github.com/
|
|
334
|
-
| [docs/deep/ADVISORIES.md](https://github.com/
|
|
335
|
-
| [SHA256SUMS](https://github.com/
|
|
354
|
+
| [`fpf_thinking_map/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/fpf_thinking_map) | Zero-dependency runtime published to PyPI |
|
|
355
|
+
| [`dev_mcp/`](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/tree/main/dev_mcp) | Separate development and compliance-testing harness |
|
|
356
|
+
| [ARCHITECTURE.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/ARCHITECTURE.md) | Verified control flow and module architecture |
|
|
357
|
+
| [docs/VERSION_TRACKER.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/VERSION_TRACKER.md) | Every release, with three practical consequences |
|
|
358
|
+
| [docs/DECISIONS_REJECTIONS_ADOPTIONS.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/DECISIONS_REJECTIONS_ADOPTIONS.md) | Design provenance and rejected scope |
|
|
359
|
+
| [docs/deep/ADVISORIES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/ADVISORIES.md) | Integration boundaries and known sharp edges |
|
|
360
|
+
| [SHA256SUMS](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/SHA256SUMS) | Repository-wide source fingerprints |
|
|
336
361
|
|
|
337
362
|
## Design rules
|
|
338
363
|
|
|
@@ -354,14 +379,14 @@ FPF provides the broad conceptual frame. This package compiles a selected part
|
|
|
354
379
|
of that frame into a practical traversal runtime. It may omit or reject
|
|
355
380
|
patterns that do not improve this package's observable agent behavior.
|
|
356
381
|
|
|
357
|
-
See [NOTICE](https://github.com/
|
|
358
|
-
and [SOURCES.md](https://github.com/
|
|
382
|
+
See [NOTICE](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/NOTICE)
|
|
383
|
+
and [SOURCES.md](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/docs/deep/SOURCES.md)
|
|
359
384
|
for attribution and scope boundaries.
|
|
360
385
|
|
|
361
386
|
## License and contact
|
|
362
387
|
|
|
363
388
|
MIT License. See
|
|
364
|
-
[LICENSE](https://github.com/
|
|
389
|
+
[LICENSE](https://github.com/Consolidare-Continuum/fpf-agentic-thinking-map/blob/main/LICENSE).
|
|
365
390
|
|
|
366
391
|
Maintained by [igareosh.com](https://igareosh.com) ·
|
|
367
392
|
[@igareosh](https://github.com/igareosh) ·
|