omnius 1.0.310 → 1.0.312

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) {
@@ -580740,12 +580754,18 @@ ${result}`
580740
580754
  return true;
580741
580755
  if (/model is loading|server busy|overloaded/i.test(msg))
580742
580756
  return true;
580757
+ if (this.isGpuSlotUnavailableError(err))
580758
+ return true;
580743
580759
  if (/multiaddrs failed|all multiaddrs failed|dial to peer failed|stream was reset|Cannot reach peer/i.test(msg))
580744
580760
  return true;
580745
580761
  if (/NATS.*timeout|relay.*timeout|invoke.*timeout/i.test(msg))
580746
580762
  return true;
580747
580763
  return false;
580748
580764
  }
580765
+ isGpuSlotUnavailableError(err) {
580766
+ const msg = err instanceof Error ? err.message : String(err);
580767
+ return /No GPU slot available after 30s\. All slots occupied\./i.test(msg);
580768
+ }
580749
580769
  /** Detect 402 payment-required errors that should trigger key rotation */
580750
580770
  isPaymentRequiredError(err) {
580751
580771
  const msg = err instanceof Error ? err.message : String(err);
@@ -580953,16 +580973,18 @@ ${description}`
580953
580973
  return true;
580954
580974
  }
580955
580975
  /**
580956
- * Retry a failed model request up to 3 times with exponential backoff.
580957
- * Returns the response on success, or null if all retries failed.
580976
+ * Retry a failed model request. Network outages and GPU slot saturation wait
580977
+ * until recovery; other transient backend errors use bounded backoff.
580978
+ * Returns the response on success, or null if recovery did not apply.
580958
580979
  */
