@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.
@@ -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. They execute in the cloud and require user identity.
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 Client must wait for the Hub to apply the selected mode.
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.125.0",
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.125.0",
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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.host-provision.targets.v1",
3
- "contractVersion": "1.125.0",
3
+ "contractVersion": "1.126.0",
4
4
  "contract": "contract/host-provisioning-v1.md",
5
5
  "localTargets": [
6
6
  "/local/host/provision/start",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.hub.targets.v1",
3
- "contractVersion": "1.125.0",
3
+ "contractVersion": "1.126.0",
4
4
  "appTargets": [
5
5
  "/app/hub/get",
6
6
  "/app/hub/remove",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.pod.targets.v1",
3
- "contractVersion": "1.125.0",
3
+ "contractVersion": "1.126.0",
4
4
  "contract": "contract/pod-commissioning-v1.md",
5
5
  "localTargets": [
6
6
  "/local/pod/discovery/start",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.routing.v1",
3
- "contractVersion": "1.125.0",
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": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.messaging.targets.v1",
3
- "contractVersion": "1.125.0",
3
+ "contractVersion": "1.126.0",
4
4
  "requestTargets": [
5
5
  "/app/messaging/provider/list",
6
6
  "/app/messaging/provider-account/list",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhome/app-facade-protocol",
3
- "version": "1.125.0",
3
+ "version": "1.126.0",
4
4
  "description": "Build-time protocol artifacts for mhome.app-facade",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/protocol.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "protocol": "mhome.app-facade",
3
- "contractVersion": "1.125.0",
3
+ "contractVersion": "1.126.0",
4
4
  "manifest": "manifest/app-facade.v1.json",
5
5
  "schemas": {
6
6
  "storage": "schema/storage.v1.schema.json",