screencast-axi 0.1.2 → 0.1.3

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 CHANGED
@@ -14,22 +14,39 @@ from [`demo/scenarios/demo.ts`](demo/scenarios/demo.ts). Re-record it with `pnpm
14
14
 
15
15
  [![npm](https://img.shields.io/npm/v/screencast-axi)](https://www.npmjs.com/package/screencast-axi)
16
16
 
17
- > **Status: 0.x.** On npm and working end to end, but the API can still move between minor
18
- > versions. See [Roadmap](#roadmap).
19
-
20
17
  ## Install
21
18
 
22
- Install it in the project you are recording from, alongside Playwright:
19
+ Two ways, and which one fits depends on how often you record.
20
+
21
+ **Recording regularly** - install it in the project, so the commands are short and your editor has
22
+ the types:
23
23
 
24
24
  ```sh
25
25
  pnpm add -D screencast-axi playwright tsx
26
26
  pnpm exec playwright install chromium
27
27
  ```
28
28
 
29
- > **Why not `npx`?** A scenario file starts with `import { defineScenario } from "screencast-axi"`.
30
- > That import sits in _your_ file and resolves from _your_ project, so a copy of the package living
31
- > in an npx cache cannot satisfy it. `npx -y screencast-axi` is fine for commands that read nothing
32
- > of yours - `doctor`, `guide`, `--help` - and cannot work for `rehearse` or `record`.
29
+ pnpm 11 refuses to run a dependency's install script until you allow it, and `tsx` brings
30
+ `esbuild`, which needs its script to place a binary. Run `pnpm approve-builds` and pick `esbuild`,
31
+ or put the same thing in `pnpm-workspace.yaml`:
32
+
33
+ ```yaml
34
+ allowBuilds:
35
+ esbuild: true
36
+ ```
37
+
38
+ **A one-off, or a repo that should not carry the tool** - run it through `npx` and install nothing
39
+ in the project at all:
40
+
41
+ ```sh
42
+ npx -y -p screencast-axi -p playwright -p tsx screencast-axi record ./scenarios/product-tour.ts
43
+ ```
44
+
45
+ The one rule that makes the second form work: a scenario imports only **types** from the package.
46
+ `import type` is erased when the file is compiled, so nothing is resolved from your project at
47
+ runtime - which is what an npx cache cannot provide. `scaffold` writes files that way already. A
48
+ runtime import (`import { defineScenario } from "screencast-axi"`) resolves from _your_ project
49
+ and needs the first form.
33
50
 
34
51
  `tsx` is what lets Node read a TypeScript scenario. Skip it only if you write scenarios as `.mjs`.
35
52
 
@@ -54,12 +71,12 @@ pnpm exec screencast-axi record ./scenarios/product-tour.ts
54
71
  a minute - and the failure comes back with the URL it reached, a screenshot, and what each part of
55
72
  the selector actually matched.
56
73
 
57
- A scenario is TypeScript:
74
+ A scenario is TypeScript, and a plain object:
58
75
 
59
76
  ```ts
60
- import { defineScenario } from "screencast-axi";
77
+ import type { Scenario } from "screencast-axi";
61
78
 
62
- export default defineScenario({
79
+ export default {
63
80
  id: "product-tour",
64
81
  title: "A three-stop tour",
65
82
  description: "The pages that matter, in order.",
@@ -72,12 +89,15 @@ export default defineScenario({
72
89
  { path: "/pricing", step: 2 },
73
90
  ]);
74
91
  },
75
- });
92
+ } satisfies Scenario;
76
93
  ```
77
94
 
78
- Each line in `steps` goes on screen once, in order. The same array becomes the burnt-in caption
79
- and the manifest's step list, so the written workflow cannot drift from the recorded one - a take
80
- that skips a line fails.
95
+ `satisfies` keeps full typing - `d` is a `Director`, and a typo such as `d.gotoo` fails the
96
+ typecheck with a suggestion. Each line in `steps` goes on screen once, in order. The same array
97
+ becomes the burnt-in caption and the manifest's step list, so the written workflow cannot drift
98
+ from the recorded one - a take that skips a line fails.
99
+
100
+ `defineScenario` still exists for a scenario exported under a name rather than as the default.
81
101
 
82
102
  ## Prerequisites
83
103
 
@@ -160,6 +180,10 @@ site's own `@media (hover: none)` and touch rules apply at all, and it carries t
160
180
  agent - so this is the mobile layout the site actually serves, not a desktop squeezed narrow.
161
181
  Playwright ships 140+ presets; `--viewport 390x844` covers the rest.
162
182
 
183
+ ```sh
184
+ screencast-axi record onboarding --device "iPhone 13" --orientation portrait
185
+ ```
186
+
163
187
  <picture>
164
188
  <source srcset="docs/usecase-mobile.anim.webp" type="image/webp">
165
189
  <img src="docs/usecase-mobile.gif" alt="The same workflow recorded in a portrait phone viewport." width="240">
@@ -264,20 +288,14 @@ can be re-cut at a different length without re-deciding anything.
264
288
 
265
289
  ## Recording a page behind a login
266
290
 
267
- The strategy that needs no code for the site you are recording is `profileAuth()`. A person runs
268
- this once:
291
+ `profileAuth()` needs no code for the site you are recording. A person runs this once:
269
292
 
270
293
  ```sh
