bemadralphy 2.0.4 → 2.0.5

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.
@@ -5,32 +5,59 @@ export async function storiesToBeads(storyPaths) {
5
5
  for (const storyPath of storyPaths) {
6
6
  const contents = await readFile(storyPath, 'utf-8');
7
7
  const lines = contents.split(/\r?\n/);
8
- let currentDependencies = [];
8
+ let currentTask = null;
9
+ const flushTask = () => {
10
+ if (currentTask) {
11
+ tasks.push({
12
+ storyId: currentTask.storyId,
13
+ title: currentTask.title,
14
+ description: currentTask.descriptionLines.length > 0
15
+ ? currentTask.descriptionLines.join('\n').trim()
16
+ : 'No implementation steps provided.',
17
+ dependencies: currentTask.dependencies,
18
+ });
19
+ }
20
+ };
9
21
  for (const line of lines) {
22
+ // New story header (### Story X.Y: Title)
10
23
  if (line.startsWith('### ')) {
11
- tasks.push({
24
+ flushTask();
25
+ currentTask = {
12
26
  storyId: `story-${counter++}`,
13
27
  title: line.replace(/^###\s+/, ''),
14
- description: 'Generated from planning stories.',
15
- dependencies: currentDependencies,
16
- });
17
- currentDependencies = [];
28
+ descriptionLines: [],
29
+ dependencies: [],
30
+ };
31
+ }
32
+ // New epic header (## Epic X) - flush but don't create task for the epic itself
33
+ else if (line.startsWith('## ')) {
34
+ flushTask();
35
+ currentTask = null;
18
36
  }
37
+ // Dependency line
19
38
  else if (line.trim().toLowerCase().startsWith('- depends on:')) {
20
- const value = line.split(':', 2)[1]?.trim() ?? '';
21
- if (value) {
22
- const parsed = value
23
- .split(',')
24
- .map((entry) => entry.trim())
25
- .filter(Boolean);
26
- for (const dependency of parsed) {
27
- if (!currentDependencies.includes(dependency)) {
28
- currentDependencies.push(dependency);
39
+ if (currentTask) {
40
+ const value = line.split(':', 2)[1]?.trim() ?? '';
41
+ if (value) {
42
+ const parsed = value
43
+ .split(',')
44
+ .map((entry) => entry.trim())
45
+ .filter(Boolean);
46
+ for (const dependency of parsed) {
47
+ if (!currentTask.dependencies.includes(dependency)) {
48
+ currentTask.dependencies.push(dependency);
49
+ }
29
50
  }
30
51
  }
31
52
  }
32
53
  }
54
+ // Any other content under a story - capture it as description
55
+ else if (currentTask && line.trim()) {
56
+ currentTask.descriptionLines.push(line);
57
+ }
33
58
  }
59
+ // Don't forget the last task
60
+ flushTask();
34
61
  }
35
62
  return tasks;
36
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/beads/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAS5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAoB;IACvD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;oBAClC,WAAW,EAAE,kCAAkC;oBAC/C,YAAY,EAAE,mBAAmB;iBAClC,CAAC,CAAC;gBACH,mBAAmB,GAAG,EAAE,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAClD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,KAAK;yBACjB,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;yBAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;oBACnB,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;wBAChC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC9C,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/beads/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAS5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAoB;IACvD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,WAAW,GAAkG,IAAI,CAAC;QAEtH,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;wBAClD,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;wBAChD,CAAC,CAAC,mCAAmC;oBACvC,YAAY,EAAE,WAAW,CAAC,YAAY;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,0CAA0C;YAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,SAAS,EAAE,CAAC;gBACZ,WAAW,GAAG;oBACZ,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;oBAClC,gBAAgB,EAAE,EAAE;oBACpB,YAAY,EAAE,EAAE;iBACjB,CAAC;YACJ,CAAC;YACD,gFAAgF;iBAC3E,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC;gBACZ,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,kBAAkB;iBACb,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC/D,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBAClD,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,MAAM,GAAG,KAAK;6BACjB,KAAK,CAAC,GAAG,CAAC;6BACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;6BAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;wBACnB,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;4BAChC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gCACnD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC5C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,8DAA8D;iBACzD,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,SAAS,EAAE,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/cli.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bemadralphy",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "CLI-only orchestrator merging BMAD, Beads, Ralphy, and OpenSpec into an end-to-end automated coding pipeline.",
5
5
  "license": "MIT",
6
6
  "type": "module",