omnius 1.0.448 → 1.0.450

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
@@ -574471,6 +574471,8 @@ function violatesDirective(directive, input) {
574471
574471
  case "report_incomplete":
574472
574472
  return !isReportTool(input.toolName);
574473
574473
  case "edit_different_target":
574474
+ if (input.toolName === "shell")
574475
+ return false;
574474
574476
  return !isEditTool(input.toolName) && !isEvidenceGatheringTool(input.toolName) && !input.isReadLike;
574475
574477
  case "use_cached_evidence":
574476
574478
  return directive.forbiddenActionFamilies.includes(family);
@@ -574750,15 +574752,16 @@ var init_focusSupervisor = __esm({
574750
574752
  if (strict && prior.ignoredCount >= 1) {
574751
574753
  const terminal = this.ignoredDirectiveStreak >= TERMINAL_INCOMPLETE_IGNORE_THRESHOLD;
574752
574754
  const ignoredManyTimes = this.ignoredDirectiveStreak >= 3;
574755
+ const accumulatedFamilies = [...prior.forbiddenActionFamilies, family];
574756
+ if (prior.requiredNextAction === "read_authoritative_target" && isEditTool(input.toolName)) {
574757
+ accumulatedFamilies.push(input.toolName);
574758
+ }
574753
574759
  const directive = this.setDirective({
574754
574760
  turn: input.turn,
574755
574761
  state: terminal ? "terminal_incomplete" : ignoredManyTimes ? "verify_or_block" : "single_next_action",
574756
574762
  reason: terminal ? `model ignored ${this.ignoredDirectiveStreak} focus directives with no satisfying recovery action; report incomplete with the blocker and evidence` : ignoredManyTimes ? `model ignored ${this.ignoredDirectiveStreak} focus directives; take the required recovery action before trying another variant` : `model ignored prior directive ${prior.id}; ${prior.reason}`,
574757
574763
  requiredNextAction: terminal ? "report_incomplete" : prior.requiredNextAction,
574758
- forbiddenActionFamilies: uniqueLimited([
574759
- ...prior.forbiddenActionFamilies,
574760
- family
574761
- ])
574764
+ forbiddenActionFamilies: uniqueLimited(accumulatedFamilies)
574762
574765
  });
574763
574766
  this.lastIgnoredDirectiveTurn = input.turn;
574764
574767
  return this.block(directive, [
@@ -574872,13 +574875,26 @@ var init_focusSupervisor = __esm({
574872
574875
  errorClass: failureErrorClass(input.error || input.output || "")
574873
574876
  };
574874
574877
  this.failureFamilies.set(family, next);
574875
- if (next.count >= 2 && this.shouldStrictlyIntervene(this.lastContext)) {
574878
+ if (next.count >= 2) {
574876
574879
  const staleEditFailure = isEditTool(input.toolName) && next.errorClass.startsWith("stale_");
574880
+ const forbidden = staleEditFailure ? uniqueLimited([
574881
+ actionFamily(input.toolName, input.args),
574882
+ input.toolName
574883
+ ]) : [actionFamily(input.toolName, input.args)];
574877
574884
  this.setDirective({
574878
574885
  turn: input.turn,
574879
574886
  state: "forced_replan",
574880
574887
  reason: `same ${input.toolName} failure family repeated ${next.count} times: ${next.sample}`,
574881
574888
  requiredNextAction: staleEditFailure ? "read_authoritative_target" : input.toolName === "shell" ? "edit_different_target" : "update_todos",
574889
+ forbiddenActionFamilies: forbidden
574890
+ });
574891
+ } else if (next.count === 1 && !this.directive) {
574892
+ const staleEditFailure = isEditTool(input.toolName) && next.errorClass.startsWith("stale_");
574893
+ this.setDirective({
574894
+ turn: input.turn,
574895
+ state: "warn",
574896
+ reason: `first ${input.toolName} failure (${next.errorClass}): ${next.sample}`,
574897
+ requiredNextAction: staleEditFailure ? "read_authoritative_target" : "update_todos",
574882
574898
  forbiddenActionFamilies: [actionFamily(input.toolName, input.args)]
574883
574899
  });
574884
574900
  }
@@ -579617,6 +579633,129 @@ Your hypotheses MUST address this specific error, not generic causes.
579617
579633
  return null;
579618
579634
  }
579619
579635
  }
579636
+ /**
579637
+ * GC old/stale system messages and cap total system chars at 60% of context
579638
+ * window. Classifies system messages by content markers, keeps only the latest
579639
+ * instance of each type, and drops whole types (most expendable first) when
579640
+ * the system budget is exceeded. Never removes the base system prompt (msg[0]),
579641
+ * mission contract, or active context frame. Mutates `messages` in place.
579642
+ */
579643
+ gcSystemMessages(messages2) {
579644
+ const ctx3 = this.options.contextWindowSize ?? 0;
579645
+ if (ctx3 <= 0)
579646
+ return;
579647
+ const systemMaxChars = Math.floor(ctx3 * 0.6);
579648
+ const EXPENDABLE_PRIORITY = /* @__PURE__ */ new Map([
579649
+ ["coaching_hint", 0],
579650
+ ["memory_retrieval", 1],
579651
+ ["reflection", 2],
579652
+ ["failure_handoff", 3],
579653
+ ["decomposition", 4],
579654
+ ["completion_prompt", 5],
579655
+ ["efficiency_hint", 6],
579656
+ ["reg61_nudge", 7],
579657
+ ["todo_status", 8],
579658
+ ["focus_directive", 9],
579659
+ ["reg46_world_state", 10]
579660
+ ]);
579661
+ const NEVER_REMOVE = /* @__PURE__ */ new Set([
579662
+ "base_system",
579663
+ "mission_contract",
579664
+ "context_frame"
579665
+ ]);
579666
+ const classify = (content) => {
579667
+ if (content.startsWith("[ACTIVE CONTEXT FRAME]"))
579668
+ return "context_frame";
579669
+ if (content.includes("<world-state"))
579670
+ return "reg46_world_state";
579671
+ if (content.startsWith("[ALL TODOS COMPLETED"))
579672
+ return "completion_prompt";
579673
+ if (content.startsWith("[BLOCKED") || content.includes("first") && content.includes("edit") && content.includes("nudge"))
579674
+ return "reg61_nudge";
579675
+ if (content.startsWith("Reflexion") || content.includes("prior failure reflection"))
579676
+ return "reflection";
579677
+ if (content.includes("failure") && content.includes("handoff"))
579678
+ return "failure_handoff";
579679
+ if (content.includes("associative memory") || content.includes("prior experience"))
579680
+ return "memory_retrieval";
579681
+ if (content.includes("MODULE DECOMPOSITION") || content.includes("decomposition"))
579682
+ return "decomposition";
579683
+ if (content.includes("mission") && content.includes("completion contract"))
579684
+ return "mission_contract";
579685
+ if (content.includes("efficiency") || content.includes("consider using"))
579686
+ return "efficiency_hint";
579687
+ if (content.includes("todo") || content.includes("TODO") || content.includes("task_complete"))
579688
+ return "todo_status";
579689
+ if (content.includes("forbidden") || content.includes("replan") || content.includes("directive"))
579690
+ return "focus_directive";
579691
+ if (content.includes("coaching") || content.includes("hint") || content.length < 80)
579692
+ return "coaching_hint";
579693
+ return "base_system";
579694
+ };
579695
+ const groups = /* @__PURE__ */ new Map();
579696
+ let totalSystemChars = 0;
579697
+ for (let i2 = 0; i2 < messages2.length; i2++) {
579698
+ const m2 = messages2[i2];
579699
+ if (m2?.role !== "system" || typeof m2.content !== "string")
579700
+ continue;
579701
+ const type = classify(m2.content);
579702
+ let group = groups.get(type);
579703
+ if (!group) {
579704
+ group = [];
579705
+ groups.set(type, group);
579706
+ }
579707
+ group.push({ index: i2, chars: m2.content.length });
579708
+ totalSystemChars += m2.content.length;
579709
+ }
579710
+ if (totalSystemChars <= systemMaxChars)
579711
+ return;
579712
+ const indicesToRemove = /* @__PURE__ */ new Set();
579713
+ for (const [type, entries] of groups) {
579714
+ if (NEVER_REMOVE.has(type))
579715
+ continue;
579716
+ if (entries.length <= 1)
579717
+ continue;
579718
+ for (let e2 = 0; e2 < entries.length - 1; e2++) {
579719
+ indicesToRemove.add(entries[e2].index);
579720
+ totalSystemChars -= entries[e2].chars;
579721
+ }
579722
+ }
579723
+ if (totalSystemChars <= systemMaxChars) {
579724
+ this._applySystemRemoval(messages2, indicesToRemove);
579725
+ return;
579726
+ }
579727
+ const sortedTypes = [...groups.entries()].filter(([type]) => !NEVER_REMOVE.has(type)).map(([type, entries]) => {
579728
+ const remaining = entries.filter((e2) => !indicesToRemove.has(e2.index));
579729
+ const total = remaining.reduce((s2, e2) => s2 + e2.chars, 0);
579730
+ return {
579731
+ type,
579732
+ entries: remaining,
579733
+ total,
579734
+ priority: EXPENDABLE_PRIORITY.get(type) ?? 999
579735
+ };
579736
+ }).sort((a2, b) => a2.priority - b.priority);
579737
+ for (const { entries } of sortedTypes) {
579738
+ if (totalSystemChars <= systemMaxChars)
579739
+ break;
579740
+ for (const entry of entries) {
579741
+ if (indicesToRemove.has(entry.index))
579742
+ continue;
579743
+ indicesToRemove.add(entry.index);
579744
+ totalSystemChars -= entry.chars;
579745
+ if (totalSystemChars <= systemMaxChars)
579746
+ break;
579747
+ }
579748
+ }
579749
+ this._applySystemRemoval(messages2, indicesToRemove);
579750
+ }
579751
+ _applySystemRemoval(messages2, indices) {
579752
+ if (indices.size === 0)
579753
+ return;
579754
+ const sorted = [...indices].sort((a2, b) => b - a2);
579755
+ for (const idx of sorted) {
579756
+ messages2.splice(idx, 1);
579757
+ }
579758
+ }
579620
579759
  // ── Failing-approach detector (the "stop retrying variants" reflex) ───────
579621
579760
  // Encodes the behavior an effective agent uses and the dropbear 27× loop
579622
579761
  // lacked: when the SAME error recurs ~3× — especially while the same target
@@ -586745,6 +586884,7 @@ ${memoryLines.join("\n")}`
586745
586884
  this.proactivePrune(compacted, turn);
586746
586885
  this.microcompact(compacted, recentToolResults);
586747
586886
  this._insertContextFrame(compacted, await this._buildTurnContextFrame(turn, compacted, recentToolResults, environmentBlock));
586887
+ this.gcSystemMessages(compacted);
586748
586888
  let requestMessages = sanitizeHistoryThink(compacted);
586749
586889
  {
586750
586890
  const _limits = this.contextLimits();
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.448",
3
+ "version": "1.0.450",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.448",
9
+ "version": "1.0.450",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
@@ -502,9 +502,9 @@
502
502
  }
503
503
  },
504
504
  "node_modules/@ipld/dag-pb/node_modules/multiformats": {
505
- "version": "14.0.3",
506
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
507
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
505
+ "version": "14.0.4",
506
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
507
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
508
508
  "license": "Apache-2.0 OR MIT"
509
509
  },
510
510
  "node_modules/@ipshipyard/libp2p-auto-tls": {
@@ -553,9 +553,9 @@
553
553
  }
554
554
  },
555
555
  "node_modules/@ipshipyard/libp2p-auto-tls/node_modules/multiformats": {
556
- "version": "14.0.3",
557
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
558
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
556
+ "version": "14.0.4",
557
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
558
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
559
559
  "license": "Apache-2.0 OR MIT"
560
560
  },
561
561
  "node_modules/@ipshipyard/libp2p-auto-tls/node_modules/uint8arrays": {
@@ -765,9 +765,9 @@
765
765
  }
766
766
  },
767
767
  "node_modules/@libp2p/http-utils/node_modules/multiformats": {
768
- "version": "14.0.3",
769
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
770
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
768
+ "version": "14.0.4",
769
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
770
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
771
771
  "license": "Apache-2.0 OR MIT"
772
772
  },
773
773
  "node_modules/@libp2p/http-utils/node_modules/uint8arraylist": {
@@ -807,9 +807,9 @@
807
807
  }
808
808
  },
809
809
  "node_modules/@libp2p/http-websocket/node_modules/multiformats": {
810
- "version": "14.0.3",
811
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
812
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
810
+ "version": "14.0.4",
811
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
812
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
813
813
  "license": "Apache-2.0 OR MIT"
814
814
  },
815
815
  "node_modules/@libp2p/http-websocket/node_modules/uint8arraylist": {
@@ -1045,9 +1045,9 @@
1045
1045
  }
1046
1046
  },
1047
1047
  "node_modules/@libp2p/peer-record/node_modules/multiformats": {
1048
- "version": "14.0.3",
1049
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1050
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1048
+ "version": "14.0.4",
1049
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1050
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1051
1051
  "license": "Apache-2.0 OR MIT"
1052
1052
  },
1053
1053
  "node_modules/@libp2p/peer-record/node_modules/protons-runtime": {
@@ -1155,9 +1155,9 @@
1155
1155
  }
1156
1156
  },
1157
1157
  "node_modules/@libp2p/record/node_modules/multiformats": {
1158
- "version": "14.0.3",
1159
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1160
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1158
+ "version": "14.0.4",
1159
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1160
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1161
1161
  "license": "Apache-2.0 OR MIT"
1162
1162
  },
1163
1163
  "node_modules/@libp2p/record/node_modules/protons-runtime": {
@@ -1393,9 +1393,9 @@
1393
1393
  }
1394
1394
  },
1395
1395
  "node_modules/@libp2p/webrtc/node_modules/multiformats": {
1396
- "version": "14.0.3",
1397
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1398
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1396
+ "version": "14.0.4",
1397
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1398
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1399
1399
  "license": "Apache-2.0 OR MIT"
1400
1400
  },
1401
1401
  "node_modules/@libp2p/webrtc/node_modules/node-datachannel": {
@@ -1534,9 +1534,9 @@
1534
1534
  }
1535
1535
  },
1536
1536
  "node_modules/@multiformats/dns/node_modules/multiformats": {
1537
- "version": "14.0.3",
1538
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1539
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1537
+ "version": "14.0.4",
1538
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1539
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1540
1540
  "license": "Apache-2.0 OR MIT"
1541
1541
  },
1542
1542
  "node_modules/@multiformats/dns/node_modules/uint8arrays": {
@@ -1579,9 +1579,9 @@
1579
1579
  }
1580
1580
  },
1581
1581
  "node_modules/@multiformats/multiaddr/node_modules/multiformats": {
1582
- "version": "14.0.3",
1583
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1584
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1582
+ "version": "14.0.4",
1583
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1584
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1585
1585
  "license": "Apache-2.0 OR MIT"
1586
1586
  },
1587
1587
  "node_modules/@multiformats/multiaddr/node_modules/uint8-varint": {
@@ -1626,9 +1626,9 @@
1626
1626
  }
1627
1627
  },
1628
1628
  "node_modules/@multiformats/murmur3/node_modules/multiformats": {
1629
- "version": "14.0.3",
1630
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
1631
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
1629
+ "version": "14.0.4",
1630
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
1631
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
1632
1632
  "license": "Apache-2.0 OR MIT"
1633
1633
  },
1634
1634
  "node_modules/@multiformats/uri-to-multiaddr": {
@@ -3919,9 +3919,9 @@
3919
3919
  }
3920
3920
  },
3921
3921
  "node_modules/hamt-sharding/node_modules/multiformats": {
3922
- "version": "14.0.3",
3923
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
3924
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
3922
+ "version": "14.0.4",
3923
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
3924
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
3925
3925
  "license": "Apache-2.0 OR MIT"
3926
3926
  },
3927
3927
  "node_modules/hamt-sharding/node_modules/uint8arrays": {
@@ -4685,9 +4685,9 @@
4685
4685
  }
4686
4686
  },
4687
4687
  "node_modules/it-protobuf-stream/node_modules/multiformats": {
4688
- "version": "14.0.3",
4689
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.3.tgz",
4690
- "integrity": "sha512-l7FEUCJb3tx1UWeovywhaidQdOGQOOKTfl51G2y6CQbcOHe9dp3z90NHqQ3v2SKetKgkxwa3wI+2jsyJrjJjTg==",
4688
+ "version": "14.0.4",
4689
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.4.tgz",
4690
+ "integrity": "sha512-+SXItmOUWzT0kjlIfkZ4NawJaC9jW/mPlyn902V9Qgpc7YDwdEiwqbiZxTyvC0XWh1jZguXca3A/WQ+UOPRLUA==",
4691
4691
  "license": "Apache-2.0 OR MIT"
4692
4692
  },
4693
4693
  "node_modules/it-protobuf-stream/node_modules/uint8arraylist": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.448",
3
+ "version": "1.0.450",
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",