@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.
Files changed (183) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +87 -27
  3. package/dist/chat-OLCX6TBK.mjs +15 -0
  4. package/dist/chat-provider.js +9413 -0
  5. package/dist/chat-provider.js.map +1 -0
  6. package/dist/chat-provider.mjs +17 -0
  7. package/dist/chunk-5E7S7DK3.mjs +231 -0
  8. package/dist/chunk-5E7S7DK3.mjs.map +1 -0
  9. package/dist/chunk-6IHJZCUH.mjs +5658 -0
  10. package/dist/chunk-6IHJZCUH.mjs.map +1 -0
  11. package/dist/chunk-6YRLBITU.mjs +9418 -0
  12. package/dist/chunk-6YRLBITU.mjs.map +1 -0
  13. package/dist/chunk-CVIOLFMX.mjs +259 -0
  14. package/dist/chunk-CVIOLFMX.mjs.map +1 -0
  15. package/dist/chunk-HHKXWNCG.mjs +2810 -0
  16. package/dist/chunk-HHKXWNCG.mjs.map +1 -0
  17. package/dist/chunk-JQ6UNJNW.mjs +8757 -0
  18. package/dist/chunk-JQ6UNJNW.mjs.map +1 -0
  19. package/dist/chunk-ONQMRE2G.mjs +26 -0
  20. package/dist/chunk-ONQMRE2G.mjs.map +1 -0
  21. package/dist/chunk-PXXVEH5M.mjs +8925 -0
  22. package/dist/chunk-PXXVEH5M.mjs.map +1 -0
  23. package/dist/{chunk-WYS5CZVG.mjs → chunk-QHLKGSMB.mjs} +2 -2
  24. package/dist/{chunk-WYS5CZVG.mjs.map → chunk-QHLKGSMB.mjs.map} +1 -1
  25. package/dist/chunk-VSHO7PF2.mjs +150 -0
  26. package/dist/chunk-VSHO7PF2.mjs.map +1 -0
  27. package/dist/cli/cli.js +11 -13
  28. package/dist/cli/cli.js.map +1 -1
  29. package/dist/gateway-BXVrH8B-.d.mts +312 -0
  30. package/dist/gateway-BXVrH8B-.d.ts +312 -0
  31. package/dist/index.d.mts +11 -309
  32. package/dist/index.d.ts +11 -309
  33. package/dist/index.js +118 -83
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +86 -11874
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/management/management.js +39335 -0
  38. package/dist/management/management.js.map +1 -0
  39. package/dist/management/management.mjs +16 -0
  40. package/dist/management/management.mjs.map +1 -0
  41. package/dist/{chunk-BIPELT57.mjs → modals/chat-modal/chat-modal.js} +16653 -20880
  42. package/dist/modals/chat-modal/chat-modal.js.map +1 -0
  43. package/dist/modals/chat-modal/chat-modal.mjs +19 -0
  44. package/dist/modals/chat-modal/chat-modal.mjs.map +1 -0
  45. package/dist/{modelStore-Y3LZWRQC.mjs → modelStore-CY6SECYD.mjs} +2 -2
  46. package/dist/modelStore-CY6SECYD.mjs.map +1 -0
  47. package/dist/public-types.d.mts +32 -0
  48. package/dist/public-types.d.ts +32 -0
  49. package/docs/04_local_dev.md +1 -1
  50. package/docs/api_reference/assets/navigation.js +1 -1
  51. package/docs/api_reference/assets/search.js +1 -1
  52. package/docs/api_reference/classes/DebugLogger.html +11 -11
  53. package/docs/api_reference/classes/FeatureFlagService.html +13 -13
  54. package/docs/api_reference/classes/NotificationService.html +10 -10
  55. package/docs/api_reference/classes/StreamingTTSClient.html +9 -9
  56. package/docs/api_reference/classes/VectorDatabaseService.html +24 -24
  57. package/docs/api_reference/classes/VectorMigrationService.html +8 -8
  58. package/docs/api_reference/classes/VoiceService.html +2 -2
  59. package/docs/api_reference/enums/TTSState.html +2 -2
  60. package/docs/api_reference/functions/Chat.html +1 -1
  61. package/docs/api_reference/functions/ChatModal.html +4 -4
  62. package/docs/api_reference/functions/ChatProvider.html +1 -1
  63. package/docs/api_reference/functions/FeatureFlagProvider.html +1 -1
  64. package/docs/api_reference/functions/FeedbackButton.html +1 -1
  65. package/docs/api_reference/functions/FeedbackModal.html +1 -1
  66. package/docs/api_reference/functions/Management.html +1 -1
  67. package/docs/api_reference/functions/NotificationProvider.html +1 -1
  68. package/docs/api_reference/functions/SubscriptionExpiredGuard.html +1 -1
  69. package/docs/api_reference/functions/SubscriptionExpiredModal.html +1 -1
  70. package/docs/api_reference/functions/defineCustomElement.html +1 -1
  71. package/docs/api_reference/functions/getCriticalConfig.html +1 -1
  72. package/docs/api_reference/functions/getFeatureMatrix.html +1 -1
  73. package/docs/api_reference/functions/getStreamingTTSClient.html +1 -1
  74. package/docs/api_reference/functions/getSystemConstants.html +1 -1
  75. package/docs/api_reference/functions/getTTSState.html +1 -1
  76. package/docs/api_reference/functions/handleHttpError.html +1 -1
  77. package/docs/api_reference/functions/handleSubscriptionUpgrade.html +1 -1
  78. package/docs/api_reference/functions/handleValidationError.html +1 -1
  79. package/docs/api_reference/functions/initializeCoreSystem.html +1 -1
  80. package/docs/api_reference/functions/pauseTTS.html +1 -1
  81. package/docs/api_reference/functions/previewTierUpgrade.html +1 -1
  82. package/docs/api_reference/functions/resumeTTS.html +1 -1
  83. package/docs/api_reference/functions/showInfoNotification.html +1 -1
  84. package/docs/api_reference/functions/showSuccessNotification.html +1 -1
  85. package/docs/api_reference/functions/speakWithStreaming.html +1 -1
  86. package/docs/api_reference/functions/stopTTS.html +1 -1
  87. package/docs/api_reference/functions/syncSubscriptionWithAPI.html +1 -1
  88. package/docs/api_reference/functions/updateSubscriptionTier.html +1 -1
  89. package/docs/api_reference/functions/useFeatureFlag.html +1 -1
  90. package/docs/api_reference/functions/useFeatureVisibility.html +1 -1
  91. package/docs/api_reference/functions/useFeatures.html +1 -1
  92. package/docs/api_reference/functions/useGatewayHealth.html +1 -1
  93. package/docs/api_reference/functions/useGatewayMemory.html +1 -1
  94. package/docs/api_reference/functions/useGatewayModels.html +1 -1
  95. package/docs/api_reference/functions/useGlobalTTS.html +1 -1
  96. package/docs/api_reference/functions/useNotification.html +1 -1
  97. package/docs/api_reference/functions/useNotificationService.html +1 -1
  98. package/docs/api_reference/functions/useTTS.html +1 -1
  99. package/docs/api_reference/functions/useVectorStore.html +1 -1
  100. package/docs/api_reference/functions/useVoiceStore.html +2 -2
  101. package/docs/api_reference/functions/useVoices.html +1 -1
  102. package/docs/api_reference/functions/validateEnvironment.html +1 -1
  103. package/docs/api_reference/functions/validateSystemIntegrity.html +1 -1
  104. package/docs/api_reference/index.html +97 -26
  105. package/docs/api_reference/interfaces/AIChatRequest.html +2 -2
  106. package/docs/api_reference/interfaces/AIChatResponse.html +2 -2
  107. package/docs/api_reference/interfaces/AIGenerateRequest.html +2 -2
  108. package/docs/api_reference/interfaces/AIGenerateResponse.html +2 -2
  109. package/docs/api_reference/interfaces/AIMessage.html +2 -2
  110. package/docs/api_reference/interfaces/AIModel.html +2 -2
  111. package/docs/api_reference/interfaces/AIProviderConfig.html +2 -2
  112. package/docs/api_reference/interfaces/ChatConfig.html +3 -3
  113. package/docs/api_reference/interfaces/ChatModalProps.html +7 -0
  114. package/docs/api_reference/interfaces/CreateMemoryOptions.html +2 -2
  115. package/docs/api_reference/interfaces/FeatureEvaluation.html +7 -7
  116. package/docs/api_reference/interfaces/FeatureFlagConfig.html +9 -9
  117. package/docs/api_reference/interfaces/FeatureFlagContextValue.html +8 -8
  118. package/docs/api_reference/interfaces/FeatureFlagProviderProps.html +2 -2
  119. package/docs/api_reference/interfaces/FeedbackButtonProps.html +10 -10
  120. package/docs/api_reference/interfaces/FeedbackCategories.html +2 -2
  121. package/docs/api_reference/interfaces/FeedbackModalProps.html +2 -2
  122. package/docs/api_reference/interfaces/FeedbackPriorities.html +2 -2
  123. package/docs/api_reference/interfaces/FeedbackRequest.html +2 -2
  124. package/docs/api_reference/interfaces/FeedbackResponse.html +2 -2
  125. package/docs/api_reference/interfaces/FileUploadResult.html +2 -2
  126. package/docs/api_reference/interfaces/GatewayChatRequest.html +2 -2
  127. package/docs/api_reference/interfaces/GatewayChatResponse.html +2 -2
  128. package/docs/api_reference/interfaces/GatewayContract.html +2 -2
  129. package/docs/api_reference/interfaces/GatewayGenerateRequest.html +2 -2
  130. package/docs/api_reference/interfaces/GatewayGenerateResponse.html +2 -2
  131. package/docs/api_reference/interfaces/GatewayHealthResponse.html +2 -2
  132. package/docs/api_reference/interfaces/GatewayMemoryRecord.html +2 -2
  133. package/docs/api_reference/interfaces/GatewayMemoryResponse.html +2 -2
  134. package/docs/api_reference/interfaces/GatewayMessage.html +2 -2
  135. package/docs/api_reference/interfaces/GatewayMessageContent.html +2 -2
  136. package/docs/api_reference/interfaces/GatewayModel.html +2 -2
  137. package/docs/api_reference/interfaces/GatewayModelsResponse.html +2 -2
  138. package/docs/api_reference/interfaces/MemorySearchFilters.html +2 -2
  139. package/docs/api_reference/interfaces/MigrationProgress.html +2 -2
  140. package/docs/api_reference/interfaces/MigrationStatus.html +2 -2
  141. package/docs/api_reference/interfaces/NotificationConfig.html +2 -2
  142. package/docs/api_reference/interfaces/NotificationContextType.html +2 -2
  143. package/docs/api_reference/interfaces/NotificationProviderProps.html +2 -2
  144. package/docs/api_reference/interfaces/PackageSettings.html +3 -3
  145. package/docs/api_reference/interfaces/SearchOptions.html +2 -2
  146. package/docs/api_reference/interfaces/SearchResult.html +2 -2
  147. package/docs/api_reference/interfaces/SubscriptionExpiredGuardProps.html +2 -2
  148. package/docs/api_reference/interfaces/SubscriptionExpiredModalProps.html +2 -2
  149. package/docs/api_reference/interfaces/TTSOptions.html +2 -2
  150. package/docs/api_reference/interfaces/TTSProgress.html +2 -2
  151. package/docs/api_reference/interfaces/TrialUsage.html +2 -2
  152. package/docs/api_reference/interfaces/UploadRequest.html +3 -3
  153. package/docs/api_reference/interfaces/UseTTSReturn.html +2 -2
  154. package/docs/api_reference/interfaces/VectorDocument.html +2 -2
  155. package/docs/api_reference/interfaces/VectorMemory.html +2 -2
  156. package/docs/api_reference/interfaces/VectorMemoryMetadata.html +2 -2
  157. package/docs/api_reference/interfaces/VectorStoreStatus.html +2 -2
  158. package/docs/api_reference/interfaces/VoiceModelsResponse.html +2 -2
  159. package/docs/api_reference/interfaces/VoiceState.html +2 -2
  160. package/docs/api_reference/media/LICENSE +2 -2
  161. package/docs/api_reference/media/PROTECTION-README.md +6 -8
  162. package/docs/api_reference/modules.html +1 -0
  163. package/docs/api_reference/types/FeatureKey.html +1 -1
  164. package/docs/api_reference/types/FeatureMatrix.html +1 -1
  165. package/docs/api_reference/types/GatewayQueryOptions.html +1 -1
  166. package/docs/api_reference/types/LogContext.html +1 -1
  167. package/docs/api_reference/types/SubscriptionTier.html +1 -1
  168. package/docs/api_reference/variables/DEFAULT_TIER_FEATURES.html +1 -1
  169. package/docs/api_reference/variables/FeatureFlagContext.html +1 -1
  170. package/docs/api_reference/variables/OSS_DEFAULT_FEATURES.html +1 -1
  171. package/docs/api_reference/variables/SYSTEM_FLAGS.html +1 -1
  172. package/docs/api_reference/variables/authenticationService.html +1 -1
  173. package/docs/api_reference/variables/debugLogger-1.html +1 -1
  174. package/docs/api_reference/variables/featureFlagService-1.html +1 -1
  175. package/docs/api_reference/variables/notificationService-1.html +1 -1
  176. package/docs/api_reference/variables/vectorDatabaseService-1.html +1 -1
  177. package/docs/api_reference/variables/vectorMigrationService-1.html +1 -1
  178. package/docs/api_reference/variables/voiceService-1.html +1 -1
  179. package/package.json +11 -13
  180. package/dist/chat-QXB526NZ.mjs +0 -11
  181. package/dist/chunk-BIPELT57.mjs.map +0 -1
  182. /package/dist/{chat-QXB526NZ.mjs.map → chat-OLCX6TBK.mjs.map} +0 -0
  183. /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 AI Chat Application
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: January 1, 2027
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"><img src="https://cdn.burtson.ai/logos/burtson-labs-logo-alt.png" alt="Burtson Labs Logo" width="120" style="width: 120px !important; max-width: 120px !important; height: auto; display: inline-block;" /></a>
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
  [![npm version](https://img.shields.io/npm/v/%40burtson-labs%2Fbandit-engine)](https://www.npmjs.com/package/@burtson-labs/bandit-engine)
4
10
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178c6?logo=typescript&logoColor=white)](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
- // Legacy Ollama Configuration (Still Supported)
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
- // s3ApiUrl: import.meta.env.VITE_S3_API_URL,
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:** Your backend needs to implement these endpoints:
149
- - `GET /api/health` - Health check
150
- - `POST /api/chat/completions` - Chat completions
151
- - `POST /api/generate` - Text generation
152
- - `POST /api/tts` - Text-to-Speech (optional, for voice features)
153
- - `GET /api/tts/available-models` - TTS model listing (optional)
154
- - `POST /api/stt` - Speech-to-Text (optional, for voice input)
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
- <img src="./public/images/chat-demo.jpg" alt="Bandit chat session showing multi-turn conversation with inline actions" width="600" />
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
- <img src="./public/images/chat-demo-2.jpg" alt="Chat drawer open with projects list and answered question" width="600" />
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
- <img src="./public/images/chat-modal.jpg" alt="Chat modal with control center options and message composer" width="600" />
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
- <img src="./public/images/mgmt-branding.jpg" alt="Management interface branding tab showing logo and color options" width="600" />
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
- <img src="./public/images/mgmt-personalities.jpg" alt="Management interface personas tab with configurable AI personalities" width="600" />
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
- <img src="./public/images/mgmt-preferences.jpg" alt="Management interface preferences tab with feature toggles" width="600" />
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
- - `s3ApiUrl`: Optional file storage API base URL (defaults to `gatewayApiUrl`)
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 making changes to this codebase:
1264
+ Before contributing or publishing a new Pull Request, run the available validation scripts:
1206
1265
 
1207
1266
  ```bash
1208
- # Essential pre-push workflow - run before every commit
1209
- npm run pre-push
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