tianxincode 1.0.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 (374) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +57 -0
  3. package/dist/api/api.types.d.ts +350 -0
  4. package/dist/api/api.types.d.ts.map +1 -0
  5. package/dist/api/api.types.js +12 -0
  6. package/dist/api/api.types.js.map +1 -0
  7. package/dist/api/chat.routes.d.ts +26 -0
  8. package/dist/api/chat.routes.d.ts.map +1 -0
  9. package/dist/api/chat.routes.js +275 -0
  10. package/dist/api/chat.routes.js.map +1 -0
  11. package/dist/api/config.routes.d.ts +10 -0
  12. package/dist/api/config.routes.d.ts.map +1 -0
  13. package/dist/api/config.routes.js +150 -0
  14. package/dist/api/config.routes.js.map +1 -0
  15. package/dist/api/db.routes.d.ts +12 -0
  16. package/dist/api/db.routes.d.ts.map +1 -0
  17. package/dist/api/db.routes.js +108 -0
  18. package/dist/api/db.routes.js.map +1 -0
  19. package/dist/api/files.routes.d.ts +14 -0
  20. package/dist/api/files.routes.d.ts.map +1 -0
  21. package/dist/api/files.routes.js +220 -0
  22. package/dist/api/files.routes.js.map +1 -0
  23. package/dist/api/filesystem.routes.d.ts +10 -0
  24. package/dist/api/filesystem.routes.d.ts.map +1 -0
  25. package/dist/api/filesystem.routes.js +181 -0
  26. package/dist/api/filesystem.routes.js.map +1 -0
  27. package/dist/api/index.d.ts +6 -0
  28. package/dist/api/index.d.ts.map +1 -0
  29. package/dist/api/index.js +25 -0
  30. package/dist/api/index.js.map +1 -0
  31. package/dist/api/lsp.d.ts +5 -0
  32. package/dist/api/lsp.d.ts.map +1 -0
  33. package/dist/api/lsp.js +103 -0
  34. package/dist/api/lsp.js.map +1 -0
  35. package/dist/api/projects.routes.d.ts +18 -0
  36. package/dist/api/projects.routes.d.ts.map +1 -0
  37. package/dist/api/projects.routes.js +306 -0
  38. package/dist/api/projects.routes.js.map +1 -0
  39. package/dist/api/session.routes.d.ts +18 -0
  40. package/dist/api/session.routes.d.ts.map +1 -0
  41. package/dist/api/session.routes.js +186 -0
  42. package/dist/api/session.routes.js.map +1 -0
  43. package/dist/api/skills.routes.d.ts +6 -0
  44. package/dist/api/skills.routes.d.ts.map +1 -0
  45. package/dist/api/skills.routes.js +54 -0
  46. package/dist/api/skills.routes.js.map +1 -0
  47. package/dist/cli/args.d.ts +49 -0
  48. package/dist/cli/args.d.ts.map +1 -0
  49. package/dist/cli/args.js +77 -0
  50. package/dist/cli/args.js.map +1 -0
  51. package/dist/cli/cli.types.d.ts +22 -0
  52. package/dist/cli/cli.types.d.ts.map +1 -0
  53. package/dist/cli/cli.types.js +5 -0
  54. package/dist/cli/cli.types.js.map +1 -0
  55. package/dist/cli/commands.d.ts +30 -0
  56. package/dist/cli/commands.d.ts.map +1 -0
  57. package/dist/cli/commands.js +263 -0
  58. package/dist/cli/commands.js.map +1 -0
  59. package/dist/cli/index.d.ts +7 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +6 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/components/App.d.ts +34 -0
  64. package/dist/components/App.d.ts.map +1 -0
  65. package/dist/components/App.js +639 -0
  66. package/dist/components/App.js.map +1 -0
  67. package/dist/config/index.d.ts +2 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +2 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/tx.config.d.ts +31 -0
  72. package/dist/config/tx.config.d.ts.map +1 -0
  73. package/dist/config/tx.config.js +29 -0
  74. package/dist/config/tx.config.js.map +1 -0
  75. package/dist/index.d.ts +15 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +79 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/lsp/client.d.ts +55 -0
  80. package/dist/lsp/client.d.ts.map +1 -0
  81. package/dist/lsp/client.js +252 -0
  82. package/dist/lsp/client.js.map +1 -0
  83. package/dist/lsp/downloader.d.ts +17 -0
  84. package/dist/lsp/downloader.d.ts.map +1 -0
  85. package/dist/lsp/downloader.js +302 -0
  86. package/dist/lsp/downloader.js.map +1 -0
  87. package/dist/lsp/index.d.ts +13 -0
  88. package/dist/lsp/index.d.ts.map +1 -0
  89. package/dist/lsp/index.js +30 -0
  90. package/dist/lsp/index.js.map +1 -0
  91. package/dist/lsp/launch.d.ts +17 -0
  92. package/dist/lsp/launch.d.ts.map +1 -0
  93. package/dist/lsp/launch.js +69 -0
  94. package/dist/lsp/launch.js.map +1 -0
  95. package/dist/lsp/manager.d.ts +19 -0
  96. package/dist/lsp/manager.d.ts.map +1 -0
  97. package/dist/lsp/manager.js +251 -0
  98. package/dist/lsp/manager.js.map +1 -0
  99. package/dist/lsp/server.d.ts +11 -0
  100. package/dist/lsp/server.d.ts.map +1 -0
  101. package/dist/lsp/server.js +302 -0
  102. package/dist/lsp/server.js.map +1 -0
  103. package/dist/lsp/sql.d.ts +11 -0
  104. package/dist/lsp/sql.d.ts.map +1 -0
  105. package/dist/lsp/sql.js +23 -0
  106. package/dist/lsp/sql.js.map +1 -0
  107. package/dist/lsp/types.d.ts +58 -0
  108. package/dist/lsp/types.d.ts.map +1 -0
  109. package/dist/lsp/types.js +13 -0
  110. package/dist/lsp/types.js.map +1 -0
  111. package/dist/modules/ai/ai.service.d.ts +182 -0
  112. package/dist/modules/ai/ai.service.d.ts.map +1 -0
  113. package/dist/modules/ai/ai.service.js +280 -0
  114. package/dist/modules/ai/ai.service.js.map +1 -0
  115. package/dist/modules/ai/ai.types.d.ts +54 -0
  116. package/dist/modules/ai/ai.types.d.ts.map +1 -0
  117. package/dist/modules/ai/ai.types.js +2 -0
  118. package/dist/modules/ai/ai.types.js.map +1 -0
  119. package/dist/modules/ai/index.d.ts +6 -0
  120. package/dist/modules/ai/index.d.ts.map +1 -0
  121. package/dist/modules/ai/index.js +5 -0
  122. package/dist/modules/ai/index.js.map +1 -0
  123. package/dist/modules/ai/openai.provider.d.ts +138 -0
  124. package/dist/modules/ai/openai.provider.d.ts.map +1 -0
  125. package/dist/modules/ai/openai.provider.js +279 -0
  126. package/dist/modules/ai/openai.provider.js.map +1 -0
  127. package/dist/modules/ai/react/index.d.ts +5 -0
  128. package/dist/modules/ai/react/index.d.ts.map +1 -0
  129. package/dist/modules/ai/react/index.js +4 -0
  130. package/dist/modules/ai/react/index.js.map +1 -0
  131. package/dist/modules/ai/react/prompt/role.txt +51 -0
  132. package/dist/modules/ai/react/react.parser.d.ts +75 -0
  133. package/dist/modules/ai/react/react.parser.d.ts.map +1 -0
  134. package/dist/modules/ai/react/react.parser.js +278 -0
  135. package/dist/modules/ai/react/react.parser.js.map +1 -0
  136. package/dist/modules/ai/react/react.prompts.d.ts +26 -0
  137. package/dist/modules/ai/react/react.prompts.d.ts.map +1 -0
  138. package/dist/modules/ai/react/react.prompts.js +180 -0
  139. package/dist/modules/ai/react/react.prompts.js.map +1 -0
  140. package/dist/modules/ai/react/react.types.d.ts +47 -0
  141. package/dist/modules/ai/react/react.types.d.ts.map +1 -0
  142. package/dist/modules/ai/react/react.types.js +2 -0
  143. package/dist/modules/ai/react/react.types.js.map +1 -0
  144. package/dist/modules/ai/react.agent.d.ts +40 -0
  145. package/dist/modules/ai/react.agent.d.ts.map +1 -0
  146. package/dist/modules/ai/react.agent.js +136 -0
  147. package/dist/modules/ai/react.agent.js.map +1 -0
  148. package/dist/modules/ai/summarizer/index.d.ts +4 -0
  149. package/dist/modules/ai/summarizer/index.d.ts.map +1 -0
  150. package/dist/modules/ai/summarizer/index.js +3 -0
  151. package/dist/modules/ai/summarizer/index.js.map +1 -0
  152. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts +15 -0
  153. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts.map +1 -0
  154. package/dist/modules/ai/summarizer/summarizer.prompts.js +47 -0
  155. package/dist/modules/ai/summarizer/summarizer.prompts.js.map +1 -0
  156. package/dist/modules/ai/summarizer/summarizer.service.d.ts +24 -0
  157. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -0
  158. package/dist/modules/ai/summarizer/summarizer.service.js +153 -0
  159. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -0
  160. package/dist/modules/ai/summarizer/summarizer.types.d.ts +21 -0
  161. package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -0
  162. package/dist/modules/ai/summarizer/summarizer.types.js +5 -0
  163. package/dist/modules/ai/summarizer/summarizer.types.js.map +1 -0
  164. package/dist/modules/config/config.service.d.ts +32 -0
  165. package/dist/modules/config/config.service.d.ts.map +1 -0
  166. package/dist/modules/config/config.service.js +163 -0
  167. package/dist/modules/config/config.service.js.map +1 -0
  168. package/dist/modules/config/config.types.d.ts +44 -0
  169. package/dist/modules/config/config.types.d.ts.map +1 -0
  170. package/dist/modules/config/config.types.js +21 -0
  171. package/dist/modules/config/config.types.js.map +1 -0
  172. package/dist/modules/config/index.d.ts +10 -0
  173. package/dist/modules/config/index.d.ts.map +1 -0
  174. package/dist/modules/config/index.js +10 -0
  175. package/dist/modules/config/index.js.map +1 -0
  176. package/dist/modules/context/context.service.d.ts +46 -0
  177. package/dist/modules/context/context.service.d.ts.map +1 -0
  178. package/dist/modules/context/context.service.js +216 -0
  179. package/dist/modules/context/context.service.js.map +1 -0
  180. package/dist/modules/context/context.types.d.ts +30 -0
  181. package/dist/modules/context/context.types.d.ts.map +1 -0
  182. package/dist/modules/context/context.types.js +5 -0
  183. package/dist/modules/context/context.types.js.map +1 -0
  184. package/dist/modules/context/index.d.ts +10 -0
  185. package/dist/modules/context/index.d.ts.map +1 -0
  186. package/dist/modules/context/index.js +10 -0
  187. package/dist/modules/context/index.js.map +1 -0
  188. package/dist/modules/db/db.service.d.ts +97 -0
  189. package/dist/modules/db/db.service.d.ts.map +1 -0
  190. package/dist/modules/db/db.service.js +387 -0
  191. package/dist/modules/db/db.service.js.map +1 -0
  192. package/dist/modules/db/db.types.d.ts +8 -0
  193. package/dist/modules/db/db.types.d.ts.map +1 -0
  194. package/dist/modules/db/db.types.js +7 -0
  195. package/dist/modules/db/db.types.js.map +1 -0
  196. package/dist/modules/db/index.d.ts +10 -0
  197. package/dist/modules/db/index.d.ts.map +1 -0
  198. package/dist/modules/db/index.js +9 -0
  199. package/dist/modules/db/index.js.map +1 -0
  200. package/dist/modules/logger/index.d.ts +2 -0
  201. package/dist/modules/logger/index.d.ts.map +1 -0
  202. package/dist/modules/logger/index.js +2 -0
  203. package/dist/modules/logger/index.js.map +1 -0
  204. package/dist/modules/logger/logger.d.ts +26 -0
  205. package/dist/modules/logger/logger.d.ts.map +1 -0
  206. package/dist/modules/logger/logger.js +57 -0
  207. package/dist/modules/logger/logger.js.map +1 -0
  208. package/dist/modules/memory/index.d.ts +9 -0
  209. package/dist/modules/memory/index.d.ts.map +1 -0
  210. package/dist/modules/memory/index.js +9 -0
  211. package/dist/modules/memory/index.js.map +1 -0
  212. package/dist/modules/memory/memory.service.d.ts +191 -0
  213. package/dist/modules/memory/memory.service.d.ts.map +1 -0
  214. package/dist/modules/memory/memory.service.js +282 -0
  215. package/dist/modules/memory/memory.service.js.map +1 -0
  216. package/dist/modules/memory/memory.types.d.ts +13 -0
  217. package/dist/modules/memory/memory.types.d.ts.map +1 -0
  218. package/dist/modules/memory/memory.types.js +5 -0
  219. package/dist/modules/memory/memory.types.js.map +1 -0
  220. package/dist/modules/session/index.d.ts +9 -0
  221. package/dist/modules/session/index.d.ts.map +1 -0
  222. package/dist/modules/session/index.js +9 -0
  223. package/dist/modules/session/index.js.map +1 -0
  224. package/dist/modules/session/session.service.d.ts +252 -0
  225. package/dist/modules/session/session.service.d.ts.map +1 -0
  226. package/dist/modules/session/session.service.js +406 -0
  227. package/dist/modules/session/session.service.js.map +1 -0
  228. package/dist/modules/session/session.types.d.ts +34 -0
  229. package/dist/modules/session/session.types.d.ts.map +1 -0
  230. package/dist/modules/session/session.types.js +5 -0
  231. package/dist/modules/session/session.types.js.map +1 -0
  232. package/dist/modules/skill/index.d.ts +8 -0
  233. package/dist/modules/skill/index.d.ts.map +1 -0
  234. package/dist/modules/skill/index.js +7 -0
  235. package/dist/modules/skill/index.js.map +1 -0
  236. package/dist/modules/skill/skill.service.d.ts +72 -0
  237. package/dist/modules/skill/skill.service.d.ts.map +1 -0
  238. package/dist/modules/skill/skill.service.js +283 -0
  239. package/dist/modules/skill/skill.service.js.map +1 -0
  240. package/dist/modules/skill/skill.tool.d.ts +19 -0
  241. package/dist/modules/skill/skill.tool.d.ts.map +1 -0
  242. package/dist/modules/skill/skill.tool.js +92 -0
  243. package/dist/modules/skill/skill.tool.js.map +1 -0
  244. package/dist/modules/skill/skill.txt +18 -0
  245. package/dist/modules/skill/skill.types.d.ts +40 -0
  246. package/dist/modules/skill/skill.types.d.ts.map +1 -0
  247. package/dist/modules/skill/skill.types.js +6 -0
  248. package/dist/modules/skill/skill.types.js.map +1 -0
  249. package/dist/modules/skill/skills.manager.d.ts +30 -0
  250. package/dist/modules/skill/skills.manager.d.ts.map +1 -0
  251. package/dist/modules/skill/skills.manager.js +182 -0
  252. package/dist/modules/skill/skills.manager.js.map +1 -0
  253. package/dist/modules/tools/builtin/bash.d.ts +3 -0
  254. package/dist/modules/tools/builtin/bash.d.ts.map +1 -0
  255. package/dist/modules/tools/builtin/bash.js +124 -0
  256. package/dist/modules/tools/builtin/bash.js.map +1 -0
  257. package/dist/modules/tools/builtin/bash.tool.d.ts +6 -0
  258. package/dist/modules/tools/builtin/bash.tool.d.ts.map +1 -0
  259. package/dist/modules/tools/builtin/bash.tool.js +52 -0
  260. package/dist/modules/tools/builtin/bash.tool.js.map +1 -0
  261. package/dist/modules/tools/builtin/bash.txt +81 -0
  262. package/dist/modules/tools/builtin/code_search.d.ts +3 -0
  263. package/dist/modules/tools/builtin/code_search.d.ts.map +1 -0
  264. package/dist/modules/tools/builtin/code_search.js +85 -0
  265. package/dist/modules/tools/builtin/code_search.js.map +1 -0
  266. package/dist/modules/tools/builtin/code_search.txt +18 -0
  267. package/dist/modules/tools/builtin/edit-file.tool.d.ts +6 -0
  268. package/dist/modules/tools/builtin/edit-file.tool.d.ts.map +1 -0
  269. package/dist/modules/tools/builtin/edit-file.tool.js +58 -0
  270. package/dist/modules/tools/builtin/edit-file.tool.js.map +1 -0
  271. package/dist/modules/tools/builtin/edit_file.d.ts +3 -0
  272. package/dist/modules/tools/builtin/edit_file.d.ts.map +1 -0
  273. package/dist/modules/tools/builtin/edit_file.js +69 -0
  274. package/dist/modules/tools/builtin/edit_file.js.map +1 -0
  275. package/dist/modules/tools/builtin/edit_file.txt +10 -0
  276. package/dist/modules/tools/builtin/glob.d.ts +3 -0
  277. package/dist/modules/tools/builtin/glob.d.ts.map +1 -0
  278. package/dist/modules/tools/builtin/glob.js +84 -0
  279. package/dist/modules/tools/builtin/glob.js.map +1 -0
  280. package/dist/modules/tools/builtin/glob.tool.d.ts +6 -0
  281. package/dist/modules/tools/builtin/glob.tool.d.ts.map +1 -0
  282. package/dist/modules/tools/builtin/glob.tool.js +81 -0
  283. package/dist/modules/tools/builtin/glob.tool.js.map +1 -0
  284. package/dist/modules/tools/builtin/glob.txt +10 -0
  285. package/dist/modules/tools/builtin/grep.d.ts +3 -0
  286. package/dist/modules/tools/builtin/grep.d.ts.map +1 -0
  287. package/dist/modules/tools/builtin/grep.js +93 -0
  288. package/dist/modules/tools/builtin/grep.js.map +1 -0
  289. package/dist/modules/tools/builtin/grep.tool.d.ts +6 -0
  290. package/dist/modules/tools/builtin/grep.tool.d.ts.map +1 -0
  291. package/dist/modules/tools/builtin/grep.tool.js +96 -0
  292. package/dist/modules/tools/builtin/grep.tool.js.map +1 -0
  293. package/dist/modules/tools/builtin/grep.txt +12 -0
  294. package/dist/modules/tools/builtin/index.d.ts +8 -0
  295. package/dist/modules/tools/builtin/index.d.ts.map +1 -0
  296. package/dist/modules/tools/builtin/index.js +88 -0
  297. package/dist/modules/tools/builtin/index.js.map +1 -0
  298. package/dist/modules/tools/builtin/lsp.d.ts +7 -0
  299. package/dist/modules/tools/builtin/lsp.d.ts.map +1 -0
  300. package/dist/modules/tools/builtin/lsp.js +125 -0
  301. package/dist/modules/tools/builtin/lsp.js.map +1 -0
  302. package/dist/modules/tools/builtin/lsp.txt +19 -0
  303. package/dist/modules/tools/builtin/memory.d.ts +3 -0
  304. package/dist/modules/tools/builtin/memory.d.ts.map +1 -0
  305. package/dist/modules/tools/builtin/memory.js +76 -0
  306. package/dist/modules/tools/builtin/memory.js.map +1 -0
  307. package/dist/modules/tools/builtin/memory.txt +36 -0
  308. package/dist/modules/tools/builtin/read-file.tool.d.ts +6 -0
  309. package/dist/modules/tools/builtin/read-file.tool.d.ts.map +1 -0
  310. package/dist/modules/tools/builtin/read-file.tool.js +46 -0
  311. package/dist/modules/tools/builtin/read-file.tool.js.map +1 -0
  312. package/dist/modules/tools/builtin/read_file.d.ts +3 -0
  313. package/dist/modules/tools/builtin/read_file.d.ts.map +1 -0
  314. package/dist/modules/tools/builtin/read_file.js +99 -0
  315. package/dist/modules/tools/builtin/read_file.js.map +1 -0
  316. package/dist/modules/tools/builtin/read_file.txt +15 -0
  317. package/dist/modules/tools/builtin/todo_read.d.ts +6 -0
  318. package/dist/modules/tools/builtin/todo_read.d.ts.map +1 -0
  319. package/dist/modules/tools/builtin/todo_read.js +24 -0
  320. package/dist/modules/tools/builtin/todo_read.js.map +1 -0
  321. package/dist/modules/tools/builtin/todo_read.txt +14 -0
  322. package/dist/modules/tools/builtin/todo_write.d.ts +6 -0
  323. package/dist/modules/tools/builtin/todo_write.d.ts.map +1 -0
  324. package/dist/modules/tools/builtin/todo_write.js +45 -0
  325. package/dist/modules/tools/builtin/todo_write.js.map +1 -0
  326. package/dist/modules/tools/builtin/todo_write.txt +46 -0
  327. package/dist/modules/tools/builtin/web_fetch.d.ts +3 -0
  328. package/dist/modules/tools/builtin/web_fetch.d.ts.map +1 -0
  329. package/dist/modules/tools/builtin/web_fetch.js +51 -0
  330. package/dist/modules/tools/builtin/web_fetch.js.map +1 -0
  331. package/dist/modules/tools/builtin/web_fetch.txt +15 -0
  332. package/dist/modules/tools/builtin/web_search.d.ts +3 -0
  333. package/dist/modules/tools/builtin/web_search.d.ts.map +1 -0
  334. package/dist/modules/tools/builtin/web_search.js +99 -0
  335. package/dist/modules/tools/builtin/web_search.js.map +1 -0
  336. package/dist/modules/tools/builtin/web_search.txt +16 -0
  337. package/dist/modules/tools/builtin/write-file.tool.d.ts +6 -0
  338. package/dist/modules/tools/builtin/write-file.tool.d.ts.map +1 -0
  339. package/dist/modules/tools/builtin/write-file.tool.js +38 -0
  340. package/dist/modules/tools/builtin/write-file.tool.js.map +1 -0
  341. package/dist/modules/tools/builtin/write_file.d.ts +3 -0
  342. package/dist/modules/tools/builtin/write_file.d.ts.map +1 -0
  343. package/dist/modules/tools/builtin/write_file.js +46 -0
  344. package/dist/modules/tools/builtin/write_file.js.map +1 -0
  345. package/dist/modules/tools/builtin/write_file.txt +9 -0
  346. package/dist/modules/tools/index.d.ts +11 -0
  347. package/dist/modules/tools/index.d.ts.map +1 -0
  348. package/dist/modules/tools/index.js +10 -0
  349. package/dist/modules/tools/index.js.map +1 -0
  350. package/dist/modules/tools/tool.service.d.ts +207 -0
  351. package/dist/modules/tools/tool.service.d.ts.map +1 -0
  352. package/dist/modules/tools/tool.service.js +331 -0
  353. package/dist/modules/tools/tool.service.js.map +1 -0
  354. package/dist/modules/tools/tool.types.d.ts +39 -0
  355. package/dist/modules/tools/tool.types.d.ts.map +1 -0
  356. package/dist/modules/tools/tool.types.js +5 -0
  357. package/dist/modules/tools/tool.types.js.map +1 -0
  358. package/dist/web/index.d.ts +10 -0
  359. package/dist/web/index.d.ts.map +1 -0
  360. package/dist/web/index.js +20 -0
  361. package/dist/web/index.js.map +1 -0
  362. package/dist/web/web.service.d.ts +95 -0
  363. package/dist/web/web.service.d.ts.map +1 -0
  364. package/dist/web/web.service.js +396 -0
  365. package/dist/web/web.service.js.map +1 -0
  366. package/package.json +57 -0
  367. package/web/dist/assets/Layout-Bb76CGAL.js +1 -0
  368. package/web/dist/assets/element-icons-B-tDfklg.woff +0 -0
  369. package/web/dist/assets/element-icons-_lZGOqcG.ttf +0 -0
  370. package/web/dist/assets/index-DQRR0ggU.js +199 -0
  371. package/web/dist/assets/index-KTH-myBB.css +1 -0
  372. package/web/dist/index.html +14 -0
  373. package/web/index.html +13 -0
  374. package/web/package.json +24 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * 数据库服务
