summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
authorOlcan <[email protected]>2025-05-30 23:25:44 -0700
committerGitHub <[email protected]>2025-05-30 23:25:44 -0700
commit0dbd12e295a0a1df92915b0b3016397a1c49a296 (patch)
tree8f99817d5f3bdb7f1aa7e608026949ace7ae9e62 /packages/core/src
parent190e6be800fa9095d0d0e5274e3ec16bd2f1f978 (diff)
expose shell process group id to model, along with instructions for how to terminate or signal the group (#645)
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/tools/shell.md4
-rw-r--r--packages/core/src/tools/shell.ts1
2 files changed, 4 insertions, 1 deletions
diff --git a/packages/core/src/tools/shell.md b/packages/core/src/tools/shell.md
index 069a76db..17c39196 100644
--- a/packages/core/src/tools/shell.md
+++ b/packages/core/src/tools/shell.md
@@ -1,6 +1,7 @@
This tool executes a given shell command as `bash -c <command>`.
Command can start background processes using `&`.
-Command itself is executed as a subprocess.
+Command is executed as a subprocess that leads its own process group.
+Command process group can be terminated as `kill -- -PGID` or signaled as `kill -s SIGNAL -- -PGID`.
The following information is returned:
@@ -12,3 +13,4 @@ Error: Error or `(none)` if no error was reported for the subprocess.
Exit Code: Exit code or `(none)` if terminated by signal.
Signal: Signal number or `(none)` if no signal was received.
Background PIDs: List of background processes started or `(none)`.
+Process Group PGID: Process group started or `(none)`
diff --git a/packages/core/src/tools/shell.ts b/packages/core/src/tools/shell.ts
index 4efc3500..d0cad218 100644
--- a/packages/core/src/tools/shell.ts
+++ b/packages/core/src/tools/shell.ts
@@ -282,6 +282,7 @@ export class ShellTool extends BaseTool<ShellToolParams, ToolResult> {
`Exit Code: ${code ?? '(none)'}`,
`Signal: ${processSignal ?? '(none)'}`,
`Background PIDs: ${backgroundPIDs.length ? backgroundPIDs.join(', ') : '(none)'}`,
+ `Process Group PGID: ${shell.pid ?? '(none)'}`,
].join('\n');
}