@mdfriday/foundry 25.7.1 → 25.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/README.md +4 -0
  2. package/dist/internal/application/incremental-build-coordinator.d.ts +69 -0
  3. package/dist/internal/application/incremental-build-coordinator.d.ts.map +1 -0
  4. package/dist/internal/application/incremental-build-coordinator.js +184 -0
  5. package/dist/internal/application/incremental-build-coordinator.js.map +1 -0
  6. package/dist/internal/application/incremental-ssg.d.ts +8 -0
  7. package/dist/internal/application/incremental-ssg.d.ts.map +1 -0
  8. package/dist/internal/application/incremental-ssg.js +23 -0
  9. package/dist/internal/application/incremental-ssg.js.map +1 -0
  10. package/dist/internal/application/ssg.d.ts +19 -1
  11. package/dist/internal/application/ssg.d.ts.map +1 -1
  12. package/dist/internal/application/ssg.js +28 -4
  13. package/dist/internal/application/ssg.js.map +1 -1
  14. package/dist/internal/application/test-incremental-ssg.d.ts +9 -0
  15. package/dist/internal/application/test-incremental-ssg.d.ts.map +1 -0
  16. package/dist/internal/application/test-incremental-ssg.js +80 -0
  17. package/dist/internal/application/test-incremental-ssg.js.map +1 -0
  18. package/dist/internal/application/test-ssg.d.ts.map +1 -1
  19. package/dist/internal/application/test-ssg.js +2 -2
  20. package/dist/internal/application/test-ssg.js.map +1 -1
  21. package/dist/internal/domain/content/entity/content.d.ts +6 -2
  22. package/dist/internal/domain/content/entity/content.d.ts.map +1 -1
  23. package/dist/internal/domain/content/entity/content.js +51 -16
  24. package/dist/internal/domain/content/entity/content.js.map +1 -1
  25. package/dist/internal/domain/content/entity/pagebuilder.d.ts.map +1 -1
  26. package/dist/internal/domain/content/entity/pagebuilder.js +5 -1
  27. package/dist/internal/domain/content/entity/pagebuilder.js.map +1 -1
  28. package/dist/internal/domain/content/entity/pagecollector.d.ts.map +1 -1
  29. package/dist/internal/domain/content/entity/pagecollector.js +10 -8
  30. package/dist/internal/domain/content/entity/pagecollector.js.map +1 -1
  31. package/dist/internal/domain/content/entity/pagesource.d.ts.map +1 -1
  32. package/dist/internal/domain/content/entity/pagesource.js +1 -2
  33. package/dist/internal/domain/content/entity/pagesource.js.map +1 -1
  34. package/dist/internal/domain/content/type.d.ts +3 -0
  35. package/dist/internal/domain/content/type.d.ts.map +1 -1
  36. package/dist/internal/domain/content/type.js.map +1 -1
  37. package/dist/internal/domain/content/vo/fileinfo.d.ts +1 -1
  38. package/dist/internal/domain/content/vo/fileinfo.d.ts.map +1 -1
  39. package/dist/internal/domain/content/vo/fileinfo.js +8 -3
  40. package/dist/internal/domain/content/vo/fileinfo.js.map +1 -1
  41. package/dist/internal/domain/content/vo/identity.d.ts +4 -0
  42. package/dist/internal/domain/content/vo/identity.d.ts.map +1 -1
  43. package/dist/internal/domain/content/vo/identity.js +17 -0
  44. package/dist/internal/domain/content/vo/identity.js.map +1 -1
  45. package/dist/internal/domain/fs/entity/basefs.d.ts.map +1 -1
  46. package/dist/internal/domain/fs/entity/basefs.js +21 -9
  47. package/dist/internal/domain/fs/entity/basefs.js.map +1 -1
  48. package/dist/internal/domain/fs/entity/fs.d.ts +1 -0
  49. package/dist/internal/domain/fs/entity/fs.d.ts.map +1 -1
  50. package/dist/internal/domain/fs/entity/fs.js +4 -0
  51. package/dist/internal/domain/fs/entity/fs.js.map +1 -1
  52. package/dist/internal/domain/fs/vo/file.d.ts +1 -0
  53. package/dist/internal/domain/fs/vo/file.d.ts.map +1 -1
  54. package/dist/internal/domain/fs/vo/file.js +6 -3
  55. package/dist/internal/domain/fs/vo/file.js.map +1 -1
  56. package/dist/internal/domain/fs/vo/fileinfo.d.ts.map +1 -1
  57. package/dist/internal/domain/fs/vo/fileinfo.js +1 -2
  58. package/dist/internal/domain/fs/vo/fileinfo.js.map +1 -1
  59. package/dist/internal/domain/fs/vo/filemeta.d.ts +0 -4
  60. package/dist/internal/domain/fs/vo/filemeta.d.ts.map +1 -1
  61. package/dist/internal/domain/fs/vo/filemeta.js +0 -9
  62. package/dist/internal/domain/fs/vo/filemeta.js.map +1 -1
  63. package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts +3 -0
  64. package/dist/internal/domain/fs/vo/incremental-file-collector.d.ts.map +1 -0
  65. package/dist/internal/domain/fs/vo/incremental-file-collector.js +37 -0
  66. package/dist/internal/domain/fs/vo/incremental-file-collector.js.map +1 -0
  67. package/dist/internal/domain/fs/vo/walkway.d.ts.map +1 -1
  68. package/dist/internal/domain/fs/vo/walkway.js +1 -4
  69. package/dist/internal/domain/fs/vo/walkway.js.map +1 -1
  70. package/dist/internal/domain/markdown/entity/markdown.d.ts.map +1 -1
  71. package/dist/internal/domain/markdown/entity/markdown.js +2 -0
  72. package/dist/internal/domain/markdown/entity/markdown.js.map +1 -1
  73. package/dist/internal/domain/markdown/type.d.ts +1 -0
  74. package/dist/internal/domain/markdown/type.d.ts.map +1 -1
  75. package/dist/internal/domain/markdown/type.js.map +1 -1
  76. package/dist/internal/domain/markdown/vo/shortcode.d.ts +1 -0
  77. package/dist/internal/domain/markdown/vo/shortcode.d.ts.map +1 -1
  78. package/dist/internal/domain/markdown/vo/shortcode.js +5 -2
  79. package/dist/internal/domain/markdown/vo/shortcode.js.map +1 -1
  80. package/dist/internal/domain/paths/type.d.ts +2 -0
  81. package/dist/internal/domain/paths/type.d.ts.map +1 -1
  82. package/dist/internal/domain/paths/type.js +14 -0
  83. package/dist/internal/domain/paths/type.js.map +1 -1
  84. package/dist/internal/domain/site/entity/page.d.ts +4 -2
  85. package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
  86. package/dist/internal/domain/site/entity/page.js +6 -0
  87. package/dist/internal/domain/site/entity/page.js.map +1 -1
  88. package/dist/internal/domain/site/entity/site.d.ts +2 -1
  89. package/dist/internal/domain/site/entity/site.d.ts.map +1 -1
  90. package/dist/internal/domain/site/entity/site.js +9 -1
  91. package/dist/internal/domain/site/entity/site.js.map +1 -1
  92. package/dist/internal/domain/template/entity/template.d.ts.map +1 -1
  93. package/dist/internal/domain/template/entity/template.js +7 -36
  94. package/dist/internal/domain/template/entity/template.js.map +1 -1
  95. package/dist/internal/domain/template/vo/info.d.ts +0 -13
  96. package/dist/internal/domain/template/vo/info.d.ts.map +1 -1
  97. package/dist/internal/domain/template/vo/info.js +0 -25
  98. package/dist/internal/domain/template/vo/info.js.map +1 -1
  99. package/dist/pkg/log/manager.js +1 -1
  100. package/dist/pkg/web/server/livereload-server.d.ts +23 -0
  101. package/dist/pkg/web/server/livereload-server.d.ts.map +1 -0
  102. package/dist/pkg/web/server/livereload-server.js +370 -0
  103. package/dist/pkg/web/server/livereload-server.js.map +1 -0
  104. package/dist/pkg/web/server/types.d.ts +25 -0
  105. package/dist/pkg/web/server/types.d.ts.map +1 -0
  106. package/dist/pkg/web/server/types.js +3 -0
  107. package/dist/pkg/web/server/types.js.map +1 -0
  108. package/dist/pkg/web/watcher/content-file-watcher.d.ts +20 -0
  109. package/dist/pkg/web/watcher/content-file-watcher.d.ts.map +1 -0
  110. package/dist/pkg/web/watcher/content-file-watcher.js +154 -0
  111. package/dist/pkg/web/watcher/content-file-watcher.js.map +1 -0
  112. package/dist/pkg/web/watcher/types.d.ts +18 -0
  113. package/dist/pkg/web/watcher/types.d.ts.map +1 -0
  114. package/dist/pkg/web/watcher/types.js +3 -0
  115. package/dist/pkg/web/watcher/types.js.map +1 -0
  116. package/package.json +7 -2
  117. package/dist/internal/domain/markdown/examples/obsidian-example.d.ts +0 -79
  118. package/dist/internal/domain/markdown/examples/obsidian-example.d.ts.map +0 -1
  119. package/dist/internal/domain/markdown/examples/obsidian-example.js +0 -302
  120. package/dist/internal/domain/markdown/examples/obsidian-example.js.map +0 -1
  121. package/dist/internal/domain/markdown/examples/shortcode.d.ts +0 -43
  122. package/dist/internal/domain/markdown/examples/shortcode.d.ts.map +0 -1
  123. package/dist/internal/domain/markdown/examples/shortcode.js +0 -99
  124. package/dist/internal/domain/markdown/examples/shortcode.js.map +0 -1
  125. package/dist/internal/domain/prompt/entity/collector.d.ts +0 -88
  126. package/dist/internal/domain/prompt/entity/collector.d.ts.map +0 -1
  127. package/dist/internal/domain/prompt/entity/collector.js +0 -254
  128. package/dist/internal/domain/prompt/entity/collector.js.map +0 -1
  129. package/dist/internal/domain/prompt/entity/finder.d.ts +0 -88
  130. package/dist/internal/domain/prompt/entity/finder.d.ts.map +0 -1
  131. package/dist/internal/domain/prompt/entity/finder.js +0 -293
  132. package/dist/internal/domain/prompt/entity/finder.js.map +0 -1
  133. package/dist/internal/domain/prompt/entity/hub.d.ts +0 -112
  134. package/dist/internal/domain/prompt/entity/hub.d.ts.map +0 -1
  135. package/dist/internal/domain/prompt/entity/hub.js +0 -259
  136. package/dist/internal/domain/prompt/entity/hub.js.map +0 -1
  137. package/dist/internal/domain/prompt/entity/prompt.d.ts +0 -133
  138. package/dist/internal/domain/prompt/entity/prompt.d.ts.map +0 -1
  139. package/dist/internal/domain/prompt/entity/prompt.js +0 -237
  140. package/dist/internal/domain/prompt/entity/prompt.js.map +0 -1
  141. package/dist/internal/domain/prompt/factory/prompt.d.ts +0 -55
  142. package/dist/internal/domain/prompt/factory/prompt.d.ts.map +0 -1
  143. package/dist/internal/domain/prompt/factory/prompt.js +0 -212
  144. package/dist/internal/domain/prompt/factory/prompt.js.map +0 -1
  145. package/dist/internal/domain/prompt/index.d.ts +0 -10
  146. package/dist/internal/domain/prompt/index.d.ts.map +0 -1
  147. package/dist/internal/domain/prompt/index.js +0 -72
  148. package/dist/internal/domain/prompt/index.js.map +0 -1
  149. package/dist/internal/domain/prompt/type.d.ts +0 -180
  150. package/dist/internal/domain/prompt/type.d.ts.map +0 -1
  151. package/dist/internal/domain/prompt/type.js +0 -23
  152. package/dist/internal/domain/prompt/type.js.map +0 -1
  153. package/dist/internal/domain/prompt/vo/file.d.ts +0 -103
  154. package/dist/internal/domain/prompt/vo/file.d.ts.map +0 -1
  155. package/dist/internal/domain/prompt/vo/file.js +0 -265
  156. package/dist/internal/domain/prompt/vo/file.js.map +0 -1
  157. package/dist/internal/domain/prompt/vo/rule.d.ts +0 -139
  158. package/dist/internal/domain/prompt/vo/rule.d.ts.map +0 -1
  159. package/dist/internal/domain/prompt/vo/rule.js +0 -268
  160. package/dist/internal/domain/prompt/vo/rule.js.map +0 -1
