create-canary 0.4.2 → 0.4.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 +7 -8
- package/dist/cli.js +16 -17
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# create-canary
|
|
2
2
|
|
|
3
|
-
> The guided setup wizard for [Canary](https://github.com/
|
|
3
|
+
> The guided setup wizard for [Canary](https://github.com/wizenheimer/canary) — an AI-agent QA toolkit
|
|
4
4
|
> that drives real browsers, records QA sessions (Playwright trace, video, network HAR, console), and
|
|
5
5
|
> renders self-contained verification reports.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/create-canary)
|
|
8
|
-
[](https://github.com/
|
|
8
|
+
[](https://github.com/wizenheimer/canary)
|
|
9
9
|
|
|
10
10
|
One command to get Canary and its browser runtime set up — no flags to remember. Every step just
|
|
11
11
|
shells out to the same published commands you could run by hand, so there's no magic and nothing
|
|
@@ -29,9 +29,9 @@ You'll get a checklist (space toggles, enter confirms). Recommended items are pr
|
|
|
29
29
|
| Also install the `canary-viewer` viewer globally | — | `npm i -g @usecanary/ui` |
|
|
30
30
|
|
|
31
31
|
Installing the CLIs globally puts `canary`, `canary-browser`, and `canary-viewer` on your `PATH` so
|
|
32
|
-
day-to-day use drops the `npx` prefix. The wizard never installs
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
day-to-day use drops the `npx` prefix. The wizard never installs the plugins itself — once setup
|
|
33
|
+
completes it prints the commands (Claude Code `/plugin …`, Cursor / Codex marketplace) so each
|
|
34
|
+
agent's own mechanism does the work.
|
|
35
35
|
|
|
36
36
|
### Non-interactive
|
|
37
37
|
|
|
@@ -43,8 +43,7 @@ inspect before executing.
|
|
|
43
43
|
Add the agent integration yourself (one-time):
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
|
|
47
|
-
# Claude Code: /plugin marketplace add usecanary/canary then /plugin install canary@canary-marketplace
|
|
46
|
+
# Claude Code: /plugin marketplace add wizenheimer/canary then /plugin install canary@canary-marketplace
|
|
48
47
|
```
|
|
49
48
|
|
|
50
49
|
Then record a session:
|
|
@@ -65,4 +64,4 @@ flow) in Claude Code / Cursor / Codex. See `examples/` in the repo for runnable
|
|
|
65
64
|
- [`@usecanary/browser`](https://www.npmjs.com/package/@usecanary/browser) — one-off automation engine.
|
|
66
65
|
- [`@usecanary/ui`](https://www.npmjs.com/package/@usecanary/ui) — the `canary-viewer` session browser.
|
|
67
66
|
|
|
68
|
-
MIT · [source](https://github.com/
|
|
67
|
+
MIT · [source](https://github.com/wizenheimer/canary)
|
package/dist/cli.js
CHANGED
|
@@ -9917,9 +9917,6 @@ var require_jsx_runtime = __commonJS({
|
|
|
9917
9917
|
}
|
|
9918
9918
|
});
|
|
9919
9919
|
|
|
9920
|
-
// src/cli.tsx
|
|
9921
|
-
import { spawn } from "node:child_process";
|
|
9922
|
-
|
|
9923
9920
|
// ../../node_modules/.pnpm/ink@5.2.1_@types+react@18.3.30_react@18.3.1/node_modules/ink/build/render.js
|
|
9924
9921
|
import { Stream } from "node:stream";
|
|
9925
9922
|
import process12 from "node:process";
|
|
@@ -16551,6 +16548,20 @@ var import_react50 = __toESM(require_react(), 1);
|
|
|
16551
16548
|
var import_react51 = __toESM(require_react(), 1);
|
|
16552
16549
|
var cursor3 = source_default.inverse(" ");
|
|
16553
16550
|
|
|
16551
|
+
// src/run.ts
|
|
16552
|
+
import { spawn } from "node:child_process";
|
|
16553
|
+
function runInherit(cmd) {
|
|
16554
|
+
return new Promise((resolve) => {
|
|
16555
|
+
const child = process.platform === "win32" ? spawn([cmd.file, ...cmd.args].join(" "), {
|
|
16556
|
+
stdio: "inherit",
|
|
16557
|
+
windowsHide: true,
|
|
16558
|
+
shell: true
|
|
16559
|
+
}) : spawn(cmd.file, cmd.args, { stdio: "inherit", windowsHide: true });
|
|
16560
|
+
child.on("error", () => resolve(1));
|
|
16561
|
+
child.on("exit", (code) => resolve(code ?? 1));
|
|
16562
|
+
});
|
|
16563
|
+
}
|
|
16564
|
+
|
|
16554
16565
|
// src/cli.tsx
|
|
16555
16566
|
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
16556
16567
|
function buildSteps() {
|
|
@@ -16581,16 +16592,6 @@ function buildSteps() {
|
|
|
16581
16592
|
}
|
|
16582
16593
|
];
|
|
16583
16594
|
}
|
|
16584
|
-
function runInherit(cmd) {
|
|
16585
|
-
return new Promise((resolve) => {
|
|
16586
|
-
const child = spawn(cmd.file, cmd.args, {
|
|
16587
|
-
stdio: "inherit",
|
|
16588
|
-
windowsHide: true
|
|
16589
|
-
});
|
|
16590
|
-
child.on("error", () => resolve(1));
|
|
16591
|
-
child.on("exit", (code) => resolve(code ?? 1));
|
|
16592
|
-
});
|
|
16593
|
-
}
|
|
16594
16595
|
function SelectStep(props) {
|
|
16595
16596
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
16596
16597
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
@@ -16616,7 +16617,6 @@ function printManual() {
|
|
|
16616
16617
|
"",
|
|
16617
16618
|
" npm i -g @usecanary/cli # adds the `canary` command",
|
|
16618
16619
|
" canary install # browser runtime (Chromium)",
|
|
16619
|
-
" npx skills add usecanary/canary # agent skills (any tool)",
|
|
16620
16620
|
"",
|
|
16621
16621
|
"Optional:",
|
|
16622
16622
|
" npm i -g @usecanary/browser # canary-browser (one-off automation)",
|
|
@@ -16627,7 +16627,7 @@ function printManual() {
|
|
|
16627
16627
|
" canary-viewer # browse recorded sessions",
|
|
16628
16628
|
"",
|
|
16629
16629
|
"Claude Code plugin:",
|
|
16630
|
-
" /plugin marketplace add
|
|
16630
|
+
" /plugin marketplace add wizenheimer/canary",
|
|
16631
16631
|
" /plugin install canary@canary-marketplace",
|
|
16632
16632
|
""
|
|
16633
16633
|
].join("\n")
|
|
@@ -16666,8 +16666,7 @@ async function runSelected(steps, selected) {
|
|
|
16666
16666
|
" Demos: see examples/ in the repo",
|
|
16667
16667
|
"",
|
|
16668
16668
|
"Add the agent integration yourself (one-time):",
|
|
16669
|
-
"
|
|
16670
|
-
" Claude Code plugin: /plugin marketplace add usecanary/canary",
|
|
16669
|
+
" Claude Code plugin: /plugin marketplace add wizenheimer/canary",
|
|
16671
16670
|
" /plugin install canary@canary-marketplace",
|
|
16672
16671
|
"",
|
|
16673
16672
|
""
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-canary",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Set up canary — browser automation + recorded QA sessions. Run `npm create canary`.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
"browser-automation",
|
|
12
12
|
"qa"
|
|
13
13
|
],
|
|
14
|
-
"homepage": "https://github.com/
|
|
15
|
-
"bugs": "https://github.com/
|
|
14
|
+
"homepage": "https://github.com/wizenheimer/canary#readme",
|
|
15
|
+
"bugs": "https://github.com/wizenheimer/canary/issues",
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
|
-
"url": "git+https://github.com/
|
|
18
|
+
"url": "git+https://github.com/wizenheimer/canary.git",
|
|
19
19
|
"directory": "apps/create-canary"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
@@ -39,12 +39,15 @@
|
|
|
39
39
|
"react": "^18.3.1",
|
|
40
40
|
"tsx": "^4.19.2",
|
|
41
41
|
"typescript": "^5.8.0",
|
|
42
|
+
"vitest": "^4.1.0",
|
|
42
43
|
"@usecanary/config": "0.0.0"
|
|
43
44
|
},
|
|
44
45
|
"scripts": {
|
|
45
46
|
"build": "node scripts/build.mjs",
|
|
46
47
|
"dev": "tsx src/cli.tsx",
|
|
47
48
|
"compile": "tsc --noEmit",
|
|
48
|
-
"
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"test:watch": "vitest",
|
|
51
|
+
"clean": "rm -rf dist coverage .turbo"
|
|
49
52
|
}
|
|
50
53
|
}
|