feat: Call resolvePromptInput on the --system-prompt received on the CLI argument. This is needed to support file paths on the prompt (#287)

This commit is contained in:
scutifer 2025-12-23 17:36:40 +05:30 committed by GitHub
parent c57ed89110
commit 35ebe88870
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 7 deletions

View file

@ -22,7 +22,7 @@ const toolDescriptions: Record<ToolName, string> = {
};
/** Resolve input as file path or literal string */
function resolvePromptInput(input: string | undefined, description: string): string | undefined {
export function resolvePromptInput(input: string | undefined, description: string): string | undefined {
if (!input) {
return undefined;
}

View file

@ -23,6 +23,7 @@ import { resolveModelScope, type ScopedModel } from "./core/model-resolver.js";
import { type CreateAgentSessionOptions, configureOAuthStorage, createAgentSession } from "./core/sdk.js";
import { SessionManager } from "./core/session-manager.js";
import { SettingsManager } from "./core/settings-manager.js";
import { resolvePromptInput } from "./core/system-prompt.js";
import { printTimings, time } from "./core/timings.js";
import { allTools } from "./core/tools/index.js";
import { InteractiveMode, runPrintMode, runRpcMode } from "./modes/index.js";
@ -177,6 +178,9 @@ function buildSessionOptions(
): CreateAgentSessionOptions {
const options: CreateAgentSessionOptions = {};
const resolvedSystemPrompt = resolvePromptInput(parsed.systemPrompt, "system prompt");
const resolvedAppendPrompt = resolvePromptInput(parsed.appendSystemPrompt, "append system prompt");
if (sessionManager) {
options.sessionManager = sessionManager;
}
@ -215,12 +219,12 @@ function buildSessionOptions(
}
// System prompt
if (parsed.systemPrompt && parsed.appendSystemPrompt) {
options.systemPrompt = `${parsed.systemPrompt}\n\n${parsed.appendSystemPrompt}`;
} else if (parsed.systemPrompt) {
options.systemPrompt = parsed.systemPrompt;
} else if (parsed.appendSystemPrompt) {
options.systemPrompt = (defaultPrompt) => `${defaultPrompt}\n\n${parsed.appendSystemPrompt}`;
if (resolvedSystemPrompt && resolvedAppendPrompt) {
options.systemPrompt = `${resolvedSystemPrompt}\n\n${resolvedAppendPrompt}`;
} else if (resolvedSystemPrompt) {
options.systemPrompt = resolvedSystemPrompt;
} else if (resolvedAppendPrompt) {
options.systemPrompt = (defaultPrompt) => `${defaultPrompt}\n\n${resolvedAppendPrompt}`;
}
// Tools