@sema-agent/core 1.416.0 → 1.417.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.
@@ -40,4 +40,10 @@ export interface BackgroundShellCapability {
40
40
  }): Promise<void>;
41
41
  }
42
42
  export declare function hasBackgroundShell(env: ExecutionEnv): env is ExecutionEnv & BackgroundShellCapability;
43
+ export interface EnvSweepAttribution {
44
+ markStopSourceForEnvSweep(env: unknown, source: string, except?: readonly string[]): string[];
45
+ }
46
+ export declare function sweepBackgroundShells(env: ExecutionEnv & BackgroundShellCapability, attribution: EnvSweepAttribution | undefined, opts?: {
47
+ except?: readonly string[];
48
+ }): Promise<void>;
43
49
  //# sourceMappingURL=background-shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"background-shell.d.ts","sourceRoot":"","sources":["../../src/core/background-shell.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAM5F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAGnF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAM/E,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,IAAI,CAAC;AAGT,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAFf,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,OAAO,YAAA;CAK3B;AAQD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC;AAG5G,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,qBAAqB,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAIlC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,sBAAsB,EAAE;QAE/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAE5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;QAErC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QAGjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAQlC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;KAC9C,CAAC;IAMF,eAAe,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAQzE,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAGlG,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAYxF,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAQD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,IAAI,YAAY,GAAG,yBAAyB,CAWrG"}
1
+ {"version":3,"file":"background-shell.d.ts","sourceRoot":"","sources":["../../src/core/background-shell.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAM5F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAGnF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAM/E,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,SAAS,GACT,IAAI,CAAC;AAGT,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;gBAFf,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,OAAO,YAAA;CAK3B;AAQD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC;AAG5G,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,qBAAqB,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAIlC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,sBAAsB,EAAE;QAE/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAE5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;QAErC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QAGjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAQlC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;KAC9C,CAAC;IAMF,eAAe,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAQzE,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAGlG,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAYxF,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAQD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,IAAI,YAAY,GAAG,yBAAyB,CAWrG;AAoBD,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAC/F;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,YAAY,GAAG,yBAAyB,EAC7C,WAAW,EAAE,mBAAmB,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -18,4 +18,12 @@ export function hasBackgroundShell(env) {
18
18
  e.backgroundCapabilities !== null &&
19
19
  e.backgroundCapabilities.supported === true);
20
20
  }
21
+ export async function sweepBackgroundShells(env, attribution, opts) {
22
+ try {
23
+ attribution?.markStopSourceForEnvSweep(env, "env_sweep", opts?.except);
24
+ }
25
+ catch {
26
+ }
27
+ await env.disposeBackgroundShells(opts?.except !== undefined ? { except: opts.except } : undefined);
28
+ }
21
29
  //# sourceMappingURL=background-shell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"background-shell.js","sourceRoot":"","sources":["../../src/core/background-shell.ts"],"names":[],"mappings":"AAuCA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IAEA;IAHX,YACW,IAA8B,EACvC,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAA0B;QAE9B,UAAK,GAAL,KAAK,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AA0GD,MAAM,UAAU,kBAAkB,CAAC,GAAiB;IAClD,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CACL,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU;QACvC,OAAO,CAAC,CAAC,cAAc,KAAK,UAAU;QACtC,OAAO,CAAC,CAAC,cAAc,KAAK,UAAU;QACtC,OAAO,CAAC,CAAC,uBAAuB,KAAK,UAAU;QAC/C,OAAO,CAAC,CAAC,sBAAsB,KAAK,QAAQ;QAC5C,CAAC,CAAC,sBAAsB,KAAK,IAAI;QACjC,CAAC,CAAC,sBAAsB,CAAC,SAAS,KAAK,IAAI,CAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"background-shell.js","sourceRoot":"","sources":["../../src/core/background-shell.ts"],"names":[],"mappings":"AAuCA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAElC;IAEA;IAHX,YACW,IAA8B,EACvC,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAA0B;QAE9B,UAAK,GAAL,KAAK,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AA0GD,MAAM,UAAU,kBAAkB,CAAC,GAAiB;IAClD,MAAM,CAAC,GAAG,GAAyC,CAAC;IACpD,OAAO,CACL,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU;QACvC,OAAO,CAAC,CAAC,cAAc,KAAK,UAAU;QACtC,OAAO,CAAC,CAAC,cAAc,KAAK,UAAU;QACtC,OAAO,CAAC,CAAC,uBAAuB,KAAK,UAAU;QAC/C,OAAO,CAAC,CAAC,sBAAsB,KAAK,QAAQ;QAC5C,CAAC,CAAC,sBAAsB,KAAK,IAAI;QACjC,CAAC,CAAC,sBAAsB,CAAC,SAAS,KAAK,IAAI,CAC5C,CAAC;AACJ,CAAC;AAwBD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAA6C,EAC7C,WAA4C,EAC5C,IAAqC;IAKrC,IAAI,CAAC;QACH,WAAW,EAAE,yBAAyB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,MAAM,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/G,CAAC"}
