pit-manager
Version:
Centralized prompt management system for Human Behavior AI agents
73 lines (59 loc) • 2.86 kB
text/typescript
/**
* Test script to verify that parentExecutionId options are now working
*/
import { model, prompts } from '../src/typescript/simplified';
import * as path from 'path';
import * as fs from 'fs/promises';
async function testParentExecutionFix() {
console.log('Testing parentExecutionId fix...');
try {
// First execution (parent)
console.log('Creating parent execution...');
const parentResponse = await model.complete(
'gpt-4o-mini',
'Say "This is the parent"',
'parent-agent'
);
console.log(`Parent execution ID: ${parentResponse.executionId}`);
// Second execution (child with explicit parentExecutionId)
console.log('Creating child execution with explicit parentExecutionId...');
const childResponse = await model.complete(
'gpt-4o-mini',
'Say "This is the child"',
'child-agent',
undefined,
{
parentExecutionId: parentResponse.executionId
}
);
console.log(`Child execution ID: ${childResponse.executionId}`);
console.log(`Child specified parent ID: ${parentResponse.executionId}`);
// Check if the child execution was stored with the correct parent ID
const executionsDir = path.join(process.cwd(), '.pit', 'executions');
const childFile = path.join(executionsDir, `${childResponse.executionId}.json`);
// Wait a moment for file to be written
await new Promise(resolve => setTimeout(resolve, 1000));
try {
const childData = await fs.readFile(childFile, 'utf-8');
const childExecution = JSON.parse(childData);
console.log('\n=== CHILD EXECUTION DATA ===');
console.log(`Execution ID: ${childExecution.id}`);
console.log(`Tag: ${childExecution.tag}`);
console.log(`Parent Execution ID: ${childExecution.parent_execution_id}`);
console.log(`Chain Group ID: ${childExecution.chain_group_id}`);
if (childExecution.parent_execution_id === parentResponse.executionId) {
console.log('\n✅ SUCCESS! Parent execution ID is correctly stored.');
} else {
console.log('\n❌ FAILED! Parent execution ID is not correctly stored.');
console.log(`Expected: ${parentResponse.executionId}`);
console.log(`Actual: ${childExecution.parent_execution_id}`);
}
} catch (error) {
console.error('Error reading child execution file:', error);
}
} catch (error) {
console.error('Error in test:', error);
}
}
testParentExecutionFix().catch(console.error);