agentmandate 0.3.1__tar.gz → 0.3.2__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.
Files changed (41) hide show
  1. {agentmandate-0.3.1 → agentmandate-0.3.2}/CHANGELOG.md +11 -0
  2. {agentmandate-0.3.1 → agentmandate-0.3.2}/PKG-INFO +7 -3
  3. {agentmandate-0.3.1 → agentmandate-0.3.2}/README.md +6 -2
  4. {agentmandate-0.3.1 → agentmandate-0.3.2}/ROADMAP.md +36 -2
  5. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/__init__.py +1 -1
  6. {agentmandate-0.3.1 → agentmandate-0.3.2}/pyproject.toml +1 -1
  7. {agentmandate-0.3.1 → agentmandate-0.3.2}/.github/workflows/ci.yml +0 -0
  8. {agentmandate-0.3.1 → agentmandate-0.3.2}/.github/workflows/release.yml +0 -0
  9. {agentmandate-0.3.1 → agentmandate-0.3.2}/.gitignore +0 -0
  10. {agentmandate-0.3.1 → agentmandate-0.3.2}/CONTRIBUTING.md +0 -0
  11. {agentmandate-0.3.1 → agentmandate-0.3.2}/DESIGN.md +0 -0
  12. {agentmandate-0.3.1 → agentmandate-0.3.2}/LICENSE +0 -0
  13. {agentmandate-0.3.1 → agentmandate-0.3.2}/RELEASING.md +0 -0
  14. {agentmandate-0.3.1 → agentmandate-0.3.2}/SECURITY.md +0 -0
  15. {agentmandate-0.3.1 → agentmandate-0.3.2}/STABILITY.md +0 -0
  16. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/cli.py +0 -0
  17. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/diff.py +0 -0
  18. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/lint.py +0 -0
  19. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/manifest.py +0 -0
  20. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/obligations.py +0 -0
  21. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/py.typed +0 -0
  22. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/reach.py +0 -0
  23. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/scan.py +0 -0
  24. {agentmandate-0.3.1 → agentmandate-0.3.2}/agentmandate/verify.py +0 -0
  25. {agentmandate-0.3.1 → agentmandate-0.3.2}/docs/assets/authority-path.svg +0 -0
  26. {agentmandate-0.3.1 → agentmandate-0.3.2}/docs/manifest.md +0 -0
  27. {agentmandate-0.3.1 → agentmandate-0.3.2}/docs/test-obligations.md +0 -0
  28. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/dispute-resolver-sod.yaml +0 -0
  29. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/dispute-resolver-v2.yaml +0 -0
  30. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/dispute-resolver.yaml +0 -0
  31. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/mcp-tools.json +0 -0
  32. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/observed-calls.jsonl +0 -0
  33. {agentmandate-0.3.1 → agentmandate-0.3.2}/examples/reviewed-obligations.json +0 -0
  34. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_cli.py +0 -0
  35. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_diff.py +0 -0
  36. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_lint.py +0 -0
  37. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_manifest.py +0 -0
  38. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_obligations.py +0 -0
  39. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_reach.py +0 -0
  40. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_scan.py +0 -0
  41. {agentmandate-0.3.1 → agentmandate-0.3.2}/tests/test_verify.py +0 -0
@@ -6,6 +6,17 @@ All notable changes to this project are documented here. The format follows
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.3.2 - 2026-07-28
10
+
11
+ ### Changed
12
+
13
+ - The README scopes every finding to permitted reachability under the reviewed
14
+ manifest and bounded abstraction, rather than observed model behaviour or
15
+ undeclared downstream enforcement.
16
+ - The roadmap makes external tool-graph validation a prerequisite for model
17
+ growth, then ranks bounded cardinality, reviewed resource relationships, and
18
+ non-monetary effect budgets as evidence-dependent candidates.
19
+
9
20
  ## 0.3.1 - 2026-07-28
10
21
 
11
22
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentmandate
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Compound-path and cross-release analysis of what an AI agent is permitted to do
5
5
  Project-URL: Homepage, https://github.com/mrwersa/agentmandate
6
6
  Project-URL: Repository, https://github.com/mrwersa/agentmandate
@@ -64,7 +64,7 @@ whole run is capped at 500 GBP. Release 2 adds one read-only tool:
64
64
 
65
65
  That tool spends nothing. It does, however, let the agent get hold of more
66
66
  cases, and the 500 GBP cap is measured *per case*. Two separately valid refunds
67
- become possible, so reachable extraction doubles to 1,000 GBP
67
+ become reachable under the manifest, so reachable extraction doubles to 1,000 GBP
68
68
  while every individual call still looks permitted.
69
69
 
