@stim-cli/server 1.20.2 → 1.22.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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "title": "Stim server protocol",
4
- "description": "Messages exchanged over the stim-server WebSocket, protocol version 1.",
5
- "x-stim-protocol": 1,
4
+ "description": "Messages exchanged over the stim-server WebSocket, protocol version 2.",
5
+ "x-stim-protocol": 2,
6
6
  "$defs": {
7
7
  "ProtocolError": {
8
8
  "type": "object",
@@ -17,8 +17,7 @@
17
17
  "unauthorized",
18
18
  "pairing-expired",
19
19
  "protocol-unsupported",
20
- "approval-pending",
21
- "identity-unavailable",
20
+ "unknown-secret",
22
21
  "bad-request",
23
22
  "unknown-method",
24
23
  "already-authenticated",
@@ -1124,16 +1123,12 @@
1124
1123
  },
1125
1124
  "HelloParams": {
1126
1125
  "type": "object",
1126
+ "description": "The first request, sent encrypted after the Noise handshake on a network connection, or in the clear on the local Unix socket.",
1127
1127
  "required": [
1128
- "protocol",
1129
- "client",
1130
- "auth"
1128
+ "client"
1131
1129
  ],
1132
1130
  "additionalProperties": false,
1133
1131
  "properties": {
1134
- "protocol": {
1135
- "type": "integer"
1136
- },
1137
1132
  "client": {
1138
1133
  "type": "object",
1139
1134
  "required": [
@@ -1153,64 +1148,14 @@
1153
1148
  }
1154
1149
  }
1155
1150
  },
1156
- "auth": {
1157
- "oneOf": [
1158
- {
1159
- "type": "object",
1160
- "required": [
1161
- "pairingToken",
1162
- "deviceName"
1163
- ],
1164
- "additionalProperties": false,
1165
- "properties": {
1166
- "pairingToken": {
1167
- "type": "string"
1168
- },
1169
- "deviceName": {
1170
- "type": "string",
1171
- "minLength": 1
1172
- }
1173
- }
1174
- },
1175
- {
1176
- "type": "object",
1177
- "required": [
1178
- "deviceToken"
1179
- ],
1180
- "additionalProperties": false,
1181
- "properties": {
1182
- "deviceToken": {
1183
- "type": "string"
1184
- }
1185
- }
1186
- },
1187
- {
1188
- "type": "object",
1189
- "required": [
1190
- "request",
1191
- "deviceName"
1192
- ],
1193
- "additionalProperties": false,
1194
- "properties": {
1195
- "request": {
1196
- "enum": [
1197
- "build",
1198
- "device-host"
1199
- ]
1200
- },
1201
- "deviceName": {
1202
- "type": "string",
1203
- "minLength": 1
1204
- },
1205
- "setupTicket": {
1206
- "type": "string",
1207
- "minLength": 43,
1208
- "maxLength": 43,
1209
- "pattern": "^[A-Za-z0-9_-]{43}$"
1210
- }
1211
- }
1212
- }
1151
+ "access": {
1152
+ "enum": [
1153
+ "build",
1154
+ "device-host"
1213
1155
  ]
1156
+ },
1157
+ "desktopBootstrap": {
1158
+ "const": true
1214
1159
  }
1215
1160
  }
1216
1161
  },
@@ -1276,6 +1221,12 @@
1276
1221
  },
1277
1222
  "home": {
1278
1223
  "type": "string"
1224
+ },
1225
+ "id": {
1226
+ "type": "string"
1227
+ },
1228
+ "port": {
1229
+ "type": "integer"
1279
1230
  }
1280
1231
  }
1281
1232
  },
@@ -1315,10 +1266,33 @@
1315
1266
  "hosted-ios-process",
1316
1267
  "native-xcode-build",
1317
1268
  "native-xcode-toolchain",
1269
+ "build-artifact-cache",
1318
1270
  "native-gradle-build",
1271
+ "native-gradle-artifact-cache",
1272
+ "native-gradle-peer-cache",
1273
+ "react-native-peer-cache",
1274
+ "swiftpm-peer-cache",
1275
+ "build-dependency-cache",
1319
1276
  "hosted-android-data",
1320
1277
  "hosted-android-process",
1321
- "server-update"
1278
+ "server-update",
1279
+ "status-views",
1280
+ "desktop-reports",
1281
+ "desktop-report-platform",
1282
+ "desktop-settings",
1283
+ "desktop-settings-write",
1284
+ "desktop-full-logs",
1285
+ "desktop-doctor-run",
1286
+ "desktop-machine-access",
1287
+ "desktop-stop",
1288
+ "desktop-reload",
1289
+ "desktop-start",
1290
+ "desktop-run",
1291
+ "desktop-build",
1292
+ "desktop-gc",
1293
+ "desktop-worktree-remove",
1294
+ "desktop-worktree-warm",
1295
+ "desktop-plan"
1322
1296
  ]
1323
1297
  }
1324
1298
  },
@@ -1347,27 +1321,38 @@
1347
1321
  }
1348
1322
  }
1349
1323
  },
1350
- "deviceToken": {
1351
- "type": "string"
1352
- },
1353
- "approval": {
1324
+ "desktopBootstrap": {
1354
1325
  "type": "object",
1355
1326
  "required": [
1356
- "state",
1357
- "expiresAt"
1327
+ "nonce",
1328
+ "proof"
1358
1329
  ],
1359
1330
  "additionalProperties": false,
1360
1331
  "properties": {
1361
- "state": {
1362
- "const": "pending"
1332
+ "nonce": {
1333
+ "type": "string",
1334
+ "pattern": "^[A-Za-z0-9_-]{43}$"
1363
1335
  },
1364
- "expiresAt": {
1365
- "type": "string"
1336
+ "proof": {
1337
+ "type": "string",
1338
+ "pattern": "^[A-Za-z0-9_-]{43}$"
1366
1339
  }
1367
1340
  }
1368
1341
  }
1369
1342
  }
1370
1343
  },
1344
+ "DesktopAuthenticateResult": {
1345
+ "type": "object",
1346
+ "required": [
1347
+ "authorized"
1348
+ ],
1349
+ "additionalProperties": false,
1350
+ "properties": {
1351
+ "authorized": {
1352
+ "const": true
1353
+ }
1354
+ }
1355
+ },
1371
1356
  "LogRecord": {
1372
1357
  "type": "object",
1373
1358
  "description": "One record as `stim logs --json` prints it.",
@@ -1393,6 +1378,49 @@
1393
1378
  }
1394
1379
  }
1395
1380
  },
1381
+ "DesktopLogFilter": {
1382
+ "type": "object",
1383
+ "required": [
1384
+ "workspace"
1385
+ ],
1386
+ "additionalProperties": false,
1387
+ "properties": {
1388
+ "workspace": {
1389
+ "type": "string"
1390
+ },
1391
+ "sources": {
1392
+ "type": "array",
1393
+ "minItems": 1,
1394
+ "items": {
1395
+ "enum": [
1396
+ "metro",
1397
+ "client",
1398
+ "device",
1399
+ "build",
1400
+ "agent",
1401
+ "maintenance",
1402
+ "placement"
1403
+ ]
1404
+ }
1405
+ },
1406
+ "level": {
1407
+ "enum": [
1408
+ "debug",
1409
+ "info",
1410
+ "warn",
1411
+ "error",
1412
+ "fatal"
1413
+ ]
1414
+ },
1415
+ "grep": {
1416
+ "type": "string",
1417
+ "pattern": "^[^\\u0000]*$"
1418
+ },
1419
+ "errors": {
1420
+ "type": "boolean"
1421
+ }
1422
+ }
1423
+ },
1396
1424
  "LogFilter": {
1397
1425
  "type": "object",
1398
1426
  "oneOf": [
@@ -2094,6 +2122,71 @@
2094
2122
  }
2095
2123
  }
2096
2124
  },
2125
+ "DesktopReportTarget": {
2126
+ "oneOf": [
2127
+ {
2128
+ "type": "object",
2129
+ "required": [
2130
+ "report"
2131
+ ],
2132
+ "additionalProperties": false,
2133
+ "properties": {
2134
+ "report": {
2135
+ "const": "gc"
2136
+ }
2137
+ }
2138
+ },
2139
+ {
2140
+ "type": "object",
2141
+ "required": [
2142
+ "report",
2143
+ "cwd"
2144
+ ],
2145
+ "additionalProperties": false,
2146
+ "properties": {
2147
+ "report": {
2148
+ "const": "doctor"
2149
+ },
2150
+ "cwd": {
2151
+ "type": "string",
2152
+ "minLength": 1,
2153
+ "maxLength": 4096
2154
+ },
2155
+ "platform": {
2156
+ "enum": [
2157
+ "ios",
2158
+ "android"
2159
+ ]
2160
+ }
2161
+ }
2162
+ }
2163
+ ]
2164
+ },
2165
+ "DesktopReportSnapshot": {
2166
+ "type": "object",
2167
+ "required": [
2168
+ "pending",
2169
+ "value"
2170
+ ],
2171
+ "additionalProperties": false,
2172
+ "properties": {
2173
+ "pending": {
2174
+ "type": "boolean"
2175
+ },
2176
+ "value": {
2177
+ "type": [
2178
+ "object",
2179
+ "null"
2180
+ ]
2181
+ },
2182
+ "error": {
2183
+ "type": "string"
2184
+ },
2185
+ "measuredAt": {
2186
+ "type": "string"
2187
+ }
2188
+ }
2189
+ },
2097
2190
  "MachineDetails": {
2098
2191
  "type": "object",
2099
2192
  "required": [
@@ -2129,7 +2222,7 @@
2129
2222
  "array",
2130
2223
  "null"
2131
2224
  ],
2132
- "description": "`remoteMachines` from `stim doctor --json --platform ios`.",
2225
+ "description": "`remoteMachines` from `stim doctor --json`.",
2133
2226
  "items": {
2134
2227
  "type": "object"
2135
2228
  }
@@ -2145,7 +2238,7 @@
2145
2238
  },
2146
2239
  "buildClients": {
2147
2240
  "type": "array",
2148
- "description": "The builds this Mac ran for each client, from the audit log.",
2241
+ "description": "The builds this machine ran for each client, from the audit log.",
2149
2242
  "items": {
2150
2243
  "type": "object",
2151
2244
  "required": [
@@ -3777,7 +3870,8 @@
3777
3870
  "type": "object",
3778
3871
  "required": [
3779
3872
  "id",
3780
- "method"
3873
+ "method",
3874
+ "params"
3781
3875
  ],
3782
3876
  "additionalProperties": false,
3783
3877
  "properties": {
@@ -3788,11 +3882,20 @@
3788
3882
  ]
3789
3883
  },
3790
3884
  "method": {
3791
- "const": "route.setup"
3885
+ "const": "desktop.authenticate"
3792
3886
  },
3793
3887
  "params": {
3794
3888
  "type": "object",
3795
- "maxProperties": 0
3889
+ "required": [
3890
+ "proof"
3891
+ ],
3892
+ "additionalProperties": false,
3893
+ "properties": {
3894
+ "proof": {
3895
+ "type": "string",
3896
+ "pattern": "^[A-Za-z0-9_-]{43}$"
3897
+ }
3898
+ }
3796
3899
  }
3797
3900
  }
3798
3901
  },
