omnius 1.0.519 → 1.0.520

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
@@ -155623,7 +155623,7 @@ var require_snapshot_recorder = __commonJS({
155623
155623
  "../node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module) {
155624
155624
  "use strict";
155625
155625
  var { writeFile: writeFile27, readFile: readFile25, mkdir: mkdir23 } = __require("node:fs/promises");
155626
- var { dirname: dirname56, resolve: resolve79 } = __require("node:path");
155626
+ var { dirname: dirname57, resolve: resolve79 } = __require("node:path");
155627
155627
  var { setTimeout: setTimeout3, clearTimeout: clearTimeout3 } = __require("node:timers");
155628
155628
  var { InvalidArgumentError, UndiciError } = require_errors2();
155629
155629
  var { hashId, isUrlExcludedFactory, normalizeHeaders, createHeaderFilters } = require_snapshot_utils();
@@ -155854,7 +155854,7 @@ var require_snapshot_recorder = __commonJS({
155854
155854
  throw new InvalidArgumentError("Snapshot path is required");
155855
155855
  }
155856
155856
  const resolvedPath = resolve79(path15);
155857
- await mkdir23(dirname56(resolvedPath), { recursive: true });
155857
+ await mkdir23(dirname57(resolvedPath), { recursive: true });
155858
155858
  const data = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({
155859
155859
  hash,
155860
155860
  snapshot
@@ -269516,15 +269516,15 @@ var init_ls = __esm({
269516
269516
  });
269517
269517
 
269518
269518
  // ../node_modules/@helia/unixfs/dist/src/commands/mkdir.js
269519
- async function mkdir6(parentCid, dirname56, blockstore, options2 = {}) {
269520
- if (dirname56.includes("/")) {
269519
+ async function mkdir6(parentCid, dirname57, blockstore, options2 = {}) {
269520
+ if (dirname57.includes("/")) {
269521
269521
  throw new InvalidParametersError4("Path must not have slashes");
269522
269522
  }
269523
269523
  const entry = await exporter2(parentCid, blockstore, options2);
269524
269524
  if (entry.type !== "directory") {
269525
269525
  throw new NotADirectoryError(`${parentCid.toString()} was not a UnixFS directory`);
269526
269526
  }
269527
- log16("creating %s", dirname56);
269527
+ log16("creating %s", dirname57);
269528
269528
  const metadata = new UnixFS({
269529
269529
  type: "directory",
269530
269530
  mode: options2.mode,
@@ -269540,9 +269540,9 @@ async function mkdir6(parentCid, dirname56, blockstore, options2 = {}) {
269540
269540
  await blockstore.put(emptyDirCid, buf);
269541
269541
  const [directory, pblink] = await Promise.all([
269542
269542
  cidToDirectory(parentCid, blockstore, options2),
269543
- cidToPBLink(emptyDirCid, dirname56, blockstore, options2)
269543
+ cidToPBLink(emptyDirCid, dirname57, blockstore, options2)
269544
269544
  ]);
269545
- log16("adding empty dir called %s to %c", dirname56, parentCid);
269545
+ log16("adding empty dir called %s to %c", dirname57, parentCid);
269546
269546
  const result = await addLink(directory, pblink, blockstore, {
269547
269547
  ...options2,
269548
269548
  allowOverwriting: options2.force
@@ -270041,8 +270041,8 @@ var init_unixfs2 = __esm({
270041
270041
  async *ls(cid, options2 = {}) {
270042
270042
  yield* ls(cid, this.components.blockstore, options2);
270043
270043
  }
270044
- async mkdir(cid, dirname56, options2 = {}) {
270045
- return mkdir6(cid, dirname56, this.components.blockstore, options2);
270044
+ async mkdir(cid, dirname57, options2 = {}) {
270045
+ return mkdir6(cid, dirname57, this.components.blockstore, options2);
270046
270046
  }
270047
270047
  async rm(cid, path15, options2 = {}) {
270048
270048
  return rm3(cid, path15, this.components.blockstore, options2);
@@ -273439,8 +273439,8 @@ var require_pattern = __commonJS({
273439
273439
  }
273440
273440
  exports.endsWithSlashGlobStar = endsWithSlashGlobStar;
273441
273441
  function isAffectDepthOfReadingPattern(pattern) {
273442
- const basename44 = path15.basename(pattern);
273443
- return endsWithSlashGlobStar(pattern) || isStaticPattern(basename44);
273442
+ const basename45 = path15.basename(pattern);
273443
+ return endsWithSlashGlobStar(pattern) || isStaticPattern(basename45);
273444
273444
  }
273445
273445
  exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
273446
273446
  function expandPatternsWithBraceExpansion(patterns) {
@@ -439859,9 +439859,9 @@ ${lanes.join("\n")}
439859
439859
  /*ignoreCase*/
439860
439860
  false
439861
439861
  )) {
439862
- const basename44 = getBaseFileName(a2.fileName);
439863
- if (basename44 === "lib.d.ts" || basename44 === "lib.es6.d.ts") return 0;
439864
- const name10 = removeSuffix(removePrefix(basename44, "lib."), ".d.ts");
439862
+ const basename45 = getBaseFileName(a2.fileName);
439863
+ if (basename45 === "lib.d.ts" || basename45 === "lib.es6.d.ts") return 0;
439864
+ const name10 = removeSuffix(removePrefix(basename45, "lib."), ".d.ts");
439865
439865
  const index = libs.indexOf(name10);
439866
439866
  if (index !== -1) return index + 1;
439867
439867
  }
@@ -503787,8 +503787,8 @@ ${options2.prefix}` : "\n" : options2.prefix
503787
503787
  }
503788
503788
  };
503789
503789
  for (const file of files) {
503790
- const basename44 = getBaseFileName(file);
503791
- if (basename44 === "package.json" || basename44 === "bower.json") {
503790
+ const basename45 = getBaseFileName(file);
503791
+ if (basename45 === "package.json" || basename45 === "bower.json") {
503792
503792
  createProjectWatcher(
503793
503793
  file,
503794
503794
  "FileWatcher"
@@ -507472,8 +507472,8 @@ All files are: ${JSON.stringify(names)}`,
507472
507472
  var _a2;
507473
507473
  const fileOrDirectoryPath = removeIgnoredPath(this.toPath(fileOrDirectory));
507474
507474
  if (!fileOrDirectoryPath) return;
507475
- const basename44 = getBaseFileName(fileOrDirectoryPath);
507476
- if (((_a2 = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a2.size) && (basename44 === "package.json" || basename44 === "node_modules")) {
507475
+ const basename45 = getBaseFileName(fileOrDirectoryPath);
507476
+ if (((_a2 = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a2.size) && (basename45 === "package.json" || basename45 === "node_modules")) {
507477
507477
  result.affectedModuleSpecifierCacheProjects.forEach((project) => {
507478
507478
  var _a22;
507479
507479
  (_a22 = project.getModuleSpecifierCache()) == null ? void 0 : _a22.clear();
@@ -516354,7 +516354,7 @@ var require_path_browserify = __commonJS({
516354
516354
  _makeLong: function _makeLong(path15) {
516355
516355
  return path15;
516356
516356
  },
516357
- dirname: function dirname56(path15) {
516357
+ dirname: function dirname57(path15) {
516358
516358
  assertPath(path15);
516359
516359
  if (path15.length === 0) return ".";
516360
516360
  var code8 = path15.charCodeAt(0);
@@ -516376,7 +516376,7 @@ var require_path_browserify = __commonJS({
516376
516376
  if (hasRoot && end === 1) return "//";
516377
516377
  return path15.slice(0, end);
516378
516378
  },
516379
- basename: function basename44(path15, ext) {
516379
+ basename: function basename45(path15, ext) {
516380
516380
  if (ext !== void 0 && typeof ext !== "string") throw new TypeError('"ext" argument must be a string');
516381
516381
  assertPath(path15);
516382
516382
  var start2 = 0;
@@ -576161,8 +576161,8 @@ var init_adversaryStream = __esm({
576161
576161
  return;
576162
576162
  try {
576163
576163
  const { writeFileSync: writeFileSync97, mkdirSync: mkdirSync114, existsSync: existsSync174 } = __require("node:fs");
576164
- const { dirname: dirname56 } = __require("node:path");
576165
- const dir = dirname56(this.persistPath);
576164
+ const { dirname: dirname57 } = __require("node:path");
576165
+ const dir = dirname57(this.persistPath);
576166
576166
  if (!existsSync174(dir))
576167
576167
  mkdirSync114(dir, { recursive: true });
576168
576168
  writeFileSync97(this.persistPath, JSON.stringify({ ledger: this.ledger }, null, 2));
@@ -614251,10 +614251,10 @@ transcribe-cli error: ${transcribeCliError}` : "";
614251
614251
  wordTimestamps: false
614252
614252
  });
614253
614253
  if (outputDir2) {
614254
- const { basename: basename44 } = await import("node:path");
614254
+ const { basename: basename45 } = await import("node:path");
614255
614255
  const transcriptDir = join127(outputDir2, ".omnius", "transcripts");
614256
614256
  mkdirSync69(transcriptDir, { recursive: true });
614257
- const outFile = join127(transcriptDir, `${basename44(filePath)}.txt`);
614257
+ const outFile = join127(transcriptDir, `${basename45(filePath)}.txt`);
614258
614258
  writeFileSync58(outFile, result.text, "utf-8");
614259
614259
  }
614260
614260
  return {
@@ -614270,10 +614270,10 @@ transcribe-cli error: ${transcribeCliError}` : "";
614270
614270
  const fb = await transcribeFileViaWhisper(filePath, this.config.model);
614271
614271
  if (fb) {
614272
614272
  if (outputDir2) {
614273
- const { basename: basename44 } = await import("node:path");
614273
+ const { basename: basename45 } = await import("node:path");
614274
614274
  const transcriptDir = join127(outputDir2, ".omnius", "transcripts");
614275
614275
  mkdirSync69(transcriptDir, { recursive: true });
614276
- const outFile = join127(transcriptDir, `${basename44(filePath)}.txt`);
614276
+ const outFile = join127(transcriptDir, `${basename45(filePath)}.txt`);
614277
614277
  writeFileSync58(outFile, fb.text, "utf-8");
614278
614278
  }
614279
614279
  return fb;
@@ -639497,6 +639497,7 @@ __export(status_bar_exports, {
639497
639497
  setTerminalTitle: () => setTerminalTitle,
639498
639498
  unlockFooterRedraws: () => unlockFooterRedraws
639499
639499
  });
639500
+ import { basename as basename29, dirname as dirname44 } from "node:path";
639500
639501
  import { readFile as readFileAsync } from "node:fs/promises";
639501
639502
  function headerButtonGlyphFg() {
639502
639503
  const a2 = tuiAccent();
@@ -639846,7 +639847,7 @@ var init_status_bar = __esm({
639846
639847
  _toolCalls = 0;
639847
639848
  _turns = 0;
639848
639849
  /** Debug data panel overlay state. */
639849
- /** Bottom-row page: -1 = compact metrics, 0-3 = debug panels (token, model, SNR, cost) */
639850
+ /** Bottom-row page: -1 = compact metrics, 0-4 = token, model, SNR, cost, cwd. */
639850
639851
  _debugPanelPage = -1;
639851
639852
  active = false;
639852
639853
  scrollRegionTop = 1;
@@ -639992,6 +639993,9 @@ var init_status_bar = __esm({
639992
639993
  _enhanceState = "idle";
639993
639994
  /** Gradient phase for the live stage indicator sweep (spec §3). */
639994
639995
  _stagePhase = 0;
639996
+ static FOOTER_DEBUG_LAST_PAGE = 4;
639997
+ static FOOTER_ANIMATION_INTERVAL_MS = 100;
639998
+ _footerAnimationTimer = null;
639995
639999
  /** The pre-expansion seed text, restored when the user rejects the expansion. */
639996
640000
  _enhanceOriginal = null;
639997
640001
  /** Transient press-flash target for visual click feedback. */
@@ -640934,6 +640938,25 @@ var init_status_bar = __esm({
640934
640938
  }
640935
640939
  if (this.active) this.refreshHeaderPanels();
640936
640940
  }
640941
+ startFooterAnimationTimer() {
640942
+ if (this._footerAnimationTimer) return;
640943
+ this._footerAnimationTimer = setInterval(() => {
640944
+ if (!this.active || this._resizing || _globalFooterLock || isOverlayActive()) {
640945
+ return;
640946
+ }
640947
+ this.advanceStagePhase();
640948
+ this.renderFooterPreserveCursor();
640949
+ }, _StatusBar.FOOTER_ANIMATION_INTERVAL_MS);
640950
+ this._footerAnimationTimer.unref?.();
640951
+ }
640952
+ stopFooterAnimationTimer() {
640953
+ if (!this._footerAnimationTimer) return;
640954
+ clearInterval(this._footerAnimationTimer);
640955
+ this._footerAnimationTimer = null;
640956
+ }
640957
+ advanceStagePhase() {
640958
+ this._stagePhase = (this._stagePhase + 6) % 360;
640959
+ }
640937
640960
  /**
640938
640961
  * Ensure the monitoring timer is running when the registry has entries
640939
640962
  * and the braille spinner is not active. Refreshes the buffer line
@@ -641509,6 +641532,7 @@ var init_status_bar = __esm({
641509
641532
  this.applyScrollRegion(true);
641510
641533
  this.fillContentArea();
641511
641534
  this.renderFooterAndPositionInput();
641535
+ this.startFooterAnimationTimer();
641512
641536
  this.refreshHeaderContent();
641513
641537
  this.hookStdin();
641514
641538
  setTermTitleWriter((data) => this.writeChrome(data));
@@ -641521,6 +641545,7 @@ var init_status_bar = __esm({
641521
641545
  setTermTitleWriter(null);
641522
641546
  this.active = false;
641523
641547
  this._resizing = false;
641548
+ this.stopFooterAnimationTimer();
641524
641549
  if (this._resizeTimer) {
641525
641550
  clearTimeout(this._resizeTimer);
641526
641551
  this._resizeTimer = null;
@@ -643372,6 +643397,27 @@ ${CONTENT_BG_SEQ}`);
643372
643397
  if (n2 < 100) return n2.toFixed(1);
643373
643398
  return Math.round(n2).toLocaleString();
643374
643399
  }
643400
+ static compactPathForFooter(rawPath, maxWidth) {
643401
+ const limit = Math.max(8, Math.floor(maxWidth));
643402
+ const cleanPath = rawPath.replace(/[\x00-\x1F\x7F]/g, "?");
643403
+ const home = process.env["HOME"];
643404
+ const value2 = home && (cleanPath === home || cleanPath.startsWith(`${home}/`)) ? `~${cleanPath.slice(home.length)}` : cleanPath;
643405
+ if (value2.length <= limit) return value2;
643406
+ if (limit <= 6) return value2.slice(-limit);
643407
+ const marker = "...";
643408
+ const leaf = basename29(value2);
643409
+ const parentLeaf = basename29(dirname44(value2));
643410
+ const suffix = parentLeaf && parentLeaf !== "." && parentLeaf !== leaf ? `${parentLeaf}/${leaf}` : leaf;
643411
+ if (suffix.length + marker.length + 1 <= limit) {
643412
+ return `${marker}/${suffix}`;
643413
+ }
643414
+ const tailWidth = Math.max(1, limit - marker.length);
643415
+ return `${marker}${value2.slice(-tailWidth)}`;
643416
+ }
643417
+ buildDirectoryMetricsPage(maxPathWidth) {
643418
+ const cwd4 = _StatusBar.compactPathForFooter(process.cwd(), maxPathWidth);
643419
+ return `\x1B[38;5;117mcwd\x1B[0m \x1B[38;5;183m${cwd4}\x1B[0m`;
643420
+ }
643375
643421
  /** Build the metrics line string with adaptive compaction */
643376
643422
  /**
643377
643423
  * Live stage indicator block (spec: tui-stage-indicator-spec.md).
@@ -643386,7 +643432,6 @@ ${CONTENT_BG_SEQ}`);
643386
643432
  Math.max(12, Math.min(needed, maxWidth))
643387
643433
  );
643388
643434
  const truecolor = supportsTruecolor();
643389
- this._stagePhase = (this._stagePhase + 6) % 360;
643390
643435
  const block = renderStageBlock(
643391
643436
  stage2,
643392
643437
  detail,
@@ -643467,15 +643512,19 @@ ${CONTENT_BG_SEQ}`);
643467
643512
  const recStr = this._recording ? " \x1B[38;5;210m● REC\x1B[0m" : "";
643468
643513
  pages.push(costStr + recStr);
643469
643514
  }
643470
- while (pages.length < 4) pages.push("--");
643515
+ const pathWidth = Math.max(12, Math.min(96, Math.floor(termWidth * 0.45)));
643516
+ pages.push(this.buildDirectoryMetricsPage(pathWidth));
643517
+ while (pages.length <= _StatusBar.FOOTER_DEBUG_LAST_PAGE) {
643518
+ pages.push("--");
643519
+ }
643471
643520
  const idx = Math.min(this._debugPanelPage, pages.length - 1);
643472
643521
  rightSide = pages[idx] ?? "--";
643473
643522
  pageLabel = "";
643474
643523
  }
643475
643524
  rightSide = rightSide ? rightSide + " " : "";
643476
- const pageTotal = 5;
643477
- const pageIdx = this._debugPanelPage + 2;
643478
- const indicator = `\x1B[38;5;240m[${pageIdx > 5 ? 1 : pageIdx}/${pageTotal}]\x1B[0m `;
643525
+ const pageTotal = _StatusBar.FOOTER_DEBUG_LAST_PAGE + 2;
643526
+ const pageIdx = Math.max(1, Math.min(pageTotal, this._debugPanelPage + 2));
643527
+ const indicator = `\x1B[38;5;240m[${pageIdx}/${pageTotal}]\x1B[0m `;
643479
643528
  const fullRight = pageLabel + rightSide + indicator + arrow;
643480
643529
  const rightW = stripAnsi(fullRight).length;
643481
643530
  const stageBlock = this.buildStageBlock(
@@ -643500,9 +643549,9 @@ ${CONTENT_BG_SEQ}`);
643500
643549
  if (m2 > 0) return `${m2}m ${s2}s`;
643501
643550
  return `${s2}s`;
643502
643551
  }
643503
- /** Cycle to next bottom-row page (-1→0→1→2→3→-1) */
643552
+ /** Cycle to next bottom-row page (-1→0→1→2→3→4→-1) */
643504
643553
  cycleDebugPanelPage() {
643505
- this._debugPanelPage = this._debugPanelPage >= 3 ? -1 : this._debugPanelPage + 1;
643554
+ this._debugPanelPage = this._debugPanelPage >= _StatusBar.FOOTER_DEBUG_LAST_PAGE ? -1 : this._debugPanelPage + 1;
643506
643555
  }
643507
643556
  // -------------------------------------------------------------------------
643508
643557
  // Private
@@ -645387,7 +645436,7 @@ __export(personaplex_exports, {
645387
645436
  stopPersonaPlex: () => stopPersonaPlex
645388
645437
  });
645389
645438
  import { existsSync as existsSync128, writeFileSync as writeFileSync67, readFileSync as readFileSync107, mkdirSync as mkdirSync79, copyFileSync as copyFileSync5, readdirSync as readdirSync43, statSync as statSync51 } from "node:fs";
645390
- import { join as join142, dirname as dirname44 } from "node:path";
645439
+ import { join as join142, dirname as dirname45 } from "node:path";
645391
645440
  import { homedir as homedir46 } from "node:os";
645392
645441
  import { spawn as spawn33 } from "node:child_process";
645393
645442
  import { fileURLToPath as fileURLToPath19 } from "node:url";
@@ -646197,7 +646246,7 @@ function getShippedVoicesDir() {
646197
646246
  // repo root
646198
646247
  ];
646199
646248
  try {
646200
- const modDir = dirname44(fileURLToPath19(import.meta.url));
646249
+ const modDir = dirname45(fileURLToPath19(import.meta.url));
646201
646250
  candidates.push(join142(modDir, "..", "..", "..", "voices", "personaplex"));
646202
646251
  candidates.push(join142(modDir, "..", "..", "..", "..", "voices", "personaplex"));
646203
646252
  } catch {
@@ -650021,7 +650070,7 @@ var init_platforms = __esm({
650021
650070
 
650022
650071
  // packages/cli/src/tui/workspace-explorer.ts
650023
650072
  import { existsSync as existsSync131, readdirSync as readdirSync44, readFileSync as readFileSync109, statSync as statSync52 } from "node:fs";
650024
- import { basename as basename29, extname as extname17, join as join144, relative as relative16, resolve as resolve62 } from "node:path";
650073
+ import { basename as basename30, extname as extname17, join as join144, relative as relative16, resolve as resolve62 } from "node:path";
650025
650074
  function exploreWorkspace(root, options2 = {}) {
650026
650075
  const query = (options2.query ?? "").trim().toLowerCase();
650027
650076
  const maxResults = options2.maxResults ?? 80;
@@ -650138,7 +650187,7 @@ function classifyWorkspaceFile(path15) {
650138
650187
  if (lower.includes(".test.") || lower.includes(".spec.") || lower.includes("/tests/")) return "test";
650139
650188
  if (SOURCE_EXT.has(ext)) return "source";
650140
650189
  if (DOC_EXT2.has(ext)) return "doc";
650141
- if (CONFIG_EXT.has(ext) || basename29(lower).startsWith("dockerfile")) return "config";
650190
+ if (CONFIG_EXT.has(ext) || basename30(lower).startsWith("dockerfile")) return "config";
650142
650191
  if (ASSET_EXT.has(ext)) return "asset";
650143
650192
  return "other";
650144
650193
  }
@@ -650150,7 +650199,7 @@ function scoreWorkspaceFile(entry, query) {
650150
650199
  if (entry.path.startsWith("packages/cli/src/")) score += 5;
650151
650200
  if (query) {
650152
650201
  const lower = entry.path.toLowerCase();
650153
- const name10 = basename29(lower);
650202
+ const name10 = basename30(lower);
650154
650203
  if (name10.startsWith(query)) score += 20;
650155
650204
  if (lower.includes(`/${query}`)) score += 12;
650156
650205
  if (lower.includes(query)) score += 8;
@@ -653805,7 +653854,7 @@ import { existsSync as existsSync136, readFileSync as readFileSync112, writeFile
653805
653854
  import { join as join148 } from "node:path";
653806
653855
  import { homedir as homedir49 } from "node:os";
653807
653856
  import { fileURLToPath as fileURLToPath20 } from "node:url";
653808
- import { dirname as dirname45 } from "node:path";
653857
+ import { dirname as dirname46 } from "node:path";
653809
653858
  function getDaemonPort() {
653810
653859
  const env2 = process.env["OMNIUS_HOST"];
653811
653860
  if (env2) {
@@ -653828,7 +653877,7 @@ async function isDaemonRunning(port) {
653828
653877
  }
653829
653878
  function getLocalCliVersion() {
653830
653879
  try {
653831
- const here = dirname45(fileURLToPath20(import.meta.url));
653880
+ const here = dirname46(fileURLToPath20(import.meta.url));
653832
653881
  for (const rel of ["../package.json", "../../package.json", "./package.json", "../../../package.json"]) {
653833
653882
  const p2 = join148(here, rel);
653834
653883
  if (existsSync136(p2)) {
@@ -653912,7 +653961,7 @@ async function resolveDaemonCommand(nodeExe) {
653912
653961
  if (first2) candidates.push(first2);
653913
653962
  } catch {
653914
653963
  }
653915
- const thisDir = dirname45(fileURLToPath20(import.meta.url));
653964
+ const thisDir = dirname46(fileURLToPath20(import.meta.url));
653916
653965
  candidates.push(join148(thisDir, "index.js"));
653917
653966
  const seen = /* @__PURE__ */ new Set();
653918
653967
  for (const candidate of candidates) {
@@ -656875,7 +656924,7 @@ import {
656875
656924
  copyFileSync as copyFileSync6,
656876
656925
  rmSync as rmSync11
656877
656926
  } from "node:fs";
656878
- import { join as join154, dirname as dirname46, resolve as resolve64 } from "node:path";
656927
+ import { join as join154, dirname as dirname47, resolve as resolve64 } from "node:path";
656879
656928
  import { homedir as homedir52, tmpdir as tmpdir23, platform as platform7 } from "node:os";
656880
656929
  import {
656881
656930
  spawn as nodeSpawn
@@ -657035,7 +657084,7 @@ function consolidateVoiceDirs2() {
657035
657084
  const c10 = join154(dir, ".omnius", "voice");
657036
657085
  if (existsSync142(c10) && c10 !== globalVoice) candidates.add(c10);
657037
657086
  prev = dir;
657038
- dir = dirname46(dir);
657087
+ dir = dirname47(dir);
657039
657088
  }
657040
657089
  for (const root of COMMON_PROJECT_ROOTS) {
657041
657090
  const rootDir = join154(homedir52(), root);
@@ -657230,7 +657279,7 @@ function insertTagAfterOpeningClause(text2, tag) {
657230
657279
  function writeDetectTorchScript(targetPath) {
657231
657280
  if (existsSync142(targetPath)) return;
657232
657281
  try {
657233
- mkdirSync85(dirname46(targetPath), { recursive: true });
657282
+ mkdirSync85(dirname47(targetPath), { recursive: true });
657234
657283
  } catch {
657235
657284
  }
657236
657285
  const script = `#!/usr/bin/env python3
@@ -661472,7 +661521,7 @@ import {
661472
661521
  appendFileSync as appendFileSync16,
661473
661522
  writeSync as writeSync2
661474
661523
  } from "node:fs";
661475
- import { basename as basename30, dirname as dirname47, relative as relative17, join as join155 } from "node:path";
661524
+ import { basename as basename31, dirname as dirname48, relative as relative17, join as join155 } from "node:path";
661476
661525
  function omniusPinnedDependencyVersion(name10) {
661477
661526
  const spec = OMNIUS_PINNED_DEPENDENCY_SPECS[name10];
661478
661527
  if (!spec) return null;
@@ -661904,12 +661953,12 @@ async function ensureVoiceDeps(ctx3) {
661904
661953
  }
661905
661954
  }
661906
661955
  if (typeof mod3.getVenvPython === "function") {
661907
- const { dirname: dirname56 } = await import("node:path");
661956
+ const { dirname: dirname57 } = await import("node:path");
661908
661957
  const { existsSync: existsSync174 } = await import("node:fs");
661909
661958
  const venvPy = mod3.getVenvPython();
661910
661959
  if (existsSync174(venvPy)) {
661911
661960
  process.env.TRANSCRIBE_PYTHON = venvPy;
661912
- const venvBin = dirname56(venvPy);
661961
+ const venvBin = dirname57(venvPy);
661913
661962
  const sep6 = process.platform === "win32" ? ";" : ":";
661914
661963
  const cur = process.env.PATH || "";
661915
661964
  if (!cur.split(sep6).includes(venvBin)) {
@@ -673253,14 +673302,14 @@ async function handleVoiceMenu(ctx3, save3, hasLocal) {
673253
673302
  if (!jsonDrop.confirmed || !jsonDrop.path) {
673254
673303
  continue;
673255
673304
  }
673256
- const { basename: basename44, join: pathJoin } = await import("node:path");
673305
+ const { basename: basename45, join: pathJoin } = await import("node:path");
673257
673306
  const {
673258
673307
  copyFileSync: copyFileSync8,
673259
673308
  mkdirSync: mkdirSync114,
673260
673309
  existsSync: exists2
673261
673310
  } = await import("node:fs");
673262
673311
  const { homedir: homedir66 } = await import("node:os");
673263
- const modelName = basename44(onnxDrop.path, ".onnx").replace(
673312
+ const modelName = basename45(onnxDrop.path, ".onnx").replace(
673264
673313
  /[^a-zA-Z0-9_-]/g,
673265
673314
  "-"
673266
673315
  );
@@ -673780,7 +673829,7 @@ async function handleVoiceList(ctx3, focusFilename) {
673780
673829
  copyFileSync: cpf,
673781
673830
  mkdirSync: mkd
673782
673831
  } = __require("node:fs");
673783
- const { basename: basename44, join: pjoin } = __require("node:path");
673832
+ const { basename: basename45, join: pjoin } = __require("node:path");
673784
673833
  if (!fe(src2)) {
673785
673834
  renderError(`File not found: ${src2}`);
673786
673835
  helpers.render();
@@ -673793,7 +673842,7 @@ async function handleVoiceList(ctx3, focusFilename) {
673793
673842
  "clone-refs"
673794
673843
  );
673795
673844
  mkd(refsDir, { recursive: true });
673796
- const destName = basename44(src2);
673845
+ const destName = basename45(src2);
673797
673846
  const dest = pjoin(refsDir, destName);
673798
673847
  cpf(src2, dest);
673799
673848
  renderInfo(`Imported "${destName}" → ${dest}`);
@@ -674766,9 +674815,9 @@ async function collectSponsorMediaStream(args) {
674766
674815
  if (sha !== artifact.sha256)
674767
674816
  return { ok: false, error: `Artifact hash mismatch for ${artifactId}` };
674768
674817
  }
674769
- const safeName3 = basename30(artifact.filename).replace(/[^\w.-]/g, "_") || `artifact${defaultExtensionForMime(artifact.mime)}`;
674818
+ const safeName3 = basename31(artifact.filename).replace(/[^\w.-]/g, "_") || `artifact${defaultExtensionForMime(artifact.mime)}`;
674770
674819
  const outputPath3 = join155(args.outputRoot, safeName3);
674771
- mkdirSync86(dirname47(outputPath3), { recursive: true });
674820
+ mkdirSync86(dirname48(outputPath3), { recursive: true });
674772
674821
  writeFileSync74(outputPath3, bytes);
674773
674822
  return { ok: true, path: outputPath3, metadata };
674774
674823
  }
@@ -675261,14 +675310,14 @@ async function handlePeerEndpoint(peerId, authKey, ctx3, local, advertisedModels
675261
675310
  if (models.length > 0) {
675262
675311
  try {
675263
675312
  const { writeFileSync: writeFileSync97, mkdirSync: mkdirSync114 } = await import("node:fs");
675264
- const { join: join190, dirname: dirname56 } = await import("node:path");
675313
+ const { join: join190, dirname: dirname57 } = await import("node:path");
675265
675314
  const cachePath2 = join190(
675266
675315
  ctx3.repoRoot || process.cwd(),
675267
675316
  ".omnius",
675268
675317
  "nexus",
675269
675318
  "peer-models-cache.json"
675270
675319
  );
675271
- mkdirSync114(dirname56(cachePath2), { recursive: true });
675320
+ mkdirSync114(dirname57(cachePath2), { recursive: true });
675272
675321
  writeFileSync97(
675273
675322
  cachePath2,
675274
675323
  JSON.stringify(
@@ -675344,14 +675393,14 @@ async function handlePeerEndpoint(peerId, authKey, ctx3, local, advertisedModels
675344
675393
  );
675345
675394
  try {
675346
675395
  const { writeFileSync: writeFileSync97, mkdirSync: mkdirSync114 } = await import("node:fs");
675347
- const { join: join190, dirname: dirname56 } = await import("node:path");
675396
+ const { join: join190, dirname: dirname57 } = await import("node:path");
675348
675397
  const cachePath2 = join190(
675349
675398
  ctx3.repoRoot || process.cwd(),
675350
675399
  ".omnius",
675351
675400
  "nexus",
675352
675401
  "peer-models-cache.json"
675353
675402
  );
675354
- mkdirSync114(dirname56(cachePath2), { recursive: true });
675403
+ mkdirSync114(dirname57(cachePath2), { recursive: true });
675355
675404
  writeFileSync97(
675356
675405
  cachePath2,
675357
675406
  JSON.stringify(
@@ -676367,10 +676416,10 @@ async function handleUpdate(subcommand, ctx3) {
676367
676416
  try {
676368
676417
  const { createRequire: createRequire11 } = await import("node:module");
676369
676418
  const { fileURLToPath: fileURLToPath26 } = await import("node:url");
676370
- const { dirname: dirname56, join: join190 } = await import("node:path");
676419
+ const { dirname: dirname57, join: join190 } = await import("node:path");
676371
676420
  const { existsSync: existsSync174 } = await import("node:fs");
676372
676421
  const req3 = createRequire11(import.meta.url);
676373
- const thisDir = dirname56(fileURLToPath26(import.meta.url));
676422
+ const thisDir = dirname57(fileURLToPath26(import.meta.url));
676374
676423
  const candidates = [
676375
676424
  join190(thisDir, "..", "package.json"),
676376
676425
  join190(thisDir, "..", "..", "package.json"),
@@ -678270,7 +678319,7 @@ var init_commands = __esm({
678270
678319
 
678271
678320
  // packages/cli/src/realtime.ts
678272
678321
  import { existsSync as existsSync144, readFileSync as readFileSync118, readdirSync as readdirSync49 } from "node:fs";
678273
- import { basename as basename31, join as join156, resolve as resolve65 } from "node:path";
678322
+ import { basename as basename32, join as join156, resolve as resolve65 } from "node:path";
678274
678323
  function clampInt2(value2, fallback, min, max) {
678275
678324
  const n2 = typeof value2 === "number" ? value2 : Number.parseInt(String(value2 ?? ""), 10);
678276
678325
  if (!Number.isFinite(n2)) return fallback;
@@ -678353,14 +678402,14 @@ function buildRealtimeSystemPrompt(opts) {
678353
678402
  "- Do not mention ASR, TTS, prompts, realtime mode, hidden reasoning, tools, or policy unless the caller explicitly asks.",
678354
678403
  "- If a request needs work outside this text-only exchange, say the next handoff in one short sentence."
678355
678404
  ].join("\n"),
678356
- soul ? `Project SOUL.md (${basename31(soul.path)}), compacted for realtime:
678405
+ soul ? `Project SOUL.md (${basename32(soul.path)}), compacted for realtime:
678357
678406
  ${blockText2(soul.content, soulLimit)}` : [
678358
678407
  "No project SOUL.md found. Default soul:",
678359
678408
  "- pragmatic, direct, concrete",
678360
678409
  "- low-fluff, human-paced, evidence-aware",
678361
678410
  "- truthful about uncertainty without overexplaining"
678362
678411
  ].join("\n"),
678363
- voice ? `Project voice profile (${basename31(voice.path)}), compacted for realtime:
678412
+ voice ? `Project voice profile (${basename32(voice.path)}), compacted for realtime:
678364
678413
  ${blockText2(voice.content, voiceLimit)}` : [
678365
678414
  "Default realtime voice:",
678366
678415
  "- conversational, brief, and proportional",
@@ -679099,7 +679148,7 @@ __export(visual_identity_association_exports, {
679099
679148
  formatVisualIdentityAssociationContext: () => formatVisualIdentityAssociationContext,
679100
679149
  stageVisualIdentityAssertion: () => stageVisualIdentityAssertion
679101
679150
  });
679102
- import { basename as basename32 } from "node:path";
679151
+ import { basename as basename33 } from "node:path";
679103
679152
  function normalizePersonName(name10) {
679104
679153
  return name10.trim().toLowerCase().replace(/\s+/g, " ");
679105
679154
  }
@@ -679451,7 +679500,7 @@ async function associateVisualIdentityFromImage(options2) {
679451
679500
  relation: "same_person_candidate",
679452
679501
  confidence: match.confidence,
679453
679502
  assertedBy: { id: "visual_memory", displayName: "visual_memory", isBot: true },
679454
- note: `Prior enrolled visual-memory face match for ${basename32(options2.imagePath)}`
679503
+ note: `Prior enrolled visual-memory face match for ${basename33(options2.imagePath)}`
679455
679504
  }],
679456
679505
  deferredReason: "interactive_project_memory_blocked"
679457
679506
  }
@@ -679518,7 +679567,7 @@ async function associateVisualIdentityFromImage(options2) {
679518
679567
  relation: "same_person_candidate",
679519
679568
  confidence: match.confidence,
679520
679569
  assertedBy: { id: "visual_memory", displayName: "visual_memory", isBot: true },
679521
- note: `Prior enrolled visual-memory face match for ${basename32(options2.imagePath)}`
679570
+ note: `Prior enrolled visual-memory face match for ${basename33(options2.imagePath)}`
679522
679571
  }]
679523
679572
  });
679524
679573
  if (result2.episodeId) committedEpisodeIds.push(result2.episodeId);
@@ -679563,7 +679612,7 @@ async function associateVisualIdentityFromImage(options2) {
679563
679612
  relation: "depicts",
679564
679613
  confidence: item.confidence,
679565
679614
  assertedBy: item.sender || options2.sender,
679566
- note: item.note || `Applied explicit pending identity assertion to ${basename32(options2.imagePath)}`
679615
+ note: item.note || `Applied explicit pending identity assertion to ${basename33(options2.imagePath)}`
679567
679616
  }]
679568
679617
  });
679569
679618
  if (result2.episodeId) committedEpisodeIds.push(result2.episodeId);
@@ -679621,7 +679670,7 @@ var init_visual_identity_association = __esm({
679621
679670
 
679622
679671
  // packages/cli/src/tui/identity-memory-tool.ts
679623
679672
  import { existsSync as existsSync146 } from "node:fs";
679624
- import { basename as basename33, extname as extname19, resolve as resolve67 } from "node:path";
679673
+ import { basename as basename34, extname as extname19, resolve as resolve67 } from "node:path";
679625
679674
  function personKey2(name10) {
679626
679675
  return `person:${name10.trim().toLowerCase().replace(/\s+/g, " ")}`;
679627
679676
  }
@@ -679690,7 +679739,7 @@ async function resolveMediaFromArgs(args, opts) {
679690
679739
  path: path15,
679691
679740
  media,
679692
679741
  modality: inferModality(media),
679693
- label: basename33(path15)
679742
+ label: basename34(path15)
679694
679743
  };
679695
679744
  }
679696
679745
  function edgeDirection(edge, nodeId, otherText) {
@@ -679864,7 +679913,7 @@ var init_identity_memory_tool = __esm({
679864
679913
  } else if (shouldEnrollFace) {
679865
679914
  faceLine = "face enrollment: skipped because no resolved image path was available";
679866
679915
  }
679867
- const mediaLine = resolvedMedia ? `media: ${resolvedMedia.label || basename33(resolvedMedia.path)} (${resolvedMedia.path})` : "media: none; stored as scoped textual identity evidence only";
679916
+ const mediaLine = resolvedMedia ? `media: ${resolvedMedia.label || basename34(resolvedMedia.path)} (${resolvedMedia.path})` : "media: none; stored as scoped textual identity evidence only";
679868
679917
  const output = [
679869
679918
  `Stored identity evidence for ${name10}.`,
679870
679919
  `relation: ${relation}`,
@@ -679936,7 +679985,7 @@ var init_identity_memory_tool = __esm({
679936
679985
  } else if (shouldEnrollFace) {
679937
679986
  faceLine = "face enrollment: skipped because no resolved image path was available";
679938
679987
  }
679939
- const mediaLine = resolvedMedia ? `media: ${resolvedMedia.label || basename33(resolvedMedia.path)} (${resolvedMedia.path})` : "media: none; stored as scoped textual identity evidence only";
679988
+ const mediaLine = resolvedMedia ? `media: ${resolvedMedia.label || basename34(resolvedMedia.path)} (${resolvedMedia.path})` : "media: none; stored as scoped textual identity evidence only";
679940
679989
  return {
679941
679990
  success: true,
679942
679991
  output: [
@@ -680927,7 +680976,7 @@ var init_banner = __esm({
680927
680976
 
680928
680977
  // packages/cli/src/tui/carousel-descriptors.ts
680929
680978
  import { existsSync as existsSync148, readFileSync as readFileSync121, writeFileSync as writeFileSync77, mkdirSync as mkdirSync89, readdirSync as readdirSync51 } from "node:fs";
680930
- import { join as join159, basename as basename34 } from "node:path";
680979
+ import { join as join159, basename as basename35 } from "node:path";
680931
680980
  function loadToolProfile(repoRoot) {
680932
680981
  const filePath = join159(repoRoot, OMNIUS_DIR, "context", TOOL_PROFILE_FILE);
680933
680982
  try {
@@ -681023,7 +681072,7 @@ function generateDescriptors(repoRoot) {
681023
681072
  extractFromSessions(repoRoot, tags);
681024
681073
  extractFromMemory(repoRoot, tags);
681025
681074
  extractFromToolProfile(profile, tags);
681026
- const repoName2 = basename34(repoRoot);
681075
+ const repoName2 = basename35(repoRoot);
681027
681076
  if (repoName2 && !tags.includes(repoName2)) {
681028
681077
  tags.push(repoName2);
681029
681078
  }
@@ -682201,7 +682250,7 @@ var init_edit_history = __esm({
682201
682250
 
682202
682251
  // packages/cli/src/tui/snr-engine.ts
682203
682252
  import { existsSync as existsSync149, readdirSync as readdirSync52, readFileSync as readFileSync122, writeFileSync as writeFileSync78, mkdirSync as mkdirSync91, rmSync as rmSync13 } from "node:fs";
682204
- import { join as join161, basename as basename35 } from "node:path";
682253
+ import { join as join161, basename as basename36 } from "node:path";
682205
682254
  function computeDPrime2(signalScores, noiseScores) {
682206
682255
  if (signalScores.length === 0 || noiseScores.length === 0) return 0;
682207
682256
  const mean = (arr) => arr.reduce((s2, v) => s2 + v, 0) / arr.length;
@@ -682504,7 +682553,7 @@ Call task_complete with the JSON array when done.`,
682504
682553
  try {
682505
682554
  const files = readdirSync52(dir).filter((f2) => f2.endsWith(".json"));
682506
682555
  for (const f2 of files) {
682507
- const topic = basename35(f2, ".json");
682556
+ const topic = basename36(f2, ".json");
682508
682557
  if (topics.length > 0 && !topics.includes(topic)) continue;
682509
682558
  try {
682510
682559
  const data = JSON.parse(readFileSync122(join161(dir, f2), "utf-8"));
@@ -682664,7 +682713,7 @@ Call task_complete with the JSON array when done.`,
682664
682713
 
682665
682714
  // packages/cli/src/tui/promptLoader.ts
682666
682715
  import { readFileSync as readFileSync123, existsSync as existsSync150 } from "node:fs";
682667
- import { join as join162, dirname as dirname49 } from "node:path";
682716
+ import { join as join162, dirname as dirname50 } from "node:path";
682668
682717
  import { fileURLToPath as fileURLToPath21 } from "node:url";
682669
682718
  function loadPrompt3(promptPath, vars) {
682670
682719
  let content = cache7.get(promptPath);
@@ -682684,7 +682733,7 @@ var init_promptLoader3 = __esm({
682684
682733
  "packages/cli/src/tui/promptLoader.ts"() {
682685
682734
  "use strict";
682686
682735
  __filename5 = fileURLToPath21(import.meta.url);
682687
- __dirname6 = dirname49(__filename5);
682736
+ __dirname6 = dirname50(__filename5);
682688
682737
  devPath2 = join162(__dirname6, "..", "..", "prompts");
682689
682738
  publishedPath2 = join162(__dirname6, "..", "prompts");
682690
682739
  PROMPTS_DIR3 = existsSync150(devPath2) ? devPath2 : publishedPath2;
@@ -682700,7 +682749,7 @@ import {
682700
682749
  existsSync as existsSync151,
682701
682750
  readdirSync as readdirSync53
682702
682751
  } from "node:fs";
682703
- import { join as join163, basename as basename36 } from "node:path";
682752
+ import { join as join163, basename as basename37 } from "node:path";
682704
682753
  function setDreamWriteContent(fn) {
682705
682754
  _dreamWriteContent = fn;
682706
682755
  }
@@ -682960,7 +683009,7 @@ var init_dream_engine = __esm({
682960
683009
  error: "path is required",
682961
683010
  durationMs: Date.now() - start2
682962
683011
  };
682963
- const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/autoresearch") ? join163(this.autoresearchDir, basename36(rawPath)) : join163(this.autoresearchDir, rawPath);
683012
+ const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/autoresearch") ? join163(this.autoresearchDir, basename37(rawPath)) : join163(this.autoresearchDir, rawPath);
682964
683013
  if (!targetPath.startsWith(this.autoresearchDir)) {
682965
683014
  return {
682966
683015
  success: false,
@@ -683012,7 +683061,7 @@ var init_dream_engine = __esm({
683012
683061
  const rawPath = String(args["path"] ?? "");
683013
683062
  const oldStr = String(args["old_string"] ?? "");
683014
683063
  const newStr = String(args["new_string"] ?? "");
683015
- const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/autoresearch") ? join163(this.autoresearchDir, basename36(rawPath)) : join163(this.autoresearchDir, rawPath);
683064
+ const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/autoresearch") ? join163(this.autoresearchDir, basename37(rawPath)) : join163(this.autoresearchDir, rawPath);
683016
683065
  if (!targetPath.startsWith(this.autoresearchDir)) {
683017
683066
  return {
683018
683067
  success: false,
@@ -683114,7 +683163,7 @@ var init_dream_engine = __esm({
683114
683163
  error: "path is required",
683115
683164
  durationMs: Date.now() - start2
683116
683165
  };
683117
- const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/dreams") ? join163(this.dreamsDir, basename36(rawPath)) : join163(this.dreamsDir, rawPath);
683166
+ const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/dreams") ? join163(this.dreamsDir, basename37(rawPath)) : join163(this.dreamsDir, rawPath);
683118
683167
  if (!targetPath.startsWith(this.dreamsDir)) {
683119
683168
  return {
683120
683169
  success: false,
@@ -683166,7 +683215,7 @@ var init_dream_engine = __esm({
683166
683215
  const rawPath = String(args["path"] ?? "");
683167
683216
  const oldStr = String(args["old_string"] ?? "");
683168
683217
  const newStr = String(args["new_string"] ?? "");
683169
- const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/dreams") ? join163(this.dreamsDir, basename36(rawPath)) : join163(this.dreamsDir, rawPath);
683218
+ const targetPath = rawPath.startsWith("/") || rawPath.startsWith(".omnius/dreams") ? join163(this.dreamsDir, basename37(rawPath)) : join163(this.dreamsDir, rawPath);
683170
683219
  if (!targetPath.startsWith(this.dreamsDir)) {
683171
683220
  return {
683172
683221
  success: false,
@@ -685015,7 +685064,7 @@ import {
685015
685064
  readdirSync as readdirSync54,
685016
685065
  unlinkSync as unlinkSync31
685017
685066
  } from "node:fs";
685018
- import { join as join164, basename as basename37 } from "node:path";
685067
+ import { join as join164, basename as basename38 } from "node:path";
685019
685068
  import { exec as exec6 } from "node:child_process";
685020
685069
  import { promisify as promisify8 } from "node:util";
685021
685070
  function buildDMNGatherPrompt(recentTaskSummaries, dueReminders, attentionItems, memoryTopics, capabilities, competence, reflectionBuffer, projectOpportunities = []) {
@@ -685996,7 +686045,7 @@ If decision is GO, selectedTask MUST be a fully-populated object (NEVER null)
685996
686045
  try {
685997
686046
  const files = readdirSync54(dir).filter((f2) => f2.endsWith(".json"));
685998
686047
  for (const f2 of files) {
685999
- const topic = basename37(f2, ".json");
686048
+ const topic = basename38(f2, ".json");
686000
686049
  if (!topics.includes(topic)) topics.push(topic);
686001
686050
  }
686002
686051
  } catch {
@@ -687753,8 +687802,8 @@ import {
687753
687802
  } from "node:fs";
687754
687803
  import { mkdir as mkdir22 } from "node:fs/promises";
687755
687804
  import {
687756
- basename as basename38,
687757
- dirname as dirname50,
687805
+ basename as basename39,
687806
+ dirname as dirname51,
687758
687807
  extname as extname20,
687759
687808
  isAbsolute as isAbsolute14,
687760
687809
  join as join166,
@@ -687975,7 +688024,7 @@ function scopedTool(base3, root, mode) {
687975
688024
  guarded.path.rel
687976
688025
  );
687977
688026
  if (!materialized.ok) return denied(materialized.error);
687978
- mkdirSync95(dirname50(guarded.path.abs), { recursive: true });
688027
+ mkdirSync95(dirname51(guarded.path.abs), { recursive: true });
687979
688028
  writeFileSync82(guarded.path.abs, readFileSync126(materialized.path));
687980
688029
  materialized.cleanup?.();
687981
688030
  restoredEditPath = guarded.path.abs;
@@ -688059,7 +688108,7 @@ function guardPath(root, rawPath) {
688059
688108
  error: `Path escapes the public creative workspace. Use a relative path under ${rootAbs}.`
688060
688109
  };
688061
688110
  }
688062
- if (basename38(abs) === MANIFEST_FILE) {
688111
+ if (basename39(abs) === MANIFEST_FILE) {
688063
688112
  return {
688064
688113
  ok: false,
688065
688114
  error: "The creative workspace manifest is internal and cannot be edited."
@@ -688173,7 +688222,7 @@ function rememberCreated(root, absPath) {
688173
688222
  manifest.objects[rel] = {
688174
688223
  logicalRel: rel,
688175
688224
  storedRel,
688176
- originalName: basename38(guarded.path.abs),
688225
+ originalName: basename39(guarded.path.abs),
688177
688226
  prefixBytes: prefix.length,
688178
688227
  encrypted: true,
688179
688228
  key: key.toString("base64"),
@@ -688237,7 +688286,7 @@ function materializeTelegramCreativeArtifactForSend(root, rawPath) {
688237
688286
  `${Date.now()}-${randomBytes26(8).toString("hex")}`
688238
688287
  );
688239
688288
  mkdirSync95(stageDir, { recursive: true });
688240
- const staged = join166(stageDir, object.originalName || basename38(rel));
688289
+ const staged = join166(stageDir, object.originalName || basename39(rel));
688241
688290
  writeFileSync82(staged, payload);
688242
688291
  return {
688243
688292
  ok: true,
@@ -688495,7 +688544,7 @@ var init_telegram_creative_tools = __esm({
688495
688544
  stage: "setup",
688496
688545
  message: "Preparing scoped TTS audio file"
688497
688546
  });
688498
- await mkdir22(dirname50(guarded.path.abs), { recursive: true });
688547
+ await mkdir22(dirname51(guarded.path.abs), { recursive: true });
688499
688548
  const tts = new TtsGenerateTool();
688500
688549
  this.emitProgress(start2, {
688501
688550
  stage: "load",
@@ -689016,7 +689065,7 @@ __export(visual_object_association_exports, {
689016
689065
  extractExplicitVisualObjectLabels: () => extractExplicitVisualObjectLabels,
689017
689066
  formatVisualObjectMemoryContext: () => formatVisualObjectMemoryContext
689018
689067
  });
689019
- import { basename as basename39 } from "node:path";
689068
+ import { basename as basename40 } from "node:path";
689020
689069
  function stringValue2(value2) {
689021
689070
  return typeof value2 === "string" ? value2.trim() : "";
689022
689071
  }
@@ -689157,7 +689206,7 @@ async function associateVisualObjectFromImage(options2) {
689157
689206
  aliases,
689158
689207
  contextBlock: "",
689159
689208
  output: teach.output,
689160
- degradedReason: teach.error || teach.output || `visual_memory teach failed for ${basename39(options2.imagePath)}`
689209
+ degradedReason: teach.error || teach.output || `visual_memory teach failed for ${basename40(options2.imagePath)}`
689161
689210
  };
689162
689211
  }
689163
689212
  const result = {
@@ -691937,7 +691986,7 @@ import {
691937
691986
  import {
691938
691987
  join as join169,
691939
691988
  resolve as resolve70,
691940
- basename as basename40,
691989
+ basename as basename41,
691941
691990
  relative as relative19,
691942
691991
  isAbsolute as isAbsolute15,
691943
691992
  extname as extname21
@@ -699150,7 +699199,7 @@ ${mediaContext}` : ""
699150
699199
  }
699151
699200
  const matchingEntry = mediaEntries.find((entry) => {
699152
699201
  if (resolve70(entry.localPath) === resolve70(raw)) return true;
699153
- if (basename40(entry.localPath) === raw) return true;
699202
+ if (basename41(entry.localPath) === raw) return true;
699154
699203
  if (entry.fileUniqueId === raw || entry.fileId === raw) return true;
699155
699204
  if (entry.messageId && String(entry.messageId) === raw) return true;
699156
699205
  if (entry.messageId && `message_id:${entry.messageId}` === raw.toLowerCase())
@@ -699191,7 +699240,7 @@ ${mediaContext}` : ""
699191
699240
  sourceMessageId,
699192
699241
  chatKey,
699193
699242
  mediaKind,
699194
- safeAlias: basename40(result.path)
699243
+ safeAlias: basename41(result.path)
699195
699244
  }
699196
699245
  };
699197
699246
  }
@@ -699232,7 +699281,7 @@ ${mediaContext}` : ""
699232
699281
  }
699233
699282
  return entries.find((entry2) => {
699234
699283
  if (resolve70(entry2.localPath) === resolve70(ref)) return true;
699235
- if (basename40(entry2.localPath) === ref) return true;
699284
+ if (basename41(entry2.localPath) === ref) return true;
699236
699285
  if (entry2.fileUniqueId === ref || entry2.fileId === ref) return true;
699237
699286
  if (entry2.messageId && String(entry2.messageId) === ref) return true;
699238
699287
  return false;
@@ -699260,7 +699309,7 @@ ${mediaContext}` : ""
699260
699309
  caption: entry.caption
699261
699310
  },
699262
699311
  modality,
699263
- label: `Telegram message_id ${entry.messageId || "unknown"} ${basename40(entry.localPath)}`,
699312
+ label: `Telegram message_id ${entry.messageId || "unknown"} ${basename41(entry.localPath)}`,
699264
699313
  extractedContent: entry.extractedContent
699265
699314
  };
699266
699315
  }
@@ -700463,8 +700512,8 @@ ${cardLines.join("\n")}`
700463
700512
  const caption = entry.caption ? ` caption=${telegramContextJsonString(entry.caption, 120)}` : "";
700464
700513
  const extracted = entry.extractedContent ? `
700465
700514
  extracted=${telegramContextJsonString(entry.extractedContent.replace(/\s+/g, " "), 220)}` : "";
700466
- const alias = entry.messageId ? `message_id:${entry.messageId}` : basename40(entry.localPath);
700467
- return `- ${alias}${replyMark}: ${kind}; file ${basename40(entry.localPath)}${caption}${extracted}`;
700515
+ const alias = entry.messageId ? `message_id:${entry.messageId}` : basename41(entry.localPath);
700516
+ return `- ${alias}${replyMark}: ${kind}; file ${basename41(entry.localPath)}${caption}${extracted}`;
700468
700517
  });
700469
700518
  sections.push(
700470
700519
  [
@@ -708716,12 +708765,12 @@ ${objectMemory.contextBlock}`);
708716
708765
  };
708717
708766
  }
708718
708767
  const lines = entries.map((entry, index) => {
708719
- const pathAlias = entry.messageId ? `message_id:${entry.messageId}` : basename40(entry.localPath);
708768
+ const pathAlias = entry.messageId ? `message_id:${entry.messageId}` : basename41(entry.localPath);
708720
708769
  const parts = [
708721
708770
  `${index + 1}. message_id ${entry.messageId || "unknown"}`,
708722
708771
  currentMsg?.replyToMessageId === entry.messageId ? "replied-to" : "",
708723
708772
  telegramCachedMediaIsImage(entry) ? "image" : telegramCachedMediaIsPdf(entry) ? "pdf" : telegramCachedMediaIsAudio(entry) ? "audio" : telegramCachedMediaIsVideo(entry) ? "video" : entry.mediaType,
708724
- `file=${basename40(entry.localPath)}`,
708773
+ `file=${basename41(entry.localPath)}`,
708725
708774
  `path_alias=${pathAlias}`,
708726
708775
  entry.caption ? `caption=${telegramContextJsonString(entry.caption, 140)}` : ""
708727
708776
  ].filter(Boolean);
@@ -708904,8 +708953,8 @@ ${objectMemory.contextBlock}`);
708904
708953
  )) {
708905
708954
  return {
708906
708955
  success: true,
708907
- output: `Telegram file already sent in this turn: ${basename40(file.path)} as ${kind} to ${String(target.chatId)}`,
708908
- llmContent: `Already sent ${basename40(file.path)} to Telegram as ${kind}; do not send it again.`,
708956
+ output: `Telegram file already sent in this turn: ${basename41(file.path)} as ${kind} to ${String(target.chatId)}`,
708957
+ llmContent: `Already sent ${basename41(file.path)} to Telegram as ${kind}; do not send it again.`,
708909
708958
  durationMs: performance.now() - start2,
708910
708959
  mutated: false,
708911
708960
  mutatedFiles: []
@@ -708932,8 +708981,8 @@ ${objectMemory.contextBlock}`);
708932
708981
  );
708933
708982
  return {
708934
708983
  success: true,
708935
- output: `Sent Telegram file: ${basename40(file.path)} as ${kind} to ${String(target.chatId)}${messageId ? ` (message_id ${messageId})` : ""}`,
708936
- llmContent: `Sent ${basename40(file.path)} to Telegram as ${kind}.`,
708984
+ output: `Sent Telegram file: ${basename41(file.path)} as ${kind} to ${String(target.chatId)}${messageId ? ` (message_id ${messageId})` : ""}`,
708985
+ llmContent: `Sent ${basename41(file.path)} to Telegram as ${kind}.`,
708937
708986
  durationMs: performance.now() - start2,
708938
708987
  mutated: false,
708939
708988
  mutatedFiles: []
@@ -709592,7 +709641,7 @@ ${text2}`.trim()
709592
709641
  throw new Error(`File does not exist: ${media.value}`);
709593
709642
  const buffer2 = readFileSync129(media.value);
709594
709643
  const boundary = `----omnius-media-${Date.now()}-${Math.random().toString(36).slice(2)}`;
709595
- const filename = basename40(media.value);
709644
+ const filename = basename41(media.value);
709596
709645
  const contentType = mimeForPath(media.value, media.kind);
709597
709646
  const parts = [];
709598
709647
  const addField = (name10, value2) => {
@@ -709830,7 +709879,7 @@ Content-Type: ${contentType}\r
709830
709879
  audioAsVoice: false
709831
709880
  },
709832
709881
  {
709833
- caption: `Vision action loop screenshot: ${basename40(abs)}`
709882
+ caption: `Vision action loop screenshot: ${basename41(abs)}`
709834
709883
  }
709835
709884
  ).catch(() => null);
709836
709885
  }
@@ -709910,7 +709959,7 @@ Content-Type: ${contentType}\r
709910
709959
  continue;
709911
709960
  }
709912
709961
  const buffer2 = readFileSync129(pathOrFileId);
709913
- const filename = basename40(pathOrFileId);
709962
+ const filename = basename41(pathOrFileId);
709914
709963
  parts.push(Buffer.from(`--${boundary}\r
709915
709964
  `));
709916
709965
  parts.push(
@@ -712050,7 +712099,7 @@ __export(projects_exports, {
712050
712099
  });
712051
712100
  import { readFileSync as readFileSync130, writeFileSync as writeFileSync85, mkdirSync as mkdirSync98, existsSync as existsSync157, statSync as statSync59, renameSync as renameSync14 } from "node:fs";
712052
712101
  import { homedir as homedir56 } from "node:os";
712053
- import { basename as basename41, join as join170, resolve as resolve71 } from "node:path";
712102
+ import { basename as basename42, join as join170, resolve as resolve71 } from "node:path";
712054
712103
  import { randomUUID as randomUUID19 } from "node:crypto";
712055
712104
  function readAll2() {
712056
712105
  try {
@@ -712098,7 +712147,7 @@ function registerProject(root, pid) {
712098
712147
  } else {
712099
712148
  entry = {
712100
712149
  root: canonical,
712101
- name: basename41(canonical) || canonical,
712150
+ name: basename42(canonical) || canonical,
712102
712151
  firstSeen: now2,
712103
712152
  lastSeen: now2,
712104
712153
  pid: pid ?? null,
@@ -713221,7 +713270,7 @@ var init_audit_log = __esm({
713221
713270
  // packages/cli/src/api/disk-task-output.ts
713222
713271
  import { open } from "node:fs/promises";
713223
713272
  import { existsSync as existsSync160, mkdirSync as mkdirSync101, statSync as statSync60 } from "node:fs";
713224
- import { dirname as dirname51 } from "node:path";
713273
+ import { dirname as dirname52 } from "node:path";
713225
713274
  import * as fsConstants from "node:constants";
713226
713275
  var O_NOFOLLOW2, O_APPEND2, O_CREAT2, O_WRONLY2, OPEN_FLAGS_WRITE, OPEN_MODE, DiskTaskOutput;
713227
713276
  var init_disk_task_output = __esm({
@@ -713240,7 +713289,7 @@ var init_disk_task_output = __esm({
713240
713289
  fileSize = 0;
713241
713290
  constructor(outputPath3) {
713242
713291
  this.path = outputPath3;
713243
- mkdirSync101(dirname51(outputPath3), { recursive: true });
713292
+ mkdirSync101(dirname52(outputPath3), { recursive: true });
713244
713293
  }
713245
713294
  /** Queue content for async append. Non-blocking. */
713246
713295
  append(chunk) {
@@ -713508,7 +713557,7 @@ data: ${JSON.stringify(ev)}
713508
713557
 
713509
713558
  // packages/cli/src/api/routes-media.ts
713510
713559
  import { existsSync as existsSync161, mkdirSync as mkdirSync102, statSync as statSync61, copyFileSync as copyFileSync7, createReadStream } from "node:fs";
713511
- import { basename as basename42, join as join173, resolve as pathResolve2 } from "node:path";
713560
+ import { basename as basename43, join as join173, resolve as pathResolve2 } from "node:path";
713512
713561
  function mediaWorkDir() {
713513
713562
  return join173(omniusHomeDir(), "media", "_work");
713514
713563
  }
@@ -713530,7 +713579,7 @@ function extractGeneratedPath(output) {
713530
713579
  function publishToGallery(srcPath, kind) {
713531
713580
  ensureGlobalMediaDirs();
713532
713581
  const dir = globalMediaDir(kind);
713533
- const name10 = basename42(srcPath);
713582
+ const name10 = basename43(srcPath);
713534
713583
  const dest = join173(dir, name10);
713535
713584
  try {
713536
713585
  if (pathResolve2(srcPath) !== pathResolve2(dest)) {
@@ -713731,7 +713780,7 @@ async function handleAvAnalyze(ctx3) {
713731
713780
  adapterStatus[role] = a2 && !a2.meta.isMock ? "live" : "mock";
713732
713781
  if (adapterStatus[role] === "live") anyLive = true;
713733
713782
  }
713734
- const episodeId = `rest-${basename42(filePath)}-${Date.now().toString(36)}`;
713783
+ const episodeId = `rest-${basename43(filePath)}-${Date.now().toString(36)}`;
713735
713784
  const ingest = await ingestMedia(episodeId, `file://${filePath}`);
713736
713785
  const store2 = await analyzeEpisode({ episodeId, mediaUri: `file://${filePath}`, durationSec: ingest.source.durationSec, registry: registry4, windows: ingest.shots, roles: AV_ROLES });
713737
713786
  const world = store2.snapshot();
@@ -713901,7 +713950,7 @@ function handleFile(ctx3) {
713901
713950
  return true;
713902
713951
  }
713903
713952
  const dir = globalMediaDir(kind);
713904
- const full = pathResolve2(dir, basename42(name10));
713953
+ const full = pathResolve2(dir, basename43(name10));
713905
713954
  if (!full.startsWith(pathResolve2(dir)) || !existsSync161(full)) {
713906
713955
  sendProblem(ctx3.res, problemDetails({
713907
713956
  type: P.notFound,
@@ -732419,7 +732468,7 @@ var init_chat_followup = __esm({
732419
732468
  // packages/cli/src/docker.ts
732420
732469
  import { execSync as execSync39, spawn as spawn37 } from "node:child_process";
732421
732470
  import { existsSync as existsSync169, mkdirSync as mkdirSync108, writeFileSync as writeFileSync91 } from "node:fs";
732422
- import { join as join181, resolve as resolve73, dirname as dirname52 } from "node:path";
732471
+ import { join as join181, resolve as resolve73, dirname as dirname53 } from "node:path";
732423
732472
  import { homedir as homedir62 } from "node:os";
732424
732473
  import { fileURLToPath as fileURLToPath22 } from "node:url";
732425
732474
  function getDockerDir() {
@@ -732430,7 +732479,7 @@ function getDockerDir() {
732430
732479
  } catch {
732431
732480
  }
732432
732481
  try {
732433
- const thisDir = dirname52(fileURLToPath22(import.meta.url));
732482
+ const thisDir = dirname53(fileURLToPath22(import.meta.url));
732434
732483
  return join181(thisDir, "..", "..", "..", "docker");
732435
732484
  } catch {
732436
732485
  }
@@ -732717,7 +732766,7 @@ __export(embedding_workers_exports, {
732717
732766
  startEmbeddingWorkers: () => startEmbeddingWorkers,
732718
732767
  stopEmbeddingWorkers: () => stopEmbeddingWorkers
732719
732768
  });
732720
- import { basename as basename43, join as join182 } from "node:path";
732769
+ import { basename as basename44, join as join182 } from "node:path";
732721
732770
  function startEmbeddingWorkers(opts) {
732722
732771
  if (_running) return;
732723
732772
  _running = true;
@@ -732783,7 +732832,7 @@ async function runEmbeddingTask(modality, episodeId, taskId, opts) {
732783
732832
  try {
732784
732833
  if (!_aligner) {
732785
732834
  const stateRoot = process.env.OMNIUS_DIR || process.cwd();
732786
- const omniusDir = basename43(stateRoot) === ".omnius" ? stateRoot : join182(stateRoot, ".omnius");
732835
+ const omniusDir = basename44(stateRoot) === ".omnius" ? stateRoot : join182(stateRoot, ".omnius");
732787
732836
  const memDir = join182(omniusDir, "memory");
732788
732837
  _aligner = new EmbeddingAligner(
732789
732838
  `${modality}-${emb.length}`,
@@ -732899,7 +732948,7 @@ import * as http5 from "node:http";
732899
732948
  import * as https3 from "node:https";
732900
732949
  import { createRequire as createRequire8 } from "node:module";
732901
732950
  import { fileURLToPath as fileURLToPath23 } from "node:url";
732902
- import { dirname as dirname53, join as join183, resolve as resolve74 } from "node:path";
732951
+ import { dirname as dirname54, join as join183, resolve as resolve74 } from "node:path";
732903
732952
  import { homedir as homedir63 } from "node:os";
732904
732953
  import { spawn as spawn38, execSync as execSync40 } from "node:child_process";
732905
732954
  import {
@@ -732929,7 +732978,7 @@ function memoryDbPaths3(baseDir = process.cwd()) {
732929
732978
  }
732930
732979
  function getVersion3() {
732931
732980
  try {
732932
- const thisDir = dirname53(fileURLToPath23(import.meta.url));
732981
+ const thisDir = dirname54(fileURLToPath23(import.meta.url));
732933
732982
  const candidates = [
732934
732983
  join183(thisDir, "..", "package.json"),
732935
732984
  join183(thisDir, "..", "..", "package.json"),
@@ -736391,7 +736440,7 @@ async function handleV1Update(req3, res, requestId) {
736391
736440
  );
736392
736441
  const fs14 = require4("node:fs");
736393
736442
  const nodeBin = process.execPath;
736394
- const nodeDir = dirname53(nodeBin);
736443
+ const nodeDir = dirname54(nodeBin);
736395
736444
  const { execSync: es } = require4("node:child_process");
736396
736445
  const isWin2 = process.platform === "win32";
736397
736446
  let npmBin = "";
@@ -736406,7 +736455,7 @@ async function handleV1Update(req3, res, requestId) {
736406
736455
  const dir = join183(homedir63(), ".omnius");
736407
736456
  fs14.mkdirSync(dir, { recursive: true });
736408
736457
  const logFd = fs14.openSync(logPath3, "w");
736409
- const npmPrefix = dirname53(nodeDir);
736458
+ const npmPrefix = dirname54(nodeDir);
736410
736459
  let globalBinDir = "";
736411
736460
  try {
736412
736461
  if (isWin2) {
@@ -742349,7 +742398,7 @@ function startApiServer(options2 = {}) {
742349
742398
  if (process.env["OMNIUS_DAEMON"] === "1" && process.env["OMNIUS_NO_VERSION_GUARD"] !== "1") {
742350
742399
  const readDiskVersion = () => {
742351
742400
  try {
742352
- const here = dirname53(fileURLToPath23(import.meta.url));
742401
+ const here = dirname54(fileURLToPath23(import.meta.url));
742353
742402
  for (const rel of ["../package.json", "../../package.json", "../../../package.json", "../../../../package.json"]) {
742354
742403
  const p2 = join183(here, rel);
742355
742404
  if (existsSync170(p2)) {
@@ -743442,7 +743491,7 @@ var init_clipboard_media = __esm({
743442
743491
 
743443
743492
  // packages/cli/src/tui/interactive.ts
743444
743493
  import { cwd } from "node:process";
743445
- import { resolve as resolve75, join as join185, dirname as dirname54, extname as extname22, relative as relative20, sep as sep5 } from "node:path";
743494
+ import { resolve as resolve75, join as join185, dirname as dirname55, extname as extname22, relative as relative20, sep as sep5 } from "node:path";
743446
743495
  import { createRequire as createRequire9 } from "node:module";
743447
743496
  import { fileURLToPath as fileURLToPath24 } from "node:url";
743448
743497
  import {
@@ -743502,7 +743551,7 @@ function formatTimeAgo2(date) {
743502
743551
  function getVersion4() {
743503
743552
  try {
743504
743553
  const require5 = createRequire9(import.meta.url);
743505
- const thisDir = dirname54(fileURLToPath24(import.meta.url));
743554
+ const thisDir = dirname55(fileURLToPath24(import.meta.url));
743506
743555
  const candidates = [
743507
743556
  join185(thisDir, "..", "package.json"),
743508
743557
  join185(thisDir, "..", "..", "package.json"),
@@ -755428,7 +755477,7 @@ init_typed_node_events();
755428
755477
  init_dist5();
755429
755478
  import { parseArgs as nodeParseArgs2 } from "node:util";
755430
755479
  import { fileURLToPath as fileURLToPath25 } from "node:url";
755431
- import { dirname as dirname55, join as join189 } from "node:path";
755480
+ import { dirname as dirname56, join as join189 } from "node:path";
755432
755481
  import { createRequire as createRequire10 } from "node:module";
755433
755482
 
755434
755483
  // packages/cli/src/cli.ts
@@ -755576,7 +755625,7 @@ init_output();
755576
755625
  function getVersion5() {
755577
755626
  try {
755578
755627
  const require5 = createRequire10(import.meta.url);
755579
- const pkgPath = join189(dirname55(fileURLToPath25(import.meta.url)), "..", "package.json");
755628
+ const pkgPath = join189(dirname56(fileURLToPath25(import.meta.url)), "..", "package.json");
755580
755629
  const pkg = require5(pkgPath);
755581
755630
  return pkg.version;
755582
755631
  } catch {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.519",
3
+ "version": "1.0.520",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.519",
9
+ "version": "1.0.520",
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.519",
3
+ "version": "1.0.520",
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",