omnius 1.0.310 → 1.0.311

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
@@ -12495,12 +12495,12 @@ ${lineNumberedDiff}`,
12495
12495
  });
12496
12496
 
12497
12497
  // packages/memory/dist/db.js
12498
- import { createRequire } from "node:module";
12498
+ import { createRequire as createRequire2 } from "node:module";
12499
12499
  function getDatabase() {
12500
12500
  if (_Database !== null)
12501
12501
  return _Database;
12502
12502
  try {
12503
- const req3 = createRequire(import.meta.url);
12503
+ const req3 = createRequire2(import.meta.url);
12504
12504
  _Database = req3("better-sqlite3");
12505
12505
  } catch {
12506
12506
  throw new Error("better-sqlite3 is not available (native module build may have failed).\nTry: npm rebuild better-sqlite3\nMemory features (SQLite) are disabled until this is resolved.");
@@ -24025,14 +24025,14 @@ var init_memory_search = __esm({
24025
24025
  try {
24026
24026
  const { join: pathJoin } = await import("node:path");
24027
24027
  const { existsSync: pathExists } = await import("node:fs");
24028
- const { createRequire: createRequire10 } = await import("node:module");
24028
+ const { createRequire: createRequire11 } = await import("node:module");
24029
24029
  const omniusDir = pathJoin(this.workingDir, ".omnius");
24030
24030
  const epDbPath = pathJoin(omniusDir, "episodes.db");
24031
24031
  const kgDbPath = pathJoin(omniusDir, "knowledge.db");
24032
24032
  if (!pathExists(epDbPath)) {
24033
24033
  return { success: true, output: `No episode store found. Run tasks to build the knowledge graph.`, durationMs: performance.now() - start2 };
24034
24034
  }
24035
- const req3 = createRequire10(import.meta.url);
24035
+ const req3 = createRequire11(import.meta.url);
24036
24036
  const Database = req3("better-sqlite3");
24037
24037
  if (mode === "episodes") {
24038
24038
  const db = new Database(epDbPath, { readonly: true });
@@ -26937,6 +26937,20 @@ import { createRequire as _createRequire } from 'node:module';
26937
26937
  // individual call site to dynamic import().
26938
26938
  const require = _createRequire(import.meta.url);
26939
26939
 
26940
+ // Shim for Node < 24: worker_threads.markAsUncloneable was added in Node 24.
26941
+ // open-agents-nexus pulls in undici, whose CacheStorage calls
26942
+ // webidl.util.markAsUncloneable at module-load time. On older Node runtimes
26943
+ // that function is undefined, so the dynamic import below crashes the daemon
26944
+ // with "TypeError: webidl.util.markAsUncloneable is not a function". The main
26945
+ // CLI process applies the same shim, but this daemon is a separate process and
26946
+ // must polyfill it itself BEFORE the first open-agents-nexus/undici import.
26947
+ try {
26948
+ const _wt = require('node:worker_threads');
26949
+ if (typeof _wt.markAsUncloneable === 'undefined') {
26950
+ _wt.markAsUncloneable = (value) => value;
26951
+ }
26952
+ } catch {}
26953
+
26940
26954
  // NKN utilities — imported dynamically to avoid crash on older open-agents-nexus versions.
26941
26955
  // Falls back to inline implementations if the package doesn't export them yet.
26942
26956
  var buildNknEnvelope, parseNknEnvelope, deriveNknSeed;
@@ -40013,8 +40027,8 @@ async function loadTranscribeCli() {
40013
40027
  }).trim();
40014
40028
  const tcPath = join39(globalRoot, "transcribe-cli");
40015
40029
  if (existsSync37(join39(tcPath, "dist", "index.js"))) {
40016
- const { createRequire: createRequire10 } = await import("node:module");
40017
- const req3 = createRequire10(import.meta.url);
40030
+ const { createRequire: createRequire11 } = await import("node:module");
40031
+ const req3 = createRequire11(import.meta.url);
40018
40032
  _tcModule = req3(join39(tcPath, "dist", "index.js"));
40019
40033
  return _tcModule;
40020
40034
  }
@@ -40027,8 +40041,8 @@ async function loadTranscribeCli() {
40027
40041
  for (const ver of readdirSync57(nvmBase)) {
40028
40042
  const tcPath = join39(nvmBase, ver, "lib", "node_modules", "transcribe-cli");
40029
40043
  if (existsSync37(join39(tcPath, "dist", "index.js"))) {
40030
- const { createRequire: createRequire10 } = await import("node:module");
40031
- const req3 = createRequire10(import.meta.url);
40044
+ const { createRequire: createRequire11 } = await import("node:module");
40045
+ const req3 = createRequire11(import.meta.url);
40032
40046
  _tcModule = req3(join39(tcPath, "dist", "index.js"));
40033
40047
  return _tcModule;
40034
40048
  }
@@ -250951,7 +250965,7 @@ var init_send_ssdp_message = __esm({
250951
250965
 
250952
250966
  // ../node_modules/@achingbrain/ssdp/dist/src/ssdp.js
250953
250967
  import { EventEmitter as EventEmitter3, on } from "node:events";
250954
- import { createRequire as createRequire2 } from "node:module";
250968
+ import { createRequire as createRequire3 } from "node:module";
250955
250969
  var req2, name8, version2, DEFAULT_SSDP_SIGNATURE, SSDP;
250956
250970
  var init_ssdp = __esm({
250957
250971
  "../node_modules/@achingbrain/ssdp/dist/src/ssdp.js"() {
@@ -250965,7 +250979,7 @@ var init_ssdp = __esm({
250965
250979
  init_search_response();
250966
250980
  init_parse_ssdp_message();
250967
250981
  init_send_ssdp_message();
250968
- req2 = createRequire2(import.meta.url);
250982
+ req2 = createRequire3(import.meta.url);
250969
250983
  ({ name: name8, version: version2 } = req2("../../package.json"));
250970
250984
  DEFAULT_SSDP_SIGNATURE = `node.js/${process.version.substring(1)} UPnP/1.1 ${name8}/${version2}`;
250971
250985
  SSDP = class extends EventEmitter3 {
@@ -538351,7 +538365,7 @@ var init_ts_morph_parser = __esm({
538351
538365
  });
538352
538366
 
538353
538367
  // packages/indexer/dist/code-graph-db.js
538354
- import { createRequire as createRequire3 } from "node:module";
538368
+ import { createRequire as createRequire4 } from "node:module";
538355
538369
  import { createHash as createHash22 } from "node:crypto";
538356
538370
  import { mkdirSync as mkdirSync29, readFileSync as readFileSync39 } from "node:fs";
538357
538371
  import { join as join69, dirname as dirname18, extname as extname10 } from "node:path";
@@ -538359,7 +538373,7 @@ function loadDatabaseCtor() {
538359
538373
  if (_DatabaseCtor)
538360
538374
  return _DatabaseCtor;
538361
538375
  try {
538362
- const req3 = createRequire3(import.meta.url);
538376
+ const req3 = createRequire4(import.meta.url);
538363
538377
  _DatabaseCtor = req3("better-sqlite3");
538364
538378
  return _DatabaseCtor;
538365
538379
  } catch (err) {
@@ -589029,8 +589043,8 @@ var init_listen = __esm({
589029
589043
  /** Load transcribe-cli — bundled as a dependency of omnius. */
589030
589044
  async loadTranscribeCli() {
589031
589045
  try {
589032
- const { createRequire: createRequire10 } = await import("node:module");
589033
- const req3 = createRequire10(import.meta.url);
589046
+ const { createRequire: createRequire11 } = await import("node:module");
589047
+ const req3 = createRequire11(import.meta.url);
589034
589048
  return req3("transcribe-cli");
589035
589049
  } catch {
589036
589050
  }
@@ -589042,8 +589056,8 @@ var init_listen = __esm({
589042
589056
  }).trim();
589043
589057
  const tcPath = join115(globalRoot, "transcribe-cli");
589044
589058
  if (existsSync100(join115(tcPath, "dist", "index.js"))) {
589045
- const { createRequire: createRequire10 } = await import("node:module");
589046
- const req3 = createRequire10(import.meta.url);
589059
+ const { createRequire: createRequire11 } = await import("node:module");
589060
+ const req3 = createRequire11(import.meta.url);
589047
589061
  return req3(join115(tcPath, "dist", "index.js"));
589048
589062
  }
589049
589063
  } catch {
@@ -589061,8 +589075,8 @@ var init_listen = __esm({
589061
589075
  "transcribe-cli"
589062
589076
  );
589063
589077
  if (existsSync100(join115(tcPath, "dist", "index.js"))) {
589064
- const { createRequire: createRequire10 } = await import("node:module");
589065
- const req3 = createRequire10(import.meta.url);
589078
+ const { createRequire: createRequire11 } = await import("node:module");
589079
+ const req3 = createRequire11(import.meta.url);
589066
589080
  return req3(join115(tcPath, "dist", "index.js"));
589067
589081
  }
589068
589082
  }
@@ -595494,8 +595508,8 @@ async function loadHighlighter() {
595494
595508
  return null;
595495
595509
  }
595496
595510
  try {
595497
- const { createRequire: createRequire10 } = await import("node:module");
595498
- const req3 = createRequire10(import.meta.url);
595511
+ const { createRequire: createRequire11 } = await import("node:module");
595512
+ const req3 = createRequire11(import.meta.url);
595499
595513
  let resolved = null;
595500
595514
  try {
595501
595515
  resolved = req3.resolve("cli-highlight");
@@ -620057,7 +620071,7 @@ var init_memory_menu = __esm({
620057
620071
 
620058
620072
  // packages/cli/src/tui/audio-waveform.ts
620059
620073
  import { readFileSync as readFileSync96 } from "node:fs";
620060
- import { createRequire as createRequire4 } from "node:module";
620074
+ import { createRequire as createRequire5 } from "node:module";
620061
620075
  function readAscii(buffer2, offset, length4) {
620062
620076
  return buffer2.subarray(offset, offset + length4).toString("ascii");
620063
620077
  }
@@ -620168,7 +620182,7 @@ var require3;
620168
620182
  var init_audio_waveform = __esm({
620169
620183
  "packages/cli/src/tui/audio-waveform.ts"() {
620170
620184
  "use strict";
620171
- require3 = createRequire4(import.meta.url);
620185
+ require3 = createRequire5(import.meta.url);
620172
620186
  }
620173
620187
  });
620174
620188
 
@@ -623360,7 +623374,7 @@ __export(image_ascii_preview_exports, {
623360
623374
  formatImageAsciiContext: () => formatImageAsciiContext
623361
623375
  });
623362
623376
  import { execFileSync as execFileSync8 } from "node:child_process";
623363
- import { createRequire as createRequire5 } from "node:module";
623377
+ import { createRequire as createRequire6 } from "node:module";
623364
623378
  import { existsSync as existsSync124, readFileSync as readFileSync101, statSync as statSync45 } from "node:fs";
623365
623379
  import { resolve as resolve56 } from "node:path";
623366
623380
  function clamp7(n2, min, max) {
@@ -623531,7 +623545,7 @@ function previewFailure(message2, width) {
623531
623545
  async function convertWithImageToAscii(imagePath, width, height, timeoutMs) {
623532
623546
  let imageToAscii;
623533
623547
  try {
623534
- const require5 = createRequire5(import.meta.url);
623548
+ const require5 = createRequire6(import.meta.url);
623535
623549
  const mod3 = require5("image-to-ascii");
623536
623550
  imageToAscii = typeof mod3 === "function" ? mod3 : mod3.default;
623537
623551
  if (typeof imageToAscii !== "function") {
@@ -623756,7 +623770,7 @@ import {
623756
623770
  execSync as execSync55,
623757
623771
  spawn as nodeSpawn
623758
623772
  } from "node:child_process";
623759
- import { createRequire as createRequire6 } from "node:module";
623773
+ import { createRequire as createRequire7 } from "node:module";
623760
623774
  function voicePythonEnv(extra = {}) {
623761
623775
  const env2 = { ...process.env, ...extra };
623762
623776
  applyMediaCudaDeviceFilterToEnv(env2, "tts");
@@ -628095,7 +628109,7 @@ if __name__ == "__main__":
628095
628109
  )
628096
628110
  );
628097
628111
  }
628098
- const voiceRequire = createRequire6(join137(voiceDir2(), "index.js"));
628112
+ const voiceRequire = createRequire7(join137(voiceDir2(), "index.js"));
628099
628113
  const probeOnnx = async () => {
628100
628114
  try {
628101
628115
  const output = await this.asyncShell(
@@ -641910,11 +641924,11 @@ async function handleUpdate(subcommand, ctx3) {
641910
641924
  }
641911
641925
  let currentVersion = "0.0.0";
641912
641926
  try {
641913
- const { createRequire: createRequire10 } = await import("node:module");
641927
+ const { createRequire: createRequire11 } = await import("node:module");
641914
641928
  const { fileURLToPath: fileURLToPath22 } = await import("node:url");
641915
641929
  const { dirname: dirname52, join: join172 } = await import("node:path");
641916
641930
  const { existsSync: existsSync156 } = await import("node:fs");
641917
- const req3 = createRequire10(import.meta.url);
641931
+ const req3 = createRequire11(import.meta.url);
641918
641932
  const thisDir = dirname52(fileURLToPath22(import.meta.url));
641919
641933
  const candidates = [
641920
641934
  join172(thisDir, "..", "package.json"),
@@ -643571,10 +643585,10 @@ var init_commands = __esm({
643571
643585
  return "handled";
643572
643586
  }
643573
643587
  try {
643574
- const { createRequire: createRequire10 } = await import("node:module");
643588
+ const { createRequire: createRequire11 } = await import("node:module");
643575
643589
  const { fileURLToPath: fileURLToPath22 } = await import("node:url");
643576
643590
  const { dirname: pathDirname, join: pathJoin } = await import("node:path");
643577
- const localRequire = createRequire10(import.meta.url);
643591
+ const localRequire = createRequire11(import.meta.url);
643578
643592
  const here = pathDirname(fileURLToPath22(import.meta.url));
643579
643593
  let version4 = "?";
643580
643594
  for (const up of ["..", "../..", "../../.."]) {
@@ -667660,6 +667674,33 @@ ${TELEGRAM_PUBLIC_ORCHESTRATOR_CONTRACT}`
667660
667674
  ].map((line) => line.trim()).filter(Boolean);
