@burtson-labs/bandit-engine 2.0.9 → 2.0.10
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/README.md +74 -29
- package/dist/{aiProviderStore-YWJHSWFA.mjs → aiProviderStore-3YS2BZU3.mjs} +2 -2
- package/dist/chat-ZPJNWIXI.mjs +15 -0
- package/dist/chat-provider.js +211 -16
- package/dist/chat-provider.js.map +1 -1
- package/dist/chat-provider.mjs +6 -6
- package/dist/{chunk-CVIOLFMX.mjs → chunk-2ZNIQD26.mjs} +4 -4
- package/dist/{chunk-6YRLBITU.mjs → chunk-5UVULH77.mjs} +18 -9
- package/dist/chunk-5UVULH77.mjs.map +1 -0
- package/dist/{chunk-VSHO7PF2.mjs → chunk-CY227I4F.mjs} +23 -13
- package/dist/chunk-CY227I4F.mjs.map +1 -0
- package/dist/{chunk-JQ6UNJNW.mjs → chunk-IFN52MQL.mjs} +16 -10
- package/dist/{chunk-JQ6UNJNW.mjs.map → chunk-IFN52MQL.mjs.map} +1 -1
- package/dist/{chunk-AVC6IZJQ.mjs → chunk-IHJPVIGB.mjs} +179 -2
- package/dist/chunk-IHJPVIGB.mjs.map +1 -0
- package/dist/{chunk-HHKXWNCG.mjs → chunk-L7UOQ2Y2.mjs} +5 -5
- package/dist/{chunk-5E7S7DK3.mjs → chunk-RTQDQ6TC.mjs} +2 -2
- package/dist/{chunk-6IHJZCUH.mjs → chunk-UMPVXYVC.mjs} +4 -4
- package/dist/{chunk-PXXVEH5M.mjs → chunk-XEG45Q6V.mjs} +4 -4
- package/dist/{chunk-QHLKGSMB.mjs → chunk-XUBYA5I7.mjs} +2 -2
- package/dist/{chunk-QHLKGSMB.mjs.map → chunk-XUBYA5I7.mjs.map} +1 -1
- package/dist/cli/cli.js +14 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/{gateway-BXVrH8B-.d.mts → gateway-BiHRHJMM.d.mts} +3 -1
- package/dist/{gateway-BXVrH8B-.d.ts → gateway-BiHRHJMM.d.ts} +3 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +282 -72
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -10
- package/dist/management/management.js +262 -62
- package/dist/management/management.js.map +1 -1
- package/dist/management/management.mjs +8 -8
- package/dist/modals/chat-modal/chat-modal.js +202 -17
- package/dist/modals/chat-modal/chat-modal.js.map +1 -1
- package/dist/modals/chat-modal/chat-modal.mjs +5 -5
- package/dist/{modelStore-CY6SECYD.mjs → modelStore-UMJBDSEF.mjs} +2 -2
- package/dist/public-types.d.mts +1 -1
- package/dist/public-types.d.ts +1 -1
- package/docs/01_quickstart.md +9 -6
- package/docs/02_gateway_api.md +55 -12
- package/docs/api_reference/assets/search.js +1 -1
- package/docs/api_reference/classes/DebugLogger.html +11 -11
- package/docs/api_reference/classes/FeatureFlagService.html +13 -13
- package/docs/api_reference/classes/NotificationService.html +10 -10
- package/docs/api_reference/classes/StreamingTTSClient.html +9 -9
- package/docs/api_reference/classes/VectorDatabaseService.html +24 -24
- package/docs/api_reference/classes/VectorMigrationService.html +8 -8
- package/docs/api_reference/classes/VoiceService.html +2 -2
- package/docs/api_reference/enums/TTSState.html +2 -2
- package/docs/api_reference/functions/Chat.html +1 -1
- package/docs/api_reference/functions/ChatModal.html +1 -1
- package/docs/api_reference/functions/ChatProvider.html +1 -1
- package/docs/api_reference/functions/FeatureFlagProvider.html +1 -1
- package/docs/api_reference/functions/FeedbackButton.html +1 -1
- package/docs/api_reference/functions/FeedbackModal.html +1 -1
- package/docs/api_reference/functions/Management.html +1 -1
- package/docs/api_reference/functions/NotificationProvider.html +1 -1
- package/docs/api_reference/functions/SubscriptionExpiredGuard.html +1 -1
- package/docs/api_reference/functions/SubscriptionExpiredModal.html +1 -1
- package/docs/api_reference/functions/defineCustomElement.html +1 -1
- package/docs/api_reference/functions/getCriticalConfig.html +1 -1
- package/docs/api_reference/functions/getFeatureMatrix.html +1 -1
- package/docs/api_reference/functions/getStreamingTTSClient.html +1 -1
- package/docs/api_reference/functions/getSystemConstants.html +1 -1
- package/docs/api_reference/functions/getTTSState.html +1 -1
- package/docs/api_reference/functions/handleHttpError.html +1 -1
- package/docs/api_reference/functions/handleSubscriptionUpgrade.html +1 -1
- package/docs/api_reference/functions/handleValidationError.html +1 -1
- package/docs/api_reference/functions/initializeCoreSystem.html +1 -1
- package/docs/api_reference/functions/pauseTTS.html +1 -1
- package/docs/api_reference/functions/previewTierUpgrade.html +1 -1
- package/docs/api_reference/functions/resumeTTS.html +1 -1
- package/docs/api_reference/functions/showInfoNotification.html +1 -1
- package/docs/api_reference/functions/showSuccessNotification.html +1 -1
- package/docs/api_reference/functions/speakWithStreaming.html +1 -1
- package/docs/api_reference/functions/stopTTS.html +1 -1
- package/docs/api_reference/functions/syncSubscriptionWithAPI.html +1 -1
- package/docs/api_reference/functions/updateSubscriptionTier.html +1 -1
- package/docs/api_reference/functions/useFeatureFlag.html +1 -1
- package/docs/api_reference/functions/useFeatureVisibility.html +1 -1
- package/docs/api_reference/functions/useFeatures.html +1 -1
- package/docs/api_reference/functions/useGatewayHealth.html +1 -1
- package/docs/api_reference/functions/useGatewayMemory.html +1 -1
- package/docs/api_reference/functions/useGatewayModels.html +1 -1
- package/docs/api_reference/functions/useGlobalTTS.html +1 -1
- package/docs/api_reference/functions/useNotification.html +1 -1
- package/docs/api_reference/functions/useNotificationService.html +1 -1
- package/docs/api_reference/functions/useTTS.html +1 -1
- package/docs/api_reference/functions/useVectorStore.html +1 -1
- package/docs/api_reference/functions/useVoiceStore.html +2 -2
- package/docs/api_reference/functions/useVoices.html +1 -1
- package/docs/api_reference/functions/validateEnvironment.html +1 -1
- package/docs/api_reference/functions/validateSystemIntegrity.html +1 -1
- package/docs/api_reference/index.html +34 -15
- package/docs/api_reference/interfaces/AIChatRequest.html +2 -2
- package/docs/api_reference/interfaces/AIChatResponse.html +2 -2
- package/docs/api_reference/interfaces/AIGenerateRequest.html +2 -2
- package/docs/api_reference/interfaces/AIGenerateResponse.html +2 -2
- package/docs/api_reference/interfaces/AIMessage.html +2 -2
- package/docs/api_reference/interfaces/AIModel.html +2 -2
- package/docs/api_reference/interfaces/AIProviderConfig.html +2 -2
- package/docs/api_reference/interfaces/ChatConfig.html +3 -3
- package/docs/api_reference/interfaces/ChatModalProps.html +3 -3
- package/docs/api_reference/interfaces/CreateMemoryOptions.html +2 -2
- package/docs/api_reference/interfaces/FeatureEvaluation.html +7 -7
- package/docs/api_reference/interfaces/FeatureFlagConfig.html +9 -9
- package/docs/api_reference/interfaces/FeatureFlagContextValue.html +8 -8
- package/docs/api_reference/interfaces/FeatureFlagProviderProps.html +2 -2
- package/docs/api_reference/interfaces/FeedbackButtonProps.html +10 -10
- package/docs/api_reference/interfaces/FeedbackCategories.html +2 -2
- package/docs/api_reference/interfaces/FeedbackModalProps.html +2 -2
- package/docs/api_reference/interfaces/FeedbackPriorities.html +2 -2
- package/docs/api_reference/interfaces/FeedbackRequest.html +2 -2
- package/docs/api_reference/interfaces/FeedbackResponse.html +2 -2
- package/docs/api_reference/interfaces/FileUploadResult.html +2 -2
- package/docs/api_reference/interfaces/GatewayChatRequest.html +2 -2
- package/docs/api_reference/interfaces/GatewayChatResponse.html +2 -2
- package/docs/api_reference/interfaces/GatewayContract.html +2 -2
- package/docs/api_reference/interfaces/GatewayGenerateRequest.html +2 -2
- package/docs/api_reference/interfaces/GatewayGenerateResponse.html +2 -2
- package/docs/api_reference/interfaces/GatewayHealthResponse.html +2 -2
- package/docs/api_reference/interfaces/GatewayMemoryRecord.html +2 -2
- package/docs/api_reference/interfaces/GatewayMemoryResponse.html +2 -2
- package/docs/api_reference/interfaces/GatewayMessage.html +2 -2
- package/docs/api_reference/interfaces/GatewayMessageContent.html +2 -2
- package/docs/api_reference/interfaces/GatewayModel.html +2 -2
- package/docs/api_reference/interfaces/GatewayModelsResponse.html +2 -2
- package/docs/api_reference/interfaces/MemorySearchFilters.html +2 -2
- package/docs/api_reference/interfaces/MigrationProgress.html +2 -2
- package/docs/api_reference/interfaces/MigrationStatus.html +2 -2
- package/docs/api_reference/interfaces/NotificationConfig.html +2 -2
- package/docs/api_reference/interfaces/NotificationContextType.html +2 -2
- package/docs/api_reference/interfaces/NotificationProviderProps.html +2 -2
- package/docs/api_reference/interfaces/PackageSettings.html +4 -2
- package/docs/api_reference/interfaces/SearchOptions.html +2 -2
- package/docs/api_reference/interfaces/SearchResult.html +2 -2
- package/docs/api_reference/interfaces/SubscriptionExpiredGuardProps.html +2 -2
- package/docs/api_reference/interfaces/SubscriptionExpiredModalProps.html +2 -2
- package/docs/api_reference/interfaces/TTSOptions.html +2 -2
- package/docs/api_reference/interfaces/TTSProgress.html +2 -2
- package/docs/api_reference/interfaces/TrialUsage.html +2 -2
- package/docs/api_reference/interfaces/UploadRequest.html +3 -3
- package/docs/api_reference/interfaces/UseTTSReturn.html +2 -2
- package/docs/api_reference/interfaces/VectorDocument.html +2 -2
- package/docs/api_reference/interfaces/VectorMemory.html +2 -2
- package/docs/api_reference/interfaces/VectorMemoryMetadata.html +2 -2
- package/docs/api_reference/interfaces/VectorStoreStatus.html +2 -2
- package/docs/api_reference/interfaces/VoiceModelsResponse.html +2 -2
- package/docs/api_reference/interfaces/VoiceState.html +2 -2
- package/docs/api_reference/media/02_gateway_api.md +55 -12
- package/docs/api_reference/media/README.md +37 -9
- package/docs/api_reference/types/FeatureKey.html +1 -1
- package/docs/api_reference/types/FeatureMatrix.html +1 -1
- package/docs/api_reference/types/GatewayQueryOptions.html +1 -1
- package/docs/api_reference/types/LogContext.html +1 -1
- package/docs/api_reference/types/SubscriptionTier.html +1 -1
- package/docs/api_reference/variables/DEFAULT_TIER_FEATURES.html +1 -1
- package/docs/api_reference/variables/FeatureFlagContext.html +1 -1
- package/docs/api_reference/variables/OSS_DEFAULT_FEATURES.html +1 -1
- package/docs/api_reference/variables/SYSTEM_FLAGS.html +1 -1
- package/docs/api_reference/variables/authenticationService.html +1 -1
- package/docs/api_reference/variables/debugLogger-1.html +1 -1
- package/docs/api_reference/variables/featureFlagService-1.html +1 -1
- package/docs/api_reference/variables/notificationService-1.html +1 -1
- package/docs/api_reference/variables/vectorDatabaseService-1.html +1 -1
- package/docs/api_reference/variables/vectorMigrationService-1.html +1 -1
- package/docs/api_reference/variables/voiceService-1.html +1 -1
- package/package.json +14 -1
- package/dist/chat-OLCX6TBK.mjs +0 -15
- package/dist/chunk-6YRLBITU.mjs.map +0 -1
- package/dist/chunk-AVC6IZJQ.mjs.map +0 -1
- package/dist/chunk-VSHO7PF2.mjs.map +0 -1
- package/docs/api_reference/media/README-1.md +0 -23
- /package/dist/{aiProviderStore-YWJHSWFA.mjs.map → aiProviderStore-3YS2BZU3.mjs.map} +0 -0
- /package/dist/{chat-OLCX6TBK.mjs.map → chat-ZPJNWIXI.mjs.map} +0 -0
- /package/dist/{chunk-CVIOLFMX.mjs.map → chunk-2ZNIQD26.mjs.map} +0 -0
- /package/dist/{chunk-HHKXWNCG.mjs.map → chunk-L7UOQ2Y2.mjs.map} +0 -0
- /package/dist/{chunk-5E7S7DK3.mjs.map → chunk-RTQDQ6TC.mjs.map} +0 -0
- /package/dist/{chunk-6IHJZCUH.mjs.map → chunk-UMPVXYVC.mjs.map} +0 -0
- /package/dist/{chunk-PXXVEH5M.mjs.map → chunk-XEG45Q6V.mjs.map} +0 -0
- /package/dist/{modelStore-CY6SECYD.mjs.map → modelStore-UMJBDSEF.mjs.map} +0 -0
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
MAX_WINDOWED_HEIGHT,
|
|
4
4
|
MIN_WINDOWED_HEIGHT,
|
|
5
5
|
chat_modal_default
|
|
6
|
-
} from "../../chunk-
|
|
7
|
-
import "../../chunk-
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
6
|
+
} from "../../chunk-L7UOQ2Y2.mjs";
|
|
7
|
+
import "../../chunk-XEG45Q6V.mjs";
|
|
8
|
+
import "../../chunk-UMPVXYVC.mjs";
|
|
9
|
+
import "../../chunk-XUBYA5I7.mjs";
|
|
10
|
+
import "../../chunk-IHJPVIGB.mjs";
|
|
11
11
|
import "../../chunk-KCI46M23.mjs";
|
|
12
12
|
import "../../chunk-BJTO5JO5.mjs";
|
|
13
13
|
export {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useModelStore
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XUBYA5I7.mjs";
|
|
4
4
|
import "./chunk-KCI46M23.mjs";
|
|
5
5
|
import "./chunk-BJTO5JO5.mjs";
|
|
6
6
|
export {
|
|
7
7
|
useModelStore
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=modelStore-
|
|
9
|
+
//# sourceMappingURL=modelStore-UMJBDSEF.mjs.map
|
package/dist/public-types.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { t as AIChatRequest, u as AIChatResponse, w as AIGenerateRequest, x as AIGenerateResponse, y as AIMessage, s as AIModel, A as AIProviderConfig, g as ChatConfig, h as ChatModalProps, g as ChatProviderProps, b as FeatureEvaluation, F as FeatureFlagConfig, a as FeatureKey, f as FeatureMatrix, m as GatewayChatRequest, n as GatewayChatResponse, j as GatewayContract, o as GatewayGenerateRequest, p as GatewayGenerateResponse, G as GatewayHealthResponse, r as GatewayMemoryRecord, d as GatewayMemoryResponse, l as GatewayMessage, k as GatewayMessageContent, c as GatewayModel, q as GatewayModelsResponse, P as PackageSettings, S as SubscriptionTier, T as TrialUsage, i as VoiceModelsResponse } from './gateway-
|
|
1
|
+
export { t as AIChatRequest, u as AIChatResponse, w as AIGenerateRequest, x as AIGenerateResponse, y as AIMessage, s as AIModel, A as AIProviderConfig, g as ChatConfig, h as ChatModalProps, g as ChatProviderProps, b as FeatureEvaluation, F as FeatureFlagConfig, a as FeatureKey, f as FeatureMatrix, m as GatewayChatRequest, n as GatewayChatResponse, j as GatewayContract, o as GatewayGenerateRequest, p as GatewayGenerateResponse, G as GatewayHealthResponse, r as GatewayMemoryRecord, d as GatewayMemoryResponse, l as GatewayMessage, k as GatewayMessageContent, c as GatewayModel, q as GatewayModelsResponse, P as PackageSettings, S as SubscriptionTier, T as TrialUsage, i as VoiceModelsResponse } from './gateway-BiHRHJMM.mjs';
|
|
2
2
|
import 'react';
|
|
3
3
|
|
|
4
4
|
interface StoredBrandingConfig {
|
package/dist/public-types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { t as AIChatRequest, u as AIChatResponse, w as AIGenerateRequest, x as AIGenerateResponse, y as AIMessage, s as AIModel, A as AIProviderConfig, g as ChatConfig, h as ChatModalProps, g as ChatProviderProps, b as FeatureEvaluation, F as FeatureFlagConfig, a as FeatureKey, f as FeatureMatrix, m as GatewayChatRequest, n as GatewayChatResponse, j as GatewayContract, o as GatewayGenerateRequest, p as GatewayGenerateResponse, G as GatewayHealthResponse, r as GatewayMemoryRecord, d as GatewayMemoryResponse, l as GatewayMessage, k as GatewayMessageContent, c as GatewayModel, q as GatewayModelsResponse, P as PackageSettings, S as SubscriptionTier, T as TrialUsage, i as VoiceModelsResponse } from './gateway-
|
|
1
|
+
export { t as AIChatRequest, u as AIChatResponse, w as AIGenerateRequest, x as AIGenerateResponse, y as AIMessage, s as AIModel, A as AIProviderConfig, g as ChatConfig, h as ChatModalProps, g as ChatProviderProps, b as FeatureEvaluation, F as FeatureFlagConfig, a as FeatureKey, f as FeatureMatrix, m as GatewayChatRequest, n as GatewayChatResponse, j as GatewayContract, o as GatewayGenerateRequest, p as GatewayGenerateResponse, G as GatewayHealthResponse, r as GatewayMemoryRecord, d as GatewayMemoryResponse, l as GatewayMessage, k as GatewayMessageContent, c as GatewayModel, q as GatewayModelsResponse, P as PackageSettings, S as SubscriptionTier, T as TrialUsage, i as VoiceModelsResponse } from './gateway-BiHRHJMM.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
|
|
4
4
|
interface StoredBrandingConfig {
|
package/docs/01_quickstart.md
CHANGED
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
Get Bandit Engine running locally in less than five minutes. This guide walks through installation, configuration, and verification using the provided gateway example.
|
|
4
4
|
|
|
5
5
|
## Endpoints / API Usage
|
|
6
|
-
The quickstart
|
|
7
|
-
- `GET /api/health`
|
|
8
|
-
- `GET /api/models`
|
|
9
|
-
- `POST /api/chat/completions`
|
|
6
|
+
The quickstart gateway exposes the contract Bandit expects out of the box:
|
|
7
|
+
- `GET /api/health` — confirm connectivity and list configured providers.
|
|
8
|
+
- `GET /api/models` and `GET /api/models/:provider` — populate the model switcher and provider tabs.
|
|
9
|
+
- `POST /api/chat/completions` and `POST /api/generate` — default OpenAI-style chat/generation when no provider override is supplied.
|
|
10
|
+
- `POST /api/openai|azure-openai|anthropic/chat/completions` — provider-scoped chat completions.
|
|
11
|
+
- `POST /api/openai|azure-openai|anthropic/generate` — provider-scoped text generation.
|
|
12
|
+
- `POST /api/ollama/chat` and `POST /api/ollama/generate` — native Ollama streaming routes.
|
|
10
13
|
|
|
11
14
|
## Example Implementation
|
|
12
15
|
1. **Install dependencies**:
|
|
@@ -18,9 +21,9 @@ The quickstart uses the minimal gateway endpoints:
|
|
|
18
21
|
```bash
|
|
19
22
|
cd packages/bandit-engine/examples/gateway-node
|
|
20
23
|
npm install
|
|
21
|
-
npm
|
|
24
|
+
npm run dev
|
|
22
25
|
```
|
|
23
|
-
The example server listens on `http://localhost:8080` and proxies to OpenAI or Ollama
|
|
26
|
+
The example server listens on `http://localhost:8080` and proxies to OpenAI, Azure OpenAI, Anthropic, or Ollama using provider-scoped endpoints. Providers without credentials respond with `501` until you wire them up.
|
|
24
27
|
3. **Wrap your app with `ChatProvider`**:
|
|
25
28
|
```tsx
|
|
26
29
|
import { ChatProvider } from "@burtson-labs/bandit-engine";
|
package/docs/02_gateway_api.md
CHANGED
|
@@ -2,18 +2,34 @@
|
|
|
2
2
|
## Overview
|
|
3
3
|
The gateway centralizes every provider integration behind a single authenticated endpoint. Bandit Engine forwards chat, generation, memory, and health requests without leaking provider credentials to the browser. This contract is language agnostic—implement it in Node.js, Python, Go, .NET, or any platform that can speak HTTP.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Every request must include `Authorization: Bearer <token>`. Tokens are injected by Bandit Engine via Axios interceptors, so your gateway only needs to validate the credential and map it to your auth system.
|
|
6
|
+
|
|
7
|
+
## Endpoint Overview
|
|
8
|
+
### Core routes
|
|
6
9
|
| Endpoint | Method | Description |
|
|
7
10
|
| --- | --- | --- |
|
|
8
11
|
| `/api/health` | GET | Returns gateway uptime, provider availability, and semantic version. |
|
|
9
12
|
| `/api/models` | GET | Lists models available across providers with metadata consumed by the management UI. |
|
|
13
|
+
| `/api/models/:provider` | GET | Lists models for a specific provider (e.g. `/api/models/openai`). |
|
|
10
14
|
| `/api/memory` | GET | Optional endpoint that returns stored memory records for the active tenant. |
|
|
11
|
-
| `/api/chat/completions` | POST | Streams chat responses using Server-Sent Events or chunked JSON. |
|
|
12
|
-
| `/api/generate` | POST | Handles non-chat text generation and returns chunked JSON for streaming. |
|
|
15
|
+
| `/api/chat/completions` | POST | Streams chat responses using Server-Sent Events or chunked JSON when no provider override is set. |
|
|
16
|
+
| `/api/generate` | POST | Handles non-chat text generation and returns chunked JSON for streaming when no provider override is set. |
|
|
13
17
|
| `/api/feedback` | POST | (Optional) Collects in-app feedback and attachments. |
|
|
14
18
|
| `/api/tts`, `/api/stt`, `/api/tts/available-models` | POST/GET | Optional voice endpoints for advanced deployments. |
|
|
15
19
|
|
|
16
|
-
|
|
20
|
+
### Provider-specific chat/generation routes
|
|
21
|
+
When the UI specifies a provider (OpenAI, Azure OpenAI, Anthropic, Ollama), Bandit Engine switches to provider-scoped endpoints automatically. Implement these routes alongside the core ones above:
|
|
22
|
+
|
|
23
|
+
| Provider | Chat endpoint | Generation endpoint |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| OpenAI | `POST /api/openai/chat/completions` | `POST /api/openai/generate` |
|
|
26
|
+
| Azure OpenAI | `POST /api/azure-openai/chat/completions` | `POST /api/azure-openai/generate` |
|
|
27
|
+
| Anthropic | `POST /api/anthropic/chat/completions` | `POST /api/anthropic/generate` |
|
|
28
|
+
| Ollama | `POST /api/ollama/chat` | `POST /api/ollama/generate` |
|
|
29
|
+
|
|
30
|
+
> ℹ️ Bandit still includes the `provider` field in the request body for convenience, but the URL itself determines which upstream integration should run. Ollama uses `/chat` (not `/chat/completions`) to match its native API.
|
|
31
|
+
|
|
32
|
+
If you only support a single upstream provider you may implement the matching provider-specific endpoints and omit the others. The `/api/chat/completions` and `/api/generate` routes remain useful as a “default” path when the frontend has no explicit provider preference.
|
|
17
33
|
|
|
18
34
|
## Example Implementation
|
|
19
35
|
```ts
|
|
@@ -31,19 +47,46 @@ app.get("/api/health", (req, res) => {
|
|
|
31
47
|
});
|
|
32
48
|
});
|
|
33
49
|
|
|
50
|
+
app.post("/api/openai/chat/completions", async (req, res) => {
|
|
51
|
+
const { model, messages, stream = true } = req.body;
|
|
52
|
+
|
|
53
|
+
const response = await fetch("https://api.openai.com/v1/chat/completions", {
|
|
54
|
+
method: "POST",
|
|
55
|
+
headers: {
|
|
56
|
+
"Content-Type": "application/json",
|
|
57
|
+
Authorization: `Bearer ${process.env.OPENAI_KEY}`
|
|
58
|
+
},
|
|
59
|
+
body: JSON.stringify({ model, messages, stream })
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
res.status(response.status);
|
|
63
|
+
response.body?.pipe(res);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
app.post("/api/ollama/chat", async (req, res) => {
|
|
67
|
+
const { model, messages, stream = true } = req.body;
|
|
68
|
+
|
|
69
|
+
const response = await fetch(`${process.env.OLLAMA_URL}/api/chat`, {
|
|
70
|
+
method: "POST",
|
|
71
|
+
headers: { "Content-Type": "application/json" },
|
|
72
|
+
body: JSON.stringify({ model, messages, stream })
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
res.status(response.status);
|
|
76
|
+
response.body?.pipe(res);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Optional default handler when no provider override is supplied
|
|
34
80
|
app.post("/api/chat/completions", async (req, res) => {
|
|
35
|
-
const {
|
|
36
|
-
const upstream = provider === "ollama"
|
|
37
|
-
? `${process.env.OLLAMA_URL}/api/chat`
|
|
38
|
-
: "https://api.openai.com/v1/chat/completions";
|
|
81
|
+
const { model, messages, stream = true } = req.body;
|
|
39
82
|
|
|
40
|
-
const response = await fetch(
|
|
83
|
+
const response = await fetch("https://api.openai.com/v1/chat/completions", {
|
|
41
84
|
method: "POST",
|
|
42
85
|
headers: {
|
|
43
86
|
"Content-Type": "application/json",
|
|
44
|
-
Authorization:
|
|
87
|
+
Authorization: `Bearer ${process.env.OPENAI_KEY}`
|
|
45
88
|
},
|
|
46
|
-
body: JSON.stringify({ model, messages })
|
|
89
|
+
body: JSON.stringify({ model, messages, stream })
|
|
47
90
|
});
|
|
48
91
|
|
|
49
92
|
res.status(response.status);
|
|
@@ -54,7 +97,7 @@ See [`examples/gateway-node`](../examples/gateway-node) for a complete runnable
|
|
|
54
97
|
|
|
55
98
|
## Integration Notes
|
|
56
99
|
- **Streaming**: Preserve chunked responses when proxying to providers. The client will parse each `data:` line.
|
|
57
|
-
- **Provider-specific routes**: Bandit Engine automatically swaps endpoints such as `/api/ollama/chat` or `/api/openai/chat/completions` when a provider is specified.
|
|
100
|
+
- **Provider-specific routes**: Bandit Engine automatically swaps endpoints such as `/api/ollama/chat` or `/api/openai/chat/completions` when a provider is specified (see table above).
|
|
58
101
|
- **Error handling**: Return structured JSON with `message` and `details` to take advantage of the engine's notification system.
|
|
59
102
|
- **Security**: Perform rate limiting, audit logging, and token verification on the gateway—never in the browser.
|
|
60
103
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "data:application/octet-stream;base64,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";
|
|
1
|
+
window.searchData = "data:application/octet-stream;base64,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";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DebugLogger | @burtson-labs/bandit-engine</title><meta name="description" content="Documentation for @burtson-labs/bandit-engine"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@burtson-labs/bandit-engine</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@burtson-labs/bandit-engine</a></li><li><a href="DebugLogger.html">DebugLogger</a></li></ul><h1>Class DebugLogger</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DebugLogger | @burtson-labs/bandit-engine</title><meta name="description" content="Documentation for @burtson-labs/bandit-engine"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@burtson-labs/bandit-engine</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@burtson-labs/bandit-engine</a></li><li><a href="DebugLogger.html">DebugLogger</a></li></ul><h1>Class DebugLogger</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L43">packages/bandit-engine/src/services/logging/debugLogger.ts:43</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="DebugLogger.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
|
|
2
2
|
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="DebugLogger.html#debug" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>debug</span></a>
|
|
3
3
|
<a href="DebugLogger.html#error" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>error</span></a>
|
|
4
4
|
<a href="DebugLogger.html#info" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>info</span></a>
|
|
@@ -8,22 +8,22 @@
|
|
|
8
8
|
<a href="DebugLogger.html#setDevelopmentMode" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Development<wbr/>Mode</span></a>
|
|
9
9
|
<a href="DebugLogger.html#table" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>table</span></a>
|
|
10
10
|
<a href="DebugLogger.html#warn" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>warn</span></a>
|
|
11
|
-
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_DebugLogger" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Debug<wbr/>Logger</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="DebugLogger.html" class="tsd-signature-type tsd-kind-class">DebugLogger</a><a href="#constructor.new_DebugLogger" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="DebugLogger.html" class="tsd-signature-type tsd-kind-class">DebugLogger</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
11
|
+
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_DebugLogger" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Debug<wbr/>Logger</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="DebugLogger.html" class="tsd-signature-type tsd-kind-class">DebugLogger</a><a href="#constructor.new_DebugLogger" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><h4 class="tsd-returns-title">Returns <a href="DebugLogger.html" class="tsd-signature-type tsd-kind-class">DebugLogger</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L46">packages/bandit-engine/src/services/logging/debugLogger.ts:46</a></li></ul></aside></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="debug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>debug</span><a href="#debug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="debug.debug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">debug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#debug.debug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Debug logs - only shown in development mode
|
|
12
12
|
These are obfuscated/hidden in production builds
|
|
13
13
|
DISABLED to prevent console flooding during chat processing</p>
|
|
14
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
14
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L98">packages/bandit-engine/src/services/logging/debugLogger.ts:98</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="error" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>error</span><a href="#error" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="error.error-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">error</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#error.error-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Error logs - always shown in both development and production
|
|
15
15
|
Used for critical errors that need attention</p>
|
|
16
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
16
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L141">packages/bandit-engine/src/services/logging/debugLogger.ts:141</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="info" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>info</span><a href="#info" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="info.info-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">info</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#info.info-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Info logs - shown in both development and production
|
|
17
17
|
Used for important user-facing information</p>
|
|
18
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
18
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L115">packages/bandit-engine/src/services/logging/debugLogger.ts:115</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="llmDebug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>llm<wbr/>Debug</span><a href="#llmDebug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="llmDebug.llmDebug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">llm<wbr/>Debug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">operation</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#llmDebug.llmDebug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>LLM-specific debug logging for RAG and AI features
|
|
19
19
|
DISABLED to prevent console flooding during chat processing</p>
|
|
20
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
20
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L154">packages/bandit-engine/src/services/logging/debugLogger.ts:154</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="memoryDebug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>memory<wbr/>Debug</span><a href="#memoryDebug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="memoryDebug.memoryDebug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">memory<wbr/>Debug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">operation</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#memoryDebug.memoryDebug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Memory-specific debug logging for AI memory features
|
|
21
21
|
DISABLED to prevent console flooding during chat processing</p>
|
|
22
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
22
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L172">packages/bandit-engine/src/services/logging/debugLogger.ts:172</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="ragDebug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rag<wbr/>Debug</span><a href="#ragDebug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="ragDebug.ragDebug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">rag<wbr/>Debug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">operation</span>, <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#ragDebug.ragDebug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>RAG-specific debug logging for knowledge and document processing
|
|
23
23
|
DISABLED to prevent console flooding during chat processing</p>
|
|
24
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
25
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">isDev</span>: <span class="tsd-signature-type">boolean</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
24
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">operation</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L163">packages/bandit-engine/src/services/logging/debugLogger.ts:163</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="setDevelopmentMode" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>set<wbr/>Development<wbr/>Mode</span><a href="#setDevelopmentMode" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="setDevelopmentMode.setDevelopmentMode-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set<wbr/>Development<wbr/>Mode</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">isDev</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#setDevelopmentMode.setDevelopmentMode-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Set development mode manually (useful for testing or runtime configuration)</p>
|
|
25
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">isDev</span>: <span class="tsd-signature-type">boolean</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L89">packages/bandit-engine/src/services/logging/debugLogger.ts:89</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="table" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>table</span><a href="#table" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="table.table-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">table</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">data</span>, <span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#table.table-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Table logging for development debugging
|
|
26
26
|
DISABLED to prevent console flooding during chat processing</p>
|
|
27
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
27
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">data</span>: <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">[]</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L181">packages/bandit-engine/src/services/logging/debugLogger.ts:181</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="warn" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>warn</span><a href="#warn" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="warn.warn-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">warn</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">context</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#warn.warn-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Warning logs - shown in both development and production
|
|
28
28
|
Used for non-critical issues that should be noted</p>
|
|
29
|
-
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/
|
|
29
|
+
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">context</span>: <span class="tsd-signature-type">unknown</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Burtson-Labs/bandit/blob/01c8108b418efc984f31ac1eef1f5b7969bc8bae/packages/bandit-engine/src/services/logging/debugLogger.ts#L128">packages/bandit-engine/src/services/logging/debugLogger.ts:128</a></li></ul></aside></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#debug" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>debug</span></a><a href="#error" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>error</span></a><a href="#info" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>info</span></a><a href="#llmDebug" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>llm<wbr/>Debug</span></a><a href="#memoryDebug" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>memory<wbr/>Debug</span></a><a href="#ragDebug" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>rag<wbr/>Debug</span></a><a href="#setDevelopmentMode" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Development<wbr/>Mode</span></a><a href="#table" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>table</span></a><a href="#warn" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>warn</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@burtson-labs/bandit-engine</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|