agency-x
Version:
This project is a Claude-compatible, LLM-agnostic sub-agent framework that simulates a complete SaaS product team. It is delivered as a reusable, developer-ready NPM package.
38 lines (31 loc) • 1.17 kB
text/typescript
import { createLogger } from '../utils/logger';
import { getContext, updateContext } from '../utils/contextStore';
import { getLlmClient } from '../llm/llmRouter';
import { productManagerPrompt, jsonRepairPrompt } from '../utils/promptTemplates';
const logger = createLogger('productManager');
export const runProductManager = async () => {
logger.start();
const context = getContext();
const { featurePrompt } = context;
const llmClient = getLlmClient();
const prompt = productManagerPrompt.replace('{{featurePrompt}}', featurePrompt);
let response = await llmClient.generate(prompt);
let spec;
try {
spec = JSON.parse(response);
} catch (error) {
logger.error('Invalid JSON response from LLM. Attempting to repair...');
const repairPrompt = jsonRepairPrompt.replace('{{invalidJson}}', response);
response = await llmClient.generate(repairPrompt);
try {
spec = JSON.parse(response);
} catch (error) {
logger.error('Failed to repair JSON response. Skipping spec generation.');
return;
}
}
updateContext({ spec });
logger.stop();
logger.success('Generated product spec.');
return spec;
};