spec-gen-cli 1.2.5 → 1.2.7

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 (76) hide show
  1. package/README.md +66 -6
  2. package/dist/api/analyze.d.ts.map +1 -1
  3. package/dist/api/analyze.js +6 -1
  4. package/dist/api/analyze.js.map +1 -1
  5. package/dist/api/audit.d.ts +10 -0
  6. package/dist/api/audit.d.ts.map +1 -0
  7. package/dist/api/audit.js +117 -0
  8. package/dist/api/audit.js.map +1 -0
  9. package/dist/api/generate.d.ts.map +1 -1
  10. package/dist/api/generate.js +9 -1
  11. package/dist/api/generate.js.map +1 -1
  12. package/dist/api/index.d.ts +3 -2
  13. package/dist/api/index.d.ts.map +1 -1
  14. package/dist/api/index.js +1 -0
  15. package/dist/api/index.js.map +1 -1
  16. package/dist/api/run.d.ts.map +1 -1
  17. package/dist/api/run.js +5 -1
  18. package/dist/api/run.js.map +1 -1
  19. package/dist/api/types.d.ts +13 -4
  20. package/dist/api/types.d.ts.map +1 -1
  21. package/dist/cli/commands/audit.d.ts +9 -0
  22. package/dist/cli/commands/audit.d.ts.map +1 -0
  23. package/dist/cli/commands/audit.js +98 -0
  24. package/dist/cli/commands/audit.js.map +1 -0
  25. package/dist/cli/commands/generate.d.ts.map +1 -1
  26. package/dist/cli/commands/generate.js +4 -2
  27. package/dist/cli/commands/generate.js.map +1 -1
  28. package/dist/cli/commands/mcp.d.ts +327 -2
  29. package/dist/cli/commands/mcp.d.ts.map +1 -1
  30. package/dist/cli/commands/mcp.js +147 -3
  31. package/dist/cli/commands/mcp.js.map +1 -1
  32. package/dist/cli/commands/refresh-stories.d.ts +10 -0
  33. package/dist/cli/commands/refresh-stories.d.ts.map +1 -0
  34. package/dist/cli/commands/refresh-stories.js +314 -0
  35. package/dist/cli/commands/refresh-stories.js.map +1 -0
  36. package/dist/cli/index.js +4 -0
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/constants.d.ts +4 -0
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +4 -0
  41. package/dist/constants.js.map +1 -1
  42. package/dist/core/analyzer/spec-snapshot-generator.d.ts +17 -0
  43. package/dist/core/analyzer/spec-snapshot-generator.d.ts.map +1 -0
  44. package/dist/core/analyzer/spec-snapshot-generator.js +201 -0
  45. package/dist/core/analyzer/spec-snapshot-generator.js.map +1 -0
  46. package/dist/core/analyzer/unified-search.d.ts +107 -0
  47. package/dist/core/analyzer/unified-search.d.ts.map +1 -0
  48. package/dist/core/analyzer/unified-search.js +237 -0
  49. package/dist/core/analyzer/unified-search.js.map +1 -0
  50. package/dist/core/generator/openspec-format-generator.js +1 -1
  51. package/dist/core/generator/openspec-format-generator.js.map +1 -1
  52. package/dist/core/services/chat-tools.d.ts.map +1 -1
  53. package/dist/core/services/chat-tools.js +54 -6
  54. package/dist/core/services/chat-tools.js.map +1 -1
  55. package/dist/core/services/llm-service.d.ts +18 -1
  56. package/dist/core/services/llm-service.d.ts.map +1 -1
  57. package/dist/core/services/llm-service.js +112 -4
  58. package/dist/core/services/llm-service.js.map +1 -1
  59. package/dist/core/services/mcp-handlers/analysis.d.ts +5 -0
  60. package/dist/core/services/mcp-handlers/analysis.d.ts.map +1 -1
  61. package/dist/core/services/mcp-handlers/analysis.js +20 -0
  62. package/dist/core/services/mcp-handlers/analysis.js.map +1 -1
  63. package/dist/core/services/mcp-handlers/change.d.ts +14 -0
  64. package/dist/core/services/mcp-handlers/change.d.ts.map +1 -0
  65. package/dist/core/services/mcp-handlers/change.js +416 -0
  66. package/dist/core/services/mcp-handlers/change.js.map +1 -0
  67. package/dist/core/services/mcp-handlers/semantic.d.ts +4 -0
  68. package/dist/core/services/mcp-handlers/semantic.d.ts.map +1 -1
  69. package/dist/core/services/mcp-handlers/semantic.js +101 -32
  70. package/dist/core/services/mcp-handlers/semantic.js.map +1 -1
  71. package/dist/types/index.d.ts +70 -1
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/package.json +4 -1
  74. package/src/viewer/InteractiveGraphViewer.jsx +46 -4
  75. package/src/viewer/components/ChatPanel.jsx +2 -3
  76. package/src/viewer/components/ClusterGraph.jsx +22 -6
