@prowi/deskcheck 0.3.0 → 0.4.2

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.
Files changed (94) hide show
  1. package/README.md +78 -84
  2. package/build/cli.js +345 -40
  3. package/build/cli.js.map +1 -1
  4. package/build/config/loader.d.ts.map +1 -1
  5. package/build/config/loader.js +5 -2
  6. package/build/config/loader.js.map +1 -1
  7. package/build/config/types.d.ts +14 -2
  8. package/build/config/types.d.ts.map +1 -1
  9. package/build/mcp/tools.d.ts.map +1 -1
  10. package/build/mcp/tools.js +26 -50
  11. package/build/mcp/tools.js.map +1 -1
  12. package/build/prompts/ExecutorPrompt.d.ts +4 -2
  13. package/build/prompts/ExecutorPrompt.d.ts.map +1 -1
  14. package/build/prompts/ExecutorPrompt.js +40 -33
  15. package/build/prompts/ExecutorPrompt.js.map +1 -1
  16. package/build/prompts/PartitionerPrompt.d.ts +12 -0
  17. package/build/prompts/PartitionerPrompt.d.ts.map +1 -0
  18. package/build/prompts/PartitionerPrompt.js +54 -0
  19. package/build/prompts/PartitionerPrompt.js.map +1 -0
  20. package/build/prompts/ResolverPrompt.d.ts +11 -0
  21. package/build/prompts/ResolverPrompt.d.ts.map +1 -0
  22. package/build/prompts/ResolverPrompt.js +45 -0
  23. package/build/prompts/ResolverPrompt.js.map +1 -0
  24. package/build/renderers/review/MarkdownRenderer.js +5 -2
  25. package/build/renderers/review/MarkdownRenderer.js.map +1 -1
  26. package/build/renderers/review/TerminalRenderer.js +5 -2
  27. package/build/renderers/review/TerminalRenderer.js.map +1 -1
  28. package/build/renderers/review/WatchRenderer.d.ts.map +1 -1
  29. package/build/renderers/review/WatchRenderer.js +10 -1
  30. package/build/renderers/review/WatchRenderer.js.map +1 -1
  31. package/build/server/controllers/ReviewController.d.ts +12 -3
  32. package/build/server/controllers/ReviewController.d.ts.map +1 -1
  33. package/build/server/controllers/ReviewController.js +50 -6
  34. package/build/server/controllers/ReviewController.js.map +1 -1
  35. package/build/server/server.d.ts.map +1 -1
  36. package/build/server/server.js +22 -1
  37. package/build/server/server.js.map +1 -1
  38. package/build/services/ExecutorService.d.ts +18 -3
  39. package/build/services/ExecutorService.d.ts.map +1 -1
  40. package/build/services/ExecutorService.js +51 -14
  41. package/build/services/ExecutorService.js.map +1 -1
  42. package/build/services/FindingsParserService.d.ts +1 -8
  43. package/build/services/FindingsParserService.d.ts.map +1 -1
  44. package/build/services/FindingsParserService.js +20 -45
  45. package/build/services/FindingsParserService.js.map +1 -1
  46. package/build/services/criteria/module-parser.d.ts +6 -4
  47. package/build/services/criteria/module-parser.d.ts.map +1 -1
  48. package/build/services/criteria/module-parser.js +27 -21
  49. package/build/services/criteria/module-parser.js.map +1 -1
  50. package/build/services/review/CodeSnippetService.d.ts +10 -0
  51. package/build/services/review/CodeSnippetService.d.ts.map +1 -0
  52. package/build/services/review/CodeSnippetService.js +54 -0
  53. package/build/services/review/CodeSnippetService.js.map +1 -0
  54. package/build/services/review/ReviewInputResolverService.d.ts +25 -0
  55. package/build/services/review/ReviewInputResolverService.d.ts.map +1 -0
  56. package/build/services/review/ReviewInputResolverService.js +106 -0
  57. package/build/services/review/ReviewInputResolverService.js.map +1 -0
  58. package/build/services/review/ReviewOrchestratorService.d.ts.map +1 -1
  59. package/build/services/review/ReviewOrchestratorService.js +21 -20
  60. package/build/services/review/ReviewOrchestratorService.js.map +1 -1
  61. package/build/services/review/ReviewPartitionerService.d.ts +46 -0
  62. package/build/services/review/ReviewPartitionerService.d.ts.map +1 -0
  63. package/build/services/review/ReviewPartitionerService.js +208 -0
  64. package/build/services/review/ReviewPartitionerService.js.map +1 -0
  65. package/build/services/review/ReviewPlanBuilderService.d.ts +25 -7
  66. package/build/services/review/ReviewPlanBuilderService.d.ts.map +1 -1
  67. package/build/services/review/ReviewPlanBuilderService.js +88 -30
  68. package/build/services/review/ReviewPlanBuilderService.js.map +1 -1
  69. package/build/services/review/ReviewStorageService.d.ts +34 -10
  70. package/build/services/review/ReviewStorageService.d.ts.map +1 -1
  71. package/build/services/review/ReviewStorageService.js +100 -14
  72. package/build/services/review/ReviewStorageService.js.map +1 -1
  73. package/build/services/testing/TestRunnerService.d.ts +4 -0
  74. package/build/services/testing/TestRunnerService.d.ts.map +1 -1
  75. package/build/services/testing/TestRunnerService.js +14 -10
  76. package/build/services/testing/TestRunnerService.js.map +1 -1
  77. package/build/types/criteria.d.ts +8 -6
  78. package/build/types/criteria.d.ts.map +1 -1
  79. package/build/types/review.d.ts +123 -28
  80. package/build/types/review.d.ts.map +1 -1
  81. package/package.json +3 -1
  82. package/ui/dist/index.html +12 -63
  83. package/build/prompts/PlannerPrompt.d.ts +0 -12
  84. package/build/prompts/PlannerPrompt.d.ts.map +0 -1
  85. package/build/prompts/PlannerPrompt.js +0 -34
  86. package/build/prompts/PlannerPrompt.js.map +0 -1
  87. package/build/services/review/ReviewContextExtractorService.d.ts +0 -17
  88. package/build/services/review/ReviewContextExtractorService.d.ts.map +0 -1
  89. package/build/services/review/ReviewContextExtractorService.js +0 -69
  90. package/build/services/review/ReviewContextExtractorService.js.map +0 -1
  91. package/build/services/review/ReviewPlannerService.d.ts +0 -29
  92. package/build/services/review/ReviewPlannerService.d.ts.map +0 -1
  93. package/build/services/review/ReviewPlannerService.js +0 -122
  94. package/build/services/review/ReviewPlannerService.js.map +0 -1
