omnius 1.0.869 → 1.0.871
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/README.md +48 -840
- package/dist/api/py-embed.js +12 -0
- package/dist/index.js +2 -2
- package/dist/library.js +21 -5
- package/dist/tui/native/worker.js +11 -0
- package/dist/update-worker.js +12 -0
- package/docs/.vitepress/config.mts +1 -0
- package/docs/DISCOVERY.json +1095 -24
- package/docs/DISCOVERY.md +30 -2
- package/docs/design/omni-analysis-TODO.md +60 -0
- package/docs/design/single-final-response-TODO.md +93 -0
- package/docs/reference/omni-analysis.md +251 -0
- package/docs/reference/rest-api.md +19 -6
- package/docs/work-orders/evidence/final-reply-browser-20261016.json +1225 -0
- package/docs/work-orders/evidence/final-reply-dark-1440-accepted-final.png +0 -0
- package/docs/work-orders/evidence/final-reply-light-320-accepted-final.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-failed-partial.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-100x30.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-120x36.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-160x48.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-60x20.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-80x24.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-clean.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-live-clean.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-paused-partial.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-restored-clean.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-technical-expanded.png +0 -0
- package/docs/work-orders/evidence/instrument-completion-live-20261016/report.json +743 -0
- package/docs/work-orders/evidence/native-completion-presentation-verification-20261016.json +65 -0
- package/docs/work-orders/evidence/omni-analysis-browser-20261017.json +577 -0
- package/docs/work-orders/evidence/omni-analysis-desktop-controls-20261017.png +0 -0
- package/docs/work-orders/evidence/omni-analysis-desktop-evidence-20261017.png +0 -0
- package/docs/work-orders/evidence/omni-analysis-execution-verification-20261017.json +78 -0
- package/docs/work-orders/evidence/omni-analysis-integration-verification-20261017.json +215 -0
- package/docs/work-orders/evidence/omni-analysis-phone-controls-20261017.png +0 -0
- package/docs/work-orders/evidence/omni-analysis-phone-model-20261017.png +0 -0
- package/docs/work-orders/evidence/tui-response-ownership-verification-20261016.json +79 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,893 +1,101 @@
|
|
|
1
1
|
# Omnius
|
|
2
2
|
|
|
3
|
-
Omnius is a local-first
|
|
3
|
+
Omnius is a local-first runtime for AI-assisted software development and generative work. It brings a terminal interface, browser dashboard, automation API, agent execution, memory, and media tools into one workspace-oriented system.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Omnius connects to local and remote model providers. Projects retain their own sessions and generated artifacts, while model weights and runtime dependencies are shared across workspaces.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/omnius)
|
|
8
8
|
[](https://nodejs.org/)
|
|
9
|
-
[](
|
|
9
|
+
[](https://creativecommons.org/licenses/by-nc/4.0/)
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Get started
|
|
12
|
+
|
|
13
|
+
Requires Node.js 22 or newer and npm 10 or newer.
|
|
12
14
|
|
|
13
15
|
```bash
|
|
14
16
|
npm install -g omnius
|
|
15
17
|
omnius
|
|
16
18
|
```
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
No API key or local model download is required. It selects the highest-ranked
|
|
20
|
-
compatible free model from the current catalog and retains a known default
|
|
21
|
-
when catalog discovery is temporarily unavailable. Use `/model` to choose among
|
|
22
|
-
the built-in free models and models on your configured endpoint. Existing local
|
|
23
|
-
and cloud profiles are preserved, including temporarily offline endpoints.
|
|
24
|
-
|
|
25
|
-
Automatic fallback tries compatible alternatives within its time and rate-limit
|
|
26
|
-
bounds. External services can still be unavailable; Omnius reports exhaustion
|
|
27
|
-
without claiming a successful answer. `/fallback manual` asks before switching
|
|
28
|
-
to an alternative after the selected endpoint or model fails.
|
|
29
|
-
|
|
30
|
-
Use `/setup` for optional provider configuration, `/free` inside setup to return
|
|
31
|
-
to built-in free inference, or `/setup local` for local model setup. Setup asks
|
|
32
|
-
for a key only when you choose a provider that requires one. Keys stay local;
|
|
33
|
-
the setup helper sees opaque references, and only the selected provider receives
|
|
34
|
-
its key for the connection check. Local model downloads remain an explicit choice.
|
|
35
|
-
|
|
36
|
-
The base install is compiler-free: a fresh machine does not need `make`, a C++
|
|
37
|
-
toolchain, or Python just to install and launch Omnius. The installer provisions
|
|
38
|
-
the AIWG companion separately without its optional native semantic-index addon,
|
|
39
|
-
so an unavailable native build cannot roll back the Omnius CLI.
|
|
40
|
-
|
|
41
|
-
If npm succeeds but a new terminal reports `omnius: command not found`, inspect
|
|
42
|
-
the global prefix and add its command directory to `PATH`:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
npm prefix -g
|
|
46
|
-
export PATH="$(npm prefix -g)/bin:$PATH"
|
|
47
|
-
hash -r
|
|
48
|
-
omnius --version
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Persist that export in the profile used by your shell, or open a new terminal
|
|
52
|
-
after an nvm/fnm setup change. `npx omnius@latest` is an immediate fallback.
|
|
53
|
-
|
|
54
|
-
Requirements:
|
|
55
|
-
|
|
56
|
-
- Node.js 22 or newer
|
|
57
|
-
- npm 10 or newer for published CLI use
|
|
58
|
-
- pnpm 9 or newer for workspace development
|
|
59
|
-
- Internet access for built-in free inference, or a configured local model or remote endpoint
|
|
60
|
-
|
|
61
|
-
Start the REST daemon:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
omnius serve
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
The daemon defaults to `http://127.0.0.1:11435`. Open the interactive API docs at `http://127.0.0.1:11435/docs`.
|
|
68
|
-
|
|
69
|
-
Register the native system tray indicator (Linux, macOS, and Windows x64):
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
omnius tray install
|
|
73
|
-
omnius tray status
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
The per-login indicator observes the daemon over loopback, checks health and npm
|
|
77
|
-
updates every 10 seconds, and provides dashboard, logs, and explicit daemon
|
|
78
|
-
controls. Its version row is passive when current and becomes a verified global
|
|
79
|
-
update action only when a newer exact semver is available. See the
|
|
80
|
-
[system tray guide](docs/guides/system-tray.md), including Ubuntu/GNOME setup.
|
|
20
|
+
Use `/setup` to configure inference and `/help` to explore terminal commands. See [installation](docs/getting-started/install.md), [first run](docs/getting-started/first-run.md), and [model providers](docs/getting-started/model-providers.md) for setup details.
|
|
81
21
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
The npm package ships its complete documentation and a machine-readable
|
|
85
|
-
capability catalog. An agent does not need to inspect Omnius source or guess
|
|
86
|
-
which endpoint owns a capability:
|
|
22
|
+
To open the browser dashboard and API:
|
|
87
23
|
|
|
88
24
|
```bash
|
|
89
|
-
omnius discover "bring your own inference"
|
|
90
|
-
omnius show workflow.choose-entrypoint
|
|
91
|
-
omnius show layer.orchestration
|
|
92
|
-
omnius show store.project
|
|
93
|
-
omnius show provider.anthropic
|
|
94
|
-
omnius show provider.gemini
|
|
95
|
-
omnius show tool.web-search
|
|
96
|
-
omnius discover "evidence-bound decision impasse"
|
|
97
|
-
omnius show tool.adjudicate
|
|
98
|
-
omnius discover "osint research"
|
|
99
|
-
omnius show capability.osint-research
|
|
100
|
-
omnius capabilities --json
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
With the daemon running, begin at `GET /v1/discovery/bootstrap`. The same
|
|
104
|
-
discovery cascade is available at `GET /v1/discovery`, with exact entry expansion at
|
|
105
|
-
`GET /v1/discovery/{id}`. The live API contract remains available at
|
|
106
|
-
`/openapi.json`, direct tool metadata at `/v1/tools`, and skills at
|
|
107
|
-
`/v1/skills`.
|
|
108
|
-
|
|
109
|
-
Start with [the discovery guide](docs/DISCOVERY.md) when integrating another
|
|
110
|
-
agent or service, and use the [agent system map](docs/architecture/agent-system-map.md)
|
|
111
|
-
to trace layers, modules, runtimes, and state ownership. Use [bring-your-own inference](docs/guides/bring-your-own-inference.md)
|
|
112
|
-
for provider protocols and keys, and [tools and web search](docs/guides/tools-and-web-search.md)
|
|
113
|
-
for the distinction between direct tools and agent-bound tools. The
|
|
114
|
-
[evidence-bound adjudication guide](docs/ADJUDICATION.md) explains how a
|
|
115
|
-
top-level full agent freezes an admissible record, isolates a genuine decision
|
|
116
|
-
impasse from accumulated working context, fans review out across fresh
|
|
117
|
-
evidence-scoped constituents, validates evidence citations and quorum, and
|
|
118
|
-
produces a durable verdict receipt. Top-level runtimes execute constituents in
|
|
119
|
-
a dedicated `full_sub_agent` process profile that cannot load tools, project
|
|
120
|
-
context, memory, or the ambient parent environment. The process runs outside
|
|
121
|
-
the project directory. Cancellation and deadlines terminate its child processes;
|
|
122
|
-
ordinary child transport failure is recorded before bounded direct fallback.
|
|
123
|
-
Planner schema drift uses a deterministic question-framing fallback, and
|
|
124
|
-
durable artifact replay verifies the case, findings, verdict, and receipt
|
|
125
|
-
hashes without new inference. The
|
|
126
|
-
[categorized OSINT research guide](docs/guides/osint-research.md) documents
|
|
127
|
-
the local discover → exact expansion → explicit web-tool workflow.
|
|
128
|
-
|
|
129
|
-
## What Omnius Does
|
|
130
|
-
|
|
131
|
-
- Runs autonomous coding tasks, edits files, executes tools, tests changes, and iterates on failures.
|
|
132
|
-
- Resolves genuine decision impasses in fresh evidence-scoped contexts that reduce parent-context anchoring, with host-validated citations, quorum, preserved dissent, and durable verdict receipts.
|
|
133
|
-
- Provides a dense terminal UI for model selection, endpoint routing, task control, shell output, voice, sponsors, Telegram, and system telemetry.
|
|
134
|
-
- Exposes a REST daemon with OpenAI/Ollama-compatible inference, agentic task execution, memory, skills, tools, MCP, events, voice, projects, and governance endpoints.
|
|
135
|
-
- Routes models through local, cloud, sponsor, and peer-to-peer endpoints without assuming local Ollama is the only source.
|
|
136
|
-
- Supports realtime spoken conversation for ASR/TTS clients through `/realtime` and REST `realtime: true`.
|
|
137
|
-
- Supports image, video, sound, music, TTS, ASR, voice clone references, Telegram media workflows, and sponsor-provided media generation.
|
|
138
|
-
- Keeps project runtime state in `.omnius/`, which is intentionally ignored by git.
|
|
139
|
-
|
|
140
|
-
## Common Workflows
|
|
141
|
-
|
|
142
|
-
For large PDF collections, Omnius retains originals in a durable scoped index
|
|
143
|
-
and processes ordering, manipulation, summary and extraction in resumable steps.
|
|
144
|
-
See the [PDF collections guide](docs/guides/pdf-collections.md) for coverage,
|
|
145
|
-
source provenance, numeric checks and complete delivery of large results.
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
omnius "inspect this repo and summarize the main entrypoints"
|
|
149
25
|
omnius serve
|
|
150
26
|
```
|
|
151
27
|
|
|
152
|
-
|
|
153
|
-
/help command help
|
|
154
|
-
/model select or inspect the active model
|
|
155
|
-
/endpoint select or configure local, cloud, sponsor, or peer endpoints
|
|
156
|
-
/title name the current session
|
|
157
|
-
/realtime toggle short ASR/TTS-oriented conversation mode
|
|
158
|
-
/voice choose TTS, voice-clone, voicechat, and ASR controls
|
|
159
|
-
/voice asr select, set up, activate, or test an exact ASR engine/model
|
|
160
|
-
/indicator reconcile the daemon, then start the native tray indicator
|
|
161
|
-
/update check force an update availability check
|
|
162
|
-
/update quick run the verified global update with live TUI progress
|
|
163
|
-
/update full run the full clean/build/install/restart verification flow
|
|
164
|
-
/broker inspect model broker, RAM/VRAM thresholds, and loaded models
|
|
165
|
-
/sponsor expose local or upstream capacity to peers
|
|
166
|
-
/cohere participate in distributed COHERE inference
|
|
167
|
-
/telegram configure or toggle the Telegram bridge
|
|
168
|
-
/skills list explorable skills and docs memories
|
|
169
|
-
/pause pause after the current turn boundary
|
|
170
|
-
/stop interrupt the active run
|
|
171
|
-
/resume resume saved state
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Current Feature Areas
|
|
175
|
-
|
|
176
|
-
| Area | What to read |
|
|
177
|
-
| --- | --- |
|
|
178
|
-
| Install and setup | [Install](docs/getting-started/install.md), [First run](docs/getting-started/first-run.md), [Model providers](docs/getting-started/model-providers.md) |
|
|
179
|
-
| Agent discovery | [Discovery cascade](docs/DISCOVERY.md), [machine catalog](docs/DISCOVERY.json), [agent integration](docs/guides/agent-integration.md) |
|
|
180
|
-
| Bring your own inference | [Provider protocols and keys](docs/guides/bring-your-own-inference.md) |
|
|
181
|
-
| Tools and web search | [Tool discovery and invocation](docs/guides/tools-and-web-search.md) |
|
|
182
|
-
| Evidence-bound adjudication | [Adjudication tool, panel workflow, verdict contract, and harness](docs/ADJUDICATION.md) |
|
|
183
|
-
| Terminal workflows | [TUI workflows](docs/guides/tui-workflows.md), [Slash commands](docs/reference/slash-commands.md) |
|
|
184
|
-
| Web dashboard | [All dashboard routes, workspaces, sessions, Voice, Generate, updates, and observability](docs/guides/dashboard.md) |
|
|
185
|
-
| REST daemon | [REST reference](docs/reference/rest-api.md), [REST quickref](docs/rest/QUICKREF.md), [OpenAPI source](docs/rest/openapi-source.md) |
|
|
186
|
-
| System tray | [Cross-platform tray and Ubuntu setup](docs/guides/system-tray.md) |
|
|
187
|
-
| Realtime voice chat | [Realtime guide](docs/guides/realtime.md) |
|
|
188
|
-
| TTS and selectable ASR | [Voice/vision REST guide](docs/rest/endpoints/voice-vision.md), [Dashboard Voice page](docs/guides/dashboard.md#voice-and-asr) |
|
|
189
|
-
| Sponsor and COHERE mesh | [Sponsor and COHERE guide](docs/guides/sponsor-and-cohere.md) |
|
|
190
|
-
| Telegram bridge | [Telegram guide](docs/guides/telegram.md) |
|
|
191
|
-
| Media generation | [Media guide](docs/guides/media-generation.md) |
|
|
192
|
-
| Operations | [Runtime hygiene](docs/operations/runtime-hygiene.md), [Security and remote access](docs/operations/security-and-remote-access.md) |
|
|
193
|
-
| Service compatibility | [Runtime version gate](docs/operations/version-compatibility.md) |
|
|
194
|
-
| Architecture | [Architecture overview](docs/architecture/overview.md) |
|
|
195
|
-
| Agent-explorable docs | [Agent memory docs index](docs/agent-memory/INDEX.md) |
|
|
196
|
-
|
|
197
|
-
## Web Dashboard
|
|
198
|
-
|
|
199
|
-
`omnius serve` exposes a self-contained operational dashboard at
|
|
200
|
-
`http://127.0.0.1:11435/`. All pages use the same compact NOCLIP-derived style
|
|
201
|
-
tokens and responsive observability-card grid, while keeping workspace, model,
|
|
202
|
-
session, run, service, and update state visible instead of hiding it behind
|
|
203
|
-
decorative pages.
|
|
204
|
-
|
|
205
|
-
| Route | Purpose |
|
|
206
|
-
| --- | --- |
|
|
207
|
-
| `/chat` (`/`) | Stateful browser and imported TUI chats, full-history hydration, live run recovery, attachments, files, plan/context, and steering check-ins |
|
|
208
|
-
| `/agent` | One-shot task contracts, personas/profiles, tool/isolation controls, run records, output, and events |
|
|
209
|
-
| `/voice` | Voicechat, exact TTS model/options, clone references, ASR engine/model setup and activation, real-file ASR testing, transcript, and TTS testing |
|
|
210
|
-
| `/generate` | Image/video/audio/music jobs, AV analysis, model/store controls, relocation progress, and global gallery |
|
|
211
|
-
| `/projects` | Scan, register, rename, activate, and remove workspaces |
|
|
212
|
-
| `/dashboard` (`/jobs`) | CPU/RAM/GPU/VRAM, processes, scheduler, services, usage, and verified updates |
|
|
213
|
-
| `/activity` | Live run/tool/memory/engine event observability |
|
|
214
|
-
| `/discover` | Agent bootstrap, capability intent search, and exact entry expansion |
|
|
215
|
-
| `/settings` (`/config`) | Models, endpoints, voice, runtime, access, keys, appearance, and services |
|
|
216
|
-
|
|
217
|
-
The clickable sidebar brand opens the registered-workspace picker. Workspace
|
|
218
|
-
selection scopes preferences, files, session history, chat pins/folders/search,
|
|
219
|
-
and agent defaults. Chats, TUI visual history, and one-shot agent runs are
|
|
220
|
-
distinct records: `/quit`, `/exit`, manual-save noise, empty histories, and
|
|
221
|
-
duplicate TUI transcripts are rejected from the chat projection; selecting a
|
|
222
|
-
valid session loads its full history and in-flight status from the daemon.
|
|
223
|
-
The chat top bar also reports the effective API base path and authentication
|
|
224
|
-
mode. Streams retain split frames, Stop terminates the daemon-owned process
|
|
225
|
-
lease, and assistant-provided web/file links stay inert until the daemon
|
|
226
|
-
returns a validation receipt.
|
|
227
|
-
|
|
228
|
-
The dashboard checks for updates every 10 seconds. An update button appears only
|
|
229
|
-
for a newer exact semver and drives `POST /v1/update`, then polls the durable
|
|
230
|
-
transaction until the global npm package, resolved executable, restarted daemon,
|
|
231
|
-
package/boot hashes, and tray runtime are reconciled. See the
|
|
232
|
-
[complete dashboard guide](docs/guides/dashboard.md) for state ownership,
|
|
233
|
-
security, page-by-page behavior, and exact REST flows.
|
|
234
|
-
|
|
235
|
-
## Terminal Over SSH
|
|
236
|
-
|
|
237
|
-
The TUI paints for a local terminal, where a full-area repaint costs nothing.
|
|
238
|
-
Over a network the same cadence has to share the link with your keystrokes, so
|
|
239
|
-
Omnius detects a remote session (`SSH_TTY` / `SSH_CONNECTION` / `SSH_CLIENT`)
|
|
240
|
-
and paces itself: decorative chrome animates slower, a wheel-scroll burst is
|
|
241
|
-
collapsed into a single repaint, unchanged footer frames are not re-sent, and
|
|
242
|
-
the mouse filter allows more time for escape sequences split across packets.
|
|
243
|
-
Nothing changes about how the TUI looks, and local sessions are unaffected.
|
|
244
|
-
|
|
245
|
-
Detection is environment-based, so it can miss a session where those variables
|
|
246
|
-
do not reach the process — most often tmux or mosh, whose panes may inherit a
|
|
247
|
-
stale environment from the server. Force the profile when that happens:
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
OMNIUS_TUI_PACING=remote omnius # pace for a network link
|
|
251
|
-
OMNIUS_TUI_PACING=local omnius # force local cadence
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
If scrolling or typing still feels heavy, `OMNIUS_TUI_PROFILE=compatible`
|
|
255
|
-
additionally drops the animated truecolor chrome, and `OMNIUS_TUI_PERF=1` logs
|
|
256
|
-
any content reflow that overruns its frame budget to stderr.
|
|
257
|
-
|
|
258
|
-
## Shared Media Dependencies
|
|
259
|
-
|
|
260
|
-
Image, video, audio, and music generation share a **single, system-wide dependency store** instead of duplicating heavy runtimes per project or per Telegram group.
|
|
28
|
+
The default dashboard address is `http://127.0.0.1:11435/`, with interactive API documentation at `/docs`.
|
|
261
29
|
|
|
262
|
-
|
|
30
|
+
## System overview
|
|
263
31
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
| Location | Holds |
|
|
32
|
+
| Layer | Responsibility |
|
|
267
33
|
| --- | --- |
|
|
268
|
-
|
|
|
269
|
-
|
|
|
270
|
-
|
|
|
271
|
-
|
|
|
272
|
-
|
|
|
34
|
+
| Interfaces | Terminal sessions, browser workspaces, command-line automation, and system tray integration |
|
|
35
|
+
| Agent runtime | Task execution, tool use, delegated agents, verification, and resumable work |
|
|
36
|
+
| Inference | Model selection and routing across local servers, configured providers, and peers |
|
|
37
|
+
| Tools | Files, code, shell commands, web access, browser automation, and extensible capabilities |
|
|
38
|
+
| Memory and retrieval | Project context, indexed material, persistent memory, and targeted retrieval |
|
|
39
|
+
| Media and voice | Image, video, audio, music, speech recognition, and speech synthesis |
|
|
40
|
+
| Integration | REST APIs, events, MCP, Telegram, and shared inference services |
|
|
273
41
|
|
|
274
|
-
|
|
42
|
+
The [architecture overview](docs/architecture/overview.md) and [agent system map](docs/architecture/agent-system-map.md) describe the runtime boundaries and state ownership.
|
|
275
43
|
|
|
276
|
-
|
|
44
|
+
## Workspaces and sessions
|
|
277
45
|
|
|
278
|
-
|
|
279
|
-
# TUI — current project only
|
|
280
|
-
/models cleanup
|
|
281
|
-
# TUI — every project + nested scoped group on this machine (dry-run first)
|
|
282
|
-
/models cleanup --all --dry-run
|
|
283
|
-
/models cleanup --all
|
|
284
|
-
```
|
|
46
|
+
A project provides the working directory for files, tools, conversations, and generated media. Terminal and browser interfaces expose saved sessions and project artifacts. Operational details remain available alongside the conversation without replacing its authored content.
|
|
285
47
|
|
|
286
|
-
|
|
287
|
-
# REST — preview, then apply
|
|
288
|
-
curl -s -X POST localhost:11435/v1/media/migrate -H 'content-type: application/json' -d '{"dryRun":true}'
|
|
289
|
-
curl -s -X POST localhost:11435/v1/media/migrate -H 'content-type: application/json' -d '{}'
|
|
290
|
-
# Inspect store + reclaimable legacy caches
|
|
291
|
-
curl -s localhost:11435/v1/media/store
|
|
292
|
-
```
|
|
48
|
+
Project state lives under `.omnius/`. Shared model weights and runtime dependencies are managed separately from project-generated media. See [terminal workflows](docs/guides/tui-workflows.md), the [dashboard guide](docs/guides/dashboard.md), and [media generation](docs/guides/media-generation.md).
|
|
293
49
|
|
|
294
|
-
|
|
50
|
+
## Automation and discovery
|
|
295
51
|
|
|
296
|
-
|
|
297
|
-
curl -s localhost:11435/v1/media/models
|
|
298
|
-
curl -s -X POST localhost:11435/v1/media/image -H 'content-type: application/json' -d '{"prompt":"a compact robot painter"}'
|
|
299
|
-
curl -s -X POST localhost:11435/v1/media/music -H 'content-type: application/json' -d '{"prompt":"warm lo-fi piano loop"}'
|
|
300
|
-
curl -s localhost:11435/v1/media/gallery
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
The same surface drives the **Generate** tab in the web UI (`http://127.0.0.1:11435`) — pick a kind (image/video/audio/music), choose a model loaded from the system, generate, and review every previously generated file in one global gallery.
|
|
304
|
-
|
|
305
|
-
## Recent Highlights
|
|
306
|
-
|
|
307
|
-
- The dashboard now has nine route-level operational surfaces with shared modular observability grids, a searchable workspace picker, and project-scoped navigation state.
|
|
308
|
-
- Chat history unifies persisted browser sessions with quality-filtered TUI transcripts, rejects command/noise sessions such as `/quit`, hydrates full history on selection, and exposes summaries, follow-up suggestions, reactive live deltas, and canonical deletion.
|
|
309
|
-
- `/indicator` reconciles daemon ownership and health before launching the tray; the tray polls every 10 seconds and turns its version row into a retryable verified-update action only when an update exists.
|
|
310
|
-
- Dashboard, tray, and TUI update actions now share an exact-version global transaction with live phase/output and package, executable, daemon, hash, restart, and tray verification.
|
|
311
|
-
- TTS exposes GLaDOS, Overwatch, `luxtts:announcer-testchamber03`, and configurable Voicebox models; ASR independently exposes Whisper, managed `transcribe-cli`, Nemotron readiness, and pinned Microsoft VibeVoice ASR with Jetson/ARM64 CUDA-aware setup.
|
|
312
|
-
- LuxTTS auto-setup on Jetson ARM64 requires CPU ONNX Runtime at import time, validates CUDA Torch separately against the host runtime, preserves existing caches during repair, and never substitutes generic PyPI Torch or automatic sudo for an AGX Orin deployment.
|
|
313
|
-
- `/realtime` and REST `realtime: true` provide short, natural, SOUL.md-aware conversation for ASR/TTS clients.
|
|
314
|
-
- Endpoint setup and sponsor setup aggregate models from all enabled endpoints, including external OpenAI-compatible routers.
|
|
315
|
-
- `/sponsor` can expose text inference and media generation for image, video, sound, and music with per-modality limits.
|
|
316
|
-
- Sponsor and COHERE status surfaces now use shared telemetry concepts: concurrency, request rate, daily tokens, peer usage, model usage, and remote system metrics.
|
|
317
|
-
- The TUI reports token production rate as `t/s`, supports Shift+Enter multiline input, and renders dynamic shell output inside bounded Unicode cards.
|
|
318
|
-
- Telegram state is scoped by user and group, supports durable reply preferences, and feeds raw platform/tool failures back into the agent loop.
|
|
319
|
-
- Telegram media ingress is byte- and duration-bounded, cache-only before routing, deduplicated by Telegram file identity, and evidence-gated after admission. Speech uses scoped transcription; music/general audio uses typed semantic or explicitly acoustic-only analysis without false listening claims.
|
|
320
|
-
- Telegram public creative work now includes typed PDF/DOCX creation and hash-guarded review, fixed-operation FFmpeg audio editing, and root-confined image crop/resize/mask/composite workflows. Host-signed content capabilities bind review evidence and durable Telegram delivery to the exact artifact bytes.
|
|
321
|
-
- Ollama pool cleanup now accounts for process groups and orphan runner processes that can keep VRAM pinned.
|
|
322
|
-
- REST documentation is available both as human docs and as Omnius-discoverable docs skills.
|
|
323
|
-
|
|
324
|
-
## REST API
|
|
325
|
-
|
|
326
|
-
Start the daemon (default `http://127.0.0.1:11435`; interactive docs at `/docs`, machine spec at `/openapi.json`):
|
|
52
|
+
Omnius can run a task directly from the command line:
|
|
327
53
|
|
|
328
54
|
```bash
|
|
329
|
-
omnius
|
|
55
|
+
omnius "inspect this repository and explain its main entrypoints"
|
|
330
56
|
```
|
|
331
57
|
|
|
332
|
-
|
|
58
|
+
Agents and integrations can discover capabilities through the CLI or daemon:
|
|
333
59
|
|
|
334
60
|
```bash
|
|
335
|
-
|
|
336
|
-
|
|
61
|
+
omnius discover "bring your own inference"
|
|
62
|
+
omnius show layer.orchestration
|
|
63
|
+
omnius capabilities --json
|
|
337
64
|
```
|
|
338
65
|
|
|
339
|
-
The
|
|
340
|
-
contract is generated from [`packages/cli/src/api/openapi.ts`](packages/cli/src/api/openapi.ts),
|
|
341
|
-
validated against [`docs/reference/rest-api.md`](docs/reference/rest-api.md),
|
|
342
|
-
and projected into the generated block below. `pnpm docs:check` now fails when
|
|
343
|
-
any of those three surfaces drift. Browser HTML pages, Swagger static assets,
|
|
344
|
-
and implementation-only compatibility bridges are intentionally outside this
|
|
345
|
-
stable REST contract.
|
|
66
|
+
The daemon provides stateful chat, agent execution, tools, memory, media, and OpenAI/Ollama-compatible inference interfaces. Begin with [agent integration](docs/guides/agent-integration.md) and the [discovery guide](docs/DISCOVERY.md).
|
|
346
67
|
|
|
347
68
|
<!-- BEGIN GENERATED REST INVENTORY -->
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
| Method | Path | Purpose |
|
|
351
|
-
| --- | --- | --- |
|
|
352
|
-
| `GET` | `/docs` | Swagger UI |
|
|
353
|
-
| `GET` | `/api/docs` | Swagger UI alias |
|
|
354
|
-
| `GET` | `/openapi.json` | OpenAPI JSON |
|
|
355
|
-
| `GET` | `/openapi.yaml` | OpenAPI YAML |
|
|
356
|
-
| `GET` | `/v3/api-docs` | OpenAPI alias |
|
|
357
|
-
| `GET` | `/swagger.json` | Swagger-era alias |
|
|
358
|
-
| `GET` | `/api-docs` | OpenAPI alias |
|
|
359
|
-
| `GET` | `/swagger-ui` | Swagger UI alias |
|
|
360
|
-
| `GET` | `/redoc` | ReDoc renderer |
|
|
361
|
-
| `GET` | `/` | HATEOAS API root when the client does not request HTML |
|
|
362
|
-
| `GET` | `/help` | Compact daemon integration help |
|
|
363
|
-
| `GET` | `/v1/routes` | Flat grep-friendly daemon route summary |
|
|
364
|
-
| `GET` | `/routes` | Route-summary compatibility alias |
|
|
365
|
-
| `GET` | `/asyncapi.json` | AsyncAPI 2.6 voicechat WebSocket contract |
|
|
366
|
-
| `GET` | `/asyncapi` | AsyncAPI compatibility alias |
|
|
367
|
-
|
|
368
|
-
### Health And Observability
|
|
369
|
-
|
|
370
|
-
| Method | Path | Purpose |
|
|
371
|
-
| --- | --- | --- |
|
|
372
|
-
| `GET` | `/health` | Liveness probe |
|
|
373
|
-
| `GET` | `/health/ready` | Backend readiness |
|
|
374
|
-
| `GET` | `/health/startup` | Startup probe |
|
|
375
|
-
| `GET` | `/version` | Package version and platform |
|
|
376
|
-
| `GET` | `/metrics` | Prometheus metrics |
|
|
377
|
-
| `GET` | `/v1/events` | Server-sent event stream |
|
|
378
|
-
| `GET` | `/v1/usage` | Token usage and rate limits |
|
|
379
|
-
| `GET` | `/v1/audit` | Audit log query |
|
|
380
|
-
| `GET` | `/v1/cost` | Cost tracker |
|
|
381
|
-
| `GET` | `/v1/system` | CPU, RAM, GPU, and system snapshot |
|
|
382
|
-
|
|
383
|
-
### Discovery
|
|
384
|
-
|
|
385
|
-
| Method | Path | Purpose |
|
|
386
|
-
| --- | --- | --- |
|
|
387
|
-
| `GET` | `/v1/discovery/bootstrap` | Compact agent bootstrap and start-here map |
|
|
388
|
-
| `GET` | `/v1/discovery` | Search layers, workflows, runtimes, modules, stores, and capabilities |
|
|
389
|
-
| `GET` | `/v1/discovery/{id}` | Expand one stable capability entry |
|
|
390
|
-
|
|
391
|
-
### Inference And Chat
|
|
392
|
-
|
|
393
|
-
| Method | Path | Purpose |
|
|
394
|
-
| --- | --- | --- |
|
|
395
|
-
| `GET` | `/v1/models` | Aggregated model list |
|
|
396
|
-
| `POST` | `/v1/chat/completions` | OpenAI-compatible chat completion |
|
|
397
|
-
| `POST` | `/v1/chat` | Stateful Omnius chat |
|
|
398
|
-
| `POST` | `/api/chat` | Ollama-compatible chat alias |
|
|
399
|
-
| `POST` | `/v1/generate` | Ollama-compatible one-shot generation |
|
|
400
|
-
| `POST` | `/api/generate` | Ollama-compatible generate alias |
|
|
401
|
-
| `POST` | `/v1/embeddings` | OpenAI-compatible embeddings |
|
|
402
|
-
| `POST` | `/api/embed` | Ollama-compatible embeddings alias |
|
|
403
|
-
| `GET` | `/api/tags` | Ollama-compatible model tags |
|
|
404
|
-
| `POST` | `/realtime` | Text-only voice-adapter reply from a transcript |
|
|
405
|
-
| `POST` | `/v1/realtime` | Auth-scoped realtime adapter alias |
|
|
406
|
-
| `GET` | `/v1/chat/sessions` | Workspace-scoped persisted browser chats and importable TUI sessions |
|
|
407
|
-
| `GET` | `/v1/chat/sessions/{id}` | Hydrate full session history, transcript, and in-flight state |
|
|
408
|
-
| `DELETE` | `/v1/chat/sessions/{id}` | Permanently delete a canonical chat or TUI history session |
|
|
409
|
-
| `POST` | `/v1/chat/sessions/{id}/summarize` | Generate + cache an inference-based session title/summary |
|
|
410
|
-
| `POST` | `/v1/chat/suggest-followup` | Suggest one short next-message follow-up (ghost-text input) |
|
|
411
|
-
| `GET` | `/v1/chat/sessions/{id}/status` | Reactive recall: live run status + unseen deltas (`?since=<seq>`) |
|
|
412
|
-
| `POST` | `/v1/chat/sessions/{id}/pause` | Pause the exact daemon-owned chat generation at a safe admission boundary |
|
|
413
|
-
| `POST` | `/v1/chat/sessions/{id}/resume` | Resume the exact paused daemon-owned chat generation |
|
|
414
|
-
| `POST` | `/v1/chat/sessions/{id}/stop` | Stop the daemon-owned chat process lease; idle/terminal calls are idempotent |
|
|
415
|
-
| `POST` | `/v1/chat/check-in` | Steering check-in for active chat |
|
|
416
|
-
| `POST` | `/v1/chat/attachments` | Upload an attachment for a stateful chat |
|
|
417
|
-
| `POST` | `/v1/links/validate` | Validate an external HTTP(S) destination under the daemon egress policy |
|
|
418
|
-
|
|
419
|
-
#### Session History Contract
|
|
420
|
-
|
|
421
|
-
`GET /v1/chat/sessions` is a history index, not merely a list of processes that
|
|
422
|
-
are currently active. It returns canonical persisted browser chats for the
|
|
423
|
-
selected workspace and, by default, quality-filtered TUI visual sessions that
|
|
424
|
-
can be imported on demand. Pass `?root=/absolute/workspace` to scope the list and
|
|
425
|
-
`?include_tui=0` to omit TUI history. Exit-only inputs such as `/quit` and
|
|
426
|
-
`/exit`, manual-save noise, empty transcripts, and duplicate normalized TUI
|
|
427
|
-
sessions are rejected by the session-quality projection rather than presented as
|
|
428
|
-
chats.
|
|
429
|
-
|
|
430
|
-
Selecting a row should call `GET /v1/chat/sessions/{id}`. That response hydrates
|
|
431
|
-
the complete public message history (system prompts are intentionally omitted),
|
|
432
|
-
the original TUI transcript when applicable, token counts, timestamps, source
|
|
433
|
-
and project identity, and any in-flight run with a bounded partial-output tail.
|
|
434
|
-
Use the `status` endpoint with `?since=<seq>` for cheap reactive polling while a
|
|
435
|
-
run is active. `DELETE /v1/chat/sessions/{id}` is an admin operation and removes
|
|
436
|
-
the canonical record; deleting only a browser-side row does not remove daemon
|
|
437
|
-
history.
|
|
438
|
-
|
|
439
|
-
Pause and resume use the exact session and active external-run identity. Both
|
|
440
|
-
operations require `run` scope. An idle session returns `200`. An accepted
|
|
441
|
-
request returns `200` with the lifecycle acknowledgement, owner generation,
|
|
442
|
-
current phase, resumability, and pending acknowledgement count. A lifecycle
|
|
443
|
-
rejection returns `409`. A live owner that does not acknowledge within the
|
|
444
|
-
control deadline returns `504`. Clients must not treat a local UI pause as a
|
|
445
|
-
daemon pause.
|
|
446
|
-
|
|
447
|
-
`POST /realtime` and `/v1/realtime` are text-only conversation adapters. They
|
|
448
|
-
accept transcript text through `message`, `text`, `recent_turn`, `asr_text`, or
|
|
449
|
-
`callerText`, optionally accept adapter-local `soul_md`, and can return plain
|
|
450
|
-
text with `Accept: text/plain` or `format: "text"`. ASR and TTS remain separate
|
|
451
|
-
operations.
|
|
452
|
-
|
|
453
|
-
### Agentic Runs
|
|
454
|
-
|
|
455
|
-
| Method | Path | Purpose |
|
|
456
|
-
| --- | --- | --- |
|
|
457
|
-
| `POST` | `/v1/run` | Submit agentic task |
|
|
458
|
-
| `GET` | `/v1/runs` | List runs |
|
|
459
|
-
| `GET` | `/v1/runs/{id}` | Get run details |
|
|
460
|
-
| `GET` | `/v1/runs/{id}/output` | Read captured run output and status |
|
|
461
|
-
| `DELETE` | `/v1/runs/{id}` | Abort run |
|
|
462
|
-
| `POST` | `/v1/todos` | Create or update todos for current session |
|
|
463
|
-
| `GET` | `/v1/todos` | List sessions with todos |
|
|
464
|
-
| `GET` | `/v1/todos/{session_id}` | Get session todos |
|
|
465
|
-
| `DELETE` | `/v1/todos/{session_id}` | Delete session todos |
|
|
466
|
-
| `POST` | `/v1/evaluate` | Evaluate a run |
|
|
467
|
-
| `POST` | `/v1/index` | Trigger repository indexing |
|
|
468
|
-
|
|
469
|
-
### Configuration, Keys, Profiles, Projects
|
|
470
|
-
|
|
471
|
-
An authenticated `PUT /v1/config/model` records a new operator model choice,
|
|
472
|
-
including when the selected name has not changed. A running TUI adopts that
|
|
473
|
-
choice for its next main task or inherited Telegram turn at the same backend
|
|
474
|
-
endpoint and provider. Existing runners and explicit Telegram overrides retain
|
|
475
|
-
their configuration. Startup CLI/environment choices take precedence over old
|
|
476
|
-
saved settings; a later operator selection acts like a new local `/model`
|
|
477
|
-
command. This behavior requires the updated TUI process.
|
|
478
|
-
|
|
479
|
-
| Method | Path | Purpose |
|
|
480
|
-
| --- | --- | --- |
|
|
481
|
-
| `GET` | `/v1/config` | Read daemon config |
|
|
482
|
-
| `PATCH` | `/v1/config` | Update daemon config |
|
|
483
|
-
| `GET` | `/v1/config/model` | Current model |
|
|
484
|
-
| `PUT` | `/v1/config/model` | Switch model |
|
|
485
|
-
| `POST` | `/v1/config/model/check` | Probe model readiness with non-empty text |
|
|
486
|
-
| `GET` | `/v1/config/endpoint` | Current endpoint |
|
|
487
|
-
| `PUT` | `/v1/config/endpoint` | Switch endpoint |
|
|
488
|
-
| `POST` | `/v1/config/endpoint/test` | Probe endpoint |
|
|
489
|
-
| `GET` | `/v1/config/endpoint/history` | Endpoint history |
|
|
490
|
-
| `DELETE` | `/v1/config/endpoint/history` | Remove endpoint history item |
|
|
491
|
-
| `POST` | `/v1/share/generate` | Generate remote-access share URL |
|
|
492
|
-
| `GET` | `/v1/keys` | List runtime API keys |
|
|
493
|
-
| `POST` | `/v1/keys` | Mint runtime API key |
|
|
494
|
-
| `DELETE` | `/v1/keys/{prefix}` | Revoke runtime API keys by prefix |
|
|
495
|
-
| `GET` | `/v1/profiles` | List tool profiles |
|
|
496
|
-
| `POST` | `/v1/profiles` | Create tool profile |
|
|
497
|
-
| `GET` | `/v1/profiles/{name}` | Get profile |
|
|
498
|
-
| `DELETE` | `/v1/profiles/{name}` | Delete profile |
|
|
499
|
-
| `GET` | `/v1/projects` | List known projects |
|
|
500
|
-
| `DELETE` | `/v1/projects` | Unregister a project |
|
|
501
|
-
| `GET` | `/v1/projects/current` | Current project |
|
|
502
|
-
| `POST` | `/v1/projects/switch` | Switch project |
|
|
503
|
-
| `POST` | `/v1/projects/register` | Register project |
|
|
504
|
-
| `POST` | `/v1/projects/rename` | Rename project |
|
|
505
|
-
| `GET` | `/v1/projects/preferences` | Read project preferences |
|
|
506
|
-
| `PUT` | `/v1/projects/preferences` | Patch project preferences |
|
|
507
|
-
| `DELETE` | `/v1/projects/preferences` | Reset project preferences |
|
|
508
|
-
| `GET` | `/v1/projects/scan` | Scan configured roots for discoverable workspaces |
|
|
509
|
-
| `GET` | `/v1/admin/access` | Read the daemon network access mode |
|
|
510
|
-
| `POST` | `/v1/admin/access` | Change and persist access mode from loopback only |
|
|
511
|
-
|
|
512
|
-
### Skills, Commands, Tools, MCP
|
|
513
|
-
|
|
514
|
-
| Method | Path | Purpose |
|
|
515
|
-
| --- | --- | --- |
|
|
516
|
-
| `GET` | `/v1/skills` | List skills |
|
|
517
|
-
| `GET` | `/v1/skills/{name}` | Load skill content |
|
|
518
|
-
| `GET` | `/v1/commands` | List slash commands |
|
|
519
|
-
| `POST` | `/v1/commands/{cmd}` | Execute slash command |
|
|
520
|
-
| `GET` | `/v1/tools` | List tools (built-in + external) |
|
|
521
|
-
| `POST` | `/v1/tools/register` | Register an application-specific external tool |
|
|
522
|
-
| `GET` | `/v1/tools/{name}` | Tool metadata |
|
|
523
|
-
| `DELETE` | `/v1/tools/{name}` | Unregister an external tool |
|
|
524
|
-
| `POST` | `/v1/tools/{name}/call` | Call tool |
|
|
525
|
-
| `POST` | `/v1/tools/{name}/eval` | Evaluate an external tool against test cases |
|
|
526
|
-
| `GET` | `/v1/mcps` | List MCP servers |
|
|
527
|
-
| `GET` | `/v1/mcps/{name}` | MCP server details |
|
|
528
|
-
| `POST` | `/v1/mcps/{name}/call` | Call MCP tool |
|
|
529
|
-
| `GET` | `/v1/hooks` | Hook registry |
|
|
530
|
-
| `GET` | `/v1/agents` | Agent type registry |
|
|
531
|
-
| `GET` | `/v1/codegraph/snapshot` | Code graph snapshot |
|
|
532
|
-
| `GET` | `/v1/codegraph/events` | Code graph SSE |
|
|
533
|
-
|
|
534
|
-
#### Registering Application-Specific Tools
|
|
535
|
-
|
|
536
|
-
Applications can register their own tools so Omnius agents can discover and
|
|
537
|
-
invoke them alongside built-ins. `transport.type` selects the bridge:
|
|
538
|
-
|
|
539
|
-
- `http` makes Omnius POST `{name, args, session_id}` to the application's
|
|
540
|
-
`callback_url` and relay the result.
|
|
541
|
-
- `mcp` proxies to a named tool on an MCP server and can auto-connect from the
|
|
542
|
-
supplied connection descriptor.
|
|
543
|
-
|
|
544
|
-
Registrations persist per workspace at `.omnius/external-tools.json`, appear in
|
|
545
|
-
`GET /v1/tools`, and use the same scope and off-device security gates as built-in
|
|
546
|
-
tools. Registration needs `run` scope; a non-loopback caller needs `admin`.
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
curl -s -X POST localhost:11435/v1/tools/register -H 'content-type: application/json' -d '{
|
|
550
|
-
"name": "lookup_order",
|
|
551
|
-
"description": "Look up an order by id",
|
|
552
|
-
"parameters": {"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},
|
|
553
|
-
"security": {"requires_scope":"run","risk":"low"},
|
|
554
|
-
"transport": {"type":"http","callback_url":"https://app.internal/tools/lookup_order","auth_header":"Bearer …"}
|
|
555
|
-
}'
|
|
556
|
-
curl -s localhost:11435/v1/tools/lookup_order
|
|
557
|
-
curl -s -X POST localhost:11435/v1/tools/lookup_order/call -H 'content-type: application/json' -d '{"args":{"id":"A-1001"}}'
|
|
558
|
-
curl -s -X POST localhost:11435/v1/tools/lookup_order/eval -H 'content-type: application/json' -d '{"cases":[{"name":"known","args":{"id":"A-1001"},"expect":{"success":true}}]}'
|
|
559
|
-
curl -s -X DELETE localhost:11435/v1/tools/lookup_order
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
The MCP equivalent uses a transport such as
|
|
563
|
-
`{"type":"mcp","server":"acme","tool":"search","connect":{"url":"https://app.internal/mcp","transport":"streamable-http"}}`.
|
|
564
|
-
|
|
565
|
-
### AIWG
|
|
566
|
-
|
|
567
|
-
| Method | Path | Purpose |
|
|
568
|
-
| --- | --- | --- |
|
|
569
|
-
| `GET` | `/v1/aiwg` | AIWG root and control map |
|
|
570
|
-
| `GET` | `/v1/aiwg/frameworks` | List frameworks |
|
|
571
|
-
| `GET` | `/v1/aiwg/frameworks/{name}` | Framework details |
|
|
572
|
-
| `GET` | `/v1/aiwg/frameworks/{name}/content` | Tier-aware content |
|
|
573
|
-
| `GET` | `/v1/aiwg/skills` | List AIWG skills |
|
|
574
|
-
| `GET` | `/v1/aiwg/skills/{name}` | Load AIWG skill |
|
|
575
|
-
| `GET` | `/v1/aiwg/agents` | List AIWG agents |
|
|
576
|
-
| `GET` | `/v1/aiwg/agents/{name}` | Load AIWG agent |
|
|
577
|
-
| `GET` | `/v1/aiwg/addons` | List AIWG addons |
|
|
578
|
-
| `POST` | `/v1/aiwg/use` | Tier-sized activation bundle |
|
|
579
|
-
| `POST` | `/v1/aiwg/expand` | Expand matching AIWG item |
|
|
580
|
-
|
|
581
|
-
### Memory, Sessions, Context
|
|
582
|
-
|
|
583
|
-
| Method | Path | Purpose |
|
|
584
|
-
| --- | --- | --- |
|
|
585
|
-
| `GET` | `/v1/memory` | Memory backend summary |
|
|
586
|
-
| `POST` | `/v1/memory/search` | Search memory |
|
|
587
|
-
| `POST` | `/v1/memory/write` | Write memory |
|
|
588
|
-
| `GET` | `/v1/memory/episodes` | List episodes |
|
|
589
|
-
| `GET` | `/v1/memory/failures` | List failure records |
|
|
590
|
-
| `POST` | `/v1/memory/ingest` | Ingest content or files into memory |
|
|
591
|
-
| `GET` | `/v1/memory/entities` | List extracted memory entities |
|
|
592
|
-
| `POST` | `/v1/memory/jobs/run` | Run a named memory-maintenance job |
|
|
593
|
-
| `POST` | `/v1/memory/feedback` | Record relevance or quality feedback for a memory item |
|
|
594
|
-
| `POST` | `/v1/memory/speaker-identities/enroll` | Admin-only, explicit-consent speaker exemplar enrollment in one exact vector space |
|
|
595
|
-
| `POST` | `/v1/memory/speaker-identities/match` | Admin-only provisional speaker candidate matching without durable assignment |
|
|
596
|
-
| `GET` | `/v1/sessions` | List task sessions |
|
|
597
|
-
| `GET` | `/v1/sessions/{id}` | Get session history |
|
|
598
|
-
| `GET` | `/v1/context` | Current context snapshot |
|
|
599
|
-
| `GET` | `/v1/context/window-dumps` | List persisted outbound model context-window dumps |
|
|
600
|
-
| `GET` | `/v1/context/window-dumps/{id}` | Fetch a full outbound model context-window dump |
|
|
601
|
-
| `POST` | `/v1/context/save` | Save context entry |
|
|
602
|
-
| `GET` | `/v1/context/restore` | Build restore prompt |
|
|
603
|
-
| `POST` | `/v1/context/compact` | Request compaction |
|
|
604
|
-
|
|
605
|
-
Context-window dumps are written before backend inference for main agents, sub-agents, internal runners, and adversary audits. Query
|
|
606
|
-
`GET /v1/context/window-dumps?agent_type=main` for summaries with signal/noise
|
|
607
|
-
metrics, or fetch a full payload by id. Dumps include focus-supervisor state when
|
|
608
|
-
a next-action contract is active. Set `OMNIUS_CONTEXT_WINDOW_DUMP_DIR` to move
|
|
609
|
-
the store, `OMNIUS_DISABLE_CONTEXT_WINDOW_DUMPS=1` to disable it, and
|
|
610
|
-
`OMNIUS_FOCUS_SUPERVISOR=off|auto|strict` to tune focus enforcement.
|
|
611
|
-
|
|
612
|
-
### Files, Web, Nexus, Ollama Pool
|
|
613
|
-
|
|
614
|
-
| Method | Path | Purpose |
|
|
615
|
-
| --- | --- | --- |
|
|
616
|
-
| `GET` | `/v1/files` | List workspace directory |
|
|
617
|
-
| `POST` | `/v1/files/read` | Read workspace file |
|
|
618
|
-
| `GET` | `/v1/files/raw` | Stream raw workspace bytes with content type and range support |
|
|
619
|
-
| `HEAD` | `/v1/files/raw` | Inspect raw-file response metadata |
|
|
620
|
-
| `GET` | `/v1/web/search` | Inspect web-search availability, schema, and security policy |
|
|
621
|
-
| `POST` | `/v1/web/search` | Search the web directly through the Omnius tool runtime |
|
|
622
|
-
| `GET` | `/v1/web/fetch` | Inspect web-fetch availability, schema, and security policy |
|
|
623
|
-
| `POST` | `/v1/web/fetch` | Fetch a URL directly through the Omnius tool runtime |
|
|
624
|
-
| `GET` | `/v1/web/crawl` | Inspect web-crawl availability, schema, and security policy |
|
|
625
|
-
| `POST` | `/v1/web/crawl` | Crawl a website directly through the Omnius tool runtime |
|
|
626
|
-
| `GET` | `/v1/nexus/status` | Nexus peer state |
|
|
627
|
-
| `GET` | `/v1/sponsors` | Sponsor directory cache |
|
|
628
|
-
| `GET` | `/v1/ollama/pool/processes` | Ollama process inventory |
|
|
629
|
-
| `POST` | `/v1/ollama/pool/cleanup` | Cleanup stale Ollama pool processes |
|
|
630
|
-
|
|
631
|
-
The `/v1/web/*` routes are stable aliases of the shared tool registry. `GET`
|
|
632
|
-
returns the corresponding tool metadata. `POST` uses the same authentication,
|
|
633
|
-
profile, origin, timeout, output-size, audit, and network-egress policy as a
|
|
634
|
-
direct tool call. Send search requests as
|
|
635
|
-
`{"args":{"query":"...","num_results":5,"provider":"duckduckgo"}}` and
|
|
636
|
-
fetch requests as `{"args":{"url":"https://example.com"}}`. Crawl uses the
|
|
637
|
-
schema returned by its `GET` route and requires the browser dependencies that
|
|
638
|
-
the metadata reports. POST responses use the standard `ToolResult` envelope.
|
|
639
|
-
|
|
640
|
-
### Voice, Audio, Vision
|
|
641
|
-
|
|
642
|
-
| Method | Path | Purpose |
|
|
643
|
-
| --- | --- | --- |
|
|
644
|
-
| `GET` | `/v1/voice/state` | Voice runtime status |
|
|
645
|
-
| `POST` | `/v1/voice/start` | Select an optional model, enable voice, and wait for readiness |
|
|
646
|
-
| `POST` | `/v1/voice/stop` | Pause daemon voice input while leaving TTS warm |
|
|
647
|
-
| `GET` | `/v1/voice/models` | TTS models |
|
|
648
|
-
| `POST` | `/v1/voice/models/switch` | Switch and enable an exact TTS model by default |
|
|
649
|
-
| `POST` | `/v1/voice/models/{modelId}/pull` | Install runtime prerequisites and pull one managed TTS model |
|
|
650
|
-
| `POST` | `/v1/voice/models/{modelId}/deploy` | Pull and deploy one managed CUDA TTS model |
|
|
651
|
-
| `GET` | `/v1/voice/supertonic-settings` | Voice tuning settings |
|
|
652
|
-
| `POST` | `/v1/voice/supertonic-settings` | Update voice tuning settings |
|
|
653
|
-
| `GET` | `/v1/asr/engines` | Canonical ASR engines/models, capabilities, readiness, and selection |
|
|
654
|
-
| `GET` | `/v1/asr/status` · `/v1/asr/selection` | Selected engine/model and runtime status |
|
|
655
|
-
| `GET` | `/v1/asr/downloads` | List persistent ASR weight download and deployment transitions |
|
|
656
|
-
| `POST` | `/v1/asr/downloads` | Start or resume an ASR weight download |
|
|
657
|
-
| `GET` | `/v1/asr/downloads/{engineId}/{modelId}` | Poll one ASR download and deployment transition |
|
|
658
|
-
| `POST` | `/v1/asr/downloads/{engineId}/{modelId}` | Start or resume this model download |
|
|
659
|
-
| `POST` | `/v1/asr/downloads/{engineId}/{modelId}/retry` | Retry or resume a failed or interrupted ASR weight download |
|
|
660
|
-
| `PATCH` | `/v1/asr/selection` | Persist and activate an exact engine/model |
|
|
661
|
-
| `POST` | `/v1/asr/activate` | Activate and persist an exact engine/model |
|
|
662
|
-
| `POST` | `/v1/asr/engines/{engineId}/setup` | Install a managed runtime and pinned weights |
|
|
663
|
-
| `POST` | `/v1/asr/engines/{engineId}/models/{modelId}/pull` | Pull one exact ASR model and validate its managed runtime |
|
|
664
|
-
| `POST` | `/v1/asr/engines/{engineId}/models/{modelId}/deploy` | Pull, select, and activate one exact ASR model |
|
|
665
|
-
| `POST` | `/v1/asr/transcriptions` · `/v1/asr/test` | Transcribe/test using the real selected backend |
|
|
666
|
-
| `GET` | `/v1/voice/asr-models` | Compatibility registry alias |
|
|
667
|
-
| `POST` | `/v1/voice/asr-models/switch` | Compatibility activation alias |
|
|
668
|
-
| `POST` | `/v1/voice/tts` | Synthesize speech |
|
|
669
|
-
| `POST` | `/v1/audio/speech` | OpenAI-compatible TTS alias |
|
|
670
|
-
| `GET` | `/v1/audio/classify/health` | Jetson CUDA/TensorRT YAMNet readiness |
|
|
671
|
-
| `POST` | `/v1/audio/classify/setup` | Provision and warm the pinned JetPack TensorRT YAMNet runtime |
|
|
672
|
-
| `POST` | `/v1/audio/classify` | Direct-tool compatible CUDA audio classification |
|
|
673
|
-
| `GET` | `/v1/audio/embed/health` | Role-typed embedding readiness (`?kind=acoustic|speaker|semantic`) |
|
|
674
|
-
| `POST` | `/v1/audio/embed/setup` | Provision/warm one role-typed embedding runtime (admin; `?kind=...`) |
|
|
675
|
-
| `POST` | `/v1/audio/embed` | Managed role-typed audio embedding (`?kind=...`) |
|
|
676
|
-
| `GET` | `/v1/audio/diarization/live/readiness` | Non-mutating managed Sortformer worker readiness |
|
|
677
|
-
| `POST` | `/v1/audio/diarization/live/setup` | Verify and warm a local Sortformer runtime (admin) |
|
|
678
|
-
| `POST` | `/v1/audio/diarization/live` | Managed live/session-local speaker-turn diarization |
|
|
679
|
-
| `POST` | `/v1/audio/diarization/live/cancel` | Terminate live worker work and clear its queue |
|
|
680
|
-
| `GET` | `/v1/audio/diarization/reconcile/readiness` | Non-mutating managed Community-1 worker readiness |
|
|
681
|
-
| `POST` | `/v1/audio/diarization/reconcile/setup` | Verify and warm a local Community-1 runtime (admin) |
|
|
682
|
-
| `POST` | `/v1/audio/diarization/reconcile` | Managed offline/dream reconciliation proposals |
|
|
683
|
-
| `POST` | `/v1/audio/diarization/reconcile/cancel` | Terminate reconciliation work and clear its queue |
|
|
684
|
-
| `POST` | `/v1/voice/transcribe` | Transcribe audio |
|
|
685
|
-
| `POST` | `/v1/voice/asr` | Legacy transcription alias |
|
|
686
|
-
| `POST` | `/v1/audio/transcriptions` | OpenAI-compatible transcription alias |
|
|
687
|
-
| `POST` | `/v1/voice/transcribe/stream` | Isolated final transcription over SSE (no shared mic state or fake partials) |
|
|
688
|
-
| `POST` | `/v1/voice/clone-refs` | Upload voice clone reference |
|
|
689
|
-
| `GET` | `/v1/voice/clone-refs` | List clone references |
|
|
690
|
-
| `POST` | `/v1/voice/clone-refs/upload` | Upload clone reference |
|
|
691
|
-
| `POST` | `/v1/voice/clone-refs/from-url` | Fetch clone reference |
|
|
692
|
-
| `POST` | `/v1/voice/clone-refs/{filename}/activate` | Activate clone reference |
|
|
693
|
-
| `POST` | `/v1/voice/clone-refs/{filename}/rename` | Rename clone reference |
|
|
694
|
-
| `DELETE` | `/v1/voice/clone-refs/{filename}` | Delete clone reference |
|
|
695
|
-
| `POST` | `/v1/voice/speak` | Broadcast speech to voicechat clients |
|
|
696
|
-
| `GET` | `/v1/voicechat/ws` | WebSocket upgrade for full-duplex voicechat |
|
|
697
|
-
| `POST` | `/v1/vision/describe` | Vision describe placeholder |
|
|
698
|
-
| `GET` | `/v1/vision/embed/readiness` | Non-mutating isolated OpenCLIP readiness |
|
|
699
|
-
| `POST` | `/v1/vision/embed/setup` | Explicit isolated OpenCLIP setup (admin scope) |
|
|
700
|
-
| `POST` | `/v1/vision/embed` | Create a vision embedding from media |
|
|
701
|
-
| `GET` | `/v1/ocr/readiness` | Non-mutating advanced-OCR dependency and backend readiness |
|
|
702
|
-
| `POST` | `/v1/ocr/setup` | Create and verify the isolated OCR venv (admin scope) |
|
|
703
|
-
| `POST` | `/v1/ocr/advanced` | Agent-equivalent managed advanced OCR (alias of `/v1/tools/ocr_image_advanced/call`) |
|
|
704
|
-
|
|
705
|
-
`POST /v1/voice/tts` and `/v1/audio/speech` automatically warm the daemon.
|
|
706
|
-
An explicit model must render exactly or the request fails; Omnius does not
|
|
707
|
-
silently synthesize with another voice. Responses include `X-Voice-Model`,
|
|
708
|
-
`X-Voice-Backend`, and `X-Sample-Rate`. Available models include GLaDOS,
|
|
709
|
-
Overwatch, `luxtts:announcer-testchamber03`, and the selected Voicebox suite.
|
|
710
|
-
Set `OMNIUS_VOICEBOX_MODELS=all` for every carried-in Voicebox model, leave it
|
|
711
|
-
at `stable` for the default set, or provide a comma-separated subset.
|
|
712
|
-
|
|
713
|
-
ASR selection is independent from TTS selection. The registry currently exposes
|
|
714
|
-
OpenAI Whisper, managed `transcribe-cli`, NVIDIA Nemotron (reported unavailable
|
|
715
|
-
until its legacy bootstrap is migrated), and Microsoft VibeVoice ASR. VibeVoice
|
|
716
|
-
uses the exact pinned `microsoft/VibeVoice-ASR` checkpoint, reports setup and
|
|
717
|
-
activation separately, supports completed files up to 60 minutes with speakers,
|
|
718
|
-
timestamps, and `?context=` hotwords, and is deliberately not advertised as an
|
|
719
|
-
incremental PCM backend. Its managed setup inherits the host CUDA-enabled Torch
|
|
720
|
-
build (needed on Jetson/ARM64), never installs generic PyPI Torch, and activation
|
|
721
|
-
requires one explicit capable GPU. Discrete Linux uses `nvidia-smi` process/GPU
|
|
722
|
-
evidence; Jetson/L4T uses NVIDIA's documented `tegrastats` plus CUDA Torch device
|
|
723
|
-
properties because `nvidia-smi` is unavailable there. Model weights live under
|
|
724
|
-
the unified Omnius ASR cache and are not shipped in the npm package.
|
|
725
|
-
|
|
726
|
-
### Generative Media
|
|
727
|
-
|
|
728
|
-
All generation is backed by the unified `~/.omnius` model store and shared venvs (single source of truth — no per-project duplication). Generated files are consolidated into the global gallery at `~/.omnius/media/{images,videos,audio,music}`.
|
|
729
|
-
|
|
730
|
-
| Method | Path | Purpose |
|
|
731
|
-
| --- | --- | --- |
|
|
732
|
-
| `GET` | `/v1/media/models` | List available image/video/audio/music models |
|
|
733
|
-
| `GET` | `/v1/media/store` | Unified store disk usage + reclaimable legacy caches |
|
|
734
|
-
| `POST` | `/v1/media/migrate` | Dedup + migrate legacy per-group caches into the unified store |
|
|
735
|
-
| `POST` | `/v1/media/relocate` | Relocate the whole media store (weights/venvs/gallery) to a chosen folder |
|
|
736
|
-
| `GET` | `/v1/media/relocate/status` | Status + progress of the media-store relocation job |
|
|
737
|
-
| `POST` | `/v1/media/av/analyze` | Analyze a media file into a grounded entity/event answer (AV comprehension) |
|
|
738
|
-
| `POST` | `/v1/media/image` | Generate an image |
|
|
739
|
-
| `POST` | `/v1/media/video` | Generate a video |
|
|
740
|
-
| `POST` | `/v1/media/audio` | Generate a sound effect |
|
|
741
|
-
| `POST` | `/v1/media/music` | Generate music |
|
|
742
|
-
| `GET` | `/v1/media/gallery` | List previously generated media (global, newest first) |
|
|
743
|
-
| `GET` | `/v1/media/file` | Stream one generated media file |
|
|
744
|
-
|
|
745
|
-
Managed TTS `pull` installs the model's runtime prerequisites and weights. It
|
|
746
|
-
does not start inference. Managed TTS `deploy` also verifies the selected CUDA
|
|
747
|
-
device and starts the persistent runtime. Both operations return `200` when
|
|
748
|
-
ready, `404` when the model has no matching managed adapter, and `500` when
|
|
749
|
-
installation, download, CUDA preflight, or startup fails.
|
|
750
|
-
|
|
751
|
-
ASR download requests use `{engineId, modelId, device?}`. A collection POST
|
|
752
|
-
returns `200` when weights are ready or `202` with `statusUrl`, `retryUrl`, and
|
|
753
|
-
`pollAfterMs` while work is pending. Duplicate work coalesces. Poll the model
|
|
754
|
-
URL until its download is ready and its deployment is active. A missing job
|
|
755
|
-
returns `404`. Model-specific POST and retry requests return `200` when ready or
|
|
756
|
-
`202` when accepted. The model `pull` and `deploy` routes accept optional
|
|
757
|
-
`{device}`. Pull validates the managed runtime and CUDA placement. Deploy also
|
|
758
|
-
persists the selection after readiness and returns a pollable `202` transition
|
|
759
|
-
when activation is pending.
|
|
760
|
-
|
|
761
|
-
### Engines And Scheduled Jobs
|
|
762
|
-
|
|
763
|
-
| Method | Path | Purpose |
|
|
764
|
-
| --- | --- | --- |
|
|
765
|
-
| `GET` | `/v1/engines` | Long-running engine status |
|
|
766
|
-
| `GET` | `/v1/services` | List all active daemon-owned REST services and their routes |
|
|
767
|
-
| `GET` | `/v1/services/{id}` | Get one daemon-owned REST service contract |
|
|
768
|
-
| `GET` | `/v1/scheduled` | List scheduled jobs |
|
|
769
|
-
| `DELETE` | `/v1/scheduled/all` | Delete all tasks, timers, cron entries, and persisted sources |
|
|
770
|
-
| `GET` | `/v1/scheduled/status` | Scheduler status |
|
|
771
|
-
| `POST` | `/v1/scheduled/{id}` | Enable or disable one scheduled task or user timer |
|
|
772
|
-
| `DELETE` | `/v1/scheduled/{id}` | Delete one scheduled task or user timer |
|
|
773
|
-
| `POST` | `/v1/scheduled/kill` | Kill scheduled job |
|
|
774
|
-
| `POST` | `/v1/scheduled/fixup` | Reconcile scheduled state |
|
|
775
|
-
| `GET` | `/v1/scheduled/reconcile` | Preview scheduled reconciliation |
|
|
776
|
-
| `POST` | `/v1/scheduled/reconcile` | Preview or apply scheduled reconciliation |
|
|
777
|
-
| `GET` | `/v1/services/systemd` | Systemd service status |
|
|
778
|
-
| `POST` | `/v1/services/systemd/{unit}` | Act on one user-level systemd unit |
|
|
779
|
-
| `GET` | `/v1/update` | Self-update status |
|
|
780
|
-
| `POST` | `/v1/update` | Start an exact-version verified global update transaction |
|
|
781
|
-
|
|
782
|
-
`GET /v1/services` is the agent-readable service inventory generated from the
|
|
783
|
-
OpenAPI document. Each entry states lifecycle ownership, interactive-session
|
|
784
|
-
dependency, registered routes, and a readiness or status route when one exists.
|
|
785
|
-
`GET /v1/services/{id}` returns one service contract or `404` for an unknown
|
|
786
|
-
service ID. These discovery routes do not mutate services. `/listen` and
|
|
787
|
-
`/hangup` control voice sessions only and do not own the REST daemon.
|
|
788
|
-
|
|
789
|
-
#### Verified Global Update Transaction
|
|
790
|
-
|
|
791
|
-
`POST /v1/update` is not a CLI-local package edit. It starts one durable
|
|
792
|
-
transaction that installs the requested exact npm version globally, verifies
|
|
793
|
-
the installed package and resolved `omnius` executable, restarts and verifies
|
|
794
|
-
the daemon, verifies package/hash/runtime agreement, and relaunches the tray if
|
|
795
|
-
it was running. The response is `202` with operation state; poll
|
|
796
|
-
`GET /v1/update` for live phase, subprocess output, verification evidence, and
|
|
797
|
-
the final success or failure. Concurrent transactions and requests with no
|
|
798
|
-
available target return `409`.
|
|
799
|
-
|
|
800
|
-
The web dashboard and native tray both use this same endpoint. Update discovery
|
|
801
|
-
is shared and semver-aware, so an older cached registry result cannot downgrade
|
|
802
|
-
or falsely present an update. A completed transaction means the global package,
|
|
803
|
-
executable, daemon, and tray runtime were all reconciled—not merely that `npm`
|
|
804
|
-
exited successfully.
|
|
805
|
-
|
|
806
|
-
### AIMS Governance
|
|
807
|
-
|
|
808
|
-
| Method | Path | Purpose |
|
|
809
|
-
| --- | --- | --- |
|
|
810
|
-
| `GET` | `/v1/aims` | AIMS root and endpoint index |
|
|
811
|
-
| `GET` | `/v1/aims/policies` | Policy register |
|
|
812
|
-
| `PUT` | `/v1/aims/policies` | Replace policy register |
|
|
813
|
-
| `GET` | `/v1/aims/roles` | Roles and responsibilities |
|
|
814
|
-
| `GET` | `/v1/aims/resources` | Resource inventory |
|
|
815
|
-
| `GET` | `/v1/aims/impact-assessments` | Impact assessments |
|
|
816
|
-
| `POST` | `/v1/aims/impact-assessments` | File impact assessment |
|
|
817
|
-
| `GET` | `/v1/aims/lifecycle` | Lifecycle state |
|
|
818
|
-
| `GET` | `/v1/aims/data-quality` | Data quality controls |
|
|
819
|
-
| `GET` | `/v1/aims/transparency` | Model cards and transparency |
|
|
820
|
-
| `GET` | `/v1/aims/usage` | AIMS usage view |
|
|
821
|
-
| `GET` | `/v1/aims/suppliers` | Supplier inventory |
|
|
822
|
-
| `GET` | `/v1/aims/incidents` | Incident records |
|
|
823
|
-
| `POST` | `/v1/aims/incidents` | File incident |
|
|
824
|
-
| `GET` | `/v1/aims/oversight` | Human oversight gates |
|
|
825
|
-
| `GET` | `/v1/aims/decisions` | Consequential decision log |
|
|
826
|
-
| `GET` | `/v1/aims/config-history` | Config change history |
|
|
827
|
-
|
|
828
|
-
### Browser And Compatibility Surfaces
|
|
829
|
-
|
|
830
|
-
The dashboard HTML routes (`/`, `/chat`, `/agent`, `/voice`, `/generate`,
|
|
831
|
-
`/projects`, `/dashboard`, `/jobs`, `/activity`, `/discover`, `/settings`, and
|
|
832
|
-
`/config`) are documented in the [dashboard guide](../guides/dashboard.md). They
|
|
833
|
-
are pages, not JSON API operations; `/` returns the HATEOAS JSON root when the
|
|
834
|
-
client does not request HTML.
|
|
835
|
-
|
|
836
|
-
Swagger/ReDoc trailing-slash variants, `/api/docs/*` static assets, and
|
|
837
|
-
`/favicon.ico` exist for browsers. They are delivery details rather than stable
|
|
838
|
-
integration endpoints. The daemon also retains browser/legacy bridges at
|
|
839
|
-
`/v1/model`, `/v1/endpoint`, `/v1/theme`, `/v1/tor/*`, `/v1/remote-proxy`, and
|
|
840
|
-
`/v1/command`. New clients should prefer `/v1/config/model`,
|
|
841
|
-
`/v1/config/endpoint`, `/v1/config`, and `/v1/commands/{cmd}`. Compatibility
|
|
842
|
-
handlers may accept additional HTTP verbs for old dashboard bundles; only the
|
|
843
|
-
methods in the supported inventory above are contractual.
|
|
69
|
+
The complete API inventory is maintained in the [REST reference](docs/reference/rest-api.md). The running daemon serves its machine-readable contract at `/openapi.json`.
|
|
844
70
|
<!-- END GENERATED REST INVENTORY -->
|
|
845
|
-
## Agent-Explorable Documentation
|
|
846
|
-
|
|
847
|
-
Omnius discovers project-local docs skills from `.aiwg/addons/*/skills`. The docs bundles in this repo expose high-signal entrypoints for agents:
|
|
848
71
|
|
|
849
|
-
|
|
850
|
-
/skills omnius docs
|
|
851
|
-
skill_execute name="omnius-docs"
|
|
852
|
-
skill_execute name="omnius-rest-docs"
|
|
853
|
-
skill_extract name="omnius-realtime-docs" query="How does realtime REST mode work?"
|
|
854
|
-
```
|
|
72
|
+
## Documentation
|
|
855
73
|
|
|
856
|
-
|
|
74
|
+
| Topic | Guide |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| Inference configuration | [Provider protocols and keys](docs/guides/bring-your-own-inference.md) |
|
|
77
|
+
| Commands and tools | [Slash commands](docs/reference/slash-commands.md), [tool discovery](docs/guides/tools-and-web-search.md) |
|
|
78
|
+
| Agent coordination | [Adjudication](docs/ADJUDICATION.md), [agent system map](docs/architecture/agent-system-map.md) |
|
|
79
|
+
| Browser interface | [Dashboard](docs/guides/dashboard.md) |
|
|
80
|
+
| Voice and media | [Realtime voice](docs/guides/realtime.md), [media generation](docs/guides/media-generation.md), [Omni analysis](docs/reference/omni-analysis.md) |
|
|
81
|
+
| Connected services | [Telegram](docs/guides/telegram.md), [system tray](docs/guides/system-tray.md), [sponsor and peer inference](docs/guides/sponsor-and-cohere.md) |
|
|
82
|
+
| Runtime administration | [Runtime hygiene](docs/operations/runtime-hygiene.md), [access control](docs/operations/security-and-remote-access.md) |
|
|
83
|
+
| Agent-readable documentation | [Documentation index](docs/agent-memory/INDEX.md) |
|
|
857
84
|
|
|
858
85
|
## Development
|
|
859
86
|
|
|
860
|
-
|
|
861
|
-
pnpm install
|
|
862
|
-
pnpm -r build
|
|
863
|
-
pnpm docs:check
|
|
864
|
-
```
|
|
87
|
+
The repository is a pnpm workspace. `packages/cli` contains the interfaces and daemon; `packages/orchestrator` coordinates agent execution; `packages/execution` provides tools. Supporting packages cover memory, indexing, retrieval, schemas, prompts, and backend integration.
|
|
865
88
|
|
|
866
|
-
|
|
89
|
+
Requires pnpm 9 or newer.
|
|
867
90
|
|
|
868
91
|
```bash
|
|
869
|
-
pnpm
|
|
870
|
-
pnpm --filter omnius exec vitest run tests/realtime-mode.test.ts tests/command-registry.test.ts
|
|
871
|
-
```
|
|
872
|
-
|
|
873
|
-
## Publishing
|
|
874
|
-
|
|
875
|
-
Publish only from `publish/`.
|
|
876
|
-
|
|
877
|
-
```bash
|
|
878
|
-
cd omnius
|
|
879
|
-
pnpm -r clean || true
|
|
880
|
-
find . -name 'tsconfig.tsbuildinfo' -not -path '*/node_modules/*' -delete
|
|
92
|
+
pnpm install
|
|
881
93
|
pnpm -r build
|
|
882
|
-
|
|
883
|
-
cd publish
|
|
884
|
-
mkdir -p .npm-cache
|
|
885
|
-
NPM_CONFIG_CACHE=$(pwd)/.npm-cache npm pack --prefer-online --cache-min=0 --registry https://registry.npmjs.org/
|
|
886
|
-
NPM_CONFIG_CACHE=$(pwd)/.npm-cache npm publish --access public --prefer-online --cache-min=0 --registry https://registry.npmjs.org/
|
|
94
|
+
pnpm docs:check
|
|
887
95
|
```
|
|
888
96
|
|
|
889
|
-
|
|
97
|
+
Publishing uses the generated `publish/` package. The build, verification, and release procedure is documented in [AGENTS.md](AGENTS.md).
|
|
890
98
|
|
|
891
99
|
## License
|
|
892
100
|
|
|
893
|
-
Omnius is released under [CC-BY-NC-4.0](
|
|
101
|
+
Omnius is released under [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/) for non-commercial use. Commercial use, redistribution, hosted services, and enterprise deployment require a commercial license.
|