@mhome/app-facade-protocol 1.118.4 → 1.125.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 (40) hide show
  1. package/README.md +21 -0
  2. package/contract/client-space-focus-v1.md +1 -1
  3. package/contract/device-presentation-v1.md +35 -0
  4. package/contract/entity-v1.md +53 -0
  5. package/contract/pod-commissioning-v1.md +12 -12
  6. package/contract/reference-presentation-v1.md +1 -1
  7. package/contract/resource-read-v1.md +11 -11
  8. package/contract/trace-v1.md +17 -0
  9. package/contract/user-navigation-v1.md +47 -0
  10. package/fixtures/authorization/decisions.json +110 -110
  11. package/fixtures/billing.conformance.json +49 -2
  12. package/fixtures/card-skins/space.json +1 -1
  13. package/fixtures/entity-presentation.conformance.json +2 -2
  14. package/fixtures/integration-presentation.conformance.json +1 -1
  15. package/fixtures/local-hub-state.configured.json +1 -1
  16. package/fixtures/pod-commission.awaiting-authorization.json +3 -3
  17. package/fixtures/presentation/cases.json +666 -35
  18. package/fixtures/recording.conformance.json +15 -8
  19. package/fixtures/routing/cases.json +44 -44
  20. package/fixtures/trace/linear.json +6 -0
  21. package/fixtures/widget-presentation.v1.json +3 -3
  22. package/manifest/app-facade.v1.json +49 -6
  23. package/manifest/authorization.v1.json +17 -8
  24. package/manifest/host-provision-targets.v1.json +1 -1
  25. package/manifest/hub-targets.v1.json +1 -1
  26. package/manifest/navigation-cards.v1.json +29 -0
  27. package/manifest/pod-targets.v1.json +2 -2
  28. package/manifest/presentation-times.v1.json +377 -29
  29. package/manifest/recording.v1.json +18 -15
  30. package/manifest/routing.v1.json +5 -4
  31. package/manifest/targets.v1.json +1 -1
  32. package/package.json +1 -1
  33. package/protocol.json +2 -1
  34. package/schema/delegated-call.v1.schema.json +2 -2
  35. package/schema/local-hub-state.v1.schema.json +2 -2
  36. package/schema/pod-commission.v1.schema.json +6 -6
  37. package/schema/routing.v1.schema.json +3 -3
  38. package/schema/system-hosts.v1.schema.json +2 -2
  39. package/schema/trace.v1.schema.json +278 -0
  40. package/schema/user-navigation.v1.schema.json +133 -0
@@ -107,8 +107,8 @@
107
107
  "required": [
108
108
  "userId",
109
109
  "userName",
110
- "scopes",
111
- "defaultScopeId"
110
+ "spaces",
111
+ "defaultSpaceId"
112
112
  ],
