@oas-tools/oas-telemetry 0.7.1 → 0.8.0-alpha.1

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 (194) hide show
  1. package/.env.example +17 -3
  2. package/README.md +1 -2
  3. package/dist/cjs/config/bootConfig.cjs +16 -14
  4. package/dist/cjs/config/config.cjs +120 -125
  5. package/dist/cjs/config/config.types.cjs +1 -4
  6. package/dist/cjs/docs/openapi.yaml +158 -4
  7. package/dist/cjs/index.cjs +27 -30
  8. package/dist/cjs/routesManager.cjs +62 -70
  9. package/dist/cjs/telemetry/custom-implementations/exporters/DiskLogExporter.cjs +121 -0
  10. package/dist/cjs/telemetry/custom-implementations/exporters/DiskMetricExporter.cjs +101 -0
  11. package/dist/cjs/telemetry/custom-implementations/exporters/DiskTraceExporter.cjs +103 -0
  12. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.cjs +194 -190
  13. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +147 -99
  14. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +143 -116
  15. package/dist/cjs/telemetry/custom-implementations/exporters/MultiMetricExporter.cjs +57 -0
  16. package/dist/cjs/telemetry/custom-implementations/instrumentations/logsInstrumentation.cjs +92 -0
  17. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Chunk.cjs +159 -0
  18. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Series.cjs +168 -0
  19. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.cjs +392 -0
  20. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/types.cjs +2 -0
  21. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/utils.cjs +77 -0
  22. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.cjs +65 -63
  23. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.cjs +63 -62
  24. package/dist/cjs/telemetry/custom-implementations/utils/circular.cjs +47 -47
  25. package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +209 -138
  26. package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
  27. package/dist/cjs/telemetry/persistence/DiskImporter.cjs +85 -0
  28. package/dist/cjs/telemetry/persistence/DiskUtils.cjs +61 -0
  29. package/dist/cjs/telemetry/persistence/DiskWriter.cjs +66 -0
  30. package/dist/cjs/telemetry/telemetryConfigurator.cjs +139 -72
  31. package/dist/cjs/telemetry/telemetryRegistry.cjs +45 -31
  32. package/dist/cjs/tlm-ai/agent.cjs +49 -64
  33. package/dist/cjs/tlm-ai/aiController.cjs +54 -76
  34. package/dist/cjs/tlm-ai/aiRoutes.cjs +17 -20
  35. package/dist/cjs/tlm-ai/aiService.cjs +91 -95
  36. package/dist/cjs/tlm-ai/tools.cjs +177 -174
  37. package/dist/cjs/tlm-auth/authController.cjs +80 -123
  38. package/dist/cjs/tlm-auth/authMiddleware.cjs +25 -30
  39. package/dist/cjs/tlm-auth/authRoutes.cjs +11 -14
  40. package/dist/cjs/tlm-log/logController.cjs +135 -116
  41. package/dist/cjs/tlm-log/logRoutes.cjs +19 -20
  42. package/dist/cjs/tlm-log/logService.cjs +29 -0
  43. package/dist/cjs/tlm-metric/metricsController.cjs +154 -122
  44. package/dist/cjs/tlm-metric/metricsRoutes.cjs +22 -20
  45. package/dist/cjs/tlm-metric/metricsService.cjs +26 -0
  46. package/dist/cjs/tlm-plugin/pluginController.cjs +128 -140
  47. package/dist/cjs/tlm-plugin/pluginProcess.cjs +89 -94
  48. package/dist/cjs/tlm-plugin/pluginRoutes.cjs +11 -14
  49. package/dist/cjs/tlm-plugin/pluginService.cjs +73 -74
  50. package/dist/cjs/tlm-trace/traceController.cjs +140 -123
  51. package/dist/cjs/tlm-trace/traceRoutes.cjs +19 -20
  52. package/dist/cjs/tlm-trace/traceService.cjs +29 -0
  53. package/dist/cjs/tlm-ui/uiRoutes.cjs +63 -32
  54. package/dist/cjs/tlm-util/utilController.cjs +68 -70
  55. package/dist/cjs/tlm-util/utilRoutes.cjs +51 -63
  56. package/dist/cjs/types/index.cjs +2 -5
  57. package/dist/cjs/utils/logger.cjs +38 -43
  58. package/dist/cjs/utils/regexUtils.cjs +22 -22
  59. package/dist/esm/config/bootConfig.js +5 -2
  60. package/dist/esm/config/config.js +9 -2
  61. package/dist/esm/docs/openapi.yaml +158 -4
  62. package/dist/esm/index.js +9 -8
  63. package/dist/esm/routesManager.js +6 -10
  64. package/dist/esm/telemetry/custom-implementations/exporters/DiskLogExporter.js +114 -0
  65. package/dist/esm/telemetry/custom-implementations/exporters/DiskMetricExporter.js +94 -0
  66. package/dist/esm/telemetry/custom-implementations/exporters/DiskTraceExporter.js +96 -0
  67. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.js +38 -7
  68. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +107 -48
  69. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +60 -29
  70. package/dist/esm/telemetry/custom-implementations/exporters/MultiMetricExporter.js +53 -0
  71. package/dist/esm/telemetry/custom-implementations/instrumentations/logsInstrumentation.js +85 -0
  72. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Chunk.js +155 -0
  73. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Series.js +164 -0
  74. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.js +385 -0
  75. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/types.js +1 -0
  76. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/utils.js +74 -0
  77. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.js +2 -1
  78. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.js +1 -1
  79. package/dist/esm/telemetry/custom-implementations/wrappers.js +77 -6
  80. package/dist/esm/telemetry/initializeTelemetry.js +27 -69
  81. package/dist/esm/telemetry/persistence/DiskImporter.js +78 -0
  82. package/dist/esm/telemetry/persistence/DiskUtils.js +51 -0
  83. package/dist/esm/telemetry/persistence/DiskWriter.js +59 -0
  84. package/dist/esm/telemetry/telemetryConfigurator.js +110 -39
  85. package/dist/esm/telemetry/telemetryRegistry.js +12 -1
  86. package/dist/esm/tlm-ai/agent.js +5 -3
  87. package/dist/esm/tlm-ai/aiController.js +3 -3
  88. package/dist/esm/tlm-ai/aiService.js +6 -2
  89. package/dist/esm/tlm-ai/tools.js +5 -9
  90. package/dist/esm/tlm-auth/authController.js +3 -2
  91. package/dist/esm/tlm-log/logController.js +62 -18
  92. package/dist/esm/tlm-log/logRoutes.js +3 -1
  93. package/dist/esm/tlm-log/logService.js +25 -0
  94. package/dist/esm/tlm-metric/metricsController.js +116 -50
  95. package/dist/esm/tlm-metric/metricsRoutes.js +8 -3
  96. package/dist/esm/tlm-metric/metricsService.js +22 -0
  97. package/dist/esm/tlm-plugin/pluginController.js +6 -11
  98. package/dist/esm/tlm-plugin/pluginService.js +2 -4
  99. package/dist/esm/tlm-trace/traceController.js +87 -36
  100. package/dist/esm/tlm-trace/traceRoutes.js +3 -1
  101. package/dist/esm/tlm-trace/traceService.js +25 -0
  102. package/dist/esm/tlm-ui/uiRoutes.js +5 -5
  103. package/dist/esm/tlm-util/utilController.js +3 -9
  104. package/dist/esm/tlm-util/utilRoutes.js +2 -2
  105. package/dist/types/config/bootConfig.d.ts +3 -0
  106. package/dist/types/config/config.d.ts +48 -7
  107. package/dist/types/config/config.types.d.ts +7 -0
  108. package/dist/types/index.d.ts +2 -3
  109. package/dist/types/telemetry/custom-implementations/exporters/DiskLogExporter.d.ts +24 -0
  110. package/dist/types/telemetry/custom-implementations/exporters/DiskMetricExporter.d.ts +23 -0
  111. package/dist/types/telemetry/custom-implementations/exporters/DiskTraceExporter.d.ts +23 -0
  112. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +3 -1
  113. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +56 -15
  114. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +8 -4
  115. package/dist/types/telemetry/custom-implementations/exporters/MultiMetricExporter.d.ts +9 -0
  116. package/dist/types/telemetry/custom-implementations/instrumentations/logsInstrumentation.d.ts +23 -0
  117. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Chunk.d.ts +49 -0
  118. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Series.d.ts +67 -0
  119. package/dist/types/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.d.ts +69 -0
  120. package/dist/types/telemetry/custom-implementations/metrics/tsdb/types.d.ts +68 -0
  121. package/dist/types/telemetry/custom-implementations/metrics/tsdb/utils.d.ts +21 -0
  122. package/dist/types/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.d.ts +2 -2
  123. package/dist/types/telemetry/custom-implementations/wrappers.d.ts +2 -1
  124. package/dist/types/telemetry/persistence/DiskImporter.d.ts +17 -0
  125. package/dist/types/telemetry/persistence/DiskUtils.d.ts +11 -0
  126. package/dist/types/telemetry/persistence/DiskWriter.d.ts +21 -0
  127. package/dist/types/telemetry/telemetryConfigurator.d.ts +1 -1
  128. package/dist/types/telemetry/telemetryRegistry.d.ts +8 -0
  129. package/dist/types/tlm-ai/agent.d.ts +1 -1
  130. package/dist/types/tlm-ai/aiService.d.ts +1 -1
  131. package/dist/types/tlm-log/logController.d.ts +2 -0
  132. package/dist/types/tlm-log/logService.d.ts +4 -0
  133. package/dist/types/tlm-metric/metricsController.d.ts +11 -2
  134. package/dist/types/tlm-metric/metricsService.d.ts +6 -0
  135. package/dist/types/tlm-trace/traceController.d.ts +9 -7
  136. package/dist/types/tlm-trace/traceService.d.ts +4 -0
  137. package/dist/types/types/index.d.ts +2 -2
  138. package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-DTCgVbW2.js} +2 -2
  139. package/dist/ui/assets/CollapsibleCard-lWgfsaAn.js +1 -0
  140. package/dist/ui/assets/DevToolsPage-DEhf8CBy.js +1 -0
  141. package/dist/ui/assets/LandingPage-CfEHCDxY.js +6 -0
  142. package/dist/ui/assets/LogsPage-DFDKRuGH.js +1 -0
  143. package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-DCy0DcV7.js} +1 -1
  144. package/dist/ui/assets/PluginCreatePage-BawZ5_-h.js +50 -0
  145. package/dist/ui/assets/PluginPage-D3FmgU7d.js +27 -0
  146. package/dist/ui/assets/TraceSpansPage-D0_L45Rb.js +6 -0
  147. package/dist/ui/assets/VirtualizedListPanel-q605n9He.js +16 -0
  148. package/dist/ui/assets/alert-DBAFshSi.js +1133 -0
  149. package/dist/ui/assets/badge-DGNBtnxU.js +1 -0
  150. package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CFEqYzGC.js} +1 -1
  151. package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-lDnFwAJq.js} +1 -1
  152. package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BpYUuRs7.js} +1 -1
  153. package/dist/ui/assets/dialog-1dRyI6SC.js +15 -0
  154. package/dist/ui/assets/index-C7RfU6hR.js +1 -0
  155. package/dist/ui/assets/index-C9dDYIpd.js +305 -0
  156. package/dist/ui/assets/index-D6f1KjWV.css +1 -0
  157. package/dist/ui/assets/info-CuJQWoBU.js +6 -0
  158. package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-BLXaar0X.js} +1 -1
  159. package/dist/ui/assets/label-DfAcltsl.js +1 -0
  160. package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-B7oLyPsi.js} +1 -1
  161. package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-DswZvOJ-.js} +1 -1
  162. package/dist/ui/assets/metrics-page-BhtXrfUW.js +31 -0
  163. package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
  164. package/dist/ui/assets/popover-IDker85U.js +11 -0
  165. package/dist/ui/assets/select-B8y5IidE.js +6 -0
  166. package/dist/ui/assets/separator-B6EzrxYY.js +6 -0
  167. package/dist/ui/assets/severityOptions-DtCsaAZK.js +11 -0
  168. package/dist/ui/assets/square-pen-D_oecB1x.js +6 -0
  169. package/dist/ui/assets/switch-Dqo0XkRD.js +1 -0
  170. package/dist/ui/assets/trace-DJq1miYa.js +1 -0
  171. package/dist/ui/assets/upload-prIohEdY.js +11 -0
  172. package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-C8TJKLqs.js} +1 -1
  173. package/dist/ui/assets/wand-sparkles-OgXuzsSx.js +6 -0
  174. package/dist/ui/index.html +2 -2
  175. package/package.json +44 -49
  176. package/dist/ui/assets/CollapsibleCard-B3KR_8mL.js +0 -1
  177. package/dist/ui/assets/DevToolsPage-OyZcDcmw.js +0 -1
  178. package/dist/ui/assets/LandingPage-CppFBA6K.js +0 -6
  179. package/dist/ui/assets/LogsPage-9Fq8GArS.js +0 -26
  180. package/dist/ui/assets/PluginCreatePage-X_aCH4t4.js +0 -50
  181. package/dist/ui/assets/PluginPage-DMDSihrZ.js +0 -27
  182. package/dist/ui/assets/alert-jQ9HCPIf.js +0 -1133
  183. package/dist/ui/assets/badge-CNq0-mH5.js +0 -1
  184. package/dist/ui/assets/card-DFAwwhN3.js +0 -1
  185. package/dist/ui/assets/index-BkD6DijD.js +0 -15
  186. package/dist/ui/assets/index-CERGVYZK.js +0 -292
  187. package/dist/ui/assets/index-CSIPf9qw.css +0 -1
  188. package/dist/ui/assets/label-DuVnkZ4q.js +0 -1
  189. package/dist/ui/assets/select-DhS8YUtJ.js +0 -1
  190. package/dist/ui/assets/separator-isK4chBP.js +0 -6
  191. package/dist/ui/assets/severityOptions-O38dSOfk.js +0 -11
  192. package/dist/ui/assets/switch-Z3mImG9n.js +0 -1
  193. package/dist/ui/assets/tabs-_77MUUQe.js +0 -16
  194. package/dist/ui/assets/upload-C1LT4Gkb.js +0 -16
