@hivehub/rulebook 3.3.0 → 3.4.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.
- package/.claude-plugin/marketplace.json +29 -29
- package/.claude-plugin/plugin.json +8 -8
- package/dist/agents/ralph-parser.d.ts +8 -9
- package/dist/agents/ralph-parser.d.ts.map +1 -1
- package/dist/agents/ralph-parser.js +37 -33
- package/dist/agents/ralph-parser.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +4 -114
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/agent-manager.d.ts +7 -34
- package/dist/core/agent-manager.d.ts.map +1 -1
- package/dist/core/agent-manager.js +7 -224
- package/dist/core/agent-manager.js.map +1 -1
- package/dist/core/cli-bridge.js +1 -1
- package/dist/core/cli-bridge.js.map +1 -1
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +18 -5
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +33 -34
- package/dist/core/generator.js.map +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/migrator.js +1 -1
- package/dist/core/migrator.js.map +1 -1
- package/dist/core/modern-console.d.ts +1 -2
- package/dist/core/modern-console.d.ts.map +1 -1
- package/dist/core/modern-console.js +6 -18
- package/dist/core/modern-console.js.map +1 -1
- package/dist/core/ralph-manager.d.ts +34 -0
- package/dist/core/ralph-manager.d.ts.map +1 -1
- package/dist/core/ralph-manager.js +107 -4
- package/dist/core/ralph-manager.js.map +1 -1
- package/dist/core/task-manager.d.ts +1 -1
- package/dist/core/task-manager.js +25 -25
- package/dist/core/workflow-generator.js +1 -1
- package/dist/core/workflow-generator.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +292 -142
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/types.d.ts +0 -32
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "hivehub-marketplace",
|
|
3
|
-
"owner": {
|
|
4
|
-
"name": "HiveLLM Team",
|
|
5
|
-
"email": "support@hivellm.com",
|
|
6
|
-
"url": "https://github.com/hivellm"
|
|
7
|
-
},
|
|
8
|
-
"plugins": [
|
|
9
|
-
{
|
|
10
|
-
"name": "rulebook",
|
|
11
|
-
"source": ".",
|
|
12
|
-
"description": "Standardize AI-generated projects with skills, templates, persistent memory, and quality gates. Supports 28 languages, 17 frameworks, 13 MCP modules, and 20 services.",
|
|
13
|
-
"version": "3.
|
|
14
|
-
"repository": "https://github.com/hivellm/rulebook",
|
|
15
|
-
"homepage": "https://github.com/hivellm/rulebook#readme",
|
|
16
|
-
"keywords": [
|
|
17
|
-
"ai",
|
|
18
|
-
"automation",
|
|
19
|
-
"templates",
|
|
20
|
-
"standards",
|
|
21
|
-
"skills",
|
|
22
|
-
"mcp",
|
|
23
|
-
"task-management",
|
|
24
|
-
"quality-gates"
|
|
25
|
-
]
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "hivehub-marketplace",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "HiveLLM Team",
|
|
5
|
+
"email": "support@hivellm.com",
|
|
6
|
+
"url": "https://github.com/hivellm"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "rulebook",
|
|
11
|
+
"source": ".",
|
|
12
|
+
"description": "Standardize AI-generated projects with skills, templates, persistent memory, and quality gates. Supports 28 languages, 17 frameworks, 13 MCP modules, and 20 services.",
|
|
13
|
+
"version": "3.4.2",
|
|
14
|
+
"repository": "https://github.com/hivellm/rulebook",
|
|
15
|
+
"homepage": "https://github.com/hivellm/rulebook#readme",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ai",
|
|
18
|
+
"automation",
|
|
19
|
+
"templates",
|
|
20
|
+
"standards",
|
|
21
|
+
"skills",
|
|
22
|
+
"mcp",
|
|
23
|
+
"task-management",
|
|
24
|
+
"quality-gates"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "rulebook",
|
|
3
|
-
"description": "Standardize AI-generated projects with Ralph autonomous loop, persistent memory, and quality gates. Supports 28 languages, 17 frameworks, 13 MCP modules, and 20 services.",
|
|
4
|
-
"version": "3.
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "HiveLLM"
|
|
7
|
-
}
|
|
8
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "rulebook",
|
|
3
|
+
"description": "Standardize AI-generated projects with Ralph autonomous loop, persistent memory, and quality gates. Supports 28 languages, 17 frameworks, 13 MCP modules, and 20 services.",
|
|
4
|
+
"version": "3.4.2",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "HiveLLM"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -9,9 +9,16 @@ export declare class RalphParser {
|
|
|
9
9
|
*/
|
|
10
10
|
static parseAgentOutput(agentOutput: string, iterationNum: number, taskId: string, taskTitle: string, tool: 'claude' | 'amp' | 'gemini'): IterationResult;
|
|
11
11
|
/**
|
|
12
|
-
* Extract quality check results from agent output
|
|
12
|
+
* Extract quality check results from agent output.
|
|
13
|
+
* Uses line-level matching to avoid false positives from global keyword presence.
|
|
14
|
+
* Note: In MCP ralph_run, real quality gates are determined by actual command exit codes,
|
|
15
|
+
* not this parser. This is a best-effort extraction for standalone parsing.
|
|
13
16
|
*/
|
|
14
17
|
private static extractQualityChecks;
|
|
18
|
+
/**
|
|
19
|
+
* Helper: Check if a single line contains percentage >= threshold
|
|
20
|
+
*/
|
|
21
|
+
private static lineHasPercentageAbove;
|
|
15
22
|
/**
|
|
16
23
|
* Determine overall iteration status
|
|
17
24
|
*/
|
|
@@ -40,13 +47,5 @@ export declare class RalphParser {
|
|
|
40
47
|
* Check if iteration completion is detected
|
|
41
48
|
*/
|
|
42
49
|
private static isCompletionDetected;
|
|
43
|
-
/**
|
|
44
|
-
* Helper: Check if output contains keyword (case-insensitive)
|
|
45
|
-
*/
|
|
46
|
-
private static hasKeyword;
|
|
47
|
-
/**
|
|
48
|
-
* Helper: Check if output contains percentage >= threshold
|
|
49
|
-
*/
|
|
50
|
-
private static hasPercentageAbove;
|
|
51
50
|
}
|
|
52
51
|
//# sourceMappingURL=ralph-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralph-parser.d.ts","sourceRoot":"","sources":["../../src/agents/ralph-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAChC,eAAe;IA4ClB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ralph-parser.d.ts","sourceRoot":"","sources":["../../src/agents/ralph-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAChC,eAAe;IA4ClB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmDnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAwB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA4B/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IA4B5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAa/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAcpC"}
|
|
@@ -42,21 +42,31 @@ export class RalphParser {
|
|
|
42
42
|
return result;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* Extract quality check results from agent output
|
|
45
|
+
* Extract quality check results from agent output.
|
|
46
|
+
* Uses line-level matching to avoid false positives from global keyword presence.
|
|
47
|
+
* Note: In MCP ralph_run, real quality gates are determined by actual command exit codes,
|
|
48
|
+
* not this parser. This is a best-effort extraction for standalone parsing.
|
|
46
49
|
*/
|
|
47
50
|
static extractQualityChecks(output) {
|
|
48
|
-
const
|
|
49
|
-
// Look for
|
|
50
|
-
const typeCheckPass =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
!
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
const lines = output.split('\n').map((l) => l.toLowerCase().trim());
|
|
52
|
+
// Look for explicit pass/fail patterns on the SAME line as the gate keyword
|
|
53
|
+
const typeCheckPass = lines.some((l) => (l.includes('type-check') || l.includes('tsc')) &&
|
|
54
|
+
(l.includes('pass') || l.includes('success') || l.includes('✓')) &&
|
|
55
|
+
!l.includes('fail') &&
|
|
56
|
+
!l.includes('error'));
|
|
57
|
+
const lintPass = lines.some((l) => (l.includes('eslint') || (l.includes('lint') && !l.includes('linting issues'))) &&
|
|
58
|
+
(l.includes('pass') ||
|
|
59
|
+
l.includes('success') ||
|
|
60
|
+
l.includes('✓') ||
|
|
61
|
+
l.includes('0 problems')) &&
|
|
62
|
+
!l.includes('fail') &&
|
|
63
|
+
!l.includes('error'));
|
|
64
|
+
const testsPass = lines.some((l) => (l.includes('test') || l.includes('vitest') || l.includes('jest')) &&
|
|
65
|
+
(l.includes('pass') || l.includes('passed') || l.includes('✓') || l.includes('success')) &&
|
|
66
|
+
!l.includes('fail') &&
|
|
67
|
+
!l.includes('error'));
|
|
68
|
+
const coveragePass = lines.some((l) => l.includes('coverage') && this.lineHasPercentageAbove(l, 95)) ||
|
|
69
|
+
lines.some((l) => l.includes('coverage') && (l.includes('pass') || l.includes('met') || l.includes('✓')));
|
|
60
70
|
return {
|
|
61
71
|
type_check: typeCheckPass,
|
|
62
72
|
lint: lintPass,
|
|
@@ -64,6 +74,20 @@ export class RalphParser {
|
|
|
64
74
|
coverage_met: coveragePass,
|
|
65
75
|
};
|
|
66
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Helper: Check if a single line contains percentage >= threshold
|
|
79
|
+
*/
|
|
80
|
+
static lineHasPercentageAbove(line, threshold) {
|
|
81
|
+
// eslint-disable-next-line no-useless-escape
|
|
82
|
+
const percentMatches = line.match(/(\d+(?:\.\d+)?)%/g);
|
|
83
|
+
if (!percentMatches) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return percentMatches.some((match) => {
|
|
87
|
+
const percent = parseFloat(match);
|
|
88
|
+
return percent >= threshold;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
67
91
|
/**
|
|
68
92
|
* Determine overall iteration status
|
|
69
93
|
*/
|
|
@@ -199,25 +223,5 @@ export class RalphParser {
|
|
|
199
223
|
const lowerOutput = output.toLowerCase();
|
|
200
224
|
return completionKeywords.some((kw) => lowerOutput.includes(kw));
|
|
201
225
|
}
|
|
202
|
-
/**
|
|
203
|
-
* Helper: Check if output contains keyword (case-insensitive)
|
|
204
|
-
*/
|
|
205
|
-
static hasKeyword(output, keywords) {
|
|
206
|
-
return keywords.some((kw) => output.toLowerCase().includes(kw.toLowerCase()));
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Helper: Check if output contains percentage >= threshold
|
|
210
|
-
*/
|
|
211
|
-
static hasPercentageAbove(output, threshold) {
|
|
212
|
-
// eslint-disable-next-line no-useless-escape
|
|
213
|
-
const percentMatches = output.match(/(\d+(?:\.\d+)?)%/g);
|
|
214
|
-
if (!percentMatches) {
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
return percentMatches.some((match) => {
|
|
218
|
-
const percent = parseFloat(match);
|
|
219
|
-
return percent >= threshold;
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
226
|
}
|
|
223
227
|
//# sourceMappingURL=ralph-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ralph-parser.js","sourceRoot":"","sources":["../../src/agents/ralph-parser.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAmB,EACnB,YAAoB,EACpB,MAAc,EACd,SAAiB,EACjB,IAAiC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE7D,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAEnD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAErD,+BAA+B;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE1D,0EAA0E;QAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE7C,MAAM,MAAM,GAAoB;YAC9B,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,SAAS;YACrB,MAAM;YACN,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,aAAa;YAChC,cAAc,EAAE,aAAa;YAC7B,cAAc,EAAE,OAAO;YACvB,UAAU,EAAE,SAAS;YACrB,SAAS;YACT,MAAM;YACN,QAAQ,EAAE;gBACR,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;gBACtD,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;aAC1D;SACF,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"ralph-parser.js","sourceRoot":"","sources":["../../src/agents/ralph-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AA8DA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuWhB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DrD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCtD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6DtD;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CnF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACnC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoChB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CnF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkDnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA0DhD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAcpD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhB;AAGD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -839,8 +839,7 @@ export async function taskCreateCommand(taskId) {
|
|
|
839
839
|
console.log(chalk.green(`✅ Task ${taskId} created successfully`));
|
|
840
840
|
console.log(chalk.gray(`Location: ${rulebookDir}/tasks/${taskId}/`));
|
|
841
841
|
console.log(chalk.yellow('\n⚠️ Remember to:'));
|
|
842
|
-
console.log(chalk.gray(' 1.
|
|
843
|
-
console.log(chalk.gray(' 2. Fill in proposal.md (minimum 20 characters in "Why" section)'));
|
|
842
|
+
console.log(chalk.gray(' 1. Fill in proposal.md (minimum 20 characters in "Why" section)'));
|
|
844
843
|
console.log(chalk.gray(' 3. Add tasks to tasks.md'));
|
|
845
844
|
console.log(chalk.gray(' 4. Create spec deltas in specs/*/spec.md'));
|
|
846
845
|
console.log(chalk.gray(' 5. Validate with: rulebook task validate ' + taskId));
|
|
@@ -1097,8 +1096,8 @@ export async function tasksCommand(options) {
|
|
|
1097
1096
|
console.log(chalk.gray(' - rulebook task validate <task-id>'));
|
|
1098
1097
|
console.log(chalk.gray(' - rulebook task archive <task-id>'));
|
|
1099
1098
|
if (options.tree || options.current || options.status) {
|
|
1100
|
-
console.log(chalk.red('\n❌ Legacy
|
|
1101
|
-
console.log(chalk.yellow('Please
|
|
1099
|
+
console.log(chalk.red('\n❌ Legacy commands are no longer supported.'));
|
|
1100
|
+
console.log(chalk.yellow('Please use the Rulebook task system.'));
|
|
1102
1101
|
process.exit(1);
|
|
1103
1102
|
}
|
|
1104
1103
|
// Fallback to list tasks
|
|
@@ -1217,116 +1216,7 @@ export async function updateCommand(options) {
|
|
|
1217
1216
|
license: 'MIT',
|
|
1218
1217
|
});
|
|
1219
1218
|
}
|
|
1220
|
-
//
|
|
1221
|
-
const openspecChangesPath = path.join(cwd, 'openspec', 'changes');
|
|
1222
|
-
if (existsSync(openspecChangesPath)) {
|
|
1223
|
-
const migrationSpinner = ora('Migrating OpenSpec tasks to Rulebook format...').start();
|
|
1224
|
-
const { migrateOpenSpecToRulebook, migrateOpenSpecArchives, removeOpenSpecRulebookFile } = await import('../core/openspec-migrator.js');
|
|
1225
|
-
const rulebookDir = config.rulebookDir || '.rulebook';
|
|
1226
|
-
const migrationResult = await migrateOpenSpecToRulebook(cwd, rulebookDir);
|
|
1227
|
-
const archiveMigrationResult = await migrateOpenSpecArchives(cwd, rulebookDir);
|
|
1228
|
-
if (migrationResult.migrated > 0 || archiveMigrationResult.migrated > 0) {
|
|
1229
|
-
const totalMigrated = migrationResult.migrated + archiveMigrationResult.migrated;
|
|
1230
|
-
migrationSpinner.succeed(`Migrated ${totalMigrated} OpenSpec task(s) to Rulebook format`);
|
|
1231
|
-
if (migrationResult.migratedTasks.length > 0) {
|
|
1232
|
-
console.log(chalk.gray(` Active tasks: ${migrationResult.migratedTasks.join(', ')}`));
|
|
1233
|
-
}
|
|
1234
|
-
if (archiveMigrationResult.migratedTasks.length > 0) {
|
|
1235
|
-
console.log(chalk.gray(` Archived tasks: ${archiveMigrationResult.migratedTasks.join(', ')}`));
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
else if (migrationResult.skipped > 0 || archiveMigrationResult.skipped > 0) {
|
|
1239
|
-
migrationSpinner.info('No OpenSpec tasks to migrate (already migrated or none found)');
|
|
1240
|
-
}
|
|
1241
|
-
else {
|
|
1242
|
-
migrationSpinner.info('No OpenSpec tasks found');
|
|
1243
|
-
}
|
|
1244
|
-
const allErrors = [...migrationResult.errors, ...archiveMigrationResult.errors];
|
|
1245
|
-
if (allErrors.length > 0) {
|
|
1246
|
-
console.log(chalk.yellow('\n⚠️ Migration warnings:'));
|
|
1247
|
-
for (const error of allErrors) {
|
|
1248
|
-
console.log(chalk.yellow(` - ${error}`));
|
|
1249
|
-
}
|
|
1250
|
-
}
|
|
1251
|
-
// Remove /.rulebook/specs/OPENSPEC.md if exists
|
|
1252
|
-
const removed = await removeOpenSpecRulebookFile(cwd, rulebookDir);
|
|
1253
|
-
if (removed) {
|
|
1254
|
-
console.log(chalk.gray(` Removed /${rulebookDir}/specs/OPENSPEC.md`));
|
|
1255
|
-
}
|
|
1256
|
-
// Remove OpenSpec commands from .cursor/commands/
|
|
1257
|
-
const { removeOpenSpecCommands } = await import('../core/openspec-migrator.js');
|
|
1258
|
-
const removedCommands = await removeOpenSpecCommands(cwd);
|
|
1259
|
-
if (removedCommands > 0) {
|
|
1260
|
-
console.log(chalk.gray(` Removed ${removedCommands} OpenSpec command(s) from .cursor/commands/`));
|
|
1261
|
-
}
|
|
1262
|
-
// Generate Rulebook commands if Cursor is detected or if OpenSpec was used (likely Cursor project)
|
|
1263
|
-
const cursorRulesPath = path.join(cwd, '.cursorrules');
|
|
1264
|
-
const cursorCommandsDir = path.join(cwd, '.cursor', 'commands');
|
|
1265
|
-
const usesCursor = existsSync(cursorRulesPath) || existsSync(cursorCommandsDir);
|
|
1266
|
-
// Always generate commands if OpenSpec exists (OpenSpec was primarily used with Cursor)
|
|
1267
|
-
// or if Cursor is explicitly detected
|
|
1268
|
-
if (usesCursor || removedCommands > 0) {
|
|
1269
|
-
const { generateCursorCommands } = await import('../core/workflow-generator.js');
|
|
1270
|
-
const generatedCommands = await generateCursorCommands(cwd);
|
|
1271
|
-
if (generatedCommands.length > 0) {
|
|
1272
|
-
console.log(chalk.green(` Generated ${generatedCommands.length} Rulebook command(s) in .cursor/commands/`));
|
|
1273
|
-
}
|
|
1274
|
-
else if (usesCursor || removedCommands > 0) {
|
|
1275
|
-
// Commands already exist, just inform user
|
|
1276
|
-
console.log(chalk.gray(' Rulebook commands already exist in .cursor/commands/'));
|
|
1277
|
-
}
|
|
1278
|
-
}
|
|
1279
|
-
// Remove OpenSpec directory after successful migration
|
|
1280
|
-
const openspecPath = path.join(cwd, 'openspec');
|
|
1281
|
-
if (existsSync(openspecPath)) {
|
|
1282
|
-
const hasErrors = migrationResult.errors.length > 0 || archiveMigrationResult.errors.length > 0;
|
|
1283
|
-
// Remove directory if no errors occurred (migration was successful)
|
|
1284
|
-
// Even if no tasks were migrated (already migrated or empty), remove the directory
|
|
1285
|
-
if (!hasErrors) {
|
|
1286
|
-
try {
|
|
1287
|
-
const { rmSync } = await import('fs');
|
|
1288
|
-
rmSync(openspecPath, { recursive: true, force: true });
|
|
1289
|
-
console.log(chalk.gray(' Removed /openspec directory'));
|
|
1290
|
-
}
|
|
1291
|
-
catch (error) {
|
|
1292
|
-
console.log(chalk.yellow(` ⚠️ Could not remove /openspec directory: ${error.message}`));
|
|
1293
|
-
}
|
|
1294
|
-
}
|
|
1295
|
-
else {
|
|
1296
|
-
console.log(chalk.yellow(' ⚠️ /openspec directory kept due to migration errors (review and remove manually)'));
|
|
1297
|
-
}
|
|
1298
|
-
}
|
|
1299
|
-
}
|
|
1300
|
-
else {
|
|
1301
|
-
// Check if /openspec directory exists (even without /openspec/changes)
|
|
1302
|
-
const openspecPath = path.join(cwd, 'openspec');
|
|
1303
|
-
if (existsSync(openspecPath)) {
|
|
1304
|
-
// Remove OpenSpec commands and generate Rulebook commands
|
|
1305
|
-
const { removeOpenSpecCommands } = await import('../core/openspec-migrator.js');
|
|
1306
|
-
const removedCommands = await removeOpenSpecCommands(cwd);
|
|
1307
|
-
if (removedCommands > 0) {
|
|
1308
|
-
console.log(chalk.gray(` Removed ${removedCommands} OpenSpec command(s) from .cursor/commands/`));
|
|
1309
|
-
}
|
|
1310
|
-
// Generate Rulebook commands if Cursor is detected or if OpenSpec was used
|
|
1311
|
-
const cursorRulesPath = path.join(cwd, '.cursorrules');
|
|
1312
|
-
const cursorCommandsDir = path.join(cwd, '.cursor', 'commands');
|
|
1313
|
-
const usesCursor = existsSync(cursorRulesPath) || existsSync(cursorCommandsDir);
|
|
1314
|
-
// Always generate commands if OpenSpec exists (OpenSpec was primarily used with Cursor)
|
|
1315
|
-
// or if Cursor is explicitly detected
|
|
1316
|
-
if (usesCursor || removedCommands > 0) {
|
|
1317
|
-
const { generateCursorCommands } = await import('../core/workflow-generator.js');
|
|
1318
|
-
const generatedCommands = await generateCursorCommands(cwd);
|
|
1319
|
-
if (generatedCommands.length > 0) {
|
|
1320
|
-
console.log(chalk.green(` Generated ${generatedCommands.length} Rulebook command(s) in .cursor/commands/`));
|
|
1321
|
-
}
|
|
1322
|
-
else if (usesCursor || removedCommands > 0) {
|
|
1323
|
-
// Commands already exist, just inform user
|
|
1324
|
-
console.log(chalk.gray(' Rulebook commands already exist in .cursor/commands/'));
|
|
1325
|
-
}
|
|
1326
|
-
}
|
|
1327
|
-
}
|
|
1328
|
-
}
|
|
1329
|
-
// Always generate Rulebook commands if Cursor is detected (even without OpenSpec)
|
|
1219
|
+
// Generate Rulebook commands if Cursor is detected
|
|
1330
1220
|
// This ensures commands are available for all Cursor projects
|
|
1331
1221
|
const cursorRulesPath = path.join(cwd, '.cursorrules');
|
|
1332
1222
|
const cursorCommandsDir = path.join(cwd, '.cursor', 'commands');
|