omnius 1.0.859 → 1.0.861

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
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/index.js
3
- size: 37502243 bytes
4
- sha256: a96343966b01daadfb5e65d2c3e37f3925126949b4fba8bbc25bbef23f8b7510
3
+ size: 37550582 bytes
4
+ sha256: cbbf911e09617b40f2d95070483b974031999049268f116c5ae20f36cb41d2db
package/dist/library.js CHANGED
@@ -343141,8 +343141,7 @@ function createOpenCodeCompatibilityRequestHeaders(omniusVersion, sessionId) {
343141
343141
  "x-session-affinity": session,
343142
343142
  "X-Session-Id": session,
343143
343143
  "x-opencode-session": session,
343144
- "x-opencode-project": createHash43("sha1").update("omnius").digest("hex"),
343145
- "x-opencode-request": compatibilityIdentifier("msg_", false)
343144
+ "x-opencode-project": createHash43("sha1").update("omnius").digest("hex")
343146
343145
  };
343147
343146
  }
343148
343147
  var OPENCODE_COMPATIBILITY_SYSTEM_PREFIX = `You are an AI agent running in OpenCode, a coding agent harness. Help the user accomplish their goals using the tools you have available.
@@ -343466,7 +343465,7 @@ function parseKeylessInferenceRegistry(html) {
343466
343465
  var rows = [
343467
343466
  ["muse-spark-1.3-contributor-free", "Muse Spark 1.3 Free", 1048576, 131072, void 0, true, true],
343468
343467
  ["step-5-preview-free", "Step 5 Preview Free", 1e6, 65536, 1e6, true],
343469
- ["ling-3.1-flash-free", "Ling 3.1 Flash Free", 262144, 32768, void 0, false],
343468
+ ["nemotron-3-ultra-free", "Nemotron 3 Ultra Free", 1e6, 128e3, void 0, void 0],
343470
343469
  ["mimo-v2.6-flash-free", "MiMo-V2.6-Flash Free", 2e5, 32e3, void 0, void 0],
343471
343470
  ["nemotron-3.5-lightning-free", "Nemotron 3.5 Lightning Free", 262144, 262144, void 0, true],
343472
343471
  ["big-pickle", "Big Pickle", 2e5, 32e3, 16e4, true],
@@ -345983,7 +345982,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
345983
345982
  continue;
345984
345983
  }
345985
345984
  this.lifecycle(request, "failed", candidate, error);
345986
- if (this.restrictedProvider(candidate, error))
345985
+ if (this.restrictedModel(candidate, error))
345987
345986
  continue;
345988
345987
  if (errorChain(error).some((value) => value instanceof AttemptTimeout && value.deadlineKind === "remote_aggregate"))
345989
345988
  break;
@@ -346113,7 +346112,7 @@ var RemoteInferenceFallback = class _RemoteInferenceFallback {
346113
346112
  this.lifecycle(request, "failed", candidate, error, frames);
346114
346113
  if (emitted)
346115
346114
  throw new StreamInterruptedError(safeFailure(error, request, candidate, frames));
346116
- if (this.restrictedProvider(candidate, error))
346115
+ if (this.restrictedModel(candidate, error))
346117
346116
  continue;
346118
346117
  if (errorChain(error).some((value) => value instanceof AttemptTimeout && value.deadlineKind === "remote_aggregate"))
346119
346118
  break;
@@ -346725,10 +346724,10 @@ ${line}`).join("");
346725
346724
  rateLimited
346726
346725
  });
346727
346726
  }
346728
- restrictedProvider(route, error) {
346727
+ restrictedModel(route, error) {
346729
346728
  if (route.baseUrl !== OPENCODE_INFERENCE_BASE_URL || route.keyless?.clientIdentity !== "opencode" || !errorChain(error).some((value) => value instanceof InferenceProviderAccessError))
346730
346729
  return false;
346731
- route.accessRestricted = true;
346730
+ route.modelAccessRestricted = true;
346732
346731
  return true;
346733
346732
  }
346734
346733
  async *retryableCandidates(request, deadline) {
@@ -346751,7 +346750,6 @@ ${line}`).join("");
346751
346750
  yield bounded3;
346752
346751
  }
346753
346752
  }.bind(this);
346754
- const restrictedOrigins = /* @__PURE__ */ new Set();
346755
346753
  const waiting = /* @__PURE__ */ new Map();
346756
346754
  const attempts = /* @__PURE__ */ new Map();
346757
346755
  const priority = /* @__PURE__ */ new Map();
@@ -346762,8 +346760,6 @@ ${line}`).join("");
346762
346760
  waiting.set(key, candidate);
346763
346761
  };
