MCPcopy Create free account
hub / github.com/cortexkit/magic-context / processQuestion

Function processQuestion

packages/plugin/scripts/longmemeval/runner.ts:790–841  ·  view source on GitHub ↗
(args: {
    client: OpencodeClient;
    config: RunnerConfig;
    question: LongMemEvalQuestion;
    datasetIndex: number;
    state: RunnerStateFile;
    resultsMap: Map<string, QuestionResultRecord>;
})

Source from the content-addressed store, hash-verified

788}
789
790async function processQuestion(args: {
791 client: OpencodeClient;
792 config: RunnerConfig;
793 question: LongMemEvalQuestion;
794 datasetIndex: number;
795 state: RunnerStateFile;
796 resultsMap: Map<string, QuestionResultRecord>;
797}): Promise<void> {
798 const { client, config, question, datasetIndex, state, resultsMap } = args;
799 const resumedState = state.inProgress[question.question_id];
800 if (resultsMap.has(question.question_id)) {
801 if (resumedState) {
802 await cleanupSessions({
803 client,
804 config,
805 questionState: resumedState,
806 state,
807 questionId: question.question_id,
808 });
809 await markQuestionCompleted({ config, state, questionState: resumedState });
810 }
811 return;
812 }
813 if (state.completedQuestionIds.includes(question.question_id)) {
814 return;
815 }
816
817 const questionState = resumedState ?? createQuestionState(question, datasetIndex);
818 questionState.attemptCount += 1;
819 questionState.updatedAt = nowIso();
820 state.inProgress[question.question_id] = questionState;
821 await persistState(config, state);
822
823 try {
824 await appendLog(config.paths.logFile, `Starting question ${question.question_id} (${question.question_type})`);
825 await replayHaystack({ client, config, question, questionState, state });
826 await askFinalQuestion({ client, config, question, questionState, state });
827 await judgeQuestion({ config, question, questionState, state, resultsMap });
828 await cleanupSessions({ client, config, questionState, state, questionId: question.question_id });
829 await markQuestionCompleted({ config, state, questionState });
830 await appendLog(config.paths.logFile, `Completed question ${question.question_id}`);
831 } catch (error) {
832 updateErrorState(questionState, "process-question", error);
833 state.inProgress[question.question_id] = questionState;
834 await persistState(config, state);
835 await appendLog(
836 config.paths.logFile,
837 `Question ${question.question_id} failed: ${questionState.lastError?.message ?? "unknown"}`,
838 );
839 throw error;
840 }
841}
842
843function buildSummary(results: QuestionResultRecord[], selectedCount: number, config: RunnerConfig): RunSummary {
844 const rows: RunSummaryRow[] = LONGMEMEVAL_QUESTION_TYPES.map((category) => {

Callers 1

workerFunction · 0.85

Calls 11

cleanupSessionsFunction · 0.85
markQuestionCompletedFunction · 0.85
createQuestionStateFunction · 0.85
nowIsoFunction · 0.85
persistStateFunction · 0.85
appendLogFunction · 0.85
replayHaystackFunction · 0.85
askFinalQuestionFunction · 0.85
judgeQuestionFunction · 0.85
updateErrorStateFunction · 0.85
hasMethod · 0.80

Tested by

no test coverage detected