UNPKG

gaunt-sloth-assistant

Version:

> ⚠️ **`gaunt-sloth-assistant` has been renamed to [`gaunt-sloth`](https://www.npmjs.com/package/gaunt-sloth).** > The `1.5.x` series is the final release under the old name — active development continues under > the new package. To switch: > > ```bash >

64 lines 2.71 kB
import { getContentFromProvider, getRequirementsFromProvider, } from '#src/commands/commandUtils.js'; import { buildSystemMessages, readBackstory, readChatPrompt, readCodePrompt, readGuidelines, readReviewInstructions, readSystemPrompt, } from '@gaunt-sloth/core/utils/llmUtils.js'; import { readPrDiscoveryPrompt } from '#src/commands/prDiscovery.js'; export function getAskSystemPrompt(config) { const parts = [readBackstory(config), readGuidelines(config)]; const systemPrompt = readSystemPrompt(config); if (systemPrompt) { parts.push(systemPrompt); } return parts.join('\n'); } export function getReviewSystemPrompt(config) { const parts = [readBackstory(config), readGuidelines(config), readReviewInstructions(config)]; const systemPrompt = readSystemPrompt(config); if (systemPrompt) { parts.push(systemPrompt); } return parts.join('\n'); } export function getCommandSystemPrompt(command, config) { if (command === 'ask') { return getAskSystemPrompt(config); } if (command === 'review' || command === 'pr') { return getReviewSystemPrompt(config); } const modePrompt = command === 'pr-discovery' ? readPrDiscoveryPrompt(config) : command === 'chat' ? readChatPrompt(config) : readCodePrompt(config); return flattenSystemMessageContent(config, modePrompt); } function flattenSystemMessageContent(config, modePrompt) { const [systemMessage] = buildSystemMessages(config, modePrompt); const content = systemMessage?.content; if (typeof content === 'string') { return content; } if (Array.isArray(content)) { return content .map((item) => (typeof item === 'string' ? item : 'text' in item ? item.text : '')) .join('\n'); } return ''; } export function getEffectiveRequirementsProvider(command, config, cliProvider) { return (cliProvider ?? config?.commands?.[command]?.requirementsProvider ?? config?.requirementsProvider); } export function getEffectiveContentProvider(command, config, cliProvider) { return (cliProvider ?? config?.commands?.[command]?.contentProvider ?? config?.contentProvider ?? (command === 'pr' ? 'github' : undefined)); } export async function getCommandProviderInput(command, inputType, id, config, cliProvider) { if (inputType === 'requirements') { return getRequirementsFromProvider(getEffectiveRequirementsProvider(command, config, cliProvider), id, config); } return getContentFromProvider(getEffectiveContentProvider(command, config, cliProvider), id, config); } //# sourceMappingURL=commandIntrospection.js.map