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.
- package/CHANGELOG.md +9 -1
- package/README.md +44 -7
- package/demos/claude-success.json +72 -0
- package/demos/codex-checks-failing.json +62 -0
- package/demos/gcloud-deploy-failure.json +616 -0
- package/demos/gcloud-success.json +608 -0
- package/dist/cli.js +15 -7
- package/dist/commands/demo.js +22 -8
- package/dist/commands/observe.js +17 -2
- package/dist/commands/replay.js +16 -1
- package/dist/commands/run.js +1 -1
- package/dist/core/errors.js +3 -0
- package/dist/core/flow.js +12 -1
- package/dist/core/session.js +36 -5
- package/dist/core/terminal.js +4 -2
- package/dist/providers/agents/claude.js +205 -0
- package/dist/providers/agents/codex.js +152 -0
- package/dist/providers/agents/shared.js +119 -0
- package/dist/providers/gcloud/index.js +39 -0
- package/dist/providers/gcloud/parser.js +149 -0
- package/dist/providers/gcloud/stages.js +55 -0
- package/dist/providers/index.js +4 -1
- package/dist/providers/vercel/index.js +1 -0
- package/dist/providers/vercel/stages.js +3 -0
- package/dist/tui/render.js +14 -7
- package/dist/ui/app.js +6 -6
- package/package.json +12 -7
|
@@ -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,
|
|
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]
|
|
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>
|
|
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
|
-
|
|
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
|
|
111
|
+
return runDemo(rest, flags, speed);
|
|
104
112
|
case 'replay':
|
|
105
113
|
return runReplay(rest[0], flags, speed);
|
|
106
114
|
case 'runs':
|
package/dist/commands/demo.js
CHANGED
|
@@ -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
|
-
|
|
8
|
-
export
|
|
9
|
-
|
|
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(
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
32
|
+
say(`Demo: ${t.description} Recorded output; no account or network needed.`);
|
|
19
33
|
return observe({
|
|
20
34
|
provider,
|
|
21
35
|
command: t.command,
|