@mhome/app-facade-protocol 1.66.0 → 1.69.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.
@@ -320,7 +320,8 @@
320
320
  "description": "duplicate",
321
321
  "singleUse": false
322
322
  }
323
- ]
323
+ ],
324
+ "truncated": true
324
325
  },
325
326
  "essential": {
326
327
  "since": "10min",
@@ -337,12 +338,13 @@
337
338
  "threadId": 0,
338
339
  "singleUse": false
339
340
  }
340
- ]
341
+ ],
342
+ "truncated": true
341
343
  }
342
344
  },
343
345
  {
344
- "name": "automation-diagnostic-list",
345
- "target": "/app/automation/diagnostic/list",
346
+ "name": "automation-diagnostic-get",
347
+ "target": "/app/automation/diagnostic/get",
346
348
  "status": "success",
347
349
  "data": {
348
350
  "diagnostics": [
@@ -364,7 +366,19 @@
364
366
  },
365
367
  "revision": 3,
366
368
  "startedAt": 90,
367
- "finishedAt": 100
369
+ "finishedAt": 100,
370
+ "logs": [
371
+ {
372
+ "level": "INFO",
373
+ "message": "Invoked device",
374
+ "timestamp": 100
375
+ },
376
+ {
377
+ "level": "ERROR",
378
+ "message": "Timed out",
379
+ "timestamp": 100
380
+ }
381
+ ]
368
382
  }
369
383
  ]
370
384
  },
@@ -385,82 +399,22 @@
385
399
  "failure": {
386
400
  "message": "device unavailable",
387
401
  "code": "TIMEOUT"
388
- }
389
- }
390
- ]
391
- }
392
- },
393
- {
394
- "name": "automation-diagnostic-detail",
395
- "target": "/app/automation/diagnostic/detail",
396
- "status": "success",
397
- "data": {
398
- "diagnostic": {
399
- "automationId": "a1",
400
- "name": "Morning",
401
- "threadId": 0,
402
- "instanceId": "run",
403
- "timestamp": 100,
404
- "status": "failed",
405
- "reportMode": "STD",
406
- "logCount": 2,
407
- "omittedLogs": 1,
408
- "truncated": true,
409
- "logsMissing": false,
410
- "failure": {
411
- "message": "device unavailable",
412
- "code": "TIMEOUT"
413
- },
414
- "revision": 3,
415
- "startedAt": 90,
416
- "finishedAt": 100
417
- },
418
- "logs": [
419
- {
420
- "level": "INFO",
421
- "message": "Invoked device",
422
- "context": {
423
- "id": "light"
424
- }
425
- },
426
- {
427
- "level": "ERROR",
428
- "message": "Timed out"
429
- }
430
- ]
431
- },
432
- "essential": {
433
- "diagnostic": {
434
- "automationId": "a1",
435
- "name": "Morning",
436
- "threadId": 0,
437
- "instanceId": "run",
438
- "timestamp": "1970-01-01 00:00:00 +00:00 (UTC)",
439
- "status": "failed",
440
- "reportMode": "STD",
441
- "logCount": 2,
442
- "omittedLogs": 1,
443
- "truncated": true,
444
- "logsMissing": false,
445
- "failure": {
446
- "message": "device unavailable",
447
- "code": "TIMEOUT"
448
- },
449
- "revision": 3,
450
- "startedAt": "1970-01-01 00:00:00 +00:00 (UTC)",
451
- "finishedAt": "1970-01-01 00:00:00 +00:00 (UTC)"
452
- },
453
- "logs": [
454
- {
455
- "level": "INFO",
456
- "message": "Invoked device",
457
- "context": {
458
- "id": "light"
459
- }
460
- },
461
- {
462
- "level": "ERROR",
463
- "message": "Timed out"
402
+ },
403
+ "revision": 3,
404
+ "startedAt": "1970-01-01 00:00:00 +00:00 (UTC)",
405
+ "finishedAt": "1970-01-01 00:00:00 +00:00 (UTC)",
406
+ "logs": [
407
+ {
408
+ "level": "INFO",
409
+ "message": "Invoked device",
410
+ "timestamp": "1970-01-01 00:00:00 +00:00 (UTC)"
411
+ },
412
+ {
413
+ "level": "ERROR",
414
+ "message": "Timed out",
415
+ "timestamp": "1970-01-01 00:00:00 +00:00 (UTC)"
416
+ }
417
+ ]
464
418
  }
465
419
  ]
466
420
  }
