@mhome/app-facade-protocol 1.45.0 → 1.46.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.
Files changed (67) hide show
  1. package/README.md +12 -7
  2. package/contract/card-skins-v1.md +138 -0
  3. package/fixtures/actor-link-code-create.request.json +2 -5
  4. package/fixtures/actor-link-code-create.response.json +1 -1
  5. package/fixtures/actor-link-delete.request.json +7 -1
  6. package/fixtures/actor-link-delete.response.json +7 -1
  7. package/fixtures/actor-link-list.request.json +5 -1
  8. package/fixtures/actor-link-list.response.json +18 -1
  9. package/fixtures/authorization/decisions.json +36 -0
  10. package/fixtures/bind-code-create.request.json +5 -0
  11. package/fixtures/{surface-bind-code-create.response.json → bind-code-create.response.json} +1 -1
  12. package/fixtures/binding-list.request.json +5 -0
  13. package/fixtures/binding-list.response.json +18 -0
  14. package/fixtures/card-skins/space.json +79 -0
  15. package/fixtures/identity-code-failed.response.json +1 -2
  16. package/fixtures/identity-code-status.request.json +7 -1
  17. package/fixtures/identity-code-status.response.json +1 -2
  18. package/fixtures/interaction-flow.conformance.json +15 -5
  19. package/fixtures/provider-account-delete.response.json +3 -1
  20. package/fixtures/provider-account-list.request.json +4 -1
  21. package/fixtures/provider-account-status.request.json +4 -1
  22. package/fixtures/provider-account-status.response.json +4 -2
  23. package/fixtures/provider-account-test.request.json +7 -1
  24. package/fixtures/provider-account-test.response.json +5 -1
  25. package/fixtures/provider-account-update.request.json +3 -1
  26. package/fixtures/provider-list.request.json +4 -1
  27. package/fixtures/provider-list.response.json +20 -5
  28. package/fixtures/route-delete.request.json +5 -1
  29. package/fixtures/route-delete.response.json +3 -1
  30. package/fixtures/route-list.request.json +5 -1
  31. package/fixtures/route-list.response.json +4 -3
  32. package/fixtures/route-update.request.json +4 -2
  33. package/fixtures/route-update.response.json +4 -2
  34. package/fixtures/routing/cases.json +450 -0
  35. package/fixtures/setup-options.request.json +4 -1
  36. package/fixtures/setup-options.response.json +5 -1
  37. package/fixtures/setup-start.request.json +3 -1
  38. package/fixtures/setup-start.response.json +3 -1
  39. package/fixtures/setup-status.request.json +5 -1
  40. package/fixtures/shared-account-grant-create.request.json +5 -1
  41. package/fixtures/shared-account-grant-create.response.json +3 -1
  42. package/fixtures/shared-account-grant-delete.request.json +5 -1
  43. package/fixtures/shared-account-grant-delete.response.json +3 -1
  44. package/fixtures/shared-account-grant-list.request.json +5 -1
  45. package/fixtures/shared-account-grant-list.response.json +10 -1
  46. package/fixtures/shared-code-bind-create.request.json +2 -6
  47. package/fixtures/shared-code-link-create.request.json +2 -5
  48. package/fixtures/unbind.request.json +7 -0
  49. package/fixtures/unbind.response.json +7 -0
  50. package/manifest/app-facade.v1.json +52 -2
  51. package/manifest/host-provision-targets.v1.json +1 -1
  52. package/manifest/hub-targets.v1.json +1 -1
  53. package/manifest/pod-targets.v1.json +1 -1
  54. package/manifest/routing.v1.json +19 -37
  55. package/manifest/targets.v1.json +16 -18
  56. package/package.json +1 -1
  57. package/protocol.json +3 -1
  58. package/schema/card-skin-package.v1.schema.json +238 -0
  59. package/schema/card-skins.v1.schema.json +537 -0
  60. package/schema/messaging-frame.v3.schema.json +233 -373
  61. package/schema/routing.v1.schema.json +37 -14
  62. package/fixtures/identity-code-event.response.json +0 -33
  63. package/fixtures/surface-bind-code-create.request.json +0 -9
  64. package/fixtures/surface-dismiss.request.json +0 -1
  65. package/fixtures/surface-dismiss.response.json +0 -1
  66. package/fixtures/surface-list.request.json +0 -1
  67. package/fixtures/surface-list.response.json +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.v1",
