tianxincode 1.0.11 → 1.0.13

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 (318) hide show
  1. package/dist/api/api.types.d.ts +1 -0
  2. package/dist/api/api.types.d.ts.map +1 -1
  3. package/dist/api/chat.routes.js +108 -139
  4. package/dist/api/chat.routes.js.map +1 -1
  5. package/dist/api/db.routes.js +8 -4
  6. package/dist/api/db.routes.js.map +1 -1
  7. package/dist/api/email.routes.d.ts +2 -0
  8. package/dist/api/email.routes.d.ts.map +1 -0
  9. package/dist/api/email.routes.js +78 -0
  10. package/dist/api/email.routes.js.map +1 -0
  11. package/dist/api/files.routes.js +54 -0
  12. package/dist/api/files.routes.js.map +1 -1
  13. package/dist/api/filesystem.routes.js +0 -2
  14. package/dist/api/filesystem.routes.js.map +1 -1
  15. package/dist/api/index.d.ts +1 -1
  16. package/dist/api/index.d.ts.map +1 -1
  17. package/dist/api/index.js +6 -1
  18. package/dist/api/index.js.map +1 -1
  19. package/dist/api/scheduler.routes.d.ts +2 -0
  20. package/dist/api/scheduler.routes.d.ts.map +1 -0
  21. package/dist/api/scheduler.routes.js +127 -0
  22. package/dist/api/scheduler.routes.js.map +1 -0
  23. package/dist/api/terminal.routes.d.ts +13 -0
  24. package/dist/api/terminal.routes.d.ts.map +1 -0
  25. package/dist/api/terminal.routes.js +77 -0
  26. package/dist/api/terminal.routes.js.map +1 -0
  27. package/dist/cli/commands.js +5 -1
  28. package/dist/cli/commands.js.map +1 -1
  29. package/dist/components/App.d.ts.map +1 -1
  30. package/dist/components/App.js +125 -100
  31. package/dist/components/App.js.map +1 -1
  32. package/dist/config/tx.config.d.ts +0 -1
  33. package/dist/config/tx.config.d.ts.map +1 -1
  34. package/dist/config/tx.config.js +1 -1
  35. package/dist/config/tx.config.js.map +1 -1
  36. package/dist/modules/ai/agents/chat/agent_tool.d.ts +2 -0
  37. package/dist/modules/ai/agents/chat/agent_tool.d.ts.map +1 -0
  38. package/dist/modules/ai/agents/chat/agent_tool.js +15 -0
  39. package/dist/modules/ai/agents/chat/agent_tool.js.map +1 -0
  40. package/dist/modules/ai/agents/chat/chat.agent.d.ts +32 -0
  41. package/dist/modules/ai/agents/chat/chat.agent.d.ts.map +1 -0
  42. package/dist/modules/ai/agents/chat/chat.agent.js +255 -0
  43. package/dist/modules/ai/agents/chat/chat.agent.js.map +1 -0
  44. package/dist/modules/ai/agents/chat/prompts/role.txt +31 -0
  45. package/dist/modules/ai/agents/code/agent_tool.d.ts +2 -0
  46. package/dist/modules/ai/agents/code/agent_tool.d.ts.map +1 -0
  47. package/dist/modules/ai/agents/code/agent_tool.js +17 -0
  48. package/dist/modules/ai/agents/code/agent_tool.js.map +1 -0
  49. package/dist/modules/ai/agents/code/code.agent.d.ts +32 -0
  50. package/dist/modules/ai/agents/code/code.agent.d.ts.map +1 -0
  51. package/dist/modules/ai/agents/code/code.agent.js +255 -0
  52. package/dist/modules/ai/agents/code/code.agent.js.map +1 -0
  53. package/dist/modules/ai/agents/code/prompts/role.txt +51 -0
  54. package/dist/modules/ai/agents/index.d.ts +7 -0
  55. package/dist/modules/ai/agents/index.d.ts.map +1 -0
  56. package/dist/modules/ai/agents/index.js +7 -0
  57. package/dist/modules/ai/agents/index.js.map +1 -0
  58. package/dist/modules/ai/agents/task/agent_tool.d.ts +2 -0
  59. package/dist/modules/ai/agents/task/agent_tool.d.ts.map +1 -0
  60. package/dist/modules/ai/agents/task/agent_tool.js +14 -0
  61. package/dist/modules/ai/agents/task/agent_tool.js.map +1 -0
  62. package/dist/modules/ai/agents/task/prompts/role.txt +51 -0
  63. package/dist/modules/ai/agents/task/task.agent.d.ts +31 -0
  64. package/dist/modules/ai/agents/task/task.agent.d.ts.map +1 -0
  65. package/dist/modules/ai/agents/task/task.agent.js +226 -0
  66. package/dist/modules/ai/agents/task/task.agent.js.map +1 -0
  67. package/dist/modules/ai/ai.service.d.ts +13 -18
  68. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  69. package/dist/modules/ai/ai.service.js +40 -105
  70. package/dist/modules/ai/ai.service.js.map +1 -1
  71. package/dist/modules/ai/ai.types.d.ts +8 -5
  72. package/dist/modules/ai/ai.types.d.ts.map +1 -1
  73. package/dist/modules/ai/index.d.ts +1 -3
  74. package/dist/modules/ai/index.d.ts.map +1 -1
  75. package/dist/modules/ai/index.js +0 -2
  76. package/dist/modules/ai/index.js.map +1 -1
  77. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  78. package/dist/modules/ai/openai.provider.js +3 -0
  79. package/dist/modules/ai/openai.provider.js.map +1 -1
  80. package/dist/modules/ai/provider/base.d.ts +5 -0
  81. package/dist/modules/ai/provider/base.d.ts.map +1 -1
  82. package/dist/modules/ai/provider/openai/openai-agent.d.ts +8 -0
  83. package/dist/modules/ai/provider/openai/openai-agent.d.ts.map +1 -1
  84. package/dist/modules/ai/provider/openai/openai-agent.js +50 -5
  85. package/dist/modules/ai/provider/openai/openai-agent.js.map +1 -1
  86. package/dist/modules/ai/react/provider.parser.d.ts +20 -0
  87. package/dist/modules/ai/react/provider.parser.d.ts.map +1 -0
  88. package/dist/modules/ai/react/provider.parser.js +88 -0
  89. package/dist/modules/ai/react/provider.parser.js.map +1 -0
  90. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts +1 -1
  91. package/dist/modules/ai/summarizer/summarizer.prompts.d.ts.map +1 -1
  92. package/dist/modules/ai/summarizer/summarizer.prompts.js +19 -19
  93. package/dist/modules/ai/summarizer/summarizer.prompts.js.map +1 -1
  94. package/dist/modules/ai/summarizer/summarizer.service.d.ts.map +1 -1
  95. package/dist/modules/ai/summarizer/summarizer.service.js +33 -7
  96. package/dist/modules/ai/summarizer/summarizer.service.js.map +1 -1
  97. package/dist/modules/ai/summarizer/summarizer.types.d.ts +1 -0
  98. package/dist/modules/ai/summarizer/summarizer.types.d.ts.map +1 -1
  99. package/dist/modules/config/config.service.d.ts +3 -0
  100. package/dist/modules/config/config.service.d.ts.map +1 -1
  101. package/dist/modules/config/config.service.js +33 -0
  102. package/dist/modules/config/config.service.js.map +1 -1
  103. package/dist/modules/db/db.service.d.ts +3 -0
  104. package/dist/modules/db/db.service.d.ts.map +1 -1
  105. package/dist/modules/db/db.service.js +79 -0
  106. package/dist/modules/db/db.service.js.map +1 -1
  107. package/dist/modules/email/email.config.repository.d.ts +14 -0
  108. package/dist/modules/email/email.config.repository.d.ts.map +1 -0
  109. package/dist/modules/email/email.config.repository.js +70 -0
  110. package/dist/modules/email/email.config.repository.js.map +1 -0
  111. package/dist/modules/email/email.service.d.ts +14 -0
  112. package/dist/modules/email/email.service.d.ts.map +1 -0
  113. package/dist/modules/email/email.service.js +54 -0
  114. package/dist/modules/email/email.service.js.map +1 -0
  115. package/dist/modules/email/email.types.d.ts +20 -0
  116. package/dist/modules/email/email.types.d.ts.map +1 -0
  117. package/dist/modules/email/email.types.js +2 -0
  118. package/dist/modules/email/email.types.js.map +1 -0
  119. package/dist/modules/email/index.d.ts +4 -0
  120. package/dist/modules/email/index.d.ts.map +1 -0
  121. package/dist/modules/email/index.js +3 -0
  122. package/dist/modules/email/index.js.map +1 -0
  123. package/dist/modules/gateway/adapters/dingtalk.adapter.d.ts +7 -0
  124. package/dist/modules/gateway/adapters/dingtalk.adapter.d.ts.map +1 -1
  125. package/dist/modules/gateway/adapters/dingtalk.adapter.js +62 -2
  126. package/dist/modules/gateway/adapters/dingtalk.adapter.js.map +1 -1
  127. package/dist/modules/gateway/gateway.service.d.ts +1 -0
  128. package/dist/modules/gateway/gateway.service.d.ts.map +1 -1
  129. package/dist/modules/gateway/gateway.service.js +61 -18
  130. package/dist/modules/gateway/gateway.service.js.map +1 -1
  131. package/dist/modules/gateway/index.d.ts +1 -1
  132. package/dist/modules/gateway/index.d.ts.map +1 -1
  133. package/dist/modules/gateway/index.js +0 -1
  134. package/dist/modules/gateway/index.js.map +1 -1
  135. package/dist/modules/scheduler/index.d.ts +4 -0
  136. package/dist/modules/scheduler/index.d.ts.map +1 -0
  137. package/dist/modules/scheduler/index.js +4 -0
  138. package/dist/modules/scheduler/index.js.map +1 -0
  139. package/dist/modules/scheduler/notify.service.d.ts +12 -0
  140. package/dist/modules/scheduler/notify.service.d.ts.map +1 -0
  141. package/dist/modules/scheduler/notify.service.js +20 -0
  142. package/dist/modules/scheduler/notify.service.js.map +1 -0
  143. package/dist/modules/scheduler/scheduler.service.d.ts +35 -0
  144. package/dist/modules/scheduler/scheduler.service.d.ts.map +1 -0
  145. package/dist/modules/scheduler/scheduler.service.js +258 -0
  146. package/dist/modules/scheduler/scheduler.service.js.map +1 -0
  147. package/dist/modules/scheduler/task-log.service.d.ts +20 -0
  148. package/dist/modules/scheduler/task-log.service.d.ts.map +1 -0
  149. package/dist/modules/scheduler/task-log.service.js +44 -0
  150. package/dist/modules/scheduler/task-log.service.js.map +1 -0
  151. package/dist/modules/terminal/index.d.ts +3 -0
  152. package/dist/modules/terminal/index.d.ts.map +1 -0
  153. package/dist/modules/terminal/index.js +2 -0
  154. package/dist/modules/terminal/index.js.map +1 -0
  155. package/dist/modules/terminal/terminal.service.d.ts +48 -0
  156. package/dist/modules/terminal/terminal.service.d.ts.map +1 -0
  157. package/dist/modules/terminal/terminal.service.js +284 -0
  158. package/dist/modules/terminal/terminal.service.js.map +1 -0
  159. package/dist/modules/tools/index.d.ts +0 -1
  160. package/dist/modules/tools/index.d.ts.map +1 -1
  161. package/dist/modules/tools/index.js +0 -1
  162. package/dist/modules/tools/index.js.map +1 -1
  163. package/dist/modules/tools/provider/email.tool.d.ts +3 -0
  164. package/dist/modules/tools/provider/email.tool.d.ts.map +1 -0
  165. package/dist/modules/tools/provider/email.tool.js +50 -0
  166. package/dist/modules/tools/provider/email.tool.js.map +1 -0
  167. package/dist/modules/tools/provider/index.d.ts.map +1 -1
  168. package/dist/modules/tools/provider/index.js +2 -0
  169. package/dist/modules/tools/provider/index.js.map +1 -1
  170. package/dist/modules/tools/tool.service.d.ts +1 -1
  171. package/dist/modules/tools/tool.service.js +4 -4
  172. package/dist/modules/tools/tool.service.js.map +1 -1
  173. package/dist/repository/aiLog.repository.d.ts +17 -0
  174. package/dist/repository/aiLog.repository.d.ts.map +1 -0
  175. package/dist/repository/aiLog.repository.js +39 -0
  176. package/dist/repository/aiLog.repository.js.map +1 -0
  177. package/dist/repository/base.repository.d.ts +6 -0
  178. package/dist/repository/base.repository.d.ts.map +1 -0
  179. package/dist/repository/base.repository.js +14 -0
  180. package/dist/repository/base.repository.js.map +1 -0
  181. package/dist/repository/index.d.ts +5 -0
  182. package/dist/repository/index.d.ts.map +1 -0
  183. package/dist/repository/index.js +5 -0
  184. package/dist/repository/index.js.map +1 -0
  185. package/dist/repository/message.repository.d.ts +9 -0
  186. package/dist/repository/message.repository.d.ts.map +1 -0
  187. package/dist/repository/message.repository.js +35 -0
  188. package/dist/repository/message.repository.js.map +1 -0
  189. package/dist/repository/session.repository.d.ts +15 -0
  190. package/dist/repository/session.repository.d.ts.map +1 -0
  191. package/dist/repository/session.repository.js +33 -0
  192. package/dist/repository/session.repository.js.map +1 -0
  193. package/dist/services/codeChat/codeChat.service.d.ts +7 -0
  194. package/dist/services/codeChat/codeChat.service.d.ts.map +1 -0
  195. package/dist/services/codeChat/codeChat.service.js +53 -0
  196. package/dist/services/codeChat/codeChat.service.js.map +1 -0
  197. package/dist/services/codeChat/codeChat.types.d.ts +47 -0
  198. package/dist/services/codeChat/codeChat.types.d.ts.map +1 -0
  199. package/dist/services/codeChat/codeChat.types.js +2 -0
  200. package/dist/services/codeChat/codeChat.types.js.map +1 -0
  201. package/dist/services/codeChat/index.d.ts +5 -0
  202. package/dist/services/codeChat/index.d.ts.map +1 -0
  203. package/dist/services/codeChat/index.js +4 -0
  204. package/dist/services/codeChat/index.js.map +1 -0
  205. package/dist/services/commandChat/commandChat.service.d.ts +15 -0
  206. package/dist/services/commandChat/commandChat.service.d.ts.map +1 -0
  207. package/dist/services/commandChat/commandChat.service.js +18 -0
  208. package/dist/services/commandChat/commandChat.service.js.map +1 -0
  209. package/dist/services/commandChat/index.d.ts +3 -0
  210. package/dist/services/commandChat/index.d.ts.map +1 -0
  211. package/dist/services/commandChat/index.js +2 -0
  212. package/dist/services/commandChat/index.js.map +1 -0
  213. package/dist/web/web.service.d.ts +1 -0
  214. package/dist/web/web.service.d.ts.map +1 -1
  215. package/dist/web/web.service.js +107 -54
  216. package/dist/web/web.service.js.map +1 -1
  217. package/package.json +7 -2
  218. package/test-email.ts +95 -0
  219. package/web/dist/assets/{AiLogsView-2O9Szm8G.js → AiLogsView-D_SQ6qo4.js} +1 -1
  220. package/web/dist/assets/DevWorkflowView-C5VnPngb.css +1 -0
  221. package/web/dist/assets/DevWorkflowView-iHAv9LC0.js +16 -0
  222. package/web/dist/assets/Layout-CQhbIJxB.js +1 -0
  223. package/web/dist/assets/TasksView-B9B2H3-S.js +1 -0
  224. package/web/dist/assets/TerminalView-BKhdi5UF.js +24 -0
  225. package/web/dist/assets/TerminalView-BU5wZZv4.css +32 -0
  226. package/web/dist/assets/abap-BrgZPUOV.js +6 -0
  227. package/web/dist/assets/apex-DyP6w7ZV.js +6 -0
  228. package/web/dist/assets/azcli-BaLxmfj-.js +6 -0
  229. package/web/dist/assets/bat-CFOPXBzS.js +6 -0
  230. package/web/dist/assets/bicep-BfEKNvv3.js +7 -0
  231. package/web/dist/assets/cameligo-BFG1Mk7z.js +6 -0
  232. package/web/dist/assets/clojure-DTECt2xU.js +6 -0
  233. package/web/dist/assets/codicon-DCmgc-ay.ttf +0 -0
  234. package/web/dist/assets/coffee-CDGzqUPQ.js +6 -0
  235. package/web/dist/assets/cpp-CLLBncYj.js +6 -0
  236. package/web/dist/assets/csharp-dUCx_-0o.js +6 -0
  237. package/web/dist/assets/csp-5Rap-vPy.js +6 -0
  238. package/web/dist/assets/css-D3h14YRZ.js +8 -0
  239. package/web/dist/assets/cssMode-C_gwipb0.js +9 -0
  240. package/web/dist/assets/cypher-DrQuvNYM.js +6 -0
  241. package/web/dist/assets/dart-CFKIUWau.js +6 -0
  242. package/web/dist/assets/dockerfile-Zznr-cwX.js +6 -0
  243. package/web/dist/assets/ecl-Ce3n6wWz.js +6 -0
  244. package/web/dist/assets/elixir-deUWdS0T.js +6 -0
  245. package/web/dist/assets/flow9-i9-g7ZhI.js +6 -0
  246. package/web/dist/assets/freemarker2-WCA_pR0J.js +8 -0
  247. package/web/dist/assets/fsharp-CzKuDChf.js +6 -0
  248. package/web/dist/assets/go-Cphgjts3.js +6 -0
  249. package/web/dist/assets/graphql-Cg7bfA9N.js +6 -0
  250. package/web/dist/assets/handlebars-fzVGzXHj.js +6 -0
  251. package/web/dist/assets/hcl-0cvrggvQ.js +6 -0
  252. package/web/dist/assets/html-C4Rga6DD.js +6 -0
  253. package/web/dist/assets/htmlMode-BvrJ57rW.js +9 -0
  254. package/web/dist/assets/index-9RP8PAfk.js +949 -0
  255. package/web/dist/assets/{index-37FqBzBn.css → index-BhjlwJCp.css} +1 -1
  256. package/web/dist/assets/ini-Drc7WvVn.js +6 -0
  257. package/web/dist/assets/java-B_fMsGYe.js +6 -0
  258. package/web/dist/assets/javascript-cXKyuP98.js +6 -0
  259. package/web/dist/assets/jsonMode-Q4CMzwiX.js +15 -0
  260. package/web/dist/assets/julia-Bqgm2twL.js +6 -0
  261. package/web/dist/assets/kotlin-BSkB5QuD.js +6 -0
  262. package/web/dist/assets/less-BsTHnhdd.js +7 -0
  263. package/web/dist/assets/lexon-YWi4-JPR.js +6 -0
  264. package/web/dist/assets/liquid-CrbU0gmK.js +6 -0
  265. package/web/dist/assets/lua-nf6ki56Z.js +6 -0
  266. package/web/dist/assets/m3-Cpb6xl2v.js +6 -0
  267. package/web/dist/assets/markdown-DSZPf7rp.js +6 -0
  268. package/web/dist/assets/mdx-D72Dcs66.js +6 -0
  269. package/web/dist/assets/mips-B_c3zf-v.js +6 -0
  270. package/web/dist/assets/msdax-rUNN04Wq.js +6 -0
  271. package/web/dist/assets/mysql-DDwshQtU.js +6 -0
  272. package/web/dist/assets/objective-c-B5zXfXm9.js +6 -0
  273. package/web/dist/assets/pascal-CXOwvkN_.js +6 -0
  274. package/web/dist/assets/pascaligo-Bc-ZgV77.js +6 -0
  275. package/web/dist/assets/perl-CwNk8-XU.js +6 -0
  276. package/web/dist/assets/pgsql-tGk8EFnU.js +6 -0
  277. package/web/dist/assets/php-CpIb_Oan.js +6 -0
  278. package/web/dist/assets/pla-B03wrqEc.js +6 -0
  279. package/web/dist/assets/postiats-BKlk5iyT.js +6 -0
  280. package/web/dist/assets/powerquery-Bhzvs7bI.js +6 -0
  281. package/web/dist/assets/powershell-Dd3NCNK9.js +6 -0
  282. package/web/dist/assets/protobuf-COyEY5Pt.js +7 -0
  283. package/web/dist/assets/pug-BaJupSGV.js +6 -0
  284. package/web/dist/assets/python-DPqkZ_Xm.js +6 -0
  285. package/web/dist/assets/qsharp-DXyYeYxl.js +6 -0
  286. package/web/dist/assets/r-CdQndTaG.js +6 -0
  287. package/web/dist/assets/razor-DknXaqXN.js +6 -0
  288. package/web/dist/assets/redis-CVwtpugi.js +6 -0
  289. package/web/dist/assets/redshift-25W9uPmb.js +6 -0
  290. package/web/dist/assets/restructuredtext-DfzH4Xui.js +6 -0
  291. package/web/dist/assets/ruby-Cp1zYvxS.js +6 -0
  292. package/web/dist/assets/rust-D5C2fndG.js +6 -0
  293. package/web/dist/assets/sb-CDntyWJ8.js +6 -0
  294. package/web/dist/assets/scala-BoFRg7Ot.js +6 -0
  295. package/web/dist/assets/scheme-Bio4gycK.js +6 -0
  296. package/web/dist/assets/scss-4Ik7cdeQ.js +8 -0
  297. package/web/dist/assets/shell-CX-rkNHf.js +6 -0
  298. package/web/dist/assets/solidity-Tw7wswEv.js +6 -0
  299. package/web/dist/assets/sophia-C5WLch3f.js +6 -0
  300. package/web/dist/assets/sparql-DHaeiCBh.js +6 -0
  301. package/web/dist/assets/sql-CCSDG5nI.js +6 -0
  302. package/web/dist/assets/st-pnP8ivHi.js +6 -0
  303. package/web/dist/assets/swift-DwJ7jVG9.js +8 -0
  304. package/web/dist/assets/systemverilog-B9Xyijhd.js +6 -0
  305. package/web/dist/assets/tcl-DnHyzjbg.js +6 -0
  306. package/web/dist/assets/tsMode-DZAV3Wgo.js +16 -0
  307. package/web/dist/assets/twig-CPajHgWi.js +6 -0
  308. package/web/dist/assets/typescript-DenKTmW3.js +6 -0
  309. package/web/dist/assets/typespec-D-MeaMDU.js +6 -0
  310. package/web/dist/assets/vb-DgyLZaXg.js +6 -0
  311. package/web/dist/assets/wgsl-BIv9DU6q.js +303 -0
  312. package/web/dist/assets/xml-C_uqJta0.js +6 -0
  313. package/web/dist/assets/yaml-vwb3U7d7.js +6 -0
  314. package/web/dist/index.html +2 -2
  315. package/web/package.json +5 -1
  316. package/@.txcode/req//351/241/265/351/235/242/345/270/203/345/261/200/AI/346/234/215/345/212/241/345/225/206/345/222/214/346/250/241/345/236/213/351/205/215/347/275/256.html +0 -241
  317. package/web/dist/assets/Layout-C3GGWAI1.js +0 -1
  318. package/web/dist/assets/index-LvJQilK_.js +0 -199
