UNPKG

@just-every/task

Version:

Task - A Thoughtful Task Loop

56 lines (49 loc) 1.92 kB
import { Agent } from '@just-every/ensemble'; import { runTask, addMessageToTask } from '../dist/index.js'; // Simple test for message injection async function testMessageInjection() { console.log('Testing message injection capability...\n'); // Create a simple agent const agent = new Agent({ name: 'TestAgent', modelClass: 'fast', instructions: 'You are a helpful assistant. When you receive developer messages, acknowledge them explicitly.' }); // Create task const task = runTask( agent, 'Count from 1 to 5 slowly. After each number, wait for any developer guidance.' ); // Schedule message injections setTimeout(() => { console.log('\n[TEST] Injecting developer message after 2 seconds...'); addMessageToTask(task, { type: 'message', role: 'developer', content: 'DEVELOPER GUIDANCE: Please continue counting but add a fun fact about each number.' }); }, 2000); setTimeout(() => { console.log('\n[TEST] Injecting another developer message after 5 seconds...'); addMessageToTask(task, { type: 'message', role: 'developer', content: 'DEVELOPER GUIDANCE: Great job! Now please finish up quickly.' }); }, 5000); // Process the task events for await (const event of task) { if (event.type === 'message_delta' && event.content) { process.stdout.write(event.content); } else if (event.type === 'task_complete') { console.log('\n\n[TEST] Task completed successfully!'); console.log('Result:', event.result); break; } else if (event.type === 'error') { console.error('\n[TEST] Error:', event.error); break; } } } // Run the test testMessageInjection().catch(console.error);