@@ -3811,7 +3914,7 @@
3811
3914
  ]
3812
3915
  },
3813
3916
  "method": {
3814
- "const": "status.subscribe"
3917
+ "const": "route.setup"
3815
3918
  },
3816
3919
  "params": {
3817
3920
  "type": "object",
@@ -3835,10 +3938,10 @@
3835
3938
  ]
3836
3939
  },
3837
3940
  "method": {
3838
- "const": "logs.query"
3941
+ "const": "desktop.reports.get"
3839
3942
  },
3840
3943
  "params": {
3841
- "$ref": "#/$defs/LogFilter"
3944
+ "$ref": "#/$defs/DesktopReportTarget"
3842
3945
  }
3843
3946
  }
3844
3947
  },
@@ -3858,10 +3961,10 @@
3858
3961
  ]
3859
3962
  },
3860
3963
  "method": {
3861
- "const": "logs.subscribe"
3964
+ "const": "desktop.reports.subscribe"
3862
3965
  },
3863
3966
  "params": {
3864
- "$ref": "#/$defs/LogFilter"
3967
+ "$ref": "#/$defs/DesktopReportTarget"
3865
3968
  }
3866
3969
  }
3867
3970
  },
@@ -3869,8 +3972,7 @@
3869
3972
  "type": "object",
3870
3973
  "required": [
3871
3974
  "id",
3872
- "method",
3873
- "params"
3975
+ "method"
3874
3976
  ],
3875
3977
  "additionalProperties": false,
3876
3978
  "properties": {
@@ -3881,10 +3983,11 @@
3881
3983
  ]
3882
3984
  },
3883
3985
  "method": {
3884
- "const": "frames.subscribe"
3986
+ "const": "desktop.reports.invalidate"
3885
3987
  },
3886
3988
  "params": {
3887
- "$ref": "#/$defs/FrameTarget"
3989
+ "type": "object",
3990
+ "maxProperties": 0
3888
3991
  }
3889
3992
  }
3890
3993
  },
@@ -3904,17 +4007,19 @@
3904
4007
  ]
3905
4008
  },
3906
4009
  "method": {
3907
- "const": "frames.keyframe"
4010
+ "const": "desktop.settings.get"
3908
4011
  },
3909
4012
  "params": {
3910
4013
  "type": "object",
3911
4014
  "required": [
3912
- "subscription"
4015
+ "cwd"
3913
4016
  ],
3914
4017
  "additionalProperties": false,
3915
4018
  "properties": {
3916
- "subscription": {
3917
- "type": "string"
4019
+ "cwd": {
4020
+ "type": "string",
4021
+ "minLength": 1,
4022
+ "maxLength": 4096
3918
4023
  }
3919
4024
  }
3920
4025
  }
@@ -3936,32 +4041,79 @@
3936
4041
  ]
3937
4042
  },
3938
4043
  "method": {
3939
- "const": "frames.seek"
4044
+ "const": "desktop.settings.write"
3940
4045
  },
3941
4046
  "params": {
3942
- "type": "object",
3943
- "required": [
3944
- "subscription",
3945
- "at",
3946
- "rate"
3947
- ],
3948
- "additionalProperties": false,
3949
- "properties": {
3950
- "subscription": {
3951
- "type": "string"
3952
- },
3953
- "at": {
3954
- "type": "number",
3955
- "description": "Epoch milliseconds on the Mac clock."
4047
+ "oneOf": [
4048
+ {
4049
+ "type": "object",
4050
+ "required": [
4051
+ "cwd",
4052
+ "action",
4053
+ "key",
4054
+ "value"
4055
+ ],
4056
+ "additionalProperties": false,
4057
+ "properties": {
4058
+ "cwd": {
4059
+ "type": "string",
4060
+ "minLength": 1,
4061
+ "maxLength": 4096
4062
+ },
4063
+ "action": {
4064
+ "const": "set"
4065
+ },
4066
+ "key": {
4067
+ "type": "string",
4068
+ "minLength": 1,
4069
+ "maxLength": 256
4070
+ },
4071
+ "scope": {
4072
+ "enum": [
4073
+ "machine",
4074
+ "workspace",
4075
+ "repo",
4076
+ "committed"
4077
+ ]
4078
+ },
4079
+ "value": {
4080
+ "type": "string"
4081
+ }
4082
+ }
3956
4083
  },
3957
- "rate": {
3958
- "enum": [
3959
- 0,
3960
- 1,
3961
- 2
3962
- ]
4084
+ {
4085
+ "type": "object",
4086
+ "required": [
4087
+ "cwd",
4088
+ "action",
4089
+ "key"
4090
+ ],
4091
+ "additionalProperties": false,
4092
+ "properties": {
4093
+ "cwd": {
4094
+ "type": "string",
4095
+ "minLength": 1,
4096
+ "maxLength": 4096
4097
+ },
4098
+ "action": {
4099
+ "const": "unset"
4100
+ },
4101
+ "key": {
4102
+ "type": "string",
4103
+ "minLength": 1,
4104
+ "maxLength": 256
4105
+ },
4106
+ "scope": {
4107
+ "enum": [
4108
+ "machine",
4109
+ "workspace",
4110
+ "repo",
4111
+ "committed"
4112
+ ]
4113
+ }
4114
+ }
3963
4115
  }
3964
- }
4116
+ ]
3965
4117
  }
3966
4118
  }
3967
4119
  },
@@ -3981,11 +4133,1239 @@
3981
4133
  ]
3982
4134
  },
3983
4135
  "method": {
3984
- "const": "frames.live"
4136
+ "const": "desktop.logs.subscribe"
3985
4137
  },
