@nanocollective/nanocoder 1.18.0 → 1.19.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 (603) hide show
  1. package/README.md +176 -8
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/ai-sdk-client-empty-message.spec.js.map +1 -1
  4. package/dist/ai-sdk-client.d.ts +1 -1
  5. package/dist/ai-sdk-client.d.ts.map +1 -1
  6. package/dist/ai-sdk-client.js +261 -150
  7. package/dist/ai-sdk-client.js.map +1 -1
  8. package/dist/app/utils/appUtils.d.ts +1 -1
  9. package/dist/app/utils/appUtils.d.ts.map +1 -1
  10. package/dist/app/utils/appUtils.js +78 -12
  11. package/dist/app/utils/appUtils.js.map +1 -1
  12. package/dist/app.d.ts +22 -1
  13. package/dist/app.d.ts.map +1 -1
  14. package/dist/app.js +353 -48
  15. package/dist/app.js.map +1 -1
  16. package/dist/cli.js +37 -2
  17. package/dist/cli.js.map +1 -1
  18. package/dist/cli.spec.d.ts +2 -0
  19. package/dist/cli.spec.d.ts.map +1 -0
  20. package/dist/cli.spec.js +101 -0
  21. package/dist/cli.spec.js.map +1 -0
  22. package/dist/client-factory.d.ts.map +1 -1
  23. package/dist/client-factory.js +2 -2
  24. package/dist/client-factory.js.map +1 -1
  25. package/dist/commands/checkpoint.d.ts +6 -0
  26. package/dist/commands/checkpoint.d.ts.map +1 -0
  27. package/dist/commands/checkpoint.js +277 -0
  28. package/dist/commands/checkpoint.js.map +1 -0
  29. package/dist/commands/clear.d.ts.map +1 -1
  30. package/dist/commands/clear.js +1 -1
  31. package/dist/commands/clear.js.map +1 -1
  32. package/dist/commands/custom-commands.d.ts.map +1 -1
  33. package/dist/commands/custom-commands.js +4 -4
  34. package/dist/commands/custom-commands.js.map +1 -1
  35. package/dist/commands/exit.d.ts.map +1 -1
  36. package/dist/commands/exit.js.map +1 -1
  37. package/dist/commands/export.d.ts.map +1 -1
  38. package/dist/commands/export.js +2 -2
  39. package/dist/commands/export.js.map +1 -1
  40. package/dist/commands/help.d.ts.map +1 -1
  41. package/dist/commands/help.js +5 -5
  42. package/dist/commands/help.js.map +1 -1
  43. package/dist/commands/index.d.ts +1 -1
  44. package/dist/commands/index.d.ts.map +1 -1
  45. package/dist/commands/index.js +1 -1
  46. package/dist/commands/index.js.map +1 -1
  47. package/dist/commands/init.d.ts.map +1 -1
  48. package/dist/commands/init.js +15 -14
  49. package/dist/commands/init.js.map +1 -1
  50. package/dist/commands/lsp.d.ts.map +1 -1
  51. package/dist/commands/lsp.js +6 -6
  52. package/dist/commands/lsp.js.map +1 -1
  53. package/dist/commands/mcp.d.ts +1 -1
  54. package/dist/commands/mcp.d.ts.map +1 -1
  55. package/dist/commands/mcp.js +6 -6
  56. package/dist/commands/mcp.js.map +1 -1
  57. package/dist/commands/model-database.d.ts.map +1 -1
  58. package/dist/commands/model-database.js +8 -8
  59. package/dist/commands/model-database.js.map +1 -1
  60. package/dist/commands/model.d.ts.map +1 -1
  61. package/dist/commands/model.js.map +1 -1
  62. package/dist/commands/provider.d.ts.map +1 -1
  63. package/dist/commands/provider.js.map +1 -1
  64. package/dist/commands/setup-config.js +1 -1
  65. package/dist/commands/setup-config.js.map +1 -1
  66. package/dist/commands/status.d.ts.map +1 -1
  67. package/dist/commands/status.js.map +1 -1
  68. package/dist/commands/theme.d.ts.map +1 -1
  69. package/dist/commands/theme.js.map +1 -1
  70. package/dist/commands/update.d.ts.map +1 -1
  71. package/dist/commands/update.js +5 -5
  72. package/dist/commands/update.js.map +1 -1
  73. package/dist/commands/usage.d.ts.map +1 -1
  74. package/dist/commands/usage.js +3 -3
  75. package/dist/commands/usage.js.map +1 -1
  76. package/dist/commands.d.ts.map +1 -1
  77. package/dist/commands.js +1 -1
  78. package/dist/commands.js.map +1 -1
  79. package/dist/components/assistant-message.d.ts.map +1 -1
  80. package/dist/components/assistant-message.js +2 -2
  81. package/dist/components/assistant-message.js.map +1 -1
  82. package/dist/components/bash-execution-indicator.d.ts.map +1 -1
  83. package/dist/components/bash-execution-indicator.js +2 -2
  84. package/dist/components/bash-execution-indicator.js.map +1 -1
  85. package/dist/components/cancelling-indicator.js +3 -3
  86. package/dist/components/cancelling-indicator.js.map +1 -1
  87. package/dist/components/chat-queue.d.ts.map +1 -1
  88. package/dist/components/chat-queue.js +1 -1
  89. package/dist/components/chat-queue.js.map +1 -1
  90. package/dist/components/checkpoint-display.d.ts +8 -0
  91. package/dist/components/checkpoint-display.d.ts.map +1 -0
  92. package/dist/components/checkpoint-display.js +29 -0
  93. package/dist/components/checkpoint-display.js.map +1 -0
  94. package/dist/components/checkpoint-selector.d.ts +11 -0
  95. package/dist/components/checkpoint-selector.d.ts.map +1 -0
  96. package/dist/components/checkpoint-selector.js +55 -0
  97. package/dist/components/checkpoint-selector.js.map +1 -0
  98. package/dist/components/error-message.d.ts.map +1 -1
  99. package/dist/components/error-message.js +4 -4
  100. package/dist/components/error-message.js.map +1 -1
  101. package/dist/components/info-message.d.ts.map +1 -1
  102. package/dist/components/info-message.js +4 -4
  103. package/dist/components/info-message.js.map +1 -1
  104. package/dist/components/model-selector.d.ts.map +1 -1
  105. package/dist/components/model-selector.js +7 -7
  106. package/dist/components/model-selector.js.map +1 -1
  107. package/dist/components/provider-selector.d.ts.map +1 -1
  108. package/dist/components/provider-selector.js +6 -6
  109. package/dist/components/provider-selector.js.map +1 -1
  110. package/dist/components/security-disclaimer.d.ts.map +1 -1
  111. package/dist/components/security-disclaimer.js +4 -4
  112. package/dist/components/security-disclaimer.js.map +1 -1
  113. package/dist/components/status.d.ts +3 -1
  114. package/dist/components/status.d.ts.map +1 -1
  115. package/dist/components/status.js +17 -9
  116. package/dist/components/status.js.map +1 -1
  117. package/dist/components/success-message.d.ts.map +1 -1
  118. package/dist/components/success-message.js +4 -4
  119. package/dist/components/success-message.js.map +1 -1
  120. package/dist/components/theme-selector.d.ts.map +1 -1
  121. package/dist/components/theme-selector.js +8 -8
  122. package/dist/components/theme-selector.js.map +1 -1
  123. package/dist/components/tool-confirmation.d.ts.map +1 -1
  124. package/dist/components/tool-confirmation.js +7 -7
  125. package/dist/components/tool-confirmation.js.map +1 -1
  126. package/dist/components/tool-execution-indicator.d.ts.map +1 -1
  127. package/dist/components/tool-execution-indicator.js +2 -2
  128. package/dist/components/tool-execution-indicator.js.map +1 -1
  129. package/dist/components/tool-message.d.ts.map +1 -1
  130. package/dist/components/tool-message.js +4 -5
  131. package/dist/components/tool-message.js.map +1 -1
  132. package/dist/components/ui/titled-box.d.ts +16 -0
  133. package/dist/components/ui/titled-box.d.ts.map +1 -0
  134. package/dist/components/ui/titled-box.js +10 -0
  135. package/dist/components/ui/titled-box.js.map +1 -0
  136. package/dist/components/usage/progress-bar.d.ts.map +1 -1
  137. package/dist/components/usage/progress-bar.js +3 -0
  138. package/dist/components/usage/progress-bar.js.map +1 -1
  139. package/dist/components/usage/usage-display.d.ts.map +1 -1
  140. package/dist/components/usage/usage-display.js +7 -4
  141. package/dist/components/usage/usage-display.js.map +1 -1
  142. package/dist/components/user-input.d.ts.map +1 -1
  143. package/dist/components/user-input.js +7 -7
  144. package/dist/components/user-input.js.map +1 -1
  145. package/dist/components/user-message.d.ts.map +1 -1
  146. package/dist/components/user-message.js +1 -1
  147. package/dist/components/user-message.js.map +1 -1
  148. package/dist/components/vscode-extension-prompt.js +3 -3
  149. package/dist/components/vscode-extension-prompt.js.map +1 -1
  150. package/dist/components/warning-message.d.ts.map +1 -1
  151. package/dist/components/warning-message.js +4 -4
  152. package/dist/components/warning-message.js.map +1 -1
  153. package/dist/components/welcome-message.d.ts.map +1 -1
  154. package/dist/components/welcome-message.js +4 -4
  155. package/dist/components/welcome-message.js.map +1 -1
  156. package/dist/config/index.d.ts.map +1 -1
  157. package/dist/config/index.js +7 -7
  158. package/dist/config/index.js.map +1 -1
  159. package/dist/config/index.spec.js +4 -4
  160. package/dist/config/index.spec.js.map +1 -1
  161. package/dist/config/paths.spec.js +1 -1
  162. package/dist/config/paths.spec.js.map +1 -1
  163. package/dist/config/preferences.d.ts +0 -2
  164. package/dist/config/preferences.d.ts.map +1 -1
  165. package/dist/config/preferences.js +1 -11
  166. package/dist/config/preferences.js.map +1 -1
  167. package/dist/custom-commands/executor.d.ts.map +1 -1
  168. package/dist/custom-commands/executor.js.map +1 -1
  169. package/dist/custom-commands/loader.d.ts.map +1 -1
  170. package/dist/custom-commands/loader.js +1 -1
  171. package/dist/custom-commands/loader.js.map +1 -1
  172. package/dist/custom-commands/parser.d.ts.map +1 -1
  173. package/dist/custom-commands/parser.js.map +1 -1
  174. package/dist/hooks/useAppInitialization.d.ts +7 -5
  175. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  176. package/dist/hooks/useAppInitialization.js +21 -22
  177. package/dist/hooks/useAppInitialization.js.map +1 -1
  178. package/dist/hooks/useAppState.d.ts +22 -5
  179. package/dist/hooks/useAppState.d.ts.map +1 -1
  180. package/dist/hooks/useAppState.js +17 -1
  181. package/dist/hooks/useAppState.js.map +1 -1
  182. package/dist/hooks/useChatHandler.d.ts +4 -2
  183. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  184. package/dist/hooks/useChatHandler.js +35 -10
  185. package/dist/hooks/useChatHandler.js.map +1 -1
  186. package/dist/hooks/useDirectoryTrust.js +1 -1
  187. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  188. package/dist/hooks/useInputState.js +2 -2
  189. package/dist/hooks/useInputState.js.map +1 -1
  190. package/dist/hooks/useModeHandlers.d.ts +1 -1
  191. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  192. package/dist/hooks/useModeHandlers.js +3 -3
  193. package/dist/hooks/useModeHandlers.js.map +1 -1
  194. package/dist/hooks/useTerminalWidth.d.ts.map +1 -1
  195. package/dist/hooks/useTerminalWidth.js +3 -3
  196. package/dist/hooks/useTerminalWidth.js.map +1 -1
  197. package/dist/hooks/useTheme.d.ts.map +1 -1
  198. package/dist/hooks/useTheme.js +1 -1
  199. package/dist/hooks/useTheme.js.map +1 -1
  200. package/dist/hooks/useToolHandler.d.ts +1 -1
  201. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  202. package/dist/hooks/useToolHandler.js +4 -4
  203. package/dist/hooks/useToolHandler.js.map +1 -1
  204. package/dist/hooks/useUIState.d.ts +1 -1
  205. package/dist/hooks/useUIState.d.ts.map +1 -1
  206. package/dist/hooks/useUIState.js.map +1 -1
  207. package/dist/hooks/useVSCodeServer.js +2 -2
  208. package/dist/hooks/useVSCodeServer.js.map +1 -1
  209. package/dist/init/agents-template-generator.d.ts +1 -1
  210. package/dist/init/agents-template-generator.d.ts.map +1 -1
  211. package/dist/init/agents-template-generator.js.map +1 -1
  212. package/dist/init/existing-rules-extractor.js +1 -1
  213. package/dist/init/existing-rules-extractor.js.map +1 -1
  214. package/dist/init/file-scanner.js +2 -2
  215. package/dist/init/file-scanner.js.map +1 -1
  216. package/dist/init/framework-detector.js +1 -1
  217. package/dist/init/framework-detector.js.map +1 -1
  218. package/dist/init/project-analyzer.d.ts +1 -1
  219. package/dist/init/project-analyzer.d.ts.map +1 -1
  220. package/dist/init/project-analyzer.js +3 -3
  221. package/dist/init/project-analyzer.js.map +1 -1
  222. package/dist/lsp/lsp-client.d.ts +1 -1
  223. package/dist/lsp/lsp-client.d.ts.map +1 -1
  224. package/dist/lsp/lsp-client.js +1 -1
  225. package/dist/lsp/lsp-client.js.map +1 -1
  226. package/dist/lsp/lsp-client.spec.js +1 -2
  227. package/dist/lsp/lsp-client.spec.js.map +1 -1
  228. package/dist/lsp/lsp-manager.d.ts +1 -1
  229. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  230. package/dist/lsp/lsp-manager.js.map +1 -1
  231. package/dist/lsp/lsp-manager.spec.js +1 -1
  232. package/dist/lsp/lsp-manager.spec.js.map +1 -1
  233. package/dist/lsp/protocol.spec.js +1 -1
  234. package/dist/lsp/protocol.spec.js.map +1 -1
  235. package/dist/lsp/server-discovery.spec.js +1 -1
  236. package/dist/lsp/server-discovery.spec.js.map +1 -1
  237. package/dist/markdown-parser/index.spec.js.map +1 -1
  238. package/dist/markdown-parser/table-parser.spec.js.map +1 -1
  239. package/dist/mcp/mcp-client.d.ts +3 -2
  240. package/dist/mcp/mcp-client.d.ts.map +1 -1
  241. package/dist/mcp/mcp-client.js +264 -91
  242. package/dist/mcp/mcp-client.js.map +1 -1
  243. package/dist/mcp/transport-factory.d.ts +1 -1
  244. package/dist/mcp/transport-factory.d.ts.map +1 -1
  245. package/dist/mcp/transport-factory.js +16 -3
  246. package/dist/mcp/transport-factory.js.map +1 -1
  247. package/dist/mcp/transport-factory.spec.js +30 -48
  248. package/dist/mcp/transport-factory.spec.js.map +1 -1
  249. package/dist/message-handler.d.ts +1 -1
  250. package/dist/message-handler.d.ts.map +1 -1
  251. package/dist/model-database/database-engine.d.ts.map +1 -1
  252. package/dist/model-database/database-engine.js.map +1 -1
  253. package/dist/model-database/database-engine.spec.js.map +1 -1
  254. package/dist/model-database/model-database.js +1 -1
  255. package/dist/model-database/model-database.js.map +1 -1
  256. package/dist/model-database/model-engine.d.ts.map +1 -1
  257. package/dist/model-database/model-engine.js.map +1 -1
  258. package/dist/model-database/model-engine.spec.js +1 -1
  259. package/dist/model-database/model-engine.spec.js.map +1 -1
  260. package/dist/model-database/model-fetcher.d.ts.map +1 -1
  261. package/dist/model-database/model-fetcher.js +2 -1
  262. package/dist/model-database/model-fetcher.js.map +1 -1
  263. package/dist/model-database/model-fetcher.spec.js +1 -1
  264. package/dist/model-database/model-fetcher.spec.js.map +1 -1
  265. package/dist/models/models-cache.d.ts +1 -1
  266. package/dist/models/models-cache.d.ts.map +1 -1
  267. package/dist/models/models-cache.js +1 -1
  268. package/dist/models/models-cache.js.map +1 -1
  269. package/dist/models/models-dev-client.d.ts.map +1 -1
  270. package/dist/models/models-dev-client.js +18 -10
  271. package/dist/models/models-dev-client.js.map +1 -1
  272. package/dist/prompt-history.js +2 -2
  273. package/dist/prompt-history.js.map +1 -1
  274. package/dist/services/checkpoint-manager.d.ts +68 -0
  275. package/dist/services/checkpoint-manager.d.ts.map +1 -0
  276. package/dist/services/checkpoint-manager.js +345 -0
  277. package/dist/services/checkpoint-manager.js.map +1 -0
  278. package/dist/services/checkpoint-manager.spec.d.ts +2 -0
  279. package/dist/services/checkpoint-manager.spec.d.ts.map +1 -0
  280. package/dist/services/checkpoint-manager.spec.js +353 -0
  281. package/dist/services/checkpoint-manager.spec.js.map +1 -0
  282. package/dist/services/file-snapshot.d.ts +32 -0
  283. package/dist/services/file-snapshot.d.ts.map +1 -0
  284. package/dist/services/file-snapshot.js +161 -0
  285. package/dist/services/file-snapshot.js.map +1 -0
  286. package/dist/services/file-snapshot.spec.d.ts +2 -0
  287. package/dist/services/file-snapshot.spec.d.ts.map +1 -0
  288. package/dist/services/file-snapshot.spec.js +285 -0
  289. package/dist/services/file-snapshot.spec.js.map +1 -0
  290. package/dist/test-utils/render-with-theme.d.ts +7 -0
  291. package/dist/test-utils/render-with-theme.d.ts.map +1 -0
  292. package/dist/test-utils/render-with-theme.js +38 -0
  293. package/dist/test-utils/render-with-theme.js.map +1 -0
  294. package/dist/tokenization/tokenizer-factory.js +2 -2
  295. package/dist/tokenization/tokenizer-factory.js.map +1 -1
  296. package/dist/tokenization/tokenizer-factory.spec.js +2 -2
  297. package/dist/tokenization/tokenizer-factory.spec.js.map +1 -1
  298. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts +1 -1
  299. package/dist/tokenization/tokenizers/anthropic-tokenizer.d.ts.map +1 -1
  300. package/dist/tokenization/tokenizers/anthropic-tokenizer.js.map +1 -1
  301. package/dist/tokenization/tokenizers/anthropic-tokenizer.spec.js.map +1 -1
  302. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts +1 -1
  303. package/dist/tokenization/tokenizers/fallback-tokenizer.d.ts.map +1 -1
  304. package/dist/tokenization/tokenizers/fallback-tokenizer.spec.js.map +1 -1
  305. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts +1 -1
  306. package/dist/tokenization/tokenizers/llama-tokenizer.d.ts.map +1 -1
  307. package/dist/tokenization/tokenizers/llama-tokenizer.js.map +1 -1
  308. package/dist/tokenization/tokenizers/llama-tokenizer.spec.js.map +1 -1
  309. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts +1 -1
  310. package/dist/tokenization/tokenizers/openai-tokenizer.d.ts.map +1 -1
  311. package/dist/tokenization/tokenizers/openai-tokenizer.js.map +1 -1
  312. package/dist/tokenization/tokenizers/openai-tokenizer.spec.js.map +1 -1
  313. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  314. package/dist/tool-calling/json-parser.js +2 -10
  315. package/dist/tool-calling/json-parser.js.map +1 -1
  316. package/dist/tool-calling/json-parser.spec.js +7 -7
  317. package/dist/tool-calling/json-parser.spec.js.map +1 -1
  318. package/dist/tool-calling/tool-parser.d.ts.map +1 -1
  319. package/dist/tool-calling/tool-parser.js +1 -1
  320. package/dist/tool-calling/tool-parser.js.map +1 -1
  321. package/dist/tool-calling/tool-parser.spec.js +3 -3
  322. package/dist/tool-calling/tool-parser.spec.js.map +1 -1
  323. package/dist/tools/create-file.d.ts.map +1 -1
  324. package/dist/tools/create-file.js +7 -7
  325. package/dist/tools/create-file.js.map +1 -1
  326. package/dist/tools/delete-lines.d.ts.map +1 -1
  327. package/dist/tools/delete-lines.js +9 -9
  328. package/dist/tools/delete-lines.js.map +1 -1
  329. package/dist/tools/execute-bash.d.ts.map +1 -1
  330. package/dist/tools/execute-bash.js +3 -3
  331. package/dist/tools/execute-bash.js.map +1 -1
  332. package/dist/tools/execute-function.spec.js +4 -4
  333. package/dist/tools/execute-function.spec.js.map +1 -1
  334. package/dist/tools/fetch-url.d.ts.map +1 -1
  335. package/dist/tools/fetch-url.js +3 -3
  336. package/dist/tools/fetch-url.js.map +1 -1
  337. package/dist/tools/find-files.d.ts.map +1 -1
  338. package/dist/tools/find-files.js +6 -6
  339. package/dist/tools/find-files.js.map +1 -1
  340. package/dist/tools/index.d.ts +1 -1
  341. package/dist/tools/index.d.ts.map +1 -1
  342. package/dist/tools/index.js +7 -7
  343. package/dist/tools/index.js.map +1 -1
  344. package/dist/tools/insert-lines.d.ts.map +1 -1
  345. package/dist/tools/insert-lines.js +8 -8
  346. package/dist/tools/insert-lines.js.map +1 -1
  347. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -1
  348. package/dist/tools/lsp-get-diagnostics.js +5 -5
  349. package/dist/tools/lsp-get-diagnostics.js.map +1 -1
  350. package/dist/tools/needs-approval.spec.js +6 -6
  351. package/dist/tools/needs-approval.spec.js.map +1 -1
  352. package/dist/tools/read-file.js +6 -6
  353. package/dist/tools/read-file.js.map +1 -1
  354. package/dist/tools/replace-lines.d.ts.map +1 -1
  355. package/dist/tools/replace-lines.js +8 -8
  356. package/dist/tools/replace-lines.js.map +1 -1
  357. package/dist/tools/search-file-contents.d.ts.map +1 -1
  358. package/dist/tools/search-file-contents.js +6 -6
  359. package/dist/tools/search-file-contents.js.map +1 -1
  360. package/dist/tools/tool-manager.d.ts +1 -1
  361. package/dist/tools/tool-manager.d.ts.map +1 -1
  362. package/dist/tools/tool-manager.js +1 -1
  363. package/dist/tools/tool-manager.js.map +1 -1
  364. package/dist/tools/tool-registry.d.ts +1 -1
  365. package/dist/tools/tool-registry.d.ts.map +1 -1
  366. package/dist/tools/web-search.d.ts.map +1 -1
  367. package/dist/tools/web-search.js +4 -4
  368. package/dist/tools/web-search.js.map +1 -1
  369. package/dist/types/app.d.ts +6 -3
  370. package/dist/types/app.d.ts.map +1 -1
  371. package/dist/types/checkpoint.d.ts +43 -0
  372. package/dist/types/checkpoint.d.ts.map +1 -0
  373. package/dist/types/checkpoint.js +2 -0
  374. package/dist/types/checkpoint.js.map +1 -0
  375. package/dist/types/config.d.ts +0 -1
  376. package/dist/types/config.d.ts.map +1 -1
  377. package/dist/types/core-connection-status.spec.js.map +1 -1
  378. package/dist/types/core.d.ts +1 -1
  379. package/dist/types/core.d.ts.map +1 -1
  380. package/dist/types/core.js +1 -1
  381. package/dist/types/core.js.map +1 -1
  382. package/dist/types/index.d.ts +1 -0
  383. package/dist/types/index.d.ts.map +1 -1
  384. package/dist/types/index.js +1 -0
  385. package/dist/types/index.js.map +1 -1
  386. package/dist/usage/calculator.spec.js +1 -1
  387. package/dist/usage/calculator.spec.js.map +1 -1
  388. package/dist/usage/storage.d.ts +1 -1
  389. package/dist/usage/storage.d.ts.map +1 -1
  390. package/dist/usage/storage.js +9 -3
  391. package/dist/usage/storage.js.map +1 -1
  392. package/dist/usage/storage.spec.js +3 -3
  393. package/dist/usage/storage.spec.js.map +1 -1
  394. package/dist/usage/tracker.d.ts.map +1 -1
  395. package/dist/usage/tracker.js +1 -1
  396. package/dist/usage/tracker.js.map +1 -1
  397. package/dist/usage/tracker.spec.js +4 -4
  398. package/dist/usage/tracker.spec.js.map +1 -1
  399. package/dist/utils/atomic-deletion.spec.js +1 -1
  400. package/dist/utils/atomic-deletion.spec.js.map +1 -1
  401. package/dist/utils/checkpoint-utils.d.ts +12 -0
  402. package/dist/utils/checkpoint-utils.d.ts.map +1 -0
  403. package/dist/utils/checkpoint-utils.js +85 -0
  404. package/dist/utils/checkpoint-utils.js.map +1 -0
  405. package/dist/utils/checkpoint-utils.spec.d.ts +2 -0
  406. package/dist/utils/checkpoint-utils.spec.d.ts.map +1 -0
  407. package/dist/utils/checkpoint-utils.spec.js +182 -0
  408. package/dist/utils/checkpoint-utils.spec.js.map +1 -0
  409. package/dist/utils/error-formatter.d.ts +35 -0
  410. package/dist/utils/error-formatter.d.ts.map +1 -1
  411. package/dist/utils/error-formatter.js +123 -0
  412. package/dist/utils/error-formatter.js.map +1 -1
  413. package/dist/utils/file-autocomplete.js +2 -2
  414. package/dist/utils/file-autocomplete.js.map +1 -1
  415. package/dist/utils/file-autocomplete.spec.js +1 -1
  416. package/dist/utils/file-autocomplete.spec.js.map +1 -1
  417. package/dist/utils/file-content-loader.js +1 -1
  418. package/dist/utils/file-content-loader.js.map +1 -1
  419. package/dist/utils/file-content-loader.spec.js +4 -4
  420. package/dist/utils/file-content-loader.spec.js.map +1 -1
  421. package/dist/utils/file-mention-handler.js.map +1 -1
  422. package/dist/utils/file-mention-handler.spec.js +4 -4
  423. package/dist/utils/file-mention-handler.spec.js.map +1 -1
  424. package/dist/utils/file-mention-parser.spec.js +2 -2
  425. package/dist/utils/file-mention-parser.spec.js.map +1 -1
  426. package/dist/utils/installation-detector.js +2 -2
  427. package/dist/utils/installation-detector.js.map +1 -1
  428. package/dist/utils/installation-detector.spec.js +10 -17
  429. package/dist/utils/installation-detector.spec.js.map +1 -1
  430. package/dist/utils/logging/config.d.ts +41 -0
  431. package/dist/utils/logging/config.d.ts.map +1 -0
  432. package/dist/utils/logging/config.js +188 -0
  433. package/dist/utils/logging/config.js.map +1 -0
  434. package/dist/utils/logging/config.spec.d.ts +2 -0
  435. package/dist/utils/logging/config.spec.d.ts.map +1 -0
  436. package/dist/utils/logging/config.spec.js +233 -0
  437. package/dist/utils/logging/config.spec.js.map +1 -0
  438. package/dist/utils/logging/console-facade.d.ts +93 -0
  439. package/dist/utils/logging/console-facade.d.ts.map +1 -0
  440. package/dist/utils/logging/console-facade.js +295 -0
  441. package/dist/utils/logging/console-facade.js.map +1 -0
  442. package/dist/utils/logging/console-facade.spec.d.ts +2 -0
  443. package/dist/utils/logging/console-facade.spec.d.ts.map +1 -0
  444. package/dist/utils/logging/console-facade.spec.js +143 -0
  445. package/dist/utils/logging/console-facade.spec.js.map +1 -0
  446. package/dist/utils/logging/correlation.d.ts +139 -0
  447. package/dist/utils/logging/correlation.d.ts.map +1 -0
  448. package/dist/utils/logging/correlation.js +410 -0
  449. package/dist/utils/logging/correlation.js.map +1 -0
  450. package/dist/utils/logging/correlation.spec.d.ts +2 -0
  451. package/dist/utils/logging/correlation.spec.d.ts.map +1 -0
  452. package/dist/utils/logging/correlation.spec.js +449 -0
  453. package/dist/utils/logging/correlation.spec.js.map +1 -0
  454. package/dist/utils/logging/formatters.d.ts +70 -0
  455. package/dist/utils/logging/formatters.d.ts.map +1 -0
  456. package/dist/utils/logging/formatters.js +186 -0
  457. package/dist/utils/logging/formatters.js.map +1 -0
  458. package/dist/utils/logging/formatters.spec.d.ts +2 -0
  459. package/dist/utils/logging/formatters.spec.d.ts.map +1 -0
  460. package/dist/utils/logging/formatters.spec.js +356 -0
  461. package/dist/utils/logging/formatters.spec.js.map +1 -0
  462. package/dist/utils/logging/health-monitor.d.ts +216 -0
  463. package/dist/utils/logging/health-monitor.d.ts.map +1 -0
  464. package/dist/utils/logging/health-monitor.js +760 -0
  465. package/dist/utils/logging/health-monitor.js.map +1 -0
  466. package/dist/utils/logging/health-monitor.spec.d.ts +2 -0
  467. package/dist/utils/logging/health-monitor.spec.d.ts.map +1 -0
  468. package/dist/utils/logging/health-monitor.spec.js +305 -0
  469. package/dist/utils/logging/health-monitor.spec.js.map +1 -0
  470. package/dist/utils/logging/index.d.ts +100 -0
  471. package/dist/utils/logging/index.d.ts.map +1 -0
  472. package/dist/utils/logging/index.js +186 -0
  473. package/dist/utils/logging/index.js.map +1 -0
  474. package/dist/utils/logging/index.spec.d.ts +2 -0
  475. package/dist/utils/logging/index.spec.d.ts.map +1 -0
  476. package/dist/utils/logging/index.spec.js +214 -0
  477. package/dist/utils/logging/index.spec.js.map +1 -0
  478. package/dist/utils/logging/integration.spec.d.ts +2 -0
  479. package/dist/utils/logging/integration.spec.d.ts.map +1 -0
  480. package/dist/utils/logging/integration.spec.js +312 -0
  481. package/dist/utils/logging/integration.spec.js.map +1 -0
  482. package/dist/utils/logging/log-method-factory.d.ts +43 -0
  483. package/dist/utils/logging/log-method-factory.d.ts.map +1 -0
  484. package/dist/utils/logging/log-method-factory.js +176 -0
  485. package/dist/utils/logging/log-method-factory.js.map +1 -0
  486. package/dist/utils/logging/log-method-factory.spec.d.ts +2 -0
  487. package/dist/utils/logging/log-method-factory.spec.d.ts.map +1 -0
  488. package/dist/utils/logging/log-method-factory.spec.js +428 -0
  489. package/dist/utils/logging/log-method-factory.spec.js.map +1 -0
  490. package/dist/utils/logging/log-query.d.ts +275 -0
  491. package/dist/utils/logging/log-query.d.ts.map +1 -0
  492. package/dist/utils/logging/log-query.js +621 -0
  493. package/dist/utils/logging/log-query.js.map +1 -0
  494. package/dist/utils/logging/log-query.spec.d.ts +2 -0
  495. package/dist/utils/logging/log-query.spec.d.ts.map +1 -0
  496. package/dist/utils/logging/log-query.spec.js +737 -0
  497. package/dist/utils/logging/log-query.spec.js.map +1 -0
  498. package/dist/utils/logging/logger-provider.d.ts +73 -0
  499. package/dist/utils/logging/logger-provider.d.ts.map +1 -0
  500. package/dist/utils/logging/logger-provider.js +298 -0
  501. package/dist/utils/logging/logger-provider.js.map +1 -0
  502. package/dist/utils/logging/logger-provider.spec.d.ts +2 -0
  503. package/dist/utils/logging/logger-provider.spec.d.ts.map +1 -0
  504. package/dist/utils/logging/logger-provider.spec.js +204 -0
  505. package/dist/utils/logging/logger-provider.spec.js.map +1 -0
  506. package/dist/utils/logging/performance.d.ts +147 -0
  507. package/dist/utils/logging/performance.d.ts.map +1 -0
  508. package/dist/utils/logging/performance.js +520 -0
  509. package/dist/utils/logging/performance.js.map +1 -0
  510. package/dist/utils/logging/performance.spec.d.ts +2 -0
  511. package/dist/utils/logging/performance.spec.d.ts.map +1 -0
  512. package/dist/utils/logging/performance.spec.js +139 -0
  513. package/dist/utils/logging/performance.spec.js.map +1 -0
  514. package/dist/utils/logging/pino-logger.d.ts +22 -0
  515. package/dist/utils/logging/pino-logger.d.ts.map +1 -0
  516. package/dist/utils/logging/pino-logger.js +372 -0
  517. package/dist/utils/logging/pino-logger.js.map +1 -0
  518. package/dist/utils/logging/pino-logger.spec.d.ts +2 -0
  519. package/dist/utils/logging/pino-logger.spec.d.ts.map +1 -0
  520. package/dist/utils/logging/pino-logger.spec.js +294 -0
  521. package/dist/utils/logging/pino-logger.spec.js.map +1 -0
  522. package/dist/utils/logging/redaction.d.ts +38 -0
  523. package/dist/utils/logging/redaction.d.ts.map +1 -0
  524. package/dist/utils/logging/redaction.js +210 -0
  525. package/dist/utils/logging/redaction.js.map +1 -0
  526. package/dist/utils/logging/redaction.spec.d.ts +2 -0
  527. package/dist/utils/logging/redaction.spec.d.ts.map +1 -0
  528. package/dist/utils/logging/redaction.spec.js +338 -0
  529. package/dist/utils/logging/redaction.spec.js.map +1 -0
  530. package/dist/utils/logging/request-tracker.d.ts +189 -0
  531. package/dist/utils/logging/request-tracker.d.ts.map +1 -0
  532. package/dist/utils/logging/request-tracker.js +569 -0
  533. package/dist/utils/logging/request-tracker.js.map +1 -0
  534. package/dist/utils/logging/request-tracker.spec.d.ts +2 -0
  535. package/dist/utils/logging/request-tracker.spec.d.ts.map +1 -0
  536. package/dist/utils/logging/request-tracker.spec.js +868 -0
  537. package/dist/utils/logging/request-tracker.spec.js.map +1 -0
  538. package/dist/utils/logging/transports.d.ts +55 -0
  539. package/dist/utils/logging/transports.d.ts.map +1 -0
  540. package/dist/utils/logging/transports.js +252 -0
  541. package/dist/utils/logging/transports.js.map +1 -0
  542. package/dist/utils/logging/transports.spec.d.ts +2 -0
  543. package/dist/utils/logging/transports.spec.d.ts.map +1 -0
  544. package/dist/utils/logging/transports.spec.js +390 -0
  545. package/dist/utils/logging/transports.spec.js.map +1 -0
  546. package/dist/utils/logging/types.d.ts +173 -0
  547. package/dist/utils/logging/types.d.ts.map +1 -0
  548. package/dist/utils/logging/types.js +5 -0
  549. package/dist/utils/logging/types.js.map +1 -0
  550. package/dist/utils/message-queue.d.ts +64 -4
  551. package/dist/utils/message-queue.d.ts.map +1 -1
  552. package/dist/utils/message-queue.js +282 -28
  553. package/dist/utils/message-queue.js.map +1 -1
  554. package/dist/utils/paste-utils.spec.js +1 -1
  555. package/dist/utils/paste-utils.spec.js.map +1 -1
  556. package/dist/utils/prompt-processor.js +2 -2
  557. package/dist/utils/prompt-processor.js.map +1 -1
  558. package/dist/utils/tool-cancellation.spec.js.map +1 -1
  559. package/dist/utils/tool-result-display.d.ts +2 -2
  560. package/dist/utils/tool-result-display.d.ts.map +1 -1
  561. package/dist/utils/tool-result-display.js +3 -3
  562. package/dist/utils/tool-result-display.js.map +1 -1
  563. package/dist/utils/update-checker.d.ts.map +1 -1
  564. package/dist/utils/update-checker.js +1 -1
  565. package/dist/utils/update-checker.js.map +1 -1
  566. package/dist/utils/update-checker.spec.js +2 -2
  567. package/dist/utils/update-checker.spec.js.map +1 -1
  568. package/dist/vscode/extension-installer.js +1 -1
  569. package/dist/vscode/extension-installer.js.map +1 -1
  570. package/dist/vscode/extension-installer.spec.js +1 -1
  571. package/dist/vscode/extension-installer.spec.js.map +1 -1
  572. package/dist/vscode/protocol.spec.js +1 -1
  573. package/dist/vscode/protocol.spec.js.map +1 -1
  574. package/dist/vscode/vscode-server.d.ts.map +1 -1
  575. package/dist/vscode/vscode-server.js +2 -2
  576. package/dist/vscode/vscode-server.js.map +1 -1
  577. package/dist/vscode/vscode-server.spec.js.map +1 -1
  578. package/dist/wizard/config-wizard.d.ts.map +1 -1
  579. package/dist/wizard/config-wizard.js +16 -12
  580. package/dist/wizard/config-wizard.js.map +1 -1
  581. package/dist/wizard/steps/location-step.js +4 -4
  582. package/dist/wizard/steps/location-step.js.map +1 -1
  583. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  584. package/dist/wizard/steps/mcp-step.js +4 -4
  585. package/dist/wizard/steps/mcp-step.js.map +1 -1
  586. package/dist/wizard/steps/provider-step.d.ts.map +1 -1
  587. package/dist/wizard/steps/provider-step.js +4 -4
  588. package/dist/wizard/steps/provider-step.js.map +1 -1
  589. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  590. package/dist/wizard/steps/summary-step.js +2 -2
  591. package/dist/wizard/steps/summary-step.js.map +1 -1
  592. package/dist/wizard/templates/provider-templates.d.ts.map +1 -1
  593. package/dist/wizard/templates/provider-templates.js +64 -0
  594. package/dist/wizard/templates/provider-templates.js.map +1 -1
  595. package/dist/wizard/validation-array.spec.js +1 -1
  596. package/dist/wizard/validation-array.spec.js.map +1 -1
  597. package/dist/wizard/validation.spec.js +1 -1
  598. package/dist/wizard/validation.spec.js.map +1 -1
  599. package/package.json +23 -22
  600. package/dist/commands/debugging.d.ts +0 -3
  601. package/dist/commands/debugging.d.ts.map +0 -1
  602. package/dist/commands/debugging.js +0 -23
  603. package/dist/commands/debugging.js.map +0 -1
