@girardmedia/bootspring 2.2.1 → 2.3.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/dist/core.js CHANGED
@@ -1600,7 +1600,7 @@ var require_package = __commonJS({
1600
1600
  "package.json"(exports2, module2) {
1601
1601
  module2.exports = {
1602
1602
  name: "@girardmedia/bootspring",
1603
- version: "2.2.1",
1603
+ version: "2.3.1",
1604
1604
  description: "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
1605
1605
  keywords: [
1606
1606
  "ai",
@@ -1617,14 +1617,14 @@ var require_package = __commonJS({
1617
1617
  license: "SEE LICENSE IN LICENSE",
1618
1618
  repository: {
1619
1619
  type: "git",
1620
- url: "https://github.com/bootspring/bootspring.git"
1620
+ url: "git+https://github.com/Girard-Media/bootspring.git"
1621
1621
  },
1622
1622
  homepage: "https://bootspring.com",
1623
1623
  bugs: {
1624
- url: "https://github.com/bootspring/bootspring/issues"
1624
+ url: "https://github.com/Girard-Media/bootspring/issues"
1625
1625
  },
1626
1626
  bin: {
1627
- bootspring: "./bin/bootspring.js"
1627
+ bootspring: "bin/bootspring.js"
1628
1628
  },
1629
1629
  main: "./dist/core.js",
1630
1630
  types: "./dist/core/index.d.ts",
@@ -1640,7 +1640,7 @@ var require_package = __commonJS({
1640
1640
  },
1641
1641
  files: [
1642
1642
  "bin/bootspring.js",
1643
- "dist/index.js",
1643
+ "dist/cli/index.cjs",
1644
1644
  "dist/core.js",
1645
1645
  "dist/mcp-server.js",
1646
1646
  "dist/core/index.d.ts",
@@ -1664,7 +1664,8 @@ var require_package = __commonJS({
1664
1664
  "lint:fix": "eslint . --fix",
1665
1665
  typecheck: "tsc --noEmit",
1666
1666
  "typecheck:active": "tsc --noEmit -p tsconfig.active.json",
1667
- build: "tsup",
1667
+ build: "tsup && npm run build:cli",
1668
+ "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",
1668
1669
  "build:watch": "tsup --watch",
1669
1670
  dev: "tsx watch src/index.ts",
1670
1671
  "verify:lint-budget": "node scripts/check-lint-budgets.js",
@@ -45,7 +45,7 @@ var require_package = __commonJS({
45
45
  "package.json"(exports2, module2) {
46
46
  module2.exports = {
47
47
  name: "@girardmedia/bootspring",
48
- version: "2.2.1",
48
+ version: "2.3.1",
49
49
  description: "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
50
50
  keywords: [
51
51
  "ai",
@@ -62,14 +62,14 @@ var require_package = __commonJS({
62
62
  license: "SEE LICENSE IN LICENSE",
63
63
  repository: {
64
64
  type: "git",
65
- url: "https://github.com/bootspring/bootspring.git"
65
+ url: "git+https://github.com/Girard-Media/bootspring.git"
66
66
  },
67
67
  homepage: "https://bootspring.com",
68
68
  bugs: {
69
- url: "https://github.com/bootspring/bootspring/issues"
69
+ url: "https://github.com/Girard-Media/bootspring/issues"
70
70
  },
71
71
  bin: {
72
- bootspring: "./bin/bootspring.js"
72
+ bootspring: "bin/bootspring.js"
73
73
  },
74
74
  main: "./dist/core.js",
75
75
  types: "./dist/core/index.d.ts",
@@ -85,7 +85,7 @@ var require_package = __commonJS({
85
85
  },
86
86
  files: [
87
87
  "bin/bootspring.js",
88
- "dist/index.js",
88
+ "dist/cli/index.cjs",
89
89
  "dist/core.js",
90
90
  "dist/mcp-server.js",
91
91
  "dist/core/index.d.ts",
@@ -109,7 +109,8 @@ var require_package = __commonJS({
109
109
  "lint:fix": "eslint . --fix",
110
110
  typecheck: "tsc --noEmit",
111
111
  "typecheck:active": "tsc --noEmit -p tsconfig.active.json",
112
- build: "tsup",
112
+ build: "tsup && npm run build:cli",
113
+ "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",
113
114
  "build:watch": "tsup --watch",
114
115
  dev: "tsx watch src/index.ts",
115
116
  "verify:lint-budget": "node scripts/check-lint-budgets.js",
@@ -2147,6 +2148,33 @@ var FALLBACK_TOOLS = [
2147
2148
  },
2148
2149
  required: ["action"]
2149
2150
  }
2151
+ },
2152
+ {
2153
+ name: "bootspring_build",
2154
+ description: "Autonomous build system. Get tasks, mark complete, check progress. Use action=next to get next task, action=done to mark complete, action=status for progress.",
2155
+ inputSchema: {
2156
+ type: "object",
2157
+ properties: {
2158
+ action: { type: "string", enum: ["next", "current", "done", "skip", "status", "list", "init", "sync", "advance"] },
2159
+ reason: { type: "string" },
2160
+ autoDone: { type: "boolean" }
2161
+ },
2162
+ required: ["action"]
2163
+ }
2164
+ },
2165
+ {
2166
+ name: "bootspring_seed",
2167
+ description: "Manage seed configuration and project scaffolding. Setup input folders, generate docs, scaffold projects.",
2168
+ inputSchema: {
2169
+ type: "object",
2170
+ properties: {
2171
+ action: { type: "string", enum: ["setup", "init", "generate", "scaffold", "status", "export"] },
2172
+ preset: { type: "string" },
2173
+ format: { type: "string", enum: ["json", "yaml"] },
2174
+ dryRun: { type: "boolean" }
2175
+ },
2176
+ required: ["action"]
2177
+ }
2150
2178
  }
2151
2179
  ];
2152
2180
  var FALLBACK_RESOURCES = [
@@ -60,7 +60,7 @@ class ApiDocsGenerator {
60
60
  if (fs.existsSync(this.apiDataPath)) {
61
61
  return JSON.parse(fs.readFileSync(this.apiDataPath, 'utf-8'));
62
62
  }
63
- } catch (err) {
63
+ } catch (_err) {
64
64
  // Return default
65
65
  }
66
66
 
@@ -102,7 +102,7 @@ class ApiDocsGenerator {
102
102
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
103
103
  return pkg.name || 'API';
104
104
  }
105
- } catch (err) {
105
+ } catch (_err) {
106
106
  // Default
107
107
  }
108
108
  return 'API';
@@ -64,7 +64,7 @@ class DecisionsGenerator {
64
64
  if (fs.existsSync(this.decisionsPath)) {
65
65
  return JSON.parse(fs.readFileSync(this.decisionsPath, 'utf-8'));
66
66
  }
67
- } catch (err) {
67
+ } catch (_err) {
68
68
  // Return default
69
69
  }
70
70
 
@@ -103,7 +103,7 @@ class DecisionsGenerator {
103
103
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
104
104
  return pkg.name || 'Project';
105
105
  }
106
- } catch (err) {
106
+ } catch (_err) {
107
107
  // Default
108
108
  }
109
109
  return 'Project';
@@ -582,7 +582,7 @@ ${decision.links.map(l => `- [${l.title || l.url}](${l.url})`).join('\n')}
582
582
  });
583
583
  }
584
584
  }
585
- } catch (err) {
585
+ } catch (_err) {
586
586
  // Decision intelligence not available
587
587
  }
588
588
 
@@ -52,7 +52,7 @@ class HealthGenerator {
52
52
  if (fs.existsSync(this.healthDataPath)) {
53
53
  return JSON.parse(fs.readFileSync(this.healthDataPath, 'utf-8'));
54
54
  }
55
- } catch (err) {
55
+ } catch (_err) {
56
56
  // Return default
57
57
  }
58
58
 
@@ -89,7 +89,7 @@ class HealthGenerator {
89
89
  const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
90
90
  return pkg.name || 'Project';
91
91
  }
92
- } catch (err) {
92
+ } catch (_err) {
93
93
  // Default
94
94
  }
95
95
  return 'Project';
@@ -144,7 +144,7 @@ class HealthGenerator {
144
144
  metrics.linting.warnings = results.reduce((sum, r) => sum + r.warningCount, 0);
145
145
  metrics.linting.passed = metrics.linting.errors === 0;
146
146
  metrics.filesAnalyzed = results.length;
147
- } catch (err) {
147
+ } catch (_err) {
148
148
  // ESLint failed or not configured
149
149
  }
150
150
  }
@@ -156,7 +156,7 @@ class HealthGenerator {
156
156
  try {
157
157
  const tsConfigContent = JSON.parse(fs.readFileSync(tsConfig, 'utf-8'));
158
158
  metrics.typescript.strict = tsConfigContent.compilerOptions?.strict === true;
159
- } catch (err) {
159
+ } catch (_err) {
160
160
  // Ignore
161
161
  }
162
162
 
@@ -168,7 +168,7 @@ class HealthGenerator {
168
168
  });
169
169
  const errorCount = (output.match(/error TS\d+:/g) || []).length;
170
170
  metrics.typescript.errors = errorCount;
171
- } catch (err) {
171
+ } catch (_err) {
172
172
  // TypeScript check failed
173
173
  }
174
174
  }
@@ -189,7 +189,7 @@ class HealthGenerator {
189
189
  }
190
190
 
191
191
  metrics.score = Math.max(0, Math.min(100, Math.round(score)));
192
- } catch (err) {
192
+ } catch (_err) {
193
193
  metrics.score = 50; // Default if analysis fails
194
194
  }
195
195
 
@@ -240,7 +240,7 @@ class HealthGenerator {
240
240
  functions: coverage.total.functions?.pct || 0
241
241
  };
242
242
  }
243
- } catch (err) {
243
+ } catch (_err) {
244
244
  // Ignore
245
245
  }
246
246
  }
@@ -266,7 +266,7 @@ class HealthGenerator {
266
266
  // No tests
267
267
  metrics.score = 0;
268
268
  }
269
- } catch (err) {
269
+ } catch (_err) {
270
270
  metrics.score = 0;
271
271
  }
272
272
 
@@ -310,7 +310,7 @@ class HealthGenerator {
310
310
  wanted: outdated[name].wanted,
311
311
  latest: outdated[name].latest
312
312
  }));
313
- } catch (err) {
313
+ } catch (_err) {
314
314
  // npm outdated failed
315
315
  }
316
316
 
@@ -325,7 +325,7 @@ class HealthGenerator {
325
325
  if (audit.metadata?.vulnerabilities) {
326
326
  metrics.vulnerabilities = audit.metadata.vulnerabilities;
327
327
  }
328
- } catch (err) {
328
+ } catch (_err) {
329
329
  // npm audit failed
330
330
  }
331
331
  }
