@steipete/summarize 0.3.0 → 0.5.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +80 -5
  2. package/README.md +122 -20
  3. package/dist/cli.cjs +8446 -4360
  4. package/dist/cli.cjs.map +4 -4
  5. package/dist/esm/cli-main.js +47 -2
  6. package/dist/esm/cli-main.js.map +1 -1
  7. package/dist/esm/config.js +368 -3
  8. package/dist/esm/config.js.map +1 -1
  9. package/dist/esm/content/link-preview/content/index.js +13 -0
  10. package/dist/esm/content/link-preview/content/index.js.map +1 -1
  11. package/dist/esm/content/link-preview/content/utils.js +3 -1
  12. package/dist/esm/content/link-preview/content/utils.js.map +1 -1
  13. package/dist/esm/content/link-preview/content/video.js +96 -0
  14. package/dist/esm/content/link-preview/content/video.js.map +1 -0
  15. package/dist/esm/content/link-preview/transcript/providers/youtube/captions.js +21 -21
  16. package/dist/esm/content/link-preview/transcript/providers/youtube/captions.js.map +1 -1
  17. package/dist/esm/costs.js.map +1 -1
  18. package/dist/esm/flags.js +41 -1
  19. package/dist/esm/flags.js.map +1 -1
  20. package/dist/esm/generate-free.js +616 -0
  21. package/dist/esm/generate-free.js.map +1 -0
  22. package/dist/esm/llm/cli.js +290 -0
  23. package/dist/esm/llm/cli.js.map +1 -0
  24. package/dist/esm/llm/generate-text.js +159 -105
  25. package/dist/esm/llm/generate-text.js.map +1 -1
  26. package/dist/esm/llm/html-to-markdown.js +4 -2
  27. package/dist/esm/llm/html-to-markdown.js.map +1 -1
  28. package/dist/esm/markitdown.js +54 -0
  29. package/dist/esm/markitdown.js.map +1 -0
  30. package/dist/esm/model-auto.js +353 -0
  31. package/dist/esm/model-auto.js.map +1 -0
  32. package/dist/esm/model-spec.js +82 -0
  33. package/dist/esm/model-spec.js.map +1 -0
  34. package/dist/esm/prompts/cli.js +18 -0
  35. package/dist/esm/prompts/cli.js.map +1 -0
  36. package/dist/esm/prompts/file.js +21 -2
  37. package/dist/esm/prompts/file.js.map +1 -1
  38. package/dist/esm/prompts/index.js +2 -1
  39. package/dist/esm/prompts/index.js.map +1 -1
  40. package/dist/esm/prompts/link-summary.js +3 -8
  41. package/dist/esm/prompts/link-summary.js.map +1 -1
  42. package/dist/esm/refresh-free.js +667 -0
  43. package/dist/esm/refresh-free.js.map +1 -0
  44. package/dist/esm/run.js +1612 -533
  45. package/dist/esm/run.js.map +1 -1
  46. package/dist/esm/version.js +1 -1
  47. package/dist/types/config.d.ts +58 -5
  48. package/dist/types/content/link-preview/content/types.d.ts +10 -0
  49. package/dist/types/content/link-preview/content/utils.d.ts +1 -1
  50. package/dist/types/content/link-preview/content/video.d.ts +5 -0
  51. package/dist/types/costs.d.ts +2 -1
  52. package/dist/types/flags.d.ts +7 -0
  53. package/dist/types/generate-free.d.ts +17 -0
  54. package/dist/types/llm/cli.d.ts +24 -0
  55. package/dist/types/llm/generate-text.d.ts +13 -4
  56. package/dist/types/llm/html-to-markdown.d.ts +9 -3
  57. package/dist/types/markitdown.d.ts +10 -0
  58. package/dist/types/model-auto.d.ts +23 -0
  59. package/dist/types/model-spec.d.ts +33 -0
  60. package/dist/types/prompts/cli.d.ts +8 -0
  61. package/dist/types/prompts/file.d.ts +7 -0
  62. package/dist/types/prompts/index.d.ts +2 -1
  63. package/dist/types/refresh-free.d.ts +19 -0
  64. package/dist/types/run.d.ts +3 -1
  65. package/dist/types/version.d.ts +1 -1
  66. package/docs/README.md +4 -1
  67. package/docs/cli.md +95 -0
  68. package/docs/config.md +123 -1
  69. package/docs/extract-only.md +10 -7
  70. package/docs/firecrawl.md +2 -2
  71. package/docs/llm.md +24 -4
  72. package/docs/manual-tests.md +40 -0
  73. package/docs/model-auto.md +92 -0
  74. package/docs/site/assets/site.js +20 -17
  75. package/docs/site/docs/config.html +3 -3
  76. package/docs/site/docs/extract-only.html +7 -5
  77. package/docs/site/docs/firecrawl.html +6 -6
  78. package/docs/site/docs/index.html +2 -2
  79. package/docs/site/docs/llm.html +2 -2
  80. package/docs/site/docs/openai.html +2 -2
  81. package/docs/site/docs/website.html +7 -4
  82. package/docs/site/docs/youtube.html +2 -2
  83. package/docs/site/index.html +1 -1
  84. package/docs/smoketest.md +58 -0
  85. package/docs/website.md +13 -8
  86. package/docs/youtube.md +1 -1
  87. package/package.json +8 -4
  88. package/dist/esm/content/link-preview/transcript/providers/twitter.js +0 -12
  89. package/dist/esm/content/link-preview/transcript/providers/twitter.js.map +0 -1
  90. package/dist/esm/content/link-preview/transcript/providers/youtube/ytdlp.js +0 -114
  91. package/dist/esm/content/link-preview/transcript/providers/youtube/ytdlp.js.map +0 -1
  92. package/dist/esm/summarizeHome.js +0 -20
  93. package/dist/esm/summarizeHome.js.map +0 -1
  94. package/dist/esm/tty/live-markdown.js +0 -52
  95. package/dist/esm/tty/live-markdown.js.map +0 -1
  96. package/dist/types/content/link-preview/transcript/providers/twitter.d.ts +0 -3
  97. package/dist/types/content/link-preview/transcript/providers/youtube/ytdlp.d.ts +0 -3
  98. package/dist/types/summarizeHome.d.ts +0 -6
  99. package/dist/types/tty/live-markdown.d.ts +0 -10
