@mhome/app-facade-protocol 1.125.0 → 1.126.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/contract/space-presentation-v1.md +13 -3
- package/fixtures/authorization/decisions.json +4 -4
- package/fixtures/routing/cases.json +4 -4
- package/manifest/app-facade.v1.json +8 -3
- package/manifest/authorization.v1.json +2 -2
- package/manifest/host-provision-targets.v1.json +1 -1
- package/manifest/hub-targets.v1.json +1 -1
- package/manifest/pod-targets.v1.json +1 -1
- package/manifest/routing.v1.json +2 -2
- package/manifest/targets.v1.json +1 -1
- package/package.json +1 -1
- package/protocol.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Space presentation and focused business readers
|
|
2
2
|
|
|
3
3
|
All calls use the standard App Facade envelope. These presentation targets are
|
|
4
|
-
UI reads, not Agent tools.
|
|
4
|
+
UI reads, not Agent tools. List/get execute in the cloud and require user identity;
|
|
5
|
+
the Location reader follows Space mode.
|
|
5
6
|
|
|
6
7
|
- `/app/presentation/space/list` accepts `{}` and returns `{spaces}`. Each item
|
|
7
8
|
has `spaceId`, `name`, `mode`, `llmMode`, `betaMode`, `defaultActive`,
|
|
@@ -13,11 +14,14 @@ UI reads, not Agent tools. They execute in the cloud and require user identity.
|
|
|
13
14
|
Only `includeMembers:true` reads the Space membership list and member profiles.
|
|
14
15
|
Each member has `userId`, `email`, `name`, `pending` and `role`. Active members
|
|
15
16
|
may read this presentation; management mutations still require their own grants.
|
|
16
|
-
- `/app/space/location/list` accepts `{}` and returns `{locations}`. Each Location
|
|
17
|
+
- `/app/presentation/space/location/list` accepts `{}` and returns `{locations}`. Each Location
|
|
17
18
|
has `spaceId`, `locationId`, `name`, `address`, `timezone`, `countryCode`,
|
|
18
19
|
`latitude`, `longitude`, and `altitude`. It executes according to Space mode,
|
|
19
20
|
reading only the authoritative backend's Locations; it does not read Space
|
|
20
21
|
details, members or preferences and has no cloud fallback in local mode.
|
|
22
|
+
|
|
23
|
+
## Shared Space management
|
|
24
|
+
|
|
21
25
|
- `/app/space/delete/status` accepts `{operationId}` and returns `accepted`,
|
|
22
26
|
`operationId`, `spaceId`, `state`, `message`, and `deleted`. It queries the
|
|
23
27
|
existing durable operation and never starts or restarts deletion. Authorization
|
|
@@ -25,13 +29,19 @@ UI reads, not Agent tools. They execute in the cloud and require user identity.
|
|
|
25
29
|
of membership and Space data. The request retains the operation's Space ID.
|
|
26
30
|
- `/app/space/beta/update` accepts `{betaMode: boolean}` and returns
|
|
27
31
|
`{betaMode, poll}`. It saves through the existing Space Beta service. A true
|
|
28
|
-
`poll` means the
|
|
32
|
+
`poll` means the Hub has not yet been verified to apply the selected mode.
|
|
33
|
+
This owner-only business mutation is shared by UI, native Agent/Skill, MCP
|
|
34
|
+
and CLI. A local Space may restart and interrupt running operations. The
|
|
35
|
+
receipt confirms the saved selection; it never proves Hub restart completion.
|
|
29
36
|
|
|
30
37
|
Invitation accept/reject remain membership operations and never select a Client's
|
|
31
38
|
Space. The UI explicitly uses the connection focus protocol after joining when
|
|
32
39
|
its flow intends to enter the joined Space. Current-Space switches must not be
|
|
33
40
|
discarded by the previous Space's request guard.
|
|
34
41
|
|
|
42
|
+
The retired `/app/space/location/list` has no compatibility alias. The UI uses
|
|
43
|
+
`/app/presentation/space/location/list`; no independent Agent/MCP/CLI reader is exposed.
|
|
44
|
+
|
|
35
45
|
Client handling of presentation replies unwraps successful Full Facade responses
|
|
36
46
|
before updating cloud-authoritative membership/connection caches. Presentation
|
|
37
47
|
wire DTOs (`spaceId`, `llmMode`) are explicitly projected into native state;
|
|
@@ -864,7 +864,7 @@
|
|
|
864
864
|
"allowed": false
|
|
865
865
|
},
|
|
866
866
|
{
|
|
867
|
-
"name": "space-ui:MEMBER:/app/space/location/list",
|
|
867
|
+
"name": "space-ui:MEMBER:/app/presentation/space/location/list",
|
|
868
868
|
"principal": {
|
|
869
869
|
"kind": "user",
|
|
870
870
|
"userId": "user"
|
|
@@ -872,11 +872,11 @@
|
|
|
872
872
|
"memberRole": "MEMBER",
|
|
873
873
|
"tenantId": "tenant",
|
|
874
874
|
"spaceId": "space",
|
|
875
|
-
"target": "/app/space/location/list",
|
|
875
|
+
"target": "/app/presentation/space/location/list",
|
|
876
876
|
"allowed": true
|
|
877
877
|
},
|
|
878
878
|
{
|
|
879
|
-
"name": "space-ui:unscoped:/app/space/location/list",
|
|
879
|
+
"name": "space-ui:unscoped:/app/presentation/space/location/list",
|
|
880
880
|
"principal": {
|
|
881
881
|
"kind": "user",
|
|
882
882
|
"userId": "user"
|
|
@@ -884,7 +884,7 @@
|
|
|
884
884
|
"memberRole": null,
|
|
885
885
|
"tenantId": "tenant",
|
|
886
886
|
"spaceId": "space",
|
|
887
|
-
"target": "/app/space/location/list",
|
|
887
|
+
"target": "/app/presentation/space/location/list",
|
|
888
888
|
"allowed": false
|
|
889
889
|
},
|
|
890
890
|
{
|
|
@@ -768,7 +768,7 @@
|
|
|
768
768
|
"entry": "unavailable"
|
|
769
769
|
},
|
|
770
770
|
{
|
|
771
|
-
"target": "/app/space/location/list",
|
|
771
|
+
"target": "/app/presentation/space/location/list",
|
|
772
772
|
"execution": "spaceMode",
|
|
773
773
|
"placement": null,
|
|
774
774
|
"hubReady": true,
|
|
@@ -776,7 +776,7 @@
|
|
|
776
776
|
"entry": "hub"
|
|
777
777
|
},
|
|
778
778
|
{
|
|
779
|
-
"target": "/app/space/location/list",
|
|
779
|
+
"target": "/app/presentation/space/location/list",
|
|
780
780
|
"execution": "spaceMode",
|
|
781
781
|
"placement": null,
|
|
782
782
|
"hubReady": true,
|
|
@@ -784,7 +784,7 @@
|
|
|
784
784
|
"entry": "hub"
|
|
785
785
|
},
|
|
786
786
|
{
|
|
787
|
-
"target": "/app/space/location/list",
|
|
787
|
+
"target": "/app/presentation/space/location/list",
|
|
788
788
|
"execution": "spaceMode",
|
|
789
789
|
"placement": null,
|
|
790
790
|
"hubReady": false,
|
|
@@ -792,7 +792,7 @@
|
|
|
792
792
|
"entry": "cloud"
|
|
793
793
|
},
|
|
794
794
|
{
|
|
795
|
-
"target": "/app/space/location/list",
|
|
795
|
+
"target": "/app/presentation/space/location/list",
|
|
796
796
|
"execution": "spaceMode",
|
|
797
797
|
"placement": null,
|
|
798
798
|
"hubReady": false,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": "mhome.app-facade.v1",
|
|
3
|
-
"contractVersion": "1.
|
|
3
|
+
"contractVersion": "1.126.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",
|
|
@@ -331,9 +331,14 @@
|
|
|
331
331
|
"requestTargets": [
|
|
332
332
|
"/app/presentation/space/list",
|
|
333
333
|
"/app/presentation/space/get",
|
|
334
|
+
"/app/presentation/space/location/list"
|
|
335
|
+
]
|
|
336
|
+
},
|
|
337
|
+
"spaceManagement": {
|
|
338
|
+
"contract": "contract/space-presentation-v1.md",
|
|
339
|
+
"requestTargets": [
|
|
334
340
|
"/app/space/delete/status",
|
|
335
|
-
"/app/space/beta/update"
|
|
336
|
-
"/app/space/location/list"
|
|
341
|
+
"/app/space/beta/update"
|
|
337
342
|
]
|
|
338
343
|
},
|
|
339
344
|
"automationPresentation": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "1.
|
|
2
|
+
"contractVersion": "1.126.0",
|
|
3
3
|
"operations": {
|
|
4
4
|
"/app/agent/context/get": "spaceRead",
|
|
5
5
|
"/app/agent/credit/usage": "spaceRead",
|
|
@@ -274,7 +274,7 @@
|
|
|
274
274
|
"/app/space/list": "userRead",
|
|
275
275
|
"/app/space/location/create": "spaceManage",
|
|
276
276
|
"/app/space/location/delete": "spaceManage",
|
|
277
|
-
"/app/space/location/list": "spaceRead",
|
|
277
|
+
"/app/presentation/space/location/list": "spaceRead",
|
|
278
278
|
"/app/space/location/search": "userRead",
|
|
279
279
|
"/app/space/location/update": "spaceManage",
|
|
280
280
|
"/app/space/member/invite": "spaceManage",
|
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.126.0",
|
|
4
4
|
"targetPrefix": "/app/",
|
|
5
5
|
"default": {
|
|
6
6
|
"execution": "spaceMode"
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"/app/host/service/restart",
|
|
74
74
|
"/app/pod/list",
|
|
75
75
|
"/app/now/attention/list",
|
|
76
|
-
"/app/space/location/list",
|
|
76
|
+
"/app/presentation/space/location/list",
|
|
77
77
|
"/app/trace/get"
|
|
78
78
|
],
|
|
79
79
|
"hubPrefixes": [
|
package/manifest/targets.v1.json
CHANGED
package/package.json
CHANGED