580959
580980
  async retryOnTransient(initialErr, chatRequest, turn) {
580960
580981
  if (!this.isTransientError(initialErr))
580961
580982
  return null;
580962
580983
  const errMsg = initialErr instanceof Error ? initialErr.message : String(initialErr);
580963
580984
  const isNetworkError2 = /fetch failed|ECONNREFUSED|ECONNRESET|ETIMEDOUT|socket hang up/i.test(errMsg);
580964
- const maxRetries = isNetworkError2 ? Infinity : 3;
580965
- const baseDelayMs = isNetworkError2 ? 5e3 : 3e3;
580985
+ const isGpuSlotUnavailable = this.isGpuSlotUnavailableError(initialErr);
580986
+ const maxRetries = isNetworkError2 || isGpuSlotUnavailable ? Infinity : 3;
580987
+ const baseDelayMs = isGpuSlotUnavailable ? 1e3 : isNetworkError2 ? 5e3 : 3e3;
580966
580988
  const maxDelayMs = 6e4;
580967
580989
  const backend = this.backend;
580968
580990
  let attempt = 1;
@@ -581000,13 +581022,21 @@ ${description}`
581000
581022
  return null;
581001
581023
  }
581002
581024
  }
581003
- const delay3 = Math.min(baseDelayMs * Math.pow(2, attempt - 1), maxDelayMs);
581025
+ const delay3 = isGpuSlotUnavailable ? baseDelayMs : Math.min(baseDelayMs * Math.pow(2, attempt - 1), maxDelayMs);
581004
581026
  const attemptLabel = maxRetries === Infinity ? `${attempt}` : `${attempt}/${maxRetries}`;
581005
- this.emit({
581006
- type: "status",
581007
- content: `Backend error — retrying in ${(delay3 / 1e3).toFixed(0)}s (attempt ${attemptLabel})`,
581008
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
581009
- });
581027
+ if (isGpuSlotUnavailable) {
581028
+ this.emit({
581029
+ type: "status",
581030
+ content: `Waiting for free GPU${".".repeat(attempt + 2)}`,
581031
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
581032
+ });
581033
+ } else {
581034
+ this.emit({
581035
+ type: "status",
581036
+ content: `Backend error — retrying in ${(delay3 / 1e3).toFixed(0)}s (attempt ${attemptLabel})`,
581037
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
581038
+ });
581039
+ }
581010
581040
  await new Promise((r2) => setTimeout(r2, delay3));
581011
581041
  if (this.aborted)
581012
581042
  return null;
@@ -581014,7 +581044,7 @@ ${description}`
581014
581044
  const response = this.options.streamEnabled && this.hasStreamingSupport() ? await this.streamingRequest(chatRequest, turn) : await this.backend.chatCompletion(chatRequest);
581015
581045
  this.emit({
581016
581046
  type: "status",
581017
- content: `Backend recovered on attempt ${attempt}`,
581047
+ content: isGpuSlotUnavailable ? "GPU Free, Resuming" : `Backend recovered on attempt ${attempt}`,
581018
581048
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
581019
581049
  });
581020
581050
  return response;
@@ -589029,8 +589059,8 @@ var init_listen = __esm({
589029
589059
  /** Load transcribe-cli — bundled as a dependency of omnius. */
589030
589060
  async loadTranscribeCli() {
589031
589061
  try {
589032
- const { createRequire: createRequire10 } = await import("node:module");
589033
- const req3 = createRequire10(import.meta.url);
589062
+ const { createRequire: createRequire11 } = await import("node:module");
589063
+ const req3 = createRequire11(import.meta.url);
589034
589064
  return req3("transcribe-cli");
589035
589065
  } catch {
589036
589066
  }
@@ -589042,8 +589072,8 @@ var init_listen = __esm({
589042
589072
  }).trim();
589043
589073
  const tcPath = join115(globalRoot, "transcribe-cli");
589044
589074
  if (existsSync100(join115(tcPath, "dist", "index.js"))) {
589045
- const { createRequire: createRequire10 } = await import("node:module");
589046
- const req3 = createRequire10(import.meta.url);
589075
+ const { createRequire: createRequire11 } = await import("node:module");
589076
+ const req3 = createRequire11(import.meta.url);
589047
589077
  return req3(join115(tcPath, "dist", "index.js"));
589048
589078
  }
589049
589079
  } catch {
@@ -589061,8 +589091,8 @@ var init_listen = __esm({
589061
589091
  "transcribe-cli"
589062
589092
  );
589063
589093
  if (existsSync100(join115(tcPath, "dist", "index.js"))) {
589064
- const { createRequire: createRequire10 } = await import("node:module");
589065
- const req3 = createRequire10(import.meta.url);
589094
+ const { createRequire: createRequire11 } = await import("node:module");
589095
+ const req3 = createRequire11(import.meta.url);
589066
589096
  return req3(join115(tcPath, "dist", "index.js"));
589067
589097
  }
589068
589098
  }
@@ -595494,8 +595524,8 @@ async function loadHighlighter() {
595494
595524
  return null;
595495
595525
  }
595496
595526
  try {
595497
- const { createRequire: createRequire10 } = await import("node:module");
595498
- const req3 = createRequire10(import.meta.url);
595527
+ const { createRequire: createRequire11 } = await import("node:module");
595528
+ const req3 = createRequire11(import.meta.url);
595499
595529
  let resolved = null;
595500
595530
  try {
595501
595531
  resolved = req3.resolve("cli-highlight");
@@ -620057,7 +620087,7 @@ var init_memory_menu = __esm({
620057
620087
 
620058
620088
  // packages/cli/src/tui/audio-waveform.ts
620059
620089
  import { readFileSync as readFileSync96 } from "node:fs";
620060
- import { createRequire as createRequire4 } from "node:module";
620090
+ import { createRequire as createRequire5 } from "node:module";
620061
620091
  function readAscii(buffer2, offset, length4) {
620062
620092
  return buffer2.subarray(offset, offset + length4).toString("ascii");
620063
620093
  }
@@ -620168,7 +620198,7 @@ var require3;
620168
620198
  var init_audio_waveform = __esm({
620169
620199
  "packages/cli/src/tui/audio-waveform.ts"() {
620170
620200
  "use strict";
620171
- require3 = createRequire4(import.meta.url);
620201
+ require3 = createRequire5(import.meta.url);
620172
620202
  }
620173
620203
  });
620174
620204
 
@@ -623360,7 +623390,7 @@ __export(image_ascii_preview_exports, {
623360
623390
  formatImageAsciiContext: () => formatImageAsciiContext
623361
623391
  });
623362
623392
  import { execFileSync as execFileSync8 } from "node:child_process";
623363
- import { createRequire as createRequire5 } from "node:module";
623393
+ import { createRequire as createRequire6 } from "node:module";
623364
623394
  import { existsSync as existsSync124, readFileSync as readFileSync101, statSync as statSync45 } from "node:fs";
623365
623395
  import { resolve as resolve56 } from "node:path";
623366
623396
  function clamp7(n2, min, max) {
@@ -623531,7 +623561,7 @@ function previewFailure(message2, width) {
623531
623561
  async function convertWithImageToAscii(imagePath, width, height, timeoutMs) {
623532
623562
  let imageToAscii;
623533
623563
  try {
623534
- const require5 = createRequire5(import.meta.url);
623564
+ const require5 = createRequire6(import.meta.url);
623535
623565
  const mod3 = require5("image-to-ascii");
623536
623566
  imageToAscii = typeof mod3 === "function" ? mod3 : mod3.default;
623537
623567
  if (typeof imageToAscii !== "function") {
@@ -623756,7 +623786,7 @@ import {
623756
623786
  execSync as execSync55,
623757
623787
  spawn as nodeSpawn
623758
623788
  } from "node:child_process";
623759
- import { createRequire as createRequire6 } from "node:module";
623789
+ import { createRequire as createRequire7 } from "node:module";
623760
623790
  function voicePythonEnv(extra = {}) {
623761
623791
  const env2 = { ...process.env, ...extra };
623762
623792
  applyMediaCudaDeviceFilterToEnv(env2, "tts");
@@ -628095,7 +628125,7 @@ if __name__ == "__main__":
628095
628125
  )
628096
628126
  );
628097
628127
  }
628098
- const voiceRequire = createRequire6(join137(voiceDir2(), "index.js"));
628128
+ const voiceRequire = createRequire7(join137(voiceDir2(), "index.js"));
628099
628129
  const probeOnnx = async () => {
628100
628130
  try {
628101
628131
  const output = await this.asyncShell(
@@ -641910,11 +641940,11 @@ async function handleUpdate(subcommand, ctx3) {
641910
641940
  }
641911
641941
  let currentVersion = "0.0.0";
641912
641942
  try {
641913
- const { createRequire: createRequire10 } = await import("node:module");
641943
+ const { createRequire: createRequire11 } = await import("node:module");
641914
641944
  const { fileURLToPath: fileURLToPath22 } = await import("node:url");
641915
641945
  const { dirname: dirname52, join: join172 } = await import("node:path");
641916
641946
  const { existsSync: existsSync156 } = await import("node:fs");
641917
- const req3 = createRequire10(import.meta.url);
641947
+ const req3 = createRequire11(import.meta.url);
641918
641948
  const thisDir = dirname52(fileURLToPath22(import.meta.url));
641919
641949
  const candidates = [
641920
641950
  join172(thisDir, "..", "package.json"),
@@ -643571,10 +643601,10 @@ var init_commands = __esm({
643571
643601
  return "handled";
643572
643602
  }
643573
643603
  try {
643574
- const { createRequire: createRequire10 } = await import("node:module");
643604
+ const { createRequire: createRequire11 } = await import("node:module");
643575
643605
  const { fileURLToPath: fileURLToPath22 } = await import("node:url");
643576
643606
  const { dirname: pathDirname, join: pathJoin } = await import("node:path");
643577
- const localRequire = createRequire10(import.meta.url);
643607
+ const localRequire = createRequire11(import.meta.url);
643578
643608
  const here = pathDirname(fileURLToPath22(import.meta.url));
643579
643609
  let version4 = "?";
643580
643610
  for (const up of ["..", "../..", "../../.."]) {
@@ -667660,6 +667690,33 @@ ${TELEGRAM_PUBLIC_ORCHESTRATOR_CONTRACT}`
667660
667690
  ].map((line) => line.trim()).filter(Boolean);
667661
667691
  return [...new Set(lines)].slice(-6).join("\n");
667662
667692
  }
667693
+ /**
667694
+ * Derive the tool calls that FAILED and were not subsequently recovered, so
667695
+ * the completion report reflects ground truth instead of trusting the
667696
+ * runner's prose. Tool results are recorded as `✓ name: …` / `✗ name: …`
667697
+ * lines; we take the LAST outcome per tool name, so a failure followed by a
667698
+ * later success of the same tool (e.g. a retried upload) is treated as
667699
+ * recovered and omitted. Without this, a run where `telegram_send_file`
667700
+ * failed on a rate limit was still reported as "Not verified / blocked: None
667701
+ * reported by the runner", letting the model claim a delivery that never
667702
+ * happened.
667703
+ */
667704
+ telegramAdminUnrecoveredToolFailures(subAgent) {
667705
+ const state = subAgent.adminLivePanelNonce ? this.telegramAdminLivePanels.get(subAgent.adminLivePanelNonce) : void 0;
667706
+ if (!state) return [];
667707
+ const ordered = [...state.toolLines, ...state.mutationLines].map((line) => line.trim()).filter(Boolean);
667708
+ const lastByTool = /* @__PURE__ */ new Map();
667709
+ for (const line of ordered) {
667710
+ const ok3 = line.startsWith("✓");
667711
+ const failed = line.startsWith("✗");
667712
+ if (!ok3 && !failed) continue;
667713
+ const rest = line.slice(1).trim();
667714
+ const name10 = (rest.split(/[:\s]/)[0] || rest).trim();
667715
+ if (!name10) continue;
667716
+ lastByTool.set(name10, { failed, line });
667717
+ }
667718
+ return [...lastByTool.values()].filter((o2) => o2.failed).map((o2) => o2.line);
667719
+ }
667663
667720
  telegramAdminIncompleteRunText(subAgent, finalText) {
667664
667721
  const stats = [
667665
667722
  typeof subAgent.runnerTurns === "number" ? `${subAgent.runnerTurns} turn(s)` : "",
@@ -667695,18 +667752,22 @@ ${signals || "No final validating tool/status signal was available."}`
667695
667752
  typeof subAgent.runnerToolCalls === "number" ? `${subAgent.runnerToolCalls} tool call(s)` : ""
667696
667753
  ].filter(Boolean).join(", ");
667697
667754
  const done = finalText || summary || "Run completed.";
667755
+ const failures = this.telegramAdminUnrecoveredToolFailures(subAgent);
667698
667756
  const verified = [
667699
667757
  `Backend status: ${subAgent.runnerStatus || (subAgent.runnerCompleted ? "completed" : "unknown")}.`,
667700
667758
  stats ? `Run shape: ${stats}.` : "",
667759
+ failures.length > 0 ? `⚠ ${failures.length} tool call(s) failed without a confirmed retry — treat any success claim above as unverified.` : "",
667701
667760
  summary && summary !== finalText ? `Runner summary: ${summary}` : ""
667702
667761
  ].filter(Boolean).join("\n");
667762
+ const blocked = failures.length > 0 ? `${failures.length} tool call(s) failed and were not confirmed recovered:
667763
+ ${failures.join("\n")}` : "None reported by the runner.";
667703
667764
  return [
667704
667765
  `Done:
667705
667766
  ${done}`,
667706
667767
  `Verified:
667707
667768
  ${verified || "Completion boundary observed."}`,
667708
667769
  `Not verified / blocked:
667709
- None reported by the runner.`,
667770
+ ${blocked}`,
667710
667771
  `Evidence:
667711
667772
  ${signals || summary || "Canonical runner status reported completed."}`
667712
667773
  ].join("\n\n");
@@ -673894,18 +673955,27 @@ Content-Type: ${contentType}\r
673894
673955
  parts.push(Buffer.from(`--${boundary}--\r
673895
673956
  `));
673896
673957
  const body = Buffer.concat(parts);
673897
- const res = await fetch(
673898
- `https://api.telegram.org/bot${this.botToken}/${method}`,
673899
- {
673958
+ const uploadUrl = `https://api.telegram.org/bot${this.botToken}/${method}`;
673959
+ const MAX_UPLOAD_ATTEMPTS = 4;
673960
+ const PER_RETRY_WAIT_CAP_MS = 3e4;
673961
+ let result = {};
673962
+ for (let attempt = 1; attempt <= MAX_UPLOAD_ATTEMPTS; attempt++) {
673963
+ const res = await fetch(uploadUrl, {
673900
673964
  method: "POST",
673901
673965
  headers: {
673902
673966
  "Content-Type": `multipart/form-data; boundary=${boundary}`,
673903
673967
  "Content-Length": String(body.length)
673904
673968
  },
673905
673969
  body
673906
- }
673907
- );
673908
- const result = await res.json();
673970
+ });
673971
+ result = await res.json();
673972
+ if (result.ok) break;
673973
+ const retryAfterSec = result["error_code"] === 429 ? Number(result["parameters"]?.retry_after) : NaN;
673974
+ const canRetry = Number.isFinite(retryAfterSec) && retryAfterSec > 0 && attempt < MAX_UPLOAD_ATTEMPTS && !this.abortController?.signal.aborted;
673975
+ if (!canRetry) break;
673976
+ const waitMs = Math.min(retryAfterSec * 1e3, PER_RETRY_WAIT_CAP_MS);
673977
+ await new Promise((r2) => setTimeout(r2, waitMs));
673978
+ }
673909
673979
  if (result.ok) {
673910
673980
  this.state.messagesSent++;
673911
673981
  const outboundMessageId = result.result?.message_id ?? null;
@@ -692638,7 +692708,7 @@ __export(serve_exports, {
692638
692708
  });
692639
692709
  import * as http5 from "node:http";
692640
692710
  import * as https3 from "node:https";
692641
- import { createRequire as createRequire7 } from "node:module";
692711
+ import { createRequire as createRequire8 } from "node:module";
692642
692712
  import { fileURLToPath as fileURLToPath19 } from "node:url";
692643
692713
  import { dirname as dirname49, join as join165, resolve as resolve65 } from "node:path";
692644
692714
  import { homedir as homedir58 } from "node:os";
@@ -697529,8 +697599,8 @@ async function handleRequest(req3, res, ollamaUrl, verbose, runtimeDefaults = {}
697529
697599
  const entry = fileMap[pathname];
697530
697600
  if (entry) {
697531
697601
  try {
697532
- const { createRequire: createRequire10 } = await import("node:module");
697533
- const req22 = createRequire10(import.meta.url);
697602
+ const { createRequire: createRequire11 } = await import("node:module");
697603
+ const req22 = createRequire11(import.meta.url);
697534
697604
  const cssEntry = req22.resolve("swagger-ui-dist/swagger-ui.css");
697535
697605
  const fs11 = await import("node:fs");
697536
697606
  const path12 = await import("node:path");
@@ -702740,7 +702810,7 @@ var init_serve = __esm({
702740
702810
  init_docker();
702741
702811
  init_typed_node_events();
702742
702812
  init_secret_redactor();
702743
- require4 = createRequire7(import.meta.url);
702813
+ require4 = createRequire8(import.meta.url);
702744
702814
  NEXUS_DIRECTORY_ORIGIN2 = (process.env["OMNIUS_NEXUS_DIRECTORY_ORIGIN"] || process.env["OMNIUS_NEXUS_SIGNALING_SERVER"] || "https://openagents.nexus").replace(/\/+$/, "");
702745
702815
  NEXUS_SPONSORS_URL2 = `${NEXUS_DIRECTORY_ORIGIN2}/api/v1/sponsors`;
702746
702816
  endpointRegistry = [];
@@ -702843,7 +702913,7 @@ var init_clipboard_media = __esm({
702843
702913
  // packages/cli/src/tui/interactive.ts
702844
702914
  import { cwd } from "node:process";
702845
702915
  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";
702916
+ import { createRequire as createRequire9 } from "node:module";
702847
702917
  import { fileURLToPath as fileURLToPath20 } from "node:url";
702848
702918
  import {
702849
702919
  readFileSync as readFileSync127,
@@ -702869,7 +702939,7 @@ function formatTimeAgo2(date) {
702869
702939
  }
702870
702940
  function getVersion4() {
702871
702941
  try {
702872
- const require5 = createRequire8(import.meta.url);
702942
+ const require5 = createRequire9(import.meta.url);
702873
702943
  const thisDir = dirname50(fileURLToPath20(import.meta.url));
702874
702944
  const candidates = [
702875
702945
  join167(thisDir, "..", "package.json"),
@@ -705523,6 +705593,68 @@ ${entry.fullContent}`
705523
705593
  }, 33);
705524
705594
  liveShellBlock.repaintTimer.unref?.();
705525
705595
  };
705596
+ let gpuRecoveryBlock = null;
705597
+ const buildGpuRecoveryBlockLines = (state, width) => {
705598
+ if (state.done) return [`${c3.dim("∙")} ${c3.dim("GPU Free, Resuming")}`];
705599
+ const label = "Waiting for free GPU";
705600
+ const maxDots = Math.max(3, width - label.length - 4);
705601
+ const text2 = `${label}${".".repeat(Math.min(state.dots, maxDots))}`;
705602
+ return [`${c3.dim("∙")} ${c3.dim(text2)}`];
705603
+ };
705604
+ const stopGpuRecoveryTimer = (state = gpuRecoveryBlock) => {
705605
+ if (!state?.timer) return;
705606
+ clearInterval(state.timer);
705607
+ state.timer = null;
705608
+ };
705609
+ const startGpuRecoveryBlock = (initialDots) => {
705610
+ if (!statusBar?.isActive || isNeovimActive() || isOverlayActive()) {
705611
+ return false;
705612
+ }
705613
+ let state = gpuRecoveryBlock;
705614
+ if (!state || state.done) {
705615
+ const id = `gpu-recovery-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
705616
+ state = {
705617
+ id,
705618
+ dots: Math.max(3, initialDots),
705619
+ done: false,
705620
+ timer: null
705621
+ };
705622
+ gpuRecoveryBlock = state;
705623
+ statusBar.registerDynamicBlock(
705624
+ id,
705625
+ (width) => buildGpuRecoveryBlockLines(state, width)
705626
+ );
705627
+ statusBar.appendDynamicBlock(id);
705628
+ } else {
705629
+ state.dots = Math.max(state.dots, initialDots, 3);
705630
+ statusBar.refreshDisplay();
705631
+ }
705632
+ if (!state.timer) {
705633
+ state.timer = setInterval(() => {
705634
+ if (state.done) {
705635
+ stopGpuRecoveryTimer(state);
705636
+ return;
705637
+ }
705638
+ state.dots += 1;
705639
+ if (statusBar?.isActive && !isNeovimActive() && !isOverlayActive()) {
705640
+ statusBar.refreshDisplay();
705641
+ }
705642
+ }, 1e3);
705643
+ state.timer.unref?.();
705644
+ }
705645
+ return true;
705646
+ };
705647
+ const finishGpuRecoveryBlock = () => {
705648
+ const state = gpuRecoveryBlock;
705649
+ if (!state) return false;
705650
+ state.done = true;
705651
+ stopGpuRecoveryTimer(state);
705652
+ if (!statusBar?.isActive || isNeovimActive() || isOverlayActive()) {
705653
+ return false;
705654
+ }
705655
+ statusBar.refreshDisplay();
705656
+ return true;
705657
+ };
705526
705658
  runner.onEvent((event) => {
705527
705659
  emotionEngine?.appraise(event);
705528
705660
  switch (event.type) {
@@ -705879,7 +706011,19 @@ ${entry.fullContent}`
705879
706011
  scheduleLiveShellRepaint();
705880
706012
  break;
705881
706013
  }
705882
- if (!config.debug) break;
706014
+ const statusContent = event.content ?? "";
706015
+ const gpuWaitingStatus = /^Waiting for free GPU\.{3,}$/.test(
706016
+ statusContent
706017
+ );
706018
+ const gpuResumeStatus = statusContent === "GPU Free, Resuming";
706019
+ if (gpuWaitingStatus) {
706020
+ const dotCount = statusContent.match(/\.+$/)?.[0]?.length ?? 3;
706021
+ if (startGpuRecoveryBlock(dotCount)) break;
706022
+ } else if (gpuResumeStatus && finishGpuRecoveryBlock()) {
706023
+ break;
706024
+ }
706025
+ const gpuRecoveryStatus = gpuWaitingStatus || gpuResumeStatus;
706026
+ if (!config.debug && !gpuRecoveryStatus) break;
705883
706027
  if (isNeovimActive()) {
705884
706028
  writeToNeovimOutput(
705885
706029
  `\x1B[38;5;250m${event.content ?? ""}\x1B[0m\r
@@ -706460,6 +706604,7 @@ When done, either call task_complete with your answer, or use FINAL_VAR(variable
706460
706604
  } catch {
706461
706605
  }
706462
706606
  }
706607
+ stopGpuRecoveryTimer();
706463
706608
  if (backend && typeof backend.stop === "function") {
706464
706609
  backend.stop();
706465
706610
  }
@@ -706472,7 +706617,9 @@ When done, either call task_complete with your answer, or use FINAL_VAR(variable
706472
706617
  }
706473
706618
  }
706474
706619
  )
706475
- );
706620
+ ).finally(() => {
706621
+ stopGpuRecoveryTimer();
706622
+ });
706476
706623
  return {
706477
706624
  runner,
706478
706625
  promise,
@@ -713767,16 +713914,27 @@ var init_eval = __esm({
713767
713914
  }
713768
713915
  });
713769
713916
 
713917
+ // packages/cli/src/node-compat.ts
713918
+ import { createRequire } from "node:module";
713919
+ var _require = createRequire(import.meta.url);
713920
+ try {
713921
+ const workerThreads = _require("node:worker_threads");
713922
+ if (typeof workerThreads.markAsUncloneable === "undefined") {
713923
+ workerThreads.markAsUncloneable = (value2) => value2;
713924
+ }
713925
+ } catch {
713926
+ }
713927
+
713770
713928
  // packages/cli/src/index.ts
713771
713929
  init_config();
713772
713930
  init_output();
713773
713931
  init_updater();
713774
713932
  init_typed_node_events();
713775
713933
  init_dist5();
713776
- import { createRequire as createRequire9 } from "node:module";
713777
713934
  import { parseArgs as nodeParseArgs2 } from "node:util";
713778
713935
  import { fileURLToPath as fileURLToPath21 } from "node:url";
713779
713936
  import { dirname as dirname51, join as join171 } from "node:path";
713937
+ import { createRequire as createRequire10 } from "node:module";
713780
713938
 
713781
713939
  // packages/cli/src/cli.ts
713782
713940
  init_typed_node_events();
@@ -713920,17 +714078,9 @@ Options:
713920
714078
  init_config();
713921
714079
  init_spinner();
713922
714080
  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
714081
  function getVersion5() {
713932
714082
  try {
713933
- const require5 = createRequire9(import.meta.url);
714083
+ const require5 = createRequire10(import.meta.url);
713934
714084
  const pkgPath = join171(dirname51(fileURLToPath21(import.meta.url)), "..", "package.json");
713935
714085
  const pkg = require5(pkgPath);
713936
714086
  return pkg.version;
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.310",
3
+ "version": "1.0.312",
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.312",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
@@ -704,9 +704,9 @@
704
704
  }
705
705
  },
706
706
  "node_modules/@libp2p/http-fetch": {
707
- "version": "4.0.2",
708
- "resolved": "https://registry.npmjs.org/@libp2p/http-fetch/-/http-fetch-4.0.2.tgz",
709
- "integrity": "sha512-fpUfevPjinWgEit+NO7LcYPH2of0pv+qHfznB0zchwJr1ngpb5EBzk4IqU8xCkO3LkdObKAxwz9fvrQvAFxUXA==",
707
+ "version": "4.0.3",
708
+ "resolved": "https://registry.npmjs.org/@libp2p/http-fetch/-/http-fetch-4.0.3.tgz",
709
+ "integrity": "sha512-JyjwtiQirLLlGRV6gb9kgJlsP3byiDbcp0IfzG3sbKEfbc1grTEqqlFFCXSfG/bqcBT0/Hk/MGCFT5KXzINzkA==",
710
710
  "license": "Apache-2.0 OR MIT",
711
711
  "dependencies": {
712
712
  "@achingbrain/http-parser-js": "^0.5.9",
@@ -716,9 +716,9 @@
716
716
  }
717
717
  },
718
718
  "node_modules/@libp2p/http-peer-id-auth": {
719
- "version": "2.0.1",
720
- "resolved": "https://registry.npmjs.org/@libp2p/http-peer-id-auth/-/http-peer-id-auth-2.0.1.tgz",
721
- "integrity": "sha512-CKXuhHQ4+lxBEZkAdXPsSBMU2N9ajPEo+zX7Yj32NXjRjlRkoRCQBwpUtW/GzJVG0bgxp4bDRqFsMJjKpBM4CQ==",
719
+ "version": "2.0.2",
720
+ "resolved": "https://registry.npmjs.org/@libp2p/http-peer-id-auth/-/http-peer-id-auth-2.0.2.tgz",
721
+ "integrity": "sha512-db2f81mF5Dn/AcEkRmVlSSSSbu8BCXul2zuZtDQZwpBcH5RfF4eAe3SK+GG9r1SLxxPtrVdcYWgN6ywEVzOaUw==",
722
722
  "license": "Apache-2.0 OR MIT",
723
723
  "dependencies": {
724
724
  "@libp2p/crypto": "^5.1.15",
@@ -729,30 +729,54 @@
729
729
  }
730
730
  },
731
731
  "node_modules/@libp2p/http-utils": {
732
- "version": "2.0.2",
733
- "resolved": "https://registry.npmjs.org/@libp2p/http-utils/-/http-utils-2.0.2.tgz",
734
- "integrity": "sha512-Fx+C3hqSv7Y+lc41kUXVuiLqBWv8j3OWWdOf0R6og61pOS97/GJeDj5uAFHbCZxr2RNihhnpi8OjJ8b/bAJJmw==",
732
+ "version": "2.0.5",
733
+ "resolved": "https://registry.npmjs.org/@libp2p/http-utils/-/http-utils-2.0.5.tgz",
734
+ "integrity": "sha512-7+CYWM0MxjbVbPdCIn3SOjgxhoJpPlimLtoquIdeQC2xq4Y+d1NYqS5Ii2fbrWIwEPiJauuGxBgUs0Rz29wYGQ==",
735
735
  "license": "Apache-2.0 OR MIT",
736
736
  "dependencies": {
737
737
  "@achingbrain/http-parser-js": "^0.5.9",
738
738
  "@libp2p/interface": "^3.2.0",
739
739
  "@libp2p/peer-id": "^6.0.6",
740
740
  "@libp2p/utils": "^7.0.15",
741
- "@multiformats/multiaddr": "^13.0.1",
741
+ "@multiformats/multiaddr": "^13.0.3",
742
742
  "@multiformats/multiaddr-to-uri": "^12.0.0",
743
743
  "@multiformats/uri-to-multiaddr": "^10.0.0",
744
744
  "it-to-browser-readablestream": "^2.0.14",
745
- "multiformats": "^13.4.2",
745
+ "multiformats": "^14.0.0",
746
746
  "race-event": "^1.6.1",
747
747
  "readable-stream": "^4.7.0",
748
- "uint8arraylist": "^2.4.8",
748
+ "uint8arraylist": "^3.0.2",
749
749
  "uint8arrays": "^5.1.0"
750
750
  }
751
751
  },
752
+ "node_modules/@libp2p/http-utils/node_modules/multiformats": {
753
+ "version": "14.0.0",
754
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
755
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
756
+ "license": "Apache-2.0 OR MIT"
757
+ },
758
+ "node_modules/@libp2p/http-utils/node_modules/uint8arraylist": {
759
+ "version": "3.0.2",
760
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
761
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
762
+ "license": "Apache-2.0 OR MIT",
763
+ "dependencies": {
764
+ "uint8arrays": "^6.0.0"
765
+ }
766
+ },
767
+ "node_modules/@libp2p/http-utils/node_modules/uint8arraylist/node_modules/uint8arrays": {
768
+ "version": "6.1.1",
769
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz",
770
+ "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==",
771
+ "license": "Apache-2.0 OR MIT",
772
+ "dependencies": {
773
+ "multiformats": "^14.0.0"
774
+ }
775
+ },
752
776
  "node_modules/@libp2p/http-websocket": {
753
- "version": "2.0.2",
754
- "resolved": "https://registry.npmjs.org/@libp2p/http-websocket/-/http-websocket-2.0.2.tgz",
755
- "integrity": "sha512-wPvosBSHAkbX9yi8NCFout9y7pamyT8nOEVZkjPhBBuIHerI6Q21NFopavtq+xLht+WOPcwJkEcNs/sFqABs4g==",
777
+ "version": "2.0.3",
778
+ "resolved": "https://registry.npmjs.org/@libp2p/http-websocket/-/http-websocket-2.0.3.tgz",
779
+ "integrity": "sha512-irUeCm0k1GcO4EgaRLm18O45Fk4vTLckp1T/kReQ5tgDUBpENaNWBvYnSHqKtJZXGO1329RJZ186xo2BIX2DOg==",
756
780
  "license": "Apache-2.0 OR MIT",
757
781
  "dependencies": {
758
782
  "@achingbrain/http-parser-js": "^0.5.9",
@@ -760,13 +784,37 @@
760
784
  "@libp2p/interface": "^3.2.0",
761
785
  "@libp2p/interface-internal": "^3.1.0",
762
786
  "@libp2p/utils": "^7.0.15",
763
- "@multiformats/multiaddr": "^13.0.1",
764
- "multiformats": "^13.4.2",
787
+ "@multiformats/multiaddr": "^13.0.3",
788
+ "multiformats": "^14.0.0",
765
789
  "race-event": "^1.6.1",
766
- "uint8arraylist": "^2.4.8",
790
+ "uint8arraylist": "^3.0.2",
767
791
  "uint8arrays": "^5.1.0"
768
792
  }
769
793
  },
794
+ "node_modules/@libp2p/http-websocket/node_modules/multiformats": {
795
+ "version": "14.0.0",
796
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
797
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
798
+ "license": "Apache-2.0 OR MIT"
799
+ },
800
+ "node_modules/@libp2p/http-websocket/node_modules/uint8arraylist": {
801
+ "version": "3.0.2",
802
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
803
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
804
+ "license": "Apache-2.0 OR MIT",
805
+ "dependencies": {
806
+ "uint8arrays": "^6.0.0"
807
+ }
808
+ },
809
+ "node_modules/@libp2p/http-websocket/node_modules/uint8arraylist/node_modules/uint8arrays": {
810
+ "version": "6.1.1",
811
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz",
812
+ "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==",
813
+ "license": "Apache-2.0 OR MIT",
814
+ "dependencies": {
815
+ "multiformats": "^14.0.0"
816
+ }
817
+ },
770
818
  "node_modules/@libp2p/http/node_modules/cookie": {
771
819
  "version": "1.1.1",
772
820
  "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
@@ -965,19 +1013,19 @@
965
1013
  }
966
1014
  },
967
1015
  "node_modules/@libp2p/peer-record": {
968
- "version": "9.0.11",
969
- "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.11.tgz",
970
- "integrity": "sha512-8bRt7mOXdFmiGpNNziytrX0rhj9uUBjv8SRZt/tuPvLKn3LUl9M6Z9e2atX0Cai2UENw7T8IR3AE/cVaunjgxA==",
1016
+ "version": "9.0.12",
1017
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.12.tgz",
1018
+ "integrity": "sha512-tYGHo9gSO1ZqQripsEtpzxMrWDnmCMgFe8c1TKcml8dZUBCAsM9k5js25RKb0HA1aqZ2VX54XPFazpbjVs3tow==",
971
1019
  "license": "Apache-2.0 OR MIT",
972
1020
  "dependencies": {
973
- "@libp2p/crypto": "^5.1.19",
974
- "@libp2p/interface": "^3.2.3",
975
- "@libp2p/peer-id": "^6.0.10",
1021
+ "@libp2p/crypto": "^5.1.20",
1022
+ "@libp2p/interface": "^3.2.4",
1023
+ "@libp2p/peer-id": "^6.0.11",
976
1024
  "@multiformats/multiaddr": "^13.0.3",
977
1025
  "multiformats": "^14.0.0",
978
- "protons-runtime": "^6.0.1",
979
- "uint8-varint": "^2.0.4",
980
- "uint8arraylist": "^2.4.8",
1026
+ "protons-runtime": "^7.0.0",
1027
+ "uint8-varint": "^3.0.0",
1028
+ "uint8arraylist": "^3.0.2",
981
1029
  "uint8arrays": "^6.1.1"
982
1030
  }
983
1031
  },
@@ -988,29 +1036,33 @@
988
1036
  "license": "Apache-2.0 OR MIT"
989
1037
  },
990
1038
  "node_modules/@libp2p/peer-record/node_modules/protons-runtime": {
991
- "version": "6.0.2",
992
- "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-6.0.2.tgz",
993
- "integrity": "sha512-hiyjyANwGcgmzc+tXc1/ZcSZhKnl5MDjaVNWkISHBgadaU0sjTgKIKZMZ62d9J9zlSTyKHCs/osPkQ/3Z+7yeA==",
1039
+ "version": "7.0.0",
1040
+ "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz",
1041
+ "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==",
994
1042
  "license": "Apache-2.0 OR MIT",
995
1043
  "dependencies": {
996
- "uint8-varint": "^2.0.4",
997
- "uint8arraylist": "^2.4.8",
998
- "uint8arrays": "^5.1.0"
1044
+ "uint8-varint": "^3.0.0",
1045
+ "uint8arraylist": "^3.0.0",
1046
+ "uint8arrays": "^6.0.0"
999
1047
  }
1000
1048
  },
1001
- "node_modules/@libp2p/peer-record/node_modules/protons-runtime/node_modules/multiformats": {
1002
- "version": "13.4.2",
1003
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz",
1004
- "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==",
1005
- "license": "Apache-2.0 OR MIT"
1049
+ "node_modules/@libp2p/peer-record/node_modules/uint8-varint": {
1050
+ "version": "3.0.0",
1051
+ "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz",
1052
+ "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==",
1053
+ "license": "Apache-2.0 OR MIT",
1054
+ "dependencies": {
1055
+ "uint8arraylist": "^3.0.1",
1056
+ "uint8arrays": "^6.1.0"
1057
+ }
1006
1058
  },
1007
- "node_modules/@libp2p/peer-record/node_modules/protons-runtime/node_modules/uint8arrays": {
1008
- "version": "5.1.1",
1009
- "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz",
1010
- "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==",
1059
+ "node_modules/@libp2p/peer-record/node_modules/uint8arraylist": {
1060
+ "version": "3.0.2",
1061
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
1062
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
1011
1063
  "license": "Apache-2.0 OR MIT",
1012
1064
  "dependencies": {
1013
- "multiformats": "^13.0.0"
1065
+ "uint8arrays": "^6.0.0"
1014
1066
  }
1015
1067
  },
1016
1068
  "node_modules/@libp2p/peer-record/node_modules/uint8arrays": {
@@ -1077,34 +1129,50 @@
1077
1129
  }
1078
1130
  },
1079
1131
  "node_modules/@libp2p/record": {
1080
- "version": "4.0.13",
1081
- "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-4.0.13.tgz",
1082
- "integrity": "sha512-f3kUWL09E7mNdIDOqClOimEURQFwYP9Zo8Ozpstk4BDCGf+8IJOe9X6s/Fs+eQMXrCo1PiS/kHT0xs65YR2OHg==",
1132
+ "version": "4.0.14",
1133
+ "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-4.0.14.tgz",
1134
+ "integrity": "sha512-YObHdE1dkAiVDPR+YHIFcCD5YMppP0lj2shnMj0L5PgLka8lnZgaY5AjiQo+DMvLFhRvNIMHyxlE9WQUbrM1wA==",
1083
1135
  "license": "Apache-2.0 OR MIT",
1084
1136
  "dependencies": {
1085
- "protons-runtime": "^6.0.1",
1086
- "uint8arraylist": "^2.4.8",
1137
+ "protons-runtime": "^7.0.0",
1138
+ "uint8arraylist": "^3.0.2",
1087
1139
  "uint8arrays": "^6.1.1"
1088
1140
  }
1089
1141
  },
1142
+ "node_modules/@libp2p/record/node_modules/multiformats": {
1143
+ "version": "14.0.0",
1144
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
1145
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
1146
+ "license": "Apache-2.0 OR MIT"
1147
+ },
1090
1148
  "node_modules/@libp2p/record/node_modules/protons-runtime": {
1091
- "version": "6.0.2",
1092
- "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-6.0.2.tgz",
1093
- "integrity": "sha512-hiyjyANwGcgmzc+tXc1/ZcSZhKnl5MDjaVNWkISHBgadaU0sjTgKIKZMZ62d9J9zlSTyKHCs/osPkQ/3Z+7yeA==",
1149
+ "version": "7.0.0",
1150
+ "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz",
1151
+ "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==",
1094
1152
  "license": "Apache-2.0 OR MIT",
1095
1153
  "dependencies": {
1096
- "uint8-varint": "^2.0.4",
1097
- "uint8arraylist": "^2.4.8",
1098
- "uint8arrays": "^5.1.0"
1154
+ "uint8-varint": "^3.0.0",
1155
+ "uint8arraylist": "^3.0.0",
1156
+ "uint8arrays": "^6.0.0"
1099
1157
  }
1100
1158
  },
1101
- "node_modules/@libp2p/record/node_modules/protons-runtime/node_modules/uint8arrays": {
1102
- "version": "5.1.1",
1103
- "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz",
1104
- "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==",
1159
+ "node_modules/@libp2p/record/node_modules/uint8-varint": {
1160
+ "version": "3.0.0",
1161
+ "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz",
1162
+ "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==",
1105
1163
  "license": "Apache-2.0 OR MIT",
1106
1164
  "dependencies": {
1107
- "multiformats": "^13.0.0"
1165
+ "uint8arraylist": "^3.0.1",
1166
+ "uint8arrays": "^6.1.0"
1167
+ }
1168
+ },
1169
+ "node_modules/@libp2p/record/node_modules/uint8arraylist": {
1170
+ "version": "3.0.2",
1171
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
1172
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
1173
+ "license": "Apache-2.0 OR MIT",
1174
+ "dependencies": {
1175
+ "uint8arrays": "^6.0.0"
1108
1176
  }
1109
1177
  },
1110
1178
  "node_modules/@libp2p/record/node_modules/uint8arrays": {
@@ -1116,12 +1184,6 @@
1116
1184
  "multiformats": "^14.0.0"
1117
1185
  }
1118
1186
  },
1119
- "node_modules/@libp2p/record/node_modules/uint8arrays/node_modules/multiformats": {
1120
- "version": "14.0.0",
1121
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
1122
- "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
1123
- "license": "Apache-2.0 OR MIT"
1124
- },
1125
1187
  "node_modules/@libp2p/tcp": {
1126
1188
  "version": "11.0.13",
1127
1189
  "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-11.0.13.tgz",
@@ -1210,27 +1272,27 @@
1210
1272
  }
1211
1273
  },
1212
1274
  "node_modules/@libp2p/webrtc": {
1213
- "version": "6.0.24",
1214
- "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.24.tgz",
1215
- "integrity": "sha512-+YHoA9L12qeJ25v0etFuh7Sq+TNg1LAa2CUoqd+E35pl1WmKCeo8DOHi3NghNXOZNQzvVA2nFhggKwgAFD1Nzw==",
1275
+ "version": "6.0.25",
1276
+ "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.25.tgz",
1277
+ "integrity": "sha512-c7QwXOjqBR+xgCIE8bv/A1NGQQMX3Sfrek+CD5n+XJur2TOoEmNjYyRX98Yt2h5YzbD083/bZK7ITZiu9xSdmQ==",
1216
1278
  "license": "Apache-2.0 OR MIT",
1217
1279
  "dependencies": {
1218
1280
  "@chainsafe/is-ip": "^2.1.0",
1219
1281
  "@chainsafe/libp2p-noise": "^17.0.0",
1220
- "@libp2p/crypto": "^5.1.19",
1221
- "@libp2p/interface": "^3.2.3",
1222
- "@libp2p/interface-internal": "^3.1.6",
1223
- "@libp2p/keychain": "^6.1.2",
1224
- "@libp2p/peer-id": "^6.0.10",
1225
- "@libp2p/utils": "^7.2.2",
1282
+ "@libp2p/crypto": "^5.1.20",
1283
+ "@libp2p/interface": "^3.2.4",
1284
+ "@libp2p/interface-internal": "^3.1.7",
1285
+ "@libp2p/keychain": "^6.1.3",
1286
+ "@libp2p/peer-id": "^6.0.11",
1287
+ "@libp2p/utils": "^7.2.3",
1226
1288
  "@multiformats/multiaddr": "^13.0.3",
1227
1289
  "@multiformats/multiaddr-matcher": "^3.0.2",
1228
1290
  "@peculiar/webcrypto": "^1.5.0",
1229
1291
  "@peculiar/x509": "^2.0.0",
1230
1292
  "get-port": "^7.1.0",
1231
- "interface-datastore": "^9.0.1",
1232
- "it-length-prefixed": "^10.0.1",
1233
- "it-protobuf-stream": "^2.0.3",
1293
+ "interface-datastore": "^10.0.1",
1294
+ "it-length-prefixed": "^11.0.1",
1295
+ "it-protobuf-stream": "^3.0.0",
1234
1296
  "it-pushable": "^3.2.3",
1235
1297
  "it-stream-types": "^2.0.2",
1236
1298
  "main-event": "^1.0.1",
@@ -1241,12 +1303,12 @@
1241
1303
  "p-timeout": "^7.0.0",
1242
1304
  "p-wait-for": "^6.0.0",
1243
1305
  "progress-events": "^1.0.1",
1244
- "protons-runtime": "^6.0.1",
1306
+ "protons-runtime": "^7.0.0",
1245
1307
  "race-signal": "^2.0.0",
1246
1308
  "react-native-webrtc": "^124.0.6",
1247
1309
  "reflect-metadata": "^0.2.2",
1248
- "uint8-varint": "^2.0.4",
1249
- "uint8arraylist": "^2.4.8",
1310
+ "uint8-varint": "^3.0.0",
1311
+ "uint8arraylist": "^3.0.2",
1250
1312
  "uint8arrays": "^6.1.1"
1251
1313
  }
1252
1314
  },
@@ -1271,6 +1333,49 @@
1271
1333
  "node": ">=20.0.0"
1272
1334
  }
1273
1335
  },
1336
+ "node_modules/@libp2p/webrtc/node_modules/interface-datastore": {
1337
+ "version": "10.0.1",
1338
+ "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-10.0.1.tgz",
1339
+ "integrity": "sha512-DYMj/Og5Cz1Qwkx6/x5KRvR8SYEX7rVAv3KKCm2NzTwWSfpNAC4PahjcYbHyoZBP6zPWrhQv5n5wE+vaDdgSAg==",
1340
+ "license": "Apache-2.0 OR MIT",
1341
+ "dependencies": {
1342
+ "abort-error": "^1.0.2",
1343
+ "interface-store": "^8.0.0",
1344
+ "uint8arrays": "^6.1.1"
1345
+ }
1346
+ },
1347
+ "node_modules/@libp2p/webrtc/node_modules/interface-store": {
1348
+ "version": "8.0.0",
1349
+ "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-8.0.0.tgz",
1350
+ "integrity": "sha512-e2+s3EEROzM+Wlas4hU3zveTUscvVMf1BOvdsJfpzFm19SoEXLVadpACjWOnM491HqGpvtfFnevyiaN8W+I6Eg==",
1351
+ "license": "Apache-2.0 OR MIT",
1352
+ "dependencies": {
1353
+ "abort-error": "^1.0.2"
1354
+ }
1355
+ },
1356
+ "node_modules/@libp2p/webrtc/node_modules/it-length-prefixed": {
1357
+ "version": "11.0.1",
1358
+ "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-11.0.1.tgz",
1359
+ "integrity": "sha512-0Cy4RHFiL2CH060Lkigq0N37VaPg7oSylG6YjXErq+ccJFYcNEWNzxNjbqceio/sY1C+q84vZXOCE6/C0flYfQ==",
1360
+ "license": "Apache-2.0 OR MIT",
1361
+ "dependencies": {
1362
+ "it-reader": "^7.0.0",
1363
+ "it-stream-types": "^2.0.1",
1364
+ "uint8-varint": "^3.0.0",
1365
+ "uint8arraylist": "^3.0.1",
1366
+ "uint8arrays": "^6.1.0"
1367
+ }
1368
+ },
1369
+ "node_modules/@libp2p/webrtc/node_modules/it-reader": {
1370
+ "version": "7.0.0",
1371
+ "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-7.0.0.tgz",
1372
+ "integrity": "sha512-bTWQPHH1if8N1K9XeidDjhTDm51ALbOksMa9uCZVVsQkoIPXP0XVKM88/Ynqr7HS18La/P1Kvu7C73j4rRoKWQ==",
1373
+ "license": "Apache-2.0 OR MIT",
1374
+ "dependencies": {
1375
+ "it-stream-types": "^2.0.1",
1376
+ "uint8arraylist": "^3.0.1"
1377
+ }
1378
+ },
1274
1379
  "node_modules/@libp2p/webrtc/node_modules/multiformats": {
1275
1380
  "version": "14.0.0",
1276
1381
  "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
@@ -1291,29 +1396,33 @@
1291
1396
  }
1292
1397
  },
1293
1398
  "node_modules/@libp2p/webrtc/node_modules/protons-runtime": {
1294
- "version": "6.0.2",
1295
- "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-6.0.2.tgz",
1296
- "integrity": "sha512-hiyjyANwGcgmzc+tXc1/ZcSZhKnl5MDjaVNWkISHBgadaU0sjTgKIKZMZ62d9J9zlSTyKHCs/osPkQ/3Z+7yeA==",
1399
+ "version": "7.0.0",
1400
+ "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz",
1401
+ "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==",
1297
1402
  "license": "Apache-2.0 OR MIT",
1298
1403
  "dependencies": {
1299
- "uint8-varint": "^2.0.4",
1300
- "uint8arraylist": "^2.4.8",
1301
- "uint8arrays": "^5.1.0"
1404
+ "uint8-varint": "^3.0.0",
1405
+ "uint8arraylist": "^3.0.0",
1406
+ "uint8arrays": "^6.0.0"
1302
1407
  }
1303
1408
  },
1304
- "node_modules/@libp2p/webrtc/node_modules/protons-runtime/node_modules/multiformats": {
1305
- "version": "13.4.2",
1306
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz",
1307
- "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==",
1308
- "license": "Apache-2.0 OR MIT"
1409
+ "node_modules/@libp2p/webrtc/node_modules/uint8-varint": {
1410
+ "version": "3.0.0",
1411
+ "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz",
1412
+ "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==",
1413
+ "license": "Apache-2.0 OR MIT",
1414
+ "dependencies": {
1415
+ "uint8arraylist": "^3.0.1",
1416
+ "uint8arrays": "^6.1.0"
1417
+ }
1309
1418
  },
1310
- "node_modules/@libp2p/webrtc/node_modules/protons-runtime/node_modules/uint8arrays": {
1311
- "version": "5.1.1",
1312
- "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz",
1313
- "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==",
1419
+ "node_modules/@libp2p/webrtc/node_modules/uint8arraylist": {
1420
+ "version": "3.0.2",
1421
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
1422
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
1314
1423
  "license": "Apache-2.0 OR MIT",
1315
1424
  "dependencies": {
1316
- "multiformats": "^13.0.0"
1425
+ "uint8arrays": "^6.0.0"
1317
1426
  }
1318
1427
  },
1319
1428
  "node_modules/@libp2p/webrtc/node_modules/uint8arrays": {
@@ -2301,9 +2410,9 @@
2301
2410
  "license": "MIT"
2302
2411
  },
2303
2412
  "node_modules/axios": {
2304
- "version": "1.17.0",
2305
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.17.0.tgz",
2306
- "integrity": "sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw==",
2413
+ "version": "1.18.0",
2414
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.0.tgz",
2415
+ "integrity": "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==",
2307
2416
  "license": "MIT",
2308
2417
  "dependencies": {
2309
2418
  "follow-redirects": "^1.16.0",
@@ -2464,9 +2573,9 @@
2464
2573
  "license": "MIT"
2465
2574
  },
2466
2575
  "node_modules/better-sqlite3": {
2467
- "version": "12.10.0",
2468
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.10.0.tgz",
2469
- "integrity": "sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==",
2576
+ "version": "12.10.1",
2577
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.10.1.tgz",
2578
+ "integrity": "sha512-HfFtzCqnSfwB3+HroF6PSKzyh+7RfNMGPCzHFUZXRlvrPCb4P3cvxKZNN43Sr7IrkofqQZM+gIvffGpA8VvqgA==",
2470
2579
  "hasInstallScript": true,
2471
2580
  "license": "MIT",
2472
2581
  "optional": true,
@@ -2557,20 +2666,20 @@
2557
2666
  }
2558
2667
  },
2559
2668
  "node_modules/body-parser": {
2560
- "version": "2.2.2",
2561
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
2562
- "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
2669
+ "version": "2.3.0",
2670
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz",
2671
+ "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
2563
2672
  "license": "MIT",
2564
2673
  "dependencies": {
2565
2674
  "bytes": "^3.1.2",
2566
- "content-type": "^1.0.5",
2675
+ "content-type": "^2.0.0",
2567
2676
  "debug": "^4.4.3",
2568
- "http-errors": "^2.0.0",
2569
- "iconv-lite": "^0.7.0",
2677
+ "http-errors": "^2.0.1",
2678
+ "iconv-lite": "^0.7.2",
2570
2679
  "on-finished": "^2.4.1",
2571
- "qs": "^6.14.1",
2572
- "raw-body": "^3.0.1",
2573
- "type-is": "^2.0.1"
2680
+ "qs": "^6.15.2",
2681
+ "raw-body": "^3.0.2",
2682
+ "type-is": "^2.1.0"
2574
2683
  },
2575
2684
  "engines": {
2576
2685
  "node": ">=18"
@@ -2580,6 +2689,19 @@
2580
2689
  "url": "https://opencollective.com/express"
2581
2690
  }
2582
2691
  },
2692
+ "node_modules/body-parser/node_modules/content-type": {
2693
+ "version": "2.0.0",
2694
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
2695
+ "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
2696
+ "license": "MIT",
2697
+ "engines": {
2698
+ "node": ">=18"
2699
+ },
2700
+ "funding": {
2701
+ "type": "opencollective",
2702
+ "url": "https://opencollective.com/express"
2703
+ }
2704
+ },
2583
2705
  "node_modules/brace-expansion": {
2584
2706
  "version": "5.0.6",
2585
2707
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
@@ -4530,15 +4652,39 @@
4530
4652
  }
4531
4653
  },
4532
4654
  "node_modules/it-protobuf-stream": {
4533
- "version": "2.0.6",
4534
- "resolved": "https://registry.npmjs.org/it-protobuf-stream/-/it-protobuf-stream-2.0.6.tgz",
4535
- "integrity": "sha512-yr1ll0PN4DFrI4gyEMXy4OgcO3Glb7U0J+Scpx1lxOVnuszpcSc0idhxXHMZcDqAIUJgo8JmNHT9Ry6m6vVeJw==",
4655
+ "version": "3.0.0",
4656
+ "resolved": "https://registry.npmjs.org/it-protobuf-stream/-/it-protobuf-stream-3.0.0.tgz",
4657
+ "integrity": "sha512-slFaik6WDN2SqVCFW1XS35HLbFwOkVolTEgBiB2hx1l1482b9yMhZp5d6PAe5OsjgXXaSE3qTTiVRk+ZFzPo4g==",
4536
4658
  "license": "Apache-2.0 OR MIT",
4537
4659
  "dependencies": {
4538
4660
  "abort-error": "^1.0.2",
4539
4661
  "it-length-prefixed-stream": "^2.0.0",
4540
4662
  "it-stream-types": "^2.0.2",
4541
- "uint8arraylist": "^2.4.8"
4663
+ "uint8arraylist": "^3.0.1"
4664
+ }
4665
+ },
4666
+ "node_modules/it-protobuf-stream/node_modules/multiformats": {
4667
+ "version": "14.0.0",
4668
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
4669
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
4670
+ "license": "Apache-2.0 OR MIT"
4671
+ },
4672
+ "node_modules/it-protobuf-stream/node_modules/uint8arraylist": {
4673
+ "version": "3.0.2",
4674
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
4675
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
4676
+ "license": "Apache-2.0 OR MIT",
4677
+ "dependencies": {
4678
+ "uint8arrays": "^6.0.0"
4679
+ }
4680
+ },
4681
+ "node_modules/it-protobuf-stream/node_modules/uint8arrays": {
4682
+ "version": "6.1.1",
4683
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz",
4684
+ "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==",
4685
+ "license": "Apache-2.0 OR MIT",
4686
+ "dependencies": {
4687
+ "multiformats": "^14.0.0"
4542
4688
  }
4543
4689
  },
4544
4690
  "node_modules/it-pushable": {
@@ -7042,9 +7188,9 @@
7042
7188
  }
7043
7189
  },
7044
7190
  "node_modules/undici": {
7045
- "version": "7.27.2",
7046
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.27.2.tgz",
7047
- "integrity": "sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==",
7191
+ "version": "7.28.0",
7192
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz",
7193
+ "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==",
7048
7194
  "license": "MIT",
7049
7195
  "engines": {
7050
7196
  "node": ">=20.18.1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.310",
3
+ "version": "1.0.312",
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",