@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 @@
1
+ {"version":3,"file":"product-preset.example.js","sourceRoot":"","sources":["../../../src/examples/flat-formatter-demo/product-preset.example.ts"],"names":[],"mappings":";;;AAAA,6EAAuF;AA0FvF;;;;;;;;;GASG;AACH,MAAa,aAAc,SAAQ,2BAAqC;IACtE;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;IAES,gBAAgB,CAAC,OAAgB;QACzC,oBAAoB;QACpB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QAEpD,kBAAkB;QAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,CAAC,CAAC,YAAY,CAAC;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,OAAO;iBACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,kBAAkB;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC7E,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,gBAAgB,CAAC;QAErB,yBAAyB;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO;YAC1B,CAAC,CAAC,aAAa,QAAQ,mBAAmB;YAC1C,CAAC,CAAC,cAAc,CAAC;QAEnB,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,aAAa,EAAE,OAAO,CAAC,WAAW;YAClC,UAAU,EAAE,OAAO,CAAC,QAAQ;YAE5B,UAAU;YACV,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAC9C,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,aAAa;YAC7D,aAAa,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAErD,4BAA4B;YAC5B,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB;YAChE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;YAE7C,mCAAmC;YACnC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,SAAS;YAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS;YAC/C,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;YAExE,2BAA2B;YAC3B,gBAAgB,EAAE,SAAS,GAAG,MAAM;YACpC,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5E,gBAAgB,EAAE,aAAa;YAE/B,eAAe;YACf,cAAc,EAAE,YAAY;SAC7B,CAAC;IACJ,CAAC;CACF;AA5DD,sCA4DC;AAED;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Response } from 'express';
2
+ import { BaseController } from '../../middleware/controllers/base/base.controller';
3
+ import { RequestWithUser } from '../../middleware/shared/types/base-request.types';
4
+ /**
5
+ * Simple chat controller for testing the middleware
6
+ */
7
+ export declare class ChatController extends BaseController {
8
+ private chatUseCase;
9
+ /**
10
+ * Handle chat message endpoint
11
+ * POST /api/chat
12
+ */
13
+ chat(req: RequestWithUser, res: Response): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=chat.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAGnF;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,WAAW,CAA2B;IAE9C;;;OAGG;IACU,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBtE"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatController = void 0;
4
+ const base_controller_1 = require("../../middleware/controllers/base/base.controller");
5
+ const chat_usecase_1 = require("./chat.usecase");
6
+ /**
7
+ * Simple chat controller for testing the middleware
8
+ */
9
+ class ChatController extends base_controller_1.BaseController {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.chatUseCase = new chat_usecase_1.SimpleChatUseCase();
13
+ }
14
+ /**
15
+ * Handle chat message endpoint
16
+ * POST /api/chat
17
+ */
18
+ async chat(req, res) {
19
+ await this.handleRequest(req, res, async () => {
20
+ const { message, authToken } = req.body;
21
+ if (!message || typeof message !== 'string') {
22
+ throw new Error('Message is required and must be a string');
23
+ }
24
+ const request = {
25
+ prompt: message,
26
+ message,
27
+ authToken
28
+ };
29
+ const result = await this.chatUseCase.execute(request);
30
+ return {
31
+ response: result.response,
32
+ model: result.model,
33
+ thinking: result.thinking
34
+ };
35
+ });
36
+ }
37
+ }
38
+ exports.ChatController = ChatController;
39
+ //# sourceMappingURL=chat.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.controller.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.controller.ts"],"names":[],"mappings":";;;AACA,uFAAmF;AAEnF,iDAAgE;AAEhE;;GAEG;AACH,MAAa,cAAe,SAAQ,gCAAc;IAAlD;;QACU,gBAAW,GAAG,IAAI,gCAAiB,EAAE,CAAC;IA6BhD,CAAC;IA3BC;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,GAAa;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAExC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,OAAO;gBACf,OAAO;gBACP,SAAS;aACV,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,wCA8BC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * System message for simple chat use case
3
+ */
4
+ export declare const SIMPLE_CHAT_SYSTEM_MESSAGE = "You are a helpful AI assistant. \nProvide clear, concise, and friendly responses to user messages.\nBe conversational but informative.";
5
+ /**
6
+ * Template for user messages
7
+ * For simple chat, we typically don't need complex formatting
8
+ */
9
+ export declare const SIMPLE_CHAT_USER_TEMPLATE: (message: string) => string;
10
+ //# sourceMappingURL=chat.messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.messages.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,0BAA0B,2IAEJ,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // src/examples/simple-chat/chat.messages.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SIMPLE_CHAT_USER_TEMPLATE = exports.SIMPLE_CHAT_SYSTEM_MESSAGE = void 0;
5
+ /**
6
+ * System message for simple chat use case
7
+ */
8
+ exports.SIMPLE_CHAT_SYSTEM_MESSAGE = `You are a helpful AI assistant.
9
+ Provide clear, concise, and friendly responses to user messages.
10
+ Be conversational but informative.`;
11
+ /**
12
+ * Template for user messages
13
+ * For simple chat, we typically don't need complex formatting
14
+ */
15
+ const SIMPLE_CHAT_USER_TEMPLATE = (message) => message;
16
+ exports.SIMPLE_CHAT_USER_TEMPLATE = SIMPLE_CHAT_USER_TEMPLATE;
17
+ //# sourceMappingURL=chat.messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.messages.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.messages.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAE5C;;GAEG;AACU,QAAA,0BAA0B,GAAG;;mCAEP,CAAC;AAEpC;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC;AAAjE,QAAA,yBAAyB,6BAAwC"}
@@ -0,0 +1,33 @@
1
+ import { BaseAIUseCase } from '../../middleware/usecases/base/base-ai.usecase';
2
+ import { BaseAIRequest, BaseAIResult } from '../../middleware/shared/types/base-request.types';
3
+ /**
4
+ * Simple chat request interface
5
+ */
6
+ export interface ChatRequest extends BaseAIRequest<string> {
7
+ message: string;
8
+ }
9
+ /**
10
+ * Simple chat result interface
11
+ */
12
+ export interface ChatResult extends BaseAIResult {
13
+ response: string;
14
+ }
15
+ /**
16
+ * Simple chat use case for testing the middleware
17
+ */
18
+ export declare class SimpleChatUseCase extends BaseAIUseCase<string, ChatRequest, ChatResult> {
19
+ protected readonly systemMessage = "You are a helpful AI assistant. \nProvide clear, concise, and friendly responses to user messages.\nBe conversational but informative.";
20
+ /**
21
+ * Format the user message for the chat
22
+ */
23
+ protected formatUserMessage(prompt: any): string;
24
+ /**
25
+ * Get the user template from message file
26
+ */
27
+ protected getUserTemplate(): (formattedPrompt: string) => string;
28
+ /**
29
+ * Create the chat result
30
+ */
31
+ protected createResult(content: string, usedPrompt: string, thinking?: string): ChatResult;
32
+ }
33
+ //# sourceMappingURL=chat.usecase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.usecase.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAG/F;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;IACnF,SAAS,CAAC,QAAQ,CAAC,aAAa,4IAA8B;IAE9D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAIhD;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAIhE;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU;CAS3F"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleChatUseCase = void 0;
4
+ const base_ai_usecase_1 = require("../../middleware/usecases/base/base-ai.usecase");
5
+ const chat_messages_1 = require("./chat.messages");
6
+ /**
7
+ * Simple chat use case for testing the middleware
8
+ */
9
+ class SimpleChatUseCase extends base_ai_usecase_1.BaseAIUseCase {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.systemMessage = chat_messages_1.SIMPLE_CHAT_SYSTEM_MESSAGE;
13
+ }
14
+ /**
15
+ * Format the user message for the chat
16
+ */
17
+ formatUserMessage(prompt) {
18
+ return typeof prompt === 'string' ? prompt : JSON.stringify(prompt);
19
+ }
20
+ /**
21
+ * Get the user template from message file
22
+ */
23
+ getUserTemplate() {
24
+ return chat_messages_1.SIMPLE_CHAT_USER_TEMPLATE;
25
+ }
26
+ /**
27
+ * Create the chat result
28
+ */
29
+ createResult(content, usedPrompt, thinking) {
30
+ return {
31
+ generatedContent: content,
32
+ model: this.modelConfig.name,
33
+ usedPrompt: usedPrompt,
34
+ thinking: thinking,
35
+ response: content
36
+ };
37
+ }
38
+ }
39
+ exports.SimpleChatUseCase = SimpleChatUseCase;
40
+ //# sourceMappingURL=chat.usecase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.usecase.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.usecase.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAE/E,mDAAwF;AAgBxF;;GAEG;AACH,MAAa,iBAAkB,SAAQ,+BAA8C;IAArF;;QACqB,kBAAa,GAAG,0CAA0B,CAAC;IA4BhE,CAAC;IA1BC;;OAEG;IACO,iBAAiB,CAAC,MAAW;QACrC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,OAAO,yCAAyB,CAAC;IACnC,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAe,EAAE,UAAkB,EAAE,QAAiB;QAC3E,OAAO;YACL,gBAAgB,EAAE,OAAO;YACzB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;CACF;AA7BD,8CA6BC"}
@@ -0,0 +1,3 @@
1
+ declare const app: import("express-serve-static-core").Express;
2
+ export default app;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/index.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAkDtB,eAAe,GAAG,CAAC"}
@@ -0,0 +1,57 @@
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
+ const express_1 = __importDefault(require("express"));
7
+ const cors_1 = __importDefault(require("cors"));
8
+ const dotenv_1 = __importDefault(require("dotenv"));
9
+ const chat_controller_1 = require("./chat.controller");
10
+ const app_config_1 = require("../../middleware/shared/config/app.config");
11
+ const logging_utils_1 = require("../../middleware/shared/utils/logging.utils");
12
+ // Load environment variables
13
+ dotenv_1.default.config();
14
+ const app = (0, express_1.default)();
15
+ const chatController = new chat_controller_1.ChatController();
16
+ // Middleware
17
+ app.use((0, cors_1.default)());
18
+ app.use(express_1.default.json());
19
+ // Simple client info middleware
20
+ app.use((req, res, next) => {
21
+ req.clientInfo = {
22
+ platform: req.headers['user-agent'] || 'unknown',
23
+ ip: req.ip || req.connection.remoteAddress || 'unknown',
24
+ timestamp: new Date().toISOString()
25
+ };
26
+ next();
27
+ });
28
+ // Routes
29
+ app.get('/health', (req, res) => {
30
+ res.json({
31
+ status: 'ok',
32
+ timestamp: new Date().toISOString(),
33
+ service: 'llm-middleware-example'
34
+ });
35
+ });
36
+ app.post('/api/chat', (req, res) => {
37
+ chatController.chat(req, res);
38
+ });
39
+ // Start server
40
+ const port = app_config_1.appConfig.server.port;
41
+ app.listen(port, () => {
42
+ logging_utils_1.logger.info(`Simple Chat Example Server running on port ${port}`, {
43
+ context: 'SimpleChatExample',
44
+ metadata: {
45
+ port,
46
+ environment: app_config_1.appConfig.server.environment
47
+ }
48
+ });
49
+ console.log(`\\n🚀 Simple Chat Example Server running on port ${port}`);
50
+ console.log(`\\n📝 Test the API:`);
51
+ console.log(` Health check: GET http://localhost:${port}/health`);
52
+ console.log(` Chat endpoint: POST http://localhost:${port}/api/chat`);
53
+ console.log(` Example body: { "message": "Hello, how are you?" }`);
54
+ console.log(`\\n🔧 Environment: ${app_config_1.appConfig.server.environment}\\n`);
55
+ });
56
+ exports.default = app;
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,oDAA4B;AAC5B,uDAAmD;AACnD,0EAAsE;AACtE,+EAAqE;AAIrE,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AACtB,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;AAE5C,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;AAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,gCAAgC;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACtD,GAAG,CAAC,UAAU,GAAG;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS;QAChD,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,SAAS;QACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9B,GAAG,CAAC,IAAI,CAAC;QACP,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAQ,EAAE,GAAa,EAAE,EAAE;IAChD,cAAc,CAAC,IAAI,CAAC,GAAsB,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,IAAI,GAAG,sBAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAEnC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,sBAAM,CAAC,IAAI,CAAC,8CAA8C,IAAI,EAAE,EAAE;QAChE,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE;YACR,IAAI;YACJ,WAAW,EAAE,sBAAS,CAAC,MAAM,CAAC,WAAW;SAC1C;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,SAAS,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,WAAW,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,sBAAsB,sBAAS,CAAC,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Story Generator System Message
3
+ *
4
+ * Demonstrates RequestFormatterService usage with complex context objects
5
+ */
6
+ export declare const STORY_GENERATOR_SYSTEM_MESSAGE = "You are a creative writing assistant specializing in short story generation.\n\nYour task is to generate engaging, well-structured short stories based on the provided context and instructions.\n\nWRITING GUIDELINES:\n- Create vivid, immersive scenes with sensory details\n- Develop characters with clear motivations and conflicts\n- Use active voice and varied sentence structure\n- Maintain consistent tone and style throughout\n- Include dialogue where appropriate\n- Build tension and resolution\n\nSTRUCTURE:\n- Opening: Hook the reader immediately\n- Development: Build character and conflict\n- Climax: Reach the story's turning point\n- Resolution: Provide satisfying closure\n\nQUALITY STANDARDS:\n- Original, creative content\n- Grammatically correct prose\n- Appropriate pacing for word count\n- Clear narrative arc\n\nGenerate the complete story as plain text (no JSON, no code blocks).";
7
+ /**
8
+ * Story Generator User Template
9
+ *
10
+ * Simple pass-through - RequestFormatterService handles the formatting
11
+ */
12
+ export declare const STORY_GENERATOR_USER_TEMPLATE: (formattedPrompt: string) => string;
13
+ //# sourceMappingURL=story-generator.messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-generator.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,s4BAwB0B,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,iBAAiB,MAAM,WAAoB,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STORY_GENERATOR_USER_TEMPLATE = exports.STORY_GENERATOR_SYSTEM_MESSAGE = void 0;
4
+ /**
5
+ * Story Generator System Message
6
+ *
7
+ * Demonstrates RequestFormatterService usage with complex context objects
8
+ */
9
+ exports.STORY_GENERATOR_SYSTEM_MESSAGE = `You are a creative writing assistant specializing in short story generation.
10
+
11
+ Your task is to generate engaging, well-structured short stories based on the provided context and instructions.
12
+
13
+ WRITING GUIDELINES:
14
+ - Create vivid, immersive scenes with sensory details
15
+ - Develop characters with clear motivations and conflicts
16
+ - Use active voice and varied sentence structure
17
+ - Maintain consistent tone and style throughout
18
+ - Include dialogue where appropriate
19
+ - Build tension and resolution
20
+
21
+ STRUCTURE:
22
+ - Opening: Hook the reader immediately
23
+ - Development: Build character and conflict
24
+ - Climax: Reach the story's turning point
25
+ - Resolution: Provide satisfying closure
26
+
27
+ QUALITY STANDARDS:
28
+ - Original, creative content
29
+ - Grammatically correct prose
30
+ - Appropriate pacing for word count
31
+ - Clear narrative arc
32
+
33
+ Generate the complete story as plain text (no JSON, no code blocks).`;
34
+ /**
35
+ * Story Generator User Template
36
+ *
37
+ * Simple pass-through - RequestFormatterService handles the formatting
38
+ */
39
+ const STORY_GENERATOR_USER_TEMPLATE = (formattedPrompt) => formattedPrompt;
40
+ exports.STORY_GENERATOR_USER_TEMPLATE = STORY_GENERATOR_USER_TEMPLATE;
41
+ //# sourceMappingURL=story-generator.messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-generator.messages.js","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.messages.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;qEAwBuB,CAAC;AAEtE;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAAC,eAAuB,EAAE,EAAE,CAAC,eAAe,CAAC;AAA7E,QAAA,6BAA6B,iCAAgD"}
@@ -0,0 +1,115 @@
1
+ import { BaseAIUseCase } from '../../middleware/usecases/base/base-ai.usecase';
2
+ import { BaseAIRequest, BaseAIResult } from '../../middleware/shared/types/base-request.types';
3
+ import { ModelParameterOverrides } from '../../middleware/services/model-parameter-manager/model-parameter-manager.service';
4
+ /**
5
+ * Story generation context interface
6
+ */
7
+ export interface StoryContext {
8
+ setting?: string;
9
+ protagonist?: string;
10
+ antagonist?: string;
11
+ theme?: string;
12
+ tone?: string;
13
+ wordCount?: string;
14
+ genre?: string;
15
+ constraints?: string[];
16
+ [key: string]: any;
17
+ }
18
+ /**
19
+ * Story generation prompt - supports both simple strings and complex objects
20
+ */
21
+ export type StoryPrompt = string | {
22
+ context?: StoryContext;
23
+ instruction: string;
24
+ } | {
25
+ prompt: {
26
+ context?: StoryContext;
27
+ instruction: string;
28
+ };
29
+ };
30
+ /**
31
+ * Story generation request interface
32
+ */
33
+ export interface StoryGeneratorRequest extends BaseAIRequest<StoryPrompt> {
34
+ }
35
+ /**
36
+ * Story generation result interface
37
+ */
38
+ export interface StoryGeneratorResult extends BaseAIResult {
39
+ story: string;
40
+ wordCount: number;
41
+ extractedContext: StoryContext | null;
42
+ extractedInstruction: string;
43
+ }
44
+ /**
45
+ * Story Generator Use Case
46
+ *
47
+ * Demonstrates RequestFormatterService with complex nested context objects.
48
+ *
49
+ * **Key Features:**
50
+ * - Supports simple string prompts: "Write a story about dragons"
51
+ * - Supports complex objects with context and instruction
52
+ * - Uses RequestFormatterService for flexible prompt handling
53
+ * - Formats context using FlatFormatter (via RequestFormatterService)
54
+ * - Creative Writing preset for varied, engaging prose
55
+ *
56
+ * **Example Requests:**
57
+ *
58
+ * Simple string:
59
+ * ```
60
+ * { prompt: "Write a story about a lost key" }
61
+ * ```
62
+ *
63
+ * Complex with context:
64
+ * ```
65
+ * {
66
+ * prompt: {
67
+ * context: {
68
+ * setting: "abandoned lighthouse, stormy night",
69
+ * protagonist: "elderly lighthouse keeper",
70
+ * theme: "redemption and forgiveness",
71
+ * tone: "melancholic yet hopeful",
72
+ * wordCount: "500-700 words",
73
+ * genre: "literary fiction"
74
+ * },
75
+ * instruction: "Write the opening scene where the keeper discovers an unexpected visitor."
76
+ * }
77
+ * }
78
+ * ```
79
+ *
80
+ * This use case shows how RequestFormatterService:
81
+ * - Extracts context and instruction from various formats
82
+ * - Formats nested objects into structured CONTEXT/INSTRUCTION sections
83
+ * - Uses FlatFormatter for clean context presentation
84
+ * - Validates prompts before processing
85
+ */
86
+ export declare class StoryGeneratorUseCase extends BaseAIUseCase<StoryPrompt, StoryGeneratorRequest, StoryGeneratorResult> {
87
+ protected readonly systemMessage = "You are a creative writing assistant specializing in short story generation.\n\nYour task is to generate engaging, well-structured short stories based on the provided context and instructions.\n\nWRITING GUIDELINES:\n- Create vivid, immersive scenes with sensory details\n- Develop characters with clear motivations and conflicts\n- Use active voice and varied sentence structure\n- Maintain consistent tone and style throughout\n- Include dialogue where appropriate\n- Build tension and resolution\n\nSTRUCTURE:\n- Opening: Hook the reader immediately\n- Development: Build character and conflict\n- Climax: Reach the story's turning point\n- Resolution: Provide satisfying closure\n\nQUALITY STANDARDS:\n- Original, creative content\n- Grammatically correct prose\n- Appropriate pacing for word count\n- Clear narrative arc\n\nGenerate the complete story as plain text (no JSON, no code blocks).";
88
+ /**
89
+ * Get the user template from message file
90
+ */
91
+ protected getUserTemplate(): (formattedPrompt: string) => string;
92
+ /**
93
+ * Format the user message using RequestFormatterService
94
+ *
95
+ * This demonstrates the primary use case for RequestFormatterService:
96
+ * handling complex, nested prompt structures with context and instructions.
97
+ */
98
+ protected formatUserMessage(prompt: StoryPrompt): string;
99
+ /**
100
+ * Override model parameters for creative story generation
101
+ *
102
+ * Uses Creative Writing preset for engaging, varied prose.
103
+ */
104
+ protected getParameterOverrides(): ModelParameterOverrides;
105
+ /**
106
+ * Create the result with extracted metadata
107
+ */
108
+ protected createResult(content: string, usedPrompt: string, thinking?: string): StoryGeneratorResult;
109
+ private currentRequest?;
110
+ /**
111
+ * Override execute to store request for result creation
112
+ */
113
+ execute(request: StoryGeneratorRequest): Promise<StoryGeneratorResult>;
114
+ }
115
+ //# sourceMappingURL=story-generator.usecase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-generator.usecase.d.ts","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAM/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AAE5H;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN;IACE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,WAAW,CAAC;CAExE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;IAEhH,SAAS,CAAC,QAAQ,CAAC,aAAa,u4BAAkC;IAElE;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAIhE;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAaxD;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAa1D;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAsBpG,OAAO,CAAC,cAAc,CAAC,CAAwB;IAE/C;;OAEG;IACU,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAIpF"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoryGeneratorUseCase = void 0;
4
+ const base_ai_usecase_1 = require("../../middleware/usecases/base/base-ai.usecase");
5
+ const request_formatter_1 = require("../../middleware/services/request-formatter");
6
+ const story_generator_messages_1 = require("./story-generator.messages");
7
+ /**
8
+ * Story Generator Use Case
9
+ *
10
+ * Demonstrates RequestFormatterService with complex nested context objects.
11
+ *
12
+ * **Key Features:**
13
+ * - Supports simple string prompts: "Write a story about dragons"
14
+ * - Supports complex objects with context and instruction
15
+ * - Uses RequestFormatterService for flexible prompt handling
16
+ * - Formats context using FlatFormatter (via RequestFormatterService)
17
+ * - Creative Writing preset for varied, engaging prose
18
+ *
19
+ * **Example Requests:**
20
+ *
21
+ * Simple string:
22
+ * ```
23
+ * { prompt: "Write a story about a lost key" }
24
+ * ```
25
+ *
26
+ * Complex with context:
27
+ * ```
28
+ * {
29
+ * prompt: {
30
+ * context: {
31
+ * setting: "abandoned lighthouse, stormy night",
32
+ * protagonist: "elderly lighthouse keeper",
33
+ * theme: "redemption and forgiveness",
34
+ * tone: "melancholic yet hopeful",
35
+ * wordCount: "500-700 words",
36
+ * genre: "literary fiction"
37
+ * },
38
+ * instruction: "Write the opening scene where the keeper discovers an unexpected visitor."
39
+ * }
40
+ * }
41
+ * ```
42
+ *
43
+ * This use case shows how RequestFormatterService:
44
+ * - Extracts context and instruction from various formats
45
+ * - Formats nested objects into structured CONTEXT/INSTRUCTION sections
46
+ * - Uses FlatFormatter for clean context presentation
47
+ * - Validates prompts before processing
48
+ */
49
+ class StoryGeneratorUseCase extends base_ai_usecase_1.BaseAIUseCase {
50
+ constructor() {
51
+ super(...arguments);
52
+ this.systemMessage = story_generator_messages_1.STORY_GENERATOR_SYSTEM_MESSAGE;
53
+ }
54
+ /**
55
+ * Get the user template from message file
56
+ */
57
+ getUserTemplate() {
58
+ return story_generator_messages_1.STORY_GENERATOR_USER_TEMPLATE;
59
+ }
60
+ /**
61
+ * Format the user message using RequestFormatterService
62
+ *
63
+ * This demonstrates the primary use case for RequestFormatterService:
64
+ * handling complex, nested prompt structures with context and instructions.
65
+ */
66
+ formatUserMessage(prompt) {
67
+ // RequestFormatterService handles:
68
+ // - String prompts directly
69
+ // - Objects with context + instruction
70
+ // - Nested prompt structures
71
+ // - FlatFormatter integration for context formatting
72
+ return request_formatter_1.RequestFormatterService.formatUserMessage(prompt, this.getUserTemplate(), 'StoryGeneratorUseCase');
73
+ }
74
+ /**
75
+ * Override model parameters for creative story generation
76
+ *
77
+ * Uses Creative Writing preset for engaging, varied prose.
78
+ */
79
+ getParameterOverrides() {
80
+ return {
81
+ // Creative Writing preset
82
+ temperatureOverride: 0.85, // High creativity for unique stories
83
+ repeatPenalty: 1.3, // Reduce repetitive phrasing
84
+ frequencyPenalty: 0.2, // Encourage diverse vocabulary
85
+ presencePenalty: 0.2, // Introduce varied concepts
86
+ topP: 0.92, // Nucleus sampling for creative token selection
87
+ topK: 60, // Moderate vocabulary diversity
88
+ repeatLastN: 128 // Extended context for consistency
89
+ };
90
+ }
91
+ /**
92
+ * Create the result with extracted metadata
93
+ */
94
+ createResult(content, usedPrompt, thinking) {
95
+ const story = content.trim();
96
+ const wordCount = story.split(/\s+/).length;
97
+ // Extract context and instruction from the original prompt
98
+ // This demonstrates RequestFormatterService's extraction capabilities
99
+ const extractedContext = request_formatter_1.RequestFormatterService.extractContext(this.currentRequest?.prompt);
100
+ const extractedInstruction = request_formatter_1.RequestFormatterService.extractInstruction(this.currentRequest?.prompt);
101
+ return {
102
+ generatedContent: content,
103
+ model: this.modelConfig.name,
104
+ usedPrompt: usedPrompt,
105
+ thinking: thinking,
106
+ story: story,
107
+ wordCount: wordCount,
108
+ extractedContext: extractedContext,
109
+ extractedInstruction: extractedInstruction
110
+ };
111
+ }
112
+ /**
113
+ * Override execute to store request for result creation
114
+ */
115
+ async execute(request) {
116
+ this.currentRequest = request;
117
+ return super.execute(request);
118
+ }
119
+ }
120
+ exports.StoryGeneratorUseCase = StoryGeneratorUseCase;
121
+ //# sourceMappingURL=story-generator.usecase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-generator.usecase.js","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.usecase.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAE/E,mFAAsF;AACtF,yEAGoC;AAmDpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,qBAAsB,SAAQ,+BAAuE;IAAlH;;QAEqB,kBAAa,GAAG,yDAA8B,CAAC;IAgFpE,CAAC;IA9EC;;OAEG;IACO,eAAe;QACvB,OAAO,wDAA6B,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,MAAmB;QAC7C,mCAAmC;QACnC,4BAA4B;QAC5B,uCAAuC;QACvC,6BAA6B;QAC7B,qDAAqD;QACrD,OAAO,2CAAuB,CAAC,iBAAiB,CAC9C,MAAM,EACN,IAAI,CAAC,eAAe,EAAE,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,qBAAqB;QAC7B,OAAO;YACL,0BAA0B;YAC1B,mBAAmB,EAAE,IAAI,EAAG,qCAAqC;YACjE,aAAa,EAAE,GAAG,EAAW,6BAA6B;YAC1D,gBAAgB,EAAE,GAAG,EAAQ,+BAA+B;YAC5D,eAAe,EAAE,GAAG,EAAS,4BAA4B;YACzD,IAAI,EAAE,IAAI,EAAmB,gDAAgD;YAC7E,IAAI,EAAE,EAAE,EAAqB,gCAAgC;YAC7D,WAAW,EAAE,GAAG,CAAa,mCAAmC;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAe,EAAE,UAAkB,EAAE,QAAiB;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAE5C,2DAA2D;QAC3D,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,2CAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAwB,CAAC;QACpH,MAAM,oBAAoB,GAAG,2CAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAErG,OAAO;YACL,gBAAgB,EAAE,OAAO;YACzB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,oBAAoB,EAAE,oBAAoB;SAC3C,CAAC;IACJ,CAAC;IAKD;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,OAA8B;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAlFD,sDAkFC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * System and user message templates for the Tweet Generator use case
3
+ */
4
+ /**
5
+ * System message for tweet generation
6
+ * Emphasizes brevity, engagement, and Twitter best practices
7
+ */
8
+ export declare const TWEET_GENERATOR_SYSTEM_MESSAGE = "You are an expert social media content creator specializing in Twitter/X posts.\n\nCRITICAL REQUIREMENTS:\n1. Be concise, engaging, and impactful\n2. Use clear, accessible language\n3. Avoid hashtags unless specifically requested\n4. NO explanations, NO preamble - ONLY output the tweet text\n\nSTYLE GUIDELINES:\n- Start with a hook or attention-grabbing statement\n- Use active voice and present tense when possible\n- Include a call-to-action or thought-provoking question when appropriate\n- Break complex ideas into simple, digestible statements\n\nOUTPUT FORMAT:\nReturn ONLY the tweet text. Nothing else.";
9
+ /**
10
+ * User message template for tweet generation
11
+ * @param formattedPrompt The formatted tweet topic/request
12
+ * @returns Complete user message
13
+ */
14
+ export declare const TWEET_GENERATOR_USER_TEMPLATE: (formattedPrompt: string) => string;
15
+ //# sourceMappingURL=tweet-generator.messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tweet-generator.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/tweet-generator/tweet-generator.messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B,wmBAeD,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,iBAAiB,MAAM,KAAG,MAMvE,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * System and user message templates for the Tweet Generator use case
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TWEET_GENERATOR_USER_TEMPLATE = exports.TWEET_GENERATOR_SYSTEM_MESSAGE = void 0;
7
+ /**
8
+ * System message for tweet generation
9
+ * Emphasizes brevity, engagement, and Twitter best practices
10
+ */
11
+ exports.TWEET_GENERATOR_SYSTEM_MESSAGE = `You are an expert social media content creator specializing in Twitter/X posts.
12
+
13
+ CRITICAL REQUIREMENTS:
14
+ 1. Be concise, engaging, and impactful
15
+ 2. Use clear, accessible language
16
+ 3. Avoid hashtags unless specifically requested
17
+ 4. NO explanations, NO preamble - ONLY output the tweet text
18
+
19
+ STYLE GUIDELINES:
20
+ - Start with a hook or attention-grabbing statement
21
+ - Use active voice and present tense when possible
22
+ - Include a call-to-action or thought-provoking question when appropriate
23
+ - Break complex ideas into simple, digestible statements
24
+
25
+ OUTPUT FORMAT:
26
+ Return ONLY the tweet text. Nothing else.`;
27
+ /**
28
+ * User message template for tweet generation
29
+ * @param formattedPrompt The formatted tweet topic/request
30
+ * @returns Complete user message
31
+ */
32
+ const TWEET_GENERATOR_USER_TEMPLATE = (formattedPrompt) => {
33
+ return `Generate a tweet about the following topic:
34
+
35
+ ${formattedPrompt}
36
+
37
+ !`;
38
+ };
39
+ exports.TWEET_GENERATOR_USER_TEMPLATE = TWEET_GENERATOR_USER_TEMPLATE;
40
+ //# sourceMappingURL=tweet-generator.messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tweet-generator.messages.js","sourceRoot":"","sources":["../../../src/examples/tweet-generator/tweet-generator.messages.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;GAGG;AACU,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;0CAeJ,CAAC;AAE3C;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC/E,OAAO;;EAEP,eAAe;;EAEf,CAAC;AACH,CAAC,CAAC;AANW,QAAA,6BAA6B,iCAMxC"}