@mhome/app-facade-protocol 1.117.0 → 1.118.1
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/developer-contracts-v1.md +40 -0
- package/manifest/app-facade.v1.json +14 -1
- package/manifest/authorization.v1.json +8 -6
- 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 +4 -2
- package/manifest/targets.v1.json +1 -1
- package/package.json +1 -1
- package/protocol.json +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Published standard capability contracts
|
|
2
|
+
|
|
3
|
+
`/app/developer/contracts/list` and `/app/developer/contracts/export` are read-only
|
|
4
|
+
Hub operations. The authenticated caller needs Space read access to reach its
|
|
5
|
+
online Hub. The Hub requests the matching `/bridge/schema/contracts/*` operation
|
|
6
|
+
from Lion using its existing authenticated connection. Space identity authorizes
|
|
7
|
+
and routes the request; it never chooses contract content. There is no direct
|
|
8
|
+
Client-to-cloud implementation of these operations.
|
|
9
|
+
|
|
10
|
+
Lion selects the latest complete, unarchived official production packages and
|
|
11
|
+
their necessary dependencies, including `base`. Space Beta settings, installed
|
|
12
|
+
versions, personal staging and local Preview do not participate. A missing or
|
|
13
|
+
invalid requested dependency fails the operation. Unrelated catalog packages are
|
|
14
|
+
not loaded. Sources are checked again before returning a result; a publication
|
|
15
|
+
change causes a bounded retry, then an explicit temporary-unavailable error.
|
|
16
|
+
|
|
17
|
+
List input is exactly `{ "integrationId": "basic.device" }`. The result contains
|
|
18
|
+
`integrationId`, `sourceSnapshot` and `capabilities`, with each capability's `id`,
|
|
19
|
+
`method`, `abstract` flag and `description` from the resolved compiler graph.
|
|
20
|
+
|
|
21
|
+
Export input contains `selected` (1..64 unique fully-qualified command/state/event/
|
|
22
|
+
data IDs) and optional lowercase SHA-256 `ifNoneMatch`. Unknown fields are rejected.
|
|
23
|
+
The result is either `{ "kind": "ready", "document": <export> }` or
|
|
24
|
+
`{ "kind": "unchanged", "sha256": <digest> }`. These are business results inside
|
|
25
|
+
the ordinary Facade response. The compiler-owned document keeps the
|
|
26
|
+
`meow-capability-contracts` version 1 format: compiler identity, exact source
|
|
27
|
+
inventory/digests, input snapshot, explicit selections, resolved contracts and
|
|
28
|
+
referenced types, plus its canonical result digest. It preserves inheritance,
|
|
29
|
+
main entity routing fields, request/result semantics, constraints and data
|
|
30
|
+
discovery dependencies. It executes no provider code or live business queries.
|
|
31
|
+
|
|
32
|
+
`ifNoneMatch` is only a transfer optimization: Lion first checks current official
|
|
33
|
+
sources, and may reuse immutable content and compiled/exported results. Cached
|
|
34
|
+
data is never a freshness fallback when the cloud cannot be reached. A digest is
|
|
35
|
+
a content identity, not a publication signature or operation grant.
|
|
36
|
+
|
|
37
|
+
Each business result is limited to 512 KiB so the ordinary envelopes remain below
|
|
38
|
+
the Client's 2 MiB WebSocket message budget. Over-limit queries fail explicitly;
|
|
39
|
+
request fewer capabilities. Export does not install a package, activate a source,
|
|
40
|
+
change provider configuration, or return runtime credentials/household data.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest": "mhome.app-facade.v1",
|
|
3
|
-
"contractVersion": "1.
|
|
3
|
+
"contractVersion": "1.118.1",
|
|
4
4
|
"callSchema": "schema/facade-call.v1.schema.json",
|
|
5
5
|
"routing": "manifest/routing.v1.json",
|
|
6
6
|
"routingSchema": "schema/routing.v1.schema.json",
|
|
@@ -412,6 +412,19 @@
|
|
|
412
412
|
"/app/billing/subscription/resume",
|
|
413
413
|
"/app/billing/subscription/change"
|
|
414
414
|
]
|
|
415
|
+
},
|
|
416
|
+
"developerContracts": {
|
|
417
|
+
"contract": "contract/developer-contracts-v1.md",
|
|
418
|
+
"requestTargets": [
|
|
419
|
+
"/app/developer/contracts/list",
|
|
420
|
+
"/app/developer/contracts/export"
|
|
421
|
+
],
|
|
422
|
+
"bridgeTargets": [
|
|
423
|
+
"/bridge/schema/contracts/list",
|
|
424
|
+
"/bridge/schema/contracts/export"
|
|
425
|
+
],
|
|
426
|
+
"owner": "cloudStandardCatalog",
|
|
427
|
+
"transport": "authorizedHub"
|
|
415
428
|
}
|
|
416
429
|
},
|
|
417
430
|
"authorization": "manifest/authorization.v1.json",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "1.
|
|
2
|
+
"contractVersion": "1.118.1",
|
|
3
3
|
"operations": {
|
|
4
4
|
"/app/agent/context/get": "spaceRead",
|
|
5
5
|
"/app/agent/credit/usage": "spaceRead",
|
|
@@ -48,6 +48,10 @@
|
|
|
48
48
|
"/app/automation/verify": "spaceWrite",
|
|
49
49
|
"/app/billing/credit/usage": "userRead",
|
|
50
50
|
"/app/billing/payment/list": "userRead",
|
|
51
|
+
"/app/billing/subscription/cancel": "userWrite",
|
|
52
|
+
"/app/billing/subscription/change": "userWrite",
|
|
53
|
+
"/app/billing/subscription/checkout/create": "userWrite",
|
|
54
|
+
"/app/billing/subscription/resume": "userWrite",
|
|
51
55
|
"/app/billing/summary/get": "userRead",
|
|
52
56
|
"/app/capability/invoke": "spaceWrite",
|
|
53
57
|
"/app/capability/invoke/json": "spaceWrite",
|
|
@@ -73,6 +77,8 @@
|
|
|
73
77
|
"/app/dashboard/card/list": "spaceRead",
|
|
74
78
|
"/app/dashboard/card/main-view/update": "spaceWrite",
|
|
75
79
|
"/app/dashboard/card/move": "spaceWrite",
|
|
80
|
+
"/app/developer/contracts/export": "spaceRead",
|
|
81
|
+
"/app/developer/contracts/list": "spaceRead",
|
|
76
82
|
"/app/device/activity/recent/list": "spaceRead",
|
|
77
83
|
"/app/device/detail/get": "spaceRead",
|
|
78
84
|
"/app/device/disable": "spaceWrite",
|
|
@@ -353,11 +359,7 @@
|
|
|
353
359
|
"/pod/talk/request/get": "spaceRead",
|
|
354
360
|
"/pod/talk/speech/prepare": "spaceWrite",
|
|
355
361
|
"/pod/talk/turn/submit": "spaceWrite",
|
|
356
|
-
"/pod/talk/view/get": "spaceRead"
|
|
357
|
-
"/app/billing/subscription/checkout/create": "userWrite",
|
|
358
|
-
"/app/billing/subscription/cancel": "userWrite",
|
|
359
|
-
"/app/billing/subscription/resume": "userWrite",
|
|
360
|
-
"/app/billing/subscription/change": "userWrite"
|
|
362
|
+
"/pod/talk/view/get": "spaceRead"
|
|
361
363
|
},
|
|
362
364
|
"nodePrefix": "/app/plugin/",
|
|
363
365
|
"serviceOperations": [
|
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.118.1",
|
|
4
4
|
"targetPrefix": "/app/",
|
|
5
5
|
"default": {
|
|
6
6
|
"execution": "scopeMode"
|
|
@@ -90,7 +90,9 @@
|
|
|
90
90
|
"/app/hub/restart",
|
|
91
91
|
"/app/hub/status",
|
|
92
92
|
"/app/integration/preview/apply",
|
|
93
|
-
"/app/integration/preview/status"
|
|
93
|
+
"/app/integration/preview/status",
|
|
94
|
+
"/app/developer/contracts/list",
|
|
95
|
+
"/app/developer/contracts/export"
|
|
94
96
|
],
|
|
95
97
|
"connectionTargets": [
|
|
96
98
|
"/app/client/space/focus"
|
package/manifest/targets.v1.json
CHANGED
package/package.json
CHANGED