k0ntext 3.3.0 → 3.5.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/README.md +240 -26
- package/dist/agents/cleanup-agent.d.ts.map +1 -1
- package/dist/agents/cleanup-agent.js +18 -6
- package/dist/agents/cleanup-agent.js.map +1 -1
- package/dist/agents/drift-agent.d.ts +7 -0
- package/dist/agents/drift-agent.d.ts.map +1 -1
- package/dist/agents/drift-agent.js +29 -8
- package/dist/agents/drift-agent.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +8 -1
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/drift-detect.d.ts.map +1 -1
- package/dist/cli/commands/drift-detect.js +21 -1
- package/dist/cli/commands/drift-detect.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +12 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +261 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/sync-templates.d.ts +15 -0
- package/dist/cli/commands/sync-templates.d.ts.map +1 -0
- package/dist/cli/commands/sync-templates.js +181 -0
- package/dist/cli/commands/sync-templates.js.map +1 -0
- package/dist/cli/commands/version-check.d.ts +12 -0
- package/dist/cli/commands/version-check.d.ts.map +1 -0
- package/dist/cli/commands/version-check.js +133 -0
- package/dist/cli/commands/version-check.js.map +1 -0
- package/dist/cli/generate.d.ts +5 -0
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +80 -16
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/index.js +145 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl/index.d.ts +4 -0
- package/dist/cli/repl/index.d.ts.map +1 -1
- package/dist/cli/repl/index.js +113 -95
- package/dist/cli/repl/index.js.map +1 -1
- package/dist/cli/repl/tui/panels/config.d.ts +71 -0
- package/dist/cli/repl/tui/panels/config.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/config.js +392 -0
- package/dist/cli/repl/tui/panels/config.js.map +1 -0
- package/dist/cli/repl/tui/panels/drift.d.ts +95 -0
- package/dist/cli/repl/tui/panels/drift.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/drift.js +353 -0
- package/dist/cli/repl/tui/panels/drift.js.map +1 -0
- package/dist/cli/repl/tui/panels/indexing.d.ts +86 -0
- package/dist/cli/repl/tui/panels/indexing.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/indexing.js +254 -0
- package/dist/cli/repl/tui/panels/indexing.js.map +1 -0
- package/dist/cli/repl/tui/panels/search.d.ts +66 -0
- package/dist/cli/repl/tui/panels/search.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/search.js +215 -0
- package/dist/cli/repl/tui/panels/search.js.map +1 -0
- package/dist/cli/utils/backup-manager.d.ts +94 -0
- package/dist/cli/utils/backup-manager.d.ts.map +1 -0
- package/dist/cli/utils/backup-manager.js +230 -0
- package/dist/cli/utils/backup-manager.js.map +1 -0
- package/dist/cli/utils/file-detector.d.ts +87 -0
- package/dist/cli/utils/file-detector.d.ts.map +1 -0
- package/dist/cli/utils/file-detector.js +131 -0
- package/dist/cli/utils/file-detector.js.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +9 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/modification-prompt.d.ts +41 -0
- package/dist/cli/utils/modification-prompt.d.ts.map +1 -0
- package/dist/cli/utils/modification-prompt.js +84 -0
- package/dist/cli/utils/modification-prompt.js.map +1 -0
- package/dist/cli/version/checker.d.ts +47 -0
- package/dist/cli/version/checker.d.ts.map +1 -0
- package/dist/cli/version/checker.js +143 -0
- package/dist/cli/version/checker.js.map +1 -0
- package/dist/cli/version/comparator.d.ts +46 -0
- package/dist/cli/version/comparator.d.ts.map +1 -0
- package/dist/cli/version/comparator.js +99 -0
- package/dist/cli/version/comparator.js.map +1 -0
- package/dist/cli/version/index.d.ts +11 -0
- package/dist/cli/version/index.d.ts.map +1 -0
- package/dist/cli/version/index.js +11 -0
- package/dist/cli/version/index.js.map +1 -0
- package/dist/cli/version/parser.d.ts +38 -0
- package/dist/cli/version/parser.d.ts.map +1 -0
- package/dist/cli/version/parser.js +90 -0
- package/dist/cli/version/parser.js.map +1 -0
- package/dist/cli/version/prompt.d.ts +40 -0
- package/dist/cli/version/prompt.d.ts.map +1 -0
- package/dist/cli/version/prompt.js +162 -0
- package/dist/cli/version/prompt.js.map +1 -0
- package/dist/cli/version/types.d.ts +89 -0
- package/dist/cli/version/types.d.ts.map +1 -0
- package/dist/cli/version/types.js +7 -0
- package/dist/cli/version/types.js.map +1 -0
- package/dist/db/client.d.ts +64 -2
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +148 -2
- package/dist/db/client.js.map +1 -1
- package/dist/db/schema.d.ts +41 -2
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +77 -2
- package/dist/db/schema.js.map +1 -1
- package/dist/mcp.js +2 -2
- package/dist/mcp.js.map +1 -1
- package/dist/template-engine/data-transformer.d.ts +17 -0
- package/dist/template-engine/data-transformer.d.ts.map +1 -0
- package/dist/template-engine/data-transformer.js +343 -0
- package/dist/template-engine/data-transformer.js.map +1 -0
- package/dist/template-engine/engine.d.ts +74 -0
- package/dist/template-engine/engine.d.ts.map +1 -0
- package/dist/template-engine/engine.js +183 -0
- package/dist/template-engine/engine.js.map +1 -0
- package/dist/template-engine/helpers.d.ts +81 -0
- package/dist/template-engine/helpers.d.ts.map +1 -0
- package/dist/template-engine/helpers.js +153 -0
- package/dist/template-engine/helpers.js.map +1 -0
- package/dist/template-engine/index.d.ts +10 -0
- package/dist/template-engine/index.d.ts.map +1 -0
- package/dist/template-engine/index.js +10 -0
- package/dist/template-engine/index.js.map +1 -0
- package/dist/template-engine/types.d.ts +147 -0
- package/dist/template-engine/types.d.ts.map +1 -0
- package/dist/template-engine/types.js +7 -0
- package/dist/template-engine/types.js.map +1 -0
- package/dist/template-sync/comparator.d.ts +138 -0
- package/dist/template-sync/comparator.d.ts.map +1 -0
- package/dist/template-sync/comparator.js +353 -0
- package/dist/template-sync/comparator.js.map +1 -0
- package/dist/template-sync/conflict-resolver.d.ts +112 -0
- package/dist/template-sync/conflict-resolver.d.ts.map +1 -0
- package/dist/template-sync/conflict-resolver.js +328 -0
- package/dist/template-sync/conflict-resolver.js.map +1 -0
- package/dist/template-sync/engine.d.ts +93 -0
- package/dist/template-sync/engine.d.ts.map +1 -0
- package/dist/template-sync/engine.js +350 -0
- package/dist/template-sync/engine.js.map +1 -0
- package/dist/template-sync/hasher.d.ts +67 -0
- package/dist/template-sync/hasher.d.ts.map +1 -0
- package/dist/template-sync/hasher.js +94 -0
- package/dist/template-sync/hasher.js.map +1 -0
- package/dist/template-sync/index.d.ts +20 -0
- package/dist/template-sync/index.d.ts.map +1 -0
- package/dist/template-sync/index.js +14 -0
- package/dist/template-sync/index.js.map +1 -0
- package/dist/template-sync/manifest.d.ts +131 -0
- package/dist/template-sync/manifest.d.ts.map +1 -0
- package/dist/template-sync/manifest.js +309 -0
- package/dist/template-sync/manifest.js.map +1 -0
- package/dist/template-sync/merger.d.ts +125 -0
- package/dist/template-sync/merger.d.ts.map +1 -0
- package/dist/template-sync/merger.js +371 -0
- package/dist/template-sync/merger.js.map +1 -0
- package/dist/template-sync/scanner.d.ts +106 -0
- package/dist/template-sync/scanner.d.ts.map +1 -0
- package/dist/template-sync/scanner.js +196 -0
- package/dist/template-sync/scanner.js.map +1 -0
- package/dist/template-sync/types.d.ts +199 -0
- package/dist/template-sync/types.d.ts.map +1 -0
- package/dist/template-sync/types.js +30 -0
- package/dist/template-sync/types.js.map +1 -0
- package/package.json +2 -1
- package/src/agents/cleanup-agent.ts +21 -6
- package/src/agents/drift-agent.ts +31 -8
- package/src/cli/commands/cleanup.ts +9 -1
- package/src/cli/commands/drift-detect.ts +24 -1
- package/src/cli/commands/restore.ts +318 -0
- package/src/cli/commands/sync-templates.ts +210 -0
- package/src/cli/commands/version-check.ts +158 -0
- package/src/cli/generate.ts +99 -17
- package/src/cli/index.ts +167 -1
- package/src/cli/repl/index.ts +118 -105
- package/src/cli/repl/tui/panels/config.ts +457 -0
- package/src/cli/repl/tui/panels/drift.ts +458 -0
- package/src/cli/repl/tui/panels/indexing.ts +324 -0
- package/src/cli/repl/tui/panels/search.ts +272 -0
- package/src/cli/utils/backup-manager.ts +275 -0
- package/src/cli/utils/file-detector.ts +181 -0
- package/src/cli/utils/index.ts +9 -0
- package/src/cli/utils/modification-prompt.ts +112 -0
- package/src/cli/version/checker.ts +172 -0
- package/src/cli/version/comparator.ts +106 -0
- package/src/cli/version/index.ts +11 -0
- package/src/cli/version/parser.ts +101 -0
- package/src/cli/version/prompt.ts +208 -0
- package/src/cli/version/types.ts +95 -0
- package/src/db/client.ts +220 -3
- package/src/db/schema.ts +109 -2
- package/src/mcp.ts +2 -2
- package/src/template-engine/data-transformer.ts +367 -0
- package/src/template-engine/engine.ts +213 -0
- package/src/template-engine/helpers.ts +163 -0
- package/src/template-engine/index.ts +10 -0
- package/src/template-engine/types.ts +158 -0
- package/src/template-sync/comparator.ts +452 -0
- package/src/template-sync/conflict-resolver.ts +401 -0
- package/src/template-sync/engine.ts +417 -0
- package/src/template-sync/hasher.ts +104 -0
- package/src/template-sync/index.ts +60 -0
- package/src/template-sync/manifest.ts +358 -0
- package/src/template-sync/merger.ts +454 -0
- package/src/template-sync/scanner.ts +254 -0
- package/src/template-sync/types.ts +247 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Helpers
|
|
3
|
+
*
|
|
4
|
+
* Custom Handlebars helpers for template rendering.
|
|
5
|
+
*/
|
|
6
|
+
import type { HelperDelegate } from 'handlebars';
|
|
7
|
+
/**
|
|
8
|
+
* Join array elements with a separator
|
|
9
|
+
*/
|
|
10
|
+
export declare const join: HelperDelegate;
|
|
11
|
+
/**
|
|
12
|
+
* Get first N elements of an array
|
|
13
|
+
*/
|
|
14
|
+
export declare const first: HelperDelegate;
|
|
15
|
+
/**
|
|
16
|
+
* Truncate a string to a maximum length
|
|
17
|
+
*/
|
|
18
|
+
export declare const truncate: HelperDelegate;
|
|
19
|
+
/**
|
|
20
|
+
* Slugify a string (convert to URL-friendly format)
|
|
21
|
+
*/
|
|
22
|
+
export declare const slugify: HelperDelegate;
|
|
23
|
+
/**
|
|
24
|
+
* Format a date
|
|
25
|
+
*/
|
|
26
|
+
export declare const formatDate: HelperDelegate;
|
|
27
|
+
/**
|
|
28
|
+
* Conditional equality check
|
|
29
|
+
*/
|
|
30
|
+
export declare const eq: HelperDelegate;
|
|
31
|
+
/**
|
|
32
|
+
* Conditional inequality check
|
|
33
|
+
*/
|
|
34
|
+
export declare const ne: HelperDelegate;
|
|
35
|
+
/**
|
|
36
|
+
* Logical AND
|
|
37
|
+
*/
|
|
38
|
+
export declare const and: HelperDelegate;
|
|
39
|
+
/**
|
|
40
|
+
* Logical OR
|
|
41
|
+
*/
|
|
42
|
+
export declare const or: HelperDelegate;
|
|
43
|
+
/**
|
|
44
|
+
* Default value if undefined/null
|
|
45
|
+
*/
|
|
46
|
+
export declare const defaults: HelperDelegate;
|
|
47
|
+
/**
|
|
48
|
+
* JSON stringify
|
|
49
|
+
*/
|
|
50
|
+
export declare const json: HelperDelegate;
|
|
51
|
+
/**
|
|
52
|
+
* Get object keys
|
|
53
|
+
*/
|
|
54
|
+
export declare const keys: HelperDelegate;
|
|
55
|
+
/**
|
|
56
|
+
* Get object values
|
|
57
|
+
*/
|
|
58
|
+
export declare const values: HelperDelegate;
|
|
59
|
+
/**
|
|
60
|
+
* Register all helpers with a Handlebars instance
|
|
61
|
+
*/
|
|
62
|
+
export declare function registerHelpers(Handlebars: any): void;
|
|
63
|
+
/**
|
|
64
|
+
* Export helpers as an object for external use
|
|
65
|
+
*/
|
|
66
|
+
export declare const helpers: {
|
|
67
|
+
join: HelperDelegate;
|
|
68
|
+
first: HelperDelegate;
|
|
69
|
+
truncate: HelperDelegate;
|
|
70
|
+
slugify: HelperDelegate;
|
|
71
|
+
formatDate: HelperDelegate;
|
|
72
|
+
eq: HelperDelegate;
|
|
73
|
+
ne: HelperDelegate;
|
|
74
|
+
and: HelperDelegate;
|
|
75
|
+
or: HelperDelegate;
|
|
76
|
+
defaults: HelperDelegate;
|
|
77
|
+
json: HelperDelegate;
|
|
78
|
+
keys: HelperDelegate;
|
|
79
|
+
values: HelperDelegate;
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/template-engine/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,cAGlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,cAGnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,cAItB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,cAMrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,cAiBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,EAAE,EAAE,cAEhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,EAAE,EAAE,cAEhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,cAIjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,EAAE,EAAE,cAIhB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,cAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,cAElB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,cAElB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,cAEpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAcrD;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;CAcnB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Helpers
|
|
3
|
+
*
|
|
4
|
+
* Custom Handlebars helpers for template rendering.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Join array elements with a separator
|
|
8
|
+
*/
|
|
9
|
+
export const join = function (array, separator = ', ') {
|
|
10
|
+
if (!Array.isArray(array))
|
|
11
|
+
return '';
|
|
12
|
+
return array.filter(Boolean).join(separator);
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get first N elements of an array
|
|
16
|
+
*/
|
|
17
|
+
export const first = function (array, n = 1) {
|
|
18
|
+
if (!Array.isArray(array))
|
|
19
|
+
return [];
|
|
20
|
+
return array.slice(0, n);
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Truncate a string to a maximum length
|
|
24
|
+
*/
|
|
25
|
+
export const truncate = function (str, len = 50, suffix = '...') {
|
|
26
|
+
if (typeof str !== 'string')
|
|
27
|
+
return '';
|
|
28
|
+
if (str.length <= len)
|
|
29
|
+
return str;
|
|
30
|
+
return str.slice(0, len) + suffix;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Slugify a string (convert to URL-friendly format)
|
|
34
|
+
*/
|
|
35
|
+
export const slugify = function (str) {
|
|
36
|
+
if (typeof str !== 'string')
|
|
37
|
+
return '';
|
|
38
|
+
return str
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
41
|
+
.replace(/^-+|-+$/g, '');
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Format a date
|
|
45
|
+
*/
|
|
46
|
+
export const formatDate = function (date, format = 'ISO') {
|
|
47
|
+
if (!date)
|
|
48
|
+
return '';
|
|
49
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
50
|
+
if (isNaN(d.getTime()))
|
|
51
|
+
return '';
|
|
52
|
+
switch (format) {
|
|
53
|
+
case 'ISO':
|
|
54
|
+
return d.toISOString();
|
|
55
|
+
case 'locale':
|
|
56
|
+
return d.toLocaleDateString();
|
|
57
|
+
case 'time':
|
|
58
|
+
return d.toLocaleTimeString();
|
|
59
|
+
case 'short':
|
|
60
|
+
return d.toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });
|
|
61
|
+
default:
|
|
62
|
+
return d.toISOString();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Conditional equality check
|
|
67
|
+
*/
|
|
68
|
+
export const eq = function (a, b, options) {
|
|
69
|
+
return a === b ? options.fn(this) : options.inverse(this);
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Conditional inequality check
|
|
73
|
+
*/
|
|
74
|
+
export const ne = function (a, b, options) {
|
|
75
|
+
return a !== b ? options.fn(this) : options.inverse(this);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Logical AND
|
|
79
|
+
*/
|
|
80
|
+
export const and = function (...args) {
|
|
81
|
+
const options = args[args.length - 1];
|
|
82
|
+
const values = args.slice(0, -1);
|
|
83
|
+
return values.every(v => Boolean(v)) ? options.fn(this) : options.inverse(this);
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Logical OR
|
|
87
|
+
*/
|
|
88
|
+
export const or = function (...args) {
|
|
89
|
+
const options = args[args.length - 1];
|
|
90
|
+
const values = args.slice(0, -1);
|
|
91
|
+
return values.some(v => Boolean(v)) ? options.fn(this) : options.inverse(this);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Default value if undefined/null
|
|
95
|
+
*/
|
|
96
|
+
export const defaults = function (value, defaultValue) {
|
|
97
|
+
return value !== null && value !== undefined ? value : defaultValue;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* JSON stringify
|
|
101
|
+
*/
|
|
102
|
+
export const json = function (obj, spaces = 2) {
|
|
103
|
+
return JSON.stringify(obj, null, spaces);
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Get object keys
|
|
107
|
+
*/
|
|
108
|
+
export const keys = function (obj) {
|
|
109
|
+
return Object.keys(obj || {});
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Get object values
|
|
113
|
+
*/
|
|
114
|
+
export const values = function (obj) {
|
|
115
|
+
return Object.values(obj || {});
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Register all helpers with a Handlebars instance
|
|
119
|
+
*/
|
|
120
|
+
export function registerHelpers(Handlebars) {
|
|
121
|
+
Handlebars.registerHelper('join', join);
|
|
122
|
+
Handlebars.registerHelper('first', first);
|
|
123
|
+
Handlebars.registerHelper('truncate', truncate);
|
|
124
|
+
Handlebars.registerHelper('slugify', slugify);
|
|
125
|
+
Handlebars.registerHelper('formatDate', formatDate);
|
|
126
|
+
Handlebars.registerHelper('eq', eq);
|
|
127
|
+
Handlebars.registerHelper('ne', ne);
|
|
128
|
+
Handlebars.registerHelper('and', and);
|
|
129
|
+
Handlebars.registerHelper('or', or);
|
|
130
|
+
Handlebars.registerHelper('defaults', defaults);
|
|
131
|
+
Handlebars.registerHelper('json', json);
|
|
132
|
+
Handlebars.registerHelper('keys', keys);
|
|
133
|
+
Handlebars.registerHelper('values', values);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Export helpers as an object for external use
|
|
137
|
+
*/
|
|
138
|
+
export const helpers = {
|
|
139
|
+
join,
|
|
140
|
+
first,
|
|
141
|
+
truncate,
|
|
142
|
+
slugify,
|
|
143
|
+
formatDate,
|
|
144
|
+
eq,
|
|
145
|
+
ne,
|
|
146
|
+
and,
|
|
147
|
+
or,
|
|
148
|
+
defaults,
|
|
149
|
+
json,
|
|
150
|
+
keys,
|
|
151
|
+
values
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/template-engine/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAmB,UAAU,KAAgB,EAAE,SAAS,GAAG,IAAI;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmB,UAAU,KAAgB,EAAE,CAAC,GAAG,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAmB,UAAU,GAAY,EAAE,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK;IACtF,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAClC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AACpC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAmB,UAAU,GAAY;IAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAmB,UAAU,IAAa,EAAE,MAAM,GAAG,KAAK;IAC/E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAY,CAAC;IACnE,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAChC,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9F;YACE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAmB,UAAyB,CAAU,EAAE,CAAU,EAAE,OAAY;IAC7F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAmB,UAAyB,CAAU,EAAE,CAAU,EAAE,OAAY;IAC7F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAmB,UAAyB,GAAG,IAAe;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAmB,UAAyB,GAAG,IAAe;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAmB,UAAU,KAAc,EAAE,YAAqB;IACrF,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACtE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAmB,UAAU,GAAY,EAAE,MAAM,GAAG,CAAC;IACpE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAmB,UAAU,GAA4B;IACxE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAmB,UAAU,GAA4B;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAe;IAC7C,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChD,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,UAAU,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACpD,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChD,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,OAAO;IACP,UAAU;IACV,EAAE;IACF,EAAE;IACF,GAAG;IACH,EAAE;IACF,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template-engine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template-engine/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Engine Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for template data and rendering.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Project metadata for templates
|
|
8
|
+
*/
|
|
9
|
+
export interface ProjectTemplateData {
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
type?: string;
|
|
13
|
+
tech_stack: string[];
|
|
14
|
+
primary_language?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Architecture information
|
|
19
|
+
*/
|
|
20
|
+
export interface ArchitectureTemplateData {
|
|
21
|
+
pattern?: string;
|
|
22
|
+
layers?: LayerInfo[];
|
|
23
|
+
key_modules?: string[];
|
|
24
|
+
integrations?: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Layer information
|
|
28
|
+
*/
|
|
29
|
+
export interface LayerInfo {
|
|
30
|
+
name: string;
|
|
31
|
+
path: string;
|
|
32
|
+
purpose?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Key files information
|
|
36
|
+
*/
|
|
37
|
+
export interface KeyFilesTemplateData {
|
|
38
|
+
entry_points?: string[];
|
|
39
|
+
api_routes?: string[];
|
|
40
|
+
config?: string[];
|
|
41
|
+
tests?: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Commands information
|
|
45
|
+
*/
|
|
46
|
+
export interface CommandsTemplateData {
|
|
47
|
+
install?: string;
|
|
48
|
+
dev?: string;
|
|
49
|
+
test?: string;
|
|
50
|
+
build?: string;
|
|
51
|
+
lint?: string;
|
|
52
|
+
clean?: string;
|
|
53
|
+
[key: string]: string | undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Workflow information for templates
|
|
57
|
+
*/
|
|
58
|
+
export interface WorkflowTemplateData {
|
|
59
|
+
name: string;
|
|
60
|
+
category?: string;
|
|
61
|
+
complexity?: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
entry_points?: Array<{
|
|
64
|
+
endpoint: string;
|
|
65
|
+
file: string;
|
|
66
|
+
line?: number;
|
|
67
|
+
method?: string;
|
|
68
|
+
}>;
|
|
69
|
+
files?: string[];
|
|
70
|
+
steps?: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Gotcha information
|
|
74
|
+
*/
|
|
75
|
+
export interface GotchaTemplateData {
|
|
76
|
+
title?: string;
|
|
77
|
+
description: string;
|
|
78
|
+
severity?: 'low' | 'medium' | 'high' | 'critical';
|
|
79
|
+
location?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Environment variables information
|
|
83
|
+
*/
|
|
84
|
+
export interface EnvironmentTemplateData {
|
|
85
|
+
required?: string[];
|
|
86
|
+
optional?: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Coordination/footer information
|
|
90
|
+
*/
|
|
91
|
+
export interface CoordinationTemplateData {
|
|
92
|
+
footer?: string;
|
|
93
|
+
version?: string;
|
|
94
|
+
timestamp?: string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Complete template data model
|
|
98
|
+
*/
|
|
99
|
+
export interface TemplateData {
|
|
100
|
+
/** Project metadata */
|
|
101
|
+
project: ProjectTemplateData;
|
|
102
|
+
/** Architecture information */
|
|
103
|
+
architecture: ArchitectureTemplateData;
|
|
104
|
+
/** Key files */
|
|
105
|
+
key_files: KeyFilesTemplateData;
|
|
106
|
+
/** Development commands */
|
|
107
|
+
commands: CommandsTemplateData;
|
|
108
|
+
/** Workflows */
|
|
109
|
+
workflows: WorkflowTemplateData[];
|
|
110
|
+
/** Gotchas / critical gotchas */
|
|
111
|
+
gotchas?: GotchaTemplateData[];
|
|
112
|
+
/** Critical constraints */
|
|
113
|
+
critical_constraints?: string[];
|
|
114
|
+
/** Environment variables */
|
|
115
|
+
environment?: EnvironmentTemplateData;
|
|
116
|
+
/** Metadata */
|
|
117
|
+
metadata: {
|
|
118
|
+
generator_version: string;
|
|
119
|
+
timestamp: string;
|
|
120
|
+
header?: string;
|
|
121
|
+
};
|
|
122
|
+
/** Coordination/footer */
|
|
123
|
+
coordination?: CoordinationTemplateData;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Template rendering options
|
|
127
|
+
*/
|
|
128
|
+
export interface TemplateRenderOptions {
|
|
129
|
+
/** Template name (e.g., 'claude', 'copilot') */
|
|
130
|
+
template: string;
|
|
131
|
+
/** Whether to use partials */
|
|
132
|
+
usePartials?: boolean;
|
|
133
|
+
/** Custom data to merge */
|
|
134
|
+
customData?: Partial<TemplateData>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Template render result
|
|
138
|
+
*/
|
|
139
|
+
export interface TemplateRenderResult {
|
|
140
|
+
/** Rendered content */
|
|
141
|
+
content: string;
|
|
142
|
+
/** Template used */
|
|
143
|
+
template: string;
|
|
144
|
+
/** Bytes written */
|
|
145
|
+
bytes: number;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/template-engine/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,+BAA+B;IAC/B,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB;IAChB,SAAS,EAAE,oBAAoB,CAAC;IAChC,2BAA2B;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,gBAAgB;IAChB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,iCAAiC;IACjC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,2BAA2B;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,4BAA4B;IAC5B,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,eAAe;IACf,QAAQ,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,0BAA0B;IAC1B,YAAY,CAAC,EAAE,wBAAwB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/template-engine/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Comparator
|
|
3
|
+
*
|
|
4
|
+
* Compares template files with local files to detect changes.
|
|
5
|
+
* Determines file state: identical, safe-update, conflict, new, deleted, user-only.
|
|
6
|
+
*/
|
|
7
|
+
import type { DatabaseClient } from '../db/client.js';
|
|
8
|
+
import type { FileComparison, FileState, TemplateSubdir } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Comparison options
|
|
11
|
+
*/
|
|
12
|
+
export interface ComparisonOptions {
|
|
13
|
+
/** Subdirectories to compare (default: all) */
|
|
14
|
+
subdirectories?: TemplateSubdir[];
|
|
15
|
+
/** Whether to check user modifications from manifest */
|
|
16
|
+
checkUserModifications?: boolean;
|
|
17
|
+
/** Verbose output */
|
|
18
|
+
verbose?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Comparison result with metadata
|
|
22
|
+
*/
|
|
23
|
+
export interface ComparisonResult {
|
|
24
|
+
/** File comparisons */
|
|
25
|
+
comparisons: FileComparison[];
|
|
26
|
+
/** Count by state */
|
|
27
|
+
counts: Record<FileState, number>;
|
|
28
|
+
/** Total files compared */
|
|
29
|
+
total: number;
|
|
30
|
+
/** Duration in milliseconds */
|
|
31
|
+
durationMs: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Compares template versions to detect changes
|
|
35
|
+
*/
|
|
36
|
+
export declare class TemplateComparator {
|
|
37
|
+
private db;
|
|
38
|
+
private projectRoot;
|
|
39
|
+
private templateRoot;
|
|
40
|
+
private manifestManager;
|
|
41
|
+
private verbose;
|
|
42
|
+
constructor(db: DatabaseClient, projectRoot: string | undefined, templateRoot: string, verbose?: boolean);
|
|
43
|
+
/**
|
|
44
|
+
* Compare template files with local files
|
|
45
|
+
*
|
|
46
|
+
* @param options - Comparison options
|
|
47
|
+
* @returns Array of file comparisons
|
|
48
|
+
*/
|
|
49
|
+
compare(options?: ComparisonOptions): Promise<ComparisonResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Scan local files in .claude/
|
|
52
|
+
*
|
|
53
|
+
* @param localBasePath - Base path to .claude/
|
|
54
|
+
* @param subdirectories - Subdirectories to scan
|
|
55
|
+
* @returns Map of relative path to hash
|
|
56
|
+
*/
|
|
57
|
+
private scanLocalFiles;
|
|
58
|
+
/**
|
|
59
|
+
* Recursively scan local files within a subdirectory
|
|
60
|
+
*/
|
|
61
|
+
private scanLocalFilesRecursive;
|
|
62
|
+
/**
|
|
63
|
+
* Check if a file should be excluded from scanning
|
|
64
|
+
*/
|
|
65
|
+
private shouldExcludeFile;
|
|
66
|
+
/**
|
|
67
|
+
* Build comparison results
|
|
68
|
+
*
|
|
69
|
+
* @param templateFiles - Files from templates/base/.claude/
|
|
70
|
+
* @param localFiles - Files from local .claude/
|
|
71
|
+
* @param manifest - Template manifest
|
|
72
|
+
* @param templateBasePath - Template base path
|
|
73
|
+
* @param localBasePath - Local base path
|
|
74
|
+
* @returns Array of file comparisons
|
|
75
|
+
*/
|
|
76
|
+
private buildComparisons;
|
|
77
|
+
/**
|
|
78
|
+
* Compare a single file
|
|
79
|
+
*
|
|
80
|
+
* @param templateFile - Template file metadata
|
|
81
|
+
* @param localHash - Local file hash (if exists)
|
|
82
|
+
* @param localExists - Whether local file exists
|
|
83
|
+
* @param manifestEntry - Manifest entry (if any)
|
|
84
|
+
* @returns File comparison
|
|
85
|
+
*/
|
|
86
|
+
private compareFile;
|
|
87
|
+
/**
|
|
88
|
+
* Count comparisons by state
|
|
89
|
+
*
|
|
90
|
+
* @param comparisons - Array of comparisons
|
|
91
|
+
* @returns Record of state to count
|
|
92
|
+
*/
|
|
93
|
+
private countByState;
|
|
94
|
+
/**
|
|
95
|
+
* Filter comparisons by state
|
|
96
|
+
*
|
|
97
|
+
* @param comparisons - Array of comparisons
|
|
98
|
+
* @param states - States to include
|
|
99
|
+
* @returns Filtered comparisons
|
|
100
|
+
*/
|
|
101
|
+
static filterByState(comparisons: FileComparison[], states: FileState[]): FileComparison[];
|
|
102
|
+
/**
|
|
103
|
+
* Get comparisons needing action
|
|
104
|
+
*
|
|
105
|
+
* @param comparisons - Array of comparisons
|
|
106
|
+
* @returns Comparisons that need user action or update
|
|
107
|
+
*/
|
|
108
|
+
static getActionableComparisons(comparisons: FileComparison[]): FileComparison[];
|
|
109
|
+
/**
|
|
110
|
+
* Get comparisons with conflicts
|
|
111
|
+
*
|
|
112
|
+
* @param comparisons - Array of comparisons
|
|
113
|
+
* @returns Comparisons with conflicts
|
|
114
|
+
*/
|
|
115
|
+
static getConflicts(comparisons: FileComparison[]): FileComparison[];
|
|
116
|
+
/**
|
|
117
|
+
* Get safe updates
|
|
118
|
+
*
|
|
119
|
+
* @param comparisons - Array of comparisons
|
|
120
|
+
* @returns Comparisons that can be safely updated
|
|
121
|
+
*/
|
|
122
|
+
static getSafeUpdates(comparisons: FileComparison[]): FileComparison[];
|
|
123
|
+
/**
|
|
124
|
+
* Format comparison for display
|
|
125
|
+
*
|
|
126
|
+
* @param comparison - File comparison
|
|
127
|
+
* @returns Formatted string
|
|
128
|
+
*/
|
|
129
|
+
static formatComparison(comparison: FileComparison): string;
|
|
130
|
+
/**
|
|
131
|
+
* Generate summary text for comparison results
|
|
132
|
+
*
|
|
133
|
+
* @param result - Comparison result
|
|
134
|
+
* @returns Formatted summary
|
|
135
|
+
*/
|
|
136
|
+
static generateSummary(result: ComparisonResult): string;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=comparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparator.d.ts","sourceRoot":"","sources":["../../src/template-sync/comparator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAgB,cAAc,EAAqB,MAAM,YAAY,CAAC;AAE7G;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IANtB,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,OAAO,CAAkB;gBAGvB,EAAE,EAAE,cAAc,EAClB,WAAW,EAAE,MAAM,YAAgB,EACnC,YAAY,EAAE,MAAM,EAC5B,OAAO,GAAE,OAAe;IAM1B;;;;;OAKG;IACG,OAAO,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuCzE;;;;;;OAMG;YACW,cAAc;IAmE5B;;OAEG;YACW,uBAAuB;IA+BrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;;;OASG;YACW,gBAAgB;IA0C9B;;;;;;;;OAQG;YACW,WAAW;IAuDzB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAiBpB;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE;IAI1F;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAQhF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAIpE;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAItE;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAgB3D;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAczD"}
|