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 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). Long-running commands (piped scripts from URLs, servers, blocking calls) auto-extend to 5 minutes. Set timeout explicitly for longer operations.";
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. Default: 30000 (30s). Auto-extends to 300000 (5min) for piped scripts (curl|bash) and blocking commands. Set higher for very long operations (e.g. 600000 for 10 min)."
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.244",
3
+ "version": "0.187.246",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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].