@sema-agent/core 1.294.0 → 1.295.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.
Files changed (79) hide show
  1. package/dist/agents/subagent.d.ts.map +1 -1
  2. package/dist/agents/subagent.js +24 -3
  3. package/dist/agents/subagent.js.map +1 -1
  4. package/dist/bin/sema-tb.d.ts.map +1 -1
  5. package/dist/bin/sema-tb.js +7 -2
  6. package/dist/bin/sema-tb.js.map +1 -1
  7. package/dist/brain/anthropic.d.ts.map +1 -1
  8. package/dist/brain/anthropic.js +9 -3
  9. package/dist/brain/anthropic.js.map +1 -1
  10. package/dist/brain/openai.d.ts +1 -0
  11. package/dist/brain/openai.d.ts.map +1 -1
  12. package/dist/brain/openai.js +320 -298
  13. package/dist/brain/openai.js.map +1 -1
  14. package/dist/core/hooks.d.ts +3 -3
  15. package/dist/core/hooks.d.ts.map +1 -1
  16. package/dist/core/hooks.js +11 -4
  17. package/dist/core/hooks.js.map +1 -1
  18. package/dist/core/present-plan-tool.d.ts.map +1 -1
  19. package/dist/core/present-plan-tool.js +12 -13
  20. package/dist/core/present-plan-tool.js.map +1 -1
  21. package/dist/core/runner/prepare-task.d.ts.map +1 -1
  22. package/dist/core/runner/prepare-task.js +42 -15
  23. package/dist/core/runner/prepare-task.js.map +1 -1
  24. package/dist/core/runner/runtask.d.ts.map +1 -1
  25. package/dist/core/runner/runtask.js +9 -5
  26. package/dist/core/runner/runtask.js.map +1 -1
  27. package/dist/core/sensitive-path-policy.d.ts +2 -1
  28. package/dist/core/sensitive-path-policy.d.ts.map +1 -1
  29. package/dist/core/sensitive-path-policy.js +22 -0
  30. package/dist/core/sensitive-path-policy.js.map +1 -1
  31. package/dist/core/task-registry.d.ts +4 -0
  32. package/dist/core/task-registry.d.ts.map +1 -1
  33. package/dist/core/task-registry.js +83 -15
  34. package/dist/core/task-registry.js.map +1 -1
  35. package/dist/core/tool-policy.d.ts +5 -2
  36. package/dist/core/tool-policy.d.ts.map +1 -1
  37. package/dist/core/tool-policy.js +9 -0
  38. package/dist/core/tool-policy.js.map +1 -1
  39. package/dist/core/types.d.ts +4 -0
  40. package/dist/core/types.d.ts.map +1 -1
  41. package/dist/engine/compaction/utils.d.ts.map +1 -1
  42. package/dist/engine/compaction/utils.js +3 -1
  43. package/dist/engine/compaction/utils.js.map +1 -1
  44. package/dist/engine/harness/messages.d.ts +2 -0
  45. package/dist/engine/harness/messages.d.ts.map +1 -1
  46. package/dist/engine/harness/messages.js +52 -3
  47. package/dist/engine/harness/messages.js.map +1 -1
  48. package/dist/engine/llm/types.d.ts.map +1 -1
  49. package/dist/engine/session/import-validate.d.ts.map +1 -1
  50. package/dist/engine/session/import-validate.js +64 -0
  51. package/dist/engine/session/import-validate.js.map +1 -1
  52. package/dist/index.d.ts +2 -2
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/scenarios/full-body.d.ts.map +1 -1
  57. package/dist/scenarios/full-body.js +3 -2
  58. package/dist/scenarios/full-body.js.map +1 -1
  59. package/dist/tools/fs/index.d.ts +4 -1
  60. package/dist/tools/fs/index.d.ts.map +1 -1
  61. package/dist/tools/fs/index.js +59 -20
  62. package/dist/tools/fs/index.js.map +1 -1
  63. package/dist/tools/fs/safety.d.ts +1 -1
  64. package/dist/tools/fs/safety.d.ts.map +1 -1
  65. package/dist/tools/fs/safety.js +3 -1
  66. package/dist/tools/fs/safety.js.map +1 -1
  67. package/dist/tools/fs/search.d.ts +7 -2
  68. package/dist/tools/fs/search.d.ts.map +1 -1
  69. package/dist/tools/fs/search.js +465 -57
  70. package/dist/tools/fs/search.js.map +1 -1
  71. package/dist/tools/monitor.d.ts.map +1 -1
  72. package/dist/tools/monitor.js +12 -1
  73. package/dist/tools/monitor.js.map +1 -1
  74. package/dist/tools/task-list.d.ts.map +1 -1
  75. package/dist/tools/task-list.js.map +1 -1
  76. package/dist/tools/worktree.d.ts.map +1 -1
  77. package/dist/tools/worktree.js +15 -2
  78. package/dist/tools/worktree.js.map +1 -1
  79. package/package.json +1 -1
