omnius 1.0.860 → 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 +2 -2
- package/dist/tui/native/worker.js +166 -0
- package/docs/DISCOVERY.json +213 -0
- package/docs/DISCOVERY.md +6 -0
- package/docs/guides/tui-workflows.md +38 -0
- package/docs/work-orders/evidence/native-tui-gpu-preflight-20261015.json +42 -0
- package/docs/work-orders/evidence/native-tui-history-benchmark-20261015.json +108 -0
- package/docs/work-orders/evidence/native-tui-model-live-20261015.json +141 -0
- package/docs/work-orders/evidence/native-tui-package-smoke-20261015.json +12 -0
- package/docs/work-orders/evidence/native-tui-pty-live-20261015.json +121 -0
- package/docs/work-orders/native-tui-renderer.md +93 -0
- package/npm-shrinkwrap.json +625 -45
- package/package.json +5 -2
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:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 37550582 bytes
|
|
4
|
+
sha256: cbbf911e09617b40f2d95070483b974031999049268f116c5ae20f36cb41d2db
|
|
@@ -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
|
+
}
|
package/docs/DISCOVERY.json
CHANGED
|
@@ -33447,6 +33447,186 @@
|
|
|
33447
33447
|
}
|
|
33448
33448
|
]
|
|
33449
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
|
+
},
|
|
33450
33630
|
{
|
|
33451
33631
|
"id": "guide.work-orders-evidence-opencode-all-free-audit-20261012",
|
|
33452
33632
|
"kind": "guide",
|
|
@@ -35192,6 +35372,39 @@
|
|
|
35192
35372
|
}
|
|
35193
35373
|
]
|
|
35194
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
|
+
},
|
|
35195
35408
|
{
|
|
35196
35409
|
"id": "guide.work-orders-omnius-context-engineering-behavior-fixes",
|
|
35197
35410
|
"kind": "guide",
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -546,6 +546,11 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
546
546
|
| `guide.work-orders-evidence-native-conversation-prompt-audit-20261012` | Native Conversation Prompt Audit 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-conversation-prompt-audit-20261012.json. |
|
|
547
547
|
| `guide.work-orders-evidence-native-goal-contract-probe-20261012` | Native Goal Contract Probe 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-goal-contract-probe-20261012.json. |
|
|
548
548
|
| `guide.work-orders-evidence-native-reconciliation-readonly-live-20261014` | Native Reconciliation Readonly Live 20261014 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-reconciliation-readonly-live-20261014.json. |
|
|
549
|
+
| `guide.work-orders-evidence-native-tui-gpu-preflight-20261015` | Native Tui Gpu Preflight 20261015 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-gpu-preflight-20261015.json. |
|
|
550
|
+
| `guide.work-orders-evidence-native-tui-history-benchmark-20261015` | Native Tui History Benchmark 20261015 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-history-benchmark-20261015.json. |
|
|
551
|
+
| `guide.work-orders-evidence-native-tui-model-live-20261015` | Native Tui Model Live 20261015 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-model-live-20261015.json. |
|
|
552
|
+
| `guide.work-orders-evidence-native-tui-package-smoke-20261015` | Native Tui Package Smoke 20261015 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-package-smoke-20261015.json. |
|
|
553
|
+
| `guide.work-orders-evidence-native-tui-pty-live-20261015` | Native Tui Pty Live 20261015 | Bundled Omnius documentation artifact: docs/work-orders/evidence/native-tui-pty-live-20261015.json. |
|
|
549
554
|
| `guide.work-orders-evidence-opencode-all-free-audit-20261012` | Opencode All Free Audit 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/opencode-all-free-audit-20261012.json. |
|
|
550
555
|
| `guide.work-orders-evidence-opencode-all-free-installed-verification-20261012` | Opencode All Free Installed Verification 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/opencode-all-free-installed-verification-20261012.json. |
|
|
551
556
|
| `guide.work-orders-evidence-opencode-installed-production-stream-live-20261012` | Opencode Installed Production Stream Live 20261012 | Bundled Omnius documentation artifact: docs/work-orders/evidence/opencode-installed-production-stream-live-20261012.json. |
|
|
@@ -593,6 +598,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
593
598
|
| `guide.work-orders-inference-fallback-bundle-20261012` | Inference Fallback Bundle 20261012 | Bundled Omnius documentation artifact: docs/work-orders/inference-fallback-bundle-20261012.json. |
|
|
594
599
|
| `guide.work-orders-inference-fallback-live-20261012` | Inference Fallback Live 20261012 | Bundled Omnius documentation artifact: docs/work-orders/inference-fallback-live-20261012.json. |
|
|
595
600
|
| `guide.work-orders-long-horizon-feature-delivery-wo-01-native-research-feature-workflow-uppercase` | WO-01 — Native research-to-feature workflow | Status: complete — repository implementation, twelve-scenario acceptance and scoped Git delivery. Authorized by the user request to bring the AIWG research-team mechanism into Omnius. Publication and live acceptance remain with the user. |
|
|
601
|
+
| `guide.work-orders-native-tui-renderer` | Native terminal rendering migration | 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. |
|
|
596
602
|
| `guide.work-orders-omnius-context-engineering-behavior-fixes` | Omnius Context Engineering Behavior Fixes | Source observation: current Omnius behavior while supervising a noclip/earth sidebar cleanup task. The observed run mixed internal cognitive-agent artifacts with user-task artifacts, repeated stale edit attempts after the file had changed, and overclaimed completion despite stale or missing verification. |
|
|
597
603
|
| `guide.work-orders-primary-inference-fallback-bundle-20261012` | Primary Inference Fallback Bundle 20261012 | Bundled Omnius documentation artifact: docs/work-orders/primary-inference-fallback-bundle-20261012.json. |
|
|
598
604
|
| `guide.work-orders-rapid-computer-use-20261011-architecture-source` | Open-Weight Rapid Computer Use: Decision Models + Moondream + Qwen3.8 | Single-file implementation and research package Reference date: 2026-10-11 Target: Linux/Windows desktop and Firefox/Chromium browsers; local inference; 3 × NVIDIA A100 80 GB PCIe Intended reader: engineering / autonomous implementation agent |
|
|
@@ -25,8 +25,26 @@ Shift+Enter inserts a newline in the prompt box and expands the input area. Ente
|
|
|
25
25
|
|
|
26
26
|
The input box should preserve Unicode line boundaries and avoid overwriting previous lower entries.
|
|
27
27
|
|
|
28
|
+
Page Up/Page Down and the mouse wheel browse conversation history. End returns
|
|
29
|
+
to the live response when the prompt is empty; while editing, it moves to the
|
|
30
|
+
end of the prompt. New output does not pull a scrolled viewport back to live.
|
|
31
|
+
|
|
28
32
|
## Terminal Compatibility
|
|
29
33
|
|
|
34
|
+
The interactive terminal uses OpenTUI, the native rendering engine used by
|
|
35
|
+
OpenCode. Omnius keeps its Earth palette, transparent terminal background,
|
|
36
|
+
header, conversation/tool cards, tasks panel, prompt box, and metrics row.
|
|
37
|
+
The package includes the Bun runtime used by the renderer; the agent and CLI
|
|
38
|
+
launcher continue to run on Node. Noninteractive commands do not start a
|
|
39
|
+
terminal renderer.
|
|
40
|
+
|
|
41
|
+
The renderer owns terminal painting in a separate process and receives only
|
|
42
|
+
changed, styled rows. Component formatting is composed into a retained screen
|
|
43
|
+
before rendering, so cursor controls and scroll regions never compete on the
|
|
44
|
+
physical terminal. Frames coalesce during input bursts, and a slow terminal
|
|
45
|
+
can hold only one unacknowledged frame. Menus share protocol-filtered input;
|
|
46
|
+
inherited terminal commands wait for the renderer to suspend before starting.
|
|
47
|
+
|
|
30
48
|
Header controls use background-filled square padding by default. Run `/color frill on` to enable ornamental Unicode ends when the terminal font includes Symbols for Legacy Computing glyphs.
|
|
31
49
|
|
|
32
50
|
Box-border color animation and gradient flow are disabled by default. Run `/color flow on` to enable them. `/color`, `/color status`, `/color frill status`, and `/color flow status` expose the current state. Both preferences persist in project/global Omnius settings, and `--local` stores only the current project override.
|
|
@@ -49,6 +67,26 @@ The bottom data row reports:
|
|
|
49
67
|
|
|
50
68
|
Sponsor consumer mode can alternate local and remote peer telemetry.
|
|
51
69
|
|
|
70
|
+
## Renderer Validation
|
|
71
|
+
|
|
72
|
+
After building the workspace, run the terminal fixture with:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
node scripts/test-tui-native-live.mjs --report /tmp/omnius-tui-live.json
|
|
76
|
+
node scripts/benchmark-tui-history.mjs --help
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The live fixture opens a real PTY and independently checks its screen with
|
|
80
|
+
xterm. It exercises 20,000 history lines, mouse bursts, tool expansion, editing,
|
|
81
|
+
menus, streaming, cancellation, resizing, terminal handoff, and worker cleanup.
|
|
82
|
+
It uses synthetic agent events by default and sends no model requests.
|
|
83
|
+
|
|
84
|
+
An optional real-model check requires `OMNIUS_TUI_LIVE_PREFLIGHT` to point to a
|
|
85
|
+
placement receipt containing `endpoint`, `model`, `gpu`, and `processes` with
|
|
86
|
+
runner `pid` and `gpu`. Set the matching `OMNIUS_TUI_LIVE_ENDPOINT` and
|
|
87
|
+
`OMNIUS_TUI_LIVE_MODEL` only after completing the live inference hardware gate
|
|
88
|
+
in AGENTS.md. The harness rechecks runner placement before requesting tokens.
|
|
89
|
+
|
|
52
90
|
## Mid-Task Steering
|
|
53
91
|
|
|
54
92
|
Added context and steering should pass through an intake layer that interprets the new requirement relative to the active task. It should not duplicate "Context added" text as prompt content or rely on hardcoded acknowledgements.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "http://127.0.0.1:11572",
|
|
3
|
+
"model": "robit/qwen3.8-27b-obliterated-e03:27b",
|
|
4
|
+
"gpu": "GPU-3538758b-6ba7-fa1b-a80c-e315a606c3f0",
|
|
5
|
+
"processes": [
|
|
6
|
+
{
|
|
7
|
+
"pid": 2505552,
|
|
8
|
+
"gpu": "GPU-3538758b-6ba7-fa1b-a80c-e315a606c3f0",
|
|
9
|
+
"vramMiB": 17398
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"residency": {
|
|
13
|
+
"models": [
|
|
14
|
+
{
|
|
15
|
+
"name": "robit/qwen3.8-27b-obliterated-e03:27b",
|
|
16
|
+
"model": "robit/qwen3.8-27b-obliterated-e03:27b",
|
|
17
|
+
"size": 16796446882,
|
|
18
|
+
"digest": "d185382bd866ef361e9825f1818451ca2694e25a4f503339cde4a8071f4544a3",
|
|
19
|
+
"details": {
|
|
20
|
+
"parent_model": "",
|
|
21
|
+
"format": "gguf",
|
|
22
|
+
"family": "qwen35",
|
|
23
|
+
"families": [
|
|
24
|
+
"qwen35"
|
|
25
|
+
],
|
|
26
|
+
"parameter_size": "26.9B",
|
|
27
|
+
"quantization_level": "Q4_K_M"
|
|
28
|
+
},
|
|
29
|
+
"expires_at": "2026-10-15T13:44:37.575625131-07:00",
|
|
30
|
+
"size_vram": 16796446882,
|
|
31
|
+
"context_length": 8192
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"zeroTokenLoad": {
|
|
36
|
+
"model": "robit/qwen3.8-27b-obliterated-e03:27b",
|
|
37
|
+
"created_at": "2026-10-15T20:39:37.575416815Z",
|
|
38
|
+
"response": "",
|
|
39
|
+
"done": true,
|
|
40
|
+
"done_reason": "load"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"measuredAt": "2026-10-15T20:38:37.644Z",
|
|
4
|
+
"scope": "CPU history/layout only; excludes native terminal painting, IPC, input latency, model inference, and backend work",
|
|
5
|
+
"method": "One run per version in independent Node processes; same transpiler/settings and built workspace dependencies; setup and warmup excluded from steady phase timings",
|
|
6
|
+
"limitation": "Wall time on a shared host; this is a reproducible regression workload, not a general end-to-end speed claim",
|
|
7
|
+
"host": {
|
|
8
|
+
"node": "v24.14.0",
|
|
9
|
+
"platform": "linux",
|
|
10
|
+
"arch": "x64",
|
|
11
|
+
"cpu": "AMD Ryzen Threadripper 7960X 24-Cores",
|
|
12
|
+
"loadavgBefore": [
|
|
13
|
+
4.22,
|
|
14
|
+
4.57,
|
|
15
|
+
5.06
|
|
16
|
+
],
|
|
17
|
+
"loadavgAfter": [
|
|
18
|
+
4.44,
|
|
19
|
+
4.61,
|
|
20
|
+
5.07
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"sources": {
|
|
24
|
+
"baselineCommit": "e54e7942700cf575f00b2142626168ed8c929f69",
|
|
25
|
+
"workingTreeHead": "e54e7942700cf575f00b2142626168ed8c929f69",
|
|
26
|
+
"beforeSha256": "6863f9ed3bfdeb69374c2a64fcae2ded1426941f93aaf4673b7bd45f27f527b0",
|
|
27
|
+
"afterSha256": "2823cfd18617d6aabf064a8a976aa07e50dc180ee99c9ebfd4f1113ddea4c9ab"
|
|
28
|
+
},
|
|
29
|
+
"settings": {
|
|
30
|
+
"historyLines": 9900,
|
|
31
|
+
"historyLimit": 10000,
|
|
32
|
+
"width": 80,
|
|
33
|
+
"viewportRows": 20,
|
|
34
|
+
"warmupFrames": 20,
|
|
35
|
+
"scrollFrames": 240,
|
|
36
|
+
"streamFrames": 120
|
|
37
|
+
},
|
|
38
|
+
"before": {
|
|
39
|
+
"seedMs": 16.0774,
|
|
40
|
+
"initialIndex": {
|
|
41
|
+
"totalMs": 72.4442,
|
|
42
|
+
"rowCountCalls": 9900,
|
|
43
|
+
"uncachedReflowCalls": 9900,
|
|
44
|
+
"totalRows": 19800
|
|
45
|
+
},
|
|
46
|
+
"warmup": {
|
|
47
|
+
"framesPerPhase": 20,
|
|
48
|
+
"scrollMs": 0.9803,
|
|
49
|
+
"streamingMs": 886.8761
|
|
50
|
+
},
|
|
51
|
+
"staticScrollWindows": {
|
|
52
|
+
"frames": 240,
|
|
53
|
+
"totalMs": 9.8759,
|
|
54
|
+
"medianMs": 0.0454,
|
|
55
|
+
"p95Ms": 0.0786,
|
|
56
|
+
"maxMs": 0.1041,
|
|
57
|
+
"rowCountCalls": 0,
|
|
58
|
+
"uncachedReflowCalls": 1848
|
|
59
|
+
},
|
|
60
|
+
"streamedAppendFrames": {
|
|
61
|
+
"frames": 120,
|
|
62
|
+
"totalMs": 5329.1815,
|
|
63
|
+
"medianMs": 43.9345,
|
|
64
|
+
"p95Ms": 48.188,
|
|
65
|
+
"maxMs": 52.4546,
|
|
66
|
+
"rowCountCalls": 1196840,
|
|
67
|
+
"uncachedReflowCalls": 1196840
|
|
68
|
+
},
|
|
69
|
+
"finalSourceLines": 10000,
|
|
70
|
+
"finalRows": 20000,
|
|
71
|
+
"checksum": 8756240
|
|
72
|
+
},
|
|
73
|
+
"after": {
|
|
74
|
+
"seedMs": 9.9809,
|
|
75
|
+
"initialIndex": {
|
|
76
|
+
"totalMs": 83.7702,
|
|
77
|
+
"rowCountCalls": 9900,
|
|
78
|
+
"uncachedReflowCalls": 9900,
|
|
79
|
+
"totalRows": 19800
|
|
80
|
+
},
|
|
81
|
+
"warmup": {
|
|
82
|
+
"framesPerPhase": 20,
|
|
83
|
+
"scrollMs": 0.5082,
|
|
84
|
+
"streamingMs": 0.5977
|
|
85
|
+
},
|
|
86
|
+
"staticScrollWindows": {
|
|
87
|
+
"frames": 240,
|
|
88
|
+
"totalMs": 4.3208,
|
|
89
|
+
"medianMs": 0.0168,
|
|
90
|
+
"p95Ms": 0.0263,
|
|
91
|
+
"maxMs": 0.0539,
|
|
92
|
+
"rowCountCalls": 0,
|
|
93
|
+
"uncachedReflowCalls": 0
|
|
94
|
+
},
|
|
95
|
+
"streamedAppendFrames": {
|
|
96
|
+
"frames": 120,
|
|
97
|
+
"totalMs": 18.3456,
|
|
98
|
+
"medianMs": 0.0234,
|
|
99
|
+
"p95Ms": 0.112,
|
|
100
|
+
"maxMs": 12.4383,
|
|
101
|
+
"rowCountCalls": 120,
|
|
102
|
+
"uncachedReflowCalls": 120
|
|
103
|
+
},
|
|
104
|
+
"finalSourceLines": 10000,
|
|
105
|
+
"finalRows": 20000,
|
|
106
|
+
"checksum": 8756240
|
|
107
|
+
}
|
|
108
|
+
}
|