@burtson-labs/bandit-engine 2.0.21 → 2.0.23

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 (33) hide show
  1. package/dist/{chat-2Y72EFJ2.mjs → chat-VOVYLTMX.mjs} +4 -4
  2. package/dist/chat-provider.js +73 -47
  3. package/dist/chat-provider.js.map +1 -1
  4. package/dist/chat-provider.mjs +3 -3
  5. package/dist/{chunk-CY227I4F.mjs → chunk-6PQRG6W4.mjs} +3 -3
  6. package/dist/{chunk-2ZNIQD26.mjs → chunk-7RLN6ZGT.mjs} +53 -48
  7. package/dist/chunk-7RLN6ZGT.mjs.map +1 -0
  8. package/dist/{chunk-XEG45Q6V.mjs → chunk-GBANNFRD.mjs} +2 -2
  9. package/dist/{chunk-JECYIAWF.mjs → chunk-JTZL6WJJ.mjs} +6 -6
  10. package/dist/{chunk-L7UOQ2Y2.mjs → chunk-LG2JCTOE.mjs} +3 -3
  11. package/dist/{chunk-UMPVXYVC.mjs → chunk-XD5VJCFN.mjs} +23 -2
  12. package/dist/chunk-XD5VJCFN.mjs.map +1 -0
  13. package/dist/{chunk-6V2YMAX2.mjs → chunk-ZRTP2N7E.mjs} +74 -24
  14. package/dist/{chunk-6V2YMAX2.mjs.map → chunk-ZRTP2N7E.mjs.map} +1 -1
  15. package/dist/cli/cli.js +1 -1
  16. package/dist/cli/cli.js.map +1 -1
  17. package/dist/index.js +140 -65
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +7 -7
  20. package/dist/management/management.js +140 -65
  21. package/dist/management/management.js.map +1 -1
  22. package/dist/management/management.mjs +5 -5
  23. package/dist/modals/chat-modal/chat-modal.js +22 -1
  24. package/dist/modals/chat-modal/chat-modal.js.map +1 -1
  25. package/dist/modals/chat-modal/chat-modal.mjs +3 -3
  26. package/package.json +1 -1
  27. package/dist/chunk-2ZNIQD26.mjs.map +0 -1
  28. package/dist/chunk-UMPVXYVC.mjs.map +0 -1
  29. /package/dist/{chat-2Y72EFJ2.mjs.map → chat-VOVYLTMX.mjs.map} +0 -0
  30. /package/dist/{chunk-CY227I4F.mjs.map → chunk-6PQRG6W4.mjs.map} +0 -0
  31. /package/dist/{chunk-XEG45Q6V.mjs.map → chunk-GBANNFRD.mjs.map} +0 -0
  32. /package/dist/{chunk-JECYIAWF.mjs.map → chunk-JTZL6WJJ.mjs.map} +0 -0
  33. /package/dist/{chunk-L7UOQ2Y2.mjs.map → chunk-LG2JCTOE.mjs.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  chat_default
3
- } from "./chunk-6V2YMAX2.mjs";
3
+ } from "./chunk-ZRTP2N7E.mjs";
4
4
  import "./chunk-ONQMRE2G.mjs";
5
5
  import "./chunk-RTQDQ6TC.mjs";
6
- import "./chunk-XEG45Q6V.mjs";
7
- import "./chunk-UMPVXYVC.mjs";
6
+ import "./chunk-GBANNFRD.mjs";
7
+ import "./chunk-XD5VJCFN.mjs";
8
8
  import "./chunk-XUBYA5I7.mjs";
9
9
  import "./chunk-IHJPVIGB.mjs";
10
10
  import "./chunk-KCI46M23.mjs";
@@ -12,4 +12,4 @@ import "./chunk-BJTO5JO5.mjs";
12
12
  export {
13
13
  chat_default as default
14
14
  };
15
- //# sourceMappingURL=chat-2Y72EFJ2.mjs.map
15
+ //# sourceMappingURL=chat-VOVYLTMX.mjs.map
@@ -4135,13 +4135,27 @@ var useConversationStore = (0, import_zustand6.create)((set, get) => ({
4135
4135
  });
4136
4136
  },
4137
4137
  deleteConversation: (id) => {
4138
+ const runHydrate = async () => {
4139
+ try {
4140
+ await get().hydrate();
4141
+ } catch (error) {
4142
+ debugLogger.warn("conversationStore: rehydrate after delete failed", {
4143
+ error: error instanceof Error ? error.message : String(error)
4144
+ });
4145
+ }
4146
+ };
4138
4147
  set((state) => {
4139
4148
  const filtered = state.conversations.filter((c) => c.id !== id);
4140
4149
  const isDeletingCurrent = state.currentId === id;
4141
4150
  if (isDeletingCurrent) {
4142
4151
  useAIQueryStore.getState().reset();
4143
4152
  }
4144
- deleteConversationFromDB(id);
4153
+ deleteConversationFromDB(id).then(runHydrate).catch((error) => {
4154
+ debugLogger.error("Failed to delete conversation from DB", {
4155
+ error,
4156
+ conversationId: id
4157
+ });
4158
+ });
4145
4159
  emitConversationDelete(id);
4146
4160
  return {
4147
4161
  conversations: filtered,
@@ -4311,6 +4325,13 @@ var useConversationStore = (0, import_zustand6.create)((set, get) => ({
4311
4325
  currentId: isCurrentDeleted ? null : state.currentId
4312
4326
  };
4313
4327
  });
4328
+ try {
4329
+ await get().hydrate();
4330
+ } catch (error) {
4331
+ debugLogger.warn("conversationStore: hydrate failed after remote delete", {
4332
+ error: error instanceof Error ? error.message : String(error)
4333
+ });
4334
+ }
4314
4335
  }
4315
4336
  }));
