@burtson-labs/bandit-engine 2.0.8 → 2.0.9
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/LICENSE +2 -2
- package/README.md +87 -27
- package/dist/chat-OLCX6TBK.mjs +15 -0
- package/dist/chat-provider.js +9413 -0
- package/dist/chat-provider.js.map +1 -0
- package/dist/chat-provider.mjs +17 -0
- package/dist/chunk-5E7S7DK3.mjs +231 -0
- package/dist/chunk-5E7S7DK3.mjs.map +1 -0
- package/dist/chunk-6IHJZCUH.mjs +5658 -0
- package/dist/chunk-6IHJZCUH.mjs.map +1 -0
- package/dist/chunk-6YRLBITU.mjs +9418 -0
- package/dist/chunk-6YRLBITU.mjs.map +1 -0
- package/dist/chunk-CVIOLFMX.mjs +259 -0
- package/dist/chunk-CVIOLFMX.mjs.map +1 -0
- package/dist/chunk-HHKXWNCG.mjs +2810 -0
- package/dist/chunk-HHKXWNCG.mjs.map +1 -0
- package/dist/chunk-JQ6UNJNW.mjs +8757 -0
- package/dist/chunk-JQ6UNJNW.mjs.map +1 -0
- package/dist/chunk-ONQMRE2G.mjs +26 -0
- package/dist/chunk-ONQMRE2G.mjs.map +1 -0
- package/dist/chunk-PXXVEH5M.mjs +8925 -0
- package/dist/chunk-PXXVEH5M.mjs.map +1 -0
- package/dist/{chunk-WYS5CZVG.mjs → chunk-QHLKGSMB.mjs} +2 -2
- package/dist/{chunk-WYS5CZVG.mjs.map → chunk-QHLKGSMB.mjs.map} +1 -1
- package/dist/chunk-VSHO7PF2.mjs +150 -0
- package/dist/chunk-VSHO7PF2.mjs.map +1 -0
- package/dist/cli/cli.js +11 -13
- package/dist/cli/cli.js.map +1 -1
- package/dist/gateway-BXVrH8B-.d.mts +312 -0
- package/dist/gateway-BXVrH8B-.d.ts +312 -0
- package/dist/index.d.mts +11 -309
- package/dist/index.d.ts +11 -309
- package/dist/index.js +118 -83
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -11874
- package/dist/index.mjs.map +1 -1
- package/dist/management/management.js +39335 -0
- package/dist/management/management.js.map +1 -0
- package/dist/management/management.mjs +16 -0
- package/dist/management/management.mjs.map +1 -0
- package/dist/{chunk-BIPELT57.mjs → modals/chat-modal/chat-modal.js} +16653 -20880
- package/dist/modals/chat-modal/chat-modal.js.map +1 -0
- package/dist/modals/chat-modal/chat-modal.mjs +19 -0
- package/dist/modals/chat-modal/chat-modal.mjs.map +1 -0
- package/dist/{modelStore-Y3LZWRQC.mjs → modelStore-CY6SECYD.mjs} +2 -2
- package/dist/modelStore-CY6SECYD.mjs.map +1 -0
- package/dist/public-types.d.mts +32 -0
- package/dist/public-types.d.ts +32 -0
- package/docs/04_local_dev.md +1 -1
- package/docs/api_reference/assets/navigation.js +1 -1
- 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 +4 -4
- 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 +97 -26
- 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 +7 -0
- 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 +3 -3
- 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/LICENSE +2 -2
- package/docs/api_reference/media/PROTECTION-README.md +6 -8
- package/docs/api_reference/modules.html +1 -0
- 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 +11 -13
- package/dist/chat-QXB526NZ.mjs +0 -11
- package/dist/chunk-BIPELT57.mjs.map +0 -1
- /package/dist/{chat-QXB526NZ.mjs.map → chat-OLCX6TBK.mjs.map} +0 -0
- /package/dist/{modelStore-Y3LZWRQC.mjs.map → chat-provider.mjs.map} +0 -0
package/LICENSE
CHANGED
|
@@ -20,14 +20,14 @@ https://burtson.ai/license
|
|
|
20
20
|
Parameters
|
|
21
21
|
|
|
22
22
|
Licensor: Burtson Labs LLC
|
|
23
|
-
Licensed Work: Bandit Engine
|
|
23
|
+
Licensed Work: Bandit Engine UI SDK
|
|
24
24
|
The Licensed Work is © 2025 Burtson Labs
|
|
25
25
|
Additional Use Grant: You may make use of the Licensed Work, provided that you do not use
|
|
26
26
|
the Licensed Work for a Commercial Use. A "Commercial Use" means use of
|
|
27
27
|
the Licensed Work in production, or any other use that is primarily
|
|
28
28
|
intended for or directed toward commercial advantage or monetary
|
|
29
29
|
compensation.
|
|
30
|
-
Change Date:
|
|
30
|
+
Change Date: April 1, 2027
|
|
31
31
|
Change License: Apache License, Version 2.0
|
|
32
32
|
|
|
33
33
|
For information about alternative licensing arrangements for the Licensed Work,
|
package/README.md
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
<a href="https://burtson.ai"
|
|
1
|
+
<a href="https://burtson.ai">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.burtson.ai/logos/burtson-labs-logo-alt.png" />
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="https://cdn.burtson.ai/logos/burtson-labs-logo.png" />
|
|
5
|
+
<img src="https://cdn.burtson.ai/logos/burtson-labs-logo.png" alt="Burtson Labs Logo" width="120" style="width: 120px !important; max-width: 120px !important; height: auto; display: inline-block;" />
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
2
8
|
|
|
3
9
|
[](https://www.npmjs.com/package/@burtson-labs/bandit-engine)
|
|
4
10
|
[](https://www.typescriptlang.org/)
|
|
@@ -37,6 +43,8 @@ Customize the output with options such as:
|
|
|
37
43
|
|
|
38
44
|
> 🗝️ The generated project includes an `.npmrc` that targets `https://npm.pkg.github.com/` and expects a `GITHUB_NPM_TOKEN` environment variable. Run `npm login --registry=https://npm.pkg.github.com --scope=@burtson-labs` (or export `GITHUB_NPM_TOKEN`) before installing dependencies.
|
|
39
45
|
|
|
46
|
+
> ⚠️ The scaffolded gateway focuses on OpenAI/Ollama chat and model discovery. All advanced routes (file storage uploads, vector embedding, voice, MCP, etc.) are generated as `501` placeholders so you can wire them to your own infrastructure. Implement the contracts below before turning on those features in production.
|
|
47
|
+
|
|
40
48
|
Check out the [CLI quick start guide](./docs/05_cli_quickstart.md) for the full walkthrough, option matrix, and project anatomy.
|
|
41
49
|
|
|
42
50
|
### CLI Options
|
|
@@ -53,6 +61,9 @@ The CLI prints next steps (install, copy `.env`, run dev server) once scaffoldin
|
|
|
53
61
|
|
|
54
62
|
## 🛠️ Getting Started – Plug & Play AI
|
|
55
63
|
|
|
64
|
+
|
|
65
|
+
Bandit ships with responsive layouts baked in — the chat surface, management console, and modal all collapse gracefully on phones and tablets. Install it inside a Vite project and you can ship a polished PWA: the package works offline when cached, supports mobile nav patterns, and plays nicely with add-to-home-screen flows.
|
|
66
|
+
|
|
56
67
|
1. **Add a config.json** to your public folder (or host it on a CDN) and point `brandingConfigUrl` at it:
|
|
57
68
|
|
|
58
69
|
_Host it locally in `/public` or serve it from a CDN and reference it via `brandingConfigUrl`._
|
|
@@ -92,7 +103,7 @@ const chatPackageSettings = {
|
|
|
92
103
|
provider: "openai" // Backend: openai, azure-openai, anthropic, ollama
|
|
93
104
|
},
|
|
94
105
|
|
|
95
|
-
//
|
|
106
|
+
// Direct Ollama configuration (development only)
|
|
96
107
|
// ollamaUrl: import.meta.env.VITE_OLLAMA_URL!,
|
|
97
108
|
|
|
98
109
|
// Model Configuration
|
|
@@ -103,7 +114,7 @@ const chatPackageSettings = {
|
|
|
103
114
|
|
|
104
115
|
// Branding and optional overrides
|
|
105
116
|
brandingConfigUrl: "/config.json",
|
|
106
|
-
//
|
|
117
|
+
// fileStorageApiUrl: import.meta.env.VITE_FILE_STORAGE_API_URL,
|
|
107
118
|
// homeUrl: "https://yourapp.com",
|
|
108
119
|
// feedbackEmail: "feedback@yourapp.com",
|
|
109
120
|
};
|
|
@@ -145,13 +156,34 @@ aiProvider: {
|
|
|
145
156
|
}
|
|
146
157
|
```
|
|
147
158
|
|
|
148
|
-
**Gateway Requirements:**
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
- `
|
|
152
|
-
- `
|
|
153
|
-
- `GET /api/
|
|
154
|
-
-
|
|
159
|
+
**Gateway Requirements:** Implement the endpoints that match the features you turn on:
|
|
160
|
+
|
|
161
|
+
- **Core status & discovery**
|
|
162
|
+
- `GET /api/health` — system health and provider availability
|
|
163
|
+
- `GET /api/models` and `GET /api/models/{provider}` — model inventory
|
|
164
|
+
- `GET /api/memory` — hydrate personal memory when the feature is enabled
|
|
165
|
+
- **Chat & text generation**
|
|
166
|
+
- `POST /api/chat/completions` — default provider routing
|
|
167
|
+
- `POST /api/{provider}/chat/completions` — provider-specific routing (e.g. `openai`, `azure-openai`, `anthropic`)
|
|
168
|
+
- `POST /api/ollama/chat` — native Ollama chat format
|
|
169
|
+
- `POST /api/generate` — non-chat generation (conversation starters, summaries, etc.)
|
|
170
|
+
- `POST /api/{provider}/generate` — same contract, but scoped per provider (required for conversation starters to respect OpenAI vs. Ollama routing)
|
|
171
|
+
- **Knowledge & vector search** (required for memories, knowledge management, and MCP document tools)
|
|
172
|
+
- `POST /api/embedding/embed-memory`
|
|
173
|
+
- `POST /api/embedding/batch-embed-memories`
|
|
174
|
+
- `POST /api/embedding/embed-document`
|
|
175
|
+
- `POST /api/embedding/search` and `POST /api/embedding/search-memories`
|
|
176
|
+
- `GET /api/embedding/my-memories` (with `skip`/`limit`)
|
|
177
|
+
- `DELETE /api/embedding/memory/{memoryId}` and `PUT /api/embedding/memory/{memoryId}/pin`
|
|
178
|
+
- `GET /api/embedding/available-files` and `GET /api/embedding/files`
|
|
179
|
+
- See [File Storage API Contract](#file-storage-api-contract) for the companion `/file/*` routes used to upload and download source documents.
|
|
180
|
+
- **Voice & transcription**
|
|
181
|
+
- `POST /api/tts` — synthesize speech
|
|
182
|
+
- `GET /api/tts/available-models` — advertise available voices
|
|
183
|
+
- `POST /api/stt/transcribe` — speech-to-text ingestion
|
|
184
|
+
- **Feedback & subscriptions** (optional but recommended)
|
|
185
|
+
- `POST /api/feedback` — submit in-app feedback
|
|
186
|
+
- `GET /subscription/{userId}` and `PUT /subscription/{userId}` — synchronize subscription tiers used by the feature-flag system
|
|
155
187
|
|
|
156
188
|
> **⚠️ Important:** The Bandit Engine automatically routes to provider-specific endpoints:
|
|
157
189
|
> - **Ollama** → `/api/ollama/chat` (native Ollama format)
|
|
@@ -192,7 +224,7 @@ The Bandit Engine supports Text-to-Speech (TTS) and Speech-to-Text (STT) through
|
|
|
192
224
|
- **Output**: Audio file (MP3, WAV, etc.) or streaming audio
|
|
193
225
|
- **Compatible with**: OpenAI TTS, Azure Speech, Google Cloud TTS, AWS Polly, local TTS servers, or custom implementations
|
|
194
226
|
|
|
195
|
-
**STT Endpoint (`POST /api/stt`)**
|
|
227
|
+
**STT Endpoint (`POST /api/stt/transcribe`)**
|
|
196
228
|
- **Input**: Audio file upload (multipart/form-data)
|
|
197
229
|
- **Output**: `{ text: string }` or `{ transcription: string }`
|
|
198
230
|
- **Compatible with**: OpenAI Whisper, Azure Speech, Google Speech, AWS Transcribe, local Whisper servers, or custom implementations
|
|
@@ -201,6 +233,8 @@ The Bandit Engine supports Text-to-Speech (TTS) and Speech-to-Text (STT) through
|
|
|
201
233
|
- **Output**: `{ models: string[], defaultModel: string, fallbackModel: string }`
|
|
202
234
|
- Used for automatic service availability detection and voice model selection
|
|
203
235
|
|
|
236
|
+
> Quickstart note: the generated Express gateway ships these TTS/STT routes as `501` placeholders so you can connect your own provider. Voice features remain disabled until you implement them server-side.
|
|
237
|
+
|
|
204
238
|
See the [Gateway API Contract](./docs/02_gateway_api.md) for complete implementation examples in multiple languages.
|
|
205
239
|
|
|
206
240
|
Use the Management interface to switch providers anytime or migrate from direct to gateway setup.
|
|
@@ -516,32 +550,44 @@ Here are some screenshots of Bandit Chat in action:
|
|
|
516
550
|
|
|
517
551
|
**Chat Demo – Your AI-powered UI**
|
|
518
552
|
<p align="center">
|
|
519
|
-
<
|
|
553
|
+
<a href="https://cdn.burtson.ai/images/chat-demo.jpg" target="_blank" rel="noopener">
|
|
554
|
+
<img src="https://cdn.burtson.ai/images/chat-demo.jpg" alt="Bandit chat session showing multi-turn conversation with multi-device layout" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
555
|
+
</a>
|
|
520
556
|
</p>
|
|
521
557
|
|
|
522
558
|
**Conversation Drawer & Project Context**
|
|
523
559
|
<p align="center">
|
|
524
|
-
<
|
|
560
|
+
<a href="https://cdn.burtson.ai/images/chat-demo-2.jpg" target="_blank" rel="noopener">
|
|
561
|
+
<img src="https://cdn.burtson.ai/images/chat-demo-2.jpg" alt="Chat drawer open with projects list and answered question" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
562
|
+
</a>
|
|
525
563
|
</p>
|
|
526
564
|
|
|
527
565
|
**Chat Modal – Quick Assist Anywhere**
|
|
528
566
|
<p align="center">
|
|
529
|
-
<
|
|
567
|
+
<a href="https://cdn.burtson.ai/images/chat-modal.jpg" target="_blank" rel="noopener">
|
|
568
|
+
<img src="https://cdn.burtson.ai/images/chat-modal.jpg" alt="Chat modal with control center options and message composer" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
569
|
+
</a>
|
|
530
570
|
</p>
|
|
531
571
|
|
|
532
572
|
**Management – Branding Controls**
|
|
533
573
|
<p align="center">
|
|
534
|
-
<
|
|
574
|
+
<a href="https://cdn.burtson.ai/images/mgmt-branding.jpg" target="_blank" rel="noopener">
|
|
575
|
+
<img src="https://cdn.burtson.ai/images/mgmt-branding.jpg" alt="Management interface branding tab showing logo and color options" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
576
|
+
</a>
|
|
535
577
|
</p>
|
|
536
578
|
|
|
537
579
|
**Management – Personas**
|
|
538
580
|
<p align="center">
|
|
539
|
-
<
|
|
581
|
+
<a href="https://cdn.burtson.ai/images/mgmt-personalities.jpg" target="_blank" rel="noopener">
|
|
582
|
+
<img src="https://cdn.burtson.ai/images/mgmt-personalities.jpg" alt="Management interface personas tab with configurable AI personalities" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
583
|
+
</a>
|
|
540
584
|
</p>
|
|
541
585
|
|
|
542
586
|
**Management – Preferences**
|
|
543
587
|
<p align="center">
|
|
544
|
-
<
|
|
588
|
+
<a href="https://cdn.burtson.ai/images/mgmt-preferences.jpg" target="_blank" rel="noopener">
|
|
589
|
+
<img src="https://cdn.burtson.ai/images/mgmt-preferences.jpg" alt="Management interface preferences tab with feature toggles" width="600" style="width: 100%; max-width: 600px; height: auto;" />
|
|
590
|
+
</a>
|
|
545
591
|
</p>
|
|
546
592
|
|
|
547
593
|
|
|
@@ -574,11 +620,26 @@ This enables remote control of Bandit appearance, available models, and more —
|
|
|
574
620
|
- `gatewayApiUrl`: Gateway API base URL for AI, TTS, STT, and MCP
|
|
575
621
|
- `aiProvider`: Provider configuration object (recommended for new installs)
|
|
576
622
|
- `ollamaUrl`: Legacy Ollama base URL (deprecated, prefer `aiProvider`)
|
|
577
|
-
- `
|
|
623
|
+
- `fileStorageApiUrl`: Optional file storage API base URL (defaults to `gatewayApiUrl`)
|
|
578
624
|
- `brandingConfigUrl`: Hosted branding JSON used to hydrate UI theming
|
|
579
625
|
- `homeUrl`: Optional URL for the home button in management UI
|
|
580
626
|
- `feedbackEmail`: Optional email address for feedback submissions
|
|
581
627
|
- `featureFlags`: Optional feature flag configuration (see examples below)
|
|
628
|
+
- `types`: Official TypeScript entry point is available at `@burtson-labs/bandit-engine/types`. Importing from that path gives you rich IntelliSense for `ChatProviderProps`, `PackageSettings`, `ChatModalProps`, gateway contracts, and more.
|
|
629
|
+
|
|
630
|
+
### File Storage API Contract
|
|
631
|
+
|
|
632
|
+
Enabling `fileStorageApiUrl` activates document uploads for vector memories, but the CLI quickstart intentionally leaves the backend stubbed. When you point the frontend at a file storage service, Bandit expects these authenticated endpoints:
|
|
633
|
+
|
|
634
|
+
- `POST /file/upload` — `multipart/form-data` body with `file` and optional `shareWithTeam`; returns `{ fileId, message? }`
|
|
635
|
+
- `GET /file/files?skip=0&limit=50` — lists previously uploaded files and metadata (`id`, `filename`, `size`, `contentType`, `updatedAt`)
|
|
636
|
+
- `GET /file/download/{fileId}` — streams the file associated with the supplied identifier
|
|
637
|
+
|
|
638
|
+
All requests include a Bearer token issued by your gateway. Implementers can back these routes with S3, MinIO, or any storage provider — the frontend only requires the contract above.
|
|
639
|
+
|
|
640
|
+
These file operations are invoked in tandem with the `/api/embedding/*` endpoints described earlier to keep the vector index in sync.
|
|
641
|
+
|
|
642
|
+
> Quickstart note: the bundled Express gateway does not implement these upload/download routes; they currently return `501` until you connect real storage.
|
|
582
643
|
|
|
583
644
|
## 🤖 AI Provider System
|
|
584
645
|
|
|
@@ -647,8 +708,6 @@ aiProvider: {
|
|
|
647
708
|
3. **Test Connection**: Use the Management interface to validate
|
|
648
709
|
4. **Update API Keys**: Move keys from frontend to backend config
|
|
649
710
|
|
|
650
|
-
See `GATEWAY_MIGRATION_GUIDE.md` for detailed migration steps.
|
|
651
|
-
|
|
652
711
|
### Image/Multimodal Support
|
|
653
712
|
|
|
654
713
|
The Bandit Engine provides comprehensive image support across all AI providers through the gateway architecture:
|
|
@@ -1043,7 +1102,7 @@ const chatPackageSettings = {
|
|
|
1043
1102
|
// ❌ Deprecated (still works but not recommended)
|
|
1044
1103
|
const oldSettings = {
|
|
1045
1104
|
ttsUrl: "/api/tts",
|
|
1046
|
-
sttUrl: "/api/stt",
|
|
1105
|
+
sttUrl: "/api/stt/transcribe",
|
|
1047
1106
|
ollamaUrl: "http://localhost:11434",
|
|
1048
1107
|
};
|
|
1049
1108
|
|
|
@@ -1077,7 +1136,7 @@ The Bandit Engine uses a **unified gateway approach** for all backend services.
|
|
|
1077
1136
|
- Output: Audio file or streaming audio
|
|
1078
1137
|
- **Technology-agnostic**: Works with OpenAI TTS, Azure Speech, Google TTS, AWS Polly, Whisper.cpp, or custom implementations
|
|
1079
1138
|
|
|
1080
|
-
- `POST /api/stt` - Speech-to-Text transcription
|
|
1139
|
+
- `POST /api/stt/transcribe` - Speech-to-Text transcription
|
|
1081
1140
|
- Input: Audio file upload (multipart/form-data)
|
|
1082
1141
|
- Output: `{ text: string }` or `{ transcription: string }`
|
|
1083
1142
|
- **Technology-agnostic**: Works with OpenAI Whisper, Azure Speech, Google Speech, AWS Transcribe, local Whisper, or custom implementations
|
|
@@ -1126,7 +1185,7 @@ If you're currently using separate `ttsUrl` and `sttUrl` settings, migrate to th
|
|
|
1126
1185
|
```tsx
|
|
1127
1186
|
const settings = {
|
|
1128
1187
|
ttsUrl: "https://your-tts-service.com/api/tts",
|
|
1129
|
-
sttUrl: "https://your-stt-service.com/api/stt",
|
|
1188
|
+
sttUrl: "https://your-stt-service.com/api/stt/transcribe",
|
|
1130
1189
|
ollamaUrl: "https://your-ollama.com",
|
|
1131
1190
|
};
|
|
1132
1191
|
```
|
|
@@ -1202,11 +1261,13 @@ This codebase includes multiple protection layers:
|
|
|
1202
1261
|
|
|
1203
1262
|
### 👨💻 For Contributors & Developers
|
|
1204
1263
|
|
|
1205
|
-
Before contributing or
|
|
1264
|
+
Before contributing or publishing a new Pull Request, run the available validation scripts:
|
|
1206
1265
|
|
|
1207
1266
|
```bash
|
|
1208
|
-
|
|
1209
|
-
npm run
|
|
1267
|
+
npm run lint # Static analysis for the src tree
|
|
1268
|
+
npm run test # Vitest suite
|
|
1269
|
+
npm run build # Generate the dist bundle with tsup
|
|
1270
|
+
npm run validate-protection # Ensure license headers and fingerprints are intact
|
|
1210
1271
|
```
|
|
1211
1272
|
|
|
1212
1273
|
**Developer Resources:**
|
|
@@ -1227,7 +1288,6 @@ All source files must include proper license headers and watermarks. The protect
|
|
|
1227
1288
|
```bash
|
|
1228
1289
|
npm run protect # Apply protection to new files
|
|
1229
1290
|
npm run validate-protection # Check for license violations
|
|
1230
|
-
npm run pre-push # Complete pre-push validation
|
|
1231
1291
|
```
|
|
1232
1292
|
|
|
1233
1293
|
---
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
chat_default
|
|
3
|
+
} from "./chunk-6YRLBITU.mjs";
|
|
4
|
+
import "./chunk-ONQMRE2G.mjs";
|
|
5
|
+
import "./chunk-5E7S7DK3.mjs";
|
|
6
|
+
import "./chunk-PXXVEH5M.mjs";
|
|
7
|
+
import "./chunk-6IHJZCUH.mjs";
|
|
8
|
+
import "./chunk-QHLKGSMB.mjs";
|
|
9
|
+
import "./chunk-AVC6IZJQ.mjs";
|
|
10
|
+
import "./chunk-KCI46M23.mjs";
|
|
11
|
+
import "./chunk-BJTO5JO5.mjs";
|
|
12
|
+
export {
|
|
13
|
+
chat_default as default
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chat-OLCX6TBK.mjs.map
|