@jagilber-org/index-server 1.19.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 (360) hide show
  1. package/CHANGELOG.md +1218 -0
  2. package/CODE_OF_CONDUCT.md +49 -0
  3. package/CONTRIBUTING.md +75 -0
  4. package/LICENSE +21 -0
  5. package/README.md +523 -0
  6. package/SECURITY.md +50 -0
  7. package/dist/config/configUtils.d.ts +11 -0
  8. package/dist/config/configUtils.js +87 -0
  9. package/dist/config/dashboardConfig.d.ts +45 -0
  10. package/dist/config/dashboardConfig.js +63 -0
  11. package/dist/config/defaultValues.d.ts +61 -0
  12. package/dist/config/defaultValues.js +70 -0
  13. package/dist/config/dirConstants.d.ts +17 -0
  14. package/dist/config/dirConstants.js +28 -0
  15. package/dist/config/featureConfig.d.ts +61 -0
  16. package/dist/config/featureConfig.js +121 -0
  17. package/dist/config/runtimeConfig.d.ts +145 -0
  18. package/dist/config/runtimeConfig.js +334 -0
  19. package/dist/config/serverConfig.d.ts +90 -0
  20. package/dist/config/serverConfig.js +164 -0
  21. package/dist/dashboard/analytics/AnalyticsEngine.d.ts +142 -0
  22. package/dist/dashboard/analytics/AnalyticsEngine.js +373 -0
  23. package/dist/dashboard/analytics/BusinessIntelligence.d.ts +187 -0
  24. package/dist/dashboard/analytics/BusinessIntelligence.js +594 -0
  25. package/dist/dashboard/client/admin.html +2150 -0
  26. package/dist/dashboard/client/chunks/mermaid-layout-elk.esm.min/chunk-SP2CHFBE.mjs +1 -0
  27. package/dist/dashboard/client/chunks/mermaid-layout-elk.esm.min/render-T6MDALS3.mjs +27 -0
  28. package/dist/dashboard/client/css/admin.css +1466 -0
  29. package/dist/dashboard/client/js/admin.boot.js +359 -0
  30. package/dist/dashboard/client/js/admin.config.js +196 -0
  31. package/dist/dashboard/client/js/admin.embeddings.js +425 -0
  32. package/dist/dashboard/client/js/admin.graph.js +583 -0
  33. package/dist/dashboard/client/js/admin.instances.js +120 -0
  34. package/dist/dashboard/client/js/admin.instructions.js +552 -0
  35. package/dist/dashboard/client/js/admin.logs.js +113 -0
  36. package/dist/dashboard/client/js/admin.maintenance.js +354 -0
  37. package/dist/dashboard/client/js/admin.messaging.js +635 -0
  38. package/dist/dashboard/client/js/admin.monitor.js +181 -0
  39. package/dist/dashboard/client/js/admin.overview.js +221 -0
  40. package/dist/dashboard/client/js/admin.performance.js +61 -0
  41. package/dist/dashboard/client/js/admin.sessions.js +293 -0
  42. package/dist/dashboard/client/js/admin.sqlite.js +366 -0
  43. package/dist/dashboard/client/js/admin.utils.js +49 -0
  44. package/dist/dashboard/client/js/chart.umd.js +14 -0
  45. package/dist/dashboard/client/js/elk.bundled.js +6696 -0
  46. package/dist/dashboard/client/js/marked.umd.js +74 -0
  47. package/dist/dashboard/client/js/mermaid.min.js +3022 -0
  48. package/dist/dashboard/client/mermaid-layout-elk.esm.min.mjs +1 -0
  49. package/dist/dashboard/export/DataExporter.d.ts +169 -0
  50. package/dist/dashboard/export/DataExporter.js +737 -0
  51. package/dist/dashboard/export/exporters/csvExporter.d.ts +11 -0
  52. package/dist/dashboard/export/exporters/csvExporter.js +46 -0
  53. package/dist/dashboard/export/exporters/exportTypes.d.ts +89 -0
  54. package/dist/dashboard/export/exporters/exportTypes.js +5 -0
  55. package/dist/dashboard/export/exporters/jsonExporter.d.ts +7 -0
  56. package/dist/dashboard/export/exporters/jsonExporter.js +22 -0
  57. package/dist/dashboard/export/exporters/xmlExporter.d.ts +17 -0
  58. package/dist/dashboard/export/exporters/xmlExporter.js +175 -0
  59. package/dist/dashboard/integration/APIIntegration.d.ts +41 -0
  60. package/dist/dashboard/integration/APIIntegration.js +95 -0
  61. package/dist/dashboard/security/SecurityMonitor.d.ts +167 -0
  62. package/dist/dashboard/security/SecurityMonitor.js +559 -0
  63. package/dist/dashboard/server/AdminPanel.d.ts +183 -0
  64. package/dist/dashboard/server/AdminPanel.js +792 -0
  65. package/dist/dashboard/server/AdminPanelConfig.d.ts +42 -0
  66. package/dist/dashboard/server/AdminPanelConfig.js +80 -0
  67. package/dist/dashboard/server/AdminPanelState.d.ts +47 -0
  68. package/dist/dashboard/server/AdminPanelState.js +214 -0
  69. package/dist/dashboard/server/ApiRoutes.d.ts +17 -0
  70. package/dist/dashboard/server/ApiRoutes.js +149 -0
  71. package/dist/dashboard/server/DashboardServer.d.ts +49 -0
  72. package/dist/dashboard/server/DashboardServer.js +159 -0
  73. package/dist/dashboard/server/FileMetricsStorage.d.ts +49 -0
  74. package/dist/dashboard/server/FileMetricsStorage.js +195 -0
  75. package/dist/dashboard/server/HttpTransport.d.ts +23 -0
  76. package/dist/dashboard/server/HttpTransport.js +116 -0
  77. package/dist/dashboard/server/InstanceManager.d.ts +53 -0
  78. package/dist/dashboard/server/InstanceManager.js +284 -0
  79. package/dist/dashboard/server/KnowledgeStore.d.ts +35 -0
  80. package/dist/dashboard/server/KnowledgeStore.js +105 -0
  81. package/dist/dashboard/server/LeaderElection.d.ts +81 -0
  82. package/dist/dashboard/server/LeaderElection.js +268 -0
  83. package/dist/dashboard/server/MetricsCollector.d.ts +200 -0
  84. package/dist/dashboard/server/MetricsCollector.js +803 -0
  85. package/dist/dashboard/server/SessionPersistenceManager.d.ts +88 -0
  86. package/dist/dashboard/server/SessionPersistenceManager.js +457 -0
  87. package/dist/dashboard/server/ThinClient.d.ts +64 -0
  88. package/dist/dashboard/server/ThinClient.js +237 -0
  89. package/dist/dashboard/server/WebSocketManager.d.ts +161 -0
  90. package/dist/dashboard/server/WebSocketManager.js +463 -0
  91. package/dist/dashboard/server/httpLifecycle.d.ts +17 -0
  92. package/dist/dashboard/server/httpLifecycle.js +35 -0
  93. package/dist/dashboard/server/legacyDashboardHtml.d.ts +9 -0
  94. package/dist/dashboard/server/legacyDashboardHtml.js +618 -0
  95. package/dist/dashboard/server/legacyDashboardStyles.d.ts +5 -0
  96. package/dist/dashboard/server/legacyDashboardStyles.js +490 -0
  97. package/dist/dashboard/server/metricsAggregation.d.ts +252 -0
  98. package/dist/dashboard/server/metricsAggregation.js +206 -0
  99. package/dist/dashboard/server/metricsSerializer.d.ts +25 -0
  100. package/dist/dashboard/server/metricsSerializer.js +195 -0
  101. package/dist/dashboard/server/routes/admin.routes.d.ts +16 -0
  102. package/dist/dashboard/server/routes/admin.routes.js +596 -0
  103. package/dist/dashboard/server/routes/alerts.routes.d.ts +7 -0
  104. package/dist/dashboard/server/routes/alerts.routes.js +93 -0
  105. package/dist/dashboard/server/routes/api.feedback.routes.d.ts +73 -0
  106. package/dist/dashboard/server/routes/api.feedback.routes.js +171 -0
  107. package/dist/dashboard/server/routes/api.instructions.routes.d.ts +101 -0
  108. package/dist/dashboard/server/routes/api.instructions.routes.js +213 -0
  109. package/dist/dashboard/server/routes/api.usage.routes.d.ts +57 -0
  110. package/dist/dashboard/server/routes/api.usage.routes.js +374 -0
  111. package/dist/dashboard/server/routes/embeddings.routes.d.ts +6 -0
  112. package/dist/dashboard/server/routes/embeddings.routes.js +246 -0
  113. package/dist/dashboard/server/routes/graph.routes.d.ts +6 -0
  114. package/dist/dashboard/server/routes/graph.routes.js +280 -0
  115. package/dist/dashboard/server/routes/index.d.ts +38 -0
  116. package/dist/dashboard/server/routes/index.js +194 -0
  117. package/dist/dashboard/server/routes/instances.routes.d.ts +6 -0
  118. package/dist/dashboard/server/routes/instances.routes.js +35 -0
  119. package/dist/dashboard/server/routes/instructions.routes.d.ts +8 -0
  120. package/dist/dashboard/server/routes/instructions.routes.js +336 -0
  121. package/dist/dashboard/server/routes/knowledge.routes.d.ts +6 -0
  122. package/dist/dashboard/server/routes/knowledge.routes.js +82 -0
  123. package/dist/dashboard/server/routes/logs.routes.d.ts +6 -0
  124. package/dist/dashboard/server/routes/logs.routes.js +164 -0
  125. package/dist/dashboard/server/routes/messaging.routes.d.ts +16 -0
  126. package/dist/dashboard/server/routes/messaging.routes.js +293 -0
  127. package/dist/dashboard/server/routes/metrics.routes.d.ts +10 -0
  128. package/dist/dashboard/server/routes/metrics.routes.js +346 -0
  129. package/dist/dashboard/server/routes/scripts.routes.d.ts +9 -0
  130. package/dist/dashboard/server/routes/scripts.routes.js +84 -0
  131. package/dist/dashboard/server/routes/sqlite.routes.d.ts +9 -0
  132. package/dist/dashboard/server/routes/sqlite.routes.js +569 -0
  133. package/dist/dashboard/server/routes/status.routes.d.ts +7 -0
  134. package/dist/dashboard/server/routes/status.routes.js +183 -0
  135. package/dist/dashboard/server/routes/synthetic.routes.d.ts +7 -0
  136. package/dist/dashboard/server/routes/synthetic.routes.js +195 -0
  137. package/dist/dashboard/server/routes/tools.routes.d.ts +6 -0
  138. package/dist/dashboard/server/routes/tools.routes.js +46 -0
  139. package/dist/dashboard/server/routes/usage.routes.d.ts +6 -0
  140. package/dist/dashboard/server/routes/usage.routes.js +25 -0
  141. package/dist/dashboard/server/wsInit.d.ts +16 -0
  142. package/dist/dashboard/server/wsInit.js +35 -0
  143. package/dist/externalClientLib.d.ts +1 -0
  144. package/dist/externalClientLib.js +2 -0
  145. package/dist/minimal/index.d.ts +1 -0
  146. package/dist/minimal/index.js +140 -0
  147. package/dist/models/SessionPersistence.d.ts +115 -0
  148. package/dist/models/SessionPersistence.js +66 -0
  149. package/dist/models/instruction.d.ts +45 -0
  150. package/dist/models/instruction.js +2 -0
  151. package/dist/perf/benchmark.d.ts +1 -0
  152. package/dist/perf/benchmark.js +50 -0
  153. package/dist/portableClientWrapper.d.ts +1 -0
  154. package/dist/portableClientWrapper.js +2 -0
  155. package/dist/schemas/index.d.ts +128 -0
  156. package/dist/schemas/index.js +371 -0
  157. package/dist/scripts/runPerformanceBaseline.d.ts +1 -0
  158. package/dist/scripts/runPerformanceBaseline.js +17 -0
  159. package/dist/server/handshakeManager.d.ts +25 -0
  160. package/dist/server/handshakeManager.js +472 -0
  161. package/dist/server/index-server.d.ts +56 -0
  162. package/dist/server/index-server.js +822 -0
  163. package/dist/server/registry.d.ts +44 -0
  164. package/dist/server/registry.js +236 -0
  165. package/dist/server/sdkServer.d.ts +8 -0
  166. package/dist/server/sdkServer.js +299 -0
  167. package/dist/server/shutdownGuard.d.ts +41 -0
  168. package/dist/server/shutdownGuard.js +52 -0
  169. package/dist/server/thin-client.d.ts +22 -0
  170. package/dist/server/thin-client.js +111 -0
  171. package/dist/server/transport.d.ts +41 -0
  172. package/dist/server/transport.js +312 -0
  173. package/dist/server/transportFactory.d.ts +21 -0
  174. package/dist/server/transportFactory.js +429 -0
  175. package/dist/services/atomicFs.d.ts +22 -0
  176. package/dist/services/atomicFs.js +103 -0
  177. package/dist/services/auditLog.d.ts +38 -0
  178. package/dist/services/auditLog.js +142 -0
  179. package/dist/services/autoBackup.d.ts +14 -0
  180. package/dist/services/autoBackup.js +171 -0
  181. package/dist/services/autoSplit.d.ts +32 -0
  182. package/dist/services/autoSplit.js +113 -0
  183. package/dist/services/backupZip.d.ts +25 -0
  184. package/dist/services/backupZip.js +110 -0
  185. package/dist/services/bootstrapGating.d.ts +123 -0
  186. package/dist/services/bootstrapGating.js +221 -0
  187. package/dist/services/canonical.d.ts +23 -0
  188. package/dist/services/canonical.js +65 -0
  189. package/dist/services/categoryRules.d.ts +7 -0
  190. package/dist/services/categoryRules.js +37 -0
  191. package/dist/services/classificationService.d.ts +42 -0
  192. package/dist/services/classificationService.js +168 -0
  193. package/dist/services/embeddingService.d.ts +62 -0
  194. package/dist/services/embeddingService.js +259 -0
  195. package/dist/services/errors.d.ts +22 -0
  196. package/dist/services/errors.js +31 -0
  197. package/dist/services/featureFlags.d.ts +25 -0
  198. package/dist/services/featureFlags.js +89 -0
  199. package/dist/services/features.d.ts +13 -0
  200. package/dist/services/features.js +35 -0
  201. package/dist/services/handlers/instructions.add.d.ts +1 -0
  202. package/dist/services/handlers/instructions.add.js +496 -0
  203. package/dist/services/handlers/instructions.groom.d.ts +1 -0
  204. package/dist/services/handlers/instructions.groom.js +523 -0
  205. package/dist/services/handlers/instructions.import.d.ts +1 -0
  206. package/dist/services/handlers/instructions.import.js +173 -0
  207. package/dist/services/handlers/instructions.patch.d.ts +1 -0
  208. package/dist/services/handlers/instructions.patch.js +167 -0
  209. package/dist/services/handlers/instructions.query.d.ts +163 -0
  210. package/dist/services/handlers/instructions.query.js +522 -0
  211. package/dist/services/handlers/instructions.reload.d.ts +1 -0
  212. package/dist/services/handlers/instructions.reload.js +13 -0
  213. package/dist/services/handlers/instructions.remove.d.ts +1 -0
  214. package/dist/services/handlers/instructions.remove.js +118 -0
  215. package/dist/services/handlers/instructions.shared.d.ts +31 -0
  216. package/dist/services/handlers/instructions.shared.js +124 -0
  217. package/dist/services/handlers.activation.d.ts +1 -0
  218. package/dist/services/handlers.activation.js +203 -0
  219. package/dist/services/handlers.bootstrap.d.ts +1 -0
  220. package/dist/services/handlers.bootstrap.js +38 -0
  221. package/dist/services/handlers.dashboardConfig.d.ts +34 -0
  222. package/dist/services/handlers.dashboardConfig.js +108 -0
  223. package/dist/services/handlers.diagnostics.d.ts +1 -0
  224. package/dist/services/handlers.diagnostics.js +64 -0
  225. package/dist/services/handlers.feedback.d.ts +15 -0
  226. package/dist/services/handlers.feedback.js +378 -0
  227. package/dist/services/handlers.gates.d.ts +1 -0
  228. package/dist/services/handlers.gates.js +46 -0
  229. package/dist/services/handlers.graph.d.ts +53 -0
  230. package/dist/services/handlers.graph.js +231 -0
  231. package/dist/services/handlers.help.d.ts +1 -0
  232. package/dist/services/handlers.help.js +119 -0
  233. package/dist/services/handlers.instructionSchema.d.ts +1 -0
  234. package/dist/services/handlers.instructionSchema.js +227 -0
  235. package/dist/services/handlers.instructions.d.ts +8 -0
  236. package/dist/services/handlers.instructions.js +14 -0
  237. package/dist/services/handlers.instructionsDiagnostics.d.ts +1 -0
  238. package/dist/services/handlers.instructionsDiagnostics.js +14 -0
  239. package/dist/services/handlers.integrity.d.ts +1 -0
  240. package/dist/services/handlers.integrity.js +35 -0
  241. package/dist/services/handlers.manifest.d.ts +1 -0
  242. package/dist/services/handlers.manifest.js +24 -0
  243. package/dist/services/handlers.messaging.d.ts +12 -0
  244. package/dist/services/handlers.messaging.js +203 -0
  245. package/dist/services/handlers.metrics.d.ts +1 -0
  246. package/dist/services/handlers.metrics.js +43 -0
  247. package/dist/services/handlers.promote.d.ts +1 -0
  248. package/dist/services/handlers.promote.js +306 -0
  249. package/dist/services/handlers.prompt.d.ts +1 -0
  250. package/dist/services/handlers.prompt.js +7 -0
  251. package/dist/services/handlers.search.d.ts +69 -0
  252. package/dist/services/handlers.search.js +645 -0
  253. package/dist/services/handlers.testPrimitive.d.ts +1 -0
  254. package/dist/services/handlers.testPrimitive.js +5 -0
  255. package/dist/services/handlers.trace.d.ts +1 -0
  256. package/dist/services/handlers.trace.js +31 -0
  257. package/dist/services/handlers.usage.d.ts +1 -0
  258. package/dist/services/handlers.usage.js +11 -0
  259. package/dist/services/hotScore.d.ts +137 -0
  260. package/dist/services/hotScore.js +244 -0
  261. package/dist/services/indexContext.d.ts +117 -0
  262. package/dist/services/indexContext.js +968 -0
  263. package/dist/services/indexLoader.d.ts +44 -0
  264. package/dist/services/indexLoader.js +921 -0
  265. package/dist/services/indexRepository.d.ts +32 -0
  266. package/dist/services/indexRepository.js +71 -0
  267. package/dist/services/indexingService.d.ts +1 -0
  268. package/dist/services/indexingService.js +2 -0
  269. package/dist/services/instructions.dispatcher.d.ts +1 -0
  270. package/dist/services/instructions.dispatcher.js +231 -0
  271. package/dist/services/logPrefix.d.ts +1 -0
  272. package/dist/services/logPrefix.js +30 -0
  273. package/dist/services/logger.d.ts +52 -0
  274. package/dist/services/logger.js +268 -0
  275. package/dist/services/manifestManager.d.ts +82 -0
  276. package/dist/services/manifestManager.js +200 -0
  277. package/dist/services/messaging/agentMailbox.d.ts +60 -0
  278. package/dist/services/messaging/agentMailbox.js +353 -0
  279. package/dist/services/messaging/messagingPersistence.d.ts +20 -0
  280. package/dist/services/messaging/messagingPersistence.js +111 -0
  281. package/dist/services/messaging/messagingTypes.d.ts +150 -0
  282. package/dist/services/messaging/messagingTypes.js +66 -0
  283. package/dist/services/ownershipService.d.ts +1 -0
  284. package/dist/services/ownershipService.js +38 -0
  285. package/dist/services/performanceBaseline.d.ts +19 -0
  286. package/dist/services/performanceBaseline.js +210 -0
  287. package/dist/services/preflight.d.ts +12 -0
  288. package/dist/services/preflight.js +79 -0
  289. package/dist/services/promptReviewService.d.ts +44 -0
  290. package/dist/services/promptReviewService.js +101 -0
  291. package/dist/services/responseEnvelope.d.ts +6 -0
  292. package/dist/services/responseEnvelope.js +25 -0
  293. package/dist/services/seedBootstrap.d.ts +34 -0
  294. package/dist/services/seedBootstrap.js +427 -0
  295. package/dist/services/storage/factory.d.ts +17 -0
  296. package/dist/services/storage/factory.js +35 -0
  297. package/dist/services/storage/hashUtils.d.ts +11 -0
  298. package/dist/services/storage/hashUtils.js +35 -0
  299. package/dist/services/storage/index.d.ts +12 -0
  300. package/dist/services/storage/index.js +18 -0
  301. package/dist/services/storage/jsonFileStore.d.ts +32 -0
  302. package/dist/services/storage/jsonFileStore.js +241 -0
  303. package/dist/services/storage/migrationEngine.d.ts +35 -0
  304. package/dist/services/storage/migrationEngine.js +93 -0
  305. package/dist/services/storage/sqliteMessageStore.d.ts +53 -0
  306. package/dist/services/storage/sqliteMessageStore.js +146 -0
  307. package/dist/services/storage/sqliteSchema.d.ts +12 -0
  308. package/dist/services/storage/sqliteSchema.js +122 -0
  309. package/dist/services/storage/sqliteStore.d.ts +41 -0
  310. package/dist/services/storage/sqliteStore.js +339 -0
  311. package/dist/services/storage/sqliteUsageStore.d.ts +35 -0
  312. package/dist/services/storage/sqliteUsageStore.js +94 -0
  313. package/dist/services/storage/types.d.ts +171 -0
  314. package/dist/services/storage/types.js +12 -0
  315. package/dist/services/toolHandlers.d.ts +23 -0
  316. package/dist/services/toolHandlers.js +50 -0
  317. package/dist/services/toolRegistry.d.ts +20 -0
  318. package/dist/services/toolRegistry.js +490 -0
  319. package/dist/services/toolRegistry.zod.d.ts +10 -0
  320. package/dist/services/toolRegistry.zod.js +323 -0
  321. package/dist/services/tracing.d.ts +26 -0
  322. package/dist/services/tracing.js +260 -0
  323. package/dist/services/usageBuckets.d.ts +161 -0
  324. package/dist/services/usageBuckets.js +364 -0
  325. package/dist/services/validationService.d.ts +38 -0
  326. package/dist/services/validationService.js +125 -0
  327. package/dist/utils/BufferRing.d.ts +203 -0
  328. package/dist/utils/BufferRing.js +551 -0
  329. package/dist/utils/BufferRingExamples.d.ts +55 -0
  330. package/dist/utils/BufferRingExamples.js +188 -0
  331. package/dist/utils/envUtils.d.ts +42 -0
  332. package/dist/utils/envUtils.js +80 -0
  333. package/dist/utils/memoryMonitor.d.ts +83 -0
  334. package/dist/utils/memoryMonitor.js +275 -0
  335. package/dist/versioning/schemaVersion.d.ts +6 -0
  336. package/dist/versioning/schemaVersion.js +93 -0
  337. package/package.json +134 -0
  338. package/schemas/README.md +13 -0
  339. package/schemas/feedback-entry.schema.json +27 -0
  340. package/schemas/graph-export-v2.schema.json +60 -0
  341. package/schemas/index-server.code-schema.json +38477 -0
  342. package/schemas/instruction.schema.json +262 -0
  343. package/schemas/json-schema/SessionPersistence-persisted-admin-session.schema.json +54 -0
  344. package/schemas/json-schema/SessionPersistence-persisted-session-history-entry.schema.json +51 -0
  345. package/schemas/json-schema/SessionPersistence-persisted-web-socket-connection.schema.json +54 -0
  346. package/schemas/json-schema/SessionPersistence-session-persistence-config.schema.json +110 -0
  347. package/schemas/json-schema/SessionPersistence-session-persistence-data.schema.json +229 -0
  348. package/schemas/json-schema/SessionPersistence-session-persistence-manifest.schema.json +109 -0
  349. package/schemas/json-schema/SessionPersistence-session-persistence-metadata.schema.json +55 -0
  350. package/schemas/json-schema/instruction-audience-scope.schema.json +14 -0
  351. package/schemas/json-schema/instruction-content-type.schema.json +17 -0
  352. package/schemas/json-schema/instruction-instruction-entry.schema.json +206 -0
  353. package/schemas/json-schema/instruction-requirement-level.schema.json +16 -0
  354. package/schemas/manifest.json +78 -0
  355. package/schemas/manifest.schema.json +33 -0
  356. package/schemas/usage-batch.schema.json +16 -0
  357. package/schemas/usage-buckets.schema.json +30 -0
  358. package/schemas/usage-event.schema.json +17 -0
  359. package/scripts/copy-dashboard-assets.mjs +170 -0
  360. package/scripts/setup-hooks.cjs +28 -0
