open-agents-ai 0.187.244 → 0.187.246
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 +5 -13
- package/package.json +1 -1
- package/prompts/agentic/system-small.md +2 -0
package/dist/index.js
CHANGED
|
@@ -1527,7 +1527,7 @@ var init_shell = __esm({
|
|
|
1527
1527
|
PERMISSION_ERROR_RE = /Permission denied|Operation not permitted|EACCES|EPERM|PermissionError|sudo:|not permitted|password is required|authentication failure/i;
|
|
1528
1528
|
ShellTool = class {
|
|
1529
1529
|
name = "shell";
|
|
1530
|
-
description = "Execute a shell command in the project working directory. Commands run non-interactively (CI=true). For commands that need input, use the stdin parameter or pass non-interactive flags (--yes, --no-input).
|
|
1530
|
+
description = "Execute a shell command in the project working directory. Commands run non-interactively (CI=true). For commands that need input, use the stdin parameter or pass non-interactive flags (--yes, --no-input). Default timeout is 30 seconds. For long-running commands, set the timeout parameter.";
|
|
1531
1531
|
parameters = {
|
|
1532
1532
|
type: "object",
|
|
1533
1533
|
properties: {
|
|
@@ -1537,7 +1537,7 @@ var init_shell = __esm({
|
|
|
1537
1537
|
},
|
|
1538
1538
|
timeout: {
|
|
1539
1539
|
type: "number",
|
|
1540
|
-
description: "Timeout in milliseconds
|
|
1540
|
+
description: "Timeout in milliseconds (default: 30000). Set higher for long-running commands (e.g. 300000 for 5 min, 600000 for 10 min)."
|
|
1541
1541
|
},
|
|
1542
1542
|
stdin: {
|
|
1543
1543
|
type: "string",
|
|
@@ -1579,16 +1579,8 @@ var init_shell = __esm({
|
|
|
1579
1579
|
async execute(args) {
|
|
1580
1580
|
const start2 = performance.now();
|
|
1581
1581
|
const command = args["command"];
|
|
1582
|
+
const timeout2 = args["timeout"] ?? this.defaultTimeout;
|
|
1582
1583
|
const stdinInput = args["stdin"];
|
|
1583
|
-
let timeout2 = args["timeout"];
|
|
1584
|
-
if (timeout2 == null) {
|
|
1585
|
-
const isLongRunning = /curl\s.*\|\s*(bash|sh|zsh)\b/.test(command) || // piped remote script
|
|
1586
|
-
/wget\s.*\|\s*(bash|sh|zsh)\b/.test(command) || // piped remote script
|
|
1587
|
-
/\bcall\.sh\b/.test(command) || // known long-running scripts
|
|
1588
|
-
/\bserve\b|\bwatch\b|\blisten\b/.test(command) || // servers/watchers
|
|
1589
|
-
/--wait\b|--follow\b|-f\b/.test(command);
|
|
1590
|
-
timeout2 = isLongRunning ? 3e5 : this.defaultTimeout;
|
|
1591
|
-
}
|
|
1592
1584
|
const result = await this.runCommand(command, timeout2, stdinInput);
|
|
1593
1585
|
if (!result.success && this.isPermissionError(result)) {
|
|
1594
1586
|
const method = detectElevationMethod();
|
|
@@ -1687,7 +1679,7 @@ ${elevatedResult.stderr}` : ""),
|
|
|
1687
1679
|
if (killed) {
|
|
1688
1680
|
const combined = stdout + stderr;
|
|
1689
1681
|
const looksInteractive = /\? .+[›>]|y\/n|yes\/no|\(Y\/n\)|\[y\/N\]/i.test(combined);
|
|
1690
|
-
const hint = looksInteractive ? " The command appears to be waiting for interactive input. Use non-interactive flags (e.g., --yes, --no-input) or provide input via the stdin parameter." :
|
|
1682
|
+
const hint = looksInteractive ? " The command appears to be waiting for interactive input. Use non-interactive flags (e.g., --yes, --no-input) or provide input via the stdin parameter." : ` To run longer, retry with a higher timeout parameter (e.g. timeout: ${Math.min(timeout2 * 10, 6e5)} for ${Math.min(timeout2 * 10, 6e5) / 1e3}s). Or use background_run to run in the background and check with task_output later.`;
|
|
1691
1683
|
doResolve({
|
|
1692
1684
|
success: false,
|
|
1693
1685
|
output: stdout,
|
|
@@ -1712,7 +1704,7 @@ ${stderr}` : ""),
|
|
|
1712
1704
|
if (killed) {
|
|
1713
1705
|
const combined = stdout + stderr;
|
|
1714
1706
|
const looksInteractive = /\? .+[›>]|y\/n|yes\/no|\(Y\/n\)|\[y\/N\]/i.test(combined);
|
|
1715
|
-
const hint = looksInteractive ? " The command appears to be waiting for interactive input. Use non-interactive flags (e.g., --yes, --no-input) or provide input via the stdin parameter." :
|
|
1707
|
+
const hint = looksInteractive ? " The command appears to be waiting for interactive input. Use non-interactive flags (e.g., --yes, --no-input) or provide input via the stdin parameter." : ` To run longer, retry with a higher timeout parameter (e.g. timeout: ${Math.min(timeout2 * 10, 6e5)} for ${Math.min(timeout2 * 10, 6e5) / 1e3}s). Or use background_run to run in the background and check with task_output later.`;
|
|
1716
1708
|
doResolve({
|
|
1717
1709
|
success: false,
|
|
1718
1710
|
output: stdout,
|
package/package.json
CHANGED
|
@@ -37,6 +37,8 @@ Rules:
|
|
|
37
37
|
|
|
38
38
|
When working with tool results, write down any important information you might need later in your response, as older tool results may be cleared to save context space.
|
|
39
39
|
|
|
40
|
+
Real-time interactions (phone calls, live chat): When a caller asks you to look something up, ALWAYS acknowledge first, THEN research. Send multiple tool calls in one response when possible — they run concurrently. Example: emit shell(say "Let me look that up") AND web_search("query") together. The ack reaches the caller while the search runs.
|
|
41
|
+
|
|
40
42
|
Calculations — EXECUTE, never guess:
|
|
41
43
|
- For ANY math with 2+ operations: use `repl_exec(code="print(847.50 * 0.15)")` or `shell`. Python is exact. In-head arithmetic is not.
|
|
42
44
|
- Currency, percentages, statistics, dates — ALWAYS execute code. If execution fails, reason step-by-step and mark [ESTIMATED].
|