271
294
  pnpm exec screencast-axi auth login --interactive
272
295
  ```
273
296
 
274
- A browser opens, they sign in however that site wants - OAuth, SSO, a magic link, two-factor - and
275
- close the window. The session lives in a persistent Chrome profile and every take reuses it. No
276
- credential is handled by this package.
277
-
278
- `auth login` never reads stdin, so an agent can open the window on the user's screen rather than
279
- making them retype a command. It cannot hang: the wait is bounded, and it refuses up front where
280
- no window could appear.
297
+ A browser opens, they sign in however that site wants and close the window. The session lives in
298
+ a persistent Chrome profile, every take reuses it, and `auth check` tells you when it has expired.
281
299
 
282
300
  Also shipped: `storageStateAuth({ path })` for a portable session file, and
283
301
  `basicAuth({ username, password })` for staging environments. Anything else is an `AuthStrategy`
@@ -286,20 +304,6 @@ object written in the config - typed and debuggable rather than a shelled-out sc
286
304
  > A scenario that creates or drags something **writes to whatever it is pointed at**. Prefer
287
305
  > read-only scenarios against production, or point at staging.
288
306
 
289
- ## Seeing what a scenario does
290
-
291
- A scenario is arbitrary code driving a real browser, often one signed into your own account, so
292
- "what will this actually do" deserves a better answer than "read the TypeScript". Two:
293
-
294
- ```sh
295
- screencast-axi rehearse <id> # prints every action it took
296
- screencast-axi rehearse <id> --headed # and shows you it happening
297
- ```
298
-
299
- A rehearsal prints `performed` - every goto, click, typed value, drag and scroll, in order, with
300
- timings - and `hosts`, the short answer to where the script went. `--headed` opens a real window
301
- and does not change the output; the clip is identical either way.
302
-
303
307
  ## Output formats
304
308
 
305
309
  Every take produces an mp4, a webm and a poster. Looping images are opt-in with `--gif` and
@@ -345,19 +349,6 @@ export default defineConfig({
345
349
  Relative paths resolve against the config file, never the shell's working directory, so a command
346
350
  means the same thing from anywhere in a repo.
347
351
 
348
- ## Mobile, and aiming at a length
349
-
350
- ```sh
351
- screencast-axi record tour --device "iPhone 13" --orientation portrait --duration 20s
352
- ```
353
-
354
- Device presets come from Playwright's registry, so a phone clip is captured at its real device
355
- pixels rather than its CSS viewport - the difference between readable UI text and a smear.
356
-
357
- `--duration` runs one measuring pass, then solves for the pace that lands near the target. A take
358
- is `fixed + pace x scalable`: the site's own waits do not get slower because the recorder does, so
359
- the solve uses the measured split rather than assuming everything scales.
360
-
361
352
  ## Reading the manifest
362
353
 
363
354
  Every take writes `manifest.json` beside the clips. A site can read it at build time without
@@ -517,10 +508,9 @@ Install the browser; name anything you must install yourself.
517
508
  screencast-axi setup
518
509
  ```
519
510
 
520
- | Flag | What it does |
521
- | ----------------- | ----------------------------------- |
522
- | `--browsers-only` | Install Chromium and stop. |
523
- | `--scope <s>` | For `setup hooks`: user or project. |
511
+ | Flag | What it does |
512
+ | ----------------- | -------------------------- |
513
+ | `--browsers-only` | Install Chromium and stop. |
524
514
 
525
515
  #### `auth`
526
516
 
@@ -550,12 +540,6 @@ screencast-axi guide [topic]
550
540
  _No flags._
551
541
  <!-- reference:end -->
552
542
 
553
- ## Roadmap
554
-
555
- `setup hooks` is declared but not implemented, and says so rather than pretending. Beyond that:
556
- encoding animated WebP directly from frames rather than through the GIF pass, which measures
557
- around five times smaller for the same clip.
558
-
559
543
  ## Contributing
560
544
 