@@ -0,0 +1,284 @@
1
+ /**
2
+ * 终端服务模块
3
+ *
4
+ * 提供跨平台终端会话管理功能:
5
+ * - 创建/删除终端会话
6
+ * - PTY 进程管理
7
+ * - WebSocket 实时通信
8
+ *
9
+ * 降级策略:
10
+ * 1. 优先使用 node-pty (完整终端功能)
11
+ * 2. 不可用时降级到 child_process.spawn (基本功能)
12
+ */
13
+ import { spawn } from 'child_process';
14
+ import * as os from 'os';
15
+ import { v4 as uuidv4 } from 'uuid';
16
+ let nodePty = null;
17
+ let nodePtyLoadFailed = false;
18
+ export function isNodePtyAvailable() {
19
+ return !nodePtyLoadFailed && nodePty !== null;
20
+ }
21
+ async function loadNodePty() {
22
+ if (nodePtyLoadFailed) {
23
+ return null;
24
+ }
25
+ if (nodePty)
26
+ return nodePty;
27
+ try {
28
+ nodePty = await import('node-pty');
29
+ return nodePty;
30
+ }
31
+ catch (e) {
32
+ nodePtyLoadFailed = true;
33
+ console.warn('[Terminal] node-pty not available, falling back to basic spawn');
34
+ return null;
35
+ }
36
+ }
37
+ function getShell() {
38
+ const platform = os.platform();
39
+ if (platform === 'win32') {
40
+ return process.env.COMSPEC || 'cmd.exe';
41
+ }
42
+ const shell = process.env.SHELL;
43
+ if (shell)
44
+ return shell;
45
+ if (platform === 'darwin') {
46
+ return '/bin/zsh';
47
+ }
48
+ return '/bin/bash';
49
+ }
50
+ function getPlatformType() {
51
+ const platform = os.platform();
52
+ if (platform === 'win32')
53
+ return 'windows';
54
+ if (platform === 'darwin')
55
+ return 'darwin';
56
+ return 'linux';
57
+ }
58
+ class TerminalService {
59
+ constructor() {
60
+ this.ptySessions = new Map();
61
+ this.spawnSessions = new Map();
62
+ this.pendingBuffers = new Map();
63
+ this.sessions = new Map();
64
+ }
65
+ async createSession(options = {}) {
66
+ const id = uuidv4();
67
+ const shell = getShell();
68
+ const platform = getPlatformType();
69
+ const cwd = options.cwd || process.cwd();
70
+ const cols = options.cols || 80;
71
+ const rows = options.rows || 24;
72
+ const session = {
73
+ id,
74
+ title: `终端 ${id.slice(0, 8)}`,
75
+ platform,
76
+ shell,
77
+ createdAt: new Date(),
78
+ isPty: false,
79
+ };
80
+ const pty = await loadNodePty();
81
+ if (pty) {
82
+ try {
83
+ const ptyProcess = pty.spawn(shell, [], {
84
+ name: 'xterm-256color',
85
+ cols,
86
+ rows,
87
+ cwd,
88
+ env: {
89
+ ...process.env,
90
+ TERM: 'xterm-256color',
91
+ COLORTERM: 'truecolor',
92
+ },
93
+ });
94
+ this.ptySessions.set(id, {
95
+ pty: ptyProcess,
96
+ session,
97
+ onOutput: () => { },
98
+ onExit: () => { },
99
+ });
100
+ this.pendingBuffers.set(id, []);
101
+ ptyProcess.onData((data) => {
102
+ const entry = this.ptySessions.get(id);
103
+ const buffers = this.pendingBuffers.get(id);
104
+ if (buffers) {
105
+ buffers.push(data);
106
+ }
107
+ if (entry?.onOutput) {
108
+ entry.onOutput(data);
109
+ }
110
+ });
111
+ ptyProcess.onExit(({ exitCode }) => {
112
+ const entry = this.ptySessions.get(id);
113
+ if (entry?.onExit) {
114
+ entry.onExit(exitCode);
115
+ }
116
+ });
117
+ session.isPty = true;
118
+ }
119
+ catch (e) {
120
+ console.warn(`[Terminal] Failed to spawn PTY, falling back to basic spawn:`, e);
121
+ this.createSpawnSession(session, cwd, cols, rows);
122
+ }
123
+ }
124
+ else {
125
+ this.createSpawnSession(session, cwd, cols, rows);
126
+ }
127
+ this.sessions.set(id, session);
128
+ return session;
129
+ }
130
+ createSpawnSession(session, cwd, cols, rows) {
131
+ const isWindows = session.platform === 'windows';
132
+ let proc;
133
+ if (isWindows) {
134
+ proc = spawn('cmd.exe', ['/c'], {
135
+ cwd,
136
+ env: {
137
+ ...process.env,
138
+ TERM: 'xterm-256color',
139
+ },
140
+ shell: false,
141
+ stdio: ['pipe', 'pipe', 'pipe'],
142
+ });
143
+ }
144
+ else {
145
+ proc = spawn('/bin/sh', ['-c', ''], {
146
+ cwd,
147
+ env: {
148
+ ...process.env,
149
+ TERM: 'xterm-256color',
150
+ },
151
+ shell: false,
152
+ stdio: ['pipe', 'pipe', 'pipe'],
153
+ });
154
+ }
155
+ this.spawnSessions.set(session.id, {
156
+ proc,
157
+ session,
158
+ onOutput: () => { },
159
+ onExit: () => { },
160
+ });
161
+ proc.stdout?.on('data', (data) => {
162
+ const entry = this.spawnSessions.get(session.id);
163
+ if (entry) {
164
+ entry.onOutput(data.toString());
165
+ }
166
+ });
167
+ proc.stderr?.on('data', (data) => {
168
+ const entry = this.spawnSessions.get(session.id);
169
+ if (entry) {
170
+ entry.onOutput(data.toString());
171
+ }
172
+ });
173
+ proc.on('exit', (code) => {
174
+ const entry = this.spawnSessions.get(session.id);
175
+ if (entry) {
176
+ entry.onExit(code || 0);
177
+ }
178
+ });
179
+ console.log(`[Terminal] Created basic spawn session ${session.id}`);
180
+ }
181
+ getSession(id) {
182
+ return this.sessions.get(id) || null;
183
+ }
184
+ getAllSessions() {
185
+ return Array.from(this.sessions.values());
186
+ }
187
+ deleteSession(id) {
188
+ const ptyEntry = this.ptySessions.get(id);
189
+ if (ptyEntry) {
190
+ try {
191
+ ptyEntry.pty.kill();
192
+ }
193
+ catch (e) {
194
+ console.error(`Failed to kill PTY for session ${id}:`, e);
195
+ }
196
+ this.ptySessions.delete(id);
197
+ }
198
+ const spawnEntry = this.spawnSessions.get(id);
199
+ if (spawnEntry) {
200
+ try {
201
+ spawnEntry.proc.kill();
202
+ }
203
+ catch (e) {
204
+ console.error(`Failed to kill spawn for session ${id}:`, e);
205
+ }
206
+ this.spawnSessions.delete(id);
207
+ }
208
+ this.sessions.delete(id);
209
+ }
210
+ write(id, data) {
211
+ const ptyEntry = this.ptySessions.get(id);
212
+ if (ptyEntry) {
213
+ ptyEntry.pty.write(data);
214
+ return;
215
+ }
216
+ const spawnEntry = this.spawnSessions.get(id);
217
+ if (spawnEntry) {
218
+ if (data === '\x03') {
219
+ spawnEntry.proc.kill('SIGINT');
220
+ }
221
+ else if (data === '\x04') {
222
+ spawnEntry.proc.stdin?.end();
223
+ }
224
+ else {
225
+ if (spawnEntry.session.platform === 'windows') {
226
+ const normalized = data.replace(/\n/g, '\r\n');
227
+ spawnEntry.proc.stdin?.write(normalized);
228
+ }
229
+ else {
230
+ spawnEntry.proc.stdin?.write(data);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ resize(id, cols, rows) {
236
+ const ptyEntry = this.ptySessions.get(id);
237
+ if (ptyEntry) {
238
+ try {
239
+ ptyEntry.pty.resize(cols, rows);
240
+ }
241
+ catch (e) {
242
+ console.error(`Failed to resize PTY for session ${id}:`, e);
243
+ }
244
+ }
245
+ }
246
+ setCallbacks(id, onOutput, onExit) {
247
+ const ptyEntry = this.ptySessions.get(id);
248
+ if (ptyEntry) {
249
+ ptyEntry.onOutput = onOutput;
250
+ ptyEntry.onExit = onExit;
251
+ const buffers = this.pendingBuffers.get(id) || [];
252
+ this.pendingBuffers.delete(id);
253
+ return buffers;
254
+ }
255
+ const spawnEntry = this.spawnSessions.get(id);
256
+ if (spawnEntry) {
257
+ spawnEntry.onOutput = onOutput;
258
+ spawnEntry.onExit = onExit;
259
+ spawnEntry.proc.stdout?.on('data', (data) => {
260
+ onOutput(data.toString());
261
+ });
262
+ spawnEntry.proc.stderr?.on('data', (data) => {
263
+ onOutput(data.toString());
264
+ });
265
+ spawnEntry.proc.on('exit', (code) => {
266
+ onExit(code || 0);
267
+ });
268
+ }
269
+ return null;
270
+ }
271
+ isSessionAlive(id) {
272
+ return this.sessions.has(id);
273
+ }
274
+ getPlatform(id) {
275
+ const session = this.sessions.get(id);
276
+ return session ? session.platform : 'unknown';
277
+ }
278
+ isPtyMode(id) {
279
+ const ptyEntry = this.ptySessions.get(id);
280
+ return !!ptyEntry;
281
+ }
282
+ }
283
+ export const terminalService = new TerminalService();
284
+ //# sourceMappingURL=terminal.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.service.js","sourceRoot":"","sources":["../../../src/modules/terminal/terminal.service.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,4 @@
7
7
  */
8
8
  export { ToolService, toolService } from './tool.service.js';
9
9
  export type { Tool, ToolResult, ToolCall, ToolCallResult } from './tool.types.js';
10
- export { builtinTools } from './builtin/index.js';
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -6,5 +6,4 @@
6
6
  * - 内置工具管理
7
7
  */
8
8
  export { ToolService, toolService } from './tool.service.js';
9
- export { builtinTools } from './builtin/index.js';
10
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../tool.types.js';
2
+ export declare const emailTool: Tool;
3
+ //# sourceMappingURL=email.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.tool.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/provider/email.tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAKhE,eAAO,MAAM,SAAS,EAAE,IA8CvB,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { emailService } from '../../email/index.js';
2
+ const description = '发送邮件工具。用于向指定邮箱发送邮件,支持 HTML 格式内容。\n\n参数说明:\n- to: 收件人邮箱地址\n- subject: 邮件主题\n- html: 邮件内容(支持 HTML 格式)\n- configId: 邮件配置 ID(可选,默认使用系统默认配置)';
3
+ export const emailTool = {
4
+ name: 'sendEmail',
5
+ description,
6
+ parameters: {
7
+ type: 'object',
8
+ properties: {
9
+ to: {
10
+ type: 'string',
11
+ description: '收件人邮箱地址'
12
+ },
13
+ subject: {
14
+ type: 'string',
15
+ description: '邮件主题'
16
+ },
17
+ html: {
18
+ type: 'string',
19
+ description: '邮件内容(支持 HTML 格式)'
20
+ },
21
+ configId: {
22
+ type: 'number',
23
+ description: '邮件配置 ID(可选,默认使用系统默认配置)'
24
+ }
25
+ },
26
+ required: ['to', 'subject', 'html']
27
+ },
28
+ execute: async (params, _context) => {
29
+ const result = await emailService.sendEmail({
30
+ configId: params.configId,
31
+ to: params.to,
32
+ subject: params.subject,
33
+ html: params.html,
34
+ });
35
+ if (result.success) {
36
+ return {
37
+ success: true,
38
+ output: `邮件已成功发送至 ${params.to}`
39
+ };
40
+ }
41
+ else {
42
+ return {
43
+ success: false,
44
+ output: '',
45
+ error: result.error
46
+ };
47
+ }
48
+ }
49
+ };
50
+ //# sourceMappingURL=email.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.tool.js","sourceRoot":"","sources":["../../../../src/modules/tools/provider/email.tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,WAAW,GAAG,yIAAyI,CAAA;AAE7J,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,WAAW;IACjB,WAAW;IACX,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,SAAS;aACvB;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,MAAM;aACpB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;aAChC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;SACF;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;KACpC;IACD,OAAO,EAAE,KAAK,EAAE,MAAwE,EAAE,QAAqB,EAAuB,EAAE;QACtI,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC;YAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE;aAChC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/provider/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAgBvC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAiBxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/provider/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAiBvC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAkBxD"}
@@ -16,6 +16,7 @@ import { webFetchTool } from './web_fetch.js';
16
16
  import { codeSearchTool } from './code_search.js';
17
17
  import { memoryTool } from './memory.js';
18
18
  import { skillTool } from './skill.js';
19
+ import { emailTool } from './email.tool.js';
19
20
  export async function getProviderTools() {
20
21
  return [
21
22
  readFileTool,
@@ -32,6 +33,7 @@ export async function getProviderTools() {
32
33
  codeSearchTool,
33
34
  memoryTool,
34
35
  skillTool,
36
+ emailTool,
35
37
  ];
36
38
  }
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tools/provider/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO;QACL,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,OAAO;QACP,aAAa;QACb,YAAY;QACZ,cAAc;QACd,UAAU;QACV,SAAS;KACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tools/provider/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO;QACL,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,OAAO;QACP,aAAa;QACb,YAAY;QACZ,cAAc;QACd,UAAU;QACV,SAAS;QACT,SAAS;KACV,CAAA;AACH,CAAC"}
@@ -63,7 +63,7 @@ export declare class ToolService {
63
63
  * 内置工具包括文件操作、命令执行、搜索等功能
64
64
  *
65
65
  * 注册流程:
66
- * 1. 调用 getBuiltinToolsInstance() 获取内置工具
66
+ * 1. 调用 getProviderTools() 获取内置工具
67
67
  * 2. 遍历工具数组
68
68
  * 3. 将每个工具的名称作为 key,工具对象作为 value 存入 Map
69
69
  */
@@ -19,7 +19,7 @@
19
19
  * - grep: 内容搜索
20
20
  * - loadSkill: 加载技能
21
21
  */
22
- import { getBuiltinToolsInstance } from './builtin/index.js';
22
+ import { getProviderTools } from './provider/index.js';
23
23
  /**
24
24
  * ToolService 类
25
25
  *
@@ -72,12 +72,12 @@ export class ToolService {
72
72
  * 内置工具包括文件操作、命令执行、搜索等功能
73
73
  *
74
74
  * 注册流程:
75
- * 1. 调用 getBuiltinToolsInstance() 获取内置工具
75
+ * 1. 调用 getProviderTools() 获取内置工具
76
76
  * 2. 遍历工具数组
77
77
  * 3. 将每个工具的名称作为 key,工具对象作为 value 存入 Map
78
78
  */
79
79
  async registerBuiltinTools() {
80
- const builtinTools = await getBuiltinToolsInstance();
80
+ const builtinTools = await getProviderTools();
81
81
  for (const tool of builtinTools) {
82
82
  this.tools.set(tool.name, tool);
83
83
  }
@@ -309,7 +309,7 @@ export class ToolService {
309
309
  * - 清除临时添加的工具
310
310
  */
311
311
  async clearCustom() {
312
- const builtinTools = await getBuiltinToolsInstance();
312
+ const builtinTools = await getProviderTools();
313
313
  const builtinNames = new Set(builtinTools.map(t => t.name));
314
314
  for (const name of this.tools.keys()) {
315
315
  if (!builtinNames.has(name)) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.service.js","sourceRoot":"","sources":["../../../src/modules/tools/tool.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.service.js","sourceRoot":"","sources":["../../../src/modules/tools/tool.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BaseRepository } from './base.repository.js';
2
+ export declare class AiLogRepository extends BaseRepository {
3
+ save(log: {
4
+ sessionId: string;
5
+ modelName: string;
6
+ inputTokens: number;
7
+ outputTokens: number;
8
+ totalTokens: number;
9
+ latency: number;
10
+ success: boolean;
11
+ error?: string;
12
+ }): Promise<void>;
13
+ getBySessionId(sessionId: string): Promise<any[]>;
14
+ getStats(sessionId: string): Promise<any | null>;
15
+ }
16
+ export declare const aiLogRepository: AiLogRepository;
17
+ //# sourceMappingURL=aiLog.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiLog.repository.d.ts","sourceRoot":"","sources":["../../src/repository/aiLog.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,eAAgB,SAAQ,cAAc;IAE3C,IAAI,CAAC,GAAG,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAKjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;CAavD;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { BaseRepository } from './base.repository.js';
2
+ export class AiLogRepository extends BaseRepository {
3
+ async save(log) {
4
+ const sql = `
5
+ INSERT INTO ai_logs
6
+ (session_id, model_name, input_tokens, output_tokens, total_tokens, latency, success, error, created_at)
7
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
8
+ `;
9
+ await this.execute(sql, [
10
+ log.sessionId,
11
+ log.modelName,
12
+ log.inputTokens,
13
+ log.outputTokens,
14
+ log.totalTokens,
15
+ log.latency,
16
+ log.success ? 1 : 0,
17
+ log.error || null
18
+ ]);
19
+ }
20
+ async getBySessionId(sessionId) {
21
+ const sql = `SELECT * FROM ai_logs WHERE session_id = ? ORDER BY created_at DESC`;
22
+ return this.query(sql, [sessionId]);
23
+ }
24
+ async getStats(sessionId) {
25
+ const sql = `
26
+ SELECT
27
+ COUNT(*) as total_calls,
28
+ SUM(input_tokens) as total_input,
29
+ SUM(output_tokens) as total_output,
30
+ SUM(total_tokens) as total_tokens,
31
+ AVG(latency) as avg_latency
32
+ FROM ai_logs
33
+ WHERE session_id = ?
34
+ `;
35
+ return this.queryOne(sql, [sessionId]);
36
+ }
37
+ }
38
+ export const aiLogRepository = new AiLogRepository();
39
+ //# sourceMappingURL=aiLog.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiLog.repository.js","sourceRoot":"","sources":["../../src/repository/aiLog.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,eAAgB,SAAQ,cAAc;IAEjD,KAAK,CAAC,IAAI,CAAC,GASV;QACC,MAAM,GAAG,GAAG;;;;KAIX,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACtB,GAAG,CAAC,SAAS;YACb,GAAG,CAAC,SAAS;YACb,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,YAAY;YAChB,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,OAAO;YACX,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,GAAG,CAAC,KAAK,IAAI,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,GAAG,GAAG,qEAAqE,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,GAAG,GAAG;;;;;;;;;KASX,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class BaseRepository {
2
+ protected execute(sql: string, params?: unknown[]): Promise<void>;
3
+ protected query<T>(sql: string, params?: unknown[]): Promise<T[]>;
4
+ protected queryOne<T>(sql: string, params?: unknown[]): Promise<T | null>;
5
+ }
6
+ //# sourceMappingURL=base.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repository/base.repository.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;cAET,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAI3D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;cAI3D,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CAIpF"}
@@ -0,0 +1,14 @@
1
+ import { dbService } from '../modules/db/db.service.js';
2
+ export class BaseRepository {
3
+ async execute(sql, params = []) {
4
+ dbService.run(sql, params);
5
+ }
6
+ async query(sql, params = []) {
7
+ return dbService.all(sql, params);
8
+ }
9
+ async queryOne(sql, params = []) {
10
+ const results = await this.query(sql, params);
11
+ return results[0] || null;
12
+ }
13
+ }
14
+ //# sourceMappingURL=base.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repository/base.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,OAAO,cAAc;IAEf,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAoB,EAAE;QACzD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,SAAoB,EAAE;QAC1D,OAAO,SAAS,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAES,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,SAAoB,EAAE;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export { BaseRepository } from './base.repository.js';
2
+ export { MessageRepository, messageRepository } from './message.repository.js';
3
+ export { SessionRepository, sessionRepository } from './session.repository.js';
4
+ export { AiLogRepository, aiLogRepository } from './aiLog.repository.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { BaseRepository } from './base.repository.js';
2
+ export { MessageRepository, messageRepository } from './message.repository.js';
3
+ export { SessionRepository, sessionRepository } from './session.repository.js';
4
+ export { AiLogRepository, aiLogRepository } from './aiLog.repository.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseRepository } from './base.repository.js';
2
+ export declare class MessageRepository extends BaseRepository {
3
+ save(sessionId: string, role: string, content: string): Promise<void>;
4
+ getHistory(sessionId: string, limit?: number): Promise<any[]>;
5
+ getBySessionId(sessionId: string): Promise<any[]>;
6
+ deleteBySessionId(sessionId: string): Promise<void>;
7
+ }
8
+ export declare const messageRepository: MessageRepository;
9
+ //# sourceMappingURL=message.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.repository.d.ts","sourceRoot":"","sources":["../../src/repository/message.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,iBAAkB,SAAQ,cAAc;IAE7C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAW1D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAUjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI1D;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}