@@ -1,88 +0,0 @@
1
- import { PromptCollector, PromptFs, LevelLogger } from '../type';
2
- import { File } from '../vo/file';
3
- /**
4
- * Collector entity for collecting prompt files
5
- * TypeScript version of Go's Collector struct
6
- */
7
- export declare class Collector implements PromptCollector {
8
- private fs;
9
- private log;
10
- private files;
11
- constructor(fs: PromptFs, log: LevelLogger);
12
- /**
13
- * Collect files from filesystem
14
- */
15
- collect(): Promise<void>;
16
- /**
17
- * Collect files from a directory
18
- */
19
- private collectDir;
20
- /**
21
- * Handle a single file
22
- */
23
- handleFile(file: File): Promise<void>;
24
- /**
25
- * Get collected files
26
- */
27
- getFiles(): Map<string, File>;
28
- /**
29
- * Get files by pattern
30
- */
31
- getFilesByPattern(pattern: RegExp): Map<string, File>;
32
- /**
33
- * Get files by extension
34
- */
35
- getFilesByExtension(extension: string): Map<string, File>;
36
- /**
37
- * Clear collected files
38
- */
39
- clear(): void;
40
- /**
41
- * Get collection statistics
42
- */
43
- getStats(): {
44
- totalFiles: number;
45
- totalSize: number;
46
- fileTypes: Map<string, number>;
47
- largestFile: {
48
- name: string;
49
- size: number;
50
- } | null;
51
- };
52
- /**
53
- * Validate collected files
54
- */
55
- validateFiles(): Promise<{
56
- valid: number;
57
- invalid: number;
58
- errors: Array<{
59
- path: string;
60
- error: string;
61
- }>;
62
- }>;
63
- /**
64
- * Reload collection
65
- */
66
- reload(): Promise<void>;
67
- /**
68
- * Check if collection is empty
69
- */
70
- isEmpty(): boolean;
71
- /**
72
- * Get file count
73
- */
74
- size(): number;
75
- }
76
- /**
77
- * Create a new Collector instance
78
- */
79
- export declare function newCollector(fs: PromptFs, log: LevelLogger): Collector;
80
- /**
81
- * Create a mock Collector for testing
82
- */
83
- export declare function createMockCollector(files: Array<{
84
- name: string;
85
- content: string;
86
- modTime?: Date;
87
- }>, log?: LevelLogger): Collector;
88
- //# sourceMappingURL=collector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAuB,WAAW,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAW,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,qBAAa,SAAU,YAAW,eAAe;IAC/C,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,KAAK,CAA2B;gBAE5B,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW;IAK1C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B9B;;OAEG;YACW,UAAU;IAgCxB;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C;;OAEG;IACH,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAI7B;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAYrD;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;IAazD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KACpD;IAyBD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IAoBF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,MAAM;CAGf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,SAAS,CAEtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,EAC/D,GAAG,CAAC,EAAE,WAAW,GAChB,SAAS,CAkDX"}
@@ -1,254 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Collector = void 0;
4
- exports.newCollector = newCollector;
5
- exports.createMockCollector = createMockCollector;
6
- const type_1 = require("../type");
7
- const file_1 = require("../vo/file");
8
- /**
9
- * Collector entity for collecting prompt files
10
- * TypeScript version of Go's Collector struct
11
- */
12
- class Collector {
13
- constructor(fs, log) {
14
- this.files = new Map();
15
- this.fs = fs;
16
- this.log = log;
17
- }
18
- /**
19
- * Collect files from filesystem
20
- */
21
- async collect() {
22
- const startTime = Date.now();
23
- const processLog = this.log.withField('step', 'collect');
24
- try {
25
- const dirPath = "";
26
- const promptFileSystem = this.fs.promptFs();
27
- const root = await promptFileSystem.stat(dirPath);
28
- await this.collectDir(dirPath, root);
29
- const endTime = Date.now();
30
- processLog.info(`Collected ${this.files.size} prompts in ${endTime - startTime}ms`);
31
- }
32
- catch (error) {
33
- // Check if it's a "not exist" error - that's okay, like in Go version
34
- if (error.message?.includes('ENOENT') ||
35
- error.message?.includes('no such file') ||
36
- error.message?.includes('file not found')) {
37
- return; // Return silently like Go version
38
- }
39
- const message = error instanceof Error ? error.message : String(error);
40
- throw new type_1.PromptError(`Failed to collect prompts: ${message}`, 'COLLECTION_FAILED');
41
- }
42
- }
43
- /**
44
- * Collect files from a directory
45
- */
46
- async collectDir(path, root) {
47
- // Walk through the prompts directory
48
- await this.fs.walkPrompts(path, {
49
- walkFn: async (filePath, fi) => {
50
- // The walkFn is called for each file
51
- return;
52
- },
53
- hookPre: async (dir, dirPath, readdir) => {
54
- if (readdir.length === 0) {
55
- return [];
56
- }
57
- for (const fi of readdir) {
58
- if (fi.isDir()) {
59
- continue;
60
- }
61
- try {
62
- const file = (0, file_1.newFile)(fi);
63
- await this.handleFile(file);
64
- }
65
- catch (error) {
66
- const message = error instanceof Error ? error.message : String(error);
67
- this.log.warn(`Failed to handle file ${fi.name()}: ${message}`);
68
- }
69
- }
70
- // Continue walking (keep walking like Go version)
71
- return readdir;
72
- }
73
- }, { info: root }); // Pass root info like Go version
74
- }
75
- /**
76
- * Handle a single file
77
- */
78
- async handleFile(file) {
79
- if (file.isDir()) {
80
- return;
81
- }
82
- try {
83
- const name = file.relativeFilename();
84
- const cleanName = name.startsWith('/') ? name.substring(1) : name;
85
- // Only collect prompt files (based on extension)
86
- if (file.isPromptFile()) {
87
- this.files.set(cleanName, file);
88
- }
89
- }
90
- catch (error) {
91
- const message = error instanceof Error ? error.message : String(error);
92
- throw new type_1.PromptError(`Failed to handle file: ${message}`, 'FILE_HANDLE_FAILED');
93
- }
94
- }
95
- /**
96
- * Get collected files
97
- */
98
- getFiles() {
99
- return new Map(this.files);
100
- }
101
- /**
102
- * Get files by pattern
103
- */
104
- getFilesByPattern(pattern) {
105
- const filtered = new Map();
106
- for (const [path, file] of this.files) {
107
- if (pattern.test(path) || pattern.test(file.name())) {
108
- filtered.set(path, file);
109
- }
110
- }
111
- return filtered;
112
- }
113
- /**
114
- * Get files by extension
115
- */
116
- getFilesByExtension(extension) {
117
- const filtered = new Map();
118
- const normalizedExt = extension.startsWith('.') ? extension : `.${extension}`;
119
- for (const [path, file] of this.files) {
120
- if (file.getExtension().toLowerCase() === normalizedExt.toLowerCase()) {
121
- filtered.set(path, file);
122
- }
123
- }
124
- return filtered;
125
- }
126
- /**
127
- * Clear collected files
128
- */
129
- clear() {
130
- this.files.clear();
131
- }
132
- /**
133
- * Get collection statistics
134
- */
135
- getStats() {
136
- let totalSize = 0;
137
- let largestFile = null;
138
- const fileTypes = new Map();
139
- for (const [path, file] of this.files) {
140
- const size = file.size();
141
- totalSize += size;
142
- if (!largestFile || size > largestFile.size) {
143
- largestFile = { name: path, size };
144
- }
145
- const ext = file.getExtension().toLowerCase() || '.no-extension';
146
- fileTypes.set(ext, (fileTypes.get(ext) || 0) + 1);
147
- }
148
- return {
149
- totalFiles: this.files.size,
150
- totalSize,
151
- fileTypes,
152
- largestFile,
153
- };
154
- }
155
- /**
156
- * Validate collected files
157
- */
158
- async validateFiles() {
159
- let valid = 0;
160
- let invalid = 0;
161
- const errors = [];
162
- for (const [path, file] of this.files) {
163
- try {
164
- // Try to read content to validate file
165
- await file.content();
166
- valid++;
167
- }
168
- catch (error) {
169
- invalid++;
170
- const message = error instanceof Error ? error.message : String(error);
171
- errors.push({ path, error: message });
172
- }
173
- }
174
- return { valid, invalid, errors };
175
- }
176
- /**
177
- * Reload collection
178
- */
179
- async reload() {
180
- this.clear();
181
- await this.collect();
182
- }
183
- /**
184
- * Check if collection is empty
185
- */
186
- isEmpty() {
187
- return this.files.size === 0;
188
- }
189
- /**
190
- * Get file count
191
- */
192
- size() {
193
- return this.files.size;
194
- }
195
- }
196
- exports.Collector = Collector;
197
- /**
198
- * Create a new Collector instance
199
- */
200
- function newCollector(fs, log) {
201
- return new Collector(fs, log);
202
- }
203
- /**
204
- * Create a mock Collector for testing
205
- */
206
- function createMockCollector(files, log) {
207
- // Create a mock file system
208
- const mockFs = {
209
- promptFs: () => ({}),
210
- walkPrompts: async (start, cb, conf) => {
211
- const mockFiles = files.map(f => {
212
- const mockFileInfo = {
213
- name: () => f.name,
214
- size: () => f.content.length,
215
- mode: () => 0o644,
216
- modTime: () => f.modTime || new Date(),
217
- isDir: () => false,
218
- sys: () => null,
219
- open: async () => ({
220
- close: async () => { },
221
- stat: async () => ({
222
- name: () => f.name,
223
- size: () => f.content.length,
224
- mode: () => 0o644,
225
- modTime: () => f.modTime || new Date(),
226
- isDir: () => false,
227
- sys: () => null,
228
- }),
229
- read: async (buffer) => {
230
- const encoder = new TextEncoder();
231
- const encoded = encoder.encode(f.content);
232
- const bytesToCopy = Math.min(buffer.length, encoded.length);
233
- buffer.set(encoded.slice(0, bytesToCopy));
234
- return { bytesRead: bytesToCopy, buffer };
235
- },
236
- }),
237
- };
238
- return mockFileInfo;
239
- });
240
- if (cb.hookPre) {
241
- await cb.hookPre({}, start, mockFiles);
242
- }
243
- }
244
- };
245
- const mockLog = log || {
246
- withField: (key, value) => mockLog,
247
- info: (message) => { },
248
- debug: (message) => { },
249
- warn: (message) => { },
250
- error: (message) => { },
251
- };
252
- return new Collector(mockFs, mockLog);
253
- }
254
- //# sourceMappingURL=collector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/collector.ts"],"names":[],"mappings":";;;AA2OA,oCAEC;AAKD,kDAqDC;AAvSD,kCAAsF;AACtF,qCAA2C;AAG3C;;;GAGG;AACH,MAAa,SAAS;IAKpB,YAAY,EAAY,EAAE,GAAgB;QAFlC,UAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;QAGtC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAE5C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAErC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,eAAe,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,sEAAsE;YACtE,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBACjC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACvC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,kCAAkC;YAC5C,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,kBAAW,CAAC,8BAA8B,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,IAAkB;QACvD,qCAAqC;QACrC,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE;YAC9B,MAAM,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAgB,EAAE,EAAE;gBACnD,qCAAqC;gBACrC,OAAO;YACT,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,GAAiB,EAAE,OAAe,EAAE,OAAuB,EAAE,EAAE;gBAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;oBACzB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,EAAE,CAAC,CAAC;wBACzB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;gBAED,kDAAkD;gBAClD,OAAO,OAAO,CAAC;YACjB,CAAC;SACF,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,iCAAiC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAU;QACzB,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAElE,iDAAiD;YACjD,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,kBAAW,CAAC,0BAA0B,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe;QAC/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;QAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACpD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAiB;QACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;QAE9E,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QAMN,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAA0C,IAAI,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,SAAS,IAAI,IAAI,CAAC;YAElB,IAAI,CAAC,WAAW,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC5C,WAAW,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrC,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC;YACjE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC3B,SAAS;YACT,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QAKjB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,MAAM,GAA2C,EAAE,CAAC;QAE1D,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,uCAAuC;gBACvC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAC;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AA9ND,8BA8NC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,EAAY,EAAE,GAAgB;IACzD,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,KAA+D,EAC/D,GAAiB;IAEjB,4BAA4B;IAC5B,MAAM,MAAM,GAAa;QACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;QACpB,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9B,MAAM,YAAY,GAAG;oBACnB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;oBAClB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;oBAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;oBACjB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE;oBACtC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;oBAClB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;oBACf,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;wBACjB,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;wBACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;4BACjB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI;4BAClB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;4BAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK;4BACjB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE;4BACtC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;4BAClB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;yBAChB,CAAC;wBACF,IAAI,EAAE,KAAK,EAAE,MAAkB,EAAE,EAAE;4BACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;4BAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4BAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;4BAC5D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;4BAC1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;wBAC5C,CAAC;qBACF,CAAC;iBACI,CAAC;gBACT,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,OAAO,CAAC,EAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,OAAO,GAAgB,GAAG,IAAI;QAClC,SAAS,EAAE,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE,CAAC,OAAsB;QAC9D,IAAI,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE,GAAE,CAAC;KAChC,CAAC;IAEF,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -1,88 +0,0 @@
1
- import { PromptFinder, PromptInfo } from '../type';
2
- import { File } from '../vo/file';
3
- /**
4
- * Finder entity for finding and retrieving prompts
5
- * TypeScript version of Go's Finder struct
6
- */
7
- export declare class Finder implements PromptFinder {
8
- private files;
9
- private contentCache;
10
- /**
11
- * Set files map
12
- */
13
- setFiles(files: Map<string, File>): void;
14
- /**
15
- * 预加载所有文件内容到内存缓存(新增方法)
16
- */
17
- preloadAllContent(): Promise<void>;
18
- /**
19
- * 同步获取内容(新增方法)- 依赖预加载
20
- */
21
- getContentSync(name: string): string;
22
- /**
23
- * Get prompt raw content by name
24
- */
25
- promptRawContent(name: string): Promise<string>;
26
- /**
27
- * Check if prompt exists
28
- */
29
- hasPrompt(name: string): boolean;
30
- /**
31
- * Get all prompts
32
- */
33
- getAllPrompts(): PromptInfo[];
34
- /**
35
- * Search prompts by pattern
36
- */
37
- searchPrompts(pattern: RegExp): PromptInfo[];
38
- /**
39
- * Get prompt content with caching
40
- */
41
- getPromptContent(name: string): Promise<{
42
- content: string;
43
- metadata: PromptInfo;
44
- }>;
45
- /**
46
- * Get all prompt names
47
- */
48
- getPromptNames(): string[];
49
- /**
50
- * Get prompts by extension
51
- */
52
- getPromptsByExtension(extension: string): PromptInfo[];
53
- /**
54
- * Get prompts modified after date
55
- */
56
- getPromptsModifiedAfter(date: Date): PromptInfo[];
57
- /**
58
- * Get largest prompts
59
- */
60
- getLargestPrompts(limit?: number): PromptInfo[];
61
- /**
62
- * Get finder statistics
63
- */
64
- getStats(): {
65
- totalPrompts: number;
66
- totalSize: number;
67
- averageSize: number;
68
- fileTypes: Map<string, number>;
69
- lastModified: Date | null;
70
- };
71
- /**
72
- * Clear all files
73
- */
74
- clear(): void;
75
- /**
76
- * Get files count
77
- */
78
- size(): number;
79
- /**
80
- * Check if finder is empty
81
- */
82
- isEmpty(): boolean;
83
- }
84
- /**
85
- * Create a new Finder instance
86
- */
87
- export declare function newFinder(): Finder;
88
- //# sourceMappingURL=finder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finder.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/prompt/entity/finder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC;;;GAGG;AACH,qBAAa,MAAO,YAAW,YAAY;IACzC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAIxC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAwCpC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBrD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAwChC;;OAEG;IACH,aAAa,IAAI,UAAU,EAAE;IAgB7B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAkB5C;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,UAAU,CAAC;KACtB,CAAC;IA0BF;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAmBtD;;OAEG;IACH,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAkBjD;;OAEG;IACH,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,UAAU,EAAE;IAOnD;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;KAC3B;IAyBD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}