@@ -343,7 +343,7 @@ class HealthGenerator {
343
343
  score -= Math.min(15, metrics.outdated.length * 0.5);
344
344
 
345
345
  metrics.score = Math.max(0, Math.min(100, Math.round(score)));
346
- } catch (err) {
346
+ } catch (_err) {
347
347
  metrics.score = 50;
348
348
  }
349
349
 
@@ -391,7 +391,7 @@ class HealthGenerator {
391
391
  metrics.secretsExposed += realMatches.length;
392
392
  }
393
393
  }
394
- } catch (err) {
394
+ } catch (_err) {
395
395
  // Skip file
396
396
  }
397
397
  }
@@ -447,7 +447,7 @@ class HealthGenerator {
447
447
  }
448
448
 
449
449
  metrics.score = Math.max(0, Math.min(100, Math.round(score)));
450
- } catch (err) {
450
+ } catch (_err) {
451
451
  metrics.score = 50;
452
452
  }
453
453
 
@@ -482,7 +482,7 @@ class HealthGenerator {
482
482
  const size = this.getDirectorySize(buildPath);
483
483
  metrics.bundleSize = size;
484
484
  break;
485
- } catch (err) {
485
+ } catch (_err) {
486
486
  // Ignore
487
487
  }
488
488
  }