70
70
  ![A read-only case search makes two approved refunds reachable and breaches the run limit](https://raw.githubusercontent.com/mrwersa/agentmandate/main/docs/assets/authority-path.svg)
@@ -269,6 +269,10 @@ The `lint` command deliberately overlaps the scanners above. A tool that reporte
269
269
 
270
270
  ## Scope
271
271
 
272
+ Read every finding as **permitted by the reviewed manifest within this bounded
273
+ abstraction**. It is not proof that the model will choose the path or that an
274
+ undeclared downstream invariant will accept it.
275
+
272
276
  What this does not do, on purpose:
273
277
 
274
278
  - **No enforcement.** No proxy, no runtime interception, no blocking.
@@ -300,7 +304,7 @@ ruff check .
300
304
 
301
305
  ## Status
302
306
 
303
- Alpha, version 0.3.0. The authority model is the part most likely to change,
307
+ Alpha, version 0.3.2. The authority model is the part most likely to change,
304
308
  because it has not yet been pointed at enough real tool graphs to know where it
305
309
  is too coarse. Issues describing a graph it models badly are the most useful
306
310
  thing you can file.
@@ -30,7 +30,7 @@ whole run is capped at 500 GBP. Release 2 adds one read-only tool:
30
30
 
31
31
  That tool spends nothing. It does, however, let the agent get hold of more
32
32
  cases, and the 500 GBP cap is measured *per case*. Two separately valid refunds
33
- become possible, so reachable extraction doubles to 1,000 GBP
33
+ become reachable under the manifest, so reachable extraction doubles to 1,000 GBP
34
34
  while every individual call still looks permitted.
35
35
 
36
36
  ![A read-only case search makes two approved refunds reachable and breaches the run limit](https://raw.githubusercontent.com/mrwersa/agentmandate/main/docs/assets/authority-path.svg)
@@ -235,6 +235,10 @@ The `lint` command deliberately overlaps the scanners above. A tool that reporte
235
235
 
236
236
  ## Scope
237
237
 
238
+ Read every finding as **permitted by the reviewed manifest within this bounded
239
+ abstraction**. It is not proof that the model will choose the path or that an
240
+ undeclared downstream invariant will accept it.
241
+
238
242
  What this does not do, on purpose:
239
243
 
240
244
  - **No enforcement.** No proxy, no runtime interception, no blocking.
@@ -266,7 +270,7 @@ ruff check .
266
270
 
267
271
  ## Status
268
272
 
269
- Alpha, version 0.3.0. The authority model is the part most likely to change,
273
+ Alpha, version 0.3.2. The authority model is the part most likely to change,
270
274
  because it has not yet been pointed at enough real tool graphs to know where it
271
275
  is too coarse. Issues describing a graph it models badly are the most useful
272
276
  thing you can file.
@@ -7,15 +7,16 @@ runtime proxy or general agent-security scanner.
7
7
 
8
8
  This is direction, not a release promise.
9
9
 
10
- ## Now: trustworthy authority analysis
10
+ ## Current foundation: trustworthy authority analysis
11
11
 
12
- Version 0.2 makes the existing gate dependable:
12
+ Version 0.3.2 makes the existing gate dependable:
13
13
 
14
14
  - fail-closed replay when control evidence is missing
15
15
  - tool-contract and run-limit comparison across releases
16
16
  - one search depth on both sides of a diff
17
17
  - safe ingestion of untrusted MCP catalogues
18
18
  - explicit handling of incomparable currencies and different agents
19
+ - reviewed test obligations reconciled against current reachable authority
19
20
 
20
21
  ## Next: easier adoption
21
22
 
@@ -35,6 +36,39 @@ new value remains the authority graph and its counterexamples.
35
36
 
36
37
  ## Then: widen the model where evidence demands it
37
38
 
39
+ Do not implement every candidate below in parallel. First collect tool graphs
40
+ from independent users and identify which abstraction forces them to distort a
41
+ real control. Expressiveness increases the search state and the annotation
42
+ burden, so a feature needs a concrete graph and counterexample before it earns
43
+ that cost.
44
+
45
+ ### Bounded scope cardinality
46
+
47
+ The current `unbounded` flag distinguishes one binding from an unlimited
48
+ source. Real tools often expose a finite collection, such as at most ten cases
49
+ or one refund per transaction. A reviewed `max_bindings` bound is the first
50
+ candidate extension because it sharpens the existing scope model without
51
+ turning the manifest into a full application specification.
52
+
53
+ Per-customer or relational limits come later. They require resource identity
54
+ and relationships, not another integer placed beside the current type count.
55
+
56
+ ### Resource relationships
57
+
58
+ Scope counts deliberately forget which customer owns a case or whether two
59
+ bindings refer to the same object. If real graphs show that this creates false
60
+ or missed paths, add a small reviewed relation vocabulary and preserve binding
61
+ provenance through tool transitions. Do not jump directly to arbitrary
62
+ preconditions and postconditions.
63
+
64
+ ### Non-monetary effect budgets
65
+
66
+ Some authority limits count irreversible actions rather than currency, such as
67
+ accounts closed, credentials rotated, or external messages sent. Generalise
68
+ the current cumulative-value mechanism only when those limits share a clear,
69
+ reviewable accumulation rule. Confidentiality and data flow remain a separate
70
+ model rather than being disguised as a numeric budget.
71
+
38
72
  ### Data-flow reachability
39
73
 
40
74
  Add reviewed source, transform, and sink labels so the analyser can detect a
@@ -13,7 +13,7 @@ against the declaration, so it is usable without another tool alongside it.
13
13
 
14
14
  from __future__ import annotations
15
15
 
16
- __version__ = "0.3.1"
16
+ __version__ = "0.3.2"
17
17
 
18
18
  from .diff import Change, Delta, compare
19
19
  from .lint import Finding, check
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentmandate"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "Compound-path and cross-release analysis of what an AI agent is permitted to do"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes