@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,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCHEMA_VERSION = void 0;
4
+ exports.migrateInstructionRecord = migrateInstructionRecord;
5
+ // Central schema version constant for instruction JSON files.
6
+ // Bump this when making a backward-incompatible on-disk schema change that
7
+ // requires a migration rewrite. Migration logic should detect older versions
8
+ // and transform + persist them once.
9
+ exports.SCHEMA_VERSION = '4';
10
+ // Helper function for review interval computation (matches ClassificationService logic)
11
+ function computeReviewIntervalDays(tier, requirement) {
12
+ // Shorter intervals for higher criticality
13
+ if (tier === 'P1' || requirement === 'mandatory' || requirement === 'critical')
14
+ return 30;
15
+ if (tier === 'P2')
16
+ return 60;
17
+ if (tier === 'P3')
18
+ return 90;
19
+ return 120;
20
+ }
21
+ // Migration hook for schema version upgrades
22
+ function migrateInstructionRecord(rec) {
23
+ const notes = [];
24
+ let changed = false;
25
+ const prevVersion = rec.schemaVersion || '1';
26
+ // v1 → v2 migration: Add reviewIntervalDays if missing
27
+ if (prevVersion === '1' && !rec.reviewIntervalDays) {
28
+ const tier = rec.priorityTier || 'P4';
29
+ const requirement = rec.requirement || 'optional';
30
+ rec.reviewIntervalDays = computeReviewIntervalDays(tier, requirement);
31
+ changed = true;
32
+ notes.push('added reviewIntervalDays from tier+requirement');
33
+ }
34
+ // v2 → v3 migration: Introduce primaryCategory (first category if present)
35
+ if (prevVersion === '2') {
36
+ const cats = Array.isArray(rec.categories) ? rec.categories.filter(c => typeof c === 'string' && c.trim()) : [];
37
+ if (!('primaryCategory' in rec) && cats.length) {
38
+ rec.primaryCategory = cats[0];
39
+ changed = true;
40
+ notes.push('added primaryCategory from first categories element');
41
+ }
42
+ if (('primaryCategory' in rec) && cats.length) {
43
+ const pc = rec.primaryCategory;
44
+ if (typeof pc === 'string' && pc && !cats.includes(pc)) {
45
+ // ensure consistency: inject primaryCategory into categories array
46
+ cats.unshift(pc);
47
+ rec.categories = Array.from(new Set(cats));
48
+ changed = true;
49
+ notes.push('normalized categories to include primaryCategory');
50
+ }
51
+ }
52
+ }
53
+ // v3 → v4 migration: Schema now accepts sourceWorkspace & createdByAgent at root level.
54
+ // No data transforms needed — fields are optional. Just version bump.
55
+ if (prevVersion === '3') {
56
+ // no-op: new optional fields (sourceWorkspace, createdByAgent) already valid if present
57
+ notes.push('v3→v4: added sourceWorkspace & createdByAgent to schema (optional)');
58
+ }
59
+ // Clean optional nullable fields that upstream tools may emit as null
60
+ // (riskScore must be number or absent — null causes AJV rejection)
61
+ if ('riskScore' in rec && rec.riskScore === null) {
62
+ delete rec.riskScore;
63
+ changed = true;
64
+ notes.push('removed null riskScore (optional field)');
65
+ }
66
+ // Ensure contentType field (backward compatibility default)
67
+ if (!('contentType' in rec) || !rec.contentType) {
68
+ rec.contentType = 'instruction';
69
+ changed = true;
70
+ notes.push('added contentType with default value "instruction"');
71
+ }
72
+ // Ensure all required fields are present (defensive migration)
73
+ const requiredDefaults = {
74
+ categories: [],
75
+ priority: 50,
76
+ audience: 'all',
77
+ requirement: 'optional'
78
+ };
79
+ for (const [key, defaultValue] of Object.entries(requiredDefaults)) {
80
+ if (!(key in rec) || rec[key] === undefined || rec[key] === null) {
81
+ rec[key] = defaultValue;
82
+ changed = true;
83
+ notes.push(`added required field ${key} with default value`);
84
+ }
85
+ }
86
+ // Update schema version if changed
87
+ if (rec.schemaVersion !== exports.SCHEMA_VERSION) {
88
+ rec.schemaVersion = exports.SCHEMA_VERSION;
89
+ changed = true;
90
+ notes.push(`schemaVersion updated ${prevVersion}→${exports.SCHEMA_VERSION}`);
91
+ }
92
+ return { changed, notes: notes.length ? notes : undefined };
93
+ }
package/package.json ADDED
@@ -0,0 +1,134 @@
1
+ {
2
+ "name": "@jagilber-org/index-server",
3
+ "version": "1.19.1",
4
+ "description": "MCP instruction indexing server for AI assistant governance — search, CRUD, schema validation, usage tracking, and cross-repo knowledge promotion.",
5
+ "publishConfig": {
6
+ "registry": "https://registry.npmjs.org/",
7
+ "access": "public"
8
+ },
9
+ "type": "commonjs",
10
+ "engines": {
11
+ "node": ">=22"
12
+ },
13
+ "files": [
14
+ "dist/",
15
+ "!dist/tests/",
16
+ "schemas/",
17
+ "templates/",
18
+ "scripts/copy-dashboard-assets.mjs",
19
+ "scripts/setup-hooks.cjs",
20
+ "README.md",
21
+ "LICENSE",
22
+ "CHANGELOG.md",
23
+ "CONTRIBUTING.md",
24
+ "SECURITY.md",
25
+ "CODE_OF_CONDUCT.md"
26
+ ],
27
+ "main": "dist/server/index-server.js",
28
+ "bin": {
29
+ "index-server": "dist/server/index-server.js"
30
+ },
31
+ "scripts": {
32
+ "instructions:normalize": "node scripts/normalize-instructions.js",
33
+ "build": "tsc -p tsconfig.json && node scripts/copy-dashboard-assets.mjs",
34
+ "start": "node dist/server/index-server.js",
35
+ "start-minimal": "node dist/minimal/index.js",
36
+ "prestart": "npm run build",
37
+ "pretest": "node scripts/pretest-build-or-skip.mjs",
38
+ "dev": "node --watch dist/server/index-server.js",
39
+ "build:watch": "tsc -w -p tsconfig.json",
40
+ "check:dist": "npm run build && git diff --quiet --exit-code dist || (echo 'Dist out of date. Run npm run build and commit generated files.' && exit 1)",
41
+ "coverage": "vitest run --coverage",
42
+ "sbom": "npx syft packages dir:. -o json > sbom.json || echo 'Syft not installed'",
43
+ "coverage:core": "cross-env FAST_COVERAGE=1 vitest run --coverage --reporter=dot --reporter=json",
44
+ "coverage:ci": "cross-env COVERAGE_HARD_MIN=50 COVERAGE_TARGET=60 npm run coverage:core && node scripts/coverage-alias.js && node scripts/check-coverage.mjs",
45
+ "manifest:generate": "node scripts/generate-manifest.mjs",
46
+ "contract:tools": "node scripts/generate-tools-snapshot.mjs",
47
+ "verify:manifest": "node scripts/verify-manifest.mjs",
48
+ "test": "vitest run",
49
+ "test:watch": "vitest",
50
+ "test:contracts": "vitest run src/tests/contractSchemas.spec.ts",
51
+ "test:diag": "cross-env INDEX_SERVER_HEALTH_MIXED_DIAG=1 vitest run src/tests/handshakeFlakeRepro.spec.ts src/tests/healthMixedReproLoop.spec.ts src/tests/healthHangExploration.spec.ts",
52
+ "test:stress": "cross-env INDEX_SERVER_STRESS_DIAG=1 vitest run",
53
+ "test:stress:focus": "cross-env INDEX_SERVER_STRESS_DIAG=1 vitest run src/tests/handshakeFlakeRepro.spec.ts src/tests/healthMixedReproLoop.spec.ts src/tests/healthHangExploration.spec.ts src/tests/healthMultiProcessStress.spec.ts src/tests/dispatcherStress.spec.ts src/tests/dispatcherFlakeStress.spec.ts src/tests/concurrencyFuzz.spec.ts",
54
+ "test:property": "vitest run src/tests/concurrencyFuzz.spec.ts",
55
+ "typecheck": "tsc -p tsconfig.json --noEmit",
56
+ "lint": "eslint . --ext .ts",
57
+ "lint:instructions": "node scripts/lint-instructions.mjs",
58
+ "format": "prettier --write .",
59
+ "prepare": "node scripts/setup-hooks.cjs",
60
+ "prepublishOnly": "npm run build && npm run typecheck",
61
+ "scan:security": "node scripts/security-scan.mjs",
62
+ "release:patch": "node scripts/bump-version.mjs patch",
63
+ "release:minor": "node scripts/bump-version.mjs minor",
64
+ "release:major": "node scripts/bump-version.mjs major",
65
+ "perf": "ts-node src/perf/benchmark.ts",
66
+ "perf:baseline": "npm run build && node scripts/perf-baseline.mjs",
67
+ "perf:drift": "npm run perf:baseline && node scripts/perf-compare.mjs",
68
+ "perf:trend": "node scripts/perf-trend.mjs",
69
+ "perf:summary": "node scripts/perf-summary-md.mjs",
70
+ "perf:ci": "npm run perf:drift && npm run perf:trend && npm run perf:summary",
71
+ "guard:env": "ts-node scripts/enforce-config-usage.ts",
72
+ "build:verify": "npm run typecheck && npm run build && npm run test:fast && npm run guard:env && npm run guard:decl",
73
+ "test:unit": "vitest run --config vitest.config.unit.ts",
74
+ "test:unit:watch": "vitest --config vitest.config.unit.ts",
75
+ "test:fast": "node scripts/test-fast.mjs",
76
+ "test:slow": "node scripts/test-slow.mjs",
77
+ "docs:tools": "node scripts/generate-tools-doc.cjs",
78
+ "health:check": "node scripts/health-check.mjs",
79
+ "guard:skips": "node scripts/check-no-skips.mjs",
80
+ "guard:baseline": "node scripts/guard-baseline.mjs",
81
+ "baseline:sentinel:update": "node scripts/baseline-sentinel.mjs update",
82
+ "baseline:sentinel:verify": "node scripts/baseline-sentinel.mjs verify",
83
+ "guard:decl": "node scripts/guard-declarations.mjs",
84
+ "guard:decl:fix": "node scripts/purge-extra-decls.mjs && node scripts/guard-declarations.mjs",
85
+ "pw:init": "npx playwright install --with-deps chromium firefox webkit",
86
+ "pw:test": "playwright test",
87
+ "playwright:start-server": "cross-env INDEX_SERVER_DASHBOARD=1 node dist/server/index-server.js",
88
+ "pw:baseline": "node scripts/run-playwright.mjs --grep @baseline --update",
89
+ "pw:drift": "node scripts/run-playwright.mjs --grep @baseline",
90
+ "pw:drift:report": "npm run pw:drift && node scripts/generate-drift-report.mjs",
91
+ "pw:drift:ci": "cross-env DRIFT_BROWSERS=chromium,firefox npm run pw:drift:report",
92
+ "dash:seed": "node scripts/seed-dashboard-fixtures.mjs"
93
+ },
94
+ "devDependencies": {
95
+ "@playwright/test": "^1.58.2",
96
+ "@types/adm-zip": "^0.5.8",
97
+ "@types/express": "^5.0.6",
98
+ "@types/node": "^20.19.37",
99
+ "@types/ws": "^8.18.1",
100
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
101
+ "@typescript-eslint/parser": "^7.0.0",
102
+ "@vitest/coverage-v8": "^3.2.4",
103
+ "cross-env": "^7.0.3",
104
+ "eslint": "^8.57.0",
105
+ "fast-check": "^3.17.0",
106
+ "prettier": "^3.8.1",
107
+ "ts-node": "^10.9.2",
108
+ "typescript": "^5.9.3",
109
+ "vitest": "^3.2.4"
110
+ },
111
+ "dependencies": {
112
+ "@huggingface/transformers": "^3.8.1",
113
+ "@mermaid-js/layout-elk": "^0.2.1",
114
+ "@modelcontextprotocol/sdk": "^1.28.0",
115
+ "adm-zip": "^0.5.17",
116
+ "ajv": "^8.18.0",
117
+ "ajv-formats": "^2.1.1",
118
+ "express": "^5.2.1",
119
+ "express-rate-limit": "^8.3.2",
120
+ "ws": "^8.19.0",
121
+ "zod": "^3.23.8"
122
+ },
123
+ "optionalScripts": {},
124
+ "promptReviewCriteriaVersion": "1.0.0",
125
+ "license": "MIT",
126
+ "repository": {
127
+ "type": "git",
128
+ "url": "https://github.com/jagilber-org/index-server.git"
129
+ },
130
+ "bugs": {
131
+ "url": "https://github.com/jagilber-org/index-server/issues"
132
+ },
133
+ "homepage": "https://github.com/jagilber-org/index-server#readme"
134
+ }
@@ -0,0 +1,13 @@
1
+ # Schemas
2
+
3
+ Authoritative JSON Schemas for persisted and exchanged objects.
4
+
5
+ | Schema | Description |
6
+ |--------|-------------|
7
+ | `instruction.schema.json` | Canonical instruction entry persisted on disk. |
8
+ | `feedback-entry.schema.json` | Feedback subsystem persistent record. |
9
+ | `usage-event.schema.json` | Single instruction usage event (pre-aggregation). |
10
+ | `usage-batch.schema.json` | Batch of usage events flushed together. |
11
+ | `usage-buckets.schema.json` | Rotating temporal usage counters container. |
12
+
13
+ All schemas draft-07. Internal references use relative `$ref` where applicable.
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft-07/schema#",
3
+ "$id": "https://example.local/schemas/feedback-entry.schema.json",
4
+ "title": "FeedbackEntry",
5
+ "type": "object",
6
+ "description": "Persistent feedback record stored by feedback tools.",
7
+ "required": ["id","type","severity","status","description","createdAt"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": { "type": "string", "pattern": "^[a-f0-9]{12,64}$" },
11
+ "title": { "type": "string", "minLength": 1, "maxLength": 200 },
12
+ "type": { "type": "string", "enum": ["issue","status","security","feature-request","bug-report","performance","usability","other"] },
13
+ "severity": { "type": "string", "enum": ["low","medium","high","critical"] },
14
+ "status": { "type": "string", "enum": ["new","acknowledged","in-progress","resolved","closed"] },
15
+ "description": { "type": "string", "minLength": 1, "maxLength": 10000 },
16
+ "context": { "type": "object", "additionalProperties": true },
17
+ "tags": { "type": "array", "items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-_]{0,30}$" }, "uniqueItems": true, "maxItems": 10 },
18
+ "metadata": { "type": "object", "additionalProperties": true },
19
+ "createdAt": { "type": "string", "format": "date-time" },
20
+ "updatedAt": { "type": "string", "format": "date-time" },
21
+ "createdBy": { "type": "string" },
22
+ "updatedBy": { "type": "string" },
23
+ "resolution": { "type": "string", "maxLength": 4000 },
24
+ "resolutionAt": { "type": "string", "format": "date-time" },
25
+ "_internal": { "type": "object", "additionalProperties": true, "description": "Internal system fields (rotation, lineage)." }
26
+ }
27
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft-07/schema#",
3
+ "$id": "https://example.com/schemas/graph-export-v2.schema.json",
4
+ "title": "Graph Export Response (Schema v2)",
5
+ "type": "object",
6
+ "required": ["meta","nodes","edges"],
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "meta": {
10
+ "type": "object",
11
+ "required": ["graphSchemaVersion","nodeCount","edgeCount"],
12
+ "properties": {
13
+ "graphSchemaVersion": {"const": 2},
14
+ "nodeCount": {"type": "number"},
15
+ "edgeCount": {"type": "number"},
16
+ "truncated": {"type": "boolean"},
17
+ "notes": {"type": "array", "items": {"type": "string"}}
18
+ },
19
+ "additionalProperties": false
20
+ },
21
+ "nodes": {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "object",
25
+ "required": ["id"],
26
+ "properties": {
27
+ "id": {"type": "string"},
28
+ "nodeType": {"type": "string", "enum": ["instruction","category"]},
29
+ "categories": {"type": "array", "items": {"type": "string"}},
30
+ "primaryCategory": {"type": "string"},
31
+ "priority": {"type": "number"},
32
+ "priorityTier": {"type": "string"},
33
+ "requirement": {"type": "string"},
34
+ "owner": {"type": "string"},
35
+ "status": {"type": "string"},
36
+ "createdAt": {"type": "string"},
37
+ "updatedAt": {"type": "string"},
38
+ "usageCount": {"type": "number"}
39
+ },
40
+ "additionalProperties": false
41
+ }
42
+ },
43
+ "edges": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "required": ["from","to","type"],
48
+ "properties": {
49
+ "from": {"type": "string"},
50
+ "to": {"type": "string"},
51
+ "type": {"type": "string", "enum": ["primary","category","belongs"]},
52
+ "weight": {"type": "number"}
53
+ },
54
+ "additionalProperties": false
55
+ }
56
+ },
57
+ "dot": {"type": "string"},
58
+ "mermaid": {"type": "string"}
59
+ }
60
+ }