@tpitre/story-ui 4.13.1 → 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
@@ -206,21 +206,21 @@ const LLM_PROVIDERS = {
206
206
  claude: {
207
207
  name: 'Claude (Anthropic)',
208
208
  envKey: 'ANTHROPIC_API_KEY',
209
- models: ['claude-opus-4-5-20251101', 'claude-sonnet-4-5-20250929', 'claude-haiku-4-5-20251001'],
209
+ models: ['claude-opus-4-6', 'claude-sonnet-4-6', 'claude-opus-4-20250514', 'claude-sonnet-4-5-20250929', 'claude-haiku-4-5-20251001'],
210
210
  docsUrl: 'https://console.anthropic.com/',
211
211
  description: 'Recommended - Best for complex reasoning and code quality'
212
212
  },
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-provider.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/claude-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;AAiGrD,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;IAkE1E,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,aAAa,CAAC,WAAW,CAAC;IAuGvB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgD/D,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,aAAa;IAiBrB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAMrC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF"}
1
+ {"version":3,"file":"claude-provider.d.ts","sourceRoot":"","sources":["../../../story-generator/llm-providers/claude-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;AA0HrD,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;IAkE1E,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,aAAa,CAAC,WAAW,CAAC;IAuGvB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgD/D,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,aAAa;IAiBrB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAMrC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAErF"}
@@ -5,12 +5,37 @@
5
5
  */
6
6
  import { BaseLLMProvider } from './base-provider.js';
7
7
  import { logger } from '../logger.js';
8
- // Claude model definitions - Updated December 2025
9
- // Top 4 models only - Reference: Anthropic API documentation
8
+ // Claude model definitions - Updated March 2026
10
9
  const CLAUDE_MODELS = [
11
10
  {
12
- id: 'claude-opus-4-5-20251101',
13
- name: 'Claude Opus 4.5',
11
+ id: 'claude-opus-4-6',
12
+ name: 'Claude Opus 4.6',
13
+ provider: 'claude',
14
+ contextWindow: 200000,
15
+ maxOutputTokens: 32000,
16
+ supportsVision: true,
17
+ supportsDocuments: true,
18
+ supportsFunctionCalling: true,
19
+ supportsStreaming: true,
20
+ inputPricePer1kTokens: 0.015,
21
+ outputPricePer1kTokens: 0.075,
22
+ },
23
+ {
24
+ id: 'claude-sonnet-4-6',
25
+ name: 'Claude Sonnet 4.6',
26
+ provider: 'claude',
27
+ contextWindow: 200000,
28
+ maxOutputTokens: 16000,
29
+ supportsVision: true,
30
+ supportsDocuments: true,
31
+ supportsFunctionCalling: true,
32
+ supportsStreaming: true,
33
+ inputPricePer1kTokens: 0.003,
34
+ outputPricePer1kTokens: 0.015,
35
+ },
36
+ {
37
+ id: 'claude-opus-4-20250514',
38
+ name: 'Claude Opus 4',
14
39
  provider: 'claude',
15
40
  contextWindow: 200000,
16
41
  maxOutputTokens: 32000,
@@ -61,8 +86,8 @@ const CLAUDE_MODELS = [
61
86
  outputPricePer1kTokens: 0.015,
62
87
  },
63
88
  ];
64
- // Default model - Claude Sonnet 4.5 (recommended for agents and coding)
65
- const DEFAULT_MODEL = 'claude-opus-4-5-20251101';
89
+ // Default model - Claude Sonnet 4.6 (latest recommended)
90
+ const DEFAULT_MODEL = 'claude-sonnet-4-6';
66
91
  // API configuration
67
92
  const ANTHROPIC_API_URL = 'https://api.anthropic.com/v1/messages';
68
93
  const ANTHROPIC_VERSION = '2023-06-01';
@@ -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,CAmCnB;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"}
@@ -18,7 +18,7 @@ import { logger } from '../logger.js';
18
18
  */
19
19
  export function loadSettingsConfig() {
20
20
  const defaultProvider = process.env.DEFAULT_PROVIDER || 'claude';
21
- const defaultModel = process.env.DEFAULT_MODEL || 'claude-opus-4-5-20251101';
21
+ const defaultModel = process.env.DEFAULT_MODEL || 'claude-sonnet-4-6';
22
22
  // Parse allowed providers
23
23
  const allowedProvidersEnv = process.env.ALLOWED_PROVIDERS;
24
24
  const allowedProviders = allowedProvidersEnv
@@ -79,14 +79,17 @@ export function getAvailableModels(provider, config) {
79
79
  // Mark recommended models based on capabilities
80
80
  const recommendedModels = [
81
81
  // Claude
82
- 'claude-opus-4-5-20251101', // Claude Opus 4.5 - flagship
82
+ 'claude-opus-4-6', // Claude Opus 4.6 - flagship
83
+ 'claude-sonnet-4-6', // Claude Sonnet 4.6
83
84
  'claude-sonnet-4-5-20250929',
84
85
  // OpenAI
85
- '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
86
89
  'gpt-4o',
87
90
  // Gemini
88
- 'gemini-3-pro-preview', // Gemini 3 Pro Preview - flagship
89
- '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
90
93
  ];
91
94
  return filteredModels.map((model) => ({
92
95
  id: model.id,
@@ -97,7 +97,7 @@ export async function chatCompletion(messages, options) {
97
97
  try {
98
98
  const response = await provider.chat(chatMessages, {
99
99
  model: options?.model,
100
- maxTokens: options?.maxTokens || 8192,
100
+ maxTokens: options?.maxTokens,
101
101
  temperature: options?.temperature,
102
102
  systemPrompt,
103
103
  });
@@ -156,7 +156,7 @@ export async function chatCompletionWithImages(messages, options) {
156
156
  try {
157
157
  const response = await provider.chat(chatMessages, {
158
158
  model: options?.model,
159
- maxTokens: options?.maxTokens || 8192,
159
+ maxTokens: options?.maxTokens,
160
160
  temperature: options?.temperature,
161
161
  });
162
162
  return response.content;
@@ -1 +1 @@
1
- {"version":3,"file":"StoryUIPanel.d.ts","sourceRoot":"","sources":["../../../templates/StoryUI/StoryUIPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,oBAAoB,CAAC;AAkkC5B,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"}
@@ -579,22 +579,26 @@ function formatTime(timestamp) {
579
579
  function getModelDisplayName(model) {
580
580
  const displayNames = {
581
581
  // Claude models
582
- 'claude-opus-4-5-20251101': 'Claude Opus 4.5',
582
+ 'claude-opus-4-6': 'Claude Opus 4.6',
583
+ 'claude-sonnet-4-6': 'Claude Sonnet 4.6',
584
+ 'claude-opus-4-20250514': 'Claude Opus 4',
583
585
  'claude-sonnet-4-5-20250929': 'Claude Sonnet 4.5',
584
586
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
585
587
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
586
588
  // OpenAI models
587
- 'gpt-5.2': 'GPT-5.2',
588
- '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',
589
593
  'gpt-4o': 'GPT-4o',
590
594
  'gpt-4o-mini': 'GPT-4o Mini',
591
595
  'o1': 'o1',
592
596
  // Gemini models
593
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
597
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
594
598
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
595
599
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
596
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
597
- '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',
598
602
  };
599
603
  return displayNames[model] || model;
600
604
  }
@@ -777,22 +777,26 @@ function formatTime(timestamp: number): string {
777
777
  function getModelDisplayName(model: string): string {
778
778
  const displayNames: Record<string, string> = {
779
779
  // Claude models
780
- 'claude-opus-4-5-20251101': 'Claude Opus 4.5',
780
+ 'claude-opus-4-6': 'Claude Opus 4.6',
781
+ 'claude-sonnet-4-6': 'Claude Sonnet 4.6',
782
+ 'claude-opus-4-20250514': 'Claude Opus 4',
781
783
  'claude-sonnet-4-5-20250929': 'Claude Sonnet 4.5',
782
784
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
783
785
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
784
786
  // OpenAI models
785
- 'gpt-5.2': 'GPT-5.2',
786
- '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',
787
791
  'gpt-4o': 'GPT-4o',
788
792
  'gpt-4o-mini': 'GPT-4o Mini',
789
793
  'o1': 'o1',
790
794
  // Gemini models
791
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
795
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
792
796
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
793
797
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
794
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
795
- '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',
796
800
  };
797
801
  return displayNames[model] || model;
798
802
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tpitre/story-ui",
3
- "version": "4.13.1",
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",
@@ -777,22 +777,26 @@ function formatTime(timestamp: number): string {
777
777
  function getModelDisplayName(model: string): string {
778
778
  const displayNames: Record<string, string> = {
779
779
  // Claude models
780
- 'claude-opus-4-5-20251101': 'Claude Opus 4.5',
780
+ 'claude-opus-4-6': 'Claude Opus 4.6',
781
+ 'claude-sonnet-4-6': 'Claude Sonnet 4.6',
782
+ 'claude-opus-4-20250514': 'Claude Opus 4',
781
783
  'claude-sonnet-4-5-20250929': 'Claude Sonnet 4.5',
782
784
  'claude-haiku-4-5-20251001': 'Claude Haiku 4.5',
783
785
  'claude-sonnet-4-20250514': 'Claude Sonnet 4',
784
786
  // OpenAI models
785
- 'gpt-5.2': 'GPT-5.2',
786
- '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',
787
791
  'gpt-4o': 'GPT-4o',
788
792
  'gpt-4o-mini': 'GPT-4o Mini',
789
793
  'o1': 'o1',
790
794
  // Gemini models
791
- 'gemini-3-pro-preview': 'Gemini 3 Pro Preview',
795
+ 'gemini-3.1-pro-preview': 'Gemini 3.1 Pro Preview',
792
796
  'gemini-2.5-pro': 'Gemini 2.5 Pro',
793
797
  'gemini-2.5-flash': 'Gemini 2.5 Flash',
794
- 'gemini-2.0-flash': 'Gemini 2.0 Flash',
795
- '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',
796
800
  };
797
801
  return displayNames[model] || model;
798
802
  }