@ue-shed/protocol 0.1.0-rc.4 → 0.2.0
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.
- package/README.md +3 -2
- package/contracts/cameras/map-tile/v1/README.md +44 -0
- package/contracts/cameras/map-tile/v1/capture-request.schema.json +68 -0
- package/contracts/cameras/map-tile/v1/capture-response.schema.json +115 -0
- package/contracts/cameras/map-tile/v1/fixtures/capture-request-valid.json +32 -0
- package/contracts/cameras/map-tile/v1/fixtures/capture-response-valid.json +24 -0
- package/contracts/cameras/map-tile/v1/fixtures/manifest-invalid-complete.json +41 -0
- package/contracts/cameras/map-tile/v1/fixtures/manifest-invalid-grid.json +44 -0
- package/contracts/cameras/map-tile/v1/fixtures/manifest-valid.json +60 -0
- package/contracts/cameras/map-tile/v1/fixtures/plan-valid.json +27 -0
- package/contracts/cameras/map-tile/v1/manifest.schema.json +162 -0
- package/contracts/cameras/map-tile/v1/plan.schema.json +176 -0
- package/contracts/cameras/provisioning/v1/README.md +14 -0
- package/contracts/cameras/provisioning/v1/fixtures/provision-request-valid.json +23 -0
- package/contracts/cameras/provisioning/v1/provision-request.schema.json +171 -0
- package/contracts/cameras/review/v1/README.md +39 -10
- package/contracts/cameras/review/v1/assessment-capabilities.schema.json +86 -0
- package/contracts/cameras/review/v1/capture-request.schema.json +173 -19
- package/contracts/cameras/review/v1/capture-response.schema.json +576 -1
- package/contracts/cameras/review/v1/fixtures/assessment-capabilities.json +36 -0
- package/contracts/cameras/review/v1/fixtures/capture-area.json +42 -0
- package/contracts/cameras/review/v1/fixtures/capture-assessed-v2.json +56 -0
- package/contracts/cameras/review/v1/fixtures/capture-assessed.json +55 -0
- package/contracts/cameras/review/v1/fixtures/capture-clear-failed.json +62 -0
- package/contracts/cameras/review/v1/fixtures/capture-clear.json +72 -0
- package/contracts/cameras/review/v1/fixtures/capture-request-area-valid.json +29 -0
- package/contracts/cameras/review/v1/fixtures/capture-request-clear-valid.json +30 -0
- package/contracts/cameras/review/v1/fixtures/capture-request-relative-valid.json +29 -0
- package/contracts/cameras/review/v1/fixtures/invalid-assessment-capabilities-supported-without-effective-method.json +14 -0
- package/contracts/cameras/v1/README.md +6 -3
- package/contracts/editor-world/v1/README.md +10 -0
- package/contracts/editor-world/v1/request.schema.json +16 -0
- package/contracts/editor-world/v1/response.schema.json +93 -0
- package/contracts/scenarios/live/v1/README.md +9 -0
- package/contracts/scenarios/live/v1/fixtures/cancel-accepted.json +8 -0
- package/contracts/scenarios/live/v1/fixtures/execution-request.json +44 -0
- package/contracts/scenarios/live/v1/fixtures/prepare-prepared.json +9 -0
- package/contracts/scenarios/live/v1/fixtures/start-accepted.json +10 -0
- package/contracts/scenarios/live/v1/fixtures/status-active.json +11 -0
- package/contracts/scenarios/live/v1/fixtures/status-rejected-stale.json +10 -0
- package/contracts/scenarios/live/v1/fixtures/status-terminal-cancelled.json +33 -0
- package/contracts/scenarios/live/v1/fixtures/status-terminal-missing-divergence.json +54 -0
- package/contracts/uasset-io/v1/README.md +34 -0
- package/contracts/uasset-io/v1/event.schema.json +6779 -0
- package/contracts/uasset-io/v1/fixtures/invalid/event-result-unknown-kind.json +7 -0
- package/contracts/uasset-io/v1/fixtures/invalid/event-unknown-kind.json +6 -0
- package/contracts/uasset-io/v1/fixtures/invalid/project-index-page-unbounded.json +7196 -0
- package/contracts/uasset-io/v1/fixtures/invalid/project-index-query-oversize-limit.json +15 -0
- package/contracts/uasset-io/v1/fixtures/invalid/request-wrong-major.json +6 -0
- package/contracts/uasset-io/v1/fixtures/valid/accepted-event.json +7 -0
- package/contracts/uasset-io/v1/fixtures/valid/authoring-result-event.json +26 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-text-occurrence-result-event.json +26 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-text-result-event.json +23 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-text-summary-result-event.json +23 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-texture-record-result-event.json +29 -0
- package/contracts/uasset-io/v1/fixtures/valid/inspect-result-event.json +29 -0
- package/contracts/uasset-io/v1/fixtures/valid/partial-completed-event.json +7 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-accepted-event.json +7 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-page-result-event.json +28 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-progress-event.json +9 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-query-request.json +19 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-rebuild-request.json +13 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-refresh-request.json +13 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-stale-generation-failed-event.json +11 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-status-request.json +13 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-status-result-event.json +22 -0
- package/contracts/uasset-io/v1/fixtures/valid/project-index-summary-result-event.json +25 -0
- package/contracts/uasset-io/v1/fixtures/valid/saved-world-result-event.json +27 -0
- package/contracts/uasset-io/v1/fixtures/valid/scan-asset-result-event.json +47 -0
- package/contracts/uasset-io/v1/fixtures/valid/scan-inventory-result-event.json +15 -0
- package/contracts/uasset-io/v1/fixtures/valid/scan-request.json +17 -0
- package/contracts/uasset-io/v1/fixtures/valid/scan-summary-result-event.json +24 -0
- package/contracts/uasset-io/v1/request.schema.json +512 -0
- package/dist/authoring.d.ts +6 -1
- package/dist/authoring.d.ts.map +1 -1
- package/dist/companion.d.ts +30 -0
- package/dist/companion.d.ts.map +1 -1
- package/dist/companion.js +15 -0
- package/dist/companion.js.map +1 -1
- package/dist/editor-asset-navigation.d.ts +63 -0
- package/dist/editor-asset-navigation.d.ts.map +1 -0
- package/dist/editor-asset-navigation.js +32 -0
- package/dist/editor-asset-navigation.js.map +1 -0
- package/dist/editor-play-session.d.ts +4 -1
- package/dist/editor-play-session.d.ts.map +1 -1
- package/dist/editor-play-session.js.map +1 -1
- package/dist/editor-world-control.d.ts +179 -0
- package/dist/editor-world-control.d.ts.map +1 -0
- package/dist/editor-world-control.js +47 -0
- package/dist/editor-world-control.js.map +1 -0
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/saved-world.d.ts +223 -0
- package/dist/saved-world.d.ts.map +1 -0
- package/dist/saved-world.js +82 -0
- package/dist/saved-world.js.map +1 -0
- package/dist/uasset-inspection.d.ts +1037 -0
- package/dist/uasset-inspection.d.ts.map +1 -0
- package/dist/uasset-inspection.js +446 -0
- package/dist/uasset-inspection.js.map +1 -0
- package/dist/uasset-io.d.ts +2607 -0
- package/dist/uasset-io.d.ts.map +1 -0
- package/dist/uasset-io.js +306 -0
- package/dist/uasset-io.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-review-capture",
|
|
4
|
+
"version": { "major": 1, "minor": 2 }
|
|
5
|
+
},
|
|
6
|
+
"status": "captured",
|
|
7
|
+
"operationId": "capture-assessed-v2",
|
|
8
|
+
"viewId": "structure-follow",
|
|
9
|
+
"resolvedSubject": {
|
|
10
|
+
"kind": "actor_path",
|
|
11
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject",
|
|
12
|
+
"transform": {
|
|
13
|
+
"location": { "x": 100, "y": 200, "z": 300 },
|
|
14
|
+
"rotation": { "pitch": 0, "yaw": 45, "roll": 0 }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"effectiveWorldPose": {
|
|
18
|
+
"aspectRatio": "16:9",
|
|
19
|
+
"fieldOfViewDegrees": 70,
|
|
20
|
+
"projection": "perspective",
|
|
21
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
22
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
23
|
+
},
|
|
24
|
+
"mapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
25
|
+
"stagingPath": "C:/fixture/Saved/UEShed/ReviewStaging/capture-assessed-v2/pure.png",
|
|
26
|
+
"width": 1280,
|
|
27
|
+
"height": 720,
|
|
28
|
+
"captureDurationMs": 14.5,
|
|
29
|
+
"mapPackageDirtyBefore": false,
|
|
30
|
+
"mapPackageDirtyAfter": false,
|
|
31
|
+
"subjectProjection": {
|
|
32
|
+
"status": "projected",
|
|
33
|
+
"viewportStatus": "fully_within_viewport",
|
|
34
|
+
"normalizedBounds": { "minX": 0.2, "minY": 0.2, "maxX": 0.8, "maxY": 0.8 },
|
|
35
|
+
"margins": { "left": 0.2, "right": 0.2, "top": 0.2, "bottom": 0.2 }
|
|
36
|
+
},
|
|
37
|
+
"visibility": {
|
|
38
|
+
"status": "assessed",
|
|
39
|
+
"classification": "partial",
|
|
40
|
+
"method": { "method": "ray_samples", "version": 1 },
|
|
41
|
+
"visibleFraction": 0.6666666666666666,
|
|
42
|
+
"sampleCount": 9,
|
|
43
|
+
"assessmentDurationMs": 0.25,
|
|
44
|
+
"limitations": ["Collision rays are diagnostic and may differ from rendered visibility."],
|
|
45
|
+
"occluders": [
|
|
46
|
+
{
|
|
47
|
+
"confidence": 0.3333333333333333,
|
|
48
|
+
"locator": {
|
|
49
|
+
"kind": "actor_path",
|
|
50
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewOccluder"
|
|
51
|
+
},
|
|
52
|
+
"reason": "The actor blocked one or more bounded visibility rays."
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-review-capture",
|
|
4
|
+
"version": { "major": 1, "minor": 3 }
|
|
5
|
+
},
|
|
6
|
+
"status": "captured",
|
|
7
|
+
"operationId": "capture-assessed",
|
|
8
|
+
"viewId": "structure-follow",
|
|
9
|
+
"resolvedSubject": {
|
|
10
|
+
"kind": "actor_path",
|
|
11
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject",
|
|
12
|
+
"transform": {
|
|
13
|
+
"location": { "x": 100, "y": 200, "z": 300 },
|
|
14
|
+
"rotation": { "pitch": 0, "yaw": 45, "roll": 0 }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"effectiveWorldPose": {
|
|
18
|
+
"aspectRatio": "16:9",
|
|
19
|
+
"fieldOfViewDegrees": 70,
|
|
20
|
+
"projection": "perspective",
|
|
21
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
22
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
23
|
+
},
|
|
24
|
+
"mapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
25
|
+
"stagingPath": "C:/fixture/Saved/UEShed/ReviewStaging/capture-assessed/pure.png",
|
|
26
|
+
"width": 1280,
|
|
27
|
+
"height": 720,
|
|
28
|
+
"captureDurationMs": 14.5,
|
|
29
|
+
"mapPackageDirtyBefore": false,
|
|
30
|
+
"mapPackageDirtyAfter": false,
|
|
31
|
+
"subjectProjection": {
|
|
32
|
+
"status": "projected",
|
|
33
|
+
"viewportStatus": "fully_within_viewport",
|
|
34
|
+
"normalizedBounds": { "minX": 0.2, "minY": 0.2, "maxX": 0.8, "maxY": 0.8 },
|
|
35
|
+
"margins": { "left": 0.2, "right": 0.2, "top": 0.2, "bottom": 0.2 }
|
|
36
|
+
},
|
|
37
|
+
"visibility": {
|
|
38
|
+
"status": "assessed",
|
|
39
|
+
"method": { "method": "ray_samples", "version": 1 },
|
|
40
|
+
"visibleFraction": 0.6666666666666666,
|
|
41
|
+
"sampleCount": 9,
|
|
42
|
+
"assessmentDurationMs": 0.25,
|
|
43
|
+
"limitations": ["Collision rays are diagnostic and may differ from rendered visibility."],
|
|
44
|
+
"occluders": [
|
|
45
|
+
{
|
|
46
|
+
"confidence": 0.3333333333333333,
|
|
47
|
+
"locator": {
|
|
48
|
+
"kind": "actor_path",
|
|
49
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewOccluder"
|
|
50
|
+
},
|
|
51
|
+
"reason": "The actor blocked one or more bounded visibility rays."
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-review-capture",
|
|
4
|
+
"version": { "major": 1, "minor": 4 }
|
|
5
|
+
},
|
|
6
|
+
"status": "captured",
|
|
7
|
+
"operationId": "capture-clear-failed",
|
|
8
|
+
"viewId": "structure-clear",
|
|
9
|
+
"resolvedSubject": {
|
|
10
|
+
"kind": "actor_path",
|
|
11
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject",
|
|
12
|
+
"transform": {
|
|
13
|
+
"location": { "x": 100, "y": 200, "z": 300 },
|
|
14
|
+
"rotation": { "pitch": 0, "yaw": 45, "roll": 0 }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"effectiveWorldPose": {
|
|
18
|
+
"aspectRatio": "16:9",
|
|
19
|
+
"fieldOfViewDegrees": 70,
|
|
20
|
+
"projection": "perspective",
|
|
21
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
22
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
23
|
+
},
|
|
24
|
+
"mapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
25
|
+
"stagedArtifacts": [
|
|
26
|
+
{
|
|
27
|
+
"variant": "pure",
|
|
28
|
+
"stagingPath": "C:/fixture/Saved/UEShed/ReviewStaging/capture-clear-failed/pure.png"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"clearCompanion": {
|
|
32
|
+
"status": "failed",
|
|
33
|
+
"strategy": "hide_explicit",
|
|
34
|
+
"interventions": [],
|
|
35
|
+
"failure": {
|
|
36
|
+
"code": "clear_actor_not_found",
|
|
37
|
+
"message": "A requested Clear actor was not found.",
|
|
38
|
+
"recovery": "Update the explicit Clear actors and retry.",
|
|
39
|
+
"retrySafe": true
|
|
40
|
+
},
|
|
41
|
+
"restoration": {
|
|
42
|
+
"status": "restored",
|
|
43
|
+
"method": "transient_capture_component_lists"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"width": 1280,
|
|
47
|
+
"height": 720,
|
|
48
|
+
"captureDurationMs": 15.5,
|
|
49
|
+
"mapPackageDirtyBefore": false,
|
|
50
|
+
"mapPackageDirtyAfter": false,
|
|
51
|
+
"subjectProjection": {
|
|
52
|
+
"status": "projected",
|
|
53
|
+
"viewportStatus": "fully_within_viewport",
|
|
54
|
+
"normalizedBounds": { "minX": 0.2, "minY": 0.2, "maxX": 0.8, "maxY": 0.8 },
|
|
55
|
+
"margins": { "left": 0.2, "right": 0.2, "top": 0.2, "bottom": 0.2 }
|
|
56
|
+
},
|
|
57
|
+
"visibility": {
|
|
58
|
+
"status": "not_assessed",
|
|
59
|
+
"reason": "Clear preparation failed after Pure capture.",
|
|
60
|
+
"limitations": []
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-review-capture",
|
|
4
|
+
"version": { "major": 1, "minor": 4 }
|
|
5
|
+
},
|
|
6
|
+
"status": "captured",
|
|
7
|
+
"operationId": "capture-clear",
|
|
8
|
+
"viewId": "structure-clear",
|
|
9
|
+
"resolvedSubject": {
|
|
10
|
+
"kind": "actor_path",
|
|
11
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject",
|
|
12
|
+
"transform": {
|
|
13
|
+
"location": { "x": 100, "y": 200, "z": 300 },
|
|
14
|
+
"rotation": { "pitch": 0, "yaw": 45, "roll": 0 }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"effectiveWorldPose": {
|
|
18
|
+
"aspectRatio": "16:9",
|
|
19
|
+
"fieldOfViewDegrees": 70,
|
|
20
|
+
"projection": "perspective",
|
|
21
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
22
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
23
|
+
},
|
|
24
|
+
"mapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
25
|
+
"stagedArtifacts": [
|
|
26
|
+
{
|
|
27
|
+
"variant": "pure",
|
|
28
|
+
"stagingPath": "C:/fixture/Saved/UEShed/ReviewStaging/capture-clear/pure.png"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"variant": "clear",
|
|
32
|
+
"stagingPath": "C:/fixture/Saved/UEShed/ReviewStaging/capture-clear/clear.png"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"clearCompanion": {
|
|
36
|
+
"status": "captured",
|
|
37
|
+
"strategy": "hide_explicit",
|
|
38
|
+
"interventions": [
|
|
39
|
+
{
|
|
40
|
+
"type": "hide_actor_components",
|
|
41
|
+
"target": {
|
|
42
|
+
"kind": "actor_path",
|
|
43
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewOccluder"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"restoration": {
|
|
48
|
+
"status": "restored",
|
|
49
|
+
"method": "transient_capture_component_lists"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"width": 1280,
|
|
53
|
+
"height": 720,
|
|
54
|
+
"captureDurationMs": 22.5,
|
|
55
|
+
"mapPackageDirtyBefore": false,
|
|
56
|
+
"mapPackageDirtyAfter": false,
|
|
57
|
+
"subjectProjection": {
|
|
58
|
+
"status": "projected",
|
|
59
|
+
"viewportStatus": "fully_within_viewport",
|
|
60
|
+
"normalizedBounds": { "minX": 0.2, "minY": 0.2, "maxX": 0.8, "maxY": 0.8 },
|
|
61
|
+
"margins": { "left": 0.2, "right": 0.2, "top": 0.2, "bottom": 0.2 }
|
|
62
|
+
},
|
|
63
|
+
"visibility": {
|
|
64
|
+
"status": "assessed",
|
|
65
|
+
"method": { "method": "depth_compare", "version": 1 },
|
|
66
|
+
"visibleFraction": 0.4,
|
|
67
|
+
"sampleCount": 6400,
|
|
68
|
+
"assessmentDurationMs": 1.5,
|
|
69
|
+
"limitations": ["Bounded depth comparison."],
|
|
70
|
+
"occluders": []
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assessment": { "method": "automatic" },
|
|
3
|
+
"contract": {
|
|
4
|
+
"name": "ue-shed-review-capture",
|
|
5
|
+
"version": { "major": 1, "minor": 3 }
|
|
6
|
+
},
|
|
7
|
+
"operationId": "33333333-3333-4333-8333-333333333333",
|
|
8
|
+
"viewId": "loading-area",
|
|
9
|
+
"expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
10
|
+
"subject": {
|
|
11
|
+
"kind": "oriented_bounds",
|
|
12
|
+
"bounds": {
|
|
13
|
+
"center": { "x": 0, "y": 0, "z": 200 },
|
|
14
|
+
"extent": { "x": 600, "y": 400, "z": 200 },
|
|
15
|
+
"rotation": { "pitch": 0, "yaw": 30, "roll": 0 }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"viewpoint": {
|
|
19
|
+
"kind": "world_fixed",
|
|
20
|
+
"approvedPose": {
|
|
21
|
+
"aspectRatio": "16:9",
|
|
22
|
+
"fieldOfViewDegrees": 70,
|
|
23
|
+
"projection": "perspective",
|
|
24
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
25
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"resolution": { "width": 1280, "height": 720 }
|
|
29
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assessment": { "method": "automatic" },
|
|
3
|
+
"clearCompanion": {
|
|
4
|
+
"status": "requested",
|
|
5
|
+
"strategy": "hide_explicit",
|
|
6
|
+
"actors": ["/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewOccluder"]
|
|
7
|
+
},
|
|
8
|
+
"contract": {
|
|
9
|
+
"name": "ue-shed-review-capture",
|
|
10
|
+
"version": { "major": 1, "minor": 4 }
|
|
11
|
+
},
|
|
12
|
+
"operationId": "33333333-3333-4333-8333-333333333333",
|
|
13
|
+
"viewId": "structure-clear",
|
|
14
|
+
"expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
15
|
+
"subject": {
|
|
16
|
+
"kind": "actor_path",
|
|
17
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject"
|
|
18
|
+
},
|
|
19
|
+
"viewpoint": {
|
|
20
|
+
"kind": "world_fixed",
|
|
21
|
+
"approvedPose": {
|
|
22
|
+
"aspectRatio": "16:9",
|
|
23
|
+
"fieldOfViewDegrees": 70,
|
|
24
|
+
"projection": "perspective",
|
|
25
|
+
"location": { "x": 1200, "y": -900, "z": 700 },
|
|
26
|
+
"rotation": { "pitch": -20, "yaw": 145, "roll": 0 }
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"resolution": { "width": 1280, "height": 720 }
|
|
30
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assessment": { "method": "ray_samples", "samplePreset": "standard" },
|
|
3
|
+
"contract": {
|
|
4
|
+
"name": "ue-shed-review-capture",
|
|
5
|
+
"version": { "major": 1, "minor": 3 }
|
|
6
|
+
},
|
|
7
|
+
"operationId": "22222222-2222-4222-8222-222222222222",
|
|
8
|
+
"viewId": "structure-follow",
|
|
9
|
+
"expectedMapPath": "/Game/Fixture/Cameras/L_CameraLoad",
|
|
10
|
+
"subject": {
|
|
11
|
+
"kind": "actor_path",
|
|
12
|
+
"actorPath": "/Game/Fixture/Cameras/L_CameraLoad.L_CameraLoad:PersistentLevel.ReviewSubject"
|
|
13
|
+
},
|
|
14
|
+
"viewpoint": {
|
|
15
|
+
"kind": "target_relative",
|
|
16
|
+
"relativePose": {
|
|
17
|
+
"aspectRatio": "16:9",
|
|
18
|
+
"fieldOfViewDegrees": 70,
|
|
19
|
+
"projection": "perspective",
|
|
20
|
+
"location": { "x": -900, "y": 0, "z": 300 },
|
|
21
|
+
"rotation": { "pitch": -15, "yaw": 0, "roll": 0 }
|
|
22
|
+
},
|
|
23
|
+
"targetSnapshot": {
|
|
24
|
+
"location": { "x": 100, "y": 200, "z": 300 },
|
|
25
|
+
"rotation": { "pitch": 0, "yaw": 45, "roll": 0 }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"resolution": { "width": 1280, "height": 720 }
|
|
29
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-review-assessment-capabilities",
|
|
4
|
+
"version": { "major": 1, "minor": 0 }
|
|
5
|
+
},
|
|
6
|
+
"depthCompareMaximumResolution": { "width": 320, "height": 180 },
|
|
7
|
+
"methods": [
|
|
8
|
+
{
|
|
9
|
+
"requestedMethod": "automatic",
|
|
10
|
+
"status": "supported",
|
|
11
|
+
"limitations": []
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -20,9 +20,9 @@ frames from an old session are disposable.
|
|
|
20
20
|
| 40 | f64 | Unreal world seconds at capture request |
|
|
21
21
|
| 48 | f64 | producer monotonic milliseconds at capture request |
|
|
22
22
|
| 56 | f64 | GPU readback latency in milliseconds |
|
|
23
|
-
| 64 |
|
|
24
|
-
| 80 |
|
|
25
|
-
| 96 |
|
|
23
|
+
| 64 | u32[4] | producer FGuid words, each little-endian |
|
|
24
|
+
| 80 | u32[4] | session FGuid words, each little-endian |
|
|
25
|
+
| 96 | u32[4] | camera FGuid words, each little-endian |
|
|
26
26
|
| 112 | u32 | cumulative readback/staging drops |
|
|
27
27
|
| 116 | u32 | cumulative latest-frame transport replacements |
|
|
28
28
|
| 120 | u32 | reserved, zero |
|
|
@@ -31,3 +31,6 @@ frames from an old session are disposable.
|
|
|
31
31
|
The payload is top-to-bottom, tightly packed BGRA8. Live buffers are bounded and latest-frame-wins;
|
|
32
32
|
sequence gaps are expected and observable. The control plane owns camera listing, schedule tuning,
|
|
33
33
|
pause/focus, and health. This binary stream never carries durable evidence.
|
|
34
|
+
|
|
35
|
+
To compare an ID with Unreal's `FGuid::ToString(EGuidFormats::Digits)` output, read the four
|
|
36
|
+
little-endian `u32` words and concatenate them as four zero-padded, eight-digit hexadecimal values.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Unreal editor world-control contract v1
|
|
2
|
+
|
|
3
|
+
This contract lets a trusted external client open one explicit `/Game/` map in Unreal Editor
|
|
4
|
+
without player input. The operation never saves, discards, or prompts over dirty work. It returns
|
|
5
|
+
`already_open` when the target is current and otherwise rejects active play sessions, dirty world
|
|
6
|
+
packages, missing maps, and failed loads as typed outcomes.
|
|
7
|
+
|
|
8
|
+
`request.schema.json` and `response.schema.json` are the language-neutral authority shared by
|
|
9
|
+
`@ue-shed/protocol` and `UEShedCoreEditor`. The companion advertises
|
|
10
|
+
`editor.world-control.v1` and its reflected object path before clients may invoke the operation.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://ue-shed.dev/contracts/editor-world/v1/request.schema.json",
|
|
4
|
+
"title": "UE Shed editor world open request v1.0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["contract", "operationId", "targetMapPath"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"contract": { "$ref": "response.schema.json#/$defs/contract" },
|
|
10
|
+
"operationId": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
|
|
13
|
+
},
|
|
14
|
+
"targetMapPath": { "$ref": "response.schema.json#/$defs/gameMapPath" }
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://ue-shed.dev/contracts/editor-world/v1/response.schema.json",
|
|
4
|
+
"title": "UE Shed editor world open response v1.0",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"required": ["after", "before", "contract", "operationId", "outcome", "targetMapPath"],
|
|
10
|
+
"properties": {
|
|
11
|
+
"after": { "$ref": "#/$defs/snapshot" },
|
|
12
|
+
"before": { "$ref": "#/$defs/snapshot" },
|
|
13
|
+
"contract": { "$ref": "#/$defs/contract" },
|
|
14
|
+
"operationId": { "$ref": "#/$defs/operationId" },
|
|
15
|
+
"outcome": { "enum": ["opened", "already_open"] },
|
|
16
|
+
"targetMapPath": { "$ref": "#/$defs/gameMapPath" }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"required": [
|
|
23
|
+
"after",
|
|
24
|
+
"before",
|
|
25
|
+
"code",
|
|
26
|
+
"contract",
|
|
27
|
+
"message",
|
|
28
|
+
"operationId",
|
|
29
|
+
"outcome",
|
|
30
|
+
"recovery",
|
|
31
|
+
"retrySafe",
|
|
32
|
+
"targetMapPath"
|
|
33
|
+
],
|
|
34
|
+
"properties": {
|
|
35
|
+
"after": { "$ref": "#/$defs/snapshot" },
|
|
36
|
+
"before": { "$ref": "#/$defs/snapshot" },
|
|
37
|
+
"code": {
|
|
38
|
+
"enum": [
|
|
39
|
+
"dirty_world",
|
|
40
|
+
"invalid_request",
|
|
41
|
+
"map_not_found",
|
|
42
|
+
"open_failed",
|
|
43
|
+
"play_session_active",
|
|
44
|
+
"unavailable"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"contract": { "$ref": "#/$defs/contract" },
|
|
48
|
+
"message": { "type": "string" },
|
|
49
|
+
"operationId": { "$ref": "#/$defs/operationId" },
|
|
50
|
+
"outcome": { "const": "rejected" },
|
|
51
|
+
"recovery": { "type": "string" },
|
|
52
|
+
"retrySafe": { "type": "boolean" },
|
|
53
|
+
"targetMapPath": { "$ref": "#/$defs/gameMapPath" }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"$defs": {
|
|
58
|
+
"contract": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": ["name", "version"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"name": { "const": "unreal-editor-world-control" },
|
|
64
|
+
"version": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"additionalProperties": false,
|
|
67
|
+
"required": ["major", "minor"],
|
|
68
|
+
"properties": { "major": { "const": 1 }, "minor": { "const": 0 } }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"mapPath": { "type": "string", "pattern": "^/[A-Za-z0-9_./-]+$" },
|
|
73
|
+
"gameMapPath": { "type": "string", "pattern": "^/Game/[A-Za-z0-9_./-]+$" },
|
|
74
|
+
"operationId": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
|
|
77
|
+
},
|
|
78
|
+
"snapshot": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"required": ["dirtyWorldPackages", "playSessionActive"],
|
|
82
|
+
"properties": {
|
|
83
|
+
"dirtyWorldPackages": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"maxItems": 256,
|
|
86
|
+
"items": { "$ref": "#/$defs/mapPath" }
|
|
87
|
+
},
|
|
88
|
+
"mapPath": { "$ref": "#/$defs/mapPath" },
|
|
89
|
+
"playSessionActive": { "type": "boolean" }
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Live scenario execution v1 fixtures
|
|
2
|
+
|
|
3
|
+
These JSON fixtures freeze the language-neutral control-plane values shared by
|
|
4
|
+
`@ue-shed/scenarios` and the optional `UEShedScenarios` Unreal plugin. The Effect schemas in
|
|
5
|
+
`packages/scenarios/src/live.ts` own validation; conformance tests decode and re-encode every
|
|
6
|
+
fixture without loss.
|
|
7
|
+
|
|
8
|
+
Version 1 supports only the deterministic Movement Gym PIE slice, `pre_evaluation` input,
|
|
9
|
+
Move/Jump/Interact, one blocking `landing_ready` wait, one `cache_open` probe, and bounded evidence.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": {
|
|
3
|
+
"name": "ue-shed-scenario-execution",
|
|
4
|
+
"version": { "major": 1, "minor": 0 }
|
|
5
|
+
},
|
|
6
|
+
"actions": [
|
|
7
|
+
{
|
|
8
|
+
"actionId": "Move",
|
|
9
|
+
"actionPath": "/Game/Fixture/Input/IA_Move",
|
|
10
|
+
"keyframes": [
|
|
11
|
+
{ "atMs": 250, "value": { "_tag": "Axis2D", "x": 0, "y": 1 } },
|
|
12
|
+
{ "atMs": 1000, "value": { "_tag": "Axis2D", "x": 0, "y": 0 } }
|
|
13
|
+
],
|
|
14
|
+
"valueType": "Axis2D"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"actionId": "Jump",
|
|
18
|
+
"actionPath": "/Game/Fixture/Input/IA_Jump",
|
|
19
|
+
"keyframes": [
|
|
20
|
+
{ "atMs": 1200, "value": { "_tag": "Boolean", "value": true } },
|
|
21
|
+
{ "atMs": 1250, "value": { "_tag": "Boolean", "value": false } }
|
|
22
|
+
],
|
|
23
|
+
"valueType": "Boolean"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"actionId": "Interact",
|
|
27
|
+
"actionPath": "/Game/Fixture/Input/IA_Interact",
|
|
28
|
+
"keyframes": [
|
|
29
|
+
{ "atMs": 5200, "value": { "_tag": "Boolean", "value": true } },
|
|
30
|
+
{ "atMs": 5250, "value": { "_tag": "Boolean", "value": false } }
|
|
31
|
+
],
|
|
32
|
+
"valueType": "Boolean"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"durationMs": 9216,
|
|
36
|
+
"evidenceLimit": 3,
|
|
37
|
+
"expectedPieSessionId": "pie-session-1",
|
|
38
|
+
"injectionLayer": "pre_evaluation",
|
|
39
|
+
"liveInputPolicy": "isolated",
|
|
40
|
+
"mapPath": "/Game/Fixture/Scenarios/L_MovementGym",
|
|
41
|
+
"probe": { "atMs": 5580, "condition": "cache_open" },
|
|
42
|
+
"scenarioId": "scenario_movement-gym_014",
|
|
43
|
+
"wait": { "atMs": 4100, "condition": "landing_ready", "timeoutMs": 1250 }
|
|
44
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_tag": "Rejected",
|
|
3
|
+
"code": "stale_session",
|
|
4
|
+
"contract": {
|
|
5
|
+
"name": "ue-shed-scenario-execution",
|
|
6
|
+
"version": { "major": 1, "minor": 0 }
|
|
7
|
+
},
|
|
8
|
+
"message": "The PIE session changed while the run was active.",
|
|
9
|
+
"recovery": "Start a fresh run against the current PIE session."
|
|
10
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_tag": "Terminal",
|
|
3
|
+
"contract": {
|
|
4
|
+
"name": "ue-shed-scenario-execution",
|
|
5
|
+
"version": { "major": 1, "minor": 0 }
|
|
6
|
+
},
|
|
7
|
+
"result": {
|
|
8
|
+
"schemaVersion": 1,
|
|
9
|
+
"id": "run-live-cancelled",
|
|
10
|
+
"scenarioId": "scenario_movement-gym_014",
|
|
11
|
+
"label": "Movement Gym live run",
|
|
12
|
+
"status": "cancelled",
|
|
13
|
+
"recordedAt": "2026-08-11T00:00:00.000Z",
|
|
14
|
+
"durationMs": 2100,
|
|
15
|
+
"engineVersion": "5.7",
|
|
16
|
+
"world": "L_MovementGym:PersistentLevel",
|
|
17
|
+
"evidence": [],
|
|
18
|
+
"divergences": [],
|
|
19
|
+
"pieSessionId": "pie-session-1",
|
|
20
|
+
"lifecycle": [
|
|
21
|
+
{ "state": "accepted", "atGameTimeMs": 0 },
|
|
22
|
+
{ "state": "isolating", "atGameTimeMs": 0 },
|
|
23
|
+
{ "state": "running", "atGameTimeMs": 0 },
|
|
24
|
+
{ "state": "cancelling", "atGameTimeMs": 2100 },
|
|
25
|
+
{ "state": "terminal", "atGameTimeMs": 2100 }
|
|
26
|
+
],
|
|
27
|
+
"inputIsolation": {
|
|
28
|
+
"established": true,
|
|
29
|
+
"restored": true,
|
|
30
|
+
"method": "slate_input_preprocessor"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|