@@ -1,4 +1,9 @@
1
1
  import { parseGatewayStyleModelId } from './model-id.js';
2
+ function assertNonEmptyText(text, modelId) {
3
+ if (text.trim().length > 0)
4
+ return;
5
+ throw new Error(`LLM returned an empty summary (model ${modelId}).`);
6
+ }
2
7
  function parseAnthropicErrorPayload(responseBody) {
3
8
  try {
4
9
  const parsed = JSON.parse(responseBody);
@@ -61,12 +66,15 @@ function normalizeTokenUsage(raw) {
61
66
  }
62
67
  return { promptTokens, completionTokens, totalTokens };
63
68
  }
64
- function resolveOpenAiClientConfig({ apiKeys, openrouter, fetchImpl, }) {
69
+ function resolveOpenAiClientConfig({ apiKeys, fetchImpl, forceOpenRouter, }) {
65
70
  const baseUrlRaw = typeof process !== 'undefined' ? process.env.OPENAI_BASE_URL : undefined;
66
71
  const baseUrl = typeof baseUrlRaw === 'string' && baseUrlRaw.trim().length > 0 ? baseUrlRaw.trim() : null;
67
72
  const isOpenRouterViaBaseUrl = baseUrl ? /openrouter\.ai/i.test(baseUrl) : false;
68
73
  const hasOpenRouterKey = apiKeys.openrouterApiKey != null;
69
- const isOpenRouter = isOpenRouterViaBaseUrl || (hasOpenRouterKey && !baseUrl);
74
+ const hasOpenAiKey = apiKeys.openaiApiKey != null;
75
+ const isOpenRouter = Boolean(forceOpenRouter) ||
76
+ isOpenRouterViaBaseUrl ||
77
+ (hasOpenRouterKey && !baseUrl && !hasOpenAiKey);
70
78
  const apiKey = isOpenRouter
71
79
  ? (apiKeys.openrouterApiKey ?? apiKeys.openaiApiKey)
72
80
  : apiKeys.openaiApiKey;
@@ -75,17 +83,17 @@ function resolveOpenAiClientConfig({ apiKeys, openrouter, fetchImpl, }) {
75
83
  ? 'Missing OPENROUTER_API_KEY (or OPENAI_API_KEY) for OpenRouter'
76
84
  : 'Missing OPENAI_API_KEY for openai/... model');
77
85
  }
78
- const openrouterProviders = openrouter?.providers?.length ? openrouter.providers : null;
79
- const wrappedFetch = isOpenRouter && openrouterProviders
86
+ const wrappedFetch = isOpenRouter
80
87
  ? (url, init) => {
81
88
  const headers = new Headers(init?.headers);
82
89
  headers.set('HTTP-Referer', 'https://github.com/steipete/summarize');
83
90
  headers.set('X-Title', 'summarize');
84
- headers.set('X-OpenRouter-Provider-Order', openrouterProviders.join(','));
85
91
  return fetchImpl(url, { ...init, headers });
86
92
  }
87
93
  : fetchImpl;
88
- const baseURL = baseUrl ?? (isOpenRouter ? 'https://openrouter.ai/api/v1' : undefined);
94
+ const baseURL = forceOpenRouter
95
+ ? 'https://openrouter.ai/api/v1'
96
+ : (baseUrl ?? (isOpenRouter ? 'https://openrouter.ai/api/v1' : undefined));
89
97
  return {
90
98
  apiKey,
91
99
  baseURL: baseURL ?? undefined,
@@ -94,68 +102,106 @@ function resolveOpenAiClientConfig({ apiKeys, openrouter, fetchImpl, }) {
94
102
  isOpenRouter,
95
103
  };
96
104
  }
97
- export async function generateTextWithModelId({ modelId, apiKeys, system, prompt, temperature, maxOutputTokens, timeoutMs, fetchImpl, openrouter, }) {
105
+ export async function generateTextWithModelId({ modelId, apiKeys, system, prompt, temperature, maxOutputTokens, timeoutMs, fetchImpl, forceOpenRouter, retries = 0, onRetry, }) {
98
106
  const parsed = parseGatewayStyleModelId(modelId);
99
- const controller = new AbortController();
100
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
101
- try {
102
- const { generateText } = await import('ai');
103
- if (parsed.provider === 'xai') {
104
- const apiKey = apiKeys.xaiApiKey;
105
- if (!apiKey)
106
- throw new Error('Missing XAI_API_KEY for xai/... model');
107
- const { createXai } = await import('@ai-sdk/xai');
108
- const xai = createXai({ apiKey, fetch: fetchImpl });
109
- const result = await generateText({
110
- model: xai(parsed.model),
111
- system,
112
- ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
113
- ...(typeof temperature === 'number' ? { temperature } : {}),
114
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
115
- abortSignal: controller.signal,
107
+ const maxRetries = Math.max(0, retries);
108
+ let attempt = 0;
109
+ while (attempt <= maxRetries) {
110
+ const controller = new AbortController();
111
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
112
+ try {
113
+ const { generateText } = await import('ai');
114
+ const shouldSendMaxOutputTokens = () => typeof maxOutputTokens === 'number';
115
+ if (parsed.provider === 'xai') {
116
+ const apiKey = apiKeys.xaiApiKey;
117
+ if (!apiKey)
118
+ throw new Error('Missing XAI_API_KEY for xai/... model');
119
+ const { createXai } = await import('@ai-sdk/xai');
120
+ const xai = createXai({ apiKey, fetch: fetchImpl });
121
+ const result = await generateText({
122
+ model: xai(parsed.model),
123
+ system,
124
+ ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
125
+ ...(typeof temperature === 'number' ? { temperature } : {}),
126
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
127
+ abortSignal: controller.signal,
128
+ });
129
+ assertNonEmptyText(result.text, parsed.canonical);
130
+ return {
131
+ text: result.text,
132
+ canonicalModelId: parsed.canonical,
133
+ provider: parsed.provider,
134
+ usage: normalizeTokenUsage(result.usage),
135
+ };
136
+ }
137
+ if (parsed.provider === 'google') {
138
+ const apiKey = apiKeys.googleApiKey;
139
+ if (!apiKey)
140
+ throw new Error('Missing GEMINI_API_KEY (or GOOGLE_GENERATIVE_AI_API_KEY / GOOGLE_API_KEY) for google/... model');
141
+ const { createGoogleGenerativeAI } = await import('@ai-sdk/google');
142
+ const google = createGoogleGenerativeAI({ apiKey, fetch: fetchImpl });
143
+ const result = await generateText({
144
+ model: google(parsed.model),
145
+ system,
146
+ ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
147
+ ...(typeof temperature === 'number' ? { temperature } : {}),
148
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
149
+ abortSignal: controller.signal,
150
+ });
151
+ assertNonEmptyText(result.text, parsed.canonical);
152
+ return {
153
+ text: result.text,
154
+ canonicalModelId: parsed.canonical,
155
+ provider: parsed.provider,
156
+ usage: normalizeTokenUsage(result.usage),
157
+ };
158
+ }
159
+ if (parsed.provider === 'anthropic') {
160
+ const apiKey = apiKeys.anthropicApiKey;
161
+ if (!apiKey)
162
+ throw new Error('Missing ANTHROPIC_API_KEY for anthropic/... model');
163
+ const { createAnthropic } = await import('@ai-sdk/anthropic');
164
+ const anthropic = createAnthropic({ apiKey, fetch: fetchImpl });
165
+ const result = await generateText({
166
+ model: anthropic(parsed.model),
167
+ system,
168
+ ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
169
+ ...(typeof temperature === 'number' ? { temperature } : {}),
170
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
171
+ abortSignal: controller.signal,
172
+ });
173
+ assertNonEmptyText(result.text, parsed.canonical);
174
+ return {
175
+ text: result.text,
176
+ canonicalModelId: parsed.canonical,
177
+ provider: parsed.provider,
178
+ usage: normalizeTokenUsage(result.usage),
179
+ };
180
+ }
181
+ const { createOpenAI } = await import('@ai-sdk/openai');
182
+ const openaiConfig = resolveOpenAiClientConfig({
183
+ apiKeys,
184
+ fetchImpl,
185
+ forceOpenRouter,
116
186
  });
117
- return {
118
- text: result.text,
119
- canonicalModelId: parsed.canonical,
120
- provider: parsed.provider,
121
- usage: normalizeTokenUsage(result.usage),
122
- };
123
- }
124
- if (parsed.provider === 'google') {
125
- const apiKey = apiKeys.googleApiKey;
126
- if (!apiKey)
127
- throw new Error('Missing GEMINI_API_KEY (or GOOGLE_GENERATIVE_AI_API_KEY / GOOGLE_API_KEY) for google/... model');
128
- const { createGoogleGenerativeAI } = await import('@ai-sdk/google');
129
- const google = createGoogleGenerativeAI({ apiKey, fetch: fetchImpl });
130
- const result = await generateText({
131
- model: google(parsed.model),
132
- system,
133
- ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
134
- ...(typeof temperature === 'number' ? { temperature } : {}),
135
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
136
- abortSignal: controller.signal,
187
+ const openai = createOpenAI({
188
+ apiKey: openaiConfig.apiKey,
189
+ ...(openaiConfig.baseURL ? { baseURL: openaiConfig.baseURL } : {}),
190
+ fetch: openaiConfig.fetch,
137
191
  });
138
- return {
139
- text: result.text,
140
- canonicalModelId: parsed.canonical,
141
- provider: parsed.provider,
142
- usage: normalizeTokenUsage(result.usage),
143
- };
144
- }
145
- if (parsed.provider === 'anthropic') {
146
- const apiKey = apiKeys.anthropicApiKey;
147
- if (!apiKey)
148
- throw new Error('Missing ANTHROPIC_API_KEY for anthropic/... model');
149
- const { createAnthropic } = await import('@ai-sdk/anthropic');
150
- const anthropic = createAnthropic({ apiKey, fetch: fetchImpl });
192
+ // OpenRouter requires chat completions endpoint
193
+ const useChatCompletions = openaiConfig.useChatCompletions;
194
+ const responsesModelId = parsed.model;
195
+ const chatModelId = parsed.model;
151
196
  const result = await generateText({
152
- model: anthropic(parsed.model),
197
+ model: useChatCompletions ? openai.chat(chatModelId) : openai(responsesModelId),
153
198
  system,
154
199
  ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
155
200
  ...(typeof temperature === 'number' ? { temperature } : {}),
156
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
201
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
157
202
  abortSignal: controller.signal,
158
203
  });
204
+ assertNonEmptyText(result.text, parsed.canonical);
159
205
  return {
160
206
  text: result.text,
161
207
  canonicalModelId: parsed.canonical,
@@ -163,48 +209,51 @@ export async function generateTextWithModelId({ modelId, apiKeys, system, prompt
163
209
  usage: normalizeTokenUsage(result.usage),
164
210
  };
165
211
  }
166
- const { createOpenAI } = await import('@ai-sdk/openai');
167
- const openaiConfig = resolveOpenAiClientConfig({ apiKeys, openrouter, fetchImpl });
168
- const openai = createOpenAI({
169
- apiKey: openaiConfig.apiKey,
170
- ...(openaiConfig.baseURL ? { baseURL: openaiConfig.baseURL } : {}),
171
- fetch: openaiConfig.fetch,
172
- });
173
- // OpenRouter requires chat completions endpoint
174
- const useChatCompletions = openaiConfig.useChatCompletions;
175
- const responsesModelId = parsed.model;
176
- const chatModelId = parsed.model;
177
- const result = await generateText({
178
- model: useChatCompletions ? openai.chat(chatModelId) : openai(responsesModelId),
179
- system,
180
- ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
181
- ...(typeof temperature === 'number' ? { temperature } : {}),
182
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
183
- abortSignal: controller.signal,
184
- });
185
- return {
186
- text: result.text,
187
- canonicalModelId: parsed.canonical,
188
- provider: parsed.provider,
189
- usage: normalizeTokenUsage(result.usage),
190
- };
191
- }
192
- catch (error) {
193
- if (parsed.provider === 'anthropic') {
194
- const normalized = normalizeAnthropicModelAccessError(error, parsed.model);
195
- if (normalized)
196
- throw normalized;
212
+ catch (error) {
213
+ const normalizedError = error instanceof DOMException && error.name === 'AbortError'
214
+ ? new Error(`LLM request timed out after ${timeoutMs}ms (model ${parsed.canonical}).`)
215
+ : error;
216
+ if (parsed.provider === 'anthropic') {
217
+ const normalized = normalizeAnthropicModelAccessError(normalizedError, parsed.model);
218
+ if (normalized)
219
+ throw normalized;
220
+ }
221
+ if (isRetryableTimeoutError(normalizedError) && attempt < maxRetries) {
222
+ const delayMs = computeRetryDelayMs(attempt);
223
+ onRetry?.({ attempt: attempt + 1, maxRetries, delayMs, error: normalizedError });
224
+ await sleep(delayMs);
225
+ attempt += 1;
226
+ continue;
227
+ }
228
+ throw normalizedError;
197
229
  }
198
- if (error instanceof DOMException && error.name === 'AbortError') {
199
- throw new Error('LLM request timed out');
230
+ finally {
231
+ clearTimeout(timeout);
200
232
  }
201
- throw error;
202
- }
203
- finally {
204
- clearTimeout(timeout);
205
233
  }
234
+ throw new Error(`LLM request failed after ${maxRetries + 1} attempts.`);
235
+ }
236
+ function isRetryableTimeoutError(error) {
237
+ if (!error)
238
+ return false;
239
+ const message = typeof error === 'string'
240
+ ? error
241
+ : error instanceof Error
242
+ ? error.message
243
+ : typeof error.message === 'string'
244
+ ? String(error.message)
245
+ : '';
246
+ return /timed out/i.test(message) || /empty summary/i.test(message);
247
+ }
248
+ function computeRetryDelayMs(attempt) {
249
+ const base = 500;
250
+ const jitter = Math.floor(Math.random() * 200);
251
+ return Math.min(2000, base * (attempt + 1) + jitter);
206
252
  }
207
- export async function streamTextWithModelId({ modelId, apiKeys, system, prompt, temperature, maxOutputTokens, timeoutMs, fetchImpl, openrouter, }) {
253
+ function sleep(ms) {
254
+ return new Promise((resolve) => setTimeout(resolve, ms));
255
+ }
256
+ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt, temperature, maxOutputTokens, timeoutMs, fetchImpl, forceOpenRouter, }) {
208
257
  const parsed = parseGatewayStyleModelId(modelId);
209
258
  const controller = new AbortController();
210
259
  let timeoutId = null;
@@ -268,9 +317,9 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
268
317
  stopTimeout();
269
318
  if (typeof iterator.return === 'function') {
270
319
  const cleanup = iterator.return();
271
- if (cleanup && typeof cleanup.catch === 'function') {
272
- ;
273
- cleanup.catch(() => { });
320
+ const cleanupPromise = typeof cleanup === 'undefined' ? undefined : cleanup;
321
+ if (typeof cleanupPromise?.catch === 'function') {
322
+ void cleanupPromise.catch(() => { });
274
323
  }
275
324
  }
276
325
  }
@@ -285,6 +334,7 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
285
334
  }
286
335
  lastError = error;
287
336
  };
337
+ const shouldSendMaxOutputTokens = () => typeof maxOutputTokens === 'number';
288
338
  if (parsed.provider === 'xai') {
289
339
  const apiKey = apiKeys.xaiApiKey;
290
340
  if (!apiKey)
@@ -296,7 +346,7 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
296
346
  system,
297
347
  ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
298
348
  ...(typeof temperature === 'number' ? { temperature } : {}),
299
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
349
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
300
350
  abortSignal: controller.signal,
301
351
  onError,
302
352
  });
@@ -319,7 +369,7 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
319
369
  system,
320
370
  ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
321
371
  ...(typeof temperature === 'number' ? { temperature } : {}),
322
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
372
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
323
373
  abortSignal: controller.signal,
324
374
  onError,
325
375
  });
@@ -342,7 +392,7 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
342
392
  system,
343
393
  ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
344
394
  ...(typeof temperature === 'number' ? { temperature } : {}),
345
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
395
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
346
396
  abortSignal: controller.signal,
347
397
  onError,
348
398
  });
@@ -355,7 +405,11 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
355
405
  };
356
406
  }
357
407
  const { createOpenAI } = await import('@ai-sdk/openai');
358
- const openaiConfig = resolveOpenAiClientConfig({ apiKeys, openrouter, fetchImpl });
408
+ const openaiConfig = resolveOpenAiClientConfig({
409
+ apiKeys,
410
+ fetchImpl,
411
+ forceOpenRouter,
412
+ });
359
413
  const openai = createOpenAI({
360
414
  apiKey: openaiConfig.apiKey,
361
415
  ...(openaiConfig.baseURL ? { baseURL: openaiConfig.baseURL } : {}),
@@ -370,7 +424,7 @@ export async function streamTextWithModelId({ modelId, apiKeys, system, prompt,
370
424
  system,
371
425
  ...(typeof prompt === 'string' ? { prompt } : { messages: prompt }),
372
426
  ...(typeof temperature === 'number' ? { temperature } : {}),
373
- ...(typeof maxOutputTokens === 'number' ? { maxOutputTokens } : {}),
427
+ ...(shouldSendMaxOutputTokens() ? { maxOutputTokens } : {}),
374
428
  abortSignal: controller.signal,
375
429
  onError,
376
430
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generate-text.js","sourceRoot":"","sources":["../../../src/llm/generate-text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-text.js","sourceRoot":"","sources":["../../../src/llm/generate-text.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ ${html}
20
20
  `;
21
21
  return { system, prompt };
22
22
  }
23
- export function createHtmlToMarkdownConverter({ modelId, xaiApiKey, googleApiKey, openaiApiKey, anthropicApiKey, openrouterApiKey, openrouter, fetchImpl, onUsage, }) {
23
+ export function createHtmlToMarkdownConverter({ modelId, forceOpenRouter, xaiApiKey, googleApiKey, openaiApiKey, anthropicApiKey, openrouterApiKey, fetchImpl, retries = 0, onRetry, onUsage, }) {
24
24
  return async ({ url, html, title, siteName, timeoutMs }) => {
25
25
  const trimmedHtml = html.length > MAX_HTML_INPUT_CHARACTERS ? html.slice(0, MAX_HTML_INPUT_CHARACTERS) : html;
26
26
  const { system, prompt } = buildHtmlToMarkdownPrompt({
@@ -32,11 +32,13 @@ export function createHtmlToMarkdownConverter({ modelId, xaiApiKey, googleApiKey
32
32
  const result = await generateTextWithModelId({
33
33
  modelId,
34
34
  apiKeys: { xaiApiKey, googleApiKey, openaiApiKey, anthropicApiKey, openrouterApiKey },
35
- openrouter,
35
+ forceOpenRouter,
36
36
  system,
37
37
  prompt,
38
38
  timeoutMs,
39
39
  fetchImpl,
40
+ retries,
41
+ onRetry,
40
42
  });
41
43
  onUsage?.({ model: result.canonicalModelId, provider: result.provider, usage: result.usage });
42
44
  return result.text;
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-markdown.js","sourceRoot":"","sources":["../../../src/llm/html-to-markdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,oBAAoB,CAAA;AAEpF,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAEzC,SAAS,yBAAyB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,QAAQ,EACR,IAAI,GAML;IACC,MAAM,MAAM,GAAG;;;;;;;yBAOQ,CAAA;IAEvB,MAAM,MAAM,GAAG,QAAQ,GAAG;QACpB,QAAQ,IAAI,SAAS;SACpB,KAAK,IAAI,SAAS;;;;EAIzB,IAAI;;CAEL,CAAA;IAEC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,EAC5C,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,OAAO,GAeR;IACC,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAAC;YACnD,GAAG;YACH,KAAK;YACL,QAAQ;YACR,IAAI,EAAE,WAAW;SAClB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC3C,OAAO;YACP,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE;YACrF,UAAU;YACV,MAAM;YACN,MAAM;YACN,SAAS;YACT,SAAS;SACV,CAAC,CAAA;QACF,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7F,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"html-to-markdown.js","sourceRoot":"","sources":["../../../src/llm/html-to-markdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAEzC,SAAS,yBAAyB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,QAAQ,EACR,IAAI,GAML;IACC,MAAM,MAAM,GAAG;;;;;;;yBAOQ,CAAA;IAEvB,MAAM,MAAM,GAAG,QAAQ,GAAG;QACpB,QAAQ,IAAI,SAAS;SACpB,KAAK,IAAI,SAAS;;;;EAIzB,IAAI;;CAEL,CAAA;IAEC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,EAC5C,OAAO,EACP,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,OAAO,GAAG,CAAC,EACX,OAAO,EACP,OAAO,GAsBR;IACC,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAAC;YACnD,GAAG;YACH,KAAK;YACL,QAAQ;YACR,IAAI,EAAE,WAAW;SAClB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC3C,OAAO;YACP,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE;YACrF,eAAe;YACf,MAAM;YACN,MAAM;YACN,SAAS;YACT,SAAS;YACT,OAAO;YACP,OAAO;SACR,CAAC,CAAA;QACF,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7F,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,54 @@
1
+ import fs from 'node:fs/promises';
2
+ import { tmpdir } from 'node:os';
3
+ import path from 'node:path';
4
+ function guessExtension({ filenameHint, mediaType, }) {
5
+ const ext = filenameHint ? path.extname(filenameHint).toLowerCase() : '';
6
+ if (ext)
7
+ return ext;
8
+ if (mediaType === 'text/html' || mediaType === 'application/xhtml+xml')
9
+ return '.html';
10
+ if (mediaType === 'application/pdf')
11
+ return '.pdf';
12
+ return '.bin';
13
+ }
14
+ async function execFileText(execFileImpl, cmd, args, options) {
15
+ return await new Promise((resolve, reject) => {
16
+ execFileImpl(cmd, args, options, (error, stdout, stderr) => {
17
+ if (error) {
18
+ const stderrText = typeof stderr === 'string' ? stderr : stderr.toString('utf8');
19
+ const message = stderrText.trim() ? `${error.message}: ${stderrText.trim()}` : error.message;
20
+ reject(new Error(message, { cause: error }));
21
+ return;
22
+ }
23
+ const stdoutText = typeof stdout === 'string' ? stdout : stdout.toString('utf8');
24
+ const stderrText = typeof stderr === 'string' ? stderr : stderr.toString('utf8');
25
+ resolve({ stdout: stdoutText, stderr: stderrText });
26
+ });
27
+ });
28
+ }
29
+ export async function convertToMarkdownWithMarkitdown({ bytes, filenameHint, mediaTypeHint, uvxCommand, timeoutMs, env, execFileImpl, }) {
30
+ const dir = await fs.mkdtemp(path.join(tmpdir(), 'summarize-markitdown-'));
31
+ const ext = guessExtension({ filenameHint, mediaType: mediaTypeHint });
32
+ const base = (filenameHint ? path.basename(filenameHint, path.extname(filenameHint)) : 'input')
33
+ .replaceAll(/[^\w.-]+/g, '-')
34
+ .slice(0, 64);
35
+ const filePath = path.join(dir, `${base}${ext}`);
36
+ try {
37
+ await fs.writeFile(filePath, bytes);
38
+ const from = 'markitdown[all]';
39
+ const { stdout } = await execFileText(execFileImpl, uvxCommand && uvxCommand.trim().length > 0 ? uvxCommand.trim() : 'uvx', ['--from', from, 'markitdown', filePath], {
40
+ timeout: timeoutMs,
41
+ env: { ...process.env, ...env },
42
+ maxBuffer: 50 * 1024 * 1024,
43
+ });
44
+ const markdown = stdout.trim();
45
+ if (!markdown) {
46
+ throw new Error('markitdown returned empty output');
47
+ }
48
+ return markdown;
49
+ }
50
+ finally {
51
+ await fs.rm(dir, { recursive: true, force: true });
52
+ }
53
+ }
54
+ //# sourceMappingURL=markitdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markitdown.js","sourceRoot":"","sources":["../../src/markitdown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,SAAS,cAAc,CAAC,EACtB,YAAY,EACZ,SAAS,GAIV;IACC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACxE,IAAI,GAAG;QAAE,OAAO,GAAG,CAAA;IACnB,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,uBAAuB;QAAE,OAAO,OAAO,CAAA;IACtF,IAAI,SAAS,KAAK,iBAAiB;QAAE,OAAO,MAAM,CAAA;IAClD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,YAAwB,EACxB,GAAW,EACX,IAAc,EACd,OAAwB;IAExB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAChF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;gBAC5F,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC5C,OAAM;YACR,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAChF,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAChF,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,KAAK,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,GAAG,EACH,YAAY,GASb;IACC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SAC5F,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC;SAC5B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAA;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,iBAAiB,CAAA;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CACnC,YAAY,EACZ,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EACtE,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EACxC;YACE,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;YAC/B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CACF,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC"}