@girardmedia/bootspring 2.5.0 → 2.5.1
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 +9 -403
- package/bin/bootspring.js +1 -96
- package/dist/cli/index.js +64302 -0
- package/dist/cli-launcher.js +92 -0
- package/dist/core/index.d.ts +2088 -5582
- package/dist/core/index.js +2 -0
- package/dist/core.js +21147 -5486
- package/dist/mcp/index.d.ts +357 -1
- package/dist/mcp/index.js +2 -0
- package/dist/mcp-server.js +51899 -1976
- package/package.json +27 -63
- package/scripts/postinstall.cjs +144 -0
- package/LICENSE +0 -29
- package/dist/cli/index.cjs +0 -20776
- package/generators/api-docs.js +0 -827
- package/generators/decisions.js +0 -655
- package/generators/generate.js +0 -595
- package/generators/health.js +0 -942
- package/generators/index.ts +0 -82
- package/generators/presets/full.js +0 -28
- package/generators/presets/index.js +0 -12
- package/generators/presets/minimal.js +0 -29
- package/generators/presets/standard.js +0 -28
- package/generators/questionnaire.js +0 -414
- package/generators/sections/advanced.js +0 -136
- package/generators/sections/ai.js +0 -106
- package/generators/sections/auth.js +0 -89
- package/generators/sections/backend.js +0 -146
- package/generators/sections/business.js +0 -118
- package/generators/sections/content.js +0 -300
- package/generators/sections/deployment.js +0 -139
- package/generators/sections/features.js +0 -122
- package/generators/sections/frontend.js +0 -118
- package/generators/sections/identity.js +0 -76
- package/generators/sections/index.js +0 -40
- package/generators/sections/instructions.js +0 -146
- package/generators/sections/payments.js +0 -104
- package/generators/sections/plugins.js +0 -142
- package/generators/sections/pre-build.js +0 -130
- package/generators/sections/security.js +0 -127
- package/generators/sections/technical.js +0 -171
- package/generators/sections/testing.js +0 -125
- package/generators/sections/workflow.js +0 -104
- package/generators/sprint.js +0 -675
- package/generators/templates/agents.template.js +0 -199
- package/generators/templates/assistant-context.template.js +0 -83
- package/generators/templates/build-planning.template.js +0 -708
- package/generators/templates/claude.template.js +0 -379
- package/generators/templates/content.template.js +0 -819
- package/generators/templates/index.js +0 -16
- package/generators/templates/planning.template.js +0 -515
- package/generators/templates/seed.template.js +0 -109
- package/generators/visual-doc-generator.js +0 -910
- package/scripts/postinstall.js +0 -197
- /package/{claude-commands → assets/claude-commands}/agent.md +0 -0
- /package/{claude-commands → assets/claude-commands}/bs.md +0 -0
- /package/{claude-commands → assets/claude-commands}/build.md +0 -0
- /package/{claude-commands → assets/claude-commands}/skill.md +0 -0
- /package/{claude-commands → assets/claude-commands}/todo.md +0 -0
package/README.md
CHANGED
|
@@ -1,408 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Monorepo CLI Authority
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`monorepo/apps/cli/` is the authoritative Bootspring CLI source and npm package.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://github.com/Girard-Media/bootspring/actions/workflows/ci.yml)
|
|
5
|
+
## Runtime Path
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
`bin/bootspring.js` -> `dist/cli-launcher.js` -> `dist/cli/index.js`
|
|
9
8
|
|
|
10
|
-
##
|
|
9
|
+
## Rules
|
|
11
10
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- **Specialized Agents** - 36 expert agents for database, security, frontend, backend, and more
|
|
17
|
-
- **MCP Integration** - Native Model Context Protocol server for seamless AI assistant integration
|
|
18
|
-
- **Entitlement-Ready Skill Catalog** - Built-in patterns public, curated external catalog policy-gated
|
|
19
|
-
- **Plugin System** - Extensible architecture for auth, payments, database, testing, security
|
|
20
|
-
- **Real-time Dashboard** - Visual project tracking with live updates
|
|
21
|
-
- **Quality Gates** - Automated code quality and security checks
|
|
22
|
-
- **Todo Management** - Simple, powerful task tracking
|
|
23
|
-
|
|
24
|
-
## Quick Start
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# Install globally
|
|
28
|
-
npm install -g @girardmedia/bootspring
|
|
29
|
-
|
|
30
|
-
# Start a new project from an idea
|
|
31
|
-
bootspring preseed start
|
|
32
|
-
bootspring seed synthesize
|
|
33
|
-
bootspring seed scaffold --preset=nextjs
|
|
34
|
-
|
|
35
|
-
# Or initialize in an existing project
|
|
36
|
-
bootspring init
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### New Project Workflow (Recommended)
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# 1. Capture your idea with preseed
|
|
43
|
-
bootspring preseed start
|
|
44
|
-
|
|
45
|
-
# 2. Convert preseed docs to SEED.md
|
|
46
|
-
bootspring seed synthesize
|
|
47
|
-
|
|
48
|
-
# 3. Scaffold your project
|
|
49
|
-
bootspring seed scaffold --preset=nextjs
|
|
50
|
-
|
|
51
|
-
# 4. Start development
|
|
52
|
-
npm install && npm run dev
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Authentication
|
|
56
|
-
|
|
57
|
-
Bootspring uses **browser-based device flow** authentication for security.
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# Login via browser (opens browser for authentication)
|
|
61
|
-
bootspring auth login
|
|
62
|
-
|
|
63
|
-
# View authentication and project status
|
|
64
|
-
bootspring auth status
|
|
65
|
-
|
|
66
|
-
# Logout from all projects
|
|
67
|
-
bootspring auth logout
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### How It Works
|
|
71
|
-
|
|
72
|
-
1. **Global credentials** are stored in `~/.bootspring/credentials.json`
|
|
73
|
-
2. **Each directory** is linked to a specific project via `.bootspring.json` (local secret state, git-ignored)
|
|
74
|
-
3. **Login opens your browser** to authenticate and select/create a project
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
# First login in a directory:
|
|
78
|
-
cd my-project
|
|
79
|
-
bootspring auth login
|
|
80
|
-
# → Opens browser → Sign in → Select project → Creates .bootspring.json
|
|
81
|
-
|
|
82
|
-
# Subsequent use:
|
|
83
|
-
bootspring auth login
|
|
84
|
-
# → "Already authenticated as user@example.com"
|
|
85
|
-
# → "Project: my-project (from .bootspring.json)"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Per-Directory Project Linking
|
|
89
|
-
|
|
90
|
-
Each directory can be linked to a different Bootspring project:
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
~/projects/frontend/ → "frontend-app" project
|
|
94
|
-
~/projects/backend/ → "backend-api" project
|
|
95
|
-
~/projects/mobile/ → "mobile-app" project
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Switch projects with:
|
|
99
|
-
```bash
|
|
100
|
-
bootspring switch my-other-project
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### Device Management
|
|
104
|
-
|
|
105
|
-
Each account has a device limit based on your subscription tier:
|
|
106
|
-
|
|
107
|
-
| Tier | Max Devices |
|
|
108
|
-
|------|-------------|
|
|
109
|
-
| Free | 1 |
|
|
110
|
-
| Pro | 3 |
|
|
111
|
-
| Team | 10 |
|
|
112
|
-
| Enterprise | 50 |
|
|
113
|
-
|
|
114
|
-
Your devices are automatically tracked when you login. If you hit your device limit, logout from another device or upgrade your plan.
|
|
115
|
-
|
|
116
|
-
## Tier Boundaries
|
|
117
|
-
|
|
118
|
-
Bootspring enforces plan boundaries across CLI, API, and MCP features:
|
|
119
|
-
|
|
120
|
-
| Tier | Included | Upgrade Boundary |
|
|
121
|
-
|------|----------|------------------|
|
|
122
|
-
| Free | Core CLI workflow, built-in skills, free workflow packs | Premium workflows, external skills in server mode, managed connectors |
|
|
123
|
-
| Pro | Premium workflow packs, external skills, managed connectors (pro catalog) | Team collaboration limits and team-only managed connectors |
|
|
124
|
-
| Team | Team collaboration features, higher limits, team-only managed connectors | Enterprise governance/SLA features |
|
|
125
|
-
| Enterprise | Highest limits, governance/compliance features, enterprise support | Custom contracts/add-ons |
|
|
126
|
-
|
|
127
|
-
Billing and current tier:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
bootspring billing status
|
|
131
|
-
bootspring billing upgrade
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Commands
|
|
135
|
-
|
|
136
|
-
### Getting Started
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
bootspring init # Initialize Bootspring in your project
|
|
140
|
-
bootspring generate # Generate/regenerate CLAUDE.md context
|
|
141
|
-
bootspring dashboard # Start the real-time dashboard
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### Preseed (Idea Capture)
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
bootspring preseed start # Smart entry point - recommended first command
|
|
148
|
-
bootspring preseed setup # Create context folders including drop zone
|
|
149
|
-
bootspring preseed init # Interactive document generation wizard
|
|
150
|
-
bootspring preseed workflow start # Begin document approval workflow
|
|
151
|
-
bootspring preseed pull/push # Sync with cloud dashboard
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Seed (Project Scaffolding)
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
bootspring seed synthesize # Create SEED.md from preseed documents
|
|
158
|
-
bootspring seed scaffold --preset=nextjs # Generate project from preset
|
|
159
|
-
bootspring seed init --preset=startup # Interactive project config
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Daily Workflow
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
bootspring todo add "task" # Add a new todo
|
|
166
|
-
bootspring todo list # List all todos
|
|
167
|
-
bootspring todo done 1 # Mark todo #1 as complete
|
|
168
|
-
bootspring context # View project context summary
|
|
169
|
-
bootspring context validate # Validate project setup
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### Intelligence
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
bootspring agent list # List available agents
|
|
176
|
-
bootspring agent show <name> # Show agent details
|
|
177
|
-
bootspring agent invoke <n> # Get specialized help (MCP enhanced)
|
|
178
|
-
bootspring skill search <q> # Find code patterns
|
|
179
|
-
bootspring skill show <name> # View skill content (MCP enhanced)
|
|
180
|
-
bootspring skill list --external # Include curated external catalog
|
|
181
|
-
bootspring orchestrator workflows # List workflows and premium packs
|
|
182
|
-
bootspring telemetry status # Inspect local telemetry pipeline
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
> **Note:** Commands marked "MCP enhanced" provide full functionality through MCP integration but offer degraded (but useful) CLI mode. Run `bootspring mcp start` to enable full features.
|
|
186
|
-
|
|
187
|
-
Premium workflow packs:
|
|
188
|
-
|
|
189
|
-
- `launch-pack` (pro)
|
|
190
|
-
- `reliability-pack` (pro)
|
|
191
|
-
- `growth-pack` (pro)
|
|
192
|
-
|
|
193
|
-
Workflow telemetry (stored locally in `.bootspring/telemetry/events.jsonl`):
|
|
194
|
-
|
|
195
|
-
- `workflow_started`
|
|
196
|
-
- `workflow_step_advanced`
|
|
197
|
-
- `workflow_checkpoint_completed`
|
|
198
|
-
- `pack_signal_checkpoint`
|
|
199
|
-
- `workflow_completed`
|
|
200
|
-
- `conversion.time_to_first_success`
|
|
201
|
-
- `conversion.first_week_activation`
|
|
202
|
-
|
|
203
|
-
### External Skill Entitlements
|
|
204
|
-
|
|
205
|
-
Built-in skills are always available. Curated external skills (`external/*`) are policy-gated via a shared entitlement layer:
|
|
206
|
-
|
|
207
|
-
- Local mode (default): external skills are available when present.
|
|
208
|
-
- Server mode: external skills require entitlement.
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
# Server-side policy mode (for hosted API/MCP)
|
|
212
|
-
export BOOTSPRING_SKILL_ACCESS_MODE=server
|
|
213
|
-
|
|
214
|
-
# Grant entitlement in server mode
|
|
215
|
-
export BOOTSPRING_SKILLS_ENTITLED=true
|
|
216
|
-
# or
|
|
217
|
-
export BOOTSPRING_USER_TIER=pro
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
Remote premium delivery (cache-first):
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
bootspring skill sync \
|
|
224
|
-
--manifest-url https://api.bootspring.com/skills/manifest.json \
|
|
225
|
-
--content-base-url https://api.bootspring.com/skills/content
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
Recommended for production:
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
export BOOTSPRING_SKILL_MANIFEST_REQUIRE_SIGNATURE=true
|
|
232
|
-
export BOOTSPRING_SKILL_MANIFEST_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----..."
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### PRD Markdown
|
|
236
|
-
|
|
237
|
-
`intelligence/prd` supports both hand-written and exported story headings:
|
|
238
|
-
|
|
239
|
-
- `## Story 1: Title`
|
|
240
|
-
- `### [ ] Title` (export format from `toMarkdown()`)
|
|
241
|
-
|
|
242
|
-
Top-level description text should appear after the `# Title` and before story headings.
|
|
243
|
-
|
|
244
|
-
### Quality & Plugins
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
bootspring quality pre-commit # Run pre-commit checks
|
|
248
|
-
bootspring plugin list # List available plugins
|
|
249
|
-
bootspring plugin enable auth # Enable a plugin
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Agents
|
|
253
|
-
|
|
254
|
-
Bootspring includes 12+ specialized agents:
|
|
255
|
-
|
|
256
|
-
| Agent | Expertise |
|
|
257
|
-
|-------|-----------|
|
|
258
|
-
| `database-expert` | SQL, Prisma, PostgreSQL, migrations |
|
|
259
|
-
| `security-expert` | OWASP, authentication, authorization |
|
|
260
|
-
| `frontend-expert` | React, Next.js, Tailwind, components |
|
|
261
|
-
| `backend-expert` | Node.js, APIs, server actions |
|
|
262
|
-
| `api-expert` | REST, GraphQL, tRPC, webhooks |
|
|
263
|
-
| `testing-expert` | Vitest, Jest, Playwright, coverage |
|
|
264
|
-
| `performance-expert` | Optimization, caching, profiling |
|
|
265
|
-
| `devops-expert` | CI/CD, Docker, deployment |
|
|
266
|
-
| `ui-ux-expert` | Design systems, accessibility |
|
|
267
|
-
| `architecture-expert` | System design, patterns |
|
|
268
|
-
| `code-review-expert` | Code quality, best practices |
|
|
269
|
-
| `vercel-expert` | Vercel, serverless, edge |
|
|
270
|
-
|
|
271
|
-
## Configuration
|
|
272
|
-
|
|
273
|
-
Create `bootspring.config.js` in your project root:
|
|
274
|
-
|
|
275
|
-
```javascript
|
|
276
|
-
module.exports = {
|
|
277
|
-
project: {
|
|
278
|
-
name: 'My App',
|
|
279
|
-
description: 'A modern web application'
|
|
280
|
-
},
|
|
281
|
-
stack: {
|
|
282
|
-
framework: 'nextjs',
|
|
283
|
-
language: 'typescript',
|
|
284
|
-
database: 'postgresql',
|
|
285
|
-
hosting: 'vercel'
|
|
286
|
-
},
|
|
287
|
-
plugins: {
|
|
288
|
-
auth: { enabled: true, provider: 'clerk' },
|
|
289
|
-
payments: { enabled: true, provider: 'stripe' },
|
|
290
|
-
database: { enabled: true, provider: 'prisma' },
|
|
291
|
-
testing: { enabled: true, provider: 'vitest' },
|
|
292
|
-
security: { enabled: true }
|
|
293
|
-
},
|
|
294
|
-
dashboard: {
|
|
295
|
-
port: 3456
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
## MCP Integration
|
|
301
|
-
|
|
302
|
-
Bootspring works as an MCP server for Claude Code and other compatible AI assistants.
|
|
303
|
-
|
|
304
|
-
Configure in `.mcp.json`:
|
|
305
|
-
|
|
306
|
-
```json
|
|
307
|
-
{
|
|
308
|
-
"mcpServers": {
|
|
309
|
-
"bootspring": {
|
|
310
|
-
"command": "npx",
|
|
311
|
-
"args": ["@girardmedia/bootspring", "mcp"],
|
|
312
|
-
"env": {}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
Available MCP tools:
|
|
319
|
-
- `bootspring_context` - Show/validate project context
|
|
320
|
-
- `bootspring_agent` - Invoke specialized agents
|
|
321
|
-
- `bootspring_capabilities` - Discover client-adaptive capabilities by tier/mode
|
|
322
|
-
- `bootspring_skill` - Retrieve code patterns
|
|
323
|
-
- `bootspring_telemetry` - List/upload/clear telemetry events
|
|
324
|
-
- `bootspring_todo` - Manage todo items
|
|
325
|
-
- `bootspring_task` - Manage complex tasks
|
|
326
|
-
- `bootspring_quality` - Run quality gates
|
|
327
|
-
- `bootspring_generate` - Regenerate context
|
|
328
|
-
- `bootspring_dashboard` - Control dashboard
|
|
329
|
-
|
|
330
|
-
## Project Structure
|
|
331
|
-
|
|
332
|
-
```
|
|
333
|
-
your-project/
|
|
334
|
-
├── bootspring.config.js # Configuration
|
|
335
|
-
├── CLAUDE.md # Generated AI context
|
|
336
|
-
├── todo.md # Task tracking
|
|
337
|
-
├── .mcp.json # MCP server config
|
|
338
|
-
└── ...
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
## Why Bootspring?
|
|
342
|
-
|
|
343
|
-
**Before Bootspring:**
|
|
344
|
-
- Manual context management for AI assistants
|
|
345
|
-
- Inconsistent code patterns across projects
|
|
346
|
-
- No specialized expertise on demand
|
|
347
|
-
- Manual quality checks
|
|
348
|
-
|
|
349
|
-
**With Bootspring:**
|
|
350
|
-
- Automatic context generation and updates
|
|
351
|
-
- Battle-tested code patterns via skills
|
|
352
|
-
- 12+ specialized agents at your fingertips
|
|
353
|
-
- Automated quality gates
|
|
354
|
-
- Real-time project visibility
|
|
355
|
-
|
|
356
|
-
## Documentation
|
|
357
|
-
|
|
358
|
-
- [Quick Start](docs/QUICK_START.md)
|
|
359
|
-
- [Installation](docs/INSTALLATION.md)
|
|
360
|
-
- [First Project Tutorial](docs/FIRST_PROJECT.md)
|
|
361
|
-
- [Troubleshooting](docs/TROUBLESHOOTING.md)
|
|
362
|
-
- [FAQ](docs/FAQ.md)
|
|
363
|
-
- [Enterprise Guide](docs/ENTERPRISE.md)
|
|
364
|
-
- [Getting Started](https://bootspring.com/docs/getting-started)
|
|
365
|
-
- [Configuration](https://bootspring.com/docs/configuration)
|
|
366
|
-
- [Agents](https://bootspring.com/docs/agents)
|
|
367
|
-
- [Skills](https://bootspring.com/docs/skills)
|
|
368
|
-
- [Plugins](https://bootspring.com/docs/plugins)
|
|
369
|
-
- [MCP Integration](https://bootspring.com/docs/mcp)
|
|
370
|
-
- [Planning Workspace](planning/README.md)
|
|
371
|
-
- [MCP API Platform](docs/mcp-api-platform.md)
|
|
372
|
-
|
|
373
|
-
## Development
|
|
374
|
-
|
|
375
|
-
### Shared Database Schema
|
|
376
|
-
|
|
377
|
-
The Bootspring API server (`server/`) and the website (`bootspring-site/`) share a PostgreSQL database. The canonical schema is in `shared/db/schema.sql`.
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
# To make schema changes:
|
|
381
|
-
# 1. Edit the canonical schema
|
|
382
|
-
vim shared/db/schema.sql
|
|
383
|
-
|
|
384
|
-
# 2. Sync to both repos
|
|
385
|
-
npm run db:sync
|
|
386
|
-
|
|
387
|
-
# 3. Run server migration
|
|
388
|
-
cd server && npm run migrate
|
|
389
|
-
|
|
390
|
-
# 4. Run site migration
|
|
391
|
-
cd ../bootspring-site && npm run db:push
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
See `shared/db/README.md` for full documentation.
|
|
395
|
-
|
|
396
|
-
## Contributing
|
|
397
|
-
|
|
398
|
-
Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md).
|
|
399
|
-
|
|
400
|
-
## License
|
|
401
|
-
|
|
402
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
**Bootspring** - Bootstrap your development. Spring into production.
|
|
407
|
-
|
|
408
|
-
[Website](https://bootspring.com) · [Documentation](https://bootspring.com/docs) · [GitHub](https://github.com/Girard-Media/bootspring)
|
|
11
|
+
- Implement new CLI behavior here.
|
|
12
|
+
- Keep published launcher behavior in `monorepo/apps/cli/publish-shell/bootspring.ts`.
|
|
13
|
+
- Keep package-local publish assets here: `bin/`, `dist/`, `assets/`, and `scripts/postinstall.cjs`.
|
|
14
|
+
- Keep release docs, tests, and migration notes aligned with this folder as the CLI authority.
|
package/bin/bootspring.js
CHANGED
|
@@ -1,98 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Bootspring CLI bridge.
|
|
5
|
-
* Routes all commands through the v2 monorepo CLI (thin client).
|
|
6
|
-
* dist/core.js provides self-update only. No IP ships in this package.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const path = require('path');
|
|
10
|
-
const fs = require('fs');
|
|
11
|
-
const { spawn } = require('child_process');
|
|
12
|
-
|
|
13
|
-
const VERSION = require('../package.json').version;
|
|
14
|
-
const CLI_DIST = path.join(__dirname, '../dist/cli/index.cjs');
|
|
15
|
-
|
|
16
|
-
const C = {
|
|
17
|
-
reset: '\x1b[0m',
|
|
18
|
-
bold: '\x1b[1m',
|
|
19
|
-
dim: '\x1b[2m',
|
|
20
|
-
cyan: '\x1b[36m',
|
|
21
|
-
green: '\x1b[32m',
|
|
22
|
-
yellow: '\x1b[33m',
|
|
23
|
-
red: '\x1b[31m'
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const HELP_GROUPS = {
|
|
27
|
-
'Core': ['auth', 'init', 'project', 'switch', 'health', 'mcp', 'dashboard', 'context'],
|
|
28
|
-
'Build & Deploy': ['build', 'deploy', 'loop', 'quality', 'security', 'doctor', 'update'],
|
|
29
|
-
'Planning': ['plan', 'prd', 'preseed', 'preseed-start', 'preseed-from-codebase', 'seed', 'manager'],
|
|
30
|
-
'Agents & Skills': ['agent', 'skill', 'todo', 'billing', 'plugin'],
|
|
31
|
-
'Analysis': ['analyze', 'audit', 'monitor', 'metrics', 'validate', 'visualize'],
|
|
32
|
-
'Docs & Content': ['generate', 'content', 'docs'],
|
|
33
|
-
'Intelligence': ['learn', 'memory', 'suggest', 'orchestrator', 'watch'],
|
|
34
|
-
'Business': ['business', 'fundraise', 'legal', 'org'],
|
|
35
|
-
'Infrastructure': ['workspace', 'cloud-sync', 'github', 'onboard', 'checkpoint', 'setup'],
|
|
36
|
-
'Tools': ['log', 'mvp', 'task', 'telemetry']
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
function showHelp() {
|
|
40
|
-
console.log(`${C.cyan}${C.bold}⚡ Bootspring${C.reset} ${C.dim}v${VERSION}${C.reset}`);
|
|
41
|
-
console.log(`${C.dim}Development scaffolding with intelligence${C.reset}\n`);
|
|
42
|
-
console.log(`${C.bold}Usage:${C.reset} bootspring <command> [options]\n`);
|
|
43
|
-
|
|
44
|
-
for (const [group, cmds] of Object.entries(HELP_GROUPS)) {
|
|
45
|
-
console.log(`${C.bold}${group}:${C.reset} ${cmds.map(c => `${C.green}${c}${C.reset}`).join(', ')}`);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
console.log(`\n${C.dim}Run "bootspring <command> --help" for command details${C.reset}`);
|
|
49
|
-
console.log(`${C.dim}Docs: https://bootspring.com/docs${C.reset}\n`);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function runCli(args) {
|
|
53
|
-
if (!fs.existsSync(CLI_DIST)) {
|
|
54
|
-
console.error(`${C.red}Error: CLI build not found at ${CLI_DIST}${C.reset}`);
|
|
55
|
-
console.error(`${C.dim}Please run 'npm run build' first.${C.reset}`);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const child = spawn('node', [CLI_DIST, ...args], {
|
|
60
|
-
stdio: 'inherit',
|
|
61
|
-
env: { ...process.env, BOOTSPRING_BRIDGE: 'true' }
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
child.on('exit', (code) => {
|
|
65
|
-
process.exit(code || 0);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async function main() {
|
|
70
|
-
const args = process.argv.slice(2);
|
|
71
|
-
const command = args[0];
|
|
72
|
-
|
|
73
|
-
if (!command || command === '--help' || command === '-h' || command === 'help') {
|
|
74
|
-
showHelp();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (command === '--version' || command === '-v') {
|
|
79
|
-
console.log(`Bootspring v${VERSION}`);
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Self-update check (best-effort from thin-client core)
|
|
84
|
-
try {
|
|
85
|
-
const { selfUpdate } = require(path.resolve(__dirname, '../dist/core'));
|
|
86
|
-
selfUpdate.ensureLatestVersion(args);
|
|
87
|
-
} catch {
|
|
88
|
-
// Best-effort; do not block CLI on update failures.
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Route everything through the v2 monorepo CLI
|
|
92
|
-
runCli(args);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
main().catch((error) => {
|
|
96
|
-
console.error(`\n${C.red}Error: ${error.message}${C.reset}\n`);
|
|
97
|
-
process.exit(1);
|
|
98
|
-
});
|
|
3
|
+
require('../dist/cli-launcher.js');
|