cerevox 0.2.1 → 0.3.1
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/dist/core/ai.d.ts +2 -0
- package/dist/core/ai.d.ts.map +1 -1
- package/dist/core/ai.js +7 -4
- package/dist/core/ai.js.map +1 -1
- package/dist/core/file-system.d.ts +5 -1
- package/dist/core/file-system.d.ts.map +1 -1
- package/dist/core/file-system.js +11 -4
- package/dist/core/file-system.js.map +1 -1
- package/dist/mcp/servers/zerocut.d.ts +1 -1
- package/dist/mcp/servers/zerocut.d.ts.map +1 -1
- package/dist/mcp/servers/zerocut.js +295 -103
- package/dist/mcp/servers/zerocut.js.map +1 -1
- package/dist/utils/videokit.d.ts.map +1 -1
- package/dist/utils/videokit.js +74 -75
- package/dist/utils/videokit.js.map +1 -1
- package/dist/utils/videoproject-schema.json +516 -0
- package/package.json +2 -2
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "VideoProject Schema",
|
|
4
|
+
"description": "JSON Schema for VideoProject data structure used in videokit-ts library for AI-driven video assembly",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"version": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Project version, typically '1.0'",
|
|
10
|
+
"example": "1.0"
|
|
11
|
+
},
|
|
12
|
+
"project": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"description": "Project metadata",
|
|
15
|
+
"properties": {
|
|
16
|
+
"name": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Project name"
|
|
19
|
+
},
|
|
20
|
+
"id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Unique project identifier"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["name", "id"]
|
|
26
|
+
},
|
|
27
|
+
"settings": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"description": "Video project settings",
|
|
30
|
+
"properties": {
|
|
31
|
+
"fps": {
|
|
32
|
+
"type": "number",
|
|
33
|
+
"minimum": 0,
|
|
34
|
+
"exclusiveMinimum": true,
|
|
35
|
+
"description": "Frames per second",
|
|
36
|
+
"example": 30
|
|
37
|
+
},
|
|
38
|
+
"resolution": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"description": "Video resolution",
|
|
41
|
+
"properties": {
|
|
42
|
+
"width": {
|
|
43
|
+
"type": "integer",
|
|
44
|
+
"minimum": 16,
|
|
45
|
+
"description": "Video width in pixels"
|
|
46
|
+
},
|
|
47
|
+
"height": {
|
|
48
|
+
"type": "integer",
|
|
49
|
+
"minimum": 16,
|
|
50
|
+
"description": "Video height in pixels"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"required": ["width", "height"]
|
|
54
|
+
},
|
|
55
|
+
"pixelFormat": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Pixel format (e.g., 'yuv420p')",
|
|
58
|
+
"example": "yuv420p"
|
|
59
|
+
},
|
|
60
|
+
"sampleRate": {
|
|
61
|
+
"type": "integer",
|
|
62
|
+
"minimum": 1,
|
|
63
|
+
"description": "Audio sample rate (e.g., 48000)",
|
|
64
|
+
"example": 48000
|
|
65
|
+
},
|
|
66
|
+
"channels": {
|
|
67
|
+
"type": "integer",
|
|
68
|
+
"minimum": 1,
|
|
69
|
+
"description": "Audio channels (1 or 2)",
|
|
70
|
+
"example": 2
|
|
71
|
+
},
|
|
72
|
+
"timebase": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Time base (e.g., '1/1000' for milliseconds)",
|
|
75
|
+
"example": "1/1000"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"required": ["fps", "resolution", "pixelFormat", "sampleRate", "channels", "timebase"]
|
|
79
|
+
},
|
|
80
|
+
"assets": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"description": "Media assets used in the project",
|
|
83
|
+
"minItems": 1,
|
|
84
|
+
"items": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"properties": {
|
|
87
|
+
"id": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"description": "Unique asset identifier"
|
|
90
|
+
},
|
|
91
|
+
"type": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"enum": ["video", "audio", "image"],
|
|
94
|
+
"description": "Asset type"
|
|
95
|
+
},
|
|
96
|
+
"uri": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"description": "Asset file path (absolute or relative)"
|
|
99
|
+
},
|
|
100
|
+
"durationMs": {
|
|
101
|
+
"type": "integer",
|
|
102
|
+
"description": "Asset duration in milliseconds (optional)"
|
|
103
|
+
},
|
|
104
|
+
"fps": {
|
|
105
|
+
"type": "number",
|
|
106
|
+
"description": "Asset frame rate (optional, for video assets)"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"required": ["id", "type", "uri"]
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"timeline": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"description": "Timeline containing tracks and mix settings",
|
|
115
|
+
"properties": {
|
|
116
|
+
"tracks": {
|
|
117
|
+
"type": "array",
|
|
118
|
+
"description": "Timeline tracks",
|
|
119
|
+
"minItems": 1,
|
|
120
|
+
"items": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"id": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"description": "Unique track identifier"
|
|
126
|
+
},
|
|
127
|
+
"type": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"enum": ["video", "audio", "subtitle"],
|
|
130
|
+
"description": "Track type"
|
|
131
|
+
},
|
|
132
|
+
"muted": {
|
|
133
|
+
"type": "boolean",
|
|
134
|
+
"description": "Whether track is muted (optional)"
|
|
135
|
+
},
|
|
136
|
+
"opacity": {
|
|
137
|
+
"type": "number",
|
|
138
|
+
"minimum": 0,
|
|
139
|
+
"maximum": 1,
|
|
140
|
+
"description": "Track opacity for video tracks (optional)"
|
|
141
|
+
},
|
|
142
|
+
"clips": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"description": "Clips in this track",
|
|
145
|
+
"items": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"properties": {
|
|
148
|
+
"id": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"description": "Unique clip identifier"
|
|
151
|
+
},
|
|
152
|
+
"assetId": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"description": "Reference to asset ID"
|
|
155
|
+
},
|
|
156
|
+
"startMs": {
|
|
157
|
+
"type": "integer",
|
|
158
|
+
"minimum": 0,
|
|
159
|
+
"description": "Start time on timeline in milliseconds"
|
|
160
|
+
},
|
|
161
|
+
"inMs": {
|
|
162
|
+
"type": "integer",
|
|
163
|
+
"minimum": 0,
|
|
164
|
+
"description": "Start time in asset in milliseconds"
|
|
165
|
+
},
|
|
166
|
+
"durationMs": {
|
|
167
|
+
"type": "integer",
|
|
168
|
+
"minimum": 1,
|
|
169
|
+
"description": "Clip duration in milliseconds"
|
|
170
|
+
},
|
|
171
|
+
"transform": {
|
|
172
|
+
"type": "object",
|
|
173
|
+
"description": "Visual transformation settings (optional)",
|
|
174
|
+
"properties": {
|
|
175
|
+
"scale": {
|
|
176
|
+
"type": "number",
|
|
177
|
+
"description": "Scale factor"
|
|
178
|
+
},
|
|
179
|
+
"rotate": {
|
|
180
|
+
"type": "number",
|
|
181
|
+
"description": "Rotation in degrees"
|
|
182
|
+
},
|
|
183
|
+
"anchor": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"enum": ["center", "topleft", "topright", "bottomleft", "bottomright"],
|
|
186
|
+
"description": "Anchor point for transformations"
|
|
187
|
+
},
|
|
188
|
+
"position": {
|
|
189
|
+
"type": "object",
|
|
190
|
+
"description": "Position (normalized 0..1)",
|
|
191
|
+
"properties": {
|
|
192
|
+
"x": { "type": "number" },
|
|
193
|
+
"y": { "type": "number" }
|
|
194
|
+
},
|
|
195
|
+
"required": ["x", "y"]
|
|
196
|
+
},
|
|
197
|
+
"fit": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"enum": ["contain", "cover", "stretch"],
|
|
200
|
+
"description": "How to fit content"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"speed": {
|
|
205
|
+
"type": "number",
|
|
206
|
+
"minimum": 0,
|
|
207
|
+
"exclusiveMinimum": true,
|
|
208
|
+
"description": "Playback speed multiplier (optional)"
|
|
209
|
+
},
|
|
210
|
+
"effects": {
|
|
211
|
+
"type": "array",
|
|
212
|
+
"description": "Applied effects (optional)",
|
|
213
|
+
"items": {
|
|
214
|
+
"type": "object",
|
|
215
|
+
"properties": {
|
|
216
|
+
"name": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "Effect name (fadeIn, fadeOut, gain, blur, color, speed, or custom)"
|
|
219
|
+
},
|
|
220
|
+
"params": {
|
|
221
|
+
"type": "object",
|
|
222
|
+
"description": "Effect parameters (optional)",
|
|
223
|
+
"additionalProperties": true
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"required": ["name"]
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"transitionIn": {
|
|
230
|
+
"type": "object",
|
|
231
|
+
"description": "Transition in effect (optional)",
|
|
232
|
+
"properties": {
|
|
233
|
+
"name": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"description": "Transition name"
|
|
236
|
+
},
|
|
237
|
+
"durationMs": {
|
|
238
|
+
"type": "integer",
|
|
239
|
+
"minimum": 1,
|
|
240
|
+
"description": "Transition duration in milliseconds"
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"required": ["name", "durationMs"]
|
|
244
|
+
},
|
|
245
|
+
"transitionOut": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"description": "Transition out effect (optional)",
|
|
248
|
+
"properties": {
|
|
249
|
+
"name": {
|
|
250
|
+
"type": "string",
|
|
251
|
+
"description": "Transition name"
|
|
252
|
+
},
|
|
253
|
+
"durationMs": {
|
|
254
|
+
"type": "integer",
|
|
255
|
+
"minimum": 1,
|
|
256
|
+
"description": "Transition duration in milliseconds"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"required": ["name", "durationMs"]
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": ["id", "assetId", "startMs", "inMs", "durationMs"]
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"required": ["id", "type", "clips"]
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"mix": {
|
|
270
|
+
"type": "object",
|
|
271
|
+
"description": "Audio mixing settings (optional)",
|
|
272
|
+
"properties": {
|
|
273
|
+
"ducking": {
|
|
274
|
+
"type": "array",
|
|
275
|
+
"description": "Audio ducking rules (optional)",
|
|
276
|
+
"items": {
|
|
277
|
+
"type": "object",
|
|
278
|
+
"properties": {
|
|
279
|
+
"id": {
|
|
280
|
+
"type": "string",
|
|
281
|
+
"description": "Ducking rule identifier"
|
|
282
|
+
},
|
|
283
|
+
"musicTrackId": {
|
|
284
|
+
"type": "string",
|
|
285
|
+
"description": "Music track ID to be ducked"
|
|
286
|
+
},
|
|
287
|
+
"dialogTrackId": {
|
|
288
|
+
"type": "string",
|
|
289
|
+
"description": "Dialog track ID that triggers ducking"
|
|
290
|
+
},
|
|
291
|
+
"params": {
|
|
292
|
+
"type": "object",
|
|
293
|
+
"description": "Ducking parameters (optional)",
|
|
294
|
+
"properties": {
|
|
295
|
+
"threshold": {
|
|
296
|
+
"type": "number",
|
|
297
|
+
"description": "Threshold level (0..1, ~-dBFS)"
|
|
298
|
+
},
|
|
299
|
+
"ratio": {
|
|
300
|
+
"type": "number",
|
|
301
|
+
"description": "Compression ratio (6..12 typical)"
|
|
302
|
+
},
|
|
303
|
+
"attackMs": {
|
|
304
|
+
"type": "number",
|
|
305
|
+
"description": "Attack time in milliseconds (0..100)"
|
|
306
|
+
},
|
|
307
|
+
"releaseMs": {
|
|
308
|
+
"type": "number",
|
|
309
|
+
"description": "Release time in milliseconds (100..800)"
|
|
310
|
+
},
|
|
311
|
+
"musicPreGain": {
|
|
312
|
+
"type": "number",
|
|
313
|
+
"description": "Music pre-gain in dB (e.g., -12)"
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"required": ["id", "musicTrackId", "dialogTrackId"]
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"required": ["tracks"]
|
|
325
|
+
},
|
|
326
|
+
"subtitles": {
|
|
327
|
+
"type": "array",
|
|
328
|
+
"description": "Subtitle items (optional)",
|
|
329
|
+
"items": {
|
|
330
|
+
"type": "object",
|
|
331
|
+
"properties": {
|
|
332
|
+
"id": {
|
|
333
|
+
"type": "string",
|
|
334
|
+
"description": "Unique subtitle identifier"
|
|
335
|
+
},
|
|
336
|
+
"text": {
|
|
337
|
+
"type": "string",
|
|
338
|
+
"description": "Subtitle text content"
|
|
339
|
+
},
|
|
340
|
+
"startMs": {
|
|
341
|
+
"type": "integer",
|
|
342
|
+
"minimum": 0,
|
|
343
|
+
"description": "Start time in milliseconds"
|
|
344
|
+
},
|
|
345
|
+
"endMs": {
|
|
346
|
+
"type": "integer",
|
|
347
|
+
"minimum": 1,
|
|
348
|
+
"description": "End time in milliseconds"
|
|
349
|
+
},
|
|
350
|
+
"audio": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"description": "Optional reference to asset ID for dialog audio"
|
|
353
|
+
},
|
|
354
|
+
"style": {
|
|
355
|
+
"type": "object",
|
|
356
|
+
"description": "Subtitle styling (optional)",
|
|
357
|
+
"properties": {
|
|
358
|
+
"fontFamily": {
|
|
359
|
+
"type": "string",
|
|
360
|
+
"description": "Font family name"
|
|
361
|
+
},
|
|
362
|
+
"fontSize": {
|
|
363
|
+
"type": "number",
|
|
364
|
+
"description": "Font size in pixels"
|
|
365
|
+
},
|
|
366
|
+
"bold": {
|
|
367
|
+
"type": "boolean",
|
|
368
|
+
"description": "Whether text is bold"
|
|
369
|
+
},
|
|
370
|
+
"color": {
|
|
371
|
+
"type": "string",
|
|
372
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
373
|
+
"description": "Text color in #RRGGBB format"
|
|
374
|
+
},
|
|
375
|
+
"outlineColor": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
378
|
+
"description": "Outline color in #RRGGBB format"
|
|
379
|
+
},
|
|
380
|
+
"outlineWidth": {
|
|
381
|
+
"type": "number",
|
|
382
|
+
"description": "Outline width in pixels"
|
|
383
|
+
},
|
|
384
|
+
"align": {
|
|
385
|
+
"type": "string",
|
|
386
|
+
"enum": ["left", "center", "right"],
|
|
387
|
+
"description": "Text alignment"
|
|
388
|
+
},
|
|
389
|
+
"position": {
|
|
390
|
+
"type": "object",
|
|
391
|
+
"description": "Position (normalized 0..1)",
|
|
392
|
+
"properties": {
|
|
393
|
+
"x": { "type": "number" },
|
|
394
|
+
"y": { "type": "number" }
|
|
395
|
+
},
|
|
396
|
+
"required": ["x", "y"]
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
"required": ["id", "text", "startMs", "endMs"]
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
"export": {
|
|
405
|
+
"type": "object",
|
|
406
|
+
"description": "Export configuration",
|
|
407
|
+
"properties": {
|
|
408
|
+
"container": {
|
|
409
|
+
"type": "string",
|
|
410
|
+
"description": "Output container format (mp4, mov, mkv)",
|
|
411
|
+
"example": "mp4"
|
|
412
|
+
},
|
|
413
|
+
"videoCodec": {
|
|
414
|
+
"type": "string",
|
|
415
|
+
"description": "Video codec (libx264, libx265)",
|
|
416
|
+
"example": "libx264"
|
|
417
|
+
},
|
|
418
|
+
"crf": {
|
|
419
|
+
"type": "integer",
|
|
420
|
+
"description": "Constant Rate Factor for video quality (optional)"
|
|
421
|
+
},
|
|
422
|
+
"preset": {
|
|
423
|
+
"type": "string",
|
|
424
|
+
"description": "Encoding preset (ultrafast..veryslow) (optional)"
|
|
425
|
+
},
|
|
426
|
+
"audioCodec": {
|
|
427
|
+
"type": "string",
|
|
428
|
+
"description": "Audio codec (aac, libopus)",
|
|
429
|
+
"example": "aac"
|
|
430
|
+
},
|
|
431
|
+
"audioBitrate": {
|
|
432
|
+
"type": "string",
|
|
433
|
+
"description": "Audio bitrate (e.g., '192k') (optional)"
|
|
434
|
+
},
|
|
435
|
+
"outFile": {
|
|
436
|
+
"type": "string",
|
|
437
|
+
"description": "Output file path (optional, defaults to 'output.{container}')"
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
"required": ["container", "videoCodec", "audioCodec"]
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"required": ["version", "project", "settings", "assets", "timeline", "export"],
|
|
444
|
+
"examples": [
|
|
445
|
+
{
|
|
446
|
+
"version": "1.0",
|
|
447
|
+
"project": {
|
|
448
|
+
"name": "Sample Video Project",
|
|
449
|
+
"id": "project-001"
|
|
450
|
+
},
|
|
451
|
+
"settings": {
|
|
452
|
+
"fps": 30,
|
|
453
|
+
"resolution": {
|
|
454
|
+
"width": 1920,
|
|
455
|
+
"height": 1080
|
|
456
|
+
},
|
|
457
|
+
"pixelFormat": "yuv420p",
|
|
458
|
+
"sampleRate": 48000,
|
|
459
|
+
"channels": 2,
|
|
460
|
+
"timebase": "1/1000"
|
|
461
|
+
},
|
|
462
|
+
"assets": [
|
|
463
|
+
{
|
|
464
|
+
"id": "video-001",
|
|
465
|
+
"type": "video",
|
|
466
|
+
"uri": "/path/to/video.mp4",
|
|
467
|
+
"durationMs": 10000,
|
|
468
|
+
"fps": 30
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"id": "audio-001",
|
|
472
|
+
"type": "audio",
|
|
473
|
+
"uri": "/path/to/audio.mp3",
|
|
474
|
+
"durationMs": 15000
|
|
475
|
+
}
|
|
476
|
+
],
|
|
477
|
+
"timeline": {
|
|
478
|
+
"tracks": [
|
|
479
|
+
{
|
|
480
|
+
"id": "video-track-1",
|
|
481
|
+
"type": "video",
|
|
482
|
+
"clips": [
|
|
483
|
+
{
|
|
484
|
+
"id": "clip-001",
|
|
485
|
+
"assetId": "video-001",
|
|
486
|
+
"startMs": 0,
|
|
487
|
+
"inMs": 0,
|
|
488
|
+
"durationMs": 5000
|
|
489
|
+
}
|
|
490
|
+
]
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"id": "audio-track-1",
|
|
494
|
+
"type": "audio",
|
|
495
|
+
"clips": [
|
|
496
|
+
{
|
|
497
|
+
"id": "clip-002",
|
|
498
|
+
"assetId": "audio-001",
|
|
499
|
+
"startMs": 0,
|
|
500
|
+
"inMs": 0,
|
|
501
|
+
"durationMs": 5000
|
|
502
|
+
}
|
|
503
|
+
]
|
|
504
|
+
}
|
|
505
|
+
]
|
|
506
|
+
},
|
|
507
|
+
"export": {
|
|
508
|
+
"container": "mp4",
|
|
509
|
+
"videoCodec": "libx264",
|
|
510
|
+
"audioCodec": "aac",
|
|
511
|
+
"crf": 23,
|
|
512
|
+
"preset": "medium"
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
]
|
|
516
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cerevox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "TypeScript SDK for browser automation and secure command execution in highly available and scalable micro computer environments",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"zod": "^3.25.76"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
|
-
"build:sdk": "rm -rf ./dist && tsc && chmod +x dist/cli/*.js",
|
|
76
|
+
"build:sdk": "rm -rf ./dist && tsc && chmod +x dist/cli/*.js && cp src/utils/videoproject-schema.json dist/utils/",
|
|
77
77
|
"build:sandbox": "esbuild sandbox/http-proxy.ts --bundle --platform=node --outfile=sandbox/http-proxy.js --external:sharp --external:playwright-extra --external:puppeteer-extra-plugin-stealth",
|
|
78
78
|
"build": "pnpm build:sdk && pnpm build:sandbox",
|
|
79
79
|
"build:worker": "esbuild worker/worker.ts --bundle --format=esm --outfile=worker/worker.js",
|