@@ -20,11 +20,16 @@ export function classifyRole(fanIn, fanOut, isHub, isEntryPoint) {
20
20
  }
21
21
  export function deriveStrategy(role) {
22
22
  switch (role) {
23
- case 'entry_point': return 'extend_entry_point';
24
- case 'orchestrator': return 'add_orchestration_step';
25
- case 'hub': return 'cross_cutting_hook';
26
- case 'utility': return 'extract_shared_logic';
27
- default: return 'call_alongside';
23
+ case 'entry_point':
24
+ return 'extend_entry_point';
25
+ case 'orchestrator':
26
+ return 'add_orchestration_step';
27
+ case 'hub':
28
+ return 'cross_cutting_hook';
29
+ case 'utility':
30
+ return 'extract_shared_logic';
31
+ default:
32
+ return 'call_alongside';
28
33
  }
29
34
  }
30
35
  export function buildReason(name, role, strategy, fanIn, fanOut) {
@@ -107,9 +112,9 @@ export async function handleSearchCode(directory, query, limit = 10, language, m
107
112
  let calleeMap;
108
113
  if (llmCtx?.callGraph) {
109
114
  const cg = llmCtx.callGraph;
110
- const nodeMap = new Map(cg.nodes.map(n => [n.id, n]));
111
- callerMap = new Map(cg.nodes.map(n => [n.id, []]));
112
- calleeMap = new Map(cg.nodes.map(n => [n.id, []]));
115
+ const nodeMap = new Map(cg.nodes.map((n) => [n.id, n]));
116
+ callerMap = new Map(cg.nodes.map((n) => [n.id, []]));
117
+ calleeMap = new Map(cg.nodes.map((n) => [n.id, []]));
113
118
  for (const e of cg.edges) {
114
119
  if (!e.calleeId)
115
120
  continue;
@@ -123,7 +128,7 @@ export async function handleSearchCode(directory, query, limit = 10, language, m
123
128
  }
124
129
  const specPeers = [];
125
130
  if (mappingIdx) {
126
- const resultFileSet = new Set(results.map(r => r.record.filePath));
131
+ const resultFileSet = new Set(results.map((r) => r.record.filePath));
127
132
  const seedDomains = new Set();
128
133
  for (const r of results) {
129
134
  for (const spec of specsForFile(mappingIdx, r.record.filePath))
@@ -143,9 +148,13 @@ export async function handleSearchCode(directory, query, limit = 10, language, m
143
148
  return {
144
149
  query,
145
150
  searchMode,
146
- ...(searchMode === 'bm25_fallback' ? { note: 'Embedding server unavailable — results based on keyword matching only. Configure EMBED_BASE_URL + EMBED_MODEL for semantic search.' } : {}),
151
+ ...(searchMode === 'bm25_fallback'
152
+ ? {
153
+ note: 'Embedding server unavailable — results based on keyword matching only. Configure EMBED_BASE_URL + EMBED_MODEL for semantic search.',
154
+ }
155
+ : {}),
147
156
  count: results.length,
148
- results: results.map(r => ({
157
+ results: results.map((r) => ({
149
158
  score: r.score,
150
159
  name: r.record.name,
151
160
  filePath: r.record.filePath,
@@ -186,11 +195,15 @@ export async function handleSuggestInsertionPoints(directory, description, limit
186
195
  catch {
187
196
  const cfg = await readSpecGenConfig(absDir);
188
197
  if (!cfg) {
189
- return { error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.' };
198
+ return {
199
+ error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.',
200
+ };
190
201
  }
191
202
  const svcFromConfig = EmbeddingService.fromConfig(cfg);
192
203
  if (!svcFromConfig) {
193
- return { error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.' };
204
+ return {
205
+ error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.',
206
+ };
194
207
  }
195
208
  embedSvc = svcFromConfig;
196
209
  }
@@ -201,9 +214,9 @@ export async function handleSuggestInsertionPoints(directory, description, limit
201
214
  readCachedContext(absDir),
202
215
  ]);
203
216
  // Normalise search scores to [0, 1] for compositeScore (scores are RRF/BM25: higher = better)
204
- const maxScore = rawResults.length > 0 ? Math.max(...rawResults.map(r => r.score)) : 1;
205
- const normalise = (s) => maxScore > 0 ? s / maxScore : 0;
206
- const candidates = rawResults.map(r => {
217
+ const maxScore = rawResults.length > 0 ? Math.max(...rawResults.map((r) => r.score)) : 1;
218
+ const normalise = (s) => (maxScore > 0 ? s / maxScore : 0);
219
+ const candidates = rawResults.map((r) => {
207
220
  const role = classifyRole(r.record.fanIn, r.record.fanOut, r.record.isHub, r.record.isEntryPoint);
208
221
  const strategy = deriveStrategy(role);
209
222
  const score = compositeScore(normalise(r.score), role);
@@ -217,10 +230,13 @@ export async function handleSuggestInsertionPoints(directory, description, limit
217
230
  language: r.record.language,
218
231
  signature: r.record.signature || undefined,
219
232
  docstring: r.record.docstring || undefined,
220
- role, insertionStrategy: strategy,
233
+ role,
234
+ insertionStrategy: strategy,
221
235
  reason: buildReason(r.record.name, role, strategy, r.record.fanIn, r.record.fanOut),
222
- fanIn: r.record.fanIn, fanOut: r.record.fanOut,
223
- isHub: r.record.isHub, isEntryPoint: r.record.isEntryPoint,
236
+ fanIn: r.record.fanIn,
237
+ fanOut: r.record.fanOut,
238
+ isHub: r.record.isHub,
239
+ isEntryPoint: r.record.isEntryPoint,
224
240
  };
225
241
  });
226
242
  // RIG-13 — Graph expansion: add depth-1 callers of semantic seed functions.
@@ -228,7 +244,7 @@ export async function handleSuggestInsertionPoints(directory, description, limit
228
244
  // they coordinate the domain logic and control the execution flow.
229
245
  if (llmCtx?.callGraph) {
230
246
  const cg = llmCtx.callGraph;
231
- const nodeById = new Map(cg.nodes.map(n => [n.id, n]));
247
+ const nodeById = new Map(cg.nodes.map((n) => [n.id, n]));
232
248
  // Build callerOf: nodeId → caller node ids
233
249
  const callerOf = new Map();
234
250
  for (const e of cg.edges) {
@@ -238,8 +254,8 @@ export async function handleSuggestInsertionPoints(directory, description, limit
238
254
  list.push(e.callerId);
239
255
  callerOf.set(e.calleeId, list);
240
256
  }
241
- const seedIds = new Set(rawResults.map(r => r.record.id));
242
- const existingIds = new Set(candidates.map(c => `${c.filePath}::${c.name}`));
257
+ const seedIds = new Set(rawResults.map((r) => r.record.id));
258
+ const existingIds = new Set(candidates.map((c) => `${c.filePath}::${c.name}`));
243
259
  for (const seedResult of rawResults) {
244
260
  const callerIds = callerOf.get(seedResult.record.id) ?? [];
245
261
  for (const callerId of callerIds) {
@@ -264,10 +280,13 @@ export async function handleSuggestInsertionPoints(directory, description, limit
264
280
  language: callerNode.language,
265
281
  signature: undefined,
266
282
  docstring: undefined,
267
- role, insertionStrategy: strategy,
283
+ role,
284
+ insertionStrategy: strategy,
268
285
  reason: `${callerNode.name} calls ${seedResult.record.name} (semantically close to your feature). Adding logic here propagates to the domain.`,
269
- fanIn: callerNode.fanIn, fanOut: callerNode.fanOut,
270
- isHub: false, isEntryPoint: false,
286
+ fanIn: callerNode.fanIn,
287
+ fanOut: callerNode.fanOut,
288
+ isHub: false,
289
+ isEntryPoint: false,
271
290
  });
272
291
  }
273
292
  }
@@ -284,7 +303,9 @@ export async function handleSuggestInsertionPoints(directory, description, limit
284
303
  `Run get_subgraph on "${top[0].name}" to understand its call neighborhood`,
285
304
  `After implementing, run check_spec_drift to verify the code matches the spec`,
286
305
  ]
287
- : ['No candidates found. Try a broader description or run "spec-gen analyze --embed" to build the index.'],
306
+ : [
307
+ 'No candidates found. Try a broader description or run "spec-gen analyze --embed" to build the index.',
308
+ ],
288
309
  };
289
310
  }
290
311
  /**
@@ -297,7 +318,9 @@ export async function handleGetSpec(directory, domain) {
297
318
  const absDir = await validateDirectory(directory);
298
319
  const specFile = pjoin(absDir, 'openspec', 'specs', domain, 'spec.md');
299
320
  if (!existsSync(specFile)) {
300
- return { error: `No spec found for domain "${domain}". Run list_spec_domains to see available domains.` };
321
+ return {
322
+ error: `No spec found for domain "${domain}". Run list_spec_domains to see available domains.`,
323
+ };
301
324
  }
302
325
  const [content, mappingIdx] = await Promise.all([
303
326
  readFile(specFile, 'utf-8'),
@@ -321,7 +344,10 @@ export async function handleListSpecDomains(directory) {
321
344
  const absDir = await validateDirectory(directory);
322
345
  const specsDir = pjoin(absDir, OPENSPEC_DIR, OPENSPEC_SPECS_SUBDIR);
323
346
  if (!(await fileExists(specsDir))) {
324
- return { domains: [], note: 'No openspec/specs/ directory found. Run "spec-gen generate" first.' };
347
+ return {
348
+ domains: [],
349
+ note: 'No openspec/specs/ directory found. Run "spec-gen generate" first.',
350
+ };
325
351
  }
326
352
  let entries;
327
353
  try {
@@ -330,7 +356,7 @@ export async function handleListSpecDomains(directory) {
330
356
  catch {
331
357
  return { domains: [] };
332
358
  }
333
- const domainChecks = await Promise.all(entries.map(e => fileExists(pjoin(specsDir, e, 'spec.md'))));
359
+ const domainChecks = await Promise.all(entries.map((e) => fileExists(pjoin(specsDir, e, 'spec.md'))));
334
360
  const domains = entries.filter((_, i) => domainChecks[i]);
335
361
  return { domains, count: domains.length };
336
362
  }
@@ -356,11 +382,15 @@ export async function handleSearchSpecs(directory, query, limit = 10, domain, se
356
382
  catch {
357
383
  const cfg = await readSpecGenConfig(absDir);
358
384
  if (!cfg) {
359
- return { error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.' };
385
+ return {
386
+ error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.',
387
+ };
360
388
  }
361
389
  const svcFromConfig = EmbeddingService.fromConfig(cfg);
362
390
  if (!svcFromConfig) {
363
- return { error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.' };
391
+ return {
392
+ error: 'No embedding configuration found. Set EMBED_BASE_URL and EMBED_MODEL env vars, or add an "embedding" section to .spec-gen/config.json.',
393
+ };
364
394
  }
365
395
  embedSvc = svcFromConfig;
366
396
  }
@@ -372,7 +402,7 @@ export async function handleSearchSpecs(directory, query, limit = 10, domain, se
372
402
  return {
373
403
  query,
374
404
  count: results.length,
375
- results: results.map(r => ({
405
+ results: results.map((r) => ({
376
406
  score: r.score,
377
407
  id: r.record.id,
378
408
  domain: r.record.domain,
@@ -384,4 +414,43 @@ export async function handleSearchSpecs(directory, query, limit = 10, domain, se
384
414
  })),
385
415
  };
386
416
  }
417
+ /**
418
+ * Unified search that combines code and spec indexes with cross-scoring
419
+ */
420
+ export async function handleUnifiedSearch(directory, query, limit = 10, language, domain, section) {
421
+ const absDir = await validateDirectory(directory);
422
+ const outputDir = join(absDir, SPEC_GEN_DIR, SPEC_GEN_ANALYSIS_SUBDIR);
423
+ const { UnifiedSearch, unifiedSearchAvailable } = await import('../../analyzer/unified-search.js');
424
+ const { EmbeddingService } = await import('../../analyzer/embedding-service.js');
425
+ if (!(await unifiedSearchAvailable(outputDir))) {
426
+ return {
427
+ error: 'No unified search available. Run "spec-gen analyze --embed" first, ' +
428
+ 'then configure EMBED_BASE_URL and EMBED_MODEL.',
429
+ };
430
+ }
431
+ // Resolve embedding service
432
+ let embedSvc = null;
433
+ try {
434
+ embedSvc = EmbeddingService.fromEnv();
435
+ }
436
+ catch {
437
+ const cfg = await readSpecGenConfig(absDir);
438
+ const svcFromConfig = cfg ? EmbeddingService.fromConfig(cfg) : null;
439
+ if (svcFromConfig) {
440
+ embedSvc = svcFromConfig;
441
+ }
442
+ }
443
+ limit = Math.max(1, Math.min(limit, 50));
444
+ const results = await UnifiedSearch.unifiedSearch(outputDir, query, embedSvc, {
445
+ limit,
446
+ language,
447
+ domain,
448
+ section,
449
+ });
450
+ return {
451
+ query,
452
+ count: results.length,
453
+ results,
454
+ };
455
+ }
387
456
  //# sourceMappingURL=semantic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/semantic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/semantic.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export interface AnalysisConfig {
31
31
  excludePatterns: string[];
32
32
  }
33
33
  export interface GenerationConfig {
34
- provider?: 'anthropic' | 'openai' | 'openai-compat' | 'copilot' | 'gemini' | 'claude-code' | 'mistral-vibe';
34
+ provider?: 'anthropic' | 'openai' | 'openai-compat' | 'copilot' | 'gemini' | 'claude-code' | 'mistral-vibe' | 'gemini-cli' | 'cursor-agent';
35
35
  model?: string;
36
36
  openaiCompatBaseUrl?: string;
37
37
  skipSslVerify?: boolean;
@@ -251,4 +251,73 @@ export interface SpecMap {
251
251
  domainCount: number;
252
252
  totalMappedFiles: number;
253
253
  }
254
+ export interface SpecSnapshotDomain {
255
+ name: string;
256
+ specFile: string;
257
+ sourceFiles: string[];
258
+ requirementCount: number;
259
+ mappedFunctionCount: number;
260
+ coveragePct: number;
261
+ specModifiedAt: string;
262
+ sourcesModifiedAt: string;
263
+ }
264
+ export interface SpecSnapshotHub {
265
+ name: string;
266
+ file: string;
267
+ fanIn: number;
268
+ covered: boolean;
269
+ }
270
+ export interface SpecSnapshot {
271
+ version: '1';
272
+ generatedAt: string;
273
+ git: {
274
+ commit: string;
275
+ branch: string;
276
+ dirty: boolean;
277
+ };
278
+ coverage: {
279
+ totalFunctions: number;
280
+ coveredFunctions: number;
281
+ orphanFunctions: number;
282
+ coveragePct: number;
283
+ };
284
+ domains: SpecSnapshotDomain[];
285
+ hubs: SpecSnapshotHub[];
286
+ }
287
+ export interface AuditUncoveredFunction {
288
+ name: string;
289
+ file: string;
290
+ kind: string;
291
+ fanIn: number;
292
+ fanOut: number;
293
+ isHub: boolean;
294
+ }
295
+ export interface AuditOrphanRequirement {
296
+ requirement: string;
297
+ domain: string;
298
+ specFile: string;
299
+ }
300
+ export interface AuditStaleDomain {
301
+ name: string;
302
+ specFile: string;
303
+ specModifiedAt: string;
304
+ sourcesModifiedAt: string;
305
+ staleSince: string;
306
+ }
307
+ export interface AuditReport {
308
+ generatedAt: string;
309
+ summary: {
310
+ totalFunctions: number;
311
+ coveredFunctions: number;
312
+ coveragePct: number;
313
+ uncoveredCount: number;
314
+ hubGapCount: number;
315
+ orphanRequirementCount: number;
316
+ staleDomainCount: number;
317
+ };
318
+ uncoveredFunctions: AuditUncoveredFunction[];
319
+ hubGaps: AuditUncoveredFunction[];
320
+ orphanRequirements: AuditOrphanRequirement[];
321
+ staleDomains: AuditStaleDomain[];
322
+ }
254
323
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-gen-cli",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "description": "Reverse-engineer OpenSpec specifications from existing codebases",
5
5
  "type": "module",
6
6
  "main": "dist/api/index.js",
@@ -116,5 +116,8 @@
116
116
  "typescript": "^5.7.2",
117
117
  "typescript-eslint": "^8.19.1",
118
118
  "vitest": "^4.0.18"
119
+ },
120
+ "optionalDependencies": {
121
+ "tree-sitter-cli": "^0.23"
119
122
  }
120
123
  }
@@ -289,10 +289,39 @@ export default function App({ graphUrl, mappingUrl = '/api/mapping', specUrl = '
289
289
  return () => window.removeEventListener('keydown', onKey);
290
290
  }, [clearSelection]);
291
291
 
292
+ // Track which clusters were auto-expanded by the chatbot (so we can collapse them on clear)
293
+ const chatExpandedClusters = useRef(new Set());
294
+ // Track whether selectedId was set by the chatbot (so we can clear it on clear)
295
+ const chatSelectedId = useRef(null);
296
+
292
297
  // Auto-expand clusters when their nodes are highlighted by the chatbot
293
298
  useEffect(() => {
294
- if (!graph || focusedIds.length === 0) return;
295
-
299
+ if (!graph) return;
300
+
301
+ if (focusedIds.length === 0) {
302
+ // focusedIds cleared — collapse clusters that were auto-expanded by chat
303
+ if (chatExpandedClusters.current.size > 0) {
304
+ const toCollapse = new Set(chatExpandedClusters.current);
305
+ chatExpandedClusters.current = new Set();
306
+ setExpandedClusters((prev) => {
307
+ const next = new Set(prev);
308
+ toCollapse.forEach((cid) => next.delete(cid));
309
+ return next;
310
+ });
311
+ // If the selected node is inside a collapsing cluster, clear selection
312
+ // to avoid ghost edges rendering from cluster centers
313
+ if (selectedId) {
314
+ const selNode = graph.nodes.find((n) => n.id === selectedId);
315
+ if (selNode && toCollapse.has(selNode.cluster?.id)) {
316
+ setSelectedId(null);
317
+ setAffectedIds([]);
318
+ }
319
+ }
320
+ }
321
+ chatSelectedId.current = null;
322
+ return;
323
+ }
324
+
296
325
  const clusterIdsToExpand = new Set();
297
326
  const validNodeIds = [];
298
327
  focusedIds.forEach((fid) => {
@@ -302,11 +331,16 @@ export default function App({ graphUrl, mappingUrl = '/api/mapping', specUrl = '
302
331
  validNodeIds.push(fid);
303
332
  }
304
333
  });
305
-
334
+
306
335
  if (clusterIdsToExpand.size > 0) {
307
336
  setExpandedClusters((prev) => {
308
337
  const next = new Set(prev);
309
- clusterIdsToExpand.forEach((cid) => next.add(cid));
338
+ clusterIdsToExpand.forEach((cid) => {
339
+ if (!prev.has(cid)) {
340
+ next.add(cid);
341
+ chatExpandedClusters.current.add(cid);
342
+ }
343
+ });
310
344
  return next;
311
345
  });
312
346
  }
@@ -317,6 +351,7 @@ export default function App({ graphUrl, mappingUrl = '/api/mapping', specUrl = '
317
351
  setSelectedId(validNodeIds[0]);
318
352
  setAffectedIds([]);
319
353
  setTab(mapping ? 'spec' : 'node');
354
+ chatSelectedId.current = validNodeIds[0];
320
355
  }
321
356
  }, [focusedIds, graph, mapping]);
322
357
 
@@ -851,6 +886,13 @@ export default function App({ graphUrl, mappingUrl = '/api/mapping', specUrl = '
851
886
  onHighlight={(ids) => setFocusedIds(ids)}
852
887
  onHighlightPaths={(paths) => setFocusedPaths(paths)}
853
888
  onClose={() => { setChatOpen(false); setFocusedIds([]); setFocusedPaths([]); }}
889
+ onClearGraph={() => {
890
+ setFocusedIds([]);
891
+ setFocusedPaths([]);
892
+ setExpandedClusters(new Set());
893
+ setSelectedId(null);
894
+ setAffectedIds([]);
895
+ }}
854
896
  />
855
897
  )}
856
898
 
@@ -159,7 +159,7 @@ function ToolSpinner() {
159
159
  * onHighlightPaths(paths: string[])-- called with raw file paths (for class graph)
160
160
  * onClose() -- called when the panel is closed
161
161
  */
162
- export function ChatPanel({ onHighlight, onHighlightPaths, onClose }) {
162
+ export function ChatPanel({ onHighlight, onHighlightPaths, onClose, onClearGraph }) {
163
163
  const [messages, setMessages] = useState([
164
164
  {
165
165
  role: 'assistant',
@@ -265,8 +265,7 @@ export function ChatPanel({ onHighlight, onHighlightPaths, onClose }) {
265
265
  const clear = () => {
266
266
  setMessages([{ role: 'assistant', content: 'Conversation cleared. What would you like to know?' }]);
267
267
  setError(null);
268
- onHighlight([]);
269
- onHighlightPaths?.([]);
268
+ onClearGraph?.();
270
269
  };
271
270
 
272
271
  return (
@@ -96,6 +96,25 @@ export function ClusterGraph({
96
96
  });
97
97
  }, [edges, nodes]);
98
98
 
99
+ // Focused cluster IDs (clusters containing a chat-highlighted node)
100
+ const focusedClusterIds = useMemo(() => {
101
+ if (!focusedIds?.length) return null;
102
+ return new Set(nodes.filter((n) => focusedIds.includes(n.id)).map((n) => n.cluster.id));
103
+ }, [focusedIds, nodes]);
104
+
105
+ // Neighbor cluster IDs (non-focused clusters directly connected to a focused cluster)
106
+ const neighborClusterIds = useMemo(() => {
107
+ if (!focusedClusterIds) return null;
108
+ const neighbors = new Set();
109
+ clusterEdges.forEach((e) => {
110
+ if (focusedClusterIds.has(e.source) && !focusedClusterIds.has(e.target))
111
+ neighbors.add(e.target);
112
+ if (focusedClusterIds.has(e.target) && !focusedClusterIds.has(e.source))
113
+ neighbors.add(e.source);
114
+ });
115
+ return neighbors;
116
+ }, [focusedClusterIds, clusterEdges]);
117
+
99
118
  return (
100
119
  <svg
101
120
  viewBox="0 0 900 540"
@@ -141,9 +160,6 @@ export function ClusterGraph({
141
160
  {/* Inter-cluster edges */}
142
161
  {!selectedId &&
143
162
  (() => {
144
- const focusedClusterIds = focusedIds?.length > 0
145
- ? new Set(nodes.filter((n) => focusedIds.includes(n.id)).map((n) => n.cluster.id))
146
- : null;
147
163
  return clusterEdges.map((e) => {
148
164
  const s = clusterPos[e.source],
149
165
  t = clusterPos[e.target];
@@ -156,10 +172,11 @@ export function ClusterGraph({
156
172
  const rs = 38,
157
173
  rt = 38;
158
174
  const w = Math.min(1 + e.count * 0.15, 4);
175
+ // dim edge only when BOTH endpoints are non-focused (OR logic)
159
176
  const isDimEdge = focusedClusterIds &&
160
177
  !focusedClusterIds.has(e.source) && !focusedClusterIds.has(e.target);
161
178
  return (
162
- <g key={e.id}>
179
+ <g key={e.id} opacity={isDimEdge ? 0.06 : 0.5}>
163
180
  <line
164
181
  x1={s.x + nx * rs}
165
182
  y1={s.y + ny * rs}
@@ -167,7 +184,6 @@ export function ClusterGraph({
167
184
  y2={t.y - ny * (rt + 5)}
168
185
  stroke="var(--ac-arrow)"
169
186
  strokeWidth={w}
170
- strokeOpacity={isDimEdge ? 0.06 : 0.5}
171
187
  markerEnd="url(#carr)"
172
188
  />
173
189
  <text
@@ -302,7 +318,7 @@ export function ClusterGraph({
302
318
  filter={
303
319
  noGlow ? undefined : isExpanded ? 'url(#cglow)' : isLinkedCollapsed ? 'url(#cglow)' : undefined
304
320
  }
305
- opacity={isClusterGreyed ? 0.18 : 1}
321
+ opacity={isClusterGreyed ? (neighborClusterIds?.has(cl.id) ? 0.4 : 0.18) : 1}
306
322
  >
307
323
  <title>{cl.name} — {allMembers.length} file{allMembers.length !== 1 ? 's' : ''}</title>
308
324
  <circle