@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/index.js CHANGED
@@ -7529,16 +7529,38 @@ async function* runUntilImpl(agent, goal, options, deps) {
7529
7529
  while (turn < maxTurns) {
7530
7530
  if (isAborted()) {
7531
7531
  yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
7532
- return { status: "paused", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
7532
+ return {
7533
+ status: "paused",
7534
+ turnsUsed: turn,
7535
+ tokensUsed,
7536
+ finalResponse: lastResponse || void 0
7537
+ };
7533
7538
  }
7534
7539
  turn += 1;
7535
7540
  yield { type: "turn_start", turn, goal };
7536
7541
  const continuationPrompt = turn === 1 ? goal : composeContinuation(goal, lastResponse);
7537
7542
  const run = await agent.send(continuationPrompt);
7543
+ const cancelOnAbort = () => {
7544
+ void run.cancel?.();
7545
+ };
7546
+ if (signal !== void 0) {
7547
+ if (signal.aborted) cancelOnAbort();
7548
+ else signal.addEventListener("abort", cancelOnAbort, { once: true });
7549
+ }
7538
7550
  const result = await run.wait();
7551
+ if (signal !== void 0) signal.removeEventListener("abort", cancelOnAbort);
7539
7552
  lastResponse = result.result ?? "";
7540
7553
  const turnTokens = result.usage?.totalTokens;
7541
7554
  if (typeof turnTokens === "number") tokensUsed += turnTokens;
7555
+ if (isAborted()) {
7556
+ yield { type: "status_change", status: "paused", reason: "aborted via AbortSignal" };
7557
+ return {
7558
+ status: "paused",
7559
+ turnsUsed: turn,
7560
+ tokensUsed,
7561
+ finalResponse: lastResponse || void 0
7562
+ };
7563
+ }
7542
7564
  yield { type: "agent_response", turn, content: lastResponse };
7543
7565
  const judgeOpts = {};
7544
7566
  if (options?.judgeModel !== void 0) judgeOpts.judgeModel = options.judgeModel;
@@ -7573,7 +7595,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
7573
7595
  }
7574
7596
  if (judgment.verdict === "done") {
7575
7597
  yield { type: "status_change", status: "completed", reason: judgment.reason };
7576
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
7598
+ return {
7599
+ status: "completed",
7600
+ turnsUsed: turn,
7601
+ tokensUsed,
7602
+ finalResponse: lastResponse || void 0
7603
+ };
7577
7604
  }
7578
7605
  if (judgment.verdict === "skipped") {
7579
7606
  yield {
@@ -7581,7 +7608,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
7581
7608
  status: "completed",
7582
7609
  reason: `skipped: ${judgment.reason}`
7583
7610
  };
7584
- return { status: "completed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
7611
+ return {
7612
+ status: "completed",
7613
+ turnsUsed: turn,
7614
+ tokensUsed,
7615
+ finalResponse: lastResponse || void 0
7616
+ };
7585
7617
  }
7586
7618
  if (tokenBudget !== void 0 && tokensUsed >= tokenBudget) {
7587
7619
  yield {
@@ -7589,7 +7621,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
7589
7621
  status: "budget_limited",
7590
7622
  reason: `token budget (${tokenBudget}) reached: ${tokensUsed} used`
7591
7623
  };
7592
- return { status: "budget_limited", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
7624
+ return {
7625
+ status: "budget_limited",
7626
+ turnsUsed: turn,
7627
+ tokensUsed,
7628
+ finalResponse: lastResponse || void 0
7629
+ };
7593
7630
  }
7594
7631
  yield { type: "continuation", turn, prompt: continuationPrompt };
7595
7632
  }
@@ -7598,7 +7635,12 @@ async function* runUntilImpl(agent, goal, options, deps) {
7598
7635
  status: "failed",
7599
7636
  reason: `max turns (${maxTurns}) exhausted`
7600
7637
  };
7601
- return { status: "failed", turnsUsed: turn, tokensUsed, finalResponse: lastResponse || void 0 };
7638
+ return {
7639
+ status: "failed",
7640
+ turnsUsed: turn,
7641
+ tokensUsed,
7642
+ finalResponse: lastResponse || void 0
7643
+ };
7602
7644
  }
7603
7645
  function composeContinuation(goal, lastResponse) {
7604
7646
  return [