@codemcp/workflows-core
Advanced tools
@@ -20,2 +20,10 @@ /** | ||
| * Detect and validate the requested task backend | ||
| * | ||
| * When TASK_BACKEND is not set: | ||
| * - Auto-detects if beads (bd) command is available | ||
| * - Uses beads if bd command exists, markdown otherwise | ||
| * | ||
| * When TASK_BACKEND is explicitly set: | ||
| * - Uses the specified backend (markdown or beads) | ||
| * - For beads, validates availability and provides setup instructions if not available | ||
| */ | ||
@@ -26,3 +34,6 @@ static detectTaskBackend(): TaskBackendConfig; | ||
| */ | ||
| private static checkBeadsAvailability; | ||
| static checkBeadsAvailability(): { | ||
| isAvailable: boolean; | ||
| errorMessage?: string; | ||
| }; | ||
| /** | ||
@@ -29,0 +40,0 @@ * Get setup instructions for beads backend |
+42
-12
@@ -17,11 +17,34 @@ /** | ||
| * Detect and validate the requested task backend | ||
| * | ||
| * When TASK_BACKEND is not set: | ||
| * - Auto-detects if beads (bd) command is available | ||
| * - Uses beads if bd command exists, markdown otherwise | ||
| * | ||
| * When TASK_BACKEND is explicitly set: | ||
| * - Uses the specified backend (markdown or beads) | ||
| * - For beads, validates availability and provides setup instructions if not available | ||
| */ | ||
| static detectTaskBackend() { | ||
| const envBackend = process.env['TASK_BACKEND']?.toLowerCase().trim(); | ||
| // Default to markdown if not set or invalid | ||
| if (!envBackend || !['markdown', 'beads'].includes(envBackend)) { | ||
| logger.debug('Using default markdown backend', { | ||
| // Handle invalid values by treating as not set | ||
| if (envBackend && !['markdown', 'beads'].includes(envBackend)) { | ||
| logger.debug('Invalid TASK_BACKEND value, treating as not set', { | ||
| envBackend, | ||
| reason: envBackend ? 'invalid value' : 'not set', | ||
| }); | ||
| } | ||
| // Auto-detect backend when not explicitly configured | ||
| if (!envBackend || !['markdown', 'beads'].includes(envBackend)) { | ||
| const beadsAvailable = TaskBackendManager.checkBeadsAvailability(); | ||
| if (beadsAvailable.isAvailable) { | ||
| logger.info('Auto-detected beads backend (bd command available)', { | ||
| reason: 'TASK_BACKEND not set, bd command found', | ||
| }); | ||
| return { | ||
| backend: 'beads', | ||
| isAvailable: true, | ||
| }; | ||
| } | ||
| logger.debug('Using markdown backend (bd command not available)', { | ||
| reason: 'TASK_BACKEND not set, bd command not found', | ||
| }); | ||
| return { | ||
@@ -34,2 +57,3 @@ backend: 'markdown', | ||
| if (backend === 'markdown') { | ||
| logger.debug('Using explicitly configured markdown backend'); | ||
| return { | ||
@@ -40,5 +64,6 @@ backend: 'markdown', | ||
| } | ||
| // backend === 'beads' is the only remaining case | ||
| // backend === 'beads' is the only remaining case (explicitly configured) | ||
| const beadsAvailable = TaskBackendManager.checkBeadsAvailability(); | ||
| if (beadsAvailable.isAvailable) { | ||
| logger.debug('Using explicitly configured beads backend'); | ||
| return { | ||
@@ -117,14 +142,19 @@ backend: 'beads', | ||
| ### Configuration | ||
| After installation, set the task backend: | ||
| ### Auto-Detection | ||
| The system automatically detects the task backend: | ||
| - If the \`bd\` command is available, beads backend is used automatically | ||
| - If the \`bd\` command is not found, markdown backend is used | ||
| ### Explicit Configuration (Optional) | ||
| You can explicitly set the backend via environment variable: | ||
| \`\`\`bash | ||
| export TASK_BACKEND=beads | ||
| export TASK_BACKEND=beads # Force beads backend | ||
| export TASK_BACKEND=markdown # Force markdown backend | ||
| \`\`\` | ||
| Then restart the responsible-vibe-mcp server and try again. | ||
| ### Alternative: Use Markdown Backend | ||
| If you prefer to continue with traditional plan file task management: | ||
| If you prefer to continue with traditional plan file task management, | ||
| simply ensure the \`bd\` command is not installed, or set: | ||
| \`\`\`bash | ||
| export TASK_BACKEND=markdown # or unset TASK_BACKEND | ||
| export TASK_BACKEND=markdown | ||
| \`\`\``; | ||
@@ -131,0 +161,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"task-backend.js","sourceRoot":"","sources":["../src/task-backend.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"task-backend.js","sourceRoot":"","sources":["../src/task-backend.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@codemcp/workflows-core", | ||
| "version": "4.11.0", | ||
| "version": "4.12.0", | ||
| "main": "dist/index.js", | ||
@@ -5,0 +5,0 @@ "types": "dist/index.d.ts", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
1769812
0.14%6326
0.65%