@tpitre/story-ui 4.13.2 → 4.13.3

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.
package/dist/cli/setup.js CHANGED
@@ -213,14 +213,14 @@ const LLM_PROVIDERS = {
213
213
  openai: {
214
214
  name: 'OpenAI (GPT)',
215
215
  envKey: 'OPENAI_API_KEY',
216
- models: ['gpt-5.1', 'gpt-5.1-thinking', 'gpt-4o', 'gpt-4o-mini'],
216
+ models: ['gpt-4.1', 'gpt-4.1-mini', 'o3', 'o4-mini', 'gpt-4o', 'gpt-4o-mini'],
217
217
  docsUrl: 'https://platform.openai.com/api-keys',
218
218
  description: 'Versatile and fast'
219
219
  },
220
220
  gemini: {
221
221
  name: 'Google Gemini',
222
222
  envKey: 'GEMINI_API_KEY',
223
- models: ['gemini-3-pro', 'gemini-2.0-flash-exp', 'gemini-2.0-flash', 'gemini-1.5-pro'],
223
+ models: ['gemini-3.1-pro-preview', 'gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.5-flash-lite', 'gemini-3-flash-preview'],
224
224
  docsUrl: 'https://aistudio.google.com/app/apikey',
225
225
  description: 'Cost-effective with good performance'
226
226
  }
@@ -5,12 +5,12 @@
5
5
  */
6
6
  import { BaseLLMProvider } from './base-provider.js';
7
7
  import { logger } from '../logger.js';
8
- // Gemini model definitions - Updated December 2025
9
- // Top 5 models - Reference: https://ai.google.dev/gemini-api/docs/models
8
+ // Gemini model definitions - Updated March 2026
9
+ // Reference: https://ai.google.dev/gemini-api/docs/models
10
10
  const GEMINI_MODELS = [
11
11
  {
12
- id: 'gemini-3-pro-preview',
13
- name: 'Gemini 3 Pro Preview',
12
+ id: 'gemini-3.1-pro-preview',
13
+ name: 'Gemini 3.1 Pro Preview',
14
14
  provider: 'gemini',
15
15
  contextWindow: 1048576,
16
16
  maxOutputTokens: 65536,
@@ -51,34 +51,34 @@ const GEMINI_MODELS = [
51
51
  outputPricePer1kTokens: 0.0006,
52
52
  },
53
53
  {
54
- id: 'gemini-2.0-flash',
55
- name: 'Gemini 2.0 Flash',
54
+ id: 'gemini-2.5-flash-lite',
55
+ name: 'Gemini 2.5 Flash Lite',
56
56
  provider: 'gemini',
57
57
  contextWindow: 1048576,
58
- maxOutputTokens: 8192,
58
+ maxOutputTokens: 65536,
59
59
  supportsVision: true,
60
60
  supportsDocuments: true,
61
61
  supportsFunctionCalling: true,
62
62
  supportsStreaming: true,
63
- inputPricePer1kTokens: 0.00,
64
- outputPricePer1kTokens: 0.00,
63
+ inputPricePer1kTokens: 0.00008,
64
+ outputPricePer1kTokens: 0.0003,
65
65
  },
66
66
  {
67
- id: 'gemini-1.5-pro',
68
- name: 'Gemini 1.5 Pro',
67
+ id: 'gemini-3-flash-preview',
68
+ name: 'Gemini 3 Flash Preview',
69
69
  provider: 'gemini',
70
- contextWindow: 2097152,
71
- maxOutputTokens: 8192,
70
+ contextWindow: 1048576,
71
+ maxOutputTokens: 65536,
72
72
  supportsVision: true,
73
73
  supportsDocuments: true,
74
74
  supportsFunctionCalling: true,
75
75
  supportsStreaming: true,
76
- inputPricePer1kTokens: 0.00125,
77
- outputPricePer1kTokens: 0.005,
76
+ inputPricePer1kTokens: 0.00015,
77
+ outputPricePer1kTokens: 0.0006,
78
78
  },
79
79
  ];
80
- // Default model - Gemini 3 Pro Preview (most capable)
81
- const DEFAULT_MODEL = 'gemini-3-pro-preview';
80
+ // Default model - Gemini 2.5 Pro (stable flagship, March 2026)
81
+ const DEFAULT_MODEL = 'gemini-2.5-pro';
82
82
  // API configuration
83
83
  const GEMINI_API_BASE = 'https://generativelanguage.googleapis.com/v1beta/models';
84
84
  export class GeminiProvider extends BaseLLMProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/openai-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAsGrD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,eAAe,cAAiB;gBAE7B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAUtC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmE1E,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,aAAa,CAAC,WAAW,CAAC;IA6GvB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+C/D,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;IAmBvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAKrC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF"}
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/openai-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAgIrD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,eAAe,cAAiB;gBAE7B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAUtC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmE1E,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,aAAa,CAAC,WAAW,CAAC;IA6GvB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+C/D,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;IAmBvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAKrC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF"}
@@ -5,36 +5,62 @@
5
5
  */
6
6
  import { BaseLLMProvider } from './base-provider.js';
7
7
  import { logger } from '../logger.js';
8
- // OpenAI model definitions - Updated December 2025
9
- // Reference: https://platform.openai.com/docs/guides/latest-model
8
+ // OpenAI model definitions - Updated March 2026
9
+ // Reference: https://platform.openai.com/docs/models
10
10
  const OPENAI_MODELS = [
11
11
  {
12
- id: 'gpt-5.2',
13
- name: 'GPT-5.2',
12
+ id: 'gpt-4.1',
13
+ name: 'GPT-4.1',
14
14
  provider: 'openai',
15
- contextWindow: 256000,
15
+ contextWindow: 1047576,
16
16
  maxOutputTokens: 32768,
17
17
  supportsVision: true,
18
18
  supportsDocuments: true,
19
19
  supportsFunctionCalling: true,
20
20
  supportsStreaming: true,
21
- supportsReasoning: true,
22
- inputPricePer1kTokens: 0.005,
23
- outputPricePer1kTokens: 0.015,
21
+ inputPricePer1kTokens: 0.002,
22
+ outputPricePer1kTokens: 0.008,
24
23
  },
25
24
  {
26
- id: 'gpt-5.1',
27
- name: 'GPT-5.1',
25
+ id: 'gpt-4.1-mini',
26
+ name: 'GPT-4.1 Mini',
28
27
  provider: 'openai',
29
- contextWindow: 256000,
28
+ contextWindow: 1047576,
30
29
  maxOutputTokens: 32768,
31
30
  supportsVision: true,
32
31
  supportsDocuments: true,
33
32
  supportsFunctionCalling: true,
34
33
  supportsStreaming: true,
34
+ inputPricePer1kTokens: 0.0004,
35
+ outputPricePer1kTokens: 0.0016,
36
+ },
37
+ {
38
+ id: 'o3',
39
+ name: 'o3',
40
+ provider: 'openai',
41
+ contextWindow: 200000,
42
+ maxOutputTokens: 100000,
43
+ supportsVision: true,
44
+ supportsDocuments: false,
45
+ supportsFunctionCalling: true,
46
+ supportsStreaming: true,
47
+ supportsReasoning: true,
48
+ inputPricePer1kTokens: 0.01,
49
+ outputPricePer1kTokens: 0.04,
50
+ },
51
+ {
52
+ id: 'o4-mini',
53
+ name: 'o4 Mini',
54
+ provider: 'openai',
55
+ contextWindow: 200000,
56
+ maxOutputTokens: 100000,
57
+ supportsVision: true,
58
+ supportsDocuments: false,
59
+ supportsFunctionCalling: true,
60
+ supportsStreaming: true,
35
61
  supportsReasoning: true,
36
- inputPricePer1kTokens: 0.005,
37
- outputPricePer1kTokens: 0.015,
62
+ inputPricePer1kTokens: 0.0011,
63
+ outputPricePer1kTokens: 0.0044,
38
64
  },
39
65
  {
40
66
  id: 'gpt-4o',
@@ -63,8 +89,8 @@ const OPENAI_MODELS = [
63
89
  outputPricePer1kTokens: 0.0006,
64
90
  },
65
91
  ];
66
- // Default model - Updated to latest GPT-5.1 (December 2025)
67
- const DEFAULT_MODEL = 'gpt-5.2';
92
+ // Default model - GPT-4.1 (1M context window, March 2026)
93
+ const DEFAULT_MODEL = 'gpt-4.1';
68
94
  // API configuration
69
95
  const OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions';
70
96
  export class OpenAIProvider extends BaseLLMProvider {
@@ -90,9 +116,9 @@ export class OpenAIProvider extends BaseLLMProvider {
90
116
  const model = options?.model || this.config.model;
91
117
  const openaiMessages = this.convertMessages(messages, options?.systemPrompt);
92
118
  // Determine which token parameter to use based on model
93
- // Newer models (o1, gpt-5, gpt-5.1) require max_completion_tokens instead of max_tokens
119
+ // o-series models (o1, o3, o4-mini, etc.) require max_completion_tokens instead of max_tokens
94
120
  const maxTokens = options?.maxTokens || this.getSelectedModel()?.maxOutputTokens || 4096;
95
- const useMaxCompletionTokens = model.startsWith('o1') || model.startsWith('gpt-5');
121
+ const useMaxCompletionTokens = /^o\d/.test(model);
96
122
  const requestBody = {
97
123
  model,
98
124
  messages: openaiMessages,
@@ -101,8 +127,8 @@ export class OpenAIProvider extends BaseLLMProvider {
101
127
  : { max_tokens: maxTokens }),
102
128
  };
103
129
  // Add optional parameters
104
- // Note: temperature is not supported for o1 and some gpt-5 models
105
- if (options?.temperature !== undefined && !model.startsWith('o1')) {
130
+ // Note: temperature is not supported for o-series models (o1, o3, o4-mini, etc.)
131
+ if (options?.temperature !== undefined && !/^o\d/.test(model)) {
106
132
  requestBody.temperature = options.temperature;
107
133
  }
108
134
  if (options?.topP !== undefined) {
@@ -150,9 +176,9 @@ export class OpenAIProvider extends BaseLLMProvider {
150
176
  const model = options?.model || this.config.model;
151
177
  const openaiMessages = this.convertMessages(messages, options?.systemPrompt);
152
178
  // Determine which token parameter to use based on model
153
- // Newer models (o1, gpt-5, gpt-5.1) require max_completion_tokens instead of max_tokens
179
+ // o-series models (o1, o3, o4-mini, etc.) require max_completion_tokens instead of max_tokens
154
180
  const maxTokens = options?.maxTokens || this.getSelectedModel()?.maxOutputTokens || 4096;
155
- const useMaxCompletionTokens = model.startsWith('o1') || model.startsWith('gpt-5');
181
+ const useMaxCompletionTokens = /^o\d/.test(model);
156
182
  const requestBody = {
157
183
  model,
158
184
  messages: openaiMessages,
@@ -161,8 +187,8 @@ export class OpenAIProvider extends BaseLLMProvider {
161
187
  : { max_tokens: maxTokens }),
162
188
  stream: true,
163
189
  };
164
- // Note: temperature is not supported for o1 and some gpt-5 models
165
- if (options?.temperature !== undefined && !model.startsWith('o1')) {
190
+ // Note: temperature is not supported for o-series models (o1, o3, o4-mini, etc.)
191
+ if (options?.temperature !== undefined && !/^o\d/.test(model)) {
166
192
  requestBody.temperature = options.temperature;
167
193
  }
168
194
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/settings-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAA0B,MAAM,YAAY,CAAC;AAIlE,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CAExB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACN,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CA0BnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,EAAE,CAyB/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,GACrB,eAAe,EAAE,CAoCnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GACrB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,CAAC,EAAE,YAAY,EAC9B,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAuBlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG;IACzD,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAuBA"}
1
+ {"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/settings-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAA0B,MAAM,YAAY,CAAC;AAIlE,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CAExB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACN,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CA0BnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,EAAE,CAyB/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,GACrB,eAAe,EAAE,CAsCnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,GACrB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,CAAC,EAAE,YAAY,EAC9B,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAuBlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG;IACzD,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAuBA"}
@@ -83,11 +83,13 @@ export function getAvailableModels(provider, config) {
83
83
  'claude-sonnet-4-6', // Claude Sonnet 4.6
84
84
  'claude-sonnet-4-5-20250929',
85
85
  // OpenAI
86
- 'gpt-5.1', // GPT-5.1 - flagship
86
+ 'gpt-4.1', // GPT-4.1 - 1M context flagship
87
+ 'o3', // o3 reasoning
88
+ 'o4-mini', // o4 mini reasoning
87
89
  'gpt-4o',
88
90
  // Gemini
89
- 'gemini-3-pro-preview', // Gemini 3 Pro Preview - flagship
90
- 'gemini-3-pro',
91
+ 'gemini-3.1-pro-preview', // Gemini 3.1 Pro Preview - flagship
92
+ 'gemini-2.5-pro', // Gemini 2.5 Pro - stable
91
93
  ];
92
94
  return filteredModels.map((model) => ({
93
95
  id: model.id,
@@ -1 +1 @@
1
- {"version":3,"file":"StoryUIPanel.d.ts","sourceRoot":"","sources":["../../../templates/StoryUI/StoryUIPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,oBAAoB,CAAC;AAokC5B,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,iBAAS,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CA03CnD;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"StoryUIPanel.d.ts","sourceRoot":"","sources":["../../../templates/StoryUI/StoryUIPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,oBAAoB,CAAC;AAskC5B,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,iBAAS,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CA03CnD;AAED,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -586,17 +586,19 @@ function getModelDisplayName(model) {
586
586
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
587
587
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
588
588
  // OpenAI models
589
- 'gpt-5.2': 'GPT-5.2',
590
- 'gpt-5.1': 'GPT-5.1',
589
+ 'gpt-4.1': 'GPT-4.1',
590
+ 'gpt-4.1-mini': 'GPT-4.1 Mini',
591
+ 'o3': 'o3',
592
+ 'o4-mini': 'o4 Mini',
591
593
  'gpt-4o': 'GPT-4o',
592
594
  'gpt-4o-mini': 'GPT-4o Mini',
593
595
  'o1': 'o1',
594
596
  // Gemini models
595
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
597
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
596
598
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
597
599
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
598
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
599
- 'gemini-1.5-pro': 'Gemini 1.5 Pro',
600
+ 'gemini-2.5-flash-lite': 'Gemini 2.5 Flash Lite',
601
+ 'gemini-3-flash-preview': 'Gemini 3 Flash Preview',
600
602
  };
601
603
  return displayNames[model] || model;
602
604
  }
@@ -784,17 +784,19 @@ function getModelDisplayName(model: string): string {
784
784
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
785
785
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
786
786
  // OpenAI models
787
- 'gpt-5.2': 'GPT-5.2',
788
- 'gpt-5.1': 'GPT-5.1',
787
+ 'gpt-4.1': 'GPT-4.1',
788
+ 'gpt-4.1-mini': 'GPT-4.1 Mini',
789
+ 'o3': 'o3',
790
+ 'o4-mini': 'o4 Mini',
789
791
  'gpt-4o': 'GPT-4o',
790
792
  'gpt-4o-mini': 'GPT-4o Mini',
791
793
  'o1': 'o1',
792
794
  // Gemini models
793
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
795
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
794
796
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
795
797
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
796
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
797
- 'gemini-1.5-pro': 'Gemini 1.5 Pro',
798
+ 'gemini-2.5-flash-lite': 'Gemini 2.5 Flash Lite',
799
+ 'gemini-3-flash-preview': 'Gemini 3 Flash Preview',
798
800
  };
799
801
  return displayNames[model] || model;
800
802
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tpitre/story-ui",
3
- "version": "4.13.2",
3
+ "version": "4.13.3",
4
4
  "description": "AI-powered Storybook story generator with dynamic component discovery",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -784,17 +784,19 @@ function getModelDisplayName(model: string): string {
784
784
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
785
785
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
786
786
  // OpenAI models
787
- 'gpt-5.2': 'GPT-5.2',
788
- 'gpt-5.1': 'GPT-5.1',
787
+ 'gpt-4.1': 'GPT-4.1',
788
+ 'gpt-4.1-mini': 'GPT-4.1 Mini',
789
+ 'o3': 'o3',
790
+ 'o4-mini': 'o4 Mini',
789
791
  'gpt-4o': 'GPT-4o',
790
792
  'gpt-4o-mini': 'GPT-4o Mini',
791
793
  'o1': 'o1',
792
794
  // Gemini models
793
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
795
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
794
796
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
795
797
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
796
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
797
- 'gemini-1.5-pro': 'Gemini 1.5 Pro',
798
+ 'gemini-2.5-flash-lite': 'Gemini 2.5 Flash Lite',
799
+ 'gemini-3-flash-preview': 'Gemini 3 Flash Preview',
798
800
  };
799
801
  return displayNames[model] || model;
800
802
  }