113
113
  "properties": {
114
114
  "userId": {
@@ -118,20 +118,20 @@
118
118
  "userName": {
119
119
  "type": "string"
120
120
  },
121
- "scopes": {
121
+ "spaces": {
122
122
  "type": "array",
123
123
  "minItems": 1,
124
124
  "items": {
125
125
  "type": "object",
126
126
  "additionalProperties": false,
127
127
  "required": [
128
- "scopeId",
128
+ "spaceId",
129
129
  "name",
130
130
  "local",
131
131
  "owner"
132
132
  ],
133
133
  "properties": {
134
- "scopeId": {
134
+ "spaceId": {
135
135
  "type": "string",
136
136
  "minLength": 1
137
137
  },
@@ -147,7 +147,7 @@
147
147
  }
148
148
  }
149
149
  },
150
- "defaultScopeId": {
150
+ "defaultSpaceId": {
151
151
  "type": "string",
152
152
  "minLength": 1
153
153
  }
@@ -32,7 +32,7 @@
32
32
  ],
33
33
  "properties": {
34
34
  "execution": {
35
- "const": "scopeMode"
35
+ "const": "spaceMode"
36
36
  }
37
37
  }
38
38
  },
@@ -48,7 +48,7 @@
48
48
  "required": [
49
49
  "cloudPrefixes",
50
50
  "cloudTargets",
51
- "scopeModeTargets",
51
+ "spaceModeTargets",
52
52
  "hubPrefixes",
53
53
  "requestPlacementPrefixes",
54
54
  "hubTargets",
@@ -61,7 +61,7 @@
61
61
  "cloudTargets": {
62
62
  "$ref": "#/$defs/targetList"
63
63
  },
64
- "scopeModeTargets": {
64
+ "spaceModeTargets": {
65
65
  "$ref": "#/$defs/targetList"
66
66
  },
67
67
  "hubPrefixes": {
@@ -335,7 +335,7 @@
335
335
  "additionalProperties": false,
336
336
  "required": [
337
337
  "tenantId",
338
- "scopeId"
338
+ "spaceId"
339
339
  ],
340
340
  "properties": {
341
341
  "tenantId": {
@@ -343,7 +343,7 @@
343
343
  "minLength": 1,
344
344
  "maxLength": 256
345
345
  },
346
- "scopeId": {
346
+ "spaceId": {
347
347
  "type": "string",
348
348
  "minLength": 1,
349
349
  "maxLength": 256
@@ -0,0 +1,278 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Linear execution trace",
4
+ "type": "array",
5
+ "maxItems": 256,
6
+ "items": {
7
+ "oneOf": [
8
+ {
9
+ "type": "object",
10
+ "required": [
11
+ "type",
12
+ "timestamp",
13
+ "userId",
14
+ "source"
15
+ ],
16
+ "properties": {
17
+ "type": {
18
+ "const": "USER"
19
+ },
20
+ "timestamp": {
21
+ "type": "integer",
22
+ "minimum": 0
23
+ },
24
+ "userId": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "source": {
29
+ "enum": [
30
+ "ui",
31
+ "agent",
32
+ "cli",
33
+ "mcp",
34
+ "messaging"
35
+ ]
36
+ },
37
+ "appClientId": {
38
+ "type": "string"
39
+ },
40
+ "page": {
41
+ "type": "string"
42
+ },
43
+ "cardId": {
44
+ "type": "string"
45
+ },
46
+ "surfaceId": {
47
+ "type": "string"
48
+ },
49
+ "provider": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "additionalProperties": false
54
+ },
55
+ {
56
+ "type": "object",
57
+ "required": [
58
+ "type",
59
+ "timestamp",
60
+ "spaceId",
61
+ "source"
62
+ ],
63
+ "properties": {
64
+ "type": {
65
+ "const": "SPACE"
66
+ },
67
+ "timestamp": {
68
+ "type": "integer",
69
+ "minimum": 0
70
+ },
71
+ "spaceId": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "source": {
76
+ "enum": [
77
+ "ui",
78
+ "agent",
79
+ "cli",
80
+ "mcp",
81
+ "messaging"
82
+ ]
83
+ },
84
+ "appClientId": {
85
+ "type": "string"
86
+ },
87
+ "page": {
88
+ "type": "string"
89
+ },
90
+ "cardId": {
91
+ "type": "string"
92
+ },
93
+ "surfaceId": {
94
+ "type": "string"
95
+ },
96
+ "provider": {
97
+ "type": "string"
98
+ }
99
+ },
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "required": [
105
+ "type",
106
+ "timestamp",
107
+ "automationId"
108
+ ],
109
+ "properties": {
110
+ "type": {
111
+ "const": "AUTOMATION_IGNITE"
112
+ },
113
+ "timestamp": {
114
+ "type": "integer",
115
+ "minimum": 0
116
+ },
117
+ "automationId": {
118
+ "type": "string",
119
+ "minLength": 1
120
+ }
121
+ },
122
+ "additionalProperties": false
123
+ },
124
+ {
125
+ "type": "object",
126
+ "required": [
127
+ "type",
128
+ "timestamp",
129
+ "automationId"
130
+ ],
131
+ "properties": {
132
+ "type": {
133
+ "const": "AUTOMATION_TRIGGER"
134
+ },
135
+ "timestamp": {
136
+ "type": "integer",
137
+ "minimum": 0
138
+ },
139
+ "automationId": {
140
+ "type": "string",
141
+ "minLength": 1
142
+ }
143
+ },
144
+ "additionalProperties": false
145
+ },
146
+ {
147
+ "type": "object",
148
+ "required": [
149
+ "type",
150
+ "timestamp",
151
+ "automationId"
152
+ ],
153
+ "properties": {
154
+ "type": {
155
+ "const": "AUTOMATION_RESUME"
156
+ },
157
+ "timestamp": {
158
+ "type": "integer",
159
+ "minimum": 0
160
+ },
161
+ "automationId": {
162
+ "type": "string",
163
+ "minLength": 1
164
+ }
165
+ },
166
+ "additionalProperties": false
167
+ },
168
+ {
169
+ "type": "object",
170
+ "required": [
171
+ "type",
172
+ "timestamp",
173
+ "widgetId"
174
+ ],
175
+ "properties": {
176
+ "type": {
177
+ "const": "WIDGET"
178
+ },
179
+ "timestamp": {
180
+ "type": "integer",
181
+ "minimum": 0
182
+ },
183
+ "widgetId": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ }
187
+ },
188
+ "additionalProperties": false
189
+ },
190
+ {
191
+ "type": "object",
192
+ "required": [
193
+ "type",
194
+ "timestamp",
195
+ "groupId"
196
+ ],
197
+ "properties": {
198
+ "type": {
199
+ "const": "GROUP"
200
+ },
201
+ "timestamp": {
202
+ "type": "integer",
203
+ "minimum": 0
204
+ },
205
+ "groupId": {
206
+ "type": "string",
207
+ "minLength": 1
208
+ }
209
+ },
210
+ "additionalProperties": false
211
+ },
212
+ {
213
+ "type": "object",
214
+ "required": [
215
+ "type",
216
+ "timestamp",
217
+ "quickWord"
218
+ ],
219
+ "properties": {
220
+ "type": {
221
+ "const": "QUICK_WORD"
222
+ },
223
+ "timestamp": {
224
+ "type": "integer",
225
+ "minimum": 0
226
+ },
227
+ "quickWord": {
228
+ "type": "string",
229
+ "minLength": 1
230
+ }
231
+ },
232
+ "additionalProperties": false
233
+ },
234
+ {
235
+ "type": "object",
236
+ "required": [
237
+ "type",
238
+ "timestamp"
239
+ ],
240
+ "properties": {
241
+ "type": {
242
+ "const": "SCHEDULE"
243
+ },
244
+ "timestamp": {
245
+ "type": "integer",
246
+ "minimum": 0
247
+ },
248
+ "scheduleId": {
249
+ "type": "string",
250
+ "minLength": 1
251
+ }
252
+ },
253
+ "additionalProperties": false
254
+ },
255
+ {
256
+ "type": "object",
257
+ "required": [
258
+ "type",
259
+ "timestamp"
260
+ ],
261
+ "properties": {
262
+ "type": {
263
+ "const": "EXTERNAL"
264
+ },
265
+ "timestamp": {
266
+ "type": "integer",
267
+ "minimum": 0
268
+ },
269
+ "integrationId": {
270
+ "type": "string",
271
+ "minLength": 1
272
+ }
273
+ },
274
+ "additionalProperties": false
275
+ }
276
+ ]
277
+ }
278
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "User navigation",
4
+ "definitions": {
5
+ "layout": {
6
+ "type": "string",
7
+ "enum": [
8
+ "compact",
9
+ "wide"
10
+ ]
11
+ },
12
+ "cardIds": {
13
+ "type": "array",
14
+ "minItems": 3,
15
+ "maxItems": 15,
16
+ "uniqueItems": true,
17
+ "items": {
18
+ "type": "string",
19
+ "enum": [
20
+ "dashboard",
21
+ "now",
22
+ "menu",
23
+ "automation",
24
+ "device",
25
+ "integrationsList",
26
+ "messaging",
27
+ "house-floor-plan",
28
+ "storage",
29
+ "phone-setting",
30
+ "nfc",
31
+ "matter",
32
+ "person",
33
+ "camera",
34
+ "widgets"
35
+ ]
36
+ },
37
+ "allOf": [
38
+ {
39
+ "contains": {
40
+ "const": "dashboard"
41
+ }
42
+ },
43
+ {
44
+ "contains": {
45
+ "const": "now"
46
+ }
47
+ },
48
+ {
49
+ "contains": {
50
+ "const": "menu"
51
+ }
52
+ }
53
+ ]
54
+ },
55
+ "getRequest": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": [
59
+ "layout"
60
+ ],
61
+ "properties": {
62
+ "layout": {
63
+ "$ref": "#/definitions/layout"
64
+ }
65
+ }
66
+ },
67
+ "updateRequest": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": [
71
+ "layout",
72
+ "cardIds"
73
+ ],
74
+ "properties": {
75
+ "layout": {
76
+ "$ref": "#/definitions/layout"
77
+ },
78
+ "cardIds": {
79
+ "$ref": "#/definitions/cardIds"
80
+ },
81
+ "menuCardIds": {
82
+ "$ref": "#/definitions/menuCardIds"
83
+ }
84
+ }
85
+ },
86
+ "profile": {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "required": [
90
+ "layout",
91
+ "cardIds",
92
+ "revision"
93
+ ],
94
+ "properties": {
95
+ "layout": {
96
+ "$ref": "#/definitions/layout"
97
+ },
98
+ "cardIds": {
99
+ "$ref": "#/definitions/cardIds"
100
+ },
101
+ "revision": {
102
+ "type": "string",
103
+ "minLength": 1
104
+ },
105
+ "menuCardIds": {
106
+ "$ref": "#/definitions/menuCardIds"
107
+ }
108
+ }
109
+ },
110
+ "menuCardIds": {
111
+ "type": "array",
112
+ "uniqueItems": true,
113
+ "maxItems": 12,
114
+ "items": {
115
+ "type": "string",
116
+ "enum": [
117
+ "automation",
118
+ "device",
119
+ "integrationsList",
120
+ "messaging",
121
+ "house-floor-plan",
122
+ "storage",
123
+ "phone-setting",
124
+ "nfc",
125
+ "matter",
126
+ "person",
127
+ "camera",
128
+ "widgets"
129
+ ]
130
+ }
131
+ }
132
+ }
133
+ }