create-substrate 0.1.5 → 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 +93 -66
- 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,7 +4,9 @@ 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";
|
|
9
|
+
const INSTALL_ATTEMPTS = 3;
|
|
8
10
|
// SUBSTRATE_REGISTRY_URL points installs at a local registry for testing
|
|
9
11
|
const REGISTRY_BASE = process.env.SUBSTRATE_REGISTRY_URL ?? "https://substrate.georgedrury.co.uk/r";
|
|
10
12
|
function printBanner() {
|
|
@@ -55,24 +57,35 @@ export async function scaffold(projectName, options) {
|
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
log.success("Project files created");
|
|
60
|
+
const failedComponents = [];
|
|
58
61
|
// 2. Install dependencies
|
|
59
62
|
if (!skipInstall) {
|
|
60
63
|
log.step(`Installing dependencies with ${packageManager}...`);
|
|
61
64
|
exec(getInstallCommand(packageManager), { cwd: projectDir });
|
|
62
65
|
log.success("Dependencies installed");
|
|
63
|
-
// 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.
|
|
64
70
|
log.step("Installing Substrate components...");
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
const urls = config.components.map((component) => `${REGISTRY_BASE}/${component}`);
|
|
72
|
+
let installed = false;
|
|
73
|
+
for (let attempt = 1; attempt <= INSTALL_ATTEMPTS && !installed; attempt++) {
|
|
67
74
|
try {
|
|
68
|
-
exec(`npx shadcn@latest add ${
|
|
69
|
-
|
|
75
|
+
exec(`npx shadcn@latest add --yes --overwrite ${urls.join(" ")}`, { cwd: projectDir });
|
|
76
|
+
installed = true;
|
|
70
77
|
}
|
|
71
78
|
catch {
|
|
72
|
-
|
|
79
|
+
if (attempt < INSTALL_ATTEMPTS)
|
|
80
|
+
log.warn(" Retrying...");
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
|
-
|
|
83
|
+
if (installed) {
|
|
84
|
+
log.success("Substrate components installed");
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
failedComponents.push(...config.components);
|
|
88
|
+
}
|
|
76
89
|
}
|
|
77
90
|
else {
|
|
78
91
|
log.warn("Skipping dependency installation (--skip-install)");
|
|
@@ -81,19 +94,22 @@ export async function scaffold(projectName, options) {
|
|
|
81
94
|
log.step("Installing skills...");
|
|
82
95
|
try {
|
|
83
96
|
const skillsSource = resolveSkillsDir();
|
|
84
|
-
const skillsDest = join(projectDir, ".claude", "skills");
|
|
85
97
|
const skillNames = listDirs(skillsSource);
|
|
86
|
-
|
|
87
|
-
|
|
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
|
+
}
|
|
88
103
|
}
|
|
89
|
-
log.success(`Installed ${skillNames.length} skills`);
|
|
104
|
+
log.success(`Installed ${skillNames.length} skills into .claude/skills and .agents/skills`);
|
|
90
105
|
}
|
|
91
106
|
catch {
|
|
92
107
|
log.warn("Could not install skills — run 'npx @substrate-kit/cli init' to add them later");
|
|
93
108
|
}
|
|
94
|
-
// 5. Write CLAUDE.md
|
|
95
|
-
writeFile(join(projectDir, "
|
|
96
|
-
|
|
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");
|
|
97
113
|
// 6. Write .mcp.json
|
|
98
114
|
writeFile(join(projectDir, ".mcp.json"), mcpJson());
|
|
99
115
|
log.success("Created .mcp.json");
|
|
@@ -105,6 +121,16 @@ export async function scaffold(projectName, options) {
|
|
|
105
121
|
execSilent('git commit -m "Initial commit from create-substrate"', projectDir);
|
|
106
122
|
log.success("Git repository initialised");
|
|
107
123
|
}
|
|
124
|
+
if (failedComponents.length > 0) {
|
|
125
|
+
log.blank();
|
|
126
|
+
log.error(`These components could not be downloaded: ${failedComponents.join(", ")}`);
|
|
127
|
+
log.error("The project will not build until they are installed. Check your connection, then run:");
|
|
128
|
+
log.info(` cd ${projectName}`);
|
|
129
|
+
log.info(` npx substrate-kit add ${failedComponents.join(" ")}`);
|
|
130
|
+
log.blank();
|
|
131
|
+
process.exitCode = 1;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
108
134
|
// Done
|
|
109
135
|
log.title("Your Substrate playground is ready");
|
|
110
136
|
log.info(` cd ${projectName}`);
|
|
@@ -114,7 +140,7 @@ export async function scaffold(projectName, options) {
|
|
|
114
140
|
log.blank();
|
|
115
141
|
}
|
|
116
142
|
// --- Template functions ---
|
|
117
|
-
function packageJson(name, config,
|
|
143
|
+
function packageJson(name, config, _options) {
|
|
118
144
|
const deps = {
|
|
119
145
|
react: "^19.1.0",
|
|
120
146
|
"react-dom": "^19.1.0",
|
|
@@ -133,7 +159,7 @@ function packageJson(name, config, options) {
|
|
|
133
159
|
"@types/react-dom": "^19",
|
|
134
160
|
vite: "^6.3.0",
|
|
135
161
|
"@vitejs/plugin-react": "^4.4.0",
|
|
136
|
-
"@substrate-kit/cli":
|
|
162
|
+
"@substrate-kit/cli": CLI_RANGE,
|
|
137
163
|
tailwindcss: "^4",
|
|
138
164
|
"@tailwindcss/vite": "^4",
|
|
139
165
|
"tw-animate-css": "^1.4.0",
|
|
@@ -209,11 +235,19 @@ export default defineConfig({
|
|
|
209
235
|
}
|
|
210
236
|
function indexHtml(title) {
|
|
211
237
|
return `<!doctype html>
|
|
212
|
-
<html lang="en"
|
|
238
|
+
<html lang="en">
|
|
213
239
|
<head>
|
|
214
240
|
<meta charset="UTF-8" />
|
|
215
241
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
216
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>
|
|
217
251
|
</head>
|
|
218
252
|
<body class="antialiased">
|
|
219
253
|
<div id="root"></div>
|
|
@@ -291,6 +325,35 @@ function globalsCss(config) {
|
|
|
291
325
|
}
|
|
292
326
|
|
|
293
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;
|
|
294
357
|
--background: oklch(0.145 0 0);
|
|
295
358
|
--foreground: oklch(0.985 0 0);
|
|
296
359
|
--card: oklch(0.205 0 0);
|
|
@@ -309,12 +372,11 @@ function globalsCss(config) {
|
|
|
309
372
|
--border: oklch(1 0 0 / 10%);
|
|
310
373
|
--input: oklch(1 0 0 / 15%);
|
|
311
374
|
--ring: oklch(0.556 0 0);
|
|
312
|
-
--radius: 0.625rem;
|
|
313
375
|
/* Substrate */
|
|
314
376
|
--canvas: oklch(17.764% 0.00002 271.152);
|
|
315
377
|
--canvas-foreground: oklch(0.708 0 0);
|
|
316
378
|
--panel: oklch(0.205 0 0);
|
|
317
|
-
--panel-foreground: oklch(0.985 0 0)
|
|
379
|
+
--panel-foreground: oklch(0.985 0 0);
|
|
318
380
|
}
|
|
319
381
|
|
|
320
382
|
@layer base {
|
|
@@ -326,6 +388,18 @@ function globalsCss(config) {
|
|
|
326
388
|
}
|
|
327
389
|
}
|
|
328
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
|
+
|
|
329
403
|
@keyframes collapsible-down {
|
|
330
404
|
from {
|
|
331
405
|
height: 0;
|
|
@@ -417,51 +491,4 @@ function mcpJson() {
|
|
|
417
491
|
},
|
|
418
492
|
}, null, 2) + "\n";
|
|
419
493
|
}
|
|
420
|
-
function claudeMd() {
|
|
421
|
-
return `# Substrate
|
|
422
|
-
|
|
423
|
-
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.
|
|
424
|
-
|
|
425
|
-
## Skills
|
|
426
|
-
|
|
427
|
-
Substrate skills are installed in \`.claude/skills/\`. They are organised into two groups:
|
|
428
|
-
|
|
429
|
-
### Surface guides (how to build)
|
|
430
|
-
|
|
431
|
-
- **scaffold-playground** — bootstrapping a new playground
|
|
432
|
-
- **canvas-2d** / **3d-scene** / **animation** / **image-generation** / **data-visualisation** — surface-specific architecture
|
|
433
|
-
- **composing-panels** / **wire-interactions** / **create-custom-tool** / **theming** — workflow guides
|
|
434
|
-
- **install-components** — full catalogue of available components + how to install via \`substrate-kit add\`
|
|
435
|
-
|
|
436
|
-
### Component reference (what to use)
|
|
437
|
-
|
|
438
|
-
- **substrate-scaffold** — Toolbar, Panel, Pane, DocumentTabs, StatusBar, ZoomControls, Breadcrumbs, Resizer
|
|
439
|
-
- **substrate-controls** — NumberInput, Slider, NumberSlider, Select, Toggle, TextArea, ColourPicker, ActionControls
|
|
440
|
-
- **substrate-canvas** — useViewport, useSelection, useDragReorder, snap, boundingBox, hit testing
|
|
441
|
-
- **substrate-nodes** — Node cards, typed ports, port colour theming
|
|
442
|
-
- **substrate-feedback** — Toast, ProgressBar, Badge, EmptyState, CommandPalette, ContextMenu, ShortcutOverlay
|
|
443
|
-
- **substrate-interaction** — useUndoable, useClipboard, createKeyboardShortcuts, HistoryControls, LayerList, TreeList
|
|
444
|
-
|
|
445
|
-
## Install components
|
|
446
|
-
|
|
447
|
-
**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.
|
|
448
|
-
|
|
449
|
-
\`\`\`bash
|
|
450
|
-
# Core scaffold
|
|
451
|
-
npx substrate-kit add design-canvas toolbar panel pane action slider
|
|
452
|
-
|
|
453
|
-
# Surface components
|
|
454
|
-
npx substrate-kit add surface timeline gallery colour-picker easing-curve-editor
|
|
455
|
-
|
|
456
|
-
# Interactive picker (no args)
|
|
457
|
-
npx substrate-kit add
|
|
458
|
-
\`\`\`
|
|
459
|
-
|
|
460
|
-
Do **not** run \`npx shadcn@latest add\` directly for Substrate components — always go through \`substrate-kit add\`.
|
|
461
|
-
|
|
462
|
-
## Registry
|
|
463
|
-
|
|
464
|
-
Components are installed from \`substrate.georgedrury.co.uk/r/\` via the Substrate CLI, which wraps shadcn under the hood.
|
|
465
|
-
`;
|
|
466
|
-
}
|
|
467
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"}
|