dodo-mcp 1.0.6 → 1.2.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 +74 -20
- package/dist/cli/main.js +152 -28
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/menu.js +2 -2
- package/dist/cli/menu.js.map +1 -1
- package/dist/config/globalConfig.js +7 -3
- package/dist/config/globalConfig.js.map +1 -1
- package/dist/config/tunnelConfig.js +2 -1
- package/dist/config/tunnelConfig.js.map +1 -1
- package/dist/projects/ownerAdmin.js +86 -0
- package/dist/projects/ownerAdmin.js.map +1 -0
- package/dist/projects/registry.js +90 -9
- package/dist/projects/registry.js.map +1 -1
- package/dist/security/projectAccess.js +69 -0
- package/dist/security/projectAccess.js.map +1 -0
- package/dist/security/projectAuthority.js +5 -1
- package/dist/security/projectAuthority.js.map +1 -1
- package/dist/server/appServer.js +23 -9
- package/dist/server/appServer.js.map +1 -1
- package/dist/server/bootstrap.js +9 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/configUi/app.css +8 -0
- package/dist/server/configUi/app.js +142 -18
- package/dist/server/configUi/index.html +50 -13
- package/dist/server/installationRuntime.js +6 -2
- package/dist/server/installationRuntime.js.map +1 -1
- package/dist/server/instructions.js +1 -1
- package/dist/server/instructions.js.map +1 -1
- package/dist/server/ipcDispatch.js +3 -0
- package/dist/server/ipcDispatch.js.map +1 -1
- package/dist/server/localConfig.js +80 -13
- package/dist/server/localConfig.js.map +1 -1
- package/dist/services/ai/subagents.js +1 -1
- package/dist/services/ai/subagents.js.map +1 -1
- package/dist/services/android/adbBackend.js +106 -0
- package/dist/services/android/adbBackend.js.map +1 -0
- package/dist/services/android/androidPolicy.js +61 -0
- package/dist/services/android/androidPolicy.js.map +1 -0
- package/dist/services/android/androidService.js +444 -0
- package/dist/services/android/androidService.js.map +1 -0
- package/dist/services/android/protocol.js +39 -0
- package/dist/services/android/protocol.js.map +1 -0
- package/dist/services/multimodal/storage.js +10 -1
- package/dist/services/multimodal/storage.js.map +1 -1
- package/dist/services/schedules/scheduleService.js +8 -1
- package/dist/services/schedules/scheduleService.js.map +1 -1
- package/dist/setup/componentProbes.js +7 -1
- package/dist/setup/componentProbes.js.map +1 -1
- package/dist/setup/setup.js +11 -1
- package/dist/setup/setup.js.map +1 -1
- package/dist/store/db.js +14 -0
- package/dist/store/db.js.map +1 -1
- package/dist/tools/agentRuntimeTools.js +2 -3
- package/dist/tools/agentRuntimeTools.js.map +1 -1
- package/dist/tools/androidTools.js +113 -0
- package/dist/tools/androidTools.js.map +1 -0
- package/dist/tools/catalog.js +3 -0
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/context.js +85 -5
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/projectTools.js +1 -1
- package/dist/tools/projectTools.js.map +1 -1
- package/dist/tools/surface.js +18 -11
- package/dist/tools/surface.js.map +1 -1
- package/dist/tunnel/control.js +11 -4
- package/dist/tunnel/control.js.map +1 -1
- package/dist/tunnel/log.js +32 -0
- package/dist/tunnel/log.js.map +1 -1
- package/dist/tunnel/supervisor.js +103 -24
- package/dist/tunnel/supervisor.js.map +1 -1
- package/docs/ANDROID.md +105 -28
- package/docs/ARCHITECTURE.md +16 -7
- package/docs/AUTH.md +6 -0
- package/docs/COMPATIBILITY.md +14 -7
- package/docs/MANUAL_ACCEPTANCE.md +40 -6
- package/docs/PROJECTS.md +73 -2
- package/docs/RELEASE_1.1.0.md +69 -0
- package/docs/RELEASE_1.2.0.md +75 -0
- package/docs/RELEASE_NOTES.md +30 -0
- package/docs/SECURITY.md +45 -6
- package/docs/TEST_REPORT.md +96 -0
- package/docs/TUNNEL.md +79 -16
- package/docs/adr/048-persistent-connection-mode.md +3 -1
- package/docs/adr/049-android-adb-control.md +52 -0
- package/docs/adr/050-cloudflare-local-and-project-access.md +67 -0
- package/docs/adr/README.md +2 -0
- package/package.json +6 -2
- package/schemas/global-config.schema.json +1 -0
- package/schemas/tools.compact.json +312 -9
- package/schemas/tools.hybrid.json +485 -152
- package/schemas/tools.json +3610 -534
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "GENERATED from src/tools — do not edit by hand. Complete Compact capability contract; the default live surface filters optional operation enums according to optionalMcpFeatures.",
|
|
3
3
|
"version": 1,
|
|
4
|
-
"toolCount":
|
|
5
|
-
"defaultLiveToolCount":
|
|
6
|
-
"fullToolCount":
|
|
7
|
-
"defaultLiveFullToolCount":
|
|
4
|
+
"toolCount": 20,
|
|
5
|
+
"defaultLiveToolCount": 20,
|
|
6
|
+
"fullToolCount": 138,
|
|
7
|
+
"defaultLiveFullToolCount": 134,
|
|
8
8
|
"optionalMcpFeatures": {
|
|
9
9
|
"subagents": {
|
|
10
10
|
"configKey": "exposeSubagentsToMcp",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
},
|
|
21
21
|
"stats": {
|
|
22
22
|
"compact": {
|
|
23
|
-
"toolCount":
|
|
24
|
-
"schemaBytes":
|
|
23
|
+
"toolCount": 20,
|
|
24
|
+
"schemaBytes": 59073
|
|
25
25
|
},
|
|
26
26
|
"hybrid": {
|
|
27
27
|
"toolCount": 49,
|
|
28
|
-
"schemaBytes":
|
|
28
|
+
"schemaBytes": 134966
|
|
29
29
|
},
|
|
30
30
|
"full": {
|
|
31
|
-
"toolCount":
|
|
32
|
-
"schemaBytes":
|
|
31
|
+
"toolCount": 138,
|
|
32
|
+
"schemaBytes": 500538
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"tools": [
|
|
@@ -53,6 +53,12 @@
|
|
|
53
53
|
"type": "string",
|
|
54
54
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
55
55
|
},
|
|
56
|
+
"targetProject": {
|
|
57
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"maxLength": 120
|
|
61
|
+
},
|
|
56
62
|
"projectId": {
|
|
57
63
|
"description": "Optional owner-registered project ID for read-only federation; omit to use the active workspace",
|
|
58
64
|
"type": "string",
|
|
@@ -178,6 +184,12 @@
|
|
|
178
184
|
"type": "string",
|
|
179
185
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
180
186
|
},
|
|
187
|
+
"targetProject": {
|
|
188
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
189
|
+
"type": "string",
|
|
190
|
+
"minLength": 1,
|
|
191
|
+
"maxLength": 120
|
|
192
|
+
},
|
|
181
193
|
"workspaceId": {
|
|
182
194
|
"type": "string",
|
|
183
195
|
"minLength": 1,
|
|
@@ -203,6 +215,7 @@
|
|
|
203
215
|
"exec",
|
|
204
216
|
"git",
|
|
205
217
|
"desktop",
|
|
218
|
+
"mobile",
|
|
206
219
|
"media",
|
|
207
220
|
"browser",
|
|
208
221
|
"game",
|
|
@@ -373,6 +386,12 @@
|
|
|
373
386
|
"type": "string",
|
|
374
387
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
375
388
|
},
|
|
389
|
+
"targetProject": {
|
|
390
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
391
|
+
"type": "string",
|
|
392
|
+
"minLength": 1,
|
|
393
|
+
"maxLength": 120
|
|
394
|
+
},
|
|
376
395
|
"workspaceId": {
|
|
377
396
|
"type": "string",
|
|
378
397
|
"minLength": 1,
|
|
@@ -562,6 +581,12 @@
|
|
|
562
581
|
"type": "string",
|
|
563
582
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
564
583
|
},
|
|
584
|
+
"targetProject": {
|
|
585
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
586
|
+
"type": "string",
|
|
587
|
+
"minLength": 1,
|
|
588
|
+
"maxLength": 120
|
|
589
|
+
},
|
|
565
590
|
"workspaceId": {
|
|
566
591
|
"type": "string",
|
|
567
592
|
"minLength": 1,
|
|
@@ -742,6 +767,12 @@
|
|
|
742
767
|
"type": "string",
|
|
743
768
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
744
769
|
},
|
|
770
|
+
"targetProject": {
|
|
771
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
772
|
+
"type": "string",
|
|
773
|
+
"minLength": 1,
|
|
774
|
+
"maxLength": 120
|
|
775
|
+
},
|
|
745
776
|
"workspaceId": {
|
|
746
777
|
"type": "string",
|
|
747
778
|
"minLength": 1,
|
|
@@ -910,6 +941,12 @@
|
|
|
910
941
|
"type": "string",
|
|
911
942
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
912
943
|
},
|
|
944
|
+
"targetProject": {
|
|
945
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
946
|
+
"type": "string",
|
|
947
|
+
"minLength": 1,
|
|
948
|
+
"maxLength": 120
|
|
949
|
+
},
|
|
913
950
|
"workspaceId": {
|
|
914
951
|
"type": "string",
|
|
915
952
|
"minLength": 1,
|
|
@@ -1070,6 +1107,12 @@
|
|
|
1070
1107
|
"type": "string",
|
|
1071
1108
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1072
1109
|
},
|
|
1110
|
+
"targetProject": {
|
|
1111
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
1112
|
+
"type": "string",
|
|
1113
|
+
"minLength": 1,
|
|
1114
|
+
"maxLength": 120
|
|
1115
|
+
},
|
|
1073
1116
|
"workspaceId": {
|
|
1074
1117
|
"type": "string",
|
|
1075
1118
|
"minLength": 1,
|
|
@@ -1231,6 +1274,12 @@
|
|
|
1231
1274
|
"type": "string",
|
|
1232
1275
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1233
1276
|
},
|
|
1277
|
+
"targetProject": {
|
|
1278
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
1279
|
+
"type": "string",
|
|
1280
|
+
"minLength": 1,
|
|
1281
|
+
"maxLength": 120
|
|
1282
|
+
},
|
|
1234
1283
|
"workspaceId": {
|
|
1235
1284
|
"type": "string",
|
|
1236
1285
|
"minLength": 1,
|
|
@@ -1392,6 +1441,12 @@
|
|
|
1392
1441
|
"type": "string",
|
|
1393
1442
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1394
1443
|
},
|
|
1444
|
+
"targetProject": {
|
|
1445
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
1446
|
+
"type": "string",
|
|
1447
|
+
"minLength": 1,
|
|
1448
|
+
"maxLength": 120
|
|
1449
|
+
},
|
|
1395
1450
|
"workspaceId": {
|
|
1396
1451
|
"type": "string",
|
|
1397
1452
|
"minLength": 1,
|
|
@@ -1574,6 +1629,12 @@
|
|
|
1574
1629
|
"type": "string",
|
|
1575
1630
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1576
1631
|
},
|
|
1632
|
+
"targetProject": {
|
|
1633
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
1634
|
+
"type": "string",
|
|
1635
|
+
"minLength": 1,
|
|
1636
|
+
"maxLength": 120
|
|
1637
|
+
},
|
|
1577
1638
|
"workspaceId": {
|
|
1578
1639
|
"type": "string",
|
|
1579
1640
|
"minLength": 1,
|
|
@@ -1774,6 +1835,12 @@
|
|
|
1774
1835
|
"type": "string",
|
|
1775
1836
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1776
1837
|
},
|
|
1838
|
+
"targetProject": {
|
|
1839
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
1840
|
+
"type": "string",
|
|
1841
|
+
"minLength": 1,
|
|
1842
|
+
"maxLength": 120
|
|
1843
|
+
},
|
|
1777
1844
|
"workspaceId": {
|
|
1778
1845
|
"type": "string",
|
|
1779
1846
|
"minLength": 1,
|
|
@@ -1967,6 +2034,12 @@
|
|
|
1967
2034
|
"type": "string",
|
|
1968
2035
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
1969
2036
|
},
|
|
2037
|
+
"targetProject": {
|
|
2038
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2039
|
+
"type": "string",
|
|
2040
|
+
"minLength": 1,
|
|
2041
|
+
"maxLength": 120
|
|
2042
|
+
},
|
|
1970
2043
|
"workspaceId": {
|
|
1971
2044
|
"type": "string",
|
|
1972
2045
|
"minLength": 1,
|
|
@@ -2145,6 +2218,12 @@
|
|
|
2145
2218
|
"type": "string",
|
|
2146
2219
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2147
2220
|
},
|
|
2221
|
+
"targetProject": {
|
|
2222
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2223
|
+
"type": "string",
|
|
2224
|
+
"minLength": 1,
|
|
2225
|
+
"maxLength": 120
|
|
2226
|
+
},
|
|
2148
2227
|
"workspaceId": {
|
|
2149
2228
|
"type": "string",
|
|
2150
2229
|
"minLength": 1,
|
|
@@ -2307,6 +2386,12 @@
|
|
|
2307
2386
|
"type": "string",
|
|
2308
2387
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2309
2388
|
},
|
|
2389
|
+
"targetProject": {
|
|
2390
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2391
|
+
"type": "string",
|
|
2392
|
+
"minLength": 1,
|
|
2393
|
+
"maxLength": 120
|
|
2394
|
+
},
|
|
2310
2395
|
"workspaceId": {
|
|
2311
2396
|
"type": "string",
|
|
2312
2397
|
"minLength": 1,
|
|
@@ -2466,6 +2551,12 @@
|
|
|
2466
2551
|
"type": "string",
|
|
2467
2552
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2468
2553
|
},
|
|
2554
|
+
"targetProject": {
|
|
2555
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2556
|
+
"type": "string",
|
|
2557
|
+
"minLength": 1,
|
|
2558
|
+
"maxLength": 120
|
|
2559
|
+
},
|
|
2469
2560
|
"workspaceId": {
|
|
2470
2561
|
"type": "string",
|
|
2471
2562
|
"minLength": 1,
|
|
@@ -2624,6 +2715,12 @@
|
|
|
2624
2715
|
"type": "string",
|
|
2625
2716
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2626
2717
|
},
|
|
2718
|
+
"targetProject": {
|
|
2719
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2720
|
+
"type": "string",
|
|
2721
|
+
"minLength": 1,
|
|
2722
|
+
"maxLength": 120
|
|
2723
|
+
},
|
|
2627
2724
|
"workspaceId": {
|
|
2628
2725
|
"type": "string",
|
|
2629
2726
|
"minLength": 1,
|
|
@@ -2782,6 +2879,12 @@
|
|
|
2782
2879
|
"type": "string",
|
|
2783
2880
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2784
2881
|
},
|
|
2882
|
+
"targetProject": {
|
|
2883
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
2884
|
+
"type": "string",
|
|
2885
|
+
"minLength": 1,
|
|
2886
|
+
"maxLength": 120
|
|
2887
|
+
},
|
|
2785
2888
|
"workspaceId": {
|
|
2786
2889
|
"type": "string",
|
|
2787
2890
|
"minLength": 1,
|
|
@@ -2940,6 +3043,12 @@
|
|
|
2940
3043
|
"type": "string",
|
|
2941
3044
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
2942
3045
|
},
|
|
3046
|
+
"targetProject": {
|
|
3047
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
3048
|
+
"type": "string",
|
|
3049
|
+
"minLength": 1,
|
|
3050
|
+
"maxLength": 120
|
|
3051
|
+
},
|
|
2943
3052
|
"workspaceId": {
|
|
2944
3053
|
"type": "string",
|
|
2945
3054
|
"minLength": 1,
|
|
@@ -3098,6 +3207,12 @@
|
|
|
3098
3207
|
"type": "string",
|
|
3099
3208
|
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
3100
3209
|
},
|
|
3210
|
+
"targetProject": {
|
|
3211
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
3212
|
+
"type": "string",
|
|
3213
|
+
"minLength": 1,
|
|
3214
|
+
"maxLength": 120
|
|
3215
|
+
},
|
|
3101
3216
|
"workspaceId": {
|
|
3102
3217
|
"type": "string",
|
|
3103
3218
|
"minLength": 1,
|
|
@@ -3231,6 +3346,194 @@
|
|
|
3231
3346
|
],
|
|
3232
3347
|
"additionalProperties": false
|
|
3233
3348
|
}
|
|
3349
|
+
},
|
|
3350
|
+
{
|
|
3351
|
+
"name": "dodo_mobile",
|
|
3352
|
+
"title": "Inspect and control Android devices",
|
|
3353
|
+
"description": "Gateway: owner-approved ADB devices: status, screenshots, UI, logs, packages, files, input, apps, APK install and bounded advanced device commands. Set operation to one of: android_status, android_devices, android_device_info, android_capture, android_ui, android_logcat, android_packages, android_file_read, android_action, android_app, android_install, android_push, android_adb. Put that operation's own arguments in args (never workspaceId/workspaceEpoch — they come from the top level only). Identical authorization to calling the operation directly: its own OAuth scope, workspace access, trust policy, local approvals, path/secret guards, hash checks and audit all apply. Call dodo_discover with operation=\"<name>\" for the exact input schema.",
|
|
3354
|
+
"requiredScope": "dodo:read",
|
|
3355
|
+
"annotations": {
|
|
3356
|
+
"readOnlyHint": false,
|
|
3357
|
+
"destructiveHint": true,
|
|
3358
|
+
"idempotentHint": false,
|
|
3359
|
+
"openWorldHint": true
|
|
3360
|
+
},
|
|
3361
|
+
"domain": "mobile",
|
|
3362
|
+
"operations": [
|
|
3363
|
+
"android_status",
|
|
3364
|
+
"android_devices",
|
|
3365
|
+
"android_device_info",
|
|
3366
|
+
"android_capture",
|
|
3367
|
+
"android_ui",
|
|
3368
|
+
"android_logcat",
|
|
3369
|
+
"android_packages",
|
|
3370
|
+
"android_file_read",
|
|
3371
|
+
"android_action",
|
|
3372
|
+
"android_app",
|
|
3373
|
+
"android_install",
|
|
3374
|
+
"android_push",
|
|
3375
|
+
"android_adb"
|
|
3376
|
+
],
|
|
3377
|
+
"inputSchema": {
|
|
3378
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3379
|
+
"type": "object",
|
|
3380
|
+
"properties": {
|
|
3381
|
+
"targetProjectId": {
|
|
3382
|
+
"description": "Explicit owner-registered target; use its project_overview context",
|
|
3383
|
+
"type": "string",
|
|
3384
|
+
"pattern": "^prj_[0-9a-hjkmnp-tv-z]{8,64}$"
|
|
3385
|
+
},
|
|
3386
|
+
"targetProject": {
|
|
3387
|
+
"description": "Owner-registered project NAME to target (alternative to targetProjectId; must match exactly one project)",
|
|
3388
|
+
"type": "string",
|
|
3389
|
+
"minLength": 1,
|
|
3390
|
+
"maxLength": 120
|
|
3391
|
+
},
|
|
3392
|
+
"workspaceId": {
|
|
3393
|
+
"type": "string",
|
|
3394
|
+
"minLength": 1,
|
|
3395
|
+
"maxLength": 128,
|
|
3396
|
+
"description": "Workspace id from project_overview"
|
|
3397
|
+
},
|
|
3398
|
+
"workspaceEpoch": {
|
|
3399
|
+
"type": "string",
|
|
3400
|
+
"minLength": 1,
|
|
3401
|
+
"maxLength": 128,
|
|
3402
|
+
"description": "Workspace epoch from project_overview (changes on server restart or workspace switch)"
|
|
3403
|
+
},
|
|
3404
|
+
"operation": {
|
|
3405
|
+
"type": "string",
|
|
3406
|
+
"enum": [
|
|
3407
|
+
"android_status",
|
|
3408
|
+
"android_devices",
|
|
3409
|
+
"android_device_info",
|
|
3410
|
+
"android_capture",
|
|
3411
|
+
"android_ui",
|
|
3412
|
+
"android_logcat",
|
|
3413
|
+
"android_packages",
|
|
3414
|
+
"android_file_read",
|
|
3415
|
+
"android_action",
|
|
3416
|
+
"android_app",
|
|
3417
|
+
"android_install",
|
|
3418
|
+
"android_push",
|
|
3419
|
+
"android_adb"
|
|
3420
|
+
],
|
|
3421
|
+
"description": "Target operation to invoke"
|
|
3422
|
+
},
|
|
3423
|
+
"args": {
|
|
3424
|
+
"default": {},
|
|
3425
|
+
"description": "The selected operation's own arguments, exactly as its schema defines (dodo_discover returns it). Never include workspaceId/workspaceEpoch here.",
|
|
3426
|
+
"type": "object",
|
|
3427
|
+
"propertyNames": {
|
|
3428
|
+
"type": "string"
|
|
3429
|
+
},
|
|
3430
|
+
"additionalProperties": {}
|
|
3431
|
+
}
|
|
3432
|
+
},
|
|
3433
|
+
"required": [
|
|
3434
|
+
"workspaceId",
|
|
3435
|
+
"workspaceEpoch",
|
|
3436
|
+
"operation",
|
|
3437
|
+
"args"
|
|
3438
|
+
],
|
|
3439
|
+
"additionalProperties": false
|
|
3440
|
+
},
|
|
3441
|
+
"outputSchema": {
|
|
3442
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3443
|
+
"type": "object",
|
|
3444
|
+
"properties": {
|
|
3445
|
+
"ok": {
|
|
3446
|
+
"type": "boolean"
|
|
3447
|
+
},
|
|
3448
|
+
"workspaceId": {
|
|
3449
|
+
"type": [
|
|
3450
|
+
"string",
|
|
3451
|
+
"null"
|
|
3452
|
+
]
|
|
3453
|
+
},
|
|
3454
|
+
"workspaceEpoch": {
|
|
3455
|
+
"type": [
|
|
3456
|
+
"string",
|
|
3457
|
+
"null"
|
|
3458
|
+
]
|
|
3459
|
+
},
|
|
3460
|
+
"data": {
|
|
3461
|
+
"anyOf": [
|
|
3462
|
+
{
|
|
3463
|
+
"type": "object",
|
|
3464
|
+
"properties": {},
|
|
3465
|
+
"additionalProperties": {}
|
|
3466
|
+
},
|
|
3467
|
+
{
|
|
3468
|
+
"type": "null"
|
|
3469
|
+
}
|
|
3470
|
+
]
|
|
3471
|
+
},
|
|
3472
|
+
"error": {
|
|
3473
|
+
"anyOf": [
|
|
3474
|
+
{
|
|
3475
|
+
"type": "object",
|
|
3476
|
+
"properties": {
|
|
3477
|
+
"code": {
|
|
3478
|
+
"type": "string"
|
|
3479
|
+
},
|
|
3480
|
+
"message": {
|
|
3481
|
+
"type": "string"
|
|
3482
|
+
},
|
|
3483
|
+
"retryable": {
|
|
3484
|
+
"type": "boolean"
|
|
3485
|
+
},
|
|
3486
|
+
"recovery": {
|
|
3487
|
+
"type": "string"
|
|
3488
|
+
},
|
|
3489
|
+
"detail": {
|
|
3490
|
+
"type": "object",
|
|
3491
|
+
"propertyNames": {
|
|
3492
|
+
"type": "string"
|
|
3493
|
+
},
|
|
3494
|
+
"additionalProperties": {}
|
|
3495
|
+
}
|
|
3496
|
+
},
|
|
3497
|
+
"required": [
|
|
3498
|
+
"code",
|
|
3499
|
+
"message",
|
|
3500
|
+
"retryable"
|
|
3501
|
+
],
|
|
3502
|
+
"additionalProperties": false
|
|
3503
|
+
},
|
|
3504
|
+
{
|
|
3505
|
+
"type": "null"
|
|
3506
|
+
}
|
|
3507
|
+
]
|
|
3508
|
+
},
|
|
3509
|
+
"warnings": {
|
|
3510
|
+
"type": "array",
|
|
3511
|
+
"items": {
|
|
3512
|
+
"type": "string"
|
|
3513
|
+
}
|
|
3514
|
+
},
|
|
3515
|
+
"truncated": {
|
|
3516
|
+
"type": "boolean"
|
|
3517
|
+
},
|
|
3518
|
+
"nextCursor": {
|
|
3519
|
+
"type": [
|
|
3520
|
+
"string",
|
|
3521
|
+
"null"
|
|
3522
|
+
]
|
|
3523
|
+
}
|
|
3524
|
+
},
|
|
3525
|
+
"required": [
|
|
3526
|
+
"ok",
|
|
3527
|
+
"workspaceId",
|
|
3528
|
+
"workspaceEpoch",
|
|
3529
|
+
"data",
|
|
3530
|
+
"error",
|
|
3531
|
+
"warnings",
|
|
3532
|
+
"truncated",
|
|
3533
|
+
"nextCursor"
|
|
3534
|
+
],
|
|
3535
|
+
"additionalProperties": false
|
|
3536
|
+
}
|
|
3234
3537
|
}
|
|
3235
3538
|
]
|
|
3236
3539
|
}
|