@juspay/neurolink 9.14.0 → 9.16.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 +12 -0
- package/README.md +15 -15
- package/dist/adapters/video/videoAnalyzer.d.ts +1 -1
- package/dist/adapters/video/videoAnalyzer.js +10 -8
- package/dist/auth/anthropicOAuth.d.ts +377 -0
- package/dist/auth/anthropicOAuth.js +914 -0
- package/dist/auth/index.d.ts +20 -0
- package/dist/auth/index.js +29 -0
- package/dist/auth/tokenStore.d.ts +225 -0
- package/dist/auth/tokenStore.js +521 -0
- package/dist/cli/commands/auth.d.ts +50 -0
- package/dist/cli/commands/auth.js +1115 -0
- package/dist/cli/commands/setup-anthropic.js +1 -14
- package/dist/cli/commands/setup-azure.js +1 -12
- package/dist/cli/commands/setup-bedrock.js +1 -9
- package/dist/cli/commands/setup-google-ai.js +1 -12
- package/dist/cli/commands/setup-openai.js +1 -14
- package/dist/cli/commands/workflow.d.ts +27 -0
- package/dist/cli/commands/workflow.js +216 -0
- package/dist/cli/factories/authCommandFactory.d.ts +52 -0
- package/dist/cli/factories/authCommandFactory.js +146 -0
- package/dist/cli/factories/commandFactory.d.ts +6 -0
- package/dist/cli/factories/commandFactory.js +171 -22
- package/dist/cli/index.js +0 -1
- package/dist/cli/parser.js +14 -2
- package/dist/cli/utils/maskCredential.d.ts +11 -0
- package/dist/cli/utils/maskCredential.js +23 -0
- package/dist/constants/contextWindows.js +107 -16
- package/dist/constants/enums.d.ts +119 -15
- package/dist/constants/enums.js +182 -22
- package/dist/constants/index.d.ts +3 -1
- package/dist/constants/index.js +11 -1
- package/dist/context/budgetChecker.js +1 -1
- package/dist/context/contextCompactor.js +31 -4
- package/dist/context/emergencyTruncation.d.ts +21 -0
- package/dist/context/emergencyTruncation.js +88 -0
- package/dist/context/errorDetection.d.ts +16 -0
- package/dist/context/errorDetection.js +48 -1
- package/dist/context/errors.d.ts +19 -0
- package/dist/context/errors.js +21 -0
- package/dist/context/stages/slidingWindowTruncator.d.ts +6 -0
- package/dist/context/stages/slidingWindowTruncator.js +159 -24
- package/dist/core/baseProvider.js +306 -200
- package/dist/core/conversationMemoryManager.js +104 -61
- package/dist/core/evaluationProviders.js +16 -33
- package/dist/core/factory.js +237 -164
- package/dist/core/modules/GenerationHandler.js +175 -116
- package/dist/core/modules/MessageBuilder.js +222 -170
- package/dist/core/modules/StreamHandler.d.ts +1 -0
- package/dist/core/modules/StreamHandler.js +95 -27
- package/dist/core/modules/TelemetryHandler.d.ts +10 -1
- package/dist/core/modules/TelemetryHandler.js +25 -7
- package/dist/core/modules/ToolsManager.js +115 -191
- package/dist/core/redisConversationMemoryManager.js +418 -282
- package/dist/factories/providerRegistry.d.ts +5 -0
- package/dist/factories/providerRegistry.js +20 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -2
- package/dist/lib/adapters/video/videoAnalyzer.d.ts +1 -1
- package/dist/lib/adapters/video/videoAnalyzer.js +10 -8
- package/dist/lib/auth/anthropicOAuth.d.ts +377 -0
- package/dist/lib/auth/anthropicOAuth.js +915 -0
- package/dist/lib/auth/index.d.ts +20 -0
- package/dist/lib/auth/index.js +30 -0
- package/dist/lib/auth/tokenStore.d.ts +225 -0
- package/dist/lib/auth/tokenStore.js +522 -0
- package/dist/lib/constants/contextWindows.js +107 -16
- package/dist/lib/constants/enums.d.ts +119 -15
- package/dist/lib/constants/enums.js +182 -22
- package/dist/lib/constants/index.d.ts +3 -1
- package/dist/lib/constants/index.js +11 -1
- package/dist/lib/context/budgetChecker.js +1 -1
- package/dist/lib/context/contextCompactor.js +31 -4
- package/dist/lib/context/emergencyTruncation.d.ts +21 -0
- package/dist/lib/context/emergencyTruncation.js +89 -0
- package/dist/lib/context/errorDetection.d.ts +16 -0
- package/dist/lib/context/errorDetection.js +48 -1
- package/dist/lib/context/errors.d.ts +19 -0
- package/dist/lib/context/errors.js +22 -0
- package/dist/lib/context/stages/slidingWindowTruncator.d.ts +6 -0
- package/dist/lib/context/stages/slidingWindowTruncator.js +159 -24
- package/dist/lib/core/baseProvider.js +306 -200
- package/dist/lib/core/conversationMemoryManager.js +104 -61
- package/dist/lib/core/evaluationProviders.js +16 -33
- package/dist/lib/core/factory.js +237 -164
- package/dist/lib/core/modules/GenerationHandler.js +175 -116
- package/dist/lib/core/modules/MessageBuilder.js +222 -170
- package/dist/lib/core/modules/StreamHandler.d.ts +1 -0
- package/dist/lib/core/modules/StreamHandler.js +95 -27
- package/dist/lib/core/modules/TelemetryHandler.d.ts +10 -1
- package/dist/lib/core/modules/TelemetryHandler.js +25 -7
- package/dist/lib/core/modules/ToolsManager.js +115 -191
- package/dist/lib/core/redisConversationMemoryManager.js +418 -282
- package/dist/lib/factories/providerRegistry.d.ts +5 -0
- package/dist/lib/factories/providerRegistry.js +20 -2
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/index.js +4 -2
- package/dist/lib/mcp/externalServerManager.js +66 -0
- package/dist/lib/mcp/mcpCircuitBreaker.js +24 -0
- package/dist/lib/mcp/mcpClientFactory.js +16 -0
- package/dist/lib/mcp/toolDiscoveryService.js +32 -6
- package/dist/lib/mcp/toolRegistry.js +193 -123
- package/dist/lib/models/anthropicModels.d.ts +267 -0
- package/dist/lib/models/anthropicModels.js +528 -0
- package/dist/lib/neurolink.d.ts +6 -0
- package/dist/lib/neurolink.js +1162 -646
- package/dist/lib/providers/amazonBedrock.d.ts +1 -1
- package/dist/lib/providers/amazonBedrock.js +521 -319
- package/dist/lib/providers/anthropic.d.ts +123 -2
- package/dist/lib/providers/anthropic.js +873 -27
- package/dist/lib/providers/anthropicBaseProvider.js +77 -17
- package/dist/lib/providers/googleAiStudio.d.ts +1 -1
- package/dist/lib/providers/googleAiStudio.js +292 -227
- package/dist/lib/providers/googleVertex.d.ts +36 -1
- package/dist/lib/providers/googleVertex.js +553 -260
- package/dist/lib/providers/ollama.js +329 -278
- package/dist/lib/providers/openAI.js +77 -19
- package/dist/lib/providers/sagemaker/parsers.js +3 -3
- package/dist/lib/providers/sagemaker/streaming.js +3 -3
- package/dist/lib/proxy/proxyFetch.js +81 -48
- package/dist/lib/rag/ChunkerFactory.js +1 -1
- package/dist/lib/rag/chunkers/MarkdownChunker.d.ts +22 -0
- package/dist/lib/rag/chunkers/MarkdownChunker.js +213 -9
- package/dist/lib/rag/chunking/markdownChunker.d.ts +16 -0
- package/dist/lib/rag/chunking/markdownChunker.js +174 -2
- package/dist/lib/rag/pipeline/contextAssembly.js +2 -1
- package/dist/lib/rag/ragIntegration.d.ts +18 -1
- package/dist/lib/rag/ragIntegration.js +94 -14
- package/dist/lib/rag/retrieval/vectorQueryTool.js +21 -4
- package/dist/lib/server/abstract/baseServerAdapter.js +4 -1
- package/dist/lib/server/adapters/fastifyAdapter.js +35 -30
- package/dist/lib/services/server/ai/observability/instrumentation.d.ts +32 -0
- package/dist/lib/services/server/ai/observability/instrumentation.js +39 -0
- package/dist/lib/telemetry/attributes.d.ts +52 -0
- package/dist/lib/telemetry/attributes.js +61 -0
- package/dist/lib/telemetry/index.d.ts +3 -0
- package/dist/lib/telemetry/index.js +3 -0
- package/dist/lib/telemetry/telemetryService.d.ts +6 -0
- package/dist/lib/telemetry/telemetryService.js +6 -0
- package/dist/lib/telemetry/tracers.d.ts +15 -0
- package/dist/lib/telemetry/tracers.js +17 -0
- package/dist/lib/telemetry/withSpan.d.ts +9 -0
- package/dist/lib/telemetry/withSpan.js +35 -0
- package/dist/lib/types/contextTypes.d.ts +10 -0
- package/dist/lib/types/errors.d.ts +62 -0
- package/dist/lib/types/errors.js +107 -0
- package/dist/lib/types/index.d.ts +2 -1
- package/dist/lib/types/index.js +2 -0
- package/dist/lib/types/providers.d.ts +107 -0
- package/dist/lib/types/providers.js +69 -0
- package/dist/lib/types/streamTypes.d.ts +14 -0
- package/dist/lib/types/subscriptionTypes.d.ts +893 -0
- package/dist/lib/types/subscriptionTypes.js +8 -0
- package/dist/lib/utils/conversationMemory.js +121 -82
- package/dist/lib/utils/logger.d.ts +5 -0
- package/dist/lib/utils/logger.js +50 -2
- package/dist/lib/utils/messageBuilder.js +22 -42
- package/dist/lib/utils/modelDetection.js +3 -3
- package/dist/lib/utils/providerConfig.d.ts +167 -0
- package/dist/lib/utils/providerConfig.js +619 -9
- package/dist/lib/utils/providerRetry.d.ts +41 -0
- package/dist/lib/utils/providerRetry.js +114 -0
- package/dist/lib/utils/retryability.d.ts +14 -0
- package/dist/lib/utils/retryability.js +23 -0
- package/dist/lib/utils/sanitizers/svg.js +4 -5
- package/dist/lib/utils/tokenEstimation.d.ts +11 -1
- package/dist/lib/utils/tokenEstimation.js +19 -4
- package/dist/lib/utils/videoAnalysisProcessor.js +7 -3
- package/dist/mcp/externalServerManager.js +66 -0
- package/dist/mcp/mcpCircuitBreaker.js +24 -0
- package/dist/mcp/mcpClientFactory.js +16 -0
- package/dist/mcp/toolDiscoveryService.js +32 -6
- package/dist/mcp/toolRegistry.js +193 -123
- package/dist/models/anthropicModels.d.ts +267 -0
- package/dist/models/anthropicModels.js +527 -0
- package/dist/neurolink.d.ts +6 -0
- package/dist/neurolink.js +1162 -646
- package/dist/providers/amazonBedrock.d.ts +1 -1
- package/dist/providers/amazonBedrock.js +521 -319
- package/dist/providers/anthropic.d.ts +123 -2
- package/dist/providers/anthropic.js +873 -27
- package/dist/providers/anthropicBaseProvider.js +77 -17
- package/dist/providers/googleAiStudio.d.ts +1 -1
- package/dist/providers/googleAiStudio.js +292 -227
- package/dist/providers/googleVertex.d.ts +36 -1
- package/dist/providers/googleVertex.js +553 -260
- package/dist/providers/ollama.js +329 -278
- package/dist/providers/openAI.js +77 -19
- package/dist/providers/sagemaker/parsers.js +3 -3
- package/dist/providers/sagemaker/streaming.js +3 -3
- package/dist/proxy/proxyFetch.js +81 -48
- package/dist/rag/ChunkerFactory.js +1 -1
- package/dist/rag/chunkers/MarkdownChunker.d.ts +22 -0
- package/dist/rag/chunkers/MarkdownChunker.js +213 -9
- package/dist/rag/chunking/markdownChunker.d.ts +16 -0
- package/dist/rag/chunking/markdownChunker.js +174 -2
- package/dist/rag/pipeline/contextAssembly.js +2 -1
- package/dist/rag/ragIntegration.d.ts +18 -1
- package/dist/rag/ragIntegration.js +94 -14
- package/dist/rag/retrieval/vectorQueryTool.js +21 -4
- package/dist/server/abstract/baseServerAdapter.js +4 -1
- package/dist/server/adapters/fastifyAdapter.js +35 -30
- package/dist/services/server/ai/observability/instrumentation.d.ts +32 -0
- package/dist/services/server/ai/observability/instrumentation.js +39 -0
- package/dist/telemetry/attributes.d.ts +52 -0
- package/dist/telemetry/attributes.js +60 -0
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.js +3 -0
- package/dist/telemetry/telemetryService.d.ts +6 -0
- package/dist/telemetry/telemetryService.js +6 -0
- package/dist/telemetry/tracers.d.ts +15 -0
- package/dist/telemetry/tracers.js +16 -0
- package/dist/telemetry/withSpan.d.ts +9 -0
- package/dist/telemetry/withSpan.js +34 -0
- package/dist/types/contextTypes.d.ts +10 -0
- package/dist/types/errors.d.ts +62 -0
- package/dist/types/errors.js +107 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +2 -0
- package/dist/types/providers.d.ts +107 -0
- package/dist/types/providers.js +69 -0
- package/dist/types/streamTypes.d.ts +14 -0
- package/dist/types/subscriptionTypes.d.ts +893 -0
- package/dist/types/subscriptionTypes.js +7 -0
- package/dist/utils/conversationMemory.js +121 -82
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.js +50 -2
- package/dist/utils/messageBuilder.js +22 -42
- package/dist/utils/modelDetection.js +3 -3
- package/dist/utils/providerConfig.d.ts +167 -0
- package/dist/utils/providerConfig.js +619 -9
- package/dist/utils/providerRetry.d.ts +41 -0
- package/dist/utils/providerRetry.js +113 -0
- package/dist/utils/retryability.d.ts +14 -0
- package/dist/utils/retryability.js +22 -0
- package/dist/utils/sanitizers/svg.js +4 -5
- package/dist/utils/tokenEstimation.d.ts +11 -1
- package/dist/utils/tokenEstimation.js +19 -4
- package/dist/utils/videoAnalysisProcessor.js +7 -3
- package/dist/workflow/config.d.ts +26 -26
- package/package.json +2 -1
|
@@ -5,11 +5,16 @@ import type { ProviderRegistryOptions } from "../types/index.js";
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class ProviderRegistry {
|
|
7
7
|
private static registered;
|
|
8
|
+
private static registrationPromise;
|
|
8
9
|
private static options;
|
|
9
10
|
/**
|
|
10
11
|
* Register all providers with the factory
|
|
11
12
|
*/
|
|
12
13
|
static registerAllProviders(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Internal registration implementation
|
|
16
|
+
*/
|
|
17
|
+
private static _doRegister;
|
|
13
18
|
/**
|
|
14
19
|
* Check if providers are registered
|
|
15
20
|
*/
|
|
@@ -7,6 +7,7 @@ import { AIProviderName, GoogleAIModels, OpenAIModels, AnthropicModels, VertexMo
|
|
|
7
7
|
*/
|
|
8
8
|
export class ProviderRegistry {
|
|
9
9
|
static registered = false;
|
|
10
|
+
static registrationPromise = null;
|
|
10
11
|
static options = {
|
|
11
12
|
enableManualMCP: false, // Default to disabled for safety
|
|
12
13
|
};
|
|
@@ -17,6 +18,22 @@ export class ProviderRegistry {
|
|
|
17
18
|
if (this.registered) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
21
|
+
if (this.registrationPromise) {
|
|
22
|
+
return this.registrationPromise;
|
|
23
|
+
}
|
|
24
|
+
this.registrationPromise = this._doRegister();
|
|
25
|
+
try {
|
|
26
|
+
await this.registrationPromise;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
this.registrationPromise = null; // Allow retry on failure
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Internal registration implementation
|
|
35
|
+
*/
|
|
36
|
+
static async _doRegister() {
|
|
20
37
|
try {
|
|
21
38
|
// Register providers with dynamic import factory functions
|
|
22
39
|
const { ProviderFactory } = await import("./providerFactory.js");
|
|
@@ -34,7 +51,7 @@ export class ProviderRegistry {
|
|
|
34
51
|
ProviderFactory.registerProvider(AIProviderName.ANTHROPIC, async (modelName, _providerName, sdk) => {
|
|
35
52
|
const { AnthropicProvider } = await import("../providers/anthropic.js");
|
|
36
53
|
return new AnthropicProvider(modelName, sdk);
|
|
37
|
-
}, AnthropicModels.
|
|
54
|
+
}, AnthropicModels.CLAUDE_SONNET_4_6, ["claude", "anthropic"]);
|
|
38
55
|
// Register Amazon Bedrock provider
|
|
39
56
|
ProviderFactory.registerProvider(AIProviderName.BEDROCK, async (modelName, _providerName, sdk, region) => {
|
|
40
57
|
const { AmazonBedrockProvider } = await import("../providers/amazonBedrock.js");
|
|
@@ -54,7 +71,7 @@ export class ProviderRegistry {
|
|
|
54
71
|
ProviderFactory.registerProvider(AIProviderName.VERTEX, async (modelName, providerName, sdk, region) => {
|
|
55
72
|
const { GoogleVertexProvider } = await import("../providers/googleVertex.js");
|
|
56
73
|
return new GoogleVertexProvider(modelName, providerName, sdk, region);
|
|
57
|
-
}, VertexModels.
|
|
74
|
+
}, VertexModels.CLAUDE_4_6_SONNET, ["vertex", "googleVertex"]);
|
|
58
75
|
// Register Hugging Face provider (Unified Router implementation)
|
|
59
76
|
ProviderFactory.registerProvider(AIProviderName.HUGGINGFACE, async (modelName) => {
|
|
60
77
|
const { HuggingFaceProvider } = await import("../providers/huggingFace.js");
|
|
@@ -130,6 +147,7 @@ export class ProviderRegistry {
|
|
|
130
147
|
static clearRegistrations() {
|
|
131
148
|
ProviderFactory.clearRegistrations();
|
|
132
149
|
this.registered = false;
|
|
150
|
+
this.registrationPromise = null;
|
|
133
151
|
}
|
|
134
152
|
/**
|
|
135
153
|
* Set registry options (should be called before initialization)
|
package/dist/index.d.ts
CHANGED
|
@@ -49,9 +49,9 @@ export { NeuroLink };
|
|
|
49
49
|
export type { MCPServerInfo } from "./types/mcpTypes.js";
|
|
50
50
|
export type { LangfuseConfig, LangfuseSpanAttributes, ObservabilityConfig, OpenTelemetryConfig, TraceNameFormat, } from "./types/observability.js";
|
|
51
51
|
export { buildObservabilityConfigFromEnv } from "./utils/observabilityHelpers.js";
|
|
52
|
-
import { createContextEnricher, flushOpenTelemetry, getLangfuseContext, getLangfuseHealthStatus, getLangfuseSpanProcessor, getSpanProcessors, getTracer, getTracerProvider, initializeOpenTelemetry, isOpenTelemetryInitialized, isUsingExternalTracerProvider, setLangfuseContext, shutdownOpenTelemetry } from "./services/server/ai/observability/instrumentation.js";
|
|
52
|
+
import { createContextEnricher, flushOpenTelemetry, getLangfuseContext, getLangfuseHealthStatus, getLangfuseSpanProcessor, getSpanProcessors, getTracer, getTracerProvider, initializeOpenTelemetry, isOpenTelemetryInitialized, isUsingExternalTracerProvider, runWithCurrentLangfuseContext, setLangfuseContext, shutdownOpenTelemetry } from "./services/server/ai/observability/instrumentation.js";
|
|
53
53
|
export type { LangfuseContext } from "./services/server/ai/observability/instrumentation.js";
|
|
54
|
-
export { initializeOpenTelemetry, shutdownOpenTelemetry, flushOpenTelemetry, getLangfuseHealthStatus, setLangfuseContext, getLangfuseSpanProcessor, getTracerProvider, isOpenTelemetryInitialized, getSpanProcessors, createContextEnricher, isUsingExternalTracerProvider, getLangfuseContext, getTracer, };
|
|
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
57
|
export type { MiddlewareConfig, MiddlewareContext, MiddlewareFactoryOptions, MiddlewarePreset, NeuroLinkMiddleware, } from "./types/middlewareTypes.js";
|
|
@@ -192,7 +192,7 @@ export declare function createBestAIProvider(requestedProvider?: string, modelNa
|
|
|
192
192
|
* ```
|
|
193
193
|
*/
|
|
194
194
|
export { CircuitBreakerManager, calculateExpiresAt, createMCPServer, createOAuthProviderFromConfig, DEFAULT_HTTP_RETRY_CONFIG, DEFAULT_RATE_LIMIT_CONFIG, executeMCP, FileTokenStorage, getMCPStats, getServerInfo, globalCircuitBreakerManager, globalRateLimiterManager, HTTPRateLimiter, InMemoryTokenStorage, initializeMCPEcosystem, isRetryableHTTPError, isRetryableStatusCode, isTokenExpired, listMCPs, MCPCircuitBreaker, mcpLogger, NeuroLinkOAuthProvider, RateLimiterManager, validateServerTools, validateTool as validateMCPTool, withHTTPRetry, } from "./mcp/index.js";
|
|
195
|
-
export type { AuthorizationUrlResult, DiscoveredMcp, HTTPRetryConfig, MCPOAuthConfig, McpMetadata, OAuthClientInformation, OAuthTokens, RateLimitConfig, TokenExchangeRequest, TokenStorage, } from "./types/mcpTypes.js";
|
|
195
|
+
export type { AuthorizationUrlResult, DiscoveredMcp, HTTPRetryConfig, MCPOAuthConfig, McpMetadata, OAuthClientInformation, OAuthTokens as McpOAuthTokens, RateLimitConfig, TokenExchangeRequest, TokenStorage, } from "./types/mcpTypes.js";
|
|
196
196
|
export type { ExecutionContext, ToolExecutionResult, ToolInfo, } from "./types/tools.js";
|
|
197
197
|
export type { LogLevel } from "./types/utilities.js";
|
|
198
198
|
export { logger } from "./utils/logger.js";
|
package/dist/index.js
CHANGED
|
@@ -60,13 +60,15 @@ import { createContextEnricher, flushOpenTelemetry,
|
|
|
60
60
|
// Enhanced context and tracing
|
|
61
61
|
getLangfuseContext, getLangfuseHealthStatus, getLangfuseSpanProcessor,
|
|
62
62
|
// NEW EXPORTS - External TracerProvider Support
|
|
63
|
-
getSpanProcessors, getTracer, getTracerProvider, initializeOpenTelemetry, isOpenTelemetryInitialized, isUsingExternalTracerProvider, setLangfuseContext, shutdownOpenTelemetry, } from "./services/server/ai/observability/instrumentation.js";
|
|
63
|
+
getSpanProcessors, getTracer, getTracerProvider, initializeOpenTelemetry, isOpenTelemetryInitialized, isUsingExternalTracerProvider, runWithCurrentLangfuseContext, setLangfuseContext, shutdownOpenTelemetry, } from "./services/server/ai/observability/instrumentation.js";
|
|
64
64
|
import { getTelemetryStatus as getStatus, initializeTelemetry as init, } from "./telemetry/index.js";
|
|
65
65
|
export { initializeOpenTelemetry, shutdownOpenTelemetry, flushOpenTelemetry, getLangfuseHealthStatus, setLangfuseContext, getLangfuseSpanProcessor, getTracerProvider, isOpenTelemetryInitialized,
|
|
66
66
|
// NEW EXPORTS - External TracerProvider Support
|
|
67
67
|
getSpanProcessors, createContextEnricher, isUsingExternalTracerProvider,
|
|
68
68
|
// Enhanced context and tracing
|
|
69
|
-
getLangfuseContext, getTracer,
|
|
69
|
+
getLangfuseContext, getTracer,
|
|
70
|
+
// ALS context propagation helper
|
|
71
|
+
runWithCurrentLangfuseContext, };
|
|
70
72
|
// Analytics Middleware exports
|
|
71
73
|
export { clearAnalyticsMetrics, createAnalyticsMiddleware, getAnalyticsMetrics, } from "./middleware/builtin/analytics.js";
|
|
72
74
|
export { MiddlewareFactory } from "./middleware/factory.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Video Analysis Handler
|
|
3
3
|
*
|
|
4
|
-
* Provides video analysis using Google's Gemini 2.
|
|
4
|
+
* Provides video analysis using Google's Gemini 2.5 Flash model.
|
|
5
5
|
* Supports both Vertex AI and Gemini API providers.
|
|
6
6
|
*
|
|
7
7
|
* @module adapters/video/geminiVideoAnalyzer
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Video Analysis Handler
|
|
3
3
|
*
|
|
4
|
-
* Provides video analysis using Google's Gemini 2.
|
|
4
|
+
* Provides video analysis using Google's Gemini 2.5 Flash model.
|
|
5
5
|
* Supports both Vertex AI and Gemini API providers.
|
|
6
6
|
*
|
|
7
7
|
* @module adapters/video/geminiVideoAnalyzer
|
|
@@ -13,7 +13,7 @@ import { NeuroLinkError, ErrorFactory } from "../../utils/errorHandling.js";
|
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
14
|
// Shared config
|
|
15
15
|
// ---------------------------------------------------------------------------
|
|
16
|
-
const DEFAULT_MODEL = "gemini-2.
|
|
16
|
+
const DEFAULT_MODEL = "gemini-2.5-flash";
|
|
17
17
|
const DEFAULT_LOCATION = "us-central1";
|
|
18
18
|
/**
|
|
19
19
|
* Extract content items from user messages
|
|
@@ -223,15 +223,17 @@ async function getVertexConfig() {
|
|
|
223
223
|
}
|
|
224
224
|
export async function analyzeVideo(messages, options = {}) {
|
|
225
225
|
const provider = options.provider || AIProviderName.AUTO;
|
|
226
|
-
// Vertex — only when
|
|
227
|
-
if (provider === AIProviderName.VERTEX ||
|
|
226
|
+
// Vertex — only when Vertex credentials are configured
|
|
227
|
+
if (provider === AIProviderName.VERTEX ||
|
|
228
|
+
(provider === AIProviderName.AUTO &&
|
|
229
|
+
(process.env.GOOGLE_VERTEX_PROJECT || process.env.GOOGLE_CLOUD_PROJECT))) {
|
|
228
230
|
return analyzeVideoWithVertexAI(messages, options);
|
|
229
231
|
}
|
|
230
|
-
// Gemini API — when
|
|
231
|
-
if (provider === AIProviderName.GOOGLE_AI
|
|
232
|
+
// Gemini API — when Google AI API key is available
|
|
233
|
+
if (provider === AIProviderName.GOOGLE_AI ||
|
|
234
|
+
(provider === AIProviderName.AUTO && process.env.GOOGLE_AI_API_KEY)) {
|
|
232
235
|
return analyzeVideoWithGeminiAPI(messages, options);
|
|
233
236
|
}
|
|
234
|
-
throw
|
|
235
|
-
"Set GOOGLE_VERTEX_PROJECT for Vertex AI or GOOGLE_AI_API_KEY for Gemini API.");
|
|
237
|
+
throw ErrorFactory.invalidConfiguration("video analysis provider", "No valid provider configuration found. Set GOOGLE_VERTEX_PROJECT for Vertex AI or GOOGLE_AI_API_KEY for Gemini API.");
|
|
236
238
|
}
|
|
237
239
|
//# sourceMappingURL=videoAnalyzer.js.map
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic OAuth 2.0 Authentication for Claude Pro/Max Subscriptions
|
|
3
|
+
*
|
|
4
|
+
* This module implements OAuth 2.0 flow with PKCE support for authenticating
|
|
5
|
+
* Claude Pro and Max subscription users through console.anthropic.com.
|
|
6
|
+
*
|
|
7
|
+
* OAuth Flow:
|
|
8
|
+
* 1. Generate PKCE code verifier and challenge
|
|
9
|
+
* 2. User is redirected to Anthropic authorization URL
|
|
10
|
+
* 3. User authenticates and grants permissions
|
|
11
|
+
* 4. Callback receives authorization code
|
|
12
|
+
* 5. Code is exchanged for access and refresh tokens
|
|
13
|
+
* 6. Tokens are used for API authentication
|
|
14
|
+
*
|
|
15
|
+
* @module auth/anthropicOAuth
|
|
16
|
+
*/
|
|
17
|
+
import type { Server } from "http";
|
|
18
|
+
export { OAuthError, OAuthConfigurationError, OAuthTokenExchangeError, OAuthTokenRefreshError, OAuthTokenValidationError, OAuthTokenRevocationError, OAuthCallbackServerError, } from "../types/errors.js";
|
|
19
|
+
/**
|
|
20
|
+
* Claude Code's official OAuth client ID
|
|
21
|
+
* Used to authenticate with Anthropic's OAuth system
|
|
22
|
+
*/
|
|
23
|
+
export declare const CLAUDE_CODE_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
24
|
+
/**
|
|
25
|
+
* Anthropic OAuth authorization URL for Claude Pro/Max
|
|
26
|
+
*/
|
|
27
|
+
export declare const ANTHROPIC_AUTH_URL = "https://claude.ai/oauth/authorize";
|
|
28
|
+
/**
|
|
29
|
+
* Anthropic OAuth token endpoint
|
|
30
|
+
*/
|
|
31
|
+
export declare const ANTHROPIC_TOKEN_URL = "https://console.anthropic.com/v1/oauth/token";
|
|
32
|
+
/**
|
|
33
|
+
* Anthropic OAuth redirect URI (official callback)
|
|
34
|
+
*/
|
|
35
|
+
export declare const ANTHROPIC_REDIRECT_URI = "https://console.anthropic.com/oauth/code/callback";
|
|
36
|
+
/**
|
|
37
|
+
* Default OAuth scopes for Claude subscription access
|
|
38
|
+
*/
|
|
39
|
+
export declare const DEFAULT_SCOPES: readonly string[];
|
|
40
|
+
/**
|
|
41
|
+
* User-Agent string to spoof Claude CLI
|
|
42
|
+
*/
|
|
43
|
+
export declare const CLAUDE_CLI_USER_AGENT = "claude-cli/2.1.2 (external, cli)";
|
|
44
|
+
/**
|
|
45
|
+
* Required beta headers for OAuth API requests.
|
|
46
|
+
* The "oauth-2025-04-20" header is CRITICAL for OAuth authentication.
|
|
47
|
+
* The "interleaved-thinking-2025-05-14" enables extended thinking.
|
|
48
|
+
*/
|
|
49
|
+
export declare const OAUTH_BETA_HEADERS = "oauth-2025-04-20,interleaved-thinking-2025-05-14";
|
|
50
|
+
/**
|
|
51
|
+
* Tool name prefix required for OAuth API requests
|
|
52
|
+
*/
|
|
53
|
+
export declare const MCP_TOOL_PREFIX = "mcp_";
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use ANTHROPIC_AUTH_URL instead
|
|
56
|
+
*/
|
|
57
|
+
export declare const ANTHROPIC_OAUTH_BASE_URL = "https://console.anthropic.com/oauth";
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Use ANTHROPIC_REDIRECT_URI instead
|
|
60
|
+
*/
|
|
61
|
+
export declare const DEFAULT_REDIRECT_URI = "https://console.anthropic.com/oauth/code/callback";
|
|
62
|
+
/**
|
|
63
|
+
* Default local callback server port (for local testing only)
|
|
64
|
+
*/
|
|
65
|
+
export declare const DEFAULT_CALLBACK_PORT = 8787;
|
|
66
|
+
import type { OAuthFlowTokens, TokenValidationResult, AnthropicOAuthConfig, PKCEParams, CallbackResult } from "../types/subscriptionTypes.js";
|
|
67
|
+
export type { OAuthTokenResponse, OAuthFlowTokens, OAuthFlowTokens as OAuthTokens, TokenValidationResult, AnthropicOAuthConfig, PKCEParams, CallbackResult, } from "../types/subscriptionTypes.js";
|
|
68
|
+
/**
|
|
69
|
+
* AnthropicOAuth - OAuth 2.0 authentication for Claude Pro/Max subscriptions
|
|
70
|
+
*
|
|
71
|
+
* Implements OAuth 2.0 authorization code flow with PKCE support for
|
|
72
|
+
* authenticating users with Claude Pro or Max subscriptions.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const oauth = new AnthropicOAuth({
|
|
77
|
+
* clientId: "your-client-id",
|
|
78
|
+
* redirectUri: "http://localhost:8787/callback",
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* // Generate PKCE parameters
|
|
82
|
+
* const codeVerifier = AnthropicOAuth.generateCodeVerifier();
|
|
83
|
+
* const codeChallenge = await AnthropicOAuth.generateCodeChallenge(codeVerifier);
|
|
84
|
+
*
|
|
85
|
+
* // Generate auth URL
|
|
86
|
+
* const authUrl = oauth.generateAuthUrl({
|
|
87
|
+
* codeChallenge,
|
|
88
|
+
* state: "random-state",
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* // After user authenticates, exchange code for tokens
|
|
92
|
+
* const tokens = await oauth.exchangeCodeForTokens(code, codeVerifier);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare class AnthropicOAuth {
|
|
96
|
+
private readonly clientId;
|
|
97
|
+
private readonly clientSecret?;
|
|
98
|
+
private readonly redirectUri;
|
|
99
|
+
private readonly scopes;
|
|
100
|
+
private readonly authorizationUrl;
|
|
101
|
+
private readonly tokenUrl;
|
|
102
|
+
private readonly validationUrl;
|
|
103
|
+
private readonly revocationUrl;
|
|
104
|
+
constructor(config?: AnthropicOAuthConfig);
|
|
105
|
+
/**
|
|
106
|
+
* Generates a cryptographically secure code verifier for PKCE
|
|
107
|
+
*
|
|
108
|
+
* The code verifier is a high-entropy random string between 43-128 characters
|
|
109
|
+
* using URL-safe characters (A-Z, a-z, 0-9, "-", ".", "_", "~").
|
|
110
|
+
*
|
|
111
|
+
* @returns A random code verifier string (64 characters)
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const codeVerifier = AnthropicOAuth.generateCodeVerifier();
|
|
116
|
+
* // Returns something like "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
static generateCodeVerifier(): string;
|
|
120
|
+
/**
|
|
121
|
+
* Generates a PKCE code challenge from a code verifier
|
|
122
|
+
*
|
|
123
|
+
* Uses SHA-256 hashing as per RFC 7636. The challenge is the
|
|
124
|
+
* base64url-encoded SHA-256 hash of the code verifier.
|
|
125
|
+
*
|
|
126
|
+
* @param verifier - The code verifier to generate challenge from
|
|
127
|
+
* @returns Promise resolving to the code challenge string
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* const verifier = AnthropicOAuth.generateCodeVerifier();
|
|
132
|
+
* const challenge = await AnthropicOAuth.generateCodeChallenge(verifier);
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
static generateCodeChallenge(verifier: string): Promise<string>;
|
|
136
|
+
/**
|
|
137
|
+
* Generates both code verifier and challenge for PKCE
|
|
138
|
+
*
|
|
139
|
+
* Convenience method that generates both PKCE parameters at once.
|
|
140
|
+
*
|
|
141
|
+
* @returns Promise resolving to PKCE parameters object
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const pkce = await AnthropicOAuth.generatePKCE();
|
|
146
|
+
* console.log(pkce.codeVerifier);
|
|
147
|
+
* console.log(pkce.codeChallenge);
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
static generatePKCE(): Promise<PKCEParams>;
|
|
151
|
+
/**
|
|
152
|
+
* Generates the OAuth authorization URL with PKCE support
|
|
153
|
+
*
|
|
154
|
+
* Builds the complete authorization URL including all required parameters
|
|
155
|
+
* for the OAuth 2.0 authorization code flow with PKCE.
|
|
156
|
+
*
|
|
157
|
+
* @param config - Authorization URL configuration
|
|
158
|
+
* @param state - Optional state parameter for CSRF protection
|
|
159
|
+
* @returns The complete authorization URL
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const pkce = await AnthropicOAuth.generatePKCE();
|
|
164
|
+
* const authUrl = oauth.generateAuthUrl({
|
|
165
|
+
* codeChallenge: pkce.codeChallenge,
|
|
166
|
+
* state: crypto.randomUUID(),
|
|
167
|
+
* });
|
|
168
|
+
* // Redirect user to authUrl
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
generateAuthUrl(config?: {
|
|
172
|
+
/** PKCE code challenge (required for public clients) */
|
|
173
|
+
codeChallenge?: string;
|
|
174
|
+
/** Additional URL parameters */
|
|
175
|
+
additionalParams?: Record<string, string>;
|
|
176
|
+
}, state?: string): string;
|
|
177
|
+
/**
|
|
178
|
+
* Exchanges an authorization code for access and refresh tokens
|
|
179
|
+
*
|
|
180
|
+
* Performs the token exchange step of the OAuth flow. For public clients
|
|
181
|
+
* using PKCE, the code verifier must be provided.
|
|
182
|
+
*
|
|
183
|
+
* @param code - The authorization code from the OAuth callback
|
|
184
|
+
* @param codeVerifier - The PKCE code verifier used to generate the challenge
|
|
185
|
+
* @param config - Optional additional configuration
|
|
186
|
+
* @returns Promise resolving to the parsed OAuth tokens
|
|
187
|
+
* @throws OAuthTokenExchangeError if the exchange fails
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* const tokens = await oauth.exchangeCodeForTokens(
|
|
192
|
+
* authorizationCode,
|
|
193
|
+
* pkce.codeVerifier
|
|
194
|
+
* );
|
|
195
|
+
* console.log("Access token:", tokens.accessToken);
|
|
196
|
+
* console.log("Expires at:", tokens.expiresAt);
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
exchangeCodeForTokens(code: string, codeVerifier: string, config?: AnthropicOAuthConfig): Promise<OAuthFlowTokens>;
|
|
200
|
+
/**
|
|
201
|
+
* Refreshes an expired access token using a refresh token
|
|
202
|
+
*
|
|
203
|
+
* @param refreshToken - The refresh token from a previous authentication
|
|
204
|
+
* @param config - Optional configuration overrides
|
|
205
|
+
* @returns Promise resolving to new OAuth tokens
|
|
206
|
+
* @throws OAuthTokenRefreshError if the refresh fails
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* if (AnthropicOAuth.isTokenExpired(tokens.expiresAt)) {
|
|
211
|
+
* const newTokens = await oauth.refreshAccessToken(tokens.refreshToken);
|
|
212
|
+
* console.log("New access token:", newTokens.accessToken);
|
|
213
|
+
* }
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
refreshAccessToken(refreshToken: string, config?: AnthropicOAuthConfig): Promise<OAuthFlowTokens>;
|
|
217
|
+
/**
|
|
218
|
+
* Validates an access token and returns token information
|
|
219
|
+
*
|
|
220
|
+
* Checks if the token is still valid by calling the validation endpoint.
|
|
221
|
+
* Returns user information if available.
|
|
222
|
+
*
|
|
223
|
+
* @param accessToken - The access token to validate
|
|
224
|
+
* @returns Promise resolving to validation result
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* const result = await oauth.validateToken(accessToken);
|
|
229
|
+
* if (result.isValid) {
|
|
230
|
+
* console.log("Token is valid, expires in:", result.expiresIn, "seconds");
|
|
231
|
+
* console.log("User email:", result.user?.email);
|
|
232
|
+
* } else {
|
|
233
|
+
* console.log("Token is invalid:", result.error);
|
|
234
|
+
* }
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
validateToken(accessToken: string): Promise<boolean>;
|
|
238
|
+
/**
|
|
239
|
+
* Validates token and returns detailed information
|
|
240
|
+
*
|
|
241
|
+
* @param accessToken - The access token to validate
|
|
242
|
+
* @returns Promise resolving to detailed validation result
|
|
243
|
+
*/
|
|
244
|
+
validateTokenWithDetails(accessToken: string): Promise<TokenValidationResult>;
|
|
245
|
+
/**
|
|
246
|
+
* Revokes an access token or refresh token
|
|
247
|
+
*
|
|
248
|
+
* @param token - The token to revoke
|
|
249
|
+
* @param tokenType - Type of token ("access_token" or "refresh_token")
|
|
250
|
+
* @returns Promise that resolves when revocation is complete
|
|
251
|
+
* @throws OAuthTokenRevocationError if revocation fails
|
|
252
|
+
*/
|
|
253
|
+
revokeToken(token: string, tokenType?: "access_token" | "refresh_token"): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Parses a token response into structured OAuthFlowTokens
|
|
256
|
+
*/
|
|
257
|
+
private parseTokenResponse;
|
|
258
|
+
/**
|
|
259
|
+
* Generates a random state parameter for CSRF protection
|
|
260
|
+
*/
|
|
261
|
+
private generateState;
|
|
262
|
+
/**
|
|
263
|
+
* Checks if a token is expired or about to expire
|
|
264
|
+
*
|
|
265
|
+
* @param expiresAt - Token expiration date
|
|
266
|
+
* @param bufferSeconds - Buffer time before actual expiration (default: 60 seconds)
|
|
267
|
+
* @returns True if token is expired or will expire within buffer time
|
|
268
|
+
*/
|
|
269
|
+
static isTokenExpired(expiresAt: Date, bufferSeconds?: number): boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Gets the configured client ID
|
|
272
|
+
*/
|
|
273
|
+
getClientId(): string;
|
|
274
|
+
/**
|
|
275
|
+
* Gets the configured redirect URI
|
|
276
|
+
*/
|
|
277
|
+
getRedirectUri(): string;
|
|
278
|
+
/**
|
|
279
|
+
* Gets the configured scopes
|
|
280
|
+
*/
|
|
281
|
+
getScopes(): readonly string[];
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Creates and starts a local HTTP server to receive OAuth callbacks
|
|
285
|
+
*
|
|
286
|
+
* This helper function starts a temporary HTTP server that listens for
|
|
287
|
+
* the OAuth callback and extracts the authorization code.
|
|
288
|
+
*
|
|
289
|
+
* @param port - Port to listen on (default: 8787)
|
|
290
|
+
* @param path - Path to listen on (default: "/callback")
|
|
291
|
+
* @param timeout - Timeout in milliseconds (default: 5 minutes)
|
|
292
|
+
* @returns Promise resolving to the callback result with authorization code
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* // Start callback server before redirecting user
|
|
297
|
+
* const callbackPromise = startCallbackServer();
|
|
298
|
+
*
|
|
299
|
+
* // Generate auth URL and redirect user
|
|
300
|
+
* const authUrl = oauth.generateAuthUrl({ codeChallenge });
|
|
301
|
+
* console.log("Please visit:", authUrl);
|
|
302
|
+
*
|
|
303
|
+
* // Wait for callback
|
|
304
|
+
* const result = await callbackPromise;
|
|
305
|
+
* console.log("Got authorization code:", result.code);
|
|
306
|
+
*
|
|
307
|
+
* // Exchange for tokens
|
|
308
|
+
* const tokens = await oauth.exchangeCodeForTokens(result.code, codeVerifier);
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
export declare function startCallbackServer(port?: number, path?: string, timeout?: number): Promise<CallbackResult>;
|
|
312
|
+
/**
|
|
313
|
+
* Stops the callback server if running
|
|
314
|
+
* Note: The server automatically stops after receiving a callback or timing out
|
|
315
|
+
*/
|
|
316
|
+
export declare function stopCallbackServer(server: Server): Promise<void>;
|
|
317
|
+
/**
|
|
318
|
+
* Creates an AnthropicOAuth instance with default configuration from environment
|
|
319
|
+
*
|
|
320
|
+
* @param overrides - Optional configuration overrides
|
|
321
|
+
* @returns Configured AnthropicOAuth instance
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```typescript
|
|
325
|
+
* const oauth = createAnthropicOAuth();
|
|
326
|
+
* const authUrl = oauth.generateAuthUrl({ codeChallenge });
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export declare function createAnthropicOAuth(overrides?: Partial<AnthropicOAuthConfig>): AnthropicOAuth;
|
|
330
|
+
/**
|
|
331
|
+
* Anthropic OAuth configuration creator for providerConfig pattern
|
|
332
|
+
*
|
|
333
|
+
* @returns Provider configuration options for Anthropic OAuth
|
|
334
|
+
*/
|
|
335
|
+
export declare function createAnthropicOAuthConfig(): {
|
|
336
|
+
providerName: string;
|
|
337
|
+
envVarName: string;
|
|
338
|
+
setupUrl: string;
|
|
339
|
+
description: string;
|
|
340
|
+
instructions: string[];
|
|
341
|
+
fallbackEnvVars: never[];
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Checks if Anthropic OAuth credentials are configured
|
|
345
|
+
*
|
|
346
|
+
* @returns True if OAuth client ID is available
|
|
347
|
+
*/
|
|
348
|
+
export declare function hasAnthropicOAuthCredentials(): boolean;
|
|
349
|
+
/**
|
|
350
|
+
* Performs a complete OAuth flow including callback server
|
|
351
|
+
*
|
|
352
|
+
* This is a convenience function that handles the entire OAuth flow:
|
|
353
|
+
* 1. Generates PKCE parameters
|
|
354
|
+
* 2. Starts the callback server
|
|
355
|
+
* 3. Opens the browser (if possible)
|
|
356
|
+
* 4. Waits for the callback
|
|
357
|
+
* 5. Exchanges the code for tokens
|
|
358
|
+
*
|
|
359
|
+
* @param oauth - AnthropicOAuth instance
|
|
360
|
+
* @param options - Flow options
|
|
361
|
+
* @returns Promise resolving to OAuth tokens
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```typescript
|
|
365
|
+
* const oauth = createAnthropicOAuth();
|
|
366
|
+
* const tokens = await performOAuthFlow(oauth);
|
|
367
|
+
* console.log("Authenticated! Token expires at:", tokens.expiresAt);
|
|
368
|
+
* ```
|
|
369
|
+
*/
|
|
370
|
+
export declare function performOAuthFlow(oauth: AnthropicOAuth, options?: {
|
|
371
|
+
/** Port for callback server (default: 8787) */
|
|
372
|
+
port?: number;
|
|
373
|
+
/** Timeout in milliseconds (default: 5 minutes) */
|
|
374
|
+
timeout?: number;
|
|
375
|
+
/** Whether to automatically open browser (default: true) */
|
|
376
|
+
openBrowser?: boolean;
|
|
377
|
+
}): Promise<OAuthFlowTokens>;
|