@@ -1224,7 +1224,8 @@ export class Runner {
1224
1224
  const batchArgs = postToolBatchHook ? new Map() : undefined;
1225
1225
  let toolBatch = [];
1226
1226
  const onToolStart = (event) => {
1227
- toolStartAt.set(event.toolCallId, Date.now());
1227
+ const startAt = Date.now();
1228
+ toolStartAt.set(event.toolCallId, startAt);
1228
1229
  startedToolCallIds.add(event.toolCallId);
1229
1230
  batchArgs?.set(event.toolCallId, event.args);
1230
1231
  stats.toolCalls += 1;
@@ -1235,7 +1236,7 @@ export class Runner {
1235
1236
  groundingSignalPostR9 = true;
1236
1237
  }
1237
1238
  const activityArg = primaryActivityArg(event.args);
1238
- internals?.onActivity?.({ phase: "start", toolCallId: event.toolCallId, toolName: event.toolName, ...(activityArg !== undefined ? { arg: activityArg } : {}) });
1239
+ internals?.onActivity?.({ phase: "start", toolCallId: event.toolCallId, toolName: event.toolName, at: startAt, ...(activityArg !== undefined ? { arg: activityArg } : {}) });
1239
1240
  pushContent({
1240
1241
  type: "tool_start",
1241
1242
  toolCallId: event.toolCallId,
@@ -1285,7 +1286,7 @@ export class Runner {
1285
1286
  ok: !event.isError,
1286
1287
  ts: toolNow,
1287
1288
  }));
1288
- internals?.onActivity?.({ phase: "end", toolCallId: event.toolCallId, toolName: event.toolName, isError: event.isError });
1289
+ internals?.onActivity?.({ phase: "end", toolCallId: event.toolCallId, toolName: event.toolName, isError: event.isError, at: toolNow });
1289
1290
  if (prepared.lspDiagnostics && !event.isError) {
1290
1291
  const name = canonicalToolName(event.toolName);
1291
1292
  if (name === "Edit" || name === "Write" || name === "NotebookEdit") {
@@ -2446,7 +2447,7 @@ export class Runner {
2446
2447
  prepared.suspendRef.token === undefined &&
2447
2448
  prepared.reviewRef.token === undefined;
2448
2449
  try {
2449
- await defaultTaskRegistry.settleKilledForOwner({ owner: spec.taskId ?? prepared.sessionId, scope: spec.principal ?? "default" }, {
2450
+ await defaultTaskRegistry.settleKilledForOwner({ owner: spec.taskId ?? prepared.sessionId, scope: spec.principal ?? "default", sessionId: prepared.sessionId }, {
2450
2451
  source: abortedLive &&
2451
2452
  !timeout.fired &&
2452
2453
  !turnsExceeded &&
@@ -2457,6 +2458,7 @@ export class Runner {
2457
2458
  : "parent",
2458
2459
  skipSessionScoped: true,
2459
2460
  envDying: ownedEnvDying,
2461
+ retainProcesses: spec.retainBackgroundProcesses === true,
2460
2462
  });
2461
2463
  }
2462
2464
  catch (e) {
@@ -2467,13 +2469,15 @@ export class Runner {
2467
2469
  }
2468
2470
  }
2469
2471
  const bgEnv = prepared.ownedEnv ?? this.deps.executionEnv;
2470
- if (bgEnv && hasBackgroundShell(bgEnv)) {
2472
+ const retainBgBySpec = spec.retainBackgroundProcesses === true && !ownedEnvDying;
2473
+ if (bgEnv && hasBackgroundShell(bgEnv) && !retainBgBySpec) {
2471
2474
  try {
2472
2475
  const keepAlive = ownedEnvDying && bgEnv === prepared.ownedEnv
2473
2476
  ? []
2474
2477
  : [
2475
2478
  ...defaultTaskRegistry.sessionResidentShellIds(prepared.sessionId, bgEnv),
2476
2479
  ...defaultTaskRegistry.timeoutResidentShellIds(bgEnv),
2480
+ ...defaultTaskRegistry.retainedShellIds(bgEnv),
2477
2481
  ];
2478
2482
  await bgEnv.disposeBackgroundShells(keepAlive.length > 0 ? { except: keepAlive } : undefined);
2479
2483
  }