3986
4138
  "params": {
3987
- "type": "object",
3988
- "required": [
4139
+ "$ref": "#/$defs/DesktopLogFilter"
4140
+ }
4141
+ }
4142
+ },
4143
+ {
4144
+ "type": "object",
4145
+ "required": [
4146
+ "id",
4147
+ "method",
4148
+ "params"
4149
+ ],
4150
+ "additionalProperties": false,
4151
+ "properties": {
4152
+ "id": {
4153
+ "type": [
4154
+ "integer",
4155
+ "string"
4156
+ ]
4157
+ },
4158
+ "method": {
4159
+ "const": "desktop.doctor.run"
4160
+ },
4161
+ "params": {
4162
+ "type": "object",
4163
+ "required": [
4164
+ "cwd"
4165
+ ],
4166
+ "additionalProperties": false,
4167
+ "properties": {
4168
+ "cwd": {
4169
+ "type": "string",
4170
+ "minLength": 1,
4171
+ "maxLength": 4096
4172
+ },
4173
+ "platform": {
4174
+ "enum": [
4175
+ "ios",
4176
+ "android"
4177
+ ]
4178
+ }
4179
+ }
4180
+ }
4181
+ }
4182
+ },
4183
+ {
4184
+ "type": "object",
4185
+ "required": [
4186
+ "id",
4187
+ "method",
4188
+ "params"
4189
+ ],
4190
+ "additionalProperties": false,
4191
+ "properties": {
4192
+ "id": {
4193
+ "type": [
4194
+ "integer",
4195
+ "string"
4196
+ ]
4197
+ },
4198
+ "method": {
4199
+ "const": "desktop.stop.subscribe"
4200
+ },
4201
+ "params": {
4202
+ "type": "object",
4203
+ "required": [
4204
+ "cwd"
4205
+ ],
4206
+ "additionalProperties": false,
4207
+ "properties": {
4208
+ "cwd": {
4209
+ "type": "string",
4210
+ "minLength": 1,
4211
+ "maxLength": 4096
4212
+ },
4213
+ "slot": {
4214
+ "type": "string",
4215
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
4216
+ "not": {
4217
+ "enum": [
4218
+ "constructor",
4219
+ "prototype",
4220
+ "__proto__"
4221
+ ]
4222
+ }
4223
+ }
4224
+ }
4225
+ }
4226
+ }
4227
+ },
4228
+ {
4229
+ "type": "object",
4230
+ "required": [
4231
+ "id",
4232
+ "method",
4233
+ "params"
4234
+ ],
4235
+ "additionalProperties": false,
4236
+ "properties": {
4237
+ "id": {
4238
+ "type": [
4239
+ "integer",
4240
+ "string"
4241
+ ]
4242
+ },
4243
+ "method": {
4244
+ "const": "desktop.machine-access.subscribe"
4245
+ },
4246
+ "params": {
4247
+ "type": "object",
4248
+ "required": [
4249
+ "cwd"
4250
+ ],
4251
+ "additionalProperties": false,
4252
+ "properties": {
4253
+ "cwd": {
4254
+ "type": "string",
4255
+ "minLength": 1,
4256
+ "maxLength": 4096
4257
+ },
4258
+ "ticket": {
4259
+ "type": "string",
4260
+ "pattern": "^[A-Za-z0-9_-]{43}$"
4261
+ }
4262
+ }
4263
+ }
4264
+ }
4265
+ },
4266
+ {
4267
+ "type": "object",
4268
+ "required": [
4269
+ "id",
4270
+ "method",
4271
+ "params"
4272
+ ],
4273
+ "additionalProperties": false,
4274
+ "properties": {
4275
+ "id": {
4276
+ "type": [
4277
+ "integer",
4278
+ "string"
4279
+ ]
4280
+ },
4281
+ "method": {
4282
+ "const": "desktop.reload.subscribe"
4283
+ },
4284
+ "params": {
4285
+ "type": "object",
4286
+ "required": [
4287
+ "cwd"
4288
+ ],
4289
+ "additionalProperties": false,
4290
+ "properties": {
4291
+ "cwd": {
4292
+ "type": "string",
4293
+ "minLength": 1,
4294
+ "maxLength": 4096
4295
+ },
4296
+ "platform": {
4297
+ "enum": [
4298
+ "ios",
4299
+ "android",
4300
+ "web"
4301
+ ]
4302
+ }
4303
+ }
4304
+ }
4305
+ }
4306
+ },
4307
+ {
4308
+ "type": "object",
4309
+ "required": [
4310
+ "id",
4311
+ "method",
4312
+ "params"
4313
+ ],
4314
+ "additionalProperties": false,
4315
+ "properties": {
4316
+ "id": {
4317
+ "type": [
4318
+ "integer",
4319
+ "string"
4320
+ ]
4321
+ },
4322
+ "method": {
4323
+ "const": "desktop.start.subscribe"
4324
+ },
4325
+ "params": {
4326
+ "type": "object",
4327
+ "required": [
4328
+ "cwd"
4329
+ ],
4330
+ "additionalProperties": false,
4331
+ "properties": {
4332
+ "cwd": {
4333
+ "type": "string",
4334
+ "minLength": 1,
4335
+ "maxLength": 4096
4336
+ },
4337
+ "remote": {
4338
+ "type": "boolean"
4339
+ },
4340
+ "resetCache": {
4341
+ "type": "boolean"
4342
+ },
4343
+ "waitSeconds": {
4344
+ "type": "integer",
4345
+ "minimum": 1,
4346
+ "maximum": 9007199254740991
4347
+ }
4348
+ }
4349
+ }
4350
+ }
4351
+ },
4352
+ {
4353
+ "type": "object",
4354
+ "required": [
4355
+ "id",
4356
+ "method",
4357
+ "params"
4358
+ ],
4359
+ "additionalProperties": false,
4360
+ "properties": {
4361
+ "id": {
4362
+ "type": [
4363
+ "integer",
4364
+ "string"
4365
+ ]
4366
+ },
4367
+ "method": {
4368
+ "const": "desktop.run.subscribe"
4369
+ },
4370
+ "params": {
4371
+ "type": "object",
4372
+ "required": [
4373
+ "cwd",
4374
+ "options"
4375
+ ],
4376
+ "additionalProperties": false,
4377
+ "properties": {
4378
+ "cwd": {
4379
+ "type": "string",
4380
+ "minLength": 1,
4381
+ "maxLength": 4096
4382
+ },
4383
+ "options": {
4384
+ "oneOf": [
4385
+ {
4386
+ "type": "object",
4387
+ "required": [
4388
+ "platform"
4389
+ ],
4390
+ "additionalProperties": false,
4391
+ "properties": {
4392
+ "platform": {
4393
+ "const": "ios"
4394
+ },
4395
+ "slot": {
4396
+ "type": "string",
4397
+ "minLength": 1,
4398
+ "maxLength": 1024,
4399
+ "pattern": "^[^\\u0000]+$"
4400
+ },
4401
+ "remote": {
4402
+ "type": "string",
4403
+ "minLength": 1,
4404
+ "maxLength": 1024,
4405
+ "pattern": "^[^\\u0000]+$"
4406
+ },
4407
+ "remoteBuild": {
4408
+ "type": "string",
4409
+ "minLength": 1,
4410
+ "maxLength": 1024,
4411
+ "pattern": "^[^\\u0000]+$"
4412
+ },
4413
+ "easProfile": {
4414
+ "type": "string",
4415
+ "minLength": 1,
4416
+ "maxLength": 1024,
4417
+ "pattern": "^[^\\u0000]+$"
4418
+ },
4419
+ "device": {
4420
+ "oneOf": [
4421
+ {
4422
+ "type": "string",
4423
+ "minLength": 1,
4424
+ "maxLength": 1024,
4425
+ "pattern": "^[^\\u0000]+$"
4426
+ },
4427
+ {
4428
+ "type": "boolean"
4429
+ }
4430
+ ]
4431
+ },
4432
+ "wait": {
4433
+ "oneOf": [
4434
+ {
4435
+ "type": "string",
4436
+ "minLength": 1,
4437
+ "maxLength": 1024,
4438
+ "pattern": "^[^\\u0000]+$"
4439
+ },
4440
+ {
4441
+ "type": "boolean"
4442
+ }
4443
+ ]
4444
+ },
4445
+ "metroCheck": {
4446
+ "type": "boolean"
4447
+ },
4448
+ "buildCache": {
4449
+ "type": "boolean"
4450
+ },
4451
+ "configuration": {
4452
+ "type": "string",
4453
+ "minLength": 1,
4454
+ "maxLength": 1024,
4455
+ "pattern": "^[^\\u0000]+$"
4456
+ },
4457
+ "scheme": {
4458
+ "type": "string",
4459
+ "minLength": 1,
4460
+ "maxLength": 1024,
4461
+ "pattern": "^[^\\u0000]+$"
4462
+ },
4463
+ "deviceType": {
4464
+ "type": "string",
4465
+ "minLength": 1,
4466
+ "maxLength": 1024,
4467
+ "pattern": "^[^\\u0000]+$"
4468
+ },
4469
+ "runtime": {
4470
+ "type": "string",
4471
+ "minLength": 1,
4472
+ "maxLength": 1024,
4473
+ "pattern": "^[^\\u0000]+$"
4474
+ },
4475
+ "simulatorApp": {
4476
+ "type": "string",
4477
+ "minLength": 1,
4478
+ "maxLength": 1024,
4479
+ "pattern": "^[^\\u0000]+$"
4480
+ }
4481
+ }
4482
+ },
4483
+ {
4484
+ "type": "object",
4485
+ "required": [
4486
+ "platform"
4487
+ ],
4488
+ "additionalProperties": false,
4489
+ "properties": {
4490
+ "platform": {
4491
+ "const": "android"
4492
+ },
4493
+ "slot": {
4494
+ "type": "string",
4495
+ "minLength": 1,
4496
+ "maxLength": 1024,
4497
+ "pattern": "^[^\\u0000]+$"
4498
+ },
4499
+ "remote": {
4500
+ "type": "string",
4501
+ "minLength": 1,
4502
+ "maxLength": 1024,
4503
+ "pattern": "^[^\\u0000]+$"
4504
+ },
4505
+ "remoteBuild": {
4506
+ "type": "string",
4507
+ "minLength": 1,
4508
+ "maxLength": 1024,
4509
+ "pattern": "^[^\\u0000]+$"
4510
+ },
4511
+ "easProfile": {
4512
+ "type": "string",
4513
+ "minLength": 1,
4514
+ "maxLength": 1024,
4515
+ "pattern": "^[^\\u0000]+$"
4516
+ },
4517
+ "device": {
4518
+ "oneOf": [
4519
+ {
4520
+ "type": "string",
4521
+ "minLength": 1,
4522
+ "maxLength": 1024,
4523
+ "pattern": "^[^\\u0000]+$"
4524
+ },
4525
+ {
4526
+ "type": "boolean"
4527
+ }
4528
+ ]
4529
+ },
4530
+ "wait": {
4531
+ "oneOf": [
4532
+ {
4533
+ "type": "string",
4534
+ "minLength": 1,
4535
+ "maxLength": 1024,
4536
+ "pattern": "^[^\\u0000]+$"
4537
+ },
4538
+ {
4539
+ "type": "boolean"
4540
+ }
4541
+ ]
4542
+ },
4543
+ "metroCheck": {
4544
+ "type": "boolean"
4545
+ },
4546
+ "buildCache": {
4547
+ "type": "boolean"
4548
+ },
4549
+ "variant": {
4550
+ "type": "string",
4551
+ "minLength": 1,
4552
+ "maxLength": 1024,
4553
+ "pattern": "^[^\\u0000]+$"
4554
+ },
4555
+ "systemImage": {
4556
+ "type": "string",
4557
+ "minLength": 1,
4558
+ "maxLength": 1024,
4559
+ "pattern": "^[^\\u0000]+$"
4560
+ },
4561
+ "deviceProfile": {
4562
+ "type": "string",
4563
+ "minLength": 1,
4564
+ "maxLength": 1024,
4565
+ "pattern": "^[^\\u0000]+$"
4566
+ }
4567
+ }
4568
+ },
4569
+ {
4570
+ "type": "object",
4571
+ "required": [
4572
+ "platform"
4573
+ ],
4574
+ "additionalProperties": false,
4575
+ "properties": {
4576
+ "platform": {
4577
+ "const": "macos"
4578
+ },
4579
+ "remote": {
4580
+ "type": "string",
4581
+ "minLength": 1,
4582
+ "maxLength": 1024,
4583
+ "pattern": "^[^\\u0000]+$"
4584
+ },
4585
+ "remoteBuild": {
4586
+ "type": "string",
4587
+ "minLength": 1,
4588
+ "maxLength": 1024,
4589
+ "pattern": "^[^\\u0000]+$"
4590
+ }
4591
+ }
4592
+ },
4593
+ {
4594
+ "type": "object",
4595
+ "required": [
4596
+ "platform"
4597
+ ],
4598
+ "additionalProperties": false,
4599
+ "properties": {
4600
+ "platform": {
4601
+ "const": "web"
4602
+ },
4603
+ "headed": {
4604
+ "type": "boolean"
4605
+ }
4606
+ }
4607
+ }
4608
+ ]
4609
+ }
4610
+ }
4611
+ }
4612
+ }
4613
+ },
4614
+ {
4615
+ "type": "object",
4616
+ "required": [
4617
+ "id",
4618
+ "method",
4619
+ "params"
4620
+ ],
4621
+ "additionalProperties": false,
4622
+ "properties": {
4623
+ "id": {
4624
+ "type": [
4625
+ "integer",
4626
+ "string"
4627
+ ]
4628
+ },
4629
+ "method": {
4630
+ "const": "desktop.plan.get"
4631
+ },
4632
+ "params": {
4633
+ "oneOf": [
4634
+ {
4635
+ "type": "object",
4636
+ "required": [
4637
+ "cwd",
4638
+ "platform"
4639
+ ],
4640
+ "additionalProperties": false,
4641
+ "properties": {
4642
+ "cwd": {
4643
+ "type": "string",
4644
+ "minLength": 1,
4645
+ "maxLength": 4096
4646
+ },
4647
+ "platform": {
4648
+ "enum": [
4649
+ "ios",
4650
+ "android"
4651
+ ]
4652
+ },
4653
+ "slot": {
4654
+ "type": "string",
4655
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
4656
+ },
4657
+ "request": {
4658
+ "type": "string",
4659
+ "pattern": "^[A-Za-z0-9_-]{1,128}$"
4660
+ }
4661
+ }
4662
+ },
4663
+ {
4664
+ "type": "object",
4665
+ "required": [
4666
+ "cwd",
4667
+ "platform"
4668
+ ],
4669
+ "additionalProperties": false,
4670
+ "properties": {
4671
+ "cwd": {
4672
+ "type": "string",
4673
+ "minLength": 1,
4674
+ "maxLength": 4096
4675
+ },
4676
+ "platform": {
4677
+ "const": "macos"
4678
+ },
4679
+ "request": {
4680
+ "type": "string",
4681
+ "pattern": "^[A-Za-z0-9_-]{1,128}$"
4682
+ }
4683
+ }
4684
+ }
4685
+ ]
4686
+ }
4687
+ }
4688
+ },
4689
+ {
4690
+ "type": "object",
4691
+ "required": [
4692
+ "id",
4693
+ "method",
4694
+ "params"
4695
+ ],
4696
+ "additionalProperties": false,
4697
+ "properties": {
4698
+ "id": {
4699
+ "type": [
4700
+ "integer",
4701
+ "string"
4702
+ ]
4703
+ },
4704
+ "method": {
4705
+ "const": "desktop.plan.cancel"
4706
+ },
4707
+ "params": {
4708
+ "type": "object",
4709
+ "required": [
4710
+ "request"
4711
+ ],
4712
+ "additionalProperties": false,
4713
+ "properties": {
4714
+ "request": {
4715
+ "type": "string",
4716
+ "pattern": "^[A-Za-z0-9_-]{1,128}$"
4717
+ }
4718
+ }
4719
+ }
4720
+ }
4721
+ },
4722
+ {
4723
+ "type": "object",
4724
+ "required": [
4725
+ "id",
4726
+ "method",
4727
+ "params"
4728
+ ],
4729
+ "additionalProperties": false,
4730
+ "properties": {
4731
+ "id": {
4732
+ "type": [
4733
+ "integer",
4734
+ "string"
4735
+ ]
4736
+ },
4737
+ "method": {
4738
+ "const": "desktop.build.subscribe"
4739
+ },
4740
+ "params": {
4741
+ "type": "object",
4742
+ "required": [
4743
+ "cwd",
4744
+ "options"
4745
+ ],
4746
+ "additionalProperties": false,
4747
+ "properties": {
4748
+ "cwd": {
4749
+ "type": "string",
4750
+ "minLength": 1,
4751
+ "maxLength": 4096
4752
+ },
4753
+ "options": {
4754
+ "oneOf": [
4755
+ {
4756
+ "type": "object",
4757
+ "required": [
4758
+ "platform"
4759
+ ],
4760
+ "additionalProperties": false,
4761
+ "properties": {
4762
+ "platform": {
4763
+ "const": "ios"
4764
+ },
4765
+ "configuration": {
4766
+ "type": "string",
4767
+ "minLength": 1,
4768
+ "maxLength": 1024,
4769
+ "pattern": "^[^\\u0000]+$"
4770
+ },
4771
+ "scheme": {
4772
+ "type": "string",
4773
+ "minLength": 1,
4774
+ "maxLength": 1024,
4775
+ "pattern": "^[^\\u0000]+$"
4776
+ },
4777
+ "arch": {
4778
+ "enum": [
4779
+ "arm64",
4780
+ "x86_64",
4781
+ "all"
4782
+ ]
4783
+ },
4784
+ "buildCache": {
4785
+ "type": "boolean"
4786
+ },
4787
+ "remoteBuild": {
4788
+ "type": "string",
4789
+ "minLength": 1,
4790
+ "maxLength": 1024,
4791
+ "pattern": "^[^\\u0000]+$"
4792
+ }
4793
+ }
4794
+ },
4795
+ {
4796
+ "type": "object",
4797
+ "required": [
4798
+ "platform"
4799
+ ],
4800
+ "additionalProperties": false,
4801
+ "properties": {
4802
+ "platform": {
4803
+ "const": "android"
4804
+ },
4805
+ "variant": {
4806
+ "type": "string",
4807
+ "minLength": 1,
4808
+ "maxLength": 1024,
4809
+ "pattern": "^[^\\u0000]+$"
4810
+ },
4811
+ "abi": {
4812
+ "enum": [
4813
+ "arm64-v8a",
4814
+ "armeabi-v7a",
4815
+ "x86",
4816
+ "x86_64",
4817
+ "all"
4818
+ ]
4819
+ },
4820
+ "buildCache": {
4821
+ "type": "boolean"
4822
+ },
4823
+ "remoteBuild": {
4824
+ "type": "string",
4825
+ "minLength": 1,
4826
+ "maxLength": 1024,
4827
+ "pattern": "^[^\\u0000]+$"
4828
+ }
4829
+ }
4830
+ },
4831
+ {
4832
+ "type": "object",
4833
+ "required": [
4834
+ "platform"
4835
+ ],
4836
+ "additionalProperties": false,
4837
+ "properties": {
4838
+ "platform": {
4839
+ "const": "macos"
4840
+ },
4841
+ "remoteBuild": {
4842
+ "type": "string",
4843
+ "minLength": 1,
4844
+ "maxLength": 1024,
4845
+ "pattern": "^[^\\u0000]+$"
4846
+ }
4847
+ }
4848
+ }
4849
+ ]
4850
+ }
4851
+ }
4852
+ }
4853
+ }
4854
+ },
4855
+ {
4856
+ "type": "object",
4857
+ "required": [
4858
+ "id",
4859
+ "method",
4860
+ "params"
4861
+ ],
4862
+ "additionalProperties": false,
4863
+ "properties": {
4864
+ "id": {
4865
+ "type": [
4866
+ "integer",
4867
+ "string"
4868
+ ]
4869
+ },
4870
+ "method": {
4871
+ "const": "desktop.gc.subscribe"
4872
+ },
4873
+ "params": {
4874
+ "type": "object",
4875
+ "required": [
4876
+ "cwd"
4877
+ ],
4878
+ "additionalProperties": false,
4879
+ "properties": {
4880
+ "cwd": {
4881
+ "type": "string",
4882
+ "minLength": 1,
4883
+ "maxLength": 4096
4884
+ },
4885
+ "cache": {
4886
+ "type": "string",
4887
+ "minLength": 1,
4888
+ "maxLength": 1024,
4889
+ "pattern": "^.*\\S.*$"
4890
+ },
4891
+ "olderThan": {
4892
+ "type": "integer",
4893
+ "minimum": -9007199254740991,
4894
+ "maximum": 9007199254740991
4895
+ },
4896
+ "worktrees": {
4897
+ "type": "boolean"
4898
+ },
4899
+ "delete": {
4900
+ "type": "boolean"
4901
+ },
4902
+ "idleMs": {
4903
+ "type": "integer",
4904
+ "minimum": 1,
4905
+ "maximum": 9007199254740991
4906
+ }
4907
+ }
4908
+ }
4909
+ }
4910
+ },
4911
+ {
4912
+ "type": "object",
4913
+ "required": [
4914
+ "id",
4915
+ "method",
4916
+ "params"
4917
+ ],
4918
+ "additionalProperties": false,
4919
+ "properties": {
4920
+ "id": {
4921
+ "type": [
4922
+ "integer",
4923
+ "string"
4924
+ ]
4925
+ },
4926
+ "method": {
4927
+ "const": "desktop.worktree.warm.subscribe"
4928
+ },
4929
+ "params": {
4930
+ "type": "object",
4931
+ "required": [
4932
+ "cwd"
4933
+ ],
4934
+ "additionalProperties": false,
4935
+ "properties": {
4936
+ "cwd": {
4937
+ "type": "string",
4938
+ "minLength": 1,
4939
+ "maxLength": 4096
4940
+ }
4941
+ }
4942
+ }
4943
+ }
4944
+ },
4945
+ {
4946
+ "type": "object",
4947
+ "required": [
4948
+ "id",
4949
+ "method",
4950
+ "params"
4951
+ ],
4952
+ "additionalProperties": false,
4953
+ "properties": {
4954
+ "id": {
4955
+ "type": [
4956
+ "integer",
4957
+ "string"
4958
+ ]
4959
+ },
4960
+ "method": {
4961
+ "const": "desktop.worktree.remove.subscribe"
4962
+ },
4963
+ "params": {
4964
+ "type": "object",
4965
+ "required": [
4966
+ "cwd"
4967
+ ],
4968
+ "additionalProperties": false,
4969
+ "properties": {
4970
+ "cwd": {
4971
+ "type": "string",
4972
+ "minLength": 1,
4973
+ "maxLength": 4096
4974
+ },
4975
+ "target": {
4976
+ "type": "string",
4977
+ "minLength": 1,
4978
+ "maxLength": 4096
4979
+ },
4980
+ "force": {
4981
+ "type": "boolean"
4982
+ }
4983
+ }
4984
+ }
4985
+ }
4986
+ },
4987
+ {
4988
+ "type": "object",
4989
+ "required": [
4990
+ "id",
4991
+ "method"
4992
+ ],
4993
+ "additionalProperties": false,
4994
+ "properties": {
4995
+ "id": {
4996
+ "type": [
4997
+ "integer",
4998
+ "string"
4999
+ ]
5000
+ },
5001
+ "method": {
5002
+ "const": "status.subscribe"
5003
+ },
5004
+ "params": {
5005
+ "type": "object",
5006
+ "maxProperties": 0
5007
+ }
5008
+ }
5009
+ },
5010
+ {
5011
+ "type": "object",
5012
+ "required": [
5013
+ "id",
5014
+ "method"
5015
+ ],
5016
+ "additionalProperties": false,
5017
+ "properties": {
5018
+ "id": {
5019
+ "type": [
5020
+ "integer",
5021
+ "string"
5022
+ ]
5023
+ },
5024
+ "method": {
5025
+ "const": "workspaces.subscribe"
5026
+ },
5027
+ "params": {
5028
+ "type": "object",
5029
+ "maxProperties": 0
5030
+ }
5031
+ }
5032
+ },
5033
+ {
5034
+ "type": "object",
5035
+ "required": [
5036
+ "id",
5037
+ "method",
5038
+ "params"
5039
+ ],
5040
+ "additionalProperties": false,
5041
+ "properties": {
5042
+ "id": {
5043
+ "type": [
5044
+ "integer",
5045
+ "string"
5046
+ ]
5047
+ },
5048
+ "method": {
5049
+ "const": "workspace.subscribe"
5050
+ },
5051
+ "params": {
5052
+ "type": "object",
5053
+ "required": [
5054
+ "workspace"
5055
+ ],
5056
+ "additionalProperties": false,
5057
+ "properties": {
5058
+ "workspace": {
5059
+ "type": "string",
5060
+ "minLength": 1
5061
+ }
5062
+ }
5063
+ }
5064
+ }
5065
+ },
5066
+ {
5067
+ "type": "object",
5068
+ "required": [
5069
+ "id",
5070
+ "method"
5071
+ ],
5072
+ "additionalProperties": false,
5073
+ "properties": {
5074
+ "id": {
5075
+ "type": [
5076
+ "integer",
5077
+ "string"
5078
+ ]
5079
+ },
5080
+ "method": {
5081
+ "const": "machine.subscribe"
5082
+ },
5083
+ "params": {
5084
+ "type": "object",
5085
+ "maxProperties": 0
5086
+ }
5087
+ }
5088
+ },
5089
+ {
5090
+ "type": "object",
5091
+ "required": [
5092
+ "id",
5093
+ "method",
5094
+ "params"
5095
+ ],
5096
+ "additionalProperties": false,
5097
+ "properties": {
5098
+ "id": {
5099
+ "type": [
5100
+ "integer",
5101
+ "string"
5102
+ ]
5103
+ },
5104
+ "method": {
5105
+ "const": "builds.history"
5106
+ },
5107
+ "params": {
5108
+ "type": "object",
5109
+ "required": [
5110
+ "workspace"
5111
+ ],
5112
+ "additionalProperties": false,
5113
+ "properties": {
5114
+ "workspace": {
5115
+ "type": "string",
5116
+ "minLength": 1
5117
+ }
5118
+ }
5119
+ }
5120
+ }
5121
+ },
5122
+ {
5123
+ "type": "object",
5124
+ "required": [
5125
+ "id",
5126
+ "method"
5127
+ ],
5128
+ "additionalProperties": false,
5129
+ "properties": {
5130
+ "id": {
5131
+ "type": [
5132
+ "integer",
5133
+ "string"
5134
+ ]
5135
+ },
5136
+ "method": {
5137
+ "const": "archived.list"
5138
+ },
5139
+ "params": {
5140
+ "type": "object",
5141
+ "additionalProperties": false,
5142
+ "properties": {
5143
+ "before": {
5144
+ "type": "string",
5145
+ "minLength": 1
5146
+ },
5147
+ "limit": {
5148
+ "type": "integer",
5149
+ "minimum": 1,
5150
+ "maximum": 50
5151
+ }
5152
+ }
5153
+ }
5154
+ }
5155
+ },
5156
+ {
5157
+ "type": "object",
5158
+ "required": [
5159
+ "id",
5160
+ "method"
5161
+ ],
5162
+ "additionalProperties": false,
5163
+ "properties": {
5164
+ "id": {
5165
+ "type": [
5166
+ "integer",
5167
+ "string"
5168
+ ]
5169
+ },
5170
+ "method": {
5171
+ "const": "worktrees.list"
5172
+ },
5173
+ "params": {
5174
+ "type": "object",
5175
+ "maxProperties": 0
5176
+ }
5177
+ }
5178
+ },
5179
+ {
5180
+ "type": "object",
5181
+ "required": [
5182
+ "id",
5183
+ "method"
5184
+ ],
5185
+ "additionalProperties": false,
5186
+ "properties": {
5187
+ "id": {
5188
+ "type": [
5189
+ "integer",
5190
+ "string"
5191
+ ]
5192
+ },
5193
+ "method": {
5194
+ "const": "maintenance.get"
5195
+ },
5196
+ "params": {
5197
+ "type": "object",
5198
+ "maxProperties": 0
5199
+ }
5200
+ }
5201
+ },
5202
+ {
5203
+ "type": "object",
5204
+ "required": [
5205
+ "id",
5206
+ "method",
5207
+ "params"
5208
+ ],
5209
+ "additionalProperties": false,
5210
+ "properties": {
5211
+ "id": {
5212
+ "type": [
5213
+ "integer",
5214
+ "string"
5215
+ ]
5216
+ },
5217
+ "method": {
5218
+ "const": "logs.query"
5219
+ },
5220
+ "params": {
5221
+ "$ref": "#/$defs/LogFilter"
5222
+ }
5223
+ }
5224
+ },
5225
+ {
5226
+ "type": "object",
5227
+ "required": [
5228
+ "id",
5229
+ "method",
5230
+ "params"
5231
+ ],
5232
+ "additionalProperties": false,
5233
+ "properties": {
5234
+ "id": {
5235
+ "type": [
5236
+ "integer",
5237
+ "string"
5238
+ ]
5239
+ },
5240
+ "method": {
5241
+ "const": "logs.subscribe"
5242
+ },
5243
+ "params": {
5244
+ "$ref": "#/$defs/LogFilter"
5245
+ }
5246
+ }
5247
+ },
5248
+ {
5249
+ "type": "object",
5250
+ "required": [
5251
+ "id",
5252
+ "method",
5253
+ "params"
5254
+ ],
5255
+ "additionalProperties": false,
5256
+ "properties": {
5257
+ "id": {
5258
+ "type": [
5259
+ "integer",
5260
+ "string"
5261
+ ]
5262
+ },
5263
+ "method": {
5264
+ "const": "frames.subscribe"
5265
+ },
5266
+ "params": {
5267
+ "$ref": "#/$defs/FrameTarget"
5268
+ }
5269
+ }
5270
+ },
5271
+ {
5272
+ "type": "object",
5273
+ "required": [
5274
+ "id",
5275
+ "method",
5276
+ "params"
5277
+ ],
5278
+ "additionalProperties": false,
5279
+ "properties": {
5280
+ "id": {
5281
+ "type": [
5282
+ "integer",
5283
+ "string"
5284
+ ]
5285
+ },
5286
+ "method": {
5287
+ "const": "frames.keyframe"
5288
+ },
5289
+ "params": {
5290
+ "type": "object",
5291
+ "required": [
5292
+ "subscription"
5293
+ ],
5294
+ "additionalProperties": false,
5295
+ "properties": {
5296
+ "subscription": {
5297
+ "type": "string"
5298
+ }
5299
+ }
5300
+ }
5301
+ }
5302
+ },
5303
+ {
5304
+ "type": "object",
5305
+ "required": [
5306
+ "id",
5307
+ "method",
5308
+ "params"
5309
+ ],
5310
+ "additionalProperties": false,
5311
+ "properties": {
5312
+ "id": {
5313
+ "type": [
5314
+ "integer",
5315
+ "string"
5316
+ ]
5317
+ },
5318
+ "method": {
5319
+ "const": "frames.seek"
5320
+ },
5321
+ "params": {
5322
+ "type": "object",
5323
+ "required": [
5324
+ "subscription",
5325
+ "at",
5326
+ "rate"
5327
+ ],
5328
+ "additionalProperties": false,
5329
+ "properties": {
5330
+ "subscription": {
5331
+ "type": "string"
5332
+ },
5333
+ "at": {
5334
+ "type": "number",
5335
+ "description": "Epoch milliseconds on the machine clock."
5336
+ },
5337
+ "rate": {
5338
+ "enum": [
5339
+ 0,
5340
+ 1,
5341
+ 2
5342
+ ]
5343
+ }
5344
+ }
5345
+ }
5346
+ }
5347
+ },
5348
+ {
5349
+ "type": "object",
5350
+ "required": [
5351
+ "id",
5352
+ "method",
5353
+ "params"
5354
+ ],
5355
+ "additionalProperties": false,
5356
+ "properties": {
5357
+ "id": {
5358
+ "type": [
5359
+ "integer",
5360
+ "string"
5361
+ ]
5362
+ },
5363
+ "method": {
5364
+ "const": "frames.live"
5365
+ },
5366
+ "params": {
5367
+ "type": "object",
5368
+ "required": [
3989
5369
  "subscription"
3990
5370
  ],
3991
5371
  "additionalProperties": false,
@@ -4150,7 +5530,7 @@
4150
5530
  },
4151
5531
  "at": {
4152
5532
  "type": "number",
4153
- "description": "Epoch milliseconds on the Mac clock."
5533
+ "description": "Epoch milliseconds on the machine clock."
4154
5534
  }
4155
5535
  }
4156
5536
  }
