@devilsdev/rag-pipeline-utils 2.1.12 → 2.2.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 (113) hide show
  1. package/.ragrc.schema.json +218 -0
  2. package/README.md +178 -550
  3. package/bin/cli.js +8 -14
  4. package/contracts/reranker-contract.json +69 -0
  5. package/dist/index.d.ts +237 -0
  6. package/dist/index.mjs +22 -7
  7. package/package.json +18 -13
  8. package/src/ai/adaptive-retrieval.js +191 -0
  9. package/src/ai/federated-learning.js +214 -0
  10. package/src/ai/federation/federated-learning-coordinator.js +345 -0
  11. package/src/ai/federation.js +76 -0
  12. package/src/ai/index-fixed.js +509 -0
  13. package/src/ai/index.js +33 -0
  14. package/src/ai/model-trainer.js +217 -0
  15. package/src/ai/model-training.js +205 -0
  16. package/src/ai/module-template.js +37 -0
  17. package/src/ai/multimodal/multi-modal-processor.js +345 -0
  18. package/src/ai/multimodal-processing.js +268 -0
  19. package/src/ai/multimodal.js +71 -0
  20. package/src/ai/orchestrator.js +70 -0
  21. package/src/ai/retrieval/adaptive-retrieval-engine.js +398 -0
  22. package/src/ai/retrieval-engine.js +69 -0
  23. package/src/ai/training/model-training-orchestrator.js +228 -0
  24. package/src/ci/workflow-analyzer.js +71 -0
  25. package/src/cli/commands/ai-ml.js +967 -0
  26. package/src/cli/commands/docs.js +228 -0
  27. package/src/cli/commands/dx.js +538 -0
  28. package/src/cli/commands/plugin-hub.js +875 -0
  29. package/src/cli/doctor-command.js +639 -0
  30. package/src/cli/enhanced-cli-commands.js +945 -0
  31. package/src/cli/interactive-wizard.js +997 -0
  32. package/src/cli/plugin-marketplace-commands.js +869 -0
  33. package/src/cli.js +17 -0
  34. package/src/config/enhanced-ragrc-schema.js +632 -0
  35. package/src/config/load-config.js +54 -0
  36. package/src/config/load-plugin-config.js +69 -0
  37. package/src/config/normalize-config.js +105 -0
  38. package/src/config/schema-validator.js +315 -0
  39. package/src/config/validate-plugin-schema.js +35 -0
  40. package/src/config/validate-schema.js +113 -0
  41. package/src/contracts/plugin-contracts.js +33 -0
  42. package/src/core/create-pipeline.js +99 -0
  43. package/src/core/dependency-injection.js +242 -0
  44. package/src/core/observability/event-logger.js +241 -0
  45. package/src/core/observability/instrumented-pipeline.js +609 -0
  46. package/src/core/observability/metrics.js +497 -0
  47. package/src/core/observability/tracing.js +781 -0
  48. package/src/core/performance/benchmark.js +516 -0
  49. package/src/core/performance/parallel-processor.js +240 -0
  50. package/src/core/performance/streaming-safeguards.js +620 -0
  51. package/src/core/pipeline-factory.js +60 -0
  52. package/src/core/plugin-contracts.js +89 -0
  53. package/src/core/plugin-marketplace/plugin-metadata.js +485 -0
  54. package/src/core/plugin-marketplace/plugin-publisher.js +574 -0
  55. package/src/core/plugin-marketplace/plugin-registry-format.js +419 -0
  56. package/src/core/plugin-marketplace/version-resolver.js +61 -0
  57. package/src/core/plugin-registry.js +294 -0
  58. package/src/dag/dag-engine.js +954 -0
  59. package/src/dag/dag-node.js +76 -0
  60. package/src/dag/enhanced-dag-engine.js +822 -0
  61. package/src/dx/index.js +40 -0
  62. package/src/dx/integration-templates.js +665 -0
  63. package/src/dx/performance-profiler.js +968 -0
  64. package/src/dx/realtime-debugger.js +755 -0
  65. package/src/dx/visual-pipeline-builder.js +578 -0
  66. package/src/ecosystem/plugin-analytics-dashboard.js +778 -0
  67. package/src/ecosystem/plugin-certification.js +580 -0
  68. package/src/ecosystem/plugin-hub.js +821 -0
  69. package/src/enterprise/audit-logging.js +967 -0
  70. package/src/enterprise/data-governance.js +408 -0
  71. package/src/enterprise/multi-tenancy.js +496 -0
  72. package/src/enterprise/sso-integration.js +1030 -0
  73. package/src/evaluate/evaluator.js +52 -0
  74. package/src/evaluate/scoring.js +91 -0
  75. package/src/index.js +67 -0
  76. package/src/ingest.js +59 -0
  77. package/src/loader/csv-loader.js +38 -0
  78. package/src/loader/directory-loader.js +48 -0
  79. package/src/loader/html-loader.js +62 -0
  80. package/src/loader/markdown-loader.js +67 -0
  81. package/src/mocks/openai-embedder.js +119 -0
  82. package/src/mocks/openai-llm.js +77 -0
  83. package/src/mocks/pdf-loader.js +21 -0
  84. package/src/mocks/pinecone-retriever.js +106 -0
  85. package/src/observability/audit-logger.js +758 -0
  86. package/src/observability/dashboard-config.json +675 -0
  87. package/src/observability/event-logger.js +310 -0
  88. package/src/observability/metrics.js +691 -0
  89. package/src/observability/security-monitor.js +830 -0
  90. package/src/observability/slo-monitor.js +319 -0
  91. package/src/observability/telemetry.js +686 -0
  92. package/src/pipeline/pipeline.js +18 -0
  93. package/src/plugins/sample-embedder.js +53 -0
  94. package/src/plugins/sample-llm.js +30 -0
  95. package/src/plugins/sample-loader.js +24 -0
  96. package/src/plugins/sample-retriever.js +84 -0
  97. package/src/query.js +117 -0
  98. package/src/reranker/llm-reranker.js +111 -0
  99. package/src/scripts/script-utilities.js +36 -0
  100. package/src/security/plugin-sandbox.js +586 -0
  101. package/src/security/plugin-signature-verifier.js +414 -0
  102. package/src/security/validator.js +36 -0
  103. package/src/utils/ci/diagnostic-reporter.js +57 -0
  104. package/src/utils/logger.js +211 -0
  105. package/src/utils/performance-monitor.js +561 -0
  106. package/src/utils/plugin-scaffolder.js +447 -0
  107. package/src/utils/rate-limiter.js +244 -0
  108. package/src/utils/retry-policy.js +443 -0
  109. package/src/utils/retry.js +107 -0
  110. package/src/utils/safe-expression-evaluator.js +579 -0
  111. package/src/utils/secure-logging.js +338 -0
  112. package/src/utils/structured-logger.js +388 -0
  113. package/src/utils/validate-plugin-contract.js +42 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Version: 0.1.0
