@sema-agent/core 1.294.0 → 1.296.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 (127) 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 +20 -0
  5. package/dist/bin/sema-tb.d.ts.map +1 -1
  6. package/dist/bin/sema-tb.js +71 -23
  7. package/dist/bin/sema-tb.js.map +1 -1
  8. package/dist/brain/anthropic.d.ts.map +1 -1
  9. package/dist/brain/anthropic.js +17 -3
  10. package/dist/brain/anthropic.js.map +1 -1
  11. package/dist/brain/openai.d.ts +1 -0
  12. package/dist/brain/openai.d.ts.map +1 -1
  13. package/dist/brain/openai.js +328 -298
  14. package/dist/brain/openai.js.map +1 -1
  15. package/dist/brain/stream-engine.d.ts +7 -0
  16. package/dist/brain/stream-engine.d.ts.map +1 -1
  17. package/dist/brain/stream-engine.js +44 -11
  18. package/dist/brain/stream-engine.js.map +1 -1
  19. package/dist/brain/timeout.d.ts +2 -1
  20. package/dist/brain/timeout.d.ts.map +1 -1
  21. package/dist/brain/timeout.js +14 -1
  22. package/dist/brain/timeout.js.map +1 -1
  23. package/dist/core/ask-question.d.ts.map +1 -1
  24. package/dist/core/ask-question.js.map +1 -1
  25. package/dist/core/hooks.d.ts +3 -3
  26. package/dist/core/hooks.d.ts.map +1 -1
  27. package/dist/core/hooks.js +11 -4
  28. package/dist/core/hooks.js.map +1 -1
  29. package/dist/core/present-plan-tool.d.ts.map +1 -1
  30. package/dist/core/present-plan-tool.js +12 -13
  31. package/dist/core/present-plan-tool.js.map +1 -1
  32. package/dist/core/runner/assemble-result.d.ts +1 -0
  33. package/dist/core/runner/assemble-result.d.ts.map +1 -1
  34. package/dist/core/runner/assemble-result.js.map +1 -1
  35. package/dist/core/runner/call-cap.d.ts +4 -1
  36. package/dist/core/runner/call-cap.d.ts.map +1 -1
  37. package/dist/core/runner/call-cap.js +4 -1
  38. package/dist/core/runner/call-cap.js.map +1 -1
  39. package/dist/core/runner/cut-kill.d.ts +11 -0
  40. package/dist/core/runner/cut-kill.d.ts.map +1 -0
  41. package/dist/core/runner/cut-kill.js +38 -0
  42. package/dist/core/runner/cut-kill.js.map +1 -0
  43. package/dist/core/runner/prepare-task.d.ts +5 -0
  44. package/dist/core/runner/prepare-task.d.ts.map +1 -1
  45. package/dist/core/runner/prepare-task.js +70 -23
  46. package/dist/core/runner/prepare-task.js.map +1 -1
  47. package/dist/core/runner/runtask.d.ts.map +1 -1
  48. package/dist/core/runner/runtask.js +22 -6
  49. package/dist/core/runner/runtask.js.map +1 -1
  50. package/dist/core/sensitive-path-policy.d.ts +2 -1
  51. package/dist/core/sensitive-path-policy.d.ts.map +1 -1
  52. package/dist/core/sensitive-path-policy.js +22 -0
  53. package/dist/core/sensitive-path-policy.js.map +1 -1
  54. package/dist/core/task-registry.d.ts +4 -0
  55. package/dist/core/task-registry.d.ts.map +1 -1
  56. package/dist/core/task-registry.js +83 -15
  57. package/dist/core/task-registry.js.map +1 -1
  58. package/dist/core/tool-policy.d.ts +5 -2
  59. package/dist/core/tool-policy.d.ts.map +1 -1
  60. package/dist/core/tool-policy.js +9 -0
  61. package/dist/core/tool-policy.js.map +1 -1
  62. package/dist/core/trace.d.ts +3 -0
  63. package/dist/core/trace.d.ts.map +1 -1
  64. package/dist/core/trace.js.map +1 -1
  65. package/dist/core/types.d.ts +6 -0
  66. package/dist/core/types.d.ts.map +1 -1
  67. package/dist/engine/compaction/utils.d.ts.map +1 -1
  68. package/dist/engine/compaction/utils.js +3 -1
  69. package/dist/engine/compaction/utils.js.map +1 -1
  70. package/dist/engine/execution-env/kill-tree.d.ts +1 -0
  71. package/dist/engine/execution-env/kill-tree.d.ts.map +1 -1
  72. package/dist/engine/execution-env/kill-tree.js +18 -2
  73. package/dist/engine/execution-env/kill-tree.js.map +1 -1
  74. package/dist/engine/execution-env/node-execution-env.d.ts +5 -0
  75. package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -1
  76. package/dist/engine/execution-env/node-execution-env.js +19 -0
  77. package/dist/engine/execution-env/node-execution-env.js.map +1 -1
  78. package/dist/engine/harness/agent-harness.d.ts +1 -0
  79. package/dist/engine/harness/agent-harness.d.ts.map +1 -1
  80. package/dist/engine/harness/agent-harness.js +4 -0
  81. package/dist/engine/harness/agent-harness.js.map +1 -1
  82. package/dist/engine/harness/messages.d.ts +2 -0
  83. package/dist/engine/harness/messages.d.ts.map +1 -1
  84. package/dist/engine/harness/messages.js +52 -3
  85. package/dist/engine/harness/messages.js.map +1 -1
  86. package/dist/engine/harness/types.d.ts +7 -0
  87. package/dist/engine/harness/types.d.ts.map +1 -1
  88. package/dist/engine/harness/types.js.map +1 -1
  89. package/dist/engine/llm/types.d.ts +6 -0
  90. package/dist/engine/llm/types.d.ts.map +1 -1
  91. package/dist/engine/loop/agent-loop.js +3 -0
  92. package/dist/engine/loop/agent-loop.js.map +1 -1
  93. package/dist/engine/loop/types.d.ts +2 -0
  94. package/dist/engine/loop/types.d.ts.map +1 -1
  95. package/dist/engine/session/import-validate.d.ts.map +1 -1
  96. package/dist/engine/session/import-validate.js +64 -0
  97. package/dist/engine/session/import-validate.js.map +1 -1
  98. package/dist/index.d.ts +2 -2
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/internal/llm.d.ts +1 -1
  103. package/dist/internal/llm.d.ts.map +1 -1
  104. package/dist/scenarios/full-body.d.ts.map +1 -1
  105. package/dist/scenarios/full-body.js +3 -2
  106. package/dist/scenarios/full-body.js.map +1 -1
  107. package/dist/tools/fs/index.d.ts +8 -1
  108. package/dist/tools/fs/index.d.ts.map +1 -1
  109. package/dist/tools/fs/index.js +92 -30
  110. package/dist/tools/fs/index.js.map +1 -1
  111. package/dist/tools/fs/safety.d.ts +1 -1
  112. package/dist/tools/fs/safety.d.ts.map +1 -1
  113. package/dist/tools/fs/safety.js +3 -1
  114. package/dist/tools/fs/safety.js.map +1 -1
  115. package/dist/tools/fs/search.d.ts +7 -2
  116. package/dist/tools/fs/search.d.ts.map +1 -1
  117. package/dist/tools/fs/search.js +465 -57
  118. package/dist/tools/fs/search.js.map +1 -1
  119. package/dist/tools/monitor.d.ts.map +1 -1
  120. package/dist/tools/monitor.js +12 -1
  121. package/dist/tools/monitor.js.map +1 -1
  122. package/dist/tools/task-list.d.ts.map +1 -1
  123. package/dist/tools/task-list.js.map +1 -1
  124. package/dist/tools/worktree.d.ts.map +1 -1
  125. package/dist/tools/worktree.js +15 -2
  126. package/dist/tools/worktree.js.map +1 -1
  127. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
