@creatoria/miniapp-mcp 0.1.3 → 0.2.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.
Files changed (246) hide show
  1. package/README.md +14 -3
  2. package/dist/app/cli/index.d.ts +6 -0
  3. package/dist/app/cli/index.d.ts.map +1 -0
  4. package/dist/app/cli/index.js +6 -0
  5. package/dist/app/cli/index.js.map +1 -0
  6. package/dist/app/index.d.ts +6 -0
  7. package/dist/app/index.d.ts.map +1 -0
  8. package/dist/app/index.js +6 -0
  9. package/dist/app/index.js.map +1 -0
  10. package/dist/app/server/index.d.ts +7 -0
  11. package/dist/app/server/index.d.ts.map +1 -0
  12. package/dist/app/server/index.js +6 -0
  13. package/dist/app/server/index.js.map +1 -0
  14. package/dist/capabilities/assert/index.d.ts +5 -0
  15. package/dist/capabilities/assert/index.d.ts.map +1 -0
  16. package/dist/capabilities/assert/index.js +5 -0
  17. package/dist/capabilities/assert/index.js.map +1 -0
  18. package/dist/capabilities/automator/index.d.ts +6 -0
  19. package/dist/capabilities/automator/index.d.ts.map +1 -0
  20. package/dist/capabilities/automator/index.js +6 -0
  21. package/dist/capabilities/automator/index.js.map +1 -0
  22. package/dist/capabilities/automator/schemas/close.d.ts +5 -0
  23. package/dist/capabilities/automator/schemas/close.d.ts.map +1 -0
  24. package/dist/capabilities/automator/schemas/close.js +11 -0
  25. package/dist/capabilities/automator/schemas/close.js.map +1 -0
  26. package/dist/capabilities/automator/schemas/connect.d.ts +11 -0
  27. package/dist/capabilities/automator/schemas/connect.d.ts.map +1 -0
  28. package/dist/capabilities/automator/schemas/connect.js +19 -0
  29. package/dist/capabilities/automator/schemas/connect.js.map +1 -0
  30. package/dist/capabilities/automator/schemas/disconnect.d.ts +5 -0
  31. package/dist/capabilities/automator/schemas/disconnect.d.ts.map +1 -0
  32. package/dist/capabilities/automator/schemas/disconnect.js +11 -0
  33. package/dist/capabilities/automator/schemas/disconnect.js.map +1 -0
  34. package/dist/capabilities/automator/schemas/index.d.ts +4 -0
  35. package/dist/capabilities/automator/schemas/index.d.ts.map +1 -0
  36. package/dist/capabilities/automator/schemas/index.js +12 -0
  37. package/dist/capabilities/automator/schemas/index.js.map +1 -0
  38. package/dist/capabilities/automator/schemas/launch.d.ts +17 -0
  39. package/dist/capabilities/automator/schemas/launch.d.ts.map +1 -0
  40. package/dist/capabilities/automator/schemas/launch.js +26 -0
  41. package/dist/capabilities/automator/schemas/launch.js.map +1 -0
  42. package/dist/capabilities/element/index.d.ts +5 -0
  43. package/dist/capabilities/element/index.d.ts.map +1 -0
  44. package/dist/capabilities/element/index.js +5 -0
  45. package/dist/capabilities/element/index.js.map +1 -0
  46. package/dist/capabilities/index.d.ts +15 -0
  47. package/dist/capabilities/index.d.ts.map +1 -0
  48. package/dist/capabilities/index.js +14 -0
  49. package/dist/capabilities/index.js.map +1 -0
  50. package/dist/capabilities/miniprogram/index.d.ts +5 -0
  51. package/dist/capabilities/miniprogram/index.d.ts.map +1 -0
  52. package/dist/capabilities/miniprogram/index.js +5 -0
  53. package/dist/capabilities/miniprogram/index.js.map +1 -0
  54. package/dist/capabilities/network/index.d.ts +5 -0
  55. package/dist/capabilities/network/index.d.ts.map +1 -0
  56. package/dist/capabilities/network/index.js +5 -0
  57. package/dist/capabilities/network/index.js.map +1 -0
  58. package/dist/capabilities/page/index.d.ts +5 -0
  59. package/dist/capabilities/page/index.d.ts.map +1 -0
  60. package/dist/capabilities/page/index.js +5 -0
  61. package/dist/capabilities/page/index.js.map +1 -0
  62. package/dist/capabilities/record/index.d.ts +5 -0
  63. package/dist/capabilities/record/index.d.ts.map +1 -0
  64. package/dist/capabilities/record/index.js +5 -0
  65. package/dist/capabilities/record/index.js.map +1 -0
  66. package/dist/capabilities/schema-registry.d.ts +4 -0
  67. package/dist/capabilities/schema-registry.d.ts.map +1 -0
  68. package/dist/capabilities/schema-registry.js +18 -0
  69. package/dist/capabilities/schema-registry.js.map +1 -0
  70. package/dist/capabilities/schema-types.d.ts +22 -0
  71. package/dist/capabilities/schema-types.d.ts.map +1 -0
  72. package/dist/capabilities/schema-types.js +2 -0
  73. package/dist/capabilities/schema-types.js.map +1 -0
  74. package/dist/capabilities/snapshot/index.d.ts +5 -0
  75. package/dist/capabilities/snapshot/index.d.ts.map +1 -0
  76. package/dist/capabilities/snapshot/index.js +5 -0
  77. package/dist/capabilities/snapshot/index.js.map +1 -0
  78. package/dist/config/loader.js +1 -1
  79. package/dist/config/loader.js.map +1 -1
  80. package/dist/core/element-ref.d.ts +1 -43
  81. package/dist/core/element-ref.d.ts.map +1 -1
  82. package/dist/core/element-ref.js +1 -212
  83. package/dist/core/element-ref.js.map +1 -1
  84. package/dist/core/logger.d.ts +1 -54
  85. package/dist/core/logger.d.ts.map +1 -1
  86. package/dist/core/logger.js +1 -377
  87. package/dist/core/logger.js.map +1 -1
  88. package/dist/core/output.d.ts +1 -20
  89. package/dist/core/output.d.ts.map +1 -1
  90. package/dist/core/output.js +1 -55
  91. package/dist/core/output.js.map +1 -1
  92. package/dist/core/report-generator.d.ts +1 -23
  93. package/dist/core/report-generator.d.ts.map +1 -1
  94. package/dist/core/report-generator.js +1 -211
  95. package/dist/core/report-generator.js.map +1 -1
  96. package/dist/core/session.d.ts +2 -82
  97. package/dist/core/session.d.ts.map +1 -1
  98. package/dist/core/session.js +2 -305
  99. package/dist/core/session.js.map +1 -1
  100. package/dist/core/timeout.d.ts +1 -48
  101. package/dist/core/timeout.d.ts.map +1 -1
  102. package/dist/core/timeout.js +1 -66
  103. package/dist/core/timeout.js.map +1 -1
  104. package/dist/core/tool-logger.d.ts +1 -82
  105. package/dist/core/tool-logger.d.ts.map +1 -1
  106. package/dist/core/tool-logger.js +1 -452
  107. package/dist/core/tool-logger.js.map +1 -1
  108. package/dist/core/validation.d.ts +1 -38
  109. package/dist/core/validation.d.ts.map +1 -1
  110. package/dist/core/validation.js +1 -92
  111. package/dist/core/validation.js.map +1 -1
  112. package/dist/runtime/element/element-ref.d.ts +44 -0
  113. package/dist/runtime/element/element-ref.d.ts.map +1 -0
  114. package/dist/runtime/element/element-ref.js +214 -0
  115. package/dist/runtime/element/element-ref.js.map +1 -0
  116. package/dist/runtime/element/index.d.ts +2 -0
  117. package/dist/runtime/element/index.d.ts.map +1 -0
  118. package/dist/runtime/element/index.js +2 -0
  119. package/dist/runtime/element/index.js.map +1 -0
  120. package/dist/runtime/index.d.ts +10 -0
  121. package/dist/runtime/index.d.ts.map +1 -0
  122. package/dist/runtime/index.js +10 -0
  123. package/dist/runtime/index.js.map +1 -0
  124. package/dist/runtime/logging/index.d.ts +3 -0
  125. package/dist/runtime/logging/index.d.ts.map +1 -0
  126. package/dist/runtime/logging/index.js +3 -0
  127. package/dist/runtime/logging/index.js.map +1 -0
  128. package/dist/runtime/logging/logger.d.ts +55 -0
  129. package/dist/runtime/logging/logger.d.ts.map +1 -0
  130. package/dist/runtime/logging/logger.js +379 -0
  131. package/dist/runtime/logging/logger.js.map +1 -0
  132. package/dist/runtime/logging/tool-logger.d.ts +83 -0
  133. package/dist/runtime/logging/tool-logger.d.ts.map +1 -0
  134. package/dist/runtime/logging/tool-logger.js +454 -0
  135. package/dist/runtime/logging/tool-logger.js.map +1 -0
  136. package/dist/runtime/outputs/index.d.ts +3 -0
  137. package/dist/runtime/outputs/index.d.ts.map +1 -0
  138. package/dist/runtime/outputs/index.js +3 -0
  139. package/dist/runtime/outputs/index.js.map +1 -0
  140. package/dist/runtime/outputs/output-manager.d.ts +12 -0
  141. package/dist/runtime/outputs/output-manager.d.ts.map +1 -0
  142. package/dist/runtime/outputs/output-manager.js +39 -0
  143. package/dist/runtime/outputs/output-manager.js.map +1 -0
  144. package/dist/runtime/outputs/report-generator.d.ts +5 -0
  145. package/dist/runtime/outputs/report-generator.d.ts.map +1 -0
  146. package/dist/runtime/outputs/report-generator.js +175 -0
  147. package/dist/runtime/outputs/report-generator.js.map +1 -0
  148. package/dist/runtime/session/index.d.ts +3 -0
  149. package/dist/runtime/session/index.d.ts.map +1 -0
  150. package/dist/runtime/session/index.js +3 -0
  151. package/dist/runtime/session/index.js.map +1 -0
  152. package/dist/runtime/session/store.d.ts +28 -0
  153. package/dist/runtime/session/store.d.ts.map +1 -0
  154. package/dist/runtime/session/store.js +154 -0
  155. package/dist/runtime/session/store.js.map +1 -0
  156. package/dist/runtime/session/utils/cleanup.d.ts +3 -0
  157. package/dist/runtime/session/utils/cleanup.d.ts.map +1 -0
  158. package/dist/runtime/session/utils/cleanup.js +78 -0
  159. package/dist/runtime/session/utils/cleanup.js.map +1 -0
  160. package/dist/runtime/timeout/index.d.ts +2 -0
  161. package/dist/runtime/timeout/index.d.ts.map +1 -0
  162. package/dist/runtime/timeout/index.js +2 -0
  163. package/dist/runtime/timeout/index.js.map +1 -0
  164. package/dist/runtime/timeout/timeout.d.ts +49 -0
  165. package/dist/runtime/timeout/timeout.d.ts.map +1 -0
  166. package/dist/runtime/timeout/timeout.js +67 -0
  167. package/dist/runtime/timeout/timeout.js.map +1 -0
  168. package/dist/runtime/validation/index.d.ts +2 -0
  169. package/dist/runtime/validation/index.d.ts.map +1 -0
  170. package/dist/runtime/validation/index.js +2 -0
  171. package/dist/runtime/validation/index.js.map +1 -0
  172. package/dist/runtime/validation/validation.d.ts +39 -0
  173. package/dist/runtime/validation/validation.d.ts.map +1 -0
  174. package/dist/runtime/validation/validation.js +93 -0
  175. package/dist/runtime/validation/validation.js.map +1 -0
  176. package/dist/schemas/automator/miniprogram_close.json +12 -0
  177. package/dist/schemas/automator/miniprogram_connect.json +19 -0
  178. package/dist/schemas/automator/miniprogram_disconnect.json +12 -0
  179. package/dist/schemas/automator/miniprogram_launch.json +30 -0
  180. package/dist/server.js +1 -1
  181. package/dist/server.js.map +1 -1
  182. package/dist/tools/index.js +1 -1
  183. package/dist/tools/index.js.map +1 -1
  184. package/dist/tools/miniprogram.d.ts +0 -1
  185. package/dist/tools/miniprogram.d.ts.map +1 -1
  186. package/dist/tools/miniprogram.js +17 -29
  187. package/dist/tools/miniprogram.js.map +1 -1
  188. package/dist/tools/page.js +2 -2
  189. package/dist/tools/page.js.map +1 -1
  190. package/docs/directory-structure-and-code-style-best-practices.md +91 -0
  191. package/docs/migration/README.md +34 -0
  192. package/docs/migration/TC-ALIGN-01-notes.md +35 -0
  193. package/docs/migration/runtime-skeleton.md +50 -0
  194. package/docs/migration/tool-schema-strategy.md +75 -0
  195. package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +14 -14
  196. package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +7 -7
  197. package/package.json +4 -2
  198. package/docs/SIMPLE_USAGE.md +0 -210
  199. package/docs/architecture.E-Docs.md +0 -1359
  200. package/docs/architecture.F1.md +0 -720
  201. package/docs/architecture.F2.md +0 -871
  202. package/docs/architecture.F3.md +0 -905
  203. package/docs/architecture.md +0 -90
  204. package/docs/charter.A1.align.yaml +0 -170
  205. package/docs/charter.A2.align.yaml +0 -199
  206. package/docs/charter.A3.align.yaml +0 -242
  207. package/docs/charter.A4.align.yaml +0 -227
  208. package/docs/charter.B1.align.yaml +0 -179
  209. package/docs/charter.B2.align.yaml +0 -200
  210. package/docs/charter.B3.align.yaml +0 -200
  211. package/docs/charter.B4.align.yaml +0 -188
  212. package/docs/charter.C1.align.yaml +0 -190
  213. package/docs/charter.C2.align.yaml +0 -202
  214. package/docs/charter.C3.align.yaml +0 -211
  215. package/docs/charter.C4.align.yaml +0 -263
  216. package/docs/charter.C5.align.yaml +0 -220
  217. package/docs/charter.D1.align.yaml +0 -190
  218. package/docs/charter.D2.align.yaml +0 -234
  219. package/docs/charter.D3.align.yaml +0 -206
  220. package/docs/charter.E-Docs.align.yaml +0 -294
  221. package/docs/charter.F1.align.yaml +0 -193
  222. package/docs/charter.F2.align.yaml +0 -248
  223. package/docs/charter.F3.align.yaml +0 -287
  224. package/docs/charter.G.align.yaml +0 -174
  225. package/docs/charter.align.yaml +0 -111
  226. package/docs/maintenance.md +0 -682
  227. package/docs/playwright-mcp/350/260/203/347/240/224.md +0 -53
  228. package/docs/setup-guide.md +0 -775
  229. package/docs/tasks.A1.atomize.md +0 -296
  230. package/docs/tasks.A2.atomize.md +0 -408
  231. package/docs/tasks.A3.atomize.md +0 -564
  232. package/docs/tasks.A4.atomize.md +0 -496
  233. package/docs/tasks.B1.atomize.md +0 -352
  234. package/docs/tasks.B2.atomize.md +0 -561
  235. package/docs/tasks.B3.atomize.md +0 -508
  236. package/docs/tasks.B4.atomize.md +0 -504
  237. package/docs/tasks.C1.atomize.md +0 -540
  238. package/docs/tasks.C2.atomize.md +0 -665
  239. package/docs/tasks.C3.atomize.md +0 -745
  240. package/docs/tasks.C4.atomize.md +0 -908
  241. package/docs/tasks.C5.atomize.md +0 -755
  242. package/docs/tasks.D1.atomize.md +0 -547
  243. package/docs/tasks.D2.atomize.md +0 -619
  244. package/docs/tasks.D3.atomize.md +0 -790
  245. package/docs/tasks.E-Docs.atomize.md +0 -1204
  246. package/docs/tasks.atomize.md +0 -189