@@ -0,0 +1,294 @@
1
+ import { existsSync, mkdirSync, rmSync } from 'fs';
2
+ import { tmpdir } from 'os';
3
+ import { join } from 'path';
4
+ import test from 'ava';
5
+ import { getDefaultLogDirectory } from './config.js';
6
+ // Implementation imports
7
+ import { createLoggerWithTransport, createPinoLogger, getLoggerStats, } from './pino-logger.js';
8
+ // Test utilities
9
+ const testLogDir = join(tmpdir(), `nanocoder-pino-test-${Date.now()}`);
10
+ // Track all loggers created during tests for cleanup
11
+ const createdLoggers = [];
12
+ /**
13
+ * Helper to create logger and track it for cleanup
14
+ */
15
+ function createTrackedLogger(config, cliConfig) {
16
+ const logger = createPinoLogger(config, cliConfig);
17
+ createdLoggers.push(logger);
18
+ return logger;
19
+ }
20
+ /**
21
+ * Helper to create transport logger and track it for cleanup
22
+ */
23
+ function createTrackedTransportLogger(config, transport) {
24
+ const logger = createLoggerWithTransport(config, transport);
25
+ createdLoggers.push(logger);
26
+ return logger;
27
+ }
28
+ test.before(() => {
29
+ mkdirSync(testLogDir, { recursive: true });
30
+ process.env.NODE_ENV = 'test';
31
+ });
32
+ test.after.always(async () => {
33
+ // End all tracked loggers first
34
+ await Promise.all(createdLoggers.map(async (logger) => {
35
+ try {
36
+ }
37
+ catch {
38
+ // Ignore errors during cleanup
39
+ }
40
+ }));
41
+ // Clear the array
42
+ createdLoggers.length = 0;
43
+ // Give Pino transport workers time to shut down gracefully
44
+ // Pino uses worker threads that need time to clean up
45
+ await new Promise(resolve => setTimeout(resolve, 100));
46
+ // Clean up test directory
47
+ if (existsSync(testLogDir)) {
48
+ rmSync(testLogDir, { recursive: true, force: true });
49
+ }
50
+ });
51
+ test('createPinoLogger creates logger with default configuration', async (t) => {
52
+ const logger = createTrackedLogger();
53
+ t.truthy(logger, 'Should create logger instance');
54
+ t.truthy(typeof logger.info === 'function', 'Should have info method');
55
+ t.truthy(typeof logger.error === 'function', 'Should have error method');
56
+ t.truthy(typeof logger.warn === 'function', 'Should have warn method');
57
+ t.truthy(typeof logger.debug === 'function', 'Should have debug method');
58
+ t.truthy(typeof logger.child === 'function', 'Should have child method');
59
+ t.truthy(typeof logger.isLevelEnabled === 'function', 'Should have isLevelEnabled method');
60
+ });
61
+ test('createPinoLogger respects configuration options', async (t) => {
62
+ const config = {
63
+ level: 'warn',
64
+ pretty: false,
65
+ correlation: false,
66
+ redact: ['apiKey', 'secret'],
67
+ };
68
+ const logger = createTrackedLogger(config);
69
+ t.true(logger.isLevelEnabled('warn'), 'Should enable warn level');
70
+ t.true(logger.isLevelEnabled('error'), 'Should enable error level');
71
+ t.false(logger.isLevelEnabled('info'), 'Should disable info level');
72
+ t.false(logger.isLevelEnabled('debug'), 'Should disable debug level');
73
+ });
74
+ test('createPinoLogger includes Node.js version in base configuration', async (t) => {
75
+ // This tests the feature from the previous session
76
+ const logger = createTrackedLogger({ level: 'silent' });
77
+ // Verify logger was created successfully
78
+ t.truthy(logger, 'Should create logger with Node.js version');
79
+ });
80
+ test('createPinoLogger handles CLI configuration', async (t) => {
81
+ const cliConfig = {
82
+ logToFile: true,
83
+ logToConsole: false,
84
+ };
85
+ const logger = createTrackedLogger(undefined, cliConfig);
86
+ t.truthy(logger, 'Should create logger with CLI config');
87
+ });
88
+ test('createPinoLogger creates file transport in test environment', async (t) => {
89
+ const originalEnv = process.env.NODE_ENV;
90
+ process.env.NODE_ENV = 'test';
91
+ const logger = createTrackedLogger({ level: 'info' });
92
+ t.truthy(logger, 'Should create logger in test environment');
93
+ // Log a test message
94
+ logger.info('Test message for file transport');
95
+ // Verify log directory is created
96
+ const logDir = getDefaultLogDirectory();
97
+ t.true(existsSync(logDir), 'Should create log directory');
98
+ process.env.NODE_ENV = originalEnv;
99
+ });
100
+ test('createLoggerWithTransport creates logger with custom transport', async (t) => {
101
+ const customTransport = {
102
+ target: 'pino/file',
103
+ options: {
104
+ destination: join(testLogDir, 'custom-test.log'),
105
+ },
106
+ };
107
+ const logger = createTrackedTransportLogger({
108
+ level: 'debug',
109
+ pretty: false,
110
+ }, customTransport);
111
+ t.truthy(logger, 'Should create logger with custom transport');
112
+ t.true(logger.isLevelEnabled('debug'), 'Should enable debug level');
113
+ logger.info('Test message with custom transport');
114
+ // Note: File creation might be asynchronous, so we'll just verify the transport was configured correctly
115
+ t.is(customTransport.options.destination, join(testLogDir, 'custom-test.log'));
116
+ });
117
+ test('createLoggerWithTransport includes Node.js version', async (t) => {
118
+ const logger = createTrackedTransportLogger({ level: 'silent' });
119
+ t.truthy(logger, 'Should create logger with Node.js version in custom transport');
120
+ });
121
+ test('logger handles different message formats', async (t) => {
122
+ const logger = createTrackedLogger({ level: 'debug' });
123
+ // Test string message
124
+ t.notThrows(() => {
125
+ logger.info('Simple string message');
126
+ }, 'Should handle string messages');
127
+ // Test object message
128
+ t.notThrows(() => {
129
+ logger.info({ key: 'value' }, 'Message with object');
130
+ }, 'Should handle object messages');
131
+ // Test message with additional arguments
132
+ t.notThrows(() => {
133
+ logger.info('Message with args', { arg1: 'value1' }, { arg2: 'value2' });
134
+ }, 'Should handle multiple arguments');
135
+ });
136
+ test('logger handles correlation context', async (t) => {
137
+ const logger = createTrackedLogger({
138
+ level: 'debug',
139
+ correlation: true,
140
+ });
141
+ // Test with correlation enabled (if correlation module is available)
142
+ t.notThrows(() => {
143
+ logger.info('Message with potential correlation');
144
+ }, 'Should handle correlation context gracefully');
145
+ });
146
+ test('logger handles redaction', async (t) => {
147
+ const logger = createTrackedLogger({
148
+ level: 'debug',
149
+ redact: ['apiKey', 'password', 'secret'],
150
+ });
151
+ const sensitiveData = {
152
+ username: 'testuser',
153
+ apiKey: 'secret-key-123',
154
+ password: 'secret-pass',
155
+ safeField: 'safe-value',
156
+ };
157
+ t.notThrows(() => {
158
+ logger.info('Message with sensitive data', sensitiveData);
159
+ }, 'Should handle redaction without errors');
160
+ });
161
+ test('child logger inherits parent configuration', async (t) => {
162
+ const parentLogger = createTrackedLogger({
163
+ level: 'debug',
164
+ redact: ['secret'],
165
+ });
166
+ const childLogger = parentLogger.child({
167
+ module: 'test-module',
168
+ version: '1.0.0',
169
+ });
170
+ t.truthy(childLogger, 'Should create child logger');
171
+ t.true(childLogger.isLevelEnabled('debug'), 'Child should inherit log level');
172
+ t.not(parentLogger === childLogger, 'Child should be different instance');
173
+ // Test child logger functionality
174
+ t.notThrows(() => {
175
+ childLogger.info('Child logger message');
176
+ }, 'Child logger should work');
177
+ });
178
+ test('nested child loggers work correctly', async (t) => {
179
+ const parentLogger = createTrackedLogger({ level: 'info' });
180
+ const childLogger = parentLogger.child({ module: 'parent' });
181
+ const grandchildLogger = childLogger.child({ submodule: 'child' });
182
+ t.truthy(grandchildLogger, 'Should create grandchild logger');
183
+ t.notThrows(() => {
184
+ grandchildLogger.info('Grandchild message');
185
+ }, 'Grandchild logger should work');
186
+ });
187
+ test('logger handles edge cases gracefully', async (t) => {
188
+ const logger = createTrackedLogger({ level: 'debug' });
189
+ // Test circular references - with a simpler approach to avoid redaction recursion
190
+ const circular = { id: 1 };
191
+ circular.self = circular;
192
+ // The logger should handle circular references, but we'll test without triggering the redaction system
193
+ t.notThrows(() => {
194
+ logger.info('Circular reference test', { id: circular.id });
195
+ }, 'Should handle object with circular reference properties');
196
+ // Test undefined/null values
197
+ t.notThrows(() => {
198
+ logger.info('Edge cases', {
199
+ nullValue: null,
200
+ undefinedValue: undefined,
201
+ emptyString: '',
202
+ zero: 0,
203
+ false: false,
204
+ });
205
+ }, 'Should handle undefined/null values');
206
+ // Test very large strings
207
+ t.notThrows(() => {
208
+ logger.info('Large string test', { largeData: 'x'.repeat(10000) });
209
+ }, 'Should handle large data');
210
+ });
211
+ test('logger handles high volume efficiently', async (t) => {
212
+ const logger = createTrackedLogger({ level: 'info' });
213
+ const messageCount = 1000;
214
+ const startTime = performance.now();
215
+ for (let i = 0; i < messageCount; i++) {
216
+ logger.info(`High volume message ${i}`, { index: i });
217
+ }
218
+ const endTime = performance.now();
219
+ const duration = endTime - startTime;
220
+ const avgTime = duration / messageCount;
221
+ // Should handle high volume efficiently (less than 1ms per log)
222
+ t.true(avgTime < 1, `Should handle high volume efficiently (${avgTime.toFixed(4)}ms per message)`);
223
+ });
224
+ test('getLoggerStats returns correct information', t => {
225
+ const stats = getLoggerStats();
226
+ t.truthy(stats, 'Should return stats object');
227
+ t.truthy(typeof stats.level === 'string', 'Should have level');
228
+ t.truthy(typeof stats.silent === 'boolean', 'Should have silent flag');
229
+ t.truthy(typeof stats.environment === 'string', 'Should have environment');
230
+ });
231
+ test('logger cleanup methods work', async (t) => {
232
+ const logger = createTrackedLogger({ level: 'info' });
233
+ logger.info('Message before cleanup');
234
+ // Test flush method - may not be available with all transport configurations
235
+ try {
236
+ await logger.flush();
237
+ t.pass('Flush completed successfully');
238
+ }
239
+ catch (error) {
240
+ // Flush may not be available with certain transport configurations
241
+ t.pass('Flush handled gracefully when not available');
242
+ }
243
+ // Test end method - tracked loggers are cleaned up automatically
244
+ t.pass('Logger will be cleaned up in test.after.always');
245
+ });
246
+ test('different log levels work correctly', async (t) => {
247
+ const logger = createTrackedLogger({ level: 'trace' }); // Use trace to enable all levels
248
+ const testMessage = 'Test log message';
249
+ t.notThrows(() => logger.fatal(testMessage), 'fatal level should work');
250
+ t.notThrows(() => logger.error(testMessage), 'error level should work');
251
+ t.notThrows(() => logger.warn(testMessage), 'warn level should work');
252
+ t.notThrows(() => logger.info(testMessage), 'info level should work');
253
+ // Test http level - it exists as a method but might not be available at all log levels
254
+ t.truthy(typeof logger.http === 'function', 'http method should exist');
255
+ // Only test http if it's actually enabled at this log level
256
+ if (logger.isLevelEnabled('http')) {
257
+ t.notThrows(() => logger.http(testMessage), 'http level should work when enabled');
258
+ }
259
+ t.notThrows(() => logger.debug(testMessage), 'debug level should work');
260
+ t.notThrows(() => logger.trace(testMessage), 'trace level should work');
261
+ });
262
+ test('silent logger creates no output', async (t) => {
263
+ const silentLogger = createTrackedLogger({ level: 'silent' });
264
+ t.false(silentLogger.isLevelEnabled('info'), 'Silent logger should not enable info level');
265
+ t.false(silentLogger.isLevelEnabled('error'), 'Silent logger should not enable error level');
266
+ t.false(silentLogger.isLevelEnabled('debug'), 'Silent logger should not enable debug level');
267
+ // Should not throw when logging at any level
268
+ t.notThrows(() => {
269
+ silentLogger.info('This should not be logged');
270
+ silentLogger.error('This should not be logged');
271
+ silentLogger.debug('This should not be logged');
272
+ }, 'Silent logger should handle all levels without error');
273
+ });
274
+ test('logger redaction works for configured fields', async (t) => {
275
+ const logger = createTrackedLogger({
276
+ level: 'debug',
277
+ redact: ['apiKey', 'password', 'userCredentials.secret'],
278
+ });
279
+ const sensitiveData = {
280
+ username: 'testuser',
281
+ apiKey: 'secret-api-key',
282
+ password: 'secret-password',
283
+ userCredentials: {
284
+ id: 'user123',
285
+ secret: 'super-secret-value',
286
+ },
287
+ safeField: 'this-is-safe',
288
+ };
289
+ // Should not throw and should redact sensitive fields
290
+ t.notThrows(() => {
291
+ logger.info('Testing redaction', sensitiveData);
292
+ }, 'Redaction should work without errors');
293
+ });
294
+ //# sourceMappingURL=pino-logger.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pino-logger.spec.js","sourceRoot":"","sources":["../../../source/utils/logging/pino-logger.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * PII and sensitive data redaction for security
3
+ */
4
+ import type { PiiRedactionRules } from './types.js';
5
+ /**
6
+ * Default redaction paths for common sensitive data
7
+ */
8
+ export declare const DEFAULT_REDACT_PATHS: string[];
9
+ /**
10
+ * Patterns for detecting sensitive data
11
+ * @internal
12
+ */
13
+ export declare const SENSITIVE_PATTERNS: RegExp[];
14
+ /**
15
+ * Redact a value if it matches sensitive patterns
16
+ */
17
+ export declare function redactValue(value: unknown): unknown;
18
+ /**
19
+ * Redact email addresses with partial masking
20
+ */
21
+ export declare function redactEmail(email: string): string;
22
+ /**
23
+ * Redact user IDs with partial masking
24
+ */
25
+ export declare function redactUserId(userId: string | number): string;
26
+ /**
27
+ * Create redaction rules based on configuration
28
+ */
29
+ export declare function createRedactionRules(customPaths?: string[], emailRedaction?: boolean, userIdRedaction?: boolean): PiiRedactionRules;
30
+ /**
31
+ * Apply redaction to a log entry
32
+ */
33
+ export declare function redactLogEntry(logEntry: Record<string, unknown>, rules: PiiRedactionRules): Record<string, unknown>;
34
+ /**
35
+ * Validate redaction rules
36
+ */
37
+ export declare function validateRedactionRules(rules: PiiRedactionRules): boolean;
38
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../../source/utils/logging/redaction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAkBhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAWtC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAcnD;AA+ED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAO5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,GAAE,OAAc,EAC9B,eAAe,GAAE,OAAc,GAC7B,iBAAiB,CAOnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,iBAAiB,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6CzB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAkBxE"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * PII and sensitive data redaction for security
3
+ */
4
+ /**
5
+ * Default redaction paths for common sensitive data
6
+ */
7
+ export const DEFAULT_REDACT_PATHS = [
8
+ 'apiKey',
9
+ 'token',
10
+ 'password',
11
+ 'secret',
12
+ 'key',
13
+ 'auth',
14
+ 'authorization',
15
+ 'credential',
16
+ 'credentials',
17
+ 'privateKey',
18
+ 'private_key',
19
+ 'publicKey',
20
+ 'public_key',
21
+ 'accessToken',
22
+ 'access_token',
23
+ 'refreshToken',
24
+ 'refresh_token',
25
+ ];
26
+ /**
27
+ * Patterns for detecting sensitive data
28
+ * @internal
29
+ */
30
+ export const SENSITIVE_PATTERNS = [
31
+ // API keys (common patterns)
32
+ /[a-zA-Z0-9]{32,}/gi,
33
+ // Bearer tokens
34
+ /Bearer\s+[a-zA-Z0-9\-._~+/]+=*/gi,
35
+ // Email addresses
36
+ /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/gi,
37
+ // IPv4 addresses
38
+ /\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b/g,
39
+ // UUIDs
40
+ /[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/gi,
41
+ ];
42
+ /**
43
+ * Redact a value if it matches sensitive patterns
44
+ */
45
+ export function redactValue(value) {
46
+ if (typeof value === 'string') {
47
+ return redactString(value);
48
+ }
49
+ if (typeof value === 'object' && value !== null) {
50
+ if (Array.isArray(value)) {
51
+ return value.map(redactValue);
52
+ }
53
+ return redactObject(value);
54
+ }
55
+ return value;
56
+ }
57
+ /**
58
+ * Redact sensitive data in strings
59
+ */
60
+ function redactString(str) {
61
+ let redacted = str;
62
+ // Apply all sensitive patterns
63
+ SENSITIVE_PATTERNS.forEach(pattern => {
64
+ redacted = redacted.replace(pattern, '[REDACTED]');
65
+ });
66
+ // Additional redactions for specific patterns
67
+ redacted = redacted
68
+ // JSON web tokens
69
+ .replace(/eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g, '[JWT-REDACTED]')
70
+ // Basic auth strings
71
+ .replace(/Basic\s+[A-Za-z0-9+/=]+/gi, '[BASIC-AUTH-REDACTED]')
72
+ // Hex strings that might be keys
73
+ .replace(/\b[0-9a-fA-F]{16,}\b/g, '[HEX-REDACTED]');
74
+ return redacted;
75
+ }
76
+ /**
77
+ * Redact sensitive data in objects
78
+ */
79
+ function redactObject(obj) {
80
+ const redacted = {};
81
+ for (const [key, value] of Object.entries(obj)) {
82
+ if (shouldRedactKey(key)) {
83
+ redacted[key] = '[REDACTED]';
84
+ }
85
+ else if (typeof value === 'string' &&
86
+ shouldRedactKey(key.toLowerCase())) {
87
+ redacted[key] = redactValue(value);
88
+ }
89
+ else {
90
+ redacted[key] = redactValue(value);
91
+ }
92
+ }
93
+ return redacted;
94
+ }
95
+ /**
96
+ * Check if a key should be redacted
97
+ */
98
+ function shouldRedactKey(key) {
99
+ const lowerKey = key.toLowerCase();
100
+ // Check exact matches
101
+ if (DEFAULT_REDACT_PATHS.some(path => lowerKey.includes(path))) {
102
+ return true;
103
+ }
104
+ // Check for email fields
105
+ if (lowerKey.includes('email')) {
106
+ return true;
107
+ }
108
+ // Check for user ID fields
109
+ if (lowerKey.includes('userid') || lowerKey.includes('user_id')) {
110
+ return true;
111
+ }
112
+ // Check for credit card fields
113
+ if (lowerKey.includes('card') || lowerKey.includes('credit')) {
114
+ return true;
115
+ }
116
+ return false;
117
+ }
118
+ /**
119
+ * Redact email addresses with partial masking
120
+ */
121
+ export function redactEmail(email) {
122
+ const emailRegex = /^[^@]+@[^@]+\.[^@]+$/;
123
+ if (!emailRegex.test(email)) {
124
+ return '[INVALID-EMAIL]';
125
+ }
126
+ const parts = email.split('@');
127
+ if (parts.length !== 2) {
128
+ throw new Error('Invalid email');
129
+ }
130
+ const [localPart, domain] = parts;
131
+ if (localPart.length <= 3) {
132
+ return `${localPart[0]}***@${domain}`;
133
+ }
134
+ return `${localPart.substring(0, 3)}***@${domain}`;
135
+ }
136
+ /**
137
+ * Redact user IDs with partial masking
138
+ */
139
+ export function redactUserId(userId) {
140
+ const str = String(userId);
141
+ if (str.length <= 4) {
142
+ return 'USER_ID_REDACTED';
143
+ }
144
+ return `${str.substring(0, 2)}***${str.substring(str.length - 2)}`;
145
+ }
146
+ /**
147
+ * Create redaction rules based on configuration
148
+ */
149
+ export function createRedactionRules(customPaths = [], emailRedaction = true, userIdRedaction = true) {
150
+ return {
151
+ patterns: [...SENSITIVE_PATTERNS],
152
+ customPaths: [...DEFAULT_REDACT_PATHS, ...customPaths],
153
+ emailRedaction,
154
+ userIdRedaction,
155
+ };
156
+ }
157
+ /**
158
+ * Apply redaction to a log entry
159
+ */
160
+ export function redactLogEntry(logEntry, rules) {
161
+ const redacted = {};
162
+ for (const [key, value] of Object.entries(logEntry)) {
163
+ // Skip system fields
164
+ if (['level', 'time', 'pid', 'hostname', 'msg'].includes(key)) {
165
+ redacted[key] = value;
166
+ continue;
167
+ }
168
+ // Apply email redaction if enabled
169
+ if (rules.emailRedaction &&
170
+ key.toLowerCase().includes('email') &&
171
+ typeof value === 'string') {
172
+ redacted[key] = redactEmail(value);
173
+ continue;
174
+ }
175
+ // Apply user ID redaction if enabled
176
+ if (rules.userIdRedaction &&
177
+ (key.toLowerCase().includes('userid') ||
178
+ key.toLowerCase().includes('user_id'))) {
179
+ redacted[key] = redactUserId(String(value));
180
+ continue;
181
+ }
182
+ // Check custom paths
183
+ if (rules.customPaths.some(path => key.toLowerCase().includes(path.toLowerCase()))) {
184
+ redacted[key] = '[REDACTED]';
185
+ continue;
186
+ }
187
+ // Apply general redaction
188
+ redacted[key] = redactValue(value);
189
+ }
190
+ return redacted;
191
+ }
192
+ /**
193
+ * Validate redaction rules
194
+ */
195
+ export function validateRedactionRules(rules) {
196
+ if (!Array.isArray(rules.customPaths)) {
197
+ return false;
198
+ }
199
+ if (!Array.isArray(rules.patterns)) {
200
+ return false;
201
+ }
202
+ if (typeof rules.emailRedaction !== 'boolean') {
203
+ return false;
204
+ }
205
+ if (typeof rules.userIdRedaction !== 'boolean') {
206
+ return false;
207
+ }
208
+ return true;
209
+ }
210
+ //# sourceMappingURL=redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../../source/utils/logging/redaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=redaction.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.spec.d.ts","sourceRoot":"","sources":["../../../source/utils/logging/redaction.spec.ts"],"names":[],"mappings":""}