@devilsdev/rag-pipeline-utils 2.4.5 → 2.6.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 (258) hide show
  1. package/.ragrc.schema.json +83 -192
  2. package/CHANGELOG.md +431 -0
  3. package/README.md +418 -117
  4. package/SECURITY.md +5 -5
  5. package/dist/experimental.cjs +2 -0
  6. package/dist/experimental.d.ts +1 -0
  7. package/dist/experimental.mjs +5 -0
  8. package/dist/index.cjs +6442 -1355
  9. package/dist/index.d.ts +129 -2
  10. package/dist/index.mjs +1 -1
  11. package/dist/testing.cjs +2 -0
  12. package/dist/testing.d.ts +1 -0
  13. package/dist/testing.mjs +5 -0
  14. package/dist/types/adapters/ai-sdk.d.ts +53 -0
  15. package/dist/types/agentic/agentic-pipeline.d.ts +103 -0
  16. package/dist/types/agentic/iterative-retriever.d.ts +85 -0
  17. package/dist/types/agentic/query-planner.d.ts +145 -0
  18. package/dist/types/agentic/self-critique.d.ts +45 -0
  19. package/dist/types/ai/adaptive-retrieval.d.ts +44 -0
  20. package/dist/types/ai/federation/federated-learning-coordinator.d.ts +62 -0
  21. package/dist/types/ai/multimodal-processing.d.ts +32 -0
  22. package/dist/types/ai/multimodal.d.ts +39 -0
  23. package/dist/types/ai/retrieval-engine.d.ts +37 -0
  24. package/dist/types/ai/training/model-training-orchestrator.d.ts +31 -0
  25. package/dist/types/cache/component-keys.d.ts +7 -0
  26. package/dist/types/cache/memory-cache.d.ts +54 -0
  27. package/dist/types/cache/pipeline-cache.d.ts +66 -0
  28. package/dist/types/cache/redis-cache.d.ts +46 -0
  29. package/dist/types/chunking/chunking-engine.d.ts +70 -0
  30. package/dist/types/chunking/strategies/fixed-size.d.ts +17 -0
  31. package/dist/types/chunking/strategies/recursive.d.ts +20 -0
  32. package/dist/types/chunking/strategies/semantic.d.ts +19 -0
  33. package/dist/types/chunking/strategies/sentence.d.ts +13 -0
  34. package/dist/types/chunking/strategies/structure-aware.d.ts +19 -0
  35. package/dist/types/citation/citation-tracker.d.ts +64 -0
  36. package/dist/types/citation/hallucination-detector.d.ts +40 -0
  37. package/dist/types/citation/source-mapper.d.ts +37 -0
  38. package/dist/types/connectors/anthropic-connector.d.ts +97 -0
  39. package/dist/types/connectors/base-connector.d.ts +87 -0
  40. package/dist/types/connectors/cohere-connector.d.ts +94 -0
  41. package/dist/types/connectors/connector-utils.d.ts +110 -0
  42. package/dist/types/connectors/local-embedder.d.ts +95 -0
  43. package/dist/types/connectors/memory-retriever.d.ts +99 -0
  44. package/dist/types/connectors/ollama-connector.d.ts +115 -0
  45. package/dist/types/connectors/openai-connector.d.ts +129 -0
  46. package/dist/types/connectors/rag-prompt.d.ts +40 -0
  47. package/dist/types/core/create-pipeline.d.ts +8 -0
  48. package/dist/types/core/plugin-registry.d.ts +136 -0
  49. package/dist/types/core/stage-contracts.d.ts +36 -0
  50. package/dist/types/core/validate-plugin.d.ts +45 -0
  51. package/dist/types/cost/cost-calculator.d.ts +152 -0
  52. package/dist/types/cost/cost-tracker.d.ts +126 -0
  53. package/dist/types/cost/token-budget.d.ts +110 -0
  54. package/dist/types/dag/core/error-context.d.ts +239 -0
  55. package/dist/types/dag/core/execution-scheduler.d.ts +191 -0
  56. package/dist/types/dag/core/topology-validation.d.ts +226 -0
  57. package/dist/types/dag/dag-engine.d.ts +156 -0
  58. package/dist/types/dag/dag-node.d.ts +37 -0
  59. package/dist/types/dashboard/dashboard-generator.d.ts +127 -0
  60. package/dist/types/dashboard/metrics-aggregator.d.ts +218 -0
  61. package/dist/types/debug/execution-tracer.d.ts +57 -0
  62. package/dist/types/debug/trace-inspector.d.ts +31 -0
  63. package/dist/types/ecosystem/plugin-certification.d.ts +169 -0
  64. package/dist/types/enterprise/data-governance.d.ts +203 -0
  65. package/dist/types/enterprise/multi-tenancy.d.ts +137 -0
  66. package/dist/types/enterprise/sso-integration.d.ts +420 -0
  67. package/dist/types/evaluate/context-metrics.d.ts +55 -0
  68. package/dist/types/evaluate/faithfulness.d.ts +41 -0
  69. package/dist/types/evaluate/groundedness.d.ts +60 -0
  70. package/dist/types/evaluate/pipeline-evaluator.d.ts +88 -0
  71. package/dist/types/evaluate/relevance.d.ts +21 -0
  72. package/dist/types/evaluate/scoring.d.ts +123 -0
  73. package/dist/types/evaluate/semantic-similarity.d.ts +14 -0
  74. package/dist/types/experimental.d.ts +15 -0
  75. package/dist/types/graph/entity-extractor.d.ts +84 -0
  76. package/dist/types/graph/graph-index.d.ts +49 -0
  77. package/dist/types/graph/graph-retriever.d.ts +81 -0
  78. package/dist/types/graph/knowledge-graph.d.ts +129 -0
  79. package/dist/types/grounding/check-answer.d.ts +101 -0
  80. package/dist/types/guardrails/guardrails-pipeline.d.ts +63 -0
  81. package/dist/types/guardrails/injection-detector.d.ts +47 -0
  82. package/dist/types/guardrails/post-generation-guard.d.ts +61 -0
  83. package/dist/types/guardrails/pre-retrieval-guard.d.ts +64 -0
  84. package/dist/types/guardrails/retrieval-guard.d.ts +57 -0
  85. package/dist/types/mcp/mcp-server.d.ts +85 -0
  86. package/dist/types/mcp/mcp-tool-builder.d.ts +55 -0
  87. package/dist/types/reranker/cascade-reranker.d.ts +40 -0
  88. package/dist/types/reranker/embedding-reranker.d.ts +77 -0
  89. package/dist/types/reranker/scoring-reranker.d.ts +41 -0
  90. package/dist/types/retrieval/bm25-search.d.ts +43 -0
  91. package/dist/types/retrieval/file-vector-store.d.ts +99 -0
  92. package/dist/types/retrieval/hybrid-retriever.d.ts +35 -0
  93. package/dist/types/retrieval/rank-fusion.d.ts +10 -0
  94. package/dist/types/security/jwt-config.d.ts +80 -0
  95. package/dist/types/security/jwt-validator.d.ts +195 -0
  96. package/dist/types/security/plugin-sandbox.d.ts +158 -0
  97. package/dist/types/security/plugin-signature-verifier.d.ts +139 -0
  98. package/dist/types/security/validator.d.ts +5 -0
  99. package/dist/types/streaming/embedding-stream.d.ts +65 -0
  100. package/dist/types/streaming/sse-adapter.d.ts +59 -0
  101. package/dist/types/streaming/stream-router.d.ts +88 -0
  102. package/dist/types/streaming/streaming-embedder.d.ts +99 -0
  103. package/dist/types/streaming/websocket-adapter.d.ts +71 -0
  104. package/dist/types/templates/scaffold.d.ts +55 -0
  105. package/dist/types/templates/template-registry.d.ts +63 -0
  106. package/dist/types/testing.d.ts +168 -0
  107. package/dist/types/utils/embed-query.d.ts +20 -0
  108. package/dist/types/utils/logger.d.ts +50 -0
  109. package/dist/types/utils/rate-limiter.d.ts +66 -0
  110. package/dist/types/utils/retry.d.ts +27 -0
  111. package/dist/types/utils/run-abort.d.ts +34 -0
  112. package/dist/types/utils/secure-logging.d.ts +51 -0
  113. package/dist/types/utils/structured-logger.d.ts +126 -0
  114. package/package.json +72 -33
  115. package/src/adapters/ai-sdk.js +215 -0
  116. package/src/agentic/agentic-pipeline.js +75 -7
  117. package/src/agentic/iterative-retriever.js +47 -10
  118. package/src/agentic/query-planner.js +329 -78
  119. package/src/cache/component-keys.js +38 -0
  120. package/src/cache/memory-cache.js +87 -0
  121. package/src/cache/pipeline-cache.js +260 -0
  122. package/src/cache/redis-cache.js +83 -0
  123. package/src/citation/citation-tracker.js +6 -4
  124. package/src/citation/hallucination-detector.js +2 -2
  125. package/src/citation/source-mapper.js +15 -28
  126. package/src/cli/commands/ai.js +106 -0
  127. package/src/cli/commands/plugin-hub/event-handlers.js +6 -0
  128. package/src/cli/commands/plugin-hub/hub-commands.js +0 -74
  129. package/src/cli/commands/plugin-hub/local-commands.js +143 -0
  130. package/src/cli/commands/plugin-hub.js +114 -49
  131. package/src/cli/diagnostics/config-checker.js +76 -63
  132. package/src/cli/diagnostics/environment-checker.js +62 -31
  133. package/src/cli/diagnostics/plugin-checker.js +36 -89
  134. package/src/cli/doctor-command.js +39 -5
  135. package/src/cli/enhanced-cli-commands.js +104 -233
  136. package/src/cli/handlers/ai-handler.js +364 -0
  137. package/src/cli/handlers/diagnostics-handler.js +78 -31
  138. package/src/cli/handlers/ingest-handler.js +28 -22
  139. package/src/cli/handlers/init-handler.js +148 -25
  140. package/src/cli/handlers/query-handler.js +203 -25
  141. package/src/cli/handlers/run-handler.js +16 -167
  142. package/src/cli/handlers/serve-handler.js +60 -0
  143. package/src/cli/services/bench-stats.js +54 -0
  144. package/src/cli/services/benchmark.js +161 -0
  145. package/src/cli/services/feedback.js +155 -0
  146. package/src/cli/services/instrument.js +83 -0
  147. package/src/cli/services/rag-service.js +361 -0
  148. package/src/cli/shared/cli-utils.js +24 -7
  149. package/src/cli/shared/config-context.js +21 -0
  150. package/src/cli/wizard/config-builder.js +81 -0
  151. package/src/cli/wizard/init-wizard.js +602 -0
  152. package/src/config/component-factory.js +125 -0
  153. package/src/config/enhanced-ragrc-schema.js +0 -2
  154. package/src/config/load-config.js +29 -10
  155. package/src/config/load-plugin-config.js +46 -2
  156. package/src/config/validate-schema.js +4 -1
  157. package/src/connectors/anthropic-connector.js +115 -57
  158. package/src/connectors/base-connector.js +74 -19
  159. package/src/connectors/cohere-connector.js +108 -34
  160. package/src/connectors/connector-utils.js +302 -0
  161. package/src/connectors/local-embedder.js +63 -5
  162. package/src/connectors/memory-retriever.js +125 -14
  163. package/src/connectors/ollama-connector.js +112 -51
  164. package/src/connectors/openai-connector.js +153 -44
  165. package/src/connectors/rag-prompt.js +88 -0
  166. package/src/core/create-pipeline.js +307 -61
  167. package/src/core/performance/parallel-processor.js +62 -1
  168. package/src/core/plugin-registry.js +125 -26
  169. package/src/core/stage-contracts.js +36 -0
  170. package/src/core/validate-plugin.js +85 -0
  171. package/src/cost/cost-calculator.js +205 -32
  172. package/src/debug/execution-tracer.js +14 -4
  173. package/src/dev/dev-server.js +173 -11
  174. package/src/dev/hot-reload.js +44 -4
  175. package/src/ecosystem/plugin-checks.js +181 -0
  176. package/src/ecosystem/plugin-hub.js +50 -125
  177. package/src/ecosystem/plugin-installer.js +298 -0
  178. package/src/ecosystem/plugin-probe.js +127 -0
  179. package/src/ecosystem/plugin-scanner.js +185 -0
  180. package/src/ecosystem/tar-extract.js +114 -0
  181. package/src/enterprise/audit-logging.js +158 -29
  182. package/src/enterprise/sso-integration.js +716 -228
  183. package/src/evaluate/context-metrics.js +28 -16
  184. package/src/evaluate/evaluator.js +3 -3
  185. package/src/evaluate/faithfulness.js +18 -14
  186. package/src/evaluate/groundedness.js +43 -12
  187. package/src/evaluate/pipeline-evaluator.js +35 -8
  188. package/src/evaluate/scoring.js +251 -3
  189. package/src/evaluate/semantic-similarity.js +79 -0
  190. package/src/experimental.js +71 -0
  191. package/src/grounding/check-answer.js +173 -0
  192. package/src/guardrails/guardrails-pipeline.js +69 -7
  193. package/src/guardrails/injection-detector.js +283 -0
  194. package/src/guardrails/post-generation-guard.js +19 -0
  195. package/src/guardrails/pre-retrieval-guard.js +36 -36
  196. package/src/guardrails/retrieval-guard.js +58 -8
  197. package/src/index.js +58 -1
  198. package/src/loader/csv-loader.js +3 -2
  199. package/src/loader/document-reader.js +91 -0
  200. package/src/loader/html-loader.js +3 -1
  201. package/src/loader/markdown-loader.js +3 -2
  202. package/src/reranker/cascade-reranker.js +3 -0
  203. package/src/reranker/embedding-reranker.js +136 -21
  204. package/src/reranker/llm-reranker.js +79 -12
  205. package/src/reranker/scoring-reranker.js +3 -0
  206. package/src/retrieval/bm25-search.js +12 -6
  207. package/src/retrieval/file-vector-store.js +241 -0
  208. package/src/retrieval/hybrid-retriever.js +22 -19
  209. package/src/security/jwt-config.js +13 -2
  210. package/src/security/jwt-validator.js +139 -34
  211. package/src/security/plugin-sandbox.js +18 -1
  212. package/src/security/plugin-signature-verifier.js +245 -70
  213. package/src/testing.js +254 -0
  214. package/src/utils/deprecate.js +69 -0
  215. package/src/utils/embed-query.js +33 -0
  216. package/src/utils/input-sanitizer.js +19 -4
  217. package/src/utils/logger.js +34 -4
  218. package/src/utils/run-abort.js +102 -0
  219. package/src/ai/federated-learning.js +0 -211
  220. package/src/ai/federation.js +0 -71
  221. package/src/ai/index.js +0 -22
  222. package/src/ai/model-trainer.js +0 -217
  223. package/src/ai/model-training.js +0 -202
  224. package/src/ai/multimodal/multi-modal-processor.js +0 -345
  225. package/src/ai/orchestrator.js +0 -65
  226. package/src/ai/retrieval/adaptive-retrieval-engine.js +0 -398
  227. package/src/cli/commands/ai-ml/adaptive-commands.js +0 -178
  228. package/src/cli/commands/ai-ml/federated-commands.js +0 -207
  229. package/src/cli/commands/ai-ml/index.js +0 -17
  230. package/src/cli/commands/ai-ml/multimodal-commands.js +0 -187
  231. package/src/cli/commands/ai-ml/shared.js +0 -51
  232. package/src/cli/commands/ai-ml/training-commands.js +0 -228
  233. package/src/cli/commands/ai-ml.js +0 -386
  234. package/src/cli/commands/docs.js +0 -228
  235. package/src/cli/commands/dx.js +0 -538
  236. package/src/cli/commands/wizard.js +0 -627
  237. package/src/cli/input-sanitization-middleware.js +0 -356
  238. package/src/cli/interactive-wizard.js +0 -373
  239. package/src/cli/templates/development.template.json +0 -64
  240. package/src/cli/templates/minimal.template.json +0 -33
  241. package/src/cli/templates/production.template.json +0 -104
  242. package/src/cli/templates/testing.template.json +0 -45
  243. package/src/cli/wizard/configuration.js +0 -148
  244. package/src/cli/wizard/observability.js +0 -79
  245. package/src/cli/wizard/performance.js +0 -76
  246. package/src/cli/wizard/plugin-selection.js +0 -297
  247. package/src/cli/wizard/preview-save.js +0 -172
  248. package/src/cli/wizard/project-setup.js +0 -66
  249. package/src/core/pipeline-factory.js +0 -59
  250. package/src/dag/enhanced-dag-engine.js +0 -894
  251. package/src/dx/index.js +0 -40
  252. package/src/dx/integration-templates.js +0 -662
  253. package/src/dx/performance-profiler.js +0 -968
  254. package/src/dx/realtime-debugger.js +0 -755
  255. package/src/dx/visual-pipeline-builder.js +0 -578
  256. package/src/ingest.js +0 -59
  257. package/src/pipeline/pipeline.js +0 -18
  258. package/src/query.js +0 -117
