@ue-shed/protocol 0.7.1 → 0.8.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/contracts/cameras/authoring/v1/README.md +50 -0
- package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
- package/contracts/cameras/authoring/v1/arrangement.schema.json +1801 -0
- package/contracts/cameras/authoring/v1/bridge-request.schema.json +10862 -0
- package/contracts/cameras/authoring/v1/bridge-response.schema.json +10323 -0
- package/contracts/cameras/authoring/v1/command.schema.json +4109 -0
- package/contracts/cameras/authoring/v1/document.schema.json +4409 -0
- package/contracts/cameras/authoring/v1/panel-event.schema.json +4885 -0
- package/contracts/cameras/authoring/v1/panel-state.schema.json +3548 -0
- package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
- package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
- package/contracts/cameras/map-tile/v1/README.md +4 -1
- package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1621 -30
- package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
- package/contracts/cameras/map-tile/v1/capture-response.schema.json +1383 -96
- package/contracts/cameras/map-tile/v1/manifest.schema.json +1760 -110
- package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
- package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
- package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
- package/contracts/cameras/render/v1/begin-result.schema.json +167 -0
- package/contracts/cameras/render/v1/capabilities.schema.json +25 -0
- package/contracts/cameras/render/v1/frame-evidence.schema.json +240 -0
- package/contracts/cameras/render/v1/frame-status.schema.json +249 -0
- package/contracts/cameras/render/v1/policy.schema.json +159 -0
- package/contracts/cameras/render/v1/review-inspection-result.schema.json +263 -0
- package/contracts/cameras/render/v1/session-request.schema.json +167 -0
- package/contracts/cameras/review/v1/README.md +6 -0
- package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
- package/contracts/cameras/review/v1/capture-response.schema.json +3648 -0
- package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
- package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
- package/contracts/core/v1/window-activation-request.schema.json +20 -0
- package/contracts/core/v1/window-activation-result.schema.json +49 -0
- package/contracts/editor-world/v1/README.md +27 -0
- package/contracts/editor-world/v1/operation.schema.json +761 -0
- package/contracts/editor-world/v1/state.schema.json +92 -0
- package/contracts/uasset-io/v1/event.schema.json +613 -171
- package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
- package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
- package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
- package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
- package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
- package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
- package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
- package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
- package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
- package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
- package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
- package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
- package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
- package/contracts/world/preparation/v1/request.schema.json +897 -0
- package/contracts/world/preparation/v1/response.schema.json +449 -0
- package/dist/cameras.d.ts +16 -12
- package/dist/cameras.d.ts.map +1 -1
- package/dist/cameras.js +1 -0
- package/dist/cameras.js.map +1 -1
- package/dist/companion.d.ts +6 -0
- package/dist/companion.d.ts.map +1 -1
- package/dist/companion.js +3 -0
- package/dist/companion.js.map +1 -1
- package/dist/editor-window-activation.d.ts +16 -0
- package/dist/editor-window-activation.d.ts.map +1 -0
- package/dist/editor-window-activation.js +19 -0
- package/dist/editor-window-activation.js.map +1 -0
- package/dist/editor-world-control.d.ts +125 -0
- package/dist/editor-world-control.d.ts.map +1 -1
- package/dist/editor-world-control.js +25 -0
- package/dist/editor-world-control.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/uasset-inspection.d.ts +112 -55
- package/dist/uasset-inspection.d.ts.map +1 -1
- package/dist/uasset-inspection.js +29 -0
- package/dist/uasset-inspection.js.map +1 -1
- package/dist/uasset-io.d.ts +54 -0
- package/dist/uasset-io.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{
|
|
2
|
+
"authoredVisibility": {
|
|
3
|
+
"version": 1,
|
|
4
|
+
"output": "natural_and_authored",
|
|
5
|
+
"actors": {
|
|
6
|
+
"hide": [],
|
|
7
|
+
"protect": []
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"authoredEvidence": {
|
|
11
|
+
"visibilityDiagnostics": [],
|
|
12
|
+
"editorState": {
|
|
13
|
+
"mapPackageDirtyBefore": false,
|
|
14
|
+
"mapPackageDirtyAfter": false
|
|
15
|
+
},
|
|
16
|
+
"camera": {
|
|
17
|
+
"location": {
|
|
18
|
+
"x": 950,
|
|
19
|
+
"y": -750,
|
|
20
|
+
"z": 650
|
|
21
|
+
},
|
|
22
|
+
"rotation": {
|
|
23
|
+
"pitch": -25.000000000000007,
|
|
24
|
+
"roll": -1.754676902789813e-15,
|
|
25
|
+
"yaw": 140
|
|
26
|
+
},
|
|
27
|
+
"projection": {
|
|
28
|
+
"kind": "perspective",
|
|
29
|
+
"horizontalFieldOfView": 40
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"size": {
|
|
33
|
+
"width": 640,
|
|
34
|
+
"height": 360
|
|
35
|
+
},
|
|
36
|
+
"policy": {
|
|
37
|
+
"visibility": {
|
|
38
|
+
"hide": [],
|
|
39
|
+
"protect": []
|
|
40
|
+
},
|
|
41
|
+
"renderer": {
|
|
42
|
+
"kind": "scene_capture",
|
|
43
|
+
"profile": "scene_capture_defaults",
|
|
44
|
+
"lodDistanceScale": 1,
|
|
45
|
+
"fog": true,
|
|
46
|
+
"volumetricFog": true
|
|
47
|
+
},
|
|
48
|
+
"exposure": {
|
|
49
|
+
"mode": "fixed_ev100",
|
|
50
|
+
"ev100": 10,
|
|
51
|
+
"compensation": "project"
|
|
52
|
+
},
|
|
53
|
+
"settling": {
|
|
54
|
+
"minimumFrames": 1,
|
|
55
|
+
"timeoutMs": 120000
|
|
56
|
+
},
|
|
57
|
+
"time": "live_editor",
|
|
58
|
+
"preparation": {
|
|
59
|
+
"geometry": {
|
|
60
|
+
"mode": "preserve_loading"
|
|
61
|
+
},
|
|
62
|
+
"dataLayers": []
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"exposureEV100": 10,
|
|
66
|
+
"preparation": {
|
|
67
|
+
"status": "preserved",
|
|
68
|
+
"regionsHeld": 0,
|
|
69
|
+
"dataLayersApplied": 0,
|
|
70
|
+
"limitations": [
|
|
71
|
+
"Explicit editor loading does not certify frustum completeness, shader convergence, or gameplay initialization."
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"settling": {
|
|
75
|
+
"renderedFrames": 1,
|
|
76
|
+
"elapsedMs": 36.709997802972794,
|
|
77
|
+
"convergence": "not_assessed"
|
|
78
|
+
},
|
|
79
|
+
"engineVersion": "5.7.4-51494982+++UE5+Release-5.7",
|
|
80
|
+
"pluginVersion": "0.7.1"
|
|
81
|
+
},
|
|
82
|
+
"renderEvidence": {
|
|
83
|
+
"editorState": {
|
|
84
|
+
"mapPackageDirtyBefore": false,
|
|
85
|
+
"mapPackageDirtyAfter": false
|
|
86
|
+
},
|
|
87
|
+
"camera": {
|
|
88
|
+
"location": {
|
|
89
|
+
"x": 950,
|
|
90
|
+
"y": -750,
|
|
91
|
+
"z": 650
|
|
92
|
+
},
|
|
93
|
+
"rotation": {
|
|
94
|
+
"pitch": -25.000000000000007,
|
|
95
|
+
"roll": -1.754676902789813e-15,
|
|
96
|
+
"yaw": 140
|
|
97
|
+
},
|
|
98
|
+
"projection": {
|
|
99
|
+
"kind": "perspective",
|
|
100
|
+
"horizontalFieldOfView": 40
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"size": {
|
|
104
|
+
"width": 640,
|
|
105
|
+
"height": 360
|
|
106
|
+
},
|
|
107
|
+
"policy": {
|
|
108
|
+
"renderer": {
|
|
109
|
+
"kind": "scene_capture",
|
|
110
|
+
"profile": "scene_capture_defaults",
|
|
111
|
+
"lodDistanceScale": 1,
|
|
112
|
+
"fog": true,
|
|
113
|
+
"volumetricFog": true
|
|
114
|
+
},
|
|
115
|
+
"exposure": {
|
|
116
|
+
"mode": "fixed_ev100",
|
|
117
|
+
"ev100": 10,
|
|
118
|
+
"compensation": "project"
|
|
119
|
+
},
|
|
120
|
+
"settling": {
|
|
121
|
+
"minimumFrames": 1,
|
|
122
|
+
"timeoutMs": 120000
|
|
123
|
+
},
|
|
124
|
+
"time": "live_editor",
|
|
125
|
+
"preparation": {
|
|
126
|
+
"geometry": {
|
|
127
|
+
"mode": "preserve_loading"
|
|
128
|
+
},
|
|
129
|
+
"dataLayers": []
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"exposureEV100": 10,
|
|
133
|
+
"preparation": {
|
|
134
|
+
"status": "preserved",
|
|
135
|
+
"regionsHeld": 0,
|
|
136
|
+
"dataLayersApplied": 0,
|
|
137
|
+
"limitations": [
|
|
138
|
+
"Explicit editor loading does not certify frustum completeness, shader convergence, or gameplay initialization."
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"settling": {
|
|
142
|
+
"renderedFrames": 1,
|
|
143
|
+
"elapsedMs": 47.80590161681175,
|
|
144
|
+
"convergence": "not_assessed"
|
|
145
|
+
},
|
|
146
|
+
"engineVersion": "5.7.4-51494982+++UE5+Release-5.7",
|
|
147
|
+
"pluginVersion": "0.7.1"
|
|
148
|
+
},
|
|
149
|
+
"captureDurationMs": 84.51589941978455,
|
|
150
|
+
"clearCompanion": {
|
|
151
|
+
"status": "not_requested"
|
|
152
|
+
},
|
|
153
|
+
"contract": {
|
|
154
|
+
"name": "ue-shed-review-capture",
|
|
155
|
+
"version": {
|
|
156
|
+
"major": 1,
|
|
157
|
+
"minor": 7
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"effectiveWorldPose": {
|
|
161
|
+
"aspectRatio": "16:9",
|
|
162
|
+
"fieldOfViewDegrees": 40,
|
|
163
|
+
"location": {
|
|
164
|
+
"x": 950,
|
|
165
|
+
"y": -750,
|
|
166
|
+
"z": 650
|
|
167
|
+
},
|
|
168
|
+
"projection": "perspective",
|
|
169
|
+
"rotation": {
|
|
170
|
+
"pitch": -25.000000000000007,
|
|
171
|
+
"roll": -1.754676902789813e-15,
|
|
172
|
+
"yaw": 140
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"height": 360,
|
|
176
|
+
"mapPackageDirtyAfter": false,
|
|
177
|
+
"mapPackageDirtyBefore": false,
|
|
178
|
+
"mapPath": "/Game/Fixture",
|
|
179
|
+
"operationId": "49cebd79-1a5a-460d-aab8-17a89c29644e",
|
|
180
|
+
"resolvedSubject": {
|
|
181
|
+
"kind": "unresolved_actor",
|
|
182
|
+
"subject": {
|
|
183
|
+
"actorPath": "/Game/Fixture.Fixture:PersistentLevel.Floor",
|
|
184
|
+
"kind": "actor_path"
|
|
185
|
+
},
|
|
186
|
+
"reason": "World-fixed capture does not require subject realization."
|
|
187
|
+
},
|
|
188
|
+
"stagedArtifacts": [
|
|
189
|
+
{
|
|
190
|
+
"stagingPath": "Saved/UEShed/CameraRenderStaging/fc6528fe-c1e9-4bcf-bff5-c8e06c98bfa2/pure.png",
|
|
191
|
+
"variant": "pure"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"stagingPath": "Saved/UEShed/CameraRenderStaging/a50b0ff7-e587-43a9-bc68-da84deb947b7/authored.png",
|
|
195
|
+
"variant": "authored"
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"status": "captured",
|
|
199
|
+
"viewId": "view-a",
|
|
200
|
+
"visibility": {
|
|
201
|
+
"reason": "Actor unavailable in the loaded editor world; the independent camera was rendered.",
|
|
202
|
+
"status": "not_assessed"
|
|
203
|
+
},
|
|
204
|
+
"width": 640
|
|
205
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Editor window activation
|
|
2
|
+
|
|
3
|
+
`UEShedCoreEditor` advertises `editor.window-activation.v1` and a
|
|
4
|
+
`windowActivationObjectPath` in the Core capability manifest. Invoke `ActivateEditorWindow`
|
|
5
|
+
there with `RequestJson` matching `window-activation-request.schema.json`; decode `ResultJson`
|
|
6
|
+
with `window-activation-result.schema.json`.
|
|
7
|
+
|
|
8
|
+
Use the manifest's process identity as `expectedProcessId`. The companion rejects stale identities.
|
|
9
|
+
It targets its main editor window, or the active modal dialog that must be handled first. It does
|
|
10
|
+
not select actors, move cameras, open maps, dismiss dialogs, save packages, or launch an editor.
|
|
11
|
+
|
|
12
|
+
On Windows, activation restores a minimized main window and calls `SetForegroundWindow`, then
|
|
13
|
+
checks the actual foreground window. A denied request returns `blocked`; a missing window returns
|
|
14
|
+
`unavailable`. Unsupported platforms return `unsupported`. An actor-navigation success is not a
|
|
15
|
+
window-activation success.
|
|
16
|
+
|
|
17
|
+
For a local endpoint, a foreground client can first grant permission to this one process using
|
|
18
|
+
`AllowSetForegroundWindow`. The engine package supplies this through its optional Windows native
|
|
19
|
+
helper. It never grants `ASFW_ANY`, attaches input queues, simulates keyboard input, changes focus
|
|
20
|
+
lock settings, or performs automatic focus retries. Remote endpoints do not receive local grants.
|
|
21
|
+
Call only for an explicit user handoff; observation and background follow ticks must not activate.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$defs": {},
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"expectedProcessId": {
|
|
7
|
+
"type": "integer",
|
|
8
|
+
"allOf": [
|
|
9
|
+
{
|
|
10
|
+
"exclusiveMinimum": 0
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"exclusiveMaximum": 4294967295
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": ["expectedProcessId"],
|
|
19
|
+
"additionalProperties": false
|
|
20
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$defs": {},
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"schemaVersion": {
|
|
7
|
+
"type": "number",
|
|
8
|
+
"enum": [1]
|
|
9
|
+
},
|
|
10
|
+
"processId": {
|
|
11
|
+
"type": "integer",
|
|
12
|
+
"allOf": [
|
|
13
|
+
{
|
|
14
|
+
"exclusiveMinimum": 0
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"exclusiveMaximum": 4294967295
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"status": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["activated", "blocked", "unavailable", "unsupported", "target_changed"]
|
|
24
|
+
},
|
|
25
|
+
"target": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["main_editor", "modal", "none"]
|
|
28
|
+
},
|
|
29
|
+
"restored": {
|
|
30
|
+
"type": "boolean"
|
|
31
|
+
},
|
|
32
|
+
"message": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"recovery": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"required": [
|
|
40
|
+
"schemaVersion",
|
|
41
|
+
"processId",
|
|
42
|
+
"status",
|
|
43
|
+
"target",
|
|
44
|
+
"restored",
|
|
45
|
+
"message",
|
|
46
|
+
"recovery"
|
|
47
|
+
],
|
|
48
|
+
"additionalProperties": false
|
|
49
|
+
}
|
|
@@ -8,3 +8,30 @@ packages, missing maps, and failed loads as typed outcomes.
|
|
|
8
8
|
`request.schema.json` and `response.schema.json` are the language-neutral authority shared by
|
|
9
9
|
`@ue-shed/protocol` and `UEShedCoreEditor`. The companion advertises
|
|
10
10
|
`editor.world-control.v1` and its reflected object path before clients may invoke the operation.
|
|
11
|
+
|
|
12
|
+
## Asynchronous opening and live state
|
|
13
|
+
|
|
14
|
+
Companions advertising `editor.world-control.async.v1` accept the same explicit request via
|
|
15
|
+
`BeginOpenMap`. It returns an `operation.schema.json` acknowledgement before scheduling the actual
|
|
16
|
+
load on the game thread. `GetOpenMapStatus` takes that same request identity and is read-only.
|
|
17
|
+
`pending` and `running` are not successful loads; `completed.result` contains the original typed
|
|
18
|
+
open/refusal response. Dirty-world and play-session checks run immediately before loading.
|
|
19
|
+
|
|
20
|
+
There is at most one pending/running operation. Repeating an identity returns its retained state,
|
|
21
|
+
and using it for another target reports `conflict`. The producer retains the last 32 terminal
|
|
22
|
+
operations in process memory. An unknown/evicted identity or editor restart reports
|
|
23
|
+
`unknown_operation`; clients must not reinterpret it as permission to replay a mutation.
|
|
24
|
+
|
|
25
|
+
Unreal's map loader still blocks its game thread. Status requests can time out during a large load;
|
|
26
|
+
clients retry only these read-only queries. There is no invented progress percentage and no remote
|
|
27
|
+
cancel/discard capability. The public engine workflow waits up to 30 minutes by default (configurable
|
|
28
|
+
per call), checks deadlines between bounded requests, and reports an indeterminate outcome on expiry.
|
|
29
|
+
Interrupting a client wait stops its polling, not Unreal's already accepted operation. Old companions
|
|
30
|
+
retain the synchronous API with a longer request budget and no automatic retry.
|
|
31
|
+
|
|
32
|
+
`editor.world-state.v1` advertises `GetWorldState`, returning `state.schema.json`: the current editor
|
|
33
|
+
map, dirty world packages, project name and whether Play/Simulate is active. Updated companions also
|
|
34
|
+
return `projectRoot`, the absolute project directory. It is optional for wire compatibility; clients
|
|
35
|
+
that require a matching local project must reject missing or mismatched identity rather than infer
|
|
36
|
+
it from a map path or display name. Clients can poll state independently of camera or actor streams.
|
|
37
|
+
No editor-event subscription is claimed by this version.
|