3
+ * File: /src/mocks/pdf-loader.js
4
+ * Description: Mock implementation of a PDF document loader
5
+ * Author: Ali Kahwaji
6
+ */
7
+
8
+ class PDFLoader {
9
+ /**
10
+ * Loads a mock PDF file and returns an array of chunked content.
11
+ * @param {string} _filePath - Path to the PDF file
12
+ * @returns {Promise<Array<{ chunk: () => string[] }>>}
13
+ */
14
+ async load(_filePath) {
15
+ return [{ chunk: () => [`Test loaded: ${_filePath}`] }];
16
+ }
17
+ }
18
+
19
+ // Default export
20
+
21
+ module.exports = PDFLoader;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Version: 0.1.0
3
+ * File: /src/mocks/pinecone-retriever.js
4
+ * Description: Mock implementation of a Pinecone retriever
5
+ * Author: Ali Kahwaji
6
+ */
7
+
8
+ class PineconeRetriever {
9
+ constructor(options = {}) {
10
+ this.options = options;
11
+ this.storage = [];
12
+
13
+ // Configurable batch size from environment or options
14
+ this.batchSize =
15
+ parseInt(process.env.RAG_RETRIEVER_BATCH_SIZE) ||
16
+ options.batchSize ||
17
+ 1000; // Default batch size for Pinecone
18
+ }
19
+
20
+ /**
21
+ * Mocks vector storage with batch processing
22
+ * @param {Array} vectors - Vectors to store
23
+ */
24
+ async store(vectors = []) {
25
+ if (!Array.isArray(vectors) || vectors.length === 0) {
26
+ return true;
27
+ }
28
+
29
+ // Process storage in batches for better memory management
30
+ for (let i = 0; i < vectors.length; i += this.batchSize) {
31
+ const batch = vectors.slice(i, i + this.batchSize);
32
+ this.storage.push(...batch);
33
+
34
+ // Optional progress callback
35
+ if (this.options.onProgress) {
36
+ this.options.onProgress({
37
+ processed: Math.min(i + this.batchSize, vectors.length),
38
+ total: vectors.length,
39
+ stage: "storing",
40
+ });
41
+ }
42
+
43
+ // Simulate network delay for large batches
44
+ if (vectors.length > this.batchSize) {
45
+ await new Promise((resolve) => setTimeout(resolve, 20));
46
+ }
47
+ }
48
+
49
+ return true;
50
+ }
51
+
52
+ /**
53
+ * Returns mock retrieved documents with batch processing for large result sets
54
+ * @param {Array} queryVector - Query vector
55
+ * @param {number} k - Number of results to return
56
+ * @returns {Promise<Array<{ id: string, text: string, metadata: object }>>}
57
+ */
58
+ async retrieve(queryVector = [], k = 5) {
59
+ const mockResults = [
60
+ { id: "a", text: "Chunk about pine trees", metadata: {} },
61
+ { id: "b", text: "Chunk about vectors", metadata: {} },
62
+ { id: "c", text: "Chunk about databases", metadata: {} },
63
+ { id: "d", text: "Chunk about machine learning", metadata: {} },
64
+ { id: "e", text: "Chunk about embeddings", metadata: {} },
65
+ ];
66
+
67
+ // Extend mock results for large k values
68
+ const results = [];
69
+ for (let i = 0; i < k; i++) {
70
+ const baseResult = mockResults[i % mockResults.length];
71
+ results.push({
72
+ ...baseResult,
73
+ id: `${baseResult.id}_${Math.floor(i / mockResults.length)}`,
74
+ text: `${baseResult.text} (result ${i + 1})`,
75
+ });
76
+ }
77
+
78
+ // For large result sets, process in batches
79
+ if (k > this.batchSize) {
80
+ const batchedResults = [];
81
+ for (let i = 0; i < results.length; i += this.batchSize) {
82
+ const batch = results.slice(i, i + this.batchSize);
83
+ batchedResults.push(...batch);
84
+
85
+ // Optional progress callback
86
+ if (this.options.onProgress) {
87
+ this.options.onProgress({
88
+ processed: Math.min(i + this.batchSize, results.length),
89
+ total: results.length,
90
+ stage: "retrieving",
91
+ });
92
+ }
93
+
94
+ // Simulate network delay for large retrievals
95
+ await new Promise((resolve) => setTimeout(resolve, 10));
96
+ }
97
+ return batchedResults;
98
+ }
99
+
100
+ return results;
101
+ }
102
+ }
103
+
104
+ // Default export
105
+
106
+ module.exports = PineconeRetriever;