@@ -5227,6 +6607,25 @@
5227
6607
  "type": "string",
5228
6608
  "pattern": "^[0-9a-f]{64}$"
5229
6609
  },
6610
+ "dependencies": {
6611
+ "type": "object",
6612
+ "required": [
6613
+ "project",
6614
+ "packageName"
6615
+ ],
6616
+ "additionalProperties": false,
6617
+ "properties": {
6618
+ "project": {
6619
+ "type": "string"
6620
+ },
6621
+ "packageName": {
6622
+ "type": [
6623
+ "string",
6624
+ "null"
6625
+ ]
6626
+ }
6627
+ }
6628
+ },
5230
6629
  "rubyVersion": {
5231
6630
  "type": "string",
5232
6631
  "pattern": "^(?!\\.{1,2}$)[^/\\\\\\u0000\\r\\n]+$"
@@ -5236,6 +6635,437 @@
5236
6635
  "xcode",
5237
6636
  "gradle"
5238
6637
  ]
6638
+ },
6639
+ "artifact": {
6640
+ "type": "object",
6641
+ "required": [
6642
+ "fingerprint",
6643
+ "cacheKey"
6644
+ ],
6645
+ "additionalProperties": false,
6646
+ "properties": {
6647
+ "fingerprint": {
6648
+ "type": "string",
6649
+ "minLength": 1,
6650
+ "maxLength": 256
6651
+ },
6652
+ "cacheKey": {
6653
+ "type": "string",
6654
+ "minLength": 1,
6655
+ "maxLength": 1024
6656
+ }
6657
+ }
6658
+ },
6659
+ "gradleArtifact": {
6660
+ "type": "object",
6661
+ "required": [
6662
+ "project",
6663
+ "sourceDigest",
6664
+ "inputs",
6665
+ "android"
6666
+ ],
6667
+ "additionalProperties": false,
6668
+ "properties": {
6669
+ "project": {
6670
+ "type": "string"
6671
+ },
6672
+ "sourceDigest": {
6673
+ "type": "string",
6674
+ "pattern": "^[0-9a-f]{64}$"
6675
+ },
6676
+ "inputs": {
6677
+ "type": "object",
6678
+ "required": [
6679
+ "complete",
6680
+ "ignored",
6681
+ "outputs"
6682
+ ],
6683
+ "additionalProperties": false,
6684
+ "properties": {
6685
+ "complete": {
6686
+ "const": true
6687
+ },
6688
+ "ignored": {
6689
+ "type": "array",
6690
+ "items": {
6691
+ "type": "string",
6692
+ "minLength": 1
6693
+ }
6694
+ },
6695
+ "outputs": {
6696
+ "type": "array",
6697
+ "items": {
6698
+ "type": "string",
6699
+ "minLength": 1
6700
+ }
6701
+ }
6702
+ }
6703
+ },
6704
+ "android": {
6705
+ "type": "object",
6706
+ "required": [
6707
+ "variant",
6708
+ "abi",
6709
+ "gradleBuildCache",
6710
+ "pch",
6711
+ "compilerCache"
6712
+ ],
6713
+ "additionalProperties": false,
6714
+ "properties": {
6715
+ "variant": {
6716
+ "type": "string",
6717
+ "minLength": 1
6718
+ },
6719
+ "abi": {
6720
+ "type": [
6721
+ "string",
6722
+ "null"
6723
+ ]
6724
+ },
6725
+ "gradleBuildCache": {
6726
+ "type": "boolean"
6727
+ },
6728
+ "pch": {
6729
+ "enum": [
6730
+ "auto",
6731
+ "on",
6732
+ "off"
6733
+ ]
6734
+ },
6735
+ "compilerCache": {
6736
+ "enum": [
6737
+ "ccache",
6738
+ "none"
6739
+ ]
6740
+ },
6741
+ "gradleRoot": {
6742
+ "type": [
6743
+ "string",
6744
+ "null"
6745
+ ]
6746
+ },
6747
+ "module": {
6748
+ "type": [
6749
+ "string",
6750
+ "null"
6751
+ ]
6752
+ }
6753
+ }
6754
+ }
6755
+ }
6756
+ },
6757
+ "reactNativeArtifact": {
6758
+ "type": "object",
6759
+ "required": [
6760
+ "project",
6761
+ "fingerprint",
6762
+ "isExpo",
6763
+ "platform",
6764
+ "toolchain"
6765
+ ],
6766
+ "additionalProperties": false,
6767
+ "oneOf": [
6768
+ {
6769
+ "properties": {
6770
+ "platform": {
6771
+ "const": "ios"
6772
+ },
6773
+ "toolchain": {
6774
+ "required": [
6775
+ "arch",
6776
+ "xcode",
6777
+ "simulatorSdk",
6778
+ "cocoapods"
6779
+ ]
6780
+ }
6781
+ },
6782
+ "required": [
6783
+ "ios"
6784
+ ]
6785
+ },
6786
+ {
6787
+ "properties": {
6788
+ "platform": {
6789
+ "const": "android"
6790
+ },
6791
+ "toolchain": {
6792
+ "required": [
6793
+ "jdk"
6794
+ ]
6795
+ }
6796
+ },
6797
+ "required": [
6798
+ "android"
6799
+ ]
6800
+ }
6801
+ ],
6802
+ "properties": {
6803
+ "project": {
6804
+ "type": "string"
6805
+ },
6806
+ "fingerprint": {
6807
+ "type": "string",
6808
+ "minLength": 1,
6809
+ "maxLength": 256
6810
+ },
6811
+ "isExpo": {
6812
+ "type": "boolean"
6813
+ },
6814
+ "platform": {
6815
+ "enum": [
6816
+ "ios",
6817
+ "android"
6818
+ ]
6819
+ },
6820
+ "toolchain": {
6821
+ "type": "object",
6822
+ "required": [
6823
+ "stimBuild"
6824
+ ],
6825
+ "additionalProperties": false,
6826
+ "properties": {
6827
+ "stimBuild": {
6828
+ "type": "string",
6829
+ "minLength": 1
6830
+ },
6831
+ "arch": {
6832
+ "type": "string",
6833
+ "minLength": 1
6834
+ },
6835
+ "xcode": {
6836
+ "type": "string",
6837
+ "minLength": 1
6838
+ },
6839
+ "simulatorSdk": {
6840
+ "type": "string",
6841
+ "minLength": 1
6842
+ },
6843
+ "cocoapods": {
6844
+ "type": "string",
6845
+ "minLength": 1
6846
+ },
6847
+ "jdk": {
6848
+ "type": "string",
6849
+ "minLength": 1
6850
+ }
6851
+ }
6852
+ },
6853
+ "ios": {
6854
+ "type": "object",
6855
+ "required": [
6856
+ "runtime",
6857
+ "configuration",
6858
+ "scheme",
6859
+ "projectPath",
6860
+ "optimizations"
6861
+ ],
6862
+ "additionalProperties": false,
6863
+ "properties": {
6864
+ "runtime": {
6865
+ "type": "string",
6866
+ "minLength": 1
6867
+ },
6868
+ "configuration": {
6869
+ "type": "string",
6870
+ "minLength": 1
6871
+ },
6872
+ "scheme": {
6873
+ "type": [
6874
+ "string",
6875
+ "null"
6876
+ ]
6877
+ },
6878
+ "projectPath": {
6879
+ "type": "string",
6880
+ "minLength": 1
6881
+ },
6882
+ "optimizations": {
6883
+ "type": "object",
6884
+ "required": [
6885
+ "compilationCache",
6886
+ "swiftCompilationCache",
6887
+ "prefixMapping"
6888
+ ],
6889
+ "additionalProperties": false,
6890
+ "properties": {
6891
+ "compilationCache": {
6892
+ "type": "boolean"
6893
+ },
6894
+ "swiftCompilationCache": {
6895
+ "type": [
6896
+ "boolean",
6897
+ "null"
6898
+ ]
6899
+ },
6900
+ "prefixMapping": {
6901
+ "type": "boolean"
6902
+ }
6903
+ }
6904
+ }
6905
+ }
6906
+ },
6907
+ "android": {
6908
+ "type": "object",
6909
+ "required": [
6910
+ "variant",
6911
+ "abi",
6912
+ "gradleBuildCache",
6913
+ "pch",
6914
+ "compilerCache"
6915
+ ],
6916
+ "additionalProperties": false,
6917
+ "properties": {
6918
+ "variant": {
6919
+ "type": [
6920
+ "string",
6921
+ "null"
6922
+ ]
6923
+ },
6924
+ "abi": {
6925
+ "type": [
6926
+ "string",
6927
+ "null"
6928
+ ]
6929
+ },
6930
+ "gradleBuildCache": {
6931
+ "type": "boolean"
6932
+ },
6933
+ "pch": {
6934
+ "enum": [
6935
+ "auto",
6936
+ "on",
6937
+ "off"
6938
+ ]
6939
+ },
6940
+ "compilerCache": {
6941
+ "enum": [
6942
+ "ccache",
6943
+ "none"
6944
+ ]
6945
+ },
6946
+ "gradleRoot": {
6947
+ "type": [
6948
+ "string",
6949
+ "null"
6950
+ ]
6951
+ },
6952
+ "module": {
6953
+ "type": [
6954
+ "string",
6955
+ "null"
6956
+ ]
6957
+ }
6958
+ }
6959
+ }
6960
+ }
6961
+ },
6962
+ "swiftpmArtifact": {
6963
+ "type": "object",
6964
+ "required": [
6965
+ "project",
6966
+ "sourceDigest",
6967
+ "stimBuild",
6968
+ "inputs",
6969
+ "build"
6970
+ ],
6971
+ "additionalProperties": false,
6972
+ "properties": {
6973
+ "project": {
6974
+ "type": "string"
6975
+ },
6976
+ "sourceDigest": {
6977
+ "type": "string",
6978
+ "pattern": "^[0-9a-f]{64}$"
6979
+ },
6980
+ "stimBuild": {
6981
+ "type": "string",
6982
+ "minLength": 1,
6983
+ "maxLength": 256
6984
+ },
6985
+ "inputs": {
6986
+ "type": "object",
6987
+ "required": [
6988
+ "complete",
6989
+ "ignored",
6990
+ "outputs",
6991
+ "localFiles",
6992
+ "environment"
6993
+ ],
6994
+ "additionalProperties": false,
6995
+ "properties": {
6996
+ "complete": {
6997
+ "const": true
6998
+ },
6999
+ "ignored": {
7000
+ "type": "array",
7001
+ "maxItems": 1000,
7002
+ "items": {
7003
+ "type": "string",
7004
+ "minLength": 1
7005
+ }
7006
+ },
7007
+ "outputs": {
7008
+ "type": "array",
7009
+ "maxItems": 1000,
7010
+ "items": {
7011
+ "type": "string",
7012
+ "minLength": 1
7013
+ }
7014
+ },
7015
+ "localFiles": {
7016
+ "type": "array",
7017
+ "maxItems": 1000,
7018
+ "items": {
7019
+ "type": "string",
7020
+ "minLength": 1,
7021
+ "maxLength": 4096
7022
+ }
7023
+ },
7024
+ "environment": {
7025
+ "type": "array",
7026
+ "maxItems": 1000,
7027
+ "items": {
7028
+ "type": "string",
7029
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7030
+ }
7031
+ }
7032
+ }
7033
+ },
7034
+ "build": {
7035
+ "type": "object",
7036
+ "required": [
7037
+ "product",
7038
+ "infoPlist",
7039
+ "resources",
7040
+ "assetCatalog"
7041
+ ],
7042
+ "additionalProperties": false,
7043
+ "properties": {
7044
+ "product": {
7045
+ "type": "string",
7046
+ "pattern": "^[A-Za-z0-9_.-]{1,100}$"
7047
+ },
7048
+ "infoPlist": {
7049
+ "type": "string",
7050
+ "minLength": 1
7051
+ },
7052
+ "resources": {
7053
+ "type": "object",
7054
+ "maxProperties": 256,
7055
+ "additionalProperties": {
7056
+ "type": "string"
7057
+ }
7058
+ },
7059
+ "assetCatalog": {
7060
+ "type": [
7061
+ "string",
7062
+ "null"
7063
+ ],
7064
+ "minLength": 1
7065
+ }
7066
+ }
7067
+ }
7068
+ }
5239
7069
  }
