@devilsdev/rag-pipeline-utils 2.4.4 → 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.
- package/.ragrc.schema.json +83 -192
- package/CHANGELOG.md +345 -0
- package/README.md +418 -117
- package/SECURITY.md +5 -5
- package/dist/experimental.cjs +2 -0
- package/dist/experimental.d.ts +1 -0
- package/dist/experimental.mjs +5 -0
- package/dist/index.cjs +4992 -1242
- package/dist/index.d.ts +80 -2
- package/dist/index.mjs +1 -1
- package/dist/types/agentic/agentic-pipeline.d.ts +103 -0
- package/dist/types/agentic/iterative-retriever.d.ts +85 -0
- package/dist/types/agentic/query-planner.d.ts +145 -0
- package/dist/types/agentic/self-critique.d.ts +45 -0
- package/dist/types/ai/adaptive-retrieval.d.ts +44 -0
- package/dist/types/ai/federation/federated-learning-coordinator.d.ts +62 -0
- package/dist/types/ai/multimodal-processing.d.ts +32 -0
- package/dist/types/ai/multimodal.d.ts +39 -0
- package/dist/types/ai/retrieval-engine.d.ts +37 -0
- package/dist/types/ai/training/model-training-orchestrator.d.ts +31 -0
- package/dist/types/chunking/chunking-engine.d.ts +70 -0
- package/dist/types/chunking/strategies/fixed-size.d.ts +17 -0
- package/dist/types/chunking/strategies/recursive.d.ts +20 -0
- package/dist/types/chunking/strategies/semantic.d.ts +19 -0
- package/dist/types/chunking/strategies/sentence.d.ts +13 -0
- package/dist/types/chunking/strategies/structure-aware.d.ts +19 -0
- package/dist/types/citation/citation-tracker.d.ts +64 -0
- package/dist/types/citation/hallucination-detector.d.ts +40 -0
- package/dist/types/citation/source-mapper.d.ts +37 -0
- package/dist/types/connectors/anthropic-connector.d.ts +92 -0
- package/dist/types/connectors/base-connector.d.ts +87 -0
- package/dist/types/connectors/cohere-connector.d.ts +89 -0
- package/dist/types/connectors/connector-utils.d.ts +110 -0
- package/dist/types/connectors/local-embedder.d.ts +86 -0
- package/dist/types/connectors/memory-retriever.d.ts +91 -0
- package/dist/types/connectors/ollama-connector.d.ts +110 -0
- package/dist/types/connectors/openai-connector.d.ts +114 -0
- package/dist/types/connectors/rag-prompt.d.ts +40 -0
- package/dist/types/cost/cost-calculator.d.ts +152 -0
- package/dist/types/cost/cost-tracker.d.ts +126 -0
- package/dist/types/cost/token-budget.d.ts +110 -0
- package/dist/types/dag/core/error-context.d.ts +239 -0
- package/dist/types/dag/core/execution-scheduler.d.ts +191 -0
- package/dist/types/dag/core/topology-validation.d.ts +226 -0
- package/dist/types/dag/dag-engine.d.ts +156 -0
- package/dist/types/dag/dag-node.d.ts +37 -0
- package/dist/types/dashboard/dashboard-generator.d.ts +127 -0
- package/dist/types/dashboard/metrics-aggregator.d.ts +218 -0
- package/dist/types/debug/execution-tracer.d.ts +57 -0
- package/dist/types/debug/trace-inspector.d.ts +31 -0
- package/dist/types/ecosystem/plugin-certification.d.ts +169 -0
- package/dist/types/enterprise/data-governance.d.ts +203 -0
- package/dist/types/enterprise/multi-tenancy.d.ts +137 -0
- package/dist/types/enterprise/sso-integration.d.ts +420 -0
- package/dist/types/evaluate/context-metrics.d.ts +55 -0
- package/dist/types/evaluate/faithfulness.d.ts +41 -0
- package/dist/types/evaluate/groundedness.d.ts +60 -0
- package/dist/types/evaluate/pipeline-evaluator.d.ts +88 -0
- package/dist/types/evaluate/relevance.d.ts +21 -0
- package/dist/types/evaluate/scoring.d.ts +123 -0
- package/dist/types/experimental.d.ts +15 -0
- package/dist/types/graph/entity-extractor.d.ts +84 -0
- package/dist/types/graph/graph-index.d.ts +49 -0
- package/dist/types/graph/graph-retriever.d.ts +81 -0
- package/dist/types/graph/knowledge-graph.d.ts +129 -0
- package/dist/types/guardrails/guardrails-pipeline.d.ts +63 -0
- package/dist/types/guardrails/injection-detector.d.ts +47 -0
- package/dist/types/guardrails/post-generation-guard.d.ts +61 -0
- package/dist/types/guardrails/pre-retrieval-guard.d.ts +64 -0
- package/dist/types/guardrails/retrieval-guard.d.ts +57 -0
- package/dist/types/mcp/mcp-server.d.ts +85 -0
- package/dist/types/mcp/mcp-tool-builder.d.ts +55 -0
- package/dist/types/reranker/cascade-reranker.d.ts +40 -0
- package/dist/types/reranker/embedding-reranker.d.ts +77 -0
- package/dist/types/reranker/scoring-reranker.d.ts +41 -0
- package/dist/types/retrieval/bm25-search.d.ts +43 -0
- package/dist/types/retrieval/file-vector-store.d.ts +87 -0
- package/dist/types/retrieval/hybrid-retriever.d.ts +35 -0
- package/dist/types/retrieval/rank-fusion.d.ts +10 -0
- package/dist/types/security/jwt-config.d.ts +80 -0
- package/dist/types/security/jwt-validator.d.ts +195 -0
- package/dist/types/security/plugin-sandbox.d.ts +158 -0
- package/dist/types/security/plugin-signature-verifier.d.ts +139 -0
- package/dist/types/security/validator.d.ts +5 -0
- package/dist/types/streaming/embedding-stream.d.ts +65 -0
- package/dist/types/streaming/sse-adapter.d.ts +59 -0
- package/dist/types/streaming/stream-router.d.ts +88 -0
- package/dist/types/streaming/streaming-embedder.d.ts +99 -0
- package/dist/types/streaming/websocket-adapter.d.ts +71 -0
- package/dist/types/templates/scaffold.d.ts +55 -0
- package/dist/types/templates/template-registry.d.ts +63 -0
- package/dist/types/utils/embed-query.d.ts +20 -0
- package/dist/types/utils/logger.d.ts +50 -0
- package/dist/types/utils/rate-limiter.d.ts +66 -0
- package/dist/types/utils/retry.d.ts +27 -0
- package/dist/types/utils/run-abort.d.ts +34 -0
- package/dist/types/utils/secure-logging.d.ts +51 -0
- package/dist/types/utils/structured-logger.d.ts +126 -0
- package/package.json +53 -29
- package/src/agentic/agentic-pipeline.js +75 -7
- package/src/agentic/iterative-retriever.js +47 -10
- package/src/agentic/query-planner.js +329 -78
- package/src/citation/citation-tracker.js +6 -4
- package/src/citation/hallucination-detector.js +2 -2
- package/src/citation/source-mapper.js +15 -28
- package/src/cli/commands/ai.js +101 -0
- package/src/cli/commands/plugin-hub/event-handlers.js +6 -0
- package/src/cli/commands/plugin-hub/hub-commands.js +0 -74
- package/src/cli/commands/plugin-hub/local-commands.js +143 -0
- package/src/cli/commands/plugin-hub.js +96 -36
- package/src/cli/diagnostics/config-checker.js +76 -63
- package/src/cli/diagnostics/environment-checker.js +62 -31
- package/src/cli/diagnostics/plugin-checker.js +36 -89
- package/src/cli/doctor-command.js +39 -5
- package/src/cli/enhanced-cli-commands.js +72 -217
- package/src/cli/handlers/ai-handler.js +364 -0
- package/src/cli/handlers/diagnostics-handler.js +78 -31
- package/src/cli/handlers/ingest-handler.js +28 -22
- package/src/cli/handlers/init-handler.js +148 -25
- package/src/cli/handlers/query-handler.js +41 -26
- package/src/cli/handlers/run-handler.js +16 -167
- package/src/cli/handlers/serve-handler.js +60 -0
- package/src/cli/services/bench-stats.js +54 -0
- package/src/cli/services/benchmark.js +161 -0
- package/src/cli/services/feedback.js +155 -0
- package/src/cli/services/rag-service.js +322 -0
- package/src/cli/shared/cli-utils.js +24 -7
- package/src/cli/shared/config-context.js +21 -0
- package/src/cli/wizard/config-builder.js +81 -0
- package/src/cli/wizard/init-wizard.js +617 -0
- package/src/config/component-factory.js +125 -0
- package/src/config/load-config.js +29 -10
- package/src/config/load-plugin-config.js +46 -2
- package/src/connectors/anthropic-connector.js +93 -55
- package/src/connectors/base-connector.js +74 -19
- package/src/connectors/cohere-connector.js +88 -32
- package/src/connectors/connector-utils.js +302 -0
- package/src/connectors/local-embedder.js +43 -5
- package/src/connectors/memory-retriever.js +108 -15
- package/src/connectors/ollama-connector.js +83 -49
- package/src/connectors/openai-connector.js +108 -44
- package/src/connectors/rag-prompt.js +88 -0
- package/src/core/create-pipeline.js +209 -60
- package/src/core/plugin-registry.js +87 -11
- package/src/cost/cost-calculator.js +205 -32
- package/src/dev/dev-server.js +166 -11
- package/src/dev/hot-reload.js +40 -1
- package/src/ecosystem/plugin-checks.js +181 -0
- package/src/ecosystem/plugin-hub.js +50 -125
- package/src/ecosystem/plugin-installer.js +298 -0
- package/src/ecosystem/plugin-probe.js +127 -0
- package/src/ecosystem/plugin-scanner.js +185 -0
- package/src/ecosystem/tar-extract.js +114 -0
- package/src/enterprise/audit-logging.js +158 -29
- package/src/enterprise/sso-integration.js +715 -228
- package/src/evaluate/context-metrics.js +28 -16
- package/src/evaluate/evaluator.js +3 -3
- package/src/evaluate/faithfulness.js +18 -14
- package/src/evaluate/groundedness.js +43 -12
- package/src/evaluate/pipeline-evaluator.js +35 -8
- package/src/evaluate/scoring.js +251 -3
- package/src/experimental.js +71 -0
- package/src/guardrails/guardrails-pipeline.js +69 -7
- package/src/guardrails/injection-detector.js +283 -0
- package/src/guardrails/post-generation-guard.js +19 -0
- package/src/guardrails/pre-retrieval-guard.js +36 -36
- package/src/guardrails/retrieval-guard.js +58 -8
- package/src/index.js +36 -1
- package/src/loader/document-reader.js +91 -0
- package/src/reranker/cascade-reranker.js +3 -0
- package/src/reranker/embedding-reranker.js +136 -21
- package/src/reranker/llm-reranker.js +79 -12
- package/src/reranker/scoring-reranker.js +3 -0
- package/src/retrieval/bm25-search.js +12 -6
- package/src/retrieval/file-vector-store.js +212 -0
- package/src/retrieval/hybrid-retriever.js +22 -19
- package/src/security/jwt-config.js +13 -2
- package/src/security/jwt-validator.js +134 -30
- package/src/security/plugin-sandbox.js +18 -1
- package/src/security/plugin-signature-verifier.js +245 -70
- package/src/utils/deprecate.js +69 -0
- package/src/utils/embed-query.js +33 -0
- package/src/utils/input-sanitizer.js +19 -4
- package/src/utils/logger.js +34 -4
- package/src/utils/run-abort.js +102 -0
- package/src/ai/federated-learning.js +0 -211
- package/src/ai/federation.js +0 -71
- package/src/ai/index.js +0 -22
- package/src/ai/model-trainer.js +0 -217
- package/src/ai/model-training.js +0 -202
- package/src/ai/multimodal/multi-modal-processor.js +0 -345
- package/src/ai/orchestrator.js +0 -65
- package/src/ai/retrieval/adaptive-retrieval-engine.js +0 -398
- package/src/cli/commands/ai-ml/adaptive-commands.js +0 -178
- package/src/cli/commands/ai-ml/federated-commands.js +0 -207
- package/src/cli/commands/ai-ml/index.js +0 -17
- package/src/cli/commands/ai-ml/multimodal-commands.js +0 -187
- package/src/cli/commands/ai-ml/shared.js +0 -51
- package/src/cli/commands/ai-ml/training-commands.js +0 -228
- package/src/cli/commands/ai-ml.js +0 -386
- package/src/cli/commands/docs.js +0 -228
- package/src/cli/commands/dx.js +0 -538
- package/src/cli/commands/wizard.js +0 -627
- package/src/cli/input-sanitization-middleware.js +0 -356
- package/src/cli/interactive-wizard.js +0 -373
- package/src/cli/templates/development.template.json +0 -64
- package/src/cli/templates/minimal.template.json +0 -33
- package/src/cli/templates/production.template.json +0 -104
- package/src/cli/templates/testing.template.json +0 -45
- package/src/cli/wizard/configuration.js +0 -148
- package/src/cli/wizard/observability.js +0 -79
- package/src/cli/wizard/performance.js +0 -76
- package/src/cli/wizard/plugin-selection.js +0 -297
- package/src/cli/wizard/preview-save.js +0 -172
- package/src/cli/wizard/project-setup.js +0 -66
- package/src/core/pipeline-factory.js +0 -59
- package/src/dag/enhanced-dag-engine.js +0 -894
- package/src/dx/index.js +0 -40
- package/src/dx/integration-templates.js +0 -662
- package/src/dx/performance-profiler.js +0 -968
- package/src/dx/realtime-debugger.js +0 -755
- package/src/dx/visual-pipeline-builder.js +0 -578
- package/src/ingest.js +0 -59
- package/src/pipeline/pipeline.js +0 -18
- 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 };
|