@sqlrooms/ai-settings 0.26.0-rc.4 → 0.26.0-rc.6

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.
@@ -1,9 +1,10 @@
1
1
  import { AiSettingsSliceConfig } from '@sqlrooms/ai-config';
2
2
  import { AiSliceState } from '@sqlrooms/ai-core';
3
- import { BaseRoomConfig, RoomState, type StateCreator } from '@sqlrooms/room-store';
3
+ import { type StateCreator } from '@sqlrooms/room-store';
4
4
  export type AiSettingsSliceState = {
5
5
  aiSettings: {
6
6
  config: AiSettingsSliceConfig;
7
+ setConfig: (config: AiSettingsSliceConfig) => void;
7
8
  setMaxSteps: (maxSteps: number) => void;
8
9
  setAdditionalInstruction: (additionalInstruction: string) => void;
9
10
  updateProvider: (provider: string, updates: {
@@ -22,8 +23,8 @@ export type AiSettingsSliceState = {
22
23
  type CreateAiSettingsSliceParams = {
23
24
  config?: Partial<AiSettingsSliceConfig>;
24
25
  };
25
- export declare function createAiSettingsSlice<PC extends BaseRoomConfig>(props?: CreateAiSettingsSliceParams): StateCreator<AiSettingsSliceState>;
26
- type RoomStateWithAiSettings = RoomState<BaseRoomConfig> & AiSliceState & AiSettingsSliceState;
27
- export declare function useStoreWithAiSettings<T>(selector: (state: RoomStateWithAiSettings) => T): T;
26
+ export declare function createAiSettingsSlice(props?: CreateAiSettingsSliceParams): StateCreator<AiSettingsSliceState>;
27
+ type AiStateWithSettings = AiSliceState & AiSettingsSliceState;
28
+ export declare function useStoreWithAiSettings<T>(selector: (state: AiStateWithSettings) => T): T;
28
29
  export {};
29
30
  //# sourceMappingURL=AiSettingsSlice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiSettingsSlice.d.ts","sourceRoot":"","sources":["../src/AiSettingsSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,cAAc,EAEd,SAAS,EAET,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE;QACV,MAAM,EAAE,qBAAqB,CAAC;QAC9B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,wBAAwB,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,IAAI,CAAC;QAClE,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KACE,IAAI,CAAC;QACV,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACzE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QAClE,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QACvE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC3C,cAAc,EAAE,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;QACV,iBAAiB,EAAE,CACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,IAAI,CAAC;QACV,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;KAChD,CAAC;CACH,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,cAAc,EAC7D,KAAK,CAAC,EAAE,2BAA2B,GAClC,YAAY,CAAC,oBAAoB,CAAC,CA0KpC;AAED,KAAK,uBAAuB,GAAG,SAAS,CAAC,cAAc,CAAC,GACtD,YAAY,GACZ,oBAAoB,CAAC;AAGvB,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,CAAC,GAC9C,CAAC,CAIH"}
1
+ {"version":3,"file":"AiSettingsSlice.d.ts","sourceRoot":"","sources":["../src/AiSettingsSlice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE;QACV,MAAM,EAAE,qBAAqB,CAAC;QAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;QACnD,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,wBAAwB,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,IAAI,CAAC;QAClE,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KACE,IAAI,CAAC;QACV,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACzE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QAClE,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QACvE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC3C,cAAc,EAAE,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;QACV,iBAAiB,EAAE,CACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,IAAI,CAAC;QACV,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;KAChD,CAAC;CACH,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,2BAA2B,GAClC,YAAY,CAAC,oBAAoB,CAAC,CAkLpC;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAG/D,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,CAAC,GAC1C,CAAC,CAIH"}
@@ -1,11 +1,16 @@
1
- import { createBaseSlice, useBaseRoomStore, } from '@sqlrooms/room-store';
1
+ import { createSlice, useBaseRoomStore, } from '@sqlrooms/room-store';
2
2
  import { produce } from 'immer';
3
3
  import { createDefaultAiSettingsConfig } from './defaultSettings';
4
4
  export function createAiSettingsSlice(props) {
5
5
  const config = createDefaultAiSettingsConfig(props?.config);
6
- return createBaseSlice((set, get) => ({
6
+ return createSlice((set, get) => ({
7
7
  aiSettings: {
8
8
  config,
9
+ setConfig: (config) => {
10
+ set((state) => produce(state, (draft) => {
11
+ draft.aiSettings.config = config;
12
+ }));
13
+ },
9
14
  setMaxSteps: (maxSteps) => {
10
15
  set((state) => produce(state, (draft) => {
11
16
  draft.aiSettings.config.modelParameters.maxSteps = maxSteps;
@@ -1 +1 @@
1
- {"version":3,"file":"AiSettingsSlice.js","sourceRoot":"","sources":["../src/AiSettingsSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EAEf,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,6BAA6B,EAAC,MAAM,mBAAmB,CAAC;AAqChE,MAAM,UAAU,qBAAqB,CACnC,KAAmC;IAEnC,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,eAAe,CAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9D,UAAU,EAAE;YACV,MAAM;YAEN,WAAW,EAAE,CAAC,QAAgB,EAAE,EAAE;gBAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9D,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,wBAAwB,EAAE,CAAC,qBAA6B,EAAE,EAAE;gBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB;wBAC3D,qBAAqB,CAAC;gBAC1B,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,CACd,QAAgB,EAChB,OAGC,EACD,EAAE;gBACF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChD,MAAM,CAAC,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3C,OAAO,CACR,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,WAAW,EAAE,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAc,EAAE,EAAE;gBACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;wBAC5C,OAAO;wBACP,MAAM;wBACN,MAAM,EAAE,EAAE;qBACX,CAAC;gBACJ,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,kBAAkB,EAAE,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE;gBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChD,gCAAgC;wBAChC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CACnD,QAAQ,CACT,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;wBAExD,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gCACtD,SAAS,EAAE,SAAS;6BACrB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,uBAAuB,EAAE,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE;gBAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM;4BAChD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CACvD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CACzC,CAAC;oBACN,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE;gBACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,CAAC,OAAe,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE;gBACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,MAAM,cAAc,GAAG;wBACrB,OAAO;wBACP,MAAM;wBACN,SAAS;qBACV,CAAC;oBAEF,4DAA4D;oBAC5D,MAAM,kBAAkB,GACtB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAC5C,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAC5D,CAAC;oBAEJ,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC9B,wBAAwB;wBACxB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC;4BACtD,cAAc,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,gBAAgB;wBAChB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,iBAAiB,EAAE,CACjB,YAAoB,EACpB,OAAe,EACf,MAAc,EACd,YAAoB,EACpB,EAAE;gBACF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,2BAA2B;oBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAC/D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,YAAY,CAC5C,CAAC;oBAEF,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;wBACtB,iFAAiF;wBACjF,MAAM,qBAAqB,GACzB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAC5C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,KAAK,KAAK,UAAU;4BACpB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;gCAC3B,YAAY,CAAC,WAAW,EAAE,CAC/B,CAAC;wBAEJ,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,mBAAmB;4BACnB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;gCACjD,OAAO;gCACP,MAAM;gCACN,SAAS,EAAE,YAAY;6BACxB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAED,iBAAiB,EAAE,CAAC,SAAiB,EAAE,EAAE;gBACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY;wBAClC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CACzC,CAAC;gBACN,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;SACF;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAMD,gDAAgD;AAChD,MAAM,UAAU,sBAAsB,CACpC,QAA+C;IAE/C,OAAO,gBAAgB,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAA2C,CAAC,CACjE,CAAC;AACJ,CAAC","sourcesContent":["import {AiSettingsSliceConfig} from '@sqlrooms/ai-config';\nimport {AiSliceState} from '@sqlrooms/ai-core';\nimport {\n BaseRoomConfig,\n createBaseSlice,\n RoomState,\n useBaseRoomStore,\n type StateCreator,\n} from '@sqlrooms/room-store';\nimport {produce} from 'immer';\nimport {createDefaultAiSettingsConfig} from './defaultSettings';\n\nexport type AiSettingsSliceState = {\n aiSettings: {\n config: AiSettingsSliceConfig;\n setMaxSteps: (maxSteps: number) => void;\n setAdditionalInstruction: (additionalInstruction: string) => void;\n updateProvider: (\n provider: string,\n updates: {\n baseUrl?: string;\n apiKey?: string;\n },\n ) => void;\n addProvider: (provider: string, baseUrl: string, apiKey: string) => void;\n addModelToProvider: (provider: string, modelName: string) => void;\n removeModelFromProvider: (provider: string, modelName: string) => void;\n removeProvider: (provider: string) => void;\n addCustomModel: (\n baseUrl: string,\n apiKey: string,\n modelName: string,\n ) => void;\n updateCustomModel: (\n oldModelName: string,\n baseUrl: string,\n apiKey: string,\n newModelName: string,\n ) => void;\n removeCustomModel: (modelName: string) => void;\n };\n};\n\ntype CreateAiSettingsSliceParams = {\n config?: Partial<AiSettingsSliceConfig>;\n};\n\nexport function createAiSettingsSlice<PC extends BaseRoomConfig>(\n props?: CreateAiSettingsSliceParams,\n): StateCreator<AiSettingsSliceState> {\n const config = createDefaultAiSettingsConfig(props?.config);\n return createBaseSlice<PC, AiSettingsSliceState>((set, get) => ({\n aiSettings: {\n config,\n\n setMaxSteps: (maxSteps: number) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.modelParameters.maxSteps = maxSteps;\n }),\n );\n },\n\n setAdditionalInstruction: (additionalInstruction: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.modelParameters.additionalInstruction =\n additionalInstruction;\n }),\n );\n },\n\n updateProvider: (\n provider: string,\n updates: {\n baseUrl?: string;\n apiKey?: string;\n },\n ) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n Object.assign(\n draft.aiSettings.config.providers[provider],\n updates,\n );\n }\n }),\n );\n },\n\n addProvider: (provider: string, baseUrl: string, apiKey: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.providers[provider] = {\n baseUrl,\n apiKey,\n models: [],\n };\n }),\n );\n },\n\n addModelToProvider: (provider: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n // Check if model already exists\n const modelExists = draft.aiSettings.config.providers[\n provider\n ].models.some((model) => model.modelName === modelName);\n\n if (!modelExists) {\n draft.aiSettings.config.providers[provider].models.push({\n modelName: modelName,\n });\n }\n }\n }),\n );\n },\n\n removeModelFromProvider: (provider: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n draft.aiSettings.config.providers[provider].models =\n draft.aiSettings.config.providers[provider].models.filter(\n (model) => model.modelName !== modelName,\n );\n }\n }),\n );\n },\n\n removeProvider: (provider: string) => {\n set((state) =>\n produce(state, (draft) => {\n delete draft.aiSettings.config.providers[provider];\n }),\n );\n },\n\n addCustomModel: (baseUrl: string, apiKey: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n const newCustomModel = {\n baseUrl,\n apiKey,\n modelName,\n };\n\n // Check if a custom model with the same name already exists\n const existingModelIndex =\n draft.aiSettings.config.customModels.findIndex(\n (model) =>\n model.modelName.toLowerCase() === modelName.toLowerCase(),\n );\n\n if (existingModelIndex !== -1) {\n // Update existing model\n draft.aiSettings.config.customModels[existingModelIndex] =\n newCustomModel;\n } else {\n // Add new model\n draft.aiSettings.config.customModels.push(newCustomModel);\n }\n }),\n );\n },\n\n updateCustomModel: (\n oldModelName: string,\n baseUrl: string,\n apiKey: string,\n newModelName: string,\n ) => {\n set((state) =>\n produce(state, (draft) => {\n // Find the model to update\n const modelIndex = draft.aiSettings.config.customModels.findIndex(\n (model) => model.modelName === oldModelName,\n );\n\n if (modelIndex !== -1) {\n // Check if the new name conflicts with another model (excluding the current one)\n const conflictingModelIndex =\n draft.aiSettings.config.customModels.findIndex(\n (model, index) =>\n index !== modelIndex &&\n model.modelName.toLowerCase() ===\n newModelName.toLowerCase(),\n );\n\n if (conflictingModelIndex === -1) {\n // Update the model\n draft.aiSettings.config.customModels[modelIndex] = {\n baseUrl,\n apiKey,\n modelName: newModelName,\n };\n }\n }\n }),\n );\n },\n\n removeCustomModel: (modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.customModels =\n draft.aiSettings.config.customModels.filter(\n (model) => model.modelName !== modelName,\n );\n }),\n );\n },\n },\n }));\n}\n\ntype RoomStateWithAiSettings = RoomState<BaseRoomConfig> &\n AiSliceState &\n AiSettingsSliceState;\n\n// Hook to access aiSettings from the room store\nexport function useStoreWithAiSettings<T>(\n selector: (state: RoomStateWithAiSettings) => T,\n): T {\n return useBaseRoomStore<BaseRoomConfig, RoomState<BaseRoomConfig>, T>(\n (state) => selector(state as unknown as RoomStateWithAiSettings),\n );\n}\n"]}
1
+ {"version":3,"file":"AiSettingsSlice.js","sourceRoot":"","sources":["../src/AiSettingsSlice.ts"],"names":[],"mappings":"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","sourcesContent":["import {AiSettingsSliceConfig} from '@sqlrooms/ai-config';\nimport {AiSliceState} from '@sqlrooms/ai-core';\nimport {\n createSlice,\n useBaseRoomStore,\n type StateCreator,\n} from '@sqlrooms/room-store';\nimport {produce} from 'immer';\nimport {createDefaultAiSettingsConfig} from './defaultSettings';\n\nexport type AiSettingsSliceState = {\n aiSettings: {\n config: AiSettingsSliceConfig;\n setConfig: (config: AiSettingsSliceConfig) => void;\n setMaxSteps: (maxSteps: number) => void;\n setAdditionalInstruction: (additionalInstruction: string) => void;\n updateProvider: (\n provider: string,\n updates: {\n baseUrl?: string;\n apiKey?: string;\n },\n ) => void;\n addProvider: (provider: string, baseUrl: string, apiKey: string) => void;\n addModelToProvider: (provider: string, modelName: string) => void;\n removeModelFromProvider: (provider: string, modelName: string) => void;\n removeProvider: (provider: string) => void;\n addCustomModel: (\n baseUrl: string,\n apiKey: string,\n modelName: string,\n ) => void;\n updateCustomModel: (\n oldModelName: string,\n baseUrl: string,\n apiKey: string,\n newModelName: string,\n ) => void;\n removeCustomModel: (modelName: string) => void;\n };\n};\n\ntype CreateAiSettingsSliceParams = {\n config?: Partial<AiSettingsSliceConfig>;\n};\n\nexport function createAiSettingsSlice(\n props?: CreateAiSettingsSliceParams,\n): StateCreator<AiSettingsSliceState> {\n const config = createDefaultAiSettingsConfig(props?.config);\n return createSlice<AiSettingsSliceState>((set, get) => ({\n aiSettings: {\n config,\n\n setConfig: (config) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config = config;\n }),\n );\n },\n\n setMaxSteps: (maxSteps: number) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.modelParameters.maxSteps = maxSteps;\n }),\n );\n },\n\n setAdditionalInstruction: (additionalInstruction: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.modelParameters.additionalInstruction =\n additionalInstruction;\n }),\n );\n },\n\n updateProvider: (\n provider: string,\n updates: {\n baseUrl?: string;\n apiKey?: string;\n },\n ) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n Object.assign(\n draft.aiSettings.config.providers[provider],\n updates,\n );\n }\n }),\n );\n },\n\n addProvider: (provider: string, baseUrl: string, apiKey: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.providers[provider] = {\n baseUrl,\n apiKey,\n models: [],\n };\n }),\n );\n },\n\n addModelToProvider: (provider: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n // Check if model already exists\n const modelExists = draft.aiSettings.config.providers[\n provider\n ].models.some((model) => model.modelName === modelName);\n\n if (!modelExists) {\n draft.aiSettings.config.providers[provider].models.push({\n modelName: modelName,\n });\n }\n }\n }),\n );\n },\n\n removeModelFromProvider: (provider: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n if (draft.aiSettings.config.providers[provider]) {\n draft.aiSettings.config.providers[provider].models =\n draft.aiSettings.config.providers[provider].models.filter(\n (model) => model.modelName !== modelName,\n );\n }\n }),\n );\n },\n\n removeProvider: (provider: string) => {\n set((state) =>\n produce(state, (draft) => {\n delete draft.aiSettings.config.providers[provider];\n }),\n );\n },\n\n addCustomModel: (baseUrl: string, apiKey: string, modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n const newCustomModel = {\n baseUrl,\n apiKey,\n modelName,\n };\n\n // Check if a custom model with the same name already exists\n const existingModelIndex =\n draft.aiSettings.config.customModels.findIndex(\n (model) =>\n model.modelName.toLowerCase() === modelName.toLowerCase(),\n );\n\n if (existingModelIndex !== -1) {\n // Update existing model\n draft.aiSettings.config.customModels[existingModelIndex] =\n newCustomModel;\n } else {\n // Add new model\n draft.aiSettings.config.customModels.push(newCustomModel);\n }\n }),\n );\n },\n\n updateCustomModel: (\n oldModelName: string,\n baseUrl: string,\n apiKey: string,\n newModelName: string,\n ) => {\n set((state) =>\n produce(state, (draft) => {\n // Find the model to update\n const modelIndex = draft.aiSettings.config.customModels.findIndex(\n (model) => model.modelName === oldModelName,\n );\n\n if (modelIndex !== -1) {\n // Check if the new name conflicts with another model (excluding the current one)\n const conflictingModelIndex =\n draft.aiSettings.config.customModels.findIndex(\n (model, index) =>\n index !== modelIndex &&\n model.modelName.toLowerCase() ===\n newModelName.toLowerCase(),\n );\n\n if (conflictingModelIndex === -1) {\n // Update the model\n draft.aiSettings.config.customModels[modelIndex] = {\n baseUrl,\n apiKey,\n modelName: newModelName,\n };\n }\n }\n }),\n );\n },\n\n removeCustomModel: (modelName: string) => {\n set((state) =>\n produce(state, (draft) => {\n draft.aiSettings.config.customModels =\n draft.aiSettings.config.customModels.filter(\n (model) => model.modelName !== modelName,\n );\n }),\n );\n },\n },\n }));\n}\n\ntype AiStateWithSettings = AiSliceState & AiSettingsSliceState;\n\n// Hook to access aiSettings from the room store\nexport function useStoreWithAiSettings<T>(\n selector: (state: AiStateWithSettings) => T,\n): T {\n return useBaseRoomStore<AiStateWithSettings, T>((state) =>\n selector(state as unknown as AiStateWithSettings),\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/ai-settings",
3
- "version": "0.26.0-rc.4",
3
+ "version": "0.26.0-rc.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -19,13 +19,13 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@ai-sdk/provider": "^1.1.3",
22
- "@sqlrooms/ai-config": "0.26.0-rc.4",
23
- "@sqlrooms/ai-core": "0.26.0-rc.4",
24
- "@sqlrooms/recharts": "0.26.0-rc.4",
25
- "@sqlrooms/room-config": "0.26.0-rc.4",
26
- "@sqlrooms/room-store": "0.26.0-rc.4",
27
- "@sqlrooms/ui": "0.26.0-rc.4",
28
- "@sqlrooms/utils": "0.26.0-rc.4",
22
+ "@sqlrooms/ai-config": "0.26.0-rc.6",
23
+ "@sqlrooms/ai-core": "0.26.0-rc.6",
24
+ "@sqlrooms/recharts": "0.26.0-rc.6",
25
+ "@sqlrooms/room-config": "0.26.0-rc.6",
26
+ "@sqlrooms/room-store": "0.26.0-rc.6",
27
+ "@sqlrooms/ui": "0.26.0-rc.6",
28
+ "@sqlrooms/utils": "0.26.0-rc.6",
29
29
  "ai": "^5.0.44",
30
30
  "immer": "^10.1.1",
31
31
  "lucide-react": "^0.475.0",
@@ -46,5 +46,5 @@
46
46
  "typecheck": "tsc --noEmit",
47
47
  "typedoc": "typedoc"
48
48
  },
49
- "gitHead": "9e23926085d8852178792d6d98d8091e9a5f71d5"
49
+ "gitHead": "f7b18280e7d81f653bb437cf81b1e23243809053"
50
50
  }