561
545
  ```sh
@@ -21,11 +21,19 @@ function titleFrom(id) {
21
21
  * This is what makes a TypeScript-only authoring format cheap: the author -
22
22
  * often an agent - supplies only the `run()` body and the narration, not the
23
23
  * imports, the id or the shape.
24
+ *
25
+ * The skeleton imports only a type and exports a plain object checked with
26
+ * `satisfies`. `defineScenario` would give the same editor experience, but it
27
+ * is a runtime import - and a runtime import inside the user's file resolves
28
+ * from the user's project, so it breaks every run that has not installed the
29
+ * package there, `npx` first among them.
24
30
  */
25
31
  function template(id, title, url, device) {
26
- return `import { defineScenario } from "screencast-axi";
32
+ return `// A type-only import: erased when this file is compiled, so it loads whether
33
+ // or not the project has screencast-axi installed - under npx included.
34
+ import type { Scenario } from "screencast-axi";
27
35
 
28
- export default defineScenario({
36
+ export default {
29
37
  id: ${JSON.stringify(id)},
30
38
  title: ${JSON.stringify(title)},
31
39
  description: "TODO: one line describing what this clip shows.",
@@ -45,15 +53,17 @@ export default defineScenario({
45
53
 
46
54
  await d.step(1, 1200);
47
55
  },
48
- });
56
+ } satisfies Scenario;
49
57
  `;
50
58
  }
51
59
  function tourTemplate(id, title, url, stops, device) {
52
60
  const paths = ["/", "/pricing", "/docs", "/blog", "/contact"];
53
61
  const chosen = Array.from({ length: stops }, (_, i) => paths[i] ?? `/page-${i + 1}`);
54
- return `import { defineScenario } from "screencast-axi";
62
+ return `// A type-only import: erased when this file is compiled, so it loads whether
63
+ // or not the project has screencast-axi installed - under npx included.
64
+ import type { Scenario } from "screencast-axi";
55
65
 
56
- export default defineScenario({
66
+ export default {
57
67
  id: ${JSON.stringify(id)},
58
68
  title: ${JSON.stringify(title)},
59
69
  description: "TODO: one line describing what this walkthrough shows.",
@@ -71,7 +81,7 @@ ${chosen
71
81
  ` await d.scrollBy(500);`)
72
82
  .join("\n\n")}
73
83
  },
74
- });
84
+ } satisfies Scenario;
75
85
  `;
76
86
  }
77
87
  export function scaffoldCommand(args) {
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join, relative, resolve } from "node:path";
3
- import { installHooks } from "../hooks.js";
4
3
  import { ScreencastError } from "../errors.js";
5
4
  import { parseFlags } from "../flags.js";
6
5
  import { detectToolchain, installHint, run } from "../toolchain.js";
7
6
  import { CONFIG_BASENAMES } from "../config.js";
8
7
  export const SETUP_FLAGS = {
9
8
  "browsers-only": { kind: "boolean", description: "Install Chromium and stop" },
10
- scope: { kind: "string", description: "For `setup hooks`: user or project", placeholder: "s" },
11
9
  };
12
10
  export const INIT_FLAGS = {
13
11
  out: { kind: "string", description: "Where clips should be written", placeholder: "dir" },
@@ -24,13 +22,10 @@ export const INIT_FLAGS = {
24
22
  */
25
23
  export async function setupCommand(args) {
26
24
  const { positionals, flags } = parseFlags(args, SETUP_FLAGS);
27
- if (positionals[0] === "hooks") {
28
- return installHooks(flags["scope"]);
29
- }
30
25
  if (positionals[0]) {
31
26
  throw new ScreencastError(`Unknown setup target: ${positionals[0]}`, "VALIDATION_ERROR", [
32
- "`screencast-axi setup` installs the browser and checks the rest",
33
- "`screencast-axi setup hooks` registers the session integration",
27
+ "`screencast-axi setup` takes no arguments: it installs the browser and checks the rest",
28
+ "`--browsers-only` installs Chromium and stops",
34
29
  ]);
35
30
  }
36
31
  const done = [];
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { pathToFileURL } from "node:url";
5
5
  import { DEFAULT_ENCODE_SETTINGS } from "./encode.js";
6
6
  import { DEFAULT_SETTLE_MS } from "./director.js";
7
7
  import { DEFAULT_OVERLAY_THEME } from "./overlay.js";
8
- import { isScenario } from "./types.js";
8
+ import { defineScenario, isScenario, looksLikeScenario, } from "./types.js";
9
9
  import { importFromProject } from "./resolve.js";
10
10
  import { noAuth } from "./auth/strategies.js";
11
11
  export const CONFIG_BASENAMES = [
@@ -125,8 +125,9 @@ function selfImportFailure(file, error) {
125
125
  if (!new RegExp(`'${SELF}(/[^']*)?'|"${SELF}(/[^"]*)?"`).test(message))
126
126
  return null;
