bsmnt 0.2.9 → 0.2.11
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 +84 -146
- package/dist/configs/skills.d.ts +27 -0
- package/dist/configs/skills.d.ts.map +1 -0
- package/dist/configs/skills.js +18 -0
- package/dist/configs/skills.js.map +1 -0
- package/dist/configs/skills.json +26 -0
- package/dist/helpers/add/hooks-config.d.ts.map +1 -1
- package/dist/helpers/add/hooks-config.js +0 -6
- package/dist/helpers/add/hooks-config.js.map +1 -1
- package/dist/helpers/create/setup-agent.d.ts.map +1 -1
- package/dist/helpers/create/setup-agent.js +15 -5
- package/dist/helpers/create/setup-agent.js.map +1 -1
- package/dist/helpers/integrate/merge-config.d.ts.map +1 -1
- package/dist/helpers/integrate/merge-config.js +1 -0
- package/dist/helpers/integrate/merge-config.js.map +1 -1
- package/dist/helpers/integrate/sanity/config.d.ts.map +1 -1
- package/dist/helpers/integrate/sanity/config.js +8 -2
- package/dist/helpers/integrate/sanity/config.js.map +1 -1
- package/dist/helpers/integrate/sanity/mergers/layout-merger.d.ts.map +1 -1
- package/dist/helpers/integrate/sanity/mergers/layout-merger.js +13 -12
- package/dist/helpers/integrate/sanity/mergers/layout-merger.js.map +1 -1
- package/dist/helpers/skills/index.d.ts +10 -0
- package/dist/helpers/skills/index.d.ts.map +1 -0
- package/dist/helpers/skills/index.js +136 -0
- package/dist/helpers/skills/index.js.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/helpers/integrate/sanity/files/app/api/blog/[slug]/route.ts +2 -1
- package/src/helpers/integrate/sanity/files/lib/integrations/sanity/confirm-publish-action.ts +31 -0
- package/src/helpers/integrate/sanity/files/lib/integrations/sanity/sanity.config.ts +17 -0
- package/src/helpers/integrate/sanity/files/lib/utils/json-ld.tsx +249 -0
- package/src/template-hooks/config.js +0 -6
- package/src/templates/next-default/README.md +28 -199
- package/src/templates/next-default/app/layout.tsx +20 -3
- package/src/templates/next-default/biome.json +1 -14
- package/src/templates/next-default/components/layout/theme/index.tsx +2 -5
- package/src/templates/next-default/components/layout/wrapper/index.tsx +1 -2
- package/src/templates/next-default/components/ui/README.md +2 -3
- package/src/templates/next-default/components/ui/image/index.tsx +3 -3
- package/src/templates/next-default/lib/README.md +3 -3
- package/src/templates/next-default/lib/hooks/use-device-detection.ts +4 -3
- package/src/templates/next-default/lib/hooks/use-media-breakpoint.ts +11 -4
- package/src/templates/next-default/lib/hooks/use-media.ts +29 -0
- package/src/templates/next-default/lib/scripts/dev.ts +9 -29
- package/src/templates/next-default/lib/styles/README.md +7 -58
- package/src/templates/next-default/lib/styles/fonts.ts +7 -15
- package/src/templates/next-default/lib/styles/global.css +198 -0
- package/src/templates/next-default/lib/styles/index.css +3 -0
- package/src/templates/next-default/lib/styles/tokens.css +179 -0
- package/src/templates/next-default/lib/utils/global-css.d.ts +1 -0
- package/src/templates/next-default/lib/utils/json-ld.tsx +199 -0
- package/src/templates/next-default/lib/utils/viewport.ts +11 -5
- package/src/templates/next-default/next.config.ts +0 -1
- package/src/templates/next-default/package.json +11 -18
- package/src/templates/next-default/postcss.config.mjs +0 -14
- package/src/templates/next-default/tsconfig.json +1 -0
- package/src/templates/next-default/tsconfig.tsbuildinfo +1 -0
- package/src/templates/next-experiments/README.md +29 -200
- package/src/templates/next-experiments/app/layout.tsx +20 -3
- package/src/templates/next-experiments/app/page.tsx +46 -39
- package/src/templates/next-experiments/biome.json +1 -14
- package/src/templates/next-experiments/components/layout/theme/index.tsx +2 -5
- package/src/templates/next-experiments/components/layout/wrapper/index.tsx +1 -2
- package/src/templates/next-experiments/components/ui/README.md +2 -3
- package/src/templates/next-experiments/components/ui/image/index.tsx +3 -2
- package/src/templates/next-experiments/lib/README.md +3 -3
- package/src/templates/next-experiments/lib/hooks/use-device-detection.ts +4 -3
- package/src/templates/next-experiments/lib/hooks/use-media-breakpoint.ts +11 -4
- package/src/templates/next-experiments/lib/hooks/use-media.ts +29 -0
- package/src/templates/next-experiments/lib/scripts/dev.ts +9 -29
- package/src/templates/next-experiments/lib/styles/README.md +7 -58
- package/src/templates/next-experiments/lib/styles/fonts.ts +7 -15
- package/src/templates/next-experiments/lib/styles/global.css +198 -0
- package/src/templates/next-experiments/lib/styles/index.css +3 -0
- package/src/templates/next-experiments/lib/styles/tokens.css +179 -0
- package/src/templates/next-experiments/lib/utils/global-css.d.ts +1 -0
- package/src/templates/next-experiments/lib/utils/json-ld.tsx +199 -0
- package/src/templates/next-experiments/lib/utils/viewport.ts +11 -5
- package/src/templates/next-experiments/next.config.ts +0 -1
- package/src/templates/next-experiments/package.json +11 -22
- package/src/templates/next-experiments/postcss.config.mjs +0 -14
- package/src/templates/next-experiments/tsconfig.json +1 -0
- package/src/templates/next-experiments/tsconfig.tsbuildinfo +1 -0
- package/src/templates/next-webgl/README.md +30 -200
- package/src/templates/next-webgl/app/layout.tsx +20 -3
- package/src/templates/next-webgl/biome.json +1 -14
- package/src/templates/next-webgl/components/layout/theme/index.tsx +2 -5
- package/src/templates/next-webgl/components/layout/wrapper/index.tsx +1 -2
- package/src/templates/next-webgl/components/ui/README.md +2 -3
- package/src/templates/next-webgl/components/ui/image/index.tsx +3 -3
- package/src/templates/next-webgl/lib/README.md +3 -3
- package/src/templates/next-webgl/lib/hooks/use-device-detection.ts +4 -3
- package/src/templates/next-webgl/lib/hooks/use-media-breakpoint.ts +11 -4
- package/src/templates/next-webgl/lib/hooks/use-media.ts +29 -0
- package/src/templates/next-webgl/lib/scripts/dev.ts +9 -29
- package/src/templates/next-webgl/lib/styles/README.md +7 -58
- package/src/templates/next-webgl/lib/styles/fonts.ts +7 -15
- package/src/templates/next-webgl/lib/styles/global.css +198 -0
- package/src/templates/next-webgl/lib/styles/index.css +3 -0
- package/src/templates/next-webgl/lib/styles/tokens.css +179 -0
- package/src/templates/next-webgl/lib/utils/global-css.d.ts +1 -0
- package/src/templates/next-webgl/lib/utils/json-ld.tsx +199 -0
- package/src/templates/next-webgl/lib/utils/viewport.ts +11 -5
- package/src/templates/next-webgl/next.config.ts +0 -1
- package/src/templates/next-webgl/package.json +11 -20
- package/src/templates/next-webgl/postcss.config.mjs +0 -14
- package/src/templates/next-webgl/tsconfig.json +1 -0
- package/src/templates/next-webgl/tsconfig.tsbuildinfo +1 -0
- package/plugins/no-anchor-element.grit +0 -11
- package/plugins/no-relative-parent-imports.grit +0 -6
- package/plugins/no-unnecessary-forwardref.grit +0 -5
- package/src/template-hooks/use-media.ts +0 -33
- package/src/templates/next-default/components/ui/image/image.module.css +0 -5
- package/src/templates/next-default/lib/scripts/generate-component.ts +0 -322
- package/src/templates/next-default/lib/scripts/generate-page.ts +0 -193
- package/src/templates/next-default/lib/scripts/generate.ts +0 -79
- package/src/templates/next-default/lib/store/app.ts +0 -11
- package/src/templates/next-default/lib/store/index.ts +0 -11
- package/src/templates/next-default/lib/styles/colors.ts +0 -63
- package/src/templates/next-default/lib/styles/config.ts +0 -34
- package/src/templates/next-default/lib/styles/css/global.css +0 -85
- package/src/templates/next-default/lib/styles/css/index.css +0 -6
- package/src/templates/next-default/lib/styles/css/reset.css +0 -166
- package/src/templates/next-default/lib/styles/css/root.css +0 -68
- package/src/templates/next-default/lib/styles/css/tailwind.css +0 -132
- package/src/templates/next-default/lib/styles/easings.ts +0 -21
- package/src/templates/next-default/lib/styles/index.ts +0 -12
- package/src/templates/next-default/lib/styles/layout.mjs +0 -27
- package/src/templates/next-default/lib/styles/scripts/README.md +0 -29
- package/src/templates/next-default/lib/styles/scripts/generate-root.ts +0 -57
- package/src/templates/next-default/lib/styles/scripts/generate-tailwind.ts +0 -162
- package/src/templates/next-default/lib/styles/scripts/postcss-functions.mjs +0 -168
- package/src/templates/next-default/lib/styles/scripts/setup-styles.ts +0 -24
- package/src/templates/next-default/lib/styles/scripts/utils.ts +0 -20
- package/src/templates/next-default/lib/styles/typography.ts +0 -36
- package/src/templates/next-default/lib/utils/css.d.ts +0 -21
- package/src/templates/next-default/lib/utils/math.test.ts +0 -221
- package/src/templates/next-default/lib/utils/strings.test.ts +0 -166
- package/src/templates/next-default/lib/utils/viewport.test.ts +0 -256
- package/src/templates/next-default/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/src/templates/next-experiments/components/ui/image/image.module.css +0 -5
- package/src/templates/next-experiments/lib/scripts/generate-component.ts +0 -322
- package/src/templates/next-experiments/lib/scripts/generate-page.ts +0 -193
- package/src/templates/next-experiments/lib/scripts/generate.ts +0 -79
- package/src/templates/next-experiments/lib/store/app.ts +0 -11
- package/src/templates/next-experiments/lib/store/index.ts +0 -11
- package/src/templates/next-experiments/lib/styles/colors.ts +0 -63
- package/src/templates/next-experiments/lib/styles/config.ts +0 -34
- package/src/templates/next-experiments/lib/styles/css/global.css +0 -85
- package/src/templates/next-experiments/lib/styles/css/index.css +0 -6
- package/src/templates/next-experiments/lib/styles/css/reset.css +0 -166
- package/src/templates/next-experiments/lib/styles/css/root.css +0 -68
- package/src/templates/next-experiments/lib/styles/css/tailwind.css +0 -132
- package/src/templates/next-experiments/lib/styles/easings.ts +0 -21
- package/src/templates/next-experiments/lib/styles/index.ts +0 -12
- package/src/templates/next-experiments/lib/styles/layout.mjs +0 -27
- package/src/templates/next-experiments/lib/styles/scripts/README.md +0 -29
- package/src/templates/next-experiments/lib/styles/scripts/generate-root.ts +0 -57
- package/src/templates/next-experiments/lib/styles/scripts/generate-tailwind.ts +0 -162
- package/src/templates/next-experiments/lib/styles/scripts/postcss-functions.mjs +0 -168
- package/src/templates/next-experiments/lib/styles/scripts/setup-styles.ts +0 -24
- package/src/templates/next-experiments/lib/styles/scripts/utils.ts +0 -20
- package/src/templates/next-experiments/lib/styles/typography.ts +0 -36
- package/src/templates/next-experiments/lib/utils/css.d.ts +0 -21
- package/src/templates/next-experiments/lib/utils/math.test.ts +0 -221
- package/src/templates/next-experiments/lib/utils/strings.test.ts +0 -166
- package/src/templates/next-experiments/lib/utils/viewport.test.ts +0 -256
- package/src/templates/next-experiments/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/src/templates/next-webgl/components/ui/image/image.module.css +0 -5
- package/src/templates/next-webgl/lib/scripts/generate-component.ts +0 -322
- package/src/templates/next-webgl/lib/scripts/generate-page.ts +0 -193
- package/src/templates/next-webgl/lib/scripts/generate.ts +0 -79
- package/src/templates/next-webgl/lib/store/app.ts +0 -11
- package/src/templates/next-webgl/lib/store/index.ts +0 -11
- package/src/templates/next-webgl/lib/styles/colors.ts +0 -63
- package/src/templates/next-webgl/lib/styles/config.ts +0 -34
- package/src/templates/next-webgl/lib/styles/css/global.css +0 -85
- package/src/templates/next-webgl/lib/styles/css/index.css +0 -6
- package/src/templates/next-webgl/lib/styles/css/reset.css +0 -166
- package/src/templates/next-webgl/lib/styles/css/root.css +0 -68
- package/src/templates/next-webgl/lib/styles/css/tailwind.css +0 -132
- package/src/templates/next-webgl/lib/styles/easings.ts +0 -21
- package/src/templates/next-webgl/lib/styles/index.ts +0 -12
- package/src/templates/next-webgl/lib/styles/layout.mjs +0 -27
- package/src/templates/next-webgl/lib/styles/scripts/README.md +0 -29
- package/src/templates/next-webgl/lib/styles/scripts/generate-root.ts +0 -57
- package/src/templates/next-webgl/lib/styles/scripts/generate-tailwind.ts +0 -162
- package/src/templates/next-webgl/lib/styles/scripts/postcss-functions.mjs +0 -168
- package/src/templates/next-webgl/lib/styles/scripts/setup-styles.ts +0 -24
- package/src/templates/next-webgl/lib/styles/scripts/utils.ts +0 -20
- package/src/templates/next-webgl/lib/styles/typography.ts +0 -36
- package/src/templates/next-webgl/lib/utils/css.d.ts +0 -21
- package/src/templates/next-webgl/lib/utils/math.test.ts +0 -221
- package/src/templates/next-webgl/lib/utils/strings.test.ts +0 -166
- package/src/templates/next-webgl/lib/utils/viewport.test.ts +0 -256
- package/src/templates/next-webgl/public/fonts/geist/Geist-Mono.woff2 +0 -0
package/README.md
CHANGED
|
@@ -1,137 +1,65 @@
|
|
|
1
|
-
# bsmnt
|
|
1
|
+
# bsmnt
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<a href="https://basement.studio"><img alt="basement.studio logo" src="https://img.shields.io/badge/MADE%20BY%20basement.studio-000000.svg?style=for-the-badge&labelColor=000"></a>
|
|
4
|
+
<a href="https://www.npmjs.com/package/bsmnt"><img alt="NPM version" src="https://img.shields.io/npm/v/bsmnt.svg?style=for-the-badge&labelColor=000000"></a>
|
|
5
|
+
<a href="https://github.com/basementstudio/basement-cli"><img alt="License" src="https://img.shields.io/npm/l/bsmnt.svg?style=for-the-badge&labelColor=000000"></a>
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
bsmnt
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## What's in 1.0
|
|
10
|
-
|
|
11
|
-
### Instant project scaffolding from templates
|
|
12
|
-
|
|
13
|
-
Spin up a new project based on the stack we actually use. Pick a template, answer a few prompts, and you're running.
|
|
14
|
-
|
|
15
|
-
| Template | What you get |
|
|
16
|
-
|----------|-------------|
|
|
17
|
-
| **Default** | Next.js 16 + React 19 + Tailwind v4 + Biome + Zustand |
|
|
18
|
-
| **WebGL** | + React Three Fiber + Three.js + optional WebGPU renderer toggle |
|
|
19
|
-
| **Experiment** | + Creative coding setup with navigation UI |
|
|
7
|
+
`bsmnt` is a CLI for scaffolding basement projects, adding integrations, and installing optional hooks and agent setup.
|
|
20
8
|
|
|
21
|
-
|
|
9
|
+
## Overview
|
|
22
10
|
|
|
23
|
-
|
|
11
|
+
- Scaffold new projects from basement starter templates
|
|
12
|
+
- Add Sanity to an existing project
|
|
13
|
+
- Copy optional hooks into an existing codebase
|
|
14
|
+
- Set up supported agent tooling
|
|
24
15
|
|
|
25
|
-
|
|
16
|
+
## Templates
|
|
26
17
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
| Template | Includes |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| Default | Next.js, React, TypeScript, Tailwind, Biome, and Zustand |
|
|
21
|
+
| WebGPU | Default stack plus React Three Fiber, Three.js, and 3D/WebGPU-ready setup |
|
|
22
|
+
| Experiment | Default stack plus creative coding utilities and navigation UI |
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
## Install
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Already have a project running? The `integrate` command injects Sanity into it. It detects your project structure (`app/` or `src/app/`) and smart-merges layout, sitemap, and integration files without overwriting your code.
|
|
38
|
-
|
|
39
|
-
Real-world validated — this is how we integrated Sanity into the ROX project.
|
|
26
|
+
Run without installing:
|
|
40
27
|
|
|
41
28
|
```bash
|
|
42
|
-
bsmnt
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### Agent skills out of the box
|
|
46
|
-
|
|
47
|
-
Pick your agent (Claude Code or OpenCode) and the CLI installs curated skills so it understands our stack from the start:
|
|
48
|
-
|
|
49
|
-
- React + Next.js performance patterns
|
|
50
|
-
- Web design and accessibility guidelines
|
|
51
|
-
- Frontend design standards
|
|
52
|
-
- WebGPU/TSL guides (for WebGL and Experiment templates)
|
|
53
|
-
- Sanity agent toolkit (when Sanity is selected)
|
|
54
|
-
|
|
55
|
-
For Claude Code + Sanity, it also registers the Sanity MCP server automatically.
|
|
56
|
-
|
|
57
|
-
## Project Structure
|
|
58
|
-
|
|
59
|
-
Single TypeScript package published as `bsmnt` on npm:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
src/
|
|
63
|
-
├── index.ts # Commander program, prompts, routing
|
|
64
|
-
├── paths.ts # Centralized path resolution
|
|
65
|
-
├── configs/animations.ts # GSAP / Motion dependency configs
|
|
66
|
-
├── helpers/
|
|
67
|
-
│ ├── create/ # Project creation pipeline
|
|
68
|
-
│ ├── integrate/ # CMS integration injection
|
|
69
|
-
│ │ └── sanity/ # Sanity files, config, mergers
|
|
70
|
-
│ └── add/ # Hook injection
|
|
71
|
-
└── utils/ # detect-project, format-results
|
|
72
|
-
templates/ # Standalone project templates
|
|
73
|
-
template-hooks/ # Reusable React hooks
|
|
74
|
-
plugins/ # Biome linting rules (Grit patterns)
|
|
29
|
+
npx bsmnt
|
|
30
|
+
bunx bsmnt
|
|
75
31
|
```
|
|
76
32
|
|
|
77
|
-
|
|
33
|
+
Install globally:
|
|
78
34
|
|
|
79
35
|
```bash
|
|
80
36
|
npm install -g bsmnt
|
|
81
37
|
```
|
|
82
38
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
bun install
|
|
87
|
-
npm link .
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Release Channels
|
|
91
|
-
|
|
92
|
-
This repo follows a two-channel release model similar to the Next.js stable/canary approach, while keeping Changesets as the version source of truth.
|
|
93
|
-
|
|
94
|
-
- `latest` (stable): production releases from the Changesets release PR flow.
|
|
95
|
-
- `canary`: snapshot prereleases from `main` under npm dist-tag `canary` triggered manually.
|
|
96
|
-
|
|
97
|
-
Install stable:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
npm install -g bsmnt@latest
|
|
101
|
-
```
|
|
39
|
+
## Usage
|
|
102
40
|
|
|
103
|
-
|
|
41
|
+
Create a new project:
|
|
104
42
|
|
|
105
43
|
```bash
|
|
106
|
-
|
|
44
|
+
bsmnt
|
|
45
|
+
npx bsmnt
|
|
46
|
+
bunx bsmnt
|
|
107
47
|
```
|
|
108
48
|
|
|
109
|
-
|
|
49
|
+
Add Sanity to an existing project:
|
|
110
50
|
|
|
111
51
|
```bash
|
|
112
|
-
|
|
52
|
+
bsmnt integrate --sanity
|
|
53
|
+
npx bsmnt integrate --sanity
|
|
54
|
+
bunx bsmnt integrate --sanity
|
|
113
55
|
```
|
|
114
56
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
1. Add a changeset in your feature PR (`bun run changeset`).
|
|
118
|
-
2. Merge PR(s) into `main`.
|
|
119
|
-
3. GitHub Actions updates/opens the release PR with version/changelog changes.
|
|
120
|
-
4. Merge that release PR to publish to npm `latest`.
|
|
121
|
-
|
|
122
|
-
How to trigger canary releases:
|
|
123
|
-
|
|
124
|
-
1. Add a changeset in your feature PR (`bun run changeset`).
|
|
125
|
-
2. Merge the PR into `main`.
|
|
126
|
-
3. In GitHub Actions, run `Canary Release` with `workflow_dispatch` on the `main` branch.
|
|
127
|
-
4. The workflow publishes snapshot builds to npm tag `canary` when pending changesets exist.
|
|
128
|
-
|
|
129
|
-
## Usage
|
|
130
|
-
|
|
131
|
-
Interactive mode — answer prompts step by step:
|
|
57
|
+
Add hooks to an existing project:
|
|
132
58
|
|
|
133
59
|
```bash
|
|
134
|
-
bsmnt
|
|
60
|
+
bsmnt add
|
|
61
|
+
npx bsmnt add
|
|
62
|
+
bunx bsmnt add
|
|
135
63
|
```
|
|
136
64
|
|
|
137
65
|
Skip prompts with flags:
|
|
@@ -140,64 +68,74 @@ Skip prompts with flags:
|
|
|
140
68
|
bsmnt create my-app --webgpu --sanity --gsap --claude --no-hooks
|
|
141
69
|
```
|
|
142
70
|
|
|
143
|
-
|
|
71
|
+
## Command Summary
|
|
144
72
|
|
|
145
73
|
```bash
|
|
74
|
+
bsmnt
|
|
75
|
+
bsmnt create [project-name]
|
|
146
76
|
bsmnt integrate --sanity
|
|
77
|
+
bsmnt add
|
|
78
|
+
bsmnt --help
|
|
147
79
|
```
|
|
148
80
|
|
|
149
|
-
##
|
|
81
|
+
## Options
|
|
150
82
|
|
|
151
|
-
|
|
152
|
-
bsmnt [command]
|
|
83
|
+
### Global
|
|
153
84
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
85
|
+
| Option | Description |
|
|
86
|
+
| --- | --- |
|
|
87
|
+
| `-h, --help` | Show help |
|
|
88
|
+
| `-V, --version` | Show the CLI version |
|
|
158
89
|
|
|
159
|
-
|
|
160
|
-
-d, --default Next.js starter
|
|
161
|
-
--webgpu Three.js/WebGPU starter
|
|
162
|
-
--experiment Creative coding
|
|
90
|
+
### `create`
|
|
163
91
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
92
|
+
| Option | Description |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| `-d, --default` | Use the default template |
|
|
95
|
+
| `--webgpu` | Use the WebGPU template |
|
|
96
|
+
| `--webgl` | Deprecated alias for `--webgpu` |
|
|
97
|
+
| `--experiment` | Use the experiment template |
|
|
98
|
+
| `--sanity` | Add Sanity |
|
|
99
|
+
| `--no-cms` | Skip CMS setup |
|
|
100
|
+
| `--gsap` | Use GSAP |
|
|
101
|
+
| `--motion` | Use Motion |
|
|
102
|
+
| `--no-animation` | Skip animation setup |
|
|
103
|
+
| `--claude` | Set up Claude Code |
|
|
104
|
+
| `--opencode` | Set up OpenCode |
|
|
105
|
+
| `--cursor` | Set up Cursor |
|
|
106
|
+
| `--codex` | Set up Codex |
|
|
107
|
+
| `--gemini` | Set up Gemini CLI |
|
|
108
|
+
| `--no-agent` | Skip agent setup |
|
|
109
|
+
| `--no-hooks` | Skip hook selection |
|
|
167
110
|
|
|
168
|
-
|
|
169
|
-
--gsap GSAP
|
|
170
|
-
--motion Framer Motion
|
|
171
|
-
--no-animation No animation library
|
|
111
|
+
### `integrate`
|
|
172
112
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
113
|
+
| Option | Description |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| `--sanity` | Add Sanity to the current project |
|
|
176
116
|
|
|
177
|
-
|
|
178
|
-
--no-hooks Skip hook selection
|
|
117
|
+
### `add`
|
|
179
118
|
|
|
180
|
-
|
|
181
|
-
-h, --help Show help
|
|
182
|
-
```
|
|
119
|
+
No command-specific flags currently.
|
|
183
120
|
|
|
184
|
-
##
|
|
121
|
+
## Templates
|
|
185
122
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
bun typecheck # Type check with tsgo
|
|
192
|
-
bun generate # Scaffold components/hooks
|
|
193
|
-
bun analyze # Bundle size analysis
|
|
194
|
-
```
|
|
123
|
+
- Default
|
|
124
|
+
- WebGPU
|
|
125
|
+
- Experiment
|
|
126
|
+
|
|
127
|
+
## Included Features
|
|
195
128
|
|
|
196
|
-
|
|
129
|
+
- Starter templates
|
|
130
|
+
- Optional Sanity integration
|
|
131
|
+
- Optional hooks
|
|
132
|
+
- Optional agent setup
|
|
133
|
+
|
|
134
|
+
## Local Development
|
|
197
135
|
|
|
198
136
|
```bash
|
|
199
|
-
bun
|
|
200
|
-
|
|
137
|
+
bun install
|
|
138
|
+
npm link .
|
|
201
139
|
```
|
|
202
140
|
|
|
203
141
|
## License
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills configuration manifest.
|
|
3
|
+
* Defines the curated pack of AI agent skills and supported agent targets.
|
|
4
|
+
*/
|
|
5
|
+
interface SkillDefinition {
|
|
6
|
+
/** Human-readable display name. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** The skill identifier used by the `skills` CLI. */
|
|
9
|
+
skillName: string;
|
|
10
|
+
/** The GitHub owner/repo (or registry path) the skill is sourced from. */
|
|
11
|
+
source: string;
|
|
12
|
+
/** Short description shown during selection prompts. */
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
/** Curated pack of skills installed by default. */
|
|
16
|
+
export declare const BASEMENT_SKILLS: readonly SkillDefinition[];
|
|
17
|
+
/** An AI coding agent that skills can be installed for. */
|
|
18
|
+
interface AgentOption {
|
|
19
|
+
/** Display title shown in prompts. */
|
|
20
|
+
title: string;
|
|
21
|
+
/** Machine value used in config and CLI flags. */
|
|
22
|
+
value: string;
|
|
23
|
+
}
|
|
24
|
+
/** Agents the CLI supports when installing skills. */
|
|
25
|
+
export declare const SUPPORTED_AGENTS: readonly AgentOption[];
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/configs/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,UAAU,eAAe;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,mDAAmD;AACnD,eAAO,MAAM,eAAe,EAAE,SAAS,eAAe,EAAyC,CAAC;AAEhG,2DAA2D;AAC3D,UAAU,WAAW;IACpB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACd;AAED,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EAOzC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills configuration manifest.
|
|
3
|
+
* Defines the curated pack of AI agent skills and supported agent targets.
|
|
4
|
+
*/
|
|
5
|
+
/** A single skill that can be installed into a project. */
|
|
6
|
+
import skills from "./skills.json" with { type: "json" };
|
|
7
|
+
/** Curated pack of skills installed by default. */
|
|
8
|
+
export const BASEMENT_SKILLS = skills;
|
|
9
|
+
/** Agents the CLI supports when installing skills. */
|
|
10
|
+
export const SUPPORTED_AGENTS = [
|
|
11
|
+
{ title: "Claude Code", value: "claude-code" },
|
|
12
|
+
{ title: "Cursor", value: "cursor" },
|
|
13
|
+
{ title: "OpenCode", value: "opencode" },
|
|
14
|
+
{ title: "Gemini CLI", value: "gemini-cli" },
|
|
15
|
+
{ title: "Cline", value: "cline" },
|
|
16
|
+
{ title: "Codex", value: "codex" },
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/configs/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2DAA2D;AAC3D,OAAO,MAAM,MAAM,eAAe,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAazD,mDAAmD;AACnD,MAAM,CAAC,MAAM,eAAe,GAA+B,MAAoC,CAAC;AAUhG,sDAAsD;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACvD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IAC5C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CACzB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "React Best Practices",
|
|
4
|
+
"skillName": "vercel-react-best-practices",
|
|
5
|
+
"source": "vercel-labs/agent-skills",
|
|
6
|
+
"description": "React/Next.js performance patterns from Vercel"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "Web Design Guidelines",
|
|
10
|
+
"skillName": "web-design-guidelines",
|
|
11
|
+
"source": "vercel-labs/agent-skills",
|
|
12
|
+
"description": "Web design and UI guidelines"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "Frontend Design",
|
|
16
|
+
"skillName": "frontend-design",
|
|
17
|
+
"source": "anthropics/skills",
|
|
18
|
+
"description": "Production-grade frontend interface patterns"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "Next.js Best Practices",
|
|
22
|
+
"skillName": "next-best-practices",
|
|
23
|
+
"source": "vercel-labs/next-skills",
|
|
24
|
+
"description": "Next.js-specific best practices"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../../../src/helpers/add/hooks-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iEAAiE;AACjE,UAAU,aAAa;IACtB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,YAAY,EAAE,aAAa,CAAC;IAC5B,uDAAuD;IACvD,eAAe,EAAE,aAAa,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,
|
|
1
|
+
{"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../../../src/helpers/add/hooks-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iEAAiE;AACjE,UAAU,aAAa;IACtB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IAC1B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,YAAY,EAAE,aAAa,CAAC;IAC5B,uDAAuD;IACvD,eAAe,EAAE,aAAa,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EAyBnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../../../src/helpers/add/hooks-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,CAAC,MAAM,WAAW,GAA0B;IACjD;QACC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE;YACb,WAAW,EAAE,UAAU;SACvB;QACD,eAAe,EAAE,EAAE;KACnB;IACD;QACC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE;YACb,YAAY,EAAE,QAAQ;YACtB,qBAAqB,EAAE,QAAQ;YAC/B,OAAO,EAAE,QAAQ;SACjB;QACD,eAAe,EAAE,EAAE;KACnB;IACD;QACC,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,8BAA8B;QACpC,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;KACnB;
|
|
1
|
+
{"version":3,"file":"hooks-config.js","sourceRoot":"","sources":["../../../src/helpers/add/hooks-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,MAAM,CAAC,MAAM,WAAW,GAA0B;IACjD;QACC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE;YACb,WAAW,EAAE,UAAU;SACvB;QACD,eAAe,EAAE,EAAE;KACnB;IACD;QACC,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE;YACb,YAAY,EAAE,QAAQ;YACtB,qBAAqB,EAAE,QAAQ;YAC/B,OAAO,EAAE,QAAQ;SACjB;QACD,eAAe,EAAE,EAAE;KACnB;IACD;QACC,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,8BAA8B;QACpC,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;KACnB;CACQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-agent.d.ts","sourceRoot":"","sources":["../../../src/helpers/create/setup-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup-agent.d.ts","sourceRoot":"","sources":["../../../src/helpers/create/setup-agent.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAClB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AAgBZ,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,sEAAsE;IACtE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,gEAAgE;IAChE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import fs from "fs-extra";
|
|
4
|
+
import { BASEMENT_SKILLS } from "../../configs/skills.js";
|
|
4
5
|
const AGENT_CONFIG = {
|
|
5
6
|
claude: { agentArg: "claude-code", agentFolder: ".claude" },
|
|
6
7
|
opencode: { agentArg: "opencode", agentFolder: ".opencode" },
|
|
@@ -22,6 +23,7 @@ export async function setupAgent(targetDir, options) {
|
|
|
22
23
|
const selectedAgents = [...new Set(options.agents)];
|
|
23
24
|
if (selectedAgents.length === 0)
|
|
24
25
|
return;
|
|
26
|
+
// Create skills directories for each agent
|
|
25
27
|
for (const agent of selectedAgents) {
|
|
26
28
|
const { agentFolder } = AGENT_CONFIG[agent];
|
|
27
29
|
const skillsPath = path.join(targetDir, agentFolder, "skills");
|
|
@@ -35,13 +37,21 @@ export async function setupAgent(targetDir, options) {
|
|
|
35
37
|
"next-experiments",
|
|
36
38
|
]).has(options.templateType ?? "");
|
|
37
39
|
const cms = options.cms && options.cms !== "none" ? options.cms : null;
|
|
40
|
+
// Group curated skills by source for batch installation
|
|
41
|
+
const grouped = new Map();
|
|
42
|
+
for (const skill of BASEMENT_SKILLS) {
|
|
43
|
+
const existing = grouped.get(skill.source) ?? [];
|
|
44
|
+
existing.push(skill.skillName);
|
|
45
|
+
grouped.set(skill.source, existing);
|
|
46
|
+
}
|
|
38
47
|
for (const agent of selectedAgents) {
|
|
39
48
|
const { agentArg } = AGENT_CONFIG[agent];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
// Build commands from the shared config
|
|
50
|
+
const skillsCommands = [];
|
|
51
|
+
for (const [source, skills] of grouped) {
|
|
52
|
+
const skillFlags = skills.map((s) => `--skill ${s}`).join(" ");
|
|
53
|
+
skillsCommands.push(`bunx skills add ${source} ${skillFlags} -a ${agentArg} -y`);
|
|
54
|
+
}
|
|
45
55
|
if (installWebgpuSkill) {
|
|
46
56
|
skillsCommands.push(`bunx skills add https://github.com/dgreenheck/webgpu-claude-skill --skill webgpu-threejs-tsl -a ${agentArg} -y`);
|
|
47
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../../src/helpers/create/setup-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-agent.js","sourceRoot":"","sources":["../../../src/helpers/create/setup-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-config.d.ts","sourceRoot":"","sources":["../../../src/helpers/integrate/merge-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACzB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-config.d.ts","sourceRoot":"","sources":["../../../src/helpers/integrate/merge-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACzB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC;AA8B/B;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,OAAO,CAE1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-config.js","sourceRoot":"","sources":["../../../src/helpers/integrate/merge-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,UAAU,GAA+B;IAC9C,MAAM,EAAE;QACP,UAAU,EAAE;YACX,gBAAgB;YAChB,gBAAgB;YAChB,uCAAuC;SACvC;QAED,aAAa,EAAE;YACd,yBAAyB;YACzB,4BAA4B;YAC5B,oBAAoB;YACpB,oBAAoB;YACpB,YAAY;YACZ,cAAc;YACd,UAAU;YACV,gBAAgB;YAChB,uBAAuB;YACvB,wCAAwC;YACxC,8BAA8B;YAC9B,gCAAgC;YAChC,4BAA4B;YAC5B,UAAU;SACV;KACD;CACD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAQ,UAAwC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,OAAO,GAAG,IAAI,UAAU,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"merge-config.js","sourceRoot":"","sources":["../../../src/helpers/integrate/merge-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,UAAU,GAA+B;IAC9C,MAAM,EAAE;QACP,UAAU,EAAE;YACX,gBAAgB;YAChB,gBAAgB;YAChB,uCAAuC;SACvC;QAED,aAAa,EAAE;YACd,yBAAyB;YACzB,4BAA4B;YAC5B,oBAAoB;YACpB,oBAAoB;YACpB,YAAY;YACZ,cAAc;YACd,UAAU;YACV,gBAAgB;YAChB,uBAAuB;YACvB,uBAAuB;YACvB,wCAAwC;YACxC,8BAA8B;YAC9B,gCAAgC;YAChC,4BAA4B;YAC5B,UAAU;SACV;KACD;CACD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAQ,UAAwC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,OAAO,GAAG,IAAI,UAAU,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/helpers/integrate/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/helpers/integrate/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,uBAuD1B,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export const sanityConfig = {
|
|
6
6
|
name: "sanity",
|
|
7
7
|
dependencies: {
|
|
8
|
+
"@clack/prompts": "^1.1.0",
|
|
8
9
|
"@portabletext/markdown": "^1.1.3",
|
|
9
10
|
"@portabletext/types": "^2.0.13",
|
|
10
11
|
"@sanity/asset-utils": "^2.3.0",
|
|
@@ -13,14 +14,18 @@ export const sanityConfig = {
|
|
|
13
14
|
"@sanity/vision": "^5.7.0",
|
|
14
15
|
"next-sanity": "^12.0.14",
|
|
15
16
|
sanity: "^5.6.0",
|
|
17
|
+
"sanity-plugin-media": "^2.3.0",
|
|
18
|
+
},
|
|
19
|
+
devDependencies: {
|
|
20
|
+
"@clack/prompts": "^0.11.0",
|
|
21
|
+
"schema-dts": "^2.0.0",
|
|
16
22
|
},
|
|
17
|
-
devDependencies: {},
|
|
18
23
|
scripts: {
|
|
19
24
|
"sanity:extract": "cd lib/integrations/sanity && bun --env-file ../../../.env.local sanity schema extract",
|
|
20
25
|
"sanity:typegen": "cd lib/integrations/sanity && bun --env-file ../../../.env.local sanity schema extract && bun --env-file ../../../.env.local sanity typegen generate && bun biome check --write --unsafe",
|
|
21
26
|
predev: "bun run sanity:typegen",
|
|
22
27
|
dev: "bun ./lib/scripts/dev.ts",
|
|
23
|
-
prebuild: "bun run sanity:typegen
|
|
28
|
+
prebuild: "bun run sanity:typegen",
|
|
24
29
|
build: "next build",
|
|
25
30
|
},
|
|
26
31
|
additivePaths: [
|
|
@@ -32,6 +37,7 @@ export const sanityConfig = {
|
|
|
32
37
|
"app/api/blog",
|
|
33
38
|
"app/blog",
|
|
34
39
|
"app/sitemap.md",
|
|
40
|
+
"lib/utils/json-ld.tsx",
|
|
35
41
|
"lib/utils/metadata.ts",
|
|
36
42
|
"lib/utils/portable-text-to-markdown.ts",
|
|
37
43
|
"lib/scripts/generate-page.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/helpers/integrate/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,QAAQ;QAC1B,aAAa,EAAE,UAAU;QACzB,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/helpers/integrate/sanity/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,YAAY,GAA4B;IACpD,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE;QACb,gBAAgB,EAAE,QAAQ;QAC1B,wBAAwB,EAAE,QAAQ;QAClC,qBAAqB,EAAE,SAAS;QAChC,qBAAqB,EAAE,QAAQ;QAC/B,mBAAmB,EAAE,QAAQ;QAC7B,wBAAwB,EAAE,QAAQ;QAClC,gBAAgB,EAAE,QAAQ;QAC1B,aAAa,EAAE,UAAU;QACzB,MAAM,EAAE,QAAQ;QAChB,qBAAqB,EAAE,QAAQ;KAC/B;IAED,eAAe,EAAE;QAChB,gBAAgB,EAAE,SAAS;QAC3B,YAAY,EAAE,QAAQ;KACtB;IAED,OAAO,EAAE;QACR,gBAAgB,EACf,wFAAwF;QACzF,gBAAgB,EACf,0LAA0L;QAC3L,MAAM,EAAE,wBAAwB;QAChC,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,YAAY;KACnB;IAED,aAAa,EAAE;QACd,yBAAyB;QACzB,4BAA4B;QAC5B,oBAAoB;QACpB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,gBAAgB;QAChB,uBAAuB;QACvB,uBAAuB;QACvB,wCAAwC;QACxC,8BAA8B;QAC9B,gCAAgC;QAChC,4BAA4B;QAC5B,UAAU;KACV;IAED,UAAU,EAAE;QACX,gBAAgB;QAChB,gBAAgB;QAChB,uCAAuC;KACvC;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-merger.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/integrate/sanity/mergers/layout-merger.ts"],"names":[],"mappings":"AA2DA,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAChC,YAAY,EAAE,MAAM,EACpB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAE,kBAAuB,GAChD,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"layout-merger.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/integrate/sanity/mergers/layout-merger.ts"],"names":[],"mappings":"AA2DA,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAChC,YAAY,EAAE,MAAM,EACpB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAE,kBAAuB,GAChD,OAAO,CAAC,WAAW,CAAC,CA2JtB"}
|
|
@@ -71,18 +71,19 @@ export async function mergeLayout(templatePath, { targetDir, pathPrefix } = {})
|
|
|
71
71
|
content.includes("isSanityConfigured")) {
|
|
72
72
|
return { skipped: true, reason: "Already has Sanity integration" };
|
|
73
73
|
}
|
|
74
|
-
// 1. Add Sanity imports after
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
// 1. Add Sanity imports after the full top-level import section.
|
|
75
|
+
// This avoids corrupting multiline imports like:
|
|
76
|
+
// import {
|
|
77
|
+
// Foo,
|
|
78
|
+
// Bar,
|
|
79
|
+
// } from "baz";
|
|
80
|
+
const importSectionMatch = content.match(/^(?:import[\s\S]+?;\n)+/m);
|
|
81
|
+
if (importSectionMatch && importSectionMatch.index !== undefined) {
|
|
82
|
+
const insertPos = importSectionMatch.index + importSectionMatch[0].length;
|
|
83
|
+
content =
|
|
84
|
+
content.slice(0, insertPos) +
|
|
85
|
+
`${SANITY_IMPORTS}\n` +
|
|
86
|
+
content.slice(insertPos);
|
|
86
87
|
}
|
|
87
88
|
// 2. Ensure Suspense is imported from react
|
|
88
89
|
if (!content.match(/import\s+.*Suspense.*from\s+["']react["']/)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-merger.js","sourceRoot":"","sources":["../../../../../src/helpers/integrate/sanity/mergers/layout-merger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B;;;GAGG;AACH,MAAM,cAAc,GAAG;yEACkD,CAAC;AAE1E;;;GAGG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;CAS9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BhC,CAAC;AAaF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,YAAoB,EACpB,EAAE,SAAS,EAAE,UAAU,KAAyB,EAAE;IAElD,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvD,yCAAyC;IACzC,IACC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EACrC,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACpE,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"layout-merger.js","sourceRoot":"","sources":["../../../../../src/helpers/integrate/sanity/mergers/layout-merger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive flow to install the curated basement skills pack globally.
|
|
3
|
+
*
|
|
4
|
+
* 1. Detects which skills are already installed.
|
|
5
|
+
* 2. Shows a status overview (installed vs missing).
|
|
6
|
+
* 3. Prompts the user to select target agents.
|
|
7
|
+
* 4. Installs missing skills grouped by source repository.
|
|
8
|
+
*/
|
|
9
|
+
export declare function installSkills(): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/skills/index.ts"],"names":[],"mappings":"AAoEA;;;;;;;GAOG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA2FnD"}
|