@sqlrooms/ai-settings 0.26.0-rc.5 → 0.26.0
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,6 +1,6 @@
|
|
|
1
1
|
import { AiSettingsSliceConfig } from '@sqlrooms/ai-config';
|
|
2
2
|
import { AiSliceState } from '@sqlrooms/ai-core';
|
|
3
|
-
import {
|
|
3
|
+
import { type StateCreator } from '@sqlrooms/room-store';
|
|
4
4
|
export type AiSettingsSliceState = {
|
|
5
5
|
aiSettings: {
|
|
6
6
|
config: AiSettingsSliceConfig;
|
|
@@ -23,7 +23,7 @@ export type AiSettingsSliceState = {
|
|
|
23
23
|
type CreateAiSettingsSliceParams = {
|
|
24
24
|
config?: Partial<AiSettingsSliceConfig>;
|
|
25
25
|
};
|
|
26
|
-
export declare function createAiSettingsSlice
|
|
26
|
+
export declare function createAiSettingsSlice(props?: CreateAiSettingsSliceParams): StateCreator<AiSettingsSliceState>;
|
|
27
27
|
type AiStateWithSettings = AiSliceState & AiSettingsSliceState;
|
|
28
28
|
export declare function useStoreWithAiSettings<T>(selector: (state: AiStateWithSettings) => T): T;
|
|
29
29
|
export {};
|
|
@@ -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,
|
|
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 +1 @@
|
|
|
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 BaseRoomConfig,\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<PC extends BaseRoomConfig>(\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"]}
|
|
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
|
|
3
|
+
"version": "0.26.0",
|
|
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
|
|
23
|
-
"@sqlrooms/ai-core": "0.26.0
|
|
24
|
-
"@sqlrooms/recharts": "0.26.0
|
|
25
|
-
"@sqlrooms/room-config": "0.26.0
|
|
26
|
-
"@sqlrooms/room-store": "0.26.0
|
|
27
|
-
"@sqlrooms/ui": "0.26.0
|
|
28
|
-
"@sqlrooms/utils": "0.26.0
|
|
22
|
+
"@sqlrooms/ai-config": "0.26.0",
|
|
23
|
+
"@sqlrooms/ai-core": "0.26.0",
|
|
24
|
+
"@sqlrooms/recharts": "0.26.0",
|
|
25
|
+
"@sqlrooms/room-config": "0.26.0",
|
|
26
|
+
"@sqlrooms/room-store": "0.26.0",
|
|
27
|
+
"@sqlrooms/ui": "0.26.0",
|
|
28
|
+
"@sqlrooms/utils": "0.26.0",
|
|
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": "
|
|
49
|
+
"gitHead": "3376e76ddfa3c54097b79a20b88a1c37814dca61"
|
|
50
50
|
}
|