@juspay/neurolink 9.24.0 → 9.25.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/CHANGELOG.md +6 -0
- package/dist/adapters/tts/googleTTSHandler.js +26 -1
- package/dist/adapters/video/vertexVideoHandler.js +23 -17
- package/dist/cli/commands/config.d.ts +3 -3
- package/dist/cli/commands/observability.d.ts +53 -0
- package/dist/cli/commands/observability.js +453 -0
- package/dist/cli/commands/telemetry.d.ts +63 -0
- package/dist/cli/commands/telemetry.js +689 -0
- package/dist/cli/factories/commandFactory.js +29 -15
- package/dist/cli/parser.js +6 -9
- package/dist/cli/utils/formatters.d.ts +13 -0
- package/dist/cli/utils/formatters.js +23 -0
- package/dist/constants/contextWindows.js +6 -0
- package/dist/constants/enums.d.ts +6 -0
- package/dist/constants/enums.js +8 -2
- package/dist/context/budgetChecker.js +75 -48
- package/dist/context/contextCompactor.js +135 -127
- package/dist/core/baseProvider.d.ts +5 -0
- package/dist/core/baseProvider.js +158 -102
- package/dist/core/conversationMemoryInitializer.js +7 -4
- package/dist/core/conversationMemoryManager.d.ts +2 -0
- package/dist/core/conversationMemoryManager.js +6 -2
- package/dist/core/modules/GenerationHandler.d.ts +2 -2
- package/dist/core/modules/GenerationHandler.js +12 -12
- package/dist/evaluation/ragasEvaluator.js +39 -19
- package/dist/evaluation/scoring.js +46 -20
- package/dist/features/ppt/presentationOrchestrator.js +23 -0
- package/dist/features/ppt/slideGenerator.js +13 -0
- package/dist/features/ppt/slideRenderers.d.ts +1 -1
- package/dist/features/ppt/slideRenderers.js +6 -4
- package/dist/features/ppt/slideTypeInference.d.ts +1 -1
- package/dist/features/ppt/slideTypeInference.js +75 -73
- package/dist/files/fileTools.d.ts +6 -6
- package/dist/index.d.ts +46 -12
- package/dist/index.js +79 -17
- package/dist/lib/adapters/tts/googleTTSHandler.js +26 -1
- package/dist/lib/adapters/video/vertexVideoHandler.js +23 -17
- package/dist/lib/constants/contextWindows.js +6 -0
- package/dist/lib/constants/enums.d.ts +6 -0
- package/dist/lib/constants/enums.js +8 -2
- package/dist/lib/context/budgetChecker.js +75 -48
- package/dist/lib/context/contextCompactor.js +135 -127
- package/dist/lib/core/baseProvider.d.ts +5 -0
- package/dist/lib/core/baseProvider.js +158 -102
- package/dist/lib/core/conversationMemoryInitializer.js +7 -4
- package/dist/lib/core/conversationMemoryManager.d.ts +2 -0
- package/dist/lib/core/conversationMemoryManager.js +6 -2
- package/dist/lib/core/modules/GenerationHandler.d.ts +2 -2
- package/dist/lib/core/modules/GenerationHandler.js +12 -12
- package/dist/lib/evaluation/ragasEvaluator.js +39 -19
- package/dist/lib/evaluation/scoring.js +46 -20
- package/dist/lib/features/ppt/presentationOrchestrator.js +23 -0
- package/dist/lib/features/ppt/slideGenerator.js +13 -0
- package/dist/lib/features/ppt/slideRenderers.d.ts +1 -1
- package/dist/lib/features/ppt/slideRenderers.js +6 -4
- package/dist/lib/features/ppt/slideTypeInference.d.ts +1 -1
- package/dist/lib/features/ppt/slideTypeInference.js +75 -73
- package/dist/lib/files/fileTools.d.ts +6 -6
- package/dist/lib/index.d.ts +46 -12
- package/dist/lib/index.js +79 -17
- package/dist/lib/mcp/httpRateLimiter.js +39 -12
- package/dist/lib/mcp/httpRetryHandler.js +22 -1
- package/dist/lib/mcp/mcpClientFactory.js +13 -15
- package/dist/lib/memory/memoryRetrievalTools.js +22 -0
- package/dist/lib/neurolink.d.ts +64 -72
- package/dist/lib/neurolink.js +984 -566
- package/dist/lib/observability/exporterRegistry.d.ts +152 -0
- package/dist/lib/observability/exporterRegistry.js +414 -0
- package/dist/lib/observability/exporters/arizeExporter.d.ts +32 -0
- package/dist/lib/observability/exporters/arizeExporter.js +139 -0
- package/dist/lib/observability/exporters/baseExporter.d.ts +117 -0
- package/dist/lib/observability/exporters/baseExporter.js +191 -0
- package/dist/lib/observability/exporters/braintrustExporter.d.ts +30 -0
- package/dist/lib/observability/exporters/braintrustExporter.js +155 -0
- package/dist/lib/observability/exporters/datadogExporter.d.ts +37 -0
- package/dist/lib/observability/exporters/datadogExporter.js +197 -0
- package/dist/lib/observability/exporters/index.d.ts +13 -0
- package/dist/lib/observability/exporters/index.js +14 -0
- package/dist/lib/observability/exporters/laminarExporter.d.ts +48 -0
- package/dist/lib/observability/exporters/laminarExporter.js +303 -0
- package/dist/lib/observability/exporters/langfuseExporter.d.ts +47 -0
- package/dist/lib/observability/exporters/langfuseExporter.js +200 -0
- package/dist/lib/observability/exporters/langsmithExporter.d.ts +26 -0
- package/dist/lib/observability/exporters/langsmithExporter.js +124 -0
- package/dist/lib/observability/exporters/otelExporter.d.ts +39 -0
- package/dist/lib/observability/exporters/otelExporter.js +165 -0
- package/dist/lib/observability/exporters/posthogExporter.d.ts +48 -0
- package/dist/lib/observability/exporters/posthogExporter.js +288 -0
- package/dist/lib/observability/exporters/sentryExporter.d.ts +32 -0
- package/dist/lib/observability/exporters/sentryExporter.js +166 -0
- package/dist/lib/observability/index.d.ts +25 -0
- package/dist/lib/observability/index.js +32 -0
- package/dist/lib/observability/metricsAggregator.d.ts +260 -0
- package/dist/lib/observability/metricsAggregator.js +553 -0
- package/dist/lib/observability/otelBridge.d.ts +49 -0
- package/dist/lib/observability/otelBridge.js +132 -0
- package/dist/lib/observability/retryPolicy.d.ts +192 -0
- package/dist/lib/observability/retryPolicy.js +384 -0
- package/dist/lib/observability/sampling/index.d.ts +4 -0
- package/dist/lib/observability/sampling/index.js +5 -0
- package/dist/lib/observability/sampling/samplers.d.ts +116 -0
- package/dist/lib/observability/sampling/samplers.js +217 -0
- package/dist/lib/observability/spanProcessor.d.ts +129 -0
- package/dist/lib/observability/spanProcessor.js +288 -0
- package/dist/lib/observability/tokenTracker.d.ts +156 -0
- package/dist/lib/observability/tokenTracker.js +414 -0
- package/dist/lib/observability/types/exporterTypes.d.ts +250 -0
- package/dist/lib/observability/types/exporterTypes.js +6 -0
- package/dist/lib/observability/types/index.d.ts +6 -0
- package/dist/lib/observability/types/index.js +5 -0
- package/dist/lib/observability/types/spanTypes.d.ts +244 -0
- package/dist/lib/observability/types/spanTypes.js +93 -0
- package/dist/lib/observability/utils/index.d.ts +4 -0
- package/dist/lib/observability/utils/index.js +5 -0
- package/dist/lib/observability/utils/spanSerializer.d.ts +115 -0
- package/dist/lib/observability/utils/spanSerializer.js +287 -0
- package/dist/lib/providers/amazonSagemaker.d.ts +5 -4
- package/dist/lib/providers/amazonSagemaker.js +3 -4
- package/dist/lib/providers/googleVertex.d.ts +7 -0
- package/dist/lib/providers/googleVertex.js +80 -2
- package/dist/lib/rag/pipeline/RAGPipeline.d.ts +0 -5
- package/dist/lib/rag/pipeline/RAGPipeline.js +122 -87
- package/dist/lib/rag/ragIntegration.js +30 -0
- package/dist/lib/rag/retrieval/hybridSearch.js +22 -0
- package/dist/lib/server/abstract/baseServerAdapter.js +51 -19
- package/dist/lib/server/middleware/common.js +44 -12
- package/dist/lib/services/server/ai/observability/instrumentation.d.ts +2 -2
- package/dist/lib/services/server/ai/observability/instrumentation.js +10 -5
- package/dist/lib/types/conversationMemoryInterface.d.ts +2 -0
- package/dist/lib/types/modelTypes.d.ts +18 -18
- package/dist/lib/types/providers.d.ts +5 -0
- package/dist/lib/utils/pricing.js +25 -1
- package/dist/lib/utils/ttsProcessor.js +74 -59
- package/dist/lib/workflow/config.d.ts +36 -36
- package/dist/lib/workflow/core/ensembleExecutor.js +10 -0
- package/dist/lib/workflow/core/judgeScorer.js +20 -2
- package/dist/lib/workflow/core/workflowRunner.js +34 -1
- package/dist/mcp/httpRateLimiter.js +39 -12
- package/dist/mcp/httpRetryHandler.js +22 -1
- package/dist/mcp/mcpClientFactory.js +13 -15
- package/dist/memory/memoryRetrievalTools.js +22 -0
- package/dist/neurolink.d.ts +64 -72
- package/dist/neurolink.js +984 -566
- package/dist/observability/FEATURE-STATUS.md +269 -0
- package/dist/observability/exporterRegistry.d.ts +152 -0
- package/dist/observability/exporterRegistry.js +413 -0
- package/dist/observability/exporters/arizeExporter.d.ts +32 -0
- package/dist/observability/exporters/arizeExporter.js +138 -0
- package/dist/observability/exporters/baseExporter.d.ts +117 -0
- package/dist/observability/exporters/baseExporter.js +190 -0
- package/dist/observability/exporters/braintrustExporter.d.ts +30 -0
- package/dist/observability/exporters/braintrustExporter.js +154 -0
- package/dist/observability/exporters/datadogExporter.d.ts +37 -0
- package/dist/observability/exporters/datadogExporter.js +196 -0
- package/dist/observability/exporters/index.d.ts +13 -0
- package/dist/observability/exporters/index.js +13 -0
- package/dist/observability/exporters/laminarExporter.d.ts +48 -0
- package/dist/observability/exporters/laminarExporter.js +302 -0
- package/dist/observability/exporters/langfuseExporter.d.ts +47 -0
- package/dist/observability/exporters/langfuseExporter.js +199 -0
- package/dist/observability/exporters/langsmithExporter.d.ts +26 -0
- package/dist/observability/exporters/langsmithExporter.js +123 -0
- package/dist/observability/exporters/otelExporter.d.ts +39 -0
- package/dist/observability/exporters/otelExporter.js +164 -0
- package/dist/observability/exporters/posthogExporter.d.ts +48 -0
- package/dist/observability/exporters/posthogExporter.js +287 -0
- package/dist/observability/exporters/sentryExporter.d.ts +32 -0
- package/dist/observability/exporters/sentryExporter.js +165 -0
- package/dist/observability/index.d.ts +25 -0
- package/dist/observability/index.js +31 -0
- package/dist/observability/metricsAggregator.d.ts +260 -0
- package/dist/observability/metricsAggregator.js +552 -0
- package/dist/observability/otelBridge.d.ts +49 -0
- package/dist/observability/otelBridge.js +131 -0
- package/dist/observability/retryPolicy.d.ts +192 -0
- package/dist/observability/retryPolicy.js +383 -0
- package/dist/observability/sampling/index.d.ts +4 -0
- package/dist/observability/sampling/index.js +4 -0
- package/dist/observability/sampling/samplers.d.ts +116 -0
- package/dist/observability/sampling/samplers.js +216 -0
- package/dist/observability/spanProcessor.d.ts +129 -0
- package/dist/observability/spanProcessor.js +287 -0
- package/dist/observability/tokenTracker.d.ts +156 -0
- package/dist/observability/tokenTracker.js +413 -0
- package/dist/observability/types/exporterTypes.d.ts +250 -0
- package/dist/observability/types/exporterTypes.js +5 -0
- package/dist/observability/types/index.d.ts +6 -0
- package/dist/observability/types/index.js +4 -0
- package/dist/observability/types/spanTypes.d.ts +244 -0
- package/dist/observability/types/spanTypes.js +92 -0
- package/dist/observability/utils/index.d.ts +4 -0
- package/dist/observability/utils/index.js +4 -0
- package/dist/observability/utils/spanSerializer.d.ts +115 -0
- package/dist/observability/utils/spanSerializer.js +286 -0
- package/dist/providers/amazonSagemaker.d.ts +5 -4
- package/dist/providers/amazonSagemaker.js +3 -4
- package/dist/providers/googleVertex.d.ts +7 -0
- package/dist/providers/googleVertex.js +80 -2
- package/dist/rag/pipeline/RAGPipeline.d.ts +0 -5
- package/dist/rag/pipeline/RAGPipeline.js +122 -87
- package/dist/rag/ragIntegration.js +30 -0
- package/dist/rag/retrieval/hybridSearch.js +22 -0
- package/dist/server/abstract/baseServerAdapter.js +51 -19
- package/dist/server/middleware/common.js +44 -12
- package/dist/services/server/ai/observability/instrumentation.d.ts +2 -2
- package/dist/services/server/ai/observability/instrumentation.js +10 -5
- package/dist/types/conversationMemoryInterface.d.ts +2 -0
- package/dist/types/providers.d.ts +5 -0
- package/dist/utils/pricing.js +25 -1
- package/dist/utils/ttsProcessor.js +74 -59
- package/dist/workflow/config.d.ts +52 -52
- package/dist/workflow/core/ensembleExecutor.js +10 -0
- package/dist/workflow/core/judgeScorer.js +20 -2
- package/dist/workflow/core/workflowRunner.js +34 -1
- package/package.json +1 -1
|
@@ -21,6 +21,8 @@ import { SlideGenerator } from "./slideGenerator.js";
|
|
|
21
21
|
import { PPT_GENERATION_TIMEOUT_MS } from "./constants.js";
|
|
22
22
|
import { logger } from "../../utils/logger.js";
|
|
23
23
|
import { withTimeout, ErrorFactory } from "../../utils/errorHandling.js";
|
|
24
|
+
import { SpanSerializer, SpanType, SpanStatus, } from "../../observability/index.js";
|
|
25
|
+
import { getMetricsAggregator } from "../../observability/index.js";
|
|
24
26
|
import { generateOutputPath, ensureOutputDirectory, normalizeLogoConfig, getLayoutName, getFailureStage, toError, } from "./utils.js";
|
|
25
27
|
// ============================================================================
|
|
26
28
|
// MAIN ORCHESTRATION FUNCTION
|
|
@@ -48,6 +50,13 @@ import { generateOutputPath, ensureOutputDirectory, normalizeLogoConfig, getLayo
|
|
|
48
50
|
* ```
|
|
49
51
|
*/
|
|
50
52
|
export async function generatePresentation(options) {
|
|
53
|
+
const span = SpanSerializer.createSpan(SpanType.PPT_GENERATION, "ppt.orchestrate", {
|
|
54
|
+
"ppt.operation": "orchestrate",
|
|
55
|
+
"ppt.slideCount": options.context.pages,
|
|
56
|
+
"ppt.theme": typeof options.context.theme === "string"
|
|
57
|
+
? options.context.theme
|
|
58
|
+
: "custom",
|
|
59
|
+
});
|
|
51
60
|
const state = {
|
|
52
61
|
startTime: Date.now(),
|
|
53
62
|
contentPlan: null,
|
|
@@ -73,6 +82,12 @@ export async function generatePresentation(options) {
|
|
|
73
82
|
ErrorFactory.toolTimeout("contentPlanning", PPT_GENERATION_TIMEOUT_MS / 2));
|
|
74
83
|
// Post-process: ensure title and thank-you slides
|
|
75
84
|
state.contentPlan = postProcessPlan(planResult);
|
|
85
|
+
// Update span attributes with post-processed plan values (AI may have changed slide count/theme)
|
|
86
|
+
span.attributes["ppt.slideCount"] = state.contentPlan.totalSlides;
|
|
87
|
+
span.attributes["ppt.theme"] =
|
|
88
|
+
typeof state.contentPlan.theme === "string"
|
|
89
|
+
? state.contentPlan.theme
|
|
90
|
+
: "custom";
|
|
76
91
|
logger.info("[PresentationOrchestrator] Content plan ready", {
|
|
77
92
|
title: state.contentPlan.title,
|
|
78
93
|
totalSlides: state.contentPlan.totalSlides,
|
|
@@ -163,6 +178,9 @@ export async function generatePresentation(options) {
|
|
|
163
178
|
// =========================================================================
|
|
164
179
|
// STEP 5: Return Result
|
|
165
180
|
// =========================================================================
|
|
181
|
+
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
|
|
182
|
+
getMetricsAggregator().recordSpan(endedSpan);
|
|
183
|
+
neurolink?.recordMetricsSpan(endedSpan);
|
|
166
184
|
// Use values from content plan (AI may have chosen them if "AI will decide" was passed)
|
|
167
185
|
const finalTheme = state.contentPlan?.theme || context.theme;
|
|
168
186
|
const finalAudience = state.contentPlan?.audience || context.audience;
|
|
@@ -185,6 +203,11 @@ export async function generatePresentation(options) {
|
|
|
185
203
|
};
|
|
186
204
|
}
|
|
187
205
|
catch (error) {
|
|
206
|
+
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
|
|
207
|
+
endedSpan.statusMessage =
|
|
208
|
+
error instanceof Error ? error.message : String(error);
|
|
209
|
+
getMetricsAggregator().recordSpan(endedSpan);
|
|
210
|
+
neurolink?.recordMetricsSpan(endedSpan);
|
|
188
211
|
// Re-throw PPTError as-is
|
|
189
212
|
if (error instanceof PPTError) {
|
|
190
213
|
logger.error("[PresentationOrchestrator] Generation failed", {
|
|
@@ -19,6 +19,8 @@ import { SLIDE_DIMENSIONS } from "./types.js";
|
|
|
19
19
|
import { getTheme, isImageSlideType, enhanceImagePrompt, IMAGE_GENERATION_TIMEOUT_MS, MAX_CONCURRENT_IMAGE_GENERATIONS, } from "./constants.js";
|
|
20
20
|
import { logger } from "../../utils/logger.js";
|
|
21
21
|
import { withTimeout, ErrorFactory, NeuroLinkError, } from "../../utils/errorHandling.js";
|
|
22
|
+
import { SpanSerializer, SpanType, SpanStatus, } from "../../observability/index.js";
|
|
23
|
+
import { getMetricsAggregator } from "../../observability/index.js";
|
|
22
24
|
import { NeuroLink } from "../../neurolink.js";
|
|
23
25
|
import { LAYOUT_POSITIONS, renderTitleSlide, renderSectionHeaderSlide, renderThankYouSlide, renderContentSlide, renderImageSlide, renderTwoColumnSlide, renderThreeColumnSlide, renderQuoteSlide, renderStatisticsSlide, renderChartSlide, renderTableSlide, renderTimelineSlide, renderProcessFlowSlide, renderComparisonSlide, renderFeaturesSlide, renderTeamSlide, renderConclusionSlide, renderDashboardSlide, renderMixedContentSlide, renderStatsGridSlide, renderIconGridSlide, } from "./slideRenderers.js";
|
|
24
26
|
// ============================================================================
|
|
@@ -86,6 +88,11 @@ export class SlideGenerator {
|
|
|
86
88
|
* Generate a single complete slide
|
|
87
89
|
*/
|
|
88
90
|
async generateSlide(slideSchema) {
|
|
91
|
+
const span = SpanSerializer.createSpan(SpanType.PPT_GENERATION, "ppt.generateSlide", {
|
|
92
|
+
"ppt.operation": "generateSlide",
|
|
93
|
+
"ppt.slideIndex": slideSchema.slideNumber,
|
|
94
|
+
"ppt.theme": this.theme.name,
|
|
95
|
+
});
|
|
89
96
|
const startTime = Date.now();
|
|
90
97
|
try {
|
|
91
98
|
let imageBuffer;
|
|
@@ -126,6 +133,8 @@ export class SlideGenerator {
|
|
|
126
133
|
hasImage: !!imageBuffer,
|
|
127
134
|
generationTime,
|
|
128
135
|
});
|
|
136
|
+
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.OK);
|
|
137
|
+
getMetricsAggregator().recordSpan(endedSpan);
|
|
129
138
|
return {
|
|
130
139
|
slideNumber: slideSchema.slideNumber,
|
|
131
140
|
schema: slideSchema,
|
|
@@ -135,6 +144,10 @@ export class SlideGenerator {
|
|
|
135
144
|
};
|
|
136
145
|
}
|
|
137
146
|
catch (error) {
|
|
147
|
+
const endedSpan = SpanSerializer.endSpan(span, SpanStatus.ERROR);
|
|
148
|
+
endedSpan.statusMessage =
|
|
149
|
+
error instanceof Error ? error.message : String(error);
|
|
150
|
+
getMetricsAggregator().recordSpan(endedSpan);
|
|
138
151
|
const err = error instanceof NeuroLinkError
|
|
139
152
|
? error
|
|
140
153
|
: ErrorFactory.toolExecutionFailed("slideGenerator", error instanceof Error ? error : new Error(String(error)));
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module presentation/slideRenderers
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
9
|
+
import type { BackgroundStyle, BulletPoint, ColumnData, PptxChartName, PptxSlide, PresentationTheme, RenderContentSlideOptions, SlideContent, SlideLayout, SlideType } from "./types.js";
|
|
10
10
|
export declare const LAYOUT_POSITIONS: {
|
|
11
11
|
margin: {
|
|
12
12
|
x: number;
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module presentation/slideRenderers
|
|
8
8
|
*/
|
|
9
|
-
import { getSlideTypeFormatting, getBulletOptions } from "./constants.js";
|
|
10
9
|
import { logger } from "../../utils/logger.js";
|
|
11
|
-
import {
|
|
10
|
+
import { getBulletOptions, getSlideTypeFormatting } from "./constants.js";
|
|
11
|
+
import { bufferToDataUrl, calculateFontSize, createFormattedTextProps, hasMarkdownFormatting, parseMarkdownText, validateImageBuffer, } from "./utils.js";
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// LAYOUT POSITIONS
|
|
14
14
|
// ============================================================================
|
|
@@ -986,9 +986,11 @@ export function renderThankYouSlide(slide, title, content, theme, imageBuffer) {
|
|
|
986
986
|
fit: DEFAULT_TEXT_FIT,
|
|
987
987
|
});
|
|
988
988
|
}
|
|
989
|
-
if (content.contactInfo.social &&
|
|
989
|
+
if (content.contactInfo.social &&
|
|
990
|
+
Array.isArray(content.contactInfo.social) &&
|
|
991
|
+
content.contactInfo.social.length > 0) {
|
|
990
992
|
const socialText = content.contactInfo.social
|
|
991
|
-
.map((s) => `${s.platform}: ${s.handle}`)
|
|
993
|
+
.map((s) => `${s.platform || ""}: ${s.handle || ""}`)
|
|
992
994
|
.join(" • ");
|
|
993
995
|
slide.addText(socialText, {
|
|
994
996
|
x: 0.5,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* This helps ensure consistent slide rendering when AI doesn't explicitly
|
|
10
10
|
* specify a slide type, or when we want to normalize AI responses.
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { BulletPoint, BulletStyle, SlideContent, SlideType } from "./types.js";
|
|
13
13
|
/**
|
|
14
14
|
* Infer slide type and bullet style from title text
|
|
15
15
|
*/
|
|
@@ -20,13 +20,13 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
20
20
|
// Agenda / Table of Contents - numbered list
|
|
21
21
|
{
|
|
22
22
|
patterns: [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
/\bagenda\b/i,
|
|
24
|
+
/\btable\s+of\s+contents\b/i,
|
|
25
|
+
/\boutline\b/i,
|
|
26
|
+
/\boverview\b/i,
|
|
27
|
+
/\bwhat\s+we('ll)?\s+cover\b/i,
|
|
28
|
+
/\btoday('s)?\s+topics?\b/i,
|
|
29
|
+
/\bsession\s+outline\b/i,
|
|
30
30
|
],
|
|
31
31
|
slideType: "agenda",
|
|
32
32
|
bulletStyle: "number",
|
|
@@ -34,18 +34,18 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
34
34
|
// Conclusion / Summary - checkmark
|
|
35
35
|
{
|
|
36
36
|
patterns: [
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
/\bconclusion\b/i,
|
|
38
|
+
/\bsummary\b/i,
|
|
39
|
+
/\bkey\s+takeaways?\b/i,
|
|
40
|
+
/\btakeaways?\b/i,
|
|
41
|
+
/\brecap\b/i,
|
|
42
|
+
/\bin\s+summary\b/i,
|
|
43
|
+
/\bwhat\s+we('ve)?\s+learned\b/i,
|
|
44
|
+
/\bmain\s+points?\b/i,
|
|
45
|
+
/\bkey\s+points?\b/i,
|
|
46
|
+
/\bhighlights?\b/i,
|
|
47
|
+
/\bachievements?\b/i,
|
|
48
|
+
/\baccomplishments?\b/i,
|
|
49
49
|
],
|
|
50
50
|
slideType: "conclusion",
|
|
51
51
|
bulletStyle: "checkmark",
|
|
@@ -53,15 +53,15 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
53
53
|
// Closing / Thank You - checkmark
|
|
54
54
|
{
|
|
55
55
|
patterns: [
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
/\bthank\s+you\b/i,
|
|
57
|
+
/\bthanks?\b/i,
|
|
58
|
+
/\bquestions?\b\??/i,
|
|
59
|
+
/\bq\s*&\s*a\b/i,
|
|
60
|
+
/\bcontact(\s+us)?\b/i,
|
|
61
|
+
/\bnext\s+steps?\b/i,
|
|
62
|
+
/\baction\s+items?\b/i,
|
|
63
|
+
/\blet('s)?\s+connect\b/i,
|
|
64
|
+
/\bget\s+(in\s+)?touch\b/i,
|
|
65
65
|
],
|
|
66
66
|
slideType: "closing",
|
|
67
67
|
bulletStyle: "checkmark",
|
|
@@ -69,14 +69,15 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
69
69
|
// Comparison - arrow bullets
|
|
70
70
|
{
|
|
71
71
|
patterns: [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
/\bcomparison\b/i,
|
|
73
|
+
/\bcompare\b/i,
|
|
74
|
+
/\bvs\.?\b/i,
|
|
75
|
+
/\bversus\b/i,
|
|
76
|
+
/\bbefore\s+(and|&|vs\.?)\s+after\b/i,
|
|
77
|
+
/\bpros?\s+(and|&|vs\.?)\s+cons?\b/i,
|
|
78
|
+
/\badvantages?\s+(and|&|vs\.?)\s+disadvantages?\b/i,
|
|
79
|
+
/\bbenefits?\s+(and|&|vs\.?)\s+risks?\b/i,
|
|
80
|
+
/\bold\s+vs\.?\s+new\b/i,
|
|
80
81
|
],
|
|
81
82
|
slideType: "comparison",
|
|
82
83
|
bulletStyle: "arrow",
|
|
@@ -84,15 +85,16 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
84
85
|
// Process / Steps - numbered
|
|
85
86
|
{
|
|
86
87
|
patterns: [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
/\bprocess\b/i,
|
|
89
|
+
/\bsteps?\b/i,
|
|
90
|
+
/\bstep[\s-]+by[\s-]+step\b/i,
|
|
91
|
+
/\bhow\s+to\b/i,
|
|
92
|
+
/\bworkflow\b/i,
|
|
93
|
+
/\bprocedure\b/i,
|
|
94
|
+
/\bmethodology\b/i,
|
|
95
|
+
/\d+\s+steps?\s+to\b/i,
|
|
96
|
+
/\bimplementation\s+steps?\b/i,
|
|
97
|
+
/\bgetting\s+started\b/i,
|
|
96
98
|
],
|
|
97
99
|
slideType: "numbered-list",
|
|
98
100
|
bulletStyle: "number",
|
|
@@ -100,21 +102,21 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
100
102
|
// Features / Benefits - disc (but could be checkmark for benefits)
|
|
101
103
|
{
|
|
102
104
|
patterns: [
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
/\bfeatures?\b/i,
|
|
106
|
+
/\bcapabilities?\b/i,
|
|
107
|
+
/\bwhat\s+(we|it)\s+offers?\b/i,
|
|
108
|
+
/\bour\s+offerings?\b/i,
|
|
107
109
|
],
|
|
108
110
|
slideType: "features",
|
|
109
111
|
bulletStyle: "disc",
|
|
110
112
|
},
|
|
111
113
|
{
|
|
112
114
|
patterns: [
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
/\bbenefits?\b/i,
|
|
116
|
+
/\badvantages?\b/i,
|
|
117
|
+
/\bwhy\s+choose\b/i,
|
|
118
|
+
/\breasons?\s+to\b/i,
|
|
119
|
+
/\bvalue\s+proposition\b/i,
|
|
118
120
|
],
|
|
119
121
|
slideType: "content",
|
|
120
122
|
bulletStyle: "checkmark",
|
|
@@ -122,12 +124,12 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
122
124
|
// Goals / Objectives - checkmark
|
|
123
125
|
{
|
|
124
126
|
patterns: [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
/\bgoals?\b/i,
|
|
128
|
+
/\bobjectives?\b/i,
|
|
129
|
+
/\btargets?\b/i,
|
|
130
|
+
/\baims?\b/i,
|
|
131
|
+
/\bour\s+mission\b/i,
|
|
132
|
+
/\bwhat\s+we\s+aim\s+for\b/i,
|
|
131
133
|
],
|
|
132
134
|
slideType: "content",
|
|
133
135
|
bulletStyle: "checkmark",
|
|
@@ -135,13 +137,13 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
135
137
|
// Challenges / Risks - arrow
|
|
136
138
|
{
|
|
137
139
|
patterns: [
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
/\bchallenges?\b/i,
|
|
141
|
+
/\brisks?\b/i,
|
|
142
|
+
/\bobstacles?\b/i,
|
|
143
|
+
/\bbarriers?\b/i,
|
|
144
|
+
/\bconcerns?\b/i,
|
|
145
|
+
/\bissues?\b/i,
|
|
146
|
+
/\bproblems?\b/i,
|
|
145
147
|
],
|
|
146
148
|
slideType: "content",
|
|
147
149
|
bulletStyle: "arrow",
|
|
@@ -149,12 +151,12 @@ const TITLE_KEYWORD_PATTERNS = [
|
|
|
149
151
|
// Requirements / Checklist - checkmark
|
|
150
152
|
{
|
|
151
153
|
patterns: [
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
/\brequirements?\b/i,
|
|
155
|
+
/\bchecklist\b/i,
|
|
156
|
+
/\bprerequisites?\b/i,
|
|
157
|
+
/\bwhat\s+you\s+need\b/i,
|
|
158
|
+
/\bmust\s+haves?\b/i,
|
|
159
|
+
/\bessentials?\b/i,
|
|
158
160
|
],
|
|
159
161
|
slideType: "content",
|
|
160
162
|
bulletStyle: "checkmark",
|
|
@@ -338,10 +338,10 @@ export declare function createFileTools(registry: FileReferenceRegistry): {
|
|
|
338
338
|
}, "strip", z.ZodTypeAny, {
|
|
339
339
|
file_id: string;
|
|
340
340
|
format?: "text" | "summary" | "detailed" | undefined;
|
|
341
|
+
end_time?: number | undefined;
|
|
342
|
+
start_time?: number | undefined;
|
|
341
343
|
sheet?: string | undefined;
|
|
342
344
|
columns?: string[] | undefined;
|
|
343
|
-
start_time?: number | undefined;
|
|
344
|
-
end_time?: number | undefined;
|
|
345
345
|
frame_count?: number | undefined;
|
|
346
346
|
pages?: number[] | undefined;
|
|
347
347
|
page_range?: {
|
|
@@ -356,10 +356,10 @@ export declare function createFileTools(registry: FileReferenceRegistry): {
|
|
|
356
356
|
}, {
|
|
357
357
|
file_id: string;
|
|
358
358
|
format?: "text" | "summary" | "detailed" | undefined;
|
|
359
|
+
end_time?: number | undefined;
|
|
360
|
+
start_time?: number | undefined;
|
|
359
361
|
sheet?: string | undefined;
|
|
360
362
|
columns?: string[] | undefined;
|
|
361
|
-
start_time?: number | undefined;
|
|
362
|
-
end_time?: number | undefined;
|
|
363
363
|
frame_count?: number | undefined;
|
|
364
364
|
pages?: number[] | undefined;
|
|
365
365
|
page_range?: {
|
|
@@ -389,10 +389,10 @@ export declare function createFileTools(registry: FileReferenceRegistry): {
|
|
|
389
389
|
execute: (args: {
|
|
390
390
|
file_id: string;
|
|
391
391
|
format?: "text" | "summary" | "detailed" | undefined;
|
|
392
|
+
end_time?: number | undefined;
|
|
393
|
+
start_time?: number | undefined;
|
|
392
394
|
sheet?: string | undefined;
|
|
393
395
|
columns?: string[] | undefined;
|
|
394
|
-
start_time?: number | undefined;
|
|
395
|
-
end_time?: number | undefined;
|
|
396
396
|
frame_count?: number | undefined;
|
|
397
397
|
pages?: number[] | undefined;
|
|
398
398
|
page_range?: {
|
package/dist/index.d.ts
CHANGED
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
*/
|
|
34
34
|
import { AIProviderFactory } from "./core/factory.js";
|
|
35
35
|
export { AIProviderFactory };
|
|
36
|
+
export { GoogleTTSHandler } from "./adapters/tts/googleTTSHandler.js";
|
|
36
37
|
export { NeuroLinkConfigManager as ConfigManager } from "./config/configManager.js";
|
|
37
38
|
export { AIProviderName, BedrockModels, OpenAIModels, VertexModels, } from "./constants/enums.js";
|
|
38
39
|
export { dynamicModelProvider } from "./core/dynamicModels.js";
|
|
39
40
|
export { validateTool } from "./sdk/toolRegistration.js";
|
|
40
41
|
export * from "./types/index.js";
|
|
41
42
|
export type { DynamicModelConfig, ModelRegistry } from "./types/modelTypes.js";
|
|
42
|
-
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
43
|
-
export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
44
43
|
export { isAbortError } from "./utils/errorHandling.js";
|
|
44
|
+
export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
45
|
+
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
45
46
|
export { TTSProcessor } from "./utils/ttsProcessor.js";
|
|
46
|
-
export { GoogleTTSHandler } from "./adapters/tts/googleTTSHandler.js";
|
|
47
47
|
import { NeuroLink } from "./neurolink.js";
|
|
48
48
|
export { NeuroLink };
|
|
49
49
|
export type { MCPServerInfo } from "./types/mcpTypes.js";
|
|
@@ -54,6 +54,15 @@ export type { LangfuseContext } from "./services/server/ai/observability/instrum
|
|
|
54
54
|
export { initializeOpenTelemetry, shutdownOpenTelemetry, flushOpenTelemetry, getLangfuseHealthStatus, setLangfuseContext, getLangfuseSpanProcessor, getTracerProvider, isOpenTelemetryInitialized, getSpanProcessors, createContextEnricher, isUsingExternalTracerProvider, getLangfuseContext, getTracer, runWithCurrentLangfuseContext, };
|
|
55
55
|
export { clearAnalyticsMetrics, createAnalyticsMiddleware, getAnalyticsMetrics, } from "./middleware/builtin/analytics.js";
|
|
56
56
|
export { MiddlewareFactory } from "./middleware/factory.js";
|
|
57
|
+
export { ExporterRegistry } from "./observability/exporterRegistry.js";
|
|
58
|
+
export { NoOpExporter } from "./observability/exporters/baseExporter.js";
|
|
59
|
+
export type { LatencyStats, MetricsSummary, ModelCostStats, ProviderCostStats, TraceView, } from "./observability/metricsAggregator.js";
|
|
60
|
+
export { getMetricsAggregator, MetricsAggregator, resetMetricsAggregator, } from "./observability/metricsAggregator.js";
|
|
61
|
+
export { AlwaysSampler, NeverSampler, } from "./observability/sampling/samplers.js";
|
|
62
|
+
export { TokenTracker } from "./observability/tokenTracker.js";
|
|
63
|
+
export type { SpanAttributes, SpanData, SpanEvent, } from "./observability/types/spanTypes.js";
|
|
64
|
+
export { GENAI_ATTRIBUTES, SpanStatus, SpanType, } from "./observability/types/spanTypes.js";
|
|
65
|
+
export { SpanSerializer } from "./observability/utils/spanSerializer.js";
|
|
57
66
|
export type { MiddlewareConfig, MiddlewareContext, MiddlewareFactoryOptions, MiddlewarePreset, NeuroLinkMiddleware, } from "./types/middlewareTypes.js";
|
|
58
67
|
export declare const VERSION = "1.0.0";
|
|
59
68
|
/**
|
|
@@ -274,17 +283,17 @@ export declare function generateText(options: import("./types/index.js").TextGen
|
|
|
274
283
|
* console.log('Total time:', result.workflow?.metrics?.totalTime);
|
|
275
284
|
* ```
|
|
276
285
|
*/
|
|
277
|
-
export
|
|
278
|
-
export { runWorkflow } from "./workflow/core/workflowRunner.js";
|
|
286
|
+
export { clearRegistry as clearWorkflowRegistry, getWorkflow, listWorkflows, registerWorkflow, } from "./workflow/core/workflowRegistry.js";
|
|
279
287
|
export type { RunWorkflowOptions } from "./workflow/core/workflowRunner.js";
|
|
280
|
-
export {
|
|
281
|
-
export {
|
|
282
|
-
export {
|
|
283
|
-
export { MULTI_JUDGE_5_WORKFLOW, MULTI_JUDGE_3_WORKFLOW, createMultiJudgeWorkflow, } from "./workflow/workflows/multiJudgeWorkflow.js";
|
|
284
|
-
export { QUALITY_MAX_WORKFLOW, SPEED_FIRST_WORKFLOW, BALANCED_ADAPTIVE_WORKFLOW, createAdaptiveWorkflow, } from "./workflow/workflows/adaptiveWorkflow.js";
|
|
285
|
-
export { validateWorkflow } from "./workflow/utils/workflowValidation.js";
|
|
288
|
+
export { runWorkflow } from "./workflow/core/workflowRunner.js";
|
|
289
|
+
export { DEFAULT_SCORE_SCALE, WORKFLOW_ENGINE_VERSION, } from "./workflow/index.js";
|
|
290
|
+
export type { EnsembleResponse, ExecutionStrategy, JudgeConfig, JudgeScores, ModelConfig, ModelGroup, MultiJudgeScores, WorkflowConfig, WorkflowResult, WorkflowType, WorkflowValidationResult, } from "./workflow/types.js";
|
|
286
291
|
export { calculateModelMetrics, compareWorkflows, generateSummaryStats, } from "./workflow/utils/workflowMetrics.js";
|
|
287
|
-
export {
|
|
292
|
+
export { validateWorkflow } from "./workflow/utils/workflowValidation.js";
|
|
293
|
+
export { BALANCED_ADAPTIVE_WORKFLOW, createAdaptiveWorkflow, QUALITY_MAX_WORKFLOW, SPEED_FIRST_WORKFLOW, } from "./workflow/workflows/adaptiveWorkflow.js";
|
|
294
|
+
export { CONSENSUS_3_FAST_WORKFLOW, CONSENSUS_3_WORKFLOW, createConsensus3WithPrompt, } from "./workflow/workflows/consensusWorkflow.js";
|
|
295
|
+
export { AGGRESSIVE_FALLBACK_WORKFLOW, FAST_FALLBACK_WORKFLOW, } from "./workflow/workflows/fallbackWorkflow.js";
|
|
296
|
+
export { createMultiJudgeWorkflow, MULTI_JUDGE_3_WORKFLOW, MULTI_JUDGE_5_WORKFLOW, } from "./workflow/workflows/multiJudgeWorkflow.js";
|
|
288
297
|
export type { AgentExecuteRequest, AgentExecuteResponse, AuthConfig, AuthenticatedUser, AuthResult, AuthStrategy, BodyParserConfig, CacheConfig, CacheEntry, CacheStore, CORSConfig, CreateRoutesOptions, DataEvent, DataStreamEvent, DataStreamEventType, DataStreamResponseConfig, DataStreamWriter, DataStreamWriterConfig, ErrorCategoryType, ErrorEvent, ErrorResponse, ErrorSeverityType, FinishEvent, HealthResponse, HttpMethod, LoggingConfig, MCPServerStatusResponse, MiddlewareDefinition, MiddlewareHandler, OpenAPIGeneratorConfig, OpenAPISpec, PropertySchema, RateLimitConfig as ServerRateLimitConfig, RateLimitMiddlewareConfig, RateLimitStore, ReadyResponse, RequiredServerAdapterConfig, RouteDefinition, RouteGroup, RouteHandler, ServerAdapterConfig, ServerAdapterErrorCodeType, ServerAdapterErrorContext, ServerAdapterEvents, ServerAdapterFactoryOptions, ServerContext, ServerFramework, ServerResponse, ServerStatus, SSEWriteOptions, StreamingConfig, TextDeltaEvent, TextEndEvent, TextStartEvent, ToolCallEvent, ToolExecuteRequest, ToolExecuteResponse, ToolResultEvent, ValidationConfig, ValidationResult, ValidationSchema, WebSocketAuthConfig, WebSocketConfig, WebSocketConnection, WebSocketHandler, WebSocketMessage, WebSocketMessageType, } from "./server/index.js";
|
|
289
298
|
/**
|
|
290
299
|
* Server Adapters for exposing NeuroLink as HTTP APIs
|
|
@@ -336,3 +345,28 @@ export type { BaseChunkerConfig, BM25Result, CharacterChunkerConfig, Chunk, Chun
|
|
|
336
345
|
* ```
|
|
337
346
|
*/
|
|
338
347
|
export { assembleContext, batchRerank, CharacterChunker, ChunkerRegistry, CohereRelevanceScorer, CrossEncoderReranker, CSVLoader, chunkText, createChunker, createContextWindow, createHybridSearch, createRAGPipeline, createVectorQueryTool, executeWithCircuitBreaker, extractMetadata, formatContextWithCitations, GraphRAG, getAvailableStrategies, getCircuitBreaker, getDefaultChunkerConfig, getRecommendedStrategy, HTMLChunker, HTMLLoader, InMemoryBM25Index, InMemoryVectorStore, JSONChunker as RAGJSONChunker, JSONLoader, LaTeXChunker, LLMMetadataExtractor, linearCombination, loadDocument, loadDocuments, MarkdownChunker, MarkdownLoader, MDocument, PDFLoader, prepareRAGTool, processDocument, RAGCircuitBreaker, type RAGCircuitBreakerConfig, type RAGCircuitBreakerEvents, RAGCircuitBreakerManager, type RAGCircuitBreakerStats, RAGPipeline, RAGRetryHandler, RecursiveChunker, ragCircuitBreakerManager, reciprocalRankFusion, rerank, SemanticChunker, SentenceChunker, simpleRerank, summarizeContext, TextLoader, TokenChunker, WebLoader, } from "./rag/index.js";
|
|
348
|
+
export { ContextBuilder } from "./evaluation/contextBuilder.js";
|
|
349
|
+
/**
|
|
350
|
+
* Evaluation system for AI response quality assessment.
|
|
351
|
+
*
|
|
352
|
+
* Uses RAGAS-style model-based evaluation with a "judge" LLM to score
|
|
353
|
+
* responses on relevance, accuracy, completeness, and overall quality.
|
|
354
|
+
* Supports retry logic with progressive prompt improvement.
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```typescript
|
|
358
|
+
* import { Evaluator, RAGASEvaluator, ContextBuilder, RetryManager } from '@juspay/neurolink';
|
|
359
|
+
*
|
|
360
|
+
* const evaluator = new Evaluator({
|
|
361
|
+
* evaluationModel: 'gemini-1.5-flash',
|
|
362
|
+
* provider: 'vertex',
|
|
363
|
+
* threshold: 7,
|
|
364
|
+
* });
|
|
365
|
+
* ```
|
|
366
|
+
*/
|
|
367
|
+
export { Evaluator } from "./evaluation/index.js";
|
|
368
|
+
export { PromptBuilder } from "./evaluation/prompts.js";
|
|
369
|
+
export { RAGASEvaluator } from "./evaluation/ragasEvaluator.js";
|
|
370
|
+
export { RetryManager } from "./evaluation/retryManager.js";
|
|
371
|
+
export { mapToEvaluationData } from "./evaluation/scoring.js";
|
|
372
|
+
export type { EnhancedConversationTurn, EnhancedEvaluationContext, EvaluationConfig, EvaluationResult, GetPromptFunction, QualityErrorDetails, QueryIntentAnalysis, } from "./types/evaluationTypes.js";
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
// Core exports
|
|
35
35
|
import { AIProviderFactory } from "./core/factory.js";
|
|
36
36
|
export { AIProviderFactory };
|
|
37
|
+
export { GoogleTTSHandler } from "./adapters/tts/googleTTSHandler.js";
|
|
37
38
|
// Config Manager export
|
|
38
39
|
export { NeuroLinkConfigManager as ConfigManager } from "./config/configManager.js";
|
|
39
40
|
export { AIProviderName, BedrockModels, OpenAIModels, VertexModels, } from "./constants/enums.js";
|
|
@@ -43,15 +44,14 @@ export { dynamicModelProvider } from "./core/dynamicModels.js";
|
|
|
43
44
|
export { validateTool } from "./sdk/toolRegistration.js";
|
|
44
45
|
// Export ALL types from the centralized type barrel
|
|
45
46
|
export * from "./types/index.js";
|
|
46
|
-
// Utility exports
|
|
47
|
-
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
48
|
-
// Pricing utilities
|
|
49
|
-
export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
50
47
|
// Error utilities
|
|
51
48
|
export { isAbortError } from "./utils/errorHandling.js";
|
|
49
|
+
// Pricing utilities
|
|
50
|
+
export { calculateCost, hasPricing } from "./utils/pricing.js";
|
|
51
|
+
// Utility exports
|
|
52
|
+
export { getAvailableProviders, getBestProvider, isValidProvider, } from "./utils/providerUtils.js";
|
|
52
53
|
// TTS utilities
|
|
53
54
|
export { TTSProcessor } from "./utils/ttsProcessor.js";
|
|
54
|
-
export { GoogleTTSHandler } from "./adapters/tts/googleTTSHandler.js";
|
|
55
55
|
// Main NeuroLink wrapper class and diagnostic types
|
|
56
56
|
import { NeuroLink } from "./neurolink.js";
|
|
57
57
|
export { NeuroLink };
|
|
@@ -72,6 +72,14 @@ runWithCurrentLangfuseContext, };
|
|
|
72
72
|
// Analytics Middleware exports
|
|
73
73
|
export { clearAnalyticsMetrics, createAnalyticsMiddleware, getAnalyticsMetrics, } from "./middleware/builtin/analytics.js";
|
|
74
74
|
export { MiddlewareFactory } from "./middleware/factory.js";
|
|
75
|
+
export { ExporterRegistry } from "./observability/exporterRegistry.js";
|
|
76
|
+
export { NoOpExporter } from "./observability/exporters/baseExporter.js";
|
|
77
|
+
// Observability modules and types
|
|
78
|
+
export { getMetricsAggregator, MetricsAggregator, resetMetricsAggregator, } from "./observability/metricsAggregator.js";
|
|
79
|
+
export { AlwaysSampler, NeverSampler, } from "./observability/sampling/samplers.js";
|
|
80
|
+
export { TokenTracker } from "./observability/tokenTracker.js";
|
|
81
|
+
export { GENAI_ATTRIBUTES, SpanStatus, SpanType, } from "./observability/types/spanTypes.js";
|
|
82
|
+
export { SpanSerializer } from "./observability/utils/spanSerializer.js";
|
|
75
83
|
// Version
|
|
76
84
|
export const VERSION = "1.0.0";
|
|
77
85
|
/**
|
|
@@ -299,23 +307,50 @@ export async function generateText(options) {
|
|
|
299
307
|
const neurolink = new NeuroLink();
|
|
300
308
|
return await neurolink.generateText(options);
|
|
301
309
|
}
|
|
310
|
+
// ============================================================================
|
|
311
|
+
// WORKFLOW ENGINE - Multi-Model Orchestration with Judge Scoring
|
|
312
|
+
// ============================================================================
|
|
313
|
+
/**
|
|
314
|
+
* Workflow Engine for multi-model ensembles with judge-based evaluation
|
|
315
|
+
*
|
|
316
|
+
* Enables sophisticated AI orchestration patterns:
|
|
317
|
+
* - Ensemble execution (parallel multi-model)
|
|
318
|
+
* - Chain execution (sequential fallback)
|
|
319
|
+
* - Adaptive execution (tier-based quality/cost optimization)
|
|
320
|
+
* - Multi-judge voting for consensus
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* ```typescript
|
|
324
|
+
* import { neurolink, CONSENSUS_3_WORKFLOW } from '@juspay/neurolink';
|
|
325
|
+
*
|
|
326
|
+
* // Use workflow via generate() with workflowConfig option
|
|
327
|
+
* const result = await neurolink.generate({
|
|
328
|
+
* input: { text: 'Explain quantum computing' },
|
|
329
|
+
* workflowConfig: CONSENSUS_3_WORKFLOW,
|
|
330
|
+
* });
|
|
331
|
+
*
|
|
332
|
+
* console.log('Best response:', result.content);
|
|
333
|
+
* console.log('Selected model:', result.workflow?.selectedModel);
|
|
334
|
+
* console.log('Total time:', result.workflow?.metrics?.totalTime);
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
// Workflow registry
|
|
338
|
+
export { clearRegistry as clearWorkflowRegistry, getWorkflow, listWorkflows, registerWorkflow, } from "./workflow/core/workflowRegistry.js";
|
|
302
339
|
// Workflow execution
|
|
303
340
|
export { runWorkflow } from "./workflow/core/workflowRunner.js";
|
|
304
|
-
// Workflow
|
|
305
|
-
export {
|
|
341
|
+
// Workflow constants
|
|
342
|
+
export { DEFAULT_SCORE_SCALE, WORKFLOW_ENGINE_VERSION, } from "./workflow/index.js";
|
|
343
|
+
export { calculateModelMetrics, compareWorkflows, generateSummaryStats, } from "./workflow/utils/workflowMetrics.js";
|
|
344
|
+
// Validation and metrics
|
|
345
|
+
export { validateWorkflow } from "./workflow/utils/workflowValidation.js";
|
|
346
|
+
// Pre-built workflows - Adaptive
|
|
347
|
+
export { BALANCED_ADAPTIVE_WORKFLOW, createAdaptiveWorkflow, QUALITY_MAX_WORKFLOW, SPEED_FIRST_WORKFLOW, } from "./workflow/workflows/adaptiveWorkflow.js";
|
|
306
348
|
// Pre-built workflows - Consensus
|
|
307
|
-
export {
|
|
349
|
+
export { CONSENSUS_3_FAST_WORKFLOW, CONSENSUS_3_WORKFLOW, createConsensus3WithPrompt, } from "./workflow/workflows/consensusWorkflow.js";
|
|
308
350
|
// Pre-built workflows - Fallback
|
|
309
|
-
export {
|
|
351
|
+
export { AGGRESSIVE_FALLBACK_WORKFLOW, FAST_FALLBACK_WORKFLOW, } from "./workflow/workflows/fallbackWorkflow.js";
|
|
310
352
|
// Pre-built workflows - Multi-judge
|
|
311
|
-
export {
|
|
312
|
-
// Pre-built workflows - Adaptive
|
|
313
|
-
export { QUALITY_MAX_WORKFLOW, SPEED_FIRST_WORKFLOW, BALANCED_ADAPTIVE_WORKFLOW, createAdaptiveWorkflow, } from "./workflow/workflows/adaptiveWorkflow.js";
|
|
314
|
-
// Validation and metrics
|
|
315
|
-
export { validateWorkflow } from "./workflow/utils/workflowValidation.js";
|
|
316
|
-
export { calculateModelMetrics, compareWorkflows, generateSummaryStats, } from "./workflow/utils/workflowMetrics.js";
|
|
317
|
-
// Workflow constants
|
|
318
|
-
export { WORKFLOW_ENGINE_VERSION, DEFAULT_SCORE_SCALE, } from "./workflow/index.js";
|
|
353
|
+
export { createMultiJudgeWorkflow, MULTI_JUDGE_3_WORKFLOW, MULTI_JUDGE_5_WORKFLOW, } from "./workflow/workflows/multiJudgeWorkflow.js";
|
|
319
354
|
/**
|
|
320
355
|
* Server Adapters for exposing NeuroLink as HTTP APIs
|
|
321
356
|
*
|
|
@@ -403,3 +438,30 @@ extractMetadata, formatContextWithCitations,
|
|
|
403
438
|
GraphRAG, getAvailableStrategies, getCircuitBreaker, getDefaultChunkerConfig, getRecommendedStrategy, HTMLChunker, HTMLLoader, InMemoryBM25Index, InMemoryVectorStore, JSONChunker as RAGJSONChunker, JSONLoader, LaTeXChunker, LLMMetadataExtractor, linearCombination, loadDocument, loadDocuments, MarkdownChunker, MarkdownLoader, MDocument, PDFLoader,
|
|
404
439
|
// RAG Integration for generate/stream
|
|
405
440
|
prepareRAGTool, processDocument, RAGCircuitBreaker, RAGCircuitBreakerManager, RAGPipeline, RAGRetryHandler, RecursiveChunker, ragCircuitBreakerManager, reciprocalRankFusion, rerank, SemanticChunker, SentenceChunker, simpleRerank, summarizeContext, TextLoader, TokenChunker, WebLoader, } from "./rag/index.js";
|
|
441
|
+
// ============================================================================
|
|
442
|
+
// EVALUATION / SCORING - RAGAS-style Response Quality Evaluation
|
|
443
|
+
// ============================================================================
|
|
444
|
+
export { ContextBuilder } from "./evaluation/contextBuilder.js";
|
|
445
|
+
/**
|
|
446
|
+
* Evaluation system for AI response quality assessment.
|
|
447
|
+
*
|
|
448
|
+
* Uses RAGAS-style model-based evaluation with a "judge" LLM to score
|
|
449
|
+
* responses on relevance, accuracy, completeness, and overall quality.
|
|
450
|
+
* Supports retry logic with progressive prompt improvement.
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* ```typescript
|
|
454
|
+
* import { Evaluator, RAGASEvaluator, ContextBuilder, RetryManager } from '@juspay/neurolink';
|
|
455
|
+
*
|
|
456
|
+
* const evaluator = new Evaluator({
|
|
457
|
+
* evaluationModel: 'gemini-1.5-flash',
|
|
458
|
+
* provider: 'vertex',
|
|
459
|
+
* threshold: 7,
|
|
460
|
+
* });
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
export { Evaluator } from "./evaluation/index.js";
|
|
464
|
+
export { PromptBuilder } from "./evaluation/prompts.js";
|
|
465
|
+
export { RAGASEvaluator } from "./evaluation/ragasEvaluator.js";
|
|
466
|
+
export { RetryManager } from "./evaluation/retryManager.js";
|
|
467
|
+
export { mapToEvaluationData } from "./evaluation/scoring.js";
|