awp-python 0.1.0a6__tar.gz → 0.1.0a7__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.
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/CHANGELOG.md +6 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/PKG-INFO +5 -5
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/README.md +4 -4
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/README.md +9 -9
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/core-agent-lockstep.json +38 -14
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/core-agent-streaming.json +39 -15
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/pyproject.toml +1 -1
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/__init__.py +1 -1
- awp_python-0.1.0a7/src/awp/_spec/schemas/profiles/input-chunk.schema.json +76 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/uv.lock +1 -1
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/.gitignore +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/.gitmodules +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/.python-version +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/AGENTS.md +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/CLAUDE.md +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/LICENSE +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/frames.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/manifest-lockstep.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/conformance/manifest-streaming.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/scripts/sync_spec.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/lifecycle.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-cancel-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-ref.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-schema.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-status.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-submit-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-submit.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/agent-manifest.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/approval-requested.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/approval-respond.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/common.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/embodiment.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/empty-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/error.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/frame-inline.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/frame-tree.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/obs-report.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/observation-channel.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/ping-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/ping.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/profiles/gui-actions.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/reset-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/reset.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/restore.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/safety-policy.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-open.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-ready.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-resume.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-state.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-telemetry.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-transfer-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-transfer.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/snapshot-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/subscribe-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/subscribe.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/task-update.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/tick-result.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/tick.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/unsubscribe.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/world-event.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/world-manifest.schema.json +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/aio.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/client.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/clock.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/demo.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/errors.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/frames.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/jsonrpc.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/lifecycle.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/py.typed +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/schema.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/__init__.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/conftest.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_aio.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_client.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_client_traces.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_evidence.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_frames.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/test_schema.py +0 -0
- {awp_python-0.1.0a6 → awp_python-0.1.0a7}/tests/world.py +0 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0a7
|
|
4
|
+
|
|
5
|
+
Targets specification revision `0.1-draft.11`.
|
|
6
|
+
|
|
7
|
+
- The bundled schemas add the game profile's `input_chunk` params schema, `profiles/input-chunk.schema.json`. The client is otherwise unchanged.
|
|
8
|
+
|
|
3
9
|
## 0.1.0a6
|
|
4
10
|
|
|
5
11
|
Targets specification revision `0.1-draft.10`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: awp-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a7
|
|
4
4
|
Summary: Agent World Protocol agent SDK for Python.
|
|
5
5
|
Project-URL: Specification, https://www.agentworldprotocol.com
|
|
6
6
|
Project-URL: Source, https://github.com/Hyperduality/awp-python
|
|
@@ -23,13 +23,13 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
|
|
24
24
|
The Python agent SDK for the [Agent World Protocol](https://www.agentworldprotocol.com). `ClientConnection` is the agent side of AWP as a sans-IO state machine, and `awp.aio.AsyncClient` drives it over a WebSocket.
|
|
25
25
|
|
|
26
|
-
It targets specification revision **`0.1-draft.
|
|
26
|
+
It targets specification revision **`0.1-draft.11`**, pinned as the `spec/` submodule. This is an alpha, so the API will change along with the draft. The reference world, [awp-sim](https://github.com/Hyperduality/awp-sim), is a separate package built on this one.
|
|
27
27
|
|
|
28
28
|
## Status
|
|
29
29
|
|
|
30
|
-

|
|
31
31
|
|
|
32
|
-
In both time models, the demo agent built on the client is **Core Agent: AWP-conformant against 0.1-draft.
|
|
32
|
+
In both time models, the demo agent built on the client is **Core Agent: AWP-conformant against 0.1-draft.11**. [awp-conformance](https://github.com/Hyperduality/awp-conformance) reports no failure and nothing untested, and [`conformance/`](conformance/README.md) holds the reports and the evidence for their manual rows.
|
|
33
33
|
|
|
34
34
|
Implemented:
|
|
35
35
|
|
|
@@ -108,7 +108,7 @@ src/awp/ client protocol layer (sans-IO), asyncio adapter, frame code
|
|
|
108
108
|
src/awp/_spec/ schemas and lifecycle table bundled from spec/ (scripts/sync_spec.py)
|
|
109
109
|
tests/ unit tests, and a scripted world that serves over WebSockets
|
|
110
110
|
conformance/ conformance reports, the manifests they were run against, and evidence
|
|
111
|
-
spec/ agent-world-protocol, pinned at spec-v0.1-draft.
|
|
111
|
+
spec/ agent-world-protocol, pinned at spec-v0.1-draft.11
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
## Development
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
The Python agent SDK for the [Agent World Protocol](https://www.agentworldprotocol.com). `ClientConnection` is the agent side of AWP as a sans-IO state machine, and `awp.aio.AsyncClient` drives it over a WebSocket.
|
|
4
4
|
|
|
5
|
-
It targets specification revision **`0.1-draft.
|
|
5
|
+
It targets specification revision **`0.1-draft.11`**, pinned as the `spec/` submodule. This is an alpha, so the API will change along with the draft. The reference world, [awp-sim](https://github.com/Hyperduality/awp-sim), is a separate package built on this one.
|
|
6
6
|
|
|
7
7
|
## Status
|
|
8
8
|
|
|
9
|
-

|
|
10
10
|
|
|
11
|
-
In both time models, the demo agent built on the client is **Core Agent: AWP-conformant against 0.1-draft.
|
|
11
|
+
In both time models, the demo agent built on the client is **Core Agent: AWP-conformant against 0.1-draft.11**. [awp-conformance](https://github.com/Hyperduality/awp-conformance) reports no failure and nothing untested, and [`conformance/`](conformance/README.md) holds the reports and the evidence for their manual rows.
|
|
12
12
|
|
|
13
13
|
Implemented:
|
|
14
14
|
|
|
@@ -87,7 +87,7 @@ src/awp/ client protocol layer (sans-IO), asyncio adapter, frame code
|
|
|
87
87
|
src/awp/_spec/ schemas and lifecycle table bundled from spec/ (scripts/sync_spec.py)
|
|
88
88
|
tests/ unit tests, and a scripted world that serves over WebSockets
|
|
89
89
|
conformance/ conformance reports, the manifests they were run against, and evidence
|
|
90
|
-
spec/ agent-world-protocol, pinned at spec-v0.1-draft.
|
|
90
|
+
spec/ agent-world-protocol, pinned at spec-v0.1-draft.11
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
## Development
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Conformance
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
5
|
| Class | Configuration | Claim | Report |
|
|
6
6
|
|---|---|---|---|
|
|
7
|
-
| Core Agent | `awp-demo`, [`manifest-lockstep.json`](manifest-lockstep.json) | Core Agent (lockstep): AWP-conformant against 0.1-draft.
|
|
8
|
-
| Core Agent | `awp-demo`, [`manifest-streaming.json`](manifest-streaming.json) | Core Agent (streaming): AWP-conformant against 0.1-draft.
|
|
7
|
+
| Core Agent | `awp-demo`, [`manifest-lockstep.json`](manifest-lockstep.json) | Core Agent (lockstep): AWP-conformant against 0.1-draft.11 (awp-conformance 0.1.0a9) | [`core-agent-lockstep.json`](core-agent-lockstep.json) |
|
|
8
|
+
| Core Agent | `awp-demo`, [`manifest-streaming.json`](manifest-streaming.json) | Core Agent (streaming): AWP-conformant against 0.1-draft.11 (awp-conformance 0.1.0a9) | [`core-agent-streaming.json`](core-agent-streaming.json) |
|
|
9
9
|
|
|
10
|
-
The reports come from awp-conformance 0.1.
|
|
10
|
+
The reports come from awp-conformance 0.1.0a9 run against awp-python 0.1.0a7. Neither has a failure or anything untested. The evidence for their `manual` rows is below (AWP-CNF-005).
|
|
11
11
|
|
|
12
12
|
## Reproduce
|
|
13
13
|
|
|
@@ -38,7 +38,7 @@ In streaming, the suite reads the agent's loss accounting from its `obs.report`.
|
|
|
38
38
|
|
|
39
39
|
### AWP-DAT-008: frame test vectors
|
|
40
40
|
|
|
41
|
-
`test_vectors` (`tests/test_frames.py`) runs `awp.frames` over every vector in `schemas/test-vectors/frames.json` of the `spec/` submodule, which is pinned at `spec-v0.1-draft.
|
|
41
|
+
`test_vectors` (`tests/test_frames.py`) runs `awp.frames` over every vector in `schemas/test-vectors/frames.json` of the `spec/` submodule, which is pinned at `spec-v0.1-draft.11`:
|
|
42
42
|
|
|
43
43
|
- the 10 valid vectors decode to their listed fields;
|
|
44
44
|
- the 10 marked `expect_error` are rejected with their listed error.
|
|
@@ -47,7 +47,7 @@ In streaming, the suite reads the agent's loss accounting from its `obs.report`.
|
|
|
47
47
|
|
|
48
48
|
### AWP-VER-009: the draft revision is named
|
|
49
49
|
|
|
50
|
-
- The [README](../README.md) and the [Python SDK page](https://www.agentworldprotocol.com/sdks/python) name `0.1-draft.
|
|
51
|
-
- `awp.SPEC_REVISION` is `"0.1-draft.
|
|
52
|
-
- The `spec/` submodule is pinned at the tag `spec-v0.1-draft.
|
|
53
|
-
- Each report records `"specification": "0.1-draft.
|
|
50
|
+
- The [README](../README.md) and the [Python SDK page](https://www.agentworldprotocol.com/sdks/python) name `0.1-draft.11`.
|
|
51
|
+
- `awp.SPEC_REVISION` is `"0.1-draft.11"`.
|
|
52
|
+
- The `spec/` submodule is pinned at the tag `spec-v0.1-draft.11`.
|
|
53
|
+
- Each report records `"specification": "0.1-draft.11"`, and its claim names the revision.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"suite": {
|
|
3
3
|
"name": "awp-conformance",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.0a9"
|
|
5
5
|
},
|
|
6
|
-
"specification": "0.1-draft.
|
|
6
|
+
"specification": "0.1-draft.11",
|
|
7
7
|
"target": "awp-demo --url {url} --token {token}",
|
|
8
8
|
"side": "agent",
|
|
9
|
-
"generated": "2026-
|
|
9
|
+
"generated": "2026-10-18T20:42:31Z",
|
|
10
10
|
"claim": {
|
|
11
11
|
"status": "conformant",
|
|
12
|
-
"wording": "Core Agent (lockstep): AWP-conformant against 0.1-draft.
|
|
12
|
+
"wording": "Core Agent (lockstep): AWP-conformant against 0.1-draft.11 (awp-conformance 0.1.0a9)",
|
|
13
13
|
"classes": [
|
|
14
14
|
"Core Agent"
|
|
15
15
|
],
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"counts": {
|
|
28
28
|
"manual": 4,
|
|
29
|
-
"n/a":
|
|
29
|
+
"n/a": 201,
|
|
30
30
|
"pass": 37,
|
|
31
31
|
"untestable": 3
|
|
32
32
|
}
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"id": "AWP-AGT-001",
|
|
109
109
|
"level": "MUST",
|
|
110
110
|
"outcome": "pass",
|
|
111
|
-
"detail": "
|
|
111
|
+
"detail": "124 check(s): lockstep/baseline, lockstep/integer-range, lockstep/invalid-manifest, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
"id": "AWP-AGT-002",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"id": "AWP-AGT-006",
|
|
139
139
|
"level": "MUST",
|
|
140
140
|
"outcome": "pass",
|
|
141
|
-
"detail": "
|
|
141
|
+
"detail": "22 check(s): lockstep/baseline, lockstep/malformed-frame, lockstep/reconnect, lockstep/restarted-world, lockstep/silent-world"
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
144
|
"id": "AWP-AGT-007",
|
|
@@ -288,7 +288,7 @@
|
|
|
288
288
|
"id": "AWP-CLK-006",
|
|
289
289
|
"level": "MUST",
|
|
290
290
|
"outcome": "pass",
|
|
291
|
-
"detail": "
|
|
291
|
+
"detail": "43 check(s): lockstep/baseline, lockstep/integer-range, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
292
292
|
},
|
|
293
293
|
{
|
|
294
294
|
"id": "AWP-CLK-007",
|
|
@@ -402,7 +402,7 @@
|
|
|
402
402
|
"id": "AWP-CTL-001",
|
|
403
403
|
"level": "MUST",
|
|
404
404
|
"outcome": "pass",
|
|
405
|
-
"detail": "
|
|
405
|
+
"detail": "125 check(s): lockstep/baseline, lockstep/integer-range, lockstep/invalid-manifest, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
406
406
|
},
|
|
407
407
|
{
|
|
408
408
|
"id": "AWP-CTL-002",
|
|
@@ -420,7 +420,7 @@
|
|
|
420
420
|
"id": "AWP-CTL-004",
|
|
421
421
|
"level": "MUST",
|
|
422
422
|
"outcome": "pass",
|
|
423
|
-
"detail": "
|
|
423
|
+
"detail": "43 check(s): lockstep/baseline, lockstep/integer-range, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
424
424
|
},
|
|
425
425
|
{
|
|
426
426
|
"id": "AWP-CTL-005",
|
|
@@ -432,7 +432,7 @@
|
|
|
432
432
|
"id": "AWP-CTL-006",
|
|
433
433
|
"level": "MUST",
|
|
434
434
|
"outcome": "pass",
|
|
435
|
-
"detail": "
|
|
435
|
+
"detail": "125 check(s): lockstep/baseline, lockstep/integer-range, lockstep/invalid-manifest, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
436
436
|
},
|
|
437
437
|
{
|
|
438
438
|
"id": "AWP-CTL-007",
|
|
@@ -450,7 +450,7 @@
|
|
|
450
450
|
"id": "AWP-CTL-009",
|
|
451
451
|
"level": "MUST",
|
|
452
452
|
"outcome": "pass",
|
|
453
|
-
"detail": "
|
|
453
|
+
"detail": "127 check(s): lockstep/baseline, lockstep/integer-range, lockstep/invalid-manifest, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
454
454
|
},
|
|
455
455
|
{
|
|
456
456
|
"id": "AWP-CTL-010",
|
|
@@ -608,6 +608,30 @@
|
|
|
608
608
|
"outcome": "n/a",
|
|
609
609
|
"detail": "world-side requirement"
|
|
610
610
|
},
|
|
611
|
+
{
|
|
612
|
+
"id": "AWP-GAM-001",
|
|
613
|
+
"level": "MUST",
|
|
614
|
+
"outcome": "n/a",
|
|
615
|
+
"detail": "world-side requirement"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"id": "AWP-GAM-002",
|
|
619
|
+
"level": "MUST",
|
|
620
|
+
"outcome": "n/a",
|
|
621
|
+
"detail": "world-side requirement"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"id": "AWP-GAM-003",
|
|
625
|
+
"level": "MUST",
|
|
626
|
+
"outcome": "n/a",
|
|
627
|
+
"detail": "world-side requirement"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "AWP-GAM-004",
|
|
631
|
+
"level": "MUST",
|
|
632
|
+
"outcome": "n/a",
|
|
633
|
+
"detail": "world-side requirement"
|
|
634
|
+
},
|
|
611
635
|
{
|
|
612
636
|
"id": "AWP-GUI-001",
|
|
613
637
|
"level": "MUST",
|
|
@@ -1224,7 +1248,7 @@
|
|
|
1224
1248
|
"id": "AWP-TIM-003",
|
|
1225
1249
|
"level": "MUST",
|
|
1226
1250
|
"outcome": "pass",
|
|
1227
|
-
"detail": "
|
|
1251
|
+
"detail": "8 check(s): lockstep/baseline, lockstep/malformed-frame, lockstep/reconnect, lockstep/restarted-world"
|
|
1228
1252
|
},
|
|
1229
1253
|
{
|
|
1230
1254
|
"id": "AWP-TIM-004",
|
|
@@ -1446,7 +1470,7 @@
|
|
|
1446
1470
|
"id": "AWP-VER-004",
|
|
1447
1471
|
"level": "MUST",
|
|
1448
1472
|
"outcome": "pass",
|
|
1449
|
-
"detail": "
|
|
1473
|
+
"detail": "111 check(s): lockstep/baseline, lockstep/integer-range, lockstep/invalid-manifest, lockstep/malformed-frame, lockstep/no-action-grants, lockstep/reconnect, lockstep/refused-submission, lockstep/restarted-world, lockstep/silent-world"
|
|
1450
1474
|
},
|
|
1451
1475
|
{
|
|
1452
1476
|
"id": "AWP-VER-005",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"suite": {
|
|
3
3
|
"name": "awp-conformance",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.0a9"
|
|
5
5
|
},
|
|
6
|
-
"specification": "0.1-draft.
|
|
6
|
+
"specification": "0.1-draft.11",
|
|
7
7
|
"target": "awp-demo --url {url} --token {token}",
|
|
8
8
|
"side": "agent",
|
|
9
|
-
"generated": "2026-
|
|
9
|
+
"generated": "2026-10-18T20:42:54Z",
|
|
10
10
|
"claim": {
|
|
11
11
|
"status": "conformant",
|
|
12
|
-
"wording": "Core Agent (streaming): AWP-conformant against 0.1-draft.
|
|
12
|
+
"wording": "Core Agent (streaming): AWP-conformant against 0.1-draft.11 (awp-conformance 0.1.0a9)",
|
|
13
13
|
"classes": [
|
|
14
14
|
"Core Agent"
|
|
15
15
|
],
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
],
|
|
25
25
|
"counts": {
|
|
26
26
|
"manual": 2,
|
|
27
|
-
"n/a":
|
|
27
|
+
"n/a": 195,
|
|
28
28
|
"pass": 45,
|
|
29
29
|
"untestable": 3
|
|
30
30
|
}
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"id": "AWP-AGT-001",
|
|
107
107
|
"level": "MUST",
|
|
108
108
|
"outcome": "pass",
|
|
109
|
-
"detail": "
|
|
109
|
+
"detail": "147 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/invalid-manifest, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
112
|
"id": "AWP-AGT-002",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"id": "AWP-AGT-006",
|
|
137
137
|
"level": "MUST",
|
|
138
138
|
"outcome": "pass",
|
|
139
|
-
"detail": "
|
|
139
|
+
"detail": "18 check(s): streaming/baseline, streaming/frame-gaps, streaming/malformed-frame, streaming/reconnect, streaming/restarted-world"
|
|
140
140
|
},
|
|
141
141
|
{
|
|
142
142
|
"id": "AWP-AGT-007",
|
|
@@ -286,13 +286,13 @@
|
|
|
286
286
|
"id": "AWP-CLK-006",
|
|
287
287
|
"level": "MUST",
|
|
288
288
|
"outcome": "pass",
|
|
289
|
-
"detail": "
|
|
289
|
+
"detail": "56 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
292
|
"id": "AWP-CLK-007",
|
|
293
293
|
"level": "MUST",
|
|
294
294
|
"outcome": "pass",
|
|
295
|
-
"detail": "
|
|
295
|
+
"detail": "17 check(s): streaming/baseline, streaming/frame-gaps, streaming/malformed-frame, streaming/reconnect, streaming/restarted-world"
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
298
|
"id": "AWP-CLK-008",
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
"id": "AWP-CTL-001",
|
|
401
401
|
"level": "MUST",
|
|
402
402
|
"outcome": "pass",
|
|
403
|
-
"detail": "
|
|
403
|
+
"detail": "160 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/invalid-manifest, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
404
404
|
},
|
|
405
405
|
{
|
|
406
406
|
"id": "AWP-CTL-002",
|
|
@@ -418,7 +418,7 @@
|
|
|
418
418
|
"id": "AWP-CTL-004",
|
|
419
419
|
"level": "MUST",
|
|
420
420
|
"outcome": "pass",
|
|
421
|
-
"detail": "
|
|
421
|
+
"detail": "56 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
422
422
|
},
|
|
423
423
|
{
|
|
424
424
|
"id": "AWP-CTL-005",
|
|
@@ -430,7 +430,7 @@
|
|
|
430
430
|
"id": "AWP-CTL-006",
|
|
431
431
|
"level": "MUST",
|
|
432
432
|
"outcome": "pass",
|
|
433
|
-
"detail": "
|
|
433
|
+
"detail": "160 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/invalid-manifest, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
434
434
|
},
|
|
435
435
|
{
|
|
436
436
|
"id": "AWP-CTL-007",
|
|
@@ -448,7 +448,7 @@
|
|
|
448
448
|
"id": "AWP-CTL-009",
|
|
449
449
|
"level": "MUST",
|
|
450
450
|
"outcome": "pass",
|
|
451
|
-
"detail": "
|
|
451
|
+
"detail": "162 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/invalid-manifest, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
452
452
|
},
|
|
453
453
|
{
|
|
454
454
|
"id": "AWP-CTL-010",
|
|
@@ -606,6 +606,30 @@
|
|
|
606
606
|
"outcome": "n/a",
|
|
607
607
|
"detail": "world-side requirement"
|
|
608
608
|
},
|
|
609
|
+
{
|
|
610
|
+
"id": "AWP-GAM-001",
|
|
611
|
+
"level": "MUST",
|
|
612
|
+
"outcome": "n/a",
|
|
613
|
+
"detail": "world-side requirement"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"id": "AWP-GAM-002",
|
|
617
|
+
"level": "MUST",
|
|
618
|
+
"outcome": "n/a",
|
|
619
|
+
"detail": "world-side requirement"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"id": "AWP-GAM-003",
|
|
623
|
+
"level": "MUST",
|
|
624
|
+
"outcome": "n/a",
|
|
625
|
+
"detail": "world-side requirement"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"id": "AWP-GAM-004",
|
|
629
|
+
"level": "MUST",
|
|
630
|
+
"outcome": "n/a",
|
|
631
|
+
"detail": "world-side requirement"
|
|
632
|
+
},
|
|
609
633
|
{
|
|
610
634
|
"id": "AWP-GUI-001",
|
|
611
635
|
"level": "MUST",
|
|
@@ -1000,7 +1024,7 @@
|
|
|
1000
1024
|
"id": "AWP-SAF-001",
|
|
1001
1025
|
"level": "MUST",
|
|
1002
1026
|
"outcome": "pass",
|
|
1003
|
-
"detail": "
|
|
1027
|
+
"detail": "18 check(s): streaming/baseline, streaming/frame-gaps, streaming/malformed-frame, streaming/reconnect, streaming/restarted-world"
|
|
1004
1028
|
},
|
|
1005
1029
|
{
|
|
1006
1030
|
"id": "AWP-SAF-002",
|
|
@@ -1444,7 +1468,7 @@
|
|
|
1444
1468
|
"id": "AWP-VER-004",
|
|
1445
1469
|
"level": "MUST",
|
|
1446
1470
|
"outcome": "pass",
|
|
1447
|
-
"detail": "
|
|
1471
|
+
"detail": "133 check(s): streaming/baseline, streaming/frame-gaps, streaming/integer-range, streaming/invalid-manifest, streaming/malformed-frame, streaming/no-action-grants, streaming/reconnect, streaming/refused-submission, streaming/restarted-world, streaming/silent-world"
|
|
1448
1472
|
},
|
|
1449
1473
|
{
|
|
1450
1474
|
"id": "AWP-VER-005",
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agentworldprotocol.com/schemas/v0.1/profiles/input-chunk.schema.json",
|
|
4
|
+
"title": "Game profile input_chunk params (AWP-GAM-001)",
|
|
5
|
+
"description": "Normative params_schema for the reserved action type input_chunk: device state for keyboard, mouse, and gamepad in fixed-length slots. +x is right and +y is down. Mouse and scroll deltas are device counts, a documented exception to AWP-UNI-001.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"slot_ms": { "type": "integer", "minimum": 1, "maximum": 1000, "description": "Length of every slot, in milliseconds." },
|
|
9
|
+
"slots": {
|
|
10
|
+
"type": "array", "minItems": 1, "maxItems": 256,
|
|
11
|
+
"description": "Device states in execution order; each holds for slot_ms.",
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"keys": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/key_name" }, "description": "Keys and buttons held down for the slot; any key not listed is up." },
|
|
16
|
+
"mouse_dx": { "type": "integer", "minimum": -32768, "maximum": 32767, "description": "Horizontal mouse motion over the slot, in device counts; positive is right." },
|
|
17
|
+
"mouse_dy": { "type": "integer", "minimum": -32768, "maximum": 32767, "description": "Vertical mouse motion over the slot, in device counts; positive is down." },
|
|
18
|
+
"scroll_steps": { "type": "integer", "minimum": -127, "maximum": 127, "description": "Wheel detents over the slot; positive moves the wheel away from the user." },
|
|
19
|
+
"sticks": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"description": "Analog stick deflection held for the slot; an absent axis is centered.",
|
|
22
|
+
"properties": {
|
|
23
|
+
"left_x": { "type": "number", "minimum": -1, "maximum": 1, "description": "Left stick, horizontal, unitless; positive is right." },
|
|
24
|
+
"left_y": { "type": "number", "minimum": -1, "maximum": 1, "description": "Left stick, vertical, unitless; positive is down." },
|
|
25
|
+
"right_x": { "type": "number", "minimum": -1, "maximum": 1, "description": "Right stick, horizontal, unitless; positive is right." },
|
|
26
|
+
"right_y": { "type": "number", "minimum": -1, "maximum": 1, "description": "Right stick, vertical, unitless; positive is down." }
|
|
27
|
+
},
|
|
28
|
+
"x-awp-closed": true
|
|
29
|
+
},
|
|
30
|
+
"triggers": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"description": "Analog trigger pull held for the slot (standard-mapping buttons 6 and 7); an absent trigger is released.",
|
|
33
|
+
"properties": {
|
|
34
|
+
"left": { "type": "number", "minimum": 0, "maximum": 1, "description": "Left trigger, unitless; 0 is released, 1 fully pulled." },
|
|
35
|
+
"right": { "type": "number", "minimum": 0, "maximum": 1, "description": "Right trigger, unitless; 0 is released, 1 fully pulled." }
|
|
36
|
+
},
|
|
37
|
+
"x-awp-closed": true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"x-awp-closed": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"required": ["slot_ms", "slots"],
|
|
45
|
+
"x-awp-closed": true,
|
|
46
|
+
"$defs": {
|
|
47
|
+
"key_name": {
|
|
48
|
+
"description": "A W3C UI Events KeyboardEvent.code value other than Unidentified, a mouse button, or a button of the W3C Gamepad standard mapping named by position.",
|
|
49
|
+
"enum": [
|
|
50
|
+
"Backquote", "Backslash", "BracketLeft", "BracketRight", "Comma", "Digit0", "Digit1", "Digit2", "Digit3",
|
|
51
|
+
"Digit4", "Digit5", "Digit6", "Digit7", "Digit8", "Digit9", "Equal", "IntlBackslash", "IntlRo", "IntlYen",
|
|
52
|
+
"KeyA", "KeyB", "KeyC", "KeyD", "KeyE", "KeyF", "KeyG", "KeyH", "KeyI", "KeyJ", "KeyK", "KeyL", "KeyM",
|
|
53
|
+
"KeyN", "KeyO", "KeyP", "KeyQ", "KeyR", "KeyS", "KeyT", "KeyU", "KeyV", "KeyW", "KeyX", "KeyY", "KeyZ",
|
|
54
|
+
"Minus", "Period", "Quote", "Semicolon", "Slash", "AltLeft", "AltRight", "Backspace", "CapsLock",
|
|
55
|
+
"ContextMenu", "ControlLeft", "ControlRight", "Enter", "MetaLeft", "MetaRight", "ShiftLeft", "ShiftRight",
|
|
56
|
+
"Space", "Tab", "Convert", "KanaMode", "Lang1", "Lang2", "Lang3", "Lang4", "Lang5", "NonConvert", "Delete",
|
|
57
|
+
"End", "Help", "Home", "Insert", "PageDown", "PageUp", "ArrowDown", "ArrowLeft", "ArrowRight", "ArrowUp",
|
|
58
|
+
"NumLock", "Numpad0", "Numpad1", "Numpad2", "Numpad3", "Numpad4", "Numpad5", "Numpad6", "Numpad7", "Numpad8",
|
|
59
|
+
"Numpad9", "NumpadAdd", "NumpadBackspace", "NumpadClear", "NumpadClearEntry", "NumpadComma", "NumpadDecimal",
|
|
60
|
+
"NumpadDivide", "NumpadEnter", "NumpadEqual", "NumpadHash", "NumpadMemoryAdd", "NumpadMemoryClear",
|
|
61
|
+
"NumpadMemoryRecall", "NumpadMemoryStore", "NumpadMemorySubtract", "NumpadMultiply", "NumpadParenLeft",
|
|
62
|
+
"NumpadParenRight", "NumpadStar", "NumpadSubtract", "Escape", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8",
|
|
63
|
+
"F9", "F10", "F11", "F12", "Fn", "FnLock", "PrintScreen", "ScrollLock", "Pause", "BrowserBack",
|
|
64
|
+
"BrowserFavorites", "BrowserForward", "BrowserHome", "BrowserRefresh", "BrowserSearch", "BrowserStop",
|
|
65
|
+
"Eject", "LaunchApp1", "LaunchApp2", "LaunchMail", "MediaPlayPause", "MediaSelect", "MediaStop",
|
|
66
|
+
"MediaTrackNext", "MediaTrackPrevious", "Power", "Sleep", "AudioVolumeDown", "AudioVolumeMute",
|
|
67
|
+
"AudioVolumeUp", "WakeUp", "Hyper", "Super", "Turbo", "Abort", "Resume", "Suspend", "Again", "Copy", "Cut",
|
|
68
|
+
"Find", "Open", "Paste", "Props", "Select", "Undo", "Hiragana", "Katakana", "MouseLeft", "MouseRight",
|
|
69
|
+
"MouseMiddle", "MouseBack", "MouseForward", "GamepadSouth", "GamepadEast", "GamepadWest", "GamepadNorth",
|
|
70
|
+
"GamepadLeftBumper", "GamepadRightBumper", "GamepadSelect", "GamepadStart", "GamepadLeftStick",
|
|
71
|
+
"GamepadRightStick", "GamepadDpadUp", "GamepadDpadDown", "GamepadDpadLeft", "GamepadDpadRight",
|
|
72
|
+
"GamepadHome"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
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
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-cancel-result.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/action-submit-result.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/approval-requested.schema.json
RENAMED
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/approval-respond.schema.json
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
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/observation-channel.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/profiles/gui-actions.schema.json
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
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-telemetry.schema.json
RENAMED
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-transfer-result.schema.json
RENAMED
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/session-transfer.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
{awp_python-0.1.0a6 → awp_python-0.1.0a7}/src/awp/_spec/schemas/subscribe-result.schema.json
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
|
|
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
|
|
File without changes
|