@@ -496,7 +450,7 @@
496
450
  }
497
451
  },
498
452
  {
499
- "name": "device-briefs-keep-discovery-and-unknown-state",
453
+ "name": "device-briefs-keep-discovery-definitions",
500
454
  "target": "/app/device/brief/list",
501
455
  "data": {
502
456
  "devices": [
@@ -515,7 +469,6 @@
515
469
  "connectId": "connection-1",
516
470
  "manufacturerId": "demo",
517
471
  "manufacturerName": "Example maker",
518
- "online": false,
519
472
  "availabilityStatus": "unavailable",
520
473
  "twinTags": [
521
474
  "light"
@@ -550,7 +503,6 @@
550
503
  ],
551
504
  "group": false,
552
505
  "integration": "demo.device",
553
- "online": false,
554
506
  "availabilityStatus": "unavailable",
555
507
  "twinTags": [
556
508
  "light"
@@ -583,7 +535,7 @@
583
535
  }
584
536
  },
585
537
  {
586
- "name": "device-detail-retains-identity-state-and-missing-items",
538
+ "name": "device-detail-retains-identity-and-missing-items",
587
539
  "target": "/app/device/detail/get",
588
540
  "data": {
589
541
  "items": [
@@ -605,17 +557,10 @@
605
557
  "connectId": "connection-1",
606
558
  "manufacturerId": "demo",
607
559
  "manufacturerName": "Example maker",
608
- "online": false,
609
560
  "availabilityStatus": "unavailable",
610
561
  "twinTags": [
611
562
  "light"
612
563
  ],
613
- "states": [
614
- {
615
- "capabilityId": "state.onOff",
616
- "value": "off"
617
- }
618
- ],
619
564
  "memberIds": []
620
565
  }
621
566
  },
@@ -633,7 +578,6 @@
633
578
  ],
634
579
  "group": true,
635
580
  "integration": "demo.device",
636
- "states": [],
637
581
  "memberIds": [
638
582
  "d1"
639
583
  ]
@@ -667,17 +611,10 @@
667
611
  "connectId": "connection-1",
668
612
  "manufacturerId": "demo",
669
613
  "manufacturerName": "Example maker",
670
- "online": false,
671
614
  "availabilityStatus": "unavailable",
672
615
  "twinTags": [
673
616
  "light"
674
617
  ],
675
- "states": [
676
- {
677
- "capabilityId": "state.onOff",
678
- "value": "off"
679
- }
680
- ],
681
618
  "memberIds": []
682
619
  }
683
620
  },
@@ -695,7 +632,6 @@
695
632
  ],
696
633
  "group": true,
697
634
  "integration": "demo.device",
698
- "states": [],
699
635
  "memberIds": [
700
636
  "d1"
701
637
  ]
@@ -745,8 +681,7 @@
745
681
  "capabilityId": "command.onOff",
746
682
  "data": {
747
683
  "value": false,
748
- "level": 0,
749
- "optional": null
684
+ "level": 0
750
685
  },
