screencast-axi 0.1.2 → 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/README.md +76 -66
- package/dist/src/commands/auth.js +2 -1
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/guide.js +2 -1
- package/dist/src/commands/guide.js.map +1 -1
- package/dist/src/commands/list.js +3 -0
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/commands/record.js +115 -11
- package/dist/src/commands/record.js.map +1 -1
- package/dist/src/commands/scaffold.js +16 -6
- package/dist/src/commands/scaffold.js.map +1 -1
- package/dist/src/commands/setup.js +19 -10
- package/dist/src/commands/setup.js.map +1 -1
- package/dist/src/config.js +22 -6
- package/dist/src/config.js.map +1 -1
- package/dist/src/encode.d.ts +14 -0
- package/dist/src/encode.js +5 -1
- package/dist/src/encode.js.map +1 -1
- package/dist/src/inventory.d.ts +15 -1
- package/dist/src/inventory.js +44 -4
- package/dist/src/inventory.js.map +1 -1
- package/dist/src/manifest.d.ts +13 -0
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/measure.d.ts +67 -0
- package/dist/src/measure.js +69 -0
- package/dist/src/measure.js.map +1 -0
- package/dist/src/run.d.ts +11 -0
- package/dist/src/run.js +39 -8
- package/dist/src/run.js.map +1 -1
- package/dist/src/skill.d.ts +10 -0
- package/dist/src/skill.js +28 -14
- package/dist/src/skill.js.map +1 -1
- package/dist/src/types.d.ts +15 -0
- package/dist/src/types.js +24 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
- package/skills/screencast-axi/SKILL.md +19 -15
- package/dist/src/hooks.d.ts +0 -9
- package/dist/src/hooks.js +0 -20
- package/dist/src/hooks.js.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remembering how long a scenario takes at pace 1.
|
|
3
|
+
*
|
|
4
|
+
* `--duration` cannot guess a pace: a take is `fixed + pace x scalable`, and
|
|
5
|
+
* only the scenario itself knows how much of it is the site's own waiting. So
|
|
6
|
+
* the recorder measures, by running the whole scenario once without encoding
|
|
7
|
+
* and then shooting it again for real. That is honest and it is also the
|
|
8
|
+
* single most expensive thing `record` does - measured on a ten-second
|
|
9
|
+
* Wikipedia clip, the discarded pass was 8.7s of a 28s run.
|
|
10
|
+
*
|
|
11
|
+
* The measurement is worth keeping, because what it describes barely changes:
|
|
12
|
+
* the same scenario, at the same size, against the same origin, takes the same
|
|
13
|
+
* time. Keyed on all three (plus the narration and the recorder version), a
|
|
14
|
+
* rehearsal doubles as the measuring pass and a re-cut costs one browser run
|
|
15
|
+
* instead of two.
|
|
16
|
+
*
|
|
17
|
+
* Anything that could move the number invalidates the entry rather than being
|
|
18
|
+
* corrected for. A cache that is wrong about a clip's length is worse than no
|
|
19
|
+
* cache: the clip comes out the wrong length and nothing says why.
|
|
20
|
+
*/
|
|
21
|
+
/** What was measured, and what it was measured against. */
|
|
22
|
+
export interface Measurement {
|
|
23
|
+
readonly scenarioId: string;
|
|
24
|
+
/** Hash of the scenario source, so any edit invalidates it. */
|
|
25
|
+
readonly sourceHash: string;
|
|
26
|
+
readonly stepsHash: string;
|
|
27
|
+
readonly baseUrl: string;
|
|
28
|
+
readonly width: number;
|
|
29
|
+
readonly height: number;
|
|
30
|
+
readonly device?: string;
|
|
31
|
+
readonly recorderVersion: string;
|
|
32
|
+
/** What a pace-1 take measured, in ms. */
|
|
33
|
+
readonly durationMs: number;
|
|
34
|
+
/** Of that, how much was pause the recorder controls. */
|
|
35
|
+
readonly scaledPauseMs: number;
|
|
36
|
+
readonly measuredAt: string;
|
|
37
|
+
}
|
|
38
|
+
/** Everything a measurement has to match to be reusable. */
|
|
39
|
+
export interface MeasurementKey {
|
|
40
|
+
readonly scenarioId: string;
|
|
41
|
+
readonly sourceText: string;
|
|
42
|
+
readonly steps: readonly string[] | undefined;
|
|
43
|
+
readonly baseUrl: string;
|
|
44
|
+
readonly width: number;
|
|
45
|
+
readonly height: number;
|
|
46
|
+
readonly device?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Whether `entry` describes the take `key` is about to shoot.
|
|
50
|
+
*
|
|
51
|
+
* Every field is compared. A missing one fails the match: an entry written by
|
|
52
|
+
* an older version that did not record a field cannot be shown to be valid,
|
|
53
|
+
* and re-measuring costs one pass while being wrong costs a bad clip.
|
|
54
|
+
*/
|
|
55
|
+
export declare function matches(entry: Measurement, key: MeasurementKey): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The stored measurement for `key`, if one still describes it.
|
|
58
|
+
*
|
|
59
|
+
* Unreadable or unparseable is treated as absent: this is a cache, and a
|
|
60
|
+
* corrupt one should cost a measuring pass, not the command.
|
|
61
|
+
*/
|
|
62
|
+
export declare function readMeasurement(rawDir: string, key: MeasurementKey): Measurement | null;
|
|
63
|
+
/** Stores a pace-1 measurement. Failure to write is never fatal. */
|
|
64
|
+
export declare function writeMeasurement(rawDir: string, key: MeasurementKey, result: {
|
|
65
|
+
durationMs: number;
|
|
66
|
+
scaledPauseMs: number;
|
|
67
|
+
}): void;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { hashSteps, hashText } from "./manifest.js";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
function fileFor(rawDir, id) {
|
|
6
|
+
return join(rawDir, "measure", `${id}.json`);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Whether `entry` describes the take `key` is about to shoot.
|
|
10
|
+
*
|
|
11
|
+
* Every field is compared. A missing one fails the match: an entry written by
|
|
12
|
+
* an older version that did not record a field cannot be shown to be valid,
|
|
13
|
+
* and re-measuring costs one pass while being wrong costs a bad clip.
|
|
14
|
+
*/
|
|
15
|
+
export function matches(entry, key) {
|
|
16
|
+
return (entry.scenarioId === key.scenarioId &&
|
|
17
|
+
entry.sourceHash === hashText(key.sourceText) &&
|
|
18
|
+
entry.stepsHash === hashSteps(key.steps) &&
|
|
19
|
+
entry.baseUrl === key.baseUrl &&
|
|
20
|
+
entry.width === key.width &&
|
|
21
|
+
entry.height === key.height &&
|
|
22
|
+
(entry.device ?? null) === (key.device ?? null) &&
|
|
23
|
+
entry.recorderVersion === VERSION &&
|
|
24
|
+
Number.isFinite(entry.durationMs) &&
|
|
25
|
+
Number.isFinite(entry.scaledPauseMs));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The stored measurement for `key`, if one still describes it.
|
|
29
|
+
*
|
|
30
|
+
* Unreadable or unparseable is treated as absent: this is a cache, and a
|
|
31
|
+
* corrupt one should cost a measuring pass, not the command.
|
|
32
|
+
*/
|
|
33
|
+
export function readMeasurement(rawDir, key) {
|
|
34
|
+
const file = fileFor(rawDir, key.scenarioId);
|
|
35
|
+
if (!existsSync(file))
|
|
36
|
+
return null;
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(readFileSync(file, "utf8"));
|
|
39
|
+
return matches(parsed, key) ? parsed : null;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Stores a pace-1 measurement. Failure to write is never fatal. */
|
|
46
|
+
export function writeMeasurement(rawDir, key, result) {
|
|
47
|
+
const entry = {
|
|
48
|
+
scenarioId: key.scenarioId,
|
|
49
|
+
sourceHash: hashText(key.sourceText),
|
|
50
|
+
stepsHash: hashSteps(key.steps),
|
|
51
|
+
baseUrl: key.baseUrl,
|
|
52
|
+
width: key.width,
|
|
53
|
+
height: key.height,
|
|
54
|
+
...(key.device ? { device: key.device } : {}),
|
|
55
|
+
recorderVersion: VERSION,
|
|
56
|
+
durationMs: result.durationMs,
|
|
57
|
+
scaledPauseMs: result.scaledPauseMs,
|
|
58
|
+
measuredAt: new Date().toISOString(),
|
|
59
|
+
};
|
|
60
|
+
try {
|
|
61
|
+
const file = fileFor(rawDir, key.scenarioId);
|
|
62
|
+
mkdirSync(join(rawDir, "measure"), { recursive: true });
|
|
63
|
+
writeFileSync(file, `${JSON.stringify(entry, null, 2)}\n`);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// A cache that cannot be written is a slower next run, not a failure.
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=measure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measure.js","sourceRoot":"","sources":["../../src/measure.ts"],"names":[],"mappings":"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"}
|
package/dist/src/run.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface RunOptions {
|
|
|
15
15
|
readonly mode: RunMode;
|
|
16
16
|
/** Source of the scenario module, hashed so staleness is answerable later. */
|
|
17
17
|
readonly sourceText?: string;
|
|
18
|
+
/** Absolute path of the scenario module, recorded so the clip stays findable. */
|
|
19
|
+
readonly sourceFile?: string;
|
|
18
20
|
readonly baseUrl?: string;
|
|
19
21
|
readonly outDir?: string;
|
|
20
22
|
readonly pace?: number;
|
|
@@ -79,4 +81,13 @@ export declare class ScenarioFailure extends ScreencastError {
|
|
|
79
81
|
* would be a caption promising something the video does not show.
|
|
80
82
|
*/
|
|
81
83
|
export declare function assertScriptComplete(steps: readonly string[] | undefined, shown: readonly number[]): void;
|
|
84
|
+
/**
|
|
85
|
+
* The base URL a take will use, resolved the way `runScenario` resolves it.
|
|
86
|
+
*
|
|
87
|
+
* Exported so a caller deciding *whether* to run can key on the same values
|
|
88
|
+
* the run itself will use, rather than on an approximation of them.
|
|
89
|
+
*/
|
|
90
|
+
export declare function baseUrlFor(options: RunOptions): string;
|
|
91
|
+
/** The viewport a take will use, resolved the way `runScenario` resolves it. */
|
|
92
|
+
export declare function viewportFor(options: RunOptions): Promise<ResolvedViewport>;
|
|
82
93
|
export declare function runScenario(options: RunOptions): Promise<RunResult>;
|
package/dist/src/run.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { rm } from "node:fs/promises";
|
|
2
|
+
import { relative } from "node:path";
|
|
2
3
|
import { captureSize, openContext, resolveViewport } from "./browser.js";
|
|
3
4
|
import { selectStrategy } from "./config.js";
|
|
4
5
|
import { Director } from "./director.js";
|
|
@@ -6,6 +7,7 @@ import { encode } from "./encode.js";
|
|
|
6
7
|
import { ScreencastError } from "./errors.js";
|
|
7
8
|
import { captureFailure } from "./forensics.js";
|
|
8
9
|
import { hashSteps, hashText, upsertEntry } from "./manifest.js";
|
|
10
|
+
import { writeMeasurement } from "./measure.js";
|
|
9
11
|
import { mergeThemes, overlayInitScript, resolveOverlayTheme } from "./overlay.js";
|
|
10
12
|
import { detectToolchain, missingFfmpegError } from "./toolchain.js";
|
|
11
13
|
import { VERSION } from "./version.js";
|
|
@@ -54,14 +56,19 @@ export function assertScriptComplete(steps, shown) {
|
|
|
54
56
|
"Call `await d.step(i)` once per declared line, in order, inside run()",
|
|
55
57
|
]);
|
|
56
58
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
/**
|
|
60
|
+
* The base URL a take will use, resolved the way `runScenario` resolves it.
|
|
61
|
+
*
|
|
62
|
+
* Exported so a caller deciding *whether* to run can key on the same values
|
|
63
|
+
* the run itself will use, rather than on an approximation of them.
|
|
64
|
+
*/
|
|
65
|
+
export function baseUrlFor(options) {
|
|
66
|
+
return options.baseUrl ?? options.scenario.baseUrl ?? options.config.baseUrl;
|
|
67
|
+
}
|
|
68
|
+
/** The viewport a take will use, resolved the way `runScenario` resolves it. */
|
|
69
|
+
export async function viewportFor(options) {
|
|
70
|
+
const { scenario, config } = options;
|
|
71
|
+
return resolveViewport({
|
|
65
72
|
...((options.device ?? scenario.device ?? config.device)
|
|
66
73
|
? { device: options.device ?? scenario.device ?? config.device }
|
|
67
74
|
: {}),
|
|
@@ -75,6 +82,15 @@ export async function runScenario(options) {
|
|
|
75
82
|
? { deviceScaleFactor: config.browser.deviceScaleFactor }
|
|
76
83
|
: {}),
|
|
77
84
|
}, config.viewport);
|
|
85
|
+
}
|
|
86
|
+
export async function runScenario(options) {
|
|
87
|
+
const { scenario, config, mode } = options;
|
|
88
|
+
const log = options.log ?? (() => { });
|
|
89
|
+
const recording = mode === "record";
|
|
90
|
+
const outDir = options.outDir ?? config.outDir;
|
|
91
|
+
const baseUrl = baseUrlFor(options);
|
|
92
|
+
const pace = options.pace ?? scenario.pace ?? config.pace;
|
|
93
|
+
const viewport = await viewportFor(options);
|
|
78
94
|
// Fail before the browser opens, not forty seconds into a take that cannot
|
|
79
95
|
// possibly produce a file.
|
|
80
96
|
let toolchain = options.toolchain;
|
|
@@ -210,6 +226,20 @@ export async function runScenario(options) {
|
|
|
210
226
|
const trimStart = director.trimStartSeconds;
|
|
211
227
|
const durationMs = Math.max(0, clipEndedAt - opened.createdAt - Math.round(trimStart * 1000));
|
|
212
228
|
if (!recording) {
|
|
229
|
+
// A pace-1 rehearsal is exactly what `--duration` sends the browser out to
|
|
230
|
+
// learn, so keep it: the next `record --duration` can skip its own pass.
|
|
231
|
+
// Only pace 1, because the solve is defined against a natural-speed take.
|
|
232
|
+
if (pace === 1 && options.sourceText !== undefined) {
|
|
233
|
+
writeMeasurement(config.rawDir, {
|
|
234
|
+
scenarioId: scenario.id,
|
|
235
|
+
sourceText: options.sourceText,
|
|
236
|
+
steps: scenario.steps,
|
|
237
|
+
baseUrl,
|
|
238
|
+
width: viewport.viewport.width,
|
|
239
|
+
height: viewport.viewport.height,
|
|
240
|
+
...(viewport.device ? { device: viewport.device } : {}),
|
|
241
|
+
}, { durationMs, scaledPauseMs: director.scaledPauseMs });
|
|
242
|
+
}
|
|
213
243
|
return {
|
|
214
244
|
id: scenario.id,
|
|
215
245
|
mode,
|
|
@@ -266,6 +296,7 @@ export async function runScenario(options) {
|
|
|
266
296
|
...(viewport.device ? { device: viewport.device } : {}),
|
|
267
297
|
formats,
|
|
268
298
|
...(options.sourceText ? { sourceHash: hashText(options.sourceText) } : {}),
|
|
299
|
+
...(options.sourceFile ? { sourceFile: relative(outDir, options.sourceFile) } : {}),
|
|
269
300
|
stepsHash: hashSteps(scenario.steps),
|
|
270
301
|
recorderVersion: VERSION,
|
|
271
302
|
};
|
package/dist/src/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/src/skill.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export declare const SKILL_NAME = "screencast-axi";
|
|
2
|
+
/**
|
|
3
|
+
* How to run the CLI without installing anything.
|
|
4
|
+
*
|
|
5
|
+
* The `-p` flags are the whole point: Playwright and tsx are optional peers
|
|
6
|
+
* resolved from the *project*, so a bare `npx screencast-axi` finds a CLI with
|
|
7
|
+
* no browser to drive and no way to read a TypeScript scenario. Kept here, and
|
|
8
|
+
* imported by every message that suggests a command, so the three places that
|
|
9
|
+
* quote it cannot drift apart.
|
|
10
|
+
*/
|
|
11
|
+
export declare const NPX_INVOCATION = "npx -y -p screencast-axi -p playwright -p tsx screencast-axi";
|
|
2
12
|
/**
|
|
3
13
|
* Hard cap, enforced rather than documented.
|
|
4
14
|
*
|
package/dist/src/skill.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export const SKILL_NAME = "screencast-axi";
|
|
2
|
+
/**
|
|
3
|
+
* How to run the CLI without installing anything.
|
|
4
|
+
*
|
|
5
|
+
* The `-p` flags are the whole point: Playwright and tsx are optional peers
|
|
6
|
+
* resolved from the *project*, so a bare `npx screencast-axi` finds a CLI with
|
|
7
|
+
* no browser to drive and no way to read a TypeScript scenario. Kept here, and
|
|
8
|
+
* imported by every message that suggests a command, so the three places that
|
|
9
|
+
* quote it cannot drift apart.
|
|
10
|
+
*/
|
|
11
|
+
export const NPX_INVOCATION = "npx -y -p screencast-axi -p playwright -p tsx screencast-axi";
|
|
2
12
|
/**
|
|
3
13
|
* Hard cap, enforced rather than documented.
|
|
4
14
|
*
|
|
@@ -27,8 +37,7 @@ hand-rolled Playwright video capture or a screen recorder.
|
|
|
27
37
|
|
|
28
38
|
Use it whenever a task needs a recorded walkthrough of a UI: a landing-page
|
|
29
39
|
demo, a feature tour, a release-note clip, a bug reproduction. Skip it when a
|
|
30
|
-
still screenshot says the same thing
|
|
31
|
-
watch.
|
|
40
|
+
still screenshot says the same thing.
|
|
32
41
|
|
|
33
42
|
## Current guidance lives in the CLI
|
|
34
43
|
|
|
@@ -37,29 +46,34 @@ installed copies go stale. Get the current source of truth from the CLI:
|
|
|
37
46
|
|
|
38
47
|
- \`screencast-axi --help\` for the command index
|
|
39
48
|
- \`screencast-axi <command> --help\` for per-command usage
|
|
40
|
-
- \`screencast-axi guide\` for
|
|
41
|
-
rather than read as a manual
|
|
49
|
+
- \`screencast-axi guide\` for guidance, one topic at a time, not as a manual
|
|
42
50
|
- \`screencast-axi doctor\` for whether this machine can record at all
|
|
43
51
|
|
|
44
|
-
|
|
52
|
+
Worth knowing before the first run:
|
|
45
53
|
|
|
46
54
|
1. Iterate with \`rehearse\`, not \`record\`: no encoding, so a stale selector
|
|
47
|
-
surfaces in seconds,
|
|
55
|
+
surfaces in seconds, it prints every action taken, and a \`--duration\` take
|
|
56
|
+
afterwards reuses its timing instead of measuring again.
|
|
48
57
|
2. \`--headed\` shows it happening in a real window. Offer it when someone
|
|
49
58
|
wants to see what a script does to their signed-in account before it runs.
|
|
50
59
|
3. When a selector needs discovering, drive the page live with a browser tool
|
|
51
60
|
such as \`chrome-devtools-axi\`, then write the scenario.
|
|
52
61
|
|
|
53
62
|
ffmpeg must be installed. Signing in is a one-time human step
|
|
54
|
-
(\`auth login --interactive\`)
|
|
55
|
-
|
|
63
|
+
(\`auth login --interactive\`); the CLI refuses rather than prompting when no
|
|
64
|
+
person is present.
|
|
65
|
+
|
|
66
|
+
No install needed - this works from any project, and \`init\`/\`scaffold\` write
|
|
67
|
+
files that load without it:
|
|
68
|
+
|
|
69
|
+
${NPX_INVOCATION} <command>
|
|
70
|
+
|
|
71
|
+
\`setup\` downloads the browser once. For regular use,
|
|
72
|
+
\`pnpm add -D screencast-axi playwright tsx\` shortens it to
|
|
73
|
+
\`pnpm exec screencast-axi\`.
|
|
56
74
|
|
|
57
|
-
|
|
58
|
-
\`
|
|
59
|
-
\`pnpm exec screencast-axi <command>\`. A scenario file imports
|
|
60
|
-
\`screencast-axi\` itself, so a copy in an npx cache cannot satisfy that
|
|
61
|
-
import - \`npx -y screencast-axi\` works only for commands that read none of
|
|
62
|
-
the project, such as \`--help\`, \`guide\` and \`doctor\`.
|
|
75
|
+
Record by id, or by path when no config lists it - \`list\`, \`show\` and
|
|
76
|
+
\`check\` find it either way.
|
|
63
77
|
`;
|
|
64
78
|
export function createSkillMarkdown() {
|
|
65
79
|
const markdown = `${FRONTMATTER}\n\n${BODY}`;
|
package/dist/src/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,GAAG;QACZ,UAAU;;;;;;;;;IASd,CAAC;AAEL,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,8DAA8D,CAAC;AAE7F;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,GAAG;QACZ,UAAU;;;;;;;;;IASd,CAAC;AAEL,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCP,cAAc;;;;;;;;CAQnB,CAAC;AAEF,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,GAAG,WAAW,OAAO,IAAI,EAAE,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,CAAC,MAAM,+BAA+B;YACrE,GAAG,wBAAwB,gCAAgC,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -85,4 +85,19 @@ export type DefinedScenario = Scenario & {
|
|
|
85
85
|
* convention the author has to remember.
|
|
86
86
|
*/
|
|
87
87
|
export declare function defineScenario(scenario: Scenario): DefinedScenario;
|
|
88
|
+
/**
|
|
89
|
+
* Whether a value has the shape of a scenario, stamped or not.
|
|
90
|
+
*
|
|
91
|
+
* This is what lets a scenario file carry no runtime import of this package:
|
|
92
|
+
* `import type { Scenario } from "screencast-axi"` is erased when the file is
|
|
93
|
+
* compiled, and `export default { ... } satisfies Scenario` is a plain object.
|
|
94
|
+
* The file then loads in a project that has not installed the package at all -
|
|
95
|
+
* which is what `npx` needs, because a runtime import inside the user's file
|
|
96
|
+
* resolves from the user's project, where npx's copy cannot be found.
|
|
97
|
+
*
|
|
98
|
+
* Only ever applied to a module's *default* export. A named export still needs
|
|
99
|
+
* the `defineScenario` stamp, so a helper object that happens to have an `id`
|
|
100
|
+
* and a `run` is never mistaken for a clip.
|
|
101
|
+
*/
|
|
102
|
+
export declare function looksLikeScenario(value: unknown): value is Scenario;
|
|
88
103
|
export declare function isScenario(value: unknown): value is DefinedScenario;
|
package/dist/src/types.js
CHANGED
|
@@ -10,6 +10,30 @@ export const SCENARIO_MARKER = Symbol.for("screencast-axi.scenario");
|
|
|
10
10
|
export function defineScenario(scenario) {
|
|
11
11
|
return { ...scenario, [SCENARIO_MARKER]: true };
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether a value has the shape of a scenario, stamped or not.
|
|
15
|
+
*
|
|
16
|
+
* This is what lets a scenario file carry no runtime import of this package:
|
|
17
|
+
* `import type { Scenario } from "screencast-axi"` is erased when the file is
|
|
18
|
+
* compiled, and `export default { ... } satisfies Scenario` is a plain object.
|
|
19
|
+
* The file then loads in a project that has not installed the package at all -
|
|
20
|
+
* which is what `npx` needs, because a runtime import inside the user's file
|
|
21
|
+
* resolves from the user's project, where npx's copy cannot be found.
|
|
22
|
+
*
|
|
23
|
+
* Only ever applied to a module's *default* export. A named export still needs
|
|
24
|
+
* the `defineScenario` stamp, so a helper object that happens to have an `id`
|
|
25
|
+
* and a `run` is never mistaken for a clip.
|
|
26
|
+
*/
|
|
27
|
+
export function looksLikeScenario(value) {
|
|
28
|
+
if (typeof value !== "object" || value === null)
|
|
29
|
+
return false;
|
|
30
|
+
const v = value;
|
|
31
|
+
return (typeof v["id"] === "string" &&
|
|
32
|
+
v["id"].length > 0 &&
|
|
33
|
+
typeof v["title"] === "string" &&
|
|
34
|
+
typeof v["description"] === "string" &&
|
|
35
|
+
typeof v["run"] === "function");
|
|
36
|
+
}
|
|
13
37
|
export function isScenario(value) {
|
|
14
38
|
return (typeof value === "object" &&
|
|
15
39
|
value !== null &&
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAyEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAIrE;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,eAAe,CAAC,KAAK,IAAI,CAC7D,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAyEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAIrE;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,QAAQ;QACpC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,UAAU,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAiC,CAAC,eAAe,CAAC,KAAK,IAAI,CAC7D,CAAC;AACJ,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
package/dist/src/version.js
CHANGED
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* package.json by a test - so a drift fails CI rather than shipping a CLI
|
|
8
8
|
* that misreports its own version.
|
|
9
9
|
*/
|
|
10
|
-
export const VERSION = "0.1.
|
|
10
|
+
export const VERSION = "0.1.4"; // x-release-please-version
|
|
11
11
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "screencast-axi",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "AXI-compliant screencast recorder - script a web workflow, record it with a synthetic cursor and captions, encode to mp4/webm/poster. Requires ffmpeg.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -17,8 +17,7 @@ hand-rolled Playwright video capture or a screen recorder.
|
|
|
17
17
|
|
|
18
18
|
Use it whenever a task needs a recorded walkthrough of a UI: a landing-page
|
|
19
19
|
demo, a feature tour, a release-note clip, a bug reproduction. Skip it when a
|
|
20
|
-
still screenshot says the same thing
|
|
21
|
-
watch.
|
|
20
|
+
still screenshot says the same thing.
|
|
22
21
|
|
|
23
22
|
## Current guidance lives in the CLI
|
|
24
23
|
|
|
@@ -27,26 +26,31 @@ installed copies go stale. Get the current source of truth from the CLI:
|
|
|
27
26
|
|
|
28
27
|
- `screencast-axi --help` for the command index
|
|
29
28
|
- `screencast-axi <command> --help` for per-command usage
|
|
30
|
-
- `screencast-axi guide` for
|
|
31
|
-
rather than read as a manual
|
|
29
|
+
- `screencast-axi guide` for guidance, one topic at a time, not as a manual
|
|
32
30
|
- `screencast-axi doctor` for whether this machine can record at all
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
Worth knowing before the first run:
|
|
35
33
|
|
|
36
34
|
1. Iterate with `rehearse`, not `record`: no encoding, so a stale selector
|
|
37
|
-
surfaces in seconds,
|
|
35
|
+
surfaces in seconds, it prints every action taken, and a `--duration` take
|
|
36
|
+
afterwards reuses its timing instead of measuring again.
|
|
38
37
|
2. `--headed` shows it happening in a real window. Offer it when someone
|
|
39
38
|
wants to see what a script does to their signed-in account before it runs.
|
|
40
39
|
3. When a selector needs discovering, drive the page live with a browser tool
|
|
41
40
|
such as `chrome-devtools-axi`, then write the scenario.
|
|
42
41
|
|
|
43
42
|
ffmpeg must be installed. Signing in is a one-time human step
|
|
44
|
-
(`auth login --interactive`)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
(`auth login --interactive`); the CLI refuses rather than prompting when no
|
|
44
|
+
person is present.
|
|
45
|
+
|
|
46
|
+
No install needed - this works from any project, and `init`/`scaffold` write
|
|
47
|
+
files that load without it:
|
|
48
|
+
|
|
49
|
+
npx -y -p screencast-axi -p playwright -p tsx screencast-axi <command>
|
|
50
|
+
|
|
51
|
+
`setup` downloads the browser once. For regular use,
|
|
52
|
+
`pnpm add -D screencast-axi playwright tsx` shortens it to
|
|
53
|
+
`pnpm exec screencast-axi`.
|
|
54
|
+
|
|
55
|
+
Record by id, or by path when no config lists it - `list`, `show` and
|
|
56
|
+
`check` find it either way.
|
package/dist/src/hooks.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { AxiStructuredOutput } from "./output.js";
|
|
2
|
-
/**
|
|
3
|
-
* Session integration.
|
|
4
|
-
*
|
|
5
|
-
* The AXI convention is a setup command that registers hooks with the agent
|
|
6
|
-
* harness, so the tool is ambient rather than something to remember. That is
|
|
7
|
-
* not built yet, and saying so beats registering something that does nothing.
|
|
8
|
-
*/
|
|
9
|
-
export declare function installHooks(scope: string | undefined): AxiStructuredOutput;
|
package/dist/src/hooks.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ScreencastError } from "./errors.js";
|
|
2
|
-
/**
|
|
3
|
-
* Session integration.
|
|
4
|
-
*
|
|
5
|
-
* The AXI convention is a setup command that registers hooks with the agent
|
|
6
|
-
* harness, so the tool is ambient rather than something to remember. That is
|
|
7
|
-
* not built yet, and saying so beats registering something that does nothing.
|
|
8
|
-
*/
|
|
9
|
-
export function installHooks(scope) {
|
|
10
|
-
if (scope && scope !== "user" && scope !== "project") {
|
|
11
|
-
throw new ScreencastError("--scope must be user or project", "VALIDATION_ERROR", [
|
|
12
|
-
"Example: --scope project",
|
|
13
|
-
]);
|
|
14
|
-
}
|
|
15
|
-
throw new ScreencastError("Session hooks are not implemented yet", "NOT_IMPLEMENTED", [
|
|
16
|
-
"Install the skill instead: `npx skills add Valzon/screencast-axi --skill screencast-axi -g`",
|
|
17
|
-
"The CLI works without either - `npx -y screencast-axi --help`",
|
|
18
|
-
]);
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=hooks.js.map
|
package/dist/src/hooks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,IAAI,eAAe,CAAC,iCAAiC,EAAE,kBAAkB,EAAE;YAC/E,0BAA0B;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,eAAe,CAAC,uCAAuC,EAAE,iBAAiB,EAAE;QACpF,6FAA6F;QAC7F,+DAA+D;KAChE,CAAC,CAAC;AACL,CAAC"}
|