macp-sdk-python 0.12.0__tar.gz → 0.12.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.
Files changed (40) hide show
  1. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/PKG-INFO +1 -1
  2. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/pyproject.toml +1 -1
  3. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/handoff.py +10 -7
  4. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/proposal.py +16 -1
  5. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk_python.egg-info/PKG-INFO +1 -1
  6. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/LICENSE +0 -0
  7. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/README.md +0 -0
  8. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/setup.cfg +0 -0
  9. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/__init__.py +0 -0
  10. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/_logging.py +0 -0
  11. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/__init__.py +0 -0
  12. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/cancel_callback.py +0 -0
  13. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/dispatcher.py +0 -0
  14. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/participant.py +0 -0
  15. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/runner.py +0 -0
  16. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/strategies.py +0 -0
  17. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/transports.py +0 -0
  18. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/agent/types.py +0 -0
  19. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/auth.py +0 -0
  20. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/base_projection.py +0 -0
  21. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/base_session.py +0 -0
  22. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/client.py +0 -0
  23. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/commitment_hash.py +0 -0
  24. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/constants.py +0 -0
  25. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/decision.py +0 -0
  26. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/envelope.py +0 -0
  27. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/errors.py +0 -0
  28. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/policy.py +0 -0
  29. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/projections.py +0 -0
  30. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/proto_registry.py +0 -0
  31. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/py.typed +0 -0
  32. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/quorum.py +0 -0
  33. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/retry.py +0 -0
  34. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/task.py +0 -0
  35. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/validation.py +0 -0
  36. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk/watchers.py +0 -0
  37. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk_python.egg-info/SOURCES.txt +0 -0
  38. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk_python.egg-info/dependency_links.txt +0 -0
  39. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk_python.egg-info/requires.txt +0 -0
  40. {macp_sdk_python-0.12.0 → macp_sdk_python-0.12.1}/src/macp_sdk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: macp-sdk-python
3
- Version: 0.12.0
3
+ Version: 0.12.1
4
4
  Summary: Python SDK for the MACP Rust runtime
5
5
  Author-email: Multi-Agent Coordination Protocol <macp@multiagentcoordinationprotocol.org>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "macp-sdk-python"
7
- version = "0.12.0"
7
+ version = "0.12.1"
8
8
  description = "Python SDK for the MACP Rust runtime"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -30,9 +30,11 @@ class HandoffRecord:
30
30
  declined_by: str | None
31
31
  # True when the acceptance was an implicit accept synthesized by the
32
32
  # runtime (RFC-MACP-0010 §5.1) rather than an explicit client HandoffAccept.
33
- # Runtime >= 0.8.0 emits these automatically for every session (no
34
- # server-side opt-in exists) when an offer's implicit_accept_timeout_ms
35
- # elapses unactioned. Client-submitted accepts are always
33
+ # Runtime >= 0.8.0 emits these only for sessions whose bound governance
34
+ # policy declares a non-zero ``acceptance.implicit_accept_timeout_ms``
35
+ # (RFC-MACP-0010 §5.1, RFC-MACP-0012 §4.5), once that timeout elapses
36
+ # unactioned; with no policy bound the timeout resolves to 0 and no
37
+ # implicit accept ever fires. Client-submitted accepts are always
36
38
  # ``implicit=False`` (the runtime rejects a forged True).
37
39
  implicit: bool = False
38
40
 
@@ -177,9 +179,10 @@ class HandoffProjection(BaseProjection):
177
179
  """True if *handoff_id* was accepted by a runtime implicit accept.
178
180
 
179
181
  Distinguishes a timeout-driven implicit accept (RFC-MACP-0010 §5.1)
180
- from an explicit client ``HandoffAccept``. Runtime >= 0.8.0 emits
181
- these automatically for every session once an offer's
182
- ``implicit_accept_timeout_ms`` elapses unactioned.
182
+ from an explicit client ``HandoffAccept``. Runtime >= 0.8.0 emits one
183
+ only when the session's bound governance policy declares a non-zero
184
+ ``acceptance.implicit_accept_timeout_ms`` and that timeout elapses
185
+ unactioned; sessions with no such policy never see one.
183
186
  """
184
187
  handoff = self.handoffs.get(handoff_id)
185
188
  return handoff is not None and handoff.status == "accepted" and handoff.implicit
@@ -275,7 +278,7 @@ class HandoffSession(BaseSession):
275
278
  # ``implicit=true`` for runtime-synthesized accepts and the runtime
276
279
  # rejects a client-submitted True. Client accepts always leave the
277
280
  # field at its proto3 default (False). See the regression test in
278
- # tests/unit/test_handoff.py.
281
+ # tests/unit/test_absorb_runtime_v050.py.
279
282
  validate_required_field("handoff_id", handoff_id)
280
283
  payload = handoff_pb2.HandoffAcceptPayload(
281
284
  handoff_id=handoff_id,
@@ -27,7 +27,22 @@ class ProposalRecord:
27
27
  summary: str
28
28
  proposer: str
29
29
  supersedes: str # "" if original
30
- status: str # "open" | "accepted" | "rejected" | "withdrawn"
30
+ # Reachable values only. An Accept is recorded on the projection's
31
+ # ``accepts`` list (and surfaced via ``accepted_proposal`` /
32
+ # ``is_accepted``), never on this field -- no code path assigns
33
+ # "accepted" here. A non-terminal Reject likewise leaves this "open";
34
+ # only ``terminal=True`` sets "rejected".
35
+ #
36
+ # That is by design, not an omission (issue #112). Acceptance is a
37
+ # per-sender, supersedable relation (RFC-MACP-0008 §5 rule 5), not a
38
+ # per-proposal fact, so a scalar field here cannot hold it: "alice
39
+ # accepts p2 while bob still accepts p1" is a legal state. This mirrors
40
+ # the runtime, whose ``ProposalDisposition`` is {Live, Withdrawn} with
41
+ # acceptance in a separate ``accepts`` map, and typescript-sdk's
42
+ # ``projections/proposal.ts``, which also never assigns "accepted".
43
+ # ``task.py``/``handoff.py`` do set "accepted" because their acceptance
44
+ # is one actor claiming one slot. See docs/modes/proposal.md.
45
+ status: str # "open" | "rejected" | "withdrawn"
31
46
  tags: list[str]
32
47
 
33
48
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: macp-sdk-python
3
- Version: 0.12.0
3
+ Version: 0.12.1
4
4
  Summary: Python SDK for the MACP Rust runtime
5
5
  Author-email: Multi-Agent Coordination Protocol <macp@multiagentcoordinationprotocol.org>
6
6
  License: Apache-2.0