@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.cjs CHANGED
@@ -6274,16 +6274,38 @@ async function* runUntilImpl(agent, goal, options, deps) {
6274
6274
  while (turn < maxTurns) {
6275
6275
  if (isAborted()) {
6276
6276
  yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
6277
- return { status: "paused", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6277
+ return {
6278
+ status: "paused",
6279
+ turnsUsed: turn,
6280
+ tokensUsed,
6281
+ finalResponse: lastResponse || void 0
6282
+ };
6278
6283
  }
6279
6284
  turn += 1;
6280
6285
  yield { type: "turn_start", turn, goal };
6281
6286
  const continuationPrompt = turn === 1 ? goal : composeContinuation(goal, lastResponse);
6282
6287
  const run = await agent.send(continuationPrompt);
6288
+ const cancelOnAbort = () => {
6289
+ void run.cancel?.();
6290
+ };
6291
+ if (signal !== void 0) {
6292
+ if (signal.aborted) cancelOnAbort();
6293
+ else signal.addEventListener("abort", cancelOnAbort, { once: true });
6294
+ }
6283
6295
  const result = await run.wait();
6296
+ if (signal !== void 0) signal.removeEventListener("abort", cancelOnAbort);
6284
6297
  lastResponse = result.result ?? "";
6285
6298
  const turnTokens = result.usage?.totalTokens;
6286
6299
  if (typeof turnTokens === "number") tokensUsed += turnTokens;
6300
+ if (isAborted()) {
6301
+ yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
6302
+ return {
6303
+ status: "paused",
6304
+ turnsUsed: turn,
6305
+ tokensUsed,
6306
+ finalResponse: lastResponse || void 0
6307
+ };
6308
+ }
6287
6309
  yield { type: "agent_response", turn, content: lastResponse };
6288
6310
  const judgeOpts = {};
6289
6311
  if (options?.judgeModel !== void 0) judgeOpts.judgeModel = options.judgeModel;
@@ -6318,7 +6340,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6318
6340
  }
6319
6341
  if (judgment.verdict === "done") {
6320
6342
  yield { type: "status_change", status: "completed", reason: judgment.reason };
6321
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6343
+ return {
6344
+ status: "completed",
6345
+ turnsUsed: turn,
6346
+ tokensUsed,
6347
+ finalResponse: lastResponse || void 0
6348
+ };
6322
6349
  }
6323
6350
  if (judgment.verdict === "skipped") {
6324
6351
  yield {
@@ -6326,7 +6353,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6326
6353
  status: "completed",
6327
6354
  reason: `skipped: ${judgment.reason}`
6328
6355
  };
6329
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6356
+ return {
6357
+ status: "completed",
6358
+ turnsUsed: turn,
6359
+ tokensUsed,
6360
+ finalResponse: lastResponse || void 0
6361
+ };
6330
6362
  }
6331
6363
  if (tokenBudget !== void 0 && tokensUsed >= tokenBudget) {
6332
6364
  yield {
@@ -6334,7 +6366,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6334
6366
  status: "budget_limited",
6335
6367
  reason: `token budget (${tokenBudget}) reached: ${tokensUsed} used`
6336
6368
  };
6337
- return { status: "budget_limited", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6369
+ return {
6370
+ status: "budget_limited",
6371
+ turnsUsed: turn,
6372
+ tokensUsed,
6373
+ finalResponse: lastResponse || void 0
6374
+ };
6338
6375
  }
6339
6376
  yield { type: "continuation", turn, prompt: continuationPrompt };
6340
6377
  }
@@ -6343,7 +6380,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
6343
6380
  status: "failed",
6344
6381
  reason: `max turns (${maxTurns}) exhausted`
6345
6382
  };
6346
- return { status: "failed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
6383
+ return {
6384
+ status: "failed",
6385
+ turnsUsed: turn,
6386
+ tokensUsed,
6387
+ finalResponse: lastResponse || void 0
6388
+ };
6347
6389
  }
6348
6390
  function composeContinuation(goal, lastResponse) {
6349
6391
  return [