4316
4337
  function normalizeConversation(conversation) {
@@ -9102,58 +9123,63 @@ var AIProviderInitService = class _AIProviderInitService {
9102
9123
  hasAiProvider: !!settings.aiProvider,
9103
9124
  ollamaUrl: settings.ollamaUrl
9104
9125
  });
9105
- try {
9106
- const savedConfig = await indexedDBService_default.get(
9107
- "banditConfig",
9108
- 1,
9109
- "config",
9110
- "aiProvider",
9111
- [{ name: "config", keyPath: "id" }]
9112
- );
9113
- if (savedConfig) {
9114
- debugLogger.info("AI Provider Init: Found saved config in IndexedDB", { type: savedConfig.type });
9115
- const { id: _id, ...configWithoutId } = savedConfig;
9116
- providerConfig = { ...configWithoutId };
9117
- if ((providerConfig.type === "ollama" /* OLLAMA */ || providerConfig.type === "gateway" /* GATEWAY */) && !providerConfig.tokenFactory) {
9118
- providerConfig.tokenFactory = () => {
9119
- let token = authenticationService.getToken();
9120
- if (!token) {
9121
- token = localStorage.getItem("authToken");
9122
- }
9123
- if (!token) {
9126
+ const isPlaygroundEnvironment = settings.playgroundMode === true || settings.aiProvider?.type === "playground" /* PLAYGROUND */ || (settings.gatewayApiUrl?.toLowerCase()?.startsWith("playground://") ?? false) || typeof window !== "undefined" && window.location.pathname.includes("/playground");
9127
+ if (isPlaygroundEnvironment) {
9128
+ debugLogger.info("AI Provider Init: Playground environment detected, bypassing saved provider config");
9129
+ } else {
9130
+ try {
9131
+ const savedConfig = await indexedDBService_default.get(
9132
+ "banditConfig",
9133
+ 1,
9134
+ "config",
9135
+ "aiProvider",
9136
+ [{ name: "config", keyPath: "id" }]
9137
+ );
9138
+ if (savedConfig) {
9139
+ debugLogger.info("AI Provider Init: Found saved config in IndexedDB", { type: savedConfig.type });
9140
+ const { id: _id, ...configWithoutId } = savedConfig;
9141
+ providerConfig = { ...configWithoutId };
9142
+ if ((providerConfig.type === "ollama" /* OLLAMA */ || providerConfig.type === "gateway" /* GATEWAY */) && !providerConfig.tokenFactory) {
9143
+ providerConfig.tokenFactory = () => {
9144
+ let token = authenticationService.getToken();
9145
+ if (!token) {
9146
+ token = localStorage.getItem("authToken");
9147
+ }
9148
+ if (!token) {
9149
+ try {
9150
+ const { useAuthenticationStore: useAuthenticationStore2 } = require("../../store/authenticationStore");
9151
+ const authStore = useAuthenticationStore2.getState();
9152
+ token = authStore.token;
9153
+ } catch (e) {
9154
+ }
9155
+ }
9156
+ debugLogger.info("AI Provider Init: IndexedDB config token factory", {
9157
+ hasToken: !!token
9158
+ });
9159
+ return token;
9160
+ };
9161
+ }
9162
+ try {
9163
+ const { createProvider } = useAIProviderStore.getState();
9164
+ createProvider(providerConfig);
9165
+ const provider = useAIProviderStore.getState().provider;
9166
+ if (provider) {
9124
9167
  try {
9125
- const { useAuthenticationStore: useAuthenticationStore2 } = require("../../store/authenticationStore");
9126
- const authStore = useAuthenticationStore2.getState();
9127
- token = authStore.token;
9128
- } catch (e) {
9168
+ await provider.validateServiceAvailability({ timeoutMs: 5e3 });
9169
+ debugLogger.info(`AI Provider initialized and validated from IndexedDB: ${providerConfig.type}`);
9170
+ } catch (validationError) {
9171
+ debugLogger.warn(`AI Provider created but validation failed`, { error: validationError });
9129
9172
  }
9130
9173
  }
9131
- debugLogger.info("AI Provider Init: IndexedDB config token factory", {
9132
- hasToken: !!token
9133
- });
9134
- return token;
9135
- };
9136
- }
9137
- try {
9138
- const { createProvider } = useAIProviderStore.getState();
9139
- createProvider(providerConfig);
9140
- const provider = useAIProviderStore.getState().provider;
9141
- if (provider) {
9142
- try {
9143
- await provider.validateServiceAvailability({ timeoutMs: 5e3 });
9144
- debugLogger.info(`AI Provider initialized and validated from IndexedDB: ${providerConfig.type}`);
9145
- } catch (validationError) {
9146
- debugLogger.warn(`AI Provider created but validation failed`, { error: validationError });
9147
- }
9174
+ return;
9175
+ } catch (error) {
9176
+ debugLogger.error("Failed to initialize saved provider config, falling back to package settings", { error });
9148
9177
  }
9149
- return;
9150
- } catch (error) {
9151
- debugLogger.error("Failed to initialize saved provider config, falling back to package settings", { error });
9152
9178
  }
9179
+ debugLogger.info("AI Provider Init: No saved config found, using package settings");
9180
+ } catch (error) {
9181
+ debugLogger.warn("AI Provider Init: Failed to load from IndexedDB, using package settings", { error });
9153
9182
  }
9154
- debugLogger.info("AI Provider Init: No saved config found, using package settings");
9155
- } catch (error) {
9156
- debugLogger.warn("AI Provider Init: Failed to load from IndexedDB, using package settings", { error });
9157
9183
  }
9158
9184
  if (settings.aiProvider) {
9159
9185
  providerConfig = { ...settings.aiProvider };