346764
346762
  for await (const candidate of candidates()) {
346765
- if (restrictedOrigins.has(new URL(candidate.baseUrl).origin))
346766
- continue;
346767
346763
  const key = routeKey(candidate);
346768
346764
  if (!priority.has(key))
346769
346765
  priority.set(key, priority.size);
@@ -346779,26 +346775,20 @@ ${line}`).join("");
346779
346775
  return;
346780
346776
  attempts.set(key, 1);
346781
346777
  yield candidate;
346782
- if (candidate.accessRestricted) {
346783
- restrictedOrigins.add(new URL(candidate.baseUrl).origin);
346778
+ if (candidate.modelAccessRestricted)
346784
346779
  continue;
346785
- }
346786
- while (candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346780
+ while (!candidate.modelAccessRestricted && candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346787
346781
  candidate.schemaRecoveryPending = false;
346788
346782
  schemaRetries.set(key, (schemaRetries.get(key) ?? 0) + 1);
346789
346783
  this.fence(request);
346790
346784
  if (this.compatible(request, candidate))
346791
346785
  yield candidate;
346792
346786
  }
346793
- defer(candidate);
346787
+ if (!candidate.modelAccessRestricted)
346788
+ defer(candidate);
346794
346789
  }
346795
346790
  while (waiting.size && this.now() < deadline) {
346796
346791
  this.fence(request);
346797
- for (const [key2, candidate2] of waiting)
346798
- if (restrictedOrigins.has(new URL(candidate2.baseUrl).origin))
346799
- waiting.delete(key2);
346800
- if (!waiting.size)
346801
- return;
346802
346792
  const entries = [...waiting];
346803
346793
  const ready = entries.filter(([, candidate2]) => (routeCooldown(candidate2, request)?.until ?? 0) <= this.now());
346804
346794
  const [key, candidate] = ready.length ? ready.sort(([a], [b]) => priority.get(a) - priority.get(b))[0] : entries.sort(([, a], [, b]) => (routeCooldown(a, request)?.until ?? 0) - (routeCooldown(b, request)?.until ?? 0))[0];
@@ -346821,18 +346811,17 @@ ${line}`).join("");
346821
346811
  waiting.delete(key);
346822
346812
  attempts.set(key, (attempts.get(key) ?? 0) + 1);
346823
346813
  yield candidate;
346824
- if (candidate.accessRestricted) {
346825
- restrictedOrigins.add(new URL(candidate.baseUrl).origin);
346814
+ if (candidate.modelAccessRestricted)
346826
346815
  continue;
346827
- }
346828
- while (candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346816
+ while (!candidate.modelAccessRestricted && candidate.schemaRecoveryPending && (schemaRetries.get(key) ?? 0) < SUPPORTED_PROVIDER_SCHEMA_ADAPTATIONS.length && this.now() < deadline) {
346829
346817
  candidate.schemaRecoveryPending = false;
346830
346818
  schemaRetries.set(key, (schemaRetries.get(key) ?? 0) + 1);
346831
346819
  this.fence(request);
346832
346820
  if (this.compatible(request, candidate))
346833
346821
  yield candidate;
346834
346822
  }
346835
- defer(candidate);
346823
+ if (!candidate.modelAccessRestricted)
346824
+ defer(candidate);
346836
346825
  }
346837
346826
  }