751
686
  "traceSteps": [
752
687
  {
@@ -830,9 +765,7 @@
830
765
  "deviceName": "Button",
831
766
  "capabilityId": "event.click",
832
767
  "changedAt": "2026-10-27 01:59:58 +00:00 (UTC)",
833
- "event": {
834
- "value": null
835
- }
768
+ "event": {}
836
769
  },
837
770
  {
838
771
  "deviceId": "d4",
@@ -1215,10 +1148,7 @@
1215
1148
  "status": "success",
1216
1149
  "essential": {
1217
1150
  "spaceId": "space-demo",
1218
- "configured": false,
1219
- "hub": null,
1220
- "operation": null,
1221
- "revocation": null
1151
+ "configured": false
1222
1152
  }
1223
1153
  },
1224
1154
  {
@@ -1282,7 +1212,6 @@
1282
1212
  "issuedAt": 1800000000000,
1283
1213
  "activatedAt": 1800000001000,
1284
1214
  "connection": {
1285
- "spaceId": null,
1286
1215
  "state": "unknown",
1287
1216
  "source": "unavailable"
1288
1217
  }
@@ -1358,7 +1287,6 @@
1358
1287
  "displayName": "Example bot",
1359
1288
  "enabled": true,
1360
1289
  "status": "active",
1361
- "statusMessage": null,
1362
1290
  "providerData": {
1363
1291
  "botUsername": "ExampleBot"
1364
1292
  }
@@ -1423,7 +1351,6 @@
1423
1351
  "state": "succeeded",
1424
1352
  "phase": "completed",
1425
1353
  "updatedAtMs": 1800000000000,
1426
- "error": null,
1427
1354
  "result": {
1428
1355
  "changed": true,
1429
1356
  "warnings": [
@@ -1437,7 +1364,6 @@
1437
1364
  {
1438
1365
  "component": "node-camera",
1439
1366
  "action": "install",
1440
- "fromVersion": null,
1441
1367
  "toVersion": "1.0.0",
1442
1368
  "compatibility": {
1443
1369
  "coreProtocol": 1
@@ -1466,9 +1392,7 @@
1466
1392
  "hostId": "host-demo",
1467
1393
  "state": "queued",
1468
1394
  "phase": "queued",
1469
- "updatedAtMs": 1800000000000,
1470
- "error": null,
1471
- "result": null
1395
+ "updatedAtMs": 1800000000000
1472
1396
  }
1473
1397
  },
1474
1398
  {
@@ -1490,8 +1414,7 @@
1490
1414
  "state": "failed",
1491
1415
  "phase": "interrupted",
1492
1416
  "updatedAtMs": 1800000000000,
1493
- "error": "Host operation interrupted",
1494
- "result": null
1417
+ "error": "Host operation interrupted"
1495
1418
  }
1496
1419
  },
1497
1420
  {
@@ -1653,11 +1576,9 @@
1653
1576
  "serviceId": "camera",
1654
1577
  "installed": true,
1655
1578
  "installedVersion": "1.0.0",
1656
- "enabled": null,
1657
1579
  "controlError": "Control unavailable",
1658
1580
  "toggleSupported": true,
1659
1581
  "catalogLoading": false,
1660
- "catalogError": null,
1661
1582
  "availableVersion": "1.0.0",
1662
1583
  "downloadSizeBytes": 1024,
1663
1584
  "supported": true,
@@ -1685,7 +1606,6 @@
1685
1606
  "state": "succeeded",
1686
1607
  "phase": "completed",
1687
1608
  "updatedAtMs": 1800000000000,
1688
- "error": null,
1689
1609
  "result": {
1690
1610
  "changed": true,
1691
1611
  "warnings": [
@@ -1699,7 +1619,6 @@
1699
1619
  {
1700
1620
  "component": "node-camera",
1701
1621
  "action": "install",
1702
- "fromVersion": null,
1703
1622
  "toVersion": "1.0.0",
1704
1623
  "compatibility": {
1705
1624
  "coreProtocol": 1
@@ -1713,12 +1632,8 @@
1713
1632
  "protocolVersion": 1,
1714
1633
  "platform": "macos-arm64",
1715
1634
  "managementMode": "desktop",
1716
- "unsupportedReason": null,
1717
- "catalogError": null,
1718
1635
  "catalogLoading": false,
1719
- "pluginCatalogError": null,
1720
- "pluginCatalogLoading": false,
1721
- "runtimeError": null
1636
+ "pluginCatalogLoading": false
1722
1637
  }
1723
1638
  }
1724
1639
  },
@@ -1729,7 +1644,6 @@
1729
1644
  "reachable": false,
1730
1645
  "detail": {
1731
1646
  "status": "unavailable",
1732
- "data": null,
1733
1647
  "error": "notObserved",
1734
1648
  "stale": false
1735
1649
  }
@@ -2066,9 +1980,7 @@
2066
1980
  "status": "success",
2067
1981
  "essential": {
2068
1982
  "name": "Example user",
2069
- "email": "user@example.com",
2070
- "avatarUrl": null,
2071
- "avatarExpiresAtMs": null
1983
+ "email": "user@example.com"
2072
1984
  }
2073
1985
  },
2074
1986
  {
@@ -2373,10 +2285,6 @@
2373
2285
  "llmMode": "local",
2374
2286
  "effectiveMappings": [
2375
2287
  {
2376
- "temperature": null,
2377
- "reasoningEffort": null,
2378
- "thinking": null,
2379
- "fastMode": null,
2380
2288
  "useCase": "chat",
2381
2289
  "agentModelMode": "auto",
2382
2290
  "provider": "local_example",
@@ -2399,14 +2307,12 @@
2399
2307
  {
2400
2308
  "useCase": "chat",
2401
2309
  "displayName": "\u5bf9\u8bdd",
2402
- "description": null,
2403
2310
  "configurable": true,
2404
2311
  "active": true,
2405
2312
  "modes": [
2406
2313
  {
2407
2314
  "mode": "auto",
2408
2315
  "displayName": "\u81ea\u52a8",
2409
- "description": null,
2410
2316
  "requirements": {
2411
2317
  "modelType": "chat",
2412
2318
  "requiredInputModalities": [
@@ -2432,7 +2338,6 @@
2432
2338
  "modelType": "chat",
2433
2339
  "available": true,
2434
2340
  "deprecated": false,
2435
- "successor": null,
2436
2341
  "supportsTools": true,
2437
2342
  "supportsVision": false,
2438
2343
  "contextWindowTokens": 32768,
@@ -2477,15 +2382,13 @@
2477
2382
  "authenticated": true,
2478
2383
  "ready": true,
2479
2384
  "status": "ready",
2480
- "reason": null,
2481
2385
  "supportedUseCases": [
2482
2386
  "chat"
2483
2387
  ],
2484
2388
  "readinessByUseCase": {
2485
2389
  "chat": {
2486
2390
  "ready": true,
2487
- "modelCount": 1,
2488
- "reason": null
2391
+ "modelCount": 1
2489
2392
  }
2490
2393
  }
2491
2394
  }
@@ -2735,7 +2638,6 @@
2735
2638
  "modelType": "chat",
2736
2639
  "available": true,
2737
2640
  "deprecated": false,
2738
- "successor": null,
2739
2641
  "supportsTools": true,
2740
2642
  "supportsVision": false,
2741
2643
  "contextWindowTokens": 32768,
@@ -2781,8 +2683,7 @@
2781
2683
  "readinessByUseCase": {
2782
2684
  "chat": {
2783
2685
  "ready": true,
2784
- "modelCount": 1,
2785
- "reason": null
2686
+ "modelCount": 1
2786
2687
  }
2787
2688
  },
2788
2689
  "nodeType": "llm",
@@ -2889,7 +2790,6 @@
2889
2790
  "modelType": "chat",
2890
2791
  "available": true,
2891
2792
  "deprecated": false,
2892
- "successor": null,
2893
2793
  "supportsTools": true,
2894
2794
  "supportsVision": false,
2895
2795
  "contextWindowTokens": 32768,
@@ -2975,10 +2875,6 @@
2975
2875
  "essential": {
2976
2876
  "effectiveMappings": [
2977
2877
  {
2978
- "temperature": null,
2979
- "reasoningEffort": null,
2980
- "thinking": null,
2981
- "fastMode": null,
2982
2878
  "useCase": "chat",
2983
2879
  "agentModelMode": "auto",
2984
2880
  "provider": "local_example",
@@ -2995,14 +2891,12 @@
2995
2891
  {
2996
2892
  "useCase": "chat",
2997
2893
  "displayName": "\u5bf9\u8bdd",
2998
- "description": null,
2999
2894
  "configurable": true,
3000
2895
  "active": true,
3001
2896
  "modes": [
3002
2897
  {
3003
2898
  "mode": "auto",
3004
2899
  "displayName": "\u81ea\u52a8",
3005
- "description": null,
3006
2900
  "requirements": {
3007
2901
  "modelType": "chat",
3008
2902
  "requiredInputModalities": [
@@ -3312,8 +3206,7 @@
3312
3206
  },
3313
3207
  {
3314
3208
  "cardId": "card-2",
3315
- "title": "Unpositioned",
3316
- "layout": null
3209
+ "title": "Unpositioned"
3317
3210
  }
3318
3211
  ]
3319
3212
  }
@@ -3535,31 +3428,6 @@
3535
3428
  "status": "error",
3536
3429
  "code": "INVALID_RESPONSE"
3537
3430
  },
3538
- {
3539
- "name": "/app/group/delete acknowledgement True",
3540
- "target": "/app/group/delete",
3541
- "data": {
3542
- "success": true
3543
- },
3544
- "status": "success",
3545
- "acknowledgement": true
3546
- },
3547
- {
3548
- "name": "/app/group/delete acknowledgement False",
3549
- "target": "/app/group/delete",
3550
- "data": {
3551
- "success": false
3552
- },
3553
- "status": "error",
3554
- "code": "OPERATION_FAILED"
3555
- },
3556
- {
3557
- "name": "/app/group/delete acknowledgement None",
3558
- "target": "/app/group/delete",
3559
- "data": {},
3560
- "status": "error",
3561
- "code": "INVALID_RESPONSE"
3562
- },
3563
3431
  {
3564
3432
  "name": "/app/widget/delete acknowledgement True",
3565
3433
  "target": "/app/widget/delete",
@@ -3710,5 +3578,389 @@
3710
3578
  "data": {},
3711
3579
  "status": "error",
3712
3580
  "code": "INVALID_RESPONSE"
3581
+ },
3582
+ {
3583
+ "name": "essential omits null object fields recursively",
3584
+ "target": "/app/test/read",
3585
+ "status": "success",
3586
+ "data": {
3587
+ "missing": null,
3588
+ "nested": {
3589
+ "missing": null,
3590
+ "active": false,
3591
+ "count": 0,
3592
+ "empty": "",
3593
+ "list": [],
3594
+ "object": {},
3595
+ "text": "null",
3596
+ "profile": "field: null\nKeep this line\n"
3597
+ },
3598
+ "rows": [
3599
+ null,
3600
+ {
3601
+ "id": "row-1",
3602
+ "missing": null
3603
+ },
3604
+ {}
3605
+ ]
3606
+ },
3607
+ "essential": {
3608
+ "nested": {
3609
+ "active": false,
3610
+ "count": 0,
3611
+ "empty": "",
3612
+ "list": [],
3613
+ "object": {},
3614
+ "text": "null",
3615
+ "profile": "field: null\nKeep this line\n"
3616
+ },
3617
+ "rows": [
3618
+ null,
3619
+ {
3620
+ "id": "row-1"
3621
+ },
3622
+ {}
3623
+ ]
3624
+ }
3625
+ },
3626
+ {
3627
+ "name": "partial essential omits missing diagnostics",
3628
+ "target": "/app/room/devices/move",
3629
+ "status": "partial",
3630
+ "data": {
3631
+ "moved": [
3632
+ "a"
3633
+ ],
3634
+ "notMoved": [
3635
+ {
3636
+ "deviceId": "b",
3637
+ "reason": "offline",
3638
+ "retryAfter": null
3639
+ }
3640
+ ],
3641
+ "missing": null
3642
+ },
3643
+ "essential": {
3644
+ "moved": [
3645
+ "a"
3646
+ ],
3647
+ "notMoved": [
3648
+ {
3649
+ "deviceId": "b",
3650
+ "reason": "offline"
3651
+ }
3652
+ ]
3653
+ }
3654
+ },
3655
+ {
3656
+ "name": "error essential omits missing diagnostics",
3657
+ "target": "/app/automation/save",
3658
+ "status": "error",
3659
+ "code": "OPERATION_FAILED",
3660
+ "data": {
3661
+ "success": false,
3662
+ "message": "Failed",
3663
+ "retry": false,
3664
+ "missing": null,
3665
+ "details": {
3666
+ "missing": null,
3667
+ "remaining": []
3668
+ }
3669
+ },
3670
+ "essential": {
3671
+ "status": "error",
3672
+ "error": {
3673
+ "code": "OPERATION_FAILED",
3674
+ "message": "Failed",
3675
+ "details": {
3676
+ "success": false,
3677
+ "message": "Failed",
3678
+ "retry": false,
3679
+ "details": {
3680
+ "remaining": []
3681
+ }
3682
+ }
3683
+ }
3684
+ }
3685
+ },
3686
+ {
3687
+ "name": "group-list",
3688
+ "target": "/app/group/list",
3689
+ "data": {
3690
+ "spaceId": "space",
3691
+ "groups": [
3692
+ {
3693
+ "groupId": "g:11111111-1111-4111-8111-111111111111",
3694
+ "name": "Lights",
3695
+ "memberType": "basic.device.Device",
3696
+ "memberCount": 2,
3697
+ "revision": 3,
3698
+ "applyState": "ready",
3699
+ "createdAt": 1900000000000,
3700
+ "updatedAt": 1900000001000
3701
+ }
3702
+ ]
3703
+ },
3704
+ "status": "success",
3705
+ "essential": {
3706
+ "spaceId": "space",
3707
+ "groups": [
3708
+ {
3709
+ "groupId": "g:11111111-1111-4111-8111-111111111111",
3710
+ "name": "Lights",
3711
+ "memberType": "basic.device.Device",
3712
+ "memberCount": 2,
3713
+ "revision": 3,
3714
+ "applyState": "ready",
3715
+ "createdAt": "2030-03-17 17:46:40 +00:00 (UTC)",
3716
+ "updatedAt": "2030-03-17 17:46:41 +00:00 (UTC)"
3717
+ }
3718
+ ]
3719
+ }
3720
+ },
3721
+ {
3722
+ "name": "group-detail",
3723
+ "target": "/app/group/detail/get",
3724
+ "data": {
3725
+ "spaceId": "space",
3726
+ "items": [
3727
+ {
3728
+ "requestedId": "g:11111111-1111-4111-8111-111111111111",
3729
+ "found": true,
3730
+ "group": {
3731
+ "groupId": "g:11111111-1111-4111-8111-111111111111",
3732
+ "name": "Lights",
3733
+ "memberType": "basic.device.Device",
3734
+ "memberCount": 2,
3735
+ "revision": 3,
3736
+ "applyState": "ready",
3737
+ "createdAt": 1900000000000,
3738
+ "updatedAt": 1900000001000,
3739
+ "memberIds": [
3740
+ "lamp-a",
3741
+ "lamp-b"
3742
+ ],
3743
+ "capabilities": [
3744
+ {
3745
+ "id": "basic.device.command.onOff",
3746
+ "memberCount": 1
3747
+ }
3748
+ ],
3749
+ "memberProblems": [
3750
+ {
3751
+ "memberId": "lamp-b",
3752
+ "code": "MEMBER_UNAVAILABLE",
3753
+ "message": "Member is unavailable"
3754
+ }
3755
+ ]
3756
+ }
3757
+ },
3758
+ {
3759
+ "requestedId": "missing",
3760
+ "found": false,
3761
+ "reason": "not_found"
3762
+ }
3763
+ ]
3764
+ },
3765
+ "status": "success",
3766
+ "essential": {
3767
+ "spaceId": "space",
3768
+ "items": [
3769
+ {
3770
+ "requestedId": "g:11111111-1111-4111-8111-111111111111",
3771
+ "found": true,
3772
+ "group": {
3773
+ "groupId": "g:11111111-1111-4111-8111-111111111111",
3774
+ "name": "Lights",
3775
+ "memberType": "basic.device.Device",
3776
+ "memberCount": 2,
3777
+ "revision": 3,
3778
+ "applyState": "ready",
3779
+ "createdAt": "2030-03-17 17:46:40 +00:00 (UTC)",
3780
+ "updatedAt": "2030-03-17 17:46:41 +00:00 (UTC)",
3781
+ "memberIds": [
3782
+ "lamp-a",
3783
+ "lamp-b"
3784
+ ],
3785
+ "capabilities": [
3786
+ {
3787
+ "id": "basic.device.command.onOff",
3788
+ "memberCount": 1
3789
+ }
3790
+ ],
3791
+ "memberProblems": [
3792
+ {
3793
+ "memberId": "lamp-b",
3794
+ "code": "MEMBER_UNAVAILABLE",
3795
+ "message": "Member is unavailable"
3796
+ }
3797
+ ]
3798
+ }
3799
+ },
3800
+ {
3801
+ "requestedId": "missing",
3802
+ "found": false,
3803
+ "reason": "not_found"
3804
+ }
3805
+ ]
3806
+ }
3807
+ },
3808
+ {
3809
+ "name": "group-apply-partial",
3810
+ "target": "/app/group/members/update",
3811
+ "data": {
3812
+ "groupId": "g:1",
3813
+ "revision": 4,
3814
+ "applyState": "failed",
3815
+ "applicationProblem": {
3816
+ "code": "GROUP_APPLY_FAILED",
3817
+ "message": "Retry application"
3818
+ }
3819
+ },
3820
+ "status": "partial",
3821
+ "warningCode": "GROUP_APPLY_FAILED",
3822
+ "essential": {
3823
+ "groupId": "g:1",
3824
+ "revision": 4,
3825
+ "applyState": "failed",
3826
+ "applicationProblem": {
3827
+ "code": "GROUP_APPLY_FAILED",
3828
+ "message": "Retry application"
3829
+ }
3830
+ }
3831
+ },
3832
+ {
3833
+ "name": "group-delete",
3834
+ "target": "/app/group/delete",
3835
+ "data": {
3836
+ "groupId": "g:1",
3837
+ "deleted": true
3838
+ },
3839
+ "status": "success",
3840
+ "essential": {
3841
+ "groupId": "g:1",
3842
+ "deleted": true
3843
+ }
3844
+ },
3845
+ {
3846
+ "name": "device-observation-empty-missing-and-false",
3847
+ "target": "/app/device/state/get",
3848
+ "data": {
3849
+ "items": [
3850
+ {
3851
+ "requestedId": "d",
3852
+ "found": true,
3853
+ "resource": {
3854
+ "entityId": "d",
3855
+ "online": false,
3856
+ "latest": []
3857
+ }
3858
+ },
3859
+ {
3860
+ "requestedId": "missing",
3861
+ "found": false,
3862
+ "reason": "not_found"
3863
+ }
3864
+ ]
3865
+ },
3866
+ "status": "success",
3867
+ "essential": {
3868
+ "items": [
3869
+ {
3870
+ "requestedId": "d",
3871
+ "found": true,
3872
+ "resource": {
3873
+ "entityId": "d",
3874
+ "online": false,
3875
+ "latest": []
3876
+ }
3877
+ },
3878
+ {
3879
+ "requestedId": "missing",
3880
+ "found": false,
3881
+ "reason": "not_found"
3882
+ }
3883
+ ]
3884
+ }
3885
+ },
3886
+ {
3887
+ "name": "widget-value-is-independent",
3888
+ "target": "/app/widget/value/get",
3889
+ "data": {
3890
+ "items": [
3891
+ {
3892
+ "requestedId": "w",
3893
+ "found": true,
3894
+ "resource": {
3895
+ "widgetId": "w",
3896
+ "revision": 3,
3897
+ "value": false
3898
+ }
3899
+ }
3900
+ ]
3901
+ },
3902
+ "status": "success",
3903
+ "essential": {
3904
+ "items": [
3905
+ {
3906
+ "requestedId": "w",
3907
+ "found": true,
3908
+ "resource": {
3909
+ "widgetId": "w",
3910
+ "revision": 3,
3911
+ "value": false
3912
+ }
3913
+ }
3914
+ ]
3915
+ }
3916
+ },
3917
+ {
3918
+ "name": "graph-keeps-direction-and-references",
3919
+ "target": "/app/graph/relations/get",
3920
+ "data": {
3921
+ "resource": {
3922
+ "kind": "device",
3923
+ "id": "d"
3924
+ },
3925
+ "relations": [
3926
+ {
3927
+ "from": {
3928
+ "kind": "automation",
3929
+ "id": "a"
3930
+ },
3931
+ "relation": "uses",
3932
+ "to": {
3933
+ "kind": "device",
3934
+ "id": "d"
3935
+ },
3936
+ "capabilityIds": [
3937
+ "state.onOff"
3938
+ ]
3939
+ }
3940
+ ]
3941
+ },
3942
+ "status": "success",
3943
+ "essential": {
3944
+ "resource": {
3945
+ "kind": "device",
3946
+ "id": "d"
3947
+ },
3948
+ "relations": [
3949
+ {
3950
+ "from": {
3951
+ "kind": "automation",
3952
+ "id": "a"
3953
+ },
3954
+ "relation": "uses",
3955
+ "to": {
3956
+ "kind": "device",
3957
+ "id": "d"
3958
+ },
3959
+ "capabilityIds": [
3960
+ "state.onOff"
3961
+ ]
3962
+ }
3963
+ ]
3964
+ }
3713
3965
  }
3714
3966
  ]