@mhome/app-facade-protocol 1.69.0 → 1.71.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
@@ -144,6 +144,15 @@ its complete referenced value is available and which visible inputs can make
144
144
  it stale, so clients can resolve it reactively without learning handlers or
145
145
  the hidden graph.
146
146
 
147
+ Final completion can return `completed: false` with `submission.status: accepted`:
148
+ the business owner has saved the input but installation has not finished. Clients
149
+ retain the completion command ID and may query `/app/interaction-flow/submission/status`
150
+ or explicitly call `/app/interaction-flow/submission/retry` with the original source
151
+ and that ID. Neither call requires a live interactive session. Responses distinguish
152
+ `notFound`, `accepted`, and `completed` with the original result. Clients cannot
153
+ supply an owner or handler; current Node binding and Space access are checked again.
154
+ Retry is explicit, and closing the interaction does not cancel accepted business data.
155
+
147
156
  `topology` exposes the Hub-owned Space network projection. Stable Host, Hub,
148
157
  Node, AppClient, and Cloud identities are separate from current transport
149
158
  sessions. Durable relations remain present while disconnected and carry an
@@ -70,9 +70,28 @@
70
70
  "completed": true,
71
71
  "result": {
72
72
  "providerConnectionId": "provider-1"
73
+ },
74
+ "submission": {
75
+ "status": "completed",
76
+ "result": {
77
+ "providerConnectionId": "provider-1"
78
+ }
73
79
  }
74
80
  },
75
81
  "cancelResponse": {
76
82
  "cancelled": true
83
+ },
84
+ "submissionRequest": {
85
+ "source": {
86
+ "kind": "plugin",
87
+ "nodeType": "camera",
88
+ "nodeId": "camera-1",
89
+ "flowId": "provider.connect",
90
+ "subjectId": "onvif"
91
+ },
92
+ "submissionId": "command-3"
93
+ },
94
+ "submissionResponse": {
95
+ "status": "accepted"
77
96
  }
78
97
  }
@@ -3962,5 +3962,95 @@
3962
3962
  }
3963
3963
  ]
3964
3964
  }
3965
+ },
3966
+ {
3967
+ "name": "agent-provider-auth-start",
3968
+ "target": "/app/agent/llm/provider/auth/start",
3969
+ "data": {
3970
+ "success": true,
3971
+ "sessionId": "auth-example",
3972
+ "status": "pending"
3973
+ },
3974
+ "status": "success",
3975
+ "full": {
3976
+ "sessionId": "auth-example",
3977
+ "status": "pending"
3978
+ },
3979
+ "essential": {
3980
+ "sessionId": "auth-example",
3981
+ "status": "pending"
3982
+ }
3983
+ },
3984
+ {
3985
+ "name": "agent-provider-auth-complete",
3986
+ "target": "/app/agent/llm/provider/auth/complete",
3987
+ "data": {
3988
+ "success": true,
3989
+ "sessionId": "auth-example",
3990
+ "status": "persisted"
3991
+ },
3992
+ "status": "success",
3993
+ "full": {
3994
+ "sessionId": "auth-example",
3995
+ "status": "persisted"
3996
+ },
3997
+ "essential": {
3998
+ "sessionId": "auth-example",
3999
+ "status": "persisted"
4000
+ }
4001
+ },
4002
+ {
4003
+ "name": "agent-provider-auth-status",
4004
+ "target": "/app/agent/llm/provider/auth/status",
4005
+ "data": {
4006
+ "success": true,
4007
+ "sessionId": "auth-example",
4008
+ "status": "failed"
4009
+ },
4010
+ "status": "success",
4011
+ "full": {
4012
+ "sessionId": "auth-example",
4013
+ "status": "failed"
4014
+ },
4015
+ "essential": {
4016
+ "sessionId": "auth-example",
4017
+ "status": "failed"
4018
+ }
4019
+ },
4020
+ {
4021
+ "name": "agent-provider-auth-cancel",
4022
+ "target": "/app/agent/llm/provider/auth/cancel",
4023
+ "data": {
4024
+ "success": true
4025
+ },
4026
+ "status": "success",
4027
+ "acknowledgement": true
4028
+ },
4029
+ {
4030
+ "name": "agent-provider-auth-cancel-failed",
4031
+ "target": "/app/agent/llm/provider/auth/cancel",
4032
+ "data": {
4033
+ "success": false
4034
+ },
4035
+ "status": "error",
4036
+ "code": "OPERATION_FAILED"
4037
+ },
4038
+ {
4039
+ "name": "agent-provider-auth-request-failed",
4040
+ "target": "/app/agent/llm/provider/auth/complete",
4041
+ "data": {
4042
+ "success": false
4043
+ },
4044
+ "status": "error",
4045
+ "code": "OPERATION_FAILED"
4046
+ },
4047
+ {
4048
+ "name": "agent-provider-auth-request-malformed",
4049
+ "target": "/app/agent/llm/provider/auth/status",
4050
+ "data": {
4051
+ "status": "persisted"
4052
+ },
4053
+ "status": "error",
4054
+ "code": "INVALID_RESPONSE"
3965
4055
  }
