@girardmedia/bootspring 2.5.0 → 2.5.2

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 (59) hide show
  1. package/README.md +9 -403
  2. package/bin/bootspring.js +1 -96
  3. package/dist/cli/index.js +65134 -0
  4. package/dist/cli-launcher.js +92 -0
  5. package/dist/core/index.d.ts +2110 -5582
  6. package/dist/core/index.js +2 -0
  7. package/dist/core.js +21123 -5413
  8. package/dist/mcp/index.d.ts +357 -1
  9. package/dist/mcp/index.js +2 -0
  10. package/dist/mcp-server.js +51948 -1976
  11. package/package.json +27 -63
  12. package/scripts/postinstall.cjs +144 -0
  13. package/LICENSE +0 -29
  14. package/dist/cli/index.cjs +0 -20776
  15. package/generators/api-docs.js +0 -827
  16. package/generators/decisions.js +0 -655
  17. package/generators/generate.js +0 -595
  18. package/generators/health.js +0 -942
  19. package/generators/index.ts +0 -82
  20. package/generators/presets/full.js +0 -28
  21. package/generators/presets/index.js +0 -12
  22. package/generators/presets/minimal.js +0 -29
  23. package/generators/presets/standard.js +0 -28
  24. package/generators/questionnaire.js +0 -414
  25. package/generators/sections/advanced.js +0 -136
  26. package/generators/sections/ai.js +0 -106
  27. package/generators/sections/auth.js +0 -89
  28. package/generators/sections/backend.js +0 -146
  29. package/generators/sections/business.js +0 -118
  30. package/generators/sections/content.js +0 -300
  31. package/generators/sections/deployment.js +0 -139
  32. package/generators/sections/features.js +0 -122
  33. package/generators/sections/frontend.js +0 -118
  34. package/generators/sections/identity.js +0 -76
  35. package/generators/sections/index.js +0 -40
  36. package/generators/sections/instructions.js +0 -146
  37. package/generators/sections/payments.js +0 -104
  38. package/generators/sections/plugins.js +0 -142
  39. package/generators/sections/pre-build.js +0 -130
  40. package/generators/sections/security.js +0 -127
  41. package/generators/sections/technical.js +0 -171
  42. package/generators/sections/testing.js +0 -125
  43. package/generators/sections/workflow.js +0 -104
  44. package/generators/sprint.js +0 -675
  45. package/generators/templates/agents.template.js +0 -199
  46. package/generators/templates/assistant-context.template.js +0 -83
  47. package/generators/templates/build-planning.template.js +0 -708
  48. package/generators/templates/claude.template.js +0 -379
  49. package/generators/templates/content.template.js +0 -819
  50. package/generators/templates/index.js +0 -16
  51. package/generators/templates/planning.template.js +0 -515
  52. package/generators/templates/seed.template.js +0 -109
  53. package/generators/visual-doc-generator.js +0 -910
  54. package/scripts/postinstall.js +0 -197
  55. /package/{claude-commands → assets/claude-commands}/agent.md +0 -0
  56. /package/{claude-commands → assets/claude-commands}/bs.md +0 -0
  57. /package/{claude-commands → assets/claude-commands}/build.md +0 -0
  58. /package/{claude-commands → assets/claude-commands}/skill.md +0 -0
  59. /package/{claude-commands → assets/claude-commands}/todo.md +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@girardmedia/bootspring",
3
- "version": "2.5.0",
3
+ "version": "2.5.2",
4
4
  "description": "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
5
5
  "keywords": [
6
6
  "ai",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/Girard-Media/bootspring/issues"
25
25
  },
26
26
  "bin": {
27
- "bootspring": "bin/bootspring.js"
27
+ "bootspring": "./bin/bootspring.js"
28
28
  },
29
29
  "main": "./dist/core.js",
30
30
  "types": "./dist/core/index.d.ts",
@@ -40,64 +40,26 @@
40
40
  },
