@mhome/app-facade-protocol 1.8.0 → 1.10.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 CHANGED
@@ -65,3 +65,26 @@ supervise Hub and Node processes, but it is not a public App Facade executor;
65
65
  Host process management remains an implementation detail behind the selected
66
66
  Hub. Lion's legacy controller annotations and non-`/app/*` protocols are
67
67
  outside this contract.
68
+
69
+ ### System plugin catalog
70
+
71
+ `/app/plugin/catalog/list` returns `manifest/plugin-catalog.v1.json` from Cloud,
72
+ without requiring a local Space or connected Hub. Authentication and Space
73
+ membership still apply. Core also serves this catalog for clients with an older
74
+ routing manifest. The response schema is `schema/plugin-catalog.v1.schema.json`.
75
+
76
+ The catalog describes supported types, not installed software or bindings.
77
+ `componentId` joins to Host runtime inspection; `nodeType` joins to existing
78
+ Plugin candidate and installed/binding queries. Platform installability and
79
+ versions come from the Host release catalog, not this directory. Host inventory
80
+ is a native management API, not a portable App Facade executor.
81
+
82
+ Core and Cloud embed generated copies. After editing the catalog, run
83
+ `node scripts/sync-plugin-catalog.mjs --write <core-resource> <cloud-resource>`
84
+ from the Foundation root; omit `--write` to check conformance. Resource paths are
85
+ `src/application/plugin-catalog.v1.json` (Core) and
86
+ `src/main/resources/app/plugin-catalog.v1.json` (Cloud module-service).
87
+
88
+ ## Shared messaging codes (1.10)
89
+
90
+ Code creation may omit bot/account and group/surface identifiers. The receiving authenticated provider determines the bot; shared candidates are confirmed in the App. The existing actor link claim status/confirm/event endpoints carry both kinds, distinguished by `kind` (`link` by default, or `bind`). Bind code responses include `challengeId`; completed bind claims omit `linkId`. Private link completes on receipt. A code is single-use within its provider and service deployment, never a cross-provider or cross-Hub credential.
@@ -0,0 +1,9 @@
1
+ {
2
+ "target": "/app/messaging/surface/bind-code/create",
3
+ "direction": "request",
4
+ "body": {
5
+ "provider": "feishu",
6
+ "placement": "local",
7
+ "scopeId": "scope_a"
8
+ }
9
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "target": "/app/messaging/actor/link-code/create",
3
+ "direction": "request",
4
+ "body": {
5
+ "provider": "telegram",
6
+ "placement": "local",
7
+ "target": {
8
+ "audience": "shared"
9
+ }
10
+ }
11
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.v1",
3
- "contractVersion": "1.8.0",
3
+ "contractVersion": "1.10.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",
@@ -20,7 +20,10 @@
20
20
  "plugin": {
21
21
  "extensionVersion": "v1",
22
22
  "targetPrefix": "/app/plugin",
23
+ "catalog": "manifest/plugin-catalog.v1.json",
24
+ "catalogSchema": "schema/plugin-catalog.v1.schema.json",
23
25
  "exactRequestTargets": [
26
+ "/app/plugin/catalog/list",
24
27
  "/app/plugin/installed/list",
25
28
  "/app/plugin/detail/get",
26
29
  "/app/plugin/candidate/list",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.routing.v1",
3
- "contractVersion": "1.8.0",
3
+ "contractVersion": "1.10.0",
4
4
  "targetPrefix": "/app/",
5
5
  "default": {
6
6
  "execution": "scopeMode",
@@ -19,6 +19,7 @@
19
19
  "/app/hub/cache/clear",
20
20
  "/app/hub/get",
21
21
  "/app/hub/remove",
22
+ "/app/plugin/catalog/list",
22
23
  "/app/system/feedback/submit",
23
24
  "/app/timeline/entity/latest/list"
24
25
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.messaging.targets.v1",
3
- "contractVersion": "1.8.0",
3
+ "contractVersion": "1.10.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.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "Build-time protocol artifacts for mhome.app-facade",
5
5
  "license": "MIT",
6
6
  "repository": {
package/protocol.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "protocol": "mhome.app-facade",
3
- "contractVersion": "1.8.0",
3
+ "contractVersion": "1.10.0",
4
4
  "manifest": "manifest/app-facade.v1.json",
5
5
  "schemas": {
6
6
  "call": "schema/facade-call.v1.schema.json",
@@ -663,6 +663,9 @@
663
663
  "expiresAtMs": {
664
664
  "type": "integer",
665
665
  "minimum": 0
666
+ },
667
+ "challengeId": {
668
+ "$ref": "#/$defs/id"
666
669
  }
667
670
  }
668
671
  },
@@ -1054,7 +1057,6 @@
1054
1057
  "required": [
1055
1058
  "provider",
1056
1059
  "placement",
1057
- "surfaceId",
1058
1060
  "scopeId"
1059
1061
  ],
1060
1062
  "properties": {
@@ -1078,7 +1080,6 @@
1078
1080
  "required": [
1079
1081
  "provider",
1080
1082
  "placement",
1081
- "accountId",
1082
1083
  "target"
1083
1084
  ],
1084
1085
  "properties": {
@@ -2305,8 +2306,7 @@
2305
2306
  "type": "object",
2306
2307
  "additionalProperties": false,
2307
2308
  "required": [
2308
- "audience",
2309
- "surfaceId"
2309
+ "audience"
2310
2310
  ],
2311
2311
  "properties": {
2312
2312
  "audience": {
@@ -2396,7 +2396,6 @@
2396
2396
  "challengeId",
2397
2397
  "provider",
2398
2398
  "placement",
2399
- "accountId",
2400
2399
  "target",
2401
2400
  "expiresAtMs",
2402
2401
  "lifecycle"
@@ -2423,6 +2422,12 @@
2423
2422
  },
2424
2423
  "lifecycle": {
2425
2424
  "$ref": "#/$defs/actorLinkClaimLifecycle"
2425
+ },
2426
+ "kind": {
2427
+ "enum": [
2428
+ "link",
2429
+ "bind"
2430
+ ]
2426
2431
  }
2427
2432
  }
2428
2433
  },
@@ -2662,8 +2667,7 @@
2662
2667
  "additionalProperties": false,
2663
2668
  "required": [
2664
2669
  "state",
2665
- "candidate",
2666
- "linkId"
2670
+ "candidate"
2667
2671
  ],
2668
2672
  "properties": {
2669
2673
  "state": {