3
- "contractVersion": "1.45.0",
3
+ "contractVersion": "1.46.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",
@@ -44,7 +44,6 @@
44
44
  "/app/plugin/candidate/list",
45
45
  "/app/plugin/enable/start",
46
46
  "/app/plugin/enable/status",
47
- "/app/plugin/enable/cancel",
48
47
  "/app/plugin/disable",
49
48
  "/app/plugin/profile/update"
50
49
  ],
@@ -152,6 +151,57 @@
152
151
  "firstClaimTransport": "directLanOnly",
153
152
  "authorizationTarget": "/app/host/authorization",
154
153
  "authorizationSchema": "schema/host-authorization.v1.schema.json"
154
+ },
155
+ "clientAppearance": {
156
+ "schema": "schema/client-appearance.v1.schema.json",
157
+ "requestTargets": [
158
+ "/app/client/appearance/report"
159
+ ],
160
+ "owner": "authenticatedClient",
161
+ "persistence": "none"
162
+ },
163
+ "clientPage": {
164
+ "schema": "schema/client-page.v1.schema.json",
165
+ "requestTargets": [
166
+ "/app/client/page/report"
167
+ ],
168
+ "owner": "authenticatedClient",
169
+ "persistence": "none"
170
+ },
171
+ "cardSkins": {
172
+ "contract": "contract/card-skins-v1.md",
173
+ "packageSchema": "schema/card-skin-package.v1.schema.json",
174
+ "requestSchema": "schema/card-skins.v1.schema.json",
175
+ "requests": {
176
+ "/app/card-skins/catalog/package/get": "#/definitions/packageGet",
177
+ "/app/card-skins/catalog/package/create": "#/definitions/packageCreate",
178
+ "/app/card-skins/catalog/package/update": "#/definitions/packageUpdate",
179
+ "/app/card-skins/catalog/release/list": "#/definitions/packageGet",
180
+ "/app/card-skins/catalog/release/get": "#/definitions/releaseGet",
181
+ "/app/card-skins/catalog/publish/prepare": "#/definitions/publishPrepare",
182
+ "/app/card-skins/catalog/publish/complete": "#/definitions/publishComplete",
183
+ "/app/card-skins/selection/get": "#/definitions/empty",
184
+ "/app/card-skins/install": "#/definitions/install",
185
+ "/app/card-skins/uninstall": "#/definitions/uninstall",
186
+ "/app/card-skins/upgrade": "#/definitions/upgrade",
187
+ "/app/card-skins/override/set": "#/definitions/overrideSet",
188
+ "/app/card-skins/override/reset": "#/definitions/overrideReset"
189
+ },
190
+ "responses": {
191
+ "/app/card-skins/catalog/package/get": "#/definitions/packageSnapshot",
192
+ "/app/card-skins/catalog/package/create": "#/definitions/empty",
193
+ "/app/card-skins/catalog/package/update": "#/definitions/empty",
194
+ "/app/card-skins/catalog/release/list": "#/definitions/releaseList",
195
+ "/app/card-skins/catalog/release/get": "#/definitions/release",
196
+ "/app/card-skins/catalog/publish/prepare": "#/definitions/prepared",
197
+ "/app/card-skins/catalog/publish/complete": "#/definitions/release",
198
+ "/app/card-skins/selection/get": "#/definitions/selectionView",
199
+ "/app/card-skins/install": "#/definitions/empty",
200
+ "/app/card-skins/uninstall": "#/definitions/empty",
201
+ "/app/card-skins/upgrade": "#/definitions/empty",
202
+ "/app/card-skins/override/set": "#/definitions/empty",
203
+ "/app/card-skins/override/reset": "#/definitions/empty"
204
+ }
155
205
  }
156
206
  },
157
207
  "authorization": "manifest/authorization.v1.json",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.host-provision.targets.v1",
3
- "contractVersion": "1.45.0",
3
+ "contractVersion": "1.46.1",
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.45.0",
3
+ "contractVersion": "1.46.1",
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.45.0",
3
+ "contractVersion": "1.46.1",
4
4
  "contract": "contract/pod-commissioning-v1.md",
