@elisym/cli 0.18.1 → 0.19.0

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
@@ -2497,12 +2497,9 @@ var AgentRuntime = class {
2497
2497
  signal.addEventListener("abort", onOuterAbort);
2498
2498
  }
2499
2499
  }
2500
- const budgetTimer = budgetMs > 0 ? setTimeout(() => {
2501
- budgetExceeded = true;
2502
- execAbort.abort();
2503
- }, budgetMs) : void 0;
2500
+ let budgetTimer;
2504
2501
  try {
2505
- output = await skill.execute(
2502
+ const execPromise = skill.execute(
2506
2503
  {
2507
2504
  data: job.input,
2508
2505
  inputType: job.inputType,
@@ -2511,6 +2508,22 @@ var AgentRuntime = class {
2511
2508
  },
2512
2509
  { ...this.skillCtx, signal: execAbort.signal }
2513
2510
  );
2511
+ execPromise.catch(() => {
2512
+ });
2513
+ if (budgetMs > 0) {
2514
+ output = await Promise.race([
2515
+ execPromise,
2516
+ new Promise((_resolve, reject) => {
2517
+ budgetTimer = setTimeout(() => {
2518
+ budgetExceeded = true;
2519
+ execAbort.abort();
2520
+ reject(new ExecutionBudgetExceededError(budgetMs));
2521
+ }, budgetMs);
2522
+ })
2523
+ ]);
2524
+ } else {
2525
+ output = await execPromise;
2526
+ }
2514
2527
  } catch (err) {
2515
2528
  if (budgetExceeded) {
2516
2529
  log(`[${job.jobId.slice(0, 8)}] Execution exceeded budget (${budgetMs / 1e3}s)`);
@@ -2832,10 +2845,10 @@ var AgentRuntime = class {
2832
2845
  }
2833
2846
  }
2834
2847
  const recoveryBudgetMs = this.resolveExecutionBudgetMs(skill);
2835
- const budgetTimer = recoveryBudgetMs > 0 ? setTimeout(() => recoveryAbort.abort(), recoveryBudgetMs) : void 0;
2848
+ let budgetTimer;
2836
2849
  let output;
2837
2850
  try {
2838
- output = await skill.execute(
2851
+ const execPromise = skill.execute(
2839
2852
  {
2840
2853
  data: entry.input,
2841
2854
  inputType: entry.input_type,
@@ -2844,6 +2857,21 @@ var AgentRuntime = class {
2844
2857
  },
2845
2858
  { ...this.skillCtx, signal: recoveryAbort.signal }
2846
2859
  );
2860
+ execPromise.catch(() => {
2861
+ });
2862
+ if (recoveryBudgetMs > 0) {
2863
+ output = await Promise.race([
2864
+ execPromise,
2865
+ new Promise((_resolve, reject) => {
2866
+ budgetTimer = setTimeout(() => {
2867
+ recoveryAbort.abort();
2868
+ reject(new ExecutionBudgetExceededError(recoveryBudgetMs));
2869
+ }, recoveryBudgetMs);
2870
+ })
2871
+ ]);
2872
+ } else {
2873
+ output = await execPromise;
2874
+ }
2847
2875
  } finally {
2848
2876
  if (budgetTimer) {
2849
2877
  clearTimeout(budgetTimer);