@mhome/app-facade-protocol 1.15.1 → 1.18.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 +9 -10
- package/manifest/app-facade.v1.json +11 -2
- package/manifest/hub-targets.v1.json +1 -1
- package/manifest/routing.v1.json +7 -3
- package/manifest/targets.v1.json +1 -1
- package/package.json +1 -1
- package/protocol.json +3 -1
- package/schema/system-hosts-runtime.v1.schema.json +22 -0
- package/schema/system-hosts.v1.schema.json +249 -0
package/README.md
CHANGED
|
@@ -60,11 +60,10 @@ Relay permission is separate from execution authority so a client
|
|
|
60
60
|
cannot silently turn every Hub request into a cloud-proxied request.
|
|
61
61
|
|
|
62
62
|
The checked-in Rust table is generated from that manifest, and non-Rust clients
|
|
63
|
-
consume the same manifest from the npm protocol package.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
outside this contract.
|
|
63
|
+
consume the same manifest from the npm protocol package. Local Spaces execute
|
|
64
|
+
Host inventory and management on the selected Hub through `/app/system/hosts/*`.
|
|
65
|
+
A native Client remains the path when no local Hub is selected. Lion's legacy
|
|
66
|
+
controller annotations and non-`/app/*` protocols are outside this contract.
|
|
68
67
|
|
|
69
68
|
### System plugin catalog
|
|
70
69
|
|
|
@@ -76,8 +75,7 @@ routing manifest. The response schema is `schema/plugin-catalog.v1.schema.json`.
|
|
|
76
75
|
The catalog describes supported types, not installed software or bindings.
|
|
77
76
|
`componentId` joins to Host runtime inspection; `nodeType` joins to existing
|
|
78
77
|
Plugin candidate and installed/binding queries. Platform installability and
|
|
79
|
-
versions come from the Host release catalog, not this directory.
|
|
80
|
-
is a native management API, not a portable App Facade executor.
|
|
78
|
+
versions come from the Host release catalog, not this directory.
|
|
81
79
|
|
|
82
80
|
Core and Cloud embed generated copies. After editing the catalog, run
|
|
83
81
|
`node scripts/sync-plugin-catalog.mjs --write <core-resource> <cloud-resource>`
|
|
@@ -92,6 +90,7 @@ Code creation may omit bot/account and group/surface identifiers. The receiving
|
|
|
92
90
|
## Space runtime observations
|
|
93
91
|
|
|
94
92
|
`/app/system/instances/get` reads Space instances; `/app/system/clients/get` reads
|
|
95
|
-
client sessions
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
client sessions; `/app/system/hosts/get`, `/app/system/hosts/runtime`, and
|
|
94
|
+
`/app/system/hosts/claim` are Hub-vantage Host inventory, management, and
|
|
95
|
+
first-claim. These remain Hub-owned with cloud relay and Space membership. See
|
|
96
|
+
[SYSTEM.md](SYSTEM.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": "mhome.app-facade.v1",
|
|
3
|
-
"contractVersion": "1.
|
|
3
|
+
"contractVersion": "1.18.0",
|
|
4
4
|
"callSchema": "schema/facade-call.v1.schema.json",
|
|
5
5
|
"routing": "manifest/routing.v1.json",
|
|
6
6
|
"routingSchema": "schema/routing.v1.schema.json",
|
|
@@ -77,9 +77,18 @@
|
|
|
77
77
|
"system": {
|
|
78
78
|
"contract": "mhome.system.instances.v1",
|
|
79
79
|
"schema": "schema/system-instances.v1.schema.json",
|
|
80
|
+
"hostsContract": "mhome.system.hosts.v1",
|
|
81
|
+
"hostsSchema": "schema/system-hosts.v1.schema.json",
|
|
82
|
+
"hostsRuntimeContract": "mhome.system.hosts.runtime.v1",
|
|
83
|
+
"hostsRuntimeSchema": "schema/system-hosts-runtime.v1.schema.json",
|
|
84
|
+
"hostsClaimContract": "mhome.system.hosts.claim.v1",
|
|
85
|
+
"hostsClaimSchema": "schema/system-hosts-claim.v1.schema.json",
|
|
80
86
|
"requestTargets": [
|
|
81
87
|
"/app/system/instances/get",
|
|
82
|
-
"/app/system/clients/get"
|
|
88
|
+
"/app/system/clients/get",
|
|
89
|
+
"/app/system/hosts/get",
|
|
90
|
+
"/app/system/hosts/runtime",
|
|
91
|
+
"/app/system/hosts/claim"
|
|
83
92
|
]
|
|
84
93
|
}
|
|
85
94
|
}
|
package/manifest/routing.v1.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": "mhome.app-facade.routing.v1",
|
|
3
|
-
"contractVersion": "1.
|
|
3
|
+
"contractVersion": "1.18.0",
|
|
4
4
|
"targetPrefix": "/app/",
|
|
5
5
|
"default": {
|
|
6
6
|
"execution": "scopeMode",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"/app/object-storage/",
|
|
34
34
|
"/app/runtime/",
|
|
35
35
|
"/app/system/instances/",
|
|
36
|
-
"/app/system/clients/"
|
|
36
|
+
"/app/system/clients/",
|
|
37
|
+
"/app/system/hosts/"
|
|
37
38
|
],
|
|
38
39
|
"requestPlacementPrefixes": [
|
|
39
40
|
"/app/messaging/"
|
|
@@ -49,7 +50,10 @@
|
|
|
49
50
|
"/app/object-storage/folders/list",
|
|
50
51
|
"/app/object-storage/settings/update",
|
|
51
52
|
"/app/system/instances/get",
|
|
52
|
-
"/app/system/clients/get"
|
|
53
|
+
"/app/system/clients/get",
|
|
54
|
+
"/app/system/hosts/get",
|
|
55
|
+
"/app/system/hosts/runtime",
|
|
56
|
+
"/app/system/hosts/claim"
|
|
53
57
|
]
|
|
54
58
|
}
|
|
55
59
|
}
|
package/manifest/targets.v1.json
CHANGED
package/package.json
CHANGED
package/protocol.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocol": "mhome.app-facade",
|
|
3
|
-
"contractVersion": "1.
|
|
3
|
+
"contractVersion": "1.18.0",
|
|
4
4
|
"manifest": "manifest/app-facade.v1.json",
|
|
5
5
|
"schemas": {
|
|
6
6
|
"call": "schema/facade-call.v1.schema.json",
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"hubState": "schema/hub-state.v1.schema.json",
|
|
11
11
|
"localHubState": "schema/local-hub-state.v1.schema.json",
|
|
12
12
|
"systemClients": "schema/system-clients.v1.schema.json",
|
|
13
|
+
"systemHosts": "schema/system-hosts.v1.schema.json",
|
|
14
|
+
"systemHostsRuntime": "schema/system-hosts-runtime.v1.schema.json",
|
|
13
15
|
"systemInstances": "schema/system-instances.v1.schema.json",
|
|
14
16
|
"topology": "schema/topology.v1.schema.json",
|
|
15
17
|
"deviceTopology": "schema/device-topology.v1.schema.json"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"additionalProperties": false,
|
|
4
|
+
"required": [
|
|
5
|
+
"contract",
|
|
6
|
+
"scopeId",
|
|
7
|
+
"hostId",
|
|
8
|
+
"result"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"contract": {
|
|
12
|
+
"const": "mhome.system.hosts.runtime.v1"
|
|
13
|
+
},
|
|
14
|
+
"scopeId": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"hostId": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"result": {}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"additionalProperties": false,
|
|
4
|
+
"required": [
|
|
5
|
+
"contract",
|
|
6
|
+
"scopeId",
|
|
7
|
+
"observedAtMs",
|
|
8
|
+
"hosts"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"contract": {
|
|
12
|
+
"const": "mhome.system.hosts.v1"
|
|
13
|
+
},
|
|
14
|
+
"scopeId": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"observedAtMs": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"minimum": 0
|
|
20
|
+
},
|
|
21
|
+
"hosts": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"required": [
|
|
27
|
+
"hostId",
|
|
28
|
+
"hostName",
|
|
29
|
+
"hostType",
|
|
30
|
+
"source",
|
|
31
|
+
"reachable",
|
|
32
|
+
"claimable",
|
|
33
|
+
"info"
|
|
34
|
+
],
|
|
35
|
+
"properties": {
|
|
36
|
+
"hostId": {
|
|
37
|
+
"type": "string"
|
|
38
|
+
},
|
|
39
|
+
"hostName": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"hostType": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"source": {
|
|
46
|
+
"enum": [
|
|
47
|
+
"local",
|
|
48
|
+
"mdns"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"reachable": {
|
|
52
|
+
"type": "boolean"
|
|
53
|
+
},
|
|
54
|
+
"claimable": {
|
|
55
|
+
"type": "boolean"
|
|
56
|
+
},
|
|
57
|
+
"info": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"required": [
|
|
61
|
+
"status",
|
|
62
|
+
"data",
|
|
63
|
+
"observedAtMs",
|
|
64
|
+
"lastAttemptAtMs",
|
|
65
|
+
"stale",
|
|
66
|
+
"errorCode"
|
|
67
|
+
],
|
|
68
|
+
"properties": {
|
|
69
|
+
"status": {
|
|
70
|
+
"enum": [
|
|
71
|
+
"ok",
|
|
72
|
+
"unavailable",
|
|
73
|
+
"unsupported",
|
|
74
|
+
"notQueried"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"data": {
|
|
78
|
+
"anyOf": [
|
|
79
|
+
{
|
|
80
|
+
"type": "object",
|
|
81
|
+
"additionalProperties": false,
|
|
82
|
+
"required": [
|
|
83
|
+
"hostId",
|
|
84
|
+
"hostName",
|
|
85
|
+
"hostType",
|
|
86
|
+
"os",
|
|
87
|
+
"osVersion",
|
|
88
|
+
"cpu",
|
|
89
|
+
"memory",
|
|
90
|
+
"disk",
|
|
91
|
+
"gpus"
|
|
92
|
+
],
|
|
93
|
+
"properties": {
|
|
94
|
+
"hostId": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"hostName": {
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"hostType": {
|
|
101
|
+
"type": "string"
|
|
102
|
+
},
|
|
103
|
+
"os": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
},
|
|
106
|
+
"osVersion": {
|
|
107
|
+
"anyOf": [
|
|
108
|
+
{
|
|
109
|
+
"type": "string"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"type": "null"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"cpu": {
|
|
117
|
+
"type": "object",
|
|
118
|
+
"additionalProperties": false,
|
|
119
|
+
"required": [
|
|
120
|
+
"arch",
|
|
121
|
+
"logicalCores",
|
|
122
|
+
"model"
|
|
123
|
+
],
|
|
124
|
+
"properties": {
|
|
125
|
+
"arch": {
|
|
126
|
+
"type": "string"
|
|
127
|
+
},
|
|
128
|
+
"logicalCores": {
|
|
129
|
+
"type": "integer",
|
|
130
|
+
"minimum": 0
|
|
131
|
+
},
|
|
132
|
+
"model": {
|
|
133
|
+
"type": "string"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"memory": {
|
|
138
|
+
"type": "object",
|
|
139
|
+
"additionalProperties": false,
|
|
140
|
+
"required": [
|
|
141
|
+
"totalBytes"
|
|
142
|
+
],
|
|
143
|
+
"properties": {
|
|
144
|
+
"totalBytes": {
|
|
145
|
+
"type": "integer",
|
|
146
|
+
"minimum": 0
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"disk": {
|
|
151
|
+
"anyOf": [
|
|
152
|
+
{
|
|
153
|
+
"type": "object",
|
|
154
|
+
"additionalProperties": false,
|
|
155
|
+
"required": [
|
|
156
|
+
"totalBytes"
|
|
157
|
+
],
|
|
158
|
+
"properties": {
|
|
159
|
+
"totalBytes": {
|
|
160
|
+
"type": "integer",
|
|
161
|
+
"minimum": 0
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"type": "null"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
"gpus": {
|
|
171
|
+
"type": "array",
|
|
172
|
+
"items": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"additionalProperties": false,
|
|
175
|
+
"required": [
|
|
176
|
+
"vendor",
|
|
177
|
+
"name",
|
|
178
|
+
"memoryBytes"
|
|
179
|
+
],
|
|
180
|
+
"properties": {
|
|
181
|
+
"vendor": {
|
|
182
|
+
"type": "string"
|
|
183
|
+
},
|
|
184
|
+
"name": {
|
|
185
|
+
"type": "string"
|
|
186
|
+
},
|
|
187
|
+
"memoryBytes": {
|
|
188
|
+
"anyOf": [
|
|
189
|
+
{
|
|
190
|
+
"type": "integer",
|
|
191
|
+
"minimum": 0
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"type": "null"
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"type": "null"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"observedAtMs": {
|
|
209
|
+
"anyOf": [
|
|
210
|
+
{
|
|
211
|
+
"type": "integer",
|
|
212
|
+
"minimum": 0
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"type": "null"
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
"lastAttemptAtMs": {
|
|
220
|
+
"anyOf": [
|
|
221
|
+
{
|
|
222
|
+
"type": "integer",
|
|
223
|
+
"minimum": 0
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"type": "null"
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
},
|
|
230
|
+
"stale": {
|
|
231
|
+
"type": "boolean"
|
|
232
|
+
},
|
|
233
|
+
"errorCode": {
|
|
234
|
+
"anyOf": [
|
|
235
|
+
{
|
|
236
|
+
"type": "string"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "null"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|