41
41
  "files": [
42
42
  "bin/bootspring.js",
43
- "dist/cli/index.cjs",
43
+ "dist/cli/index.js",
44
+ "dist/cli-launcher.js",
44
45
  "dist/core.js",
45
46
  "dist/mcp-server.js",
47
+ "dist/core/index.js",
46
48
  "dist/core/index.d.ts",
49
+ "dist/mcp/index.js",
47
50
  "dist/mcp/index.d.ts",
48
- "generators/",
49
- "claude-commands/",
50
- "scripts/postinstall.js"
51
+ "assets/claude-commands/",
52
+ "scripts/postinstall.cjs"
51
53
  ],
52
54
  "scripts": {
53
- "postinstall": "node scripts/postinstall.js",
55
+ "build": "tsup && node ./scripts/sync-publish-artifacts.cjs",
56
+ "dev": "tsup --watch",
57
+ "lint": "eslint src/",
58
+ "typecheck": "tsc --noEmit",
59
+ "postinstall": "node scripts/postinstall.cjs",
54
60
  "start": "node bin/bootspring.js",
55
- "dashboard": "node bin/bootspring.js dashboard",
56
61
  "mcp": "node dist/mcp-server.js",
57
- "version:sync": "node scripts/sync-version-metadata.js",
58
- "verify:version-sync": "node scripts/sync-version-metadata.js --check",
59
- "release:prepare": "npm run version:sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract && npm run verify:release-gates",
60
- "pretest": "npm run build",
61
- "test": "vitest run",
62
- "test:launch-smoke": "vitest run __tests__/unit/cli-first-run-smoke.test.js __tests__/unit/health-fresh-start.test.ts __tests__/unit/session-project-scope.test.ts __tests__/unit/auth-cli-mixed-states.test.ts __tests__/unit/api-client-project-auth-fallback.test.js __tests__/unit/cli-help-surface.test.js __tests__/unit/cli-command-manifest.test.js",
63
- "test:seed-ingestion": "vitest run __tests__/unit/seed-ingestion-regression.test.js",
64
- "test:watch": "vitest",
65
- "test:coverage": "vitest run --coverage",
66
- "lint": "eslint .",
67
- "lint:fix": "eslint . --fix",
68
- "typecheck": "tsc --noEmit",
69
- "typecheck:active": "tsc --noEmit -p tsconfig.active.json",
70
- "build": "npm run version:sync && tsup && npm run build:cli",
71
- "build:cli": "cd monorepo && pnpm build --filter @bootspring/cli && cd .. && mkdir -p dist/cli && cp monorepo/apps/cli/dist/index.cjs dist/cli/index.cjs",
72
- "build:watch": "tsup --watch",
73
- "dev": "tsx watch src/index.ts",
74
- "verify:lint-budget": "node scripts/check-lint-budgets.js",
75
- "verify:release-gates": "node scripts/release-gate-check.js",
76
- "verify:shared-contracts": "node scripts/verify-shared-contracts.js",
77
- "verify:thin-client-contract": "node scripts/verify-thin-client-contract.js",
78
- "build:mcp-contract": "node scripts/export-mcp-contract.js",
79
- "verify:mcp-contract": "node scripts/export-mcp-contract.js --check",
80
- "planning:sync": "node scripts/sync-planning-state.js",
81
- "planning:sync:check": "node scripts/sync-planning-state.js --check",
82
- "planning:realign": "node scripts/sync-planning-state.js --sync-runtime",
83
- "verify:package": "node scripts/check-package-boundaries.js",
84
- "db:sync": "node shared/db/sync.js",
85
- "db:sync:check": "node shared/db/sync.js --check",
86
- "prepublishOnly": "npm run verify:version-sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
87
- },
88
- "devDependencies": {
89
- "@eslint/js": "^9.39.2",
90
- "@swc/core": "^1.15.13",
91
- "@types/node": "^25.3.1",
92
- "@typescript-eslint/eslint-plugin": "^8.57.0",
93
- "@typescript-eslint/parser": "^8.57.0",
94
- "@vitest/coverage-v8": "^4.0.18",
95
- "eslint": "^9.39.2",
96
- "globals": "^17.3.0",
97
- "tsup": "^8.5.1",
98
- "tsx": "^4.21.0",
99
- "typescript": "^5.9.3",
100
- "vitest": "^4.0.18"
62
+ "pack:dry-run": "npm pack --dry-run --json"
101
63
  },
