@steipete/summarize 0.8.2 → 0.10.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.
- package/CHANGELOG.md +114 -1
- package/LICENSE +1 -1
- package/README.md +309 -182
- package/dist/cli.js +1 -1
- package/dist/esm/cache.js +72 -4
- package/dist/esm/cache.js.map +1 -1
- package/dist/esm/config.js +197 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/content/asset.js +75 -2
- package/dist/esm/content/asset.js.map +1 -1
- package/dist/esm/daemon/agent.js +547 -0
- package/dist/esm/daemon/agent.js.map +1 -0
- package/dist/esm/daemon/chat.js +97 -0
- package/dist/esm/daemon/chat.js.map +1 -0
- package/dist/esm/daemon/cli.js +105 -10
- package/dist/esm/daemon/cli.js.map +1 -1
- package/dist/esm/daemon/env-snapshot.js +3 -0
- package/dist/esm/daemon/env-snapshot.js.map +1 -1
- package/dist/esm/daemon/flow-context.js +53 -28
- package/dist/esm/daemon/flow-context.js.map +1 -1
- package/dist/esm/daemon/launchd.js +27 -0
- package/dist/esm/daemon/launchd.js.map +1 -1
- package/dist/esm/daemon/process-registry.js +206 -0
- package/dist/esm/daemon/process-registry.js.map +1 -0
- package/dist/esm/daemon/schtasks.js +64 -0
- package/dist/esm/daemon/schtasks.js.map +1 -1
- package/dist/esm/daemon/server.js +1034 -52
- package/dist/esm/daemon/server.js.map +1 -1
- package/dist/esm/daemon/summarize.js +66 -18
- package/dist/esm/daemon/summarize.js.map +1 -1
- package/dist/esm/daemon/systemd.js +61 -0
- package/dist/esm/daemon/systemd.js.map +1 -1
- package/dist/esm/flags.js +24 -0
- package/dist/esm/flags.js.map +1 -1
- package/dist/esm/llm/attachments.js +2 -0
- package/dist/esm/llm/attachments.js.map +1 -0
- package/dist/esm/llm/errors.js +6 -0
- package/dist/esm/llm/errors.js.map +1 -0
- package/dist/esm/llm/generate-text.js +206 -356
- package/dist/esm/llm/generate-text.js.map +1 -1
- package/dist/esm/llm/html-to-markdown.js +1 -2
- package/dist/esm/llm/html-to-markdown.js.map +1 -1
- package/dist/esm/llm/prompt.js.map +1 -1
- package/dist/esm/llm/providers/anthropic.js +126 -0
- package/dist/esm/llm/providers/anthropic.js.map +1 -0
- package/dist/esm/llm/providers/google.js +78 -0
- package/dist/esm/llm/providers/google.js.map +1 -0
- package/dist/esm/llm/providers/models.js +111 -0
- package/dist/esm/llm/providers/models.js.map +1 -0
- package/dist/esm/llm/providers/openai.js +150 -0
- package/dist/esm/llm/providers/openai.js.map +1 -0
- package/dist/esm/llm/providers/shared.js +48 -0
- package/dist/esm/llm/providers/shared.js.map +1 -0
- package/dist/esm/llm/providers/types.js +2 -0
- package/dist/esm/llm/providers/types.js.map +1 -0
- package/dist/esm/llm/transcript-to-markdown.js +1 -2
- package/dist/esm/llm/transcript-to-markdown.js.map +1 -1
- package/dist/esm/llm/types.js +2 -0
- package/dist/esm/llm/types.js.map +1 -0
- package/dist/esm/llm/usage.js +69 -0
- package/dist/esm/llm/usage.js.map +1 -0
- package/dist/esm/logging/daemon.js +124 -0
- package/dist/esm/logging/daemon.js.map +1 -0
- package/dist/esm/logging/ring-file.js +66 -0
- package/dist/esm/logging/ring-file.js.map +1 -0
- package/dist/esm/media-cache.js +251 -0
- package/dist/esm/media-cache.js.map +1 -0
- package/dist/esm/model-auto.js +103 -5
- package/dist/esm/model-auto.js.map +1 -1
- package/dist/esm/processes.js +2 -0
- package/dist/esm/processes.js.map +1 -0
- package/dist/esm/refresh-free.js +3 -3
- package/dist/esm/refresh-free.js.map +1 -1
- package/dist/esm/run/attachments.js +8 -4
- package/dist/esm/run/attachments.js.map +1 -1
- package/dist/esm/run/bird.js +118 -5
- package/dist/esm/run/bird.js.map +1 -1
- package/dist/esm/run/cache-state.js +3 -2
- package/dist/esm/run/cache-state.js.map +1 -1
- package/dist/esm/run/cli-preflight.js +19 -1
- package/dist/esm/run/cli-preflight.js.map +1 -1
- package/dist/esm/run/constants.js +0 -7
- package/dist/esm/run/constants.js.map +1 -1
- package/dist/esm/run/finish-line.js +58 -11
- package/dist/esm/run/finish-line.js.map +1 -1
- package/dist/esm/run/flows/asset/extract.js +70 -0
- package/dist/esm/run/flows/asset/extract.js.map +1 -0
- package/dist/esm/run/flows/asset/input.js +209 -25
- package/dist/esm/run/flows/asset/input.js.map +1 -1
- package/dist/esm/run/flows/asset/media-policy.js +3 -0
- package/dist/esm/run/flows/asset/media-policy.js.map +1 -0
- package/dist/esm/run/flows/asset/media.js +224 -0
- package/dist/esm/run/flows/asset/media.js.map +1 -0
- package/dist/esm/run/flows/asset/output.js +98 -0
- package/dist/esm/run/flows/asset/output.js.map +1 -0
- package/dist/esm/run/flows/asset/preprocess.js +92 -16
- package/dist/esm/run/flows/asset/preprocess.js.map +1 -1
- package/dist/esm/run/flows/asset/summary.js +165 -11
- package/dist/esm/run/flows/asset/summary.js.map +1 -1
- package/dist/esm/run/flows/url/extract.js +6 -6
- package/dist/esm/run/flows/url/extract.js.map +1 -1
- package/dist/esm/run/flows/url/flow.js +338 -36
- package/dist/esm/run/flows/url/flow.js.map +1 -1
- package/dist/esm/run/flows/url/markdown.js +6 -1
- package/dist/esm/run/flows/url/markdown.js.map +1 -1
- package/dist/esm/run/flows/url/slides-output.js +485 -0
- package/dist/esm/run/flows/url/slides-output.js.map +1 -0
- package/dist/esm/run/flows/url/slides-text.js +628 -0
- package/dist/esm/run/flows/url/slides-text.js.map +1 -0
- package/dist/esm/run/flows/url/summary.js +358 -83
- package/dist/esm/run/flows/url/summary.js.map +1 -1
- package/dist/esm/run/help.js +94 -5
- package/dist/esm/run/help.js.map +1 -1
- package/dist/esm/run/logging.js +12 -4
- package/dist/esm/run/logging.js.map +1 -1
- package/dist/esm/run/media-cache-state.js +33 -0
- package/dist/esm/run/media-cache-state.js.map +1 -0
- package/dist/esm/run/progress.js +19 -1
- package/dist/esm/run/progress.js.map +1 -1
- package/dist/esm/run/run-context.js +19 -0
- package/dist/esm/run/run-context.js.map +1 -0
- package/dist/esm/run/run-output.js +1 -1
- package/dist/esm/run/run-output.js.map +1 -1
- package/dist/esm/run/run-settings.js +182 -0
- package/dist/esm/run/run-settings.js.map +1 -0
- package/dist/esm/run/runner.js +225 -32
- package/dist/esm/run/runner.js.map +1 -1
- package/dist/esm/run/slides-cli.js +225 -0
- package/dist/esm/run/slides-cli.js.map +1 -0
- package/dist/esm/run/slides-render.js +163 -0
- package/dist/esm/run/slides-render.js.map +1 -0
- package/dist/esm/run/stream-output.js +63 -0
- package/dist/esm/run/stream-output.js.map +1 -0
- package/dist/esm/run/streaming.js +16 -43
- package/dist/esm/run/streaming.js.map +1 -1
- package/dist/esm/run/summary-engine.js +59 -41
- package/dist/esm/run/summary-engine.js.map +1 -1
- package/dist/esm/run/transcriber-cli.js +148 -0
- package/dist/esm/run/transcriber-cli.js.map +1 -0
- package/dist/esm/shared/sse-events.js +26 -0
- package/dist/esm/shared/sse-events.js.map +1 -0
- package/dist/esm/shared/streaming-merge.js +44 -0
- package/dist/esm/shared/streaming-merge.js.map +1 -0
- package/dist/esm/slides/extract.js +1942 -0
- package/dist/esm/slides/extract.js.map +1 -0
- package/dist/esm/slides/index.js +4 -0
- package/dist/esm/slides/index.js.map +1 -0
- package/dist/esm/slides/settings.js +73 -0
- package/dist/esm/slides/settings.js.map +1 -0
- package/dist/esm/slides/store.js +111 -0
- package/dist/esm/slides/store.js.map +1 -0
- package/dist/esm/slides/types.js +2 -0
- package/dist/esm/slides/types.js.map +1 -0
- package/dist/esm/tty/osc-progress.js +21 -1
- package/dist/esm/tty/osc-progress.js.map +1 -1
- package/dist/esm/tty/progress/fetch-html.js +8 -4
- package/dist/esm/tty/progress/fetch-html.js.map +1 -1
- package/dist/esm/tty/progress/transcript.js +82 -31
- package/dist/esm/tty/progress/transcript.js.map +1 -1
- package/dist/esm/tty/spinner.js +2 -2
- package/dist/esm/tty/spinner.js.map +1 -1
- package/dist/esm/tty/theme.js +189 -0
- package/dist/esm/tty/theme.js.map +1 -0
- package/dist/esm/tty/website-progress.js +17 -13
- package/dist/esm/tty/website-progress.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/cache.d.ts +14 -2
- package/dist/types/config.d.ts +34 -0
- package/dist/types/daemon/agent.d.ts +25 -0
- package/dist/types/daemon/chat.d.ts +27 -0
- package/dist/types/daemon/env-snapshot.d.ts +1 -1
- package/dist/types/daemon/flow-context.d.ts +24 -3
- package/dist/types/daemon/launchd.d.ts +4 -0
- package/dist/types/daemon/process-registry.d.ts +73 -0
- package/dist/types/daemon/schtasks.d.ts +4 -0
- package/dist/types/daemon/server.d.ts +7 -1
- package/dist/types/daemon/summarize.d.ts +47 -5
- package/dist/types/daemon/systemd.d.ts +4 -0
- package/dist/types/flags.d.ts +1 -0
- package/dist/types/llm/attachments.d.ts +6 -0
- package/dist/types/llm/errors.d.ts +1 -0
- package/dist/types/llm/generate-text.d.ts +29 -13
- package/dist/types/llm/prompt.d.ts +7 -2
- package/dist/types/llm/providers/anthropic.d.ts +30 -0
- package/dist/types/llm/providers/google.d.ts +29 -0
- package/dist/types/llm/providers/models.d.ts +27 -0
- package/dist/types/llm/providers/openai.d.ts +38 -0
- package/dist/types/llm/providers/shared.d.ts +14 -0
- package/dist/types/llm/providers/types.d.ts +6 -0
- package/dist/types/llm/types.d.ts +5 -0
- package/dist/types/llm/usage.d.ts +5 -0
- package/dist/types/logging/daemon.d.ts +26 -0
- package/dist/types/logging/ring-file.d.ts +10 -0
- package/dist/types/media-cache.d.ts +22 -0
- package/dist/types/model-auto.d.ts +1 -0
- package/dist/types/processes.d.ts +1 -0
- package/dist/types/run/attachments.d.ts +9 -6
- package/dist/types/run/bird.d.ts +7 -0
- package/dist/types/run/constants.d.ts +0 -2
- package/dist/types/run/finish-line.d.ts +59 -1
- package/dist/types/run/flows/asset/extract.d.ts +18 -0
- package/dist/types/run/flows/asset/input.d.ts +12 -2
- package/dist/types/run/flows/asset/media-policy.d.ts +2 -0
- package/dist/types/run/flows/asset/media.d.ts +21 -0
- package/dist/types/run/flows/asset/output.d.ts +42 -0
- package/dist/types/run/flows/asset/preprocess.d.ts +22 -2
- package/dist/types/run/flows/asset/summary.d.ts +6 -0
- package/dist/types/run/flows/url/extract.d.ts +2 -1
- package/dist/types/run/flows/url/slides-output.d.ts +66 -0
- package/dist/types/run/flows/url/slides-text.d.ts +87 -0
- package/dist/types/run/flows/url/summary.d.ts +11 -3
- package/dist/types/run/flows/url/types.d.ts +29 -2
- package/dist/types/run/help.d.ts +3 -0
- package/dist/types/run/logging.d.ts +3 -2
- package/dist/types/run/media-cache-state.d.ts +7 -0
- package/dist/types/run/progress.d.ts +2 -1
- package/dist/types/run/run-context.d.ts +44 -0
- package/dist/types/run/run-settings.d.ts +62 -0
- package/dist/types/run/slides-cli.d.ts +9 -0
- package/dist/types/run/slides-render.d.ts +30 -0
- package/dist/types/run/stream-output.d.ts +12 -0
- package/dist/types/run/streaming.d.ts +10 -4
- package/dist/types/run/summary-engine.d.ts +15 -3
- package/dist/types/run/summary-llm.d.ts +2 -2
- package/dist/types/run/transcriber-cli.d.ts +8 -0
- package/dist/types/shared/sse-events.d.ts +64 -0
- package/dist/types/shared/streaming-merge.d.ts +4 -0
- package/dist/types/slides/extract.d.ts +42 -0
- package/dist/types/slides/index.d.ts +5 -0
- package/dist/types/slides/settings.d.ts +20 -0
- package/dist/types/slides/store.d.ts +15 -0
- package/dist/types/slides/types.d.ts +40 -0
- package/dist/types/tty/osc-progress.d.ts +2 -2
- package/dist/types/tty/progress/fetch-html.d.ts +3 -1
- package/dist/types/tty/progress/transcript.d.ts +3 -1
- package/dist/types/tty/spinner.d.ts +3 -1
- package/dist/types/tty/theme.d.ts +44 -0
- package/dist/types/tty/website-progress.d.ts +3 -1
- package/dist/types/version.d.ts +1 -1
- package/docs/README.md +13 -8
- package/docs/_config.yml +26 -0
- package/docs/_layouts/default.html +60 -0
- package/docs/agent.md +333 -0
- package/docs/assets/site.css +748 -0
- package/docs/assets/site.js +72 -0
- package/docs/assets/summarize-cli.png +0 -0
- package/docs/assets/summarize-extension.png +0 -0
- package/docs/assets/youtube-slides.png +0 -0
- package/docs/cache.md +29 -3
- package/docs/chrome-extension.md +85 -7
- package/docs/config.md +74 -2
- package/docs/extract-only.md +10 -2
- package/docs/index.html +205 -0
- package/docs/index.md +25 -0
- package/docs/language.md +1 -1
- package/docs/llm.md +17 -1
- package/docs/manual-tests.md +2 -0
- package/docs/media.md +37 -0
- package/docs/model-auto.md +2 -1
- package/docs/nvidia-onnx-transcription.md +55 -0
- package/docs/openai.md +5 -0
- package/docs/releasing.md +26 -0
- package/docs/site/assets/site.css +399 -228
- package/docs/site/assets/summarize-cli.png +0 -0
- package/docs/site/assets/summarize-extension.png +0 -0
- package/docs/site/docs/chrome-extension.html +89 -0
- package/docs/site/docs/config.html +1 -0
- package/docs/site/docs/extract-only.html +1 -0
- package/docs/site/docs/firecrawl.html +1 -0
- package/docs/site/docs/index.html +5 -0
- package/docs/site/docs/llm.html +1 -0
- package/docs/site/docs/openai.html +1 -0
- package/docs/site/docs/website.html +1 -0
- package/docs/site/docs/youtube.html +1 -0
- package/docs/site/index.html +148 -84
- package/docs/slides.md +74 -0
- package/docs/timestamps.md +103 -0
- package/docs/website.md +13 -0
- package/docs/youtube.md +16 -0
- package/package.json +22 -18
- package/dist/esm/daemon/request-settings.js +0 -91
- package/dist/esm/daemon/request-settings.js.map +0 -1
- package/dist/types/daemon/request-settings.d.ts +0 -27
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { streamTextWithContext } from '../llm/generate-text.js';
|
|
2
|
+
import { buildAutoModelAttempts } from '../model-auto.js';
|
|
3
|
+
import { parseRequestedModelId } from '../model-spec.js';
|
|
4
|
+
import { resolveEnvState } from '../run/run-env.js';
|
|
5
|
+
const SYSTEM_PROMPT = `You are Summarize Chat.
|
|
6
|
+
|
|
7
|
+
You answer questions about the current page content. Keep responses concise and grounded in the page.`;
|
|
8
|
+
function normalizeMessages(messages) {
|
|
9
|
+
return messages.map((message) => ({
|
|
10
|
+
...message,
|
|
11
|
+
timestamp: message.timestamp ?? Date.now(),
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
function buildContext({ pageUrl, pageTitle, pageContent, messages, }) {
|
|
15
|
+
const header = pageTitle ? `${pageTitle} (${pageUrl})` : pageUrl;
|
|
16
|
+
const systemPrompt = `${SYSTEM_PROMPT}\n\nPage:\n${header}\n\nContent:\n${pageContent}`;
|
|
17
|
+
return { systemPrompt, messages: normalizeMessages(messages) };
|
|
18
|
+
}
|
|
19
|
+
function resolveApiKeys(env) {
|
|
20
|
+
const envState = resolveEnvState({ env, envForRun: env, configForCli: null });
|
|
21
|
+
return {
|
|
22
|
+
xaiApiKey: envState.xaiApiKey,
|
|
23
|
+
openaiApiKey: envState.apiKey ?? envState.openaiTranscriptionKey,
|
|
24
|
+
googleApiKey: envState.googleApiKey,
|
|
25
|
+
anthropicApiKey: envState.anthropicApiKey,
|
|
26
|
+
openrouterApiKey: envState.openrouterApiKey,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export async function streamChatResponse({ env, fetchImpl, session: _session, pageUrl, pageTitle, pageContent, messages, modelOverride, pushToSession, emitMeta, }) {
|
|
30
|
+
const apiKeys = resolveApiKeys(env);
|
|
31
|
+
const context = buildContext({ pageUrl, pageTitle, pageContent, messages });
|
|
32
|
+
const resolveModel = () => {
|
|
33
|
+
if (modelOverride && modelOverride.trim().length > 0) {
|
|
34
|
+
const requested = parseRequestedModelId(modelOverride);
|
|
35
|
+
if (requested.kind === 'auto') {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (requested.transport === 'cli') {
|
|
39
|
+
throw new Error('CLI models are not supported in the daemon');
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
userModelId: requested.userModelId,
|
|
43
|
+
modelId: requested.llmModelId,
|
|
44
|
+
forceOpenRouter: requested.forceOpenRouter,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
};
|
|
49
|
+
const resolved = resolveModel();
|
|
50
|
+
if (resolved) {
|
|
51
|
+
emitMeta({ model: resolved.userModelId });
|
|
52
|
+
const result = await streamTextWithContext({
|
|
53
|
+
modelId: resolved.modelId,
|
|
54
|
+
apiKeys,
|
|
55
|
+
context,
|
|
56
|
+
timeoutMs: 30_000,
|
|
57
|
+
fetchImpl,
|
|
58
|
+
forceOpenRouter: resolved.forceOpenRouter,
|
|
59
|
+
});
|
|
60
|
+
for await (const chunk of result.textStream) {
|
|
61
|
+
pushToSession({ event: 'content', data: chunk });
|
|
62
|
+
}
|
|
63
|
+
pushToSession({ event: 'metrics' });
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const envState = resolveEnvState({ env, envForRun: env, configForCli: null });
|
|
67
|
+
const attempts = buildAutoModelAttempts({
|
|
68
|
+
kind: 'text',
|
|
69
|
+
promptTokens: null,
|
|
70
|
+
desiredOutputTokens: null,
|
|
71
|
+
requiresVideoUnderstanding: false,
|
|
72
|
+
env: envState.envForAuto,
|
|
73
|
+
config: null,
|
|
74
|
+
catalog: null,
|
|
75
|
+
openrouterProvidersFromEnv: null,
|
|
76
|
+
cliAvailability: envState.cliAvailability,
|
|
77
|
+
});
|
|
78
|
+
const attempt = attempts.find((entry) => entry.transport !== 'cli' && entry.llmModelId);
|
|
79
|
+
if (!attempt || !attempt.llmModelId) {
|
|
80
|
+
throw new Error('No model available for chat');
|
|
81
|
+
}
|
|
82
|
+
emitMeta({ model: attempt.userModelId });
|
|
83
|
+
const result = await streamTextWithContext({
|
|
84
|
+
modelId: attempt.llmModelId,
|
|
85
|
+
apiKeys,
|
|
86
|
+
context,
|
|
87
|
+
timeoutMs: 30_000,
|
|
88
|
+
fetchImpl,
|
|
89
|
+
forceOpenRouter: attempt.forceOpenRouter,
|
|
90
|
+
});
|
|
91
|
+
for await (const chunk of result.textStream) {
|
|
92
|
+
pushToSession({ event: 'content', data: chunk });
|
|
93
|
+
}
|
|
94
|
+
pushToSession({ event: 'metrics' });
|
|
95
|
+
void _session;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/daemon/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/daemon/cli.js
CHANGED
|
@@ -5,10 +5,10 @@ import { readDaemonConfig, writeDaemonConfig } from './config.js';
|
|
|
5
5
|
import { DAEMON_HOST, DAEMON_PORT_DEFAULT } from './constants.js';
|
|
6
6
|
import { mergeDaemonEnv } from './env-merge.js';
|
|
7
7
|
import { buildEnvSnapshotFromEnv } from './env-snapshot.js';
|
|
8
|
-
import { installLaunchAgent, isLaunchAgentLoaded, restartLaunchAgent, uninstallLaunchAgent, } from './launchd.js';
|
|
9
|
-
import { installScheduledTask, isScheduledTaskInstalled, restartScheduledTask, uninstallScheduledTask, } from './schtasks.js';
|
|
8
|
+
import { installLaunchAgent, isLaunchAgentLoaded, readLaunchAgentProgramArguments, restartLaunchAgent, uninstallLaunchAgent, } from './launchd.js';
|
|
9
|
+
import { installScheduledTask, isScheduledTaskInstalled, readScheduledTaskCommand, restartScheduledTask, uninstallScheduledTask, } from './schtasks.js';
|
|
10
10
|
import { runDaemonServer } from './server.js';
|
|
11
|
-
import { installSystemdService, isSystemdServiceEnabled, restartSystemdService, uninstallSystemdService, } from './systemd.js';
|
|
11
|
+
import { installSystemdService, isSystemdServiceEnabled, readSystemdServiceExecStart, restartSystemdService, uninstallSystemdService, } from './systemd.js';
|
|
12
12
|
function readArgValue(argv, name) {
|
|
13
13
|
const eq = argv.find((a) => a.startsWith(`${name}=`));
|
|
14
14
|
if (eq)
|
|
@@ -81,6 +81,9 @@ function resolveDaemonService() {
|
|
|
81
81
|
}
|
|
82
82
|
throw new Error(`Daemon service install not supported on ${process.platform}`);
|
|
83
83
|
}
|
|
84
|
+
async function sleep(ms) {
|
|
85
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
86
|
+
}
|
|
84
87
|
async function waitForHealth({ fetchImpl, port, timeoutMs, }) {
|
|
85
88
|
const url = `http://${DAEMON_HOST}:${port}/health`;
|
|
86
89
|
const startedAt = Date.now();
|
|
@@ -98,6 +101,25 @@ async function waitForHealth({ fetchImpl, port, timeoutMs, }) {
|
|
|
98
101
|
}
|
|
99
102
|
throw new Error(`Daemon not reachable at ${url}`);
|
|
100
103
|
}
|
|
104
|
+
async function waitForHealthWithRetries({ fetchImpl, port, attempts, timeoutMs, delayMs, }) {
|
|
105
|
+
let lastError = null;
|
|
106
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
107
|
+
try {
|
|
108
|
+
await waitForHealth({ fetchImpl, port, timeoutMs });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
lastError = err;
|
|
113
|
+
if (attempt < attempts - 1) {
|
|
114
|
+
const backoff = Math.round(delayMs * 1.6 ** attempt);
|
|
115
|
+
await sleep(backoff);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
throw lastError instanceof Error
|
|
120
|
+
? lastError
|
|
121
|
+
: new Error(`Daemon not reachable at ${DAEMON_HOST}:${port}`);
|
|
122
|
+
}
|
|
101
123
|
async function checkAuth({ fetchImpl, token, port, }) {
|
|
102
124
|
try {
|
|
103
125
|
const res = await fetchImpl(`http://${DAEMON_HOST}:${port}/v1/ping`, {
|
|
@@ -109,6 +131,18 @@ async function checkAuth({ fetchImpl, token, port, }) {
|
|
|
109
131
|
return false;
|
|
110
132
|
}
|
|
111
133
|
}
|
|
134
|
+
async function checkAuthWithRetries({ fetchImpl, token, port, attempts, delayMs, }) {
|
|
135
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
136
|
+
const ok = await checkAuth({ fetchImpl, token, port });
|
|
137
|
+
if (ok)
|
|
138
|
+
return true;
|
|
139
|
+
if (attempt < attempts - 1) {
|
|
140
|
+
const backoff = Math.round(delayMs * 1.4 ** attempt);
|
|
141
|
+
await sleep(backoff);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
112
146
|
async function resolveCliEntrypointPathForService() {
|
|
113
147
|
const argv1 = process.argv[1];
|
|
114
148
|
if (!argv1)
|
|
@@ -181,6 +215,24 @@ async function resolveDaemonProgramArguments({ dev, }) {
|
|
|
181
215
|
workingDirectory: repoRoot,
|
|
182
216
|
};
|
|
183
217
|
}
|
|
218
|
+
function formatProgramArguments(args) {
|
|
219
|
+
return args
|
|
220
|
+
.map((arg) => {
|
|
221
|
+
if (!/[\s"]/g.test(arg))
|
|
222
|
+
return arg;
|
|
223
|
+
return `"${arg.replace(/"/g, '\\"')}"`;
|
|
224
|
+
})
|
|
225
|
+
.join(' ');
|
|
226
|
+
}
|
|
227
|
+
async function readInstalledDaemonCommand(env) {
|
|
228
|
+
if (process.platform === 'darwin')
|
|
229
|
+
return readLaunchAgentProgramArguments(env);
|
|
230
|
+
if (process.platform === 'linux')
|
|
231
|
+
return readSystemdServiceExecStart(env);
|
|
232
|
+
if (process.platform === 'win32')
|
|
233
|
+
return readScheduledTaskCommand(env);
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
184
236
|
export async function handleDaemonRequest({ normalizedArgv, envForRun, fetchImpl, stdout, stderr, }) {
|
|
185
237
|
if (normalizedArgv[0]?.toLowerCase() !== 'daemon')
|
|
186
238
|
return false;
|
|
@@ -206,11 +258,24 @@ export async function handleDaemonRequest({ normalizedArgv, envForRun, fetchImpl
|
|
|
206
258
|
});
|
|
207
259
|
const { programArguments, workingDirectory } = await resolveDaemonProgramArguments({ dev });
|
|
208
260
|
await service.install({ env: envForRun, stdout, programArguments, workingDirectory });
|
|
209
|
-
await
|
|
210
|
-
const authed = await
|
|
261
|
+
await waitForHealthWithRetries({ fetchImpl, port, attempts: 5, timeoutMs: 5000, delayMs: 500 });
|
|
262
|
+
const authed = await checkAuthWithRetries({
|
|
263
|
+
fetchImpl,
|
|
264
|
+
token: token.trim(),
|
|
265
|
+
port,
|
|
266
|
+
attempts: 5,
|
|
267
|
+
delayMs: 400,
|
|
268
|
+
});
|
|
211
269
|
if (!authed)
|
|
212
270
|
throw new Error('Daemon is up but auth failed (token mismatch?)');
|
|
213
271
|
stdout.write(`Daemon config: ${configPath}\n`);
|
|
272
|
+
const installedCommand = await readInstalledDaemonCommand(envForRun);
|
|
273
|
+
if (installedCommand?.programArguments?.length) {
|
|
274
|
+
stdout.write(`Daemon command: ${formatProgramArguments(installedCommand.programArguments)}\n`);
|
|
275
|
+
if (installedCommand.workingDirectory) {
|
|
276
|
+
stdout.write(`Daemon cwd: ${installedCommand.workingDirectory}\n`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
214
279
|
stdout.write(`OK: daemon is running and authenticated.\n`);
|
|
215
280
|
return true;
|
|
216
281
|
}
|
|
@@ -225,7 +290,7 @@ export async function handleDaemonRequest({ normalizedArgv, envForRun, fetchImpl
|
|
|
225
290
|
const loaded = await service.isLoaded({ env: envForRun });
|
|
226
291
|
const healthy = await (async () => {
|
|
227
292
|
try {
|
|
228
|
-
await waitForHealth({ fetchImpl, port: cfg.port, timeoutMs:
|
|
293
|
+
await waitForHealth({ fetchImpl, port: cfg.port, timeoutMs: 1000 });
|
|
229
294
|
return true;
|
|
230
295
|
}
|
|
231
296
|
catch {
|
|
@@ -254,10 +319,40 @@ export async function handleDaemonRequest({ normalizedArgv, envForRun, fetchImpl
|
|
|
254
319
|
return true;
|
|
255
320
|
}
|
|
256
321
|
await service.restart({ stdout });
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
322
|
+
const installedCommand = await readInstalledDaemonCommand(envForRun);
|
|
323
|
+
if (installedCommand?.programArguments?.length) {
|
|
324
|
+
stdout.write(`Daemon command: ${formatProgramArguments(installedCommand.programArguments)}\n`);
|
|
325
|
+
if (installedCommand.workingDirectory) {
|
|
326
|
+
stdout.write(`Daemon cwd: ${installedCommand.workingDirectory}\n`);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
await sleep(8000);
|
|
330
|
+
let healthy = true;
|
|
331
|
+
try {
|
|
332
|
+
await waitForHealthWithRetries({
|
|
333
|
+
fetchImpl,
|
|
334
|
+
port: cfg.port,
|
|
335
|
+
attempts: 3,
|
|
336
|
+
timeoutMs: 15000,
|
|
337
|
+
delayMs: 500,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
healthy = false;
|
|
342
|
+
}
|
|
343
|
+
const authed = healthy
|
|
344
|
+
? await checkAuthWithRetries({
|
|
345
|
+
fetchImpl,
|
|
346
|
+
token: cfg.token,
|
|
347
|
+
port: cfg.port,
|
|
348
|
+
attempts: 5,
|
|
349
|
+
delayMs: 400,
|
|
350
|
+
})
|
|
351
|
+
: false;
|
|
352
|
+
if (!healthy || !authed) {
|
|
353
|
+
stdout.write('Restarted daemon. It is still starting; run "summarize daemon status" in a few seconds.\n');
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
261
356
|
stdout.write('OK: daemon restarted and authenticated.\n');
|
|
262
357
|
return true;
|
|
263
358
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/daemon/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/daemon/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-snapshot.js","sourceRoot":"","sources":["../../../src/daemon/env-snapshot.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,MAAM;IACN,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,6BAA6B;IAC7B,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,8BAA8B;IAC9B,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAA;AAIV,MAAM,UAAU,uBAAuB,CAAC,GAAuC;IAC7E,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAQ;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"env-snapshot.js","sourceRoot":"","sources":["../../../src/daemon/env-snapshot.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,MAAM;IACN,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,oBAAoB;IACpB,6BAA6B;IAC7B,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,8BAA8B;IAC9B,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,iBAAiB;IACjB,uBAAuB;IACvB,6BAA6B;IAC7B,2BAA2B;IAC3B,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAA;AAIV,MAAM,UAAU,uBAAuB,CAAC,GAAuC;IAC7E,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAQ;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { execFile } from 'node:child_process';
|
|
2
1
|
import { Writable } from 'node:stream';
|
|
2
|
+
import { execFileTracked } from '../processes.js';
|
|
3
3
|
import { summarizeAsset as summarizeAssetFlow } from '../run/flows/asset/summary.js';
|
|
4
|
-
import {
|
|
5
|
-
import { resolveEnvState } from '../run/run-env.js';
|
|
4
|
+
import { resolveRunContextState } from '../run/run-context.js';
|
|
6
5
|
import { createRunMetrics } from '../run/run-metrics.js';
|
|
7
6
|
import { resolveModelSelection } from '../run/run-models.js';
|
|
8
7
|
import { resolveDesiredOutputTokens } from '../run/run-output.js';
|
|
8
|
+
import { resolveOutputLanguageSetting, resolveSummaryLength, } from '../run/run-settings.js';
|
|
9
9
|
import { createSummaryEngine } from '../run/summary-engine.js';
|
|
10
|
-
import { resolveDaemonOutputLanguage, resolveDaemonSummaryLength, } from './request-settings.js';
|
|
11
10
|
function createWritableFromTextSink(sink) {
|
|
12
11
|
const stream = new Writable({
|
|
13
12
|
write(chunk, _encoding, callback) {
|
|
@@ -21,18 +20,37 @@ function createWritableFromTextSink(sink) {
|
|
|
21
20
|
return stream;
|
|
22
21
|
}
|
|
23
22
|
export function createDaemonUrlFlowContext(args) {
|
|
24
|
-
const { env, fetchImpl, cache, modelOverride, promptOverride, lengthRaw, languageRaw, maxExtractCharacters, overrides, hooks, runStartedAtMs, stdoutSink, } = args;
|
|
25
|
-
const envForRun = env;
|
|
23
|
+
const { env, fetchImpl, cache, mediaCache = null, modelOverride, promptOverride, lengthRaw, languageRaw, maxExtractCharacters, format, overrides, extractOnly, slides, hooks, runStartedAtMs, stdoutSink, } = args;
|
|
24
|
+
const envForRun = { ...env };
|
|
26
25
|
const languageExplicitlySet = typeof languageRaw === 'string' && Boolean(languageRaw.trim());
|
|
27
|
-
const {
|
|
26
|
+
const { lengthArg } = resolveSummaryLength(lengthRaw);
|
|
27
|
+
const resolvedOverrides = overrides ?? {
|
|
28
|
+
firecrawlMode: null,
|
|
29
|
+
markdownMode: null,
|
|
30
|
+
preprocessMode: null,
|
|
31
|
+
youtubeMode: null,
|
|
32
|
+
videoMode: null,
|
|
33
|
+
transcriptTimestamps: null,
|
|
34
|
+
forceSummary: null,
|
|
35
|
+
timeoutMs: null,
|
|
36
|
+
retries: null,
|
|
37
|
+
maxOutputTokensArg: null,
|
|
38
|
+
transcriber: null,
|
|
39
|
+
};
|
|
40
|
+
if (resolvedOverrides.transcriber) {
|
|
41
|
+
envForRun.SUMMARIZE_TRANSCRIBER = resolvedOverrides.transcriber;
|
|
42
|
+
}
|
|
43
|
+
const videoModeOverride = resolvedOverrides.videoMode;
|
|
44
|
+
const resolvedFormat = format === 'markdown' ? 'markdown' : 'text';
|
|
45
|
+
const { config, configPath, outputLanguage: outputLanguageFromConfig, openaiWhisperUsdPerMinute, videoMode, cliConfigForRun, configForCli, openaiUseChatCompletions, configModelLabel, apiKey, openrouterApiKey, openrouterConfigured, openaiTranscriptionKey, xaiApiKey, googleApiKey, anthropicApiKey, zaiApiKey, zaiBaseUrl, providerBaseUrls, firecrawlApiKey, firecrawlConfigured, googleConfigured, anthropicConfigured, cliAvailability, envForAuto, apifyToken, ytDlpPath, falApiKey, } = resolveRunContextState({
|
|
46
|
+
env: envForRun,
|
|
28
47
|
envForRun,
|
|
29
|
-
programOpts: { videoMode: 'auto' },
|
|
48
|
+
programOpts: { videoMode: videoModeOverride ?? 'auto' },
|
|
30
49
|
languageExplicitlySet,
|
|
31
|
-
videoModeExplicitlySet:
|
|
50
|
+
videoModeExplicitlySet: videoModeOverride != null,
|
|
32
51
|
cliFlagPresent: false,
|
|
33
52
|
cliProviderArg: null,
|
|
34
53
|
});
|
|
35
|
-
const { apiKey, openrouterApiKey, openrouterConfigured, openaiTranscriptionKey, xaiApiKey, googleApiKey, anthropicApiKey, zaiApiKey, zaiBaseUrl, providerBaseUrls, firecrawlApiKey, firecrawlConfigured, googleConfigured, anthropicConfigured, cliAvailability, envForAuto, apifyToken, ytDlpPath, falApiKey, } = resolveEnvState({ env: envForRun, envForRun, configForCli });
|
|
36
54
|
const { requestedModel, requestedModelInput, requestedModelLabel, isNamedModelSelection, wantsFreeNamedModel, configForModelSelection, isFallbackModel, } = resolveModelSelection({
|
|
37
55
|
config,
|
|
38
56
|
configForCli,
|
|
@@ -41,16 +59,6 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
41
59
|
explicitModelArg: modelOverride?.trim() ? modelOverride.trim() : null,
|
|
42
60
|
});
|
|
43
61
|
const fixedModelSpec = requestedModel.kind === 'fixed' ? requestedModel : null;
|
|
44
|
-
const { lengthArg } = resolveDaemonSummaryLength(lengthRaw);
|
|
45
|
-
const resolvedOverrides = overrides ?? {
|
|
46
|
-
firecrawlMode: null,
|
|
47
|
-
markdownMode: null,
|
|
48
|
-
preprocessMode: null,
|
|
49
|
-
youtubeMode: null,
|
|
50
|
-
timeoutMs: null,
|
|
51
|
-
retries: null,
|
|
52
|
-
maxOutputTokensArg: null,
|
|
53
|
-
};
|
|
54
62
|
const maxOutputTokensArg = resolvedOverrides.maxOutputTokensArg;
|
|
55
63
|
const desiredOutputTokens = resolveDesiredOutputTokens({ lengthArg, maxOutputTokensArg });
|
|
56
64
|
const metrics = createRunMetrics({ env: envForRun, fetchImpl, maxOutputTokensArg });
|
|
@@ -59,18 +67,19 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
59
67
|
const timeoutMs = resolvedOverrides.timeoutMs ?? 120_000;
|
|
60
68
|
const retries = resolvedOverrides.retries ?? 1;
|
|
61
69
|
const firecrawlMode = resolvedOverrides.firecrawlMode ?? 'off';
|
|
62
|
-
const markdownMode = resolvedOverrides.markdownMode ?? 'readability';
|
|
63
|
-
const preprocessMode = resolvedOverrides.preprocessMode ?? '
|
|
70
|
+
const markdownMode = resolvedOverrides.markdownMode ?? (resolvedFormat === 'markdown' ? 'readability' : 'off');
|
|
71
|
+
const preprocessMode = resolvedOverrides.preprocessMode ?? 'auto';
|
|
64
72
|
const youtubeMode = resolvedOverrides.youtubeMode ?? 'auto';
|
|
65
73
|
const summaryEngine = createSummaryEngine({
|
|
66
74
|
env: envForRun,
|
|
67
75
|
envForRun,
|
|
68
76
|
stdout,
|
|
69
77
|
stderr,
|
|
70
|
-
execFileImpl:
|
|
78
|
+
execFileImpl: execFileTracked,
|
|
71
79
|
timeoutMs,
|
|
72
80
|
retries,
|
|
73
81
|
streamingEnabled: true,
|
|
82
|
+
streamingOutputMode: 'delta',
|
|
74
83
|
plain: true,
|
|
75
84
|
verbose: false,
|
|
76
85
|
verboseColor: false,
|
|
@@ -97,7 +106,7 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
97
106
|
zai: { apiKey: zaiApiKey, baseUrl: zaiBaseUrl },
|
|
98
107
|
providerBaseUrls,
|
|
99
108
|
});
|
|
100
|
-
const outputLanguage =
|
|
109
|
+
const outputLanguage = resolveOutputLanguageSetting({
|
|
101
110
|
raw: languageRaw,
|
|
102
111
|
fallback: outputLanguageFromConfig,
|
|
103
112
|
});
|
|
@@ -115,11 +124,13 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
115
124
|
envForRun,
|
|
116
125
|
stdout,
|
|
117
126
|
stderr,
|
|
118
|
-
execFileImpl:
|
|
127
|
+
execFileImpl: execFileTracked,
|
|
119
128
|
timeoutMs,
|
|
120
129
|
preprocessMode,
|
|
121
130
|
format: 'text',
|
|
131
|
+
extractMode: extractOnly ?? false,
|
|
122
132
|
lengthArg,
|
|
133
|
+
forceSummary: resolvedOverrides.forceSummary ?? false,
|
|
123
134
|
outputLanguage,
|
|
124
135
|
videoMode,
|
|
125
136
|
fixedModelSpec,
|
|
@@ -155,6 +166,8 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
155
166
|
estimateCostUsd: metrics.estimateCostUsd,
|
|
156
167
|
llmCalls: metrics.llmCalls,
|
|
157
168
|
cache,
|
|
169
|
+
summaryCacheBypass: false,
|
|
170
|
+
mediaCache,
|
|
158
171
|
apiStatus: {
|
|
159
172
|
xaiApiKey,
|
|
160
173
|
apiKey,
|
|
@@ -174,27 +187,30 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
174
187
|
envForRun,
|
|
175
188
|
stdout,
|
|
176
189
|
stderr,
|
|
177
|
-
execFileImpl:
|
|
190
|
+
execFileImpl: execFileTracked,
|
|
178
191
|
fetch: metrics.trackedFetch,
|
|
179
192
|
},
|
|
180
193
|
flags: {
|
|
181
194
|
timeoutMs,
|
|
182
195
|
maxExtractCharacters,
|
|
183
196
|
retries,
|
|
184
|
-
format:
|
|
197
|
+
format: resolvedFormat,
|
|
185
198
|
markdownMode,
|
|
186
199
|
preprocessMode,
|
|
187
200
|
youtubeMode,
|
|
188
201
|
firecrawlMode,
|
|
189
202
|
videoMode,
|
|
203
|
+
transcriptTimestamps: resolvedOverrides.transcriptTimestamps ?? false,
|
|
190
204
|
outputLanguage,
|
|
191
205
|
lengthArg,
|
|
206
|
+
forceSummary: resolvedOverrides.forceSummary ?? false,
|
|
192
207
|
promptOverride,
|
|
193
208
|
lengthInstruction,
|
|
194
209
|
languageInstruction,
|
|
210
|
+
summaryCacheBypass: false,
|
|
195
211
|
maxOutputTokensArg,
|
|
196
212
|
json: false,
|
|
197
|
-
extractMode: false,
|
|
213
|
+
extractMode: extractOnly ?? false,
|
|
198
214
|
metricsEnabled: false,
|
|
199
215
|
metricsDetailed: false,
|
|
200
216
|
shouldComputeReport: false,
|
|
@@ -202,10 +218,14 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
202
218
|
verbose: false,
|
|
203
219
|
verboseColor: false,
|
|
204
220
|
progressEnabled: false,
|
|
221
|
+
streamMode: 'on',
|
|
205
222
|
streamingEnabled: true,
|
|
206
223
|
plain: true,
|
|
207
224
|
configPath,
|
|
208
225
|
configModelLabel,
|
|
226
|
+
slides: slides ?? null,
|
|
227
|
+
slidesDebug: false,
|
|
228
|
+
slidesOutput: false,
|
|
209
229
|
},
|
|
210
230
|
model: {
|
|
211
231
|
requestedModel,
|
|
@@ -245,9 +265,14 @@ export function createDaemonUrlFlowContext(args) {
|
|
|
245
265
|
llmCalls: metrics.llmCalls,
|
|
246
266
|
},
|
|
247
267
|
cache,
|
|
268
|
+
mediaCache,
|
|
248
269
|
hooks: {
|
|
249
270
|
onModelChosen: hooks?.onModelChosen ?? null,
|
|
250
271
|
onExtracted: hooks?.onExtracted ?? null,
|
|
272
|
+
onSlidesExtracted: hooks?.onSlidesExtracted ?? null,
|
|
273
|
+
onSlidesProgress: hooks?.onSlidesProgress ?? null,
|
|
274
|
+
onSlidesDone: hooks?.onSlidesDone ?? null,
|
|
275
|
+
onSlideChunk: hooks?.onSlideChunk ?? undefined,
|
|
251
276
|
onLinkPreviewProgress: hooks?.onLinkPreviewProgress ?? null,
|
|
252
277
|
onSummaryCached: hooks?.onSummaryCached ?? null,
|
|
253
278
|
setTranscriptionCost: metrics.setTranscriptionCost,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-context.js","sourceRoot":"","sources":["../../../src/daemon/flow-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flow-context.js","sourceRoot":"","sources":["../../../src/daemon/flow-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,33 @@ function plistEscape(value) {
|
|
|
31
31
|
.replaceAll('"', '"')
|
|
32
32
|
.replaceAll("'", ''');
|
|
33
33
|
}
|
|
34
|
+
function plistUnescape(value) {
|
|
35
|
+
return value
|
|
36
|
+
.replaceAll(''', "'")
|
|
37
|
+
.replaceAll('"', '"')
|
|
38
|
+
.replaceAll('>', '>')
|
|
39
|
+
.replaceAll('<', '<')
|
|
40
|
+
.replaceAll('&', '&');
|
|
41
|
+
}
|
|
42
|
+
export async function readLaunchAgentProgramArguments(env) {
|
|
43
|
+
const plistPath = resolveLaunchAgentPlistPath(env);
|
|
44
|
+
try {
|
|
45
|
+
const plist = await fs.readFile(plistPath, 'utf8');
|
|
46
|
+
const programMatch = plist.match(/<key>ProgramArguments<\/key>\s*<array>([\s\S]*?)<\/array>/i);
|
|
47
|
+
if (!programMatch)
|
|
48
|
+
return null;
|
|
49
|
+
const args = Array.from(programMatch[1].matchAll(/<string>([\s\S]*?)<\/string>/gi)).map((match) => plistUnescape(match[1] ?? '').trim());
|
|
50
|
+
const workingDirMatch = plist.match(/<key>WorkingDirectory<\/key>\s*<string>([\s\S]*?)<\/string>/i);
|
|
51
|
+
const workingDirectory = workingDirMatch ? plistUnescape(workingDirMatch[1] ?? '').trim() : '';
|
|
52
|
+
return {
|
|
53
|
+
programArguments: args.filter(Boolean),
|
|
54
|
+
...(workingDirectory ? { workingDirectory } : {}),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
34
61
|
export function buildLaunchAgentPlist({ label = DAEMON_LAUNCH_AGENT_LABEL, programArguments, workingDirectory, stdoutPath, stderrPath, }) {
|
|
35
62
|
const argsXml = programArguments
|
|
36
63
|
.map((arg) => `\n <string>${plistEscape(arg)}</string>`)
|