@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.
Files changed (182) hide show
  1. package/README.md +74 -29
  2. package/dist/{aiProviderStore-YWJHSWFA.mjs → aiProviderStore-3YS2BZU3.mjs} +2 -2
  3. package/dist/chat-ZPJNWIXI.mjs +15 -0
  4. package/dist/chat-provider.js +211 -16
  5. package/dist/chat-provider.js.map +1 -1
  6. package/dist/chat-provider.mjs +6 -6
  7. package/dist/{chunk-CVIOLFMX.mjs → chunk-2ZNIQD26.mjs} +4 -4
  8. package/dist/{chunk-6YRLBITU.mjs → chunk-5UVULH77.mjs} +18 -9
  9. package/dist/chunk-5UVULH77.mjs.map +1 -0
  10. package/dist/{chunk-VSHO7PF2.mjs → chunk-CY227I4F.mjs} +23 -13
  11. package/dist/chunk-CY227I4F.mjs.map +1 -0
  12. package/dist/{chunk-JQ6UNJNW.mjs → chunk-IFN52MQL.mjs} +16 -10
  13. package/dist/{chunk-JQ6UNJNW.mjs.map → chunk-IFN52MQL.mjs.map} +1 -1
  14. package/dist/{chunk-AVC6IZJQ.mjs → chunk-IHJPVIGB.mjs} +179 -2
  15. package/dist/chunk-IHJPVIGB.mjs.map +1 -0
  16. package/dist/{chunk-HHKXWNCG.mjs → chunk-L7UOQ2Y2.mjs} +5 -5
  17. package/dist/{chunk-5E7S7DK3.mjs → chunk-RTQDQ6TC.mjs} +2 -2
  18. package/dist/{chunk-6IHJZCUH.mjs → chunk-UMPVXYVC.mjs} +4 -4
  19. package/dist/{chunk-PXXVEH5M.mjs → chunk-XEG45Q6V.mjs} +4 -4
  20. package/dist/{chunk-QHLKGSMB.mjs → chunk-XUBYA5I7.mjs} +2 -2
  21. package/dist/{chunk-QHLKGSMB.mjs.map → chunk-XUBYA5I7.mjs.map} +1 -1
  22. package/dist/cli/cli.js +14 -1
  23. package/dist/cli/cli.js.map +1 -1
  24. package/dist/{gateway-BXVrH8B-.d.mts → gateway-BiHRHJMM.d.mts} +3 -1
  25. package/dist/{gateway-BXVrH8B-.d.ts → gateway-BiHRHJMM.d.ts} +3 -1
  26. package/dist/index.d.mts +2 -2
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.js +282 -72
  29. package/dist/index.js.map +1 -1
  30. package/dist/index.mjs +10 -10
  31. package/dist/management/management.js +262 -62
  32. package/dist/management/management.js.map +1 -1
  33. package/dist/management/management.mjs +8 -8
  34. package/dist/modals/chat-modal/chat-modal.js +202 -17
  35. package/dist/modals/chat-modal/chat-modal.js.map +1 -1
  36. package/dist/modals/chat-modal/chat-modal.mjs +5 -5
  37. package/dist/{modelStore-CY6SECYD.mjs → modelStore-UMJBDSEF.mjs} +2 -2
  38. package/dist/public-types.d.mts +1 -1
  39. package/dist/public-types.d.ts +1 -1
  40. package/docs/01_quickstart.md +9 -6
  41. package/docs/02_gateway_api.md +55 -12
  42. package/docs/api_reference/assets/search.js +1 -1
  43. package/docs/api_reference/classes/DebugLogger.html +11 -11
  44. package/docs/api_reference/classes/FeatureFlagService.html +13 -13
  45. package/docs/api_reference/classes/NotificationService.html +10 -10
  46. package/docs/api_reference/classes/StreamingTTSClient.html +9 -9
  47. package/docs/api_reference/classes/VectorDatabaseService.html +24 -24
  48. package/docs/api_reference/classes/VectorMigrationService.html +8 -8
  49. package/docs/api_reference/classes/VoiceService.html +2 -2
  50. package/docs/api_reference/enums/TTSState.html +2 -2
  51. package/docs/api_reference/functions/Chat.html +1 -1
  52. package/docs/api_reference/functions/ChatModal.html +1 -1
  53. package/docs/api_reference/functions/ChatProvider.html +1 -1
  54. package/docs/api_reference/functions/FeatureFlagProvider.html +1 -1
  55. package/docs/api_reference/functions/FeedbackButton.html +1 -1
  56. package/docs/api_reference/functions/FeedbackModal.html +1 -1
  57. package/docs/api_reference/functions/Management.html +1 -1
  58. package/docs/api_reference/functions/NotificationProvider.html +1 -1
  59. package/docs/api_reference/functions/SubscriptionExpiredGuard.html +1 -1
  60. package/docs/api_reference/functions/SubscriptionExpiredModal.html +1 -1
  61. package/docs/api_reference/functions/defineCustomElement.html +1 -1
  62. package/docs/api_reference/functions/getCriticalConfig.html +1 -1
  63. package/docs/api_reference/functions/getFeatureMatrix.html +1 -1
  64. package/docs/api_reference/functions/getStreamingTTSClient.html +1 -1
  65. package/docs/api_reference/functions/getSystemConstants.html +1 -1
  66. package/docs/api_reference/functions/getTTSState.html +1 -1
  67. package/docs/api_reference/functions/handleHttpError.html +1 -1
  68. package/docs/api_reference/functions/handleSubscriptionUpgrade.html +1 -1
  69. package/docs/api_reference/functions/handleValidationError.html +1 -1
  70. package/docs/api_reference/functions/initializeCoreSystem.html +1 -1
  71. package/docs/api_reference/functions/pauseTTS.html +1 -1
  72. package/docs/api_reference/functions/previewTierUpgrade.html +1 -1
  73. package/docs/api_reference/functions/resumeTTS.html +1 -1
  74. package/docs/api_reference/functions/showInfoNotification.html +1 -1
  75. package/docs/api_reference/functions/showSuccessNotification.html +1 -1
  76. package/docs/api_reference/functions/speakWithStreaming.html +1 -1
  77. package/docs/api_reference/functions/stopTTS.html +1 -1
  78. package/docs/api_reference/functions/syncSubscriptionWithAPI.html +1 -1
  79. package/docs/api_reference/functions/updateSubscriptionTier.html +1 -1
  80. package/docs/api_reference/functions/useFeatureFlag.html +1 -1
  81. package/docs/api_reference/functions/useFeatureVisibility.html +1 -1
  82. package/docs/api_reference/functions/useFeatures.html +1 -1
  83. package/docs/api_reference/functions/useGatewayHealth.html +1 -1
  84. package/docs/api_reference/functions/useGatewayMemory.html +1 -1
  85. package/docs/api_reference/functions/useGatewayModels.html +1 -1
  86. package/docs/api_reference/functions/useGlobalTTS.html +1 -1
  87. package/docs/api_reference/functions/useNotification.html +1 -1
  88. package/docs/api_reference/functions/useNotificationService.html +1 -1
  89. package/docs/api_reference/functions/useTTS.html +1 -1
  90. package/docs/api_reference/functions/useVectorStore.html +1 -1
  91. package/docs/api_reference/functions/useVoiceStore.html +2 -2
  92. package/docs/api_reference/functions/useVoices.html +1 -1
  93. package/docs/api_reference/functions/validateEnvironment.html +1 -1
  94. package/docs/api_reference/functions/validateSystemIntegrity.html +1 -1
  95. package/docs/api_reference/index.html +34 -15
  96. package/docs/api_reference/interfaces/AIChatRequest.html +2 -2
  97. package/docs/api_reference/interfaces/AIChatResponse.html +2 -2
  98. package/docs/api_reference/interfaces/AIGenerateRequest.html +2 -2
  99. package/docs/api_reference/interfaces/AIGenerateResponse.html +2 -2
  100. package/docs/api_reference/interfaces/AIMessage.html +2 -2
  101. package/docs/api_reference/interfaces/AIModel.html +2 -2
  102. package/docs/api_reference/interfaces/AIProviderConfig.html +2 -2
  103. package/docs/api_reference/interfaces/ChatConfig.html +3 -3
  104. package/docs/api_reference/interfaces/ChatModalProps.html +3 -3
  105. package/docs/api_reference/interfaces/CreateMemoryOptions.html +2 -2
  106. package/docs/api_reference/interfaces/FeatureEvaluation.html +7 -7
  107. package/docs/api_reference/interfaces/FeatureFlagConfig.html +9 -9
  108. package/docs/api_reference/interfaces/FeatureFlagContextValue.html +8 -8
  109. package/docs/api_reference/interfaces/FeatureFlagProviderProps.html +2 -2
  110. package/docs/api_reference/interfaces/FeedbackButtonProps.html +10 -10
  111. package/docs/api_reference/interfaces/FeedbackCategories.html +2 -2
  112. package/docs/api_reference/interfaces/FeedbackModalProps.html +2 -2
  113. package/docs/api_reference/interfaces/FeedbackPriorities.html +2 -2
  114. package/docs/api_reference/interfaces/FeedbackRequest.html +2 -2
  115. package/docs/api_reference/interfaces/FeedbackResponse.html +2 -2
  116. package/docs/api_reference/interfaces/FileUploadResult.html +2 -2
  117. package/docs/api_reference/interfaces/GatewayChatRequest.html +2 -2
  118. package/docs/api_reference/interfaces/GatewayChatResponse.html +2 -2
  119. package/docs/api_reference/interfaces/GatewayContract.html +2 -2
  120. package/docs/api_reference/interfaces/GatewayGenerateRequest.html +2 -2
  121. package/docs/api_reference/interfaces/GatewayGenerateResponse.html +2 -2
  122. package/docs/api_reference/interfaces/GatewayHealthResponse.html +2 -2
  123. package/docs/api_reference/interfaces/GatewayMemoryRecord.html +2 -2
  124. package/docs/api_reference/interfaces/GatewayMemoryResponse.html +2 -2
  125. package/docs/api_reference/interfaces/GatewayMessage.html +2 -2
  126. package/docs/api_reference/interfaces/GatewayMessageContent.html +2 -2
  127. package/docs/api_reference/interfaces/GatewayModel.html +2 -2
  128. package/docs/api_reference/interfaces/GatewayModelsResponse.html +2 -2
  129. package/docs/api_reference/interfaces/MemorySearchFilters.html +2 -2
  130. package/docs/api_reference/interfaces/MigrationProgress.html +2 -2
  131. package/docs/api_reference/interfaces/MigrationStatus.html +2 -2
  132. package/docs/api_reference/interfaces/NotificationConfig.html +2 -2
  133. package/docs/api_reference/interfaces/NotificationContextType.html +2 -2
  134. package/docs/api_reference/interfaces/NotificationProviderProps.html +2 -2
  135. package/docs/api_reference/interfaces/PackageSettings.html +4 -2
  136. package/docs/api_reference/interfaces/SearchOptions.html +2 -2
  137. package/docs/api_reference/interfaces/SearchResult.html +2 -2
  138. package/docs/api_reference/interfaces/SubscriptionExpiredGuardProps.html +2 -2
  139. package/docs/api_reference/interfaces/SubscriptionExpiredModalProps.html +2 -2
  140. package/docs/api_reference/interfaces/TTSOptions.html +2 -2
  141. package/docs/api_reference/interfaces/TTSProgress.html +2 -2
  142. package/docs/api_reference/interfaces/TrialUsage.html +2 -2
  143. package/docs/api_reference/interfaces/UploadRequest.html +3 -3
  144. package/docs/api_reference/interfaces/UseTTSReturn.html +2 -2
  145. package/docs/api_reference/interfaces/VectorDocument.html +2 -2
  146. package/docs/api_reference/interfaces/VectorMemory.html +2 -2
  147. package/docs/api_reference/interfaces/VectorMemoryMetadata.html +2 -2
  148. package/docs/api_reference/interfaces/VectorStoreStatus.html +2 -2
  149. package/docs/api_reference/interfaces/VoiceModelsResponse.html +2 -2
  150. package/docs/api_reference/interfaces/VoiceState.html +2 -2
  151. package/docs/api_reference/media/02_gateway_api.md +55 -12
  152. package/docs/api_reference/media/README.md +37 -9
  153. package/docs/api_reference/types/FeatureKey.html +1 -1
  154. package/docs/api_reference/types/FeatureMatrix.html +1 -1
  155. package/docs/api_reference/types/GatewayQueryOptions.html +1 -1
  156. package/docs/api_reference/types/LogContext.html +1 -1
  157. package/docs/api_reference/types/SubscriptionTier.html +1 -1
  158. package/docs/api_reference/variables/DEFAULT_TIER_FEATURES.html +1 -1
  159. package/docs/api_reference/variables/FeatureFlagContext.html +1 -1
  160. package/docs/api_reference/variables/OSS_DEFAULT_FEATURES.html +1 -1
  161. package/docs/api_reference/variables/SYSTEM_FLAGS.html +1 -1
  162. package/docs/api_reference/variables/authenticationService.html +1 -1
  163. package/docs/api_reference/variables/debugLogger-1.html +1 -1
  164. package/docs/api_reference/variables/featureFlagService-1.html +1 -1
  165. package/docs/api_reference/variables/notificationService-1.html +1 -1
  166. package/docs/api_reference/variables/vectorDatabaseService-1.html +1 -1
  167. package/docs/api_reference/variables/vectorMigrationService-1.html +1 -1
  168. package/docs/api_reference/variables/voiceService-1.html +1 -1
  169. package/package.json +14 -1
  170. package/dist/chat-OLCX6TBK.mjs +0 -15
  171. package/dist/chunk-6YRLBITU.mjs.map +0 -1
  172. package/dist/chunk-AVC6IZJQ.mjs.map +0 -1
  173. package/dist/chunk-VSHO7PF2.mjs.map +0 -1
  174. package/docs/api_reference/media/README-1.md +0 -23
  175. /package/dist/{aiProviderStore-YWJHSWFA.mjs.map → aiProviderStore-3YS2BZU3.mjs.map} +0 -0
  176. /package/dist/{chat-OLCX6TBK.mjs.map → chat-ZPJNWIXI.mjs.map} +0 -0
  177. /package/dist/{chunk-CVIOLFMX.mjs.map → chunk-2ZNIQD26.mjs.map} +0 -0
  178. /package/dist/{chunk-HHKXWNCG.mjs.map → chunk-L7UOQ2Y2.mjs.map} +0 -0
  179. /package/dist/{chunk-5E7S7DK3.mjs.map → chunk-RTQDQ6TC.mjs.map} +0 -0
  180. /package/dist/{chunk-6IHJZCUH.mjs.map → chunk-UMPVXYVC.mjs.map} +0 -0
  181. /package/dist/{chunk-PXXVEH5M.mjs.map → chunk-XEG45Q6V.mjs.map} +0 -0
  182. /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-HHKXWNCG.mjs";