5240
7070
  }
5241
7071
  }
@@ -5502,6 +7332,26 @@
5502
7332
  "type": "string",
5503
7333
  "pattern": "^[0-9a-f]{64}$"
5504
7334
  },
7335
+ "cache": {
7336
+ "type": "object",
7337
+ "required": [
7338
+ "read",
7339
+ "write",
7340
+ "remote"
7341
+ ],
7342
+ "additionalProperties": false,
7343
+ "properties": {
7344
+ "read": {
7345
+ "type": "boolean"
7346
+ },
7347
+ "write": {
7348
+ "type": "boolean"
7349
+ },
7350
+ "remote": {
7351
+ "type": "boolean"
7352
+ }
7353
+ }
7354
+ },
5505
7355
  "inputs": {
5506
7356
  "type": "object",
5507
7357
  "required": [
@@ -5617,6 +7467,55 @@
5617
7467
  "type": "string",
5618
7468
  "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]{0,199}$"
5619
7469
  },
7470
+ "artifactInputs": {
7471
+ "type": "object",
7472
+ "required": [
7473
+ "complete",
7474
+ "ignored",
7475
+ "outputs",
7476
+ "localFiles",
7477
+ "environment"
7478
+ ],
7479
+ "additionalProperties": false,
7480
+ "properties": {
7481
+ "complete": {
7482
+ "const": true
7483
+ },
7484
+ "ignored": {
7485
+ "type": "array",
7486
+ "maxItems": 1000,
7487
+ "items": {
7488
+ "type": "string",
7489
+ "minLength": 1
7490
+ }
7491
+ },
7492
+ "outputs": {
7493
+ "type": "array",
7494
+ "maxItems": 1000,
7495
+ "items": {
7496
+ "type": "string",
7497
+ "minLength": 1
7498
+ }
7499
+ },
7500
+ "localFiles": {
7501
+ "type": "array",
7502
+ "maxItems": 1000,
7503
+ "items": {
7504
+ "type": "string",
7505
+ "minLength": 1,
7506
+ "maxLength": 4096
7507
+ }
7508
+ },
7509
+ "environment": {
7510
+ "type": "array",
7511
+ "maxItems": 1000,
7512
+ "items": {
7513
+ "type": "string",
7514
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7515
+ }
7516
+ }
7517
+ }
7518
+ },
5620
7519
  "resources": {
5621
7520
  "type": "object",
5622
7521
  "maxProperties": 256,
@@ -5633,6 +7532,9 @@
5633
7532
  }
5634
7533
  }
