@mhome/app-facade-protocol 1.64.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
  {
@@ -2104,7 +2016,7 @@
2104
2016
  "llmUseCases": [
2105
2017
  {
2106
2018
  "useCase": "chat",
2107
- "displayName": "对话",
2019
+ "displayName": "\u5bf9\u8bdd",
2108
2020
  "description": null,
2109
2021
  "ownerType": "system",
2110
2022
  "ownerId": "agent",
@@ -2114,7 +2026,7 @@
2114
2026
  "modes": [
2115
2027
  {
2116
2028
  "mode": "auto",
2117
- "displayName": "自动",
2029
+ "displayName": "\u81ea\u52a8",
2118
2030
  "description": null,
2119
2031
  "requirements": {
2120
2032
  "modelType": "chat",
@@ -2139,7 +2051,7 @@
2139
2051
  "models": [
2140
2052
  {
2141
2053
  "id": "demo-chat",
2142
- "displayName": "示例对话模型",
2054
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2143
2055
  "modelType": "chat",
2144
2056
  "available": true,
2145
2057
  "deprecated": false,
@@ -2178,7 +2090,7 @@
2178
2090
  "providers": [
2179
2091
  {
2180
2092
  "provider": "local_example",
2181
- "displayName": "示例 Provider",
2093
+ "displayName": "\u793a\u4f8b Provider",
2182
2094
  "runtime": "local",
2183
2095
  "modelSource": "catalog",
2184
2096
  "catalogProvider": "example",
@@ -2219,7 +2131,7 @@
2219
2131
  "chat": [
2220
2132
  {
2221
2133
  "id": "demo-chat",
2222
- "displayName": "示例对话模型",
2134
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2223
2135
  "modelType": "chat",
2224
2136
  "provider": "local_example",
2225
2137
  "available": true,
@@ -2243,7 +2155,7 @@
2243
2155
  "models": [
2244
2156
  {
2245
2157
  "id": "demo-chat",
2246
- "displayName": "示例对话模型",
2158
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2247
2159
  "modelType": "chat",
2248
2160
  "provider": "local_example",
2249
2161
  "available": true,
@@ -2276,7 +2188,7 @@
2276
2188
  "providers": [
2277
2189
  {
2278
2190
  "provider": "local_example",
2279
- "displayName": "示例 Provider",
2191
+ "displayName": "\u793a\u4f8b Provider",
2280
2192
  "runtime": "local",
2281
2193
  "modelSource": "catalog",
2282
2194
  "catalogProvider": "example",
@@ -2317,7 +2229,7 @@
2317
2229
  "chat": [
2318
2230
  {
2319
2231
  "id": "demo-chat",
2320
- "displayName": "示例对话模型",
2232
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2321
2233
  "modelType": "chat",
2322
2234
  "provider": "local_example",
2323
2235
  "available": true,
@@ -2341,7 +2253,7 @@
2341
2253
  "models": [
2342
2254
  {
2343
2255
  "id": "demo-chat",
2344
- "displayName": "示例对话模型",
2256
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2345
2257
  "modelType": "chat",
2346
2258
  "provider": "local_example",
2347
2259
  "available": true,
@@ -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",
@@ -2398,15 +2306,13 @@
2398
2306
  "llmUseCases": [
2399
2307
  {
2400
2308
  "useCase": "chat",
2401
- "displayName": "对话",
2402
- "description": null,
2309
+ "displayName": "\u5bf9\u8bdd",
2403
2310
  "configurable": true,
2404
2311
  "active": true,
2405
2312
  "modes": [
2406
2313
  {
2407
2314
  "mode": "auto",
2408
- "displayName": "自动",
2409
- "description": null,
2315
+ "displayName": "\u81ea\u52a8",
2410
2316
  "requirements": {
2411
2317
  "modelType": "chat",
2412
2318
  "requiredInputModalities": [
@@ -2428,11 +2334,10 @@
2428
2334
  "models": [
2429
2335
  {
2430
2336
  "id": "demo-chat",
2431
- "displayName": "示例对话模型",
2337
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
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,
@@ -2461,7 +2366,7 @@
2461
2366
  "providers": [
2462
2367
  {
2463
2368
  "provider": "local_example",
2464
- "displayName": "示例 Provider",
2369
+ "displayName": "\u793a\u4f8b Provider",
2465
2370
  "runtime": "local",
2466
2371
  "useCases": [
2467
2372
  "chat"
@@ -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
  }
@@ -2502,7 +2405,7 @@
2502
2405
  "models": [
2503
2406
  {
2504
2407
  "id": "demo-chat",
2505
- "displayName": "示例对话模型",
2408
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2506
2409
  "modelType": "chat",
2507
2410
  "available": true,
2508
2411
  "deprecated": false,
@@ -2533,7 +2436,7 @@
2533
2436
  "providers": [
2534
2437
  {
2535
2438
  "provider": "local_example",
2536
- "displayName": "示例 Provider",
2439
+ "displayName": "\u793a\u4f8b Provider",
2537
2440
  "runtime": "local",
2538
2441
  "modelSource": "catalog",
2539
2442
  "catalogProvider": "example",
@@ -2574,7 +2477,7 @@
2574
2477
  "chat": [
2575
2478
  {
2576
2479
  "id": "demo-chat",
2577
- "displayName": "示例对话模型",
2480
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2578
2481
  "modelType": "chat",
2579
2482
  "provider": "local_example",
2580
2483
  "available": true,
@@ -2598,7 +2501,7 @@
2598
2501
  "models": [
2599
2502
  {
2600
2503
  "id": "demo-chat",
2601
- "displayName": "示例对话模型",
2504
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2602
2505
  "modelType": "chat",
2603
2506
  "provider": "local_example",
2604
2507
  "available": true,
@@ -2628,7 +2531,7 @@
2628
2531
  "providers": [
2629
2532
  {
2630
2533
  "provider": "local_example",
2631
- "displayName": "示例 Provider",
2534
+ "displayName": "\u793a\u4f8b Provider",
2632
2535
  "runtime": "local",
2633
2536
  "modelSource": "catalog",
2634
2537
  "catalogProvider": "example",
@@ -2669,7 +2572,7 @@
2669
2572
  "chat": [
2670
2573
  {
2671
2574
  "id": "demo-chat",
2672
- "displayName": "示例对话模型",
2575
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2673
2576
  "modelType": "chat",
2674
2577
  "provider": "local_example",
2675
2578
  "available": true,
@@ -2693,7 +2596,7 @@
2693
2596
  "models": [
2694
2597
  {
2695
2598
  "id": "demo-chat",
2696
- "displayName": "示例对话模型",
2599
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2697
2600
  "modelType": "chat",
2698
2601
  "provider": "local_example",
2699
2602
  "available": true,
@@ -2731,11 +2634,10 @@
2731
2634
  "models": [
2732
2635
  {
2733
2636
  "id": "demo-chat",
2734
- "displayName": "示例对话模型",
2637
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
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,
@@ -2758,7 +2660,7 @@
2758
2660
  "providers": [
2759
2661
  {
2760
2662
  "provider": "local_example",
2761
- "displayName": "示例 Provider",
2663
+ "displayName": "\u793a\u4f8b Provider",
2762
2664
  "runtime": "local",
2763
2665
  "useCases": [
2764
2666
  "chat"
@@ -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",
@@ -2826,7 +2727,7 @@
2826
2727
  "models": [
2827
2728
  {
2828
2729
  "id": "demo-chat",
2829
- "displayName": "示例对话模型",
2730
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
2830
2731
  "modelType": "chat",
2831
2732
  "available": true,
2832
2733
  "deprecated": false,
@@ -2885,11 +2786,10 @@
2885
2786
  "models": [
2886
2787
  {
2887
2788
  "id": "demo-chat",
2888
- "displayName": "示例对话模型",
2789
+ "displayName": "\u793a\u4f8b\u5bf9\u8bdd\u6a21\u578b",
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,
@@ -2941,7 +2841,7 @@
2941
2841
  "llmUseCases": [
2942
2842
  {
2943
2843
  "useCase": "chat",
2944
- "displayName": "对话",
2844
+ "displayName": "\u5bf9\u8bdd",
2945
2845
  "description": null,
2946
2846
  "ownerType": "system",
2947
2847
  "ownerId": "agent",
@@ -2951,7 +2851,7 @@
2951
2851
  "modes": [
2952
2852
  {
2953
2853
  "mode": "auto",
2954
- "displayName": "自动",
2854
+ "displayName": "\u81ea\u52a8",
2955
2855
  "description": null,
2956
2856
  "requirements": {
2957
2857
  "modelType": "chat",
@@ -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",
@@ -2994,15 +2890,13 @@
2994
2890
  "llmUseCases": [
2995
2891
  {
2996
2892
  "useCase": "chat",
2997
- "displayName": "对话",
2998
- "description": null,
2893
+ "displayName": "\u5bf9\u8bdd",
2999
2894
  "configurable": true,
3000
2895
  "active": true,
3001
2896
  "modes": [
3002
2897
  {
3003
2898
  "mode": "auto",
3004
- "displayName": "自动",
3005
- "description": null,
2899
+ "displayName": "\u81ea\u52a8",
3006
2900
  "requirements": {
3007
2901
  "modelType": "chat",
3008
2902
  "requiredInputModalities": [
@@ -3058,22 +2952,22 @@
3058
2952
  "name": "agent-memory-text",
3059
2953
  "target": "/app/agent/memory/get",
3060
2954
  "data": {
3061
- "content": "客厅空调设定为 26°C 前先征求用户同意。"
2955
+ "content": "\u5ba2\u5385\u7a7a\u8c03\u8bbe\u5b9a\u4e3a 26\u00b0C \u524d\u5148\u5f81\u6c42\u7528\u6237\u540c\u610f\u3002"
3062
2956
  },
3063
2957
  "status": "success",
3064
2958
  "essential": {
3065
- "content": "客厅空调设定为 26°C 前先征求用户同意。"
2959
+ "content": "\u5ba2\u5385\u7a7a\u8c03\u8bbe\u5b9a\u4e3a 26\u00b0C \u524d\u5148\u5f81\u6c42\u7528\u6237\u540c\u610f\u3002"
3066
2960
  }
3067
2961
  },
3068
2962
  {
3069
2963
  "name": "agent-identity-text",
3070
2964
  "target": "/app/agent/identity/get",
3071
2965
  "data": {
3072
- "content": "使用中文,回答简洁。"
2966
+ "content": "\u4f7f\u7528\u4e2d\u6587\uff0c\u56de\u7b54\u7b80\u6d01\u3002"
3073
2967
  },
3074
2968
  "status": "success",
3075
2969
  "essential": {
3076
- "content": "使用中文,回答简洁。"
2970
+ "content": "\u4f7f\u7528\u4e2d\u6587\uff0c\u56de\u7b54\u7b80\u6d01\u3002"
3077
2971
  }
3078
2972
  },
3079
2973
  {
@@ -3176,9 +3070,7 @@
3176
3070
  "success": true
3177
3071
  },
3178
3072
  "status": "success",
3179
- "essential": {
3180
- "success": true
3181
- }
3073
+ "acknowledgement": true
3182
3074
  },
3183
3075
  {
3184
3076
  "name": "agent-identity-multiline",
@@ -3314,8 +3206,7 @@
3314
3206
  },
3315
3207
  {
3316
3208
  "cardId": "card-2",
3317
- "title": "Unpositioned",
3318
- "layout": null
3209
+ "title": "Unpositioned"
3319
3210
  }
3320
3211
  ]
3321
3212
  }
@@ -3336,5 +3227,740 @@
3336
3227
  "layoutSize": "md",
3337
3228
  "cards": []
3338
3229
  }
3230
+ },
3231
+ {
3232
+ "name": "/app/agent/identity/save acknowledgement True",
3233
+ "target": "/app/agent/identity/save",
3234
+ "data": {
3235
+ "success": true
3236
+ },
3237
+ "status": "success",
3238
+ "acknowledgement": true
3239
+ },
3240
+ {
3241
+ "name": "/app/agent/identity/save acknowledgement False",
3242
+ "target": "/app/agent/identity/save",
3243
+ "data": {
3244
+ "success": false
3245
+ },
3246
+ "status": "error",
3247
+ "code": "OPERATION_FAILED"
3248
+ },
3249
+ {
3250
+ "name": "/app/agent/identity/save acknowledgement None",
3251
+ "target": "/app/agent/identity/save",
3252
+ "data": {},
3253
+ "status": "error",
3254
+ "code": "INVALID_RESPONSE"
3255
+ },
3256
+ {
3257
+ "name": "/app/agent/memory/save acknowledgement True",
3258
+ "target": "/app/agent/memory/save",
3259
+ "data": {
3260
+ "success": true
3261
+ },
3262
+ "status": "success",
3263
+ "acknowledgement": true
3264
+ },
3265
+ {
3266
+ "name": "/app/agent/memory/save acknowledgement False",
3267
+ "target": "/app/agent/memory/save",
3268
+ "data": {
3269
+ "success": false
3270
+ },
3271
+ "status": "error",
3272
+ "code": "OPERATION_FAILED"
3273
+ },
3274
+ {
3275
+ "name": "/app/agent/memory/save acknowledgement None",
3276
+ "target": "/app/agent/memory/save",
3277
+ "data": {},
3278
+ "status": "error",
3279
+ "code": "INVALID_RESPONSE"
3280
+ },
3281
+ {
3282
+ "name": "/app/agent/mode/save acknowledgement True",
3283
+ "target": "/app/agent/mode/save",
3284
+ "data": {
3285
+ "success": true
3286
+ },
3287
+ "status": "success",
3288
+ "acknowledgement": true
3289
+ },
3290
+ {
3291
+ "name": "/app/agent/mode/save acknowledgement False",
3292
+ "target": "/app/agent/mode/save",
3293
+ "data": {
3294
+ "success": false
3295
+ },
3296
+ "status": "error",
3297
+ "code": "OPERATION_FAILED"
3298
+ },
3299
+ {
3300
+ "name": "/app/agent/mode/save acknowledgement None",
3301
+ "target": "/app/agent/mode/save",
3302
+ "data": {},
3303
+ "status": "error",
3304
+ "code": "INVALID_RESPONSE"
3305
+ },
3306
+ {
3307
+ "name": "/app/agent/llm/mapping/save acknowledgement True",
3308
+ "target": "/app/agent/llm/mapping/save",
3309
+ "data": {
3310
+ "success": true
3311
+ },
3312
+ "status": "success",
3313
+ "acknowledgement": true
3314
+ },
3315
+ {
3316
+ "name": "/app/agent/llm/mapping/save acknowledgement False",
3317
+ "target": "/app/agent/llm/mapping/save",
3318
+ "data": {
3319
+ "success": false
3320
+ },
3321
+ "status": "error",
3322
+ "code": "OPERATION_FAILED"
3323
+ },
3324
+ {
3325
+ "name": "/app/agent/llm/mapping/save acknowledgement None",
3326
+ "target": "/app/agent/llm/mapping/save",
3327
+ "data": {},
3328
+ "status": "error",
3329
+ "code": "INVALID_RESPONSE"
3330
+ },
3331
+ {
3332
+ "name": "/app/agent/llm/provider/credential/save acknowledgement True",
3333
+ "target": "/app/agent/llm/provider/credential/save",
3334
+ "data": {
3335
+ "success": true
3336
+ },
3337
+ "status": "success",
3338
+ "acknowledgement": true
3339
+ },
3340
+ {
3341
+ "name": "/app/agent/llm/provider/credential/save acknowledgement False",
3342
+ "target": "/app/agent/llm/provider/credential/save",
3343
+ "data": {
3344
+ "success": false
3345
+ },
3346
+ "status": "error",
3347
+ "code": "OPERATION_FAILED"
3348
+ },
3349
+ {
3350
+ "name": "/app/agent/llm/provider/credential/save acknowledgement None",
3351
+ "target": "/app/agent/llm/provider/credential/save",
3352
+ "data": {},
3353
+ "status": "error",
3354
+ "code": "INVALID_RESPONSE"
3355
+ },
3356
+ {
3357
+ "name": "/app/agent/llm/provider/credential/delete acknowledgement True",
3358
+ "target": "/app/agent/llm/provider/credential/delete",
3359
+ "data": {
3360
+ "success": true
3361
+ },
3362
+ "status": "success",
3363
+ "acknowledgement": true
3364
+ },
3365
+ {
3366
+ "name": "/app/agent/llm/provider/credential/delete acknowledgement False",
3367
+ "target": "/app/agent/llm/provider/credential/delete",
3368
+ "data": {
3369
+ "success": false
3370
+ },
3371
+ "status": "error",
3372
+ "code": "OPERATION_FAILED"
3373
+ },
3374
+ {
3375
+ "name": "/app/agent/llm/provider/credential/delete acknowledgement None",
3376
+ "target": "/app/agent/llm/provider/credential/delete",
3377
+ "data": {},
3378
+ "status": "error",
3379
+ "code": "INVALID_RESPONSE"
3380
+ },
3381
+ {
3382
+ "name": "/app/automation/start acknowledgement True",
3383
+ "target": "/app/automation/start",
3384
+ "data": {
3385
+ "success": true
3386
+ },
3387
+ "status": "success",
3388
+ "acknowledgement": true
3389
+ },
3390
+ {
3391
+ "name": "/app/automation/start acknowledgement False",
3392
+ "target": "/app/automation/start",
3393
+ "data": {
3394
+ "success": false
3395
+ },
3396
+ "status": "error",
3397
+ "code": "OPERATION_FAILED"
3398
+ },
3399
+ {
3400
+ "name": "/app/automation/start acknowledgement None",
3401
+ "target": "/app/automation/start",
3402
+ "data": {},
3403
+ "status": "error",
3404
+ "code": "INVALID_RESPONSE"
3405
+ },
3406
+ {
3407
+ "name": "/app/automation/stop acknowledgement True",
3408
+ "target": "/app/automation/stop",
3409
+ "data": {
3410
+ "success": true
3411
+ },
3412
+ "status": "success",
3413
+ "acknowledgement": true
3414
+ },
3415
+ {
3416
+ "name": "/app/automation/stop acknowledgement False",
3417
+ "target": "/app/automation/stop",
3418
+ "data": {
3419
+ "success": false
3420
+ },
3421
+ "status": "error",
3422
+ "code": "OPERATION_FAILED"
3423
+ },
3424
+ {
3425
+ "name": "/app/automation/stop acknowledgement None",
3426
+ "target": "/app/automation/stop",
3427
+ "data": {},
3428
+ "status": "error",
3429
+ "code": "INVALID_RESPONSE"
3430
+ },
3431
+ {
3432
+ "name": "/app/widget/delete acknowledgement True",
3433
+ "target": "/app/widget/delete",
3434
+ "data": {
3435
+ "success": true
3436
+ },
3437
+ "status": "success",
3438
+ "acknowledgement": true
3439
+ },
3440
+ {
3441
+ "name": "/app/widget/delete acknowledgement False",
3442
+ "target": "/app/widget/delete",
3443
+ "data": {
3444
+ "success": false
3445
+ },
3446
+ "status": "error",
3447
+ "code": "OPERATION_FAILED"
3448
+ },
3449
+ {
3450
+ "name": "/app/widget/delete acknowledgement None",
3451
+ "target": "/app/widget/delete",
3452
+ "data": {},
3453
+ "status": "error",
3454
+ "code": "INVALID_RESPONSE"
3455
+ },
3456
+ {
3457
+ "name": "/app/widget/data/update acknowledgement True",
3458
+ "target": "/app/widget/data/update",
3459
+ "data": {
3460
+ "success": true
3461
+ },
3462
+ "status": "success",
3463
+ "acknowledgement": true
3464
+ },
3465
+ {
3466
+ "name": "/app/widget/data/update acknowledgement False",
3467
+ "target": "/app/widget/data/update",
3468
+ "data": {
3469
+ "success": false
3470
+ },
3471
+ "status": "error",
3472
+ "code": "OPERATION_FAILED"
3473
+ },
3474
+ {
3475
+ "name": "/app/widget/data/update acknowledgement None",
3476
+ "target": "/app/widget/data/update",
3477
+ "data": {},
3478
+ "status": "error",
3479
+ "code": "INVALID_RESPONSE"
3480
+ },
3481
+ {
3482
+ "name": "/app/widget/button/trigger acknowledgement True",
3483
+ "target": "/app/widget/button/trigger",
3484
+ "data": {
3485
+ "success": true
3486
+ },
3487
+ "status": "success",
3488
+ "acknowledgement": true
3489
+ },
3490
+ {
3491
+ "name": "/app/widget/button/trigger acknowledgement False",
3492
+ "target": "/app/widget/button/trigger",
3493
+ "data": {
3494
+ "success": false
3495
+ },
3496
+ "status": "error",
3497
+ "code": "OPERATION_FAILED"
3498
+ },
3499
+ {
3500
+ "name": "/app/widget/button/trigger acknowledgement None",
3501
+ "target": "/app/widget/button/trigger",
3502
+ "data": {},
3503
+ "status": "error",
3504
+ "code": "INVALID_RESPONSE"
3505
+ },
3506
+ {
3507
+ "name": "full string remains valid",
3508
+ "target": "/app/test/string",
3509
+ "data": "line one\nline two",
3510
+ "essential": "line one\nline two",
3511
+ "status": "success"
3512
+ },
3513
+ {
3514
+ "name": "/app/messaging/unlink preserves change result True",
3515
+ "target": "/app/messaging/unlink",
3516
+ "data": {
3517
+ "success": true
3518
+ },
3519
+ "essential": {
3520
+ "success": true
3521
+ },
3522
+ "status": "success"
3523
+ },
3524
+ {
3525
+ "name": "/app/messaging/unlink preserves change result False",
3526
+ "target": "/app/messaging/unlink",
3527
+ "data": {
3528
+ "success": false
3529
+ },
3530
+ "essential": {
3531
+ "success": false
3532
+ },
3533
+ "status": "success"
3534
+ },
3535
+ {
3536
+ "name": "/app/messaging/unbind preserves change result True",
3537
+ "target": "/app/messaging/unbind",
3538
+ "data": {
3539
+ "success": true
3540
+ },
3541
+ "essential": {
3542
+ "success": true
3543
+ },
3544
+ "status": "success"
3545
+ },
3546
+ {
3547
+ "name": "/app/messaging/unbind preserves change result False",
3548
+ "target": "/app/messaging/unbind",
3549
+ "data": {
3550
+ "success": false
3551
+ },
3552
+ "essential": {
3553
+ "success": false
3554
+ },
3555
+ "status": "success"
3556
+ },
3557
+ {
3558
+ "name": "feedback acknowledgement",
3559
+ "target": "/app/system/feedback/submit",
3560
+ "data": {
3561
+ "success": true
3562
+ },
3563
+ "status": "success",
3564
+ "acknowledgement": true
3565
+ },
3566
+ {
3567
+ "name": "feedback /app/agent/memory/save acknowledgement False",
3568
+ "target": "/app/system/feedback/submit",
3569
+ "data": {
3570
+ "success": false
3571
+ },
3572
+ "status": "error",
3573
+ "code": "OPERATION_FAILED"
3574
+ },
3575
+ {
3576
+ "name": "feedback /app/agent/memory/save acknowledgement None",
3577
+ "target": "/app/system/feedback/submit",
3578
+ "data": {},
3579
+ "status": "error",
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
+ }
3339
3965
  }
3340
3966
  ]