@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/README.md +2 -2
- package/bin/bootspring.js +17 -132
- package/claude-commands/build.md +21 -11
- package/dist/cli/index.cjs +19359 -0
- package/dist/core.js +7 -6
- package/dist/mcp-server.js +34 -6
- package/generators/api-docs.js +2 -2
- package/generators/decisions.js +3 -3
- package/generators/health.js +16 -16
- package/generators/sprint.js +2 -2
- package/package.json +7 -6
- package/dist/index.js +0 -93883
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.
|
|
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/
|
|
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/
|
|
1624
|
+
url: "https://github.com/Girard-Media/bootspring/issues"
|
|
1625
1625
|
},
|
|
1626
1626
|
bin: {
|
|
1627
|
-
bootspring: "
|
|
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.
|
|
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",
|
package/dist/mcp-server.js
CHANGED
|
@@ -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.
|
|
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/
|
|
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/
|
|
69
|
+
url: "https://github.com/Girard-Media/bootspring/issues"
|
|
70
70
|
},
|
|
71
71
|
bin: {
|
|
72
|
-
bootspring: "
|
|
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.
|
|
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 = [
|
package/generators/api-docs.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
105
|
+
} catch (_err) {
|
|
106
106
|
// Default
|
|
107
107
|
}
|
|
108
108
|
return 'API';
|
package/generators/decisions.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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 (
|
|
585
|
+
} catch (_err) {
|
|
586
586
|
// Decision intelligence not available
|
|
587
587
|
}
|
|
588
588
|
|
package/generators/health.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
847
|
+
} catch (_err) {
|
|
848
848
|
// Skip inaccessible directories
|
|
849
849
|
}
|
|
850
850
|
};
|
package/generators/sprint.js
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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.
|
|
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/
|
|
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/
|
|
24
|
+
"url": "https://github.com/Girard-Media/bootspring/issues"
|
|
25
25
|
},
|
|
26
26
|
"bin": {
|
|
27
|
-
"bootspring": "
|
|
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.
|
|
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",
|