@ue-shed/protocol 0.7.0 → 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.
Files changed (79) hide show
  1. package/contracts/cameras/authoring/v1/README.md +50 -0
  2. package/contracts/cameras/authoring/v1/approval.schema.json +106 -0
  3. package/contracts/cameras/authoring/v1/arrangement.schema.json +1801 -0
  4. package/contracts/cameras/authoring/v1/bridge-request.schema.json +10862 -0
  5. package/contracts/cameras/authoring/v1/bridge-response.schema.json +10323 -0
  6. package/contracts/cameras/authoring/v1/command.schema.json +4109 -0
  7. package/contracts/cameras/authoring/v1/document.schema.json +4409 -0
  8. package/contracts/cameras/authoring/v1/panel-event.schema.json +4885 -0
  9. package/contracts/cameras/authoring/v1/panel-state.schema.json +3548 -0
  10. package/contracts/cameras/authoring/v1/recipe.schema.json +340 -0
  11. package/contracts/cameras/authoring/v1/visibility-preset.schema.json +205 -0
  12. package/contracts/cameras/map-tile/v1/README.md +4 -1
  13. package/contracts/cameras/map-tile/v1/capture-operation.schema.json +1621 -30
  14. package/contracts/cameras/map-tile/v1/capture-request.schema.json +497 -48
  15. package/contracts/cameras/map-tile/v1/capture-response.schema.json +1383 -96
  16. package/contracts/cameras/map-tile/v1/manifest.schema.json +1760 -110
  17. package/contracts/cameras/map-tile/v1/plan.schema.json +394 -200
  18. package/contracts/cameras/map-tile/v1/release-result.schema.json +7 -2
  19. package/contracts/cameras/provisioning/v1/provision-request.schema.json +663 -141
  20. package/contracts/cameras/render/v1/begin-result.schema.json +167 -0
  21. package/contracts/cameras/render/v1/capabilities.schema.json +25 -0
  22. package/contracts/cameras/render/v1/frame-evidence.schema.json +240 -0
  23. package/contracts/cameras/render/v1/frame-status.schema.json +249 -0
  24. package/contracts/cameras/render/v1/policy.schema.json +159 -0
  25. package/contracts/cameras/render/v1/review-inspection-result.schema.json +263 -0
  26. package/contracts/cameras/render/v1/session-request.schema.json +167 -0
  27. package/contracts/cameras/review/v1/README.md +6 -0
  28. package/contracts/cameras/review/v1/capture-request.schema.json +221 -3
  29. package/contracts/cameras/review/v1/capture-response.schema.json +3648 -0
  30. package/contracts/cameras/review/v1/fixtures/capture-authored.json +205 -0
  31. package/contracts/core/v1/WINDOW-ACTIVATION.md +21 -0
  32. package/contracts/core/v1/window-activation-request.schema.json +20 -0
  33. package/contracts/core/v1/window-activation-result.schema.json +49 -0
  34. package/contracts/editor-world/v1/README.md +27 -0
  35. package/contracts/editor-world/v1/operation.schema.json +761 -0
  36. package/contracts/editor-world/v1/state.schema.json +92 -0
  37. package/contracts/uasset-io/v1/event.schema.json +613 -171
  38. package/contracts/uasset-io/v1/fixtures/invalid/inspect-string-table-nonstring-metadata.json +53 -0
  39. package/contracts/uasset-io/v1/fixtures/invalid/negative-instanced-size.json +97 -0
  40. package/contracts/uasset-io/v1/fixtures/invalid/non-string-metadata.json +97 -0
  41. package/contracts/uasset-io/v1/fixtures/invalid/unknown-native-value.json +97 -0
  42. package/contracts/uasset-io/v1/fixtures/valid/extract-text-string-table-occurrence-result-event.json +30 -0
  43. package/contracts/uasset-io/v1/fixtures/valid/inspect-native-result-event.json +97 -0
  44. package/contracts/uasset-io/v1/fixtures/valid/inspect-string-table-metadata-result-event.json +53 -0
  45. package/contracts/world/preparation/v1/fixtures/invalid-contract-version.json +10 -0
  46. package/contracts/world/preparation/v1/fixtures/invalid-extra-field.json +11 -0
  47. package/contracts/world/preparation/v1/fixtures/invalid-negative-budget.json +37 -0
  48. package/contracts/world/preparation/v1/fixtures/invalid-region-negative-extent.json +40 -0
  49. package/contracts/world/preparation/v1/fixtures/valid-actor-context.json +37 -0
  50. package/contracts/world/preparation/v1/fixtures/valid-describe.json +10 -0
  51. package/contracts/world/preparation/v1/request.schema.json +897 -0
  52. package/contracts/world/preparation/v1/response.schema.json +449 -0
  53. package/dist/cameras.d.ts +16 -12
  54. package/dist/cameras.d.ts.map +1 -1
  55. package/dist/cameras.js +1 -0
  56. package/dist/cameras.js.map +1 -1
  57. package/dist/companion.d.ts +6 -0
  58. package/dist/companion.d.ts.map +1 -1
  59. package/dist/companion.js +3 -0
  60. package/dist/companion.js.map +1 -1
  61. package/dist/editor-window-activation.d.ts +16 -0
  62. package/dist/editor-window-activation.d.ts.map +1 -0
  63. package/dist/editor-window-activation.js +19 -0
  64. package/dist/editor-window-activation.js.map +1 -0
  65. package/dist/editor-world-control.d.ts +125 -0
  66. package/dist/editor-world-control.d.ts.map +1 -1
  67. package/dist/editor-world-control.js +25 -0
  68. package/dist/editor-world-control.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/uasset-inspection.d.ts +112 -55
  74. package/dist/uasset-inspection.d.ts.map +1 -1
  75. package/dist/uasset-inspection.js +29 -0
  76. package/dist/uasset-inspection.js.map +1 -1
  77. package/dist/uasset-io.d.ts +54 -0
  78. package/dist/uasset-io.d.ts.map +1 -1
  79. 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.