1
  import type { ExecutionEnv } from "../internal/harness.js";
2
2
  import type { ToolPolicy } from "./tool-policy.js";
3
+ export declare const RECOMMENDED_SENSITIVE_PATTERNS: readonly string[];
3
4
  export declare function createSensitivePathPolicy(opts: {
4
5
  env: ExecutionEnv;
5
- patterns: string[];
6
+ patterns: readonly string[];
6
7
  rootPath?: string;
7
8
  tools?: string[];
8
9
  }): ToolPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"sensitive-path-policy.d.ts","sourceRoot":"","sources":["../../src/core/sensitive-path-policy.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAqC,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA2DtF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,YAAY,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,UAAU,CA2Cb"}
1
+ {"version":3,"file":"sensitive-path-policy.d.ts","sourceRoot":"","sources":["../../src/core/sensitive-path-policy.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAqC,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmBtF,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAqC3D,CAAC;AAuDF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,YAAY,CAAC;IAElB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,UAAU,CA2Cb"}
@@ -1,6 +1,28 @@
1
1
  import { canonicalizeTarget, fileArgPath } from "../tools/fs/safety.js";
2
2
  import { canonicalToolName } from "./tool-name-aliases.js";
3
3
  const DEFAULT_GUARDED_TOOLS = ["Write", "Edit", "MultiEdit"];
4
+ export const RECOMMENDED_SENSITIVE_PATTERNS = [
5
+ ".env",
6
+ ".env.*",
7
+ "*.pem",
8
+ "*.key",
9
+ "*.p12",
10
+ "*.pfx",
11
+ "id_rsa*",
12
+ "id_ed25519*",
13
+ "id_ecdsa*",
14
+ ".ssh",
15
+ ".git/hooks",
16
+ ".git/config",
17
+ ".aws",
18
+ ".config/gcloud",
19
+ ".azure",
20
+ ".kube/config",
21
+ ".npmrc",
22
+ ".pypirc",
23
+ ".bash_history",
24
+ ".zsh_history",
25
+ ];
4
26
  function segmentGlobToRegExp(segment) {
5
27
  const escaped = segment.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*/g, "[^/]*");
6
28
  return new RegExp(`^${escaped}$`);
@@ -1 +1 @@
1
- {"version":3,"file":"sensitive-path-policy.js","sourceRoot":"","sources":["../../src/core/sensitive-path-policy.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAG7D,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACrF,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;AACpC,CAAC;AAOD,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACzE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAOD,SAAS,cAAc,CAAC,YAAoB,EAAE,QAA2B;IAIvE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD,MAAM,UAAU,yBAAyB,CAAC,IAMzC;IACC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAIhD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtF,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,GAAoB,EAAE,MAAoB;YACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YACvG,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAKnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAE9E,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBAKd,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,OAAO;wBACL,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,aAAa,IAAI,sHAAsH;wBAC/I,cAAc,EAAE,QAAQ;qBACzB,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,aAAa,IAAI,2EAA2E,GAAG,GAAG;oBAC1G,cAAc,EAAE,QAAQ;iBACzB,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sensitive-path-policy.js","sourceRoot":"","sources":["../../src/core/sensitive-path-policy.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ export interface RegisterBackgroundBashInput extends TaskAccess {
55
55
  now?: number;
56
56
  sessionScoped?: true;
57
57
  onTerminal?: (notification: TaskNotificationPayload) => void;
58
+ outputFile?: string;
58
59
  }
59
60
  export interface RegisterMonitorInput extends TaskAccess {
60
61
  shellId: BackgroundShellId;
@@ -113,6 +114,7 @@ export declare class TaskRegistry {
113
114
  private legacyToTaskId;
114
115
  mintTaskId(type: SemaTaskType): string;
115
116
  registerBackgroundBash(input: RegisterBackgroundBashInput): string;
117
+ isBackgroundOutputFile(canonicalPath: string, access: TaskAccess, env: unknown): boolean;
116
118
  registerBackgroundAgent(input: RegisterBackgroundAgentInput): string;
117
119
  markStopSource(id: string, source: StopSource): void;
118
120
  markStopSourceByShellId(shellId: string, source: StopSource, env?: unknown): void;
@@ -135,6 +137,7 @@ export declare class TaskRegistry {
135
137
  source?: StopSource;
136
138
  skipSessionScoped?: boolean;
137
139
  envDying?: boolean;
140
+ retainProcesses?: boolean;
138
141
  }): Promise<number>;
139
142
  reapSessionBackground(sessionId: string, scope?: string): number;
140
143
  reapAllSessionBackground(): number;
@@ -147,6 +150,7 @@ export declare class TaskRegistry {
147
150
  private startBashWatcher;
148
151
  sessionResidentShellIds(sessionId: string, env: unknown): BackgroundShellId[];
149
152
  timeoutResidentShellIds(env: unknown): BackgroundShellId[];
153
+ retainedShellIds(env: unknown): BackgroundShellId[];
150
154
  registerMonitor(input: RegisterMonitorInput): string;
151
155
  private startMonitorWatcher;
152
156
  registerWorkflow(input: RegisterWorkflowInput): string;
@@ -1 +1 @@
1
- {"version":3,"file":"task-registry.d.ts","sourceRoot":"","sources":["../../src/core/task-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-registry.d.ts","sourceRoot":"","sources":["../../src/core/task-registry.ts"],"names":[],"mappings":"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"}
@@ -151,6 +151,18 @@ function statusFromBackground(status, exitCode) {
151
151
  return exitCode === 0 ? "completed" : "failed";
152
152
  return "failed";
153
153
  }
154
+ function rollSpoolText(spool, s, cap) {
155
+ if (s.length <= cap)
156
+ return s;
157
+ const half = Math.floor(cap / 2);
158
+ spool.rolledChars += s.length - 2 * half;
159
+ return s.slice(0, half) + s.slice(s.length - half);
160
+ }
161
+ function bashMirrorGapNote(handle) {
162
+ return handle.outputFile !== undefined && handle.spool?.mirrorFailed === true
163
+ ? " [!] The output file is INCOMPLETE (one or more writes to it failed) — trust the result text / TaskOutput over the file."
164
+ : "";
165
+ }
154
166
  function monitorInTimeoutWindow(handle) {
155
167
  return handle.status === "running" && handle.deadlineAt !== undefined && handle.timers.now() < handle.deadlineAt;
156
168
  }
@@ -262,12 +274,26 @@ export class TaskRegistry {
262
274
  env: input.env,
263
275
  shellId: input.shellId,
264
276
  ...(input.onTerminal !== undefined ? { onTerminal: input.onTerminal } : {}),
277
+ ...(input.outputFile !== undefined ? { outputFile: input.outputFile } : {}),
265
278
  });
266
279
  this.legacyToTaskId.set(String(input.shellId), id);
267
280
  if (input.onTerminal)
268
281
  this.startBashWatcher(id, input.onTerminal);
269
282
  return id;
270
283
  }
284
+ isBackgroundOutputFile(canonicalPath, access, env) {
285
+ for (const handle of this.handles.values()) {
286
+ if (handle.type !== "background_bash" || handle.outputFile === undefined)
287
+ continue;
288
+ if (handle.env !== env)
289
+ continue;
290
+ if (handle.outputFile !== canonicalPath)
291
+ continue;
292
+ if (canAccess(handle, access))
293
+ return true;
294
+ }
295
+ return false;
296
+ }
271
297
  registerBackgroundAgent(input) {
272
298
  assertOwnership(input, "registerBackgroundAgent");
273
299
  const id = this.mintTaskId("background_agent");
@@ -410,6 +436,8 @@ export class TaskRegistry {
410
436
  continue;
411
437
  if (handle.type === "monitor" && monitorInTimeoutWindow(handle))
412
438
  continue;
439
+ if ((handle.type === "background_bash" || handle.type === "monitor") && handle.retained === true)
440
+ continue;
413
441
  const before = handle.stopSource;
414
442
  this.markStopSource(handle.id, source);
415
443
  if (before === undefined && handle.stopSource !== undefined)
@@ -426,9 +454,11 @@ export class TaskRegistry {
426
454
  continue;
427
455
  if (handle.status !== "running" || !canAccess(handle, access))
428
456
  continue;
429
- if (opts?.skipSessionScoped && handle.sessionScoped && !(opts?.envDying === true && handle.type === "background_bash"))
457
+ if ((handle.retained === true || handle.env.backgroundCapabilities.retainBackgroundProcesses === true || opts?.retainProcesses === true) && !opts?.envDying) {
458
+ handle.retained = true;
430
459
  continue;
431
- if (handle.env.backgroundCapabilities.retainBackgroundProcesses === true && !opts?.envDying)
460
+ }
461
+ if (opts?.skipSessionScoped && handle.sessionScoped && !(opts?.envDying === true && handle.type === "background_bash"))
432
462
  continue;
433
463
  if (handle.type === "monitor" && monitorInTimeoutWindow(handle) && !opts?.envDying)
434
464
  continue;
@@ -445,14 +475,31 @@ export class TaskRegistry {
445
475
  handle.status = "killed";
446
476
  handle.stoppedBy = handle.stopSource ?? source;
447
477
  handle.updatedAt = Date.now();
478
+ if (handle.outputFile !== undefined) {
479
+ try {
480
+ const drained = await handle.env.pollBackground(handle.shellId);
481
+ if (drained.ok && (drained.value.stdout.length > 0 || drained.value.stderr.length > 0)) {
482
+ const spool = (handle.spool ??= { stdout: "", stderr: "", rolledChars: 0 });
483
+ const cap = 2 * TASK_OUTPUT_MAX_CHARS;
484
+ spool.stdout = rollSpoolText(spool, spool.stdout + drained.value.stdout, cap);
485
+ spool.stderr = rollSpoolText(spool, spool.stderr + drained.value.stderr, cap);
486
+ const ap = await handle.env.appendFile(handle.outputFile, drained.value.stdout + drained.value.stderr);
487
+ if (!ap.ok)
488
+ spool.mirrorFailed = true;
489
+ }
490
+ }
491
+ catch {
492
+ }
493
+ }
448
494
  const resultText = handle.spool !== undefined ? bashTerminalResult(handle.spool) : "";
449
495
  this.notifyTerminalOnce(handle, () => handle.onTerminal?.({
450
496
  task_id: handle.id,
451
497
  task_type: "background_bash",
452
498
  ...(handle.toolUseId !== undefined ? { toolUseId: handle.toolUseId } : {}),
499
+ ...(handle.outputFile !== undefined ? { output_file: handle.outputFile } : {}),
453
500
  status: "killed",
454
501
  stoppedBy: handle.stoppedBy,
455
- summary: `${(handle.description ?? "background command").slice(0, 200)} — killed before completion (${clause(handle.stoppedBy)})${killFailed ? ` — kill attempt reported ${kill.ok ? "" : kill.error.code}: the process may still be terminating; the environment teardown retries` : ""}`,
502
+ summary: `${(handle.description ?? "background command").slice(0, 200)} — killed before completion (${clause(handle.stoppedBy)})${killFailed ? ` — kill attempt reported ${kill.ok ? "" : kill.error.code}: the process may still be terminating; the environment teardown retries` : ""}${bashMirrorGapNote(handle)}`,
456
503
  ...(resultText.length > 0 ? { result: resultText } : {}),
457
504
  }));
458
505
  }
@@ -488,6 +535,8 @@ export class TaskRegistry {
488
535
  const access = { owner: sessionId, ...(scope !== undefined ? { scope } : {}) };
489
536
  let reaped = 0;
490
537
  for (const handle of this.handles.values()) {
538
+ if ((handle.type === "background_bash" || handle.type === "monitor") && handle.retained === true && handle.status === "running")
539
+ continue;
491
540
  if (handle.type === "monitor" && handle.status === "running" && handle.sessionScoped && canAccess(handle, access)) {
492
541
  this.markStopSource(handle.id, "system");
493
542
  if (handle.watcher !== undefined) {
@@ -562,6 +611,8 @@ export class TaskRegistry {
562
611
  for (const handle of this.handles.values()) {
563
612
  if (handle.type !== "background_bash" && handle.type !== "monitor" && handle.type !== "background_agent")
564
613
  continue;
614
+ if (handle.type !== "background_agent" && handle.retained === true)
615
+ continue;
565
616
  if (handle.status === "running" && handle.owner === owner)
566
617
  n++;
567
618
  }
@@ -634,13 +685,7 @@ export class TaskRegistry {
634
685
  return;
635
686
  handle.spool ??= { stdout: "", stderr: "", rolledChars: 0 };
636
687
  const ROLL_CAP = 2 * TASK_OUTPUT_MAX_CHARS;
637
- const roll = (s) => {
638
- if (s.length <= ROLL_CAP)
639
- return s;
640
- const half = Math.floor(ROLL_CAP / 2);
641
- handle.spool.rolledChars += s.length - 2 * half;
642
- return s.slice(0, half) + s.slice(s.length - half);
643
- };
688
+ const roll = (s) => rollSpoolText(handle.spool, s, ROLL_CAP);
644
689
  let ticking = false;
645
690
  const MAX_RETRYABLE_POLL_FAILURES = 3;
646
691
  let pollFailures = 0;
@@ -673,8 +718,9 @@ export class TaskRegistry {
673
718
  task_id: id,
674
719
  task_type: "background_bash",
675
720
  ...(handle.toolUseId !== undefined ? { toolUseId: handle.toolUseId } : {}),
721
+ ...(handle.outputFile !== undefined ? { output_file: handle.outputFile } : {}),
676
722
  status: "failed",
677
- summary: `${(handle.description ?? "background command").slice(0, 200)} — lost its background process (${r.error.message}); no further output will arrive.`,
723
+ summary: `${(handle.description ?? "background command").slice(0, 200)} — lost its background process (${r.error.message}); no further output will arrive.${bashMirrorGapNote(handle)}`,
678
724
  ...(lostResult.length > 0 ? { result: lostResult } : {}),
679
725
  }));
680
726
  return;
@@ -683,6 +729,11 @@ export class TaskRegistry {
683
729
  const spool = handle.spool;
684
730
  spool.stdout = roll(spool.stdout + r.value.stdout);
685
731
  spool.stderr = roll(spool.stderr + r.value.stderr);
732
+ if (handle.outputFile !== undefined && (r.value.stdout.length > 0 || r.value.stderr.length > 0)) {
733
+ const ap = await handle.env.appendFile(handle.outputFile, r.value.stdout + r.value.stderr);
734
+ if (!ap.ok)
735
+ spool.mirrorFailed = true;
736
+ }
686
737
  handle.status = statusFromBackground(r.value.status, r.value.exitCode);
687
738
  if (handle.status === "killed" && handle.stoppedBy === undefined) {
688
739
  handle.stoppedBy = handle.stopSource ?? (r.value.timedOut === true ? "timeout" : "system");
@@ -703,10 +754,11 @@ export class TaskRegistry {
703
754
  task_id: id,
704
755
  task_type: "background_bash",
705
756
  ...(handle.toolUseId !== undefined ? { toolUseId: handle.toolUseId } : {}),
757
+ ...(handle.outputFile !== undefined ? { output_file: handle.outputFile } : {}),
706
758
  status: handle.status === "completed" ? "completed" : handle.status === "killed" ? "killed" : "failed",
707
759
  ...(handle.status === "killed" && handle.stoppedBy !== undefined ? { stoppedBy: handle.stoppedBy } : {}),
708
760
  ...(r.value.status === "exited" && r.value.exitCode !== undefined ? { exitCode: r.value.exitCode } : {}),
709
- summary: r.value.status === "exited"
761
+ summary: (r.value.status === "exited"
710
762
  ? r.value.exitCode === 0
711
763
  ? `Background command "${desc}" completed (exit code 0)`
712
764
  : `Background command "${desc}" failed (exit code ${r.value.exitCode})`
@@ -714,7 +766,7 @@ export class TaskRegistry {
714
766
  ? r.value.timeoutSec !== undefined
715
767
  ? `${desc} — timed out after ${r.value.timeoutSec}s (its own background time budget); the process was killed`
716
768
  : `${desc} — timed out (its own background time budget); the process was killed`
717
- : `${desc} — ${r.value.status}`,
769
+ : `${desc} — ${r.value.status}`) + bashMirrorGapNote(handle),
718
770
  ...(resultText.length > 0 ? { result: resultText } : {}),
719
771
  }));
720
772
  }
@@ -732,8 +784,9 @@ export class TaskRegistry {
732
784
  task_id: id,
733
785
  task_type: "background_bash",
734
786
  ...(handle.toolUseId !== undefined ? { toolUseId: handle.toolUseId } : {}),
787
+ ...(handle.outputFile !== undefined ? { output_file: handle.outputFile } : {}),
735
788
  status: "failed",
736
- summary: `${(handle.description ?? "background command").slice(0, 200)} — lost its background process (poll failed: ${e instanceof Error ? e.message : String(e)}); no further output will arrive.`,
789
+ summary: `${(handle.description ?? "background command").slice(0, 200)} — lost its background process (poll failed: ${e instanceof Error ? e.message : String(e)}); no further output will arrive.${bashMirrorGapNote(handle)}`,
737
790
  ...(crashedResult.length > 0 ? { result: crashedResult } : {}),
738
791
  }));
739
792
  }
@@ -762,6 +815,15 @@ export class TaskRegistry {
762
815
  }
763
816
  return out;
764
817
  }
818
+ retainedShellIds(env) {
819
+ const out = [];
820
+ for (const handle of this.handles.values()) {
821
+ if ((handle.type === "background_bash" || handle.type === "monitor") && handle.status === "running" && handle.retained === true && handle.env === env) {
822
+ out.push(handle.shellId);
823
+ }
824
+ }
825
+ return out;
826
+ }
765
827
  registerMonitor(input) {
766
828
  assertOwnership(input, "registerMonitor");
767
829
  const id = this.mintTaskId("monitor");
@@ -1172,6 +1234,8 @@ export class TaskRegistry {
1172
1234
  if (handle.type === "monitor" && !handle.sessionScoped && canAccess(handle, access)) {
1173
1235
  if (monitorInTimeoutWindow(handle))
1174
1236
  continue;
1237
+ if (handle.retained === true && handle.status === "running")
1238
+ continue;
1175
1239
  this.handles.delete(id);
1176
1240
  if (handle.status === "running" && handle.owner !== undefined)
1177
1241
  evictedRunningOwners.add(handle.owner);
@@ -1186,6 +1250,8 @@ export class TaskRegistry {
1186
1250
  continue;
1187
1251
  if (handle.sessionScoped)
1188
1252
  continue;
1253
+ if (handle.retained === true && handle.status === "running")
1254
+ continue;
1189
1255
  this.handles.delete(id);
1190
1256
  if (handle.status === "running" && handle.owner !== undefined)
1191
1257
  evictedRunningOwners.add(handle.owner);
@@ -1590,7 +1656,9 @@ export function createTaskOutputTool(opts) {
1590
1656
  return defineTool({
1591
1657
  name: "TaskOutput",
1592
1658
  aliases: [...TASK_OUTPUT_ALIASES],
1593
- description: "Retrieve output or status for a background task by task_id. Supports background Bash tasks and workflow " +
1659
+ description: "[Deprecated] for background Bash tasks, prefer Read on the output file path; for agent tasks, use the Agent tool result directly. " +
1660
+ "DEPRECATED: Background tasks return their output file path in the tool result, and you receive a <task-notification> with the same path when the task completes. " +
1661
+ "Retrieve output or status for a background task by task_id. Supports background Bash tasks and workflow " +
1594
1662
  "tasks returned by RunWorkflow. Returns only the caller's own task scope; unknown and out-of-scope ids are " +
1595
1663
  "reported the same way. Legacy bash_id and runId arguments are accepted for compatibility.",
1596
1664
  parameters: Type.Object({