prolog-trace-viz 1.0.2 → 1.1.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.
package/README.md CHANGED
@@ -9,6 +9,8 @@ Generate beautiful, educational Mermaid diagrams from Prolog execution traces.
9
9
  - Generates colour-coded Mermaid diagrams
10
10
  - Produces complete markdown documentation with step-by-step breakdowns
11
11
  - Tracks pending goals, variable bindings, and clause usage
12
+ - **Smart clause filtering** - Only shows clauses that were actually used during execution
13
+ - **Clean table format** - Organised clause presentation with line numbers
12
14
  - No external dependencies beyond SWI-Prolog
13
15
 
14
16
  ## Prerequisites
@@ -92,7 +94,7 @@ Produces a markdown document with:
92
94
  3. **Legend** - Explanation of visual elements
93
95
  4. **Step-by-step breakdown** - Detailed execution steps
94
96
  5. **Final answer** - The result bindings
95
- 6. **Clauses used** - Summary of which clauses matched
97
+ 6. **Clauses used** - Clean table showing only the clauses that were actually used during execution
96
98
 
97
99
  ### Visual Elements
98
100
 
@@ -52,7 +52,7 @@ import { Clause } from './clauses.js';
52
52
  /**
53
53
  * Analyzes an execution tree and produces visualization data.
54
54
  */
55
- export declare function analyzeTree(root: ExecutionNode, clauses?: Clause[], options?: AnalysisOptions, traceEvents?: TraceEvent[]): AnalysisResult;
55
+ export declare function analyzeTree(root: ExecutionNode, clauses?: Clause[], options?: AnalysisOptions, traceEvents?: TraceEvent[], originalQuery?: string): AnalysisResult;
56
56
  /**
57
57
  * Assigns level-based variable names to avoid confusion in recursive calls.
58
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAiCvE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAYD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAgHtC;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,MAAM,EAAO,EACtB,OAAO,GAAE,eAAoB,EAC7B,WAAW,GAAE,UAAU,EAAO,GAC7B,cAAc,CA8EhB;AAisBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAe7E;AA8DD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAYrE"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAmCvE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAYD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAyMtC;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,MAAM,EAAO,EACtB,OAAO,GAAE,eAAoB,EAC7B,WAAW,GAAE,UAAU,EAAO,EAC9B,aAAa,CAAC,EAAE,MAAM,GACrB,cAAc,CAyIhB;AAoxBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAe7E;AA8DD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,EAAE,CAYrE"}
package/dist/analyzer.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Extracts clause definitions from raw trace events.
3
3
  * This uses the actual clauses that SWI-Prolog worked with during execution.
4
+ * Note: These clauses contain runtime variable names and should only be used
5
+ * as a fallback when original parsed clauses are not available.
4
6
  */
