omnius 1.0.196 → 1.0.198
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 +1 -1
- package/dist/index.js +4857 -3039
- package/docs/reference/configuration.md +6 -2
- package/docs/reference/rest-api.md +1 -0
- package/docs/rest/INDEX.md +2 -2
- package/docs/rest/QUICKREF.md +10 -0
- package/docs/rest/auth-and-scopes.md +9 -3
- package/docs/rest/endpoints/config.md +4 -1
- package/docs/rest/endpoints/run.md +16 -0
- package/docs/rest/endpoints/tools.md +20 -1
- package/docs/rest/examples/openai-sdk.md +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
|
@@ -7,8 +7,12 @@ Configuration is layered from environment, global user settings, project setting
|
|
|
7
7
|
| Variable | Purpose |
|
|
8
8
|
| --- | --- |
|
|
9
9
|
| `OMNIUS_HOST` | Bind host and port, for example `0.0.0.0:11435` |
|
|
10
|
-
| `
|
|
11
|
-
| `
|
|
10
|
+
| `OMNIUS_REST_API_KEY` | Single admin bearer token for the Omnius REST API |
|
|
11
|
+
| `OMNIUS_REST_API_KEYS` | Multi-key REST auth: `key:scope:owner:rpm:tpd:max_jobs` |
|
|
12
|
+
| `OMNIUS_PROVIDER_API_KEY` | Upstream model-provider bearer token |
|
|
13
|
+
| `OMNIUS_MODEL_API_KEY` | Alternate upstream model-provider bearer token |
|
|
14
|
+
| `OMNIUS_API_KEY` | Legacy fallback for provider auth and legacy REST auth |
|
|
15
|
+
| `OMNIUS_API_KEYS` | Legacy multi-key REST auth |
|
|
12
16
|
| `OMNIUS_ACCESS` | Network access policy for the daemon |
|
|
13
17
|
| `OMNIUS_DAEMON` | Start in daemon mode when set to `1` |
|
|
14
18
|
| `OMNIUS_FORCE_NO_THINK` | Force `think: false` for Qwen-style backends |
|
|
@@ -76,6 +76,7 @@ pnpm docs:check
|
|
|
76
76
|
| `PATCH` | `/v1/config` | Update daemon config |
|
|
77
77
|
| `GET` | `/v1/config/model` | Current model |
|
|
78
78
|
| `PUT` | `/v1/config/model` | Switch model |
|
|
79
|
+
| `POST` | `/v1/config/model/check` | Probe model readiness with non-empty text |
|
|
79
80
|
| `GET` | `/v1/config/endpoint` | Current endpoint |
|
|
80
81
|
| `PUT` | `/v1/config/endpoint` | Switch endpoint |
|
|
81
82
|
| `POST` | `/v1/config/endpoint/test` | Probe endpoint |
|
package/docs/rest/INDEX.md
CHANGED
|
@@ -64,8 +64,8 @@ OMNIUS_HOST=0.0.0.0:11435 omnius serve
|
|
|
64
64
|
Local anonymous requests default to read behavior unless the runtime is configured for insecure loopback admin. Remote/shared deployments should use bearer keys.
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
OMNIUS_REST_API_KEY="admin-secret" omnius serve
|
|
68
|
+
OMNIUS_REST_API_KEYS="read-key:read:grafana,run-key:run:ci:60:100000:3,admin-key:admin:ops" omnius serve
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Scopes:
|
package/docs/rest/QUICKREF.md
CHANGED
|
@@ -40,6 +40,7 @@ curl -s http://127.0.0.1:11435/version
|
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
curl -s http://127.0.0.1:11435/v1/models
|
|
43
|
+
curl -s -X POST http://127.0.0.1:11435/v1/config/model/check
|
|
43
44
|
```
|
|
44
45
|
|
|
45
46
|
## Chat
|
|
@@ -104,6 +105,15 @@ curl -s -X POST http://127.0.0.1:11435/v1/tools/memory_search/call \
|
|
|
104
105
|
-d '{"args":{"query":"rest api docs"}}'
|
|
105
106
|
```
|
|
106
107
|
|
|
108
|
+
Deterministic bookkeeping without an agent run:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
curl -s -X POST http://127.0.0.1:11435/v1/tools/todo_write/call \
|
|
112
|
+
-H 'content-type: application/json' \
|
|
113
|
+
-H 'x-omnius-session-id: regi-turn-123' \
|
|
114
|
+
-d '{"profile":"cygnus-regi-tracking","args":{"todos":[{"content":"Create NC report","status":"in_progress"}]}}'
|
|
115
|
+
```
|
|
116
|
+
|
|
107
117
|
## Voice TTS
|
|
108
118
|
|
|
109
119
|
```bash
|
|
@@ -7,13 +7,13 @@ Omnius can run without auth for local development, but shared deployments should
|
|
|
7
7
|
Single admin key:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
OMNIUS_REST_API_KEY="admin-secret" omnius serve
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Multiple scoped keys:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
16
|
+
OMNIUS_REST_API_KEYS="read-key:read:grafana,run-key:run:ci:60:100000:3,admin-key:admin:ops" omnius serve
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Format:
|
|
@@ -22,6 +22,10 @@ Format:
|
|
|
22
22
|
key:scope:owner:rpm:tpd:max_jobs
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Compatibility: `OMNIUS_API_KEY` and `OMNIUS_API_KEYS` are still accepted as legacy REST auth variables, but new deployments should use the `OMNIUS_REST_*` namespace.
|
|
26
|
+
|
|
27
|
+
Provider keys are separate from REST keys. Prefer `OMNIUS_PROVIDER_API_KEY`, `OMNIUS_MODEL_API_KEY`, or provider-native variables such as `VLLM_API_KEY` for upstream model auth. `OMNIUS_API_KEY` remains a legacy fallback for provider auth and legacy REST auth, so avoid it in new remote deployments. Scoped REST keys (`OMNIUS_REST_*` and `OMNIUS_API_KEYS`) are stripped before spawning agent subprocesses and are not forwarded as model-provider credentials.
|
|
28
|
+
|
|
25
29
|
Fields:
|
|
26
30
|
|
|
27
31
|
- `key`: bearer token.
|
|
@@ -84,6 +88,8 @@ Mint body:
|
|
|
84
88
|
|
|
85
89
|
Tool calls are additionally gated by each tool's security metadata. Scope alone is not the only control.
|
|
86
90
|
|
|
91
|
+
Runtime keys may bind a tool profile. A run-scope key with profile `cygnus-regi-tracking` can update todos and notes but cannot expose or execute filesystem/search/shell tools.
|
|
92
|
+
|
|
87
93
|
## Request Header
|
|
88
94
|
|
|
89
95
|
```text
|
|
@@ -95,7 +101,7 @@ Authorization: Bearer <key>
|
|
|
95
101
|
For local development, bind to loopback. For remote access, set explicit auth and access policy:
|
|
96
102
|
|
|
97
103
|
```bash
|
|
98
|
-
OMNIUS_HOST=0.0.0.0:11435
|
|
104
|
+
OMNIUS_HOST=0.0.0.0:11435 OMNIUS_REST_API_KEYS="run-key:run:remote" omnius serve
|
|
99
105
|
```
|
|
100
106
|
|
|
101
107
|
Do not expose an unauthenticated daemon on a public interface.
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
| `PATCH` | `/v1/config` | Update settings |
|
|
9
9
|
| `GET` | `/v1/config/model` | Show active model |
|
|
10
10
|
| `PUT` | `/v1/config/model` | Switch model |
|
|
11
|
+
| `POST` | `/v1/config/model/check` | Probe model readiness with non-empty text |
|
|
11
12
|
| `GET` | `/v1/config/endpoint` | Show active backend endpoint |
|
|
12
13
|
| `PUT` | `/v1/config/endpoint` | Switch endpoint with TUI-compatible normalization |
|
|
13
14
|
| `POST` | `/v1/config/endpoint/test` | Probe endpoint from daemon process |
|
|
@@ -38,7 +39,9 @@ Endpoint history mirrors the `/endpoint` TUI flow. It records recently used endp
|
|
|
38
39
|
|
|
39
40
|
## Model Switching
|
|
40
41
|
|
|
41
|
-
`PUT /v1/config/model` updates the active model for subsequent requests. Clients can still pass per-request `model` fields to chat endpoints.
|
|
42
|
+
`PUT /v1/config/model` updates the active model for subsequent requests and the daemon process, so `GET /v1/config/model` is read-after-write consistent. Clients can still pass per-request `model` fields to chat endpoints.
|
|
43
|
+
|
|
44
|
+
`POST /v1/config/model/check` performs a real chat probe and returns `ok`, `backend_normalized_model_id`, `provider_model_id`, endpoint metadata, and whether non-empty visible text was produced. Use it to distinguish model catalog visibility from compute readiness.
|
|
42
45
|
|
|
43
46
|
## Runtime Keys
|
|
44
47
|
|
|
@@ -35,6 +35,22 @@ Common body fields:
|
|
|
35
35
|
| `profile` | Tool profile |
|
|
36
36
|
| `timeout_s` | Wall-clock timeout |
|
|
37
37
|
|
|
38
|
+
Profiles are enforced twice:
|
|
39
|
+
|
|
40
|
+
- before model exposure, so disallowed tools are absent from tool schemas and prompts
|
|
41
|
+
- at execution time, so emitted disallowed tool calls are denied
|
|
42
|
+
|
|
43
|
+
The active profile name, source, search order, and allowed tool list are included in the accepted run metadata and persisted run record. `GET /v1/runs/{id}` is the canonical status source and includes output tail metadata when available. `/v1/runs/{id}/output` remains a raw log/delta endpoint.
|
|
44
|
+
|
|
45
|
+
For bookkeeping integrations, prefer direct calls instead of `/v1/run`:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
curl -s -X POST "$OMNIUS/v1/tools/todo_write/call" \
|
|
49
|
+
-H 'content-type: application/json' \
|
|
50
|
+
-H 'x-omnius-session-id: regi-turn-123' \
|
|
51
|
+
-d '{"profile":"cygnus-regi-tracking","args":{"todos":[{"content":"Create NC report","status":"in_progress"}]}}'
|
|
52
|
+
```
|
|
53
|
+
|
|
38
54
|
## Abort
|
|
39
55
|
|
|
40
56
|
`DELETE /v1/runs/{id}` aborts the job. The daemon signals the process group, escalates if needed, updates the job record, and decrements per-key active job counters.
|
|
@@ -17,12 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
## Tool Metadata
|
|
19
19
|
|
|
20
|
+
`GET /v1/tools` and `POST /v1/tools/{name}/call` use the same direct-call registry, built from the `@omnius/execution` tool manifest plus virtual lifecycle tools such as `task_complete`. If a tool appears in `/v1/tools` with `direct_callable: true`, the same name is callable at `/v1/tools/{name}/call`.
|
|
21
|
+
|
|
20
22
|
`GET /v1/tools` returns each tool's:
|
|
21
23
|
|
|
22
24
|
- name
|
|
23
25
|
- class
|
|
24
26
|
- description
|
|
25
27
|
- JSON-schema parameters
|
|
28
|
+
- `direct_callable`
|
|
26
29
|
- security categories
|
|
27
30
|
- risk
|
|
28
31
|
- required scope
|
|
@@ -36,16 +39,21 @@ Filters include:
|
|
|
36
39
|
?scope=read|run|admin
|
|
37
40
|
?risk=low|medium|high|critical
|
|
38
41
|
?limit=200&offset=0
|
|
42
|
+
?profile=cygnus-regi-tracking
|
|
39
43
|
```
|
|
40
44
|
|
|
45
|
+
Profiles can also be selected with `X-Tool-Profile`. Named profiles resolve in this order: built-in preset, `{working_dir}/.omnius/profiles/{name}.json`, then `~/.omnius/profiles/{name}.json`. Missing profiles fail closed.
|
|
46
|
+
|
|
41
47
|
## Tool Calls
|
|
42
48
|
|
|
43
49
|
`POST /v1/tools/{name}/call` body:
|
|
44
50
|
|
|
45
51
|
```json
|
|
46
52
|
{
|
|
53
|
+
"session_id": "regi-turn-123",
|
|
47
54
|
"args": {},
|
|
48
|
-
"working_dir": "/path/to/repo"
|
|
55
|
+
"working_dir": "/path/to/repo",
|
|
56
|
+
"profile": "cygnus-regi-tracking"
|
|
49
57
|
}
|
|
50
58
|
```
|
|
51
59
|
|
|
@@ -53,6 +61,17 @@ Filters include:
|
|
|
53
61
|
|
|
54
62
|
Tool calls are gated by auth scope, tool policy, off-device policy, and profile restrictions.
|
|
55
63
|
|
|
64
|
+
Bookkeeping tools are direct-callable and do not require a model run:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -s -X POST "$OMNIUS/v1/tools/todo_write/call" \
|
|
68
|
+
-H 'content-type: application/json' \
|
|
69
|
+
-H 'x-omnius-session-id: regi-turn-123' \
|
|
70
|
+
-d '{"profile":"cygnus-regi-tracking","args":{"todos":[{"content":"Create NC report","status":"in_progress"}]}}'
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Use `todo_write`, `todo_read`, `working_notes`, and `task_complete` this way for deterministic tracking. `task_complete` on this endpoint is only a bookkeeping boundary; `/v1/runs/{id}` remains the canonical run terminal state.
|
|
74
|
+
|
|
56
75
|
## MCP
|
|
57
76
|
|
|
58
77
|
MCP endpoints list connected Model Context Protocol servers and invoke tools through the daemon with the same auth and audit envelope.
|
|
@@ -9,7 +9,7 @@ import OpenAI from "openai";
|
|
|
9
9
|
|
|
10
10
|
const client = new OpenAI({
|
|
11
11
|
baseURL: "http://127.0.0.1:11435/v1",
|
|
12
|
-
apiKey: process.env.
|
|
12
|
+
apiKey: process.env.OMNIUS_REST_API_KEY ?? "local-dev",
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
const response = await client.chat.completions.create({
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.198",
|
|
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.198",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.198",
|
|
4
4
|
"description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -142,5 +142,5 @@
|
|
|
142
142
|
"transcribe-cli": "^2.0.1",
|
|
143
143
|
"viem": "2.47.4"
|
|
144
144
|
},
|
|
145
|
-
"readme": "# Omnius\n\nOmnius is a local-first agentic coding runtime: terminal UI, autonomous coding loop, REST daemon, model router, memory layer, media tools, Telegram bridge, and peer-to-peer inference mesh in one CLI.\n\nIt is designed for open-weight and user-controlled models first, while still routing cleanly through Ollama, vLLM, OpenAI-compatible endpoints, OpenRouter, Groq, Chutes, sponsor peers, COHERE peers, and other configured providers.\n\n[](https://www.npmjs.com/package/omnius)\n[](https://nodejs.org/)\n[](LICENSE)\n\n## Install\n\n```bash\nnpm install -g omnius\nomnius\n```\n\nRequirements:\n\n- Node.js 22 or newer\n- npm 10 or newer for published CLI use\n- pnpm 9 or newer for workspace development\n- A local model or configured remote endpoint\n\nStart the REST daemon:\n\n```bash\nomnius serve\n```\n\nThe daemon defaults to `http://127.0.0.1:11435`. Open the interactive API docs at `http://127.0.0.1:11435/docs`.\n\n## What Omnius Does\n\n- Runs autonomous coding tasks, edits files, executes tools, tests changes, and iterates on failures.\n- Provides a dense terminal UI for model selection, endpoint routing, task control, shell output, voice, sponsors, Telegram, and system telemetry.\n- Exposes a REST daemon with OpenAI/Ollama-compatible inference, agentic task execution, memory, skills, tools, MCP, events, voice, projects, and governance endpoints.\n- Routes models through local, cloud, sponsor, and peer-to-peer endpoints without assuming local Ollama is the only source.\n- Supports realtime spoken conversation for ASR/TTS clients through `/realtime` and REST `realtime: true`.\n- Supports image, video, sound, music, TTS, ASR, voice clone references, Telegram media workflows, and sponsor-provided media generation.\n- Keeps project runtime state in `.omnius/`, which is intentionally ignored by git.\n\n## Common Workflows\n\n```bash\nomnius \"inspect this repo and summarize the main entrypoints\"\nomnius serve\n```\n\n```text\n/help command help\n/model select or inspect the active model\n/endpoint select or configure local, cloud, sponsor, or peer endpoints\n/realtime toggle short ASR/TTS-oriented conversation mode\n/broker inspect model broker, RAM/VRAM thresholds, and loaded models\n/sponsor expose local or upstream capacity to peers\n/cohere participate in distributed COHERE inference\n/telegram configure or toggle the Telegram bridge\n/skills list explorable skills and docs memories\n/pause pause after the current turn boundary\n/stop interrupt the active run\n/resume resume saved state\n```\n\n## Current Feature Areas\n\n| Area | What to read |\n| --- | --- |\n| 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) |\n| Terminal workflows | [TUI workflows](docs/guides/tui-workflows.md), [Slash commands](docs/reference/slash-commands.md) |\n| REST daemon | [REST reference](docs/reference/rest-api.md), [REST quickref](docs/rest/QUICKREF.md), [OpenAPI source](docs/rest/openapi-source.md) |\n| Realtime voice chat | [Realtime guide](docs/guides/realtime.md) |\n| Sponsor and COHERE mesh | [Sponsor and COHERE guide](docs/guides/sponsor-and-cohere.md) |\n| Telegram bridge | [Telegram guide](docs/guides/telegram.md) |\n| Media generation | [Media guide](docs/guides/media-generation.md) |\n| Operations | [Runtime hygiene](docs/operations/runtime-hygiene.md), [Security and remote access](docs/operations/security-and-remote-access.md) |\n| Architecture | [Architecture overview](docs/architecture/overview.md) |\n| Agent-explorable docs | [Agent memory docs index](docs/agent-memory/INDEX.md) |\n\n## Recent Highlights\n\n- `/realtime` and REST `realtime: true` provide short, natural, SOUL.md-aware conversation for ASR/TTS clients.\n- Endpoint setup and sponsor setup aggregate models from all enabled endpoints, including external OpenAI-compatible routers.\n- `/sponsor` can expose text inference and media generation for image, video, sound, and music with per-modality limits.\n- Sponsor and COHERE status surfaces now use shared telemetry concepts: concurrency, request rate, daily tokens, peer usage, model usage, and remote system metrics.\n- The TUI reports token production rate as `t/s`, supports Shift+Enter multiline input, and renders dynamic shell output inside bounded Unicode cards.\n- Telegram state is scoped by user and group, supports durable reply preferences, and feeds raw platform/tool failures back into the agent loop.\n- Ollama pool cleanup now accounts for process groups and orphan runner processes that can keep VRAM pinned.\n- REST documentation is available both as human docs and as Omnius-discoverable docs skills.\n\n## REST API\n\nStart:\n\n```bash\nomnius serve\n```\n\nUseful entrypoints:\n\n```text\nGET /docs\nGET /openapi.json\nPOST /v1/chat\nPOST /v1/chat/completions\nPOST /v1/run\nGET /v1/events\nGET /v1/skills\nPOST /v1/tools/{name}/call\nWS /v1/voicechat/ws\n```\n\nFor shared deployments, use bearer keys:\n\n```bash\
|
|
145
|
+
"readme": "# Omnius\n\nOmnius is a local-first agentic coding runtime: terminal UI, autonomous coding loop, REST daemon, model router, memory layer, media tools, Telegram bridge, and peer-to-peer inference mesh in one CLI.\n\nIt is designed for open-weight and user-controlled models first, while still routing cleanly through Ollama, vLLM, OpenAI-compatible endpoints, OpenRouter, Groq, Chutes, sponsor peers, COHERE peers, and other configured providers.\n\n[](https://www.npmjs.com/package/omnius)\n[](https://nodejs.org/)\n[](LICENSE)\n\n## Install\n\n```bash\nnpm install -g omnius\nomnius\n```\n\nRequirements:\n\n- Node.js 22 or newer\n- npm 10 or newer for published CLI use\n- pnpm 9 or newer for workspace development\n- A local model or configured remote endpoint\n\nStart the REST daemon:\n\n```bash\nomnius serve\n```\n\nThe daemon defaults to `http://127.0.0.1:11435`. Open the interactive API docs at `http://127.0.0.1:11435/docs`.\n\n## What Omnius Does\n\n- Runs autonomous coding tasks, edits files, executes tools, tests changes, and iterates on failures.\n- Provides a dense terminal UI for model selection, endpoint routing, task control, shell output, voice, sponsors, Telegram, and system telemetry.\n- Exposes a REST daemon with OpenAI/Ollama-compatible inference, agentic task execution, memory, skills, tools, MCP, events, voice, projects, and governance endpoints.\n- Routes models through local, cloud, sponsor, and peer-to-peer endpoints without assuming local Ollama is the only source.\n- Supports realtime spoken conversation for ASR/TTS clients through `/realtime` and REST `realtime: true`.\n- Supports image, video, sound, music, TTS, ASR, voice clone references, Telegram media workflows, and sponsor-provided media generation.\n- Keeps project runtime state in `.omnius/`, which is intentionally ignored by git.\n\n## Common Workflows\n\n```bash\nomnius \"inspect this repo and summarize the main entrypoints\"\nomnius serve\n```\n\n```text\n/help command help\n/model select or inspect the active model\n/endpoint select or configure local, cloud, sponsor, or peer endpoints\n/realtime toggle short ASR/TTS-oriented conversation mode\n/broker inspect model broker, RAM/VRAM thresholds, and loaded models\n/sponsor expose local or upstream capacity to peers\n/cohere participate in distributed COHERE inference\n/telegram configure or toggle the Telegram bridge\n/skills list explorable skills and docs memories\n/pause pause after the current turn boundary\n/stop interrupt the active run\n/resume resume saved state\n```\n\n## Current Feature Areas\n\n| Area | What to read |\n| --- | --- |\n| 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) |\n| Terminal workflows | [TUI workflows](docs/guides/tui-workflows.md), [Slash commands](docs/reference/slash-commands.md) |\n| REST daemon | [REST reference](docs/reference/rest-api.md), [REST quickref](docs/rest/QUICKREF.md), [OpenAPI source](docs/rest/openapi-source.md) |\n| Realtime voice chat | [Realtime guide](docs/guides/realtime.md) |\n| Sponsor and COHERE mesh | [Sponsor and COHERE guide](docs/guides/sponsor-and-cohere.md) |\n| Telegram bridge | [Telegram guide](docs/guides/telegram.md) |\n| Media generation | [Media guide](docs/guides/media-generation.md) |\n| Operations | [Runtime hygiene](docs/operations/runtime-hygiene.md), [Security and remote access](docs/operations/security-and-remote-access.md) |\n| Architecture | [Architecture overview](docs/architecture/overview.md) |\n| Agent-explorable docs | [Agent memory docs index](docs/agent-memory/INDEX.md) |\n\n## Recent Highlights\n\n- `/realtime` and REST `realtime: true` provide short, natural, SOUL.md-aware conversation for ASR/TTS clients.\n- Endpoint setup and sponsor setup aggregate models from all enabled endpoints, including external OpenAI-compatible routers.\n- `/sponsor` can expose text inference and media generation for image, video, sound, and music with per-modality limits.\n- Sponsor and COHERE status surfaces now use shared telemetry concepts: concurrency, request rate, daily tokens, peer usage, model usage, and remote system metrics.\n- The TUI reports token production rate as `t/s`, supports Shift+Enter multiline input, and renders dynamic shell output inside bounded Unicode cards.\n- Telegram state is scoped by user and group, supports durable reply preferences, and feeds raw platform/tool failures back into the agent loop.\n- Ollama pool cleanup now accounts for process groups and orphan runner processes that can keep VRAM pinned.\n- REST documentation is available both as human docs and as Omnius-discoverable docs skills.\n\n## REST API\n\nStart:\n\n```bash\nomnius serve\n```\n\nUseful entrypoints:\n\n```text\nGET /docs\nGET /openapi.json\nPOST /v1/chat\nPOST /v1/chat/completions\nPOST /v1/run\nGET /v1/events\nGET /v1/skills\nPOST /v1/tools/{name}/call\nWS /v1/voicechat/ws\n```\n\nFor shared deployments, use bearer keys:\n\n```bash\nOMNIUS_REST_API_KEYS=\"read-key:read:grafana,run-key:run:ci:60:100000:3,admin-key:admin:ops\" omnius serve\n```\n\nSee [docs/reference/rest-api.md](docs/reference/rest-api.md) for the maintained endpoint inventory. The canonical machine contract is generated from [packages/cli/src/api/openapi.ts](packages/cli/src/api/openapi.ts).\n\n## Agent-Explorable Documentation\n\nOmnius discovers project-local docs skills from `.aiwg/addons/*/skills`. The docs bundles in this repo expose high-signal entrypoints for agents:\n\n```text\n/skills omnius docs\nskill_execute name=\"omnius-docs\"\nskill_execute name=\"omnius-rest-docs\"\nskill_extract name=\"omnius-realtime-docs\" query=\"How does realtime REST mode work?\"\n```\n\nThe intended pattern is index first, targeted document second, not loading the whole manual into the active context.\n\n## Development\n\n```bash\npnpm install\npnpm -r build\npnpm docs:check\n```\n\nFocused checks used for the docs skill surface:\n\n```bash\npnpm --filter @omnius/execution exec vitest run tests/skill-discovery.test.ts\npnpm --filter omnius exec vitest run tests/realtime-mode.test.ts tests/command-registry.test.ts\n```\n\n## Publishing\n\nPublish only from `publish/`.\n\n```bash\ncd omnius\npnpm -r clean || true\nfind . -name 'tsconfig.tsbuildinfo' -not -path '*/node_modules/*' -delete\npnpm -r build\nnode scripts/build-publish.mjs\ncd publish\nmkdir -p .npm-cache\nNPM_CONFIG_CACHE=$(pwd)/.npm-cache npm pack --prefer-online --cache-min=0 --registry https://registry.npmjs.org/\nNPM_CONFIG_CACHE=$(pwd)/.npm-cache npm publish --access public --prefer-online --cache-min=0 --registry https://registry.npmjs.org/\n```\n\nBefore publishing, verify `README.md`, `package.json`, `dist/index.js`, and `dist/launcher.cjs` are in the tarball, and that `package.json` includes `readmeFilename: \"README.md\"` plus a string `readme`.\n\n## License\n\nOmnius is released under [CC-BY-NC-4.0](LICENSE) for non-commercial use. Commercial use, redistribution, hosted services, and enterprise deployment require a commercial license.\n"
|
|
146
146
|
}
|