pi-agent-python-sdk 0.2.4__tar.gz → 0.2.5__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 (19) hide show
  1. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/CHANGELOG.md +14 -0
  2. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/PKG-INFO +24 -24
  3. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/README.md +21 -21
  4. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/pyproject.toml +3 -3
  5. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_launch.py +2 -1
  6. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/types.py +13 -2
  7. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/.gitignore +0 -0
  8. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/LICENSE +0 -0
  9. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/__init__.py +0 -0
  10. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_collections.py +0 -0
  11. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_events.py +0 -0
  12. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_observation.py +0 -0
  13. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_runs.py +0 -0
  14. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_transport.py +0 -0
  15. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/_usage.py +0 -0
  16. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/client.py +0 -0
  17. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/errors.py +0 -0
  18. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/py.typed +0 -0
  19. {pi_agent_python_sdk-0.2.4 → pi_agent_python_sdk-0.2.5}/src/pi_agent/sync.py +0 -0
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.5
6
+
7
+ ### Changed
8
+
9
+ - Advance the reviewed Pi baseline from 1.0.0 to 1.3.0; keep the 0.85.1 minimum.
10
+ Strict-version users must align their separately installed runtime with 1.3.0.
11
+ - Annotate Pi timing, malformed tool arguments, per-thinking-level sampling,
12
+ and settlement abort metadata. `AgentSettledEvent` now represents settlement
13
+ separately from `EmptySessionEvent`.
14
+ - Resolve and validate the upstream version tag when npm omits `gitHead`, and
15
+ fingerprint the extracted model/provider schemas without approving source drift.
16
+ - Recognize Pi's `--no-mcp` flag and document its changed tool-filtering and
17
+ Azure provider behavior.
18
+
5
19
  ## 0.2.4
6
20
 
7
21
  ### Added
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pi-agent-python-sdk
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Typed async and synchronous Python clients for Pi's agent RPC runtime
5
5
  Project-URL: Homepage, https://github.com/cheenulabs/pi-agent-python-sdk
6
- Project-URL: Documentation, https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.4/docs
6
+ Project-URL: Documentation, https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.5/docs
7
7
  Project-URL: Issues, https://github.com/cheenulabs/pi-agent-python-sdk/issues
8
- Project-URL: Changelog, https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/CHANGELOG.md
8
+ Project-URL: Changelog, https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/CHANGELOG.md
9
9
  Author: cheenulabs
10
10
  License-Expression: MIT
11
11
  License-File: LICENSE
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
29
29
 
30
30
  <p align="center">
31
31
  <a href="https://github.com/cheenulabs/pi-agent-python-sdk">
32
- <img alt="Pi Agent Python SDK" src="https://raw.githubusercontent.com/cheenulabs/pi-agent-python-sdk/v0.2.4/docs/logo.svg" width="160">
32
+ <img alt="Pi Agent Python SDK" src="https://raw.githubusercontent.com/cheenulabs/pi-agent-python-sdk/v0.2.5/docs/logo.svg" width="160">
33
33
  </a>
34
34
  </p>
35
35
 