5
7
  function extractClausesFromTraceEvents(traceEvents) {
6
8
  const clauseMap = new Map();
@@ -33,6 +35,83 @@ const EMOJIS = {
33
35
  'clause-body': '📋',
34
36
  match: '📦',
35
37
  };
38
+ /**
39
+ * Maps runtime variable names back to source variable names based on the original query.
40
+ */
41
+ function mapRuntimeVariablesToSource(unifications, originalQuery) {
42
+ // Extract variables from the original query
43
+ const queryVars = extractVariablesFromGoal(originalQuery);
44
+ return unifications.map(u => {
45
+ // Try to find a corresponding source variable
46
+ // For now, use a simple heuristic: if there's only one variable in the query, map to it
47
+ if (queryVars.length === 1) {
48
+ return `${queryVars[0]} = ${u.value}`;
49
+ }
50
+ // For multiple variables, we'd need more sophisticated mapping
51
+ // For now, just use the runtime variable name
52
+ return `${u.variable} = ${u.value}`;
53
+ });
54
+ }
55
+ /**
56
+ * Maps runtime variables in a goal string to source variables.
57
+ */
58
+ function mapGoalVariablesToSource(goal, originalQuery) {
59
+ const queryVars = extractVariablesFromGoal(originalQuery);
60
+ if (queryVars.length === 1) {
61
+ // Replace any runtime variable with the source variable
62
+ return goal.replace(/_\d+/g, queryVars[0]);
63
+ }
64
+ // For multiple variables, return as-is for now
65
+ return goal;
66
+ }
67
+ /**
68
+ * Finds a matching clause from the parsed clauses based on predicate structure.
69
+ * This helps match trace events (which have runtime variables and different line numbers)
70
+ * with the original source clauses (which have source variables and correct line numbers).
71
+ */
72
+ function findMatchingClause(goal, parsedClauses, traceClause) {
73
+ const goalPredicate = goal.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
74
+ if (!goalPredicate)
75
+ return undefined;
76
+ const predicateName = goalPredicate[1];
77
+ // Find all clauses for this predicate
78
+ const predicateClauses = parsedClauses.filter(c => c.head.startsWith(predicateName + '('));
79
+ if (predicateClauses.length === 0)
80
+ return undefined;
81
+ if (predicateClauses.length === 1)
82
+ return predicateClauses[0];
83
+ // For multiple clauses, use heuristics to pick the right one
84
+ // If we have trace clause info, try to match by structure
85
+ if (traceClause) {
86
+ // Check if it's a fact (no body) vs rule (has body)
87
+ const traceIsRule = traceClause.body && traceClause.body !== 'true';
88
+ for (const clause of predicateClauses) {
89
+ const clauseIsRule = clause.body !== undefined;
90
+ if (traceIsRule === clauseIsRule) {
91
+ return clause;
92
+ }
93
+ }
94
+ }
95
+ // Fallback: use goal structure heuristics
96
+ const isBaseCase = goal.includes('(0,') || goal.includes('(0 ,') ||
97
+ goal.includes('([],') || goal.includes('([] ,') ||
98
+ goal.includes('(0+') || goal.includes('(0 +');
99
+ // For base cases, prefer the first clause (usually the base case)
100
+ // For recursive cases, prefer later clauses
101
+ return isBaseCase ? predicateClauses[0] : predicateClauses[predicateClauses.length - 1];
102
+ }
103
+ /**
104
+ * Extracts variable names from a Prolog goal.
105
+ */
106
+ function extractVariablesFromGoal(goal) {
107
+ const variables = [];
108
+ const matches = goal.match(/\b[A-Z][A-Za-z0-9_]*\b/g);
109
+ if (matches) {
110
+ // Remove duplicates
111
+ return [...new Set(matches)];
112
+ }
113
+ return variables;
114
+ }
36
115
  /**
37
116
  * Extracts unification details by matching a goal against a clause.
38
117
  */
@@ -134,11 +213,12 @@ function extractSubgoals(clause) {
134
213
  /**
135
214
  * Analyzes an execution tree and produces visualization data.
136
215
  */
137
- export function analyzeTree(root, clauses = [], options = {}, traceEvents = []) {
216
+ export function analyzeTree(root, clauses = [], options = {}, traceEvents = [], originalQuery) {
138
217
  const detailLevel = options.detailLevel || 'standard';
139
- // Extract clauses from trace events instead of using parsed clauses
218
+ // Always prefer original parsed clauses to preserve source variable names
219
+ // Only use trace-extracted clauses as a fallback if no parsed clauses are available
140
220
  const traceClauses = extractClausesFromTraceEvents(traceEvents);
141
- const actualClauses = traceClauses.length > 0 ? traceClauses : clauses;
221
+ const actualClauses = clauses.length > 0 ? clauses : traceClauses;
142
222
  const nodes = [];
143
223
  const edges = [];
144
224
  const pendingGoalMap = new Map(); // goal text -> node id
@@ -186,15 +266,69 @@ export function analyzeTree(root, clauses = [], options = {}, traceEvents = [])
186
266
  clauses: actualClauses,
187
267
  detailLevel,
188
268
  finalAnswer,
269
+ originalQuery,
189
270
  });
190
- // Clause usage tracking - since we can't reliably determine which clauses were used,
191
- // just list all available clauses
192
- const clausesUsed = actualClauses.map(clause => ({
193
- clauseNumber: clause.number,
194
- clauseText: clause.text,
195
- usageCount: 0,
196
- usedAtSteps: [],
197
- }));
271
+ // Track which clauses were actually used during execution
272
+ // Instead of relying on clause numbers (which can mismatch between tracer and parser),
273
+ // we'll track by predicate name from goals and node information
274
+ const usedPredicateNames = new Set();
275
+ // Collect predicate names from all nodes that participated in execution
276
+ for (const node of nodes) {
277
+ if (node.clauseNumber) {
278
+ // Extract predicate name from the node's goal or label
279
+ let predicateName;
280
+ // Try to extract from label first (for formatted nodes)
281
+ const labelMatch = node.label.match(/(?:Solve: |🔁 Recurse: |Match Clause \d+<br\/>)([a-z_][a-zA-Z0-9_]*)\(/);
282
+ if (labelMatch) {
283
+ predicateName = labelMatch[1];
284
+ }
285
+ else {
286
+ // Fallback: try to extract from raw goal if available
287
+ // This handles cases where we have raw ExecutionNode data
288
+ const goalMatch = node.label.match(/([a-z_][a-zA-Z0-9_]*)\(/);
289
+ if (goalMatch) {
290
+ predicateName = goalMatch[1];
291
+ }
292
+ }
293
+ if (predicateName) {
294
+ usedPredicateNames.add(predicateName);
295
+ }
296
+ }
297
+ }
298
+ // Also collect predicate names from the original execution tree
299
+ // This ensures we catch predicates that might not be in the visualization nodes
300
+ function collectPredicatesFromTree(node) {
301
+ if (node.clauseNumber) {
302
+ const goalMatch = node.goal.match(/([a-z_][a-zA-Z0-9_]*)\(/);
303
+ if (goalMatch) {
304
+ usedPredicateNames.add(goalMatch[1]);
305
+ }
306
+ }
307
+ for (const child of node.children) {
308
+ collectPredicatesFromTree(child);
309
+ }
310
+ }
311
+ collectPredicatesFromTree(root);
312
+ // If we couldn't determine any used predicates (e.g., in test scenarios),
313
+ // fall back to including all clauses to maintain backward compatibility
314
+ const clausesUsed = usedPredicateNames.size > 0
315
+ ? actualClauses
316
+ .filter(clause => {
317
+ const predicateName = clause.head.split('(')[0];
318
+ return usedPredicateNames.has(predicateName);
319
+ })
320
+ .map(clause => ({
321
+ clauseNumber: clause.number,
322
+ clauseText: clause.text,
323
+ usageCount: 0,
324
+ usedAtSteps: [],
325
+ }))
326
+ : actualClauses.map(clause => ({
327
+ clauseNumber: clause.number,
328
+ clauseText: clause.text,
329
+ usageCount: 0,
330
+ usedAtSteps: [],
331
+ }));
198
332
  return {
199
333
  nodes,
200
334
  edges,
@@ -261,7 +395,7 @@ function matchesPendingGoal(goal, pendingGoal, fuzzy = false) {
261
395
  /**
262
396
  * Process a tree node and generate visualization nodes/edges.
263
397
  */
264
- function processTreeNode(node, parentId, ctx) {
398
+ function processTreeNode(node, parentId, ctx, parentExecutionNode) {
265
399
  // Get clause number from node FIRST (set by parser)
266
400
  const clauseNumber = node.clauseNumber;
267
401
  // Debug logging removed
@@ -303,7 +437,7 @@ function processTreeNode(node, parentId, ctx) {
303
437
  // Process children from the last subgoal node
304
438
  if (node.children.length > 0) {
305
439
  for (const child of node.children) {
306
- processTreeNode(child, currentParentId, ctx);
440
+ processTreeNode(child, currentParentId, ctx, node);
307
441
  }
308
442
  }
309
443
  return currentParentId;
@@ -317,8 +451,9 @@ function processTreeNode(node, parentId, ctx) {
317
451
  let label;
318
452
  if (node.level === 0 || node.type === 'query') {
319
453
  nodeType = 'query';
320
- // Add space after commas and format with QUERY label and line break
321
- const formattedGoal = node.goal.replace(/,(?!\s)/g, ', ');
454
+ // Use original query for display to show source variables
455
+ const displayGoal = ctx.originalQuery || node.goal;
456
+ const formattedGoal = displayGoal.replace(/,(?!\s)/g, ', ');
322
457
  label = `QUERY<br/>${formattedGoal}`;
323
458
  }
324
459
  else if (node.type === 'success') {
@@ -362,13 +497,21 @@ function processTreeNode(node, parentId, ctx) {
362
497
  if (node.children.length > 0) {
363
498
  // Process children directly
364
499
  for (const child of node.children) {
365
- processTreeNode(child, parentId, ctx);
500
+ processTreeNode(child, parentId, ctx, node);
366
501
  }
367
502
  return parentId || '';
368
503
  }
369
504
  }
370
505
  }
371
- const clauseLabel = (clauseNumber && isUserPredicate) ? ` [clause ${clauseNumber}]` : '';
506
+ // Map trace clause number to parsed clause number for display
507
+ let displayClauseNumber = clauseNumber;
508
+ if (clauseNumber && isUserPredicate && ctx.clauses.length > 0) {
509
+ const matchedClause = findMatchingClause(node.goal, ctx.clauses);
510
+ if (matchedClause) {
511
+ displayClauseNumber = matchedClause.number;
512
+ }
513
+ }
514
+ const clauseLabel = (displayClauseNumber && isUserPredicate) ? ` [clause ${displayClauseNumber}]` : '';
372
515
  label = `${recursivePrefix}${formattedGoal}${clauseLabel}`;
373
516
  }
374
517
  const vizNode = {
@@ -388,57 +531,58 @@ function processTreeNode(node, parentId, ctx) {
388
531
  let actualParentId = parentId;
389
532
  // Create match nodes for user-defined predicates at detailed/full levels
390
533
  // Check if this is a user-defined predicate (not built-in)
391
- const goalPredicate = node.goal.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
534
+ // For simple facts, we need to check the parent's goal, not the current node's goal
535
+ let goalToCheck = node.goal;
536
+ let clauseNumberToUse = clauseNumber;
537
+ let unificationsSource = node;
538
+ // If this is a success node and parent is query, use parent's goal for matching
539
+ if (node.type === 'success' && parentNode?.type === 'query') {
540
+ goalToCheck = parentNode.label.replace('QUERY<br/>', '');
541
+ clauseNumberToUse = clauseNumber || parentNode.clauseNumber;
542
+ // For unifications, we need to find the original ExecutionNode, not the VisualizationNode
543
+ // We'll handle this in the unification extraction below
544
+ }
545
+ // Also handle the case where we'll create a solved node from a query node with binding
546
+ if (node.binding && node.type !== 'success' && node.level > 0 && parentNode?.type === 'query') {
547
+ goalToCheck = parentNode.label.replace('QUERY<br/>', '');
548
+ clauseNumberToUse = clauseNumber || parentNode.clauseNumber;
549
+ }
550
+ const goalPredicate = goalToCheck.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
392
551
  const isUserPredicate = goalPredicate && ctx.clauses.some(c => c.head.startsWith(goalPredicate[1] + '('));
393
- if (isUserPredicate && ctx.clauses.length > 0 && (ctx.detailLevel === 'detailed' || ctx.detailLevel === 'full')) {
552
+ if (isUserPredicate && ctx.clauses.length > 0 && (ctx.detailLevel === 'detailed' || ctx.detailLevel === 'full') && clauseNumberToUse) {
394
553
  let clause;
395
- const predicateName = goalPredicate[1];
396
- // Find clauses for this predicate
397
- const predicateClauses = ctx.clauses.filter(c => c.head.startsWith(predicateName + '('));
398
- // Use heuristic: if goal looks like base case (factorial(0,...)), use first clause
399
- // If goal looks like recursive case, use second clause
400
- if (predicateClauses.length >= 2) {
401
- const isBaseCase = node.goal.includes('(0,') || node.goal.includes('(0 ,') ||
402
- node.goal.includes('([],') || node.goal.includes('([] ,');
403
- clause = isBaseCase ? predicateClauses[0] : predicateClauses[1];
404
- }
405
- else if (predicateClauses.length > 0) {
406
- clause = predicateClauses[0];
407
- }
554
+ // Find matching clause using improved matching logic
555
+ clause = findMatchingClause(goalToCheck, ctx.clauses);
408
556
  if (clause) {
409
557
  // Create match node
410
558
  const matchNodeId = ctx.nextNodeId();
411
559
  // Use unifications from node if available, otherwise try to extract them
412
560
  let unifications;
413
- if (node.unifications && node.unifications.length > 0) {
414
- // Use accurate unifications from tracer
415
- unifications = node.unifications.map(u => `${u.variable} = ${u.value}`);
561
+ // For simple facts where success/solved node connects to query node,
562
+ // we need to get unifications from the parent ExecutionNode
563
+ if ((node.type === 'success' || node.binding) && parentNode?.type === 'query' && parentExecutionNode?.unifications) {
564
+ // Use unifications from the parent ExecutionNode and map to source variables
565
+ unifications = ctx.originalQuery ?
566
+ mapRuntimeVariablesToSource(parentExecutionNode.unifications, ctx.originalQuery) :
567
+ parentExecutionNode.unifications.map(u => `${u.variable} = ${u.value}`);
568
+ }
569
+ else if (node.unifications && node.unifications.length > 0) {
570
+ // Use accurate unifications from tracer and map to source variables
571
+ unifications = ctx.originalQuery ?
572
+ mapRuntimeVariablesToSource(node.unifications, ctx.originalQuery) :
573
+ node.unifications.map(u => `${u.variable} = ${u.value}`);
416
574
  }
417
575
  else {
418
576
  // Fallback to extraction (for backward compatibility)
419
- unifications = extractUnifications(node.goal, clause);
577
+ unifications = extractUnifications(goalToCheck, clause);
420
578
  }
421
579
  const subgoals = extractSubgoals(clause);
422
580
  // Build match node label - only show clause HEAD, not body
423
581
  const clauseHead = clause.text.includes(':-')
424
582
  ? clause.text.split(':-')[0].trim()
425
583
  : clause.text.trim();
426
- // Find the clause from our trace-extracted clauses that matches the tracer's clause info
427
- const matchingParsedClause = ctx.clauses.find((c) => {
428
- // If we have clause line info from tracer, match by line number
429
- if (node.clauseLine) {
430
- return c.number === node.clauseLine;
431
- }
432
- // Fallback: match by predicate name and clause content
433
- if (clause) {
434
- return c.head === clause.head || c.text === clause.text;
435
- }
436
- // Final fallback: match by predicate name
437
- const predicateName = node.goal.split('(')[0];
438
- const clausePredicateName = c.head.split('(')[0];
439
- return clausePredicateName === predicateName;
440
- });
441
- const displayClauseNumber = matchingParsedClause ? matchingParsedClause.number : clauseNumber;
584
+ // Use the clause number from the matched parsed clause
585
+ const displayClauseNumber = clause.number;
442
586
  let matchLabel = `Match Clause ${displayClauseNumber}<br/>${clauseHead}`;
443
587
  if (unifications.length > 0) {
444
588
  matchLabel += '<br/><br/>Unifications:<br/>' + unifications.map(u => `• ${u}`).join('<br/>');
@@ -558,10 +702,76 @@ function processTreeNode(node, parentId, ctx) {
558
702
  let lastNodeId = nodeId;
559
703
  // If this node has a binding (and it's not a success node), create a solved node FIRST
560
704
  // The solved node goes BETWEEN this solving node and its child
561
- if (node.binding && node.type !== 'success' && node.level > 0) {
705
+ if (node.binding && node.type !== 'success' && node.level >= 0) {
706
+ // Before creating the solved node, check if we need a match node for simple facts
707
+ // This handles the case where query -> solved (no intermediate solving node)
708
+ if (node.type === 'query') {
709
+ const goalPredicate = node.goal.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
710
+ const isUserPredicate = goalPredicate && ctx.clauses.some(c => c.head.startsWith(goalPredicate[1] + '('));
711
+ if (isUserPredicate && ctx.clauses.length > 0 && (ctx.detailLevel === 'detailed' || ctx.detailLevel === 'full') && node.clauseNumber) {
712
+ // Find matching clause using improved matching logic
713
+ const clause = findMatchingClause(node.goal, ctx.clauses);
714
+ if (clause) {
715
+ // Create match node
716
+ const matchNodeId = ctx.nextNodeId();
717
+ // Use unifications from the query node
718
+ let unifications = [];
719
+ if (node.unifications && node.unifications.length > 0) {
720
+ unifications = ctx.originalQuery ?
721
+ mapRuntimeVariablesToSource(node.unifications, ctx.originalQuery) :
722
+ node.unifications.map(u => `${u.variable} = ${u.value}`);
723
+ }
724
+ else {
725
+ unifications = extractUnifications(node.goal, clause);
726
+ }
727
+ const clauseHead = clause.text.includes(':-')
728
+ ? clause.text.split(':-')[0].trim()
729
+ : clause.text.trim();
730
+ let matchLabel = `Match Clause ${clause.number}<br/>${clauseHead}`;
731
+ if (unifications.length > 0) {
732
+ matchLabel += '<br/><br/>Unifications:<br/>' + unifications.map(u => `• ${u}`).join('<br/>');
733
+ }
734
+ // Add extra information for full level
735
+ if (ctx.detailLevel === 'full') {
736
+ const subgoals = extractSubgoals(clause);
737
+ if (subgoals.length > 0) {
738
+ matchLabel += '<br/><br/>Subgoals:<br/>' + subgoals.map((sg, i) => `${i + 1}. ${sg}`).join('<br/>');
739
+ }
740
+ else {
741
+ // For facts (no subgoals), show clause type information
742
+ matchLabel += '<br/><br/>Clause Type: Fact (no body)';
743
+ }
744
+ }
745
+ const matchNode = {
746
+ id: matchNodeId,
747
+ type: 'match',
748
+ label: matchLabel,
749
+ emoji: EMOJIS.match,
750
+ level: node.level,
751
+ clauseNumber: node.clauseNumber || clause.number,
752
+ };
753
+ ctx.nodes.push(matchNode);
754
+ // Edge from query to match node
755
+ const toMatchEdge = {
756
+ id: `edge_${ctx.edges.length}`,
757
+ from: nodeId,
758
+ to: matchNodeId,
759
+ type: 'active',
760
+ label: 'try',
761
+ stepNumber: ctx.stepCounter(),
762
+ };
763
+ ctx.edges.push(toMatchEdge);
764
+ // Update lastNodeId to point to match node
765
+ lastNodeId = matchNodeId;
766
+ }
767
+ }
768
+ }
562
769
  const solvedId = ctx.nextNodeId();
563
- // Convert binding from X/value to X = value format
564
- const formattedBinding = node.binding.replace(/([^/]+)\/(.+)/, '$1 = $2');
770
+ // Convert binding from X/value to X = value format and map variables to source
771
+ let formattedBinding = node.binding.replace(/([^/]+)\/(.+)/, '$1 = $2');
772
+ if (ctx.originalQuery) {
773
+ formattedBinding = mapGoalVariablesToSource(formattedBinding, ctx.originalQuery);
774
+ }
565
775
  const solvedNode = {
566
776
  id: solvedId,
567
777
  type: 'solved',
@@ -592,7 +802,7 @@ function processTreeNode(node, parentId, ctx) {
592
802
  // The first child is the path taken, subsequent children are backtrack alternatives
593
803
  if (node.children.length > 1) {
594
804
  // First child is the main execution path
595
- const mainChildId = processTreeNode(node.children[0], lastNodeId, newCtx);
805
+ const mainChildId = processTreeNode(node.children[0], lastNodeId, newCtx, node);
596
806
  // Subsequent children are alternative branches (backtracking)
597
807
  for (let i = 1; i < node.children.length; i++) {
598
808
  const altChild = node.children[i];
@@ -603,42 +813,18 @@ function processTreeNode(node, parentId, ctx) {
603
813
  let actualParentForAlt = lastNodeId;
604
814
  // Create match node for user predicates at detailed/full levels
605
815
  if (altIsUserPredicate && newCtx.clauses.length > 0 && (newCtx.detailLevel === 'detailed' || newCtx.detailLevel === 'full')) {
606
- const predicateName = altGoalPredicate[1];
607
- const predicateClauses = newCtx.clauses.filter(c => c.head.startsWith(predicateName + '('));
608
- if (predicateClauses.length > 0) {
816
+ // Find matching clause using improved matching logic
817
+ const altClause = findMatchingClause(altChild.goal, newCtx.clauses);
818
+ if (altClause) {
609
819
  // Create match node for alternative
610
820
  const altMatchNodeId = newCtx.nextNodeId();
611
- // Select appropriate clause
612
- let altClause;
613
- if (predicateClauses.length >= 2) {
614
- const isBaseCase = altChild.goal.includes('(0,') || altChild.goal.includes('(0 ,') ||
615
- altChild.goal.includes('([],') || altChild.goal.includes('([] ,');
616
- altClause = isBaseCase ? predicateClauses[0] : predicateClauses[1];
617
- }
618
- else {
619
- altClause = predicateClauses[0];
620
- }
621
821
  // Create match node for this alternative
622
822
  // Build match node label
623
823
  const clauseHead = altClause.text.includes(':-')
624
824
  ? altClause.text.split(':-')[0].trim()
625
825
  : altClause.text.trim();
626
- // Find the clause from our trace-extracted clauses that matches the tracer's clause info
627
- const matchingParsedClause = ctx.clauses.find((c) => {
628
- // If we have clause line info from tracer, match by line number
629
- if (altChild.clauseLine) {
630
- return c.number === altChild.clauseLine;
631
- }
632
- // Fallback: match by predicate name and clause content
633
- if (altClause) {
634
- return c.head === altClause.head || c.text === altClause.text;
635
- }
636
- // Final fallback: match by predicate name
637
- const predicateName = altChild.goal.split('(')[0];
638
- const clausePredicateName = c.head.split('(')[0];
639
- return clausePredicateName === predicateName;
640
- });
641
- const displayClauseNumber = matchingParsedClause ? matchingParsedClause.number : altClause.number;
826
+ // Use the clause number from the matched parsed clause
827
+ const displayClauseNumber = altClause.number;
642
828
  let matchLabel = `Match Clause ${displayClauseNumber}<br/>${clauseHead}`;
643
829
  const altMatchNode = {
644
830
  id: altMatchNodeId,
@@ -700,7 +886,15 @@ function processTreeNode(node, parentId, ctx) {
700
886
  const isUserPredicate = /^[a-z_][a-zA-Z0-9_]*\(/.test(altChild.goal) && !hasTopLevelComma;
701
887
  const isRecursive = newCtx.detailLevel !== 'minimal' && isRecursiveCall(altChild.goal, newCtx.ancestorGoal || null);
702
888
  const recursivePrefix = isRecursive ? '🔁 Recurse: ' : 'Solve: ';
703
- const clauseLabel = (altClauseNumber && isUserPredicate) ? ` [clause ${altClauseNumber}]` : '';
889
+ // Map trace clause number to parsed clause number for display
890
+ let displayAltClauseNumber = altClauseNumber;
891
+ if (altClauseNumber && isUserPredicate && newCtx.clauses.length > 0) {
892
+ const matchedAltClause = findMatchingClause(altChild.goal, newCtx.clauses);
893
+ if (matchedAltClause) {
894
+ displayAltClauseNumber = matchedAltClause.number;
895
+ }
896
+ }
897
+ const clauseLabel = (displayAltClauseNumber && isUserPredicate) ? ` [clause ${displayAltClauseNumber}]` : '';
704
898
  altLabel = `${recursivePrefix}${formattedGoal}${clauseLabel}`;
705
899
  }
706
900
  const altVizNode = {
@@ -737,7 +931,7 @@ function processTreeNode(node, parentId, ctx) {
737
931
  }
738
932
  else if (node.children.length === 1) {
739
933
  // Single child - sequential execution
740
- const childId = processTreeNode(node.children[0], lastNodeId, newCtx);
934
+ const childId = processTreeNode(node.children[0], lastNodeId, newCtx, node);
741
935
  return childId;
742
936
  }
743
937
  return lastNodeId;
@@ -775,7 +969,15 @@ function processAlternativeBranch(node, nodeId, ctx) {
775
969
  childType = 'solving';
776
970
  const isRecursive = newCtx.detailLevel !== 'minimal' && isRecursiveCall(child.goal, newCtx.ancestorGoal || null);
777
971
  const recursivePrefix = isRecursive ? '🔁 Recurse: ' : 'Solve: ';
778
- const clauseLabel = childClauseNumber ? ` [clause ${childClauseNumber}]` : '';
972
+ // Map trace clause number to parsed clause number for display
973
+ let displayChildClauseNumber = childClauseNumber;
974
+ if (childClauseNumber && newCtx.clauses.length > 0) {
975
+ const matchedChildClause = findMatchingClause(child.goal, newCtx.clauses);
976
+ if (matchedChildClause) {
977
+ displayChildClauseNumber = matchedChildClause.number;
978
+ }
979
+ }
980
+ const clauseLabel = displayChildClauseNumber ? ` [clause ${displayChildClauseNumber}]` : '';
779
981
  childLabel = `${recursivePrefix}${child.goal.replace(/,(?!\s)/g, ', ')}${clauseLabel}`;
780
982
  }
781
983
  const childVizNode = {
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  export declare const BUILD_INFO: {
2
- readonly version: "1.0.2";
2
+ readonly version: "1.1.2";
3
3
  readonly name: "prolog-trace-viz";
4
4
  readonly description: "Generate enhanced visual trace diagrams for Prolog query execution";
5
5
  readonly author: "Johnny Jarecsni <johnny.jarecsni@icloud.com>";
6
6
  readonly license: "MIT";
7
- readonly buildTimestamp: "2025-12-14T13:46:31.386Z";
8
- readonly gitCommit: "342e7e2";
7
+ readonly buildTimestamp: "2025-12-20T11:56:40.380Z";
8
+ readonly gitCommit: "771823e";
9
9
  readonly gitBranch: "main";
10
10
  readonly nodeVersion: "v22.17.0";
11
11
  readonly platform: "darwin";
@@ -1,13 +1,13 @@
1
1
  // This file is auto-generated during build
2
2
  // Do not edit manually - regenerated on each build
3
3
  export const BUILD_INFO = {
4
- "version": "1.0.2",
4
+ "version": "1.1.2",
5
5
  "name": "prolog-trace-viz",
6
6
  "description": "Generate enhanced visual trace diagrams for Prolog query execution",
7
7
  "author": "Johnny Jarecsni <johnny.jarecsni@icloud.com>",
8
8
  "license": "MIT",
9
- "buildTimestamp": "2025-12-14T13:46:31.386Z",
10
- "gitCommit": "342e7e2",
9
+ "buildTimestamp": "2025-12-20T11:56:40.380Z",
10
+ "gitCommit": "771823e",
11
11
  "gitBranch": "main",
12
12
  "nodeVersion": "v22.17.0",
13
13
  "platform": "darwin",
package/dist/cli.d.ts CHANGED
@@ -19,13 +19,13 @@ export declare function getHelpText(): string;
19
19
  export declare function getVersion(): string;
20
20
  export declare function getCopyright(): string;
21
21
  export declare function getBuildInfo(): {
22
- readonly version: "1.0.2";
22
+ readonly version: "1.1.2";
23
23
  readonly name: "prolog-trace-viz";
24
24
  readonly description: "Generate enhanced visual trace diagrams for Prolog query execution";
25
25
  readonly author: "Johnny Jarecsni <johnny.jarecsni@icloud.com>";
26
26
  readonly license: "MIT";
27
- readonly buildTimestamp: "2025-12-14T13:46:31.386Z";
28
- readonly gitCommit: "342e7e2";
27
+ readonly buildTimestamp: "2025-12-20T11:56:40.380Z";
28
+ readonly gitCommit: "771823e";
29
29
  readonly gitBranch: "main";
30
30
  readonly nodeVersion: "v22.17.0";
31
31
  readonly platform: "darwin";
package/dist/index.js CHANGED
@@ -96,7 +96,7 @@ async function run(options) {
96
96
  const rawEvents = JSON.parse(execResult.json);
97
97
  // Analyze tree
98
98
  logVerbose('Analyzing execution tree...', options);
99
- const analysis = analyzeTree(tree, clauses, { detailLevel: options.detail }, rawEvents);
99
+ const analysis = analyzeTree(tree, clauses, { detailLevel: options.detail }, rawEvents, options.query);
100
100
  // Generate Mermaid diagram
101
101
  logVerbose('Generating Mermaid diagram...', options);
102
102
  const diagram = generateMermaid(analysis);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAmD7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAuCnE;AAmBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,CAUA"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAmD7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAgBrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAuCnE;AAwBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,CAUA"}
package/dist/renderer.js CHANGED
@@ -109,8 +109,12 @@ function renderClausesUsed(clauses) {
109
109
  return '_No clauses found in source file._';
110
110
  }
111
111
  const lines = [];
112
+ // Table header
113
+ lines.push('| Line # | Clause |');
114
+ lines.push('|--------|--------|');
115
+ // Table rows
112
116
  for (const clause of clauses) {
113
- lines.push(`${clause.clauseNumber}. \`${clause.clauseText}\``);
117
+ lines.push(`| ${clause.clauseNumber} | \`${clause.clauseText}\` |`);
114
118
  }
115
119
  return lines.join('\n');
116
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prolog-trace-viz",
3
- "version": "1.0.2",
3
+ "version": "1.1.2",
4
4
  "description": "Generate enhanced visual trace diagrams for Prolog query execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",