127
127
  return new ScreencastError(`Cannot load ${file}: it imports \`${SELF}\`, which this project does not have`, "SELF_NOT_INSTALLED", [
128
- `Install it beside the file that imports it: \`pnpm add -D ${SELF}\``,
129
- "Running the CLI through `npx` leaves the package in a cache the file cannot reach",
128
+ `Import only types, so nothing is resolved at runtime: \`import type { Scenario } from "${SELF}"\` and \`export default { ... } satisfies Scenario\``,
129
+ `Or install it beside the file that imports it: \`pnpm add -D ${SELF}\``,
130
+ "Running the CLI through `npx` leaves the package in a cache a runtime import cannot reach",
130
131
  ]);
131
132
  }
132
133
  async function importModule(file) {
@@ -268,14 +269,29 @@ export async function loadScenarioFiles(files) {
268
269
  const seen = new Map();
269
270
  for (const file of files) {
270
271
  const module = await importModule(file);
272
+ // A stamped scenario is found in any export position. An unstamped one is
273
+ // accepted only as the default export - after CJS interop that may sit at
274
+ // `default.default` - so a file needs no runtime import of this package.
275
+ const defaults = [
276
+ module["default"],
277
+ module["default.default"],
278
+ module["module.exports.default"],
279
+ ];
280
+ const candidates = [
281
+ ...Object.values(module).filter(isScenario),
282
+ ...defaults
283
+ .filter((v) => !isScenario(v) && looksLikeScenario(v))
284
+ .map((v) => v),
285
+ ];
271
286
  // Deduped by identity: CJS interop exposes the same object under both
272
287
  // `default` and `module.exports`, and one scenario seen twice is not two
273
288
  // scenarios sharing an id.
274
- const found = [...new Set(Object.values(module).filter(isScenario))];
289
+ const found = [...new Set(candidates)].map((s) => (isScenario(s) ? s : defineScenario(s)));
275
290
  if (found.length === 0) {
276
291
  throw new ScreencastError(`No scenario exported by ${file}`, "NO_SCENARIO", [
277
- "Wrap the object: `export default defineScenario({ ... })`",
278
- "`defineScenario` is imported from `screencast-axi`",
292
+ "Make it the default export: `export default { id, title, description, run } satisfies Scenario`",
293
+ 'Type it with `import type { Scenario } from "screencast-axi"`, which leaves no runtime import',
294
+ "Or wrap a named export: `export const clip = defineScenario({ ... })`",
279
295
  ]);
280
296
  }
281
297
  for (const scenario of found) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
package/dist/src/skill.js CHANGED
@@ -54,12 +54,11 @@ ffmpeg must be installed. Signing in is a one-time human step
54
54
  (\`auth login --interactive\`), and the CLI refuses rather than prompting when
55
55
  no person is present.
56
56
 
57
- Install it in the project being recorded, not globally:
58
- \`pnpm add -D screencast-axi playwright tsx\`, then run it as
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\`.
57
+ No install needed: \`npx -y -p screencast-axi -p playwright -p tsx screencast-axi
58
+ <command>\` works from any project, provided scenarios import only types
59
+ (\`import type { Scenario }\` plus \`export default {...} satisfies Scenario\`), as
60
+ \`scaffold\` writes them. For regular use, \`pnpm add -D screencast-axi playwright
61
+ tsx\` shortens that to \`pnpm exec screencast-axi\`.
63
62
  `;
64
63
  export function createSkillMarkdown() {
65
64
  const markdown = `${FRONTMATTER}\n\n${BODY}`;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCZ,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCZ,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"}
@@ -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 &&
@@ -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"}
@@ -7,4 +7,4 @@
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 declare const VERSION = "0.1.2";
10
+ export declare const VERSION = "0.1.3";
@@ -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.2"; // x-release-please-version
10
+ export const VERSION = "0.1.3"; // 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.2",
3
+ "version": "0.1.3",
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": {
@@ -44,9 +44,8 @@ ffmpeg must be installed. Signing in is a one-time human step
44
44
  (`auth login --interactive`), and the CLI refuses rather than prompting when
45
45
  no person is present.
46
46
 
47
- Install it in the project being recorded, not globally:
48
- `pnpm add -D screencast-axi playwright tsx`, then run it as
49
- `pnpm exec screencast-axi <command>`. A scenario file imports
50
- `screencast-axi` itself, so a copy in an npx cache cannot satisfy that
51
- import - `npx -y screencast-axi` works only for commands that read none of
52
- the project, such as `--help`, `guide` and `doctor`.
47
+ No install needed: `npx -y -p screencast-axi -p playwright -p tsx screencast-axi
48
+ <command>` works from any project, provided scenarios import only types
49
+ (`import type { Scenario }` plus `export default {...} satisfies Scenario`), as
50
+ `scaffold` writes them. For regular use, `pnpm add -D screencast-axi playwright
51
+ tsx` shortens that to `pnpm exec screencast-axi`.
@@ -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
@@ -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"}