@@ -78,8 +78,8 @@ Requires an installed, configured Pi CLI — see [Prerequisites](#prerequisites)
78
78
  | Requirement | Notes |
79
79
  | --- | --- |
80
80
  | Python **3.11+** | Package metadata requires 3.11 or newer |
81
- | Node.js **22.19.0+** | Required by Pi 1.0.0 |
82
- | Pi **0.85.1+** | Minimum accepted version; **1.0.0** is the tested baseline |
81
+ | Node.js **22.19.0+** | Required by Pi 1.3.0 |
82
+ | Pi **0.85.1+** | Minimum accepted version; **1.3.0** is the tested baseline |
83
83
  | Model provider | Required; configure with the Pi CLI (see Quick start) |
84
84
 
85
85
  ## Quick start
@@ -87,7 +87,7 @@ Requires an installed, configured Pi CLI — see [Prerequisites](#prerequisites)
87
87
  Install Pi with Node.js **22.19.0 or newer** (pin matches the tested baseline):
88
88
 
89
89
  ```sh
90
- npm install -g @earendil-works/pi-coding-agent@1.0.0
90
+ npm install -g @earendil-works/pi-coding-agent@1.3.0
91
91
  pi --version
92
92
  ```
93
93
 
@@ -316,7 +316,7 @@ the [command reference][commands] for every method.
316
316
  | [RPC structure][rpc] | How the Python client maps to Pi's protocol |
317
317
  | [Compatibility][compatibility] | Runtime versions and platform validation |
318
318
  | [Examples][examples] | Runnable sync, async, streaming, sessions, steering, and UI examples |
319
- | [Release notes][release] | Changes included in 0.2.4 |
319
+ | [Release notes][release] | Changes included in 0.2.5 |
320
320
 
321
321
  Examples use your configured Pi and may make provider calls. Development checks
322
322
  use an isolated local test provider; see [CONTRIBUTING.md][contributing] for
@@ -332,7 +332,7 @@ setup and validation commands.
332
332
  | Symptom | What to check |
333
333
  | --- | --- |
334
334
  | `pi` not found / launch fails | Ensure the Pi CLI is on `PATH`, or pass `executable=` to the client |
335
- | Version rejected | Upgrade to Pi **0.85.1+**; prefer the tested baseline **1.0.0** |
335
+ | Version rejected | Upgrade to Pi **0.85.1+**; prefer the tested baseline **1.3.0** |
336
336
  | No model / auth errors | Run `pi` once and complete provider setup |
337
337
  | Unexpected file or command changes | Review Pi tool/extension settings before automation |
338
338
 
@@ -347,20 +347,20 @@ setup and validation commands.
347
347
  [MIT][license]
348
348
 
349
349
  [pypi]: https://pypi.org/project/pi-agent-python-sdk/
350
- [release]: https://github.com/cheenulabs/pi-agent-python-sdk/releases/tag/v0.2.4
351
- [metadata]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/pyproject.toml
352
- [license]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/LICENSE
353
- [compatibility]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/compatibility.md
354
- [errors]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/errors.md
355
- [stream-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/examples/stream.py
356
- [constructor-options]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md#constructor-options
357
- [extensions]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/usage.md#using-your-own-extensions
358
- [ui-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/examples/ui.py
359
- [rpc]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/rpc.md
360
- [commands]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md#all-33-rpc-commands
361
- [usage]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/usage.md
362
- [api]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md
363
- [examples]: https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.4/examples
364
- [contributing]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/CONTRIBUTING.md
350
+ [release]: https://github.com/cheenulabs/pi-agent-python-sdk/releases/tag/v0.2.5
351
+ [metadata]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/pyproject.toml
352
+ [license]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/LICENSE
353
+ [compatibility]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/compatibility.md
354
+ [errors]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/errors.md
355
+ [stream-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/examples/stream.py
356
+ [constructor-options]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md#constructor-options
357
+ [extensions]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/usage.md#using-your-own-extensions
358
+ [ui-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/examples/ui.py
359
+ [rpc]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/rpc.md
360
+ [commands]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md#all-33-rpc-commands
361
+ [usage]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/usage.md
362
+ [api]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md
363
+ [examples]: https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.5/examples
364
+ [contributing]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/CONTRIBUTING.md
365
365
  [issues]: https://github.com/cheenulabs/pi-agent-python-sdk/issues
366
366
  [security]: https://github.com/cheenulabs/pi-agent-python-sdk/security/advisories/new
@@ -6,7 +6,7 @@
6
6
 
7
7
  <p align="center">
8
8
  <a href="https://github.com/cheenulabs/pi-agent-python-sdk">
9
- <img alt="Pi Agent Python SDK" src="https://raw.githubusercontent.com/cheenulabs/pi-agent-python-sdk/v0.2.4/docs/logo.svg" width="160">
9
+ <img alt="Pi Agent Python SDK" src="https://raw.githubusercontent.com/cheenulabs/pi-agent-python-sdk/v0.2.5/docs/logo.svg" width="160">
10
10
  </a>
11
11
  </p>
12
12
 
@@ -55,8 +55,8 @@ Requires an installed, configured Pi CLI — see [Prerequisites](#prerequisites)
55
55
  | Requirement | Notes |
56
56
  | --- | --- |
57
57
  | Python **3.11+** | Package metadata requires 3.11 or newer |
58
- | Node.js **22.19.0+** | Required by Pi 1.0.0 |
59
- | Pi **0.85.1+** | Minimum accepted version; **1.0.0** is the tested baseline |
58
+ | Node.js **22.19.0+** | Required by Pi 1.3.0 |
59
+ | Pi **0.85.1+** | Minimum accepted version; **1.3.0** is the tested baseline |
60
60
  | Model provider | Required; configure with the Pi CLI (see Quick start) |
61
61
 
62
62
  ## Quick start
@@ -64,7 +64,7 @@ Requires an installed, configured Pi CLI — see [Prerequisites](#prerequisites)
64
64
  Install Pi with Node.js **22.19.0 or newer** (pin matches the tested baseline):
65
65
 
66
66
  ```sh
67
- npm install -g @earendil-works/pi-coding-agent@1.0.0
67
+ npm install -g @earendil-works/pi-coding-agent@1.3.0
68
68
  pi --version
69
69
  ```
70
70
 
@@ -293,7 +293,7 @@ the [command reference][commands] for every method.
293
293
  | [RPC structure][rpc] | How the Python client maps to Pi's protocol |
294
294
  | [Compatibility][compatibility] | Runtime versions and platform validation |
295
295
  | [Examples][examples] | Runnable sync, async, streaming, sessions, steering, and UI examples |
296
- | [Release notes][release] | Changes included in 0.2.4 |
296
+ | [Release notes][release] | Changes included in 0.2.5 |
297
297
 
298
298
  Examples use your configured Pi and may make provider calls. Development checks
299
299
  use an isolated local test provider; see [CONTRIBUTING.md][contributing] for
@@ -309,7 +309,7 @@ setup and validation commands.
309
309
  | Symptom | What to check |
310
310
  | --- | --- |
311
311
  | `pi` not found / launch fails | Ensure the Pi CLI is on `PATH`, or pass `executable=` to the client |
312
- | Version rejected | Upgrade to Pi **0.85.1+**; prefer the tested baseline **1.0.0** |
312
+ | Version rejected | Upgrade to Pi **0.85.1+**; prefer the tested baseline **1.3.0** |
313
313
  | No model / auth errors | Run `pi` once and complete provider setup |
314
314
  | Unexpected file or command changes | Review Pi tool/extension settings before automation |
315
315
 
@@ -324,20 +324,20 @@ setup and validation commands.
324
324
  [MIT][license]
325
325
 
326
326
  [pypi]: https://pypi.org/project/pi-agent-python-sdk/
327
- [release]: https://github.com/cheenulabs/pi-agent-python-sdk/releases/tag/v0.2.4
328
- [metadata]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/pyproject.toml
329
- [license]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/LICENSE
330
- [compatibility]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/compatibility.md
331
- [errors]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/errors.md
332
- [stream-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/examples/stream.py
333
- [constructor-options]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md#constructor-options
334
- [extensions]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/usage.md#using-your-own-extensions
335
- [ui-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/examples/ui.py
336
- [rpc]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/rpc.md
337
- [commands]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md#all-33-rpc-commands
338
- [usage]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/usage.md
339
- [api]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/docs/api.md
340
- [examples]: https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.4/examples
341
- [contributing]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/CONTRIBUTING.md
327
+ [release]: https://github.com/cheenulabs/pi-agent-python-sdk/releases/tag/v0.2.5
328
+ [metadata]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/pyproject.toml
329
+ [license]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/LICENSE
330
+ [compatibility]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/compatibility.md
331
+ [errors]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/errors.md
332
+ [stream-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/examples/stream.py
333
+ [constructor-options]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md#constructor-options
334
+ [extensions]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/usage.md#using-your-own-extensions
335
+ [ui-example]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/examples/ui.py
336
+ [rpc]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/rpc.md
337
+ [commands]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md#all-33-rpc-commands
338
+ [usage]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/usage.md
339
+ [api]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/docs/api.md
340
+ [examples]: https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.5/examples
341
+ [contributing]: https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/CONTRIBUTING.md
342
342
  [issues]: https://github.com/cheenulabs/pi-agent-python-sdk/issues
343
343
  [security]: https://github.com/cheenulabs/pi-agent-python-sdk/security/advisories/new
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pi-agent-python-sdk"
7
- version = "0.2.4"
7
+ version = "0.2.5"
8
8
  description = "Typed async and synchronous Python clients for Pi's agent RPC runtime"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -26,9 +26,9 @@ dependencies = []
26
26
 
27
27
  [project.urls]
28
28
  Homepage = "https://github.com/cheenulabs/pi-agent-python-sdk"
29
- Documentation = "https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.4/docs"
29
+ Documentation = "https://github.com/cheenulabs/pi-agent-python-sdk/tree/v0.2.5/docs"
30
30
  Issues = "https://github.com/cheenulabs/pi-agent-python-sdk/issues"
31
- Changelog = "https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.4/CHANGELOG.md"
31
+ Changelog = "https://github.com/cheenulabs/pi-agent-python-sdk/blob/v0.2.5/CHANGELOG.md"
32
32
 
33
33
  [dependency-groups]
34
34
  dev = [
@@ -13,7 +13,7 @@ from ._transport import _close_process_pipes, _wait_for_exit
13
13
  from .errors import PiProcessError, PiVersionError
14
14
 
15
15
  MINIMUM_PI_VERSION = "0.85.1"
16
- TESTED_PI_VERSION = "1.0.0"
16
+ TESTED_PI_VERSION = "1.3.0"
17
17
 
18
18
  # The client owns these options. In particular --print consumes an initial prompt.
19
19
  _RESERVED = {
@@ -59,6 +59,7 @@ _VALUES = {
59
59
  "--tui-mode",
60
60
  }
61
61
  _FLAGS = {
62
+ "--no-mcp",
62
63
  "--no-tools",
63
64
  "-nt",
64
65
  "--no-builtin-tools",
@@ -1,4 +1,4 @@
1
- """Pi 1.0.0 wire annotations and small Python conveniences.
1
+ """Pi 1.3.0 wire annotations and small Python conveniences.
2
2
 
3
3
  Wire fields retain Pi's spelling and remain ordinary dictionaries. These
4
4
  annotations describe known shapes, not a recursive runtime validator: extensions
@@ -54,6 +54,7 @@ class ToolCall(TypedDict):
54
54
  arguments: JSONObject
55
55
  thoughtSignature: NotRequired[str]
56
56
  namespace: NotRequired[str]
57
+ argumentsError: NotRequired[str]
57
58
 
58
59
 
59
60
  class UsageCost(TypedDict):
@@ -143,6 +144,7 @@ class AssistantMessage(TypedDict):
143
144
  rawStopReason: NotRequired[str]
144
145
  endTurn: NotRequired[bool]
145
146
  timestamp: float
147
+ durationMs: NotRequired[float]
146
148
 
147
149
 
148
150
  class NestedToolCallRecord(TypedDict):
@@ -171,6 +173,7 @@ class ToolResultMessage(TypedDict):
171
173
  addedToolNames: NotRequired[list[str]] # Legacy Pi 0.85.1 field.
172
174
  isError: bool
173
175
  timestamp: float
176
+ durationMs: NotRequired[float]
174
177
 
175
178
 
176
179
  class BashExecutionMessage(TypedDict):
@@ -273,6 +276,7 @@ class Model(TypedDict):
273
276
  contextWindow: float
274
277
  maxTokens: float
275
278
  samplingParams: NotRequired[JSONObject]
279
+ samplingParamsByThinkingLevel: NotRequired[dict[ThinkingLevel, JSONObject]]
276
280
  headers: NotRequired[dict[str, str]]
277
281
  compat: NotRequired[JSONObject]
278
282
  promptCache: NotRequired[ModelPromptCache]
@@ -716,7 +720,12 @@ AssistantMessageEvent: TypeAlias = (
716
720
 
717
721
 
718
722
  class EmptySessionEvent(TypedDict):
719
- type: Literal["agent_start", "agent_settled", "turn_start", "summarization_retry_finished"]
723
+ type: Literal["agent_start", "turn_start", "summarization_retry_finished"]
724
+
725
+
726
+ class AgentSettledEvent(TypedDict):
727
+ type: Literal["agent_settled"]
728
+ aborted: NotRequired[bool] # Absent on older supported runtimes.
720
729
 
721
730
 
722
731
  class AgentEndEvent(TypedDict):
@@ -767,6 +776,7 @@ class ToolExecutionEndEvent(TypedDict):
767
776
  toolName: str
768
777
  result: JSONValue
769
778
  isError: bool
779
+ durationMs: NotRequired[float]
770
780
  parentToolCallId: NotRequired[str]
771
781
 
772
782
 
@@ -837,6 +847,7 @@ class BashExecutionUpdateEvent(TypedDict):
837
847
 
838
848
  SessionEvent: TypeAlias = (
839
849
  EmptySessionEvent
850
+ | AgentSettledEvent
840
851
  | AgentEndEvent
841
852
  | TurnEndEvent
842
853
  | MessageBoundaryEvent