346838
346827
  async *candidates(request, deadline, includeCooling = false) {
@@ -347006,10 +346995,9 @@ ${line}`).join("");
347006
346995
  availabilityCaches.set(fetcher, { until: this.now() + (refreshed ? 3e5 : 15e3), ids: available });
347007
346996
  }
347008
346997
  }
347009
- const availableIds = available === void 0 ? void 0 : new Set(available);
347010
346998
  const anonymousTier = provider.anonymousTier === true && provider.id === "ovh_ai_endpoints" && route.baseUrl === "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1" && !route.apiKey && !provider.anonymousAuthorization;
347011
346999
  const zeroPrice = (value) => (typeof value === "number" || typeof value === "string" && value.trim().length > 0) && Number.isFinite(Number(value)) && Number(value) === 0;
347012
- const models = raw.data.filter((model) => chatCatalogModel(model, anonymousTier) && (!kiloCatalog || object12(model.pricing) && zeroPrice(model.pricing.prompt) && zeroPrice(model.pricing.completion) && Object.values(model.pricing).every(zeroPrice)) && (!availableIds || availableIds.has(String(model.id))));
347000
+ const models = raw.data.filter((model) => chatCatalogModel(model, anonymousTier) && (!kiloCatalog || object12(model.pricing) && zeroPrice(model.pricing.prompt) && zeroPrice(model.pricing.completion) && Object.values(model.pricing).every(zeroPrice)));
347013
347001
  const unique4 = [...new Map(models.map((model) => [String(model.id), model])).values()];
347014
347002
  const preferredModel = this.builtInPrimaryRequest && openCodeCatalog ? this.primary.model : route.model;
347015
347003
  const preferred = unique4.find((model) => model.id === preferredModel);
@@ -347027,6 +347015,8 @@ ${line}`).join("");
347027
347015
  candidate.nativeStructuredOutput = false;
347028
347016
  else if (selected.json_mode === true || capabilities2?.json_mode === true)
347029
347017
  candidate.nativeStructuredOutput = true;
347018
+ else if (openCodeCatalog)
347019
+ candidate.nativeStructuredOutput = false;
347030
347020
  if (request.tools.length && (selected.tools_calling === false || capabilities2?.tools === false || Array.isArray(selected.supported_parameters) && !selected.supported_parameters.includes("tools")))
347031
347021
  continue;
347032
347022
  const nestedWindow = object12(selected.context_window) ? selected.context_window.tokens : selected.context_window;