@@ -1,378 +1,2 @@
1
- /**
2
- * Logger implementation for structured logging with file support
3
- */
4
- import { open, mkdir, rename } from 'fs/promises';
5
- import { statfs } from 'fs/promises'; // Issue #6: Disk space check (Node 18+)
6
- import { join } from 'path';
7
- /**
8
- * Default logger configuration
9
- */
10
- const DEFAULT_LOGGER_CONFIG = {
11
- level: 'info',
12
- enableFileLog: false,
13
- outputDir: '.mcp-artifacts',
14
- bufferSize: 100,
15
- flushInterval: 5000,
16
- enableFailureSnapshot: false,
17
- };
18
- /**
19
- * Log level priorities for filtering
20
- */
21
- const LOG_LEVELS = {
22
- debug: 0,
23
- info: 1,
24
- warn: 2,
25
- error: 3,
26
- };
27
- /**
28
- * Internal file writer with buffering for async log writing
29
- */
30
- class FileWriter {
31
- sessionId;
32
- outputDir;
33
- bufferSize;
34
- flushInterval;
35
- buffer = [];
36
- flushTimer;
37
- fileHandle;
38
- disposed = false;
39
- filePath;
40
- flushInProgress = false; // Issue #2: Prevent concurrent flushes
41
- failureCount = 0; // Issue #1: Circuit breaker for persistent failures
42
- MAX_FAILURES = 3; // Disable after 3 consecutive failures
43
- constructor(sessionId, outputDir, bufferSize, flushInterval) {
44
- this.sessionId = sessionId;
45
- this.outputDir = outputDir;
46
- this.bufferSize = bufferSize;
47
- this.flushInterval = flushInterval;
48
- this.startFlushTimer();
49
- }
50
- /**
51
- * Add log entry to buffer (non-blocking)
52
- */
53
- write(entry) {
54
- if (this.disposed)
55
- return;
56
- this.buffer.push(entry);
57
- // Trigger flush if buffer is full
58
- if (this.buffer.length >= this.bufferSize) {
59
- // Fire-and-forget flush (non-blocking)
60
- void this.flush().catch((err) => {
61
- console.error('Failed to flush log buffer:', err);
62
- });
63
- }
64
- }
65
- /**
66
- * Flush buffer to file
67
- */
68
- async flush() {
69
- // Issue #2: Prevent concurrent flushes
70
- if (this.buffer.length === 0 || this.disposed || this.flushInProgress)
71
- return;
72
- this.flushInProgress = true;
73
- try {
74
- // Extract buffer entries
75
- const entries = this.buffer.splice(0, this.buffer.length);
76
- const lines = entries
77
- .map((e) => {
78
- try {
79
- // Issue #13: Handle circular references
80
- return JSON.stringify(e);
81
- }
82
- catch (error) {
83
- return JSON.stringify({
84
- ...e,
85
- context: '<Serialization failed: circular reference>',
86
- _serializationError: error instanceof Error ? error.message : String(error),
87
- });
88
- }
89
- })
90
- .join('\n') + '\n';
91
- try {
92
- // Ensure file handle is open
93
- if (!this.fileHandle) {
94
- await this.ensureLogDirectory();
95
- this.filePath = join(this.outputDir, 'logs', `session-${this.sessionId}.log`);
96
- this.fileHandle = await open(this.filePath, 'a');
97
- }
98
- // Issue #6: Check disk space before writing
99
- await this.checkDiskSpace();
100
- if (this.disposed)
101
- return; // Disk space check may have disabled logging
102
- // Issue #8: Rotate file if too large
103
- await this.rotateIfNeeded();
104
- // Write to file
105
- await this.fileHandle.write(lines);
106
- // Issue #1: Reset failure count on success
107
- this.failureCount = 0;
108
- }
109
- catch (error) {
110
- const err = error instanceof Error ? error.message : String(error);
111
- // Handle disk full error
112
- if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOSPC') {
113
- console.error('Disk full, disabling file logging');
114
- // Issue #4: Close file handle before disposing to prevent leak
115
- if (this.fileHandle) {
116
- await this.fileHandle.close().catch(() => { });
117
- this.fileHandle = undefined;
118
- }
119
- this.disposed = true;
120
- return;
121
- }
122
- console.error('Failed to write logs to file:', err);
123
- // Issue #1: Circuit breaker - disable after too many failures
124
- this.failureCount++;
125
- if (this.failureCount >= this.MAX_FAILURES) {
126
- console.error(`Too many flush failures (${this.failureCount}), disabling file logging`);
127
- // Issue #4: Close file handle before disposing
128
- if (this.fileHandle) {
129
- await this.fileHandle.close().catch(() => { });
130
- this.fileHandle = undefined;
131
- }
132
- this.disposed = true;
133
- return;
134
- }
135
- // Issue #1: Smart retry with buffer size limit
136
- // Only keep the most recent entries to prevent unbounded growth
137
- const entriesToKeep = Math.min(entries.length, this.bufferSize - this.buffer.length);
138
- if (entriesToKeep > 0) {
139
- // Keep newest entries, drop oldest
140
- this.buffer.unshift(...entries.slice(-entriesToKeep));
141
- if (entriesToKeep < entries.length) {
142
- console.warn(`Dropped ${entries.length - entriesToKeep} old log entries due to buffer limit`);
143
- }
144
- }
145
- else {
146
- console.warn(`Buffer full, dropped ${entries.length} failed log entries`);
147
- }
148
- }
149
- }
150
- finally {
151
- this.flushInProgress = false;
152
- }
153
- }
154
- /**
155
- * Dispose writer and flush remaining buffer
156
- */
157
- async dispose() {
158
- this.disposed = true;
159
- if (this.flushTimer) {
160
- clearInterval(this.flushTimer);
161
- }
162
- await this.flush();
163
- if (this.fileHandle) {
164
- await this.fileHandle.close();
165
- this.fileHandle = undefined;
166
- }
167
- }
168
- /**
169
- * Start periodic flush timer
170
- */
171
- startFlushTimer() {
172
- this.flushTimer = setInterval(() => {
173
- void this.flush().catch((err) => {
174
- console.error('Scheduled flush failed:', err);
175
- });
176
- }, this.flushInterval);
177
- }
178
- /**
179
- * Ensure log directory exists
180
- */
181
- async ensureLogDirectory() {
182
- const logDir = join(this.outputDir, 'logs');
183
- await mkdir(logDir, { recursive: true });
184
- }
185
- /**
186
- * Check disk space and warn/disable if low (Issue #6)
187
- */
188
- async checkDiskSpace() {
189
- if (!this.fileHandle || !this.filePath)
190
- return;
191
- try {
192
- const stats = await statfs(this.outputDir);
193
- const freeBytes = BigInt(stats.bsize) * BigInt(stats.bavail);
194
- const freeMB = Number(freeBytes / BigInt(1024 * 1024));
195
- if (freeMB < 100) {
196
- console.warn(`[Logger] Low disk space: ${freeMB.toFixed(2)}MB remaining`);
197
- }
198
- if (freeMB < 10) {
199
- console.error('[Logger] Critical disk space (<10MB), disabling file logging');
200
- // Close file handle and dispose
201
- await this.fileHandle.close().catch(() => { });
202
- this.fileHandle = undefined;
203
- this.disposed = true;
204
- }
205
- }
206
- catch (error) {
207
- // statfs may not be available on all platforms/Node versions
208
- // Silently ignore to avoid breaking on older Node versions
209
- }
210
- }
211
- /**
212
- * Rotate log file if it exceeds 10MB (Issue #8)
213
- */
214
- async rotateIfNeeded() {
215
- if (!this.fileHandle || !this.filePath)
216
- return;
217
- try {
218
- const stats = await this.fileHandle.stat();
219
- const sizeMB = stats.size / (1024 * 1024);
220
- if (sizeMB > 10) {
221
- console.warn(`[Logger] Log file exceeds 10MB (${sizeMB.toFixed(2)}MB), rotating...`);
222
- // Close current file
223
- await this.fileHandle.close();
224
- // Rename to timestamped backup
225
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5); // Remove .xxxZ
226
- const rotatedPath = `${this.filePath}.${timestamp}`;
227
- await rename(this.filePath, rotatedPath);
228
- console.error(`[Logger] Rotated log file to: ${rotatedPath}`);
229
- // Reopen new file
230
- this.fileHandle = await open(this.filePath, 'a');
231
- }
232
- }
233
- catch (error) {
234
- console.error('[Logger] Failed to rotate log file:', error);
235
- // Continue with existing file handle
236
- }
237
- }
238
- }
239
- /**
240
- * Console-based logger implementation
241
- */
242
- export class ConsoleLogger {
243
- sessionId;
244
- toolName;
245
- config;
246
- fileWriter;
247
- constructor(sessionId, toolName, config) {
248
- this.sessionId = sessionId;
249
- this.toolName = toolName;
250
- this.config = this.mergeConfig(config);
251
- // Initialize file writer if enabled
252
- if (this.config.enableFileLog && sessionId) {
253
- this.fileWriter = new FileWriter(sessionId, this.config.outputDir, this.config.bufferSize, this.config.flushInterval);
254
- }
255
- }
256
- /**
257
- * Merge user config with defaults and validate values (Issue #7)
258
- */
259
- mergeConfig(userConfig) {
260
- // Start with defaults
261
- const merged = {
262
- ...DEFAULT_LOGGER_CONFIG,
263
- ...userConfig,
264
- };
265
- // Issue #7: Validate and clamp buffer size (10 - 10000)
266
- const rawBufferSize = merged.bufferSize;
267
- merged.bufferSize = Math.max(10, Math.min(merged.bufferSize, 10000));
268
- if (rawBufferSize !== merged.bufferSize) {
269
- console.warn(`Logger bufferSize clamped to ${merged.bufferSize} (was ${rawBufferSize}). Valid range: 10-10000`);
270
- }
271
- // Issue #7: Validate and clamp flush interval (100ms - 60s)
272
- const rawFlushInterval = merged.flushInterval;
273
- merged.flushInterval = Math.max(100, Math.min(merged.flushInterval, 60000));
274
- if (rawFlushInterval !== merged.flushInterval) {
275
- console.warn(`Logger flushInterval clamped to ${merged.flushInterval}ms (was ${rawFlushInterval}ms). Valid range: 100-60000ms`);
276
- }
277
- // Issue #7: Validate log level
278
- const validLevels = ['debug', 'info', 'warn', 'error'];
279
- if (!validLevels.includes(merged.level)) {
280
- console.warn(`Invalid log level "${merged.level}", using default "info". Valid levels: ${validLevels.join(', ')}`);
281
- merged.level = 'info';
282
- }
283
- // Issue #7: Validate outputDir is non-empty string
284
- if (typeof merged.outputDir !== 'string' || merged.outputDir.trim() === '') {
285
- console.warn(`Invalid outputDir "${merged.outputDir}", using default ".mcp-artifacts"`);
286
- merged.outputDir = '.mcp-artifacts';
287
- }
288
- return merged;
289
- }
290
- /**
291
- * Check if log level should be output
292
- */
293
- shouldLog(level) {
294
- return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
295
- }
296
- /**
297
- * Create log entry with metadata
298
- */
299
- createEntry(level, message, context) {
300
- return {
301
- timestamp: new Date(),
302
- level,
303
- message,
304
- sessionId: this.sessionId,
305
- toolName: this.toolName,
306
- context,
307
- };
308
- }
309
- /**
310
- * Format log entry for console output
311
- */
312
- format(entry) {
313
- const timestamp = entry.timestamp.toISOString();
314
- const level = entry.level.toUpperCase().padEnd(5);
315
- const sessionInfo = entry.sessionId ? ` [${entry.sessionId}]` : '';
316
- const toolInfo = entry.toolName ? ` [${entry.toolName}]` : '';
317
- const contextInfo = entry.context ? ` ${JSON.stringify(entry.context)}` : '';
318
- return `${timestamp} ${level}${sessionInfo}${toolInfo}: ${entry.message}${contextInfo}`;
319
- }
320
- info(message, context) {
321
- if (!this.shouldLog('info'))
322
- return;
323
- const entry = this.createEntry('info', message, context);
324
- this.log(entry);
325
- }
326
- warn(message, context) {
327
- if (!this.shouldLog('warn'))
328
- return;
329
- const entry = this.createEntry('warn', message, context);
330
- this.log(entry);
331
- }
332
- error(message, context) {
333
- if (!this.shouldLog('error'))
334
- return;
335
- const entry = this.createEntry('error', message, context);
336
- this.log(entry);
337
- }
338
- debug(message, context) {
339
- if (!this.shouldLog('debug'))
340
- return;
341
- const entry = this.createEntry('debug', message, context);
342
- this.log(entry);
343
- }
344
- /**
345
- * Log entry to console and optionally to file
346
- */
347
- log(entry) {
348
- // Console output (always)
349
- console.error(this.format(entry));
350
- // File output (if enabled)
351
- this.fileWriter?.write(entry);
352
- }
353
- /**
354
- * Flush log buffer to file
355
- */
356
- async flush() {
357
- await this.fileWriter?.flush();
358
- }
359
- /**
360
- * Dispose logger and flush buffer
361
- */
362
- async dispose() {
363
- await this.fileWriter?.dispose();
364
- }
365
- /**
366
- * Create a child logger with specific tool name
367
- */
368
- child(toolName) {
369
- return new ConsoleLogger(this.sessionId, toolName, this.config);
370
- }
371
- }
372
- /**
373
- * Create a logger for a session
374
- */
375
- export function createLogger(sessionId, config) {
376
- return new ConsoleLogger(sessionId, undefined, config);
377
- }
1
+ export { createLogger, ConsoleLogger } from '../runtime/logging/logger.js';
378
2
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA"}
@@ -1,21 +1,2 @@
1
- /**
2
- * OutputManager implementation for artifact generation
3
- */
4
- import type { OutputManager, OutputType } from '../types.js';
5
- /**
6
- * File system-based output manager
7
- */
8
- export declare class FileOutputManager implements OutputManager {
9
- private outputDir;
10
- private counter;
11
- constructor(outputDir: string);
12
- getOutputDir(): string;
13
- generateFilename(type: OutputType, extension: string): string;
14
- writeFile(filename: string, content: Buffer | string): Promise<string>;
15
- ensureOutputDir(): Promise<void>;
16
- }
17
- /**
18
- * Create an output manager for a session
19
- */
20
- export declare function createOutputManager(outputDir: string): OutputManager;
1
+ export { createOutputManager, FileOutputManager } from '../runtime/outputs/output-manager.js';
21
2
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE5D;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,SAAS,EAAE,MAAM;IAK7B,YAAY,IAAI,MAAM;IAItB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAcvD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBtE,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAKvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAEpE"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA"}
@@ -1,56 +1,2 @@
1
- /**
2
- * OutputManager implementation for artifact generation
3
- */
4
- import { mkdir, writeFile as fsWriteFile } from 'fs/promises';
5
- import { join, dirname } from 'path';
6
- import { existsSync } from 'fs';
7
- /**
8
- * File system-based output manager
9
- */
10
- export class FileOutputManager {
11
- outputDir;
12
- counter;
13
- constructor(outputDir) {
14
- this.outputDir = outputDir;
15
- this.counter = new Map();
16
- }
17
- getOutputDir() {
18
- return this.outputDir;
19
- }
20
- generateFilename(type, extension) {
21
- // Get current counter for this type
22
- const count = this.counter.get(type) || 0;
23
- this.counter.set(type, count + 1);
24
- // Generate timestamp
25
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
26
- // Generate filename with type prefix, counter, and timestamp
27
- const filename = `${type}-${count + 1}-${timestamp}.${extension}`;
28
- return filename;
29
- }
30
- async writeFile(filename, content) {
31
- // Ensure output directory exists
32
- await this.ensureOutputDir();
33
- // Resolve full path
34
- const fullPath = join(this.outputDir, filename);
35
- // Ensure subdirectories exist (if filename contains path separators)
36
- const fileDir = dirname(fullPath);
37
- if (!existsSync(fileDir)) {
38
- await mkdir(fileDir, { recursive: true });
39
- }
40
- // Write file
41
- await fsWriteFile(fullPath, content);
42
- return fullPath;
43
- }
44
- async ensureOutputDir() {
45
- if (!existsSync(this.outputDir)) {
46
- await mkdir(this.outputDir, { recursive: true });
47
- }
48
- }
49
- }
50
- /**
51
- * Create an output manager for a session
52
- */
53
- export function createOutputManager(outputDir) {
54
- return new FileOutputManager(outputDir);
55
- }
1
+ export { createOutputManager, FileOutputManager } from '../runtime/outputs/output-manager.js';
56
2
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAG/B;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,SAAS,CAAQ;IACjB,OAAO,CAAyB;IAExC,YAAY,SAAiB;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,gBAAgB,CAAC,IAAgB,EAAE,SAAiB;QAClD,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAEjC,qBAAqB;QACrB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAE7E,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAA;QAEjE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAwB;QACxD,iCAAiC;QACjC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE5B,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAE/C,qEAAqE;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,aAAa;QACb,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEpC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA"}
@@ -1,24 +1,2 @@
1
- /**
2
- * Session report generator (F3)
3
- *
4
- * Generates JSON and Markdown reports from session tool call data
5
- */
6
- import type { SessionState, SessionReport } from '../types.js';
7
- /**
8
- * Generate JSON session report
9
- */
10
- export declare function generateSessionReport(session: SessionState): SessionReport;
11
- /**
12
- * Generate Markdown session report
13
- */
14
- export declare function generateMarkdownReport(report: SessionReport): string;
15
- /**
16
- * Generate and save session reports (JSON + Markdown)
17
- *
18
- * Called automatically when session is disposed.
19
- * Fire-and-forget pattern - errors are logged but not thrown.
20
- *
21
- * @param session Session state with reportData
22
- */
23
- export declare function generateAndSaveReports(session: SessionState): Promise<void>;
1
+ export { generateSessionReport, generateMarkdownReport, generateAndSaveReports, } from '../runtime/outputs/report-generator.js';
24
2
  //# sourceMappingURL=report-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report-generator.d.ts","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAA;AAiC9E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAiC1E;AAmED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA8DpE;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCjF"}
1
+ {"version":3,"file":"report-generator.d.ts","sourceRoot":"","sources":["../../src/core/report-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wCAAwC,CAAA"}