3
+ *
4
+ * 职责:
5
+ * - 管理 SQLite 数据库连接
6
+ * - 执行数据库迁移
7
+ * - 提供基础的 CRUD 操作
8
+ *
9
+ * 使用方式:
10
+ * ```typescript
11
+ * import { dbService } from './db.js';
12
+ * dbService.init();
13
+ * const result = dbService.run('SELECT * FROM users');
14
+ * ```
15
+ */
16
+ import Database from 'better-sqlite3';
17
+ export declare class DbService {
18
+ /** 数据库实例,延迟初始化 */
19
+ private db;
20
+ /** 数据库文件路径 */
21
+ private dbPath;
22
+ constructor(dbPath?: string);
23
+ /**
24
+ * 初始化数据库
25
+ *
26
+ * 执行操作:
27
+ * 1. 创建数据库连接
28
+ * 2. 设置 WAL 模式
29
+ * 3. 启用外键约束
30
+ * 4. 执行迁移
31
+ */
32
+ init(): void;
33
+ /**
34
+ * 重置数据库(仅用于测试)
35
+ */
36
+ reset(): void;
37
+ /**
38
+ * 获取数据库实例
39
+ *
40
+ * @returns 数据库实例
41
+ * @throws 如果未初始化则抛出错误
42
+ */
43
+ getDb(): Database.Database;
44
+ /**
45
+ * 执行 SQL 语句
46
+ *
47
+ * @param sql - SQL 语句
48
+ * @param params - 参数数组
49
+ * @returns 执行结果
50
+ */
51
+ run(sql: string, params?: unknown[]): Database.RunResult;
52
+ /**
53
+ * 查询单条记录
54
+ *
55
+ * @param sql - SQL 语句
56
+ * @param params - 参数数组
57
+ * @returns 查询结果,未找到返回 undefined
58
+ */
59
+ get<T>(sql: string, params?: unknown[]): T | undefined;
60
+ /**
61
+ * 查询多条记录
62
+ *
63
+ * @param sql - SQL 语句
64
+ * @param params - 参数数组
65
+ * @returns 查询结果数组
66
+ */
67
+ all<T>(sql: string, params?: unknown[]): T[];
68
+ /**
69
+ * 执行事务
70
+ *
71
+ * @param fn - 事务函数
72
+ * @returns 事务返回值
73
+ */
74
+ transaction<T>(fn: () => T): T;
75
+ /**
76
+ * 关闭数据库连接
77
+ */
78
+ close(): void;
79
+ /**
80
+ * 执行数据库迁移
81
+ *
82
+ * 迁移表结构:
83
+ * - migrations: 记录已执行的迁移
84
+ */
85
+ private runMigrations;
86
+ /** 初始迁移:创建所有基础表 */
87
+ private migration001Initial;
88
+ /** 迁移002:添加上下文压缩相关字段 */
89
+ private migration002AddContextFields;
90
+ /** 迁移003:添加 LSP 服务器表 */
91
+ private migration003AddLspServers;
92
+ /** 迁移004:添加项目表 */
93
+ private migration004AddProjects;
94
+ }
95
+ /** 单例导出 */
96
+ export declare const dbService: DbService;
97
+ //# sourceMappingURL=db.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.service.d.ts","sourceRoot":"","sources":["../../../src/modules/db/db.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,qBAAa,SAAS;IACpB,kBAAkB;IAClB,OAAO,CAAC,EAAE,CAAkC;IAE5C,cAAc;IACd,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAW3B;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI;IAUZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;;;OAKG;IACH,KAAK,IAAI,QAAQ,CAAC,QAAQ;IAO1B;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS;IAOxD;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS;IAOtD;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;IAO5C;;;;;OAKG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI9B;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAmCrB,mBAAmB;IACnB,OAAO,CAAC,mBAAmB;IAwH3B,wBAAwB;IACxB,OAAO,CAAC,4BAA4B;IAkFpC,wBAAwB;IACxB,OAAO,CAAC,yBAAyB;IA4BjC,kBAAkB;IAClB,OAAO,CAAC,uBAAuB;CAkBhC;AAED,WAAW;AACX,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -0,0 +1,387 @@
1
+ /**
2
+ * 数据库服务
3
+ *
4
+ * 职责:
5
+ * - 管理 SQLite 数据库连接
6
+ * - 执行数据库迁移
7
+ * - 提供基础的 CRUD 操作
8
+ *
9
+ * 使用方式:
10
+ * ```typescript
11
+ * import { dbService } from './db.js';
12
+ * dbService.init();
13
+ * const result = dbService.run('SELECT * FROM users');
14
+ * ```
15
+ */
16
+ import Database from 'better-sqlite3';
17
+ import * as path from 'path';
18
+ import * as fs from 'fs';
19
+ export class DbService {
20
+ constructor(dbPath) {
21
+ /** 数据库实例,延迟初始化 */
22
+ this.db = null;
23
+ const home = process.env.HOME || process.env.USERPROFILE || '.';
24
+ const txcodeDir = path.join(home, '.txcode');
25
+ if (!fs.existsSync(txcodeDir)) {
26
+ fs.mkdirSync(txcodeDir, { recursive: true });
27
+ }
28
+ this.dbPath = dbPath || path.join(txcodeDir, 'data.db');
29
+ }
30
+ /**
31
+ * 初始化数据库
32
+ *
33
+ * 执行操作:
34
+ * 1. 创建数据库连接
35
+ * 2. 设置 WAL 模式
36
+ * 3. 启用外键约束
37
+ * 4. 执行迁移
38
+ */
39
+ init() {
40
+ if (this.db) {
41
+ this.db.close();
42
+ }
43
+ this.db = new Database(this.dbPath);
44
+ this.db.pragma('journal_mode = WAL');
45
+ this.db.pragma('foreign_keys = ON');
46
+ this.runMigrations();
47
+ }
48
+ /**
49
+ * 重置数据库(仅用于测试)
50
+ */
51
+ reset() {
52
+ if (this.db) {
53
+ this.db.close();
54
+ this.db = null;
55
+ }
56
+ this.init();
57
+ }
58
+ /**
59
+ * 获取数据库实例
60
+ *
61
+ * @returns 数据库实例
62
+ * @throws 如果未初始化则抛出错误
63
+ */
64
+ getDb() {
65
+ if (!this.db) {
66
+ this.init();
67
+ }
68
+ return this.db;
69
+ }
70
+ /**
71
+ * 执行 SQL 语句
72
+ *
73
+ * @param sql - SQL 语句
74
+ * @param params - 参数数组
75
+ * @returns 执行结果
76
+ */
77
+ run(sql, params) {
78
+ if (params && params.length > 0) {
79
+ return this.getDb().prepare(sql).run(...params);
80
+ }
81
+ return this.getDb().prepare(sql).run();
82
+ }
83
+ /**
84
+ * 查询单条记录
85
+ *
86
+ * @param sql - SQL 语句
87
+ * @param params - 参数数组
88
+ * @returns 查询结果,未找到返回 undefined
89
+ */
90
+ get(sql, params) {
91
+ if (params && params.length > 0) {
92
+ return this.getDb().prepare(sql).get(...params);
93
+ }
94
+ return this.getDb().prepare(sql).get();
95
+ }
96
+ /**
97
+ * 查询多条记录
98
+ *
99
+ * @param sql - SQL 语句
100
+ * @param params - 参数数组
101
+ * @returns 查询结果数组
102
+ */
103
+ all(sql, params) {
104
+ if (params && params.length > 0) {
105
+ return this.getDb().prepare(sql).all(...params);
106
+ }
107
+ return this.getDb().prepare(sql).all();
108
+ }
109
+ /**
110
+ * 执行事务
111
+ *
112
+ * @param fn - 事务函数
113
+ * @returns 事务返回值
114
+ */
115
+ transaction(fn) {
116
+ return this.getDb().transaction(fn)();
117
+ }
118
+ /**
119
+ * 关闭数据库连接
120
+ */
121
+ close() {
122
+ if (this.db) {
123
+ this.db.close();
124
+ this.db = null;
125
+ }
126
+ }
127
+ /**
128
+ * 执行数据库迁移
129
+ *
130
+ * 迁移表结构:
131
+ * - migrations: 记录已执行的迁移
132
+ */
133
+ runMigrations() {
134
+ if (!this.db)
135
+ throw new Error('Database not initialized');
136
+ this.db.exec(`
137
+ CREATE TABLE IF NOT EXISTS migrations (
138
+ id INTEGER PRIMARY KEY,
139
+ name TEXT NOT NULL,
140
+ applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
141
+ )
142
+ `);
143
+ const migrations = [
144
+ () => this.migration001Initial(),
145
+ () => this.migration002AddContextFields(),
146
+ () => this.migration003AddLspServers(),
147
+ () => this.migration004AddProjects(),
148
+ ];
149
+ for (let i = 0; i < migrations.length; i++) {
150
+ const migration = migrations[i];
151
+ const migrationId = i + 1;
152
+ const applied = this.db.prepare('SELECT 1 FROM migrations WHERE id = ?').get(migrationId);
153
+ if (!applied) {
154
+ migration();
155
+ this.db.prepare('INSERT INTO migrations (id, name) VALUES (?, ?)').run(migrationId, migration.name);
156
+ }
157
+ }
158
+ }
159
+ /** 初始迁移:创建所有基础表 */
160
+ migration001Initial() {
161
+ if (!this.db)
162
+ return;
163
+ // 会话表
164
+ this.db.exec(`
165
+ CREATE TABLE IF NOT EXISTS sessions (
166
+ id TEXT PRIMARY KEY,
167
+ title TEXT NOT NULL,
168
+ project_path TEXT,
169
+ summary_message_id INTEGER,
170
+ prompt_tokens INTEGER DEFAULT 0,
171
+ completion_tokens INTEGER DEFAULT 0,
172
+ cost REAL DEFAULT 0,
173
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
174
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
175
+ )
176
+ `);
177
+ // 消息表(包含永久/临时记忆标记)
178
+ this.db.exec(`
179
+ CREATE TABLE IF NOT EXISTS messages (
180
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
181
+ session_id TEXT NOT NULL,
182
+ role TEXT NOT NULL CHECK (role IN ('user', 'assistant', 'system', 'tool')),
183
+ content TEXT NOT NULL,
184
+ keep_context INTEGER DEFAULT 1,
185
+ is_original INTEGER DEFAULT 0,
186
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
187
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
188
+ )
189
+ `);
190
+ // 项目知识表
191
+ this.db.exec(`
192
+ CREATE TABLE IF NOT EXISTS project_knowledge (
193
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
194
+ project_path TEXT NOT NULL,
195
+ key TEXT NOT NULL,
196
+ value TEXT NOT NULL,
197
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
198
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
199
+ UNIQUE(project_path, key)
200
+ )
201
+ `);
202
+ // 代码片段表
203
+ this.db.exec(`
204
+ CREATE TABLE IF NOT EXISTS code_snippets (
205
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
206
+ session_id TEXT,
207
+ lang TEXT NOT NULL,
208
+ description TEXT,
209
+ code TEXT NOT NULL,
210
+ tags TEXT,
211
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
212
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
213
+ )
214
+ `);
215
+ // 服务商表
216
+ this.db.exec(`
217
+ CREATE TABLE IF NOT EXISTS providers (
218
+ id TEXT PRIMARY KEY,
219
+ name TEXT NOT NULL,
220
+ api_key TEXT NOT NULL,
221
+ base_url TEXT DEFAULT 'https://api.openai.com/v1',
222
+ enabled INTEGER DEFAULT 1,
223
+ is_default INTEGER DEFAULT 0,
224
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
225
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
226
+ )
227
+ `);
228
+ // 模型表
229
+ this.db.exec(`
230
+ CREATE TABLE IF NOT EXISTS models (
231
+ id TEXT PRIMARY KEY,
232
+ provider_id TEXT NOT NULL,
233
+ name TEXT NOT NULL,
234
+ context_window INTEGER DEFAULT 4096,
235
+ max_output_tokens INTEGER DEFAULT 4096,
236
+ supports_vision INTEGER DEFAULT 0,
237
+ supports_tools INTEGER DEFAULT 1,
238
+ enabled INTEGER DEFAULT 1,
239
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
240
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
241
+ FOREIGN KEY (provider_id) REFERENCES providers(id) ON DELETE CASCADE
242
+ )
243
+ `);
244
+ // 配置表
245
+ this.db.exec(`
246
+ CREATE TABLE IF NOT EXISTS config (
247
+ key TEXT PRIMARY KEY,
248
+ value TEXT NOT NULL,
249
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
250
+ )
251
+ `);
252
+ // 创建索引
253
+ this.db.exec(`
254
+ CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id);
255
+ CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at);
256
+ CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context);
257
+ CREATE INDEX IF NOT EXISTS idx_project_knowledge_path ON project_knowledge(project_path);
258
+ CREATE INDEX IF NOT EXISTS idx_code_snippets_session ON code_snippets(session_id);
259
+ CREATE INDEX IF NOT EXISTS idx_models_provider ON models(provider_id);
260
+ CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id);
261
+ `);
262
+ // 初始化默认配置
263
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxToolIterations', '10')`);
264
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxSessionCompression', '5')`);
265
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('web.port', '40000')`);
266
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
267
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '10000')`);
268
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
269
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
270
+ }
271
+ /** 迁移002:添加上下文压缩相关字段 */
272
+ migration002AddContextFields() {
273
+ if (!this.db)
274
+ return;
275
+ // 检查 sessions 表是否需要添加新字段
276
+ const sessionsInfo = this.db.pragma('table_info(sessions)');
277
+ const sessionsColumns = sessionsInfo.map(col => col.name);
278
+ if (!sessionsColumns.includes('summary_message_id')) {
279
+ this.db.exec(`ALTER TABLE sessions ADD COLUMN summary_message_id INTEGER`);
280
+ }
281
+ if (!sessionsColumns.includes('prompt_tokens')) {
282
+ this.db.exec(`ALTER TABLE sessions ADD COLUMN prompt_tokens INTEGER DEFAULT 0`);
283
+ }
284
+ if (!sessionsColumns.includes('completion_tokens')) {
285
+ this.db.exec(`ALTER TABLE sessions ADD COLUMN completion_tokens INTEGER DEFAULT 0`);
286
+ }
287
+ if (!sessionsColumns.includes('cost')) {
288
+ this.db.exec(`ALTER TABLE sessions ADD COLUMN cost REAL DEFAULT 0`);
289
+ }
290
+ // 检查 messages 表是否需要迁移 is_permanent 到 keep_context
291
+ const messagesInfo = this.db.pragma('table_info(messages)');
292
+ const messagesColumns = messagesInfo.map(col => col.name);
293
+ // 如果有 is_permanent 但没有 keep_context,重命名
294
+ if (messagesColumns.includes('is_permanent') && !messagesColumns.includes('keep_context')) {
295
+ this.db.exec(`ALTER TABLE messages RENAME COLUMN is_permanent TO keep_context`);
296
+ }
297
+ else if (!messagesColumns.includes('keep_context')) {
298
+ this.db.exec(`ALTER TABLE messages ADD COLUMN keep_context INTEGER DEFAULT 1`);
299
+ }
300
+ // 检查 models 表是否需要添加新字段
301
+ const modelsInfo = this.db.pragma('table_info(models)');
302
+ const modelsColumns = modelsInfo.map(col => col.name);
303
+ if (!modelsColumns.includes('context_window')) {
304
+ this.db.exec(`ALTER TABLE models ADD COLUMN context_window INTEGER DEFAULT 4096`);
305
+ }
306
+ if (!modelsColumns.includes('max_output_tokens')) {
307
+ this.db.exec(`ALTER TABLE models ADD COLUMN max_output_tokens INTEGER DEFAULT 4096`);
308
+ }
309
+ if (!modelsColumns.includes('supports_vision')) {
310
+ this.db.exec(`ALTER TABLE models ADD COLUMN supports_vision INTEGER DEFAULT 0`);
311
+ }
312
+ if (!modelsColumns.includes('supports_tools')) {
313
+ this.db.exec(`ALTER TABLE models ADD COLUMN supports_tools INTEGER DEFAULT 1`);
314
+ }
315
+ // 创建索引
316
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id)`);
317
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context)`);
318
+ // 初始化默认配置
319
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
320
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '10000')`);
321
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
322
+ this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
323
+ // 初始化常用模型的 context_window
324
+ const modelContextWindows = {
325
+ 'gpt-4': 8192,
326
+ 'gpt-4-turbo': 128000,
327
+ 'gpt-4o': 128000,
328
+ 'gpt-4o-mini': 128000,
329
+ 'claude-3-opus': 200000,
330
+ 'claude-3-sonnet': 200000,
331
+ 'claude-3-haiku': 200000,
332
+ 'claude-3.5-sonnet': 200000,
333
+ 'claude-4-sonnet': 200000,
334
+ 'claude-4-opus': 200000,
335
+ 'deepseek-chat': 64000,
336
+ 'deepseek-coder': 16000,
337
+ };
338
+ for (const [modelId, contextWindow] of Object.entries(modelContextWindows)) {
339
+ this.run(`UPDATE models SET context_window = ? WHERE id = ?`, [contextWindow, modelId]);
340
+ }
341
+ }
342
+ /** 迁移003:添加 LSP 服务器表 */
343
+ migration003AddLspServers() {
344
+ if (!this.db)
345
+ return;
346
+ this.db.exec(`
347
+ CREATE TABLE IF NOT EXISTS lsp_server (
348
+ id TEXT PRIMARY KEY,
349
+ enabled INTEGER NOT NULL DEFAULT 0,
350
+ auto_start INTEGER NOT NULL DEFAULT 1,
351
+ created_at INTEGER NOT NULL,
352
+ updated_at INTEGER NOT NULL
353
+ )
354
+ `);
355
+ const now = Date.now();
356
+ const defaultServers = [
357
+ { id: "typescript", enabled: 1, auto_start: 1 },
358
+ { id: "python", enabled: 1, auto_start: 1 },
359
+ { id: "java", enabled: 1, auto_start: 1 },
360
+ { id: "cpp", enabled: 0, auto_start: 0 },
361
+ ];
362
+ for (const server of defaultServers) {
363
+ this.db.prepare("INSERT OR IGNORE INTO lsp_server (id, enabled, auto_start, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(server.id, server.enabled, server.auto_start, now, now);
364
+ }
365
+ }
366
+ /** 迁移004:添加项目表 */
367
+ migration004AddProjects() {
368
+ if (!this.db)
369
+ return;
370
+ this.db.exec(`
371
+ CREATE TABLE IF NOT EXISTS projects (
372
+ id TEXT PRIMARY KEY,
373
+ name TEXT NOT NULL,
374
+ path TEXT NOT NULL UNIQUE,
375
+ description TEXT DEFAULT '',
376
+ is_active INTEGER DEFAULT 0,
377
+ is_favorite INTEGER DEFAULT 0,
378
+ last_opened_at DATETIME DEFAULT CURRENT_TIMESTAMP
379
+ )
380
+ `);
381
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_projects_path ON projects(path)`);
382
+ this.db.exec(`CREATE INDEX IF NOT EXISTS idx_projects_active ON projects(is_active)`);
383
+ }
384
+ }
385
+ /** 单例导出 */
386
+ export const dbService = new DbService();
387
+ //# sourceMappingURL=db.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.service.js","sourceRoot":"","sources":["../../../src/modules/db/db.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,OAAO,SAAS;IAOpB,YAAY,MAAe;QAN3B,kBAAkB;QACV,OAAE,GAA6B,IAAI,CAAC;QAM1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,EAAG,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,GAAW,EAAE,MAAkB;QACjC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAI,GAAW,EAAE,MAAkB;QACpC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAmB,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAI,GAAW,EAAE,MAAkB;QACpC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAQ,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAS,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE1D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;KAMZ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAsB;YACpC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAChC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACzC,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACtC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE;SACrC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;YAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC7B,uCAAuC,CACxC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,iDAAiD,CAClD,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACX,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM;QACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;KAYZ,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWZ,CAAC,CAAC;QAEH,QAAQ;QACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;KAUZ,CAAC,CAAC;QAEH,QAAQ;QACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWZ,CAAC,CAAC;QAEH,OAAO;QACP,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWZ,CAAC,CAAC;QAEH,MAAM;QACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;KAcZ,CAAC,CAAC;QAEH,MAAM;QACN,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;KAMZ,CAAC,CAAC;QAEH,OAAO;QACP,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQZ,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACvF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACtG,CAAC;IAED,wBAAwB;IAChB,4BAA4B;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAuB,CAAC;QAClF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACtE,CAAC;QAED,kDAAkD;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAuB,CAAC;QAClF,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1D,wCAAwC;QACxC,IAAI,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACjF,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAuB,CAAC;QAC9E,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACjF,CAAC;QAED,OAAO;QACP,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAE3G,UAAU;QACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAChG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;QAEpG,0BAA0B;QAC1B,MAAM,mBAAmB,GAA2B;YAClD,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,MAAM;YACvB,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,MAAM;YACxB,mBAAmB,EAAE,MAAM;YAC3B,iBAAiB,EAAE,MAAM;YACzB,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,KAAK;SACxB,CAAC;QAEF,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,GAAG,CACN,mDAAmD,EACnD,CAAC,aAAa,EAAE,OAAO,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wBAAwB;IAChB,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQZ,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG;YACrB,EAAE,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;YAC/C,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;YAC3C,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;YACzC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;SACzC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,EAAG,CAAC,OAAO,CACd,2GAA2G,CAC5G,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,kBAAkB;IACV,uBAAuB;QAC7B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;KAUZ,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC/E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;IACxF,CAAC;CACF;AAED,WAAW;AACX,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 数据库类型定义
3
+ *
4
+ * Database: better-sqlite3 的数据库实例类型
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ export type { Database };
8
+ //# sourceMappingURL=db.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.types.d.ts","sourceRoot":"","sources":["../../../src/modules/db/db.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 数据库类型定义
3
+ *
4
+ * Database: better-sqlite3 的数据库实例类型
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=db.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.types.js","sourceRoot":"","sources":["../../../src/modules/db/db.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * DB 模块导出
3
+ *
4
+ * 导出内容:
5
+ * - DbService: 数据库服务类
6
+ * - dbService: 数据库服务单例
7
+ */
8
+ export { DbService, dbService } from './db.service.js';
9
+ export type { Database } from './db.types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * DB 模块导出
3
+ *
4
+ * 导出内容:
5
+ * - DbService: 数据库服务类
6
+ * - dbService: 数据库服务单例
7
+ */
8
+ export { DbService, dbService } from './db.service.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/db/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { logger, type AccessLogEntry } from './logger.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { logger } from './logger.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 日志工具模块
3
+ *
4
+ * 职责:
5
+ * - 记录AI请求/响应日志到文件
6
+ * - 根据配置决定是否启用日志
7
+ */
8
+ export interface AccessLogEntry {
9
+ timestamp: string;
10
+ type: 'request' | 'response';
11
+ url: string;
12
+ data: any;
13
+ }
14
+ declare class Logger {
15
+ private logDir;
16
+ private enabled;
17
+ constructor();
18
+ private ensureLogDir;
19
+ private getLogPath;
20
+ logRequest(url: string, data: any): void;
21
+ logResponse(url: string, data: any): void;
22
+ private appendLog;
23
+ }
24
+ export declare const logger: Logger;
25
+ export {};
26
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/modules/logger/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX;AAED,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;;IAQzB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAIlB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAaxC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAazC,OAAO,CAAC,SAAS;CAOlB;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * 日志工具模块
3
+ *
4
+ * 职责:
5
+ * - 记录AI请求/响应日志到文件
6
+ * - 根据配置决定是否启用日志
7
+ */
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ import config from '../../config/tx.config.js';
11
+ class Logger {
12
+ constructor() {
13
+ this.enabled = config.log.enabled;
14
+ this.logDir = config.log.dir;
15
+ this.ensureLogDir();
16
+ }
17
+ ensureLogDir() {
18
+ if (!this.enabled)
19
+ return;
20
+ if (!fs.existsSync(this.logDir)) {
21
+ fs.mkdirSync(this.logDir, { recursive: true });
22
+ }
23
+ }
24
+ getLogPath() {
25
+ return path.join(this.logDir, config.log.accessLog);
26
+ }
27
+ logRequest(url, data) {
28
+ if (!this.enabled)
29
+ return;
30
+ const entry = {
31
+ timestamp: new Date().toISOString(),
32
+ type: 'request',
33
+ url,
34
+ data,
35
+ };
36
+ this.appendLog(entry);
37
+ }
38
+ logResponse(url, data) {
39
+ if (!this.enabled)
40
+ return;
41
+ const entry = {
42
+ timestamp: new Date().toISOString(),
43
+ type: 'response',
44
+ url,
45
+ data,
46
+ };
47
+ this.appendLog(entry);
48
+ }
49
+ appendLog(entry) {
50
+ const logPath = this.getLogPath();
51
+ const separator = '\n' + '='.repeat(80) + '\n';
52
+ const logLine = separator + JSON.stringify(entry, null, 2) + '\n';
53
+ fs.appendFileSync(logPath, logLine, 'utf-8');
54
+ }
55
+ }
56
+ export const logger = new Logger();
57
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/modules/logger/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAS/C,MAAM,MAAM;IAIV;QACE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,IAAS;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,KAAK,GAAmB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,SAAS;YACf,GAAG;YACH,IAAI;SACL,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,IAAS;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,KAAK,GAAmB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,UAAU;YAChB,GAAG;YACH,IAAI;SACL,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAEO,SAAS,CAAC,KAAqB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;QAElE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}