@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.
- 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
package/src/cli/commands/dx.js
DELETED
|
@@ -1,538 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Developer Experience (DX) CLI Commands
|
|
3
|
-
*
|
|
4
|
-
* CLI interface for Phase 10 DX enhancements:
|
|
5
|
-
* - Visual Pipeline Builder
|
|
6
|
-
* - Real-time Debugger
|
|
7
|
-
* - Performance Profiler
|
|
8
|
-
* - Integration Templates
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const { Command } = require('commander'); // eslint-disable-line global-require
|
|
12
|
-
const chalk = require('chalk'); // eslint-disable-line global-require
|
|
13
|
-
const inquirer = require('inquirer'); // eslint-disable-line global-require
|
|
14
|
-
const {
|
|
15
|
-
VisualPipelineBuilder,
|
|
16
|
-
RealtimeDebugger,
|
|
17
|
-
PerformanceProfiler,
|
|
18
|
-
IntegrationTemplates,
|
|
19
|
-
} = require('../../dx'); // eslint-disable-line global-require
|
|
20
|
-
|
|
21
|
-
const dxCommand = new Command('dx');
|
|
22
|
-
|
|
23
|
-
dxCommand
|
|
24
|
-
.description('Developer Experience tools and utilities')
|
|
25
|
-
.addCommand(createVisualBuilderCommand())
|
|
26
|
-
.addCommand(createDebuggerCommand())
|
|
27
|
-
.addCommand(createProfilerCommand())
|
|
28
|
-
.addCommand(createTemplatesCommand())
|
|
29
|
-
.addCommand(createDashboardCommand());
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Visual Pipeline Builder commands
|
|
33
|
-
*/
|
|
34
|
-
function createVisualBuilderCommand() {
|
|
35
|
-
const builderCmd = new Command('builder');
|
|
36
|
-
|
|
37
|
-
builderCmd
|
|
38
|
-
.description('Visual Pipeline Builder - drag-and-drop interface')
|
|
39
|
-
.option('-p, --port <port>', 'Server port', '3001')
|
|
40
|
-
.option('--host <host>', 'Server host', 'localhost')
|
|
41
|
-
.option('--theme <theme>', 'UI theme (light|dark)', 'light')
|
|
42
|
-
.action(async (_options) => {
|
|
43
|
-
console.log(chalk.blue('šØ Starting Visual Pipeline Builder...')); // eslint-disable-line no-console
|
|
44
|
-
|
|
45
|
-
const port = _options.port || 3000;
|
|
46
|
-
const host = _options.host || 'localhost';
|
|
47
|
-
const theme = _options.theme || 'light';
|
|
48
|
-
|
|
49
|
-
const builder = new VisualPipelineBuilder({
|
|
50
|
-
port: parseInt(port),
|
|
51
|
-
host: host,
|
|
52
|
-
theme: theme,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
const serverInfo = await builder.startServer();
|
|
57
|
-
|
|
58
|
-
console.log(
|
|
59
|
-
chalk.green('ā
Visual Pipeline Builder started successfully!'),
|
|
60
|
-
); // eslint-disable-line no-console
|
|
61
|
-
console.log(chalk.cyan(`š Access the builder at: ${serverInfo.url}`)); // eslint-disable-line no-console
|
|
62
|
-
console.log(chalk.yellow('š Available components:')); // eslint-disable-line no-console
|
|
63
|
-
const components = builder.getAvailableComponents();
|
|
64
|
-
components.forEach((comp) => {
|
|
65
|
-
// eslint-disable-line no-console
|
|
66
|
-
console.log(` ⢠${comp.name} (${comp.type}): ${comp.description}`); // eslint-disable-line no-console
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
console.log(chalk.gray('\nPress Ctrl+C to stop the server')); // eslint-disable-line no-console
|
|
70
|
-
// Keep the process alive
|
|
71
|
-
process.on('SIGINT', async () => {
|
|
72
|
-
console.log(chalk.yellow('\nš Stopping Visual Pipeline Builder...')); // eslint-disable-line no-console
|
|
73
|
-
await builder.stopServer(); // eslint-disable-line no-console
|
|
74
|
-
console.log(chalk.green('ā
Server stopped')); // eslint-disable-line no-console
|
|
75
|
-
process.exit(0);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
// Prevent process from exiting
|
|
79
|
-
// eslint-disable-line no-console
|
|
80
|
-
setInterval(() => {}, 1000);
|
|
81
|
-
} catch (error) {
|
|
82
|
-
// eslint-disable-line no-console
|
|
83
|
-
console.error(
|
|
84
|
-
chalk.red('ā Failed to start Visual Pipeline Builder:'),
|
|
85
|
-
error.message,
|
|
86
|
-
); // eslint-disable-line no-console
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
builderCmd
|
|
92
|
-
.command('create <name>')
|
|
93
|
-
.description('Create a new pipeline')
|
|
94
|
-
.option('-d, --description <desc>', 'Pipeline description')
|
|
95
|
-
// eslint-disable-line no-console
|
|
96
|
-
.action(async (name, _options) => {
|
|
97
|
-
const builder = new VisualPipelineBuilder();
|
|
98
|
-
const pipelineId = builder.createPipeline(name, _options.description);
|
|
99
|
-
|
|
100
|
-
console.log(chalk.green(`ā
Created pipeline: ${name}`)); // eslint-disable-line no-console
|
|
101
|
-
console.log(chalk.cyan(`š Pipeline ID: ${pipelineId}`)); // eslint-disable-line no-console
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
builderCmd
|
|
105
|
-
.command('list')
|
|
106
|
-
.description('List all pipelines')
|
|
107
|
-
.action(async () => {
|
|
108
|
-
const builder = new VisualPipelineBuilder();
|
|
109
|
-
const pipelines = builder.getAllPipelines(); // eslint-disable-line no-console
|
|
110
|
-
|
|
111
|
-
if (pipelines.length === 0) {
|
|
112
|
-
// eslint-disable-line no-console
|
|
113
|
-
console.log(chalk.yellow('š No pipelines found')); // eslint-disable-line no-console
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
console.log(chalk.blue('š Available Pipelines:')); // eslint-disable-line no-console
|
|
118
|
-
pipelines.forEach((pipeline) => {
|
|
119
|
-
console.log(` ⢠${pipeline.name} (${pipeline.id})`); // eslint-disable-line no-console
|
|
120
|
-
console.log(` ${pipeline.description || 'No description'}`); // eslint-disable-line no-console
|
|
121
|
-
console.log(
|
|
122
|
-
` Components: ${pipeline.components.length}, Connections: ${pipeline.connections.length}`,
|
|
123
|
-
); // eslint-disable-line no-console
|
|
124
|
-
console.log(); // eslint-disable-line no-console
|
|
125
|
-
});
|
|
126
|
-
}); // eslint-disable-line no-console
|
|
127
|
-
|
|
128
|
-
return builderCmd;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
// eslint-disable-line no-console
|
|
133
|
-
* Real-time Debugger commands
|
|
134
|
-
*/
|
|
135
|
-
function createDebuggerCommand() {
|
|
136
|
-
// eslint-disable-line no-console
|
|
137
|
-
const debugCmd = new Command('debug');
|
|
138
|
-
|
|
139
|
-
// eslint-disable-line no-console
|
|
140
|
-
debugCmd
|
|
141
|
-
.description('Real-time debugging and inspection')
|
|
142
|
-
// eslint-disable-line no-console
|
|
143
|
-
.option('-p, --port <port>', 'WebSocket port', '3002')
|
|
144
|
-
.action(async (options) => {
|
|
145
|
-
// eslint-disable-line no-console
|
|
146
|
-
console.log(chalk.blue('š Starting Real-time Debugger...')); // eslint-disable-line no-console
|
|
147
|
-
|
|
148
|
-
const port = options.port || 8080;
|
|
149
|
-
|
|
150
|
-
const realtimeDebugger = new RealtimeDebugger({
|
|
151
|
-
port: parseInt(port),
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
try {
|
|
155
|
-
realtimeDebugger.startWebSocketServer();
|
|
156
|
-
|
|
157
|
-
console.log(chalk.green('ā
Real-time Debugger started!')); // eslint-disable-line no-console
|
|
158
|
-
console.log(chalk.cyan(`š WebSocket server running on port ${port}`)); // eslint-disable-line no-console
|
|
159
|
-
console.log(chalk.yellow('š§ Available features:')); // eslint-disable-line no-console
|
|
160
|
-
console.log(' ⢠Breakpoints and step-through debugging'); // eslint-disable-line no-console
|
|
161
|
-
console.log(' ⢠Variable inspection'); // eslint-disable-line no-console
|
|
162
|
-
console.log(' ⢠Real-time execution monitoring'); // eslint-disable-line no-console
|
|
163
|
-
console.log(' ⢠Performance tracking'); // eslint-disable-line no-console
|
|
164
|
-
|
|
165
|
-
console.log(chalk.gray('\nPress Ctrl+C to stop the debugger')); // eslint-disable-line no-console
|
|
166
|
-
|
|
167
|
-
process.on('SIGINT', () => {
|
|
168
|
-
console.log(chalk.yellow('\nš Stopping realtimeDebugger...')); // eslint-disable-line no-console
|
|
169
|
-
realtimeDebugger.stopWebSocketServer();
|
|
170
|
-
console.log(chalk.green('ā
Debugger stopped')); // eslint-disable-line no-console
|
|
171
|
-
process.exit(0);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
setInterval(() => {}, 1000);
|
|
175
|
-
|
|
176
|
-
// eslint-disable-line no-console
|
|
177
|
-
} catch (error) {
|
|
178
|
-
console.error(chalk.red('ā Failed to start debugger:'), error.message); // eslint-disable-line no-console
|
|
179
|
-
process.exit(1);
|
|
180
|
-
}
|
|
181
|
-
// eslint-disable-line no-console
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
// eslint-disable-line no-console
|
|
185
|
-
debugCmd
|
|
186
|
-
.command('session <sessionId>')
|
|
187
|
-
// eslint-disable-line no-console
|
|
188
|
-
.description('Start a debug session')
|
|
189
|
-
.option('-c, --config <config>', 'Pipeline config file')
|
|
190
|
-
// eslint-disable-line no-console
|
|
191
|
-
.action(async (sessionId, options) => {
|
|
192
|
-
const realtimeDebugger = new RealtimeDebugger(); // eslint-disable-line no-console
|
|
193
|
-
|
|
194
|
-
let pipelineConfig = {};
|
|
195
|
-
if (options.config) {
|
|
196
|
-
// eslint-disable-line no-console
|
|
197
|
-
const fs = require('fs'); // eslint-disable-line global-require
|
|
198
|
-
pipelineConfig = JSON.parse(fs.readFileSync(options.config, 'utf8'));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// eslint-disable-line no-console
|
|
202
|
-
const session = await realtimeDebugger.startSession(
|
|
203
|
-
sessionId,
|
|
204
|
-
pipelineConfig,
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
console.log(chalk.green(`ā
Debug session started: ${sessionId}`)); // eslint-disable-line no-console
|
|
208
|
-
console.log(chalk.cyan('š Session details:')); // eslint-disable-line no-console
|
|
209
|
-
console.log(` Status: ${session.status}`); // eslint-disable-line no-console
|
|
210
|
-
console.log(
|
|
211
|
-
` Started: ${new Date(session.startTime).toLocaleString()}`,
|
|
212
|
-
); // eslint-disable-line no-console
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
return debugCmd;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
// eslint-disable-line no-console
|
|
219
|
-
/**
|
|
220
|
-
* Performance Profiler commands
|
|
221
|
-
*/
|
|
222
|
-
function createProfilerCommand() {
|
|
223
|
-
const profilerCmd = new Command('profile');
|
|
224
|
-
|
|
225
|
-
profilerCmd
|
|
226
|
-
.description('Performance profiling and analysis')
|
|
227
|
-
.option('--cpu', 'Enable CPU profiling', true)
|
|
228
|
-
.option('--memory', 'Enable memory profiling', true)
|
|
229
|
-
.option('--network', 'Enable network profiling', true)
|
|
230
|
-
.option('-o, --output <dir>', 'Output directory', './profiling-reports')
|
|
231
|
-
.action(async (_options) => {
|
|
232
|
-
console.log(chalk.blue('š Performance Profiler')); // eslint-disable-line no-console
|
|
233
|
-
console.log(chalk.yellow('Available commands:')); // eslint-disable-line no-console
|
|
234
|
-
console.log(' ⢠profile start <sessionId> - Start profiling'); // eslint-disable-line no-console
|
|
235
|
-
console.log(' ⢠profile stop - Stop profiling'); // eslint-disable-line no-console
|
|
236
|
-
console.log(' ⢠profile report <sessionId> - Generate report'); // eslint-disable-line no-console
|
|
237
|
-
console.log(' ⢠profile list - List all profiles'); // eslint-disable-line no-console
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
// eslint-disable-line no-console
|
|
241
|
-
profilerCmd
|
|
242
|
-
.command('start <sessionId>')
|
|
243
|
-
// eslint-disable-line no-console
|
|
244
|
-
.description('Start performance profiling')
|
|
245
|
-
.action(async (sessionId, options) => {
|
|
246
|
-
// eslint-disable-line no-console
|
|
247
|
-
const profiler = new PerformanceProfiler({
|
|
248
|
-
enableCPUProfiling: options.cpu,
|
|
249
|
-
// eslint-disable-line no-console
|
|
250
|
-
enableMemoryProfiling: options.memory,
|
|
251
|
-
enableNetworkProfiling: options.network,
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
profiler.startProfiling(sessionId);
|
|
255
|
-
|
|
256
|
-
console.log(chalk.green(`ā
Profiling started: ${sessionId}`)); // eslint-disable-line no-console
|
|
257
|
-
console.log(chalk.cyan('š Collecting performance metrics...')); // eslint-disable-line no-console
|
|
258
|
-
console.log(chalk.gray('Use \'profile stop\' to end profiling')); // eslint-disable-line no-console
|
|
259
|
-
});
|
|
260
|
-
|
|
261
|
-
profilerCmd
|
|
262
|
-
.command('stop')
|
|
263
|
-
.description('Stop current profiling session')
|
|
264
|
-
.action(async () => {
|
|
265
|
-
// This would need to access the current profiler instance
|
|
266
|
-
console.log(chalk.green('ā
Profiling stopped')); // eslint-disable-line no-console
|
|
267
|
-
console.log(chalk.cyan('š Generating analysis...')); // eslint-disable-line no-console
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
// eslint-disable-line no-console
|
|
271
|
-
profilerCmd
|
|
272
|
-
.command('report <sessionId>')
|
|
273
|
-
// eslint-disable-line no-console
|
|
274
|
-
.description('Generate performance report')
|
|
275
|
-
.option('-f, --format <format>', 'Report format (json|html)', 'html')
|
|
276
|
-
// eslint-disable-line no-console
|
|
277
|
-
.action(async (sessionId, _options) => {
|
|
278
|
-
const profiler = new PerformanceProfiler(); // eslint-disable-line no-console
|
|
279
|
-
|
|
280
|
-
try {
|
|
281
|
-
// eslint-disable-line no-console
|
|
282
|
-
const reportPath = await profiler.generateReport(
|
|
283
|
-
sessionId,
|
|
284
|
-
_options.format,
|
|
285
|
-
);
|
|
286
|
-
|
|
287
|
-
// eslint-disable-line no-console
|
|
288
|
-
console.log(chalk.green(`ā
Report generated: ${reportPath}`)); // eslint-disable-line no-console
|
|
289
|
-
console.log(chalk.cyan('š Report includes:')); // eslint-disable-line no-console
|
|
290
|
-
console.log(' ⢠Performance summary'); // eslint-disable-line no-console
|
|
291
|
-
console.log(' ⢠Bottleneck analysis'); // eslint-disable-line no-console
|
|
292
|
-
console.log(' ⢠Optimization recommendations'); // eslint-disable-line no-console
|
|
293
|
-
console.log(' ⢠Flame graph data'); // eslint-disable-line no-console
|
|
294
|
-
} catch (error) {
|
|
295
|
-
console.error(
|
|
296
|
-
chalk.red('ā Failed to generate report:'),
|
|
297
|
-
error.message,
|
|
298
|
-
); // eslint-disable-line no-console
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
return profilerCmd;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
// eslint-disable-line no-console
|
|
307
|
-
* Integration Templates commands
|
|
308
|
-
*/
|
|
309
|
-
// eslint-disable-line no-console
|
|
310
|
-
function createTemplatesCommand() {
|
|
311
|
-
const templatesCmd = new Command('templates'); // eslint-disable-line no-console
|
|
312
|
-
|
|
313
|
-
templatesCmd
|
|
314
|
-
.description('Integration templates and connectors')
|
|
315
|
-
.action(async () => {
|
|
316
|
-
const templates = new IntegrationTemplates();
|
|
317
|
-
const stats = templates.getStatistics();
|
|
318
|
-
|
|
319
|
-
console.log(chalk.blue('š Integration Templates')); // eslint-disable-line no-console
|
|
320
|
-
console.log(
|
|
321
|
-
chalk.cyan(
|
|
322
|
-
`š ${stats.totalTemplates} templates available in ${stats.totalCategories} categories`,
|
|
323
|
-
),
|
|
324
|
-
); // eslint-disable-line no-console
|
|
325
|
-
console.log(); // eslint-disable-line no-console
|
|
326
|
-
const categories = templates.getAllCategories();
|
|
327
|
-
categories.forEach((category) => {
|
|
328
|
-
const categoryTemplates = templates.getTemplatesByCategory(
|
|
329
|
-
category.name.toLowerCase().replace(/\s+/g, '-'),
|
|
330
|
-
);
|
|
331
|
-
console.log(
|
|
332
|
-
chalk.yellow(`š ${category.name} (${categoryTemplates.length})`),
|
|
333
|
-
); // eslint-disable-line no-console
|
|
334
|
-
console.log(` ${category.description}`); // eslint-disable-line no-console
|
|
335
|
-
|
|
336
|
-
categoryTemplates.forEach((template) => {
|
|
337
|
-
console.log(` ⢠${template.name}: ${template.description}`); // eslint-disable-line no-console
|
|
338
|
-
});
|
|
339
|
-
console.log(); // eslint-disable-line no-console
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
templatesCmd
|
|
344
|
-
// eslint-disable-line no-console
|
|
345
|
-
.command('list [category]')
|
|
346
|
-
.description('List available templates')
|
|
347
|
-
// eslint-disable-line no-console
|
|
348
|
-
.action(async (category, _options) => {
|
|
349
|
-
const templates = new IntegrationTemplates(); // eslint-disable-line no-console
|
|
350
|
-
|
|
351
|
-
let templateList; // eslint-disable-line no-console
|
|
352
|
-
if (category) {
|
|
353
|
-
templateList = templates.getTemplatesByCategory(category); // eslint-disable-line no-console
|
|
354
|
-
console.log(chalk.blue(`š Templates in category: ${category}`)); // eslint-disable-line no-console
|
|
355
|
-
} else {
|
|
356
|
-
// eslint-disable-line no-console
|
|
357
|
-
templateList = templates.getAllTemplates();
|
|
358
|
-
console.log(chalk.blue('š All Integration Templates')); // eslint-disable-line no-console
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// eslint-disable-line no-console
|
|
362
|
-
if (templateList.length === 0) {
|
|
363
|
-
console.log(chalk.yellow('š No templates found')); // eslint-disable-line no-console
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
templateList.forEach((template) => {
|
|
368
|
-
console.log(chalk.green(`š ${template.name}`)); // eslint-disable-line no-console
|
|
369
|
-
console.log(` Type: ${template.type}`); // eslint-disable-line no-console
|
|
370
|
-
console.log(` Category: ${template.category}`); // eslint-disable-line no-console
|
|
371
|
-
console.log(` Description: ${template.description}`); // eslint-disable-line no-console
|
|
372
|
-
console.log(` Dependencies: ${template.dependencies.join(', ')}`); // eslint-disable-line no-console
|
|
373
|
-
console.log(); // eslint-disable-line no-console
|
|
374
|
-
});
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
templatesCmd
|
|
378
|
-
.command('generate <templateId>')
|
|
379
|
-
.description('Generate integration code from template')
|
|
380
|
-
.option('-c, --_config <_config>', 'Configuration JSON file')
|
|
381
|
-
.option('-i, --interactive', 'Interactive configuration')
|
|
382
|
-
// eslint-disable-line no-console
|
|
383
|
-
.action(async (templateId, _options) => {
|
|
384
|
-
const templates = new IntegrationTemplates(); // eslint-disable-line no-console
|
|
385
|
-
const template = templates.getTemplate(templateId);
|
|
386
|
-
|
|
387
|
-
// eslint-disable-line no-console
|
|
388
|
-
if (!template) {
|
|
389
|
-
console.error(chalk.red(`ā Template not found: ${templateId}`)); // eslint-disable-line no-console
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
let config = {}; // eslint-disable-line no-console
|
|
394
|
-
|
|
395
|
-
if (_options.interactive) {
|
|
396
|
-
// eslint-disable-line no-console
|
|
397
|
-
// Interactive configuration
|
|
398
|
-
const questions = Object.entries(template._config).map(
|
|
399
|
-
([key, configDef]) => ({
|
|
400
|
-
_type: configDef._type === 'boolean' ? 'confirm' : 'input',
|
|
401
|
-
name: key,
|
|
402
|
-
// eslint-disable-line no-console
|
|
403
|
-
message: `${configDef.description}${configDef.required ? ' (required)' : ''}:`,
|
|
404
|
-
default: configDef.default,
|
|
405
|
-
validate: configDef.required
|
|
406
|
-
? (input) => (input ? true : 'This field is required')
|
|
407
|
-
: undefined,
|
|
408
|
-
// eslint-disable-line no-console
|
|
409
|
-
}),
|
|
410
|
-
);
|
|
411
|
-
|
|
412
|
-
config = await inquirer.prompt(questions);
|
|
413
|
-
} else if (_options._config) {
|
|
414
|
-
const fs = require('fs');
|
|
415
|
-
// eslint-disable-line global-require
|
|
416
|
-
config = JSON.parse(fs.readFileSync(_options.config, 'utf8'));
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
try {
|
|
420
|
-
const integration = templates.generateIntegration(templateId, config);
|
|
421
|
-
|
|
422
|
-
console.log(
|
|
423
|
-
chalk.green(`ā
Generated integration: ${integration.name}`),
|
|
424
|
-
); // eslint-disable-line no-console
|
|
425
|
-
console.log(chalk.cyan('š Setup Instructions:')); // eslint-disable-line no-console
|
|
426
|
-
console.log(integration.setupInstructions); // eslint-disable-line no-console
|
|
427
|
-
} catch (error) {
|
|
428
|
-
console.error(
|
|
429
|
-
chalk.red('ā Failed to generate integration:'),
|
|
430
|
-
error.message,
|
|
431
|
-
); // eslint-disable-line no-console
|
|
432
|
-
}
|
|
433
|
-
// eslint-disable-line no-console
|
|
434
|
-
});
|
|
435
|
-
|
|
436
|
-
return templatesCmd;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
// eslint-disable-line no-console
|
|
440
|
-
/**
|
|
441
|
-
* DX Dashboard command
|
|
442
|
-
*/
|
|
443
|
-
function createDashboardCommand() {
|
|
444
|
-
const dashboardCmd = new Command('dashboard');
|
|
445
|
-
|
|
446
|
-
// eslint-disable-line no-console
|
|
447
|
-
dashboardCmd
|
|
448
|
-
.description('Launch DX dashboard with all tools')
|
|
449
|
-
// eslint-disable-line no-console
|
|
450
|
-
.option('-p, --port <port>', 'Dashboard port', '3000')
|
|
451
|
-
.action(async (__options) => {
|
|
452
|
-
// eslint-disable-line no-console
|
|
453
|
-
console.log(chalk.blue('š Starting DX Dashboard...')); // eslint-disable-line no-console
|
|
454
|
-
// Start all DX services
|
|
455
|
-
const builder = new VisualPipelineBuilder({ port: 3001 }); // eslint-disable-line no-console
|
|
456
|
-
const realtimeDebugger = new RealtimeDebugger({ port: 3002 });
|
|
457
|
-
const _profiler = new PerformanceProfiler(); // eslint-disable-line no-console
|
|
458
|
-
|
|
459
|
-
try {
|
|
460
|
-
await builder.startServer();
|
|
461
|
-
realtimeDebugger.startWebSocketServer();
|
|
462
|
-
|
|
463
|
-
console.log(chalk.green('ā
DX Dashboard started successfully!')); // eslint-disable-line no-console
|
|
464
|
-
console.log(chalk.cyan('š Available services:')); // eslint-disable-line no-console
|
|
465
|
-
console.log(' ⢠Visual Builder: http://localhost:3001'); // eslint-disable-line no-console
|
|
466
|
-
console.log(' ⢠Real-time Debugger: ws://localhost:3002'); // eslint-disable-line no-console
|
|
467
|
-
console.log(' ⢠Performance Profiler: Active'); // eslint-disable-line no-console
|
|
468
|
-
console.log(' ⢠Integration Templates: Available'); // eslint-disable-line no-console
|
|
469
|
-
|
|
470
|
-
console.log(chalk.yellow('\nšÆ Quick Start:')); // eslint-disable-line no-console
|
|
471
|
-
console.log(' 1. Open Visual Builder to create pipelines'); // eslint-disable-line no-console
|
|
472
|
-
console.log(' 2. Use debugger for real-time inspection'); // eslint-disable-line no-console
|
|
473
|
-
console.log(' 3. Profile performance for optimization'); // eslint-disable-line no-console
|
|
474
|
-
console.log(' 4. Browse templates for integrations'); // eslint-disable-line no-console
|
|
475
|
-
|
|
476
|
-
console.log(chalk.gray('\nPress Ctrl+C to stop all services')); // eslint-disable-line no-console
|
|
477
|
-
|
|
478
|
-
process.on('SIGINT', async () => {
|
|
479
|
-
console.log(chalk.yellow('\nš Stopping DX Dashboard...')); // eslint-disable-line no-console
|
|
480
|
-
await builder.stopServer();
|
|
481
|
-
realtimeDebugger.stopWebSocketServer();
|
|
482
|
-
console.log(chalk.green('ā
All services stopped')); // eslint-disable-line no-console
|
|
483
|
-
process.exit(0);
|
|
484
|
-
});
|
|
485
|
-
|
|
486
|
-
setInterval(() => {}, 1000);
|
|
487
|
-
} catch (error) {
|
|
488
|
-
console.error(
|
|
489
|
-
chalk.red('ā Failed to start DX Dashboard:'),
|
|
490
|
-
error.message,
|
|
491
|
-
); // eslint-disable-line no-console
|
|
492
|
-
process.exit(1);
|
|
493
|
-
}
|
|
494
|
-
});
|
|
495
|
-
|
|
496
|
-
return dashboardCmd;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
module.exports = dxCommand;
|
|
500
|
-
// eslint-disable-line no-console
|
|
501
|
-
|
|
502
|
-
undefined; // eslint-disable-line no-console
|
|
503
|
-
|
|
504
|
-
undefined; // eslint-disable-line no-console
|
|
505
|
-
|
|
506
|
-
undefined; // eslint-disable-line no-console
|
|
507
|
-
|
|
508
|
-
undefined; // eslint-disable-line no-console
|
|
509
|
-
|
|
510
|
-
undefined; // eslint-disable-line no-console
|
|
511
|
-
|
|
512
|
-
undefined; // eslint-disable-line no-console
|
|
513
|
-
|
|
514
|
-
undefined; // eslint-disable-line no-console
|
|
515
|
-
|
|
516
|
-
undefined; // eslint-disable-line no-console
|
|
517
|
-
|
|
518
|
-
undefined; // eslint-disable-line no-console
|
|
519
|
-
|
|
520
|
-
undefined; // eslint-disable-line no-console
|
|
521
|
-
|
|
522
|
-
undefined; // eslint-disable-line no-console
|
|
523
|
-
|
|
524
|
-
undefined; // eslint-disable-line no-console
|
|
525
|
-
|
|
526
|
-
undefined; // eslint-disable-line no-console
|
|
527
|
-
|
|
528
|
-
undefined; // eslint-disable-line no-console
|
|
529
|
-
|
|
530
|
-
undefined; // eslint-disable-line no-console
|
|
531
|
-
|
|
532
|
-
undefined; // eslint-disable-line no-console
|
|
533
|
-
|
|
534
|
-
undefined; // eslint-disable-line no-console
|
|
535
|
-
|
|
536
|
-
undefined; // eslint-disable-line no-console
|
|
537
|
-
|
|
538
|
-
undefined; // eslint-disable-line no-console
|