@jagilber-org/index-server 1.22.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 (372) hide show
  1. package/CHANGELOG.md +1354 -0
  2. package/CODE_OF_CONDUCT.md +49 -0
  3. package/CONTRIBUTING.md +99 -0
  4. package/LICENSE +21 -0
  5. package/README.md +228 -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 +46 -0
  10. package/dist/config/dashboardConfig.js +67 -0
  11. package/dist/config/defaultValues.d.ts +63 -0
  12. package/dist/config/defaultValues.js +72 -0
  13. package/dist/config/dirConstants.d.ts +18 -0
  14. package/dist/config/dirConstants.js +29 -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 +151 -0
  18. package/dist/config/runtimeConfig.js +380 -0
  19. package/dist/config/serverConfig.d.ts +90 -0
  20. package/dist/config/serverConfig.js +167 -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 +2175 -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 +1587 -0
  29. package/dist/dashboard/client/js/admin.auth.js +179 -0
  30. package/dist/dashboard/client/js/admin.boot.js +359 -0
  31. package/dist/dashboard/client/js/admin.config.js +196 -0
  32. package/dist/dashboard/client/js/admin.embeddings.js +426 -0
  33. package/dist/dashboard/client/js/admin.graph.js +615 -0
  34. package/dist/dashboard/client/js/admin.instances.js +120 -0
  35. package/dist/dashboard/client/js/admin.instructions.js +579 -0
  36. package/dist/dashboard/client/js/admin.logs.js +113 -0
  37. package/dist/dashboard/client/js/admin.maintenance.js +393 -0
  38. package/dist/dashboard/client/js/admin.messaging.js +636 -0
  39. package/dist/dashboard/client/js/admin.monitor.js +184 -0
  40. package/dist/dashboard/client/js/admin.overview.js +221 -0
  41. package/dist/dashboard/client/js/admin.performance.js +61 -0
  42. package/dist/dashboard/client/js/admin.sessions.js +292 -0
  43. package/dist/dashboard/client/js/admin.sqlite.js +373 -0
  44. package/dist/dashboard/client/js/admin.utils.js +49 -0
  45. package/dist/dashboard/client/js/chart.umd.js +14 -0
  46. package/dist/dashboard/client/js/elk.bundled.js +6696 -0
  47. package/dist/dashboard/client/js/marked.umd.js +74 -0
  48. package/dist/dashboard/client/js/mermaid.min.js +3022 -0
  49. package/dist/dashboard/client/mermaid-layout-elk.esm.min.mjs +1 -0
  50. package/dist/dashboard/export/DataExporter.d.ts +169 -0
  51. package/dist/dashboard/export/DataExporter.js +737 -0
  52. package/dist/dashboard/export/exporters/csvExporter.d.ts +11 -0
  53. package/dist/dashboard/export/exporters/csvExporter.js +47 -0
  54. package/dist/dashboard/export/exporters/exportTypes.d.ts +89 -0
  55. package/dist/dashboard/export/exporters/exportTypes.js +5 -0
  56. package/dist/dashboard/export/exporters/jsonExporter.d.ts +7 -0
  57. package/dist/dashboard/export/exporters/jsonExporter.js +23 -0
  58. package/dist/dashboard/export/exporters/xmlExporter.d.ts +17 -0
  59. package/dist/dashboard/export/exporters/xmlExporter.js +176 -0
  60. package/dist/dashboard/integration/APIIntegration.d.ts +41 -0
  61. package/dist/dashboard/integration/APIIntegration.js +95 -0
  62. package/dist/dashboard/security/SecurityMonitor.d.ts +167 -0
  63. package/dist/dashboard/security/SecurityMonitor.js +560 -0
  64. package/dist/dashboard/server/AdminPanel.d.ts +195 -0
  65. package/dist/dashboard/server/AdminPanel.js +861 -0
  66. package/dist/dashboard/server/AdminPanelConfig.d.ts +42 -0
  67. package/dist/dashboard/server/AdminPanelConfig.js +80 -0
  68. package/dist/dashboard/server/AdminPanelState.d.ts +47 -0
  69. package/dist/dashboard/server/AdminPanelState.js +215 -0
  70. package/dist/dashboard/server/ApiRoutes.d.ts +17 -0
  71. package/dist/dashboard/server/ApiRoutes.js +184 -0
  72. package/dist/dashboard/server/DashboardServer.d.ts +49 -0
  73. package/dist/dashboard/server/DashboardServer.js +160 -0
  74. package/dist/dashboard/server/FileMetricsStorage.d.ts +49 -0
  75. package/dist/dashboard/server/FileMetricsStorage.js +196 -0
  76. package/dist/dashboard/server/HttpTransport.d.ts +23 -0
  77. package/dist/dashboard/server/HttpTransport.js +116 -0
  78. package/dist/dashboard/server/InstanceManager.d.ts +53 -0
  79. package/dist/dashboard/server/InstanceManager.js +295 -0
  80. package/dist/dashboard/server/KnowledgeStore.d.ts +35 -0
  81. package/dist/dashboard/server/KnowledgeStore.js +105 -0
  82. package/dist/dashboard/server/LeaderElection.d.ts +81 -0
  83. package/dist/dashboard/server/LeaderElection.js +268 -0
  84. package/dist/dashboard/server/MetricsCollector.d.ts +200 -0
  85. package/dist/dashboard/server/MetricsCollector.js +810 -0
  86. package/dist/dashboard/server/SessionPersistenceManager.d.ts +88 -0
  87. package/dist/dashboard/server/SessionPersistenceManager.js +458 -0
  88. package/dist/dashboard/server/ThinClient.d.ts +64 -0
  89. package/dist/dashboard/server/ThinClient.js +237 -0
  90. package/dist/dashboard/server/WebSocketManager.d.ts +161 -0
  91. package/dist/dashboard/server/WebSocketManager.js +448 -0
  92. package/dist/dashboard/server/httpLifecycle.d.ts +17 -0
  93. package/dist/dashboard/server/httpLifecycle.js +35 -0
  94. package/dist/dashboard/server/legacyDashboardHtml.d.ts +9 -0
  95. package/dist/dashboard/server/legacyDashboardHtml.js +618 -0
  96. package/dist/dashboard/server/legacyDashboardStyles.d.ts +5 -0
  97. package/dist/dashboard/server/legacyDashboardStyles.js +490 -0
  98. package/dist/dashboard/server/metricsAggregation.d.ts +252 -0
  99. package/dist/dashboard/server/metricsAggregation.js +210 -0
  100. package/dist/dashboard/server/metricsSerializer.d.ts +25 -0
  101. package/dist/dashboard/server/metricsSerializer.js +195 -0
  102. package/dist/dashboard/server/middleware/ensureLoadedMiddleware.d.ts +25 -0
  103. package/dist/dashboard/server/middleware/ensureLoadedMiddleware.js +24 -0
  104. package/dist/dashboard/server/routes/admin.routes.d.ts +16 -0
  105. package/dist/dashboard/server/routes/admin.routes.js +574 -0
  106. package/dist/dashboard/server/routes/adminAuth.d.ts +4 -0
  107. package/dist/dashboard/server/routes/adminAuth.js +46 -0
  108. package/dist/dashboard/server/routes/alerts.routes.d.ts +7 -0
  109. package/dist/dashboard/server/routes/alerts.routes.js +91 -0
  110. package/dist/dashboard/server/routes/api.feedback.routes.d.ts +73 -0
  111. package/dist/dashboard/server/routes/api.feedback.routes.js +171 -0
  112. package/dist/dashboard/server/routes/api.instructions.routes.d.ts +101 -0
  113. package/dist/dashboard/server/routes/api.instructions.routes.js +213 -0
  114. package/dist/dashboard/server/routes/api.usage.routes.d.ts +57 -0
  115. package/dist/dashboard/server/routes/api.usage.routes.js +374 -0
  116. package/dist/dashboard/server/routes/embeddings.routes.d.ts +6 -0
  117. package/dist/dashboard/server/routes/embeddings.routes.js +246 -0
  118. package/dist/dashboard/server/routes/graph.routes.d.ts +6 -0
  119. package/dist/dashboard/server/routes/graph.routes.js +279 -0
  120. package/dist/dashboard/server/routes/index.d.ts +39 -0
  121. package/dist/dashboard/server/routes/index.js +229 -0
  122. package/dist/dashboard/server/routes/instances.routes.d.ts +6 -0
  123. package/dist/dashboard/server/routes/instances.routes.js +35 -0
  124. package/dist/dashboard/server/routes/instructions.routes.d.ts +8 -0
  125. package/dist/dashboard/server/routes/instructions.routes.js +268 -0
  126. package/dist/dashboard/server/routes/knowledge.routes.d.ts +6 -0
  127. package/dist/dashboard/server/routes/knowledge.routes.js +80 -0
  128. package/dist/dashboard/server/routes/logs.routes.d.ts +6 -0
  129. package/dist/dashboard/server/routes/logs.routes.js +166 -0
  130. package/dist/dashboard/server/routes/messaging.routes.d.ts +16 -0
  131. package/dist/dashboard/server/routes/messaging.routes.js +307 -0
  132. package/dist/dashboard/server/routes/metrics.routes.d.ts +10 -0
  133. package/dist/dashboard/server/routes/metrics.routes.js +335 -0
  134. package/dist/dashboard/server/routes/scripts.routes.d.ts +9 -0
  135. package/dist/dashboard/server/routes/scripts.routes.js +84 -0
  136. package/dist/dashboard/server/routes/sqlite.routes.d.ts +9 -0
  137. package/dist/dashboard/server/routes/sqlite.routes.js +570 -0
  138. package/dist/dashboard/server/routes/status.routes.d.ts +7 -0
  139. package/dist/dashboard/server/routes/status.routes.js +179 -0
  140. package/dist/dashboard/server/routes/synthetic.routes.d.ts +7 -0
  141. package/dist/dashboard/server/routes/synthetic.routes.js +197 -0
  142. package/dist/dashboard/server/routes/tools.routes.d.ts +6 -0
  143. package/dist/dashboard/server/routes/tools.routes.js +47 -0
  144. package/dist/dashboard/server/routes/usage.routes.d.ts +6 -0
  145. package/dist/dashboard/server/routes/usage.routes.js +26 -0
  146. package/dist/dashboard/server/wsInit.d.ts +16 -0
  147. package/dist/dashboard/server/wsInit.js +35 -0
  148. package/dist/externalClientLib.d.ts +1 -0
  149. package/dist/externalClientLib.js +2 -0
  150. package/dist/minimal/index.d.ts +1 -0
  151. package/dist/minimal/index.js +140 -0
  152. package/dist/models/SessionPersistence.d.ts +115 -0
  153. package/dist/models/SessionPersistence.js +66 -0
  154. package/dist/models/instruction.d.ts +46 -0
  155. package/dist/models/instruction.js +2 -0
  156. package/dist/perf/benchmark.d.ts +1 -0
  157. package/dist/perf/benchmark.js +50 -0
  158. package/dist/portableClientWrapper.d.ts +1 -0
  159. package/dist/portableClientWrapper.js +2 -0
  160. package/dist/schemas/index.d.ts +132 -0
  161. package/dist/schemas/index.js +372 -0
  162. package/dist/scripts/runPerformanceBaseline.d.ts +1 -0
  163. package/dist/scripts/runPerformanceBaseline.js +17 -0
  164. package/dist/server/backgroundServicesStartup.d.ts +3 -0
  165. package/dist/server/backgroundServicesStartup.js +51 -0
  166. package/dist/server/handshakeManager.d.ts +25 -0
  167. package/dist/server/handshakeManager.js +470 -0
  168. package/dist/server/index-server.d.ts +38 -0
  169. package/dist/server/index-server.js +620 -0
  170. package/dist/server/multiInstanceStartup.d.ts +6 -0
  171. package/dist/server/multiInstanceStartup.js +132 -0
  172. package/dist/server/registry.d.ts +44 -0
  173. package/dist/server/registry.js +236 -0
  174. package/dist/server/sdkServer.d.ts +8 -0
  175. package/dist/server/sdkServer.js +299 -0
  176. package/dist/server/shutdownGuard.d.ts +41 -0
  177. package/dist/server/shutdownGuard.js +52 -0
  178. package/dist/server/startupDiagnostics.d.ts +2 -0
  179. package/dist/server/startupDiagnostics.js +33 -0
  180. package/dist/server/thin-client.d.ts +22 -0
  181. package/dist/server/thin-client.js +111 -0
  182. package/dist/server/transport.d.ts +41 -0
  183. package/dist/server/transport.js +312 -0
  184. package/dist/server/transportFactory.d.ts +21 -0
  185. package/dist/server/transportFactory.js +429 -0
  186. package/dist/services/atomicFs.d.ts +22 -0
  187. package/dist/services/atomicFs.js +103 -0
  188. package/dist/services/auditLog.d.ts +38 -0
  189. package/dist/services/auditLog.js +142 -0
  190. package/dist/services/autoBackup.d.ts +14 -0
  191. package/dist/services/autoBackup.js +171 -0
  192. package/dist/services/autoSplit.d.ts +32 -0
  193. package/dist/services/autoSplit.js +113 -0
  194. package/dist/services/backupZip.d.ts +25 -0
  195. package/dist/services/backupZip.js +112 -0
  196. package/dist/services/bootstrapGating.d.ts +123 -0
  197. package/dist/services/bootstrapGating.js +221 -0
  198. package/dist/services/canonical.d.ts +23 -0
  199. package/dist/services/canonical.js +65 -0
  200. package/dist/services/categoryRules.d.ts +7 -0
  201. package/dist/services/categoryRules.js +37 -0
  202. package/dist/services/classificationService.d.ts +42 -0
  203. package/dist/services/classificationService.js +168 -0
  204. package/dist/services/embeddingService.d.ts +62 -0
  205. package/dist/services/embeddingService.js +264 -0
  206. package/dist/services/errors.d.ts +22 -0
  207. package/dist/services/errors.js +31 -0
  208. package/dist/services/featureFlags.d.ts +25 -0
  209. package/dist/services/featureFlags.js +89 -0
  210. package/dist/services/features.d.ts +13 -0
  211. package/dist/services/features.js +35 -0
  212. package/dist/services/handlers/instructions.add.d.ts +1 -0
  213. package/dist/services/handlers/instructions.add.js +510 -0
  214. package/dist/services/handlers/instructions.groom.d.ts +1 -0
  215. package/dist/services/handlers/instructions.groom.js +575 -0
  216. package/dist/services/handlers/instructions.import.d.ts +1 -0
  217. package/dist/services/handlers/instructions.import.js +205 -0
  218. package/dist/services/handlers/instructions.patch.d.ts +1 -0
  219. package/dist/services/handlers/instructions.patch.js +121 -0
  220. package/dist/services/handlers/instructions.query.d.ts +159 -0
  221. package/dist/services/handlers/instructions.query.js +469 -0
  222. package/dist/services/handlers/instructions.reload.d.ts +1 -0
  223. package/dist/services/handlers/instructions.reload.js +13 -0
  224. package/dist/services/handlers/instructions.remove.d.ts +1 -0
  225. package/dist/services/handlers/instructions.remove.js +122 -0
  226. package/dist/services/handlers/instructions.shared.d.ts +32 -0
  227. package/dist/services/handlers/instructions.shared.js +91 -0
  228. package/dist/services/handlers.activation.d.ts +1 -0
  229. package/dist/services/handlers.activation.js +203 -0
  230. package/dist/services/handlers.bootstrap.d.ts +1 -0
  231. package/dist/services/handlers.bootstrap.js +38 -0
  232. package/dist/services/handlers.dashboardConfig.d.ts +34 -0
  233. package/dist/services/handlers.dashboardConfig.js +110 -0
  234. package/dist/services/handlers.diagnostics.d.ts +1 -0
  235. package/dist/services/handlers.diagnostics.js +64 -0
  236. package/dist/services/handlers.feedback.d.ts +15 -0
  237. package/dist/services/handlers.feedback.js +389 -0
  238. package/dist/services/handlers.gates.d.ts +1 -0
  239. package/dist/services/handlers.gates.js +47 -0
  240. package/dist/services/handlers.graph.d.ts +53 -0
  241. package/dist/services/handlers.graph.js +231 -0
  242. package/dist/services/handlers.help.d.ts +1 -0
  243. package/dist/services/handlers.help.js +119 -0
  244. package/dist/services/handlers.instructionSchema.d.ts +1 -0
  245. package/dist/services/handlers.instructionSchema.js +227 -0
  246. package/dist/services/handlers.instructions.d.ts +8 -0
  247. package/dist/services/handlers.instructions.js +14 -0
  248. package/dist/services/handlers.instructionsDiagnostics.d.ts +1 -0
  249. package/dist/services/handlers.instructionsDiagnostics.js +14 -0
  250. package/dist/services/handlers.integrity.d.ts +1 -0
  251. package/dist/services/handlers.integrity.js +35 -0
  252. package/dist/services/handlers.manifest.d.ts +1 -0
  253. package/dist/services/handlers.manifest.js +24 -0
  254. package/dist/services/handlers.messaging.d.ts +12 -0
  255. package/dist/services/handlers.messaging.js +203 -0
  256. package/dist/services/handlers.metrics.d.ts +1 -0
  257. package/dist/services/handlers.metrics.js +43 -0
  258. package/dist/services/handlers.promote.d.ts +1 -0
  259. package/dist/services/handlers.promote.js +326 -0
  260. package/dist/services/handlers.prompt.d.ts +1 -0
  261. package/dist/services/handlers.prompt.js +7 -0
  262. package/dist/services/handlers.search.d.ts +69 -0
  263. package/dist/services/handlers.search.js +669 -0
  264. package/dist/services/handlers.testPrimitive.d.ts +1 -0
  265. package/dist/services/handlers.testPrimitive.js +5 -0
  266. package/dist/services/handlers.trace.d.ts +1 -0
  267. package/dist/services/handlers.trace.js +35 -0
  268. package/dist/services/handlers.usage.d.ts +1 -0
  269. package/dist/services/handlers.usage.js +11 -0
  270. package/dist/services/hotScore.d.ts +137 -0
  271. package/dist/services/hotScore.js +244 -0
  272. package/dist/services/indexContext.d.ts +117 -0
  273. package/dist/services/indexContext.js +989 -0
  274. package/dist/services/indexLoader.d.ts +44 -0
  275. package/dist/services/indexLoader.js +920 -0
  276. package/dist/services/indexRepository.d.ts +32 -0
  277. package/dist/services/indexRepository.js +71 -0
  278. package/dist/services/indexingService.d.ts +1 -0
  279. package/dist/services/indexingService.js +2 -0
  280. package/dist/services/instructions.dispatcher.d.ts +1 -0
  281. package/dist/services/instructions.dispatcher.js +231 -0
  282. package/dist/services/logPrefix.d.ts +1 -0
  283. package/dist/services/logPrefix.js +30 -0
  284. package/dist/services/logger.d.ts +52 -0
  285. package/dist/services/logger.js +268 -0
  286. package/dist/services/manifestManager.d.ts +82 -0
  287. package/dist/services/manifestManager.js +200 -0
  288. package/dist/services/messaging/agentMailbox.d.ts +60 -0
  289. package/dist/services/messaging/agentMailbox.js +353 -0
  290. package/dist/services/messaging/messagingPersistence.d.ts +20 -0
  291. package/dist/services/messaging/messagingPersistence.js +111 -0
  292. package/dist/services/messaging/messagingTypes.d.ts +150 -0
  293. package/dist/services/messaging/messagingTypes.js +66 -0
  294. package/dist/services/ownershipService.d.ts +1 -0
  295. package/dist/services/ownershipService.js +36 -0
  296. package/dist/services/performanceBaseline.d.ts +19 -0
  297. package/dist/services/performanceBaseline.js +210 -0
  298. package/dist/services/preflight.d.ts +12 -0
  299. package/dist/services/preflight.js +79 -0
  300. package/dist/services/promptReviewService.d.ts +44 -0
  301. package/dist/services/promptReviewService.js +101 -0
  302. package/dist/services/responseEnvelope.d.ts +6 -0
  303. package/dist/services/responseEnvelope.js +25 -0
  304. package/dist/services/seedBootstrap.d.ts +34 -0
  305. package/dist/services/seedBootstrap.js +259 -0
  306. package/dist/services/storage/factory.d.ts +17 -0
  307. package/dist/services/storage/factory.js +35 -0
  308. package/dist/services/storage/hashUtils.d.ts +11 -0
  309. package/dist/services/storage/hashUtils.js +35 -0
  310. package/dist/services/storage/index.d.ts +12 -0
  311. package/dist/services/storage/index.js +18 -0
  312. package/dist/services/storage/jsonFileStore.d.ts +32 -0
  313. package/dist/services/storage/jsonFileStore.js +241 -0
  314. package/dist/services/storage/migrationEngine.d.ts +35 -0
  315. package/dist/services/storage/migrationEngine.js +93 -0
  316. package/dist/services/storage/sqliteMessageStore.d.ts +53 -0
  317. package/dist/services/storage/sqliteMessageStore.js +146 -0
  318. package/dist/services/storage/sqliteSchema.d.ts +12 -0
  319. package/dist/services/storage/sqliteSchema.js +123 -0
  320. package/dist/services/storage/sqliteStore.d.ts +42 -0
  321. package/dist/services/storage/sqliteStore.js +361 -0
  322. package/dist/services/storage/sqliteUsageStore.d.ts +35 -0
  323. package/dist/services/storage/sqliteUsageStore.js +94 -0
  324. package/dist/services/storage/types.d.ts +171 -0
  325. package/dist/services/storage/types.js +12 -0
  326. package/dist/services/toolHandlers.d.ts +23 -0
  327. package/dist/services/toolHandlers.js +50 -0
  328. package/dist/services/toolRegistry.d.ts +20 -0
  329. package/dist/services/toolRegistry.js +490 -0
  330. package/dist/services/toolRegistry.zod.d.ts +10 -0
  331. package/dist/services/toolRegistry.zod.js +325 -0
  332. package/dist/services/tracing.d.ts +26 -0
  333. package/dist/services/tracing.js +260 -0
  334. package/dist/services/usageBuckets.d.ts +161 -0
  335. package/dist/services/usageBuckets.js +364 -0
  336. package/dist/services/validationService.d.ts +38 -0
  337. package/dist/services/validationService.js +125 -0
  338. package/dist/utils/BufferRing.d.ts +203 -0
  339. package/dist/utils/BufferRing.js +551 -0
  340. package/dist/utils/BufferRingExamples.d.ts +55 -0
  341. package/dist/utils/BufferRingExamples.js +188 -0
  342. package/dist/utils/envUtils.d.ts +42 -0
  343. package/dist/utils/envUtils.js +80 -0
  344. package/dist/utils/memoryMonitor.d.ts +83 -0
  345. package/dist/utils/memoryMonitor.js +275 -0
  346. package/dist/versioning/schemaVersion.d.ts +6 -0
  347. package/dist/versioning/schemaVersion.js +94 -0
  348. package/package.json +139 -0
  349. package/schemas/README.md +13 -0
  350. package/schemas/feedback-entry.schema.json +27 -0
  351. package/schemas/graph-export-v2.schema.json +60 -0
  352. package/schemas/index-server.code-schema.json +40670 -0
  353. package/schemas/instruction.schema.json +262 -0
  354. package/schemas/json-schema/SessionPersistence-persisted-admin-session.schema.json +54 -0
  355. package/schemas/json-schema/SessionPersistence-persisted-session-history-entry.schema.json +51 -0
  356. package/schemas/json-schema/SessionPersistence-persisted-web-socket-connection.schema.json +54 -0
  357. package/schemas/json-schema/SessionPersistence-session-persistence-config.schema.json +110 -0
  358. package/schemas/json-schema/SessionPersistence-session-persistence-data.schema.json +229 -0
  359. package/schemas/json-schema/SessionPersistence-session-persistence-manifest.schema.json +109 -0
  360. package/schemas/json-schema/SessionPersistence-session-persistence-metadata.schema.json +55 -0
  361. package/schemas/json-schema/instruction-audience-scope.schema.json +14 -0
  362. package/schemas/json-schema/instruction-content-type.schema.json +17 -0
  363. package/schemas/json-schema/instruction-instruction-entry.schema.json +210 -0
  364. package/schemas/json-schema/instruction-requirement-level.schema.json +16 -0
  365. package/schemas/manifest.json +78 -0
  366. package/schemas/manifest.schema.json +33 -0
  367. package/schemas/usage-batch.schema.json +16 -0
  368. package/schemas/usage-buckets.schema.json +30 -0
  369. package/schemas/usage-event.schema.json +17 -0
  370. package/scripts/copy-dashboard-assets.mjs +170 -0
  371. package/scripts/dist/README.md +15 -0
  372. package/scripts/setup-hooks.cjs +28 -0
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CSV and Excel format exporters for the DataExporter system.
3
+ */
4
+ /**
5
+ * Write data to a CSV file, optionally compressing afterwards.
6
+ */
7
+ export declare function exportCSV(data: unknown[], outputPath: string, compress: boolean): Promise<void>;
8
+ /**
9
+ * Export data as Excel (simplified — delegates to CSV with a .csv extension).
10
+ */
11
+ export declare function exportExcel(data: unknown[], outputPath: string, compress: boolean): Promise<void>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * CSV and Excel format exporters for the DataExporter system.
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.exportCSV = exportCSV;
10
+ exports.exportExcel = exportExcel;
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const logger_js_1 = require("../../../services/logger.js");
14
+ /**
15
+ * Write data to a CSV file, optionally compressing afterwards.
16
+ */
17
+ async function exportCSV(data, outputPath, compress) {
18
+ if (!data.length) {
19
+ await fs_1.default.promises.writeFile(outputPath, '', 'utf8');
20
+ return;
21
+ }
22
+ await fs_1.default.promises.mkdir(path_1.default.dirname(outputPath), { recursive: true });
23
+ const headers = Object.keys(data[0]);
24
+ const csvRows = [
25
+ headers.join(','),
26
+ ...data.map(row => {
27
+ const rowRecord = row;
28
+ return headers.map(header => {
29
+ const value = rowRecord[header];
30
+ const stringValue = String(value || '');
31
+ return stringValue.includes(',') || stringValue.includes('"')
32
+ ? `"${stringValue.replace(/"/g, '""')}"`
33
+ : stringValue;
34
+ }).join(',');
35
+ })
36
+ ];
37
+ await fs_1.default.promises.writeFile(outputPath, csvRows.join('\n'), 'utf8');
38
+ if (compress) {
39
+ (0, logger_js_1.logInfo)('[csvExporter] Compressing file', { path: outputPath });
40
+ }
41
+ }
42
+ /**
43
+ * Export data as Excel (simplified — delegates to CSV with a .csv extension).
44
+ */
45
+ async function exportExcel(data, outputPath, compress) {
46
+ await exportCSV(data, outputPath.replace('.excel', '.csv'), compress);
47
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Shared types for the DataExporter and format-specific exporter modules.
3
+ */
4
+ export interface ExportConfig {
5
+ id: string;
6
+ name: string;
7
+ format: 'json' | 'csv' | 'excel' | 'pdf' | 'xml';
8
+ dataSource: 'metrics' | 'analytics' | 'security' | 'feedback' | 'instructions' | 'custom';
9
+ filters: ExportFilter[];
10
+ columns: ExportColumn[];
11
+ schedule?: ExportSchedule;
12
+ template?: string;
13
+ compression: boolean;
14
+ encryption: boolean;
15
+ destination: ExportDestination;
16
+ }
17
+ export interface ExportFilter {
18
+ field: string;
19
+ operator: 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'greater_than' | 'less_than' | 'between' | 'in' | 'not_in';
20
+ value: unknown;
21
+ values?: unknown[];
22
+ }
23
+ export interface ExportColumn {
24
+ field: string;
25
+ header: string;
26
+ type: 'string' | 'number' | 'date' | 'boolean' | 'json';
27
+ format?: string;
28
+ aggregation?: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'group';
29
+ }
30
+ export interface ExportSchedule {
31
+ enabled: boolean;
32
+ frequency: 'hourly' | 'daily' | 'weekly' | 'monthly' | 'custom';
33
+ interval: number;
34
+ time?: string;
35
+ dayOfWeek?: number;
36
+ dayOfMonth?: number;
37
+ timezone: string;
38
+ lastRun?: number;
39
+ nextRun?: number;
40
+ }
41
+ export interface ExportDestination {
42
+ type: 'local' | 'email' | 'ftp' | 'sftp' | 's3' | 'azure_blob' | 'webhook';
43
+ config: Record<string, unknown>;
44
+ }
45
+ export interface ExportJob {
46
+ id: string;
47
+ configId: string;
48
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
49
+ progress: number;
50
+ recordsProcessed: number;
51
+ totalRecords: number;
52
+ startTime: number;
53
+ endTime?: number;
54
+ error?: string;
55
+ outputPath?: string;
56
+ fileSize?: number;
57
+ }
58
+ export interface ReportTemplate {
59
+ id: string;
60
+ name: string;
61
+ description: string;
62
+ type: 'dashboard_summary' | 'security_report' | 'performance_analysis' | 'custom';
63
+ sections: ReportSection[];
64
+ formatting: ReportFormatting;
65
+ }
66
+ export interface ReportSection {
67
+ id: string;
68
+ title: string;
69
+ type: 'text' | 'table' | 'chart' | 'metrics' | 'raw_data';
70
+ dataSource: string;
71
+ config: Record<string, unknown>;
72
+ order: number;
73
+ }
74
+ export interface ReportFormatting {
75
+ pageSize: 'A4' | 'Letter' | 'Legal' | 'A3';
76
+ orientation: 'portrait' | 'landscape';
77
+ margins: {
78
+ top: number;
79
+ right: number;
80
+ bottom: number;
81
+ left: number;
82
+ };
83
+ fontSize: number;
84
+ fontFamily: string;
85
+ includeHeader: boolean;
86
+ includeFooter: boolean;
87
+ headerText?: string;
88
+ footerText?: string;
89
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Shared types for the DataExporter and format-specific exporter modules.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * JSON format exporter for the DataExporter system.
3
+ */
4
+ /**
5
+ * Write data to a JSON file, optionally compressing afterwards.
6
+ */
7
+ export declare function exportJSON(data: unknown[], outputPath: string, compress: boolean): Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * JSON format exporter for the DataExporter system.
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.exportJSON = exportJSON;
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const logger_js_1 = require("../../../services/logger.js");
13
+ /**
14
+ * Write data to a JSON file, optionally compressing afterwards.
15
+ */
16
+ async function exportJSON(data, outputPath, compress) {
17
+ await fs_1.default.promises.mkdir(path_1.default.dirname(outputPath), { recursive: true });
18
+ const jsonData = JSON.stringify(data, null, 2);
19
+ await fs_1.default.promises.writeFile(outputPath, jsonData, 'utf8');
20
+ if (compress) {
21
+ (0, logger_js_1.logInfo)('[jsonExporter] Compressing file', { path: outputPath });
22
+ }
23
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * XML and PDF (HTML) format exporters for the DataExporter system.
3
+ * Handles structured document output including template-based report rendering.
4
+ */
5
+ import type { ReportTemplate } from './exportTypes.js';
6
+ /**
7
+ * Write data to an XML file, optionally compressing afterwards.
8
+ */
9
+ export declare function exportXML(data: unknown[], outputPath: string, compress: boolean): Promise<void>;
10
+ /**
11
+ * Write data as a PDF-placeholder HTML file.
12
+ * When a resolved ReportTemplate is provided the output uses the full template;
13
+ * otherwise a simple tabular layout is generated.
14
+ */
15
+ export declare function exportPDF(data: unknown[], outputPath: string, template?: ReportTemplate): Promise<void>;
16
+ export declare function generateReportHTML(template: ReportTemplate, data: unknown[]): string;
17
+ export declare function generateSimplePDFContent(data: unknown[]): string;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * XML and PDF (HTML) format exporters for the DataExporter system.
4
+ * Handles structured document output including template-based report rendering.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.exportXML = exportXML;
11
+ exports.exportPDF = exportPDF;
12
+ exports.generateReportHTML = generateReportHTML;
13
+ exports.generateSimplePDFContent = generateSimplePDFContent;
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const logger_js_1 = require("../../../services/logger.js");
17
+ /**
18
+ * Write data to an XML file, optionally compressing afterwards.
19
+ */
20
+ async function exportXML(data, outputPath, compress) {
21
+ await fs_1.default.promises.mkdir(path_1.default.dirname(outputPath), { recursive: true });
22
+ const xmlContent = convertToXML(data);
23
+ await fs_1.default.promises.writeFile(outputPath, xmlContent, 'utf8');
24
+ if (compress) {
25
+ (0, logger_js_1.logInfo)('[xmlExporter] Compressing file', { path: outputPath });
26
+ }
27
+ }
28
+ /**
29
+ * Write data as a PDF-placeholder HTML file.
30
+ * When a resolved ReportTemplate is provided the output uses the full template;
31
+ * otherwise a simple tabular layout is generated.
32
+ */
33
+ async function exportPDF(data, outputPath, template) {
34
+ await fs_1.default.promises.mkdir(path_1.default.dirname(outputPath), { recursive: true });
35
+ const content = template
36
+ ? generateReportHTML(template, data)
37
+ : generateSimplePDFContent(data);
38
+ // In a real implementation a PDF library (puppeteer, pdfkit) would be used.
39
+ await fs_1.default.promises.writeFile(outputPath.replace('.pdf', '.html'), content, 'utf8');
40
+ }
41
+ // ---------------------------------------------------------------------------
42
+ // Internal helpers
43
+ // ---------------------------------------------------------------------------
44
+ function convertToXML(data) {
45
+ const xmlRows = data.map(item => {
46
+ const itemRecord = item;
47
+ const xmlFields = Object.entries(itemRecord)
48
+ .map(([key, value]) => ` <${key}>${escapeXML(String(value))}</${key}>`)
49
+ .join('\n');
50
+ return ` <record>\n${xmlFields}\n </record>`;
51
+ });
52
+ return `<?xml version="1.0" encoding="UTF-8"?>\n<data>\n${xmlRows.join('\n')}\n</data>`;
53
+ }
54
+ function escapeXML(text) {
55
+ return text
56
+ .replace(/&/g, '&amp;')
57
+ .replace(/</g, '&lt;')
58
+ .replace(/>/g, '&gt;')
59
+ .replace(/"/g, '&quot;')
60
+ .replace(/'/g, '&apos;');
61
+ }
62
+ function generateReportHTML(template, data) {
63
+ let html = `<!DOCTYPE html>
64
+ <html>
65
+ <head>
66
+ <title>${template.name}</title>
67
+ <meta charset="UTF-8">
68
+ <style>
69
+ body { font-family: ${template.formatting.fontFamily}; font-size: ${template.formatting.fontSize}px; }
70
+ .header { text-align: center; border-bottom: 1px solid #ccc; padding-bottom: 10px; margin-bottom: 20px; }
71
+ .footer { text-align: center; border-top: 1px solid #ccc; padding-top: 10px; margin-top: 20px; }
72
+ .section { margin-bottom: 30px; }
73
+ .section-title { font-size: 16px; font-weight: bold; margin-bottom: 10px; }
74
+ table { width: 100%; border-collapse: collapse; margin-bottom: 15px; }
75
+ th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
76
+ th { background-color: #f2f2f2; }
77
+ </style>
78
+ </head>
79
+ <body>`;
80
+ if (template.formatting.includeHeader) {
81
+ const headerText = replaceTemplateVariables(template.formatting.headerText || '');
82
+ html += `<div class="header">${headerText}</div>`;
83
+ }
84
+ const sortedSections = template.sections.sort((a, b) => a.order - b.order);
85
+ for (const section of sortedSections) {
86
+ html += `<div class="section">`;
87
+ html += `<div class="section-title">${section.title}</div>`;
88
+ switch (section.type) {
89
+ case 'table':
90
+ html += generateTableSection(data, section);
91
+ break;
92
+ case 'metrics':
93
+ html += generateMetricsSection(data, section);
94
+ break;
95
+ case 'text':
96
+ html += generateTextSection(data, section);
97
+ break;
98
+ default:
99
+ html += `<p>Section type "${section.type}" not implemented</p>`;
100
+ }
101
+ html += `</div>`;
102
+ }
103
+ if (template.formatting.includeFooter) {
104
+ const footerText = replaceTemplateVariables(template.formatting.footerText || '');
105
+ html += `<div class="footer">${footerText}</div>`;
106
+ }
107
+ html += `</body></html>`;
108
+ return html;
109
+ }
110
+ function generateSimplePDFContent(data) {
111
+ if (!data.length)
112
+ return '<html><body><p>No data to export</p></body></html>';
113
+ const headers = Object.keys(data[0]);
114
+ let html = `<!DOCTYPE html>
115
+ <html>
116
+ <head>
117
+ <title>Data Export</title>
118
+ <style>
119
+ body { font-family: Arial, sans-serif; }
120
+ table { width: 100%; border-collapse: collapse; }
121
+ th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
122
+ th { background-color: #f2f2f2; }
123
+ </style>
124
+ </head>
125
+ <body>
126
+ <h1>Data Export</h1>
127
+ <table>
128
+ <thead>
129
+ <tr>${headers.map(h => `<th>${h}</th>`).join('')}</tr>
130
+ </thead>
131
+ <tbody>`;
132
+ data.forEach(row => {
133
+ const rowRecord = row;
134
+ html += `<tr>${headers.map(h => `<td>${String(rowRecord[h] || '')}</td>`).join('')}</tr>`;
135
+ });
136
+ html += ` </tbody>
137
+ </table>
138
+ </body>
139
+ </html>`;
140
+ return html;
141
+ }
142
+ function generateTableSection(data, _section) {
143
+ if (!data.length)
144
+ return '<p>No data available</p>';
145
+ const headers = Object.keys(data[0]);
146
+ let html = '<table><thead><tr>';
147
+ headers.forEach(header => { html += `<th>${header}</th>`; });
148
+ html += '</tr></thead><tbody>';
149
+ data.forEach(row => {
150
+ const rowRecord = row;
151
+ html += '<tr>';
152
+ headers.forEach(header => { html += `<td>${String(rowRecord[header] || '')}</td>`; });
153
+ html += '</tr>';
154
+ });
155
+ html += '</tbody></table>';
156
+ return html;
157
+ }
158
+ function generateMetricsSection(data, _section) {
159
+ return `<div>
160
+ <p><strong>Total Records:</strong> ${data.length}</p>
161
+ <p><strong>Generated:</strong> ${new Date().toLocaleString()}</p>
162
+ </div>`;
163
+ }
164
+ function generateTextSection(data, section) {
165
+ return `<p>This is a ${section.dataSource} section with ${data.length} records.</p>`;
166
+ }
167
+ function replaceTemplateVariables(text) {
168
+ const now = new Date();
169
+ return text
170
+ .replace(/\{\{date\}\}/g, now.toLocaleDateString())
171
+ .replace(/\{\{time\}\}/g, now.toLocaleTimeString())
172
+ .replace(/\{\{datetime\}\}/g, now.toLocaleString())
173
+ .replace(/\{\{page\}\}/g, '1')
174
+ .replace(/\{\{totalPages\}\}/g, '1')
175
+ .replace(/\{\{dateRange\}\}/g, 'Last 7 days');
176
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * APIIntegration - Phase 4 API Integration & External Connectors
3
+ *
4
+ * Thin coordinator that composes three domain modules:
5
+ * - EndpointManager (api.instructions.routes) — endpoint configuration & rate-limiting
6
+ * - UsageManager (api.usage.routes) — request execution & monitoring
7
+ * - FeedbackManager (api.feedback.routes) — webhooks & external connectors
8
+ */
9
+ import type { APIEndpoint } from '../server/routes/api.instructions.routes.js';
10
+ import type { APIRequest, APIResponse, APIMonitoringEvent } from '../server/routes/api.usage.routes.js';
11
+ import type { WebhookConfig, ExternalConnector } from '../server/routes/api.feedback.routes.js';
12
+ export type { APIEndpoint, APIRequest, APIResponse, APIMonitoringEvent, WebhookConfig, ExternalConnector };
13
+ export declare class APIIntegration {
14
+ private readonly endpointMgr;
15
+ private readonly usageMgr;
16
+ private readonly feedbackMgr;
17
+ constructor();
18
+ private startBackgroundTasks;
19
+ executeRequest(endpointId: string, data?: unknown, overrides?: Partial<APIRequest>): Promise<APIResponse>;
20
+ createEndpoint(endpoint: Omit<APIEndpoint, 'id'>): string;
21
+ getEndpoint(id: string): APIEndpoint | undefined;
22
+ listEndpoints(): APIEndpoint[];
23
+ updateEndpoint(id: string, updates: Partial<APIEndpoint>): boolean;
24
+ deleteEndpoint(id: string): boolean;
25
+ getConfiguredEndpoints(): APIEndpoint[];
26
+ createWebhook(webhook: Omit<WebhookConfig, 'id'>): string;
27
+ triggerWebhook(id: string, event: string, data: unknown): Promise<boolean>;
28
+ createConnector(connector: Omit<ExternalConnector, 'id' | 'status' | 'metrics'>): string;
29
+ getConnectorStatus(id: string): ExternalConnector | undefined;
30
+ listConnectors(): ExternalConnector[];
31
+ onAPIEvent(callback: (event: APIMonitoringEvent) => void): void;
32
+ getAPIStatistics(): {
33
+ endpoints: number;
34
+ webhooks: number;
35
+ connectors: number;
36
+ activeConnections: number;
37
+ totalRequests: number;
38
+ errorRate: number;
39
+ };
40
+ }
41
+ export declare function getAPIIntegration(): APIIntegration;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /**
3
+ * APIIntegration - Phase 4 API Integration & External Connectors
4
+ *
5
+ * Thin coordinator that composes three domain modules:
6
+ * - EndpointManager (api.instructions.routes) — endpoint configuration & rate-limiting
7
+ * - UsageManager (api.usage.routes) — request execution & monitoring
8
+ * - FeedbackManager (api.feedback.routes) — webhooks & external connectors
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.APIIntegration = void 0;
12
+ exports.getAPIIntegration = getAPIIntegration;
13
+ const api_instructions_routes_js_1 = require("../server/routes/api.instructions.routes.js");
14
+ const api_usage_routes_js_1 = require("../server/routes/api.usage.routes.js");
15
+ const api_feedback_routes_js_1 = require("../server/routes/api.feedback.routes.js");
16
+ class APIIntegration {
17
+ endpointMgr;
18
+ usageMgr;
19
+ feedbackMgr;
20
+ constructor() {
21
+ this.endpointMgr = new api_instructions_routes_js_1.EndpointManager();
22
+ this.usageMgr = new api_usage_routes_js_1.UsageManager(this.endpointMgr);
23
+ this.feedbackMgr = new api_feedback_routes_js_1.FeedbackManager(this.usageMgr);
24
+ this.startBackgroundTasks();
25
+ }
26
+ startBackgroundTasks() {
27
+ setInterval(() => { this.usageMgr.processRequestQueues(); }, 100);
28
+ setInterval(() => { this.endpointMgr.cleanupCache(); }, 60000);
29
+ setInterval(() => { this.endpointMgr.resetRateLimiters(); }, 60000);
30
+ setInterval(() => { this.feedbackMgr.performHealthChecks(); }, 30000);
31
+ }
32
+ // ── Endpoint management ──────────────────────────────────────────────────────────
33
+ async executeRequest(endpointId, data, overrides) {
34
+ return this.usageMgr.executeRequest(endpointId, data, overrides);
35
+ }
36
+ createEndpoint(endpoint) {
37
+ return this.endpointMgr.createEndpoint(endpoint);
38
+ }
39
+ getEndpoint(id) {
40
+ return this.endpointMgr.getEndpoint(id);
41
+ }
42
+ listEndpoints() {
43
+ return this.endpointMgr.listEndpoints();
44
+ }
45
+ updateEndpoint(id, updates) {
46
+ return this.endpointMgr.updateEndpoint(id, updates);
47
+ }
48
+ deleteEndpoint(id) {
49
+ return this.endpointMgr.deleteEndpoint(id);
50
+ }
51
+ getConfiguredEndpoints() {
52
+ return this.endpointMgr.getConfiguredEndpoints();
53
+ }
54
+ // ── Webhook management ───────────────────────────────────────────────────────────
55
+ createWebhook(webhook) {
56
+ return this.feedbackMgr.createWebhook(webhook);
57
+ }
58
+ async triggerWebhook(id, event, data) {
59
+ return this.feedbackMgr.triggerWebhook(id, event, data);
60
+ }
61
+ // ── Connector management ─────────────────────────────────────────────────────────
62
+ createConnector(connector) {
63
+ return this.feedbackMgr.createConnector(connector);
64
+ }
65
+ getConnectorStatus(id) {
66
+ return this.feedbackMgr.getConnectorStatus(id);
67
+ }
68
+ listConnectors() {
69
+ return this.feedbackMgr.listConnectors();
70
+ }
71
+ // ── Monitoring ───────────────────────────────────────────────────────────────────
72
+ onAPIEvent(callback) {
73
+ this.usageMgr.onAPIEvent(callback);
74
+ }
75
+ getAPIStatistics() {
76
+ const stats = this.feedbackMgr.getStats();
77
+ return {
78
+ endpoints: this.endpointMgr.endpoints.size,
79
+ webhooks: stats.webhookCount,
80
+ connectors: stats.connectorCount,
81
+ activeConnections: stats.activeConnections,
82
+ totalRequests: stats.totalRequests,
83
+ errorRate: stats.totalRequests > 0 ? stats.totalErrors / stats.totalRequests : 0
84
+ };
85
+ }
86
+ }
87
+ exports.APIIntegration = APIIntegration;
88
+ // Singleton instance
89
+ let apiIntegration = null;
90
+ function getAPIIntegration() {
91
+ if (!apiIntegration) {
92
+ apiIntegration = new APIIntegration();
93
+ }
94
+ return apiIntegration;
95
+ }