omnius 1.0.862 → 1.0.864
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/assets/tray/omnius-checking.ico +0 -0
- package/assets/tray/omnius-checking.png +0 -0
- package/assets/tray/omnius-checking.svg +7 -4
- package/assets/tray/omnius-offline.ico +0 -0
- package/assets/tray/omnius-offline.png +0 -0
- package/assets/tray/omnius-offline.svg +6 -4
- package/assets/tray/omnius-online.ico +0 -0
- package/assets/tray/omnius-online.png +0 -0
- package/assets/tray/omnius-online.svg +5 -4
- package/dist/index.js +2 -2
- package/dist/library.js +11 -11
- package/dist/tui/native/worker.js +3569 -315
- package/docs/DISCOVERY.json +2080 -451
- package/docs/DISCOVERY.md +48 -2
- package/docs/work-orders/desktop-projects.md +42 -0
- package/docs/work-orders/evidence/desktop-indicator-registration-20261016.json +23 -0
- package/docs/work-orders/evidence/inference-device-policy-readonly-20261016.json +56 -0
- package/docs/work-orders/evidence/instrument-100x30.png +0 -0
- package/docs/work-orders/evidence/instrument-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-160x48.png +0 -0
- package/docs/work-orders/evidence/instrument-60x20.png +0 -0
- package/docs/work-orders/evidence/instrument-80x24.png +0 -0
- package/docs/work-orders/evidence/instrument-clean-transcript-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-collapse-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-devices-expanded-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-divider-collapsed-160x48.png +0 -0
- package/docs/work-orders/evidence/instrument-divider-resized-160x48.png +0 -0
- package/docs/work-orders/evidence/instrument-help-scroll-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-package-artifact-20261016.json +18 -0
- package/docs/work-orders/evidence/instrument-package-install-20261016.json +69 -0
- package/docs/work-orders/evidence/instrument-popup-api-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-api-input-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-config-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-dark-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-dark-60x20.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-light-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-model-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-popup-network-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-production-terminal-live.json +11818 -0
- package/docs/work-orders/evidence/instrument-report-broker-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-report-gpu-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-report-stats-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-semantic-components-20261016-updated.json +80 -0
- package/docs/work-orders/evidence/instrument-semantic-components-20261016.json +76 -0
- package/docs/work-orders/evidence/instrument-targeted-verification-20261016-updated.json +430 -0
- package/docs/work-orders/evidence/instrument-targeted-verification-20261016.json +408 -0
- package/docs/work-orders/evidence/instrument-terminal-light-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-vim-composer-120x36.png +0 -0
- package/docs/work-orders/evidence/tray-native-host-checking.png +0 -0
- package/docs/work-orders/evidence/tray-native-host-dark.png +0 -0
- package/docs/work-orders/evidence/tray-native-host-offline.png +0 -0
- package/docs/work-orders/evidence/tray-native-host.png +0 -0
- package/docs/work-orders/evidence/tray-project-3.png +0 -0
- package/docs/work-orders/evidence/tray-project-4.png +0 -0
- package/docs/work-orders/evidence/tray-project-5.png +0 -0
- package/docs/work-orders/evidence/tray-projects-live.json +338 -0
- package/docs/work-orders/evidence/tray-projects-menu.png +0 -0
- package/docs/work-orders/instrument-command-surface-audit.md +304 -0
- package/docs/work-orders/instrument-tui.md +156 -0
- package/docs/work-orders/native-tui-renderer.md +8 -6
- package/npm-shrinkwrap.json +6 -6
- package/package.json +1 -1
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# Instrument command and menu surface audit
|
|
2
|
+
|
|
3
|
+
Date: 2026-10-16. Scope: terminal presentation of every built-in registry entry, dispatcher identifier, menu adapter and nested input path; source inspection is separate from behavioral execution.
|
|
4
|
+
|
|
5
|
+
## Coverage and method
|
|
6
|
+
|
|
7
|
+
The current registry contains **119 canonical entries**, **106 implemented** and **13 planned**. Its **356 signatures** comprise 342 implemented signatures and 14 planned signatures. There are **169 unique slash identifiers** including aliases: 155 implemented identifiers and 14 planned identifiers. These counts come from transpiling and evaluating only the metadata-only command-registry.ts module, without importing command execution, starting services or requesting inference.
|
|
8
|
+
|
|
9
|
+
A TypeScript AST pass then mapped every registry command to commands.ts: **102 dispatcher groups / 153 switch identifiers**, **14 registerSlashCommand call sites** (six eager module registrations, eight lazy registrations), and **61 direct tuiSelect call sites**. /usage and /insights are eager dynamic handlers; other implemented canonical entries have switch cases. Eager /access, /host and /network registrations take priority over their compatibility switch cases. The registry includes all switch identifiers; none is unregistered. Some separate canonical entries intentionally share a dispatcher group (/stats and /metrics, /style and /personality, /bless and /full-send-bless).
|
|
10
|
+
|
|
11
|
+
The command-local selector sites are indexed below. The additional inspected menu modules contain **33 further tuiSelect call sites**. Item rows are runtime data (models, devices, keys, files, skills, memory, peers), so their count varies; every item enters the same NativeModalSpec/NativeSelectRenderable path. This audits that shared path rather than pretending to execute destructive, privileged, model-loading, network-notifying or service commands.
|
|
12
|
+
|
|
13
|
+
## Shared presentation families
|
|
14
|
+
|
|
15
|
+
| Code | Presentation and ownership |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| S | tuiSelect → NativeModalSpec(select) → NativeModalStack/NativeModalView → NativeSelectRenderable. This includes disabled headings, searchable lists, custom keys, tabs, nested delete confirmation and inline edits. All menu rows inherit terminal fg/bg, sparse popup corners, DIM underlay, dot rail and keyboard focus. |
|
|
18
|
+
| I | tuiSelect helpers.getInput, askTerminal, createNativeQuestionInterface and showDropPanel → NativeModalSpec(input). Hidden secrets, multiline editor/paste budgets and cancellation share the same modal frame. |
|
|
19
|
+
| M | Direct native document/agent-center modals; they use the same stack/frame/focus lifecycle as selectors and input. |
|
|
20
|
+
| D | Retained semantic NativeBlock documents/cards/progress/images and live providers → NativeBlockList. Native layout owns wrap/collapse, progress dots and actions; content is not a prepainted terminal screen. |
|
|
21
|
+
| R | Standalone command reports own a document modal. AsyncLocalStorage routes only that operation’s semantic blocks/text into the report before transcript/Neovim/overlay redirects; Close and read-only Refresh preserve the parent draft. |
|
|
22
|
+
| C | Explicit picker loading/count/cancel/selection acknowledgements use publishCommandControlStatus → five-second native runtimeStatus. Report scopes retain captured output first; noninteractive/API callers retain plain output. |
|
|
23
|
+
| O | renderInfo/renderWarning/renderError/renderContentBlock, safeLog and writeTerminalText → native document sink or native captured output. Explicit ANSI foreground/background metadata is removed in styledText while attributes/links survive. Session/task callbacks update native chrome or semantic documents. |
|
|
24
|
+
| V | The native composer owns Vim Normal/Insert mode through VimComposer and the retained Textarea; `/vim` updates the input mode without conversation output. |
|
|
25
|
+
| E | Neovim is an OpenTUI EmbeddedTerminal. OpenTUI owns terminal input/rendering; app-injected highlight colors are normalized. User editor/plugin/source-program content is distinct from Omnius controls. |
|
|
26
|
+
| H | An explicit installer/administrator subprocess borrows the terminal through withTransientTerminalSession/suspend and releases it in finally. The one direct stdout frame is stripped plain heading/reason while native ownership is suspended. |
|
|
27
|
+
| L | Session exit/cleanup. Native lifecycle releases renderer, input and modal resources. |
|
|
28
|
+
|
|
29
|
+
Source owners: [selector adapter](../../packages/cli/src/tui/tui-select.ts), [native question/output adapter](../../packages/cli/src/tui/native/io.ts), [modal stack](../../packages/cli/src/tui/native/components/modals.ts), [corner frame](../../packages/cli/src/tui/native/components/corner-frame.ts), [blocks](../../packages/cli/src/tui/native/components/blocks.ts), [text palette and attributes](../../packages/cli/src/tui/native/components/text.ts), [input pause leases](../../packages/cli/src/tui/native/input.ts).
|
|
30
|
+
|
|
31
|
+
## Complete registry mapping
|
|
32
|
+
|
|
33
|
+
Every canonical entry is listed once; its registered aliases are on the same row. Signature counts preserve all argument/subcommand variants. S/I/M/D paths inherit the shared components for every row and nested dialog; O applies to diagnostic/usage/error branches as well. Registry-only planned entries are not claimed as implemented commands.
|
|
34
|
+
|
|
35
|
+
| Canonical command and aliases | Status; signatures | Execution entry | Presentation | Reachable named menu owners |
|
|
36
|
+
| --- | --- | --- | --- | --- |
|
|
37
|
+
| `/model` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5048) | C + S + H + O | `showModelPicker` |
|
|
38
|
+
| `/models` | implemented; 10 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2150) | R + S + O | `showCad3dModelsMenu` |
|
|
39
|
+
| `/endpoint`<br>`/ep` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5058) | C + S + I + O | `browseProviderPresets`, `handleEndpoint`, `handleSponsoredEndpoint` |
|
|
40
|
+
| `/fallback` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2054) | R + O | — |
|
|
41
|
+
| `/config`<br>`/cfg` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2688) | S + O | `showConfigEditor` |
|
|
42
|
+
| `/color`<br>`/colors`, `/theme` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2694) | R + S + O | `showColorMenu` |
|
|
43
|
+
| `/setup`<br>`/wizard` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5089) | S + I + O | `runSetupWizard` |
|
|
44
|
+
| `/parallel` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5063) | R + O | — |
|
|
45
|
+
| `/gpu` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5067) | R + S + O | `handleGpu` |
|
|
46
|
+
| `/broker` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5071) | R + O | — |
|
|
47
|
+
| `/ollama` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5075) | R + O | — |
|
|
48
|
+
| `/mcp`<br>`/mcps` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5079) | R + S + I + O | `showMcpMainMenu`, `showMcpDetailMenu` |
|
|
49
|
+
| `/indicator`<br>`/tray` | implemented; 6 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6321) | R + O | — |
|
|
50
|
+
| `/update`<br>`/upgrade` | implemented; 7 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5084) | S + H + O | `handleUpdate` |
|
|
51
|
+
| `/agents` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2059) | M + D + O | — |
|
|
52
|
+
| `/voice` | implemented; 10 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5114) | R + S + I + O | `handleVoiceRoomMenu`, `handleVoiceMenu`, `handleSupertonicMenu`, `handleMisottsMenu`, `handleVoiceList` |
|
|
53
|
+
| `/think` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5811) | R + O | — |
|
|
54
|
+
| `/stream` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5730) | O | — |
|
|
55
|
+
| `/tree` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5745) | O | — |
|
|
56
|
+
| `/realtime` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5773) | O | — |
|
|
57
|
+
| `/mouse` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5897) | O | — |
|
|
58
|
+
| `/vim` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6155) | V | — |
|
|
59
|
+
| `/neovim`<br>`/nvim` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6167) | E + H + O | — |
|
|
60
|
+
| `/dream` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6228) | O | — |
|
|
61
|
+
| `/listen`<br>`/mic` | implemented; 6 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6917) | O | — |
|
|
62
|
+
| `/live` | implemented; 13 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6970) | S + D + H + O | `chooseLiveDevice`, `chooseLiveCameraResolution`, `chooseLiveCameraFps`, `showLiveCameraMenu`, `showLiveMenu` |
|
|
63
|
+
| `/livechat` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6980) | S + D + H + O | `chooseLiveDevice`, `chooseLiveCameraResolution`, `chooseLiveCameraFps`, `showLiveCameraMenu`, `showLiveMenu` |
|
|
64
|
+
| `/camera` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6975) | S + D + O | `chooseLiveDevice`, `chooseLiveCameraResolution`, `chooseLiveCameraFps`, `showLiveCameraMenu`, `showCameraMenu` |
|
|
65
|
+
| `/paste` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8427) | O | — |
|
|
66
|
+
| `/image` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2958) | S + O | `showImageModelsMenu` |
|
|
67
|
+
| `/sound` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2962) | S + O | `showAudioGenerationMenu` |
|
|
68
|
+
| `/music` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2966) | S + O | `showAudioGenerationMenu` |
|
|
69
|
+
| `/video` | implemented; 7 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2970) | S + O | `showVideoModelsMenu` |
|
|
70
|
+
| `/pointcloud`<br>`/points`, `/pcl`, `/point` | implemented; 9 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2951) | O | — |
|
|
71
|
+
| `/call` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6985) | O | — |
|
|
72
|
+
| `/hangup` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L7028) | O | — |
|
|
73
|
+
| `/queue`<br>`/q` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2620) | O + L (`/q` without arguments exits) | — |
|
|
74
|
+
| `/retry` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8347) | O | — |
|
|
75
|
+
| `/undo` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8359) | O | — |
|
|
76
|
+
| `/title` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8375) | O | — |
|
|
77
|
+
| `/rollback` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8386) | O | — |
|
|
78
|
+
| `/background`<br>`/bg` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8414) | O | — |
|
|
79
|
+
| `/cost`<br>`/costs` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2974) | R + O | — |
|
|
80
|
+
| `/usage` | implemented; 1 | [registered handler](../../packages/cli/src/tui/commands.ts#L9989) | R + O | — |
|
|
81
|
+
| `/insights` | implemented; 1 | [registered handler](../../packages/cli/src/tui/commands.ts#L10015) | R + O | — |
|
|
82
|
+
| `/evaluate`<br>`/eval` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3020) | O | — |
|
|
83
|
+
| `/score`<br>`/inference` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3070) | R + D + O | — |
|
|
84
|
+
| `/task-type`<br>`/tasktype`, `/tt` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3974) | R + O | — |
|
|
85
|
+
| `/stats`<br>`/dashboard` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4012) | R + O | — |
|
|
86
|
+
| `/metrics` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4013) | R + O | — |
|
|
87
|
+
| `/sessions`<br>`/session` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2945) | S + D + O | `showSessionsMenu` |
|
|
88
|
+
| `/new` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2659) | O | — |
|
|
89
|
+
| `/pause` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8257) | O | — |
|
|
90
|
+
| `/stop` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8277) | O | — |
|
|
91
|
+
| `/resume` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8314) | S + O | `showResumeSessionMenu` |
|
|
92
|
+
| `/destroy` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8440) | O | — |
|
|
93
|
+
| `/context` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8470) | R + O | — |
|
|
94
|
+
| `/compact`<br>`/gc` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8566) | O | — |
|
|
95
|
+
| `/compacted` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8603) | S + O | `showCompactionHistory` |
|
|
96
|
+
| `/bruteforce`<br>`/brute` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8187) | O | — |
|
|
97
|
+
| `/deep`<br>`/deep-context` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8203) | O | — |
|
|
98
|
+
| `/flow`<br>`/flowstate` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8223) | O | — |
|
|
99
|
+
| `/emojis`<br>`/emoji` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8243) | O | — |
|
|
100
|
+
| `/tools` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5935) | R + O | — |
|
|
101
|
+
| `/skills`<br>`/skill` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L5956) | R + O | — |
|
|
102
|
+
| `/skillify` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6252) | O | — |
|
|
103
|
+
| `/full-send-bless` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8608) | O | — |
|
|
104
|
+
| `/bless` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8609) | O | — |
|
|
105
|
+
| `/telegram`<br>`/tg` | implemented; 28 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8624) | C + S + O | `showTelegramModelPicker`, `handleTelegramEndpoint` |
|
|
106
|
+
| `/platforms`<br>`/gateway` | implemented; 15 | [dispatcher](../../packages/cli/src/tui/commands.ts#L9512) | R + S + I + O | `showPlatformsMenu`, `showPlatformOnboardingMenu` |
|
|
107
|
+
| `/cohere` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6296) | R + S + O | `showCohereDashboard` |
|
|
108
|
+
| `/nexus` | implemented; 8 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3723) | R + O | — |
|
|
109
|
+
| `/ipfs` | implemented; 5 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4168) | O | — |
|
|
110
|
+
| `/sponsor` | implemented; 8 | [dispatcher](../../packages/cli/src/tui/commands.ts#L7091) | S + O | `handleSponsorMediaCommand`, `runSponsorWizard`, `showSponsorDashboard` |
|
|
111
|
+
| `/expose` | implemented; 9 | [dispatcher](../../packages/cli/src/tui/commands.ts#L7886) | R + S + M + D + O | `handleExposeConfig` |
|
|
112
|
+
| `/access` | implemented; 2 | [registered handler](../../packages/cli/src/tui/commands.ts#L9720) | R + O | — |
|
|
113
|
+
| `/network`<br>`/k` | implemented; 2 | [registered handler](../../packages/cli/src/tui/commands.ts#L9944) | C + S + O | `handleNetworkConfig` |
|
|
114
|
+
| `/scheduler` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6453) | S + H + O | — |
|
|
115
|
+
| `/cron` | implemented; 10 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6446) | O | — |
|
|
116
|
+
| `/reminder`<br>`/remind`, `/reminders` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2615) | O | — |
|
|
117
|
+
| `/daemon` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6331) | R + H + O | — |
|
|
118
|
+
| `/apikey`<br>`/key` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2788) | R + O | — |
|
|
119
|
+
| `/secrets`<br>`/secret`, `/vault` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8126) | R + O | — |
|
|
120
|
+
| `/codegraph`<br>`/cg` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L9524) | R + O | — |
|
|
121
|
+
| `/storage` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4667) | R + O | — |
|
|
122
|
+
| `/files`<br>`/workspace` | implemented; 6 | [dispatcher](../../packages/cli/src/tui/commands.ts#L9518) | S + O | `showWorkspaceExplorerMenu` |
|
|
123
|
+
| `/ingest` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4764) | O | — |
|
|
124
|
+
| `/transcribe` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4765) | O | — |
|
|
125
|
+
| `/fortemi` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L4910) | O | — |
|
|
126
|
+
| `/host` | implemented; 1 | [registered handler](../../packages/cli/src/tui/commands.ts#L9887) | R + O | — |
|
|
127
|
+
| `/p2p` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8040) | R + O | — |
|
|
128
|
+
| `/style` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8534) | R + O | — |
|
|
129
|
+
| `/personality` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L8535) | R + O | — |
|
|
130
|
+
| `/commands`<br>`/cmds` | implemented; 3 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6020) | R + O | — |
|
|
131
|
+
| `/selfmodify`<br>`/selfmod`, `/self-modify` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6053) | R + O | — |
|
|
132
|
+
| `/selfimprove`<br>`/self-improve` | implemented; 7 | [dispatcher](../../packages/cli/src/tui/commands.ts#L6101) | R + O | — |
|
|
133
|
+
| `/debug` | implemented; 6 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2073) | O | — |
|
|
134
|
+
| `/hf` | implemented; 4 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2096) | O | — |
|
|
135
|
+
| `/voicechat` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L7045) | H + O | — |
|
|
136
|
+
| `/memory`<br>`/mem` | implemented; 2 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3574) | S + M + O | `showMemoryMenu` |
|
|
137
|
+
| `/metabolize`<br>`/metab` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3600) | O | — |
|
|
138
|
+
| `/prune` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L3635) | S + O | `showPruneMenu` |
|
|
139
|
+
| `/verbose`<br>`/v` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2674) | O | — |
|
|
140
|
+
| `/clear`<br>`/cls` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2649) | O | — |
|
|
141
|
+
| `/help`<br>`/h`, `/?` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2067) | S + O | `showHelpMenu` |
|
|
142
|
+
| `/quit`<br>`/exit` | implemented; 1 | [dispatcher](../../packages/cli/src/tui/commands.ts#L2645) | L | — |
|
|
143
|
+
| `/provider` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
144
|
+
| `/prompt` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
145
|
+
| `/reasoning` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
146
|
+
| `/statusbar`<br>`/sb` | planned; 2 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
147
|
+
| `/skin` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
148
|
+
| `/toolsets` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
149
|
+
| `/browser` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
150
|
+
| `/reload-mcp` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
151
|
+
| `/plugins` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
152
|
+
| `/status` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
153
|
+
| `/sethome` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
154
|
+
| `/approve` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
155
|
+
| `/deny` | planned; 1 | registry only | Planned metadata; shared unknown-command/skill fallback | — |
|
|
156
|
+
|
|
157
|
+
## Every selector in commands.ts
|
|
158
|
+
|
|
159
|
+
| Function owner | Selector sites | Source lines |
|
|
160
|
+
| --- | --- | --- |
|
|
161
|
+
| `dispatchSlashCommand` | 1 | [6504](../../packages/cli/src/tui/commands.ts#L6504) |
|
|
162
|
+
| `showResumeSessionMenu` | 1 | [10102](../../packages/cli/src/tui/commands.ts#L10102) |
|
|
163
|
+
| `showCompactionHistory` | 1 | [10127](../../packages/cli/src/tui/commands.ts#L10127) |
|
|
164
|
+
| `showSessionsMenu` | 1 | [10175](../../packages/cli/src/tui/commands.ts#L10175) |
|
|
165
|
+
| `showColorMenu` | 1 | [10294](../../packages/cli/src/tui/commands.ts#L10294) |
|
|
166
|
+
| `showConfigEditor` | 1 | [10671](../../packages/cli/src/tui/commands.ts#L10671) |
|
|
167
|
+
| `showPlatformsMenu` | 1 | [10908](../../packages/cli/src/tui/commands.ts#L10908) |
|
|
168
|
+
| `showPlatformOnboardingMenu` | 1 | [11015](../../packages/cli/src/tui/commands.ts#L11015) |
|
|
169
|
+
| `showWorkspaceExplorerMenu` | 1 | [11201](../../packages/cli/src/tui/commands.ts#L11201) |
|
|
170
|
+
| `handleExposeConfig` | 1 | [11286](../../packages/cli/src/tui/commands.ts#L11286) |
|
|
171
|
+
| `handleNetworkConfig` | 3 | [11433](../../packages/cli/src/tui/commands.ts#L11433), [11447](../../packages/cli/src/tui/commands.ts#L11447), [11478](../../packages/cli/src/tui/commands.ts#L11478) |
|
|
172
|
+
| `showCad3dModelsMenu` | 1 | [11660](../../packages/cli/src/tui/commands.ts#L11660) |
|
|
173
|
+
| `showImageModelsMenu` | 1 | [12133](../../packages/cli/src/tui/commands.ts#L12133) |
|
|
174
|
+
| `showVideoModelsMenu` | 1 | [12721](../../packages/cli/src/tui/commands.ts#L12721) |
|
|
175
|
+
| `showAudioGenerationMenu` | 1 | [13285](../../packages/cli/src/tui/commands.ts#L13285) |
|
|
176
|
+
| `showHelpMenu` | 2 | [13828](../../packages/cli/src/tui/commands.ts#L13828), [13856](../../packages/cli/src/tui/commands.ts#L13856) |
|
|
177
|
+
| `showCohereDashboard` | 6 | [14218](../../packages/cli/src/tui/commands.ts#L14218), [14262](../../packages/cli/src/tui/commands.ts#L14262), [14298](../../packages/cli/src/tui/commands.ts#L14298), [14333](../../packages/cli/src/tui/commands.ts#L14333), [14369](../../packages/cli/src/tui/commands.ts#L14369), [14392](../../packages/cli/src/tui/commands.ts#L14392) |
|
|
178
|
+
| `showModelPicker` | 1 | [14530](../../packages/cli/src/tui/commands.ts#L14530) |
|
|
179
|
+
| `chooseLiveDevice` | 1 | [14808](../../packages/cli/src/tui/commands.ts#L14808) |
|
|
180
|
+
| `chooseLiveCameraResolution` | 1 | [14830](../../packages/cli/src/tui/commands.ts#L14830) |
|
|
181
|
+
| `chooseLiveCameraFps` | 1 | [14856](../../packages/cli/src/tui/commands.ts#L14856) |
|
|
182
|
+
| `showLiveCameraMenu` | 1 | [14936](../../packages/cli/src/tui/commands.ts#L14936) |
|
|
183
|
+
| `showCameraMenu` | 1 | [15281](../../packages/cli/src/tui/commands.ts#L15281) |
|
|
184
|
+
| `showLiveMenu` | 1 | [15599](../../packages/cli/src/tui/commands.ts#L15599) |
|
|
185
|
+
| `handleVoiceRoomMenu` | 2 | [15825](../../packages/cli/src/tui/commands.ts#L15825), [15839](../../packages/cli/src/tui/commands.ts#L15839) |
|
|
186
|
+
| `handleVoiceMenu` | 6 | [16090](../../packages/cli/src/tui/commands.ts#L16090), [16154](../../packages/cli/src/tui/commands.ts#L16154), [16169](../../packages/cli/src/tui/commands.ts#L16169), [16219](../../packages/cli/src/tui/commands.ts#L16219), [16328](../../packages/cli/src/tui/commands.ts#L16328), [16400](../../packages/cli/src/tui/commands.ts#L16400) |
|
|
187
|
+
| `handleSupertonicMenu` | 7 | [16615](../../packages/cli/src/tui/commands.ts#L16615), [16662](../../packages/cli/src/tui/commands.ts#L16662), [16675](../../packages/cli/src/tui/commands.ts#L16675), [16688](../../packages/cli/src/tui/commands.ts#L16688), [16701](../../packages/cli/src/tui/commands.ts#L16701), [16714](../../packages/cli/src/tui/commands.ts#L16714), [16738](../../packages/cli/src/tui/commands.ts#L16738) |
|
|
188
|
+
| `handleMisottsMenu` | 4 | [16804](../../packages/cli/src/tui/commands.ts#L16804), [16826](../../packages/cli/src/tui/commands.ts#L16826), [16848](../../packages/cli/src/tui/commands.ts#L16848), [16870](../../packages/cli/src/tui/commands.ts#L16870) |
|
|
189
|
+
| `handleVoiceList` | 1 | [16926](../../packages/cli/src/tui/commands.ts#L16926) |
|
|
190
|
+
| `browseProviderPresets` | 1 | [17134](../../packages/cli/src/tui/commands.ts#L17134) |
|
|
191
|
+
| `handleEndpoint` | 2 | [17263](../../packages/cli/src/tui/commands.ts#L17263), [17378](../../packages/cli/src/tui/commands.ts#L17378) |
|
|
192
|
+
| `handleSponsorMediaCommand` | 1 | [18221](../../packages/cli/src/tui/commands.ts#L18221) |
|
|
193
|
+
| `handleSponsoredEndpoint` | 1 | [18940](../../packages/cli/src/tui/commands.ts#L18940) |
|
|
194
|
+
| `handleGpu` | 1 | [19383](../../packages/cli/src/tui/commands.ts#L19383) |
|
|
195
|
+
| `showMcpMainMenu` | 1 | [20253](../../packages/cli/src/tui/commands.ts#L20253) |
|
|
196
|
+
| `showMcpDetailMenu` | 1 | [20525](../../packages/cli/src/tui/commands.ts#L20525) |
|
|
197
|
+
| `handleUpdate` | 1 | [21149](../../packages/cli/src/tui/commands.ts#L21149) |
|
|
198
|
+
|
|
199
|
+
## Imported menus and other terminal invocation paths
|
|
200
|
+
|
|
201
|
+
| Source module | Shared entry points found | Call sites |
|
|
202
|
+
| --- | --- | --- |
|
|
203
|
+
| [tui/setup.ts](../../packages/cli/src/tui/setup.ts#L1) | `askTerminal` × 2; `createNativeQuestionInterface` × 2; `tuiSelect` × 2 | [653](../../packages/cli/src/tui/setup.ts#L653), [657](../../packages/cli/src/tui/setup.ts#L657), [1383](../../packages/cli/src/tui/setup.ts#L1383), [1873](../../packages/cli/src/tui/setup.ts#L1873), [2223](../../packages/cli/src/tui/setup.ts#L2223), [2260](../../packages/cli/src/tui/setup.ts#L2260) |
|
|
204
|
+
| [tui/memory-menu.ts](../../packages/cli/src/tui/memory-menu.ts#L1) | `tuiSelect` × 15 | [218](../../packages/cli/src/tui/memory-menu.ts#L218), [286](../../packages/cli/src/tui/memory-menu.ts#L286), [342](../../packages/cli/src/tui/memory-menu.ts#L342), [394](../../packages/cli/src/tui/memory-menu.ts#L394), [432](../../packages/cli/src/tui/memory-menu.ts#L432), [493](../../packages/cli/src/tui/memory-menu.ts#L493), [532](../../packages/cli/src/tui/memory-menu.ts#L532), [609](../../packages/cli/src/tui/memory-menu.ts#L609), [675](../../packages/cli/src/tui/memory-menu.ts#L675), [745](../../packages/cli/src/tui/memory-menu.ts#L745), [807](../../packages/cli/src/tui/memory-menu.ts#L807), [849](../../packages/cli/src/tui/memory-menu.ts#L849), [897](../../packages/cli/src/tui/memory-menu.ts#L897), [924](../../packages/cli/src/tui/memory-menu.ts#L924), [960](../../packages/cli/src/tui/memory-menu.ts#L960) |
|
|
205
|
+
| [tui/sponsor-wizard.ts](../../packages/cli/src/tui/sponsor-wizard.ts#L1) | `tuiSelect` × 8 | [437](../../packages/cli/src/tui/sponsor-wizard.ts#L437), [573](../../packages/cli/src/tui/sponsor-wizard.ts#L573), [713](../../packages/cli/src/tui/sponsor-wizard.ts#L713), [829](../../packages/cli/src/tui/sponsor-wizard.ts#L829), [971](../../packages/cli/src/tui/sponsor-wizard.ts#L971), [1066](../../packages/cli/src/tui/sponsor-wizard.ts#L1066), [1133](../../packages/cli/src/tui/sponsor-wizard.ts#L1133), [1248](../../packages/cli/src/tui/sponsor-wizard.ts#L1248) |
|
|
206
|
+
| [tui/key-pool-menu.ts](../../packages/cli/src/tui/key-pool-menu.ts#L1) | `tuiSelect` × 2 | [62](../../packages/cli/src/tui/key-pool-menu.ts#L62), [110](../../packages/cli/src/tui/key-pool-menu.ts#L110) |
|
|
207
|
+
| [tui/prune-menu.ts](../../packages/cli/src/tui/prune-menu.ts#L1) | `tuiSelect` × 1 | [70](../../packages/cli/src/tui/prune-menu.ts#L70) |
|
|
208
|
+
| [tui/telegram-inference.ts](../../packages/cli/src/tui/telegram-inference.ts#L1) | `tuiSelect` × 2 | [146](../../packages/cli/src/tui/telegram-inference.ts#L146), [272](../../packages/cli/src/tui/telegram-inference.ts#L272) |
|
|
209
|
+
| [tui/interactive.ts](../../packages/cli/src/tui/interactive.ts#L1) | `tuiSelect` × 3 | [10971](../../packages/cli/src/tui/interactive.ts#L10971), [11017](../../packages/cli/src/tui/interactive.ts#L11017), [14587](../../packages/cli/src/tui/interactive.ts#L14587) |
|
|
210
|
+
| [tui/agent-command-center.ts](../../packages/cli/src/tui/agent-command-center.ts#L1) | `terminal.requestModal` × 1 | [313](../../packages/cli/src/tui/agent-command-center.ts#L313) |
|
|
211
|
+
| [tui/memory-map.ts](../../packages/cli/src/tui/memory-map.ts#L1) | `terminal.requestModal` × 2 | [775](../../packages/cli/src/tui/memory-map.ts#L775), [785](../../packages/cli/src/tui/memory-map.ts#L785) |
|
|
212
|
+
| [tui/drop-panel.ts](../../packages/cli/src/tui/drop-panel.ts#L1) | `terminal.requestModal` × 1 | [27](../../packages/cli/src/tui/drop-panel.ts#L27) |
|
|
213
|
+
| [onboarding/interactive.ts](../../packages/cli/src/onboarding/interactive.ts#L1) | `askTerminal` × 1 | [62](../../packages/cli/src/onboarding/interactive.ts#L62) |
|
|
214
|
+
|
|
215
|
+
These cover config and API credentials; provider/endpoint/model/GPU selection; ASR/TTS/voice clones and file drops; camera device/resolution/FPS controls; live sensors and voice rooms; memory summaries, categories, trace/exact-evidence documents; startup/onboarding input; task/agent filters; workspace and model browsers; MCP configuration and JSON inline editing; sponsor and network/expose dashboards; update menus and progress. Help uses the current metadata registry, including runtime registered commands. Markdown, tool results, thinking, task completion and action trees use shared NativeBlock rendering regardless of which command produced them.
|
|
216
|
+
|
|
217
|
+
Runtime skill commands /<skill-name> <args> and extensions registered after startup have an open-ended identifier set. Their names/items are data in the same help/selector adapter, and ordinary outputs are routed through the same native document sink. No fabricated finite list of future plugins/skills is claimed.
|
|
218
|
+
|
|
219
|
+
## Visual and interaction gaps repaired during this audit
|
|
220
|
+
|
|
221
|
+
- /score and /inference now append a semantic capability card with source metrics and compatibility data. The fixed 52-column rounded box and filled bars were removed; standalone output is unboxed text.
|
|
222
|
+
- /sessions now appends a semantic recovered-session heading, preserving the full saved transcript. Cancelling the picker does not load a null session or trigger summary inference.
|
|
223
|
+
- Help → Use invokes NativeInput.setLine, so the selected command reaches the authoritative editor. Plain readline callers retain the compatibility field update.
|
|
224
|
+
- /expose status now publishes retained requests, budget progress, model, peer, system and full stream sections; fixed-width clipping, fixed palette LEDs and filled bars were removed. Groups have stable IDs and deliberate disclosure state (system initially collapsed, stream expanded). Copy/stop/close actions and listener/timer cleanup remain.
|
|
225
|
+
- /insights has an unboxed title with a thin rule instead of a heavy double-line enclosure.
|
|
226
|
+
- Startup /host and /network overrides, setup capability framing, memory visualization framing, pause-lease ownership and app-injected Neovim highlights were audited with the other task owners. The authoritative /network handler remains the eager command-module registration; the duplicate startup wrapper previously attempted to call a private non-exported helper.
|
|
227
|
+
|
|
228
|
+
## Standalone diagnostic reports
|
|
229
|
+
|
|
230
|
+
Standalone reports now use [command-reports.ts](../../packages/cli/src/tui/native/command-reports.ts) and [output-scope.ts](../../packages/cli/src/tui/native/output-scope.ts). The R mapping applies only to the documented informational forms; selectors and explicit task/conversation results retain their existing owners. API synthetic inputs and noninteractive selector scopes bypass the modal adapter, preserving plain command capture. Reports do not replace stdout or globally redirect unrelated background output.
|
|
231
|
+
|
|
232
|
+
| Report title | Command families/forms |
|
|
233
|
+
| --- | --- |
|
|
234
|
+
| Session dashboard | `/stats`, `/dashboard` |
|
|
235
|
+
| Runtime metrics | `/metrics` |
|
|
236
|
+
| Session cost | `/cost`, `/costs` |
|
|
237
|
+
| Token usage | `/usage` |
|
|
238
|
+
| Historical insights | `/insights` |
|
|
239
|
+
| Inference capability | `/score`, `/inference` |
|
|
240
|
+
| Resource broker | `/broker` |
|
|
241
|
+
| GPU policy | `/gpu`, `/gpu status`, `/gpu select <UUID>` |
|
|
242
|
+
| Voice configuration | `/voice` |
|
|
243
|
+
| Ollama diagnostics | `/ollama` |
|
|
244
|
+
| Saved session context | `/context` |
|
|
245
|
+
| Storage overview | `/storage` |
|
|
246
|
+
| Custom tools | `/tools` |
|
|
247
|
+
| Skill catalog | `/skills`, `/skill` |
|
|
248
|
+
| Command reference | `/commands`, `/cmds` |
|
|
249
|
+
| Model catalog | `/models` |
|
|
250
|
+
| Inference parallelism | `/parallel` |
|
|
251
|
+
| MCP diagnostics | `/mcp status`, `/mcps status` |
|
|
252
|
+
| Daemon status | `/daemon` |
|
|
253
|
+
| Indicator status | `/indicator status`, `/tray status` |
|
|
254
|
+
| Gateway status | `/platforms`, `/gateway` |
|
|
255
|
+
| COHERE status | `/cohere status` |
|
|
256
|
+
| Peer network status | `/p2p status` |
|
|
257
|
+
| Expose status | `/expose` |
|
|
258
|
+
| API keys | `/apikey`, `/key` |
|
|
259
|
+
| Secret inventory | `/secrets`, `/secret`, `/vault` |
|
|
260
|
+
| Network configuration | `/access`, `/host` |
|
|
261
|
+
| Inference fallback | `/fallback` |
|
|
262
|
+
| Thinking mode | `/think status` |
|
|
263
|
+
| Terminal appearance | `/color status`, `/colors status`, `/theme status` |
|
|
264
|
+
| Self-modify policy | `/selfmodify status`, `/selfmod status`, `/self-modify status` |
|
|
265
|
+
| Self-improvement status | `/selfimprove`, `/self-improve` |
|
|
266
|
+
| Agent style | `/style`, `/personality` |
|
|
267
|
+
| Task types | `/task-type`, `/tasktype`, `/tt` |
|
|
268
|
+
| Code graph status | `/codegraph`, `/cg` |
|
|
269
|
+
| Nexus network status | `/nexus` |
|
|
270
|
+
|
|
271
|
+
Broker/GPU/Ollama/API-key/voice command families also keep their associated warnings, errors and explicit operation confirmations in the report. Refresh is offered only for classified read-only forms; it cannot repeat GPU reset, broker eviction/threshold changes, key rotation or cleanup execution. GPU selection nests the existing shared selector over its report, and cancellation stays in that report. Context show/status builds semantic saved-history cards rather than calling the transcript history renderer. Evaluation, saved-session replay/activation, context save/restore and task results remain conversation-owned. Live code-graph watch remains its existing explicit stream; the one-shot snapshot is a report.
|
|
272
|
+
|
|
273
|
+
The scoped report suite has **11 passing behavioral tests**: stats aliases do not append diagnostic text or replace draft/cursor; broker refresh failure stays in-modal; GPU lease warnings plus nested selector cancellation make no configuration/GPU mutation; saved context uses report cards without transcript callbacks; explicit voice acknowledgements stay in their report; per-device GPU selection opens the existing selector focused on the exact UUID without mutating on cancel; concurrent unrelated task output remains normal; late output after a slow report closes is consumed; mutation forms cannot refresh; API/noninteractive presentation stays unchanged. The initial six related suites passed **44 tests**; subsequent report/device/lifecycle verification is recorded below and in the main-task results.
|
|
274
|
+
|
|
275
|
+
## Picker control acknowledgements
|
|
276
|
+
|
|
277
|
+
Picker control acknowledgements now use the existing five-second runtimeStatus in native sessions. The main model picker’s loading/count/cancel, main endpoint/provider/network cancellation, model-switch confirmation and endpoint connection/save/availability acknowledgements no longer append transcript blocks. The clean Telegram inference helper uses the same route for its isolated model/endpoint menus; it retains its existing override callbacks and error behavior. The input draft/cursor remain untouched, and no additional parent modal is opened. Report AsyncLocalStorage capture takes precedence over the status route; API/noninteractive and ordinary plain-terminal callers retain their output.
|
|
278
|
+
|
|
279
|
+
command-native-presentation.test.ts now has15 passing cases, including main/Telegram picker cancellation and selection, exact model/endpoint callbacks, no native transcript appends, draft preservation and report/plain-output ownership. network-native-menu.test.ts separately verifies the actual shared selector adapter for /network, /network config and /k config without settings or network mutation.
|
|
280
|
+
|
|
281
|
+
## Lifecycle telemetry and device policy
|
|
282
|
+
|
|
283
|
+
Stream start/end summaries, per-turn token totals, debug-context readings and restored/auto-enabled voice success messages now update native chrome through lifecycle-status.ts; they do not append blocks or persisted transcript lines. Main and selected child context snapshots retain message count, headroom, tool calls and adversary outcomes; the existing token/rate/context/voice readings remain authoritative. Plain non-native verbose logging and durable assistant/tool/error content remain available.
|
|
284
|
+
|
|
285
|
+
The inference-device monitor reads existing SystemMetricsCollector per-device measurements: nvidia-smi on desktop, jtop with explicitly labeled unified memory on Jetson. A shared inference-device-policy.ts snapshot projects the same compute/VRAM eligibility and broker scope as /gpu. Capability/broker discovery is read-only, throttled to fifteen seconds and guarded against stale endpoint results; utilization retains the existing two-second collector interval. Unknown sensors remain unknown, and synthetic driver-presence fallback zeroes are excluded. Device controls invoke /gpu or the focus-only /gpu select <UUID> selector route; all task locks, capability limits, broker scope and explicit save/cancel semantics remain. Integrated UMA without a verified selectable UUID has no fabricated CUDA toggle.
|
|
286
|
+
|
|
287
|
+
Seven policy tests cover low-capability exclusion, broker scope/hold, zero versus unknown measurements, real Jetson UMA, explicit disabled policy and discovery-only transport. Four lifecycle tests prove unchanged persisted transcript while retaining assistant answers/errors, selected-child context isolation, plain logging, and refresh coalescing/stale-result/stop cleanup. No test loads a model, changes device policy or starts a CUDA/service workload. Five execution jtop fixture tests additionally prove true zero versus absent/invalid GPU sensors, measured UMA derivation, unknown used/free memory, missing capacity and non-Jetson no-probe behavior. A [read-only hardware snapshot](evidence/inference-device-policy-readonly-20261016.json) records the actual desktop GPU identities/counters without claiming model placement.
|
|
288
|
+
|
|
289
|
+
## Physical I/O and compatibility exceptions
|
|
290
|
+
|
|
291
|
+
Within commands.ts the only process.stdout.write and setRawMode calls remaining are in withTransientTerminalSession, after native suspend and before release. No dispatcher keyboard handler takes over process.stdin. All other command output uses shared native adapters. Piped/noninteractive help and menus return plain list/report output without waiting for keys, preserving API/gateway command capture. Privileged installers intentionally own their borrowed subprocess terminal until completion; no such command was executed for this audit.
|
|
292
|
+
|
|
293
|
+
Old pure fallback builders still contain terminal art or indexed color metadata in shell/inference/sub-agent/task-completion/action-tree formatting helpers. Production native sessions select registerNativeBlock/nativeRender paths before those compatibility builders; the shared text adapter also drops explicit colors when importing metadata. Their standalone formatting tests are not evidence that a legacy full-screen compositor is active. Literal source content, user code/markdown, historical transcripts, image data and embedded subprocess output may contain visual characters; those are content rather than application popup framing.
|
|
294
|
+
|
|
295
|
+
## Verification
|
|
296
|
+
|
|
297
|
+
- Final curated aggregate: **95 CLI files / 767 tests passed**, plus **5 execution Jetson tests**; zero failures/skips and stable hashes for all 142 captured source/test files. The [updated verification record](evidence/instrument-targeted-verification-20261016-updated.json) includes the exact test list, commands, raw-log paths, configuration isolation and scope limits. This is not a full CLI-suite or detached committed-checkout claim.
|
|
298
|
+
- Earlier report/device/lifecycle integration run: **14 CLI files / 128 tests passed**, including the actual retained instrument harness. Execution jtop fixtures: **5 tests passed**. CLI and execution typechecks passed during integration; final full workspace build and live GUI validation are owned by the main task.
|
|
299
|
+
- command-native-presentation.test.ts: **15 behavioral tests** with live fetch disabled and hardware subprocess probes stubbed. Covers actual NativeInput Help handoff; cancelled session history; semantic recovered heading plus complete transcript; capability card from a mocked hardware snapshot; retained expose statistics/full stream, unique peer identities, copy action, preservation of an existing manual input pause and complete listener/timer cleanup.
|
|
300
|
+
- command-native-presentation + insights + session-replay-wiring + command-registry: **4 files / 58 tests passed** in the final aggregate. CLI typecheck passed after the command changes.
|
|
301
|
+
- native-modal-lifecycle.test.ts: four actual Bun/OpenTUI scenarios cover all popup framing/lifecycle concerns, including real select overflow rail/drag, default colors, joined sparse corners at tiny/normal sizes, DIM underlay/link preservation, Unicode selected input, stationary bounded opening, no idle animation, nested close/focus and cleanup.
|
|
302
|
+
- Existing native-components, native-terminal-features, native-live-documents, onboarding-interactive, native-document-retention and pause-ownership suites provide representative actual/shared-adapter coverage. Main-task validation records the final full suite/build and live GUI capture separately.
|
|
303
|
+
|
|
304
|
+
No inference request, CUDA workload, service start, destructive command, privilege elevation or external notification was performed to create this inventory or its command tests.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Terminal-native instrument interface
|
|
2
|
+
|
|
3
|
+
The October 16 interface follows the operator's
|
|
4
|
+
`/home/roko/Desktop/OPENTUI_INSTRUMENT_STYLEGUIDE.md` and instrumentation reference.
|
|
5
|
+
The operator's later instruction to inherit terminal colors takes precedence over
|
|
6
|
+
the guide's example RGB palette. Foreground, background, selection and cursor use
|
|
7
|
+
terminal defaults. Hierarchy comes from space, thin rules, dots, weight, underline
|
|
8
|
+
and inverse focus rather than colored surfaces. Legacy appearance settings
|
|
9
|
+
normalize to terminal defaults.
|
|
10
|
+
|
|
11
|
+
## Deliberate regions
|
|
12
|
+
|
|
13
|
+
The header keeps identification on the left and actions against the right edge.
|
|
14
|
+
Overflow uses a continuous thin rail with a single draggable dot. Native scroll
|
|
15
|
+
controls retain layout, pointer capture, wheel handling and keyboard interaction.
|
|
16
|
+
The same treatment applies to history, documents, instruments and selectors.
|
|
17
|
+
|
|
18
|
+
Conversation remains the primary surface. At 110 columns and wider, an optional
|
|
19
|
+
instrument rail starts at 38% width, with actual inference readings and a
|
|
20
|
+
collapsed session section. Its one-cell divider drags to resize while preserving
|
|
21
|
+
at least 40 transcript columns. Dragging fully right collapses it to an arrow
|
|
22
|
+
handle; clicking or dragging that handle restores it. On smaller terminals it
|
|
23
|
+
starts closed; DETAILS opens a bounded stacked section. Width, collapse and
|
|
24
|
+
disclosure choices survive state updates and resizing. Unknown
|
|
25
|
+
readings remain `--`; meters show their actual numeric reading. No invented
|
|
26
|
+
telemetry, electrical diagrams or decorative targets are displayed.
|
|
27
|
+
|
|
28
|
+
The input region contains the draft, prompt and actions relevant to that draft.
|
|
29
|
+
Idle enhancement is hidden until there is text. Run and media status sit above
|
|
30
|
+
the input rule. The footer keeps one set of key hints and existing controls.
|
|
31
|
+
No duplicate hint row or telemetry module is placed inside the editor.
|
|
32
|
+
|
|
33
|
+
Configuration and help use native modal controls over the retained conversation.
|
|
34
|
+
The underlying page is dimmed through text attributes, with its terminal colors,
|
|
35
|
+
links and selection intact. Sparse hard-corner frames reserve their own border
|
|
36
|
+
cells, with short connected horizontal and vertical arms. Opening grows a small
|
|
37
|
+
center square to the dialog's bounds; closing reverses that motion. Content
|
|
38
|
+
layout stays fixed. Outside clicks dismiss the topmost dialog without activating
|
|
39
|
+
the underlying page. Animations stop after completion and on disposal.
|
|
40
|
+
|
|
41
|
+
Standalone session dashboards, broker reports, GPU policy, diagnostics and related
|
|
42
|
+
notices use their own native document modals. Read-only reports offer Refresh;
|
|
43
|
+
mutating commands never gain an implicit replay action. Scoped output capture
|
|
44
|
+
does not divert unrelated assistant/tool work or replace stdout. Stream lifecycle,
|
|
45
|
+
token/context counters and voice acknowledgements update structured chrome;
|
|
46
|
+
short notices expire after five seconds. Answers and real errors remain durable.
|
|
47
|
+
|
|
48
|
+
The sidebar's bottom device section occupies three rows until expanded. Its
|
|
49
|
+
native device list shows measured utilization and memory, with policy controls
|
|
50
|
+
using the existing `/gpu` selector and broker eligibility checks. Desktop NVIDIA
|
|
51
|
+
telemetry uses nvidia-smi; Jetson uses jtop and explicitly labels unified memory.
|
|
52
|
+
Missing sensors remain unknown. Detailed lease notices stay in STATUS's modal,
|
|
53
|
+
so they cannot displace device readings. These readings do not assert model-runner
|
|
54
|
+
placement. Hardware readings update on the existing collector; policy discovery
|
|
55
|
+
is coalesced and throttled separately.
|
|
56
|
+
|
|
57
|
+
JSON and fenced code share native syntax attributes over terminal-default colors.
|
|
58
|
+
JSON formatting changes whitespace only, preserving numeric and string lexemes.
|
|
59
|
+
Incomplete streams retain their source text. Headings and code disclosures remain
|
|
60
|
+
nested under their originating turn, with independent collapse state retained
|
|
61
|
+
during streamed updates. Bundled Tree-sitter grammars and a lexical fallback
|
|
62
|
+
require no grammar downloads.
|
|
63
|
+
|
|
64
|
+
`/vim [on|off|status]` controls the native composer, following the normal/insert
|
|
65
|
+
mode distinction in the [official Codex command documentation](https://learn.chatgpt.com/docs/developer-commands).
|
|
66
|
+
Esc enters normal mode; i/a/I/A return to insertion. Native buffer operations
|
|
67
|
+
support movement, counts, deletion/change/yank/paste, undo/redo, selection, find
|
|
68
|
+
and search without replacing the renderer or reparsing raw terminal input.
|
|
69
|
+
`/neovim [file]` and `/nvim` retain the project editor in an embedded native
|
|
70
|
+
terminal, with built-in file browsing, scoped terminal-default styling and no
|
|
71
|
+
automatic plugin downloads. Normal exit preserves unsaved buffers; only actual
|
|
72
|
+
application shutdown force-cleans the child process.
|
|
73
|
+
|
|
74
|
+
Set `OMNIUS_TUI_REDUCE_MOTION=1` (or `REDUCE_MOTION=1`) to paint the final
|
|
75
|
+
corner frame immediately.
|
|
76
|
+
|
|
77
|
+
## Interaction and implementation
|
|
78
|
+
|
|
79
|
+
- F1 opens help. DETAILS or Ctrl+Shift+I toggles the instrument rail.
|
|
80
|
+
- With an empty draft, Tab and Shift+Tab traverse native controls; a nonempty
|
|
81
|
+
draft retains existing completion behavior. Enter or Space activates buttons
|
|
82
|
+
and disclosures. Escape returns to editing or closes a popup.
|
|
83
|
+
- Popup selectors retain filtering, arrows, confirmation, nested navigation and
|
|
84
|
+
secret masking. Documents, cards and modal actions participate in keyboard
|
|
85
|
+
traversal. Native focus uses inverse video.
|
|
86
|
+
- Updates retain semantic component identity and expansion state. Inactive
|
|
87
|
+
panels do not rebuild on every token or metadata update.
|
|
88
|
+
- OpenTUI owns the render tree, layout, selection, editing and input. Small
|
|
89
|
+
component paint hooks supply dot rails and corner arms. Visible-buffer
|
|
90
|
+
attribute hooks repair default-color selection contrast and dim popup
|
|
91
|
+
underlays without replacing the renderer or rewriting stored history.
|
|
92
|
+
- The worker resets its cursor color to the operator's default through ordered,
|
|
93
|
+
coalesced NativeSession writes, including suspend/resume and shutdown.
|
|
94
|
+
|
|
95
|
+
The [complete command and menu audit](instrument-command-surface-audit.md) maps
|
|
96
|
+
all 119 catalog entries, their aliases and 356 signatures to shared presentation
|
|
97
|
+
paths. It distinguishes 106 implemented commands from 13 planned entries and
|
|
98
|
+
indexes all 94 inspected selector call sites. Runtime menu items use the same
|
|
99
|
+
components. The audit also repairs Help-to-editor handoff, the blocked network
|
|
100
|
+
menu, nested pause ownership and remaining diagnostic/dashboard framing. It does
|
|
101
|
+
not claim to execute destructive or model-loading commands for visual checks.
|
|
102
|
+
|
|
103
|
+
## Verification
|
|
104
|
+
|
|
105
|
+
The focused test set includes native rendering, Unicode editing and selection,
|
|
106
|
+
hyperlinks, cursor restoration and output pressure, resize and dot dragging,
|
|
107
|
+
real telemetry projection, retained disclosures, existing terminal features and
|
|
108
|
+
the daemon's framed stream, delayed failure, subprocess failure and managed Stop
|
|
109
|
+
checks. Native layout is exercised at 60×20, 80×24, 100×30, 120×36 and 160×48.
|
|
110
|
+
|
|
111
|
+
`scripts/test-tui-instrument-live.mjs` starts the production CLI in an isolated
|
|
112
|
+
GNOME/VTE terminal on a private display and D-Bus session. It captures actual
|
|
113
|
+
terminal screenshots and exercises keyboard and pointer interactions. It permits
|
|
114
|
+
local model metadata and blocks inference and model-loading requests. It does
|
|
115
|
+
not change the operator's terminal profile or GPU workloads.
|
|
116
|
+
|
|
117
|
+
The earlier instrument baseline passed **599 tests across 75 focused files**,
|
|
118
|
+
including all required daemon transport checks. Current native checks also cover
|
|
119
|
+
the draggable sidebar, device monitor, code disclosures and Vim composer.
|
|
120
|
+
The updated curated regression set passed **767 CLI tests across 95 files plus
|
|
121
|
+
five Jetson telemetry tests**, with source hashes unchanged during execution.
|
|
122
|
+
The retained editor also passed a real installed Neovim 0.11.6 PTY check.
|
|
123
|
+
The production GNOME/VTE run passed all **16 checks with 23 actual screenshots**,
|
|
124
|
+
with default foreground/background
|
|
125
|
+
intent on every visible cell in both dark and light profiles. No model generation
|
|
126
|
+
or model loading was requested for this interface change.
|
|
127
|
+
|
|
128
|
+
- [Targeted verification](evidence/instrument-targeted-verification-20261016.json)
|
|
129
|
+
- [Updated targeted verification](evidence/instrument-targeted-verification-20261016-updated.json)
|
|
130
|
+
- [Native scenarios and timing limits](evidence/instrument-semantic-components-20261016.json)
|
|
131
|
+
- [Actual terminal run](evidence/instrument-production-terminal-live.json)
|
|
132
|
+
- [Sidebar resizing](evidence/instrument-divider-resized-160x48.png), [collapsed handle](evidence/instrument-divider-collapsed-160x48.png)
|
|
133
|
+
- [Device monitor](evidence/instrument-devices-expanded-120x36.png), [GPU policy report](evidence/instrument-report-gpu-120x36.png)
|
|
134
|
+
- [Vim composer](evidence/instrument-vim-composer-120x36.png)
|
|
135
|
+
- [Wide layout](evidence/instrument-120x36.png), [narrow layout](evidence/instrument-60x20.png)
|
|
136
|
+
- [Dark popup](evidence/instrument-popup-dark-120x36.png), [light popup](evidence/instrument-popup-light-120x36.png)
|
|
137
|
+
- [Configuration](evidence/instrument-popup-config-120x36.png), [network](evidence/instrument-popup-network-120x36.png), [nested input](evidence/instrument-popup-api-input-120x36.png)
|
|
138
|
+
|
|
139
|
+
All workspace packages were cleaned and rebuilt before bundling. A fresh tarball
|
|
140
|
+
passed README/metadata, native worker and artifact checks, followed by six actual
|
|
141
|
+
terminal checks in a fresh isolated installation. Installed Node help, SQLite,
|
|
142
|
+
Bun and OpenTUI also passed. Only Bun and SQLite install scripts were enabled;
|
|
143
|
+
the application's service setup did not run. The package was not published to
|
|
144
|
+
npm. The operator's existing tracked publishing and catalog changes were restored
|
|
145
|
+
and verified byte for byte after the build.
|
|
146
|
+
|
|
147
|
+
- [Package artifact](evidence/instrument-package-artifact-20261016.json)
|
|
148
|
+
- [Fresh installation and actual terminal](evidence/instrument-package-install-20261016.json)
|
|
149
|
+
|
|
150
|
+
The previous renderer and local inference repair are documented in
|
|
151
|
+
[native-tui-renderer.md](native-tui-renderer.md). Its October 15 measurements are
|
|
152
|
+
historical. This visual change does not claim a new model-inference benchmark or
|
|
153
|
+
a pass of the entire CLI suite.
|
|
154
|
+
|
|
155
|
+
The [desktop indicator report](desktop-projects.md) covers the project dropdown,
|
|
156
|
+
monochrome assets and actual native menu-to-terminal launches.
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Every interactive terminal surface uses `@opentui/core@0.6.6`. Node owns the
|
|
4
4
|
agent and services; a packaged Bun 1.3.14 process owns OpenTUI, raw terminal
|
|
5
|
-
input, focus, layout, scrolling, selection and painting. The
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
input, focus, layout, scrolling, selection and painting. The October 16
|
|
6
|
+
[instrument interface](instrument-tui.md) replaces the former Earth palette with
|
|
7
|
+
terminal defaults and introduces lightweight geometry and collapsible telemetry.
|
|
8
|
+
Header actions, agent tabs, history, pinned tasks, expandable input, enhancement
|
|
9
|
+
controls and metrics retain their functional structure.
|
|
8
10
|
The implementation uses OpenTUI's [imperative native renderables](https://github.com/anomalyco/opentui/tree/main/packages/core).
|
|
9
11
|
|
|
10
12
|
## Component contract
|
|
@@ -24,12 +26,12 @@ Machine-readable and piped output remain plain streams.
|
|
|
24
26
|
|
|
25
27
|
There is no terminal-cell screen compositor, physical cursor painter, manual
|
|
26
28
|
wrapped-row index, mouse escape parser or second raw keyboard parser in the
|
|
27
|
-
application.
|
|
28
|
-
cursor/screen controls are discarded. Persisted tool data and live inference,
|
|
29
|
+
application. Semantic text preserves attributes and links while following the
|
|
30
|
+
operator's terminal colors; cursor/screen controls are discarded. Persisted tool data and live inference,
|
|
29
31
|
shell, trajectory, action-tree, media and sub-agent data become native cards.
|
|
30
32
|
Session restoration preserves semantic documents and old stored transcripts.
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## October 15 verification
|
|
33
35
|
|
|
34
36
|
- `pnpm --filter omnius exec vitest run tests/native-components.test.ts` runs
|
|
35
37
|
actual OpenTUI under packaged Bun, including long-history scrolling and
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.864",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.864",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
|
@@ -2783,13 +2783,13 @@
|
|
|
2783
2783
|
}
|
|
2784
2784
|
},
|
|
2785
2785
|
"node_modules/asn1js": {
|
|
2786
|
-
"version": "3.0
|
|
2787
|
-
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.
|
|
2788
|
-
"integrity": "sha512-
|
|
2786
|
+
"version": "3.1.0",
|
|
2787
|
+
"resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.1.0.tgz",
|
|
2788
|
+
"integrity": "sha512-HWYi1THkOqguCiO+vwj09ZkQFD2kKEsejYHAYCtX0D80WVdoDnvRc9IukXX/jeb0T9NRWJnRtqwdbHltnFjwXA==",
|
|
2789
2789
|
"license": "BSD-3-Clause",
|
|
2790
2790
|
"dependencies": {
|
|
2791
2791
|
"pvtsutils": "^1.3.6",
|
|
2792
|
-
"pvutils": "^1.
|
|
2792
|
+
"pvutils": "^1.2.0",
|
|
2793
2793
|
"tslib": "^2.8.1"
|
|
2794
2794
|
},
|
|
2795
2795
|
"engines": {
|
package/package.json
CHANGED