667661
667675
  return [...new Set(lines)].slice(-6).join("\n");
667662
667676
  }
667677
+ /**
667678
+ * Derive the tool calls that FAILED and were not subsequently recovered, so
667679
+ * the completion report reflects ground truth instead of trusting the
667680
+ * runner's prose. Tool results are recorded as `✓ name: …` / `✗ name: …`
667681
+ * lines; we take the LAST outcome per tool name, so a failure followed by a
667682
+ * later success of the same tool (e.g. a retried upload) is treated as
667683
+ * recovered and omitted. Without this, a run where `telegram_send_file`
667684
+ * failed on a rate limit was still reported as "Not verified / blocked: None
667685
+ * reported by the runner", letting the model claim a delivery that never
667686
+ * happened.
667687
+ */
667688
+ telegramAdminUnrecoveredToolFailures(subAgent) {
667689
+ const state = subAgent.adminLivePanelNonce ? this.telegramAdminLivePanels.get(subAgent.adminLivePanelNonce) : void 0;
667690
+ if (!state) return [];
667691
+ const ordered = [...state.toolLines, ...state.mutationLines].map((line) => line.trim()).filter(Boolean);
667692
+ const lastByTool = /* @__PURE__ */ new Map();
667693
+ for (const line of ordered) {
667694
+ const ok3 = line.startsWith("✓");
667695
+ const failed = line.startsWith("✗");
667696
+ if (!ok3 && !failed) continue;
667697
+ const rest = line.slice(1).trim();
667698
+ const name10 = (rest.split(/[:\s]/)[0] || rest).trim();
667699
+ if (!name10) continue;
667700
+ lastByTool.set(name10, { failed, line });
667701
+ }
667702
+ return [...lastByTool.values()].filter((o2) => o2.failed).map((o2) => o2.line);
667703
+ }
667663
667704
  telegramAdminIncompleteRunText(subAgent, finalText) {
667664
667705
  const stats = [
667665
667706
  typeof subAgent.runnerTurns === "number" ? `${subAgent.runnerTurns} turn(s)` : "",
@@ -667695,18 +667736,22 @@ ${signals || "No final validating tool/status signal was available."}`
667695
667736
  typeof subAgent.runnerToolCalls === "number" ? `${subAgent.runnerToolCalls} tool call(s)` : ""
667696
667737
  ].filter(Boolean).join(", ");
667697
667738
  const done = finalText || summary || "Run completed.";
667739
+ const failures = this.telegramAdminUnrecoveredToolFailures(subAgent);
667698
667740
  const verified = [
667699
667741
  `Backend status: ${subAgent.runnerStatus || (subAgent.runnerCompleted ? "completed" : "unknown")}.`,
667700
667742
  stats ? `Run shape: ${stats}.` : "",
667743
+ failures.length > 0 ? `⚠ ${failures.length} tool call(s) failed without a confirmed retry — treat any success claim above as unverified.` : "",
667701
667744
  summary && summary !== finalText ? `Runner summary: ${summary}` : ""
667702
667745
  ].filter(Boolean).join("\n");
667746
+ const blocked = failures.length > 0 ? `${failures.length} tool call(s) failed and were not confirmed recovered:
667747
+ ${failures.join("\n")}` : "None reported by the runner.";
667703
667748
  return [
667704
667749
  `Done:
667705
667750
  ${done}`,
667706
667751
  `Verified:
667707
667752
  ${verified || "Completion boundary observed."}`,
667708
667753
  `Not verified / blocked:
667709
- None reported by the runner.`,
667754
+ ${blocked}`,
667710
667755
  `Evidence:
667711
667756
  ${signals || summary || "Canonical runner status reported completed."}`
667712
667757
  ].join("\n\n");
@@ -673894,18 +673939,27 @@ Content-Type: ${contentType}\r
673894
673939
  parts.push(Buffer.from(`--${boundary}--\r
673895
673940
  `));
673896
673941
  const body = Buffer.concat(parts);
673897
- const res = await fetch(
673898
- `https://api.telegram.org/bot${this.botToken}/${method}`,
673899
- {
673942
+ const uploadUrl = `https://api.telegram.org/bot${this.botToken}/${method}`;
673943
+ const MAX_UPLOAD_ATTEMPTS = 4;
673944
+ const PER_RETRY_WAIT_CAP_MS = 3e4;
673945
+ let result = {};
673946
+ for (let attempt = 1; attempt <= MAX_UPLOAD_ATTEMPTS; attempt++) {
673947
+ const res = await fetch(uploadUrl, {
673900
673948
  method: "POST",
673901
673949
  headers: {
673902
673950
  "Content-Type": `multipart/form-data; boundary=${boundary}`,
673903
673951
  "Content-Length": String(body.length)
673904
673952
  },
673905
673953
  body
673906
- }
673907
- );
673908
- const result = await res.json();
673954
+ });
673955
+ result = await res.json();
673956
+ if (result.ok) break;
673957
+ const retryAfterSec = result["error_code"] === 429 ? Number(result["parameters"]?.retry_after) : NaN;
673958
+ const canRetry = Number.isFinite(retryAfterSec) && retryAfterSec > 0 && attempt < MAX_UPLOAD_ATTEMPTS && !this.abortController?.signal.aborted;
673959
+ if (!canRetry) break;
673960
+ const waitMs = Math.min(retryAfterSec * 1e3, PER_RETRY_WAIT_CAP_MS);
673961
+ await new Promise((r2) => setTimeout(r2, waitMs));
673962
+ }
673909
673963
  if (result.ok) {
673910
673964
  this.state.messagesSent++;
673911
673965
  const outboundMessageId = result.result?.message_id ?? null;
@@ -692638,7 +692692,7 @@ __export(serve_exports, {
692638
692692
  });
692639
692693
  import * as http5 from "node:http";
692640
692694
  import * as https3 from "node:https";
692641
- import { createRequire as createRequire7 } from "node:module";
692695
+ import { createRequire as createRequire8 } from "node:module";
692642
692696
  import { fileURLToPath as fileURLToPath19 } from "node:url";
692643
692697
  import { dirname as dirname49, join as join165, resolve as resolve65 } from "node:path";
692644
692698
  import { homedir as homedir58 } from "node:os";
@@ -697529,8 +697583,8 @@ async function handleRequest(req3, res, ollamaUrl, verbose, runtimeDefaults = {}
697529
697583
  const entry = fileMap[pathname];
697530
697584
  if (entry) {
697531
697585
  try {
697532
- const { createRequire: createRequire10 } = await import("node:module");
697533
- const req22 = createRequire10(import.meta.url);
697586
+ const { createRequire: createRequire11 } = await import("node:module");
697587
+ const req22 = createRequire11(import.meta.url);
697534
697588
  const cssEntry = req22.resolve("swagger-ui-dist/swagger-ui.css");
697535
697589
  const fs11 = await import("node:fs");
697536
697590
  const path12 = await import("node:path");
@@ -702740,7 +702794,7 @@ var init_serve = __esm({
702740
702794
  init_docker();
702741
702795
  init_typed_node_events();
702742
702796
  init_secret_redactor();
702743
- require4 = createRequire7(import.meta.url);
702797
+ require4 = createRequire8(import.meta.url);
702744
702798
  NEXUS_DIRECTORY_ORIGIN2 = (process.env["OMNIUS_NEXUS_DIRECTORY_ORIGIN"] || process.env["OMNIUS_NEXUS_SIGNALING_SERVER"] || "https://openagents.nexus").replace(/\/+$/, "");
702745
702799
  NEXUS_SPONSORS_URL2 = `${NEXUS_DIRECTORY_ORIGIN2}/api/v1/sponsors`;
702746
702800
  endpointRegistry = [];
@@ -702843,7 +702897,7 @@ var init_clipboard_media = __esm({
702843
702897
  // packages/cli/src/tui/interactive.ts
702844
702898
  import { cwd } from "node:process";
702845
702899
  import { resolve as resolve66, join as join167, dirname as dirname50, extname as extname21, relative as relative17, sep as sep5 } from "node:path";
702846
- import { createRequire as createRequire8 } from "node:module";
702900
+ import { createRequire as createRequire9 } from "node:module";
702847
702901
  import { fileURLToPath as fileURLToPath20 } from "node:url";
702848
702902
  import {
702849
702903
  readFileSync as readFileSync127,
@@ -702869,7 +702923,7 @@ function formatTimeAgo2(date) {
702869
702923
  }
702870
702924
  function getVersion4() {
702871
702925
  try {
702872
- const require5 = createRequire8(import.meta.url);
702926
+ const require5 = createRequire9(import.meta.url);
702873
702927
  const thisDir = dirname50(fileURLToPath20(import.meta.url));
702874
702928
  const candidates = [
702875
702929
  join167(thisDir, "..", "package.json"),
@@ -713767,16 +713821,27 @@ var init_eval = __esm({
713767
713821
  }
713768
713822
  });
713769
713823
 
713824
+ // packages/cli/src/node-compat.ts
713825
+ import { createRequire } from "node:module";
713826
+ var _require = createRequire(import.meta.url);
713827
+ try {
713828
+ const workerThreads = _require("node:worker_threads");
713829
+ if (typeof workerThreads.markAsUncloneable === "undefined") {
713830
+ workerThreads.markAsUncloneable = (value2) => value2;
713831
+ }
713832
+ } catch {
713833
+ }
713834
+
713770
713835
  // packages/cli/src/index.ts
713771
713836
  init_config();
713772
713837
  init_output();
713773
713838
  init_updater();
713774
713839
  init_typed_node_events();
713775
713840
  init_dist5();
713776
- import { createRequire as createRequire9 } from "node:module";
713777
713841
  import { parseArgs as nodeParseArgs2 } from "node:util";
713778
713842
  import { fileURLToPath as fileURLToPath21 } from "node:url";
713779
713843
  import { dirname as dirname51, join as join171 } from "node:path";
713844
+ import { createRequire as createRequire10 } from "node:module";
713780
713845
 
713781
713846
  // packages/cli/src/cli.ts
713782
713847
  init_typed_node_events();
@@ -713920,17 +713985,9 @@ Options:
713920
713985
  init_config();
713921
713986
  init_spinner();
713922
713987
  init_output();
713923
- var _require = createRequire9(import.meta.url);
713924
- try {
713925
- const workerThreads = _require("node:worker_threads");
713926
- if (typeof workerThreads.markAsUncloneable === "undefined") {
713927
- workerThreads.markAsUncloneable = (value2) => value2;
713928
- }
713929
- } catch {
713930
- }
713931
713988
  function getVersion5() {
713932
713989
  try {
713933
- const require5 = createRequire9(import.meta.url);
713990
+ const require5 = createRequire10(import.meta.url);
713934
713991
  const pkgPath = join171(dirname51(fileURLToPath21(import.meta.url)), "..", "package.json");
713935
713992
  const pkg = require5(pkgPath);
713936
713993
  return pkg.version;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.310",
3
+ "version": "1.0.311",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.310",
9
+ "version": "1.0.311",
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.310",
3
+ "version": "1.0.311",
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",