@loonylabs/llm-middleware 2.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 (396) hide show
  1. package/.env.example +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +629 -0
  4. package/dist/examples/character-generator/character-generator.messages.d.ts +9 -0
  5. package/dist/examples/character-generator/character-generator.messages.d.ts.map +1 -0
  6. package/dist/examples/character-generator/character-generator.messages.js +54 -0
  7. package/dist/examples/character-generator/character-generator.messages.js.map +1 -0
  8. package/dist/examples/character-generator/character-generator.usecase.d.ts +129 -0
  9. package/dist/examples/character-generator/character-generator.usecase.d.ts.map +1 -0
  10. package/dist/examples/character-generator/character-generator.usecase.js +209 -0
  11. package/dist/examples/character-generator/character-generator.usecase.js.map +1 -0
  12. package/dist/examples/character-generator/create-character.messages.d.ts +11 -0
  13. package/dist/examples/character-generator/create-character.messages.d.ts.map +1 -0
  14. package/dist/examples/character-generator/create-character.messages.js +38 -0
  15. package/dist/examples/character-generator/create-character.messages.js.map +1 -0
  16. package/dist/examples/flat-formatter-demo/product-preset.example.d.ts +99 -0
  17. package/dist/examples/flat-formatter-demo/product-preset.example.d.ts.map +1 -0
  18. package/dist/examples/flat-formatter-demo/product-preset.example.js +85 -0
  19. package/dist/examples/flat-formatter-demo/product-preset.example.js.map +1 -0
  20. package/dist/examples/simple-chat/chat.controller.d.ts +15 -0
  21. package/dist/examples/simple-chat/chat.controller.d.ts.map +1 -0
  22. package/dist/examples/simple-chat/chat.controller.js +39 -0
  23. package/dist/examples/simple-chat/chat.controller.js.map +1 -0
  24. package/dist/examples/simple-chat/chat.messages.d.ts +10 -0
  25. package/dist/examples/simple-chat/chat.messages.d.ts.map +1 -0
  26. package/dist/examples/simple-chat/chat.messages.js +17 -0
  27. package/dist/examples/simple-chat/chat.messages.js.map +1 -0
  28. package/dist/examples/simple-chat/chat.usecase.d.ts +33 -0
  29. package/dist/examples/simple-chat/chat.usecase.d.ts.map +1 -0
  30. package/dist/examples/simple-chat/chat.usecase.js +40 -0
  31. package/dist/examples/simple-chat/chat.usecase.js.map +1 -0
  32. package/dist/examples/simple-chat/index.d.ts +3 -0
  33. package/dist/examples/simple-chat/index.d.ts.map +1 -0
  34. package/dist/examples/simple-chat/index.js +57 -0
  35. package/dist/examples/simple-chat/index.js.map +1 -0
  36. package/dist/examples/story-generator/story-generator.messages.d.ts +13 -0
  37. package/dist/examples/story-generator/story-generator.messages.d.ts.map +1 -0
  38. package/dist/examples/story-generator/story-generator.messages.js +41 -0
  39. package/dist/examples/story-generator/story-generator.messages.js.map +1 -0
  40. package/dist/examples/story-generator/story-generator.usecase.d.ts +115 -0
  41. package/dist/examples/story-generator/story-generator.usecase.d.ts.map +1 -0
  42. package/dist/examples/story-generator/story-generator.usecase.js +121 -0
  43. package/dist/examples/story-generator/story-generator.usecase.js.map +1 -0
  44. package/dist/examples/tweet-generator/tweet-generator.messages.d.ts +15 -0
  45. package/dist/examples/tweet-generator/tweet-generator.messages.d.ts.map +1 -0
  46. package/dist/examples/tweet-generator/tweet-generator.messages.js +40 -0
  47. package/dist/examples/tweet-generator/tweet-generator.messages.js.map +1 -0
  48. package/dist/examples/tweet-generator/tweet-generator.usecase.d.ts +92 -0
  49. package/dist/examples/tweet-generator/tweet-generator.usecase.d.ts.map +1 -0
  50. package/dist/examples/tweet-generator/tweet-generator.usecase.js +116 -0
  51. package/dist/examples/tweet-generator/tweet-generator.usecase.js.map +1 -0
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +19 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/middleware/controllers/base/base.controller.d.ts +16 -0
  57. package/dist/middleware/controllers/base/base.controller.d.ts.map +1 -0
  58. package/dist/middleware/controllers/base/base.controller.js +38 -0
  59. package/dist/middleware/controllers/base/base.controller.js.map +1 -0
  60. package/dist/middleware/controllers/base/index.d.ts +2 -0
  61. package/dist/middleware/controllers/base/index.d.ts.map +1 -0
  62. package/dist/middleware/controllers/base/index.js +19 -0
  63. package/dist/middleware/controllers/base/index.js.map +1 -0
  64. package/dist/middleware/index.d.ts +7 -0
  65. package/dist/middleware/index.d.ts.map +1 -0
  66. package/dist/middleware/index.js +27 -0
  67. package/dist/middleware/index.js.map +1 -0
  68. package/dist/middleware/services/data-flow-logger/data-flow-logger.service.d.ts +127 -0
  69. package/dist/middleware/services/data-flow-logger/data-flow-logger.service.d.ts.map +1 -0
  70. package/dist/middleware/services/data-flow-logger/data-flow-logger.service.js +341 -0
  71. package/dist/middleware/services/data-flow-logger/data-flow-logger.service.js.map +1 -0
  72. package/dist/middleware/services/data-flow-logger/index.d.ts +2 -0
  73. package/dist/middleware/services/data-flow-logger/index.d.ts.map +1 -0
  74. package/dist/middleware/services/data-flow-logger/index.js +18 -0
  75. package/dist/middleware/services/data-flow-logger/index.js.map +1 -0
  76. package/dist/middleware/services/flat-formatter/flat-formatter.service.d.ts +86 -0
  77. package/dist/middleware/services/flat-formatter/flat-formatter.service.d.ts.map +1 -0
  78. package/dist/middleware/services/flat-formatter/flat-formatter.service.js +333 -0
  79. package/dist/middleware/services/flat-formatter/flat-formatter.service.js.map +1 -0
  80. package/dist/middleware/services/flat-formatter/index.d.ts +4 -0
  81. package/dist/middleware/services/flat-formatter/index.d.ts.map +1 -0
  82. package/dist/middleware/services/flat-formatter/index.js +28 -0
  83. package/dist/middleware/services/flat-formatter/index.js.map +1 -0
  84. package/dist/middleware/services/flat-formatter/presets/base-preset.d.ts +68 -0
  85. package/dist/middleware/services/flat-formatter/presets/base-preset.d.ts.map +1 -0
  86. package/dist/middleware/services/flat-formatter/presets/base-preset.js +238 -0
  87. package/dist/middleware/services/flat-formatter/presets/base-preset.js.map +1 -0
  88. package/dist/middleware/services/flat-formatter/presets/index.d.ts +5 -0
  89. package/dist/middleware/services/flat-formatter/presets/index.d.ts.map +1 -0
  90. package/dist/middleware/services/flat-formatter/presets/index.js +28 -0
  91. package/dist/middleware/services/flat-formatter/presets/index.js.map +1 -0
  92. package/dist/middleware/services/flat-formatter/presets/types/entity-types.d.ts +23 -0
  93. package/dist/middleware/services/flat-formatter/presets/types/entity-types.d.ts.map +1 -0
  94. package/dist/middleware/services/flat-formatter/presets/types/entity-types.js +3 -0
  95. package/dist/middleware/services/flat-formatter/presets/types/entity-types.js.map +1 -0
  96. package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.d.ts +30 -0
  97. package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.d.ts.map +1 -0
  98. package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.js +3 -0
  99. package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.js.map +1 -0
  100. package/dist/middleware/services/index.d.ts +10 -0
  101. package/dist/middleware/services/index.d.ts.map +1 -0
  102. package/dist/middleware/services/index.js +28 -0
  103. package/dist/middleware/services/index.js.map +1 -0
  104. package/dist/middleware/services/json-cleaner/helpers/index.d.ts +3 -0
  105. package/dist/middleware/services/json-cleaner/helpers/index.d.ts.map +1 -0
  106. package/dist/middleware/services/json-cleaner/helpers/index.js +19 -0
  107. package/dist/middleware/services/json-cleaner/helpers/index.js.map +1 -0
  108. package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.d.ts +52 -0
  109. package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.d.ts.map +1 -0
  110. package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.js +271 -0
  111. package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.js.map +1 -0
  112. package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.d.ts +83 -0
  113. package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.d.ts.map +1 -0
  114. package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.js +326 -0
  115. package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.js.map +1 -0
  116. package/dist/middleware/services/json-cleaner/index.d.ts +9 -0
  117. package/dist/middleware/services/json-cleaner/index.d.ts.map +1 -0
  118. package/dist/middleware/services/json-cleaner/index.js +31 -0
  119. package/dist/middleware/services/json-cleaner/index.js.map +1 -0
  120. package/dist/middleware/services/json-cleaner/json-cleaner-logger.d.ts +59 -0
  121. package/dist/middleware/services/json-cleaner/json-cleaner-logger.d.ts.map +1 -0
  122. package/dist/middleware/services/json-cleaner/json-cleaner-logger.js +164 -0
  123. package/dist/middleware/services/json-cleaner/json-cleaner-logger.js.map +1 -0
  124. package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.d.ts +56 -0
  125. package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.d.ts.map +1 -0
  126. package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.js +178 -0
  127. package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.js.map +1 -0
  128. package/dist/middleware/services/json-cleaner/json-cleaner.service.d.ts +94 -0
  129. package/dist/middleware/services/json-cleaner/json-cleaner.service.d.ts.map +1 -0
  130. package/dist/middleware/services/json-cleaner/json-cleaner.service.js +175 -0
  131. package/dist/middleware/services/json-cleaner/json-cleaner.service.js.map +1 -0
  132. package/dist/middleware/services/json-cleaner/json-cleaner.types.d.ts +92 -0
  133. package/dist/middleware/services/json-cleaner/json-cleaner.types.d.ts.map +1 -0
  134. package/dist/middleware/services/json-cleaner/json-cleaner.types.js +3 -0
  135. package/dist/middleware/services/json-cleaner/json-cleaner.types.js.map +1 -0
  136. package/dist/middleware/services/json-cleaner/parsers/index.d.ts +4 -0
  137. package/dist/middleware/services/json-cleaner/parsers/index.d.ts.map +1 -0
  138. package/dist/middleware/services/json-cleaner/parsers/index.js +20 -0
  139. package/dist/middleware/services/json-cleaner/parsers/index.js.map +1 -0
  140. package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.d.ts +32 -0
  141. package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.d.ts.map +1 -0
  142. package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.js +148 -0
  143. package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.js.map +1 -0
  144. package/dist/middleware/services/json-cleaner/parsers/markdown.parser.d.ts +19 -0
  145. package/dist/middleware/services/json-cleaner/parsers/markdown.parser.d.ts.map +1 -0
  146. package/dist/middleware/services/json-cleaner/parsers/markdown.parser.js +43 -0
  147. package/dist/middleware/services/json-cleaner/parsers/markdown.parser.js.map +1 -0
  148. package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.d.ts +19 -0
  149. package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.d.ts.map +1 -0
  150. package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.js +37 -0
  151. package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.js.map +1 -0
  152. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.d.ts +40 -0
  153. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.d.ts.map +1 -0
  154. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.js +138 -0
  155. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.js.map +1 -0
  156. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.d.ts +74 -0
  157. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.d.ts.map +1 -0
  158. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.js +230 -0
  159. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.js.map +1 -0
  160. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.d.ts +16 -0
  161. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.d.ts.map +1 -0
  162. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.js +179 -0
  163. package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.js.map +1 -0
  164. package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.d.ts +88 -0
  165. package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.d.ts.map +1 -0
  166. package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.js +178 -0
  167. package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.js.map +1 -0
  168. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.d.ts +51 -0
  169. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.d.ts.map +1 -0
  170. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.js +219 -0
  171. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.js.map +1 -0
  172. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.d.ts +62 -0
  173. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.d.ts.map +1 -0
  174. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.js +217 -0
  175. package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.js.map +1 -0
  176. package/dist/middleware/services/json-cleaner/recipe-system/factory.d.ts +46 -0
  177. package/dist/middleware/services/json-cleaner/recipe-system/factory.d.ts.map +1 -0
  178. package/dist/middleware/services/json-cleaner/recipe-system/factory.js +52 -0
  179. package/dist/middleware/services/json-cleaner/recipe-system/factory.js.map +1 -0
  180. package/dist/middleware/services/json-cleaner/recipe-system/index.d.ts +12 -0
  181. package/dist/middleware/services/json-cleaner/recipe-system/index.d.ts.map +1 -0
  182. package/dist/middleware/services/json-cleaner/recipe-system/index.js +28 -0
  183. package/dist/middleware/services/json-cleaner/recipe-system/index.js.map +1 -0
  184. package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.d.ts +55 -0
  185. package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.d.ts.map +1 -0
  186. package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.js +348 -0
  187. package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.js.map +1 -0
  188. package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.d.ts +70 -0
  189. package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.d.ts.map +1 -0
  190. package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.js +568 -0
  191. package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.js.map +1 -0
  192. package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.d.ts +11 -0
  193. package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.d.ts.map +1 -0
  194. package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.js +103 -0
  195. package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.js.map +1 -0
  196. package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.d.ts +171 -0
  197. package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.d.ts.map +1 -0
  198. package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.js +3 -0
  199. package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.js.map +1 -0
  200. package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.d.ts +224 -0
  201. package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.d.ts.map +1 -0
  202. package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.js +3 -0
  203. package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.js.map +1 -0
  204. package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.d.ts +29 -0
  205. package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.d.ts.map +1 -0
  206. package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.js +128 -0
  207. package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.js.map +1 -0
  208. package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.d.ts +38 -0
  209. package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.d.ts.map +1 -0
  210. package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.js +18 -0
  211. package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.js.map +1 -0
  212. package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.d.ts +65 -0
  213. package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.d.ts.map +1 -0
  214. package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.js +420 -0
  215. package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.js.map +1 -0
  216. package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.d.ts +50 -0
  217. package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.d.ts.map +1 -0
  218. package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.js +416 -0
  219. package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.js.map +1 -0
  220. package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.d.ts +27 -0
  221. package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.d.ts.map +1 -0
  222. package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.js +84 -0
  223. package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.js.map +1 -0
  224. package/dist/middleware/services/json-cleaner/strategies/index.d.ts +8 -0
  225. package/dist/middleware/services/json-cleaner/strategies/index.d.ts.map +1 -0
  226. package/dist/middleware/services/json-cleaner/strategies/index.js +24 -0
  227. package/dist/middleware/services/json-cleaner/strategies/index.js.map +1 -0
  228. package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.d.ts +23 -0
  229. package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.d.ts.map +1 -0
  230. package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.js +65 -0
  231. package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.js.map +1 -0
  232. package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.d.ts +48 -0
  233. package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.d.ts.map +1 -0
  234. package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.js +188 -0
  235. package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.js.map +1 -0
  236. package/dist/middleware/services/json-cleaner/utils/console-logger.util.d.ts +50 -0
  237. package/dist/middleware/services/json-cleaner/utils/console-logger.util.d.ts.map +1 -0
  238. package/dist/middleware/services/json-cleaner/utils/console-logger.util.js +95 -0
  239. package/dist/middleware/services/json-cleaner/utils/console-logger.util.js.map +1 -0
  240. package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.d.ts +59 -0
  241. package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.d.ts.map +1 -0
  242. package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.js +326 -0
  243. package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.js.map +1 -0
  244. package/dist/middleware/services/json-cleaner/utils/index.d.ts +3 -0
  245. package/dist/middleware/services/json-cleaner/utils/index.d.ts.map +1 -0
  246. package/dist/middleware/services/json-cleaner/utils/index.js +19 -0
  247. package/dist/middleware/services/json-cleaner/utils/index.js.map +1 -0
  248. package/dist/middleware/services/json-cleaner/utils/json-inspector.util.d.ts +27 -0
  249. package/dist/middleware/services/json-cleaner/utils/json-inspector.util.d.ts.map +1 -0
  250. package/dist/middleware/services/json-cleaner/utils/json-inspector.util.js +139 -0
  251. package/dist/middleware/services/json-cleaner/utils/json-inspector.util.js.map +1 -0
  252. package/dist/middleware/services/llm/index.d.ts +5 -0
  253. package/dist/middleware/services/llm/index.d.ts.map +1 -0
  254. package/dist/middleware/services/llm/index.js +25 -0
  255. package/dist/middleware/services/llm/index.js.map +1 -0
  256. package/dist/middleware/services/llm/llm.service.d.ts +43 -0
  257. package/dist/middleware/services/llm/llm.service.d.ts.map +1 -0
  258. package/dist/middleware/services/llm/llm.service.js +70 -0
  259. package/dist/middleware/services/llm/llm.service.js.map +1 -0
  260. package/dist/middleware/services/llm/providers/base-llm-provider.d.ts +37 -0
  261. package/dist/middleware/services/llm/providers/base-llm-provider.d.ts.map +1 -0
  262. package/dist/middleware/services/llm/providers/base-llm-provider.js +41 -0
  263. package/dist/middleware/services/llm/providers/base-llm-provider.js.map +1 -0
  264. package/dist/middleware/services/llm/providers/index.d.ts +3 -0
  265. package/dist/middleware/services/llm/providers/index.d.ts.map +1 -0
  266. package/dist/middleware/services/llm/providers/index.js +25 -0
  267. package/dist/middleware/services/llm/providers/index.js.map +1 -0
  268. package/dist/middleware/services/llm/providers/ollama-provider.d.ts +39 -0
  269. package/dist/middleware/services/llm/providers/ollama-provider.d.ts.map +1 -0
  270. package/dist/middleware/services/llm/providers/ollama-provider.js +398 -0
  271. package/dist/middleware/services/llm/providers/ollama-provider.js.map +1 -0
  272. package/dist/middleware/services/llm/types/common.types.d.ts +81 -0
  273. package/dist/middleware/services/llm/types/common.types.d.ts.map +1 -0
  274. package/dist/middleware/services/llm/types/common.types.js +17 -0
  275. package/dist/middleware/services/llm/types/common.types.js.map +1 -0
  276. package/dist/middleware/services/llm/types/index.d.ts +3 -0
  277. package/dist/middleware/services/llm/types/index.d.ts.map +1 -0
  278. package/dist/middleware/services/llm/types/index.js +21 -0
  279. package/dist/middleware/services/llm/types/index.js.map +1 -0
  280. package/dist/middleware/services/llm/types/ollama.types.d.ts +48 -0
  281. package/dist/middleware/services/llm/types/ollama.types.d.ts.map +1 -0
  282. package/dist/middleware/services/llm/types/ollama.types.js +8 -0
  283. package/dist/middleware/services/llm/types/ollama.types.js.map +1 -0
  284. package/dist/middleware/services/llm/utils/debug-llm.utils.d.ts +42 -0
  285. package/dist/middleware/services/llm/utils/debug-llm.utils.d.ts.map +1 -0
  286. package/dist/middleware/services/llm/utils/debug-llm.utils.js +325 -0
  287. package/dist/middleware/services/llm/utils/debug-llm.utils.js.map +1 -0
  288. package/dist/middleware/services/llm/utils/index.d.ts +3 -0
  289. package/dist/middleware/services/llm/utils/index.d.ts.map +1 -0
  290. package/dist/middleware/services/llm/utils/index.js +19 -0
  291. package/dist/middleware/services/llm/utils/index.js.map +1 -0
  292. package/dist/middleware/services/llm/utils/text-analysis.utils.d.ts +75 -0
  293. package/dist/middleware/services/llm/utils/text-analysis.utils.d.ts.map +1 -0
  294. package/dist/middleware/services/llm/utils/text-analysis.utils.js +197 -0
  295. package/dist/middleware/services/llm/utils/text-analysis.utils.js.map +1 -0
  296. package/dist/middleware/services/model-parameter-manager/index.d.ts +2 -0
  297. package/dist/middleware/services/model-parameter-manager/index.d.ts.map +1 -0
  298. package/dist/middleware/services/model-parameter-manager/index.js +18 -0
  299. package/dist/middleware/services/model-parameter-manager/index.js.map +1 -0
  300. package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.d.ts +165 -0
  301. package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.d.ts.map +1 -0
  302. package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.js +325 -0
  303. package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.js.map +1 -0
  304. package/dist/middleware/services/request-formatter/index.d.ts +2 -0
  305. package/dist/middleware/services/request-formatter/index.d.ts.map +1 -0
  306. package/dist/middleware/services/request-formatter/index.js +18 -0
  307. package/dist/middleware/services/request-formatter/index.js.map +1 -0
  308. package/dist/middleware/services/request-formatter/request-formatter.service.d.ts +71 -0
  309. package/dist/middleware/services/request-formatter/request-formatter.service.d.ts.map +1 -0
  310. package/dist/middleware/services/request-formatter/request-formatter.service.js +230 -0
  311. package/dist/middleware/services/request-formatter/request-formatter.service.js.map +1 -0
  312. package/dist/middleware/services/response-processor.service.d.ts +106 -0
  313. package/dist/middleware/services/response-processor.service.d.ts.map +1 -0
  314. package/dist/middleware/services/response-processor.service.js +236 -0
  315. package/dist/middleware/services/response-processor.service.js.map +1 -0
  316. package/dist/middleware/services/token-estimator/index.d.ts +2 -0
  317. package/dist/middleware/services/token-estimator/index.d.ts.map +1 -0
  318. package/dist/middleware/services/token-estimator/index.js +18 -0
  319. package/dist/middleware/services/token-estimator/index.js.map +1 -0
  320. package/dist/middleware/services/token-estimator/token-estimator.service.d.ts +97 -0
  321. package/dist/middleware/services/token-estimator/token-estimator.service.d.ts.map +1 -0
  322. package/dist/middleware/services/token-estimator/token-estimator.service.js +190 -0
  323. package/dist/middleware/services/token-estimator/token-estimator.service.js.map +1 -0
  324. package/dist/middleware/services/use-case-metrics-logger/index.d.ts +2 -0
  325. package/dist/middleware/services/use-case-metrics-logger/index.d.ts.map +1 -0
  326. package/dist/middleware/services/use-case-metrics-logger/index.js +18 -0
  327. package/dist/middleware/services/use-case-metrics-logger/index.js.map +1 -0
  328. package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.d.ts +89 -0
  329. package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.d.ts.map +1 -0
  330. package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.js +112 -0
  331. package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.js.map +1 -0
  332. package/dist/middleware/shared/config/app.config.d.ts +3 -0
  333. package/dist/middleware/shared/config/app.config.d.ts.map +1 -0
  334. package/dist/middleware/shared/config/app.config.js +76 -0
  335. package/dist/middleware/shared/config/app.config.js.map +1 -0
  336. package/dist/middleware/shared/config/index.d.ts +4 -0
  337. package/dist/middleware/shared/config/index.d.ts.map +1 -0
  338. package/dist/middleware/shared/config/index.js +21 -0
  339. package/dist/middleware/shared/config/index.js.map +1 -0
  340. package/dist/middleware/shared/config/logging.config.d.ts +49 -0
  341. package/dist/middleware/shared/config/logging.config.d.ts.map +1 -0
  342. package/dist/middleware/shared/config/logging.config.js +16 -0
  343. package/dist/middleware/shared/config/logging.config.js.map +1 -0
  344. package/dist/middleware/shared/config/models.config.d.ts +19 -0
  345. package/dist/middleware/shared/config/models.config.d.ts.map +1 -0
  346. package/dist/middleware/shared/config/models.config.js +39 -0
  347. package/dist/middleware/shared/config/models.config.js.map +1 -0
  348. package/dist/middleware/shared/constants/index.d.ts +2 -0
  349. package/dist/middleware/shared/constants/index.d.ts.map +1 -0
  350. package/dist/middleware/shared/constants/index.js +19 -0
  351. package/dist/middleware/shared/constants/index.js.map +1 -0
  352. package/dist/middleware/shared/constants/json-formatting.constants.d.ts +36 -0
  353. package/dist/middleware/shared/constants/json-formatting.constants.d.ts.map +1 -0
  354. package/dist/middleware/shared/constants/json-formatting.constants.js +81 -0
  355. package/dist/middleware/shared/constants/json-formatting.constants.js.map +1 -0
  356. package/dist/middleware/shared/types/base-request.types.d.ts +27 -0
  357. package/dist/middleware/shared/types/base-request.types.d.ts.map +1 -0
  358. package/dist/middleware/shared/types/base-request.types.js +3 -0
  359. package/dist/middleware/shared/types/base-request.types.js.map +1 -0
  360. package/dist/middleware/shared/types/client-info.d.ts +8 -0
  361. package/dist/middleware/shared/types/client-info.d.ts.map +1 -0
  362. package/dist/middleware/shared/types/client-info.js +3 -0
  363. package/dist/middleware/shared/types/client-info.js.map +1 -0
  364. package/dist/middleware/shared/types/index.d.ts +43 -0
  365. package/dist/middleware/shared/types/index.d.ts.map +1 -0
  366. package/dist/middleware/shared/types/index.js +20 -0
  367. package/dist/middleware/shared/types/index.js.map +1 -0
  368. package/dist/middleware/shared/utils/http.utils.d.ts +25 -0
  369. package/dist/middleware/shared/utils/http.utils.d.ts.map +1 -0
  370. package/dist/middleware/shared/utils/http.utils.js +44 -0
  371. package/dist/middleware/shared/utils/http.utils.js.map +1 -0
  372. package/dist/middleware/shared/utils/index.d.ts +5 -0
  373. package/dist/middleware/shared/utils/index.d.ts.map +1 -0
  374. package/dist/middleware/shared/utils/index.js +22 -0
  375. package/dist/middleware/shared/utils/index.js.map +1 -0
  376. package/dist/middleware/shared/utils/logging.utils.d.ts +30 -0
  377. package/dist/middleware/shared/utils/logging.utils.d.ts.map +1 -0
  378. package/dist/middleware/shared/utils/logging.utils.js +91 -0
  379. package/dist/middleware/shared/utils/logging.utils.js.map +1 -0
  380. package/dist/middleware/shared/utils/memory-management.utils.d.ts +10 -0
  381. package/dist/middleware/shared/utils/memory-management.utils.d.ts.map +1 -0
  382. package/dist/middleware/shared/utils/memory-management.utils.js +31 -0
  383. package/dist/middleware/shared/utils/memory-management.utils.js.map +1 -0
  384. package/dist/middleware/shared/utils/validation.utils.d.ts +12 -0
  385. package/dist/middleware/shared/utils/validation.utils.d.ts.map +1 -0
  386. package/dist/middleware/shared/utils/validation.utils.js +36 -0
  387. package/dist/middleware/shared/utils/validation.utils.js.map +1 -0
  388. package/dist/middleware/usecases/base/base-ai.usecase.d.ts +72 -0
  389. package/dist/middleware/usecases/base/base-ai.usecase.d.ts.map +1 -0
  390. package/dist/middleware/usecases/base/base-ai.usecase.js +125 -0
  391. package/dist/middleware/usecases/base/base-ai.usecase.js.map +1 -0
  392. package/dist/middleware/usecases/base/index.d.ts +2 -0
  393. package/dist/middleware/usecases/base/index.d.ts.map +1 -0
  394. package/dist/middleware/usecases/base/index.js +18 -0
  395. package/dist/middleware/usecases/base/index.js.map +1 -0
  396. package/package.json +97 -0
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Service Orchestrator
4
+ * Provides a unified interface for interacting with different LLM providers
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.llmService = exports.LLMService = void 0;
8
+ const ollama_provider_1 = require("./providers/ollama-provider");
9
+ const types_1 = require("./types");
10
+ class LLMService {
11
+ constructor() {
12
+ this.defaultProvider = types_1.LLMProvider.OLLAMA;
13
+ this.providers = new Map();
14
+ // Initialize available providers
15
+ this.providers.set(types_1.LLMProvider.OLLAMA, new ollama_provider_1.OllamaProvider());
16
+ }
17
+ /**
18
+ * Get a specific provider instance
19
+ */
20
+ getProvider(provider) {
21
+ const providerInstance = this.providers.get(provider);
22
+ if (!providerInstance) {
23
+ throw new Error(`Provider ${provider} is not available. Available providers: ${Array.from(this.providers.keys()).join(', ')}`);
24
+ }
25
+ return providerInstance;
26
+ }
27
+ /**
28
+ * Set the default provider for all requests
29
+ */
30
+ setDefaultProvider(provider) {
31
+ if (!this.providers.has(provider)) {
32
+ throw new Error(`Provider ${provider} is not available`);
33
+ }
34
+ this.defaultProvider = provider;
35
+ }
36
+ /**
37
+ * Get the current default provider
38
+ */
39
+ getDefaultProvider() {
40
+ return this.defaultProvider;
41
+ }
42
+ /**
43
+ * Call an LLM with a custom system message
44
+ * Uses the specified provider or the default provider
45
+ */
46
+ async callWithSystemMessage(userPrompt, systemMessage, options = {}) {
47
+ const provider = options.provider || this.defaultProvider;
48
+ const providerInstance = this.getProvider(provider);
49
+ return providerInstance.callWithSystemMessage(userPrompt, systemMessage, options);
50
+ }
51
+ /**
52
+ * Call an LLM with the default system message
53
+ * Uses the specified provider or the default provider
54
+ */
55
+ async call(prompt, options = {}) {
56
+ const provider = options.provider || this.defaultProvider;
57
+ const providerInstance = this.getProvider(provider);
58
+ return providerInstance.call(prompt, options);
59
+ }
60
+ /**
61
+ * Get list of available providers
62
+ */
63
+ getAvailableProviders() {
64
+ return Array.from(this.providers.keys());
65
+ }
66
+ }
67
+ exports.LLMService = LLMService;
68
+ // Export singleton instance
69
+ exports.llmService = new LLMService();
70
+ //# sourceMappingURL=llm.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.service.js","sourceRoot":"","sources":["../../../../src/middleware/services/llm/llm.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,iEAA6D;AAC7D,mCAA2E;AAE3E,MAAa,UAAU;IAIrB;QAFQ,oBAAe,GAAgB,mBAAW,CAAC,MAAM,CAAC;QAGxD,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,iCAAiC;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAW,CAAC,MAAM,EAAE,IAAI,gCAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,QAAqB;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,2CAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjI,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,QAAqB;QAC7C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,qBAAqB,CAChC,UAAkB,EAClB,aAAqB,EACrB,UAAyD,EAAE;QAE3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI,CACf,MAAc,EACd,UAAyD,EAAE;QAE3D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAvED,gCAuEC;AAED,4BAA4B;AACf,QAAA,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Base abstract class for all LLM providers
3
+ * Defines the contract that all providers must implement
4
+ */
5
+ import { CommonLLMOptions, CommonLLMResponse, LLMProvider } from '../types';
6
+ export declare abstract class BaseLLMProvider {
7
+ protected providerName: LLMProvider;
8
+ constructor(providerName: LLMProvider);
9
+ /**
10
+ * Get the provider name
11
+ */
12
+ getProviderName(): LLMProvider;
13
+ /**
14
+ * Call the LLM API with a custom system message
15
+ * This is the main method that all providers must implement
16
+ *
17
+ * @param userPrompt - The user's prompt for the model
18
+ * @param systemMessage - The system message defining AI behavior
19
+ * @param options - Provider-specific options
20
+ * @returns The API response or null on error
21
+ */
22
+ abstract callWithSystemMessage(userPrompt: string, systemMessage: string, options: CommonLLMOptions): Promise<CommonLLMResponse | null>;
23
+ /**
24
+ * Call the LLM API with default system message
25
+ *
26
+ * @param prompt - The prompt for the model
27
+ * @param options - Provider-specific options
28
+ * @returns The API response or null on error
29
+ */
30
+ call(prompt: string, options?: CommonLLMOptions): Promise<CommonLLMResponse | null>;
31
+ /**
32
+ * Validate that required configuration is present
33
+ * Override this in specific providers if they need validation
34
+ */
35
+ protected validateConfig(options: CommonLLMOptions): void;
36
+ }
37
+ //# sourceMappingURL=base-llm-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-llm-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/llm/providers/base-llm-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5E,8BAAsB,eAAe;IACnC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;gBAExB,YAAY,EAAE,WAAW;IAIrC;;OAEG;IACI,eAAe,IAAI,WAAW;IAIrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,qBAAqB,CAC5B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEpC;;;;;;OAMG;IACU,IAAI,CACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAKpC;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;CAQ1D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Base abstract class for all LLM providers
4
+ * Defines the contract that all providers must implement
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseLLMProvider = void 0;
8
+ class BaseLLMProvider {
9
+ constructor(providerName) {
10
+ this.providerName = providerName;
11
+ }
12
+ /**
13
+ * Get the provider name
14
+ */
15
+ getProviderName() {
16
+ return this.providerName;
17
+ }
18
+ /**
19
+ * Call the LLM API with default system message
20
+ *
21
+ * @param prompt - The prompt for the model
22
+ * @param options - Provider-specific options
23
+ * @returns The API response or null on error
24
+ */
25
+ async call(prompt, options = {}) {
26
+ const defaultSystemMessage = "You are a helpful assistant, who provides clear and precise answers.";
27
+ return this.callWithSystemMessage(prompt, defaultSystemMessage, options);
28
+ }
29
+ /**
30
+ * Validate that required configuration is present
31
+ * Override this in specific providers if they need validation
32
+ */
33
+ validateConfig(options) {
34
+ if (!options.model) {
35
+ throw new Error(`Model name is required for ${this.providerName} provider. ` +
36
+ 'Please ensure model is set in your options or environment variables.');
37
+ }
38
+ }
39
+ }
40
+ exports.BaseLLMProvider = BaseLLMProvider;
41
+ //# sourceMappingURL=base-llm-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-llm-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/llm/providers/base-llm-provider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAsB,eAAe;IAGnC,YAAY,YAAyB;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAiBD;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CACf,MAAc,EACd,UAA4B,EAAE;QAE9B,MAAM,oBAAoB,GAAG,sEAAsE,CAAC;QACpG,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACO,cAAc,CAAC,OAAyB;QAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,YAAY,aAAa;gBAC5D,sEAAsE,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAxDD,0CAwDC"}
@@ -0,0 +1,3 @@
1
+ export * from './base-llm-provider';
2
+ export * from './ollama-provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/llm/providers/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Base provider
18
+ __exportStar(require("./base-llm-provider"), exports);
19
+ // Concrete providers
20
+ __exportStar(require("./ollama-provider"), exports);
21
+ // Future providers will be added here:
22
+ // export * from './openai-provider';
23
+ // export * from './anthropic-provider';
24
+ // export * from './google-provider';
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/llm/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gBAAgB;AAChB,sDAAoC;AAEpC,qBAAqB;AACrB,oDAAkC;AAElC,uCAAuC;AACvC,qCAAqC;AACrC,wCAAwC;AACxC,qCAAqC"}
@@ -0,0 +1,39 @@
1
+ import { BaseLLMProvider } from './base-llm-provider';
2
+ import { CommonLLMResponse } from '../types';
3
+ import { OllamaRequestOptions, OllamaResponse } from '../types/ollama.types';
4
+ /**
5
+ * Ollama provider implementation with advanced features:
6
+ * - Comprehensive debugging and logging
7
+ * - Retry logic with authentication fallbacks
8
+ * - Session management
9
+ * - Parameter handling
10
+ * - Error recovery strategies
11
+ */
12
+ export declare class OllamaProvider extends BaseLLMProvider {
13
+ private dataFlowLogger;
14
+ constructor();
15
+ /**
16
+ * Call the Ollama API with a custom system message
17
+ * @param userPrompt - The user's prompt for the model
18
+ * @param systemMessage - The system message defining AI behavior
19
+ * @param options - Options for the API call (including token and sessionId)
20
+ * @returns The API response or null on error
21
+ */
22
+ callWithSystemMessage(userPrompt: string, systemMessage: string, options?: OllamaRequestOptions): Promise<CommonLLMResponse | null>;
23
+ /**
24
+ * Helper method to handle successful responses consistently
25
+ */
26
+ private handleSuccessfulResponse;
27
+ /**
28
+ * Backward compatibility: Old method name
29
+ */
30
+ callOllamaApiWithSystemMessage(userPrompt: string, systemMessage: string, options?: OllamaRequestOptions): Promise<OllamaResponse | null>;
31
+ /**
32
+ * Backward compatibility: Old method name
33
+ */
34
+ callOllamaApi(prompt: string, options?: OllamaRequestOptions): Promise<OllamaResponse | null>;
35
+ }
36
+ export declare const ollamaProvider: OllamaProvider;
37
+ export { OllamaProvider as OllamaService };
38
+ export { ollamaProvider as ollamaService };
39
+ //# sourceMappingURL=ollama-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/llm/providers/ollama-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAe,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI7E;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,OAAO,CAAC,cAAc,CAAwB;;IAO9C;;;;;;OAMG;IACU,qBAAqB,CAChC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA8ZpC;;OAEG;YACW,wBAAwB;IAkCtC;;OAEG;IACU,8BAA8B,CACzC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIjC;;OAEG;IACU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAGlC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAGnD,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC;AAC3C,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ollamaService = exports.OllamaService = exports.ollamaProvider = exports.OllamaProvider = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const uuid_1 = require("uuid");
9
+ const logging_utils_1 = require("../../../shared/utils/logging.utils");
10
+ const base_llm_provider_1 = require("./base-llm-provider");
11
+ const types_1 = require("../types");
12
+ const debug_llm_utils_1 = require("../utils/debug-llm.utils");
13
+ const data_flow_logger_1 = require("../../data-flow-logger");
14
+ /**
15
+ * Ollama provider implementation with advanced features:
16
+ * - Comprehensive debugging and logging
17
+ * - Retry logic with authentication fallbacks
18
+ * - Session management
19
+ * - Parameter handling
20
+ * - Error recovery strategies
21
+ */
22
+ class OllamaProvider extends base_llm_provider_1.BaseLLMProvider {
23
+ constructor() {
24
+ super(types_1.LLMProvider.OLLAMA);
25
+ this.dataFlowLogger = data_flow_logger_1.DataFlowLoggerService.getInstance();
26
+ }
27
+ /**
28
+ * Call the Ollama API with a custom system message
29
+ * @param userPrompt - The user's prompt for the model
30
+ * @param systemMessage - The system message defining AI behavior
31
+ * @param options - Options for the API call (including token and sessionId)
32
+ * @returns The API response or null on error
33
+ */
34
+ async callWithSystemMessage(userPrompt, systemMessage, options = {}) {
35
+ const { authToken, model, temperature = 0.7, baseUrl = process.env.MODEL1_URL || "http://localhost:11434", repeat_penalty, top_p, top_k, frequency_penalty, presence_penalty, repeat_last_n, num_predict, debugContext, sessionId = (0, uuid_1.v4)(), chapterNumber, pageNumber, pageName } = options;
36
+ // Validate that model is provided
37
+ if (!model) {
38
+ throw new Error('Model name is required but not provided. ' +
39
+ 'Please ensure MODEL1_NAME is set in your .env file or pass model explicitly in options.');
40
+ }
41
+ const headers = {
42
+ 'Content-Type': 'application/json'
43
+ };
44
+ if (authToken) {
45
+ headers['Authorization'] = `Bearer ${authToken}`;
46
+ }
47
+ // Create base data without session_id
48
+ const baseData = {
49
+ model: model,
50
+ messages: [
51
+ { role: "system", content: systemMessage },
52
+ { role: "user", content: userPrompt }
53
+ ],
54
+ temperature: temperature,
55
+ stream: false,
56
+ options: {
57
+ ...(repeat_penalty !== undefined && { repeat_penalty }),
58
+ ...(top_p !== undefined && { top_p }),
59
+ ...(top_k !== undefined && { top_k }),
60
+ ...(frequency_penalty !== undefined && { frequency_penalty }),
61
+ ...(presence_penalty !== undefined && { presence_penalty }),
62
+ ...(repeat_last_n !== undefined && { repeat_last_n }),
63
+ ...(num_predict !== undefined && { num_predict })
64
+ }
65
+ };
66
+ // Add session_id if it should be used
67
+ const data = {
68
+ ...baseData,
69
+ session_id: sessionId
70
+ };
71
+ // Get client request body from global scope
72
+ let clientRequestBody = undefined;
73
+ try {
74
+ clientRequestBody = global.currentRequestBody;
75
+ }
76
+ catch (error) {
77
+ // Ignore as it's optional
78
+ }
79
+ // Prepare debug info
80
+ const debugInfo = {
81
+ timestamp: new Date(),
82
+ provider: this.providerName,
83
+ model: model,
84
+ baseUrl: baseUrl,
85
+ systemMessage: systemMessage,
86
+ userMessage: userPrompt,
87
+ requestData: data,
88
+ useCase: debugContext,
89
+ clientRequestBody: clientRequestBody,
90
+ sessionId: sessionId,
91
+ chapterNumber: chapterNumber,
92
+ pageNumber: pageNumber,
93
+ pageName: pageName
94
+ };
95
+ // Log request
96
+ await debug_llm_utils_1.LLMDebugger.logRequest(debugInfo);
97
+ // Log to data flow logger
98
+ const contextForLogger = {
99
+ currentChapterNr: chapterNumber,
100
+ currentPage: pageNumber,
101
+ debugContext
102
+ };
103
+ const requestId = this.dataFlowLogger.startRequest(debugContext || 'ollama-direct', contextForLogger);
104
+ this.dataFlowLogger.logLLMRequest({
105
+ stage: debugContext || 'ollama-direct',
106
+ prompt: userPrompt,
107
+ systemMessage: systemMessage,
108
+ modelName: model,
109
+ temperature: temperature,
110
+ contextInfo: {
111
+ sessionId,
112
+ chapterNumber,
113
+ pageNumber,
114
+ pageName,
115
+ parameters: {
116
+ repeat_penalty,
117
+ top_p,
118
+ top_k,
119
+ frequency_penalty,
120
+ presence_penalty,
121
+ repeat_last_n,
122
+ num_predict
123
+ }
124
+ }
125
+ }, contextForLogger, requestId);
126
+ const requestStartTime = Date.now();
127
+ try {
128
+ logging_utils_1.logger.info('Sending request to Ollama API', {
129
+ context: 'OllamaProvider',
130
+ metadata: {
131
+ url: `${baseUrl}/api/chat`,
132
+ model: model,
133
+ hasAuthToken: !!authToken,
134
+ promptLength: userPrompt.length
135
+ }
136
+ });
137
+ const response = await axios_1.default.post(`${baseUrl}/api/chat`, data, {
138
+ headers,
139
+ timeout: 90000 // 90 second timeout
140
+ });
141
+ const requestDuration = Date.now() - requestStartTime;
142
+ if (response && response.status === 200) {
143
+ const aiResponse = response.data;
144
+ // Add session ID to response
145
+ aiResponse.sessionId = sessionId;
146
+ // Add metadata
147
+ aiResponse.metadata = {
148
+ provider: this.providerName,
149
+ model: model,
150
+ tokensUsed: aiResponse.eval_count,
151
+ processingTime: requestDuration
152
+ };
153
+ // Add response info
154
+ debugInfo.responseTimestamp = new Date();
155
+ debugInfo.response = aiResponse.message.content;
156
+ debugInfo.rawResponseData = aiResponse;
157
+ // Try to extract thinking content
158
+ const thinkMatch = aiResponse.message.content.match(/<think>([\s\S]*?)<\/think>/);
159
+ if (thinkMatch && thinkMatch[1]) {
160
+ debugInfo.thinking = thinkMatch[1].trim();
161
+ }
162
+ // Log response (including markdown saving)
163
+ await debug_llm_utils_1.LLMDebugger.logResponse(debugInfo);
164
+ // Log to data flow logger
165
+ this.dataFlowLogger.logLLMResponse(debugContext || 'ollama-direct', {
166
+ rawResponse: aiResponse.message.content,
167
+ processingTime: requestDuration
168
+ }, contextForLogger, requestId);
169
+ return aiResponse;
170
+ }
171
+ else {
172
+ const error = new Error(`Status ${response?.status || 'unknown'}`);
173
+ logging_utils_1.logger.error('Error calling Ollama API', {
174
+ context: this.constructor.name,
175
+ error: error.message,
176
+ metadata: response?.data || {}
177
+ });
178
+ // Log error to data flow logger
179
+ this.dataFlowLogger.logLLMResponse(debugContext || 'ollama-direct', {
180
+ rawResponse: '',
181
+ processingTime: Date.now() - requestStartTime,
182
+ error
183
+ }, contextForLogger, requestId);
184
+ return null;
185
+ }
186
+ }
187
+ catch (error) {
188
+ // Type-safe error handling
189
+ let errorMessage = 'Unknown error';
190
+ let errorDetails = {};
191
+ if (error instanceof Error) {
192
+ errorMessage = error.message;
193
+ }
194
+ // Check for Axios error and safely extract properties
195
+ if (error &&
196
+ typeof error === 'object' &&
197
+ 'isAxiosError' in error &&
198
+ error.isAxiosError === true) {
199
+ const axiosError = error;
200
+ if (axiosError.response) {
201
+ errorDetails = {
202
+ statusCode: axiosError.response.status,
203
+ statusText: axiosError.response.statusText,
204
+ data: axiosError.response.data
205
+ };
206
+ // Check for session ID related errors
207
+ if (axiosError.response.status === 400 &&
208
+ typeof axiosError.response.data === 'object' &&
209
+ axiosError.response.data?.error?.includes('session_id')) {
210
+ logging_utils_1.logger.warn('Session ID not supported in this Ollama version', {
211
+ context: this.constructor.name,
212
+ error: axiosError.response.data?.error,
213
+ metadata: { sessionId }
214
+ });
215
+ // Retry without session_id
216
+ try {
217
+ const retryResponse = await axios_1.default.post(`${baseUrl}/api/chat`, baseData, { headers });
218
+ if (retryResponse && retryResponse.status === 200) {
219
+ const aiResponse = retryResponse.data;
220
+ // Add session ID for internal tracking anyway
221
+ aiResponse.sessionId = sessionId;
222
+ debugInfo.responseTimestamp = new Date();
223
+ debugInfo.response = aiResponse.message.content;
224
+ debugInfo.rawResponseData = aiResponse;
225
+ const thinkMatch = aiResponse.message.content.match(/<think>([\s\S]*?)<\/think>/);
226
+ if (thinkMatch && thinkMatch[1]) {
227
+ debugInfo.thinking = thinkMatch[1].trim();
228
+ }
229
+ await debug_llm_utils_1.LLMDebugger.logResponse(debugInfo);
230
+ // Log successful retry to data flow logger
231
+ this.dataFlowLogger.logLLMResponse(debugContext || 'ollama-direct', {
232
+ rawResponse: aiResponse.message.content,
233
+ processingTime: Date.now() - requestStartTime
234
+ }, contextForLogger, requestId);
235
+ return aiResponse;
236
+ }
237
+ }
238
+ catch (retryError) {
239
+ // Error in retry, continue with original error
240
+ logging_utils_1.logger.error('Retry also failed', {
241
+ context: this.constructor.name,
242
+ error: retryError instanceof Error ? retryError.message : 'Unknown retry error'
243
+ });
244
+ }
245
+ }
246
+ // Check for auth errors specifically
247
+ if (axiosError.response.status === 401 || axiosError.response.status === 403) {
248
+ logging_utils_1.logger.error('Authentication error with Ollama API', {
249
+ context: this.constructor.name,
250
+ error: 'Invalid or missing authentication token',
251
+ metadata: {
252
+ baseUrl,
253
+ hasToken: !!authToken,
254
+ statusCode: axiosError.response.status
255
+ }
256
+ });
257
+ // Retry strategy ladder:
258
+ // 1) Authorization: <raw token>
259
+ if (authToken) {
260
+ try {
261
+ const headersRawAuth = {
262
+ 'Content-Type': 'application/json',
263
+ 'Authorization': authToken
264
+ };
265
+ const retryRaw = await axios_1.default.post(`${baseUrl}/api/chat`, baseData, {
266
+ headers: headersRawAuth,
267
+ timeout: 90000
268
+ });
269
+ if (retryRaw && retryRaw.status === 200) {
270
+ return this.handleSuccessfulResponse(retryRaw.data, debugInfo, sessionId, requestStartTime, debugContext, contextForLogger, requestId);
271
+ }
272
+ }
273
+ catch (retryRawErr) {
274
+ logging_utils_1.logger.warn('Retry with raw Authorization header failed', {
275
+ context: this.constructor.name,
276
+ error: retryRawErr instanceof Error ? retryRawErr.message : 'Unknown'
277
+ });
278
+ }
279
+ }
280
+ // 2) X-API-Key header
281
+ if (authToken) {
282
+ try {
283
+ const headersApiKey = {
284
+ 'Content-Type': 'application/json',
285
+ 'X-API-Key': authToken
286
+ };
287
+ const retryApiKey = await axios_1.default.post(`${baseUrl}/api/chat`, baseData, {
288
+ headers: headersApiKey,
289
+ timeout: 90000
290
+ });
291
+ if (retryApiKey && retryApiKey.status === 200) {
292
+ return this.handleSuccessfulResponse(retryApiKey.data, debugInfo, sessionId, requestStartTime, debugContext, contextForLogger, requestId);
293
+ }
294
+ }
295
+ catch (retryKeyErr) {
296
+ logging_utils_1.logger.warn('Retry with X-API-Key header failed', {
297
+ context: this.constructor.name,
298
+ error: retryKeyErr instanceof Error ? retryKeyErr.message : 'Unknown'
299
+ });
300
+ }
301
+ }
302
+ // 3) No auth (for dev instances)
303
+ try {
304
+ const headersNoAuth = { 'Content-Type': 'application/json' };
305
+ const retryAuthless = await axios_1.default.post(`${baseUrl}/api/chat`, baseData, {
306
+ headers: headersNoAuth,
307
+ timeout: 90000
308
+ });
309
+ if (retryAuthless && retryAuthless.status === 200) {
310
+ return this.handleSuccessfulResponse(retryAuthless.data, debugInfo, sessionId, requestStartTime, debugContext, contextForLogger, requestId);
311
+ }
312
+ }
313
+ catch (retryAuthlessError) {
314
+ logging_utils_1.logger.error('Authless retry failed', {
315
+ context: this.constructor.name,
316
+ error: retryAuthlessError instanceof Error ? retryAuthlessError.message : 'Unknown authless retry error'
317
+ });
318
+ }
319
+ }
320
+ }
321
+ }
322
+ logging_utils_1.logger.error('Error in API request', {
323
+ context: this.constructor.name,
324
+ error: errorMessage,
325
+ metadata: {
326
+ ...errorDetails,
327
+ requestModel: model,
328
+ baseUrl: baseUrl,
329
+ sessionId: sessionId
330
+ }
331
+ });
332
+ // Log error to data flow logger
333
+ this.dataFlowLogger.logLLMResponse(debugContext || 'ollama-direct', {
334
+ rawResponse: '',
335
+ processingTime: Date.now() - requestStartTime,
336
+ error: error instanceof Error ? error : new Error(errorMessage)
337
+ }, contextForLogger, requestId);
338
+ // Add error info
339
+ debugInfo.responseTimestamp = new Date();
340
+ debugInfo.error = {
341
+ message: errorMessage,
342
+ details: errorDetails
343
+ };
344
+ // Log error
345
+ await debug_llm_utils_1.LLMDebugger.logError(debugInfo);
346
+ // Check for memory errors in response
347
+ const errorResponseData = errorDetails.data;
348
+ if (errorResponseData &&
349
+ typeof errorResponseData === 'object' &&
350
+ 'error' in errorResponseData &&
351
+ typeof errorResponseData.error === 'string') {
352
+ const errorText = errorResponseData.error;
353
+ if (errorText.includes('model requires more system memory') ||
354
+ errorText.includes('model request too large for system')) {
355
+ throw new Error(`Insufficient memory to load model ${model}. Try closing other applications or using a smaller model.`);
356
+ }
357
+ }
358
+ return null;
359
+ }
360
+ }
361
+ /**
362
+ * Helper method to handle successful responses consistently
363
+ */
364
+ async handleSuccessfulResponse(aiResponse, debugInfo, sessionId, requestStartTime, debugContext, contextForLogger, requestId) {
365
+ aiResponse.sessionId = sessionId;
366
+ debugInfo.responseTimestamp = new Date();
367
+ debugInfo.response = aiResponse.message.content;
368
+ debugInfo.rawResponseData = aiResponse;
369
+ const thinkMatch = aiResponse.message.content.match(/<think>([\s\S]*?)<\/think>/);
370
+ if (thinkMatch && thinkMatch[1]) {
371
+ debugInfo.thinking = thinkMatch[1].trim();
372
+ }
373
+ await debug_llm_utils_1.LLMDebugger.logResponse(debugInfo);
374
+ this.dataFlowLogger.logLLMResponse(debugContext || 'ollama-direct', {
375
+ rawResponse: aiResponse.message.content,
376
+ processingTime: Date.now() - requestStartTime
377
+ }, contextForLogger, requestId);
378
+ return aiResponse;
379
+ }
380
+ /**
381
+ * Backward compatibility: Old method name
382
+ */
383
+ async callOllamaApiWithSystemMessage(userPrompt, systemMessage, options = {}) {
384
+ return this.callWithSystemMessage(userPrompt, systemMessage, options);
385
+ }
386
+ /**
387
+ * Backward compatibility: Old method name
388
+ */
389
+ async callOllamaApi(prompt, options = {}) {
390
+ return this.call(prompt, options);
391
+ }
392
+ }
393
+ exports.OllamaProvider = OllamaProvider;
394
+ exports.OllamaService = OllamaProvider;
395
+ // Export singleton instance for backward compatibility
396
+ exports.ollamaProvider = new OllamaProvider();
397
+ exports.ollamaService = exports.ollamaProvider;
398
+ //# sourceMappingURL=ollama-provider.js.map