@@ -0,0 +1,166 @@
1
+ // packages/cli/src/tui/native/worker.ts
2
+ import { createWriteStream } from "node:fs";
3
+ import { createInterface } from "node:readline";
4
+ import { PassThrough } from "node:stream";
5
+ import {
6
+ createCliRenderer,
7
+ NativeSession,
8
+ RGBA,
9
+ StyledText,
10
+ TextRenderable
11
+ } from "@opentui/core";
12
+ var replies = createWriteStream("", { fd: 3, autoClose: false });
13
+ var reply = (message) => replies.write(JSON.stringify(message) + "\n");
14
+ var terminalInput = new PassThrough();
15
+ var rows = [];
16
+ var renderer;
17
+ var session;
18
+ var stopping = false;
19
+ var suspended = false;
20
+ var lastCursor = { row: 0, col: 0, visible: false };
21
+ var colors = /* @__PURE__ */ new Map();
22
+ function color(value, background) {
23
+ if (value === void 0)
24
+ return background ? RGBA.defaultBackground() : RGBA.defaultForeground();
25
+ const cached = colors.get(value);
26
+ if (cached) return cached;
27
+ const parsed = value.startsWith("index:") ? RGBA.fromIndex(Number(value.slice(6))) : RGBA.fromHex(value);
28
+ if (colors.size >= 4096) colors.delete(colors.keys().next().value);
29
+ colors.set(value, parsed);
30
+ return parsed;
31
+ }
32
+ function applyFrame(frame) {
33
+ const ui = renderer;
34
+ if (ui.terminalWidth !== frame.columns || ui.terminalHeight !== frame.rows)
35
+ ui.resize(frame.columns, frame.rows);
36
+ while (rows.length > frame.rows) rows.pop().destroy();
37
+ while (rows.length < frame.rows) {
38
+ const row = rows.length;
39
+ const text = new TextRenderable(ui, {
40
+ id: `omnius-row-${row}`,
41
+ position: "absolute",
42
+ left: 0,
43
+ top: row,
44
+ width: frame.columns,
45
+ height: 1,
46
+ wrapMode: "none",
47
+ truncate: true,
48
+ selectable: false,
49
+ fg: RGBA.defaultForeground(),
50
+ bg: RGBA.defaultBackground()
51
+ });
52
+ rows.push(text);
53
+ ui.root.add(text);
54
+ }
55
+ for (const text of rows) text.width = frame.columns;
56
+ for (const line of frame.lines) {
57
+ const text = rows[line.row];
58
+ if (!text) continue;
59
+ text.content = new StyledText(line.spans.map((span) => ({
60
+ __isChunk: true,
61
+ text: span.text,
62
+ fg: color(span.fg, false),
63
+ bg: color(span.bg, true),
64
+ attributes: span.attributes
65
+ })));
66
+ }
67
+ lastCursor = frame.cursor;
68
+ ui.setCursorPosition(lastCursor.col + 1, lastCursor.row + 1, lastCursor.visible);
69
+ for (const effect of frame.effects) {
70
+ if (!session.write(Buffer.from(effect)))
71
+ throw new Error("Native terminal control queue is full");
72
+ }
73
+ }
74
+ async function present() {
75
+ const ui = renderer;
76
+ ui.requestRender();
77
+ await ui.idle();
78
+ }
79
+ async function close() {
80
+ if (stopping) return;
81
+ stopping = true;
82
+ if (renderer) {
83
+ renderer.destroy();
84
+ await renderer.closed;
85
+ }
86
+ }
87
+ async function command(message) {
88
+ if (message.type === "input") {
89
+ terminalInput.write(Buffer.from(message.data, "base64"));
90
+ return;
91
+ }
92
+ if (message.type === "frame") {
93
+ if (!suspended) {
94
+ applyFrame(message.frame);
95
+ await present();
96
+ }
97
+ } else if (message.type === "suspend") {
98
+ await renderer.suspend();
99
+ suspended = true;
100
+ } else if (message.type === "resume") {
101
+ await renderer.resume();
102
+ suspended = false;
103
+ } else if (message.type === "stop") {
104
+ await close();
105
+ }
106
+ reply({ type: "ack", id: message.id });
107
+ if (message.type === "stop") replies.end(() => process.exit(0));
108
+ }
109
+ async function fail(error) {
110
+ reply({ type: "error", message: error instanceof Error ? error.message : String(error) });
111
+ await close().catch(() => {
112
+ });
113
+ replies.end(() => process.exit(1));
114
+ }
115
+ try {
116
+ session = new NativeSession(process.stdout);
117
+ renderer = await createCliRenderer({
118
+ nativeSession: session,
119
+ stdin: terminalInput,
120
+ stdout: process.stdout,
121
+ exitOnCtrlC: false,
122
+ exitSignals: [],
123
+ useMouse: false,
124
+ enableMouseMovement: false,
125
+ useKittyKeyboard: null,
126
+ screenMode: "alternate-screen",
127
+ consoleMode: "disabled",
128
+ externalOutputMode: "passthrough",
129
+ backgroundColor: RGBA.defaultBackground(),
130
+ openConsoleOnError: false,
131
+ targetFps: 60,
132
+ maxFps: 60,
133
+ clearOnShutdown: false
134
+ });
135
+ renderer.setCursorStyle({ style: "block", blinking: true });
136
+ renderer.on("error", (event) => {
137
+ void fail(event instanceof Error ? event : event.error ?? new Error("OpenTUI render failed"));
138
+ });
139
+ let pending = Promise.resolve();
140
+ const controls = createInterface({ input: process.stdin, crlfDelay: Infinity });
141
+ controls.on("line", (line) => {
142
+ let message;
143
+ try {
144
+ message = JSON.parse(line);
145
+ } catch (error) {
146
+ void fail(error);
147
+ return;
148
+ }
149
+ if (message.type === "input") {
150
+ terminalInput.write(Buffer.from(message.data, "base64"));
151
+ return;
152
+ }
153
+ pending = pending.then(() => command(message)).catch(fail);
154
+ });
155
+ controls.on("close", () => {
156
+ void pending.then(close).finally(() => process.exit(0));
157
+ });
158
+ process.on("SIGTERM", () => {
159
+ void close().finally(() => process.exit(0));
160
+ });
161
+ process.on("SIGINT", () => {
162
+ });
163
+ reply({ type: "ready" });
164
+ } catch (error) {
165
+ await fail(error);
166
+ }
@@ -33092,6 +33092,42 @@
33092
33092
  }
