unfold-deploy 0.1.0 → 0.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.
@@ -0,0 +1,608 @@
1
+ {
2
+ "provider": "gcloud",
3
+ "description": "A Cloud Run source deploy of a small API that succeeds.",
4
+ "command": [
5
+ "gcloud",
6
+ "run",
7
+ "deploy",
8
+ "tiny-api",
9
+ "--source",
10
+ ".",
11
+ "--region",
12
+ "us-central1"
13
+ ],
14
+ "cwd": "~/projects/tiny-api",
15
+ "exitCode": 0,
16
+ "signal": null,
17
+ "interrupted": false,
18
+ "chunks": [
19
+ {
20
+ "t": 0,
21
+ "d": "Building using Dockerfile and deploying container to Cloud Run service [\u001b[1mtiny-api\u001b[22m] in project [\u001b[1macme-prod\u001b[22m] region [\u001b[1mus-central1\u001b[22m]\r\n"
22
+ },
23
+ {
24
+ "t": 200,
25
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building and deploying new service... Uploading sources."
26
+ },
27
+ {
28
+ "t": 280,
29
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building and deploying new service... Uploading sources."
30
+ },
31
+ {
32
+ "t": 360,
33
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building and deploying new service... Uploading sources."
34
+ },
35
+ {
36
+ "t": 440,
37
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building and deploying new service... Uploading sources."
38
+ },
39
+ {
40
+ "t": 520,
41
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building and deploying new service... Uploading sources."
42
+ },
43
+ {
44
+ "t": 600,
45
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building and deploying new service... Uploading sources."
46
+ },
47
+ {
48
+ "t": 680,
49
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building and deploying new service... Uploading sources."
50
+ },
51
+ {
52
+ "t": 760,
53
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building and deploying new service... Uploading sources."
54
+ },
55
+ {
56
+ "t": 760,
57
+ "d": "\u001b[2K\u001b[1G"
58
+ },
59
+ {
60
+ "t": 820,
61
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Uploading sources..."
62
+ },
63
+ {
64
+ "t": 900,
65
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Uploading sources..."
66
+ },
67
+ {
68
+ "t": 980,
69
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Uploading sources..."
70
+ },
71
+ {
72
+ "t": 1060,
73
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Uploading sources..."
74
+ },
75
+ {
76
+ "t": 1140,
77
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Uploading sources..."
78
+ },
79
+ {
80
+ "t": 1220,
81
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Uploading sources..."
82
+ },
83
+ {
84
+ "t": 1300,
85
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Uploading sources..."
86
+ },
87
+ {
88
+ "t": 1380,
89
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Uploading sources..."
90
+ },
91
+ {
92
+ "t": 1460,
93
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Uploading sources..."
94
+ },
95
+ {
96
+ "t": 1540,
97
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Uploading sources..."
98
+ },
99
+ {
100
+ "t": 1620,
101
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Uploading sources..."
102
+ },
103
+ {
104
+ "t": 1700,
105
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Uploading sources..."
106
+ },
107
+ {
108
+ "t": 1780,
109
+ "d": "\u001b[2K\u001b[1G \u001b[32m✓\u001b[39m Uploading sources...\r\n"
110
+ },
111
+ {
112
+ "t": 1840,
113
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
114
+ },
115
+ {
116
+ "t": 1920,
117
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
118
+ },
119
+ {
120
+ "t": 2000,
121
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
122
+ },
123
+ {
124
+ "t": 2080,
125
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
126
+ },
127
+ {
128
+ "t": 2160,
129
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
130
+ },
131
+ {
132
+ "t": 2240,
133
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
134
+ },
135
+ {
136
+ "t": 2320,
137
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
138
+ },
139
+ {
140
+ "t": 2400,
141
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
142
+ },
143
+ {
144
+ "t": 2480,
145
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
146
+ },
147
+ {
148
+ "t": 2560,
149
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
150
+ },
151
+ {
152
+ "t": 2640,
153
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
154
+ },
155
+ {
156
+ "t": 2720,
157
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
158
+ },
159
+ {
160
+ "t": 2800,
161
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
162
+ },
163
+ {
164
+ "t": 2880,
165
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
166
+ },
167
+ {
168
+ "t": 2960,
169
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
170
+ },
171
+ {
172
+ "t": 3040,
173
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
174
+ },
175
+ {
176
+ "t": 3120,
177
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
178
+ },
179
+ {
180
+ "t": 3200,
181
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
182
+ },
183
+ {
184
+ "t": 3280,
185
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
186
+ },
187
+ {
188
+ "t": 3360,
189
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
190
+ },
191
+ {
192
+ "t": 3440,
193
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
194
+ },
195
+ {
196
+ "t": 3520,
197
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
198
+ },
199
+ {
200
+ "t": 3600,
201
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
202
+ },
203
+ {
204
+ "t": 3680,
205
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
206
+ },
207
+ {
208
+ "t": 3760,
209
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
210
+ },
211
+ {
212
+ "t": 3840,
213
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
214
+ },
215
+ {
216
+ "t": 3920,
217
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
218
+ },
219
+ {
220
+ "t": 4000,
221
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
222
+ },
223
+ {
224
+ "t": 4080,
225
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
226
+ },
227
+ {
228
+ "t": 4160,
229
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
230
+ },
231
+ {
232
+ "t": 4240,
233
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
234
+ },
235
+ {
236
+ "t": 4320,
237
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
238
+ },
239
+ {
240
+ "t": 4400,
241
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
242
+ },
243
+ {
244
+ "t": 4480,
245
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
246
+ },
247
+ {
248
+ "t": 4560,
249
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
250
+ },
251
+ {
252
+ "t": 4640,
253
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
254
+ },
255
+ {
256
+ "t": 4720,
257
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
258
+ },
259
+ {
260
+ "t": 4800,
261
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
262
+ },
263
+ {
264
+ "t": 4880,
265
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
266
+ },
267
+ {
268
+ "t": 4960,
269
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
270
+ },
271
+ {
272
+ "t": 5040,
273
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
274
+ },
275
+ {
276
+ "t": 5120,
277
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
278
+ },
279
+ {
280
+ "t": 5200,
281
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
282
+ },
283
+ {
284
+ "t": 5280,
285
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
286
+ },
287
+ {
288
+ "t": 5360,
289
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
290
+ },
291
+ {
292
+ "t": 5440,
293
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
294
+ },
295
+ {
296
+ "t": 5520,
297
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
298
+ },
299
+ {
300
+ "t": 5600,
301
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
302
+ },
303
+ {
304
+ "t": 5680,
305
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
306
+ },
307
+ {
308
+ "t": 5760,
309
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
310
+ },
311
+ {
312
+ "t": 5840,
313
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
314
+ },
315
+ {
316
+ "t": 5920,
317
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
318
+ },
319
+ {
320
+ "t": 6000,
321
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
322
+ },
323
+ {
324
+ "t": 6080,
325
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
326
+ },
327
+ {
328
+ "t": 6160,
329
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
330
+ },
331
+ {
332
+ "t": 6240,
333
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Building Container..."
334
+ },
335
+ {
336
+ "t": 6320,
337
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Building Container..."
338
+ },
339
+ {
340
+ "t": 6400,
341
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Building Container..."
342
+ },
343
+ {
344
+ "t": 6480,
345
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Building Container..."
346
+ },
347
+ {
348
+ "t": 6560,
349
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Building Container..."
350
+ },
351
+ {
352
+ "t": 6640,
353
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Building Container..."
354
+ },
355
+ {
356
+ "t": 6720,
357
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Building Container..."
358
+ },
359
+ {
360
+ "t": 6800,
361
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Building Container..."
362
+ },
363
+ {
364
+ "t": 6880,
365
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Building Container..."
366
+ },
367
+ {
368
+ "t": 6960,
369
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Building Container..."
370
+ },
371
+ {
372
+ "t": 7040,
373
+ "d": "\u001b[2K\u001b[1G \u001b[32m✓\u001b[39m Building Container... Logs are available at [ https://console.cloud.google.com/cloud-build/builds;region=us-central1/5c1f0e7a-3d2b-4e8a-9f61-0a7b2c4d6e18?project=482910374615 ].\r\n"
374
+ },
375
+ {
376
+ "t": 7100,
377
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Creating Revision..."
378
+ },
379
+ {
380
+ "t": 7180,
381
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Creating Revision..."
382
+ },
383
+ {
384
+ "t": 7260,
385
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Creating Revision..."
386
+ },
387
+ {
388
+ "t": 7340,
389
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Creating Revision..."
390
+ },
391
+ {
392
+ "t": 7420,
393
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Creating Revision..."
394
+ },
395
+ {
396
+ "t": 7500,
397
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Creating Revision..."
398
+ },
399
+ {
400
+ "t": 7580,
401
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Creating Revision..."
402
+ },
403
+ {
404
+ "t": 7660,
405
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Creating Revision..."
406
+ },
407
+ {
408
+ "t": 7740,
409
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Creating Revision..."
410
+ },
411
+ {
412
+ "t": 7820,
413
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Creating Revision..."
414
+ },
415
+ {
416
+ "t": 7900,
417
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Creating Revision..."
418
+ },
419
+ {
420
+ "t": 7980,
421
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Creating Revision..."
422
+ },
423
+ {
424
+ "t": 8060,
425
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Creating Revision..."
426
+ },
427
+ {
428
+ "t": 8140,
429
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Creating Revision..."
430
+ },
431
+ {
432
+ "t": 8220,
433
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Creating Revision..."
434
+ },
435
+ {
436
+ "t": 8300,
437
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Creating Revision..."
438
+ },
439
+ {
440
+ "t": 8380,
441
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Creating Revision..."
442
+ },
443
+ {
444
+ "t": 8460,
445
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Creating Revision..."
446
+ },
447
+ {
448
+ "t": 8540,
449
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Creating Revision..."
450
+ },
451
+ {
452
+ "t": 8620,
453
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Creating Revision..."
454
+ },
455
+ {
456
+ "t": 8700,
457
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Creating Revision..."
458
+ },
459
+ {
460
+ "t": 8780,
461
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Creating Revision..."
462
+ },
463
+ {
464
+ "t": 8860,
465
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Creating Revision..."
466
+ },
467
+ {
468
+ "t": 8940,
469
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Creating Revision..."
470
+ },
471
+ {
472
+ "t": 9020,
473
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Creating Revision..."
474
+ },
475
+ {
476
+ "t": 9100,
477
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Creating Revision..."
478
+ },
479
+ {
480
+ "t": 9180,
481
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Creating Revision..."
482
+ },
483
+ {
484
+ "t": 9260,
485
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Creating Revision..."
486
+ },
487
+ {
488
+ "t": 9340,
489
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Creating Revision..."
490
+ },
491
+ {
492
+ "t": 9420,
493
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Creating Revision..."
494
+ },
495
+ {
496
+ "t": 9500,
497
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Creating Revision..."
498
+ },
499
+ {
500
+ "t": 9580,
501
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Creating Revision..."
502
+ },
503
+ {
504
+ "t": 9660,
505
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Creating Revision..."
506
+ },
507
+ {
508
+ "t": 9740,
509
+ "d": "\u001b[2K\u001b[1G \u001b[32m✓\u001b[39m Creating Revision...\r\n"
510
+ },
511
+ {
512
+ "t": 9800,
513
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Routing traffic..."
514
+ },
515
+ {
516
+ "t": 9880,
517
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Routing traffic..."
518
+ },
519
+ {
520
+ "t": 9960,
521
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Routing traffic..."
522
+ },
523
+ {
524
+ "t": 10040,
525
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Routing traffic..."
526
+ },
527
+ {
528
+ "t": 10120,
529
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Routing traffic..."
530
+ },
531
+ {
532
+ "t": 10200,
533
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Routing traffic..."
534
+ },
535
+ {
536
+ "t": 10280,
537
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Routing traffic..."
538
+ },
539
+ {
540
+ "t": 10360,
541
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠧\u001b[39m Routing traffic..."
542
+ },
543
+ {
544
+ "t": 10440,
545
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠇\u001b[39m Routing traffic..."
546
+ },
547
+ {
548
+ "t": 10520,
549
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠏\u001b[39m Routing traffic..."
550
+ },
551
+ {
552
+ "t": 10600,
553
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Routing traffic..."
554
+ },
555
+ {
556
+ "t": 10680,
557
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Routing traffic..."
558
+ },
559
+ {
560
+ "t": 10760,
561
+ "d": "\u001b[2K\u001b[1G \u001b[32m✓\u001b[39m Routing traffic...\r\n"
562
+ },
563
+ {
564
+ "t": 10820,
565
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠋\u001b[39m Setting IAM Policy..."
566
+ },
567
+ {
568
+ "t": 10900,
569
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠙\u001b[39m Setting IAM Policy..."
570
+ },
571
+ {
572
+ "t": 10980,
573
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠹\u001b[39m Setting IAM Policy..."
574
+ },
575
+ {
576
+ "t": 11060,
577
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠸\u001b[39m Setting IAM Policy..."
578
+ },
579
+ {
580
+ "t": 11140,
581
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠼\u001b[39m Setting IAM Policy..."
582
+ },
583
+ {
584
+ "t": 11220,
585
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠴\u001b[39m Setting IAM Policy..."
586
+ },
587
+ {
588
+ "t": 11300,
589
+ "d": "\u001b[2K\u001b[1G\u001b[36m⠦\u001b[39m Setting IAM Policy..."
590
+ },
591
+ {
592
+ "t": 11380,
593
+ "d": "\u001b[2K\u001b[1G \u001b[32m✓\u001b[39m Setting IAM Policy...\r\n"
594
+ },
595
+ {
596
+ "t": 11480,
597
+ "d": "Done.\r\n"
598
+ },
599
+ {
600
+ "t": 11560,
601
+ "d": "Service [\u001b[1mtiny-api\u001b[22m] revision [\u001b[1mtiny-api-00001-xof\u001b[22m] has been deployed and is serving \u001b[1m100\u001b[22m percent of traffic.\r\n"
602
+ },
603
+ {
604
+ "t": 11600,
605
+ "d": "Service URL: \u001b[1mhttps://tiny-api-482910374615.us-central1.run.app\u001b[22m\r\n"
606
+ }
607
+ ]
608
+ }
package/dist/cli.js CHANGED
@@ -1,17 +1,23 @@
1
1
  import { readFileSync } from 'node:fs';
2
- import { runDemo, DEMO_NAMES } from './commands/demo.js';
2
+ import { runDemo, DEMO_LIST } from './commands/demo.js';
3
3
  import { DEFAULT_FLAGS } from './commands/observe.js';
4
4
  import { listRuns, runReplay } from './commands/replay.js';
5
5
  import { runLive } from './commands/run.js';
6
6
  import { runShow } from './commands/show.js';
7
+ import { UsageError } from './core/errors.js';
7
8
  import { providers } from './providers/index.js';
8
9
  const VERSION = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')).version;
9
10
  const HELP = `unfold — Watch what happens after you hit Enter.
10
11
 
11
12
  Usage
12
- unfold vercel [vercel deploy flags] Run a Vercel preview deploy with a live flow in your terminal
13
+ unfold vercel [vercel deploy flags] Vercel preview deploy: Prepare → Upload → Build → Preview
14
+ unfold gcloud [gcloud run deploy flags]
15
+ Cloud Run deploy: Prepare → Build → Deploy → Live
16
+ unfold claude "<task>" [claude flags] Claude Code task: Start → Explore → Change → Verify → Done
17
+ unfold codex "<task>" [codex flags] Codex task: Start → Explore → Change → Verify → Done
13
18
  unfold show [run] Explore a run in the terminal (defaults to the latest)
14
- unfold demo <name> Play a recorded demo (${DEMO_NAMES.join(', ')})
19
+ unfold demo [provider] <name> Play a recorded demo, no account needed:
20
+ ${DEMO_LIST}
15
21
  unfold replay [run] Play a saved run again
16
22
  unfold runs List saved runs
17
23
 
@@ -28,12 +34,14 @@ Unfold options (anywhere on the line)
28
34
  Examples
29
35
  unfold vercel
30
36
  unfold vercel --fix claude
37
+ unfold gcloud --source . --region us-central1
38
+ unfold claude "fix the failing test" --allowedTools Read Edit Bash
39
+ unfold codex "add a --json flag to the CLI" --sandbox workspace-write
31
40
  unfold show
32
41
  unfold demo build-failure
42
+ unfold demo claude success
33
43
  `;
34
- /** A mistake in how Unfold was invoked: printed without a stack trace. */
35
- export class UsageError extends Error {
36
- }
44
+ export { UsageError };
37
45
  /** Pulls Unfold's own flags out of argv; everything else goes to the wrapped CLI. */
38
46
  export function parseArgs(argv) {
39
47
  const rest = [];
@@ -100,7 +108,7 @@ async function run(argv) {
100
108
  case 'show':
101
109
  return runShow(rest[0], flags);
102
110
  case 'demo':
103
- return runDemo(rest[0] ?? 'success', flags, speed);
111
+ return runDemo(rest, flags, speed);
104
112
  case 'replay':
105
113
  return runReplay(rest[0], flags, speed);
106
114
  case 'runs':
@@ -4,18 +4,32 @@ import { fileURLToPath } from 'node:url';
4
4
  import { providers } from '../providers/index.js';
5
5
  import { observe, say } from './observe.js';
6
6
  export const DEMOS_DIR = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'demos');
7
- export const DEMO_NAMES = ['success', 'build-failure', 'interrupted'];
8
- export function loadDemo(name) {
9
- return JSON.parse(readFileSync(join(DEMOS_DIR, `vercel-${name}.json`), 'utf8'));
7
+ /** Demos per provider; the first provider's demos also work without naming it. */
8
+ export const DEMOS = {
9
+ vercel: ['success', 'build-failure', 'interrupted'],
10
+ gcloud: ['success', 'deploy-failure'],
11
+ claude: ['success'],
12
+ codex: ['checks-failing'],
13
+ };
14
+ export const DEMO_LIST = Object.entries(DEMOS)
15
+ .flatMap(([p, names]) => names.map((n) => `${p} ${n}`))
16
+ .join(', ');
17
+ /** Loads `vercel-success.json` from `loadDemo('success')` or `loadDemo('gcloud', 'success')`. */
18
+ export function loadDemo(providerOrName, name) {
19
+ const file = name ? `${providerOrName}-${name}` : `vercel-${providerOrName}`;
20
+ return JSON.parse(readFileSync(join(DEMOS_DIR, `${file}.json`), 'utf8'));
10
21
  }
11
- export async function runDemo(name, flags, speed) {
12
- if (!DEMO_NAMES.includes(name)) {
13
- say(`Unknown demo "${name}". Try: ${DEMO_NAMES.join(', ')}`);
22
+ export async function runDemo(args, flags, speed) {
23
+ const [first = 'success', second] = args;
24
+ const providerId = DEMOS[first] ? first : 'vercel';
25
+ const name = DEMOS[first] ? (second ?? DEMOS[first][0]) : first;
26
+ if (!DEMOS[providerId].includes(name)) {
27
+ say(`Unknown demo "${args.join(' ')}". Try one of: ${DEMO_LIST}`);
14
28
  return 2;
15
29
  }
16
- const t = loadDemo(name);
30
+ const t = loadDemo(providerId, name);
17
31
  const provider = providers[t.provider];
18
- say(`Demo: ${t.description} Recorded output, no Vercel account or network needed.`);
32
+ say(`Demo: ${t.description} Recorded output; no account or network needed.`);
19
33
  return observe({
20
34
  provider,
21
35
  command: t.command,