5
5
  "localTargets": [
6
6
  "/local/pod/discovery/start",
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.routing.v1",
3
- "contractVersion": "1.45.0",
3
+ "contractVersion": "1.46.1",
4
4
  "targetPrefix": "/app/",
5
5
  "default": {
6
- "execution": "scopeMode",
7
- "relay": "directOnly"
6
+ "execution": "scopeMode"
8
7
  },
9
8
  "matching": "exactBeforePrefix",
10
9
  "placementJsonPointer": "/input/placement",
@@ -12,10 +11,12 @@
12
11
  "cloudPrefixes": [
13
12
  "/app/scope/",
14
13
  "/app/inspire/",
15
- "/app/user/"
14
+ "/app/user/",
15
+ "/app/card-skins/catalog/"
16
16
  ],
17
17
  "cloudTargets": [
18
18
  "/app/agent/context/get",
19
+ "/app/agent/credit/usage",
19
20
  "/app/hub/cache/clear",
20
21
  "/app/hub/get",
21
22
  "/app/hub/remove",
@@ -23,7 +24,14 @@
23
24
  "/app/system/feedback/submit",
24
25
  "/app/timeline/entity/latest/list",
25
26
  "/app/host/access/issue",
26
- "/app/host/authorization"
27
+ "/app/host/authorization",
28
+ "/app/messaging/link/code/create",
29
+ "/app/messaging/link/list",
30
+ "/app/messaging/unlink",
31
+ "/app/messaging/code/status",
32
+ "/app/messaging/binding/list",
33
+ "/app/messaging/bind/code/create",
34
+ "/app/messaging/unbind"
27
35
  ],
28
36
  "scopeModeTargets": [
29
37
  "/app/artifact/resolve",
@@ -33,50 +41,24 @@
33
41
  "/app/artifact/delete",
34
42
  "/app/artifact/upload/start",
35
43
  "/app/artifact/upload/complete",
36
- "/app/artifact/upload/cancel"
44
+ "/app/artifact/upload/cancel",
45
+ "/app/system/instances/get",
46
+ "/app/system/clients/get"
37
47
  ],
38
48
  "hubPrefixes": [
39
49
  "/app/plugin/",
40
50
  "/app/interaction-flow/",
41
51
  "/app/object-storage/",
42
52
  "/app/runtime/",
43
- "/app/system/instances/",
44
- "/app/system/clients/",
45
53
  "/app/system/hosts/",
46
54
  "/app/person/"
47
55
  ],
48
56
  "requestPlacementPrefixes": [
49
57
  "/app/messaging/"
50
58
  ],
51
- "cloudRelayTargets": [
52
- "/app/plugin/candidate/list",
53
- "/app/plugin/detail/get",
54
- "/app/plugin/enabled/list",
55
- "/app/object-storage/overview",
56
- "/app/object-storage/folders/create",
57
- "/app/object-storage/folders/get",
58
- "/app/object-storage/folders/update",
59
- "/app/object-storage/folders/list",
60
- "/app/object-storage/settings/update",
61
- "/app/system/instances/get",
62
- "/app/system/clients/get",
63
- "/app/system/hosts/get",
64
- "/app/system/hosts/runtime",
65
- "/app/person/summary-images/batch-get",
66
- "/app/person/status",
67
- "/app/person/list",
68
- "/app/person/get",
69
- "/app/person/reset",
70
- "/app/person/clusters/list",
71
- "/app/person/clusters/image",
72
- "/app/person/backup/export",
73
- "/app/person/backup/read",
74
- "/app/person/backup/close",
75
- "/app/person/backup/import/start",
76
- "/app/person/backup/import/write",
77
- "/app/person/backup/import/commit",
78
- "/app/person/clusters/name",
79
- "/app/person/clusters/delete"
59
+ "hubTargets": [
60
+ "/app/hub/restart",
61
+ "/app/hub/status"
80
62
  ]
81
63
  }
82
64
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.messaging.targets.v1",
3
- "contractVersion": "1.45.0",
3
+ "contractVersion": "1.46.1",
4
4
  "requestTargets": [
5
5
  "/app/messaging/provider/list",
6
6
  "/app/messaging/provider-account/list",
@@ -19,13 +19,13 @@
19
19
  "/app/messaging/setup/status",
20
20
  "/app/messaging/setup/submit",
21
21
  "/app/messaging/setup/cancel",
22
- "/app/messaging/surface/list",
23
- "/app/messaging/surface/dismiss",
24
- "/app/messaging/surface/bind-code/create",
25
- "/app/messaging/actor/link-code/create",
26
- "/app/messaging/identity-code/status",
27
- "/app/messaging/actor/link/list",
28
- "/app/messaging/actor/link/delete"
22
+ "/app/messaging/unbind",
23
+ "/app/messaging/binding/list",
24
+ "/app/messaging/bind/code/create",
25
+ "/app/messaging/link/code/create",
26
+ "/app/messaging/code/status",
27
+ "/app/messaging/link/list",
28
+ "/app/messaging/unlink"
29
29
  ],
30
30
  "responseTargets": [
31
31
  "/app/messaging/provider/list",
@@ -45,15 +45,13 @@
45
45
  "/app/messaging/setup/status",
46
46
  "/app/messaging/setup/submit",
47
47
  "/app/messaging/setup/cancel",
48
- "/app/messaging/surface/list",
49
- "/app/messaging/surface/dismiss",
50
- "/app/messaging/surface/bind-code/create",
51
- "/app/messaging/actor/link-code/create",
52
- "/app/messaging/identity-code/status",
53
- "/app/messaging/actor/link/list",
54
- "/app/messaging/actor/link/delete"
48
+ "/app/messaging/unbind",
49
+ "/app/messaging/binding/list",
50
+ "/app/messaging/bind/code/create",
51
+ "/app/messaging/link/code/create",
52
+ "/app/messaging/code/status",
53
+ "/app/messaging/link/list",
54
+ "/app/messaging/unlink"
55
55
  ],
56
- "eventTargets": [
57
- "/app/messaging/identity-code/changed"
58
- ]
56
+ "eventTargets": []
59
57
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhome/app-facade-protocol",
3
- "version": "1.45.0",
3
+ "version": "1.46.1",
4
4
  "description": "Build-time protocol artifacts for mhome.app-facade",
5
5
  "license": "MIT",
6
6
  "repository": {
package/protocol.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "protocol": "mhome.app-facade",
3
- "contractVersion": "1.45.0",
3
+ "contractVersion": "1.46.1",
4
4
  "manifest": "manifest/app-facade.v1.json",
5
5
  "schemas": {
6
6
  "hostAuthorization": "schema/host-authorization.v1.schema.json",
7
7
  "hostAccess": "schema/host-access.v1.schema.json",
8
8
  "capabilityDescriptor": "schema/capability-descriptor.v1.schema.json",
9
+ "cardSkinPackage": "schema/card-skin-package.v1.schema.json",
10
+ "cardSkins": "schema/card-skins.v1.schema.json",
9
11
  "call": "schema/facade-call.v1.schema.json",
10
12
  "frame": "schema/messaging-frame.v3.schema.json",
11
13
  "interactionFlow": "schema/interaction-flow-app.v1.schema.json",
@@ -0,0 +1,238 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://schemas.meowlink.app/card-skin-package.v1.json",
4
+ "title": "MeowLink Card skin package v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "packageId",
10
+ "version",
11
+ "name",
12
+ "description",
13
+ "apiVersion",
14
+ "renderers",
15
+ "entry",
16
+ "files"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": {
20
+ "const": 1
21
+ },
22
+ "packageId": {
23
+ "type": "string",
24
+ "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$",
25
+ "maxLength": 128
26
+ },
27
+ "version": {
28
+ "type": "string",
29
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(\\.(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*))?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$",
30
+ "maxLength": 128
31
+ },
32
+ "name": {
33
+ "type": "string",
34
+ "minLength": 1,
35
+ "maxLength": 120
36
+ },
37
+ "description": {
38
+ "type": "string",
39
+ "maxLength": 2000
40
+ },
41
+ "apiVersion": {
42
+ "const": 1
43
+ },
44
+ "renderers": {
45
+ "type": "array",
46
+ "minItems": 1,
47
+ "items": {
48
+ "$ref": "#/definitions/renderer"
49
+ },
50
+ "maxItems": 128
51
+ },
52
+ "entry": {
53
+ "type": "string",
54
+ "pattern": "^[a-zA-Z0-9._-]+\\.mjs$"
55
+ },
56
+ "files": {
57
+ "type": "array",
58
+ "minItems": 1,
59
+ "items": {
60
+ "$ref": "#/definitions/file"
61
+ },
62
+ "maxItems": 128
63
+ }
64
+ },
65
+ "definitions": {
66
+ "pattern": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": [
70
+ "patternId",
71
+ "contractId",
72
+ "contractVersion"
73
+ ],
74
+ "properties": {
75
+ "patternId": {
76
+ "type": "string",
77
+ "minLength": 1,
78
+ "maxLength": 512
79
+ },
80
+ "contractId": {
81
+ "type": "string",
82
+ "minLength": 1,
83
+ "maxLength": 512
84
+ },
85
+ "contractVersion": {
86
+ "type": "integer",
87
+ "minimum": 1,
88
+ "maximum": 2147483647
89
+ }
90
+ }
91
+ },
92
+ "renderer": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": [
96
+ "id",
97
+ "name",
98
+ "description",
99
+ "supportedPatterns",
100
+ "detail",
101
+ "configSchema"
102
+ ],
103
+ "properties": {
104
+ "id": {
105
+ "type": "string",
106
+ "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$",
107
+ "maxLength": 128
108
+ },
109
+ "name": {
110
+ "type": "string",
111
+ "minLength": 1,
112
+ "maxLength": 120
113
+ },
114
+ "description": {
115
+ "type": "string",
116
+ "maxLength": 2000
117
+ },
118
+ "supportedPatterns": {
119
+ "type": "array",
120
+ "minItems": 1,
121
+ "items": {
122
+ "$ref": "#/definitions/pattern"
123
+ }
124
+ },
125
+ "detail": {
126
+ "type": "object",
127
+ "additionalProperties": false,
128
+ "required": [
129
+ "mode"
130
+ ],
131
+ "properties": {
132
+ "mode": {
133
+ "enum": [
134
+ "custom",
135
+ "builtin",
136
+ "none"
137
+ ]
138
+ }
139
+ }
140
+ },
141
+ "configSchema": {
142
+ "type": "object",
143
+ "required": [
144
+ "type"
145
+ ],
146
+ "properties": {
147
+ "type": {
148
+ "const": "object"
149
+ }
150
+ }
151
+ }
152
+ }
153
+ },
154
+ "file": {
155
+ "type": "object",
156
+ "additionalProperties": false,
157
+ "required": [
158
+ "path",
159
+ "mediaType",
160
+ "sizeBytes",
161
+ "sha256"
162
+ ],
163
+ "properties": {
164
+ "path": {
165
+ "type": "string",
166
+ "minLength": 1,
167
+ "maxLength": 512
168
+ },
169
+ "mediaType": {
170
+ "type": "string",
171
+ "minLength": 1
172
+ },
173
+ "sizeBytes": {
174
+ "type": "integer",
175
+ "minimum": 0,
176
+ "maximum": 8388608
177
+ },
178
+ "sha256": {
179
+ "type": "string",
180
+ "pattern": "^[a-f0-9]{64}$"
181
+ }
182
+ }
183
+ },
184
+ "project": {
185
+ "type": "object",
186
+ "additionalProperties": false,
187
+ "required": [
188
+ "schemaVersion",
189
+ "packageId",
190
+ "version",
191
+ "name",
192
+ "description",
193
+ "apiVersion",
194
+ "renderers",
195
+ "entry"
196
+ ],
197
+ "properties": {
198
+ "schemaVersion": {
199
+ "const": 1
200
+ },
201
+ "packageId": {
202
+ "type": "string",
203
+ "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$",
204
+ "maxLength": 128
205
+ },
206
+ "version": {
207
+ "type": "string",
208
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-((0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(\\.(0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*))?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$",
209
+ "maxLength": 128
210
+ },
211
+ "name": {
212
+ "type": "string",
213
+ "minLength": 1,
214
+ "maxLength": 120
215
+ },
216
+ "description": {
217
+ "type": "string",
218
+ "maxLength": 2000
219
+ },
220
+ "apiVersion": {
221
+ "const": 1
222
+ },
223
+ "renderers": {
224
+ "type": "array",
225
+ "minItems": 1,
226
+ "items": {
227
+ "$ref": "#/definitions/renderer"
228
+ },
229
+ "maxItems": 128
230
+ },
231
+ "entry": {
232
+ "type": "string",
233
+ "minLength": 1
234
+ }
235
+ }
236
+ }
237
+ }
238
+ }