33093
33093
  ]
33094
33094
  },
33095
+ {
33096
+ "id": "guide.work-orders-evidence-genuine-opencode-access-repair-20261014",
33097
+ "kind": "guide",
33098
+ "title": "Genuine Opencode Access Repair 20261014",
33099
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json.",
33100
+ "keywords": [
33101
+ "work",
33102
+ "orders",
33103
+ "evidence",
33104
+ "genuine",
33105
+ "opencode",
33106
+ "access",
33107
+ "repair",
33108
+ "20261014",
33109
+ "json"
33110
+ ],
33111
+ "maturity": "internal",
33112
+ "audiences": [
33113
+ "maintainer",
33114
+ "large-context-agent"
33115
+ ],
33116
+ "layer": "documentation",
33117
+ "interfaces": [
33118
+ {
33119
+ "type": "file",
33120
+ "target": "docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json"
33121
+ }
33122
+ ],
33123
+ "references": [
33124
+ {
33125
+ "type": "documentation",
33126
+ "target": "docs/work-orders/evidence/genuine-opencode-access-repair-20261014.json",
33127
+ "relation": "canonical-artifact"
33128
+ }
33129
+ ]
33130
+ },
33095
33131
  {
33096
33132
  "id": "guide.work-orders-evidence-installed-fallback-verification-20261012",
33097
33133
  "kind": "guide",
@@ -33411,6 +33447,186 @@
33411
33447
  }
33412
33448
  ]
33413
33449
  },
