@sqlrooms/ai-config 0.27.0-rc.2 → 0.27.0-rc.4

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.
@@ -132,8 +132,10 @@ export declare const AiSliceConfig: z.ZodObject<{
132
132
  messagesRevision: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
133
133
  prompt: z.ZodDefault<z.ZodString>;
134
134
  isRunning: z.ZodDefault<z.ZodBoolean>;
135
+ lastOpenedAt: z.ZodOptional<z.ZodNumber>;
135
136
  }, z.core.$strip>>>;
136
137
  currentSessionId: z.ZodOptional<z.ZodString>;
138
+ openSessionTabs: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
139
  }, z.core.$strip>;
138
140
  export type AiSliceConfig = z.infer<typeof AiSliceConfig>;
139
141
  export declare function createDefaultAiConfig(props?: Partial<AiSliceConfig>): AiSliceConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"AiSliceConfig.d.ts","sourceRoot":"","sources":["../src/AiSliceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC7B,aAAa,CAqBf"}
1
+ {"version":3,"file":"AiSliceConfig.d.ts","sourceRoot":"","sources":["../src/AiSliceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC7B,aAAa,CAuBf"}
@@ -4,6 +4,8 @@ import { createId } from '@paralleldrive/cuid2';
4
4
  export const AiSliceConfig = z.object({
5
5
  sessions: z.array(AnalysisSessionSchema),
6
6
  currentSessionId: z.string().optional(),
7
+ /** IDs of sessions that are open as tabs */
8
+ openSessionTabs: z.array(z.string()).optional(),
7
9
  });
8
10
  export function createDefaultAiConfig(props) {
9
11
  const defaultSessionId = createId();
@@ -21,9 +23,11 @@ export function createDefaultAiConfig(props) {
21
23
  messagesRevision: 0,
22
24
  prompt: '',
23
25
  isRunning: false,
26
+ lastOpenedAt: Date.now(),
24
27
  },
25
28
  ],
26
29
  currentSessionId: defaultSessionId,
30
+ openSessionTabs: [defaultSessionId],
27
31
  ...props,
28
32
  };
29
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AiSliceConfig.js","sourceRoot":"","sources":["../src/AiSliceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAGH,MAAM,UAAU,qBAAqB,CACnC,KAA8B;IAE9B,MAAM,gBAAgB,GAAG,QAAQ,EAAE,CAAC;IACpC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,QAAQ;gBACvB,KAAK,EAAE,SAAS;gBAChB,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,UAAU,EAAE,EAAE;gBACd,kBAAkB,EAAE,EAAE;gBACtB,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;aACjB;SACF;QACD,gBAAgB,EAAE,gBAAgB;QAClC,GAAG,KAAK;KACT,CAAC;AACJ,CAAC","sourcesContent":["import {z} from 'zod';\nimport {AnalysisSessionSchema} from './schema/AnalysisSessionSchema';\nimport {createId} from '@paralleldrive/cuid2';\n\nexport const AiSliceConfig = z.object({\n sessions: z.array(AnalysisSessionSchema),\n currentSessionId: z.string().optional(),\n});\nexport type AiSliceConfig = z.infer<typeof AiSliceConfig>;\n\nexport function createDefaultAiConfig(\n props?: Partial<AiSliceConfig>,\n): AiSliceConfig {\n const defaultSessionId = createId();\n return {\n sessions: [\n {\n id: defaultSessionId,\n name: 'Default Session',\n modelProvider: 'openai',\n model: 'gpt-4.1',\n analysisResults: [],\n createdAt: new Date(),\n uiMessages: [],\n toolAdditionalData: {},\n messagesRevision: 0,\n prompt: '',\n isRunning: false,\n },\n ],\n currentSessionId: defaultSessionId,\n ...props,\n };\n}\n"]}
1
+ {"version":3,"file":"AiSliceConfig.js","sourceRoot":"","sources":["../src/AiSliceConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,4CAA4C;IAC5C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAGH,MAAM,UAAU,qBAAqB,CACnC,KAA8B;IAE9B,MAAM,gBAAgB,GAAG,QAAQ,EAAE,CAAC;IACpC,OAAO;QACL,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,QAAQ;gBACvB,KAAK,EAAE,SAAS;gBAChB,eAAe,EAAE,EAAE;gBACnB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,UAAU,EAAE,EAAE;gBACd,kBAAkB,EAAE,EAAE;gBACtB,gBAAgB,EAAE,CAAC;gBACnB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;aACzB;SACF;QACD,gBAAgB,EAAE,gBAAgB;QAClC,eAAe,EAAE,CAAC,gBAAgB,CAAC;QACnC,GAAG,KAAK;KACT,CAAC;AACJ,CAAC","sourcesContent":["import {z} from 'zod';\nimport {AnalysisSessionSchema} from './schema/AnalysisSessionSchema';\nimport {createId} from '@paralleldrive/cuid2';\n\nexport const AiSliceConfig = z.object({\n sessions: z.array(AnalysisSessionSchema),\n currentSessionId: z.string().optional(),\n /** IDs of sessions that are open as tabs */\n openSessionTabs: z.array(z.string()).optional(),\n});\nexport type AiSliceConfig = z.infer<typeof AiSliceConfig>;\n\nexport function createDefaultAiConfig(\n props?: Partial<AiSliceConfig>,\n): AiSliceConfig {\n const defaultSessionId = createId();\n return {\n sessions: [\n {\n id: defaultSessionId,\n name: 'Default Session',\n modelProvider: 'openai',\n model: 'gpt-4.1',\n analysisResults: [],\n createdAt: new Date(),\n uiMessages: [],\n toolAdditionalData: {},\n messagesRevision: 0,\n prompt: '',\n isRunning: false,\n lastOpenedAt: Date.now(),\n },\n ],\n currentSessionId: defaultSessionId,\n openSessionTabs: [defaultSessionId],\n ...props,\n };\n}\n"]}
@@ -144,6 +144,7 @@ export declare const AnalysisSessionSchema: z.ZodPipe<z.ZodTransform<unknown, un
144
144
  messagesRevision: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
145
145
  prompt: z.ZodDefault<z.ZodString>;
146
146
  isRunning: z.ZodDefault<z.ZodBoolean>;
147
+ lastOpenedAt: z.ZodOptional<z.ZodNumber>;
147
148
  }, z.core.$strip>>;
