@blockspool/mcp 0.3.3 → 0.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"advance.d.ts","sourceRoot":"","sources":["../src/advance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA6F3E"}
1
+ {"version":3,"file":"advance.d.ts","sourceRoot":"","sources":["../src/advance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA+F3E"}
package/dist/advance.js CHANGED
@@ -19,6 +19,7 @@ import { deriveScopePolicy } from './scope-policy.js';
19
19
  import { checkSpindle, getFileEditWarnings } from './spindle.js';
20
20
  import { loadFormula } from './formulas.js';
21
21
  import { loadGuidelines, formatGuidelinesForPrompt } from './guidelines.js';
22
+ import { detectProjectMetadata, formatMetadataForPrompt } from './project-metadata.js';
22
23
  const MAX_PLAN_REJECTIONS = 3;
23
24
  const MAX_QA_RETRIES = 3;
24
25
  /**
@@ -104,6 +105,8 @@ export async function advance(ctx) {
104
105
  return advanceQa(ctx);
105
106
  case 'PR':
106
107
  return advancePr(ctx);
108
+ case 'PARALLEL_EXECUTE':
109
+ return advanceParallelExecute(ctx);
107
110
  default:
108
111
  return stopResponse(run, 'FAILED_VALIDATION', `Unknown phase: ${s.phase}`);
109
112
  }
@@ -129,7 +132,10 @@ async function advanceScout(ctx) {
129
132
  const formula = s.formula ? loadFormula(s.formula, ctx.project.rootPath) : null;
130
133
  const guidelines = loadGuidelines(ctx.project.rootPath);
131
134
  const guidelinesBlock = guidelines ? formatGuidelinesForPrompt(guidelines) + '\n\n' : '';
132
- const prompt = guidelinesBlock + buildScoutPrompt(s.scope, s.categories, s.min_confidence, s.max_proposals_per_scout, dedupContext, formula, hints, s.eco);
135
+ // Detect project metadata for tooling context
136
+ const projectMeta = detectProjectMetadata(ctx.project.rootPath);
137
+ const metadataBlock = formatMetadataForPrompt(projectMeta) + '\n\n';
138
+ const prompt = guidelinesBlock + metadataBlock + buildScoutPrompt(s.scope, s.categories, s.min_confidence, s.max_proposals_per_scout, dedupContext, formula, hints, s.eco, s.min_impact_score);
133
139
  s.scout_cycles++;
134
140
  run.appendEvent('ADVANCE_RETURNED', { phase: 'SCOUT', has_prompt: true });
135
141
  return promptResponse(run, 'SCOUT', prompt, 'Scouting for improvements', {
@@ -150,8 +156,10 @@ async function advanceNextTicket(ctx) {
150
156
  run.setPhase('DONE');
151
157
  return stopResponse(run, 'DONE', `PR limit reached (${s.prs_created}/${s.max_prs})`);
152
158
  }
153
- // Find next ready ticket
154
- const readyTickets = await repos.tickets.listByProject(db, s.project_id, { status: 'ready', limit: 1 });
159
+ const prBudget = s.max_prs - s.prs_created;
160
+ const parallelCount = Math.min(s.parallel, prBudget);
161
+ // Find ready tickets
162
+ const readyTickets = await repos.tickets.listByProject(db, s.project_id, { status: 'ready', limit: parallelCount });
155
163
  if (readyTickets.length === 0) {
156
164
  // No more tickets — scout again if cycles remain, otherwise finish
157
165
  if (s.scout_cycles < s.max_cycles) {
@@ -161,6 +169,90 @@ async function advanceNextTicket(ctx) {
161
169
  run.setPhase('DONE');
162
170
  return stopResponse(run, 'DONE', 'No more tickets to process');
163
171
  }
172
+ // If parallel > 1 and multiple tickets ready → dispatch batch
173
+ if (parallelCount > 1 && readyTickets.length > 1) {
174
+ const parallelTickets = [];
175
+ for (const ticket of readyTickets) {
176
+ await repos.tickets.updateStatus(db, ticket.id, 'in_progress');
177
+ run.initTicketWorker(ticket.id, ticket);
178
+ await repos.runs.create(db, {
179
+ projectId: s.project_id,
180
+ type: 'worker',
181
+ ticketId: ticket.id,
182
+ });
183
+ const policy = deriveScopePolicy({
184
+ allowedPaths: ticket.allowedPaths ?? [],
185
+ category: ticket.category ?? 'refactor',
186
+ maxLinesPerTicket: s.max_lines_per_ticket,
187
+ });
188
+ parallelTickets.push({
189
+ ticket_id: ticket.id,
190
+ title: ticket.title,
191
+ description: ticket.description ?? '',
192
+ constraints: {
193
+ allowed_paths: policy.allowed_paths,
194
+ denied_paths: policy.denied_paths,
195
+ denied_patterns: policy.denied_patterns.map(r => r.source),
196
+ max_files: policy.max_files,
197
+ max_lines: policy.max_lines,
198
+ required_commands: ticket.verificationCommands ?? [],
199
+ plan_required: policy.plan_required,
200
+ },
201
+ inline_prompt: '', // filled below
202
+ });
203
+ }
204
+ run.setPhase('PARALLEL_EXECUTE');
205
+ // Build inline prompts for each ticket — subagents are self-contained
206
+ const guidelines = loadGuidelines(ctx.project.rootPath);
207
+ const guidelinesBlock = guidelines ? formatGuidelinesForPrompt(guidelines) + '\n\n' : '';
208
+ const projectMeta = detectProjectMetadata(ctx.project.rootPath);
209
+ const metadataBlock = formatMetadataForPrompt(projectMeta) + '\n\n';
210
+ for (const pt of parallelTickets) {
211
+ const ticket = readyTickets.find(t => t.id === pt.ticket_id);
212
+ pt.inline_prompt = buildInlineTicketPrompt(ticket, pt.constraints, guidelinesBlock, metadataBlock, s.draft_prs);
213
+ }
214
+ // Build orchestration prompt for the main agent
215
+ const ticketList = parallelTickets.map((t, i) => `${i + 1}. **${t.title}** (ID: \`${t.ticket_id}\`)`).join('\n');
216
+ const orchestrationPrompt = [
217
+ `# Parallel Execution — ${parallelTickets.length} tickets`,
218
+ '',
219
+ ticketList,
220
+ '',
221
+ '## Instructions',
222
+ '',
223
+ 'Use the **Task tool** to spawn one subagent per ticket. Send ALL Task calls in a **single message** for concurrency.',
224
+ '',
225
+ 'For each ticket in `parallel_tickets`:',
226
+ '```',
227
+ 'Task({',
228
+ ' subagent_type: "general-purpose",',
229
+ ' description: "Ticket: <title>",',
230
+ ' prompt: parallel_tickets[i].inline_prompt',
231
+ '})',
232
+ '```',
233
+ '',
234
+ 'The `inline_prompt` field contains everything the subagent needs — no MCP tools required.',
235
+ 'Subagents will edit code, run tests, commit, push, and create PRs independently.',
236
+ '',
237
+ '## After All Subagents Return',
238
+ '',
239
+ 'For each subagent result, call `blockspool_ingest_ticket_event` to record the outcome:',
240
+ '- Success: `type: "PR_CREATED"`, `payload: { ticket_id, url, branch }`',
241
+ '- Failure: `type: "TICKET_RESULT"`, `payload: { ticket_id, status: "failed", reason: "..." }`',
242
+ '',
243
+ 'Then call `blockspool_advance` to continue.',
244
+ ].join('\n');
245
+ return {
246
+ next_action: 'PARALLEL_EXECUTE',
247
+ phase: 'PARALLEL_EXECUTE',
248
+ prompt: orchestrationPrompt,
249
+ reason: `Dispatching ${parallelTickets.length} tickets for parallel execution`,
250
+ constraints: emptyConstraints(),
251
+ digest: run.buildDigest(),
252
+ parallel_tickets: parallelTickets,
253
+ };
254
+ }
255
+ // Sequential flow (parallel=1 or only 1 ticket)
164
256
  const ticket = readyTickets[0];
165
257
  // Assign ticket
166
258
  await repos.tickets.updateStatus(db, ticket.id, 'in_progress');
@@ -332,6 +424,29 @@ async function advancePr(ctx) {
332
424
  plan_required: false,
333
425
  });
334
426
  }
427
+ async function advanceParallelExecute(ctx) {
428
+ const { run } = ctx;
429
+ // Check if all ticket workers are done
430
+ if (run.allWorkersComplete()) {
431
+ run.setPhase('NEXT_TICKET');
432
+ return advance(ctx);
433
+ }
434
+ // Workers still active — return status (shouldn't happen if plugin waits properly)
435
+ const s = run.require();
436
+ const activeWorkers = Object.entries(s.ticket_workers).map(([id, w]) => ({
437
+ ticket_id: id,
438
+ phase: w.phase,
439
+ step_count: w.step_count,
440
+ }));
441
+ return {
442
+ next_action: 'PROMPT',
443
+ phase: 'PARALLEL_EXECUTE',
444
+ prompt: `Parallel execution still in progress. ${activeWorkers.length} ticket(s) still active. Wait for all subagents to complete, then call blockspool_advance again.`,
445
+ reason: `${activeWorkers.length} ticket workers still active`,
446
+ constraints: emptyConstraints(),
447
+ digest: run.buildDigest(),
448
+ };
449
+ }
335
450
  // ---------------------------------------------------------------------------
336
451
  // Budget checks
337
452
  // ---------------------------------------------------------------------------
@@ -396,7 +511,7 @@ function terminalReason(phase) {
396
511
  // ---------------------------------------------------------------------------
397
512
  // Prompt builders
398
513
  // ---------------------------------------------------------------------------
399
- function buildScoutPrompt(scope, categories, minConfidence, maxProposals, dedupContext, formula, hints, eco) {
514
+ function buildScoutPrompt(scope, categories, minConfidence, maxProposals, dedupContext, formula, hints, eco, minImpactScore = 3) {
400
515
  const parts = [
401
516
  '# Scout Phase',
402
517
  '',
@@ -406,10 +521,18 @@ function buildScoutPrompt(scope, categories, minConfidence, maxProposals, dedupC
406
521
  `**Scope:** \`${scope}\``,
407
522
  `**Categories:** ${categories.join(', ')}`,
408
523
  `**Min confidence:** ${minConfidence}`,
524
+ `**Min impact score:** ${minImpactScore} (proposals below this will be rejected)`,
409
525
  `**Max proposals:** ${maxProposals}`,
410
526
  '',
411
527
  '**DO NOT propose changes to these files** (read-only context): CLAUDE.md, .claude/**',
412
528
  '',
529
+ '## Quality Bar',
530
+ '',
531
+ '- Proposals must have **real user or developer impact** — not just lint cleanup or style nits.',
532
+ '- Do NOT propose fixes for lint warnings, unused variables, or cosmetic issues unless they cause actual bugs or test failures.',
533
+ '- If project guidelines are provided above, **respect them**. Do NOT propose changes the guidelines explicitly discourage (e.g., "avoid over-engineering", "don\'t change code you didn\'t touch").',
534
+ '- Focus on: bugs, missing tests, security issues, performance problems, correctness, and meaningful refactors.',
535
+ '',
413
536
  ];
414
537
  if (dedupContext.length > 0) {
415
538
  parts.push('**Already completed (do not duplicate):**');
@@ -498,6 +621,92 @@ function buildQaPrompt(ticket) {
498
621
  'After all commands, call `blockspool_ingest_event` with type `QA_PASSED` if all pass, or `QA_FAILED` with failure details.',
499
622
  ].join('\n');
500
623
  }
624
+ function buildInlineTicketPrompt(ticket, constraints, guidelinesBlock, metadataBlock, draftPr) {
625
+ const slug = ticket.title.toLowerCase().replace(/[^a-z0-9]+/g, '-').slice(0, 40);
626
+ const branch = `blockspool/${ticket.id}/${slug}`;
627
+ const worktree = `.blockspool/worktrees/${ticket.id}`;
628
+ const verifyBlock = constraints.required_commands.length > 0
629
+ ? constraints.required_commands.map(c => `\`\`\`bash\n${c}\n\`\`\``).join('\n')
630
+ : '```bash\nnpm test\n```';
631
+ return [
632
+ `# BlockSpool Ticket: ${ticket.title}`,
633
+ '',
634
+ guidelinesBlock,
635
+ metadataBlock,
636
+ ticket.description ?? '',
637
+ '',
638
+ '## Constraints',
639
+ '',
640
+ `- **Allowed paths:** ${constraints.allowed_paths.length > 0 ? constraints.allowed_paths.join(', ') : 'any'}`,
641
+ `- **Denied paths:** ${constraints.denied_paths.length > 0 ? constraints.denied_paths.join(', ') : 'none'}`,
642
+ `- **Max files:** ${constraints.max_files || 'unlimited'}`,
643
+ `- **Max lines:** ${constraints.max_lines || 'unlimited'}`,
644
+ '',
645
+ '## Step 1 — Set up worktree',
646
+ '',
647
+ '```bash',
648
+ `git worktree add ${worktree} -b ${branch}`,
649
+ '```',
650
+ '',
651
+ `All work MUST happen inside \`${worktree}/\`. Do NOT modify files in the main working tree.`,
652
+ '',
653
+ '## Step 2 — Implement the change',
654
+ '',
655
+ '- Read the relevant files first to understand the current state.',
656
+ '- Make minimal, focused changes that match the ticket description.',
657
+ '- Only modify files within the allowed paths.',
658
+ '- Follow any project guidelines provided above.',
659
+ '',
660
+ '## Step 3 — Verify',
661
+ '',
662
+ 'Run verification commands inside the worktree:',
663
+ '',
664
+ '```bash',
665
+ `cd ${worktree}`,
666
+ '```',
667
+ '',
668
+ verifyBlock,
669
+ '',
670
+ 'If tests fail, fix the issues and re-run. Do not skip verification.',
671
+ '',
672
+ '## Step 4 — Commit and push',
673
+ '',
674
+ '```bash',
675
+ `cd ${worktree}`,
676
+ 'git add -A',
677
+ `git commit -m "${ticket.title}"`,
678
+ `git push -u origin ${branch}`,
679
+ '```',
680
+ '',
681
+ '## Step 5 — Create PR',
682
+ '',
683
+ `Create a ${draftPr ? 'draft ' : ''}pull request:`,
684
+ '',
685
+ '```bash',
686
+ `cd ${worktree}`,
687
+ `gh pr create --title "${ticket.title}" ${draftPr ? '--draft ' : ''}--body "$(cat <<'EOF'`,
688
+ ticket.description?.slice(0, 500) ?? ticket.title,
689
+ '',
690
+ 'Generated by BlockSpool',
691
+ `EOF`,
692
+ `)"`,
693
+ '```',
694
+ '',
695
+ '## Output',
696
+ '',
697
+ 'When done, output a summary in this exact format:',
698
+ '',
699
+ '```',
700
+ `TICKET_ID: ${ticket.id}`,
701
+ 'STATUS: success | failed',
702
+ 'PR_URL: <url or "none">',
703
+ `BRANCH: ${branch}`,
704
+ 'SUMMARY: <one line summary of what was done>',
705
+ '```',
706
+ '',
707
+ 'If anything goes wrong and you cannot complete the ticket, output STATUS: failed with a reason.',
708
+ ].join('\n');
709
+ }
501
710
  function buildPrPrompt(ticket, draftPr) {
502
711
  const title = ticket?.title ?? 'BlockSpool changes';
503
712
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"advance.js","sourceRoot":"","sources":["../src/advance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advance.js","sourceRoot":"","sources":["../src/advance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Project Metadata — framework-agnostic detection of tooling, test runners,
3
+ * package managers, and languages.
4
+ *
5
+ * Scans config files at the project root to build a structured summary
6
+ * that gets injected into scout prompts so the LLM knows which CLI
7
+ * flags and conventions to use.
8
+ */
9
+ export interface ProjectMetadata {
10
+ /** Primary language(s) detected */
11
+ languages: string[];
12
+ /** Package manager (npm, yarn, pnpm, bun, pip, poetry, cargo, go, mix, bundle, maven, gradle) */
13
+ package_manager: string | null;
14
+ /** Test runner and CLI syntax */
15
+ test_runner: TestRunnerInfo | null;
16
+ /** App framework (next, remix, express, django, flask, rails, phoenix, spring, etc.) */
17
+ framework: string | null;
18
+ /** Linter (eslint, biome, ruff, clippy, golangci-lint, rubocop, etc.) */
19
+ linter: string | null;
20
+ /** Type checker if separate from compiler (tsc, mypy, pyright, etc.) */
21
+ type_checker: string | null;
22
+ /** Monorepo tool (turborepo, nx, lerna, cargo workspaces, etc.) */
23
+ monorepo_tool: string | null;
24
+ /** Raw detection signals for debugging */
25
+ signals: string[];
26
+ }
27
+ export interface TestRunnerInfo {
28
+ name: string;
29
+ run_command: string;
30
+ filter_syntax: string;
31
+ }
32
+ export declare function detectProjectMetadata(projectRoot: string): ProjectMetadata;
33
+ export declare function formatMetadataForPrompt(meta: ProjectMetadata): string;
34
+ //# sourceMappingURL=project-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-metadata.d.ts","sourceRoot":"","sources":["../src/project-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iGAAiG;IACjG,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iCAAiC;IACjC,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,wFAAwF;IACxF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wEAAwE;IACxE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAuX1E;AAqBD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA8BrE"}