@@ -51,7 +51,7 @@ import { capAggregateMediaBytes, AGGREGATE_MEDIA_BUDGET_BYTES } from "../media-b
51
51
  import { dropOrphanToolResults, guardBudget, insertTrimNotice, trimToBudget } from "../context-guard.js";
52
52
  import { StubExecutionEnv } from "../stub-env.js";
53
53
  import { hasDestroy, isIsolated, isRemoteExecutionEnv, isSuspendable } from "../remote-env.js";
54
- import { hasBackgroundShell } from "../background-shell.js";
54
+ import { hasBackgroundShell, sweepBackgroundShells } from "../background-shell.js";
55
55
  import { createTaskOutputTool, createTaskStopTool, defaultTaskRegistry } from "../task-registry.js";
56
56
  import { createMonitorTool } from "../../tools/monitor.js";
57
57
  import { createWorktreeTools } from "../../tools/worktree.js";
@@ -2800,7 +2800,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2800
2800
  let remoteHandle;
2801
2801
  if (suspendableEnv !== undefined) {
2802
2802
  if (hasBackgroundShell(suspendableEnv))
2803
- await suspendableEnv.disposeBackgroundShells();
2803
+ await sweepBackgroundShells(suspendableEnv, defaultTaskRegistry);
2804
2804
  const snap = await suspendableEnv.suspendVM({ abortSignal: abortController.signal });
2805
2805
  if (!snap.ok) {
2806
2806
  deps.onError?.(new Error(`resource suspendVM failed (${snap.error.code}): ${snap.error.message}`, { cause: snap.error }), { phase: "config", sessionId });
@@ -2810,7 +2810,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2810
2810
  }
2811
2811
  else if (parkOnlyRemoteEnv !== undefined) {
2812
2812
  if (hasBackgroundShell(parkOnlyRemoteEnv) && spec.retainBackgroundProcesses !== true)
2813
- await parkOnlyRemoteEnv.disposeBackgroundShells();
2813
+ await sweepBackgroundShells(parkOnlyRemoteEnv, defaultTaskRegistry);
2814
2814
  remoteHandle = parkOnlyHandle(parkOnlyRemoteEnv);
2815
2815
  }
2816
2816
  const token = mintCheckpointToken();
@@ -2870,7 +2870,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2870
2870
  let remoteHandle;
2871
2871
  if (suspendableEnv !== undefined) {
2872
2872
  if (hasBackgroundShell(suspendableEnv))
2873
- await suspendableEnv.disposeBackgroundShells();
2873
+ await sweepBackgroundShells(suspendableEnv, defaultTaskRegistry);
2874
2874
  const snap = await suspendableEnv.suspendVM({ abortSignal: abortController.signal });
2875
2875
  if (!snap.ok) {
2876
2876
  deps.onError?.(new Error(`plan_review suspendVM failed (${snap.error.code}): ${snap.error.message}`, { cause: snap.error }), { phase: "config", sessionId });
@@ -2880,7 +2880,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2880
2880
  }
2881
2881
  else if (parkOnlyRemoteEnv !== undefined) {
2882
2882
  if (hasBackgroundShell(parkOnlyRemoteEnv) && spec.retainBackgroundProcesses !== true)
2883
- await parkOnlyRemoteEnv.disposeBackgroundShells();
2883
+ await sweepBackgroundShells(parkOnlyRemoteEnv, defaultTaskRegistry);
2884
2884
  remoteHandle = parkOnlyHandle(parkOnlyRemoteEnv);
2885
2885
  }
2886
2886
  const token = mintCheckpointToken();
@@ -2963,7 +2963,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2963
2963
  return undefined;
2964
2964
  if (remoteEnv !== undefined) {
2965
2965
  if (hasBackgroundShell(remoteEnv))
2966
- await remoteEnv.disposeBackgroundShells();
2966
+ await sweepBackgroundShells(remoteEnv, defaultTaskRegistry);
2967
2967
  const snap = await remoteEnv.suspendVM({ abortSignal: abortController.signal });
2968
2968
  if (!snap.ok) {
2969
2969
  throw new Error(`suspendVM failed (${snap.error.code}): ${snap.error.message}`, { cause: snap.error });
@@ -2972,7 +2972,7 @@ export async function prepareTask(spec, deps, sessions, resume, _memorySelector,
2972
2972
  }
2973
2973
  else if (parkOnlyRemoteEnv !== undefined) {
2974
2974
  if (hasBackgroundShell(parkOnlyRemoteEnv) && spec.retainBackgroundProcesses !== true)
2975
- await parkOnlyRemoteEnv.disposeBackgroundShells();
2975
+ await sweepBackgroundShells(parkOnlyRemoteEnv, defaultTaskRegistry);
2976
2976
  remoteHandle = parkOnlyHandle(parkOnlyRemoteEnv);
2977
2977
  }
2978
2978
  token = mintCheckpointToken();