bmalph 2.7.5 → 2.7.6
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 +20 -5
- package/dist/commands/doctor-runtime-checks.js +104 -86
- package/dist/commands/doctor-runtime-checks.js.map +1 -1
- package/dist/installer/bmad-assets.js +182 -0
- package/dist/installer/bmad-assets.js.map +1 -0
- package/dist/installer/commands.js +324 -0
- package/dist/installer/commands.js.map +1 -0
- package/dist/installer/install.js +42 -0
- package/dist/installer/install.js.map +1 -0
- package/dist/installer/metadata.js +56 -0
- package/dist/installer/metadata.js.map +1 -0
- package/dist/installer/project-files.js +169 -0
- package/dist/installer/project-files.js.map +1 -0
- package/dist/installer/ralph-assets.js +91 -0
- package/dist/installer/ralph-assets.js.map +1 -0
- package/dist/installer/template-files.js +168 -0
- package/dist/installer/template-files.js.map +1 -0
- package/dist/installer/types.js +2 -0
- package/dist/installer/types.js.map +1 -0
- package/dist/installer.js +5 -843
- package/dist/installer.js.map +1 -1
- package/dist/transition/artifact-loading.js +91 -0
- package/dist/transition/artifact-loading.js.map +1 -0
- package/dist/transition/context-output.js +85 -0
- package/dist/transition/context-output.js.map +1 -0
- package/dist/transition/fix-plan-sync.js +119 -0
- package/dist/transition/fix-plan-sync.js.map +1 -0
- package/dist/transition/orchestration.js +25 -362
- package/dist/transition/orchestration.js.map +1 -1
- package/dist/transition/specs-sync.js +78 -2
- package/dist/transition/specs-sync.js.map +1 -1
- package/dist/utils/ralph-runtime-state.js +222 -0
- package/dist/utils/ralph-runtime-state.js.map +1 -0
- package/dist/utils/state.js +17 -16
- package/dist/utils/state.js.map +1 -1
- package/dist/utils/validate.js +16 -0
- package/dist/utils/validate.js.map +1 -1
- package/dist/watch/renderer.js +48 -6
- package/dist/watch/renderer.js.map +1 -1
- package/dist/watch/state-reader.js +79 -44
- package/dist/watch/state-reader.js.map +1 -1
- package/package.json +1 -1
- package/ralph/RALPH-REFERENCE.md +33 -13
- package/ralph/drivers/claude-code.sh +25 -0
- package/ralph/drivers/codex.sh +11 -0
- package/ralph/drivers/copilot.sh +11 -0
- package/ralph/drivers/cursor.sh +11 -0
- package/ralph/lib/circuit_breaker.sh +3 -3
- package/ralph/lib/date_utils.sh +28 -9
- package/ralph/lib/response_analyzer.sh +127 -7
- package/ralph/ralph_loop.sh +464 -121
- package/ralph/templates/PROMPT.md +5 -0
- package/ralph/templates/ralphrc.template +14 -4
package/dist/installer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { debug, info, warn } from "../utils/logger.js";
|
|
4
|
+
import { formatError } from "../utils/errors.js";
|
|
5
|
+
import { getFilesRecursive } from "../utils/file-system.js";
|
|
6
|
+
import { collectTransitionArtifacts, } from "./artifact-collection.js";
|
|
7
|
+
import { findArtifactsDir, resolvePlanningSpecsSubpath } from "./artifacts.js";
|
|
8
|
+
import { runPreflight, PreflightValidationError } from "./preflight.js";
|
|
9
|
+
import { compareStoryIds } from "./story-id.js";
|
|
10
|
+
import { parseStoriesWithWarnings } from "./story-parsing.js";
|
|
11
|
+
export async function loadTransitionInputs(projectDir, options) {
|
|
12
|
+
info("Locating BMAD artifacts...");
|
|
13
|
+
const artifactsDir = await findArtifactsDir(projectDir);
|
|
14
|
+
if (!artifactsDir) {
|
|
15
|
+
throw new Error("No BMAD artifacts found. Run BMAD planning phases first (at minimum: Create PRD, Create Architecture, Create Epics and Stories).");
|
|
16
|
+
}
|
|
17
|
+
const files = await getFilesRecursive(artifactsDir);
|
|
18
|
+
const collectedArtifacts = collectTransitionArtifacts(files);
|
|
19
|
+
const artifactContents = new Map();
|
|
20
|
+
for (const file of collectedArtifacts.files) {
|
|
21
|
+
if (!/\.(?:md|ya?ml)$/i.test(file)) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const content = await readFile(join(artifactsDir, file), "utf-8");
|
|
26
|
+
artifactContents.set(file, content);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
warn(`Could not read artifact ${file}: ${formatError(err)}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (collectedArtifacts.storyFiles.length === 0) {
|
|
33
|
+
debug(`Files in artifacts dir: ${collectedArtifacts.files.join(", ")}`);
|
|
34
|
+
throw new Error(`No epics/stories file found in ${artifactsDir}. Available files: ${collectedArtifacts.files.join(", ")}. Run 'CE' (Create Epics and Stories) first.`);
|
|
35
|
+
}
|
|
36
|
+
debug(`Using stories files: ${collectedArtifacts.storyFiles.join(", ")}`);
|
|
37
|
+
info("Parsing stories...");
|
|
38
|
+
const stories = [];
|
|
39
|
+
const parseWarnings = [];
|
|
40
|
+
for (const storyFile of collectedArtifacts.storyFiles) {
|
|
41
|
+
const storiesContent = artifactContents.get(storyFile);
|
|
42
|
+
if (!storiesContent) {
|
|
43
|
+
warn(`Could not read stories artifact ${storyFile}`);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const parsedStories = parseStoriesWithWarnings(storiesContent, storyFile);
|
|
47
|
+
stories.push(...parsedStories.stories);
|
|
48
|
+
parseWarnings.push(...parsedStories.warnings);
|
|
49
|
+
}
|
|
50
|
+
ensureUniqueStoryIds(stories);
|
|
51
|
+
stories.sort((left, right) => compareStoryIds(left.id, right.id) ||
|
|
52
|
+
left.sourceFile.localeCompare(right.sourceFile) ||
|
|
53
|
+
left.title.localeCompare(right.title));
|
|
54
|
+
if (stories.length === 0) {
|
|
55
|
+
throw new Error("No stories parsed from the epics files. Ensure stories follow the format: ### Story N.M: Title");
|
|
56
|
+
}
|
|
57
|
+
info("Pre-flight validation...");
|
|
58
|
+
const preflightResult = runPreflight(artifactContents, collectedArtifacts.files, stories, parseWarnings);
|
|
59
|
+
const preflightIssues = options?.force
|
|
60
|
+
? preflightResult.issues.map((issue) => issue.severity === "error" ? { ...issue, severity: "warning" } : issue)
|
|
61
|
+
: preflightResult.issues;
|
|
62
|
+
if (!preflightResult.pass) {
|
|
63
|
+
if (options?.force) {
|
|
64
|
+
warn("Pre-flight validation has errors but --force was used, continuing...");
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw new PreflightValidationError(preflightResult.issues);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
projectDir,
|
|
72
|
+
artifactsDir,
|
|
73
|
+
collectedArtifacts,
|
|
74
|
+
artifactContents,
|
|
75
|
+
stories,
|
|
76
|
+
parseWarnings,
|
|
77
|
+
preflightIssues,
|
|
78
|
+
planningSpecsSubpath: resolvePlanningSpecsSubpath(projectDir, artifactsDir),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function ensureUniqueStoryIds(stories) {
|
|
82
|
+
const sourceById = new Map();
|
|
83
|
+
for (const story of stories) {
|
|
84
|
+
const existingSource = sourceById.get(story.id);
|
|
85
|
+
if (existingSource) {
|
|
86
|
+
throw new Error(`Duplicate story ID "${story.id}" found in ${existingSource} and ${story.sourceFile}`);
|
|
87
|
+
}
|
|
88
|
+
sourceById.set(story.id, story.sourceFile);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=artifact-loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-loading.js","sourceRoot":"","sources":["../../src/transition/artifact-loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { debug, info, warn } from "../utils/logger.js";
|
|
4
|
+
import { isEnoent, formatError } from "../utils/errors.js";
|
|
5
|
+
import { atomicWriteFile, exists } from "../utils/file-system.js";
|
|
6
|
+
import { readConfig } from "../utils/config.js";
|
|
7
|
+
import { combineArtifactContents } from "./artifact-collection.js";
|
|
8
|
+
import { extractProjectContext, generateProjectContextMd, generatePrompt, detectTruncation, } from "./context.js";
|
|
9
|
+
import { detectTechStack, customizeAgentMd } from "./tech-stack.js";
|
|
10
|
+
export async function generateContextOutputs(projectDir, inputs) {
|
|
11
|
+
const generatedFiles = [];
|
|
12
|
+
let projectName = "project";
|
|
13
|
+
try {
|
|
14
|
+
const config = await readConfig(projectDir);
|
|
15
|
+
if (config?.name) {
|
|
16
|
+
projectName = config.name;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
debug(`Could not read config for project name: ${formatError(err)}`);
|
|
21
|
+
}
|
|
22
|
+
info("Generating PROJECT_CONTEXT.md...");
|
|
23
|
+
const projectContextPath = join(projectDir, ".ralph/PROJECT_CONTEXT.md");
|
|
24
|
+
const projectContextExisted = await exists(projectContextPath);
|
|
25
|
+
let projectContext = null;
|
|
26
|
+
let truncationWarnings = [];
|
|
27
|
+
if (inputs.artifactContents.size > 0) {
|
|
28
|
+
const { context, truncated } = extractProjectContext(inputs.artifactContents);
|
|
29
|
+
projectContext = context;
|
|
30
|
+
truncationWarnings = detectTruncation(truncated);
|
|
31
|
+
const contextMd = generateProjectContextMd(projectContext, projectName);
|
|
32
|
+
await atomicWriteFile(projectContextPath, contextMd);
|
|
33
|
+
generatedFiles.push({
|
|
34
|
+
path: ".ralph/PROJECT_CONTEXT.md",
|
|
35
|
+
action: projectContextExisted ? "updated" : "created",
|
|
36
|
+
});
|
|
37
|
+
debug("Generated PROJECT_CONTEXT.md");
|
|
38
|
+
}
|
|
39
|
+
info("Generating PROMPT.md...");
|
|
40
|
+
let prompt;
|
|
41
|
+
let promptExisted = false;
|
|
42
|
+
try {
|
|
43
|
+
const existingPrompt = await readFile(join(projectDir, ".ralph/PROMPT.md"), "utf-8");
|
|
44
|
+
promptExisted = true;
|
|
45
|
+
if (existingPrompt.includes("[YOUR PROJECT NAME]")) {
|
|
46
|
+
prompt = existingPrompt.replace(/\[YOUR PROJECT NAME\]/g, projectName);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
prompt = generatePrompt(projectName, projectContext ?? undefined);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (isEnoent(err)) {
|
|
54
|
+
debug("No existing PROMPT.md found, generating from template");
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
warn(`Could not read existing PROMPT.md: ${formatError(err)}`);
|
|
58
|
+
}
|
|
59
|
+
prompt = generatePrompt(projectName, projectContext ?? undefined);
|
|
60
|
+
}
|
|
61
|
+
await atomicWriteFile(join(projectDir, ".ralph/PROMPT.md"), prompt);
|
|
62
|
+
generatedFiles.push({ path: ".ralph/PROMPT.md", action: promptExisted ? "updated" : "created" });
|
|
63
|
+
const combinedArchitectureContent = combineArtifactContents(inputs.collectedArtifacts.architectureFiles, inputs.artifactContents);
|
|
64
|
+
if (combinedArchitectureContent) {
|
|
65
|
+
try {
|
|
66
|
+
const stack = detectTechStack(combinedArchitectureContent);
|
|
67
|
+
if (stack) {
|
|
68
|
+
const agentPath = join(projectDir, ".ralph/@AGENT.md");
|
|
69
|
+
const agentTemplate = await readFile(agentPath, "utf-8");
|
|
70
|
+
const customized = customizeAgentMd(agentTemplate, stack);
|
|
71
|
+
await atomicWriteFile(agentPath, customized);
|
|
72
|
+
generatedFiles.push({ path: ".ralph/@AGENT.md", action: "updated" });
|
|
73
|
+
debug("Customized @AGENT.md with detected tech stack");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
warn(`Could not customize @AGENT.md: ${formatError(err)}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
warnings: truncationWarnings,
|
|
82
|
+
generatedFiles,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=context-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-output.js","sourceRoot":"","sources":["../../src/transition/context-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
import { debug, info, warn } from "../utils/logger.js";
|
|
4
|
+
import { isEnoent, formatError } from "../utils/errors.js";
|
|
5
|
+
import { atomicWriteFile, exists } from "../utils/file-system.js";
|
|
6
|
+
import { generateFixPlan, parseFixPlan, mergeFixPlanProgress, detectOrphanedCompletedStories, detectRenumberedStories, buildCompletedTitleMap, normalizeTitle, } from "./fix-plan.js";
|
|
7
|
+
import { parseSprintStatus } from "./sprint-status.js";
|
|
8
|
+
export async function syncFixPlan(projectDir, inputs) {
|
|
9
|
+
let completedIds = new Set();
|
|
10
|
+
let existingItems = [];
|
|
11
|
+
let orphanWarnings = [];
|
|
12
|
+
let renumberWarnings = [];
|
|
13
|
+
const completionWarnings = [];
|
|
14
|
+
let useTitleBasedMerge = true;
|
|
15
|
+
let fixPlanPreserved = false;
|
|
16
|
+
const fixPlanPath = join(projectDir, ".ralph/@fix_plan.md");
|
|
17
|
+
const fixPlanExisted = await exists(fixPlanPath);
|
|
18
|
+
try {
|
|
19
|
+
const existingFixPlan = await readFile(fixPlanPath, "utf-8");
|
|
20
|
+
existingItems = parseFixPlan(existingFixPlan);
|
|
21
|
+
debug(`Found ${existingItems.filter((item) => item.completed).length} completed stories in existing fix_plan`);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (isEnoent(err)) {
|
|
25
|
+
debug("No existing fix_plan found, starting fresh");
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
warn(`Could not read existing fix_plan: ${formatError(err)}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const sprintStatusSource = await resolveSprintStatusSource(projectDir, inputs);
|
|
32
|
+
if (sprintStatusSource) {
|
|
33
|
+
useTitleBasedMerge = false;
|
|
34
|
+
if (sprintStatusSource.readError) {
|
|
35
|
+
completionWarnings.push(`Sprint status file "${sprintStatusSource.displayPath}" could not be read: ${sprintStatusSource.readError}. All stories were left unchecked.`);
|
|
36
|
+
}
|
|
37
|
+
else if (!sprintStatusSource.content) {
|
|
38
|
+
completionWarnings.push(`Sprint status file "${sprintStatusSource.displayPath}" could not be read. All stories were left unchecked.`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const sprintStatus = parseSprintStatus(sprintStatusSource.content);
|
|
42
|
+
completionWarnings.push(...sprintStatus.warnings);
|
|
43
|
+
if (sprintStatus.valid) {
|
|
44
|
+
completedIds = new Set(inputs.stories
|
|
45
|
+
.filter((story) => sprintStatus.storyStatusById.get(story.id) === "done")
|
|
46
|
+
.map((story) => story.id));
|
|
47
|
+
fixPlanPreserved = completedIds.size > 0;
|
|
48
|
+
for (const story of inputs.stories) {
|
|
49
|
+
if (!sprintStatus.storyStatusById.has(story.id)) {
|
|
50
|
+
completionWarnings.push(`Sprint status is missing story ${story.id} (${story.title}); leaving it unchecked.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
completedIds = new Set(existingItems.filter((item) => item.completed).map((item) => item.id));
|
|
58
|
+
fixPlanPreserved = completedIds.size > 0;
|
|
59
|
+
const newStoryIds = new Set(inputs.stories.map((story) => story.id));
|
|
60
|
+
orphanWarnings = detectOrphanedCompletedStories(existingItems, newStoryIds);
|
|
61
|
+
const completedTitles = buildCompletedTitleMap(existingItems);
|
|
62
|
+
const newTitleMap = new Map(inputs.stories.map((story) => [story.id, story.title]));
|
|
63
|
+
const preservedIds = new Set();
|
|
64
|
+
for (const [id, title] of newTitleMap) {
|
|
65
|
+
if (!completedIds.has(id) && completedTitles.has(normalizeTitle(title))) {
|
|
66
|
+
preservedIds.add(id);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
renumberWarnings = detectRenumberedStories(existingItems, inputs.stories, preservedIds);
|
|
70
|
+
}
|
|
71
|
+
const completedTitles = buildCompletedTitleMap(existingItems);
|
|
72
|
+
const newTitleMap = new Map(inputs.stories.map((story) => [story.id, story.title]));
|
|
73
|
+
info(`Generating fix plan for ${inputs.stories.length} stories...`);
|
|
74
|
+
const newFixPlan = generateFixPlan(inputs.stories, undefined, inputs.planningSpecsSubpath);
|
|
75
|
+
const mergedFixPlan = mergeFixPlanProgress(newFixPlan, completedIds, useTitleBasedMerge ? newTitleMap : undefined, useTitleBasedMerge ? completedTitles : undefined);
|
|
76
|
+
await atomicWriteFile(fixPlanPath, mergedFixPlan);
|
|
77
|
+
return {
|
|
78
|
+
warnings: [...completionWarnings, ...orphanWarnings, ...renumberWarnings],
|
|
79
|
+
fixPlanPreserved,
|
|
80
|
+
generatedFile: {
|
|
81
|
+
path: ".ralph/@fix_plan.md",
|
|
82
|
+
action: fixPlanExisted ? "updated" : "created",
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
async function resolveSprintStatusSource(projectDir, inputs) {
|
|
87
|
+
const canonicalCandidates = [
|
|
88
|
+
"_bmad-output/implementation-artifacts/sprint-status.yaml",
|
|
89
|
+
"_bmad-output/implementation_artifacts/sprint-status.yaml",
|
|
90
|
+
];
|
|
91
|
+
for (const candidate of canonicalCandidates) {
|
|
92
|
+
const candidatePath = join(projectDir, candidate);
|
|
93
|
+
if (!(await exists(candidatePath))) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
return {
|
|
98
|
+
displayPath: candidate,
|
|
99
|
+
content: await readFile(candidatePath, "utf-8"),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
return {
|
|
104
|
+
displayPath: candidate,
|
|
105
|
+
content: null,
|
|
106
|
+
readError: formatError(err),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (!inputs.collectedArtifacts.sprintStatusFile) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const artifactsRelativeDir = relative(projectDir, inputs.artifactsDir).replace(/\\/g, "/");
|
|
114
|
+
return {
|
|
115
|
+
displayPath: `${artifactsRelativeDir}/${inputs.collectedArtifacts.sprintStatusFile}`,
|
|
116
|
+
content: inputs.artifactContents.get(inputs.collectedArtifacts.sprintStatusFile) ?? null,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=fix-plan-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-plan-sync.js","sourceRoot":"","sources":["../../src/transition/fix-plan-sync.ts"],"names":[],"mappings":"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"}
|