7
- import "../../chunk-PXXVEH5M.mjs";
8
- import "../../chunk-6IHJZCUH.mjs";
9
- import "../../chunk-QHLKGSMB.mjs";
10
- import "../../chunk-AVC6IZJQ.mjs";
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-QHLKGSMB.mjs";
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-CY6SECYD.mjs.map
9
+ //# sourceMappingURL=modelStore-UMJBDSEF.mjs.map
@@ -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-BXVrH8B-.mjs';
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 {
@@ -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-BXVrH8B-.js';
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 {
@@ -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 uses the minimal gateway endpoints:
7
- - `GET /api/health` to confirm connectivity.
8
- - `GET /api/models` to populate the model switcher.
9
- - `POST /api/chat/completions` to stream 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 start
24
+ npm run dev
22
25
  ```
23
- The example server listens on `http://localhost:8080` and proxies to OpenAI or Ollama based on the request payload.
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";
@@ -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
- ## Endpoints / API Usage
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
- 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.
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 { provider, model, messages } = req.body;
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(upstream, {
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: provider === "ollama" ? undefined : `Bearer ${process.env.OPENAI_KEY}`
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/2026e27b34278071c991a9d75678521759535f44/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>
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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
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/2026e27b34278071c991a9d75678521759535f44/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>
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>