@theokit/sdk 4.18.0 → 4.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/eval.js CHANGED
@@ -6271,16 +6271,38 @@ async function* runUntilImpl(agent, goal, options, deps) {
6271
6271
  while (turn < maxTurns) {
6272
6272
  if (isAborted()) {
6273
6273
  yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
6274
- return { status: "paused", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6274
+ return {
6275
+ status: "paused",
6276
+ turnsUsed: turn,
6277
+ tokensUsed,
6278
+ finalResponse: lastResponse || void 0
6279
+ };
6275
6280
  }
6276
6281
  turn += 1;
6277
6282
  yield { type: "turn_start", turn, goal };
6278
6283
  const continuationPrompt = turn === 1 ? goal : composeContinuation(goal, lastResponse);
6279
6284
  const run = await agent.send(continuationPrompt);
6285
+ const cancelOnAbort = () => {
6286
+ void run.cancel?.();
6287
+ };
6288
+ if (signal !== void 0) {
6289
+ if (signal.aborted) cancelOnAbort();
6290
+ else signal.addEventListener("abort", cancelOnAbort, { once: true });
6291
+ }
6280
6292
  const result = await run.wait();
6293
+ if (signal !== void 0) signal.removeEventListener("abort", cancelOnAbort);
6281
6294
  lastResponse = result.result ?? "";
6282
6295
  const turnTokens = result.usage?.totalTokens;
6283
6296
  if (typeof turnTokens === "number") tokensUsed += turnTokens;
6297
+ if (isAborted()) {
6298
+ yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
6299
+ return {
6300
+ status: "paused",
6301
+ turnsUsed: turn,
6302
+ tokensUsed,
6303
+ finalResponse: lastResponse || void 0
6304
+ };
6305
+ }
6284
6306
  yield { type: "agent_response", turn, content: lastResponse };
6285
6307
  const judgeOpts = {};
6286
6308
  if (options?.judgeModel !== void 0) judgeOpts.judgeModel = options.judgeModel;
@@ -6315,7 +6337,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6315
6337
  }
6316
6338
  if (judgment.verdict === "done") {
6317
6339
  yield { type: "status_change", status: "completed", reason: judgment.reason };
6318
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6340
+ return {
6341
+ status: "completed",
6342
+ turnsUsed: turn,
6343
+ tokensUsed,
6344
+ finalResponse: lastResponse || void 0
6345
+ };
6319
6346
  }
6320
6347
  if (judgment.verdict === "skipped") {
6321
6348
  yield {
@@ -6323,7 +6350,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6323
6350
  status: "completed",
6324
6351
  reason: `skipped: ${judgment.reason}`
6325
6352
  };
6326
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6353
+ return {
6354
+ status: "completed",
6355
+ turnsUsed: turn,
6356
+ tokensUsed,
6357
+ finalResponse: lastResponse || void 0
6358
+ };
6327
6359
  }
6328
6360
  if (tokenBudget !== void 0 && tokensUsed >= tokenBudget) {
6329
6361
  yield {
@@ -6331,7 +6363,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6331
6363
  status: "budget_limited",
6332
6364
  reason: `token budget (${tokenBudget}) reached: ${tokensUsed} used`
6333
6365
  };
6334
- return { status: "budget_limited", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6366
+ return {
6367
+ status: "budget_limited",
6368
+ turnsUsed: turn,
6369
+ tokensUsed,
6370
+ finalResponse: lastResponse || void 0
6371
+ };
6335
6372
  }
6336
6373
  yield { type: "continuation", turn, prompt: continuationPrompt };
6337
6374
  }
@@ -6340,7 +6377,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6340
6377
  status: "failed",
6341
6378
  reason: `max turns (${maxTurns}) exhausted`
6342
6379
  };
6343
- return { status: "failed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6380
+ return {
6381
+ status: "failed",
6382
+ turnsUsed: turn,
6383
+ tokensUsed,
6384
+ finalResponse: lastResponse || void 0
6385
+ };
6344
6386
  }
6345
6387
  function composeContinuation(goal, lastResponse) {
6346
6388
  return [