create-substrate 0.1.6 → 0.2.0
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/LICENSE +21 -0
- package/README.md +11 -4
- package/dist/index.js +25 -7
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +0 -2
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +6 -50
- package/dist/prompts.js.map +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +82 -80
- package/dist/scaffold.js.map +1 -1
- package/dist/surfaces/3d-scene.d.ts.map +1 -1
- package/dist/surfaces/3d-scene.js +43 -74
- package/dist/surfaces/3d-scene.js.map +1 -1
- package/dist/surfaces/canvas-2d.d.ts.map +1 -1
- package/dist/surfaces/canvas-2d.js +7 -10
- package/dist/surfaces/canvas-2d.js.map +1 -1
- package/dist/surfaces/data-vis.d.ts.map +1 -1
- package/dist/surfaces/data-vis.js +37 -143
- package/dist/surfaces/data-vis.js.map +1 -1
- package/dist/surfaces/image-gen.d.ts.map +1 -1
- package/dist/surfaces/image-gen.js +15 -35
- package/dist/surfaces/image-gen.js.map +1 -1
- package/dist/surfaces/node-editor.js +1 -1
- package/dist/utils/detect-pm.d.ts +2 -0
- package/dist/utils/detect-pm.d.ts.map +1 -1
- package/dist/utils/detect-pm.js +9 -0
- package/dist/utils/detect-pm.js.map +1 -1
- package/dist/utils/package-info.d.ts +5 -0
- package/dist/utils/package-info.d.ts.map +1 -0
- package/dist/utils/package-info.js +17 -0
- package/dist/utils/package-info.js.map +1 -0
- package/package.json +4 -3
- package/skills/3d-scene/SKILL.md +2 -1
- package/skills/animation/SKILL.md +2 -1
- package/skills/canvas-2d/SKILL.md +67 -5
- package/skills/composing-panels/SKILL.md +1 -4
- package/skills/data-visualisation/SKILL.md +2 -1
- package/skills/image-generation/SKILL.md +2 -1
- package/skills/install-components/SKILL.md +22 -16
- package/skills/scaffold-playground/SKILL.md +39 -19
- package/skills/substrate-canvas/SKILL.md +5 -0
- package/skills/substrate-controls/SKILL.md +57 -2
- package/skills/substrate-interaction/SKILL.md +19 -10
- package/skills/substrate-scaffold/SKILL.md +4 -4
- package/skills/theming/SKILL.md +8 -2
- package/skills/wire-interactions/SKILL.md +6 -3
- package/templates/agents-section.md +41 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 George Drury
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Scaffold a [Substrate](https://substrate.georgedrury.co.uk) playground: a Vite +
|
|
|
6
6
|
npx create-substrate
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
You are asked for a project name
|
|
9
|
+
You are asked for a project name and a surface type. The package manager is the one you ran it with. Pass flags to skip the prompts:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
npx create-substrate my-editor --surface canvas-2d --pm pnpm
|
|
@@ -29,14 +29,17 @@ npx create-substrate my-editor --surface canvas-2d --pm pnpm
|
|
|
29
29
|
| Flag | Description |
|
|
30
30
|
| --- | --- |
|
|
31
31
|
| `--surface <type>` | Surface type from the table above |
|
|
32
|
-
| `--pm <manager>` | Package manager: `npm`, `pnpm` or `bun
|
|
32
|
+
| `--pm <manager>` | Package manager: `npm`, `pnpm` or `bun`. Defaults to the one that ran the command |
|
|
33
|
+
| `-y, --yes` | Accept defaults for anything not passed: name `my-substrate-app`, surface `canvas-2d` |
|
|
33
34
|
| `--skip-install` | Skip dependency installation |
|
|
34
35
|
| `--skip-git` | Don't initialise a git repository |
|
|
35
36
|
|
|
37
|
+
With no terminal (a script or CI), `--surface` is required unless you pass `--yes`.
|
|
38
|
+
|
|
36
39
|
## What you get
|
|
37
40
|
|
|
38
41
|
- A starter page for the chosen surface, built from Substrate components copied into `src/components/substrate/`
|
|
39
|
-
- `CLAUDE.md` and `.claude/skills/` so coding agents know which components exist and how to compose them
|
|
42
|
+
- `AGENTS.md`, `CLAUDE.md` and skills in `.claude/skills/` and `.agents/skills/` so coding agents know which components exist and how to compose them
|
|
40
43
|
- `.mcp.json` registering the Substrate MCP server
|
|
41
44
|
- [`@substrate-kit/cli`](https://www.npmjs.com/package/@substrate-kit/cli) as a dev dependency, for adding more components later:
|
|
42
45
|
|
|
@@ -48,6 +51,10 @@ To add Substrate to an existing project instead, run `npx @substrate-kit/cli ini
|
|
|
48
51
|
|
|
49
52
|
Docs: [substrate.georgedrury.co.uk/docs/create-substrate](https://substrate.georgedrury.co.uk/docs/create-substrate)
|
|
50
53
|
|
|
54
|
+
## Acknowledgements
|
|
55
|
+
|
|
56
|
+
The 3D scene and image generation starters use Substrate's `Controls`, which is built on [DialKit](https://github.com/joshpuckett/dialkit) by Josh Puckett (MIT). Those projects depend on the `dialkit` package.
|
|
57
|
+
|
|
51
58
|
## Licence
|
|
52
59
|
|
|
53
|
-
MIT
|
|
60
|
+
MIT, see [LICENSE](LICENSE).
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import chalk from "chalk";
|
|
3
4
|
import { scaffold } from "./scaffold.js";
|
|
4
|
-
import { promptName, promptSurface
|
|
5
|
+
import { promptName, promptSurface } from "./prompts.js";
|
|
6
|
+
import { SURFACE_OPTIONS } from "./surfaces/types.js";
|
|
7
|
+
import { detectRunningPackageManager, isPackageManager } from "./utils/detect-pm.js";
|
|
8
|
+
import { VERSION } from "./utils/package-info.js";
|
|
9
|
+
const DEFAULT_NAME = "my-substrate-app";
|
|
10
|
+
const DEFAULT_SURFACE = "canvas-2d";
|
|
11
|
+
const surfaceValues = SURFACE_OPTIONS.map((option) => option.value);
|
|
12
|
+
function fail(message) {
|
|
13
|
+
console.error(chalk.red(` ${message}`));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
5
16
|
const program = new Command();
|
|
6
17
|
program
|
|
7
18
|
.name("create-substrate")
|
|
8
19
|
.description("Scaffold a Substrate creative tool playground")
|
|
9
|
-
.version(
|
|
20
|
+
.version(VERSION)
|
|
10
21
|
.argument("[project-name]", "Name for the new project")
|
|
11
|
-
.option("--surface <type>",
|
|
12
|
-
.option("--pm <manager>", "Package manager (npm, pnpm, bun)")
|
|
22
|
+
.option("--surface <type>", `Surface type (${surfaceValues.join(", ")})`)
|
|
23
|
+
.option("--pm <manager>", "Package manager (npm, pnpm, bun). Defaults to the one that ran this command")
|
|
13
24
|
.option("--skip-install", "Skip dependency installation", false)
|
|
14
25
|
.option("--skip-git", "Don't initialise a git repository", false)
|
|
26
|
+
.option("-y, --yes", `Accept defaults for anything not passed (name ${DEFAULT_NAME}, surface ${DEFAULT_SURFACE})`, false)
|
|
15
27
|
.action(async (projectName, options) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
if (options.surface && !surfaceValues.includes(options.surface)) {
|
|
29
|
+
fail(`Unknown surface "${options.surface}". Choose from ${surfaceValues.join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
if (options.pm && !isPackageManager(options.pm)) {
|
|
32
|
+
fail(`Unknown package manager "${options.pm}". Choose from npm, pnpm, bun`);
|
|
33
|
+
}
|
|
34
|
+
const name = projectName || (options.yes ? DEFAULT_NAME : await promptName());
|
|
35
|
+
const surface = options.surface ?? (options.yes ? DEFAULT_SURFACE : await promptSurface());
|
|
36
|
+
const pm = options.pm ?? detectRunningPackageManager() ?? "npm";
|
|
19
37
|
await scaffold(name, {
|
|
20
38
|
surface,
|
|
21
39
|
packageManager: pm,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEjD,MAAM,YAAY,GAAG,kBAAkB,CAAA;AACvC,MAAM,eAAe,GAAgB,WAAW,CAAA;AAChD,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAEnE,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACtD,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KACxE,MAAM,CAAC,gBAAgB,EAAE,6EAA6E,CAAC;KACvG,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC/D,MAAM,CAAC,YAAY,EAAE,mCAAmC,EAAE,KAAK,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,iDAAiD,YAAY,aAAa,eAAe,GAAG,EAAE,KAAK,CAAC;KACxH,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAAO,EAAE,EAAE;IACzD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,oBAAoB,OAAO,CAAC,OAAO,kBAAkB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;IACD,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,4BAA4B,OAAO,CAAC,EAAE,+BAA+B,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAA;IAC7E,MAAM,OAAO,GACV,OAAO,CAAC,OAAmC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,CAAA;IACzG,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,2BAA2B,EAAE,IAAI,KAAK,CAAA;IAE/D,MAAM,QAAQ,CAAC,IAAI,EAAE;QACnB,OAAO;QACP,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { type SurfaceType } from "./surfaces/types.js";
|
|
2
|
-
import type { PackageManager } from "./utils/detect-pm.js";
|
|
3
2
|
export declare function promptName(): Promise<string>;
|
|
4
3
|
export declare function promptSurface(): Promise<SurfaceType>;
|
|
5
|
-
export declare function promptPackageManager(): Promise<PackageManager>;
|
|
6
4
|
//# sourceMappingURL=prompts.d.ts.map
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMvE,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBlD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CA4D1D"}
|
package/dist/prompts.js
CHANGED
|
@@ -5,6 +5,10 @@ function createRl() {
|
|
|
5
5
|
return createInterface({ input: process.stdin, output: process.stdout });
|
|
6
6
|
}
|
|
7
7
|
export async function promptName() {
|
|
8
|
+
if (!process.stdin.isTTY) {
|
|
9
|
+
console.error(chalk.red(" No terminal to ask in. Pass a project name, or --yes to use the default."));
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
8
12
|
const rl = createRl();
|
|
9
13
|
return new Promise((resolve) => {
|
|
10
14
|
rl.question(` ${chalk.bold("Project name:")} `, (answer) => {
|
|
@@ -23,8 +27,8 @@ export async function promptSurface() {
|
|
|
23
27
|
let cursor = 0;
|
|
24
28
|
return new Promise((resolve) => {
|
|
25
29
|
if (!process.stdin.isTTY) {
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
console.error(chalk.red(" No terminal to ask in. Pass --surface <type>, or --yes to use the default (canvas-2d)."));
|
|
31
|
+
process.exit(1);
|
|
28
32
|
}
|
|
29
33
|
process.stdin.setRawMode(true);
|
|
30
34
|
process.stdin.resume();
|
|
@@ -76,52 +80,4 @@ export async function promptSurface() {
|
|
|
76
80
|
});
|
|
77
81
|
});
|
|
78
82
|
}
|
|
79
|
-
const PM_OPTIONS = [
|
|
80
|
-
{ value: "npm", label: "npm" },
|
|
81
|
-
{ value: "pnpm", label: "pnpm" },
|
|
82
|
-
{ value: "bun", label: "bun" },
|
|
83
|
-
];
|
|
84
|
-
export async function promptPackageManager() {
|
|
85
|
-
let cursor = 0;
|
|
86
|
-
return new Promise((resolve) => {
|
|
87
|
-
if (!process.stdin.isTTY) {
|
|
88
|
-
resolve("npm");
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
process.stdin.setRawMode(true);
|
|
92
|
-
process.stdin.resume();
|
|
93
|
-
function render() {
|
|
94
|
-
process.stdout.write(`\x1B[1A\x1B[J`);
|
|
95
|
-
const items = PM_OPTIONS.map((opt, i) => {
|
|
96
|
-
const selected = i === cursor;
|
|
97
|
-
return selected ? chalk.cyan.bold(opt.label) : chalk.dim(opt.label);
|
|
98
|
-
}).join(" ");
|
|
99
|
-
console.log(` ${chalk.bold("Package manager:")} ${items}`);
|
|
100
|
-
}
|
|
101
|
-
console.log(` ${chalk.bold("Package manager:")} ${PM_OPTIONS.map((o) => chalk.dim(o.label)).join(" ")}`);
|
|
102
|
-
render();
|
|
103
|
-
process.stdin.on("data", (data) => {
|
|
104
|
-
const key = data.toString();
|
|
105
|
-
if (key === "\x1B[D" || key === "h") {
|
|
106
|
-
cursor = Math.max(0, cursor - 1);
|
|
107
|
-
render();
|
|
108
|
-
}
|
|
109
|
-
else if (key === "\x1B[C" || key === "l") {
|
|
110
|
-
cursor = Math.min(PM_OPTIONS.length - 1, cursor + 1);
|
|
111
|
-
render();
|
|
112
|
-
}
|
|
113
|
-
else if (key === "\r" || key === "\n") {
|
|
114
|
-
process.stdin.setRawMode(false);
|
|
115
|
-
process.stdin.pause();
|
|
116
|
-
process.stdin.removeAllListeners("data");
|
|
117
|
-
console.log();
|
|
118
|
-
resolve(PM_OPTIONS[cursor].value);
|
|
119
|
-
}
|
|
120
|
-
else if (key === "\x03") {
|
|
121
|
-
process.stdin.setRawMode(false);
|
|
122
|
-
process.exit(0);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
83
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE7E,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAsBD,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA8Hf"}
|
package/dist/scaffold.js
CHANGED
|
@@ -4,6 +4,7 @@ import { ensureDir, writeFile, exists, copyDir, listDirs, resolveSkillsDir } fro
|
|
|
4
4
|
import { exec, execSilent } from "./utils/shell.js";
|
|
5
5
|
import { log } from "./utils/logger.js";
|
|
6
6
|
import { getInstallCommand } from "./utils/detect-pm.js";
|
|
7
|
+
import { CLI_RANGE, agentsSection } from "./utils/package-info.js";
|
|
7
8
|
import { surfaces } from "./surfaces/index.js";
|
|
8
9
|
const INSTALL_ATTEMPTS = 3;
|
|
9
10
|
// SUBSTRATE_REGISTRY_URL points installs at a local registry for testing
|
|
@@ -62,32 +63,29 @@ export async function scaffold(projectName, options) {
|
|
|
62
63
|
log.step(`Installing dependencies with ${packageManager}...`);
|
|
63
64
|
exec(getInstallCommand(packageManager), { cwd: projectDir });
|
|
64
65
|
log.success("Dependencies installed");
|
|
65
|
-
// 3. Install Substrate components
|
|
66
|
+
// 3. Install Substrate components in one call so shared dependencies are
|
|
67
|
+
// resolved once. The project is new, so overwriting is safe and avoids
|
|
68
|
+
// prompts. Retry because one dropped request would otherwise leave a
|
|
69
|
+
// broken project.
|
|
66
70
|
log.step("Installing Substrate components...");
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
try {
|
|
74
|
-
exec(`npx shadcn@latest add --yes --overwrite ${url}`, { cwd: projectDir });
|
|
75
|
-
installed = true;
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
if (attempt < INSTALL_ATTEMPTS)
|
|
79
|
-
log.warn(` Retrying ${component}...`);
|
|
80
|
-
}
|
|
71
|
+
const urls = config.components.map((component) => `${REGISTRY_BASE}/${component}`);
|
|
72
|
+
let installed = false;
|
|
73
|
+
for (let attempt = 1; attempt <= INSTALL_ATTEMPTS && !installed; attempt++) {
|
|
74
|
+
try {
|
|
75
|
+
exec(`npx shadcn@latest add --yes --overwrite ${urls.join(" ")}`, { cwd: projectDir });
|
|
76
|
+
installed = true;
|
|
81
77
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
else {
|
|
86
|
-
failedComponents.push(component);
|
|
78
|
+
catch {
|
|
79
|
+
if (attempt < INSTALL_ATTEMPTS)
|
|
80
|
+
log.warn(" Retrying...");
|
|
87
81
|
}
|
|
88
82
|
}
|
|
89
|
-
if (
|
|
83
|
+
if (installed) {
|
|
90
84
|
log.success("Substrate components installed");
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
failedComponents.push(...config.components);
|
|
88
|
+
}
|
|
91
89
|
}
|
|
92
90
|
else {
|
|
93
91
|
log.warn("Skipping dependency installation (--skip-install)");
|
|
@@ -96,19 +94,22 @@ export async function scaffold(projectName, options) {
|
|
|
96
94
|
log.step("Installing skills...");
|
|
97
95
|
try {
|
|
98
96
|
const skillsSource = resolveSkillsDir();
|
|
99
|
-
const skillsDest = join(projectDir, ".claude", "skills");
|
|
100
97
|
const skillNames = listDirs(skillsSource);
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
// .claude/skills is read by Claude Code, .agents/skills by other agents
|
|
99
|
+
for (const dir of [".claude/skills", ".agents/skills"]) {
|
|
100
|
+
for (const skillName of skillNames) {
|
|
101
|
+
copyDir(join(skillsSource, skillName), join(projectDir, dir, skillName));
|
|
102
|
+
}
|
|
103
103
|
}
|
|
104
|
-
log.success(`Installed ${skillNames.length} skills`);
|
|
104
|
+
log.success(`Installed ${skillNames.length} skills into .claude/skills and .agents/skills`);
|
|
105
105
|
}
|
|
106
106
|
catch {
|
|
107
107
|
log.warn("Could not install skills — run 'npx @substrate-kit/cli init' to add them later");
|
|
108
108
|
}
|
|
109
|
-
// 5. Write CLAUDE.md
|
|
110
|
-
writeFile(join(projectDir, "
|
|
111
|
-
|
|
109
|
+
// 5. Write the agent guidance once in AGENTS.md; CLAUDE.md imports it
|
|
110
|
+
writeFile(join(projectDir, "AGENTS.md"), agentsSection());
|
|
111
|
+
writeFile(join(projectDir, "CLAUDE.md"), "@AGENTS.md\n");
|
|
112
|
+
log.success("Created AGENTS.md and CLAUDE.md");
|
|
112
113
|
// 6. Write .mcp.json
|
|
113
114
|
writeFile(join(projectDir, ".mcp.json"), mcpJson());
|
|
114
115
|
log.success("Created .mcp.json");
|
|
@@ -139,7 +140,7 @@ export async function scaffold(projectName, options) {
|
|
|
139
140
|
log.blank();
|
|
140
141
|
}
|
|
141
142
|
// --- Template functions ---
|
|
142
|
-
function packageJson(name, config,
|
|
143
|
+
function packageJson(name, config, _options) {
|
|
143
144
|
const deps = {
|
|
144
145
|
react: "^19.1.0",
|
|
145
146
|
"react-dom": "^19.1.0",
|
|
@@ -158,7 +159,7 @@ function packageJson(name, config, options) {
|
|
|
158
159
|
"@types/react-dom": "^19",
|
|
159
160
|
vite: "^6.3.0",
|
|
160
161
|
"@vitejs/plugin-react": "^4.4.0",
|
|
161
|
-
"@substrate-kit/cli":
|
|
162
|
+
"@substrate-kit/cli": CLI_RANGE,
|
|
162
163
|
tailwindcss: "^4",
|
|
163
164
|
"@tailwindcss/vite": "^4",
|
|
164
165
|
"tw-animate-css": "^1.4.0",
|
|
@@ -234,11 +235,19 @@ export default defineConfig({
|
|
|
234
235
|
}
|
|
235
236
|
function indexHtml(title) {
|
|
236
237
|
return `<!doctype html>
|
|
237
|
-
<html lang="en"
|
|
238
|
+
<html lang="en">
|
|
238
239
|
<head>
|
|
239
240
|
<meta charset="UTF-8" />
|
|
240
241
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
241
242
|
<title>${title}</title>
|
|
243
|
+
<script>
|
|
244
|
+
// Follow the system theme. To force one, remove this script and set
|
|
245
|
+
// class="dark" (or nothing, for light) on <html>.
|
|
246
|
+
const darkMode = window.matchMedia("(prefers-color-scheme: dark)")
|
|
247
|
+
const applyTheme = () => document.documentElement.classList.toggle("dark", darkMode.matches)
|
|
248
|
+
applyTheme()
|
|
249
|
+
darkMode.addEventListener("change", applyTheme)
|
|
250
|
+
</script>
|
|
242
251
|
</head>
|
|
243
252
|
<body class="antialiased">
|
|
244
253
|
<div id="root"></div>
|
|
@@ -316,6 +325,35 @@ function globalsCss(config) {
|
|
|
316
325
|
}
|
|
317
326
|
|
|
318
327
|
:root {
|
|
328
|
+
color-scheme: light;
|
|
329
|
+
--background: oklch(1 0 0);
|
|
330
|
+
--foreground: oklch(0.145 0 0);
|
|
331
|
+
--card: oklch(1 0 0);
|
|
332
|
+
--card-foreground: oklch(0.145 0 0);
|
|
333
|
+
--popover: oklch(1 0 0);
|
|
334
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
335
|
+
--primary: oklch(0.205 0 0);
|
|
336
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
337
|
+
--secondary: oklch(0.97 0 0);
|
|
338
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
339
|
+
--muted: oklch(0.97 0 0);
|
|
340
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
341
|
+
--accent: oklch(0.97 0 0);
|
|
342
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
343
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
344
|
+
--border: oklch(0.922 0 0);
|
|
345
|
+
--input: oklch(0.922 0 0);
|
|
346
|
+
--ring: oklch(0.708 0 0);
|
|
347
|
+
--radius: 0.625rem;
|
|
348
|
+
/* Substrate */
|
|
349
|
+
--canvas: oklch(0.97 0 0);
|
|
350
|
+
--canvas-foreground: oklch(0.556 0 0);
|
|
351
|
+
--panel: oklch(1 0 0);
|
|
352
|
+
--panel-foreground: oklch(0.145 0 0);${extra}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.dark {
|
|
356
|
+
color-scheme: dark;
|
|
319
357
|
--background: oklch(0.145 0 0);
|
|
320
358
|
--foreground: oklch(0.985 0 0);
|
|
321
359
|
--card: oklch(0.205 0 0);
|
|
@@ -334,12 +372,11 @@ function globalsCss(config) {
|
|
|
334
372
|
--border: oklch(1 0 0 / 10%);
|
|
335
373
|
--input: oklch(1 0 0 / 15%);
|
|
336
374
|
--ring: oklch(0.556 0 0);
|
|
337
|
-
--radius: 0.625rem;
|
|
338
375
|
/* Substrate */
|
|
339
376
|
--canvas: oklch(17.764% 0.00002 271.152);
|
|
340
377
|
--canvas-foreground: oklch(0.708 0 0);
|
|
341
378
|
--panel: oklch(0.205 0 0);
|
|
342
|
-
--panel-foreground: oklch(0.985 0 0)
|
|
379
|
+
--panel-foreground: oklch(0.985 0 0);
|
|
343
380
|
}
|
|
344
381
|
|
|
345
382
|
@layer base {
|
|
@@ -351,6 +388,18 @@ function globalsCss(config) {
|
|
|
351
388
|
}
|
|
352
389
|
}
|
|
353
390
|
|
|
391
|
+
/* Honour the system setting: no transitions or animations for people who
|
|
392
|
+
asked for less motion */
|
|
393
|
+
@media (prefers-reduced-motion: reduce) {
|
|
394
|
+
*,
|
|
395
|
+
::before,
|
|
396
|
+
::after {
|
|
397
|
+
animation-duration: 0.01ms !important;
|
|
398
|
+
animation-iteration-count: 1 !important;
|
|
399
|
+
transition-duration: 0.01ms !important;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
354
403
|
@keyframes collapsible-down {
|
|
355
404
|
from {
|
|
356
405
|
height: 0;
|
|
@@ -442,51 +491,4 @@ function mcpJson() {
|
|
|
442
491
|
},
|
|
443
492
|
}, null, 2) + "\n";
|
|
444
493
|
}
|
|
445
|
-
function claudeMd() {
|
|
446
|
-
return `# Substrate
|
|
447
|
-
|
|
448
|
-
This project uses [Substrate](https://substrate.georgedrury.co.uk) — a creative app framework that provides scaffold (toolbar, panels, panes, stores, shortcuts) around different surface types.
|
|
449
|
-
|
|
450
|
-
## Skills
|
|
451
|
-
|
|
452
|
-
Substrate skills are installed in \`.claude/skills/\`. They are organised into two groups:
|
|
453
|
-
|
|
454
|
-
### Surface guides (how to build)
|
|
455
|
-
|
|
456
|
-
- **scaffold-playground** — bootstrapping a new playground
|
|
457
|
-
- **canvas-2d** / **3d-scene** / **animation** / **image-generation** / **data-visualisation** — surface-specific architecture
|
|
458
|
-
- **composing-panels** / **wire-interactions** / **create-custom-tool** / **theming** — workflow guides
|
|
459
|
-
- **install-components** — full catalogue of available components + how to install via \`substrate-kit add\`
|
|
460
|
-
|
|
461
|
-
### Component reference (what to use)
|
|
462
|
-
|
|
463
|
-
- **substrate-scaffold** — Toolbar, Panel, Pane, DocumentTabs, StatusBar, ZoomControls, Breadcrumbs, Resizer
|
|
464
|
-
- **substrate-controls** — NumberInput, Slider, NumberSlider, Select, Toggle, TextArea, ColourPicker, ActionControls
|
|
465
|
-
- **substrate-canvas** — useViewport, useSelection, useDragReorder, snap, boundingBox, hit testing
|
|
466
|
-
- **substrate-nodes** — Node cards, typed ports, port colour theming
|
|
467
|
-
- **substrate-feedback** — Toast, ProgressBar, Badge, EmptyState, CommandPalette, ContextMenu, ShortcutOverlay
|
|
468
|
-
- **substrate-interaction** — useUndoable, useClipboard, createKeyboardShortcuts, HistoryControls, LayerList, TreeList
|
|
469
|
-
|
|
470
|
-
## Install components
|
|
471
|
-
|
|
472
|
-
**Always prefer existing Substrate components over writing custom ones.** Substrate ships sliders, number inputs, toggles, colour pickers, context menus, command palettes, toolbars, panels, timelines, and more — see the \`install-components\` skill for the full catalogue.
|
|
473
|
-
|
|
474
|
-
\`\`\`bash
|
|
475
|
-
# Core scaffold
|
|
476
|
-
npx substrate-kit add design-canvas toolbar panel pane action slider
|
|
477
|
-
|
|
478
|
-
# Surface components
|
|
479
|
-
npx substrate-kit add surface timeline gallery colour-picker easing-curve-editor
|
|
480
|
-
|
|
481
|
-
# Interactive picker (no args)
|
|
482
|
-
npx substrate-kit add
|
|
483
|
-
\`\`\`
|
|
484
|
-
|
|
485
|
-
Do **not** run \`npx shadcn@latest add\` directly for Substrate components — always go through \`substrate-kit add\`.
|
|
486
|
-
|
|
487
|
-
## Registry
|
|
488
|
-
|
|
489
|
-
Components are installed from \`substrate.georgedrury.co.uk/r/\` via the Substrate CLI, which wraps shadcn under the hood.
|
|
490
|
-
`;
|
|
491
|
-
}
|
|
492
494
|
//# sourceMappingURL=scaffold.js.map
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3d-scene.d.ts","sourceRoot":"","sources":["../../src/surfaces/3d-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"3d-scene.d.ts","sourceRoot":"","sources":["../../src/surfaces/3d-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,OAAO,EAAE,aAkfrB,CAAA"}
|