33450
+ {
33451
+ "id": "guide.work-orders-evidence-native-tui-gpu-preflight-20261015",
33452
+ "kind": "guide",
33453
+ "title": "Native Tui Gpu Preflight 20261015",
33454
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-gpu-preflight-20261015.json.",
33455
+ "keywords": [
33456
+ "work",
33457
+ "orders",
33458
+ "evidence",
33459
+ "native",
33460
+ "tui",
33461
+ "gpu",
33462
+ "preflight",
33463
+ "20261015",
33464
+ "json"
33465
+ ],
33466
+ "maturity": "internal",
33467
+ "audiences": [
33468
+ "maintainer",
33469
+ "large-context-agent"
33470
+ ],
33471
+ "layer": "documentation",
33472
+ "interfaces": [
33473
+ {
33474
+ "type": "file",
33475
+ "target": "docs/work-orders/evidence/native-tui-gpu-preflight-20261015.json"
33476
+ }
33477
+ ],
33478
+ "references": [
33479
+ {
33480
+ "type": "documentation",
33481
+ "target": "docs/work-orders/evidence/native-tui-gpu-preflight-20261015.json",
33482
+ "relation": "canonical-artifact"
33483
+ }
33484
+ ]
33485
+ },
33486
+ {
33487
+ "id": "guide.work-orders-evidence-native-tui-history-benchmark-20261015",
33488
+ "kind": "guide",
33489
+ "title": "Native Tui History Benchmark 20261015",
33490
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-history-benchmark-20261015.json.",
33491
+ "keywords": [
33492
+ "work",
33493
+ "orders",
33494
+ "evidence",
33495
+ "native",
33496
+ "tui",
33497
+ "history",
33498
+ "benchmark",
33499
+ "20261015",
33500
+ "json"
33501
+ ],
33502
+ "maturity": "internal",
33503
+ "audiences": [
33504
+ "maintainer",
33505
+ "large-context-agent"
33506
+ ],
33507
+ "layer": "documentation",
33508
+ "interfaces": [
33509
+ {
33510
+ "type": "file",
33511
+ "target": "docs/work-orders/evidence/native-tui-history-benchmark-20261015.json"
33512
+ }
33513
+ ],
33514
+ "references": [
33515
+ {
33516
+ "type": "documentation",
33517
+ "target": "docs/work-orders/evidence/native-tui-history-benchmark-20261015.json",
33518
+ "relation": "canonical-artifact"
33519
+ }
33520
+ ]
33521
+ },
33522
+ {
33523
+ "id": "guide.work-orders-evidence-native-tui-model-live-20261015",
33524
+ "kind": "guide",
33525
+ "title": "Native Tui Model Live 20261015",
33526
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-model-live-20261015.json.",
33527
+ "keywords": [
33528
+ "work",
33529
+ "orders",
33530
+ "evidence",
33531
+ "native",
33532
+ "tui",
33533
+ "model",
33534
+ "live",
33535
+ "20261015",
33536
+ "json"
33537
+ ],
33538
+ "maturity": "internal",
33539
+ "audiences": [
33540
+ "maintainer",
33541
+ "large-context-agent"
33542
+ ],
33543
+ "layer": "documentation",
33544
+ "interfaces": [
33545
+ {
33546
+ "type": "file",
33547
+ "target": "docs/work-orders/evidence/native-tui-model-live-20261015.json"
33548
+ }
33549
+ ],
33550
+ "references": [
33551
+ {
33552
+ "type": "documentation",
33553
+ "target": "docs/work-orders/evidence/native-tui-model-live-20261015.json",
33554
+ "relation": "canonical-artifact"
33555
+ }
33556
+ ]
33557
+ },
33558
+ {
33559
+ "id": "guide.work-orders-evidence-native-tui-package-smoke-20261015",
33560
+ "kind": "guide",
33561
+ "title": "Native Tui Package Smoke 20261015",
33562
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-package-smoke-20261015.json.",
33563
+ "keywords": [
33564
+ "work",
33565
+ "orders",
33566
+ "evidence",
33567
+ "native",
33568
+ "tui",
33569
+ "package",
33570
+ "smoke",
33571
+ "20261015",
33572
+ "json"
33573
+ ],
33574
+ "maturity": "internal",
33575
+ "audiences": [
33576
+ "maintainer",
33577
+ "large-context-agent"
33578
+ ],
33579
+ "layer": "documentation",
33580
+ "interfaces": [
33581
+ {
33582
+ "type": "file",
33583
+ "target": "docs/work-orders/evidence/native-tui-package-smoke-20261015.json"
33584
+ }
33585
+ ],
33586
+ "references": [
33587
+ {
33588
+ "type": "documentation",
33589
+ "target": "docs/work-orders/evidence/native-tui-package-smoke-20261015.json",
33590
+ "relation": "canonical-artifact"
33591
+ }
33592
+ ]
33593
+ },
33594
+ {
33595
+ "id": "guide.work-orders-evidence-native-tui-pty-live-20261015",
33596
+ "kind": "guide",
33597
+ "title": "Native Tui Pty Live 20261015",
33598
+ "summary": "Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-pty-live-20261015.json.",
33599
+ "keywords": [
33600
+ "work",
33601
+ "orders",
33602
+ "evidence",
33603
+ "native",
33604
+ "tui",
33605
+ "pty",
33606
+ "live",
33607
+ "20261015",
33608
+ "json"
33609
+ ],
33610
+ "maturity": "internal",
33611
+ "audiences": [
33612
+ "maintainer",
33613
+ "large-context-agent"
33614
+ ],
33615
+ "layer": "documentation",
33616
+ "interfaces": [
33617
+ {
33618
+ "type": "file",
33619
+ "target": "docs/work-orders/evidence/native-tui-pty-live-20261015.json"
33620
+ }
33621
+ ],
33622
+ "references": [
33623
+ {
33624
+ "type": "documentation",
33625
+ "target": "docs/work-orders/evidence/native-tui-pty-live-20261015.json",
33626
+ "relation": "canonical-artifact"
33627
+ }
33628
+ ]
33629
+ },
33414
33630
  {
33415
33631
  "id": "guide.work-orders-evidence-opencode-all-free-audit-20261012",
33416
33632
  "kind": "guide",
@@ -35156,6 +35372,39 @@
35156
35372
  }
35157
35373
  ]
35158
35374
  },