102
64
  "dependencies": {
103
65
  "@modelcontextprotocol/sdk": "^1.0.0",
@@ -106,16 +68,18 @@
106
68
  "yaml": "^2.8.0",
107
69
  "zod": "^4.3.6"
108
70
  },
109
- "engines": {
110
- "node": ">=18.0.0"
111
- },
112
- "overrides": {
113
- "table": {
114
- "ajv": "^8.12.0"
115
- },
116
- "minimatch": "^10.2.1",
117
- "hono": "4.12.4",
118
- "@hono/node-server": "1.19.10",
119
- "express-rate-limit": "^8.2.2"
71
+ "devDependencies": {
72
+ "@bootspring/agents": "workspace:*",
73
+ "@bootspring/analyzers": "workspace:*",
74
+ "@bootspring/config": "workspace:*",
75
+ "@bootspring/core": "workspace:*",
76
+ "@bootspring/intelligence": "workspace:*",
77
+ "@bootspring/mcp": "workspace:*",
78
+ "@bootspring/shared": "workspace:*",
79
+ "@bootspring/skills": "workspace:*",
80
+ "@bootspring/types": "workspace:*",
81
+ "commander": "^12.0.0",
82
+ "tsup": "^8.0.0",
83
+ "typescript": "^5.0.0"
120
84
  }
121
85
  }
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const os = require('os');
5
+ const path = require('path');
6
+
7
+ const c = {
8
+ reset: '\x1b[0m',
9
+ green: '\x1b[32m',
10
+ cyan: '\x1b[36m',
11
+ dim: '\x1b[2m'
12
+ };
13
+
14
+ function resolveCommandsSource() {
15
+ const fromEnv = process.env.BOOTSPRING_COMMANDS_SOURCE;
16
+ const candidates = [
17
+ fromEnv,
18
+ path.join(__dirname, '..', 'assets', 'claude-commands')
19
+ ].filter(Boolean);
20
+
21
+ for (const candidate of candidates) {
22
+ if (fs.existsSync(candidate)) {
23
+ return candidate;
24
+ }
25
+ }
26
+
27
+ return candidates[0];
28
+ }
29
+
30
+ const COMMANDS_SOURCE = resolveCommandsSource();
31
+
32
+ const BOOTSPRING_SKILL_CONTENT = `# Bootspring MCP Operating Skill
33
+
34
+ Use Bootspring MCP tools as the primary workflow for any project with Bootspring configured.
35
+ These tools work via MCP protocol with any assistant: Claude Code, Codex, Gemini CLI, or others.
36
+
37
+ ## MCP Tool Reference — When to Use Each
38
+
39
+ | Tool | When to Use |
40
+ |------|-------------|
41
+ | \`bootspring_assist\` | Parse user intent, get suggested next actions, or clarify ambiguous requests |
42
+ | \`bootspring_context\` | **Always call first** — read project docs, tech stack, and conventions before coding |
43
+ | \`bootspring_plan\` | Break a feature or change into a structured execution plan |
44
+ | \`bootspring_orchestrator\` | Run multi-step workflows that combine planning, building, and quality checks |
45
+ | \`bootspring_quality\` | Run linting, type checks, and tests before committing — replaces manual lint scripts |
46
+ | \`bootspring_skill\` | Search implementation patterns |
47
+ | \`bootspring_agent\` | Invoke a specialist agent |
48
+ | \`bootspring_build\` | Advance the build loop and track progress |
49
+ | \`bootspring_todo\` | Add, list, complete, or clear project todos |
50
+ | \`bootspring_seed\` | Scaffold new features, modules, or boilerplate |
51
+ `;
52
+
53
+ const TARGETS = [
54
+ {
55
+ name: 'Claude Code',
56
+ commandsPath: path.join(os.homedir(), '.claude', 'commands'),
57
+ skillsPath: path.join(os.homedir(), '.claude', 'skills')
58
+ },
59
+ {
60
+ name: 'Codex',
61
+ commandsPath: path.join(os.homedir(), '.codex', 'commands'),
62
+ skillsPath: path.join(os.homedir(), '.codex', 'skills')
63
+ },
64
+ {
65
+ name: 'Gemini CLI',
66
+ commandsPath: path.join(os.homedir(), '.gemini', 'commands'),
67
+ skillsPath: path.join(os.homedir(), '.gemini', 'skills')
68
+ }
69
+ ];
70
+
71
+ function installCommands(targetDir) {
72
+ try {
73
+ if (!fs.existsSync(targetDir)) {
74
+ fs.mkdirSync(targetDir, { recursive: true });
75
+ }
76
+
77
+ const files = fs.readdirSync(COMMANDS_SOURCE).filter((file) => file.endsWith('.md'));
78
+ let installed = 0;
79
+
80
+ for (const file of files) {
81
+ const sourcePath = path.join(COMMANDS_SOURCE, file);
82
+ const targetPath = path.join(targetDir, file);
83
+ if (!fs.existsSync(targetPath)) {
84
+ fs.copyFileSync(sourcePath, targetPath);
85
+ installed += 1;
86
+ }
87
+ }
88
+
89
+ return installed;
90
+ } catch {
91
+ return 0;
92
+ }
93
+ }
94
+
95
+ function installBootspringSkill(skillsDir) {
96
+ try {
97
+ const skillDir = path.join(skillsDir, 'bootspring');
98
+ const skillPath = path.join(skillDir, 'SKILL.md');
99
+
100
+ if (!fs.existsSync(skillDir)) {
101
+ fs.mkdirSync(skillDir, { recursive: true });
102
+ }
103
+
104
+ fs.writeFileSync(skillPath, BOOTSPRING_SKILL_CONTENT, 'utf8');
105
+ return 1;
106
+ } catch {
107
+ return 0;
108
+ }
109
+ }
110
+
111
+ function main() {
112
+ if (process.env.CI || process.env.BOOTSPRING_SKIP_POSTINSTALL) {
113
+ return;
114
+ }
115
+
116
+ let totalCommandsInstalled = 0;
117
+ let totalSkillsInstalled = 0;
118
+ const installedTo = [];
119
+
120
+ for (const target of TARGETS) {
121
+ const commandCount = installCommands(target.commandsPath);
122
+ const skillCount = installBootspringSkill(target.skillsPath);
123
+
124
+ if (commandCount > 0 || skillCount > 0) {
125
+ totalCommandsInstalled += commandCount;
126
+ totalSkillsInstalled += skillCount;
127
+ installedTo.push(target.name);
128
+ }
129
+ }
130
+
131
+ if (totalCommandsInstalled > 0 || totalSkillsInstalled > 0) {
132
+ console.log(`
133
+ ${c.cyan}⚡ Bootspring${c.reset} assistant integrations installed!
134
+
135
+ ${c.dim}Installed:${c.reset}
136
+ ${c.green}${totalCommandsInstalled}${c.reset} slash command templates
137
+ ${c.green}${totalSkillsInstalled}${c.reset} Bootspring base skills
138
+
139
+ ${c.dim}Installed to: ${installedTo.join(', ')}${c.reset}
140
+ `);
141
+ }
142
+ }
143
+
144
+ main();
package/LICENSE DELETED
@@ -1,29 +0,0 @@
1
- Bootspring Proprietary License
2
-
3
- Copyright (c) 2026 Bootspring (Girard Media LLC)
4
-
5
- All rights reserved.
6
-
7
- This software and associated documentation files (the "Software") are proprietary
8
- and confidential. The Software is licensed, not sold.
9
-
10
- PERMITTED USE:
11
- - You may use the Software for your own development projects
12
- - You may install and run the Software via npm for personal or commercial use
13
- - You may use the outputs generated by the Software in your projects
14
-
15
- RESTRICTIONS:
16
- - You may NOT redistribute, sublicense, or resell the Software
17
- - You may NOT modify, decompile, reverse engineer, or create derivative works
18
- - You may NOT remove or alter any proprietary notices or labels
19
- - You may NOT use the Software to create competing products or services
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
- SOFTWARE.
28
-
29
- For licensing inquiries: hello@bootspring.com