5635
7534
  },
7535
+ "cacheArtifact": {
7536
+ "type": "boolean"
7537
+ },
5636
7538
  "stimBuild": {
5637
7539
  "type": "string",
5638
7540
  "minLength": 1
@@ -5705,6 +7607,471 @@
5705
7607
  }
5706
7608
  }
5707
7609
  },
7610
+ {
7611
+ "type": "object",
7612
+ "required": [
7613
+ "id",
7614
+ "method",
7615
+ "params"
7616
+ ],
7617
+ "additionalProperties": false,
7618
+ "properties": {
7619
+ "id": {
7620
+ "type": [
7621
+ "integer",
7622
+ "string"
7623
+ ]
7624
+ },
7625
+ "method": {
7626
+ "const": "build.cached-artifact"
7627
+ },
7628
+ "params": {
7629
+ "type": "object",
7630
+ "required": [
7631
+ "repo",
7632
+ "artifact"
7633
+ ],
7634
+ "additionalProperties": false,
7635
+ "properties": {
7636
+ "repo": {
7637
+ "type": "string",
7638
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,79}$"
7639
+ },
7640
+ "artifact": {
7641
+ "type": "object",
7642
+ "required": [
7643
+ "fingerprint",
7644
+ "cacheKey"
7645
+ ],
7646
+ "additionalProperties": false,
7647
+ "properties": {
7648
+ "fingerprint": {
7649
+ "type": "string",
7650
+ "minLength": 1,
7651
+ "maxLength": 256
7652
+ },
7653
+ "cacheKey": {
7654
+ "type": "string",
7655
+ "minLength": 1,
7656
+ "maxLength": 1024
7657
+ }
7658
+ }
7659
+ },
7660
+ "gradleArtifact": {
7661
+ "type": "object",
7662
+ "required": [
7663
+ "project",
7664
+ "sourceDigest",
7665
+ "inputs",
7666
+ "android"
7667
+ ],
7668
+ "additionalProperties": false,
7669
+ "properties": {
7670
+ "project": {
7671
+ "type": "string"
7672
+ },
7673
+ "sourceDigest": {
7674
+ "type": "string",
7675
+ "pattern": "^[0-9a-f]{64}$"
7676
+ },
7677
+ "inputs": {
7678
+ "type": "object",
7679
+ "required": [
7680
+ "complete",
7681
+ "ignored",
7682
+ "outputs"
7683
+ ],
7684
+ "additionalProperties": false,
7685
+ "properties": {
7686
+ "complete": {
7687
+ "const": true
7688
+ },
7689
+ "ignored": {
7690
+ "type": "array",
7691
+ "items": {
7692
+ "type": "string",
7693
+ "minLength": 1
7694
+ }
7695
+ },
7696
+ "outputs": {
7697
+ "type": "array",
7698
+ "items": {
7699
+ "type": "string",
7700
+ "minLength": 1
7701
+ }
7702
+ }
7703
+ }
7704
+ },
7705
+ "android": {
7706
+ "type": "object",
7707
+ "required": [
7708
+ "variant",
7709
+ "abi",
7710
+ "gradleBuildCache",
7711
+ "pch",
7712
+ "compilerCache"
7713
+ ],
7714
+ "additionalProperties": false,
7715
+ "properties": {
7716
+ "variant": {
7717
+ "type": "string",
7718
+ "minLength": 1
7719
+ },
7720
+ "abi": {
7721
+ "type": [
7722
+ "string",
7723
+ "null"
7724
+ ]
7725
+ },
7726
+ "gradleBuildCache": {
7727
+ "type": "boolean"
7728
+ },
7729
+ "pch": {
7730
+ "enum": [
7731
+ "auto",
7732
+ "on",
7733
+ "off"
7734
+ ]
7735
+ },
7736
+ "compilerCache": {
7737
+ "enum": [
7738
+ "ccache",
7739
+ "none"
7740
+ ]
7741
+ },
7742
+ "gradleRoot": {
7743
+ "type": [
7744
+ "string",
7745
+ "null"
7746
+ ]
7747
+ },
7748
+ "module": {
7749
+ "type": [
7750
+ "string",
7751
+ "null"
7752
+ ]
7753
+ }
7754
+ }
7755
+ }
7756
+ }
7757
+ },
7758
+ "reactNativeArtifact": {
7759
+ "type": "object",
7760
+ "required": [
7761
+ "project",
7762
+ "fingerprint",
7763
+ "isExpo",
7764
+ "platform",
7765
+ "toolchain"
7766
+ ],
7767
+ "additionalProperties": false,
7768
+ "oneOf": [
7769
+ {
7770
+ "properties": {
7771
+ "platform": {
7772
+ "const": "ios"
7773
+ },
7774
+ "toolchain": {
7775
+ "required": [
7776
+ "arch",
7777
+ "xcode",
7778
+ "simulatorSdk",
7779
+ "cocoapods"
7780
+ ]
7781
+ }
7782
+ },
7783
+ "required": [
7784
+ "ios"
7785
+ ]
7786
+ },
7787
+ {
7788
+ "properties": {
7789
+ "platform": {
7790
+ "const": "android"
7791
+ },
7792
+ "toolchain": {
7793
+ "required": [
7794
+ "jdk"
7795
+ ]
7796
+ }
7797
+ },
7798
+ "required": [
7799
+ "android"
7800
+ ]
7801
+ }
7802
+ ],
7803
+ "properties": {
7804
+ "project": {
7805
+ "type": "string"
7806
+ },
7807
+ "fingerprint": {
7808
+ "type": "string",
7809
+ "minLength": 1,
7810
+ "maxLength": 256
7811
+ },
7812
+ "isExpo": {
7813
+ "type": "boolean"
7814
+ },
7815
+ "platform": {
7816
+ "enum": [
7817
+ "ios",
7818
+ "android"
7819
+ ]
7820
+ },
7821
+ "toolchain": {
7822
+ "type": "object",
7823
+ "required": [
7824
+ "stimBuild"
7825
+ ],
7826
+ "additionalProperties": false,
7827
+ "properties": {
7828
+ "stimBuild": {
7829
+ "type": "string",
7830
+ "minLength": 1
7831
+ },
7832
+ "arch": {
7833
+ "type": "string",
7834
+ "minLength": 1
7835
+ },
7836
+ "xcode": {
7837
+ "type": "string",
7838
+ "minLength": 1
7839
+ },
7840
+ "simulatorSdk": {
7841
+ "type": "string",
7842
+ "minLength": 1
7843
+ },
7844
+ "cocoapods": {
7845
+ "type": "string",
7846
+ "minLength": 1
7847
+ },
7848
+ "jdk": {
7849
+ "type": "string",
7850
+ "minLength": 1
7851
+ }
7852
+ }
7853
+ },
7854
+ "ios": {
7855
+ "type": "object",
7856
+ "required": [
7857
+ "runtime",
7858
+ "configuration",
7859
+ "scheme",
7860
+ "projectPath",
7861
+ "optimizations"
7862
+ ],
7863
+ "additionalProperties": false,
7864
+ "properties": {
7865
+ "runtime": {
7866
+ "type": "string",
7867
+ "minLength": 1
7868
+ },
7869
+ "configuration": {
7870
+ "type": "string",
7871
+ "minLength": 1
7872
+ },
7873
+ "scheme": {
7874
+ "type": [
7875
+ "string",
7876
+ "null"
7877
+ ]
7878
+ },
7879
+ "projectPath": {
7880
+ "type": "string",
7881
+ "minLength": 1
7882
+ },
7883
+ "optimizations": {
7884
+ "type": "object",
7885
+ "required": [
7886
+ "compilationCache",
7887
+ "swiftCompilationCache",
7888
+ "prefixMapping"
7889
+ ],
7890
+ "additionalProperties": false,
7891
+ "properties": {
7892
+ "compilationCache": {
7893
+ "type": "boolean"
7894
+ },
7895
+ "swiftCompilationCache": {
7896
+ "type": [
7897
+ "boolean",
7898
+ "null"
7899
+ ]
7900
+ },
7901
+ "prefixMapping": {
7902
+ "type": "boolean"
7903
+ }
7904
+ }
7905
+ }
7906
+ }
7907
+ },
7908
+ "android": {
7909
+ "type": "object",
7910
+ "required": [
7911
+ "variant",
7912
+ "abi",
7913
+ "gradleBuildCache",
7914
+ "pch",
7915
+ "compilerCache"
7916
+ ],
7917
+ "additionalProperties": false,
7918
+ "properties": {
7919
+ "variant": {
7920
+ "type": [
7921
+ "string",
7922
+ "null"
7923
+ ]
7924
+ },
7925
+ "abi": {
7926
+ "type": [
7927
+ "string",
7928
+ "null"
7929
+ ]
7930
+ },
7931
+ "gradleBuildCache": {
7932
+ "type": "boolean"
7933
+ },
7934
+ "pch": {
7935
+ "enum": [
7936
+ "auto",
7937
+ "on",
7938
+ "off"
7939
+ ]
7940
+ },
7941
+ "compilerCache": {
7942
+ "enum": [
7943
+ "ccache",
7944
+ "none"
7945
+ ]
7946
+ },
7947
+ "gradleRoot": {
7948
+ "type": [
7949
+ "string",
7950
+ "null"
7951
+ ]
7952
+ },
7953
+ "module": {
7954
+ "type": [
7955
+ "string",
7956
+ "null"
7957
+ ]
7958
+ }
7959
+ }
7960
+ }
7961
+ }
7962
+ },
7963
+ "swiftpmArtifact": {
7964
+ "type": "object",
7965
+ "required": [
7966
+ "project",
7967
+ "sourceDigest",
7968
+ "stimBuild",
7969
+ "inputs",
7970
+ "build"
7971
+ ],
7972
+ "additionalProperties": false,
7973
+ "properties": {
7974
+ "project": {
7975
+ "type": "string"
7976
+ },
7977
+ "sourceDigest": {
7978
+ "type": "string",
7979
+ "pattern": "^[0-9a-f]{64}$"
7980
+ },
7981
+ "stimBuild": {
7982
+ "type": "string",
7983
+ "minLength": 1,
7984
+ "maxLength": 256
7985
+ },
7986
+ "inputs": {
7987
+ "type": "object",
7988
+ "required": [
7989
+ "complete",
7990
+ "ignored",
7991
+ "outputs",
7992
+ "localFiles",
7993
+ "environment"
7994
+ ],
7995
+ "additionalProperties": false,
7996
+ "properties": {
7997
+ "complete": {
7998
+ "const": true
7999
+ },
8000
+ "ignored": {
8001
+ "type": "array",
8002
+ "maxItems": 1000,
8003
+ "items": {
8004
+ "type": "string",
8005
+ "minLength": 1
8006
+ }
8007
+ },
8008
+ "outputs": {
8009
+ "type": "array",
8010
+ "maxItems": 1000,
8011
+ "items": {
8012
+ "type": "string",
8013
+ "minLength": 1
8014
+ }
8015
+ },
8016
+ "localFiles": {
8017
+ "type": "array",
8018
+ "maxItems": 1000,
8019
+ "items": {
8020
+ "type": "string",
8021
+ "minLength": 1,
8022
+ "maxLength": 4096
8023
+ }
8024
+ },
8025
+ "environment": {
8026
+ "type": "array",
8027
+ "maxItems": 1000,
8028
+ "items": {
8029
+ "type": "string",
8030
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8031
+ }
8032
+ }
8033
+ }
8034
+ },
8035
+ "build": {
8036
+ "type": "object",
8037
+ "required": [
8038
+ "product",
8039
+ "infoPlist",
8040
+ "resources",
8041
+ "assetCatalog"
8042
+ ],
8043
+ "additionalProperties": false,
8044
+ "properties": {
8045
+ "product": {
8046
+ "type": "string",
8047
+ "pattern": "^[A-Za-z0-9_.-]{1,100}$"
8048
+ },
8049
+ "infoPlist": {
8050
+ "type": "string",
8051
+ "minLength": 1
8052
+ },
8053
+ "resources": {
8054
+ "type": "object",
8055
+ "maxProperties": 256,
8056
+ "additionalProperties": {
8057
+ "type": "string"
8058
+ }
8059
+ },
8060
+ "assetCatalog": {
8061
+ "type": [
8062
+ "string",
8063
+ "null"
8064
+ ],
8065
+ "minLength": 1
8066
+ }
8067
+ }
8068
+ }
8069
+ }
8070
+ }
8071
+ }
8072
+ }
8073
+ }
8074
+ },
5708
8075
  {
5709
8076
  "type": "object",
5710
8077
  "required": [
@@ -6061,6 +8428,9 @@
6061
8428
  {
6062
8429
  "$ref": "#/$defs/HelloResult"
6063
8430
  },
8431
+ {
8432
+ "$ref": "#/$defs/DesktopAuthenticateResult"
8433
+ },
6064
8434
  {
6065
8435
  "$ref": "#/$defs/ControlBeginResult"
6066
8436
  },
@@ -6304,6 +8674,108 @@
6304
8674
  },
6305
8675
  "ServerEvent": {
6306
8676
  "oneOf": [
8677
+ {
8678
+ "type": "object",
8679
+ "required": [
8680
+ "event",
8681
+ "subscription",
8682
+ "stream",
8683
+ "message"
8684
+ ],
8685
+ "additionalProperties": false,
8686
+ "properties": {
8687
+ "event": {
8688
+ "enum": [
8689
+ "desktop-stop-progress",
8690
+ "desktop-reload-progress",
8691
+ "desktop-start-progress",
8692
+ "desktop-run-progress",
8693
+ "desktop-build-progress",
8694
+ "desktop-gc-progress",
8695
+ "desktop-worktree-remove-progress",
8696
+ "desktop-worktree-warm-progress",
8697
+ "desktop-machine-access-progress"
8698
+ ]
8699
+ },
8700
+ "subscription": {
8701
+ "type": "string"
8702
+ },
8703
+ "stream": {
8704
+ "enum": [
8705
+ "stdout",
8706
+ "stderr"
8707
+ ]
8708
+ },
8709
+ "message": {
8710
+ "type": "string"
8711
+ }
8712
+ }
8713
+ },
8714
+ {
8715
+ "type": "object",
8716
+ "required": [
8717
+ "event",
8718
+ "subscription",
8719
+ "exitCode",
8720
+ "stdout",
8721
+ "message"
8722
+ ],
8723
+ "additionalProperties": false,
8724
+ "properties": {
8725
+ "event": {
8726
+ "enum": [
8727
+ "desktop-stop-ended",
8728
+ "desktop-reload-ended",
8729
+ "desktop-start-ended",
8730
+ "desktop-run-ended",
8731
+ "desktop-build-ended",
8732
+ "desktop-gc-ended",
8733
+ "desktop-worktree-remove-ended",
8734
+ "desktop-worktree-warm-ended",
8735
+ "desktop-machine-access-ended"
8736
+ ]
8737
+ },
8738
+ "subscription": {
8739
+ "type": "string"
8740
+ },
8741
+ "exitCode": {
8742
+ "enum": [
8743
+ 0,
8744
+ 1
8745
+ ]
8746
+ },
8747
+ "stdout": {
8748
+ "type": "string"
8749
+ },
8750
+ "message": {
8751
+ "type": "string"
8752
+ }
8753
+ }
8754
+ },
8755
+ {
8756
+ "type": "object",
8757
+ "required": [
8758
+ "event",
8759
+ "subscription",
8760
+ "target",
8761
+ "snapshot"
8762
+ ],
8763
+ "additionalProperties": false,
8764
+ "properties": {
8765
+ "event": {
8766
+ "const": "desktop-report"
8767
+ },
8768
+ "subscription": {
8769
+ "type": "string"
8770
+ },
8771
+ "target": {
8772
+ "$ref": "#/$defs/DesktopReportTarget"
8773
+ },
8774
+ "snapshot": {
8775
+ "$ref": "#/$defs/DesktopReportSnapshot"
8776
+ }
8777
+ }
8778
+ },
6307
8779
  {
6308
8780
  "type": "object",
6309
8781
  "required": [
@@ -6466,6 +8938,172 @@
6466
8938
  }
6467
8939
  }
6468
8940
  },
8941
+ {
8942
+ "type": "object",
8943
+ "required": [
8944
+ "event",
8945
+ "subscription",
8946
+ "seq"
8947
+ ],
8948
+ "additionalProperties": false,
8949
+ "properties": {
8950
+ "event": {
8951
+ "const": "workspaces"
8952
+ },
8953
+ "subscription": {
8954
+ "type": "string"
8955
+ },
8956
+ "seq": {
8957
+ "type": "integer",
8958
+ "minimum": 0
8959
+ },
8960
+ "snapshot": {
8961
+ "type": "object",
8962
+ "required": [
8963
+ "workspaces",
8964
+ "worktrees",
8965
+ "archived"
8966
+ ],
8967
+ "additionalProperties": false,
8968
+ "properties": {
8969
+ "workspaces": {
8970
+ "type": "array",
8971
+ "items": {
8972
+ "type": "object"
8973
+ }
8974
+ },
8975
+ "worktrees": {
8976
+ "type": "array",
8977
+ "items": {
8978
+ "type": "object"
8979
+ }
8980
+ },
8981
+ "archived": {
8982
+ "type": "object"
8983
+ }
8984
+ }
8985
+ },
8986
+ "workspaces": {
8987
+ "type": "object",
8988
+ "required": [
8989
+ "upsert",
8990
+ "remove"
8991
+ ],
8992
+ "additionalProperties": false,
8993
+ "properties": {
8994
+ "upsert": {
8995
+ "type": "array",
8996
+ "items": {
8997
+ "type": "object"
8998
+ },
8999
+ "description": "Workspace summaries to insert or replace by path."
9000
+ },
9001
+ "remove": {
9002
+ "type": "array",
9003
+ "items": {
9004
+ "type": "string"
9005
+ },
9006
+ "description": "The paths that are gone."
9007
+ }
9008
+ }
9009
+ },
9010
+ "worktrees": {
9011
+ "type": "object",
9012
+ "required": [
9013
+ "upsert",
9014
+ "remove"
9015
+ ],
9016
+ "additionalProperties": false,
9017
+ "properties": {
9018
+ "upsert": {
9019
+ "type": "array",
9020
+ "items": {
9021
+ "type": "object"
9022
+ },
9023
+ "description": "Unprovisioned worktree rows to insert or replace by path."
9024
+ },
9025
+ "remove": {
9026
+ "type": "array",
9027
+ "items": {
9028
+ "type": "string"
9029
+ },
9030
+ "description": "The paths that are gone."
9031
+ }
9032
+ }
9033
+ },
9034
+ "archived": {
9035
+ "type": "object",
9036
+ "description": "The archives summary, when it changed."
9037
+ }
9038
+ }
9039
+ },
9040
+ {
9041
+ "type": "object",
9042
+ "required": [
9043
+ "event",
9044
+ "subscription",
9045
+ "seq",
9046
+ "environment"
9047
+ ],
9048
+ "additionalProperties": false,
9049
+ "properties": {
9050
+ "event": {
9051
+ "const": "workspace"
9052
+ },
9053
+ "subscription": {
9054
+ "type": "string"
9055
+ },
9056
+ "seq": {
9057
+ "type": "integer",
9058
+ "minimum": 0
9059
+ },
9060
+ "environment": {
9061
+ "oneOf": [
9062
+ {
9063
+ "type": "null"
9064
+ },
9065
+ {
9066
+ "type": "object"
9067
+ }
9068
+ ],
9069
+ "description": "The environment, as `stim status --json` prints it."
9070
+ }
9071
+ }
9072
+ },
9073
+ {
9074
+ "type": "object",
9075
+ "required": [
9076
+ "event",
9077
+ "subscription",
9078
+ "seq",
9079
+ "machine"
9080
+ ],
9081
+ "additionalProperties": false,
9082
+ "properties": {
9083
+ "event": {
9084
+ "const": "machine"
9085
+ },
9086
+ "subscription": {
9087
+ "type": "string"
9088
+ },
9089
+ "seq": {
9090
+ "type": "integer",
9091
+ "minimum": 0
9092
+ },
9093
+ "machine": {
9094
+ "type": "object"
9095
+ },
9096
+ "usage": {
9097
+ "$ref": "#/$defs/UsageHistory"
9098
+ },
9099
+ "ownLeases": {
9100
+ "type": "array",
9101
+ "items": {
9102
+ "type": "string"
9103
+ }
9104
+ }
9105
+ }
9106
+ },
6469
9107
  {
6470
9108
  "type": "object",
6471
9109
  "required": [