screenwright 0.1.1 → 0.1.4
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/assets/cursor-default.svg +10 -10
- package/assets/cursor-pointer.svg +40 -40
- package/dist/src/commands/init.d.ts +6 -0
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +94 -2
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/scripts/postinstall.d.ts +6 -0
- package/dist/src/scripts/postinstall.d.ts.map +1 -0
- package/dist/src/scripts/postinstall.js +41 -0
- package/dist/src/scripts/postinstall.js.map +1 -0
- package/dist/src/timeline/schema.d.ts +20 -20
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -4
- package/skill/SKILL.md +223 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
5
|
-
viewBox="0 0 28 28" enable-background="new 0 0 28 28" xml:space="preserve">
|
|
6
|
-
<polygon fill="#FFFFFF" points="8.2,20.9 8.2,4.9 19.8,16.5 13,16.5 12.6,16.6 "/>
|
|
7
|
-
<polygon fill="#FFFFFF" points="17.3,21.6 13.7,23.1 9,12 12.7,10.5 "/>
|
|
8
|
-
<rect x="12.5" y="13.6" transform="matrix(0.9221 -0.3871 0.3871 0.9221 -5.7605 6.5909)" width="2" height="8"/>
|
|
9
|
-
<polygon points="9.2,7.3 9.2,18.5 12.2,15.6 12.6,15.5 17.4,15.5 "/>
|
|
10
|
-
</svg>
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
5
|
+
viewBox="0 0 28 28" enable-background="new 0 0 28 28" xml:space="preserve">
|
|
6
|
+
<polygon fill="#FFFFFF" points="8.2,20.9 8.2,4.9 19.8,16.5 13,16.5 12.6,16.6 "/>
|
|
7
|
+
<polygon fill="#FFFFFF" points="17.3,21.6 13.7,23.1 9,12 12.7,10.5 "/>
|
|
8
|
+
<rect x="12.5" y="13.6" transform="matrix(0.9221 -0.3871 0.3871 0.9221 -5.7605 6.5909)" width="2" height="8"/>
|
|
9
|
+
<polygon points="9.2,7.3 9.2,18.5 12.2,15.6 12.6,15.5 17.4,15.5 "/>
|
|
10
|
+
</svg>
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
5
|
-
viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
|
6
|
-
<g>
|
|
7
|
-
<defs>
|
|
8
|
-
<rect id="SVGID_1_" width="32" height="32"/>
|
|
9
|
-
</defs>
|
|
10
|
-
<clipPath id="SVGID_2_">
|
|
11
|
-
<use xlink:href="#SVGID_1_" overflow="visible"/>
|
|
12
|
-
</clipPath>
|
|
13
|
-
<path clip-path="url(#SVGID_2_)" fill="#FFFFFF" d="M11.3,20.4c-0.3-0.4-0.6-1.1-1.2-2c-0.3-0.5-1.2-1.5-1.5-1.9
|
|
14
|
-
c-0.2-0.4-0.2-0.6-0.1-1c0.1-0.6,0.7-1.1,1.4-1.1c0.5,0,1,0.4,1.4,0.7c0.2,0.2,0.5,0.6,0.7,0.8c0.2,0.2,0.2,0.3,0.4,0.5
|
|
15
|
-
c0.2,0.3,0.3,0.5,0.2,0.1c-0.1-0.5-0.2-1.3-0.4-2.1c-0.1-0.6-0.2-0.7-0.3-1.1c-0.1-0.5-0.2-0.8-0.3-1.3c-0.1-0.3-0.2-1.1-0.3-1.5
|
|
16
|
-
c-0.1-0.5-0.1-1.4,0.3-1.8c0.3-0.3,0.9-0.4,1.3-0.2c0.5,0.3,0.8,1,0.9,1.3c0.2,0.5,0.4,1.2,0.5,2c0.2,1,0.5,2.5,0.5,2.8
|
|
17
|
-
c0-0.4-0.1-1.1,0-1.5c0.1-0.3,0.3-0.7,0.7-0.8c0.3-0.1,0.6-0.1,0.9-0.1c0.3,0.1,0.6,0.3,0.8,0.5c0.4,0.6,0.4,1.9,0.4,1.8
|
|
18
|
-
c0.1-0.4,0.1-1.2,0.3-1.6c0.1-0.2,0.5-0.4,0.7-0.5c0.3-0.1,0.7-0.1,1,0c0.2,0,0.6,0.3,0.7,0.5c0.2,0.3,0.3,1.3,0.4,1.7
|
|
19
|
-
c0,0.1,0.1-0.4,0.3-0.7c0.4-0.6,1.8-0.8,1.9,0.6c0,0.7,0,0.6,0,1.1c0,0.5,0,0.8,0,1.2c0,0.4-0.1,1.3-0.2,1.7
|
|
20
|
-
c-0.1,0.3-0.4,1-0.7,1.4c0,0-1.1,1.2-1.2,1.8c-0.1,0.6-0.1,0.6-0.1,1c0,0.4,0.1,0.9,0.1,0.9s-0.8,0.1-1.2,0c-0.4-0.1-0.9-0.8-1-1.1
|
|
21
|
-
c-0.2-0.3-0.5-0.3-0.7,0c-0.2,0.4-0.7,1.1-1.1,1.1c-0.7,0.1-2.1,0-3.1,0c0,0,0.2-1-0.2-1.4c-0.3-0.3-0.8-0.8-1.1-1.1L11.3,20.4z"/>
|
|
22
|
-
|
|
23
|
-
<path clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round" d="
|
|
24
|
-
M11.3,20.4c-0.3-0.4-0.6-1.1-1.2-2c-0.3-0.5-1.2-1.5-1.5-1.9c-0.2-0.4-0.2-0.6-0.1-1c0.1-0.6,0.7-1.1,1.4-1.1c0.5,0,1,0.4,1.4,0.7
|
|
25
|
-
c0.2,0.2,0.5,0.6,0.7,0.8c0.2,0.2,0.2,0.3,0.4,0.5c0.2,0.3,0.3,0.5,0.2,0.1c-0.1-0.5-0.2-1.3-0.4-2.1c-0.1-0.6-0.2-0.7-0.3-1.1
|
|
26
|
-
c-0.1-0.5-0.2-0.8-0.3-1.3c-0.1-0.3-0.2-1.1-0.3-1.5c-0.1-0.5-0.1-1.4,0.3-1.8c0.3-0.3,0.9-0.4,1.3-0.2c0.5,0.3,0.8,1,0.9,1.3
|
|
27
|
-
c0.2,0.5,0.4,1.2,0.5,2c0.2,1,0.5,2.5,0.5,2.8c0-0.4-0.1-1.1,0-1.5c0.1-0.3,0.3-0.7,0.7-0.8c0.3-0.1,0.6-0.1,0.9-0.1
|
|
28
|
-
c0.3,0.1,0.6,0.3,0.8,0.5c0.4,0.6,0.4,1.9,0.4,1.8c0.1-0.4,0.1-1.2,0.3-1.6c0.1-0.2,0.5-0.4,0.7-0.5c0.3-0.1,0.7-0.1,1,0
|
|
29
|
-
c0.2,0,0.6,0.3,0.7,0.5c0.2,0.3,0.3,1.3,0.4,1.7c0,0.1,0.1-0.4,0.3-0.7c0.4-0.6,1.8-0.8,1.9,0.6c0,0.7,0,0.6,0,1.1
|
|
30
|
-
c0,0.5,0,0.8,0,1.2c0,0.4-0.1,1.3-0.2,1.7c-0.1,0.3-0.4,1-0.7,1.4c0,0-1.1,1.2-1.2,1.8c-0.1,0.6-0.1,0.6-0.1,1
|
|
31
|
-
c0,0.4,0.1,0.9,0.1,0.9s-0.8,0.1-1.2,0c-0.4-0.1-0.9-0.8-1-1.1c-0.2-0.3-0.5-0.3-0.7,0c-0.2,0.4-0.7,1.1-1.1,1.1
|
|
32
|
-
c-0.7,0.1-2.1,0-3.1,0c0,0,0.2-1-0.2-1.4c-0.3-0.3-0.8-0.8-1.1-1.1L11.3,20.4z"/>
|
|
33
|
-
|
|
34
|
-
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="19.6" y1="20.7" x2="19.6" y2="17.3"/>
|
|
35
|
-
|
|
36
|
-
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="17.6" y1="20.7" x2="17.5" y2="17.3"/>
|
|
37
|
-
|
|
38
|
-
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="15.6" y1="17.3" x2="15.6" y2="20.7"/>
|
|
39
|
-
</g>
|
|
40
|
-
</svg>
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
5
|
+
viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
|
6
|
+
<g>
|
|
7
|
+
<defs>
|
|
8
|
+
<rect id="SVGID_1_" width="32" height="32"/>
|
|
9
|
+
</defs>
|
|
10
|
+
<clipPath id="SVGID_2_">
|
|
11
|
+
<use xlink:href="#SVGID_1_" overflow="visible"/>
|
|
12
|
+
</clipPath>
|
|
13
|
+
<path clip-path="url(#SVGID_2_)" fill="#FFFFFF" d="M11.3,20.4c-0.3-0.4-0.6-1.1-1.2-2c-0.3-0.5-1.2-1.5-1.5-1.9
|
|
14
|
+
c-0.2-0.4-0.2-0.6-0.1-1c0.1-0.6,0.7-1.1,1.4-1.1c0.5,0,1,0.4,1.4,0.7c0.2,0.2,0.5,0.6,0.7,0.8c0.2,0.2,0.2,0.3,0.4,0.5
|
|
15
|
+
c0.2,0.3,0.3,0.5,0.2,0.1c-0.1-0.5-0.2-1.3-0.4-2.1c-0.1-0.6-0.2-0.7-0.3-1.1c-0.1-0.5-0.2-0.8-0.3-1.3c-0.1-0.3-0.2-1.1-0.3-1.5
|
|
16
|
+
c-0.1-0.5-0.1-1.4,0.3-1.8c0.3-0.3,0.9-0.4,1.3-0.2c0.5,0.3,0.8,1,0.9,1.3c0.2,0.5,0.4,1.2,0.5,2c0.2,1,0.5,2.5,0.5,2.8
|
|
17
|
+
c0-0.4-0.1-1.1,0-1.5c0.1-0.3,0.3-0.7,0.7-0.8c0.3-0.1,0.6-0.1,0.9-0.1c0.3,0.1,0.6,0.3,0.8,0.5c0.4,0.6,0.4,1.9,0.4,1.8
|
|
18
|
+
c0.1-0.4,0.1-1.2,0.3-1.6c0.1-0.2,0.5-0.4,0.7-0.5c0.3-0.1,0.7-0.1,1,0c0.2,0,0.6,0.3,0.7,0.5c0.2,0.3,0.3,1.3,0.4,1.7
|
|
19
|
+
c0,0.1,0.1-0.4,0.3-0.7c0.4-0.6,1.8-0.8,1.9,0.6c0,0.7,0,0.6,0,1.1c0,0.5,0,0.8,0,1.2c0,0.4-0.1,1.3-0.2,1.7
|
|
20
|
+
c-0.1,0.3-0.4,1-0.7,1.4c0,0-1.1,1.2-1.2,1.8c-0.1,0.6-0.1,0.6-0.1,1c0,0.4,0.1,0.9,0.1,0.9s-0.8,0.1-1.2,0c-0.4-0.1-0.9-0.8-1-1.1
|
|
21
|
+
c-0.2-0.3-0.5-0.3-0.7,0c-0.2,0.4-0.7,1.1-1.1,1.1c-0.7,0.1-2.1,0-3.1,0c0,0,0.2-1-0.2-1.4c-0.3-0.3-0.8-0.8-1.1-1.1L11.3,20.4z"/>
|
|
22
|
+
|
|
23
|
+
<path clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round" d="
|
|
24
|
+
M11.3,20.4c-0.3-0.4-0.6-1.1-1.2-2c-0.3-0.5-1.2-1.5-1.5-1.9c-0.2-0.4-0.2-0.6-0.1-1c0.1-0.6,0.7-1.1,1.4-1.1c0.5,0,1,0.4,1.4,0.7
|
|
25
|
+
c0.2,0.2,0.5,0.6,0.7,0.8c0.2,0.2,0.2,0.3,0.4,0.5c0.2,0.3,0.3,0.5,0.2,0.1c-0.1-0.5-0.2-1.3-0.4-2.1c-0.1-0.6-0.2-0.7-0.3-1.1
|
|
26
|
+
c-0.1-0.5-0.2-0.8-0.3-1.3c-0.1-0.3-0.2-1.1-0.3-1.5c-0.1-0.5-0.1-1.4,0.3-1.8c0.3-0.3,0.9-0.4,1.3-0.2c0.5,0.3,0.8,1,0.9,1.3
|
|
27
|
+
c0.2,0.5,0.4,1.2,0.5,2c0.2,1,0.5,2.5,0.5,2.8c0-0.4-0.1-1.1,0-1.5c0.1-0.3,0.3-0.7,0.7-0.8c0.3-0.1,0.6-0.1,0.9-0.1
|
|
28
|
+
c0.3,0.1,0.6,0.3,0.8,0.5c0.4,0.6,0.4,1.9,0.4,1.8c0.1-0.4,0.1-1.2,0.3-1.6c0.1-0.2,0.5-0.4,0.7-0.5c0.3-0.1,0.7-0.1,1,0
|
|
29
|
+
c0.2,0,0.6,0.3,0.7,0.5c0.2,0.3,0.3,1.3,0.4,1.7c0,0.1,0.1-0.4,0.3-0.7c0.4-0.6,1.8-0.8,1.9,0.6c0,0.7,0,0.6,0,1.1
|
|
30
|
+
c0,0.5,0,0.8,0,1.2c0,0.4-0.1,1.3-0.2,1.7c-0.1,0.3-0.4,1-0.7,1.4c0,0-1.1,1.2-1.2,1.8c-0.1,0.6-0.1,0.6-0.1,1
|
|
31
|
+
c0,0.4,0.1,0.9,0.1,0.9s-0.8,0.1-1.2,0c-0.4-0.1-0.9-0.8-1-1.1c-0.2-0.3-0.5-0.3-0.7,0c-0.2,0.4-0.7,1.1-1.1,1.1
|
|
32
|
+
c-0.7,0.1-2.1,0-3.1,0c0,0,0.2-1-0.2-1.4c-0.3-0.3-0.8-0.8-1.1-1.1L11.3,20.4z"/>
|
|
33
|
+
|
|
34
|
+
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="19.6" y1="20.7" x2="19.6" y2="17.3"/>
|
|
35
|
+
|
|
36
|
+
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="17.6" y1="20.7" x2="17.5" y2="17.3"/>
|
|
37
|
+
|
|
38
|
+
<line clip-path="url(#SVGID_2_)" fill="none" stroke="#000000" stroke-width="0.75" stroke-linecap="round" x1="15.6" y1="17.3" x2="15.6" y2="20.7"/>
|
|
39
|
+
</g>
|
|
40
|
+
</svg>
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
export interface InstallSkillsOptions {
|
|
3
|
+
askFn?: (question: string) => Promise<boolean>;
|
|
4
|
+
homeDir?: string;
|
|
5
|
+
skillSourcePath?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function installSkills(opts?: InstallSkillsOptions): Promise<void>;
|
|
2
8
|
export declare const initCommand: Command;
|
|
3
9
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDpC,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C9E;AAED,eAAO,MAAM,WAAW,SA+CpB,CAAC"}
|
|
@@ -1,14 +1,102 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { writeFile, access } from 'node:fs/promises';
|
|
3
|
-
import { resolve } from 'node:path';
|
|
2
|
+
import { writeFile, access, readFile, mkdir, copyFile } from 'node:fs/promises';
|
|
3
|
+
import { resolve, dirname } from 'node:path';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
5
|
+
import { createInterface } from 'node:readline/promises';
|
|
4
6
|
import ora from 'ora';
|
|
5
7
|
import chalk from 'chalk';
|
|
6
8
|
import { defaultConfig, serializeConfig } from '../config/defaults.js';
|
|
7
9
|
import { ensureDependencies } from '../voiceover/voice-models.js';
|
|
10
|
+
async function exists(path) {
|
|
11
|
+
try {
|
|
12
|
+
await access(path);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function askYesNo(question) {
|
|
20
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
21
|
+
try {
|
|
22
|
+
const answer = await rl.question(question);
|
|
23
|
+
return answer.trim().toLowerCase() === 'y';
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
rl.close();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function getSkillSourcePath() {
|
|
33
|
+
return resolve(import.meta.dirname, '..', '..', '..', 'skill', 'SKILL.md');
|
|
34
|
+
}
|
|
35
|
+
function getAssistantTargets(home) {
|
|
36
|
+
return [
|
|
37
|
+
{
|
|
38
|
+
name: 'Claude Code',
|
|
39
|
+
homeDir: resolve(home, '.claude'),
|
|
40
|
+
skillPath: resolve(home, '.claude', 'skills', 'screenwright', 'SKILL.md'),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Codex',
|
|
44
|
+
homeDir: resolve(home, '.codex'),
|
|
45
|
+
skillPath: resolve(home, '.codex', 'skills', 'screenwright', 'SKILL.md'),
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
export async function installSkills(opts) {
|
|
50
|
+
const ask = opts?.askFn ?? askYesNo;
|
|
51
|
+
const home = opts?.homeDir ?? homedir();
|
|
52
|
+
const sourcePath = opts?.skillSourcePath ?? getSkillSourcePath();
|
|
53
|
+
if (!await exists(sourcePath)) {
|
|
54
|
+
console.log(chalk.dim('Bundled skill not found, skipping skill install.'));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const sourceContent = await readFile(sourcePath, 'utf-8');
|
|
58
|
+
const targets = getAssistantTargets(home);
|
|
59
|
+
const detected = [];
|
|
60
|
+
for (const t of targets) {
|
|
61
|
+
if (await exists(t.homeDir))
|
|
62
|
+
detected.push(t);
|
|
63
|
+
}
|
|
64
|
+
if (detected.length === 0) {
|
|
65
|
+
console.log(chalk.dim('No coding assistants detected, skipping skill install.'));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
for (const t of detected) {
|
|
69
|
+
const installed = await exists(t.skillPath);
|
|
70
|
+
if (installed) {
|
|
71
|
+
const current = await readFile(t.skillPath, 'utf-8');
|
|
72
|
+
if (current === sourceContent) {
|
|
73
|
+
console.log(chalk.dim(`${t.name} skill already up to date.`));
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const confirm = await ask(`${t.name} skill exists but differs. Overwrite? (y/N) `);
|
|
77
|
+
if (!confirm)
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const confirm = await ask(`Install skill for ${t.name}? (y/N) `);
|
|
82
|
+
if (!confirm)
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
await mkdir(dirname(t.skillPath), { recursive: true });
|
|
87
|
+
await copyFile(sourcePath, t.skillPath);
|
|
88
|
+
console.log(chalk.green(`Installed skill for ${t.name}.`));
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
console.warn(chalk.yellow(`Could not install skill for ${t.name}: ${err.message}`));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
8
95
|
export const initCommand = new Command('init')
|
|
9
96
|
.description('Bootstrap config and download voice model')
|
|
10
97
|
.option('--voice <model>', 'Voice model to use', 'en_US-amy-medium')
|
|
11
98
|
.option('--skip-voice-download', 'Skip downloading the voice model')
|
|
99
|
+
.option('--skip-skill-install', 'Skip coding assistant skill installation')
|
|
12
100
|
.action(async (opts) => {
|
|
13
101
|
const configPath = resolve(process.cwd(), 'screenwright.config.ts');
|
|
14
102
|
// Config file
|
|
@@ -42,6 +130,10 @@ export const initCommand = new Command('init')
|
|
|
42
130
|
console.error(chalk.dim('Use --no-voiceover with compose to skip voiceover.'));
|
|
43
131
|
}
|
|
44
132
|
}
|
|
133
|
+
// Coding assistant skills
|
|
134
|
+
if (!opts.skipSkillInstall) {
|
|
135
|
+
await installSkills();
|
|
136
|
+
}
|
|
45
137
|
console.log('');
|
|
46
138
|
console.log(chalk.green('Screenwright initialized.'));
|
|
47
139
|
console.log(chalk.dim('Next: screenwright generate --test <path>'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;IACtC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAQD,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO;QACL;YACE,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;YACjC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;SAC1E;QACD;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YAChC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;SACzE;KACF,CAAC;AACJ,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA2B;IAC7D,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;IAEjE,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,8CAA8C,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO;gBAAE,SAAS;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO;gBAAE,SAAS;QACzB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;KACnE,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;KACnE,MAAM,CAAC,sBAAsB,EAAE,0CAA0C,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAEpE,cAAc;IACd,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc;IACd,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YAChG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.d.ts","sourceRoot":"","sources":["../../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { access, readFile, mkdir, copyFile } from 'node:fs/promises';
|
|
2
|
+
import { resolve, dirname } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
const ASSISTANTS = [
|
|
5
|
+
{ name: 'Claude Code', dir: '.claude' },
|
|
6
|
+
{ name: 'Codex', dir: '.codex' },
|
|
7
|
+
];
|
|
8
|
+
async function exists(path) {
|
|
9
|
+
try {
|
|
10
|
+
await access(path);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export async function upgradeSkills(opts) {
|
|
18
|
+
const home = opts?.homeDir ?? homedir();
|
|
19
|
+
const sourcePath = opts?.skillSourcePath ??
|
|
20
|
+
resolve(import.meta.dirname, '..', '..', '..', 'skill', 'SKILL.md');
|
|
21
|
+
if (!await exists(sourcePath))
|
|
22
|
+
return;
|
|
23
|
+
const sourceContent = await readFile(sourcePath, 'utf-8');
|
|
24
|
+
for (const { dir } of ASSISTANTS) {
|
|
25
|
+
const skillPath = resolve(home, dir, 'skills', 'screenwright', 'SKILL.md');
|
|
26
|
+
if (!await exists(skillPath))
|
|
27
|
+
continue;
|
|
28
|
+
const current = await readFile(skillPath, 'utf-8');
|
|
29
|
+
if (current === sourceContent)
|
|
30
|
+
continue;
|
|
31
|
+
try {
|
|
32
|
+
await mkdir(dirname(skillPath), { recursive: true });
|
|
33
|
+
await copyFile(sourcePath, skillPath);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Silent — don't break npm install
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
upgradeSkills().catch(() => { });
|
|
41
|
+
//# sourceMappingURL=postinstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../../../src/scripts/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,GAAG;IACjB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;CACjC,CAAC;AAEF,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA2B;IAC7D,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,EAAE,eAAe;QACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtE,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO;IAEtC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE1D,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,aAAa;YAAE,SAAS;QAExC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC"}
|
|
@@ -18,6 +18,7 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
18
18
|
videoDurationMs: z.ZodNumber;
|
|
19
19
|
videoFile: z.ZodString;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
videoFile: string;
|
|
21
22
|
testFile: string;
|
|
22
23
|
scenarioFile: string;
|
|
23
24
|
recordedAt: string;
|
|
@@ -26,8 +27,8 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
26
27
|
height: number;
|
|
27
28
|
};
|
|
28
29
|
videoDurationMs: number;
|
|
29
|
-
videoFile: string;
|
|
30
30
|
}, {
|
|
31
|
+
videoFile: string;
|
|
31
32
|
testFile: string;
|
|
32
33
|
scenarioFile: string;
|
|
33
34
|
recordedAt: string;
|
|
@@ -36,7 +37,6 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
36
37
|
height: number;
|
|
37
38
|
};
|
|
38
39
|
videoDurationMs: number;
|
|
39
|
-
videoFile: string;
|
|
40
40
|
}>;
|
|
41
41
|
events: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
42
42
|
type: z.ZodLiteral<"scene">;
|
|
@@ -47,14 +47,14 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
47
47
|
}, "strip", z.ZodTypeAny, {
|
|
48
48
|
type: "scene";
|
|
49
49
|
id: string;
|
|
50
|
-
title: string;
|
|
51
50
|
timestampMs: number;
|
|
51
|
+
title: string;
|
|
52
52
|
description?: string | undefined;
|
|
53
53
|
}, {
|
|
54
54
|
type: "scene";
|
|
55
55
|
id: string;
|
|
56
|
-
title: string;
|
|
57
56
|
timestampMs: number;
|
|
57
|
+
title: string;
|
|
58
58
|
description?: string | undefined;
|
|
59
59
|
}>, z.ZodObject<{
|
|
60
60
|
type: z.ZodLiteral<"action">;
|
|
@@ -70,41 +70,41 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
70
70
|
width: z.ZodNumber;
|
|
71
71
|
height: z.ZodNumber;
|
|
72
72
|
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
x: number;
|
|
73
74
|
width: number;
|
|
74
75
|
height: number;
|
|
75
|
-
x: number;
|
|
76
76
|
y: number;
|
|
77
77
|
}, {
|
|
78
|
+
x: number;
|
|
78
79
|
width: number;
|
|
79
80
|
height: number;
|
|
80
|
-
x: number;
|
|
81
81
|
y: number;
|
|
82
82
|
}>>;
|
|
83
83
|
}, "strip", z.ZodTypeAny, {
|
|
84
|
-
type: "action";
|
|
85
84
|
action: "fill" | "click" | "hover" | "select" | "press" | "navigate";
|
|
85
|
+
type: "action";
|
|
86
86
|
id: string;
|
|
87
87
|
timestampMs: number;
|
|
88
88
|
selector: string;
|
|
89
89
|
durationMs: number;
|
|
90
90
|
boundingBox: {
|
|
91
|
+
x: number;
|
|
91
92
|
width: number;
|
|
92
93
|
height: number;
|
|
93
|
-
x: number;
|
|
94
94
|
y: number;
|
|
95
95
|
} | null;
|
|
96
96
|
value?: string | undefined;
|
|
97
97
|
}, {
|
|
98
|
-
type: "action";
|
|
99
98
|
action: "fill" | "click" | "hover" | "select" | "press" | "navigate";
|
|
99
|
+
type: "action";
|
|
100
100
|
id: string;
|
|
101
101
|
timestampMs: number;
|
|
102
102
|
selector: string;
|
|
103
103
|
durationMs: number;
|
|
104
104
|
boundingBox: {
|
|
105
|
+
x: number;
|
|
105
106
|
width: number;
|
|
106
107
|
height: number;
|
|
107
|
-
x: number;
|
|
108
108
|
y: number;
|
|
109
109
|
} | null;
|
|
110
110
|
value?: string | undefined;
|
|
@@ -179,7 +179,9 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
179
179
|
reason: "pacing" | "narration_sync" | "page_load";
|
|
180
180
|
}>]>, "many">;
|
|
181
181
|
}, "strip", z.ZodTypeAny, {
|
|
182
|
+
version: 1;
|
|
182
183
|
metadata: {
|
|
184
|
+
videoFile: string;
|
|
183
185
|
testFile: string;
|
|
184
186
|
scenarioFile: string;
|
|
185
187
|
recordedAt: string;
|
|
@@ -188,26 +190,24 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
188
190
|
height: number;
|
|
189
191
|
};
|
|
190
192
|
videoDurationMs: number;
|
|
191
|
-
videoFile: string;
|
|
192
193
|
};
|
|
193
|
-
version: 1;
|
|
194
194
|
events: ({
|
|
195
195
|
type: "scene";
|
|
196
196
|
id: string;
|
|
197
|
-
title: string;
|
|
198
197
|
timestampMs: number;
|
|
198
|
+
title: string;
|
|
199
199
|
description?: string | undefined;
|
|
200
200
|
} | {
|
|
201
|
-
type: "action";
|
|
202
201
|
action: "fill" | "click" | "hover" | "select" | "press" | "navigate";
|
|
202
|
+
type: "action";
|
|
203
203
|
id: string;
|
|
204
204
|
timestampMs: number;
|
|
205
205
|
selector: string;
|
|
206
206
|
durationMs: number;
|
|
207
207
|
boundingBox: {
|
|
208
|
+
x: number;
|
|
208
209
|
width: number;
|
|
209
210
|
height: number;
|
|
210
|
-
x: number;
|
|
211
211
|
y: number;
|
|
212
212
|
} | null;
|
|
213
213
|
value?: string | undefined;
|
|
@@ -236,7 +236,9 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
236
236
|
reason: "pacing" | "narration_sync" | "page_load";
|
|
237
237
|
})[];
|
|
238
238
|
}, {
|
|
239
|
+
version: 1;
|
|
239
240
|
metadata: {
|
|
241
|
+
videoFile: string;
|
|
240
242
|
testFile: string;
|
|
241
243
|
scenarioFile: string;
|
|
242
244
|
recordedAt: string;
|
|
@@ -245,26 +247,24 @@ export declare const timelineSchema: z.ZodObject<{
|
|
|
245
247
|
height: number;
|
|
246
248
|
};
|
|
247
249
|
videoDurationMs: number;
|
|
248
|
-
videoFile: string;
|
|
249
250
|
};
|
|
250
|
-
version: 1;
|
|
251
251
|
events: ({
|
|
252
252
|
type: "scene";
|
|
253
253
|
id: string;
|
|
254
|
-
title: string;
|
|
255
254
|
timestampMs: number;
|
|
255
|
+
title: string;
|
|
256
256
|
description?: string | undefined;
|
|
257
257
|
} | {
|
|
258
|
-
type: "action";
|
|
259
258
|
action: "fill" | "click" | "hover" | "select" | "press" | "navigate";
|
|
259
|
+
type: "action";
|
|
260
260
|
id: string;
|
|
261
261
|
timestampMs: number;
|
|
262
262
|
selector: string;
|
|
263
263
|
durationMs: number;
|
|
264
264
|
boundingBox: {
|
|
265
|
+
x: number;
|
|
265
266
|
width: number;
|
|
266
267
|
height: number;
|
|
267
|
-
x: number;
|
|
268
268
|
y: number;
|
|
269
269
|
} | null;
|
|
270
270
|
value?: string | undefined;
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.1.
|
|
1
|
+
export const VERSION = "0.1.4";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|