@@ -513,7 +513,7 @@ class HealthGenerator {
513
513
  }
514
514
 
515
515
  metrics.score = Math.min(100, metrics.score);
516
- } catch (err) {
516
+ } catch (_err) {
517
517
  // Keep default score
518
518
  }
519
519
 
@@ -844,7 +844,7 @@ Functions: ${this.generateProgressBar(coverage.functions)} ${coverage.functions
844
844
  }
845
845
  }
846
846
  }
847
- } catch (err) {
847
+ } catch (_err) {
848
848
  // Skip inaccessible directories
849
849
  }
850
850
  };
@@ -70,7 +70,7 @@ class SprintGenerator {
70
70
  if (fs.existsSync(this.sprintDataPath)) {
71
71
  return JSON.parse(fs.readFileSync(this.sprintDataPath, 'utf-8'));
72
72
  }
73
- } catch (err) {
73
+ } catch (_err) {
74
74
  // Return default
75
75
  }
76
76
 
@@ -126,7 +126,7 @@ class SprintGenerator {
126
126
  const history = JSON.parse(fs.readFileSync(historyPath, 'utf-8'));
127
127
  return (history.sprints?.length || 0) + 1;
128
128
  }
129
- } catch (err) {
129
+ } catch (_err) {
130
130
  // Return default
131
131
  }
132
132
  return 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@girardmedia/bootspring",
3
- "version": "2.2.1",
3
+ "version": "2.3.1",
4
4
  "description": "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
5
5
  "keywords": [
6
6
  "ai",
@@ -17,14 +17,14 @@
17
17
  "license": "SEE LICENSE IN LICENSE",
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "https://github.com/bootspring/bootspring.git"
20
+ "url": "git+https://github.com/Girard-Media/bootspring.git"
21
21
  },
22
22
  "homepage": "https://bootspring.com",
23
23
  "bugs": {
24
- "url": "https://github.com/bootspring/bootspring/issues"
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,7 +40,7 @@
40
40
  },
41
41
  "files": [
42
42
  "bin/bootspring.js",
43
- "dist/index.js",
43
+ "dist/cli/index.cjs",
44
44
  "dist/core.js",
45
45
  "dist/mcp-server.js",
46
46
  "dist/core/index.d.ts",
@@ -64,7 +64,8 @@
64
64
  "lint:fix": "eslint . --fix",
65
65
  "typecheck": "tsc --noEmit",
66
66
  "typecheck:active": "tsc --noEmit -p tsconfig.active.json",
67
- "build": "tsup",
67
+ "build": "tsup && npm run build:cli",
68
+ "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",
68
69
  "build:watch": "tsup --watch",
69
70
  "dev": "tsx watch src/index.ts",
70
71
  "verify:lint-budget": "node scripts/check-lint-budgets.js",