omnius 1.0.404 → 1.0.405

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
@@ -543187,14 +543187,14 @@ var init_camera_capture = __esm({
543187
543187
  };
543188
543188
  CameraCaptureTool = class {
543189
543189
  name = "camera_capture";
543190
- description = "Access system cameras to capture images. Supports USB/CSI webcams (v4l2), Dropbear-style multi-camera router topology, RealSense/depth capability metadata, AND Kandao QooCam 8K/Pro 360 cameras (auto-connects via WiFi). Actions: 'list' to enumerate all cameras, 'capture' to grab a JPEG frame, 'info' to query camera capabilities, 'router_config' to emit a camera/depth topology plan, and 'profiles' to list built-in profiles. Use this when you need to SEE the physical environment — take a photo, check what's on a desk, read a whiteboard, inspect hardware, or observe any real-world scene. The captured image can be analyzed with vision tools.";
543190
+ description = "Access system cameras to capture images. Supports USB/CSI webcams (v4l2), Dropbear-style multi-camera router topology, RealSense/depth capability metadata, AND Kandao QooCam 8K/Pro 360 cameras (auto-connects via WiFi). Defaults to 'capture' when no action is provided. Actions: 'list' to enumerate all cameras, 'capture' to grab a JPEG frame, 'info' to query camera capabilities, 'router_config' to emit a camera/depth topology plan, and 'profiles' to list built-in profiles. Use this when you need to SEE the physical environment — take a photo, check what's on a desk, read a whiteboard, inspect hardware, or observe any real-world scene. The captured image can be analyzed with vision tools.";
543191
543191
  parameters = {
543192
543192
  type: "object",
543193
543193
  properties: {
543194
543194
  action: {
543195
543195
  type: "string",
543196
543196
  enum: ["list", "capture", "info", "router_config", "topology", "profiles"],
543197
- description: "Action to perform: list cameras, capture frame, get camera info, emit router topology, or list camera profiles"
543197
+ description: "Action to perform. Defaults to capture. Use list to enumerate cameras, capture to grab a frame, info for camera capabilities, router_config/topology for a camera/depth plan, or profiles for built-in profiles."
543198
543198
  },
543199
543199
  device: {
543200
543200
  type: "string",
@@ -543226,10 +543226,10 @@ var init_camera_capture = __esm({
543226
543226
  description: "Return format for list/router_config/profiles. Default text."
543227
543227
  }
543228
543228
  },
543229
- required: ["action"]
543229
+ required: []
543230
543230
  };
543231
543231
  async execute(args) {
543232
- const action = args["action"];
543232
+ const action = typeof args["action"] === "string" && args["action"].trim() ? args["action"].trim().toLowerCase() : "capture";
543233
543233
  const start2 = performance.now();
543234
543234
  try {
543235
543235
  switch (action) {
@@ -543245,7 +543245,7 @@ var init_camera_capture = __esm({
543245
543245
  case "profiles":
543246
543246
  return this.listProfiles(args, start2);
543247
543247
  default:
543248
- return { success: false, output: "", error: `Unknown action: ${action}. Use list, capture, info, router_config, or profiles.`, durationMs: performance.now() - start2 };
543248
+ return { success: false, output: "", error: `Unknown action: ${action}. Use list, capture, info, router_config, topology, or profiles.`, durationMs: performance.now() - start2 };
543249
543249
  }
543250
543250
  } catch (err) {
543251
543251
  return { success: false, output: "", error: `camera_capture error: ${err instanceof Error ? err.message : String(err)}`, durationMs: performance.now() - start2 };
@@ -622245,7 +622245,7 @@ function setTerminalTitle(task, version5) {
622245
622245
  process.stdout.write(data);
622246
622246
  }
622247
622247
  }
622248
- var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_FG, TEXT_PRIMARY, TEXT_DIM, NO_SUB_AGENTS_HEADER_LABEL, HEADER_BUTTON_GLYPH_FG, HEADER_BUTTON_BG, HEADER_BUTTON_FG, HEADER_ACCENT_BOLD_FG, HEADER_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, _globalFooterLock, RESET4, CURSOR_BLINK_BLOCK, _isWindows, SPONSOR_HEADER_LABEL_MAX, _termTitleWriter, StatusBar;
622248
+ var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_FG, TEXT_PRIMARY, TEXT_DIM, NO_SUB_AGENTS_HEADER_LABEL, HEADER_BUTTON_GLYPH_FG, HEADER_BUTTON_BG, HEADER_BUTTON_FG, HEADER_ACCENT_BOLD_FG, HEADER_TELEGRAM_FG, BOX_TL3, BOX_TR3, BOX_BL3, BOX_BR3, BOX_H3, BOX_V3, BOX_BJ, _globalFooterLock, RESET4, CURSOR_BLINK_BLOCK, _isWindows, SPONSOR_HEADER_LABEL_MAX, _termTitleWriter, StatusBar;
622249
622249
  var init_status_bar = __esm({
622250
622250
  "packages/cli/src/tui/status-bar.ts"() {
622251
622251
  "use strict";
@@ -622437,6 +622437,7 @@ var init_status_bar = __esm({
622437
622437
  BOX_BR3 = "╯";
622438
622438
  BOX_H3 = "─";
622439
622439
  BOX_V3 = "│";
622440
+ BOX_BJ = "┴";
622440
622441
  _globalFooterLock = false;
622441
622442
  RESET4 = "\x1B[0m";
622442
622443
  CURSOR_BLINK_BLOCK = "\x1B[1 q";
@@ -622996,27 +622997,20 @@ var init_status_bar = __esm({
622996
622997
  return fg2;
622997
622998
  };
622998
622999
  const decorateMenuButton = (cmd, label) => {
622999
- return `${HEADER_BUTTON_GLYPH_FG}🭁\x1B[0m${HEADER_BUTTON_BG}${HEADER_BUTTON_FG}${label}\x1B[0m${PANEL_BG_SEQ}${HEADER_BUTTON_GLYPH_FG}🭝\x1B[0m${PANEL_BG_SEQ}`;
623000
+ return `${HEADER_BUTTON_GLYPH_FG}[\x1B[0m${HEADER_BUTTON_BG}${HEADER_BUTTON_FG}${label}\x1B[0m${PANEL_BG_SEQ}${HEADER_BUTTON_GLYPH_FG}]\x1B[0m${PANEL_BG_SEQ}`;
623000
623001
  };
623001
623002
  const decorateAgentButton = (content, color, active) => {
623002
623003
  const bg = `\x1B[48;5;${color}m`;
623003
623004
  const fg2 = `\x1B[38;5;${contrastTextColor(color)}m`;
623004
623005
  const weight = active ? "\x1B[1m" : "";
623005
- return `\x1B[38;5;${color}m🭁\x1B[0m${weight}${fg2}${bg}${content}\x1B[0m${PANEL_BG_SEQ}\x1B[38;5;${color}m🭝\x1B[0m${PANEL_BG_SEQ}`;
623006
+ return `\x1B[38;5;${color}m[\x1B[0m${weight}${fg2}${bg}${content}\x1B[0m${PANEL_BG_SEQ}\x1B[38;5;${color}m]\x1B[0m${PANEL_BG_SEQ}`;
623006
623007
  };
623007
623008
  const renderBtn = (cmd, label) => {
623008
623009
  const fg2 = buttonFg(cmd);
623009
- const left = _isWindows ? "" : "🛁";
623010
- const right = _isWindows ? "" : "🛂";
623011
- const leftW = _isWindows ? 0 : 2;
623012
- const rightW = _isWindows ? 0 : 2;
623013
- const btnW = label.length + leftW + rightW + 4;
623010
+ const btnW = label.length;
623014
623011
  const availW2 = getTermWidth() - identity3.width - 1;
623015
623012
  if (btnW > availW2) return linkify(cmd, `\x1B[38;5;${fg2}m${label}`);
623016
- return linkify(
623017
- cmd,
623018
- ` ${PANEL_BG_SEQ}\x1B[38;5;${tuiBg()}m${left}\x1B[0m ${PANEL_BG_SEQ}\x1B[38;5;${fg2}m${label}\x1B[0m ${PANEL_BG_SEQ}\x1B[38;5;${tuiBg()}m${right}\x1B[0m `
623019
- );
623013
+ return linkify(cmd, `${PANEL_BG_SEQ}\x1B[38;5;${fg2}m${label}\x1B[0m${PANEL_BG_SEQ}`);
623020
623014
  };
623021
623015
  const identity3 = this.buildHeaderIdentityRender();
623022
623016
  const modelLabel = this.summarizeHeaderModelName() || "model";
@@ -623335,8 +623329,17 @@ var init_status_bar = __esm({
623335
623329
  buf += `\x1B[${hdrRow};${w}H${BOX_FG}│${RESET4}${PANEL_BG_SEQ}`;
623336
623330
  const scrollPct = this._contentScrollOffset > 0 ? `${Math.round(this._contentScrollOffset / this._contentMaxLines * 100)}%` : "live";
623337
623331
  if (this._headerExpanded) {
623332
+ const separatorCols = new Set(this.getHeaderBorderSeparatorColumns(w));
623338
623333
  const sepRow1 = hdrRow + 1;
623339
- buf += `\x1B[${sepRow1};1H${BOX_FG}├${"─".repeat(w - 2)}${BOX_FG}┤${RESET4}${PANEL_BG_SEQ}`;
623334
+ let expandedSep = `${BOX_FG}├${"─".repeat(w - 2)}${BOX_FG}┤${RESET4}${PANEL_BG_SEQ}`;
623335
+ if (separatorCols.size > 0) {
623336
+ const chars = Array.from(stripAnsi(expandedSep));
623337
+ for (const col of separatorCols) {
623338
+ if (col > 1 && col < w) chars[col - 1] = BOX_BJ;
623339
+ }
623340
+ expandedSep = `${BOX_FG}${chars.join("")}${RESET4}${PANEL_BG_SEQ}`;
623341
+ }
623342
+ buf += `\x1B[${sepRow1};1H${expandedSep}`;
623340
623343
  const subRow = hdrRow + 2;
623341
623344
  buf += `\x1B[${subRow};1H${PANEL_BG_SEQ}\x1B[2K`;
623342
623345
  buf += `${BOX_FG}│${RESET4}${PANEL_BG_SEQ}`;
@@ -623347,7 +623350,15 @@ var init_status_bar = __esm({
623347
623350
  buf += ` ${subAgents.substring(0, w - 4)}`;
623348
623351
  buf += `\x1B[${subRow};${w}H${BOX_FG}│${RESET4}${PANEL_BG_SEQ}`;
623349
623352
  const scrollRow = subRow + 1;
623350
- buf += `\x1B[${scrollRow};1H${BOX_FG}╰${"─".repeat(w - 2)}${BOX_FG}╯${RESET4}${PANEL_BG_SEQ}`;
623353
+ let expandedBottom = `${BOX_BL3}${BOX_H3.repeat(w - 2)}${BOX_BR3}`;
623354
+ if (separatorCols.size > 0) {
623355
+ const chars = Array.from(expandedBottom);
623356
+ for (const col of separatorCols) {
623357
+ if (col > 1 && col < w) chars[col - 1] = BOX_BJ;
623358
+ }
623359
+ expandedBottom = chars.join("");
623360
+ }
623361
+ buf += `\x1B[${scrollRow};1H${BOX_FG}${expandedBottom}${RESET4}${PANEL_BG_SEQ}`;
623351
623362
  } else {
623352
623363
  const scrollRow = hdrRow + 1;
623353
623364
  buf += `\x1B[${scrollRow};1H${PANEL_BG_SEQ}\x1B[2K`;
@@ -625777,10 +625788,6 @@ ${CONTENT_BG_SEQ}`);
625777
625788
  const pastel2 = (code8, s2) => `${PANEL_BG_SEQ}\x1B[38;5;${code8}m${s2}\x1B[0m${PANEL_BG_SEQ}`;
625778
625789
  const pipe3 = `${PANEL_BG_SEQ}${BOX_FG}│${RESET4}${PANEL_BG_SEQ}`;
625779
625790
  const pipeW = 1;
625780
- const BTN_L = _isWindows ? "" : "🛁";
625781
- const BTN_R = _isWindows ? "" : "🛂";
625782
- const BTN_L_W = _isWindows ? 0 : 2;
625783
- const BTN_R_W = _isWindows ? 0 : 2;
625784
625791
  const sections = [];
625785
625792
  const compactOrder = [];
625786
625793
  let modelSectionIdx = -1;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.404",
3
+ "version": "1.0.405",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.404",
9
+ "version": "1.0.405",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.404",
3
+ "version": "1.0.405",
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",