@devilsdev/rag-pipeline-utils 2.4.5 → 2.5.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 (225) hide show
  1. package/.ragrc.schema.json +83 -192
  2. package/CHANGELOG.md +345 -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 +4992 -1242
  9. package/dist/index.d.ts +80 -2
  10. package/dist/index.mjs +1 -1
  11. package/dist/types/agentic/agentic-pipeline.d.ts +103 -0
  12. package/dist/types/agentic/iterative-retriever.d.ts +85 -0
  13. package/dist/types/agentic/query-planner.d.ts +145 -0
  14. package/dist/types/agentic/self-critique.d.ts +45 -0
  15. package/dist/types/ai/adaptive-retrieval.d.ts +44 -0
  16. package/dist/types/ai/federation/federated-learning-coordinator.d.ts +62 -0
  17. package/dist/types/ai/multimodal-processing.d.ts +32 -0
  18. package/dist/types/ai/multimodal.d.ts +39 -0
  19. package/dist/types/ai/retrieval-engine.d.ts +37 -0
  20. package/dist/types/ai/training/model-training-orchestrator.d.ts +31 -0
  21. package/dist/types/chunking/chunking-engine.d.ts +70 -0
  22. package/dist/types/chunking/strategies/fixed-size.d.ts +17 -0
  23. package/dist/types/chunking/strategies/recursive.d.ts +20 -0
  24. package/dist/types/chunking/strategies/semantic.d.ts +19 -0
  25. package/dist/types/chunking/strategies/sentence.d.ts +13 -0
  26. package/dist/types/chunking/strategies/structure-aware.d.ts +19 -0
  27. package/dist/types/citation/citation-tracker.d.ts +64 -0
  28. package/dist/types/citation/hallucination-detector.d.ts +40 -0
  29. package/dist/types/citation/source-mapper.d.ts +37 -0
  30. package/dist/types/connectors/anthropic-connector.d.ts +92 -0
  31. package/dist/types/connectors/base-connector.d.ts +87 -0
  32. package/dist/types/connectors/cohere-connector.d.ts +89 -0
  33. package/dist/types/connectors/connector-utils.d.ts +110 -0
  34. package/dist/types/connectors/local-embedder.d.ts +86 -0
  35. package/dist/types/connectors/memory-retriever.d.ts +91 -0
  36. package/dist/types/connectors/ollama-connector.d.ts +110 -0
  37. package/dist/types/connectors/openai-connector.d.ts +114 -0
  38. package/dist/types/connectors/rag-prompt.d.ts +40 -0
  39. package/dist/types/cost/cost-calculator.d.ts +152 -0
  40. package/dist/types/cost/cost-tracker.d.ts +126 -0
  41. package/dist/types/cost/token-budget.d.ts +110 -0
  42. package/dist/types/dag/core/error-context.d.ts +239 -0
  43. package/dist/types/dag/core/execution-scheduler.d.ts +191 -0
  44. package/dist/types/dag/core/topology-validation.d.ts +226 -0
  45. package/dist/types/dag/dag-engine.d.ts +156 -0
  46. package/dist/types/dag/dag-node.d.ts +37 -0
  47. package/dist/types/dashboard/dashboard-generator.d.ts +127 -0
  48. package/dist/types/dashboard/metrics-aggregator.d.ts +218 -0
  49. package/dist/types/debug/execution-tracer.d.ts +57 -0
  50. package/dist/types/debug/trace-inspector.d.ts +31 -0
  51. package/dist/types/ecosystem/plugin-certification.d.ts +169 -0
  52. package/dist/types/enterprise/data-governance.d.ts +203 -0
  53. package/dist/types/enterprise/multi-tenancy.d.ts +137 -0
  54. package/dist/types/enterprise/sso-integration.d.ts +420 -0
  55. package/dist/types/evaluate/context-metrics.d.ts +55 -0
  56. package/dist/types/evaluate/faithfulness.d.ts +41 -0
  57. package/dist/types/evaluate/groundedness.d.ts +60 -0
  58. package/dist/types/evaluate/pipeline-evaluator.d.ts +88 -0
  59. package/dist/types/evaluate/relevance.d.ts +21 -0
  60. package/dist/types/evaluate/scoring.d.ts +123 -0
  61. package/dist/types/experimental.d.ts +15 -0
  62. package/dist/types/graph/entity-extractor.d.ts +84 -0
  63. package/dist/types/graph/graph-index.d.ts +49 -0
  64. package/dist/types/graph/graph-retriever.d.ts +81 -0
  65. package/dist/types/graph/knowledge-graph.d.ts +129 -0
  66. package/dist/types/guardrails/guardrails-pipeline.d.ts +63 -0
  67. package/dist/types/guardrails/injection-detector.d.ts +47 -0
  68. package/dist/types/guardrails/post-generation-guard.d.ts +61 -0
  69. package/dist/types/guardrails/pre-retrieval-guard.d.ts +64 -0
  70. package/dist/types/guardrails/retrieval-guard.d.ts +57 -0
  71. package/dist/types/mcp/mcp-server.d.ts +85 -0
  72. package/dist/types/mcp/mcp-tool-builder.d.ts +55 -0
  73. package/dist/types/reranker/cascade-reranker.d.ts +40 -0
  74. package/dist/types/reranker/embedding-reranker.d.ts +77 -0
  75. package/dist/types/reranker/scoring-reranker.d.ts +41 -0
  76. package/dist/types/retrieval/bm25-search.d.ts +43 -0
  77. package/dist/types/retrieval/file-vector-store.d.ts +87 -0
  78. package/dist/types/retrieval/hybrid-retriever.d.ts +35 -0
  79. package/dist/types/retrieval/rank-fusion.d.ts +10 -0
  80. package/dist/types/security/jwt-config.d.ts +80 -0
  81. package/dist/types/security/jwt-validator.d.ts +195 -0
  82. package/dist/types/security/plugin-sandbox.d.ts +158 -0
  83. package/dist/types/security/plugin-signature-verifier.d.ts +139 -0
  84. package/dist/types/security/validator.d.ts +5 -0
  85. package/dist/types/streaming/embedding-stream.d.ts +65 -0
  86. package/dist/types/streaming/sse-adapter.d.ts +59 -0
  87. package/dist/types/streaming/stream-router.d.ts +88 -0
  88. package/dist/types/streaming/streaming-embedder.d.ts +99 -0
  89. package/dist/types/streaming/websocket-adapter.d.ts +71 -0
  90. package/dist/types/templates/scaffold.d.ts +55 -0
  91. package/dist/types/templates/template-registry.d.ts +63 -0
  92. package/dist/types/utils/embed-query.d.ts +20 -0
  93. package/dist/types/utils/logger.d.ts +50 -0
  94. package/dist/types/utils/rate-limiter.d.ts +66 -0
  95. package/dist/types/utils/retry.d.ts +27 -0
  96. package/dist/types/utils/run-abort.d.ts +34 -0
  97. package/dist/types/utils/secure-logging.d.ts +51 -0
  98. package/dist/types/utils/structured-logger.d.ts +126 -0
  99. package/package.json +53 -29
  100. package/src/agentic/agentic-pipeline.js +75 -7
  101. package/src/agentic/iterative-retriever.js +47 -10
  102. package/src/agentic/query-planner.js +329 -78
  103. package/src/citation/citation-tracker.js +6 -4
  104. package/src/citation/hallucination-detector.js +2 -2
  105. package/src/citation/source-mapper.js +15 -28
  106. package/src/cli/commands/ai.js +101 -0
  107. package/src/cli/commands/plugin-hub/event-handlers.js +6 -0
  108. package/src/cli/commands/plugin-hub/hub-commands.js +0 -74
  109. package/src/cli/commands/plugin-hub/local-commands.js +143 -0
  110. package/src/cli/commands/plugin-hub.js +96 -36
  111. package/src/cli/diagnostics/config-checker.js +76 -63
  112. package/src/cli/diagnostics/environment-checker.js +62 -31
  113. package/src/cli/diagnostics/plugin-checker.js +36 -89
  114. package/src/cli/doctor-command.js +39 -5
  115. package/src/cli/enhanced-cli-commands.js +72 -217
  116. package/src/cli/handlers/ai-handler.js +364 -0
  117. package/src/cli/handlers/diagnostics-handler.js +78 -31
  118. package/src/cli/handlers/ingest-handler.js +28 -22
  119. package/src/cli/handlers/init-handler.js +148 -25
  120. package/src/cli/handlers/query-handler.js +41 -26
  121. package/src/cli/handlers/run-handler.js +16 -167
  122. package/src/cli/handlers/serve-handler.js +60 -0
  123. package/src/cli/services/bench-stats.js +54 -0
  124. package/src/cli/services/benchmark.js +161 -0
  125. package/src/cli/services/feedback.js +155 -0
  126. package/src/cli/services/rag-service.js +322 -0
  127. package/src/cli/shared/cli-utils.js +24 -7
  128. package/src/cli/shared/config-context.js +21 -0
  129. package/src/cli/wizard/config-builder.js +81 -0
  130. package/src/cli/wizard/init-wizard.js +617 -0
  131. package/src/config/component-factory.js +125 -0
  132. package/src/config/load-config.js +29 -10
  133. package/src/config/load-plugin-config.js +46 -2
  134. package/src/connectors/anthropic-connector.js +93 -55
  135. package/src/connectors/base-connector.js +74 -19
  136. package/src/connectors/cohere-connector.js +88 -32
  137. package/src/connectors/connector-utils.js +302 -0
  138. package/src/connectors/local-embedder.js +43 -5
  139. package/src/connectors/memory-retriever.js +108 -15
  140. package/src/connectors/ollama-connector.js +83 -49
  141. package/src/connectors/openai-connector.js +108 -44
  142. package/src/connectors/rag-prompt.js +88 -0
  143. package/src/core/create-pipeline.js +209 -60
  144. package/src/core/plugin-registry.js +87 -11
  145. package/src/cost/cost-calculator.js +205 -32
  146. package/src/dev/dev-server.js +166 -11
  147. package/src/dev/hot-reload.js +40 -1
  148. package/src/ecosystem/plugin-checks.js +181 -0
  149. package/src/ecosystem/plugin-hub.js +50 -125
  150. package/src/ecosystem/plugin-installer.js +298 -0
  151. package/src/ecosystem/plugin-probe.js +127 -0
  152. package/src/ecosystem/plugin-scanner.js +185 -0
  153. package/src/ecosystem/tar-extract.js +114 -0
  154. package/src/enterprise/audit-logging.js +158 -29
  155. package/src/enterprise/sso-integration.js +715 -228
  156. package/src/evaluate/context-metrics.js +28 -16
  157. package/src/evaluate/evaluator.js +3 -3
  158. package/src/evaluate/faithfulness.js +18 -14
  159. package/src/evaluate/groundedness.js +43 -12
  160. package/src/evaluate/pipeline-evaluator.js +35 -8
  161. package/src/evaluate/scoring.js +251 -3
  162. package/src/experimental.js +71 -0
  163. package/src/guardrails/guardrails-pipeline.js +69 -7
  164. package/src/guardrails/injection-detector.js +283 -0
  165. package/src/guardrails/post-generation-guard.js +19 -0
  166. package/src/guardrails/pre-retrieval-guard.js +36 -36
  167. package/src/guardrails/retrieval-guard.js +58 -8
  168. package/src/index.js +36 -1
  169. package/src/loader/document-reader.js +91 -0
  170. package/src/reranker/cascade-reranker.js +3 -0
  171. package/src/reranker/embedding-reranker.js +136 -21
  172. package/src/reranker/llm-reranker.js +79 -12
  173. package/src/reranker/scoring-reranker.js +3 -0
  174. package/src/retrieval/bm25-search.js +12 -6
  175. package/src/retrieval/file-vector-store.js +212 -0
  176. package/src/retrieval/hybrid-retriever.js +22 -19
  177. package/src/security/jwt-config.js +13 -2
  178. package/src/security/jwt-validator.js +134 -30
  179. package/src/security/plugin-sandbox.js +18 -1
  180. package/src/security/plugin-signature-verifier.js +245 -70
  181. package/src/utils/deprecate.js +69 -0
  182. package/src/utils/embed-query.js +33 -0
  183. package/src/utils/input-sanitizer.js +19 -4
  184. package/src/utils/logger.js +34 -4
  185. package/src/utils/run-abort.js +102 -0
  186. package/src/ai/federated-learning.js +0 -211
  187. package/src/ai/federation.js +0 -71
  188. package/src/ai/index.js +0 -22
  189. package/src/ai/model-trainer.js +0 -217
  190. package/src/ai/model-training.js +0 -202
  191. package/src/ai/multimodal/multi-modal-processor.js +0 -345
  192. package/src/ai/orchestrator.js +0 -65
  193. package/src/ai/retrieval/adaptive-retrieval-engine.js +0 -398
  194. package/src/cli/commands/ai-ml/adaptive-commands.js +0 -178
  195. package/src/cli/commands/ai-ml/federated-commands.js +0 -207
  196. package/src/cli/commands/ai-ml/index.js +0 -17
  197. package/src/cli/commands/ai-ml/multimodal-commands.js +0 -187
  198. package/src/cli/commands/ai-ml/shared.js +0 -51
  199. package/src/cli/commands/ai-ml/training-commands.js +0 -228
  200. package/src/cli/commands/ai-ml.js +0 -386
  201. package/src/cli/commands/docs.js +0 -228
  202. package/src/cli/commands/dx.js +0 -538
  203. package/src/cli/commands/wizard.js +0 -627
  204. package/src/cli/input-sanitization-middleware.js +0 -356
  205. package/src/cli/interactive-wizard.js +0 -373
  206. package/src/cli/templates/development.template.json +0 -64
  207. package/src/cli/templates/minimal.template.json +0 -33
  208. package/src/cli/templates/production.template.json +0 -104
  209. package/src/cli/templates/testing.template.json +0 -45
  210. package/src/cli/wizard/configuration.js +0 -148
  211. package/src/cli/wizard/observability.js +0 -79
  212. package/src/cli/wizard/performance.js +0 -76
  213. package/src/cli/wizard/plugin-selection.js +0 -297
  214. package/src/cli/wizard/preview-save.js +0 -172
  215. package/src/cli/wizard/project-setup.js +0 -66
  216. package/src/core/pipeline-factory.js +0 -59
  217. package/src/dag/enhanced-dag-engine.js +0 -894
  218. package/src/dx/index.js +0 -40
  219. package/src/dx/integration-templates.js +0 -662
  220. package/src/dx/performance-profiler.js +0 -968
  221. package/src/dx/realtime-debugger.js +0 -755
  222. package/src/dx/visual-pipeline-builder.js +0 -578
  223. package/src/ingest.js +0 -59
  224. package/src/pipeline/pipeline.js +0 -18
  225. 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 };