@musnows/scriverse 0.8.4 → 0.8.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.
Files changed (50) hide show
  1. package/README.md +1 -0
  2. package/dist/ai-model-pricing.js +295 -0
  3. package/dist/ai-model-pricing.js.map +1 -0
  4. package/dist/ai-protocol.js +335 -15
  5. package/dist/ai-protocol.js.map +1 -1
  6. package/dist/ai-retry.js +1 -1
  7. package/dist/ai-retry.js.map +1 -1
  8. package/dist/ai-stream-timeout.js +9 -6
  9. package/dist/ai-stream-timeout.js.map +1 -1
  10. package/dist/ai.js +1103 -142
  11. package/dist/ai.js.map +1 -1
  12. package/dist/app.js +230 -28
  13. package/dist/app.js.map +1 -1
  14. package/dist/attachment-download.js +26 -0
  15. package/dist/attachment-download.js.map +1 -0
  16. package/dist/attachment-storage.js +8 -6
  17. package/dist/attachment-storage.js.map +1 -1
  18. package/dist/cli-contract.js +6 -4
  19. package/dist/cli-contract.js.map +1 -1
  20. package/dist/database.js +352 -3
  21. package/dist/database.js.map +1 -1
  22. package/dist/public/ai-image-attachments.d.ts +21 -0
  23. package/dist/public/ai-image-attachments.js +42 -0
  24. package/dist/public/ai-usage.d.ts +1 -0
  25. package/dist/public/ai-usage.js +11 -0
  26. package/dist/public/app.js +1125 -150
  27. package/dist/public/display-labels.d.ts +2 -1
  28. package/dist/public/display-labels.js +6 -6
  29. package/dist/public/index.html +42 -7
  30. package/dist/public/model-config.d.ts +3 -1
  31. package/dist/public/model-config.js +9 -2
  32. package/dist/public/styles.css +120 -6
  33. package/dist/s3-backup.js +21 -0
  34. package/dist/s3-backup.js.map +1 -1
  35. package/dist/security.js +2 -1
  36. package/dist/security.js.map +1 -1
  37. package/dist/server-runtime.js +10 -2
  38. package/dist/server-runtime.js.map +1 -1
  39. package/dist/store.js +562 -47
  40. package/dist/store.js.map +1 -1
  41. package/dist/upload-limits.js +10 -4
  42. package/dist/upload-limits.js.map +1 -1
  43. package/dist/user-auth.js +3 -0
  44. package/dist/user-auth.js.map +1 -1
  45. package/dist/utils.js +1 -1
  46. package/dist/utils.js.map +1 -1
  47. package/dist/version.js +1 -1
  48. package/dist/writing-progress-time.js +15 -0
  49. package/dist/writing-progress-time.js.map +1 -1
  50. package/package.json +1 -1
@@ -1,21 +1,55 @@
1
1
  import { normalizeBaseUrl } from "./utils.js";
2
- export const AI_PROVIDER_PROTOCOLS = ["openai-chat-completions", "anthropic-messages", "google-vertex"];
2
+ export const AI_PROVIDER_PROTOCOLS = ["openai-chat-completions", "openai-responses", "anthropic-messages", "google-vertex"];
3
+ export const AI_THINKING_TYPES = ["enabled", "adaptive"];
3
4
  export const MAX_TOKENS_PARAMETERS = ["max_tokens", "max_completion_tokens"];
5
+ export const AI_PROVIDER_PROTOCOL_OPTIONS = Object.freeze([
6
+ {
7
+ value: "openai-chat-completions",
8
+ label: "OpenAI Chat Completions",
9
+ defaultBaseUrl: "https://api.openai.com/v1",
10
+ credentialKind: "api-key",
11
+ supportsMultimodal: true,
12
+ supportsMaxCompletionTokens: true
13
+ },
14
+ {
15
+ value: "openai-responses",
16
+ label: "OpenAI Responses",
17
+ defaultBaseUrl: "https://api.openai.com/v1",
18
+ credentialKind: "api-key",
19
+ supportsMultimodal: true,
20
+ supportsMaxCompletionTokens: false
21
+ },
22
+ {
23
+ value: "anthropic-messages",
24
+ label: "Anthropic Messages",
25
+ defaultBaseUrl: "https://api.anthropic.com",
26
+ credentialKind: "api-key",
27
+ supportsMultimodal: true,
28
+ supportsMaxCompletionTokens: false
29
+ },
30
+ {
31
+ value: "google-vertex",
32
+ label: "Google Vertex",
33
+ defaultBaseUrl: "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/endpoints/openapi",
34
+ credentialKind: "service-account-json",
35
+ supportsMultimodal: true,
36
+ supportsMaxCompletionTokens: true
37
+ }
38
+ ]);
4
39
  export function isAiProviderProtocol(value) {
5
40
  return AI_PROVIDER_PROTOCOLS.includes(value);
6
41
  }