148
149
  export type AnalysisSessionSchema = z.infer<typeof AnalysisSessionSchema>;
149
150
  //# sourceMappingURL=AnalysisSessionSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisSessionSchema.d.ts","sourceRoot":"","sources":["../../src/schema/AnalysisSessionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAetB,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;iBAK/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA8CxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyB,CAAC;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"AnalysisSessionSchema.d.ts","sourceRoot":"","sources":["../../src/schema/AnalysisSessionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAetB,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,oBAAoB;;;;;;;iBAK/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAgDxE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyB,CAAC;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -29,6 +29,8 @@ const AnalysisSessionBaseSchema = z.object({
29
29
  prompt: z.string().default(''),
30
30
  /** Per-session flag indicating if analysis is running */
31
31
  isRunning: z.boolean().default(false),
32
+ /** Last time the session was opened/selected (epoch ms) */
33
+ lastOpenedAt: z.number().optional(),
32
34
  });
33
35
  /**
34
36
  * Apply all migrations in sequence from oldest to newest.
@@ -1 +1 @@
1
- {"version":3,"file":"AnalysisSessionSchema.js","sourceRoot":"","sources":["../../src/schema/AnalysisSessionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,4DAA4D;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAGH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChE,8FAA8F;IAC9F,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,uCAAuC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;IACnD,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,qDAAqD;IACrD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,wDAAwD;IACxD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAClE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAE9B,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC","sourcesContent":["import {z} from 'zod';\nimport {UIMessageSchema} from './UIMessageSchema';\nimport {\n needsV0_24_14Migration,\n migrateFromV0_24_14,\n} from '../migration/AnalysisSession-v0.24.14';\nimport {\n needsV0_25_0Migration,\n migrateFromV0_25_0,\n} from '../migration/AnalysisSession-v0.25.0';\nimport {\n needsV0_26_0Migration,\n migrateFromV0_26_0,\n} from '../migration/AnalysisSession-v0.26.0';\n\nexport const ErrorMessageSchema = z.object({\n error: z.string(),\n});\nexport type ErrorMessageSchema = z.infer<typeof ErrorMessageSchema>;\n\nexport const AnalysisResultSchema = z.object({\n id: z.string(), // allow any string ID to match UI message ID from AI SDK v5\n prompt: z.string(),\n errorMessage: ErrorMessageSchema.optional(),\n isCompleted: z.boolean(),\n});\nexport type AnalysisResultSchema = z.infer<typeof AnalysisResultSchema>;\n\nconst AnalysisSessionBaseSchema = z.object({\n id: z.string(),\n name: z.string(),\n modelProvider: z.string(),\n model: z.string(),\n customModelName: z.string().optional(),\n baseUrl: z.string().optional(),\n analysisResults: z.array(AnalysisResultSchema),\n createdAt: z.coerce.date().optional(),\n uiMessages: z.array(UIMessageSchema),\n toolAdditionalData: z.record(z.string(), z.unknown()).optional(),\n /** Revision counter that increments when messages are deleted, used to force useChat reset */\n messagesRevision: z.number().optional().default(0),\n /** Per-session analysis prompt text */\n prompt: z.string().default(''),\n /** Per-session flag indicating if analysis is running */\n isRunning: z.boolean().default(false),\n});\n\n/**\n * Apply all migrations in sequence from oldest to newest.\n * This ensures that old data can be migrated through multiple versions.\n */\nconst migrateAnalysisSession = z.preprocess((data) => {\n let migrated = data;\n\n // Apply v0.24.14 migration (ollamaBaseUrl → baseUrl)\n if (needsV0_24_14Migration(migrated)) {\n migrated = migrateFromV0_24_14(migrated);\n }\n\n // Apply v0.25.0 migration (streamMessage format change)\n if (needsV0_25_0Migration(migrated)) {\n migrated = migrateFromV0_25_0(migrated);\n }\n\n // Apply v0.26.0 migration (add uiMessages and toolAdditionalData)\n if (needsV0_26_0Migration(migrated)) {\n migrated = migrateFromV0_26_0(migrated);\n }\n\n return migrated;\n}, AnalysisSessionBaseSchema);\n\nexport const AnalysisSessionSchema = migrateAnalysisSession;\nexport type AnalysisSessionSchema = z.infer<typeof AnalysisSessionSchema>;\n"]}
1
+ {"version":3,"file":"AnalysisSessionSchema.js","sourceRoot":"","sources":["../../src/schema/AnalysisSessionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,4DAA4D;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAGH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChE,8FAA8F;IAC9F,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,uCAAuC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,2DAA2D;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE;IACnD,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,qDAAqD;IACrD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,wDAAwD;IACxD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAClE,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAE9B,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC","sourcesContent":["import {z} from 'zod';\nimport {UIMessageSchema} from './UIMessageSchema';\nimport {\n needsV0_24_14Migration,\n migrateFromV0_24_14,\n} from '../migration/AnalysisSession-v0.24.14';\nimport {\n needsV0_25_0Migration,\n migrateFromV0_25_0,\n} from '../migration/AnalysisSession-v0.25.0';\nimport {\n needsV0_26_0Migration,\n migrateFromV0_26_0,\n} from '../migration/AnalysisSession-v0.26.0';\n\nexport const ErrorMessageSchema = z.object({\n error: z.string(),\n});\nexport type ErrorMessageSchema = z.infer<typeof ErrorMessageSchema>;\n\nexport const AnalysisResultSchema = z.object({\n id: z.string(), // allow any string ID to match UI message ID from AI SDK v5\n prompt: z.string(),\n errorMessage: ErrorMessageSchema.optional(),\n isCompleted: z.boolean(),\n});\nexport type AnalysisResultSchema = z.infer<typeof AnalysisResultSchema>;\n\nconst AnalysisSessionBaseSchema = z.object({\n id: z.string(),\n name: z.string(),\n modelProvider: z.string(),\n model: z.string(),\n customModelName: z.string().optional(),\n baseUrl: z.string().optional(),\n analysisResults: z.array(AnalysisResultSchema),\n createdAt: z.coerce.date().optional(),\n uiMessages: z.array(UIMessageSchema),\n toolAdditionalData: z.record(z.string(), z.unknown()).optional(),\n /** Revision counter that increments when messages are deleted, used to force useChat reset */\n messagesRevision: z.number().optional().default(0),\n /** Per-session analysis prompt text */\n prompt: z.string().default(''),\n /** Per-session flag indicating if analysis is running */\n isRunning: z.boolean().default(false),\n /** Last time the session was opened/selected (epoch ms) */\n lastOpenedAt: z.number().optional(),\n});\n\n/**\n * Apply all migrations in sequence from oldest to newest.\n * This ensures that old data can be migrated through multiple versions.\n */\nconst migrateAnalysisSession = z.preprocess((data) => {\n let migrated = data;\n\n // Apply v0.24.14 migration (ollamaBaseUrl → baseUrl)\n if (needsV0_24_14Migration(migrated)) {\n migrated = migrateFromV0_24_14(migrated);\n }\n\n // Apply v0.25.0 migration (streamMessage format change)\n if (needsV0_25_0Migration(migrated)) {\n migrated = migrateFromV0_25_0(migrated);\n }\n\n // Apply v0.26.0 migration (add uiMessages and toolAdditionalData)\n if (needsV0_26_0Migration(migrated)) {\n migrated = migrateFromV0_26_0(migrated);\n }\n\n return migrated;\n}, AnalysisSessionBaseSchema);\n\nexport const AnalysisSessionSchema = migrateAnalysisSession;\nexport type AnalysisSessionSchema = z.infer<typeof AnalysisSessionSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/ai-config",
3
- "version": "0.27.0-rc.2",
3
+ "version": "0.27.0-rc.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -29,5 +29,5 @@
29
29
  "typecheck": "tsc --noEmit",
30
30
  "typedoc": "typedoc"
31
31
  },
32
- "gitHead": "eec06537352a9e760de21d7bcc77d9aa2db2a5ec"
32
+ "gitHead": "892408d49720d1fb195308029674894ae059969d"
33
33
  }