35375
+ {
35376
+ "id": "guide.work-orders-native-tui-renderer",
35377
+ "kind": "guide",
35378
+ "title": "Native terminal rendering migration",
35379
+ "summary": "Omnius now uses @opentui/core@0.6.6, the native terminal engine used by OpenCode. The agent/CLI remains on Node >=22; a packaged Bun 1.3.14 process owns OpenTUI and the physical terminal. This avoids loading Bun/Node-26 FFI in the existing Node backend or changing its native SQLite and supervisor runtime.",
35380
+ "keywords": [
35381
+ "work",
35382
+ "orders",
35383
+ "native",
35384
+ "tui",
35385
+ "renderer",
35386
+ "md"
35387
+ ],
35388
+ "maturity": "internal",
35389
+ "audiences": [
35390
+ "maintainer",
35391
+ "large-context-agent"
35392
+ ],
35393
+ "layer": "documentation",
35394
+ "interfaces": [
35395
+ {
35396
+ "type": "file",
35397
+ "target": "docs/work-orders/native-tui-renderer.md"
35398
+ }
35399
+ ],
35400
+ "references": [
35401
+ {
35402
+ "type": "documentation",
35403
+ "target": "docs/work-orders/native-tui-renderer.md",
35404
+ "relation": "canonical-artifact"
35405
+ }
35406
+ ]
35407
+ },
35159
35408
  {
35160
35409
  "id": "guide.work-orders-omnius-context-engineering-behavior-fixes",
35161
35410
  "kind": "guide",
@@ -39141,7 +39390,7 @@
39141
39390
  "id": "guide.work-orders-wo-builtin-provider-authorized-access-20261014-uppercase",
39142
39391
  "kind": "guide",
39143
39392
  "title": "Built-in provider authorized access — 2026-10-14",
39144
- "summary": "Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Implementation and verification are complete; the live remote-access prerequisite remains unresolved. Live successful remote infer",
39393
+ "summary": "Status: authenticated route implemented; full clean build, current shared-worktree build, and 685 combined focused tests passed. Bundling, a 604-file tarball audit with zero warnings, and a compiler-free fresh npm install passed. Those implementation checks remain valid. Subsequent genuine-client and wire controls established that public access works and Omn",
39145
39394
  "keywords": [
39146
39395
  "work",
39147
39396
  "orders",
@@ -39386,6 +39635,41 @@
39386
39635
  }
39387
39636
  ]
39388
39637
  },
39638
+ {
39639
+ "id": "guide.work-orders-wo-genuine-opencode-access-20261014-uppercase",
39640
+ "kind": "guide",
39641
+ "title": "Genuine OpenCode access and source compatibility — 2026-10-14",
39642
+ "summary": "Status: implemented and verified against the exact scoped source snapshot. All nine active free models passed live bundled Telegram attention, reply generation and review. Actual automatic failover and native tool continuations passed. No mocked inference reply establishes acceptance.",
39643
+ "keywords": [
39644
+ "work",
39645
+ "orders",
39646
+ "WO",
39647
+ "genuine",
39648
+ "opencode",
39649
+ "access",
39650
+ "20261014",
39651
+ "md"
39652
+ ],
39653
+ "maturity": "internal",
39654
+ "audiences": [
39655
+ "maintainer",
39656
+ "large-context-agent"
39657
+ ],
39658
+ "layer": "documentation",
39659
+ "interfaces": [
39660
+ {
39661
+ "type": "file",
39662
+ "target": "docs/work-orders/WO-genuine-opencode-access-20261014.md"
39663
+ }
39664
+ ],
39665
+ "references": [
39666
+ {
39667
+ "type": "documentation",
39668
+ "target": "docs/work-orders/WO-genuine-opencode-access-20261014.md",
39669
+ "relation": "canonical-artifact"
39670
+ }
39671
+ ]
39672
+ },
39389
39673
  {
39390
39674
  "id": "guide.work-orders-wo-inference-fallback-20261012-uppercase",
39391
39675
  "kind": "guide",
@@ -39496,7 +39780,7 @@
39496
39780
  "id": "guide.work-orders-wo-local-admission-provider-access-20261014-uppercase",
39497
39781
  "kind": "guide",
39498
39782
  "title": "Local admission and remote access recovery — 2026-10-14",
39499
- "summary": "Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Authorized remote access remains unresolved. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.",
39783
+ "summary": "Status: local admission/access classification repair verified and delivered in 539cf00e; TUI/Runner producers verified and committed in a3fd9bab. Remote public access was subsequently diagnosed and repaired in genuine-client validation. Do not reset operator configuration or restart the live Telegram/TUI session as part of validation.",
39500
39784
  "keywords": [
39501
39785
  "work",
39502
39786
  "orders",