7
42
  export function usesOpenAiChatCompletionsShape(protocol) {
8
43
  return protocol === "openai-chat-completions" || protocol === "google-vertex";
9
44
  }
45
+ export function usesOpenAiResponsesShape(protocol) {
46
+ return protocol === "openai-responses";
47
+ }
10
48
  export function providerProtocolLabelText(protocol) {
11
- if (protocol === "anthropic-messages")
12
- return "Anthropic Messages";
13
- if (protocol === "google-vertex")
14
- return "Google Vertex";
15
- return "Chat Completions";
49
+ return AI_PROVIDER_PROTOCOL_OPTIONS.find((option) => option.value === protocol)?.label ?? "AI provider";
16
50
  }
17
51
  export function normalizeProviderBaseUrl(value) {
18
- return normalizeBaseUrl(value).replace(/\/messages$/u, "");
52
+ return normalizeBaseUrl(value).replace(/\/(?:messages|responses)$/u, "");
19
53
  }
20
54
  function appendVersionedResource(baseUrl, resource) {
21
55
  const normalized = normalizeProviderBaseUrl(baseUrl);
@@ -23,18 +57,97 @@ function appendVersionedResource(baseUrl, resource) {
23
57
  }
24
58
  export function providerCompletionEndpoint(baseUrl, protocol) {
25
59
  const normalized = normalizeProviderBaseUrl(baseUrl);
26
- return protocol === "anthropic-messages"
27
- ? appendVersionedResource(normalized, "messages")
28
- : `${normalized}/chat/completions`;
60
+ if (protocol === "anthropic-messages")
61
+ return appendVersionedResource(normalized, "messages");
62
+ if (protocol === "openai-responses")
63
+ return appendVersionedResource(normalized, "responses");
64
+ return `${normalized}/chat/completions`;
29
65
  }
30
66
  export function providerModelEndpoints(baseUrl, protocol) {
31
67
  const normalized = normalizeProviderBaseUrl(baseUrl);
32
- if (usesOpenAiChatCompletionsShape(protocol))
68
+ if (usesOpenAiChatCompletionsShape(protocol) || usesOpenAiResponsesShape(protocol))
33
69
  return [`${normalized}/models`];
34
70
  const primary = appendVersionedResource(normalized, "models");
35
71
  const root = new URL("/v1/models", normalized).toString();
36
72
  return primary === root ? [primary] : [primary, root];
37
73
  }
74
+ function objectValue(value) {
75
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
76
+ }
77
+ function trimmedString(value, maximumLength) {
78
+ if (typeof value !== "string")
79
+ return "";
80
+ const normalized = value.trim();
81
+ return normalized.length <= maximumLength ? normalized : "";
82
+ }
83
+ function boundedPositiveInteger(value, minimum, maximum) {
84
+ if (typeof value !== "number" || !Number.isFinite(value))
85
+ return undefined;
86
+ const normalized = Math.round(value);
87
+ return normalized >= minimum && normalized <= maximum ? normalized : undefined;
88
+ }
89
+ function parseOpenAiCompatibleModelList(data) {
90
+ let invalidItemCount = 0;
91
+ const models = data.flatMap((item) => {
92
+ const model = objectValue(item);
93
+ const modelId = trimmedString(model?.id, 300);
94
+ if (!model || !modelId) {
95
+ invalidItemCount += 1;
96
+ return [];
97
+ }
98
+ return [{ modelId, displayName: modelId }];
99
+ });
100
+ return { models, invalidItemCount };
101
+ }
102
+ function parseAnthropicModelList(data) {
103
+ let invalidItemCount = 0;
104
+ const models = data.flatMap((item) => {
105
+ const model = objectValue(item);
106
+ const modelId = trimmedString(model?.id, 300);
107
+ if (!model || !modelId) {
108
+ invalidItemCount += 1;
109
+ return [];
110
+ }
111
+ const displayName = trimmedString(model.display_name, 200) || modelId;
112
+ const capabilities = objectValue(model.capabilities);
113
+ const imageInput = objectValue(capabilities?.image_input);
114
+ const contextWindow = boundedPositiveInteger(model.max_input_tokens, 32_768, 2_000_000);
115
+ const maxOutputTokens = boundedPositiveInteger(model.max_tokens, 1, 2_000_000);
116
+ return [{
117
+ modelId,
118
+ displayName,
119
+ ...(contextWindow === undefined ? {} : { contextWindow }),
120
+ ...(maxOutputTokens === undefined ? {} : { maxOutputTokens }),
121
+ ...(typeof imageInput?.supported === "boolean" ? { multimodalEnabled: imageInput.supported } : {})
122
+ }];
123
+ });
124
+ return { models, invalidItemCount };
125
+ }
126
+ export function parseProviderModelListPage(protocol, payload) {
127
+ const root = objectValue(payload);
128
+ if (!root || !Array.isArray(root.data)) {
129
+ throw new Error(`${providerProtocolLabelText(protocol)} /models 响应缺少 data 列表`);
130
+ }
131
+ if (protocol === "anthropic-messages") {
132
+ const page = parseAnthropicModelList(root.data);
133
+ if (root.has_more !== true)
134
+ return page;
135
+ const nextCursor = trimmedString(root.last_id, 300);
136
+ if (!nextCursor)
137
+ throw new Error("Anthropic Messages /models 分页响应缺少 last_id");
138
+ return { ...page, nextCursor };
139
+ }
140
+ return parseOpenAiCompatibleModelList(root.data);
141
+ }
142
+ export function providerModelListPageEndpoint(endpoint, protocol, cursor) {
143
+ if (protocol !== "anthropic-messages")
144
+ return endpoint;
145
+ const url = new URL(endpoint);
146
+ url.searchParams.set("limit", "1000");
147
+ if (cursor)
148
+ url.searchParams.set("after_id", cursor);
149
+ return url.toString();
150
+ }
38
151
  export function providerRequestHeaders(protocol, accessToken, accept) {
39
152
  return {
40
153
  Authorization: `Bearer ${accessToken}`,
@@ -50,6 +163,60 @@ function textContent(value) {
50
163
  return [];
51
164
  return value.filter((block) => block.type === "text" && typeof block.text === "string");
52
165
  }
166
+ function anthropicContentBlocks(value) {
167
+ if (typeof value === "string")
168
+ return textContent(value);
169
+ if (!Array.isArray(value))
170
+ return [];
171
+ const translated = value.flatMap((block) => {
172
+ if (block.type === "text" && typeof block.text === "string")
173
+ return [{ type: "text", text: block.text }];
174
+ if (block.type === "image" && block.source && typeof block.source === "object" && !Array.isArray(block.source)) {
175
+ return [structuredClone(block)];
176
+ }
177
+ if (block.type !== "image_url" || !block.image_url || typeof block.image_url !== "object" || Array.isArray(block.image_url))
178
+ return [];
179
+ const imageUrl = block.image_url;
180
+ if (typeof imageUrl.url !== "string" || imageUrl.url.length === 0)
181
+ return [];
182
+ const dataUrl = imageUrl.url.match(/^data:([^;,]+);base64,(.*)$/u);
183
+ return [{
184
+ type: "image",
185
+ source: dataUrl
186
+ ? { type: "base64", media_type: dataUrl[1], data: dataUrl[2] }
187
+ : { type: "url", url: imageUrl.url }
188
+ }];
189
+ });
190
+ // Anthropic 官方建议先放图片再放文本;保留各自的相对顺序,兼容对块顺序敏感的代理。
191
+ return [
192
+ ...translated.filter((block) => block.type === "image"),
193
+ ...translated.filter((block) => block.type !== "image")
194
+ ];
195
+ }
196
+ function responseInputContent(value) {
197
+ if (typeof value === "string")
198
+ return textContent(value).map((block) => ({ type: "input_text", text: block.text }));
199
+ if (!Array.isArray(value))
200
+ return [];
201
+ return value.flatMap((block) => {
202
+ if (block.type === "text" && typeof block.text === "string")
203
+ return [{ type: "input_text", text: block.text }];
204
+ if (block.type === "input_text" && typeof block.text === "string")
205
+ return [structuredClone(block)];
206
+ if (block.type === "input_image" && (typeof block.image_url === "string" || typeof block.file_id === "string"))
207
+ return [structuredClone(block)];
208
+ if (block.type !== "image_url" || !block.image_url || typeof block.image_url !== "object" || Array.isArray(block.image_url))
209
+ return [];
210
+ const imageUrl = block.image_url;
211
+ if (typeof imageUrl.url !== "string" || imageUrl.url.length === 0)
212
+ return [];
213
+ return [{
214
+ type: "input_image",
215
+ image_url: imageUrl.url,
216
+ ...(typeof imageUrl.detail === "string" ? { detail: imageUrl.detail } : {})
217
+ }];
218
+ });
219
+ }
53
220
  function parsedToolInput(value) {
54
221
  if (value && typeof value === "object" && !Array.isArray(value))
55
222
  return value;
@@ -104,10 +271,17 @@ function anthropicMessages(messages) {
104
271
  if (content.length === 0)
105
272
  return;
106
273
  const previous = output.at(-1);
107
- if (previous?.role === role)
108
- previous.content.push(...content);
109
- else
274
+ if (previous?.role !== role) {
110
275
  output.push({ role, content });
276
+ return;
277
+ }
278
+ const merged = [...previous.content, ...content];
279
+ previous.content = merged.some((block) => block.type === "image")
280
+ ? [
281
+ ...merged.filter((block) => block.type === "image"),
282
+ ...merged.filter((block) => block.type !== "image")
283
+ ]
284
+ : merged;
111
285
  };
112
286
  for (const message of messages) {
113
287
  if (message.role === "system")
@@ -120,10 +294,43 @@ function anthropicMessages(messages) {
120
294
  append("assistant", anthropicAssistantContent(message));
121
295
  continue;
122
296
  }
123
- append(message.role, textContent(message.content));
297
+ append(message.role, anthropicContentBlocks(message.content));
124
298
  }
125
299
  return { ...(system ? { system } : {}), messages: output };
126
300
  }
301
+ function serializedToolArguments(value) {
302
+ if (typeof value === "string")
303
+ return value;
304
+ try {
305
+ return JSON.stringify(value ?? {}) ?? "{}";
306
+ }
307
+ catch {
308
+ return "{}";
309
+ }
310
+ }
311
+ function responsesInput(messages) {
312
+ const output = [];
313
+ for (const message of messages) {
314
+ if (message.role === "tool") {
315
+ output.push({ type: "function_call_output", call_id: message.tool_call_id, output: message.content });
316
+ continue;
317
+ }
318
+ const content = responseInputContent(message.content);
319
+ if (content.length > 0)
320
+ output.push({ type: "message", role: message.role, content });
321
+ if (message.role === "assistant" && "tool_calls" in message) {
322
+ for (const toolCall of message.tool_calls ?? []) {
323
+ output.push({
324
+ type: "function_call",
325
+ call_id: toolCall.id,
326
+ name: toolCall.function.name,
327
+ arguments: serializedToolArguments(toolCall.function.arguments)
328
+ });
329
+ }
330
+ }
331
+ }
332
+ return output;
333
+ }
127
334
  function anthropicTools(tools) {
128
335
  return tools.flatMap((tool) => {
129
336
  const fn = tool.function && typeof tool.function === "object" && !Array.isArray(tool.function)
@@ -140,8 +347,46 @@ function anthropicTools(tools) {
140
347
  }];
141
348
  });
142
349
  }
350
+ function responsesTools(tools) {
351
+ return tools.flatMap((tool) => {
352
+ const fn = tool.function && typeof tool.function === "object" && !Array.isArray(tool.function)
353
+ ? tool.function
354
+ : null;
355
+ if (!fn || typeof fn.name !== "string")
356
+ return [];
357
+ return [{
358
+ type: "function",
359
+ name: fn.name,
360
+ ...(typeof fn.description === "string" ? { description: fn.description } : {}),
361
+ parameters: fn.parameters && typeof fn.parameters === "object" && !Array.isArray(fn.parameters)
362
+ ? fn.parameters
363
+ : { type: "object", properties: {} }
364
+ }];
365
+ });
366
+ }
143
367
  export function buildCompletionRequestBody(input) {
144
368
  const tools = input.toolChoice === "auto" ? input.tools ?? [] : [];
369
+ if (usesOpenAiResponsesShape(input.protocol)) {
370
+ const parameters = { ...input.parameters };
371
+ const maxTokens = parameters.max_tokens ?? parameters.max_completion_tokens;
372
+ delete parameters.max_tokens;
373
+ delete parameters.max_completion_tokens;
374
+ if (typeof maxTokens === "number")
375
+ parameters.max_output_tokens = maxTokens;
376
+ const reasoningEffort = parameters.reasoning_effort;
377
+ delete parameters.reasoning_effort;
378
+ if (typeof reasoningEffort === "string")
379
+ parameters.reasoning = { effort: reasoningEffort };
380
+ delete parameters.thinking;
381
+ delete parameters.output_config;
382
+ return {
383
+ model: input.model,
384
+ input: responsesInput(input.messages),
385
+ ...parameters,
386
+ ...(tools.length > 0 ? { tools: responsesTools(tools), tool_choice: "auto" } : {}),
387
+ ...(input.stream ? { stream: true } : {})
388
+ };
389
+ }
145
390
  if (usesOpenAiChatCompletionsShape(input.protocol)) {
146
391
  const parameters = { ...input.parameters };
147
392
  if (input.maxTokensParameter === "max_completion_tokens") {
@@ -196,7 +441,82 @@ function anthropicFinishReason(value) {
196
441
  return "length";
197
442
  return typeof value === "string" ? value : null;
198
443
  }
444
+ function parseResponsesPayload(value) {
445
+ const response = value && typeof value === "object" && !Array.isArray(value) ? value : {};
446
+ const output = Array.isArray(response.output) ? response.output : [];
447
+ const outputText = typeof response.output_text === "string" ? response.output_text : "";
448
+ let text = outputText;
449
+ let reasoning = "";
450
+ const toolCalls = [];
451
+ for (const value of output) {
452
+ if (!value || typeof value !== "object" || Array.isArray(value))
453
+ continue;
454
+ const item = value;
455
+ if (item.type === "message") {
456
+ const content = Array.isArray(item.content) ? item.content : [];
457
+ if (!text) {
458
+ text = content.flatMap((part) => {
459
+ if (!part || typeof part !== "object" || Array.isArray(part))
460
+ return [];
461
+ const record = part;
462
+ return record.type === "output_text" && typeof record.text === "string" ? [record.text] : [];
463
+ }).join("");
464
+ }
465
+ continue;
466
+ }
467
+ if (item.type === "reasoning") {
468
+ const parts = [
469
+ ...(Array.isArray(item.summary) ? item.summary : []),
470
+ ...(Array.isArray(item.content) ? item.content : [])
471
+ ];
472
+ reasoning += parts.flatMap((part) => {
473
+ if (!part || typeof part !== "object" || Array.isArray(part))
474
+ return [];
475
+ const record = part;
476
+ return (record.type === "summary_text" || record.type === "reasoning_text") && typeof record.text === "string"
477
+ ? [record.text]
478
+ : [];
479
+ }).join("");
480
+ continue;
481
+ }
482
+ if (item.type === "function_call") {
483
+ const callId = typeof item.call_id === "string" ? item.call_id : typeof item.id === "string" ? item.id : "";
484
+ const name = typeof item.name === "string" ? item.name : "";
485
+ if (!callId || !name)
486
+ continue;
487
+ toolCalls.push({
488
+ id: callId,
489
+ type: "function",
490
+ function: { name, arguments: serializedToolArguments(item.arguments) }
491
+ });
492
+ }
493
+ }
494
+ const status = typeof response.status === "string" ? response.status : "";
495
+ const incompleteReason = response.incomplete_details && typeof response.incomplete_details === "object" && !Array.isArray(response.incomplete_details)
496
+ ? response.incomplete_details.reason
497
+ : null;
498
+ const finishReason = toolCalls.length > 0
499
+ ? "tool_calls"
500
+ : status === "incomplete"
501
+ ? incompleteReason === "max_output_tokens" ? "length" : "incomplete"
502
+ : status === "completed" ? "stop" : null;
503
+ return {
504
+ ...(response.usage && typeof response.usage === "object" && !Array.isArray(response.usage)
505
+ ? { usage: response.usage }
506
+ : {}),
507
+ choices: [{
508
+ finish_reason: finishReason,
509
+ message: {
510
+ content: text || null,
511
+ reasoning_content: reasoning || null,
512
+ ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {})
513
+ }
514
+ }]
515
+ };
516
+ }
199
517
  export function parseCompletionPayload(protocol, value) {
518
+ if (usesOpenAiResponsesShape(protocol))
519
+ return parseResponsesPayload(value);
200
520
  if (usesOpenAiChatCompletionsShape(protocol)) {
201
521
  return value && typeof value === "object" && !Array.isArray(value) ? value : {};
202
522
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-protocol.js","sourceRoot":"","sources":["../src/ai-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-protocol.js","sourceRoot":"","sources":["../src/ai-protocol.ts"],"names":[],"mappings":"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"}
package/dist/ai-retry.js CHANGED
@@ -31,7 +31,7 @@ export function normalizeAiRetryPolicy(policy) {
31
31
  };
32
32
  }
33
33
  export function aiHttpRetryCount(status, policy) {
34
- if (status === 403)
34
+ if (status === 403 || status === 404)
35
35
  return 0;
36
36
  if (status === 429 || status === 502)
37
37
  return policy.backoffRetryCount;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-retry.js","sourceRoot":"","sources":["../src/ai-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-retry.js","sourceRoot":"","sources":["../src/ai-retry.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,19 @@
1
1
  export const AI_STREAM_IDLE_TIMEOUT_SECONDS_ENV = "SCRIVERSE_AI_STREAM_IDLE_TIMEOUT_SECONDS";
2
- export const DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS = 30;
3
- export const MIN_AI_STREAM_IDLE_TIMEOUT_SECONDS = 10;
4
- export const MAX_AI_STREAM_IDLE_TIMEOUT_SECONDS = 120;
2
+ export const DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS = 90;
3
+ export const MIN_AI_STREAM_IDLE_TIMEOUT_SECONDS = 30;
4
+ export const MAX_AI_STREAM_IDLE_TIMEOUT_SECONDS = 600;
5
5
  export const DEFAULT_AI_STREAM_IDLE_TIMEOUT_MS = DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS * 1_000;
6
+ export function normalizeAiStreamIdleTimeoutSeconds(value) {
7
+ if (!Number.isSafeInteger(value))
8
+ return DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS;
9
+ return Math.min(MAX_AI_STREAM_IDLE_TIMEOUT_SECONDS, Math.max(MIN_AI_STREAM_IDLE_TIMEOUT_SECONDS, value));
10
+ }
6
11
  export function resolveAiStreamIdleTimeoutSeconds(environment = process.env) {
7
12
  const raw = environment[AI_STREAM_IDLE_TIMEOUT_SECONDS_ENV]?.trim() ?? "";
8
13
  if (!/^\d+$/u.test(raw))
9
14
  return DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS;
10
15
  const configured = Number(raw);
11
- if (!Number.isSafeInteger(configured))
12
- return DEFAULT_AI_STREAM_IDLE_TIMEOUT_SECONDS;
13
- return Math.min(MAX_AI_STREAM_IDLE_TIMEOUT_SECONDS, Math.max(MIN_AI_STREAM_IDLE_TIMEOUT_SECONDS, configured));
16
+ return normalizeAiStreamIdleTimeoutSeconds(configured);
14
17
  }
15
18
  export function resolveAiStreamIdleTimeoutMs(environment = process.env) {
16
19
  return resolveAiStreamIdleTimeoutSeconds(environment) * 1_000;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-stream-timeout.js","sourceRoot":"","sources":["../src/ai-stream-timeout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kCAAkC,GAAG,0CAA0C,CAAC;AAC7F,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AACtD,MAAM,CAAC,MAAM,iCAAiC,GAAG,sCAAsC,GAAG,KAAK,CAAC;AAEhG,MAAM,UAAU,iCAAiC,CAAC,cAAiC,OAAO,CAAC,GAAG;IAC5F,MAAM,GAAG,GAAG,WAAW,CAAC,kCAAkC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,sCAAsC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,sCAAsC,CAAC;IACrF,OAAO,IAAI,CAAC,GAAG,CACb,kCAAkC,EAClC,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,cAAiC,OAAO,CAAC,GAAG;IACvF,OAAO,iCAAiC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"ai-stream-timeout.js","sourceRoot":"","sources":["../src/ai-stream-timeout.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kCAAkC,GAAG,0CAA0C,CAAC;AAC7F,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AACtD,MAAM,CAAC,MAAM,iCAAiC,GAAG,sCAAsC,GAAG,KAAK,CAAC;AAEhG,MAAM,UAAU,mCAAmC,CAAC,KAAa;IAC/D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,sCAAsC,CAAC;IAChF,OAAO,IAAI,CAAC,GAAG,CACb,kCAAkC,EAClC,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,cAAiC,OAAO,CAAC,GAAG;IAC5F,MAAM,GAAG,GAAG,WAAW,CAAC,kCAAkC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,sCAAsC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,mCAAmC,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,cAAiC,OAAO,CAAC,GAAG;IACvF,OAAO,iCAAiC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AAChE,CAAC"}