3966
4056
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.app-facade.v1",
3
- "contractVersion": "1.69.0",
3
+ "contractVersion": "1.71.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",
@@ -83,7 +83,9 @@
83
83
  "/app/interaction-flow/next",
84
84
  "/app/interaction-flow/back",
85
85
  "/app/interaction-flow/complete",
86
- "/app/interaction-flow/cancel"
86
+ "/app/interaction-flow/cancel",
87
+ "/app/interaction-flow/submission/status",
88
+ "/app/interaction-flow/submission/retry"
87
89
  ],
88
90
  "sessionPersistence": "memory"
89
91
  },
@@ -1,5 +1,5 @@
1
1
  {
2
- "contractVersion": "1.69.0",
2
+ "contractVersion": "1.71.0",
3
3
  "operations": {
4
4
  "/app/agent/context/get": "spaceRead",
5
5
  "/app/agent/credit/usage": "spaceRead",
@@ -137,6 +137,8 @@
137
137
  "/app/interaction-flow/back": "spaceWrite",
138
138
  "/app/interaction-flow/cancel": "spaceWrite",
139
139
  "/app/interaction-flow/complete": "spaceWrite",
140
+ "/app/interaction-flow/submission/status": "spaceRead",
141
+ "/app/interaction-flow/submission/retry": "spaceWrite",
140
142
  "/app/interaction-flow/next": "spaceWrite",
141
143
  "/app/interaction-flow/resolve": "spaceRead",
142
144
  "/app/interaction-flow/start": "spaceWrite",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.host-provision.targets.v1",
3
- "contractVersion": "1.69.0",
3
+ "contractVersion": "1.71.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.69.0",
3
+ "contractVersion": "1.71.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.69.0",
3
+ "contractVersion": "1.71.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.69.0",
3
+ "contractVersion": "1.71.0",
4
4
  "targetPrefix": "/app/",
5
5
  "default": {
6
6
  "execution": "scopeMode"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "manifest": "mhome.messaging.targets.v1",
3
- "contractVersion": "1.69.0",
3
+ "contractVersion": "1.71.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.69.0",
3
+ "version": "1.71.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.69.0",
3
+ "contractVersion": "1.71.0",
4
4
  "manifest": "manifest/app-facade.v1.json",
5
5
  "schemas": {
6
6
  "hostAuthorization": "schema/host-authorization.v1.schema.json",
@@ -13,7 +13,9 @@
13
13
  "cancelRequest": { "$ref": "#/$defs/cancelRequest" },
14
14
  "view": { "$ref": "#/$defs/view" },
15
15
  "completeResponse": { "$ref": "#/$defs/completeResponse" },
16
- "cancelResponse": { "$ref": "#/$defs/cancelResponse" }
16
+ "cancelResponse": { "$ref": "#/$defs/cancelResponse" },
17
+ "submissionRequest": { "$ref": "#/$defs/submissionRequest" },
18
+ "submissionResponse": { "$ref": "#/$defs/submissionResponse" }
17
19
  },
18
20
  "$defs": {
19
21
  "nonEmpty": { "type": "string", "minLength": 1, "maxLength": 256 },
@@ -171,13 +173,15 @@
171
173
  "type": "object",
172
174
  "additionalProperties": false,
173
175
  "required": ["completed"],
174
- "properties": { "completed": { "type": "boolean" }, "result": true }
176
+ "properties": { "completed": { "type": "boolean" }, "result": true, "submission": { "$ref": "#/$defs/submissionResponse" } }
175
177
  },
176
178
  "cancelResponse": {
177
179
  "type": "object",
178
180
  "additionalProperties": false,
179
181
  "required": ["cancelled"],
180
182
  "properties": { "cancelled": { "type": "boolean" } }
181
- }
183
+ },
184
+ "submissionRequest": {"type": "object", "additionalProperties": false, "required": ["source", "submissionId"], "properties": {"source": {"$ref": "#/$defs/source"}, "submissionId": {"type": "string", "minLength": 1, "maxLength": 256}}},
185
+ "submissionResponse": {"oneOf": [{"type": "object", "additionalProperties": false, "required": ["status"], "properties": {"status": {"const": "notFound"}}}, {"type": "object", "additionalProperties": false, "required": ["status"], "properties": {"status": {"const": "accepted"}}}, {"type": "object", "additionalProperties": false, "required": ["status", "result"], "properties": {"status": {"const": "completed"}, "result": true}}]}
182
186
  }
183
187
  }