MCPcopy Create free account
hub / github.com/apache/maka / executeCell

Function executeCell

packages/eval/src/runner.ts:265–338  ·  view source on GitHub ↗
(
  executor: ExperimentExecutor,
  subject: SubjectAdapter,
  cell: ExperimentCell,
  subjectCredentialNames: readonly string[],
  signal?: AbortSignal,
)

Source from the content-addressed store, hash-verified

263}
264
265async function executeCell(
266 executor: ExperimentExecutor,
267 subject: SubjectAdapter,
268 cell: ExperimentCell,
269 subjectCredentialNames: readonly string[],
270 signal?: AbortSignal,
271): Promise<EvalResult> {
272 try {
273 const attempt = await executor.runAttempt(
274 { cell, subjectCredentialNames, ...(signal ? { signal } : {}) },
275 async ({ context, verify }) => {
276 let execution: SubjectExecutionResult;
277 try {
278 execution = decodeSubjectExecution(
279 await subject.execute({
280 cell,
281 context: { ...context, ...(signal ? { signal } : {}) },
282 }),
283 );
284 } catch {
285 return failure('infra_failed', 'subject execution failed');
286 }
287 if (
288 signal?.aborted ||
289 execution.status === 'infra_failed' ||
290 execution.status === 'indeterminate'
291 ) {
292 return fromUncertainSubject(execution, signal?.aborted === true);
293 }
294 try {
295 const verified = decodeVerification(await verify());
296 return {
297 score: verified.score,
298 usage: execution.usage,
299 costUsd: execution.costUsd,
300 durationMs: execution.durationMs,
301 status: settledStatus(execution.status, verified.status),
302 failureReason:
303 verified.status === 'infra_failed'
304 ? verified.failureReason
305 : (execution.failureReason ?? verified.failureReason),
306 artifacts: [...execution.artifacts, ...verified.artifacts],
307 };
308 } catch {
309 return failure('infra_failed', 'verification failed', execution);
310 }
311 },
312 );
313 if (attempt.kind === 'not_started') {
314 const cancelled = attempt.code === 'cancelled';
315 return failure(
316 cancelled ? 'indeterminate' : 'infra_failed',
317 cancelled ? 'executor preparation cancelled' : 'executor preparation failed',
318 undefined,
319 attempt.artifacts,
320 );
321 }
322 if (attempt.kind === 'settled') return decodeEvalResult(attempt.value);

Callers 1

runExperimentFunction · 0.85

Calls 8

decodeSubjectExecutionFunction · 0.85
fromUncertainSubjectFunction · 0.85
decodeVerificationFunction · 0.85
settledStatusFunction · 0.85
decodeEvalResultFunction · 0.85
runAttemptMethod · 0.80
failureFunction · 0.70
executeMethod · 0.65

Tested by

no test coverage detected