@@ -6,13 +6,16 @@ export const DEFAULT_CONFIG = {
6
6
  storage_dir: ".deskcheck/runs",
7
7
  tests_dir: "deskcheck/tests",
8
8
  serve_port: 3000,
9
+ concurrency: 5,
10
+ defaultModel: "sonnet",
9
11
  shared: {
10
12
  allowed_tools: ["Read", "Glob", "Grep"],
11
13
  mcp_servers: {},
12
14
  },
13
15
  agents: {
14
- planner: { model: "haiku" },
15
- executor: {},
16
+ resolver: {},
17
+ partitioner: {},
18
+ reviewer: {},
16
19
  evaluator: { model: "haiku" },
17
20
  judge: { model: "opus" },
18
21
  },
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,17 @@ export interface ReviewConfig {
27
27
  tests_dir: string;
28
28
  /** Port for the web UI server. Default: 3000. */
29
29
  serve_port: number;
30
+ /** Max concurrent reviewer agents. Default: 5. */
31
+ concurrency: number;
32
+ /**
33
+ * Default Claude model used across the pipeline. Applied to:
34
+ * - Criterion `model` when not specified in frontmatter
35
+ * - Resolver agent (unless `agents.resolver.model` overrides)
36
+ * - Partitioner agent (unless `agents.partitioner.model` overrides)
37
+ *
38
+ * Individual agents and criteria can always override this.
39
+ */
40
+ defaultModel: AgentModel;
30
41
  /** Shared configuration applied to all agent roles. */
31
42
  shared: {
32
43
  /** Tools available to all agents. */
@@ -36,8 +47,9 @@ export interface ReviewConfig {
36
47
  };
37
48
  /** Per-role agent configuration. */
38
49
  agents: {
39
- planner: AgentRoleConfig;
40
- executor: AgentRoleConfig;
50
+ resolver: AgentRoleConfig;
51
+ partitioner: AgentRoleConfig;
52
+ reviewer: AgentRoleConfig;
41
53
  evaluator: AgentRoleConfig;
42
54
  judge: AgentRoleConfig;
43
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oDAAoD;IACpD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC1D;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE;QACN,qCAAqC;QACrC,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,2CAA2C;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;KAC9C,CAAC;IACF,oCAAoC;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,eAAe,CAAC;QACzB,QAAQ,EAAE,eAAe,CAAC;QAC1B,SAAS,EAAE,eAAe,CAAC;QAC3B,KAAK,EAAE,eAAe,CAAC;KACxB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oDAAoD;IACpD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC1D;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,EAAE,UAAU,CAAC;IACzB,uDAAuD;IACvD,MAAM,EAAE;QACN,qCAAqC;QACrC,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,2CAA2C;QAC3C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;KAC9C,CAAC;IACF,oCAAoC;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,eAAe,CAAC;QAC7B,QAAQ,EAAE,eAAe,CAAC;QAC1B,SAAS,EAAE,eAAe,CAAC;QAC3B,KAAK,EAAE,eAAe,CAAC;KACxB,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,IAAI,CAgZN"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,IAAI,CA4WN"}
@@ -1,8 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { z } from "zod";
3
3
  import { ReviewStorageService } from "../services/review/ReviewStorageService.js";
4
- import { extractContext } from "../services/review/ReviewContextExtractorService.js";
5
- import { discoverModules, parseModule } from "../services/criteria/module-parser.js";
4
+ import { discoverModules } from "../services/criteria/module-parser.js";
6
5
  import { findMatchingModules } from "../services/criteria/glob-matcher.js";
7
6
  /**
8
7
  * Register all review MCP tools on the given server.
@@ -33,23 +32,23 @@ export function registerReviewTools(server, config, projectRoot) {
33
32
  description: "Create a new review plan. Returns the plan object with its generated plan_id.",
34
33
  inputSchema: {
35
34
  name: z.string().describe("Human-readable name for the review plan"),
36
- source_type: z
37
- .enum(["diff", "file", "symbol"])
38
- .describe("How source content is provided: diff, file, or symbol"),
39
- source_target: z
40
- .string()
41
- .describe("Target identifier: branch/ref for diff, file path for file, symbol name for symbol"),
42
- source_file: z
35
+ scope_type: z
36
+ .enum(["all", "changes"])
37
+ .describe("'all' to review full files, 'changes' to review only diffs against a git ref"),
38
+ scope_ref: z
43
39
  .string()
44
40
  .optional()
45
- .describe("File containing the symbol (only for symbol mode)"),
41
+ .describe("For scope_type='changes': git ref to compare against (branch, commit, or HEAD)"),
46
42
  },
47
- }, ({ name, source_type, source_target, source_file }) => {
43
+ }, ({ name, scope_type, scope_ref }) => {
48
44
  try {
49
- const plan = storage.createPlan(name, {
50
- type: source_type,
51
- target: source_target,
52
- file: source_file,
45
+ const scope = scope_type === "changes"
46
+ ? { type: "changes", ref: scope_ref ?? "HEAD" }
47
+ : { type: "all" };
48
+ const plan = storage.createPlan(name, scope, {
49
+ command: "deskcheck-mcp",
50
+ args: ["start_review_plan", name],
51
+ cwd: projectRoot,
53
52
  });
54
53
  return {
55
54
  content: [{ type: "text", text: JSON.stringify(plan, null, 2) }],
@@ -77,15 +76,14 @@ export function registerReviewTools(server, config, projectRoot) {
77
76
  },
78
77
  }, ({ files }) => {
79
78
  try {
80
- const modules = discoverModules(modulesDir);
79
+ const modules = discoverModules(modulesDir, config.defaultModel);
81
80
  const matches = findMatchingModules(files, modules);
82
81
  const result = matches.map((match) => ({
83
82
  review_id: match.module.id,
84
83
  review_file: match.module.file,
85
84
  description: match.module.description,
86
- severity: match.module.severity,
87
85
  globs: match.module.globs,
88
- mode: match.module.mode,
86
+ partition: match.module.partition,
89
87
  model: match.module.model,
90
88
  matched_files: match.matchedFiles,
91
89
  }));
@@ -204,37 +202,14 @@ export function registerReviewTools(server, config, projectRoot) {
204
202
  // 7. start_review — claim a task and return context for executor
205
203
  // ---------------------------------------------------------------------------
206
204
  server.registerTool("start_review", {
207
- description: "Claim a review task and return everything the executor needs: context (diff/file/symbol content), the criterion prompt, and task metadata.",
205
+ description: "Claim a review task and return its metadata. Reviewers fetch their own context (diffs or full file contents) from the scope on the returned task.",
208
206
  inputSchema: {
209
207
  plan_id: z.string().describe("The plan ID"),
210
208
  task_id: z.string().describe("The task ID to claim"),
211
209
  },
212
210
  }, ({ plan_id, task_id }) => {
213
211
  try {
214
- const plan = storage.getPlan(plan_id);
215
- const task = plan.tasks[task_id];
216
- if (!task) {
217
- return {
218
- content: [{
219
- type: "text",
220
- text: `Error: Task "${task_id}" not found in plan "${plan_id}"`,
221
- }],
222
- isError: true,
223
- };
224
- }
225
- // Extract context based on source type
226
- const symbol = plan.source.type === "symbol" ? plan.source.target : undefined;
227
- const extracted = extractContext(plan.source.type, plan.source.target, task.files, projectRoot, symbol);
228
- // Read the criterion prompt
229
- const moduleFilePath = path.resolve(projectRoot, task.review_file);
230
- const reviewModule = parseModule(moduleFilePath, path.resolve(projectRoot, config.modules_dir));
231
- // Claim the task via storage
232
- const claimedTask = storage.claimTask(plan_id, task_id, {
233
- contextType: extracted.contextType,
234
- content: extracted.content,
235
- symbol: extracted.symbol ?? undefined,
236
- prompt: reviewModule.prompt,
237
- });
212
+ const claimedTask = storage.claimTask(plan_id, task_id);
238
213
  return {
239
214
  content: [{
240
215
  type: "text",
@@ -242,11 +217,9 @@ export function registerReviewTools(server, config, projectRoot) {
242
217
  task_id: claimedTask.task_id,
243
218
  review_id: claimedTask.review_id,
244
219
  files: claimedTask.files,
220
+ scope: claimedTask.scope,
245
221
  hint: claimedTask.hint,
246
222
  model: claimedTask.model,
247
- context_type: claimedTask.context_type,
248
- context: claimedTask.context,
249
- symbol: claimedTask.symbol,
250
223
  prompt: claimedTask.prompt,
251
224
  }, null, 2),
252
225
  }],
@@ -285,8 +258,9 @@ export function registerReviewTools(server, config, projectRoot) {
285
258
  .array(z.object({
286
259
  file: z.string().describe("File path"),
287
260
  symbol: z.string().nullable().optional().describe("Semantic symbol anchor, e.g. ClassName::method"),
288
- line: z.number().nullable().optional().describe("Line number for navigation"),
289
- code: z.string().nullable().optional().describe("Current code snippet"),
261
+ startLine: z.number().optional().describe("Start line of the flagged range (inclusive)"),
262
+ endLine: z.number().optional().describe("End line of the flagged range (inclusive)"),
263
+ contextLines: z.number().optional().describe("Lines of surrounding context to include (default 3)"),
290
264
  suggestedCode: z.string().nullable().optional().describe("Suggested replacement code"),
291
265
  note: z.string().nullable().optional().describe("Why this reference is relevant"),
292
266
  }))
@@ -303,8 +277,10 @@ export function registerReviewTools(server, config, projectRoot) {
303
277
  references: i.references.map((r) => ({
304
278
  file: r.file,
305
279
  symbol: r.symbol ?? null,
306
- line: r.line ?? null,
307
- code: r.code ?? null,
280
+ startLine: r.startLine ?? 0,
281
+ endLine: r.endLine ?? r.startLine ?? 0,
282
+ contextLines: r.contextLines ?? 3,
283
+ code: null,
308
284
  suggestedCode: r.suggestedCode ?? null,
309
285
  note: r.note ?? null,
310
286
  })),
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@ import type { ReviewTask } from "../types/review.js";
3
3
  * Build the system prompt for an executor agent.
4
4
  *
5
5
  * The executor receives a single deskcheck task containing the detective prompt
6
- * (from the criterion), the files to check, and the extracted context
7
- * (diff, file content, or symbol). It outputs a JSON array of findings to stdout.
6
+ * (from the criterion), the files to check, and the resolved scope. It uses its
7
+ * built-in tools (Read, Grep, Glob, Bash) to fetch the actual code itself
8
+ * either by running `git diff` for changes-mode scope or by reading full file
9
+ * contents for all-mode scope. It outputs a JSON array of findings to stdout.
8
10
  *
9
11
  * CRITICAL DESIGN PRINCIPLE: The executor ONLY reports findings that the criterion
10
12
  * explicitly asks it to check. It does NOT do a general code review. The criterion
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/ExecutorPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAwC5D"}
1
+ {"version":3,"file":"ExecutorPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/ExecutorPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAuC5D"}
@@ -2,8 +2,10 @@
2
2
  * Build the system prompt for an executor agent.
3
3
  *
4
4
  * The executor receives a single deskcheck task containing the detective prompt
5
- * (from the criterion), the files to check, and the extracted context
6
- * (diff, file content, or symbol). It outputs a JSON array of findings to stdout.
5
+ * (from the criterion), the files to check, and the resolved scope. It uses its
6
+ * built-in tools (Read, Grep, Glob, Bash) to fetch the actual code itself
7
+ * either by running `git diff` for changes-mode scope or by reading full file
8
+ * contents for all-mode scope. It outputs a JSON array of findings to stdout.
7
9
  *
8
10
  * CRITICAL DESIGN PRINCIPLE: The executor ONLY reports findings that the criterion
9
11
  * explicitly asks it to check. It does NOT do a general code review. The criterion
@@ -27,40 +29,46 @@ You MUST only report findings that are explicitly covered by the "What to Check"
27
29
  // Files under review
28
30
  const fileList = task.files.map((f) => `- ${f}`).join("\n");
29
31
  sections.push(`## Files Under Review\n${fileList}`);
30
- // Scope hint
32
+ // Focus — sub-file narrowing set by the partitioner.
33
+ if (task.focus) {
34
+ sections.push(`## Focus\nReview only this part of the assigned files: **${task.focus}**. Ignore code outside this focus, even if you would otherwise flag it.`);
35
+ }
36
+ // Partitioner hint — short rationale for why these files are grouped.
31
37
  if (task.hint) {
32
- sections.push(`## Scope Hint\n${task.hint}`);
38
+ sections.push(`## Grouping Hint\n${task.hint}`);
33
39
  }
34
- // Review context
35
- const contextHeader = `## Review Context\n**Context Type:** ${task.context_type}`;
36
- const symbolLine = task.symbol ? `\n**Symbol:** ${task.symbol}` : "";
37
- const contextBody = task.context ?? "No context provided.";
38
- sections.push(`${contextHeader}${symbolLine}\n\n${contextBody}`);
39
- // Instructions based on context type
40
- sections.push(buildContextTypeGuidance(task.context_type));
40
+ // Scope + how to gather context
41
+ sections.push(buildScopeSection(task.scope));
41
42
  // Output format instructions
42
43
  sections.push(buildOutputInstructions());
43
44
  return sections.join("\n\n");
44
45
  }
45
- /** Guidance on how to review based on the context type. */
46
- function buildContextTypeGuidance(contextType) {
47
- const header = "## Context Type";
48
- switch (contextType) {
49
- case "diff":
50
- return `${header}\nYou are reviewing a **diff**. The context shows what changed. Apply the criterion's checks to the changed code.`;
51
- case "file":
52
- return `${header}\nYou are reviewing **full file contents**. Apply the criterion's checks to the entire file.`;
53
- case "symbol":
54
- return `${header}\nYou are reviewing a **specific symbol** (function, class, or method). Apply the criterion's checks to the named symbol.`;
55
- default:
56
- return `${header}\nApply the criterion's checks to the provided context.`;
46
+ /** Tells the reviewer what scope it's working under and how to fetch its own context. */
47
+ function buildScopeSection(scope) {
48
+ if (scope.type === "changes") {
49
+ return `## Scope: changes against \`${scope.ref}\`
50
+
51
+ You are reviewing **only what changed** against \`${scope.ref}\`. For each file in "Files Under Review", run:
52
+
53
+ \`\`\`
54
+ git diff ${scope.ref} -- <file>
55
+ \`\`\`
56
+
57
+ Apply the criterion's checks to the changed lines. Unchanged code is out of scope — do not report issues that exist in the file but were not introduced or modified by the diff.
58
+
59
+ You may read additional files (with Read/Grep/Glob) to understand context — for example, reading a related interface to validate a change. But only produce issues whose primary location is one of the files listed above.`;
57
60
  }
61
+ return `## Scope: full files
62
+
63
+ You are reviewing the **full contents** of each assigned file. Use the Read tool to load each file in "Files Under Review" and apply the criterion's checks to the entire file.
64
+
65
+ You may read additional files (with Read/Grep/Glob) for context — for example, reading a related interface or test. But only produce issues whose primary location is one of the files listed above.`;
58
66
  }
59
67
  /** Instructions for the executor's output format. */
60
68
  function buildOutputInstructions() {
61
69
  return `## Your Task
62
70
  1. Read the review instructions carefully
63
- 2. Analyze the code provided in the context
71
+ 2. Use your tools to gather the code you need to inspect (per the Scope section above)
64
72
  3. Report issues as a JSON array to stdout
65
73
 
66
74
  Output ONLY a JSON array of issues. Each issue has references pointing to one or more code locations:
@@ -73,8 +81,9 @@ Output ONLY a JSON array of issues. Each issue has references pointing to one or
73
81
  {
74
82
  "file": "path/to/file",
75
83
  "symbol": "ClassName::method or null",
76
- "line": 42,
77
- "code": "the current code snippet, or null",
84
+ "startLine": 42,
85
+ "endLine": 55,
86
+ "contextLines": 3,
78
87
  "suggestedCode": "what it should look like, or null",
79
88
  "note": "why this location is relevant, or null"
80
89
  }
@@ -90,9 +99,11 @@ Output ONLY a JSON array of issues. Each issue has references pointing to one or
90
99
  - \`references\`: array of code locations where the issue manifests (at least one required)
91
100
  - \`file\`: the file path
92
101
  - \`symbol\`: semantic anchor like "ClassName::method" or "ClassName::$property" — stable across refactors. Use null if not applicable.
93
- - \`line\`: line number for navigation, or null
94
- - \`code\`: include the relevant code snippet so the reviewer can understand the issue without opening the file. Keep it focused (the relevant function/block, not the entire file).
95
- - \`suggestedCode\`: when suggesting a fix, show what the code should look like. Use null when the fix is better described in the top-level \`suggestion\`.
102
+ - \`startLine\`: first line of the flagged code range (inclusive). REQUIRED.
103
+ - \`endLine\`: last line of the flagged code range (inclusive). REQUIRED. Use the same value as \`startLine\` for single-line issues.
104
+ - \`contextLines\`: how many lines of surrounding context to include above and below the flagged range in the code snippet. Defaults to 3. Use more (e.g. 5-10) when the surrounding function/block is needed to understand the issue, less (0-1) when the flagged line is self-explanatory.
105
+ - Do NOT include a \`code\` field — the actual code snippet will be resolved automatically from the line range.
106
+ - \`suggestedCode\`: when suggesting a concrete replacement, show what the code should look like. Use null when the fix is better described in the top-level \`suggestion\`.
96
107
  - \`note\`: brief context for why this reference matters (e.g. "First occurrence", "Duplicated", "Missing return type"). Use null when obvious.
97
108
 
98
109
  ### When to use multiple references
@@ -100,10 +111,6 @@ Output ONLY a JSON array of issues. Each issue has references pointing to one or
100
111
  - **Cross-file issues**: duplicated patterns across files, missing consistency between related files
101
112
  - **Single-file issues**: just use one reference
102
113
 
103
- ### Code snippets
104
-
105
- Include relevant code snippets in \`code\` so the reviewer can understand the issue without opening their editor. When suggesting a fix, include \`suggestedCode\` to show the before/after clearly.
106
-
107
114
  If no issues found, output an empty array: []
108
115
 
109
116
  Do NOT output any text outside the JSON array. No explanations, no markdown, no commentary — just the JSON array.`;
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorPrompt.js","sourceRoot":"","sources":["../../src/prompts/ExecutorPrompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;2GAU2F,CAAC,CAAC;IAE3G,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,sHAAsH,IAAI,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC,CAAC;IAElL,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAEpD,aAAa;IACb,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB;IACjB,MAAM,aAAa,GAAG,wCAAwC,IAAI,CAAC,YAAY,EAAE,CAAC;IAClF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,UAAU,OAAO,WAAW,EAAE,CAAC,CAAC;IAEjE,qCAAqC;IACrC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEzC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,2DAA2D;AAC3D,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC;IAEjC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,GAAG,MAAM,mHAAmH,CAAC;QACtI,KAAK,MAAM;YACT,OAAO,GAAG,MAAM,8FAA8F,CAAC;QACjH,KAAK,QAAQ;YACX,OAAO,GAAG,MAAM,2HAA2H,CAAC;QAC9I;YACE,OAAO,GAAG,MAAM,yDAAyD,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHAgDyG,CAAC;AACnH,CAAC"}
1
+ {"version":3,"file":"ExecutorPrompt.js","sourceRoot":"","sources":["../../src/prompts/ExecutorPrompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;2GAU2F,CAAC,CAAC;IAE3G,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,sHAAsH,IAAI,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC,CAAC;IAElL,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAEpD,qDAAqD;IACrD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,4DAA4D,IAAI,CAAC,KAAK,0EAA0E,CAAC,CAAC;IAClK,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,gCAAgC;IAChC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEzC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,yFAAyF;AACzF,SAAS,iBAAiB,CAAC,KAAY;IACrC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,+BAA+B,KAAK,CAAC,GAAG;;oDAEC,KAAK,CAAC,GAAG;;;WAGlD,KAAK,CAAC,GAAG;;;;;4NAKwM,CAAC;IAC3N,CAAC;IAED,OAAO;;;;qMAI4L,CAAC;AACtM,CAAC;AAED,qDAAqD;AACrD,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHA+CyG,CAAC;AACnH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ReviewModule } from "../types/criteria.js";
2
+ import type { Scope } from "../types/review.js";
3
+ /**
4
+ * Build the system prompt for a partitioner agent.
5
+ *
6
+ * The partitioner is given exactly one criterion and the list of files that
7
+ * matched its globs. Its job is to read the criterion's natural-language
8
+ * `partition` instruction and divide the files into one or more subtasks,
9
+ * each of which will become an executor task downstream.
10
+ */
11
+ export declare function buildPartitionerPrompt(criterion: ReviewModule, matchedFiles: string[], scope: Scope): string;
12
+ //# sourceMappingURL=PartitionerPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartitionerPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/PartitionerPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,KAAK,GACX,MAAM,CA8CR"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Build the system prompt for a partitioner agent.
3
+ *
4
+ * The partitioner is given exactly one criterion and the list of files that
5
+ * matched its globs. Its job is to read the criterion's natural-language
6
+ * `partition` instruction and divide the files into one or more subtasks,
7
+ * each of which will become an executor task downstream.
8
+ */
9
+ export function buildPartitionerPrompt(criterion, matchedFiles, scope) {
10
+ const fileList = matchedFiles.map((f) => `- ${f}`).join("\n");
11
+ const scopeLine = scope.type === "changes"
12
+ ? `changes against \`${scope.ref}\` (only the diff matters; you can run \`git diff ${scope.ref} -- <file>\` to inspect what changed)`
13
+ : `full files (every line of every file is in scope)`;
14
+ return `You are a deskcheck partitioner. You receive ONE criterion and a list of files that matched its globs. Your job is to split those files into review subtasks according to the criterion's \`partition\` instruction. You do NOT review code yourself.
15
+
16
+ ## Criterion
17
+
18
+ - ID: ${criterion.id}
19
+ - Description: ${criterion.description}
20
+ - Partition instruction: ${criterion.partition}
21
+
22
+ ### Criterion body (for reference, do NOT review against it)
23
+
24
+ ${criterion.prompt}
25
+
26
+ ## Files to partition
27
+
28
+ ${fileList}
29
+
30
+ ## Scope
31
+
32
+ ${scopeLine}
33
+
34
+ ## How to partition
35
+
36
+ 1. Read the partition instruction above. It is natural language — interpret it.
37
+ 2. If the instruction implies you need to look inside files to make a sensible split (e.g. "one task per public method", "group by class"), use Read/Grep/Glob/Bash to inspect the files. For changes-mode scope, use \`git diff\` to focus on what was actually changed.
38
+ 3. Decide how to split the files into subtasks. Each subtask becomes one downstream reviewer call.
39
+ 4. Call the \`submit_partition\` tool with your decision.
40
+
41
+ ## Constraints
42
+
43
+ - **Every file in the input list MUST appear in at least one subtask.** Do not silently drop files. If a file is irrelevant to this criterion, that's a glob-matching problem — not your call to make.
44
+ - A file MAY appear in multiple subtasks if you set a different \`focus\` on each. This is the right choice when partitioning sub-file (e.g. one method per subtask): same file, different focus values.
45
+ - Each subtask must have at least one file.
46
+ - \`focus\` is optional. Use it for sub-file narrowing (method name, class name, region). Leave it null when the whole file(s) is the unit.
47
+ - \`hint\` is optional but encouraged. Write one short sentence explaining why these files belong together. The downstream reviewer sees it.
48
+ - Output via the \`submit_partition\` tool only. Do not write the JSON to stdout.
49
+
50
+ ## Tools
51
+
52
+ You have Read, Grep, Glob, and Bash for inspection, plus the \`submit_partition\` MCP tool for output. You do not have any other tools and you do not need them.`;
53
+ }
54
+ //# sourceMappingURL=PartitionerPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartitionerPrompt.js","sourceRoot":"","sources":["../../src/prompts/PartitionerPrompt.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAuB,EACvB,YAAsB,EACtB,KAAY;IAEZ,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,SAAS,GACb,KAAK,CAAC,IAAI,KAAK,SAAS;QACtB,CAAC,CAAC,qBAAqB,KAAK,CAAC,GAAG,qDAAqD,KAAK,CAAC,GAAG,uCAAuC;QACrI,CAAC,CAAC,mDAAmD,CAAC;IAE1D,OAAO;;;;QAID,SAAS,CAAC,EAAE;iBACH,SAAS,CAAC,WAAW;2BACX,SAAS,CAAC,SAAS;;;;EAI5C,SAAS,CAAC,MAAM;;;;EAIhB,QAAQ;;;;EAIR,SAAS;;;;;;;;;;;;;;;;;;;;iKAoBsJ,CAAC;AAClK,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Build the system prompt for the input resolver agent.
3
+ *
4
+ * The resolver's only job is to translate the user's natural-language request
5
+ * into a structured `{ scope, files }` pair. It does NOT match criteria, run
6
+ * partitioners, or review code — those are downstream pipeline steps that run
7
+ * the same way regardless of whether the input came from this agent or from
8
+ * the deterministic `deskcheck diff` path.
9
+ */
10
+ export declare function buildResolverPrompt(): string;
11
+ //# sourceMappingURL=ResolverPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolverPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/ResolverPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkC5C"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Build the system prompt for the input resolver agent.
3
+ *
4
+ * The resolver's only job is to translate the user's natural-language request
5
+ * into a structured `{ scope, files }` pair. It does NOT match criteria, run
6
+ * partitioners, or review code — those are downstream pipeline steps that run
7
+ * the same way regardless of whether the input came from this agent or from
8
+ * the deterministic `deskcheck diff` path.
9
+ */
10
+ export function buildResolverPrompt() {
11
+ return `You are the deskcheck input resolver. The user will describe what they want reviewed in natural language. Your ONLY job is to figure out:
12
+
13
+ 1. **Which files** they're talking about.
14
+ 2. **What scope** to apply: \`all\` (review the full files) or \`changes\` against a specific git ref (review only the diff against that ref).
15
+
16
+ You then call the \`submit_resolution\` tool with that information. You do NOT match criteria, plan tasks, or review code.
17
+
18
+ ## How to determine the file list
19
+
20
+ - **Directory mention** (e.g. "everything in app/Services/"): use Bash/Glob to list files recursively. Pass all of them.
21
+ - **Specific file** (e.g. "review src/cli.ts"): use that file path directly.
22
+ - **Branch / "changes" / "diff" mention** (e.g. "changes against develop"): run \`git diff <ref> --name-only\` to get the changed files.
23
+ - **Symbol mention** (e.g. "the foo function in bar.ts"): include the file in the file list. The downstream partitioner will narrow to the symbol via its \`focus\` mechanism.
24
+ - **Vague**: use Bash/Glob/Read to explore and pick a sensible default.
25
+
26
+ ## How to determine the scope
27
+
28
+ - If the user mentioned a branch or "changes against X" → \`scope_type: "changes"\`, \`scope_ref: "<X>"\`.
29
+ - If the user mentioned "the diff" / "what I changed" / "uncommitted changes" → \`scope_type: "changes"\`, \`scope_ref: "HEAD"\`.
30
+ - Otherwise (full file review, directory review, symbol review, vague request) → \`scope_type: "all"\`.
31
+
32
+ ## Empty result is OK
33
+
34
+ If after exploring you genuinely can't find any files that match the request, call \`submit_resolution\` with an empty \`files\` array. Don't guess. The CLI will surface an "empty plan" message to the user.
35
+
36
+ ## What you MUST NOT do
37
+
38
+ - Do not list or interpret review criteria. You don't see them.
39
+ - Do not group, partition, or split files into tasks.
40
+ - Do not read code looking for issues.
41
+ - Do not output anything to stdout. Use the \`submit_resolution\` tool.
42
+
43
+ You have Bash, Read, Glob, and Grep for filesystem and git exploration, plus the \`submit_resolution\` MCP tool.`;
44
+ }
45
+ //# sourceMappingURL=ResolverPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolverPrompt.js","sourceRoot":"","sources":["../../src/prompts/ResolverPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAgCwG,CAAC;AAClH,CAAC"}
@@ -44,9 +44,12 @@ export function renderMarkdown(results, plan) {
44
44
  }
45
45
  /** Format a reference's location string for markdown. */
46
46
  function formatRefLocation(ref) {
47
+ const lineRange = ref.startLine > 0
48
+ ? ref.startLine === ref.endLine ? `:${ref.startLine}` : `:${ref.startLine}-${ref.endLine}`
49
+ : "";
47
50
  if (ref.symbol) {
48
- return ref.line ? `${ref.file} ${ref.symbol}:${ref.line}` : `${ref.file} ${ref.symbol}`;
51
+ return `${ref.file} ${ref.symbol}${lineRange}`;
49
52
  }
50
- return ref.line ? `${ref.file}:${ref.line}` : ref.file;
53
+ return `${ref.file}${lineRange}`;
51
54
  }
52
55
  //# sourceMappingURL=MarkdownRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/renderers/review/MarkdownRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,IAAiB;IAEjB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;IAC5C,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,cAAc,QAAQ,cAAc,OAAO,aAAa,IAAI,YAAY,SAAS,IAAI,UAAU,QAAQ,CAClH,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,6BAA6B;IAC7B,KAAK,MAAM,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,WAAW,WAAW,QAAQ,IAAI,CAC9C,CAAC;YAEF,kBAAkB;YAClB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACb,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACjC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC5F,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,WAAW;IACX,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,qBAAqB,IAAI,CAAC,eAAe,CAAC,MAAM,qCAAqC,CAClH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,yDAAyD;AACzD,SAAS,iBAAiB,CAAC,GAAc;IACvC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/renderers/review/MarkdownRenderer.ts"],"names":[],"mappings":"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"}
@@ -102,9 +102,12 @@ export function renderTerminal(results, plan) {
102
102
  }
103
103
  /** Format a reference's location string: prefer symbol, fall back to file:line. */
104
104
  function formatRefLocation(ref) {
105
+ const lineRange = ref.startLine > 0
106
+ ? ref.startLine === ref.endLine ? `:${ref.startLine}` : `:${ref.startLine}-${ref.endLine}`
107
+ : "";
105
108
  if (ref.symbol) {
106
- return ref.line ? `${ref.file} ${ref.symbol}:${ref.line}` : `${ref.file} ${ref.symbol}`;
109
+ return `${ref.file} ${ref.symbol}${lineRange}`;
107
110
  }
108
- return ref.line ? `${ref.file}:${ref.line}` : ref.file;
111
+ return `${ref.file}${lineRange}`;
109
112
  }
110
113
  //# sourceMappingURL=TerminalRenderer.js.map