bosun 0.40.13 → 0.40.15

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.
@@ -2324,16 +2324,8 @@ export async function launchEphemeralThread(
2324
2324
  missingPrereqSdks.push({ name, reason: prereq.reason });
2325
2325
  if (name === primaryName) {
2326
2326
  console.warn(
2327
- `${TAG} primary SDK "${name}" missing prerequisites: ${prereq.reason}; not attempting fallback`,
2327
+ `${TAG} primary SDK "${name}" missing prerequisites: ${prereq.reason}; trying fallback chain`,
2328
2328
  );
2329
- return {
2330
- success: false,
2331
- output: "",
2332
- items: [],
2333
- error: `${TAG} ${name} unavailable: ${prereq.reason}`,
2334
- sdk: primaryName,
2335
- threadId: null,
2336
- };
2337
2329
  } else {
2338
2330
  console.log(`${TAG} skipping fallback SDK "${name}": ${prereq.reason}`);
2339
2331
  }
@@ -608,6 +608,10 @@ const MONITOR_SCRIPT_SEGMENT_RE =
608
608
  const JS_MONITOR_LAUNCHER_RE = /\b(node(?:\.exe)?|bun|tsx|deno)\b/;
609
609
  const MONITOR_EVAL_IMPORT_RE =
610
610
  /(import|require)\s*\(\s*["'`][^"'`]*monitor\.mjs[^"'`]*["'`]\s*\)/;
611
+ // Matches `monitor.mjs` followed only by flags (--...) and then a positional word argument,
612
+ // indicating a sub-command invocation (e.g. `monitor.mjs agent list --json`).
613
+ // The daemon monitor only has flag args or no args after the script name.
614
+ const MONITOR_SUBCOMMAND_RE = /monitor\.mjs(?:\s+--\S+)*\s+[^-\s]/;
611
615
  const PID_START_TIME_TOLERANCE_MS = 90_000;
612
616
  const UNKNOWN_OWNER_MONITOR_GRACE_MS = 3 * 60 * 1000;
613
617
  const MONITOR_PROCESS_STARTED_AT = new Date().toISOString();
@@ -731,6 +735,12 @@ function getProcessSnapshot(pid) {
731
735
  export function classifyMonitorCommandLine(commandLine) {
732
736
  const normalized = String(commandLine || "").toLowerCase().replace(/\\/g, "/");
733
737
  if (!normalized.trim()) return "unknown";
738
+ // Sub-command invocations (e.g. `monitor.mjs agent list --json --active`) are helper
739
+ // processes, NOT the singleton daemon monitor. Detect by a positional (non-flag) word
740
+ // following monitor.mjs — the daemon only uses flag args (--daemon-child, --watch, …).
741
+ if (normalized.includes("monitor.mjs") && MONITOR_SUBCOMMAND_RE.test(normalized)) {
742
+ return "other";
743
+ }
734
744
  if (normalized.includes(MONITOR_MARKER)) return "monitor";
735
745
  if (normalized.includes("bosun") && normalized.includes("monitor.mjs")) {
736
746
  return "monitor";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bosun",
3
- "version": "0.40.13",
3
+ "version": "0.40.15",
4
4
  "description": "Bosun Autonomous Engineering — manages AI agent executors with failover, extremely powerful workflow builder, and a massive amount of included default workflow templates for autonomous engineering, creates PRs via Vibe-Kanban API, and sends Telegram notifications. Supports N executors with weighted distribution, multi-repo projects, and auto-setup.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",