@@ -0,0 +1,594 @@
1
+ "use strict";
2
+ /**
3
+ * BusinessIntelligence - Phase 3 Advanced BI Components
4
+ *
5
+ * Comprehensive business intelligence dashboard components providing:
6
+ * - Executive dashboards with KPI visualizations
7
+ * - Advanced charting and data visualization
8
+ * - Interactive reporting and drill-down capabilities
9
+ * - Real-time business metrics monitoring
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BusinessIntelligence = void 0;
13
+ exports.getBusinessIntelligence = getBusinessIntelligence;
14
+ const AnalyticsEngine_js_1 = require("./AnalyticsEngine.js");
15
+ class BusinessIntelligence {
16
+ analyticsEngine = (0, AnalyticsEngine_js_1.getAnalyticsEngine)();
17
+ dashboardLayouts = new Map();
18
+ realtimeSubscriptions = new Map();
19
+ constructor() {
20
+ this.initializeDefaultDashboards();
21
+ }
22
+ /**
23
+ * Generate KPI widgets based on current business metrics
24
+ */
25
+ generateKPIWidgets() {
26
+ const metrics = this.analyticsEngine.getBusinessMetrics();
27
+ const widgets = [];
28
+ // Total Requests KPI
29
+ widgets.push({
30
+ id: 'total-requests',
31
+ title: 'Total Requests',
32
+ value: this.formatNumber(metrics.totalRequests),
33
+ trend: this.calculateTrend('total_requests'),
34
+ trendPercentage: this.calculateTrendPercentage('total_requests'),
35
+ format: 'number',
36
+ color: 'primary',
37
+ icon: 'activity',
38
+ description: 'Total number of requests processed'
39
+ });
40
+ // Success Rate KPI
41
+ widgets.push({
42
+ id: 'success-rate',
43
+ title: 'Success Rate',
44
+ value: `${(metrics.successRate * 100).toFixed(1)}%`,
45
+ trend: this.calculateTrend('success_rate'),
46
+ trendPercentage: this.calculateTrendPercentage('success_rate'),
47
+ format: 'percentage',
48
+ color: metrics.successRate > 0.95 ? 'success' : metrics.successRate > 0.9 ? 'warning' : 'danger',
49
+ icon: 'check-circle',
50
+ description: 'Percentage of successful requests'
51
+ });
52
+ // Average Response Time KPI
53
+ widgets.push({
54
+ id: 'avg-response-time',
55
+ title: 'Avg Response Time',
56
+ value: `${metrics.averageResponseTime.toFixed(0)}ms`,
57
+ trend: this.calculateTrend('response_time'),
58
+ trendPercentage: this.calculateTrendPercentage('response_time'),
59
+ format: 'duration',
60
+ color: metrics.averageResponseTime < 500 ? 'success' : metrics.averageResponseTime < 1000 ? 'warning' : 'danger',
61
+ icon: 'clock',
62
+ description: 'Average response time for requests'
63
+ });
64
+ // Throughput KPI
65
+ widgets.push({
66
+ id: 'throughput',
67
+ title: 'Throughput',
68
+ value: `${metrics.throughput.toFixed(1)} req/s`,
69
+ trend: this.calculateTrend('throughput'),
70
+ trendPercentage: this.calculateTrendPercentage('throughput'),
71
+ format: 'number',
72
+ color: 'info',
73
+ icon: 'trending-up',
74
+ description: 'Requests processed per second'
75
+ });
76
+ // Error Rate KPI
77
+ widgets.push({
78
+ id: 'error-rate',
79
+ title: 'Error Rate',
80
+ value: `${(metrics.errorRate * 100).toFixed(2)}%`,
81
+ trend: this.calculateTrend('error_rate'),
82
+ trendPercentage: this.calculateTrendPercentage('error_rate'),
83
+ format: 'percentage',
84
+ color: metrics.errorRate < 0.01 ? 'success' : metrics.errorRate < 0.05 ? 'warning' : 'danger',
85
+ icon: 'alert-triangle',
86
+ description: 'Percentage of failed requests'
87
+ });
88
+ return widgets;
89
+ }
90
+ /**
91
+ * Generate advanced chart configurations
92
+ */
93
+ generateChartConfigurations() {
94
+ const charts = [];
95
+ // Real-time Requests Chart
96
+ charts.push({
97
+ id: 'realtime-requests',
98
+ type: 'line',
99
+ title: 'Real-time Request Volume',
100
+ data: [{
101
+ label: 'Requests per Minute',
102
+ data: this.getTimeSeriesChartData('requests_per_minute', 60),
103
+ borderColor: '#3B82F6',
104
+ backgroundColor: 'rgba(59, 130, 246, 0.1)',
105
+ borderWidth: 2,
106
+ fill: true,
107
+ tension: 0.4
108
+ }],
109
+ options: this.createTimeSeriesChartOptions('Requests per Minute', 'Time', 'Requests'),
110
+ responsive: true,
111
+ realTime: true
112
+ });
113
+ // Response Time Distribution
114
+ charts.push({
115
+ id: 'response-time-distribution',
116
+ type: 'bar',
117
+ title: 'Response Time Distribution',
118
+ data: [{
119
+ label: 'Response Times',
120
+ data: this.getResponseTimeDistributionData(),
121
+ backgroundColor: [
122
+ '#10B981', // < 100ms
123
+ '#F59E0B', // 100-500ms
124
+ '#EF4444', // 500-1000ms
125
+ '#8B5CF6' // > 1000ms
126
+ ],
127
+ borderWidth: 1
128
+ }],
129
+ options: this.createBarChartOptions('Response Time Distribution', 'Response Time Range', 'Count'),
130
+ responsive: true,
131
+ realTime: false
132
+ });
133
+ // Top Tools Usage
134
+ charts.push({
135
+ id: 'top-tools-usage',
136
+ type: 'doughnut',
137
+ title: 'Top Tools Usage',
138
+ data: [{
139
+ label: 'Tool Usage',
140
+ data: this.getTopToolsData(),
141
+ backgroundColor: [
142
+ '#3B82F6', '#10B981', '#F59E0B', '#EF4444', '#8B5CF6',
143
+ '#EC4899', '#06B6D4', '#84CC16', '#F97316', '#6366F1'
144
+ ],
145
+ borderWidth: 2
146
+ }],
147
+ options: this.createDoughnutChartOptions('Top Tools Usage'),
148
+ responsive: true,
149
+ realTime: true
150
+ });
151
+ // Performance Trend Analysis
152
+ charts.push({
153
+ id: 'performance-trends',
154
+ type: 'area',
155
+ title: 'Performance Trends (24h)',
156
+ data: [
157
+ {
158
+ label: 'Response Time (ms)',
159
+ data: this.getTimeSeriesChartData('response_time', 24 * 60),
160
+ borderColor: '#EF4444',
161
+ backgroundColor: 'rgba(239, 68, 68, 0.1)',
162
+ borderWidth: 2,
163
+ fill: true
164
+ },
165
+ {
166
+ label: 'Success Rate (%)',
167
+ data: this.getTimeSeriesChartData('success_rate', 24 * 60),
168
+ borderColor: '#10B981',
169
+ backgroundColor: 'rgba(16, 185, 129, 0.1)',
170
+ borderWidth: 2,
171
+ fill: true
172
+ }
173
+ ],
174
+ options: this.createMultiAxisChartOptions('Performance Trends', 'Time', 'Value'),
175
+ responsive: true,
176
+ realTime: true
177
+ });
178
+ return charts;
179
+ }
180
+ /**
181
+ * Create executive dashboard layout
182
+ */
183
+ createExecutiveDashboard() {
184
+ return {
185
+ sections: [
186
+ // KPI Row
187
+ {
188
+ id: 'kpi-total-requests',
189
+ title: 'Total Requests',
190
+ type: 'kpi',
191
+ position: { row: 0, col: 0, width: 2, height: 1 },
192
+ config: this.generateKPIWidgets()[0],
193
+ visible: true,
194
+ minimized: false
195
+ },
196
+ {
197
+ id: 'kpi-success-rate',
198
+ title: 'Success Rate',
199
+ type: 'kpi',
200
+ position: { row: 0, col: 2, width: 2, height: 1 },
201
+ config: this.generateKPIWidgets()[1],
202
+ visible: true,
203
+ minimized: false
204
+ },
205
+ {
206
+ id: 'kpi-response-time',
207
+ title: 'Response Time',
208
+ type: 'kpi',
209
+ position: { row: 0, col: 4, width: 2, height: 1 },
210
+ config: this.generateKPIWidgets()[2],
211
+ visible: true,
212
+ minimized: false
213
+ },
214
+ // Main Charts Row
215
+ {
216
+ id: 'chart-realtime-requests',
217
+ title: 'Real-time Requests',
218
+ type: 'chart',
219
+ position: { row: 1, col: 0, width: 4, height: 2 },
220
+ config: this.generateChartConfigurations()[0],
221
+ visible: true,
222
+ minimized: false
223
+ },
224
+ {
225
+ id: 'chart-top-tools',
226
+ title: 'Top Tools',
227
+ type: 'chart',
228
+ position: { row: 1, col: 4, width: 2, height: 2 },
229
+ config: this.generateChartConfigurations()[2],
230
+ visible: true,
231
+ minimized: false
232
+ },
233
+ // Performance Analysis Row
234
+ {
235
+ id: 'chart-performance-trends',
236
+ title: 'Performance Trends',
237
+ type: 'chart',
238
+ position: { row: 3, col: 0, width: 6, height: 2 },
239
+ config: this.generateChartConfigurations()[3],
240
+ visible: true,
241
+ minimized: false
242
+ }
243
+ ],
244
+ theme: 'auto',
245
+ layout: 'grid',
246
+ columns: 6,
247
+ refreshInterval: 30000 // 30 seconds
248
+ };
249
+ }
250
+ /**
251
+ * Create operational dashboard layout
252
+ */
253
+ createOperationalDashboard() {
254
+ return {
255
+ sections: [
256
+ // Alerts Section
257
+ {
258
+ id: 'alerts-section',
259
+ title: 'System Alerts',
260
+ type: 'alert',
261
+ position: { row: 0, col: 0, width: 3, height: 2 },
262
+ config: this.generateAlertConfiguration(),
263
+ visible: true,
264
+ minimized: false
265
+ },
266
+ // Response Time Analysis
267
+ {
268
+ id: 'response-time-analysis',
269
+ title: 'Response Time Analysis',
270
+ type: 'chart',
271
+ position: { row: 0, col: 3, width: 3, height: 2 },
272
+ config: this.generateChartConfigurations()[1],
273
+ visible: true,
274
+ minimized: false
275
+ },
276
+ // Detailed Metrics Table
277
+ {
278
+ id: 'metrics-table',
279
+ title: 'Detailed Metrics',
280
+ type: 'table',
281
+ position: { row: 2, col: 0, width: 6, height: 3 },
282
+ config: this.generateMetricsTable(),
283
+ visible: true,
284
+ minimized: false
285
+ }
286
+ ],
287
+ theme: 'auto',
288
+ layout: 'grid',
289
+ columns: 6,
290
+ refreshInterval: 15000 // 15 seconds
291
+ };
292
+ }
293
+ /**
294
+ * Get dashboard layout by name
295
+ */
296
+ getDashboardLayout(name) {
297
+ return this.dashboardLayouts.get(name) || null;
298
+ }
299
+ /**
300
+ * Subscribe to real-time updates for a dashboard
301
+ */
302
+ subscribeToRealTimeUpdates(dashboardId, callback) {
303
+ const subscriptionId = `${dashboardId}-${Date.now()}`;
304
+ const interval = setInterval(() => {
305
+ const updateData = {
306
+ kpis: this.generateKPIWidgets(),
307
+ charts: this.generateChartConfigurations(),
308
+ timestamp: Date.now()
309
+ };
310
+ callback(updateData);
311
+ }, 5000); // Update every 5 seconds
312
+ this.realtimeSubscriptions.set(subscriptionId, interval);
313
+ return subscriptionId;
314
+ }
315
+ /**
316
+ * Unsubscribe from real-time updates
317
+ */
318
+ unsubscribeFromRealTimeUpdates(subscriptionId) {
319
+ const interval = this.realtimeSubscriptions.get(subscriptionId);
320
+ if (interval) {
321
+ clearInterval(interval);
322
+ this.realtimeSubscriptions.delete(subscriptionId);
323
+ }
324
+ }
325
+ // Private helper methods
326
+ initializeDefaultDashboards() {
327
+ this.dashboardLayouts.set('executive', this.createExecutiveDashboard());
328
+ this.dashboardLayouts.set('operational', this.createOperationalDashboard());
329
+ }
330
+ formatNumber(value) {
331
+ if (value >= 1000000) {
332
+ return `${(value / 1000000).toFixed(1)}M`;
333
+ }
334
+ else if (value >= 1000) {
335
+ return `${(value / 1000).toFixed(1)}K`;
336
+ }
337
+ return value.toString();
338
+ }
339
+ calculateTrend(metric) {
340
+ const trend = this.analyticsEngine.analyzeTrend(metric, 1);
341
+ if (!trend)
342
+ return 'stable';
343
+ switch (trend.trend) {
344
+ case 'increasing': return 'up';
345
+ case 'decreasing': return 'down';
346
+ default: return 'stable';
347
+ }
348
+ }
349
+ calculateTrendPercentage(metric) {
350
+ const trend = this.analyticsEngine.analyzeTrend(metric, 1);
351
+ if (!trend)
352
+ return 0;
353
+ // Convert slope to percentage change
354
+ return Math.abs(trend.slope * 100);
355
+ }
356
+ getTimeSeriesChartData(metric, minutes) {
357
+ const data = this.analyticsEngine.getTimeSeriesData(metric, minutes / 60);
358
+ return data.map(point => ({
359
+ x: point.timestamp,
360
+ y: point.value
361
+ }));
362
+ }
363
+ getResponseTimeDistributionData() {
364
+ // Simulated response time distribution data
365
+ return [
366
+ { x: '< 100ms', y: 150 },
367
+ { x: '100-500ms', y: 300 },
368
+ { x: '500-1000ms', y: 75 },
369
+ { x: '> 1000ms', y: 25 }
370
+ ];
371
+ }
372
+ getTopToolsData() {
373
+ const metrics = this.analyticsEngine.getBusinessMetrics();
374
+ return metrics.topTools.map(tool => ({
375
+ x: tool.name,
376
+ y: tool.usage
377
+ }));
378
+ }
379
+ createTimeSeriesChartOptions(title, xLabel, yLabel) {
380
+ return {
381
+ responsive: true,
382
+ maintainAspectRatio: false,
383
+ plugins: {
384
+ legend: {
385
+ display: true,
386
+ position: 'top'
387
+ },
388
+ title: {
389
+ display: true,
390
+ text: title
391
+ },
392
+ tooltip: {
393
+ enabled: true,
394
+ mode: 'index'
395
+ }
396
+ },
397
+ scales: {
398
+ x: {
399
+ type: 'time',
400
+ display: true,
401
+ title: {
402
+ display: true,
403
+ text: xLabel
404
+ }
405
+ },
406
+ y: {
407
+ type: 'linear',
408
+ display: true,
409
+ beginAtZero: true,
410
+ title: {
411
+ display: true,
412
+ text: yLabel
413
+ }
414
+ }
415
+ },
416
+ animation: {
417
+ duration: 300,
418
+ easing: 'easeOutQuad'
419
+ }
420
+ };
421
+ }
422
+ createBarChartOptions(title, xLabel, yLabel) {
423
+ return {
424
+ responsive: true,
425
+ maintainAspectRatio: false,
426
+ plugins: {
427
+ legend: {
428
+ display: false,
429
+ position: 'top'
430
+ },
431
+ title: {
432
+ display: true,
433
+ text: title
434
+ },
435
+ tooltip: {
436
+ enabled: true,
437
+ mode: 'point'
438
+ }
439
+ },
440
+ scales: {
441
+ x: {
442
+ type: 'category',
443
+ display: true,
444
+ title: {
445
+ display: true,
446
+ text: xLabel
447
+ }
448
+ },
449
+ y: {
450
+ type: 'linear',
451
+ display: true,
452
+ beginAtZero: true,
453
+ title: {
454
+ display: true,
455
+ text: yLabel
456
+ }
457
+ }
458
+ }
459
+ };
460
+ }
461
+ createDoughnutChartOptions(title) {
462
+ return {
463
+ responsive: true,
464
+ maintainAspectRatio: false,
465
+ plugins: {
466
+ legend: {
467
+ display: true,
468
+ position: 'right'
469
+ },
470
+ title: {
471
+ display: true,
472
+ text: title
473
+ },
474
+ tooltip: {
475
+ enabled: true,
476
+ mode: 'point'
477
+ }
478
+ }
479
+ };
480
+ }
481
+ createMultiAxisChartOptions(title, xLabel, yLabel) {
482
+ return {
483
+ responsive: true,
484
+ maintainAspectRatio: false,
485
+ plugins: {
486
+ legend: {
487
+ display: true,
488
+ position: 'top'
489
+ },
490
+ title: {
491
+ display: true,
492
+ text: title
493
+ },
494
+ tooltip: {
495
+ enabled: true,
496
+ mode: 'index'
497
+ }
498
+ },
499
+ scales: {
500
+ x: {
501
+ type: 'time',
502
+ display: true,
503
+ title: {
504
+ display: true,
505
+ text: xLabel
506
+ }
507
+ },
508
+ y: {
509
+ type: 'linear',
510
+ display: true,
511
+ beginAtZero: true,
512
+ title: {
513
+ display: true,
514
+ text: yLabel
515
+ }
516
+ }
517
+ }
518
+ };
519
+ }
520
+ generateAlertConfiguration() {
521
+ const insights = this.analyticsEngine.generateInsights();
522
+ return {
523
+ id: 'system-alerts',
524
+ title: 'System Alerts',
525
+ alerts: insights.alerts.map(alert => ({
526
+ id: alert.id,
527
+ message: alert.message,
528
+ severity: alert.severity,
529
+ timestamp: alert.timestamp,
530
+ acknowledged: false,
531
+ actionUrl: alert.actionRequired ? '/dashboard/actions' : undefined
532
+ })),
533
+ maxVisible: 10,
534
+ autoRefresh: true
535
+ };
536
+ }
537
+ generateMetricsTable() {
538
+ const metrics = this.analyticsEngine.getBusinessMetrics();
539
+ return {
540
+ id: 'metrics-table',
541
+ title: 'System Metrics Overview',
542
+ columns: [
543
+ { key: 'metric', label: 'Metric', type: 'text', sortable: true, filterable: true },
544
+ { key: 'current', label: 'Current Value', type: 'text', sortable: true, filterable: false },
545
+ { key: 'trend', label: 'Trend', type: 'badge', sortable: true, filterable: true },
546
+ { key: 'status', label: 'Status', type: 'badge', sortable: true, filterable: true }
547
+ ],
548
+ data: [
549
+ {
550
+ metric: 'Total Requests',
551
+ current: this.formatNumber(metrics.totalRequests),
552
+ trend: this.calculateTrend('total_requests'),
553
+ status: 'healthy'
554
+ },
555
+ {
556
+ metric: 'Success Rate',
557
+ current: `${(metrics.successRate * 100).toFixed(1)}%`,
558
+ trend: this.calculateTrend('success_rate'),
559
+ status: metrics.successRate > 0.95 ? 'healthy' : 'warning'
560
+ },
561
+ {
562
+ metric: 'Average Response Time',
563
+ current: `${metrics.averageResponseTime.toFixed(0)}ms`,
564
+ trend: this.calculateTrend('response_time'),
565
+ status: metrics.averageResponseTime < 500 ? 'healthy' : 'warning'
566
+ },
567
+ {
568
+ metric: 'Error Rate',
569
+ current: `${(metrics.errorRate * 100).toFixed(2)}%`,
570
+ trend: this.calculateTrend('error_rate'),
571
+ status: metrics.errorRate < 0.01 ? 'healthy' : 'critical'
572
+ }
573
+ ],
574
+ pagination: {
575
+ enabled: false,
576
+ pageSize: 10,
577
+ currentPage: 1
578
+ },
579
+ search: {
580
+ enabled: true,
581
+ placeholder: 'Search metrics...'
582
+ }
583
+ };
584
+ }
585
+ }
586
+ exports.BusinessIntelligence = BusinessIntelligence;
587
+ // Singleton instance
588
+ let businessIntelligence = null;
589
+ function getBusinessIntelligence() {
590
+ if (!businessIntelligence) {
591
+ businessIntelligence = new BusinessIntelligence();
592
+ }
593
+ return businessIntelligence;
594
+ }