prolog-trace-viz 2.3.0 → 2.4.0
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/dist/build-info.d.ts +3 -3
- package/dist/build-info.js +3 -3
- package/dist/cli.d.ts +4 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -7
- package/dist/cli.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/markdown-generator.d.ts +4 -0
- package/dist/markdown-generator.d.ts.map +1 -1
- package/dist/markdown-generator.js +8 -2
- package/dist/markdown-generator.js.map +1 -1
- package/dist/timeline-formatter.d.ts +5 -1
- package/dist/timeline-formatter.d.ts.map +1 -1
- package/dist/timeline-formatter.js +92 -16
- package/dist/timeline-formatter.js.map +1 -1
- package/dist/tree-formatter.d.ts +6 -1
- package/dist/tree-formatter.d.ts.map +1 -1
- package/dist/tree-formatter.js +74 -8
- package/dist/tree-formatter.js.map +1 -1
- package/package.json +1 -1
package/dist/build-info.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const BUILD_INFO: {
|
|
2
|
-
readonly version: "2.
|
|
2
|
+
readonly version: "2.4.0";
|
|
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: "2026-01-
|
|
8
|
-
readonly gitCommit: "
|
|
7
|
+
readonly buildTimestamp: "2026-01-11T13:36:14.213Z";
|
|
8
|
+
readonly gitCommit: "1e16e3c";
|
|
9
9
|
readonly gitBranch: "main";
|
|
10
10
|
readonly nodeVersion: "v22.17.0";
|
|
11
11
|
readonly platform: "darwin";
|
package/dist/build-info.js
CHANGED
|
@@ -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": "2.
|
|
4
|
+
"version": "2.4.0",
|
|
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": "2026-01-
|
|
10
|
-
"gitCommit": "
|
|
9
|
+
"buildTimestamp": "2026-01-11T13:36:14.213Z",
|
|
10
|
+
"gitCommit": "1e16e3c",
|
|
11
11
|
"gitBranch": "main",
|
|
12
12
|
"nodeVersion": "v22.17.0",
|
|
13
13
|
"platform": "darwin",
|
package/dist/cli.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface CLIOptions {
|
|
|
6
6
|
depth: number;
|
|
7
7
|
verbose: boolean;
|
|
8
8
|
quiet: boolean;
|
|
9
|
+
showInternalVars: boolean;
|
|
9
10
|
}
|
|
10
11
|
export interface CLIResult {
|
|
11
12
|
type: 'options' | 'help' | 'version' | 'copyright' | 'error';
|
|
@@ -17,13 +18,13 @@ export declare function getHelpText(): string;
|
|
|
17
18
|
export declare function getVersion(): string;
|
|
18
19
|
export declare function getCopyright(): string;
|
|
19
20
|
export declare function getBuildInfo(): {
|
|
20
|
-
readonly version: "2.
|
|
21
|
+
readonly version: "2.4.0";
|
|
21
22
|
readonly name: "prolog-trace-viz";
|
|
22
23
|
readonly description: "Generate enhanced visual trace diagrams for Prolog query execution";
|
|
23
24
|
readonly author: "Johnny Jarecsni <johnny.jarecsni@icloud.com>";
|
|
24
25
|
readonly license: "MIT";
|
|
25
|
-
readonly buildTimestamp: "2026-01-
|
|
26
|
-
readonly gitCommit: "
|
|
26
|
+
readonly buildTimestamp: "2026-01-11T13:36:14.213Z";
|
|
27
|
+
readonly gitCommit: "1e16e3c";
|
|
27
28
|
readonly gitBranch: "main";
|
|
28
29
|
readonly nodeVersion: "v22.17.0";
|
|
29
30
|
readonly platform: "darwin";
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7D,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AA6BD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAsHnD;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,YAAY;;;;;;;;;;;;EAE3B"}
|
package/dist/cli.js
CHANGED
|
@@ -11,18 +11,20 @@ ARGUMENTS:
|
|
|
11
11
|
<query> Prolog query to trace (e.g., "t(1+0+1, X)")
|
|
12
12
|
|
|
13
13
|
OPTIONS:
|
|
14
|
-
-o, --output <file>
|
|
15
|
-
--depth <n>
|
|
16
|
-
--
|
|
17
|
-
--
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
--
|
|
14
|
+
-o, --output <file> Write output to file instead of stdout
|
|
15
|
+
--depth <n> Maximum trace depth (default: 100)
|
|
16
|
+
--show-internal-vars Show Prolog's internal variable names (e.g., _2008)
|
|
17
|
+
--verbose Display detailed processing information
|
|
18
|
+
--quiet Suppress all non-error output except final result
|
|
19
|
+
-h, --help Show this help message
|
|
20
|
+
-v, --version Show version number
|
|
21
|
+
--copyright Show copyright and build information
|
|
21
22
|
|
|
22
23
|
EXAMPLES:
|
|
23
24
|
prolog-trace-viz program.pl "append([1,2], [3,4], X)"
|
|
24
25
|
prolog-trace-viz program.pl "member(X, [a,b,c])" -o trace.md
|
|
25
26
|
prolog-trace-viz program.pl "factorial(5, X)" --depth 10 --verbose
|
|
27
|
+
prolog-trace-viz program.pl "t(1+0+1, X)" --show-internal-vars
|
|
26
28
|
`.trim();
|
|
27
29
|
export function parseArgs(argv) {
|
|
28
30
|
const args = argv.slice(2); // Skip node and script path
|
|
@@ -42,6 +44,7 @@ export function parseArgs(argv) {
|
|
|
42
44
|
depth: 100,
|
|
43
45
|
verbose: false,
|
|
44
46
|
quiet: false,
|
|
47
|
+
showInternalVars: false,
|
|
45
48
|
};
|
|
46
49
|
const positionalArgs = [];
|
|
47
50
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -73,6 +76,9 @@ export function parseArgs(argv) {
|
|
|
73
76
|
}
|
|
74
77
|
options.depth = depth;
|
|
75
78
|
}
|
|
79
|
+
else if (arg === '--show-internal-vars') {
|
|
80
|
+
options.showInternalVars = true;
|
|
81
|
+
}
|
|
76
82
|
else if (arg === '--verbose') {
|
|
77
83
|
options.verbose = true;
|
|
78
84
|
}
|
|
@@ -121,6 +127,7 @@ export function parseArgs(argv) {
|
|
|
121
127
|
depth: options.depth,
|
|
122
128
|
verbose: options.verbose,
|
|
123
129
|
quiet: options.quiet,
|
|
130
|
+
showInternalVars: options.showInternalVars,
|
|
124
131
|
},
|
|
125
132
|
};
|
|
126
133
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -164,6 +164,9 @@ async function run(options) {
|
|
|
164
164
|
tree,
|
|
165
165
|
clauses: clauseDefinitions,
|
|
166
166
|
finalAnswer,
|
|
167
|
+
formatterOptions: {
|
|
168
|
+
showInternalVars: options.showInternalVars,
|
|
169
|
+
},
|
|
167
170
|
});
|
|
168
171
|
// Write output - default to source file location if not specified
|
|
169
172
|
const outputPath = options.output || `${prologDir}/${nameWithoutExt}-output.md`;
|
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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"}
|
|
@@ -7,6 +7,9 @@ export interface ClauseDefinition {
|
|
|
7
7
|
line: number;
|
|
8
8
|
text: string;
|
|
9
9
|
}
|
|
10
|
+
export interface FormatterOptions {
|
|
11
|
+
showInternalVars?: boolean;
|
|
12
|
+
}
|
|
10
13
|
export interface MarkdownContext {
|
|
11
14
|
query: string;
|
|
12
15
|
originalQuery?: string;
|
|
@@ -16,6 +19,7 @@ export interface MarkdownContext {
|
|
|
16
19
|
finalAnswer?: string;
|
|
17
20
|
truncated?: boolean;
|
|
18
21
|
maxDepth?: number;
|
|
22
|
+
formatterOptions?: FormatterOptions;
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
25
|
* Generate complete markdown document
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-generator.d.ts","sourceRoot":"","sources":["../src/markdown-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-generator.d.ts","sourceRoot":"","sources":["../src/markdown-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA2BjE"}
|
|
@@ -78,7 +78,10 @@ function generateTimelineSection(context) {
|
|
|
78
78
|
lines.push('_No execution steps recorded._');
|
|
79
79
|
return lines.join('\n');
|
|
80
80
|
}
|
|
81
|
-
|
|
81
|
+
const formatterOptions = {
|
|
82
|
+
showInternalVars: context.formatterOptions?.showInternalVars ?? false,
|
|
83
|
+
};
|
|
84
|
+
lines.push(formatTimeline(context.timeline, formatterOptions));
|
|
82
85
|
return lines.join('\n');
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
@@ -92,8 +95,11 @@ function generateTreeSection(context) {
|
|
|
92
95
|
lines.push('_No call tree available._');
|
|
93
96
|
return lines.join('\n');
|
|
94
97
|
}
|
|
98
|
+
const formatterOptions = {
|
|
99
|
+
showInternalVars: context.formatterOptions?.showInternalVars ?? false,
|
|
100
|
+
};
|
|
95
101
|
lines.push('```mermaid');
|
|
96
|
-
lines.push(formatTreeAsMermaid(context.tree));
|
|
102
|
+
lines.push(formatTreeAsMermaid(context.tree, formatterOptions));
|
|
97
103
|
lines.push('```');
|
|
98
104
|
return lines.join('\n');
|
|
99
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-generator.js","sourceRoot":"","sources":["../src/markdown-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"markdown-generator.js","sourceRoot":"","sources":["../src/markdown-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAA4B,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAuBhF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ;IACR,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,iBAAiB;IACjB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,qBAAqB;IACrB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,WAAW;IACX,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO;IACP,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,eAAe;IACf,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;IACrD,OAAO,6BAA6B,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAwB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;IACrD,OAAO;QACL,UAAU;QACV,EAAE;QACF,KAAK;QACL,KAAK;QACL,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAwB;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,eAAe;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,aAAa;IACb,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,OAAwB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,gBAAgB,GAA6B;QACjD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,KAAK;KACtE,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAwB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,gBAAgB,GAAyB;QAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,KAAK;KACtE,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAElB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,OAAwB;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mCAAmC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
* Timeline Formatter - Formats nested timeline steps into markdown
|
|
3
3
|
*
|
|
4
4
|
* Renders a hierarchical view where child calls are visually nested inside their parents.
|
|
5
|
+
* By default, uses clause variable names (X, Z, X1) instead of internal Prolog names (_2008).
|
|
5
6
|
*/
|
|
6
7
|
import { TimelineStep } from './timeline.js';
|
|
8
|
+
export interface TimelineFormatterOptions {
|
|
9
|
+
showInternalVars?: boolean;
|
|
10
|
+
}
|
|
7
11
|
/**
|
|
8
12
|
* Format timeline steps into markdown with nested structure
|
|
9
13
|
*/
|
|
10
|
-
export declare function formatTimeline(steps: TimelineStep[]): string;
|
|
14
|
+
export declare function formatTimeline(steps: TimelineStep[], options?: TimelineFormatterOptions): string;
|
|
11
15
|
//# sourceMappingURL=timeline-formatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-formatter.d.ts","sourceRoot":"","sources":["../src/timeline-formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"timeline-formatter.d.ts","sourceRoot":"","sources":["../src/timeline-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,wBAA6B,GAAG,MAAM,CASpG"}
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* Timeline Formatter - Formats nested timeline steps into markdown
|
|
3
3
|
*
|
|
4
4
|
* Renders a hierarchical view where child calls are visually nested inside their parents.
|
|
5
|
+
* By default, uses clause variable names (X, Z, X1) instead of internal Prolog names (_2008).
|
|
5
6
|
*/
|
|
6
7
|
/**
|
|
7
8
|
* Format timeline steps into markdown with nested structure
|
|
8
9
|
*/
|
|
9
|
-
export function formatTimeline(steps) {
|
|
10
|
+
export function formatTimeline(steps, options = {}) {
|
|
10
11
|
const lines = [];
|
|
11
12
|
for (const step of steps) {
|
|
12
|
-
lines.push(...formatStepNested(step, 0));
|
|
13
|
+
lines.push(...formatStepNested(step, 0, options));
|
|
13
14
|
lines.push('');
|
|
14
15
|
}
|
|
15
16
|
return lines.join('\n');
|
|
@@ -18,20 +19,24 @@ export function formatTimeline(steps) {
|
|
|
18
19
|
* Format a single timeline step with nesting support
|
|
19
20
|
* @param step The step to format
|
|
20
21
|
* @param depth Current nesting depth (0 = root level)
|
|
22
|
+
* @param options Formatter options
|
|
21
23
|
*/
|
|
22
|
-
function formatStepNested(step, depth) {
|
|
24
|
+
function formatStepNested(step, depth, options) {
|
|
23
25
|
const lines = [];
|
|
24
26
|
const indent = '│ '.repeat(depth);
|
|
27
|
+
const showInternal = options.showInternalVars ?? false;
|
|
25
28
|
// Step header with box drawing
|
|
26
29
|
const portLabel = step.port === 'merged' ? '' : step.port.toUpperCase() + ' ';
|
|
27
30
|
// subgoalLabel is like "[1.1]", strip brackets for cleaner display
|
|
28
31
|
const subgoalMarker = step.subgoalLabel ? ` [Goal ${step.subgoalLabel.slice(1, -1)}]` : '';
|
|
32
|
+
// Format goal display - use clause variable name for output arg if available
|
|
33
|
+
const goalDisplay = formatGoalDisplay(step, showInternal);
|
|
29
34
|
// Build goal display: show template → instantiated if we have binding context
|
|
30
|
-
let
|
|
35
|
+
let fullGoalDisplay = `${portLabel}${goalDisplay}`;
|
|
31
36
|
if (step.subgoalTemplate && step.subgoalBindings && step.subgoalBindings.length > 0) {
|
|
32
|
-
|
|
37
|
+
fullGoalDisplay = `${portLabel}${step.subgoalTemplate} → ${goalDisplay}`;
|
|
33
38
|
}
|
|
34
|
-
lines.push(`${indent}┌─ Step ${step.stepNumber}${subgoalMarker}: ${
|
|
39
|
+
lines.push(`${indent}┌─ Step ${step.stepNumber}${subgoalMarker}: ${fullGoalDisplay}`);
|
|
35
40
|
// Show binding context if we have bindings from sibling steps
|
|
36
41
|
if (step.subgoalBindings && step.subgoalBindings.length > 0) {
|
|
37
42
|
for (const binding of step.subgoalBindings) {
|
|
@@ -42,7 +47,7 @@ function formatStepNested(step, depth) {
|
|
|
42
47
|
switch (step.port) {
|
|
43
48
|
case 'call':
|
|
44
49
|
case 'merged':
|
|
45
|
-
lines.push(...formatMergedContent(step, indent));
|
|
50
|
+
lines.push(...formatMergedContent(step, indent, showInternal));
|
|
46
51
|
break;
|
|
47
52
|
case 'redo':
|
|
48
53
|
lines.push(`${indent}│ Backtracking...`);
|
|
@@ -55,18 +60,13 @@ function formatStepNested(step, depth) {
|
|
|
55
60
|
if (step.children.length > 0) {
|
|
56
61
|
lines.push(`${indent}│ `);
|
|
57
62
|
for (const child of step.children) {
|
|
58
|
-
lines.push(...formatStepNested(child, depth + 1));
|
|
63
|
+
lines.push(...formatStepNested(child, depth + 1, options));
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
// Show result AFTER children (this is the key insight!)
|
|
62
67
|
if (step.port === 'merged' && step.result) {
|
|
63
|
-
//
|
|
64
|
-
const
|
|
65
|
-
let outputVar = '?';
|
|
66
|
-
if (goalMatch) {
|
|
67
|
-
const args = splitArgs(goalMatch[1]);
|
|
68
|
-
outputVar = args[args.length - 1] || '?';
|
|
69
|
-
}
|
|
68
|
+
// Get the output variable name from clause if available, otherwise extract from goal
|
|
69
|
+
const outputVar = getOutputVariableName(step, showInternal);
|
|
70
70
|
lines.push(`${indent}│ => ${outputVar} = ${step.result}`);
|
|
71
71
|
// Show query variable state only on root-level steps (depth 0)
|
|
72
72
|
// This prevents showing "A = ?" on intermediate steps
|
|
@@ -77,6 +77,82 @@ function formatStepNested(step, depth) {
|
|
|
77
77
|
lines.push(`${indent}└─`);
|
|
78
78
|
return lines;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Format the goal display, replacing internal variable names with clause variable names
|
|
82
|
+
*/
|
|
83
|
+
function formatGoalDisplay(step, showInternal) {
|
|
84
|
+
if (showInternal) {
|
|
85
|
+
return step.goal;
|
|
86
|
+
}
|
|
87
|
+
// If we have clause info, try to use clause variable name for the output argument
|
|
88
|
+
if (step.clause) {
|
|
89
|
+
const goalMatch = step.goal.match(/^([^(]+)\((.+)\)$/);
|
|
90
|
+
const headMatch = step.clause.head.match(/^([^(]+)\((.+)\)$/);
|
|
91
|
+
if (goalMatch && headMatch) {
|
|
92
|
+
const predicate = goalMatch[1];
|
|
93
|
+
const goalArgs = splitArgs(goalMatch[2]);
|
|
94
|
+
const headArgs = splitArgs(headMatch[2]);
|
|
95
|
+
// Replace internal variable names with clause variable names where appropriate
|
|
96
|
+
const displayArgs = goalArgs.map((arg, i) => {
|
|
97
|
+
// If this is an internal variable (starts with _) and we have a clause variable
|
|
98
|
+
if (isInternalVariable(arg) && i < headArgs.length) {
|
|
99
|
+
const clauseVar = extractVariableName(headArgs[i]);
|
|
100
|
+
if (clauseVar) {
|
|
101
|
+
return clauseVar;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return arg;
|
|
105
|
+
});
|
|
106
|
+
return `${predicate}(${displayArgs.join(',')})`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return step.goal;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the output variable name for result display
|
|
113
|
+
*/
|
|
114
|
+
function getOutputVariableName(step, showInternal) {
|
|
115
|
+
// Extract the last argument from the goal (typically the output)
|
|
116
|
+
const goalMatch = step.goal.match(/^[^(]+\((.+)\)$/);
|
|
117
|
+
if (!goalMatch)
|
|
118
|
+
return '?';
|
|
119
|
+
const args = splitArgs(goalMatch[1]);
|
|
120
|
+
const lastArg = args[args.length - 1] || '?';
|
|
121
|
+
if (showInternal) {
|
|
122
|
+
return lastArg;
|
|
123
|
+
}
|
|
124
|
+
// If we have clause info, use the clause variable name
|
|
125
|
+
if (step.clause) {
|
|
126
|
+
const headMatch = step.clause.head.match(/^[^(]+\((.+)\)$/);
|
|
127
|
+
if (headMatch) {
|
|
128
|
+
const headArgs = splitArgs(headMatch[1]);
|
|
129
|
+
if (headArgs.length > 0) {
|
|
130
|
+
const clauseVar = extractVariableName(headArgs[headArgs.length - 1]);
|
|
131
|
+
if (clauseVar) {
|
|
132
|
+
return clauseVar;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return lastArg;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Check if a term is an internal Prolog variable (starts with _)
|
|
141
|
+
*/
|
|
142
|
+
function isInternalVariable(term) {
|
|
143
|
+
return /^_\d+$/.test(term.trim());
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract variable name from a term (handles patterns like X, [H|T], X+1, etc.)
|
|
147
|
+
*/
|
|
148
|
+
function extractVariableName(term) {
|
|
149
|
+
const trimmed = term.trim();
|
|
150
|
+
// Simple variable
|
|
151
|
+
if (/^[A-Z][A-Za-z0-9_]*$/.test(trimmed)) {
|
|
152
|
+
return trimmed;
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
80
156
|
/**
|
|
81
157
|
* Split arguments respecting nested brackets
|
|
82
158
|
*/
|
|
@@ -109,7 +185,7 @@ function splitArgs(argsStr) {
|
|
|
109
185
|
/**
|
|
110
186
|
* Format merged CALL/EXIT step content (before children)
|
|
111
187
|
*/
|
|
112
|
-
function formatMergedContent(step, indent) {
|
|
188
|
+
function formatMergedContent(step, indent, showInternal) {
|
|
113
189
|
const lines = [];
|
|
114
190
|
if (step.clause) {
|
|
115
191
|
const clauseLabel = step.clause.body && step.clause.body !== 'true' ? 'Clause' : 'Fact';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-formatter.js","sourceRoot":"","sources":["../src/timeline-formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"timeline-formatter.js","sourceRoot":"","sources":["../src/timeline-formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/tree-formatter.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tree Formatter - Generates Mermaid diagram from tree structure
|
|
3
|
+
*
|
|
4
|
+
* By default, uses clause variable names instead of internal Prolog names.
|
|
3
5
|
*/
|
|
4
6
|
import { TreeNode } from './tree.js';
|
|
7
|
+
export interface TreeFormatterOptions {
|
|
8
|
+
showInternalVars?: boolean;
|
|
9
|
+
}
|
|
5
10
|
/**
|
|
6
11
|
* Format tree as Mermaid diagram
|
|
7
12
|
*/
|
|
8
|
-
export declare function formatTreeAsMermaid(root: TreeNode | null): string;
|
|
13
|
+
export declare function formatTreeAsMermaid(root: TreeNode | null, options?: TreeFormatterOptions): string;
|
|
9
14
|
/**
|
|
10
15
|
* Handle backtracking visualization in tree
|
|
11
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-formatter.d.ts","sourceRoot":"","sources":["../src/tree-formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tree-formatter.d.ts","sourceRoot":"","sources":["../src/tree-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,CA+BrG;AAgLD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAe1D"}
|
package/dist/tree-formatter.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tree Formatter - Generates Mermaid diagram from tree structure
|
|
3
|
+
*
|
|
4
|
+
* By default, uses clause variable names instead of internal Prolog names.
|
|
3
5
|
*/
|
|
4
6
|
/**
|
|
5
7
|
* Format tree as Mermaid diagram
|
|
6
8
|
*/
|
|
7
|
-
export function formatTreeAsMermaid(root) {
|
|
9
|
+
export function formatTreeAsMermaid(root, options = {}) {
|
|
8
10
|
if (!root) {
|
|
9
11
|
return 'graph TD\n A["No execution tree"]';
|
|
10
12
|
}
|
|
@@ -15,7 +17,7 @@ export function formatTreeAsMermaid(root) {
|
|
|
15
17
|
const nodes = [];
|
|
16
18
|
const edges = [];
|
|
17
19
|
const styles = [];
|
|
18
|
-
collectNodesAndEdges(root, nodes, edges, styles);
|
|
20
|
+
collectNodesAndEdges(root, nodes, edges, styles, true, options);
|
|
19
21
|
// Add nodes section
|
|
20
22
|
lines.push('%% Nodes');
|
|
21
23
|
lines.push(...nodes);
|
|
@@ -32,9 +34,9 @@ export function formatTreeAsMermaid(root) {
|
|
|
32
34
|
/**
|
|
33
35
|
* Collect nodes, edges, and styles recursively
|
|
34
36
|
*/
|
|
35
|
-
function collectNodesAndEdges(node, nodes, edges, styles, isRoot = true) {
|
|
37
|
+
function collectNodesAndEdges(node, nodes, edges, styles, isRoot = true, options = {}) {
|
|
36
38
|
// Generate node definition
|
|
37
|
-
const nodeLabel = formatNodeLabel(node);
|
|
39
|
+
const nodeLabel = formatNodeLabel(node, options);
|
|
38
40
|
nodes.push(`${node.id}[${nodeLabel}]`);
|
|
39
41
|
// Generate style
|
|
40
42
|
const style = getNodeStyle(node, isRoot);
|
|
@@ -51,14 +53,15 @@ function collectNodesAndEdges(node, nodes, edges, styles, isRoot = true) {
|
|
|
51
53
|
}
|
|
52
54
|
edges.push(`${node.id} -->|"${edgeLabel}"| ${child.id}`);
|
|
53
55
|
// Recursively process child
|
|
54
|
-
collectNodesAndEdges(child, nodes, edges, styles, false);
|
|
56
|
+
collectNodesAndEdges(child, nodes, edges, styles, false, options);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Format node label with circled numbers and clause info
|
|
59
61
|
*/
|
|
60
|
-
function formatNodeLabel(node) {
|
|
62
|
+
function formatNodeLabel(node, options = {}) {
|
|
61
63
|
const parts = [];
|
|
64
|
+
const showInternal = options.showInternalVars ?? false;
|
|
62
65
|
// Use source clause head if available, otherwise use goal
|
|
63
66
|
const displayGoal = node.clauseHead || node.goal;
|
|
64
67
|
// Add call step with circled number
|
|
@@ -67,12 +70,75 @@ function formatNodeLabel(node) {
|
|
|
67
70
|
if (node.clauseNumber) {
|
|
68
71
|
parts.push(`clause ${node.clauseNumber}`);
|
|
69
72
|
}
|
|
70
|
-
// Add final binding if available
|
|
73
|
+
// Add final binding if available
|
|
71
74
|
if (node.finalBinding) {
|
|
72
|
-
|
|
75
|
+
// Format the binding - use clause variable name if not showing internal
|
|
76
|
+
const bindingDisplay = showInternal
|
|
77
|
+
? node.finalBinding
|
|
78
|
+
: formatBindingWithClauseVar(node.finalBinding, node.clauseHead);
|
|
79
|
+
parts.push(`Result: ${bindingDisplay}`);
|
|
73
80
|
}
|
|
74
81
|
return `"${parts.join('<br/>')}"`;
|
|
75
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Format a binding using clause variable name instead of internal name
|
|
85
|
+
* e.g., "_2008=1+1+1+1+0" with clauseHead "t(X+1+1, Z)" -> "Z=1+1+1+1+0"
|
|
86
|
+
*/
|
|
87
|
+
function formatBindingWithClauseVar(binding, clauseHead) {
|
|
88
|
+
if (!clauseHead)
|
|
89
|
+
return binding;
|
|
90
|
+
// Parse binding: "_2008=1+1+1+1+0" -> ["_2008", "1+1+1+1+0"]
|
|
91
|
+
const eqIndex = binding.indexOf('=');
|
|
92
|
+
if (eqIndex === -1)
|
|
93
|
+
return binding;
|
|
94
|
+
const varPart = binding.slice(0, eqIndex);
|
|
95
|
+
const valuePart = binding.slice(eqIndex + 1);
|
|
96
|
+
// If it's an internal variable, try to find the clause variable name
|
|
97
|
+
if (/^_\d+$/.test(varPart)) {
|
|
98
|
+
// Extract the last argument from clause head (typically the output)
|
|
99
|
+
const headMatch = clauseHead.match(/^[^(]+\((.+)\)$/);
|
|
100
|
+
if (headMatch) {
|
|
101
|
+
const args = splitArgsSimple(headMatch[1]);
|
|
102
|
+
if (args.length > 0) {
|
|
103
|
+
const lastArg = args[args.length - 1].trim();
|
|
104
|
+
// Check if it's a simple variable
|
|
105
|
+
if (/^[A-Z][A-Za-z0-9_]*$/.test(lastArg)) {
|
|
106
|
+
return `${lastArg}=${valuePart}`;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return binding;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Simple argument splitter for clause heads
|
|
115
|
+
*/
|
|
116
|
+
function splitArgsSimple(argsStr) {
|
|
117
|
+
const args = [];
|
|
118
|
+
let current = '';
|
|
119
|
+
let depth = 0;
|
|
120
|
+
for (const char of argsStr) {
|
|
121
|
+
if (char === '(' || char === '[') {
|
|
122
|
+
depth++;
|
|
123
|
+
current += char;
|
|
124
|
+
}
|
|
125
|
+
else if (char === ')' || char === ']') {
|
|
126
|
+
depth--;
|
|
127
|
+
current += char;
|
|
128
|
+
}
|
|
129
|
+
else if (char === ',' && depth === 0) {
|
|
130
|
+
args.push(current.trim());
|
|
131
|
+
current = '';
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
current += char;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (current.trim()) {
|
|
138
|
+
args.push(current.trim());
|
|
139
|
+
}
|
|
140
|
+
return args;
|
|
141
|
+
}
|
|
76
142
|
/**
|
|
77
143
|
* Convert number to circled Unicode character
|
|
78
144
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-formatter.js","sourceRoot":"","sources":["../src/tree-formatter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tree-formatter.js","sourceRoot":"","sources":["../src/tree-formatter.ts"],"names":[],"mappings":"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"}
|