prolog-trace-viz 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,CAgFhB;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,6 +266,7 @@ export function analyzeTree(root, clauses = [], options = {}, traceEvents = [])
186
266
  clauses: actualClauses,
187
267
  detailLevel,
188
268
  finalAnswer,
269
+ originalQuery,
189
270
  });
190
271
  // Clause usage tracking - since we can't reliably determine which clauses were used,
191
272
  // just list all available clauses
@@ -261,7 +342,7 @@ function matchesPendingGoal(goal, pendingGoal, fuzzy = false) {
261
342
  /**
262
343
  * Process a tree node and generate visualization nodes/edges.
263
344
  */
264
- function processTreeNode(node, parentId, ctx) {
345
+ function processTreeNode(node, parentId, ctx, parentExecutionNode) {
265
346
  // Get clause number from node FIRST (set by parser)
266
347
  const clauseNumber = node.clauseNumber;
267
348
  // Debug logging removed
@@ -303,7 +384,7 @@ function processTreeNode(node, parentId, ctx) {
303
384
  // Process children from the last subgoal node
304
385
  if (node.children.length > 0) {
305
386
  for (const child of node.children) {
306
- processTreeNode(child, currentParentId, ctx);
387
+ processTreeNode(child, currentParentId, ctx, node);
307
388
  }
308
389
  }
309
390
  return currentParentId;
@@ -317,8 +398,9 @@ function processTreeNode(node, parentId, ctx) {
317
398
  let label;
318
399
  if (node.level === 0 || node.type === 'query') {
319
400
  nodeType = 'query';
320
- // Add space after commas and format with QUERY label and line break
321
- const formattedGoal = node.goal.replace(/,(?!\s)/g, ', ');
401
+ // Use original query for display to show source variables
402
+ const displayGoal = ctx.originalQuery || node.goal;
403
+ const formattedGoal = displayGoal.replace(/,(?!\s)/g, ', ');
322
404
  label = `QUERY<br/>${formattedGoal}`;
323
405
  }
324
406
  else if (node.type === 'success') {
@@ -362,13 +444,21 @@ function processTreeNode(node, parentId, ctx) {
362
444
  if (node.children.length > 0) {
363
445
  // Process children directly
364
446
  for (const child of node.children) {
365
- processTreeNode(child, parentId, ctx);
447
+ processTreeNode(child, parentId, ctx, node);
366
448
  }
367
449
  return parentId || '';
368
450
  }
369
451
  }
370
452
  }
371
- const clauseLabel = (clauseNumber && isUserPredicate) ? ` [clause ${clauseNumber}]` : '';
453
+ // Map trace clause number to parsed clause number for display
454
+ let displayClauseNumber = clauseNumber;
455
+ if (clauseNumber && isUserPredicate && ctx.clauses.length > 0) {
456
+ const matchedClause = findMatchingClause(node.goal, ctx.clauses);
457
+ if (matchedClause) {
458
+ displayClauseNumber = matchedClause.number;
459
+ }
460
+ }
461
+ const clauseLabel = (displayClauseNumber && isUserPredicate) ? ` [clause ${displayClauseNumber}]` : '';
372
462
  label = `${recursivePrefix}${formattedGoal}${clauseLabel}`;
373
463
  }
374
464
  const vizNode = {
@@ -388,57 +478,58 @@ function processTreeNode(node, parentId, ctx) {
388
478
  let actualParentId = parentId;
389
479
  // Create match nodes for user-defined predicates at detailed/full levels
390
480
  // Check if this is a user-defined predicate (not built-in)
391
- const goalPredicate = node.goal.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
481
+ // For simple facts, we need to check the parent's goal, not the current node's goal
482
+ let goalToCheck = node.goal;
483
+ let clauseNumberToUse = clauseNumber;
484
+ let unificationsSource = node;
485
+ // If this is a success node and parent is query, use parent's goal for matching
486
+ if (node.type === 'success' && parentNode?.type === 'query') {
487
+ goalToCheck = parentNode.label.replace('QUERY<br/>', '');
488
+ clauseNumberToUse = clauseNumber || parentNode.clauseNumber;
489
+ // For unifications, we need to find the original ExecutionNode, not the VisualizationNode
490
+ // We'll handle this in the unification extraction below
491
+ }
492
+ // Also handle the case where we'll create a solved node from a query node with binding
493
+ if (node.binding && node.type !== 'success' && node.level > 0 && parentNode?.type === 'query') {
494
+ goalToCheck = parentNode.label.replace('QUERY<br/>', '');
495
+ clauseNumberToUse = clauseNumber || parentNode.clauseNumber;
496
+ }
497
+ const goalPredicate = goalToCheck.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
392
498
  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')) {
499
+ if (isUserPredicate && ctx.clauses.length > 0 && (ctx.detailLevel === 'detailed' || ctx.detailLevel === 'full') && clauseNumberToUse) {
394
500
  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
- }
501
+ // Find matching clause using improved matching logic
502
+ clause = findMatchingClause(goalToCheck, ctx.clauses);
408
503
  if (clause) {
409
504
  // Create match node
410
505
  const matchNodeId = ctx.nextNodeId();
411
506
  // Use unifications from node if available, otherwise try to extract them
412
507
  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}`);
508
+ // For simple facts where success/solved node connects to query node,
509
+ // we need to get unifications from the parent ExecutionNode
510
+ if ((node.type === 'success' || node.binding) && parentNode?.type === 'query' && parentExecutionNode?.unifications) {
511
+ // Use unifications from the parent ExecutionNode and map to source variables
512
+ unifications = ctx.originalQuery ?
513
+ mapRuntimeVariablesToSource(parentExecutionNode.unifications, ctx.originalQuery) :
514
+ parentExecutionNode.unifications.map(u => `${u.variable} = ${u.value}`);
515
+ }
516
+ else if (node.unifications && node.unifications.length > 0) {
517
+ // Use accurate unifications from tracer and map to source variables
518
+ unifications = ctx.originalQuery ?
519
+ mapRuntimeVariablesToSource(node.unifications, ctx.originalQuery) :
520
+ node.unifications.map(u => `${u.variable} = ${u.value}`);
416
521
  }
417
522
  else {
418
523
  // Fallback to extraction (for backward compatibility)
419
- unifications = extractUnifications(node.goal, clause);
524
+ unifications = extractUnifications(goalToCheck, clause);
420
525
  }
421
526
  const subgoals = extractSubgoals(clause);
422
527
  // Build match node label - only show clause HEAD, not body
423
528
  const clauseHead = clause.text.includes(':-')
424
529
  ? clause.text.split(':-')[0].trim()
425
530
  : 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;
531
+ // Use the clause number from the matched parsed clause
532
+ const displayClauseNumber = clause.number;
442
533
  let matchLabel = `Match Clause ${displayClauseNumber}<br/>${clauseHead}`;
443
534
  if (unifications.length > 0) {
444
535
  matchLabel += '<br/><br/>Unifications:<br/>' + unifications.map(u => `• ${u}`).join('<br/>');
@@ -558,10 +649,76 @@ function processTreeNode(node, parentId, ctx) {
558
649
  let lastNodeId = nodeId;
559
650
  // If this node has a binding (and it's not a success node), create a solved node FIRST
560
651
  // The solved node goes BETWEEN this solving node and its child
561
- if (node.binding && node.type !== 'success' && node.level > 0) {
652
+ if (node.binding && node.type !== 'success' && node.level >= 0) {
653
+ // Before creating the solved node, check if we need a match node for simple facts
654
+ // This handles the case where query -> solved (no intermediate solving node)
655
+ if (node.type === 'query') {
656
+ const goalPredicate = node.goal.match(/^([a-z_][a-zA-Z0-9_]*)\(/);
657
+ const isUserPredicate = goalPredicate && ctx.clauses.some(c => c.head.startsWith(goalPredicate[1] + '('));
658
+ if (isUserPredicate && ctx.clauses.length > 0 && (ctx.detailLevel === 'detailed' || ctx.detailLevel === 'full') && node.clauseNumber) {
659
+ // Find matching clause using improved matching logic
660
+ const clause = findMatchingClause(node.goal, ctx.clauses);
661
+ if (clause) {
662
+ // Create match node
663
+ const matchNodeId = ctx.nextNodeId();
664
+ // Use unifications from the query node
665
+ let unifications = [];
666
+ if (node.unifications && node.unifications.length > 0) {
667
+ unifications = ctx.originalQuery ?
668
+ mapRuntimeVariablesToSource(node.unifications, ctx.originalQuery) :
669
+ node.unifications.map(u => `${u.variable} = ${u.value}`);
670
+ }
671
+ else {
672
+ unifications = extractUnifications(node.goal, clause);
673
+ }
674
+ const clauseHead = clause.text.includes(':-')
675
+ ? clause.text.split(':-')[0].trim()
676
+ : clause.text.trim();
677
+ let matchLabel = `Match Clause ${clause.number}<br/>${clauseHead}`;
678
+ if (unifications.length > 0) {
679
+ matchLabel += '<br/><br/>Unifications:<br/>' + unifications.map(u => `• ${u}`).join('<br/>');
680
+ }
681
+ // Add extra information for full level
682
+ if (ctx.detailLevel === 'full') {
683
+ const subgoals = extractSubgoals(clause);
684
+ if (subgoals.length > 0) {
685
+ matchLabel += '<br/><br/>Subgoals:<br/>' + subgoals.map((sg, i) => `${i + 1}. ${sg}`).join('<br/>');
686
+ }
687
+ else {
688
+ // For facts (no subgoals), show clause type information
689
+ matchLabel += '<br/><br/>Clause Type: Fact (no body)';
690
+ }
691
+ }
692
+ const matchNode = {
693
+ id: matchNodeId,
694
+ type: 'match',
695
+ label: matchLabel,
696
+ emoji: EMOJIS.match,
697
+ level: node.level,
698
+ clauseNumber: node.clauseNumber || clause.number,
699
+ };
700
+ ctx.nodes.push(matchNode);
701
+ // Edge from query to match node
702
+ const toMatchEdge = {
703
+ id: `edge_${ctx.edges.length}`,
704
+ from: nodeId,
705
+ to: matchNodeId,
706
+ type: 'active',
707
+ label: 'try',
708
+ stepNumber: ctx.stepCounter(),
709
+ };
710
+ ctx.edges.push(toMatchEdge);
711
+ // Update lastNodeId to point to match node
712
+ lastNodeId = matchNodeId;
713
+ }
714
+ }
715
+ }
562
716
  const solvedId = ctx.nextNodeId();
563
- // Convert binding from X/value to X = value format
564
- const formattedBinding = node.binding.replace(/([^/]+)\/(.+)/, '$1 = $2');
717
+ // Convert binding from X/value to X = value format and map variables to source
718
+ let formattedBinding = node.binding.replace(/([^/]+)\/(.+)/, '$1 = $2');
719
+ if (ctx.originalQuery) {
720
+ formattedBinding = mapGoalVariablesToSource(formattedBinding, ctx.originalQuery);
721
+ }
565
722
  const solvedNode = {
566
723
  id: solvedId,
567
724
  type: 'solved',
@@ -592,7 +749,7 @@ function processTreeNode(node, parentId, ctx) {
592
749
  // The first child is the path taken, subsequent children are backtrack alternatives
593
750
  if (node.children.length > 1) {
594
751
  // First child is the main execution path
595
- const mainChildId = processTreeNode(node.children[0], lastNodeId, newCtx);
752
+ const mainChildId = processTreeNode(node.children[0], lastNodeId, newCtx, node);
596
753
  // Subsequent children are alternative branches (backtracking)
597
754
  for (let i = 1; i < node.children.length; i++) {
598
755
  const altChild = node.children[i];
@@ -603,42 +760,18 @@ function processTreeNode(node, parentId, ctx) {
603
760
  let actualParentForAlt = lastNodeId;
604
761
  // Create match node for user predicates at detailed/full levels
605
762
  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) {
763
+ // Find matching clause using improved matching logic
764
+ const altClause = findMatchingClause(altChild.goal, newCtx.clauses);
765
+ if (altClause) {
609
766
  // Create match node for alternative
610
767
  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
768
  // Create match node for this alternative
622
769
  // Build match node label
623
770
  const clauseHead = altClause.text.includes(':-')
624
771
  ? altClause.text.split(':-')[0].trim()
625
772
  : 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;
773
+ // Use the clause number from the matched parsed clause
774
+ const displayClauseNumber = altClause.number;
642
775
  let matchLabel = `Match Clause ${displayClauseNumber}<br/>${clauseHead}`;
643
776
  const altMatchNode = {
644
777
  id: altMatchNodeId,
@@ -700,7 +833,15 @@ function processTreeNode(node, parentId, ctx) {
700
833
  const isUserPredicate = /^[a-z_][a-zA-Z0-9_]*\(/.test(altChild.goal) && !hasTopLevelComma;
701
834
  const isRecursive = newCtx.detailLevel !== 'minimal' && isRecursiveCall(altChild.goal, newCtx.ancestorGoal || null);
702
835
  const recursivePrefix = isRecursive ? '🔁 Recurse: ' : 'Solve: ';
703
- const clauseLabel = (altClauseNumber && isUserPredicate) ? ` [clause ${altClauseNumber}]` : '';
836
+ // Map trace clause number to parsed clause number for display
837
+ let displayAltClauseNumber = altClauseNumber;
838
+ if (altClauseNumber && isUserPredicate && newCtx.clauses.length > 0) {
839
+ const matchedAltClause = findMatchingClause(altChild.goal, newCtx.clauses);
840
+ if (matchedAltClause) {
841
+ displayAltClauseNumber = matchedAltClause.number;
842
+ }
843
+ }
844
+ const clauseLabel = (displayAltClauseNumber && isUserPredicate) ? ` [clause ${displayAltClauseNumber}]` : '';
704
845
  altLabel = `${recursivePrefix}${formattedGoal}${clauseLabel}`;
705
846
  }
706
847
  const altVizNode = {
@@ -737,7 +878,7 @@ function processTreeNode(node, parentId, ctx) {
737
878
  }
738
879
  else if (node.children.length === 1) {
739
880
  // Single child - sequential execution
740
- const childId = processTreeNode(node.children[0], lastNodeId, newCtx);
881
+ const childId = processTreeNode(node.children[0], lastNodeId, newCtx, node);
741
882
  return childId;
742
883
  }
743
884
  return lastNodeId;
@@ -775,7 +916,15 @@ function processAlternativeBranch(node, nodeId, ctx) {
775
916
  childType = 'solving';
776
917
  const isRecursive = newCtx.detailLevel !== 'minimal' && isRecursiveCall(child.goal, newCtx.ancestorGoal || null);
777
918
  const recursivePrefix = isRecursive ? '🔁 Recurse: ' : 'Solve: ';
778
- const clauseLabel = childClauseNumber ? ` [clause ${childClauseNumber}]` : '';
919
+ // Map trace clause number to parsed clause number for display
920
+ let displayChildClauseNumber = childClauseNumber;
921
+ if (childClauseNumber && newCtx.clauses.length > 0) {
922
+ const matchedChildClause = findMatchingClause(child.goal, newCtx.clauses);
923
+ if (matchedChildClause) {
924
+ displayChildClauseNumber = matchedChildClause.number;
925
+ }
926
+ }
927
+ const clauseLabel = displayChildClauseNumber ? ` [clause ${displayChildClauseNumber}]` : '';
779
928
  childLabel = `${recursivePrefix}${child.goal.replace(/,(?!\s)/g, ', ')}${clauseLabel}`;
780
929
  }
781
930
  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.1";
2
+ readonly version: "1.1.1";
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:39:10.553Z";
8
- readonly gitCommit: "c595a18";
7
+ readonly buildTimestamp: "2025-12-16T08:24:08.174Z";
8
+ readonly gitCommit: "d291076";
9
9
  readonly gitBranch: "main";
10
10
  readonly nodeVersion: "v22.17.0";
11
11
  readonly platform: "darwin";
@@ -1 +1 @@
1
- {"version":3,"file":"build-info.d.ts","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,eAAO,MAAM,gBAAgB,QAS5B,CAAC"}
1
+ {"version":3,"file":"build-info.d.ts","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,eAAO,MAAM,gBAAgB,QAQ5B,CAAC"}
@@ -1,21 +1,20 @@
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.1",
4
+ "version": "1.1.1",
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:39:10.553Z",
10
- "gitCommit": "c595a18",
9
+ "buildTimestamp": "2025-12-16T08:24:08.174Z",
10
+ "gitCommit": "d291076",
11
11
  "gitBranch": "main",
12
12
  "nodeVersion": "v22.17.0",
13
13
  "platform": "darwin",
14
14
  "arch": "arm64"
15
15
  };
16
- export const COPYRIGHT_NOTICE = `
17
- Prolog Trace Visualiser (ptv) v${BUILD_INFO.version}
18
- Copyright (c) 2024 Johnny Jarecsni <johnny.jarecsni@icloud.com>
16
+ export const COPYRIGHT_NOTICE = `Prolog Trace Visualiser (ptv) v${BUILD_INFO.version}
17
+ Copyright (c) 2025 Johnny Jarecsni <johnny.jarecsni@icloud.com>
19
18
 
20
19
  Licensed under the MIT License.
21
20
  Built on ${BUILD_INFO.buildTimestamp} from commit ${BUILD_INFO.gitCommit} (${BUILD_INFO.gitBranch})
@@ -1 +1 @@
1
- {"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,mDAAmD;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,oEAAoE;IACnF,QAAQ,EAAE,8CAA8C;IACxD,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,0BAA0B;IAC5C,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,OAAO;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG;iCACC,UAAU,CAAC,OAAO;;;;WAIxC,UAAU,CAAC,cAAc,gBAAgB,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS;;;;CAIhG,CAAC"}
1
+ {"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,mDAAmD;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,oEAAoE;IACnF,QAAQ,EAAE,8CAA8C;IACxD,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,0BAA0B;IAC5C,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,OAAO;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,UAAU,CAAC,OAAO;;;;WAIzE,UAAU,CAAC,cAAc,gBAAgB,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS;;;;CAIhG,CAAC"}
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.1";
22
+ readonly version: "1.1.1";
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:39:10.553Z";
28
- readonly gitCommit: "c595a18";
27
+ readonly buildTimestamp: "2025-12-16T08:24:08.174Z";
28
+ readonly gitCommit: "d291076";
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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"}
package/dist/renderer.js CHANGED
@@ -110,7 +110,7 @@ function renderClausesUsed(clauses) {
110
110
  }
111
111
  const lines = [];
112
112
  for (const clause of clauses) {
113
- lines.push(`${clause.clauseNumber}. \`${clause.clauseText}\``);
113
+ lines.push(`**Line ${clause.clauseNumber}:** \`${clause.clauseText}\``);
114
114
  }
115
115
  return lines.join('\n');
116
116
  }
@@ -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.1",
3
+ "version": "1.1.1",
4
4
  "description": "Generate enhanced visual trace diagrams for Prolog query execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -47,9 +47,8 @@ const tsContent = `// This file is auto-generated during build
47
47
 
48
48
  export const BUILD_INFO = ${JSON.stringify(buildInfo, null, 2)} as const;
49
49
 
50
- export const COPYRIGHT_NOTICE = \`
51
- Prolog Trace Visualiser (ptv) v\${BUILD_INFO.version}
52
- Copyright (c) 2024 Johnny Jarecsni <johnny.jarecsni@icloud.com>
50
+ export const COPYRIGHT_NOTICE = \`Prolog Trace Visualiser (ptv) v\${BUILD_INFO.version}
51
+ Copyright (c) 2025 Johnny Jarecsni <johnny.jarecsni@icloud.com>
53
52
 
54
53
  Licensed under the MIT License.
55
54
  Built on \${BUILD_INFO.buildTimestamp} from commit \${BUILD_INFO.gitCommit} (\${BUILD_INFO.gitBranch})