semantic-prompt-mcp
Version:
MCP server for semantic prompt framework - NLP-inspired adaptive reasoning engine for LLM orchestration
46 lines • 1.73 kB
JavaScript
/**
* Prompt loading utilities for semantic-prompt-mcp
*/
import { readFileSync } from 'fs';
import { join } from 'path';
import { DEFAULT_PROMPTS } from '../constants/index.js';
export class PromptLoader {
static loadPrompts(currentDir) {
let promptFile;
// Priority 1: Command line argument (--prompt filename.json or just filename.json)
const args = process.argv.slice(2);
const promptArgIndex = args.findIndex(arg => arg === '--prompt');
if (promptArgIndex !== -1 && args[promptArgIndex + 1]) {
promptFile = args[promptArgIndex + 1];
}
else if (args.length > 0 && args[0].endsWith('.json')) {
promptFile = args[0];
}
// Priority 2: Environment variable
if (!promptFile && process.env.CHAIN_OF_THOUGHT_CONFIG) {
promptFile = process.env.CHAIN_OF_THOUGHT_CONFIG;
}
// Priority 3: Default fallback
if (!promptFile) {
promptFile = 'default.json';
}
// Resolve the path
const promptPath = promptFile.includes('/') || promptFile.includes('\\')
? promptFile
: join(currentDir, '..', 'prompts', promptFile);
try {
return JSON.parse(readFileSync(promptPath, 'utf-8'));
}
catch (error) {
console.error(`Failed to load prompts from ${promptPath}:`, error);
// Fallback to hardcoded minimal prompts
return {
errors: DEFAULT_PROMPTS.ERRORS,
messages: DEFAULT_PROMPTS.MESSAGES,
console: DEFAULT_PROMPTS.CONSOLE,
config: {}
};
}
}
}
//# sourceMappingURL=promptLoader.js.map