Designing a source-level debugger for cognitive agent programs