@@ -1,92 +1,70 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createConversation = createConversation;
7
- exports.deleteConversation = deleteConversation;
8
- exports.getConversationHistory = getConversationHistory;
9
4
  exports.listConversations = listConversations;
5
+ exports.getConversationHistory = getConversationHistory;
6
+ exports.deleteConversation = deleteConversation;
10
7
  exports.sendMessage = sendMessage;
11
- var _aiService = require("./aiService.cjs");
8
+ const aiService_js_1 = require("./aiService.cjs");
12
9
  async function createConversation(req, res) {
13
- try {
14
- const conversation = (0, _aiService.getAiService)().createConversation();
15
- res.status(201).json(conversation);
16
- } catch (err) {
17
- res.status(500).json({
18
- error: err.message
19
- });
20
- }
10
+ try {
11
+ const conversation = (0, aiService_js_1.getAiService)().createConversation();
12
+ res.status(201).json(conversation);
13
+ }
14
+ catch (err) {
15
+ res.status(500).json({ error: err.message });
16
+ }
21
17
  }
22
18
  async function listConversations(req, res) {
23
- try {
24
- // Only return id and name for each conversation
25
- const conversations = (0, _aiService.getAiService)().listConversationsMinimal();
26
- res.json(conversations);
27
- } catch (err) {
28
- res.status(500).json({
29
- error: err.message
30
- });
31
- }
19
+ try {
20
+ // Only return id and name for each conversation
21
+ const conversations = (0, aiService_js_1.getAiService)().listConversationsMinimal();
22
+ res.json(conversations);
23
+ }
24
+ catch (err) {
25
+ res.status(500).json({ error: err.message });
26
+ }
32
27
  }
