open-agents-ai 0.185.63 → 0.185.65

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
@@ -43751,10 +43751,24 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
43751
43751
  if (missing.length === 0) {
43752
43752
  } else if (!pm2) {
43753
43753
  for (const d of missing)
43754
- log(`No supported package manager \u2014 ${d.label} unavailable.`);
43754
+ log(`No supported package manager (choco/winget/apt/brew) \u2014 ${d.label} unavailable. Install manually or install Chocolatey: https://chocolatey.org/install`);
43755
43755
  } else {
43756
43756
  const labels = missing.map((d) => d.label).join(", ");
43757
- log(`Installing ${labels}...`);
43757
+ if (process.platform === "win32") {
43758
+ let isAdmin = false;
43759
+ try {
43760
+ execSync29("net session", { stdio: "pipe", timeout: 3e3 });
43761
+ isAdmin = true;
43762
+ } catch {
43763
+ }
43764
+ if (!isAdmin) {
43765
+ log(`Installing ${labels} via ${pm2} (non-admin \u2014 some installs may need "Run as Administrator")...`);
43766
+ } else {
43767
+ log(`Installing ${labels} via ${pm2}...`);
43768
+ }
43769
+ } else {
43770
+ log(`Installing ${labels} via ${pm2}...`);
43771
+ }
43758
43772
  const needsSudo = pm2 !== "brew" && pm2 !== "choco" && pm2 !== "winget";
43759
43773
  for (const d of missing) {
43760
43774
  const pkgName = d.pkgs[pm2];
@@ -43763,6 +43777,7 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
43763
43777
  log(`${d.label} not available for ${pm2}.`);
43764
43778
  continue;
43765
43779
  }
43780
+ let lastError = "";
43766
43781
  if (pkgName) {
43767
43782
  let installCmd;
43768
43783
  switch (pm2) {
@@ -43794,20 +43809,33 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
43794
43809
  } else {
43795
43810
  execSync29(installCmd, { stdio: "pipe", timeout: 18e4 });
43796
43811
  }
43797
- } catch {
43812
+ } catch (e) {
43813
+ const stderr = e.stderr?.toString?.()?.trim?.() ?? "";
43814
+ const stdout = e.stdout?.toString?.()?.trim?.() ?? "";
43815
+ const msg = e.message ?? "";
43816
+ lastError = stderr || stdout || msg;
43817
+ if (lastError.length > 200)
43818
+ lastError = lastError.slice(0, 200) + "...";
43798
43819
  }
43799
43820
  }
43800
43821
  if (!hasCmd(d.binary) && pipPkg) {
43801
43822
  try {
43802
43823
  const pipCmd = process.platform === "win32" ? `pip install ${pipPkg}` : `pip3 install ${pipPkg}`;
43803
43824
  execSync29(pipCmd, { stdio: "pipe", timeout: 12e4 });
43804
- } catch {
43825
+ lastError = "";
43826
+ } catch (e) {
43827
+ const stderr = e.stderr?.toString?.()?.trim?.() ?? "";
43828
+ const stdout = e.stdout?.toString?.()?.trim?.() ?? "";
43829
+ const msg = e.message ?? "";
43830
+ const pipError = stderr || stdout || msg;
43831
+ lastError += lastError ? ` | pip: ${pipError.slice(0, 150)}` : pipError.slice(0, 200);
43805
43832
  }
43806
43833
  }
43807
43834
  if (hasCmd(d.binary)) {
43808
43835
  log(`${d.label} installed.`);
43809
43836
  } else {
43810
- log(`${d.label} could not be installed \u2014 features will be limited.`);
43837
+ const reason = lastError ? ` Reason: ${lastError}` : " (no error output captured \u2014 may need admin/UAC elevation)";
43838
+ log(`${d.label} could not be installed \u2014 features will be limited.${reason}`);
43811
43839
  }
43812
43840
  }
43813
43841
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.185.63",
3
+ "version": "0.185.65",
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",
@@ -104,6 +104,10 @@ Answer: $119.63
104
104
 
105
105
  This applies to: currency conversion, percentages, statistics, financial calculations, unit conversions, date math. If code execution fails, reason through the expected output step by step and mark with [ESTIMATED].
106
106
 
107
+ ## Knowledge Gaps — Search, Don't Hallucinate
108
+
109
+ When a task involves specific regulations (BSA/AML, GDPR, HIPAA), industry standards, legal requirements, or domain facts you're uncertain about — use `web_search` to look them up. A wrong answer is worse than a searched answer. This is especially important for compliance, legal, and regulatory questions where precision matters.
110
+
107
111
  ## Debugging — Observe Before Reasoning
108
112
 
109
113
  When uncertain about runtime behavior (types, return values, edge cases), run a quick test instead of guessing:
@@ -32,6 +32,9 @@ Calculations — EXECUTE, never guess:
32
32
  - 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.
33
33
  - Currency, percentages, statistics, dates — ALWAYS execute code. If execution fails, reason step-by-step and mark [ESTIMATED].
34
34
 
35
+ Knowledge gaps — SEARCH, don't hallucinate:
36
+ - If a question involves specific regulations, standards, laws, or domain facts you're unsure about, use `web_search` to look them up rather than guessing. A wrong answer is worse than a searched answer.
37
+
35
38
  Debugging — OBSERVE before reasoning:
36
39
  - When unsure how code behaves at runtime, DO NOT guess. Write a short test script and RUN it:
37
40
  shell(command="node -e \"console.log(JSON.parse(JSON.stringify({d: new Date()})))\"")