@girardmedia/bootspring 2.2.0 → 2.3.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.
Files changed (50) hide show
  1. package/README.md +2 -2
  2. package/bin/bootspring.js +35 -96
  3. package/claude-commands/agent.md +34 -0
  4. package/claude-commands/bs.md +31 -0
  5. package/claude-commands/build.md +25 -0
  6. package/claude-commands/skill.md +31 -0
  7. package/claude-commands/todo.md +25 -0
  8. package/dist/cli/index.cjs +17808 -0
  9. package/dist/core/index.d.ts +5814 -0
  10. package/dist/core.js +5780 -0
  11. package/dist/mcp/index.d.ts +1 -0
  12. package/dist/mcp-server.js +2299 -0
  13. package/generators/api-docs.js +2 -2
  14. package/generators/decisions.js +3 -3
  15. package/generators/health.js +16 -16
  16. package/generators/sprint.js +2 -2
  17. package/package.json +27 -59
  18. package/core/api-client.d.ts +0 -69
  19. package/core/api-client.js +0 -1482
  20. package/core/auth.d.ts +0 -98
  21. package/core/auth.js +0 -737
  22. package/core/build-orchestrator.js +0 -508
  23. package/core/build-state.js +0 -612
  24. package/core/config.d.ts +0 -106
  25. package/core/config.js +0 -1328
  26. package/core/context-loader.js +0 -580
  27. package/core/context.d.ts +0 -61
  28. package/core/context.js +0 -327
  29. package/core/entitlements.d.ts +0 -70
  30. package/core/entitlements.js +0 -322
  31. package/core/index.d.ts +0 -53
  32. package/core/index.js +0 -62
  33. package/core/mcp-config.js +0 -115
  34. package/core/policies.d.ts +0 -43
  35. package/core/policies.js +0 -113
  36. package/core/policy-matrix.js +0 -303
  37. package/core/project-activity.js +0 -175
  38. package/core/redaction.d.ts +0 -5
  39. package/core/redaction.js +0 -63
  40. package/core/self-update.js +0 -259
  41. package/core/session.js +0 -353
  42. package/core/task-extractor.js +0 -1098
  43. package/core/telemetry.d.ts +0 -55
  44. package/core/telemetry.js +0 -617
  45. package/core/tier-enforcement.js +0 -928
  46. package/core/utils.d.ts +0 -90
  47. package/core/utils.js +0 -455
  48. package/core/validation.js +0 -572
  49. package/mcp/server.d.ts +0 -57
  50. package/mcp/server.js +0 -264
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Development scaffolding with intelligence
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/@girardmedia%2Fbootspring.svg)](https://www.npmjs.com/package/@girardmedia/bootspring)
6
- [![CI](https://github.com/bootspring/bootspring/actions/workflows/ci.yml/badge.svg)](https://github.com/bootspring/bootspring/actions/workflows/ci.yml)
6
+ [![CI](https://github.com/Girard-Media/bootspring/actions/workflows/ci.yml/badge.svg)](https://github.com/Girard-Media/bootspring/actions/workflows/ci.yml)
7
7
 
8
8
  Bootspring is an AI-powered development platform that provides intelligent context, specialized agents, and workflow automation for any MCP-compatible AI assistant.
9
9
 
@@ -404,4 +404,4 @@ MIT License - see [LICENSE](LICENSE) for details.
404
404
 
405
405
  **Bootspring** - Bootstrap your development. Spring into production.
406
406
 
407
- [Website](https://bootspring.com) · [Documentation](https://bootspring.com/docs) · [GitHub](https://github.com/bootspring/bootspring)
407
+ [Website](https://bootspring.com) · [Documentation](https://bootspring.com/docs) · [GitHub](https://github.com/Girard-Media/bootspring)
package/bin/bootspring.js CHANGED
@@ -1,16 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * Bootspring CLI Bridge
5
- * Routes commands to either the modern v2 monorepo CLI or legacy v1 handlers.
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.
6
7
  */
7
8
 
8
9
  const path = require('path');
9
10
  const fs = require('fs');
11
+ const { spawn } = require('child_process');
10
12
 
11
13
  const VERSION = require('../package.json').version;
12
- const MONOREPO_CLI_DIST = path.join(__dirname, '../monorepo/apps/cli/dist/index.js');
13
- const USE_V2 = process.env.BOOTSPRING_V2 === 'true' || process.argv.includes('--v2');
14
+ const CLI_DIST = path.join(__dirname, '../dist/cli/index.cjs');
14
15
 
15
16
  const C = {
16
17
  reset: '\x1b[0m',
@@ -22,57 +23,25 @@ const C = {
22
23
  red: '\x1b[31m'
23
24
  };
24
25
 
25
- const LOGO = `${C.cyan}${C.bold}⚡ Bootspring${C.reset} ${C.dim}v${VERSION}${C.reset}${USE_V2 ? ` ${C.green}(v2-beta)${C.reset}` : ''}`;
26
-
27
- /**
28
- * v2-enabled commands (monorepo implementations)
29
- */
30
- const V2_COMMANDS = [
31
- // Core
32
- 'auth', 'project', 'switch', 'init', 'mcp', 'health',
33
- // Content & Agents
34
- 'agent', 'skill', 'todo', 'billing',
35
- // Build & Deploy
36
- 'build', 'deploy', 'loop', 'quality', 'security', 'doctor',
37
- // Planning & PRD
38
- 'plan', 'prd', 'preseed', 'preseed-start', 'preseed-from-codebase',
39
- // Analysis & Monitoring
40
- 'analyze', 'audit', 'monitor', 'metrics', 'visualize',
41
- // Documentation & Content
42
- 'generate', 'dashboard', 'content', 'docs', 'seed',
43
- // Intelligence
44
- 'learn', 'memory', 'suggest', 'orchestrator', 'validate', 'watch',
45
- // Business & Legal
46
- 'business', 'fundraise', 'legal', 'org',
47
- // Infrastructure
48
- 'workspace', 'cloud-sync', 'github', 'onboard', 'checkpoint',
49
- // Misc
50
- 'log', 'mvp', 'plugin', 'task', 'telemetry', 'update'
51
- ];
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
+ };
52
38
 
53
- /**
54
- * Legacy v1 commands (kept for backward compat, prefer v2)
55
- */
56
- const V1_COMMANDS = {};
57
39
  function showHelp() {
58
- console.log(LOGO);
40
+ console.log(`${C.cyan}${C.bold}⚡ Bootspring${C.reset} ${C.dim}v${VERSION}${C.reset}`);
59
41
  console.log(`${C.dim}Development scaffolding with intelligence${C.reset}\n`);
60
42
  console.log(`${C.bold}Usage:${C.reset} bootspring <command> [options]\n`);
61
43
 
62
- const groups = {
63
- 'Core': ['auth', 'init', 'project', 'switch', 'health', 'mcp', 'dashboard'],
64
- 'Build & Deploy': ['build', 'deploy', 'loop', 'quality', 'security', 'doctor', 'update'],
65
- 'Planning': ['plan', 'prd', 'preseed', 'preseed-start', 'preseed-from-codebase', 'seed'],
66
- 'Agents & Skills': ['agent', 'skill', 'todo', 'billing'],
67
- 'Analysis': ['analyze', 'audit', 'monitor', 'metrics', 'validate', 'visualize'],
68
- 'Docs & Content': ['generate', 'content', 'docs'],
69
- 'Intelligence': ['learn', 'memory', 'suggest', 'orchestrator', 'watch'],
70
- 'Business': ['business', 'fundraise', 'legal', 'org'],
71
- 'Infrastructure': ['workspace', 'cloud-sync', 'github', 'onboard', 'checkpoint'],
72
- 'Tools': ['log', 'mvp', 'plugin', 'task', 'telemetry']
73
- };
74
-
75
- for (const [group, cmds] of Object.entries(groups)) {
44
+ for (const [group, cmds] of Object.entries(HELP_GROUPS)) {
76
45
  console.log(`${C.bold}${group}:${C.reset} ${cmds.map(c => `${C.green}${c}${C.reset}`).join(', ')}`);
77
46
  }
78
47
 
@@ -80,31 +49,16 @@ function showHelp() {
80
49
  console.log(`${C.dim}Docs: https://bootspring.com/docs${C.reset}\n`);
81
50
  }
82
51
 
83
- async function runV1(command, args) {
84
- const config = V1_COMMANDS[command];
85
- if (!config) {
86
- showHelp();
87
- return;
88
- }
89
- const handler = require(path.resolve(__dirname, config.handler));
90
- await handler.run(args);
91
- }
92
-
93
- async function runV2(args) {
94
- if (!fs.existsSync(MONOREPO_CLI_DIST)) {
95
- console.error(`${C.red}Error: v2 CLI build not found at ${MONOREPO_CLI_DIST}${C.reset}`);
96
- console.error(`${C.dim}Please run 'cd monorepo && pnpm build' first.${C.reset}`);
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}`);
97
56
  process.exit(1);
98
57
  }
99
58
 
100
- // Filter out the --v2 flag if present
101
- const cleanArgs = args.filter(arg => arg !== '--v2');
102
-
103
- // Use dynamic import for ESM v2 CLI
104
- const { spawn } = require('child_process');
105
- const child = spawn('node', [MONOREPO_CLI_DIST, ...cleanArgs], {
59
+ const child = spawn('node', [CLI_DIST, ...args], {
106
60
  stdio: 'inherit',
107
- env: { ...process.env, BOOTSPRING_V2_BRIDGE: 'true' }
61
+ env: { ...process.env, BOOTSPRING_BRIDGE: 'true' }
108
62
  });
109
63
 
110
64
  child.on('exit', (code) => {
@@ -122,38 +76,23 @@ async function main() {
122
76
  }
123
77
 
124
78
  if (command === '--version' || command === '-v') {
125
- console.log(`Bootspring v${VERSION} (Bridge)`);
79
+ console.log(`Bootspring v${VERSION}`);
126
80
  return;
127
81
  }
128
82
 
129
- // Auto-update check (before any command execution)
83
+ // Self-update check (best-effort from thin-client core)
130
84
  try {
131
- const selfUpdate = require(path.resolve(__dirname, '../core/self-update'));
85
+ const { selfUpdate } = require(path.resolve(__dirname, '../dist/core'));
132
86
  selfUpdate.ensureLatestVersion(args);
133
87
  } catch {
134
- // Best-effort; don't block CLI on update failures
88
+ // Best-effort; do not block CLI on update failures.
135
89
  }
136
90
 
137
- // Route to v2 if explicitly requested or if command is migrated
138
- if (USE_V2 || V2_COMMANDS.includes(command)) {
139
- await runV2(args);
140
- return;
141
- }
142
-
143
- // Fallback to v1 for unmigrated commands
144
- if (V1_COMMANDS[command]) {
145
- try {
146
- await runV1(command, args.slice(1));
147
- } catch (error) {
148
- console.error(`\n${C.red}Legacy Error: ${error.message}${C.reset}\n`);
149
- process.exit(1);
150
- }
151
- return;
152
- }
153
-
154
- console.log(`${C.red}Unknown command: ${command}${C.reset}`);
155
- showHelp();
156
- process.exit(1);
91
+ // Route everything through the v2 monorepo CLI
92
+ runCli(args);
157
93
  }
158
94
 
159
- main();
95
+ main().catch((error) => {
96
+ console.error(`\n${C.red}Error: ${error.message}${C.reset}\n`);
97
+ process.exit(1);
98
+ });
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: agent
3
+ description: Invoke Bootspring specialized AI agents
4
+ ---
5
+
6
+ # /agent - Bootspring Agents
7
+
8
+ Invoke specialized AI agents for focused tasks.
9
+
10
+ ## Instructions
11
+
12
+ When user invokes `/agent`, use the `bootspring_agent` MCP tool:
13
+
14
+ ```json
15
+ {
16
+ "action": "invoke",
17
+ "name": "<agent-name>"
18
+ }
19
+ ```
20
+
21
+ ## Actions
22
+
23
+ - `/agent <name>` → `bootspring_agent` with action: "invoke", name: "<name>"
24
+ - `/agent list` → `bootspring_agent` with action: "list"
25
+ - `/agent show <name>` → `bootspring_agent` with action: "show", name: "<name>"
26
+
27
+ ## Available Agents
28
+
29
+ - `security` - Security audit
30
+ - `performance` - Performance review
31
+ - `api` - API design review
32
+ - `database` - Database review
33
+ - `testing` - Test analysis
34
+ - `code-reviewer` - Code review
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: bs
3
+ description: Bootspring quick commands (universal shorthand)
4
+ ---
5
+
6
+ # /bs - Bootspring Quick Commands
7
+
8
+ Universal shorthand for Bootspring operations. Works with any AI CLI.
9
+
10
+ ## Instructions
11
+
12
+ Parse the subcommand and use the appropriate bootspring MCP tool or CLI command.
13
+
14
+ ## Commands
15
+
16
+ | Command | MCP Tool | CLI Fallback |
17
+ |---------|----------|--------------|
18
+ | `/bs skill <q>` | `bootspring_skill` action:search | `bootspring skill search <q>` |
19
+ | `/bs agent <n>` | `bootspring_agent` action:invoke | `bootspring agent invoke <n>` |
20
+ | `/bs todo` | `bootspring_todo` action:list | `bootspring todo list` |
21
+ | `/bs todo add "<t>"` | `bootspring_todo` action:add | `bootspring todo add "<t>"` |
22
+ | `/bs build` | `bootspring_seed` action:build-status | `bootspring build status` |
23
+ | `/bs health` | `bootspring_context` action:health | `bootspring health` |
24
+ | `/bs help` | - | `bootspring help` |
25
+
26
+ ## Examples
27
+
28
+ - `/bs skill auth` - Search auth patterns
29
+ - `/bs agent security` - Run security agent
30
+ - `/bs todo add "Fix bug"` - Add todo
31
+ - `/bs build` - Check build status
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: build
3
+ description: Bootspring build management
4
+ ---
5
+
6
+ # /build - Bootspring Build
7
+
8
+ Manage the Bootspring build loop and task execution.
9
+
10
+ ## Instructions
11
+
12
+ When user invokes `/build`, use the `bootspring_seed` MCP tool with build actions:
13
+
14
+ ## Actions
15
+
16
+ - `/build` → `bootspring_seed` with action: "build-status"
17
+ - `/build status` → `bootspring_seed` with action: "build-status"
18
+ - `/build next` → `bootspring_seed` with action: "build-next"
19
+ - `/build done` → `bootspring_seed` with action: "build-done"
20
+
21
+ ## Workflow
22
+
23
+ 1. `/build next` - Get next task
24
+ 2. Implement the task
25
+ 3. `/build done` - Mark complete
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: skill
3
+ description: Search and view Bootspring code patterns
4
+ ---
5
+
6
+ # /skill - Bootspring Skills
7
+
8
+ Search and view code patterns from the Bootspring library.
9
+
10
+ ## Instructions
11
+
12
+ When user invokes `/skill`, use the `bootspring_skill` MCP tool:
13
+
14
+ ```json
15
+ {
16
+ "action": "search",
17
+ "query": "<user's query>"
18
+ }
19
+ ```
20
+
21
+ ## Actions
22
+
23
+ - `/skill <query>` → `bootspring_skill` with action: "search", query: "<query>"
24
+ - `/skill show <name>` → `bootspring_skill` with action: "show", name: "<name>"
25
+ - `/skill list` → `bootspring_skill` with action: "list"
26
+
27
+ ## Examples
28
+
29
+ - `/skill auth` → Search for authentication patterns
30
+ - `/skill show auth/clerk` → Show the Clerk auth pattern
31
+ - `/skill list` → List all available patterns
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: todo
3
+ description: Manage Bootspring project todos
4
+ ---
5
+
6
+ # /todo - Bootspring Todos
7
+
8
+ Manage project todos tracked by Bootspring.
9
+
10
+ ## Instructions
11
+
12
+ When user invokes `/todo`, use the `bootspring_todo` MCP tool:
13
+
14
+ ## Actions
15
+
16
+ - `/todo` → `bootspring_todo` with action: "list"
17
+ - `/todo add "<task>"` → `bootspring_todo` with action: "add", text: "<task>"
18
+ - `/todo done <id>` → `bootspring_todo` with action: "done", id: "<id>"
19
+ - `/todo clear` → `bootspring_todo` with action: "clear"
20
+
21
+ ## Examples
22
+
23
+ - `/todo` - List all todos
24
+ - `/todo add "Fix login bug"` - Add new todo
25
+ - `/todo done 1` - Complete todo #1