33
28
  async function getConversationHistory(req, res) {
34
- try {
35
- const {
36
- conversationId
37
- } = req.params;
38
- const conversation = (0, _aiService.getAiService)().getConversation(conversationId);
39
- if (!conversation) {
40
- res.status(404).json({
41
- error: 'Not found'
42
- });
43
- return;
29
+ try {
30
+ const conversationId = req.params.conversationId;
31
+ const conversation = (0, aiService_js_1.getAiService)().getConversation(conversationId);
32
+ if (!conversation) {
33
+ res.status(404).json({ error: 'Not found' });
34
+ return;
35
+ }
36
+ res.json(conversation);
37
+ }
38
+ catch (err) {
39
+ res.status(500).json({ error: err.message });
44
40
  }
45
- res.json(conversation);
46
- } catch (err) {
47
- res.status(500).json({
48
- error: err.message
49
- });
50
- }
51
41
  }
52
42
  async function deleteConversation(req, res) {
53
- try {
54
- const {
55
- conversationId
56
- } = req.params;
57
- const deleted = (0, _aiService.getAiService)().deleteConversation(conversationId);
58
- if (!deleted) {
59
- res.status(404).json({
60
- error: 'Not found'
61
- });
62
- return;
43
+ try {
44
+ const conversationId = req.params.conversationId;
45
+ const deleted = (0, aiService_js_1.getAiService)().deleteConversation(conversationId);
46
+ if (!deleted) {
47
+ res.status(404).json({ error: 'Not found' });
48
+ return;
49
+ }
50
+ res.status(204).send();
51
+ }
52
+ catch (err) {
53
+ res.status(500).json({ error: err.message });
63
54
  }
64
- res.status(204).send();
65
- } catch (err) {
66
- res.status(500).json({
67
- error: err.message
68
- });
69
- }
70
55
  }
71
56
  async function sendMessage(req, res) {
72
- try {
73
- const {
74
- conversationId
75
- } = req.params;
76
- const {
77
- content
78
- } = req.body;
79
- if (!content) {
80
- res.status(400).json({
81
- error: 'Missing content'
82
- });
83
- return;
57
+ try {
58
+ const conversationId = req.params.conversationId;
59
+ const { content } = req.body;
60
+ if (!content) {
61
+ res.status(400).json({ error: 'Missing content' });
62
+ return;
63
+ }
64
+ const messages = await (0, aiService_js_1.getAiService)().sendMessage(conversationId, content);
65
+ res.json(messages);
66
+ }
67
+ catch (err) {
68
+ res.status(500).json({ error: err.message });
84
69
  }
85
- const messages = await (0, _aiService.getAiService)().sendMessage(conversationId, content);
86
- res.json(messages);
87
- } catch (err) {
88
- res.status(500).json({
89
- error: err.message
90
- });
91
- }
92
- }
70
+ }
@@ -1,23 +1,20 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.getAIRoutes = void 0;
7
- var _express = require("express");
8
- var _aiController = require("./aiController.cjs");
9
- var _aiService = require("./aiService.cjs");
10
- const getAIRoutes = oasTlmConfig => {
11
- const router = (0, _express.Router)();
12
- (0, _aiService.configureAiService)(oasTlmConfig); //oasTlmConfig.ai.openAIKey
13
- router.get('/chat/health', (req, res) => {
14
- res.status(200).send('AI service is healthy');
15
- });
16
- router.get('/chat', _aiController.listConversations);
17
- router.post('/chat', _aiController.createConversation);
18
- router.get('/chat/:conversationId', _aiController.getConversationHistory);
19
- router.post('/chat/:conversationId/message', _aiController.sendMessage);
20
- router.delete('/chat/:conversationId', _aiController.deleteConversation);
21
- return router;
4
+ const express_1 = require("express");
5
+ const aiController_js_1 = require("./aiController.cjs");
6
+ const aiService_js_1 = require("./aiService.cjs");
7
+ const getAIRoutes = (oasTlmConfig) => {
8
+ const router = (0, express_1.Router)();
9
+ (0, aiService_js_1.configureAiService)(oasTlmConfig); //oasTlmConfig.ai.openAIKey
10
+ router.get('/chat/health', (req, res) => {
11
+ res.status(200).send('AI service is healthy');
12
+ });
13
+ router.get('/chat', aiController_js_1.listConversations);
14
+ router.post('/chat', aiController_js_1.createConversation);
15
+ router.get('/chat/:conversationId', aiController_js_1.getConversationHistory);
16
+ router.post('/chat/:conversationId/message', aiController_js_1.sendMessage);
17
+ router.delete('/chat/:conversationId', aiController_js_1.deleteConversation);
18
+ return router;
22
19
  };
23
- exports.getAIRoutes = getAIRoutes;
20
+ exports.getAIRoutes = getAIRoutes;
@@ -1,109 +1,105 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
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
6
  exports.configureAiService = configureAiService;
7
7
  exports.getAiService = getAiService;
8
- var _openai = _interopRequireDefault(require("openai"));
9
- var _agent = require("./agent.cjs");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ const openai_1 = __importDefault(require("openai"));
9
+ const agent_js_1 = require("./agent.cjs");
11
10
  class AIService {
12
- constructor(config) {
13
- this.config = config;
14
- this.conversations = new Map();
15
- this.openai = new _openai.default({
16
- apiKey: this.config.apiKey
17
- });
18
- this.model = config.model;
19
- this.extraPrompts = config.extraPrompts || [];
20
- }
21
- createConversation() {
22
- const id = Math.random().toString(36).substring(2, 15);
23
- const conversation = {
24
- id,
25
- messages: []
26
- };
27
- this.conversations.set(id, conversation);
28
- return conversation;
29
- }
30
- listConversations() {
31
- return Array.from(this.conversations.values());
32
- }
33
- getConversation(id) {
34
- return this.conversations.get(id);
35
- }
36
- deleteConversation(id) {
37
- return this.conversations.delete(id);
38
- }
39
- async sendMessage(conversationId, content, model) {
40
- const conversation = this.conversations.get(conversationId);
41
- if (!conversation) throw new Error('Conversation not found');
42
- conversation.messages.push({
43
- role: 'system',
44
- timestamp: new Date().toISOString(),
45
- content: "This is a telemetry chat. Focus your replies strictly on the topics and instructions defined by the system prompts and the available tools. Do not answer outside of these boundaries. Reply in the same language as the question."
46
- });
47
- if (this.extraPrompts.length > 0) {
48
- this.extraPrompts.forEach(prompt => {
11
+ config;
12
+ conversations = new Map();
13
+ openai;
14
+ model;
15
+ extraPrompts;
16
+ constructor(config) {
17
+ this.config = config;
18
+ this.openai = new openai_1.default({
19
+ apiKey: this.config.apiKey,
20
+ });
21
+ this.model = config.model;
22
+ this.extraPrompts = config.extraPrompts || [];
23
+ }
24
+ createConversation() {
25
+ const id = Math.random().toString(36).substring(2, 15);
26
+ const conversation = { id, messages: [] };
27
+ this.conversations.set(id, conversation);
28
+ return conversation;
29
+ }
30
+ listConversations() {
31
+ return Array.from(this.conversations.values());
32
+ }
33
+ getConversation(id) {
34
+ return this.conversations.get(id);
35
+ }
36
+ deleteConversation(id) {
37
+ return this.conversations.delete(id);
38
+ }
39
+ async sendMessage(conversationId, content, model) {
40
+ const conversation = this.conversations.get(conversationId);
41
+ if (!conversation)
42
+ throw new Error('Conversation not found');
49
43
  conversation.messages.push({
50
- role: 'system',
51
- content: prompt,
52
- timestamp: new Date().toISOString()
44
+ role: 'system',
45
+ timestamp: new Date().toISOString(),
46
+ content: "This is a telemetry chat. Focus your replies strictly on the topics and instructions defined by the system prompts and the available tools. Do not answer outside of these boundaries. Reply in the same language as the question."
53
47
  });
54
- });
48
+ if (this.extraPrompts.length > 0) {
49
+ this.extraPrompts.forEach(prompt => {
50
+ conversation.messages.push({ role: 'system', content: prompt, timestamp: new Date().toISOString() });
51
+ });
52
+ }
53
+ conversation.messages.push({ role: 'user', content, timestamp: new Date().toISOString() });
54
+ // Set conversation name if not set
55
+ if (!('name' in conversation) || !conversation.name) {
56
+ conversation.name = content.slice(0, 30);
57
+ }
58
+ // Use the agent function with tools
59
+ // Internaly pushes new messages to conversation.messages
60
+ const currentMessagesCount = conversation.messages.length;
61
+ await (0, agent_js_1.agent)(this.openai, conversation.messages, model || this.model);
62
+ // Return the last assistant message (the one just added by agent)
63
+ const generatedMessages = conversation.messages.slice(currentMessagesCount);
64
+ return generatedMessages;
55
65
  }
56
- conversation.messages.push({
57
- role: 'user',
58
- content,
59
- timestamp: new Date().toISOString()
60
- });
61
- // Set conversation name if not set
62
- if (!('name' in conversation) || !conversation.name) {
63
- conversation.name = content.slice(0, 30);
66
+ listConversationsMinimal() {
67
+ return Array.from(this.conversations.values()).map(c => ({
68
+ id: c.id,
69
+ name: c.name,
70
+ }));
64
71
  }
65
- // Use the agent function with tools
66
- // Internaly pushes new messages to conversation.messages
67
- const currentMessagesCount = conversation.messages.length;
68
- await (0, _agent.agent)(this.openai, conversation.messages, model || this.model, this.extraPrompts);
69
- // Return the last assistant message (the one just added by agent)
70
- const generatedMessages = conversation.messages.slice(currentMessagesCount);
71
- return generatedMessages;
72
- }
73
- listConversationsMinimal() {
74
- return Array.from(this.conversations.values()).map(c => ({
75
- id: c.id,
76
- name: c.name
77
- }));
78
- }
79
- async listModels() {
80
- const {
81
- data
82
- } = await this.openai.models.list();
83
- return data.map(m => m.id).sort();
84
- }
85
- async isValidModel(modelId) {
86
- try {
87
- await this.openai.models.retrieve(modelId);
88
- return true;
89
- } catch {
90
- return false;
72
+ async listModels() {
73
+ const { data } = await this.openai.models.list();
74
+ return data
75
+ .map(m => m.id)
76
+ .sort();
77
+ }
78
+ async isValidModel(modelId) {
79
+ try {
80
+ await this.openai.models.retrieve(modelId);
81
+ return true;
82
+ }
83
+ catch {
84
+ return false;
85
+ }
91
86
  }
92
- }
93
87
  }
94
88
  let aiService;
95
89
  function configureAiService(config) {
96
- const openAIKey = config.ai?.openAIKey;
97
- const model = config.ai.openAIModel;
98
- const extraPrompts = config.ai.extraContextPrompts;
99
- if (!openAIKey) throw new Error('OpenAI API key is required');
100
- aiService = new AIService({
101
- apiKey: openAIKey,
102
- model,
103
- extraPrompts
104
- });
90
+ const openAIKey = config.ai?.openAIKey;
91
+ const model = config.ai.openAIModel;
92
+ const extraPrompts = config.ai.extraContextPrompts;
93
+ if (!openAIKey)
94
+ throw new Error('OpenAI API key is required');
95
+ aiService = new AIService({
96
+ apiKey: openAIKey,
97
+ model,
98
+ extraPrompts
99
+ });
105
100
  }
106
101
  function getAiService() {
107
- if (!aiService) throw new Error('AI Service not configured');
108
- return aiService;
109
- }
102
+ if (!aiService)
103
+ throw new Error('AI Service not configured');
104
+ return aiService;
105
+ }