(projectRoot, candidates)
| 66 | } |
| 67 | |
| 68 | function availableSources(projectRoot, candidates) { |
| 69 | return candidates.filter((entry) => exists(projectRoot, entry.path)); |
| 70 | } |
| 71 | |
| 72 | function extractDecisionLog(campaignText) { |
| 73 | const match = campaignText.match(/## Decision Log\s+([\s\S]*?)(?:\n## |\n<!--|$)/); |