@@ -1,64 +0,0 @@
1
- {
2
- "$schema": "../config/ragrc.schema.json",
3
- "metadata": {
4
- "name": "dev-rag-pipeline",
5
- "version": "1.0.0",
6
- "description": "Development RAG pipeline with verbose logging and local models",
7
- "environment": "development",
8
- "template": "development"
9
- },
10
- "plugins": {
11
- "loader": {
12
- "file-loader": "latest"
13
- },
14
- "embedder": {
15
- "local-embedder": {
16
- "name": "local-embedder",
17
- "version": "latest",
18
- "config": {
19
- "modelPath": "./models/embeddings",
20
- "dimensions": 768
21
- }
22
- }
23
- },
24
- "retriever": {
25
- "vector-retriever": {
26
- "name": "vector-retriever",
27
- "version": "latest",
28
- "config": {
29
- "topK": 5,
30
- "threshold": 0.6
31
- }
32
- }
33
- },
34
- "llm": {
35
- "local-llm": {
36
- "name": "local-llm",
37
- "version": "latest",
38
- "config": {
39
- "modelPath": "./models/llm",
40
- "maxTokens": 500
41
- }
42
- }
43
- }
44
- },
45
- "pipeline": {
46
- "stages": ["loader", "embedder", "retriever", "llm"],
47
- "timeout": 30000
48
- },
49
- "performance": {
50
- "caching": {
51
- "enabled": true,
52
- "maxSize": 100,
53
- "ttl": 600
54
- }
55
- },
56
- "observability": {
57
- "logging": {
58
- "level": "debug",
59
- "structured": true,
60
- "events": true,
61
- "console": true
62
- }
63
- }
64
- }
@@ -1,33 +0,0 @@
1
- {
2
- "$schema": "../config/ragrc.schema.json",
3
- "metadata": {
4
- "name": "minimal-rag-pipeline",
5
- "version": "1.0.0",
6
- "description": "Minimal RAG pipeline configuration with essential plugins",
7
- "environment": "development",
8
- "template": "minimal"
9
- },
10
- "plugins": {
11
- "loader": {
12
- "file-loader": "latest"
13
- },
14
- "embedder": {
15
- "openai-embedder": "latest"
16
- },
17
- "retriever": {
18
- "vector-retriever": "latest"
19
- },
20
- "llm": {
21
- "openai-llm": "latest"
22
- }
23
- },
24
- "pipeline": {
25
- "stages": ["loader", "embedder", "retriever", "llm"]
26
- },
27
- "observability": {
28
- "logging": {
29
- "level": "info",
30
- "structured": true
31
- }
32
- }
33
- }
@@ -1,104 +0,0 @@
1
- {
2
- "$schema": "../config/ragrc.schema.json",
3
- "metadata": {
4
- "name": "production-rag-pipeline",
5
- "version": "1.0.0",
6
- "description": "Production-grade RAG pipeline with full observability and optimization",
7
- "environment": "production",
8
- "template": "production"
9
- },
10
- "plugins": {
11
- "loader": {
12
- "file-loader": "latest"
13
- },
14
- "embedder": {
15
- "openai-embedder": {
16
- "name": "openai-embedder",
17
- "version": "latest",
18
- "config": {
19
- "batchSize": 100,
20
- "timeout": 30000,
21
- "retryAttempts": 3
22
- }
23
- }
24
- },
25
- "retriever": {
26
- "vector-retriever": {
27
- "name": "vector-retriever",
28
- "version": "latest",
29
- "config": {
30
- "topK": 10,
31
- "threshold": 0.7,
32
- "includeMetadata": true
33
- }
34
- }
35
- },
36
- "llm": {
37
- "openai-llm": {
38
- "name": "openai-llm",
39
- "version": "latest",
40
- "config": {
41
- "model": "gpt-4",
42
- "temperature": 0.7,
43
- "maxTokens": 1000
44
- }
45
- }
46
- },
47
- "reranker": {
48
- "similarity-reranker": "latest"
49
- }
50
- },
51
- "pipeline": {
52
- "stages": ["loader", "embedder", "retriever", "reranker", "llm"],
53
- "retries": {
54
- "enabled": true,
55
- "maxAttempts": 3,
56
- "backoff": "exponential"
57
- },
58
- "timeout": 60000
59
- },
60
- "performance": {
61
- "caching": {
62
- "enabled": true,
63
- "maxSize": 1000,
64
- "ttl": 3600
65
- },
66
- "parallel": {
67
- "enabled": true,
68
- "maxConcurrency": 5,
69
- "batchSize": 10
70
- },
71
- "streaming": {
72
- "enabled": true,
73
- "maxMemoryMB": 512,
74
- "bufferSize": 100
75
- }
76
- },
77
- "observability": {
78
- "logging": {
79
- "level": "info",
80
- "structured": true,
81
- "events": true
82
- },
83
- "tracing": {
84
- "enabled": true,
85
- "sampleRate": 0.1,
86
- "exportUrl": "http://localhost:4318"
87
- },
88
- "metrics": {
89
- "enabled": true,
90
- "interval": 60000,
91
- "exportUrl": "http://localhost:4318"
92
- }
93
- },
94
- "security": {
95
- "encryption": {
96
- "enabled": true,
97
- "algorithm": "aes-256-gcm"
98
- },
99
- "authentication": {
100
- "enabled": true,
101
- "provider": "jwt"
102
- }
103
- }
104
- }
@@ -1,45 +0,0 @@
1
- {
2
- "$schema": "../config/ragrc.schema.json",
3
- "metadata": {
4
- "name": "test-rag-pipeline",
5
- "version": "1.0.0",
6
- "description": "Testing RAG pipeline with mock plugins",
7
- "environment": "testing",
8
- "template": "testing"
9
- },
10
- "plugins": {
11
- "loader": {
12
- "mock-loader": {
13
- "source": "local",
14
- "path": "./src/mocks/pdf-loader.js"
15
- }
16
- },
17
- "embedder": {
18
- "mock-embedder": {
19
- "source": "local",
20
- "path": "./src/mocks/openai-embedder.js"
21
- }
22
- },
23
- "retriever": {
24
- "mock-retriever": {
25
- "source": "local",
26
- "path": "./src/mocks/pinecone-retriever.js"
27
- }
28
- },
29
- "llm": {
30
- "mock-llm": {
31
- "source": "local",
32
- "path": "./src/mocks/openai-llm.js"
33
- }
34
- }
35
- },
36
- "pipeline": {
37
- "stages": ["loader", "embedder", "retriever", "llm"]
38
- },
39
- "observability": {
40
- "logging": {
41
- "level": "warn",
42
- "structured": true
43
- }
44
- }
45
- }
@@ -1,148 +0,0 @@
1
- /**
2
- * Configuration Step
3
- * Handles general settings configuration (caching, timeout, pipeline stages)
4
- */
5
-
6
- /**
7
- * Configure general settings
8
- * @param {object} config - Current wizard configuration state
9
- * @param {object} inquirer - Inquirer instance for prompting
10
- * @returns {Promise<object>} Updated configuration state
11
- */
12
- async function configureSettings(config, inquirer) {
13
- console.log("⚙️ General Settings\n");
14
- // eslint-disable-line no-console
15
-
16
- const answers = await inquirer.prompt([
17
- {
18
- _type: "confirm",
19
- name: "enableCaching",
20
- message: "Enable result caching?",
21
- default: false,
22
- },
23
- {
24
- _type: "number",
25
- name: "cacheSize",
26
- message: "Cache size (number of entries):",
27
- default: 1000,
28
- when: (answers) => answers.enableCaching,
29
- },
30
- {
31
- _type: "number",
32
- name: "cacheTtl",
33
- message: "Cache TTL (seconds):",
34
- default: 3600,
35
- when: (answers) => answers.enableCaching,
36
- },
37
- {
38
- _type: "number",
39
- name: "timeout",
40
- message: "Pipeline timeout (milliseconds):",
41
- default: 30000,
42
- },
43
- ]);
44
-
45
- if (answers.enableCaching) {
46
- config.performance = config.performance || {};
47
- config.performance.caching = {
48
- enabled: true,
49
- maxSize: answers.cacheSize,
50
- ttl: answers.cacheTtl,
51
- };
52
- }
53
-
54
- if (answers.timeout !== 30000) {
55
- config.pipeline = config.pipeline || {};
56
- config.pipeline.timeout = answers.timeout;
57
- }
58
-
59
- console.log("✅ General settings configured\n");
60
- // eslint-disable-line no-console
61
-
62
- return config;
63
- }
64
-
65
- /**
66
- * Configure pipeline stages
67
- * @param {object} config - Current wizard configuration state
68
- * @param {object} inquirer - Inquirer instance for prompting
69
- * @returns {Promise<object>} Updated configuration state
70
- */
71
- async function configurePipeline(config, inquirer) {
72
- console.log("🔄 Pipeline Configuration\n");
73
- // eslint-disable-line no-console
74
-
75
- const availableStages = Object.keys(config.plugins).filter(
76
- (_type) => Object.keys(config.plugins[_type]).length > 0,
77
- );
78
-
79
- const answers = await inquirer.prompt([
80
- {
81
- _type: "checkbox",
82
- name: "stages",
83
- message: "Select pipeline stages (in order):",
84
- choices: [
85
- {
86
- name: "Document Loading",
87
- value: "loader",
88
- checked: availableStages.includes("loader"),
89
- },
90
- {
91
- name: "Text Embedding",
92
- value: "embedder",
93
- checked: availableStages.includes("embedder"),
94
- },
95
- {
96
- name: "Vector Retrieval",
97
- value: "retriever",
98
- checked: availableStages.includes("retriever"),
99
- },
100
- {
101
- name: "Language Model",
102
- value: "llm",
103
- checked: availableStages.includes("llm"),
104
- },
105
- {
106
- name: "Result Reranking",
107
- value: "reranker",
108
- checked: availableStages.includes("reranker"),
109
- },
110
- ],
111
- validate: (input) =>
112
- input.length > 0 || "At least one stage must be selected",
113
- },
114
- {
115
- _type: "confirm",
116
- name: "enableRetries",
117
- message: "Enable automatic retries on failures?",
118
- default: true,
119
- },
120
- {
121
- _type: "number",
122
- name: "maxRetries",
123
- message: "Maximum retry attempts:",
124
- default: 3,
125
- when: (answers) => answers.enableRetries,
126
- },
127
- ]);
128
-
129
- config.pipeline = {
130
- stages: answers.stages,
131
- ...config.pipeline,
132
- };
133
-
134
- if (answers.enableRetries) {
135
- config.pipeline.retries = {
136
- enabled: true,
137
- maxAttempts: answers.maxRetries,
138
- backoff: "exponential",
139
- };
140
- }
141
-
142
- console.log("✅ Pipeline configuration complete\n");
143
- // eslint-disable-line no-console
144
-
145
- return config;
146
- }
147
-
148
- module.exports = { configureSettings, configurePipeline };
@@ -1,79 +0,0 @@
1
- /**
2
- * Observability Step
3
- * Handles observability settings configuration (logging, tracing, metrics)
4
- */
5
-
6
- /**
7
- * Configure observability settings
8
- * @param {object} config - Current wizard configuration state
9
- * @param {object} inquirer - Inquirer instance for prompting
10
- * @returns {Promise<object>} Updated configuration state
11
- */
12
- async function configureObservability(config, inquirer) {
13
- console.log("📊 Observability Settings\n");
14
- // eslint-disable-line no-console
15
-
16
- const answers = await inquirer.prompt([
17
- {
18
- _type: "list",
19
- name: "logLevel",
20
- message: "Log level:",
21
- choices: [
22
- { name: "Debug (verbose)", value: "debug" },
23
- { name: "Info (default)", value: "info" },
24
- { name: "Warning (minimal)", value: "warn" },
25
- { name: "Error (errors only)", value: "error" },
26
- ],
27
- default: "info",
28
- },
29
- {
30
- _type: "confirm",
31
- name: "enableTracing",
32
- message: "Enable distributed tracing?",
33
- default: false,
34
- },
35
- {
36
- _type: "confirm",
37
- name: "enableMetrics",
38
- message: "Enable metrics collection?",
39
- default: false,
40
- },
41
- {
42
- _type: "input",
43
- name: "exportUrl",
44
- message: "Metrics/tracing export URL (optional):",
45
- when: (answers) => answers.enableTracing || answers.enableMetrics,
46
- },
47
- ]);
48
-
49
- config.observability = {
50
- logging: {
51
- level: answers.logLevel,
52
- structured: true,
53
- events: answers.enableTracing,
54
- },
55
- };
56
-
57
- if (answers.enableTracing) {
58
- config.observability.tracing = {
59
- enabled: true,
60
- exportUrl: answers.exportUrl || undefined,
61
- sampleRate: 1,
62
- };
63
- }
64
-
65
- if (answers.enableMetrics) {
66
- config.observability.metrics = {
67
- enabled: true,
68
- exportUrl: answers.exportUrl || undefined,
69
- interval: 60000,
70
- };
71
- }
72
-
73
- console.log("✅ Observability settings configured\n");
74
- // eslint-disable-line no-console
75
-
76
- return config;
77
- }
78
-
79
- module.exports = { configureObservability };
@@ -1,76 +0,0 @@
1
- /**
2
- * Performance Step
3
- * Handles performance settings configuration (parallel processing, streaming)
4
- */
5
-
6
- /**
7
- * Configure performance settings
8
- * @param {object} config - Current wizard configuration state
9
- * @param {object} inquirer - Inquirer instance for prompting
10
- * @returns {Promise<object>} Updated configuration state
11
- */
12
- async function configurePerformance(config, inquirer) {
13
- console.log("⚡ Performance Settings\n");
14
- // eslint-disable-line no-console
15
-
16
- const answers = await inquirer.prompt([
17
- {
18
- _type: "confirm",
19
- name: "enableParallel",
20
- message: "Enable parallel processing?",
21
- default: false,
22
- },
23
- {
24
- _type: "number",
25
- name: "maxConcurrency",
26
- message: "Maximum concurrent operations:",
27
- default: 3,
28
- when: (answers) => answers.enableParallel,
29
- },
30
- {
31
- _type: "number",
32
- name: "batchSize",
33
- message: "Batch size for parallel processing:",
34
- default: 10,
35
- when: (answers) => answers.enableParallel,
36
- },
37
- {
38
- _type: "confirm",
39
- name: "enableStreaming",
40
- message: "Enable streaming for large documents?",
41
- default: false,
42
- },
43
- {
44
- _type: "number",
45
- name: "maxMemoryMB",
46
- message: "Maximum memory usage (MB):",
47
- default: 512,
48
- when: (answers) => answers.enableStreaming,
49
- },
50
- ]);
51
-
52
- config.performance = config.performance || {};
53
-
54
- if (answers.enableParallel) {
55
- config.performance.parallel = {
56
- enabled: true,
57
- maxConcurrency: answers.maxConcurrency,
58
- batchSize: answers.batchSize,
59
- };
60
- }
61
-
62
- if (answers.enableStreaming) {
63
- config.performance.streaming = {
64
- enabled: true,
65
- maxMemoryMB: answers.maxMemoryMB,
66
- bufferSize: 100,
67
- };
68
- }
69
-
70
- console.log("✅ Performance settings configured\n");
71
- // eslint-disable-line no-console
72
-
73
- return config;
74
- }
75
-
76
- module.exports = { configurePerformance };