@specforge/mcp 3.0.7 → 3.1.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.
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +184 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.types.d.ts +37 -0
- package/dist/cli/commands/init.types.d.ts.map +1 -1
- package/dist/cli/commands/init.types.js +18 -0
- package/dist/cli/commands/init.types.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +18 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +154 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/plan.types.d.ts +60 -0
- package/dist/cli/commands/plan.types.d.ts.map +1 -0
- package/dist/cli/commands/plan.types.js +8 -0
- package/dist/cli/commands/plan.types.js.map +1 -0
- package/dist/cli/commands/spec-activate.d.ts +29 -0
- package/dist/cli/commands/spec-activate.d.ts.map +1 -0
- package/dist/cli/commands/spec-activate.js +155 -0
- package/dist/cli/commands/spec-activate.js.map +1 -0
- package/dist/cli/commands/spec-activate.types.d.ts +24 -0
- package/dist/cli/commands/spec-activate.types.d.ts.map +1 -0
- package/dist/cli/commands/spec-activate.types.js +8 -0
- package/dist/cli/commands/spec-activate.types.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +89 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/status.types.d.ts +2 -0
- package/dist/cli/commands/status.types.d.ts.map +1 -1
- package/dist/cli/commands/status.types.js.map +1 -1
- package/dist/cli/config/agent-teams.types.d.ts +194 -0
- package/dist/cli/config/agent-teams.types.d.ts.map +1 -0
- package/dist/cli/config/agent-teams.types.js +36 -0
- package/dist/cli/config/agent-teams.types.js.map +1 -0
- package/dist/cli/config/index.d.ts +2 -0
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -0
- package/dist/cli/config/index.js.map +1 -1
- package/dist/cli/config/loader.d.ts +36 -2
- package/dist/cli/config/loader.d.ts.map +1 -1
- package/dist/cli/config/loader.js +65 -0
- package/dist/cli/config/loader.js.map +1 -1
- package/dist/cli/config/validation.d.ts +69 -0
- package/dist/cli/config/validation.d.ts.map +1 -0
- package/dist/cli/config/validation.js +295 -0
- package/dist/cli/config/validation.js.map +1 -0
- package/dist/cli/config/writer.d.ts +39 -0
- package/dist/cli/config/writer.d.ts.map +1 -1
- package/dist/cli/config/writer.js +58 -0
- package/dist/cli/config/writer.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +3 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/monorepo-detector.d.ts +31 -0
- package/dist/lib/monorepo-detector.d.ts.map +1 -0
- package/dist/lib/monorepo-detector.js +271 -0
- package/dist/lib/monorepo-detector.js.map +1 -0
- package/dist/lib/prompt-generator.d.ts +65 -0
- package/dist/lib/prompt-generator.d.ts.map +1 -0
- package/dist/lib/prompt-generator.js +172 -0
- package/dist/lib/prompt-generator.js.map +1 -0
- package/dist/lib/strategy-analyzer.d.ts +59 -0
- package/dist/lib/strategy-analyzer.d.ts.map +1 -0
- package/dist/lib/strategy-analyzer.js +137 -0
- package/dist/lib/strategy-analyzer.js.map +1 -0
- package/dist/tools/core/context-helper.d.ts +22 -0
- package/dist/tools/core/context-helper.d.ts.map +1 -1
- package/dist/tools/core/context-helper.js +37 -1
- package/dist/tools/core/context-helper.js.map +1 -1
- package/dist/tools/core/workspace-files.d.ts +49 -0
- package/dist/tools/core/workspace-files.d.ts.map +1 -0
- package/dist/tools/core/workspace-files.js +259 -0
- package/dist/tools/core/workspace-files.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +147 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +3 -2
- package/src/cli/templates/agents/content/core/sfag-implementer.ts +113 -0
- package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +107 -0
- package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +126 -0
- package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +132 -0
- package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +153 -0
- package/src/cli/templates/agents/content/task-type/sfag-api-implementer.ts +132 -0
- package/src/cli/templates/agents/content/task-type/sfag-docs-writer.ts +183 -0
- package/src/cli/templates/agents/content/task-type/sfag-frontend-builder.ts +141 -0
- package/src/cli/templates/agents/content/task-type/sfag-infra-architect.ts +149 -0
- package/src/cli/templates/agents/content/task-type/sfag-schema-designer.ts +132 -0
- package/src/cli/templates/agents/content/task-type/sfag-test-writer.ts +171 -0
- package/src/cli/templates/agents/index.ts +74 -0
- package/src/cli/templates/commands.ts +179 -0
- package/src/cli/templates/content/sf-autonomous.ts +78 -0
- package/src/cli/templates/content/sf-blockers.ts +68 -0
- package/src/cli/templates/content/sf-commit.ts +78 -0
- package/src/cli/templates/content/sf-context.ts +64 -0
- package/src/cli/templates/content/sf-create-epics.ts +129 -0
- package/src/cli/templates/content/sf-create-spec.ts +136 -0
- package/src/cli/templates/content/sf-create-tickets.ts +148 -0
- package/src/cli/templates/content/sf-epic.ts +69 -0
- package/src/cli/templates/content/sf-help.ts +61 -0
- package/src/cli/templates/content/sf-import.ts +88 -0
- package/src/cli/templates/content/sf-init.ts +61 -0
- package/src/cli/templates/content/sf-next.ts +67 -0
- package/src/cli/templates/content/sf-reset.ts +78 -0
- package/src/cli/templates/content/sf-review.ts +67 -0
- package/src/cli/templates/content/sf-search.ts +64 -0
- package/src/cli/templates/content/sf-status.ts +67 -0
- package/src/cli/templates/content/sf-ticket.ts +76 -0
- package/src/cli/templates/content/sf-validate.ts +78 -0
- package/src/cli/templates/index.ts +16 -0
- package/src/cli/templates/skills/specforge-conventions.md +109 -0
- package/src/cli/templates/skills/specforge-orchestrator.md +401 -0
- package/src/cli/templates/skills/specforge-validator.md +122 -0
- package/src/cli/templates/skills/specforge-worker.md +378 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Schema Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates the extended .specforge.json configuration schema.
|
|
5
|
+
* Each section is validated independently — absent sections are
|
|
6
|
+
* considered valid (all sections are optional).
|
|
7
|
+
*
|
|
8
|
+
* Uses manual validation (no external libs) to match existing patterns.
|
|
9
|
+
*/
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Allowed values (from design doc)
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
const ALLOWED_STRATEGIES = ['auto', 'single', 'parallel', 'phased'];
|
|
14
|
+
const ALLOWED_ESCALATION_POLICIES = ['pause', 'skip', 'ask'];
|
|
15
|
+
const ALLOWED_MONOREPO_TOOLS = ['turborepo', 'nx', 'lerna', 'pnpm', 'npm'];
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Helpers
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
function err(field, message, value) {
|
|
20
|
+
return { field, message, value };
|
|
21
|
+
}
|
|
22
|
+
function isObject(v) {
|
|
23
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
24
|
+
}
|
|
25
|
+
function oneOf(field, value, allowed) {
|
|
26
|
+
if (typeof value !== 'string' || !allowed.includes(value)) {
|
|
27
|
+
return err(field, `Must be one of: ${allowed.join(', ')}`, value);
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
function numberInRange(field, value, min, max) {
|
|
32
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value < min || value > max) {
|
|
33
|
+
return err(field, `Must be a number between ${min} and ${max}`, value);
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
function mustBeBoolean(field, value) {
|
|
38
|
+
if (typeof value !== 'boolean') {
|
|
39
|
+
return err(field, 'Must be a boolean', value);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
function mustBeString(field, value) {
|
|
44
|
+
if (typeof value !== 'string') {
|
|
45
|
+
return err(field, 'Must be a string', value);
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function mustBeNonEmptyString(field, value) {
|
|
50
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
51
|
+
return err(field, 'Must be a non-empty string', value);
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Section validators
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* Validate the `agentTeams` config section.
|
|
60
|
+
*
|
|
61
|
+
* Returns valid:true if the section is absent/undefined.
|
|
62
|
+
* Only validates fields that are present (all are optional).
|
|
63
|
+
*/
|
|
64
|
+
export function validateAgentTeamsConfig(config) {
|
|
65
|
+
if (config === undefined || config === null) {
|
|
66
|
+
return { valid: true, errors: [] };
|
|
67
|
+
}
|
|
68
|
+
const errors = [];
|
|
69
|
+
const prefix = 'agentTeams';
|
|
70
|
+
if (!isObject(config)) {
|
|
71
|
+
return { valid: false, errors: [err(prefix, 'Must be an object', config)] };
|
|
72
|
+
}
|
|
73
|
+
if ('enabled' in config && config.enabled !== undefined) {
|
|
74
|
+
const e = mustBeBoolean(`${prefix}.enabled`, config.enabled);
|
|
75
|
+
if (e)
|
|
76
|
+
errors.push(e);
|
|
77
|
+
}
|
|
78
|
+
if ('strategy' in config && config.strategy !== undefined) {
|
|
79
|
+
const e = oneOf(`${prefix}.strategy`, config.strategy, ALLOWED_STRATEGIES);
|
|
80
|
+
if (e)
|
|
81
|
+
errors.push(e);
|
|
82
|
+
}
|
|
83
|
+
if ('maxParallelTeams' in config && config.maxParallelTeams !== undefined) {
|
|
84
|
+
const e = numberInRange(`${prefix}.maxParallelTeams`, config.maxParallelTeams, 1, 10);
|
|
85
|
+
if (e)
|
|
86
|
+
errors.push(e);
|
|
87
|
+
}
|
|
88
|
+
if ('maxTokensPerWorker' in config && config.maxTokensPerWorker !== undefined) {
|
|
89
|
+
const e = numberInRange(`${prefix}.maxTokensPerWorker`, config.maxTokensPerWorker, 10000, 200000);
|
|
90
|
+
if (e)
|
|
91
|
+
errors.push(e);
|
|
92
|
+
}
|
|
93
|
+
if ('branchPrefix' in config && config.branchPrefix !== undefined) {
|
|
94
|
+
const e = mustBeString(`${prefix}.branchPrefix`, config.branchPrefix);
|
|
95
|
+
if (e)
|
|
96
|
+
errors.push(e);
|
|
97
|
+
}
|
|
98
|
+
if ('branchPattern' in config && config.branchPattern !== undefined) {
|
|
99
|
+
const strErr = mustBeString(`${prefix}.branchPattern`, config.branchPattern);
|
|
100
|
+
if (strErr) {
|
|
101
|
+
errors.push(strErr);
|
|
102
|
+
}
|
|
103
|
+
else if (typeof config.branchPattern === 'string' && !config.branchPattern.includes('{prefix}')) {
|
|
104
|
+
errors.push(err(`${prefix}.branchPattern`, 'Must contain {prefix} placeholder', config.branchPattern));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if ('autoValidate' in config && config.autoValidate !== undefined) {
|
|
108
|
+
const e = mustBeBoolean(`${prefix}.autoValidate`, config.autoValidate);
|
|
109
|
+
if (e)
|
|
110
|
+
errors.push(e);
|
|
111
|
+
}
|
|
112
|
+
if ('validationCommands' in config && config.validationCommands !== undefined) {
|
|
113
|
+
if (!isObject(config.validationCommands)) {
|
|
114
|
+
errors.push(err(`${prefix}.validationCommands`, 'Must be an object', config.validationCommands));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
for (const key of ['test', 'lint', 'typeCheck', 'build']) {
|
|
118
|
+
if (key in config.validationCommands && config.validationCommands[key] !== undefined) {
|
|
119
|
+
const e = mustBeString(`${prefix}.validationCommands.${key}`, config.validationCommands[key]);
|
|
120
|
+
if (e)
|
|
121
|
+
errors.push(e);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if ('timeoutMinutes' in config && config.timeoutMinutes !== undefined) {
|
|
127
|
+
const e = numberInRange(`${prefix}.timeoutMinutes`, config.timeoutMinutes, 5, 60);
|
|
128
|
+
if (e)
|
|
129
|
+
errors.push(e);
|
|
130
|
+
}
|
|
131
|
+
if ('escalationPolicy' in config && config.escalationPolicy !== undefined) {
|
|
132
|
+
const e = oneOf(`${prefix}.escalationPolicy`, config.escalationPolicy, ALLOWED_ESCALATION_POLICIES);
|
|
133
|
+
if (e)
|
|
134
|
+
errors.push(e);
|
|
135
|
+
}
|
|
136
|
+
return { valid: errors.length === 0, errors };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validate the `activeSpecification` config section.
|
|
140
|
+
*
|
|
141
|
+
* Returns valid:true if the section is absent/undefined.
|
|
142
|
+
* When present, `id`, `title`, and `activatedAt` are required.
|
|
143
|
+
*/
|
|
144
|
+
export function validateActiveSpecification(config) {
|
|
145
|
+
if (config === undefined || config === null) {
|
|
146
|
+
return { valid: true, errors: [] };
|
|
147
|
+
}
|
|
148
|
+
const errors = [];
|
|
149
|
+
const prefix = 'activeSpecification';
|
|
150
|
+
if (!isObject(config)) {
|
|
151
|
+
return { valid: false, errors: [err(prefix, 'Must be an object', config)] };
|
|
152
|
+
}
|
|
153
|
+
// id — required, non-empty string
|
|
154
|
+
if (!('id' in config) || config.id === undefined) {
|
|
155
|
+
errors.push(err(`${prefix}.id`, 'Required field is missing', undefined));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
const e = mustBeNonEmptyString(`${prefix}.id`, config.id);
|
|
159
|
+
if (e)
|
|
160
|
+
errors.push(e);
|
|
161
|
+
}
|
|
162
|
+
// title — required, non-empty string, max 200 chars
|
|
163
|
+
if (!('title' in config) || config.title === undefined) {
|
|
164
|
+
errors.push(err(`${prefix}.title`, 'Required field is missing', undefined));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const e = mustBeNonEmptyString(`${prefix}.title`, config.title);
|
|
168
|
+
if (e) {
|
|
169
|
+
errors.push(e);
|
|
170
|
+
}
|
|
171
|
+
else if (typeof config.title === 'string' && config.title.length > 200) {
|
|
172
|
+
errors.push(err(`${prefix}.title`, 'Must be at most 200 characters', config.title));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// activatedAt — required, valid ISO 8601
|
|
176
|
+
if (!('activatedAt' in config) || config.activatedAt === undefined) {
|
|
177
|
+
errors.push(err(`${prefix}.activatedAt`, 'Required field is missing', undefined));
|
|
178
|
+
}
|
|
179
|
+
else if (typeof config.activatedAt !== 'string') {
|
|
180
|
+
errors.push(err(`${prefix}.activatedAt`, 'Must be a string', config.activatedAt));
|
|
181
|
+
}
|
|
182
|
+
else if (isNaN(Date.parse(config.activatedAt))) {
|
|
183
|
+
errors.push(err(`${prefix}.activatedAt`, 'Must be a valid ISO 8601 date string', config.activatedAt));
|
|
184
|
+
}
|
|
185
|
+
return { valid: errors.length === 0, errors };
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Validate the `monorepo` config section.
|
|
189
|
+
*
|
|
190
|
+
* Returns valid:true if the section is absent/undefined.
|
|
191
|
+
* Validates tool enum, workspaces array structure, and path formats.
|
|
192
|
+
*/
|
|
193
|
+
export function validateMonorepoConfig(config) {
|
|
194
|
+
if (config === undefined || config === null) {
|
|
195
|
+
return { valid: true, errors: [] };
|
|
196
|
+
}
|
|
197
|
+
const errors = [];
|
|
198
|
+
const prefix = 'monorepo';
|
|
199
|
+
if (!isObject(config)) {
|
|
200
|
+
return { valid: false, errors: [err(prefix, 'Must be an object', config)] };
|
|
201
|
+
}
|
|
202
|
+
if ('detected' in config && config.detected !== undefined) {
|
|
203
|
+
const e = mustBeBoolean(`${prefix}.detected`, config.detected);
|
|
204
|
+
if (e)
|
|
205
|
+
errors.push(e);
|
|
206
|
+
}
|
|
207
|
+
if ('tool' in config && config.tool !== undefined && config.tool !== null) {
|
|
208
|
+
const e = oneOf(`${prefix}.tool`, config.tool, ALLOWED_MONOREPO_TOOLS);
|
|
209
|
+
if (e)
|
|
210
|
+
errors.push(e);
|
|
211
|
+
}
|
|
212
|
+
if ('rootDir' in config && config.rootDir !== undefined) {
|
|
213
|
+
const e = mustBeString(`${prefix}.rootDir`, config.rootDir);
|
|
214
|
+
if (e)
|
|
215
|
+
errors.push(e);
|
|
216
|
+
}
|
|
217
|
+
if ('workspaces' in config && config.workspaces !== undefined) {
|
|
218
|
+
if (!Array.isArray(config.workspaces)) {
|
|
219
|
+
errors.push(err(`${prefix}.workspaces`, 'Must be an array', config.workspaces));
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
for (let i = 0; i < config.workspaces.length; i++) {
|
|
223
|
+
const entry = config.workspaces[i];
|
|
224
|
+
const entryPrefix = `${prefix}.workspaces[${i}]`;
|
|
225
|
+
if (!isObject(entry)) {
|
|
226
|
+
errors.push(err(entryPrefix, 'Must be an object with name, path, and dependencies', entry));
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
if (!('name' in entry) || typeof entry.name !== 'string' || entry.name.trim().length === 0) {
|
|
230
|
+
errors.push(err(`${entryPrefix}.name`, 'Must be a non-empty string', entry.name));
|
|
231
|
+
}
|
|
232
|
+
if (!('path' in entry) || typeof entry.path !== 'string') {
|
|
233
|
+
errors.push(err(`${entryPrefix}.path`, 'Must be a string', entry.path));
|
|
234
|
+
}
|
|
235
|
+
else if (entry.path.startsWith('/')) {
|
|
236
|
+
errors.push(err(`${entryPrefix}.path`, 'Must be a relative path (no leading /)', entry.path));
|
|
237
|
+
}
|
|
238
|
+
if ('dependencies' in entry && entry.dependencies !== undefined) {
|
|
239
|
+
if (!Array.isArray(entry.dependencies)) {
|
|
240
|
+
errors.push(err(`${entryPrefix}.dependencies`, 'Must be an array of strings', entry.dependencies));
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
for (let j = 0; j < entry.dependencies.length; j++) {
|
|
244
|
+
if (typeof entry.dependencies[j] !== 'string') {
|
|
245
|
+
errors.push(err(`${entryPrefix}.dependencies[${j}]`, 'Must be a string', entry.dependencies[j]));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return { valid: errors.length === 0, errors };
|
|
254
|
+
}
|
|
255
|
+
// ---------------------------------------------------------------------------
|
|
256
|
+
// Top-level validator
|
|
257
|
+
// ---------------------------------------------------------------------------
|
|
258
|
+
/**
|
|
259
|
+
* Validate the entire .specforge.json config for Agent Teams sections.
|
|
260
|
+
*
|
|
261
|
+
* Orchestrates sub-validators and aggregates all errors.
|
|
262
|
+
* Only validates the new Agent Teams sections — existing ProjectConfig
|
|
263
|
+
* fields are validated elsewhere.
|
|
264
|
+
*
|
|
265
|
+
* @param config - Raw parsed JSON object from .specforge.json
|
|
266
|
+
* @returns Combined validation result from all sections
|
|
267
|
+
*/
|
|
268
|
+
export function validateSpecforgeJson(config) {
|
|
269
|
+
if (config === undefined || config === null) {
|
|
270
|
+
return { valid: true, errors: [] };
|
|
271
|
+
}
|
|
272
|
+
if (!isObject(config)) {
|
|
273
|
+
return { valid: false, errors: [err('config', 'Must be an object', config)] };
|
|
274
|
+
}
|
|
275
|
+
const results = [
|
|
276
|
+
validateAgentTeamsConfig(config.agentTeams),
|
|
277
|
+
validateActiveSpecification(config.activeSpecification),
|
|
278
|
+
validateMonorepoConfig(config.monorepo),
|
|
279
|
+
];
|
|
280
|
+
const errors = results.flatMap(r => r.errors);
|
|
281
|
+
return { valid: errors.length === 0, errors };
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Format validation errors into human-readable lines.
|
|
285
|
+
*
|
|
286
|
+
* @param errors - Array of validation errors
|
|
287
|
+
* @returns Formatted error strings, one per line
|
|
288
|
+
*/
|
|
289
|
+
export function formatValidationErrors(errors) {
|
|
290
|
+
return errors.map(e => {
|
|
291
|
+
const valueStr = e.value === undefined ? 'undefined' : JSON.stringify(e.value);
|
|
292
|
+
return ` ${e.field}: ${e.message} (got ${valueStr})`;
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/cli/config/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - Path validation to prevent writes outside allowed directories
|
|
11
11
|
*/
|
|
12
12
|
import { GlobalConfig, ProjectConfig } from './types.js';
|
|
13
|
+
import type { ActiveSpecification, AgentTeamsConfig } from './agent-teams.types.js';
|
|
13
14
|
/**
|
|
14
15
|
* Ensure global config directory exists with secure permissions
|
|
15
16
|
*
|
|
@@ -87,6 +88,44 @@ export declare function deleteGlobalConfigField(field: keyof GlobalConfig): void
|
|
|
87
88
|
* ```
|
|
88
89
|
*/
|
|
89
90
|
export declare function saveProjectConfig(config: Partial<ProjectConfig>, targetDir?: string): void;
|
|
91
|
+
/**
|
|
92
|
+
* Set the active specification in .specforge.json
|
|
93
|
+
*
|
|
94
|
+
* Updates only the `activeSpecification` section, preserving all other fields.
|
|
95
|
+
* Pass `null` to remove the active specification entirely.
|
|
96
|
+
*
|
|
97
|
+
* @param spec - ActiveSpecification to set, or null to clear
|
|
98
|
+
* @param targetDir - Directory containing .specforge.json (defaults to cwd)
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* // Set active specification
|
|
103
|
+
* setActiveSpecification({ id: 'spec_123', title: 'My Spec', activatedAt: new Date().toISOString() });
|
|
104
|
+
*
|
|
105
|
+
* // Clear active specification
|
|
106
|
+
* setActiveSpecification(null);
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function setActiveSpecification(spec: ActiveSpecification | null, targetDir?: string): void;
|
|
110
|
+
/**
|
|
111
|
+
* Update the Agent Teams configuration in .specforge.json
|
|
112
|
+
*
|
|
113
|
+
* Merges the provided partial config with the existing `agentTeams` section,
|
|
114
|
+
* preserving all other fields. Only the keys present in `config` are overwritten.
|
|
115
|
+
*
|
|
116
|
+
* @param config - Partial AgentTeamsConfig to merge
|
|
117
|
+
* @param targetDir - Directory containing .specforge.json (defaults to cwd)
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* // Enable agent teams
|
|
122
|
+
* setAgentTeamsConfig({ enabled: true });
|
|
123
|
+
*
|
|
124
|
+
* // Update strategy and timeout, keeping other settings
|
|
125
|
+
* setAgentTeamsConfig({ strategy: 'parallel', timeoutMinutes: 30 });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function setAgentTeamsConfig(config: Partial<AgentTeamsConfig>, targetDir?: string): void;
|
|
90
129
|
/**
|
|
91
130
|
* MCP server configuration with optional environment variables
|
|
92
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/cli/config/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/cli/config/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAsBhC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAetC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAgCpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,IAAI,CAuBvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAgCN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAaN;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACjC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAUN;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,UAAU,EAAE;QACV,SAAS,EAAE,eAAe,CAAC;KAC5B,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAkBhE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAmBtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAiCzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C"}
|
|
@@ -181,6 +181,64 @@ export function saveProjectConfig(config, targetDir) {
|
|
|
181
181
|
`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Set the active specification in .specforge.json
|
|
186
|
+
*
|
|
187
|
+
* Updates only the `activeSpecification` section, preserving all other fields.
|
|
188
|
+
* Pass `null` to remove the active specification entirely.
|
|
189
|
+
*
|
|
190
|
+
* @param spec - ActiveSpecification to set, or null to clear
|
|
191
|
+
* @param targetDir - Directory containing .specforge.json (defaults to cwd)
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```typescript
|
|
195
|
+
* // Set active specification
|
|
196
|
+
* setActiveSpecification({ id: 'spec_123', title: 'My Spec', activatedAt: new Date().toISOString() });
|
|
197
|
+
*
|
|
198
|
+
* // Clear active specification
|
|
199
|
+
* setActiveSpecification(null);
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
export function setActiveSpecification(spec, targetDir) {
|
|
203
|
+
const existing = loadProjectConfig() || {};
|
|
204
|
+
const updated = structuredClone(existing);
|
|
205
|
+
if (spec === null) {
|
|
206
|
+
// Set to undefined (not delete) so the spread in saveProjectConfig
|
|
207
|
+
// overrides the existing value, and the remove-undefined loop cleans it up.
|
|
208
|
+
updated.activeSpecification = undefined;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
updated.activeSpecification = spec;
|
|
212
|
+
}
|
|
213
|
+
saveProjectConfig(updated, targetDir);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Update the Agent Teams configuration in .specforge.json
|
|
217
|
+
*
|
|
218
|
+
* Merges the provided partial config with the existing `agentTeams` section,
|
|
219
|
+
* preserving all other fields. Only the keys present in `config` are overwritten.
|
|
220
|
+
*
|
|
221
|
+
* @param config - Partial AgentTeamsConfig to merge
|
|
222
|
+
* @param targetDir - Directory containing .specforge.json (defaults to cwd)
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* // Enable agent teams
|
|
227
|
+
* setAgentTeamsConfig({ enabled: true });
|
|
228
|
+
*
|
|
229
|
+
* // Update strategy and timeout, keeping other settings
|
|
230
|
+
* setAgentTeamsConfig({ strategy: 'parallel', timeoutMinutes: 30 });
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
export function setAgentTeamsConfig(config, targetDir) {
|
|
234
|
+
const existing = loadProjectConfig() || {};
|
|
235
|
+
const updated = structuredClone(existing);
|
|
236
|
+
updated.agentTeams = {
|
|
237
|
+
...updated.agentTeams,
|
|
238
|
+
...config,
|
|
239
|
+
};
|
|
240
|
+
saveProjectConfig(updated, targetDir);
|
|
241
|
+
}
|
|
184
242
|
/**
|
|
185
243
|
* Generate MCP configuration for Claude Code integration
|
|
186
244
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/config/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/config/writer.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC;;GAEG;AACH,QAAA,MAAM,WAAW,UAAU,CAAC;AAgM5B;;GAEG;AACH,QAAA,MAAM,OAAO,SAAkB,CAAC;AAShC;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,IAAI,CAQ1D;AAED;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { authGuardHook } from './middleware/auth-guard.js';
|
|
|
9
9
|
import { withErrorHandler, debugLog } from './middleware/error-handler.js';
|
|
10
10
|
import { resolveConfig } from './config/loader.js';
|
|
11
11
|
import { colors } from './ui/index.js';
|
|
12
|
-
import { registerLoginCommand, registerInitCommand, registerConfigureCommand, registerDoctorCommand, registerStatusCommand, registerProjectsCommand, registerSpecsCommand, registerSwitchCommand, registerTicketsCommand, registerNextCommand, registerBlockedCommand, registerFeedbackCommand, registerBlueprintsCommand, registerMembersCommand, registerInvitationsCommand, registerCheckCircularCommand, registerTreeCommand, registerCriticalPathCommand, } from './commands/index.js';
|
|
12
|
+
import { registerLoginCommand, registerInitCommand, registerConfigureCommand, registerDoctorCommand, registerStatusCommand, registerProjectsCommand, registerSpecsCommand, registerSwitchCommand, registerTicketsCommand, registerNextCommand, registerBlockedCommand, registerFeedbackCommand, registerBlueprintsCommand, registerMembersCommand, registerInvitationsCommand, registerCheckCircularCommand, registerTreeCommand, registerCriticalPathCommand, registerSpecActivateCommand, registerPlanCommand, } from './commands/index.js';
|
|
13
13
|
import { registerTicketCommand } from './commands/ticket/index.js';
|
|
14
14
|
import { registerSessionCommands } from './commands/session/index.js';
|
|
15
15
|
import { registerDebugCommands } from './commands/debug/index.js';
|
|
@@ -115,6 +115,10 @@ function registerCommands(program) {
|
|
|
115
115
|
registerTreeCommand(program);
|
|
116
116
|
// Critical Path Command (implemented)
|
|
117
117
|
registerCriticalPathCommand(program);
|
|
118
|
+
// Spec Activate/Deactivate Commands (Agent Teams)
|
|
119
|
+
registerSpecActivateCommand(program);
|
|
120
|
+
// Plan Command - Preview Agent Teams implementation plan
|
|
121
|
+
registerPlanCommand(program);
|
|
118
122
|
// E11 - Ticket Command (implemented)
|
|
119
123
|
registerTicketCommand(program);
|
|
120
124
|
// E12 - Session Commands (implemented)
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -5,4 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { type OutputFormat, formatResponse, formatArrayResponse, formatErrorResponse, formatSuccessResponse, isValidFormat, getFormatFromArgs, } from './format.js';
|
|
7
7
|
export { type WorkflowStep, type WorkflowDefinition, type ReviewChecklistItem, type ReviewWorkflowDefinition, type FinalizeWorkflowDefinition, type WorkflowType, CREATION_WORKFLOW, IMPLEMENTATION_WORKFLOW, REVIEW_WORKFLOW, FINALIZE_WORKFLOW, WORKFLOW_TYPES, getWorkflowDefinition, } from './workflow-definitions.js';
|
|
8
|
+
export { type SpecSummary, type EpicSummary, type TicketSummary, type DependencyEdge, type Strategy, type StrategyRecommendation, CROSS_DEP_THRESHOLD, SINGLE_SESSION_MAX_TICKETS, analyzeStrategy, } from './strategy-analyzer.js';
|
|
9
|
+
export { type MonorepoTool, type MonorepoInfo, detectMonorepo, } from './monorepo-detector.js';
|
|
10
|
+
export { type TicketContext, type EpicContext, type SpecContext, type WorkspaceContext, type ConventionsContext, type ValidationCommands as PromptValidationCommands, generateWorkerPrompt, generateValidatorPrompt, } from './prompt-generator.js';
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,IAAI,wBAAwB,EACnD,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -5,4 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { formatResponse, formatArrayResponse, formatErrorResponse, formatSuccessResponse, isValidFormat, getFormatFromArgs, } from './format.js';
|
|
7
7
|
export { CREATION_WORKFLOW, IMPLEMENTATION_WORKFLOW, REVIEW_WORKFLOW, FINALIZE_WORKFLOW, WORKFLOW_TYPES, getWorkflowDefinition, } from './workflow-definitions.js';
|
|
8
|
+
export { CROSS_DEP_THRESHOLD, SINGLE_SESSION_MAX_TICKETS, analyzeStrategy, } from './strategy-analyzer.js';
|
|
9
|
+
export { detectMonorepo, } from './monorepo-detector.js';
|
|
10
|
+
export { generateWorkerPrompt, generateValidatorPrompt, } from './prompt-generator.js';
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAOL,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAOL,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAOL,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAGL,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAOL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monorepo Detection Utility
|
|
3
|
+
*
|
|
4
|
+
* Detects monorepo setups by checking for tool-specific config files.
|
|
5
|
+
* Returns the detected tool, workspace globs, resolved workspace paths,
|
|
6
|
+
* and package manager. Returns null for single-project repos.
|
|
7
|
+
*
|
|
8
|
+
* Detection priority: turborepo → nx → lerna → pnpm → npm → yarn
|
|
9
|
+
*
|
|
10
|
+
* This runs locally (MCP stdio transport only). For SSE/cloud transport
|
|
11
|
+
* the caller should skip detection and return null.
|
|
12
|
+
*/
|
|
13
|
+
export type MonorepoTool = 'turborepo' | 'nx' | 'lerna' | 'pnpm' | 'npm' | 'yarn';
|
|
14
|
+
export interface MonorepoInfo {
|
|
15
|
+
/** Detected monorepo tool */
|
|
16
|
+
type: MonorepoTool;
|
|
17
|
+
/** Raw workspace glob patterns (e.g., ["packages/*", "apps/*"]) */
|
|
18
|
+
workspaces: string[];
|
|
19
|
+
/** Resolved directory paths that match the workspace globs */
|
|
20
|
+
resolvedPaths: string[];
|
|
21
|
+
/** Detected package manager */
|
|
22
|
+
packageManager: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Detect monorepo configuration from a project root directory.
|
|
26
|
+
*
|
|
27
|
+
* @param projectRoot Absolute or relative path to the project root.
|
|
28
|
+
* @returns MonorepoInfo if a monorepo setup is detected, null otherwise.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectMonorepo(projectRoot: string): MonorepoInfo | null;
|
|
31
|
+
//# sourceMappingURL=monorepo-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-detector.d.ts","sourceRoot":"","sources":["../../src/lib/monorepo-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA2BvE"}
|