omnius 1.0.158 → 1.0.160
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/.aiwg/addons/omnius-docs/README.md +5 -0
- package/.aiwg/addons/omnius-docs/manifest.json +32 -0
- package/.aiwg/addons/omnius-docs/skills/omnius-docs/SKILL.md +48 -0
- package/.aiwg/addons/omnius-docs/skills/omnius-ops-docs/SKILL.md +32 -0
- package/.aiwg/addons/omnius-docs/skills/omnius-realtime-docs/SKILL.md +30 -0
- package/.aiwg/addons/omnius-docs/skills/omnius-sponsor-docs/SKILL.md +31 -0
- package/.aiwg/addons/omnius-docs/skills/omnius-telegram-docs/SKILL.md +30 -0
- package/.aiwg/addons/omnius-rest-docs/README.md +7 -0
- package/.aiwg/addons/omnius-rest-docs/manifest.json +24 -0
- package/.aiwg/addons/omnius-rest-docs/skills/omnius-rest-docs/SKILL.md +72 -0
- package/README.md +115 -5011
- package/dist/index.js +2173 -1427
- package/docs/.vitepress/config.mts +108 -0
- package/docs/agent-memory/INDEX.md +38 -0
- package/docs/agent-memory/index.md +14 -0
- package/docs/architecture/overview.md +30 -0
- package/docs/getting-started/first-run.md +38 -0
- package/docs/getting-started/install.md +58 -0
- package/docs/getting-started/model-providers.md +48 -0
- package/docs/guides/media-generation.md +88 -0
- package/docs/guides/realtime.md +138 -0
- package/docs/guides/sponsor-and-cohere.md +123 -0
- package/docs/guides/telegram.md +95 -0
- package/docs/guides/tui-workflows.md +48 -0
- package/docs/index.md +30 -0
- package/docs/operations/runtime-hygiene.md +75 -0
- package/docs/operations/security-and-remote-access.md +70 -0
- package/docs/reference/configuration.md +45 -0
- package/docs/reference/rest-api.md +225 -0
- package/docs/reference/slash-commands.md +2095 -0
- package/docs/rest/INDEX.md +129 -0
- package/docs/rest/QUICKREF.md +125 -0
- package/docs/rest/REST-DOCS-MANIFEST.json +27 -0
- package/docs/rest/auth-and-scopes.md +101 -0
- package/docs/rest/endpoints/aims.md +26 -0
- package/docs/rest/endpoints/aiwg.md +44 -0
- package/docs/rest/endpoints/chat.md +101 -0
- package/docs/rest/endpoints/config.md +53 -0
- package/docs/rest/endpoints/events.md +63 -0
- package/docs/rest/endpoints/files.md +18 -0
- package/docs/rest/endpoints/memory.md +42 -0
- package/docs/rest/endpoints/run.md +52 -0
- package/docs/rest/endpoints/skills.md +41 -0
- package/docs/rest/endpoints/tools.md +62 -0
- package/docs/rest/endpoints/voice-vision.md +80 -0
- package/docs/rest/errors-pagination-etags.md +84 -0
- package/docs/rest/examples/curl.md +84 -0
- package/docs/rest/examples/openai-sdk.md +59 -0
- package/docs/rest/openapi-source.md +36 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +5 -2
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Telegram Bridge
|
|
2
|
+
|
|
3
|
+
The Telegram bridge is a scoped public ingress and egress layer. It supports admin DMs, admin group mode, public group mode, media intake, generated artifact return, scoped memory, and persona documents.
|
|
4
|
+
|
|
5
|
+
## Start And Configure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
/telegram --key <bot-token>
|
|
9
|
+
/telegram --admin <telegram-user-id>
|
|
10
|
+
/telegram
|
|
11
|
+
/telegram status
|
|
12
|
+
/telegram stop
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## BotFather Setup
|
|
16
|
+
|
|
17
|
+
1. Create the bot with BotFather and save the token through `/telegram --key <bot-token>`.
|
|
18
|
+
2. Disable privacy mode if the bot must read all group messages; leave privacy mode on if it should only see commands, mentions, and replies.
|
|
19
|
+
3. Add the bot to the target group and grant only the permissions it needs.
|
|
20
|
+
4. Send `/telegram --admin <telegram-user-id>` from the TUI before enabling public contexts.
|
|
21
|
+
5. Run `/telegram status` and verify bot username, admin user, mode, and connected chats.
|
|
22
|
+
|
|
23
|
+
## Access Matrix
|
|
24
|
+
|
|
25
|
+
| Context | Read Messages | Send Messages | Tools | Memory Scope |
|
|
26
|
+
| --- | --- | --- | --- | --- |
|
|
27
|
+
| Admin DM | yes | yes | admin policy | admin user |
|
|
28
|
+
| Admin group | replies, mentions, or all messages depending on BotFather privacy | only if Telegram grants send rights | configured group policy | group plus sender |
|
|
29
|
+
| Public group | scoped public intake | only if Telegram grants send rights | creative/public policy | group plus sender |
|
|
30
|
+
| No send rights | observed incoming messages only | no | no outbound retry loop | failure noted for that chat |
|
|
31
|
+
|
|
32
|
+
If Telegram returns a send failure, store the raw failed tool output in the conversation trajectory. The agent should reason from the observed failure and avoid repeated sends to a chat where it lacks rights.
|
|
33
|
+
|
|
34
|
+
## Scope Model
|
|
35
|
+
|
|
36
|
+
Telegram context must preserve:
|
|
37
|
+
|
|
38
|
+
- chat ID
|
|
39
|
+
- user ID
|
|
40
|
+
- sender identity
|
|
41
|
+
- reply target
|
|
42
|
+
- media references
|
|
43
|
+
- group versus private scope
|
|
44
|
+
|
|
45
|
+
The agent must not collapse every participant into "the user." Persona and preference state is scoped by user and by group.
|
|
46
|
+
|
|
47
|
+
## Reply Preferences
|
|
48
|
+
|
|
49
|
+
Supported preference modes:
|
|
50
|
+
|
|
51
|
+
- quick full-context reply first, then notes after
|
|
52
|
+
- notes first, reply after
|
|
53
|
+
- simple rapid reply with tools and context but no extra notes stage
|
|
54
|
+
|
|
55
|
+
Preferences should be stored only when a user explicitly expresses a preference or an admin configures one. They should live in persona/state docs for that user or group scope.
|
|
56
|
+
|
|
57
|
+
| Mode | Behavior |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| `reply-first` | send the reply with full context first, then store notes/reflection after |
|
|
60
|
+
| `notes-first` | store notes/reflection first, then send the reply |
|
|
61
|
+
| `rapid` | reply with current tools and context, no extra notes stage |
|
|
62
|
+
|
|
63
|
+
Preference writes require an explicit tool decision. They are not selected by regex or chat heuristics.
|
|
64
|
+
|
|
65
|
+
## Failure Feedback
|
|
66
|
+
|
|
67
|
+
Telegram platform and tool failures should be passed back to the agent loop as raw observed output. Do not hardcode behavior around a specific Telegram error string. The model should see the observed failure and choose a corrected action.
|
|
68
|
+
|
|
69
|
+
Failure feedback should include:
|
|
70
|
+
|
|
71
|
+
- attempted method and destination chat ID
|
|
72
|
+
- Telegram API error object as returned
|
|
73
|
+
- message or media type attempted
|
|
74
|
+
- whether the failure happened before or after content generation
|
|
75
|
+
- current chat/user preference scope
|
|
76
|
+
|
|
77
|
+
The feedback is ordinary trajectory evidence. It should not be converted into reward hacks, hidden classifiers, or error-specific branches.
|
|
78
|
+
|
|
79
|
+
## Public Creative Tools
|
|
80
|
+
|
|
81
|
+
Public users can create files, images, and audio through scoped creative workspaces under:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
.omnius/telegram-creative/<chat>/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
These tools should not grant arbitrary filesystem access.
|
|
88
|
+
|
|
89
|
+
## Media Intake
|
|
90
|
+
|
|
91
|
+
Photos, documents, audio, video, and voice messages should be downloaded, summarized, scoped, and linked into memory with sender/message/reply metadata where enabled.
|
|
92
|
+
|
|
93
|
+
## Verification
|
|
94
|
+
|
|
95
|
+
Relevant focused tests include Telegram delivery preferences, inference error suppression, reflection corpus, and Bot API compatibility tests.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# TUI Workflows
|
|
2
|
+
|
|
3
|
+
The TUI is the primary Omnius control surface for interactive use.
|
|
4
|
+
|
|
5
|
+
## Core Commands
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
/help
|
|
9
|
+
/model
|
|
10
|
+
/endpoint
|
|
11
|
+
/realtime
|
|
12
|
+
/broker
|
|
13
|
+
/sponsor
|
|
14
|
+
/cohere
|
|
15
|
+
/telegram
|
|
16
|
+
/skills
|
|
17
|
+
/pause
|
|
18
|
+
/stop
|
|
19
|
+
/resume
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Input Behavior
|
|
23
|
+
|
|
24
|
+
Shift+Enter inserts a newline in the prompt box and expands the input area. Enter submits the prompt.
|
|
25
|
+
|
|
26
|
+
The input box should preserve Unicode line boundaries and avoid overwriting previous lower entries.
|
|
27
|
+
|
|
28
|
+
## Shell Output
|
|
29
|
+
|
|
30
|
+
Shell command output is rendered inside bounded Unicode cards. Dynamic installer output should update inside the shell block with a mini-scroll effect instead of corrupting adjacent UI.
|
|
31
|
+
|
|
32
|
+
## Status Row
|
|
33
|
+
|
|
34
|
+
The bottom data row reports:
|
|
35
|
+
|
|
36
|
+
- local system stats
|
|
37
|
+
- remote sponsor stats when applicable
|
|
38
|
+
- tokens in
|
|
39
|
+
- tokens out
|
|
40
|
+
- token production rate as `t/s`
|
|
41
|
+
- model/endpoint state
|
|
42
|
+
- Ollama pressure where available
|
|
43
|
+
|
|
44
|
+
Sponsor consumer mode can alternate local and remote peer telemetry.
|
|
45
|
+
|
|
46
|
+
## Mid-Task Steering
|
|
47
|
+
|
|
48
|
+
Added context and steering should pass through an intake layer that interprets the new requirement relative to the active task. It should not duplicate "Context added" text as prompt content or rely on hardcoded acknowledgements.
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Omnius Documentation
|
|
2
|
+
|
|
3
|
+
Omnius is an autonomous local-first agent runtime with a TUI, REST daemon, P2P sponsor mesh, Telegram bridge, realtime conversation mode, media generation routes, and AIWG-compatible documentation skills.
|
|
4
|
+
|
|
5
|
+
## Start Here
|
|
6
|
+
|
|
7
|
+
- [Install](./getting-started/install.md)
|
|
8
|
+
- [First Run](./getting-started/first-run.md)
|
|
9
|
+
- [Model Providers](./getting-started/model-providers.md)
|
|
10
|
+
- [Architecture](./architecture/overview.md)
|
|
11
|
+
|
|
12
|
+
## Workflows
|
|
13
|
+
|
|
14
|
+
- [TUI Workflows](./guides/tui-workflows.md)
|
|
15
|
+
- [Sponsor And COHERE](./guides/sponsor-and-cohere.md)
|
|
16
|
+
- [Realtime Conversation](./guides/realtime.md)
|
|
17
|
+
- [Telegram](./guides/telegram.md)
|
|
18
|
+
- [Media Generation](./guides/media-generation.md)
|
|
19
|
+
|
|
20
|
+
## Reference
|
|
21
|
+
|
|
22
|
+
- [REST API](./reference/rest-api.md)
|
|
23
|
+
- [Slash Commands](./reference/slash-commands.md)
|
|
24
|
+
- [Configuration](./reference/configuration.md)
|
|
25
|
+
- [Agent Memory Index](./agent-memory/)
|
|
26
|
+
|
|
27
|
+
## Operations
|
|
28
|
+
|
|
29
|
+
- [Security And Remote Access](./operations/security-and-remote-access.md)
|
|
30
|
+
- [Runtime Hygiene](./operations/runtime-hygiene.md)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Runtime Hygiene
|
|
2
|
+
|
|
3
|
+
Runtime hygiene keeps long-running Omnius instances from accumulating stale state, stuck child processes, or leaked project artifacts.
|
|
4
|
+
|
|
5
|
+
## `.omnius/`
|
|
6
|
+
|
|
7
|
+
`.omnius/` is runtime state and should not be committed. Omnius automatically adds it to `.gitignore` for repositories that have or later create a `.gitignore`.
|
|
8
|
+
|
|
9
|
+
## Ollama Pool Cleanup
|
|
10
|
+
|
|
11
|
+
Ollama servers spawned by the pool should run as process-group leaders. Cleanup must account for:
|
|
12
|
+
|
|
13
|
+
- direct `ollama serve` children
|
|
14
|
+
- orphaned `ollama runner` children
|
|
15
|
+
- stale pool records
|
|
16
|
+
- protected base services
|
|
17
|
+
- active runners that should not be killed
|
|
18
|
+
|
|
19
|
+
Use dry-run first:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
/ollama cleanup
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Execute only when the cleanup decision looks correct:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
/ollama cleanup --execute
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Model Broker
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
/broker
|
|
35
|
+
/broker evict <host>:<name>
|
|
36
|
+
/broker threshold <ram|vram|idle> <value>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The broker reports loaded models, in-flight loads, RAM/VRAM headroom, GPU slots, idle eviction thresholds, and manual eviction actions.
|
|
40
|
+
|
|
41
|
+
## Installer Elevation
|
|
42
|
+
|
|
43
|
+
Installers that need elevation should temporarily suspend the TUI, present the password prompt directly in the terminal, consume it through the system elevation path, and restore TUI state after completion.
|
|
44
|
+
|
|
45
|
+
## Raw Failure Capture
|
|
46
|
+
|
|
47
|
+
Shell, installer, Telegram, sponsor, and API failures should be captured as observed output and fed back to the agent loop. Avoid hardcoded string-specific reward or routing hacks.
|
|
48
|
+
|
|
49
|
+
## Update And Install Triage
|
|
50
|
+
|
|
51
|
+
`/update full` may touch npm packages, Python virtualenvs, cloudflared, voice dependencies, media backends, and system packages. The updater should classify failure by the command that failed and the raw process result, then try the next safe remediation:
|
|
52
|
+
|
|
53
|
+
| Failure Surface | First Remediation |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| npm cache permission | rerun with the configured local npm cache |
|
|
56
|
+
| missing Python wheel | prefer binary wheels, then surface the package and Python version |
|
|
57
|
+
| system dependency missing | request elevation and run the documented package install |
|
|
58
|
+
| password prompt needed over SSH | suspend the TUI, clear the terminal, read the system prompt, then restore |
|
|
59
|
+
| model backend install failed | record backend, command, exit code, stderr, and next suggested command |
|
|
60
|
+
|
|
61
|
+
The runtime should never hide installer output behind a generic spinner. Dynamic output should stream into the bounded shell block, preserving the last visible lines and a clean overflow indicator.
|
|
62
|
+
|
|
63
|
+
## TUI State During Elevation
|
|
64
|
+
|
|
65
|
+
When an elevated install is required:
|
|
66
|
+
|
|
67
|
+
1. save the current TUI render state and input buffer
|
|
68
|
+
2. stop alternate-screen drawing if active
|
|
69
|
+
3. show the real password request in the terminal
|
|
70
|
+
4. run only the requested elevated command
|
|
71
|
+
5. clear sensitive prompt residue
|
|
72
|
+
6. restore the TUI frame and input buffer
|
|
73
|
+
7. add the raw command result to the agent trajectory
|
|
74
|
+
|
|
75
|
+
This path is required for SSH sessions where a desktop password modal cannot appear.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Security And Remote Access
|
|
2
|
+
|
|
3
|
+
Omnius is local-first by default. Remote access should be explicit, authenticated, and scoped.
|
|
4
|
+
|
|
5
|
+
## Local Binding
|
|
6
|
+
|
|
7
|
+
Default daemon URL:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
http://127.0.0.1:11435
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Bind to a network interface only when you also configure auth:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
OMNIUS_HOST=0.0.0.0:11435 \
|
|
17
|
+
OMNIUS_API_KEYS="read-key:read:grafana,run-key:run:ci:60:100000:3,admin-key:admin:ops" \
|
|
18
|
+
omnius serve
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Scopes
|
|
22
|
+
|
|
23
|
+
- `read`: inspect state, usage, models, events, skills, memory search, and metadata.
|
|
24
|
+
- `run`: submit tasks and execute permitted run-scope tools.
|
|
25
|
+
- `admin`: mutate config, keys, high-risk controls, and admin-only tools.
|
|
26
|
+
|
|
27
|
+
Tool policy still applies after auth scope is accepted.
|
|
28
|
+
|
|
29
|
+
## Sponsor Safety
|
|
30
|
+
|
|
31
|
+
Sponsor providers should expose model and media capacity without exposing raw upstream URLs or provider secrets. Consumers should see sponsor models and telemetry, not implementation credentials.
|
|
32
|
+
|
|
33
|
+
## Telegram Public Contexts
|
|
34
|
+
|
|
35
|
+
Public Telegram contexts must use scoped tools and scoped memory. No arbitrary shell, local filesystem access, or unscoped private memory should be exposed to public users.
|
|
36
|
+
|
|
37
|
+
## Secret Handling
|
|
38
|
+
|
|
39
|
+
Secrets should be redacted before requests reach untrusted inference peers. Runtime API keys live under `~/.omnius/keys.json` when minted through the daemon.
|
|
40
|
+
|
|
41
|
+
## Hardening Checklist
|
|
42
|
+
|
|
43
|
+
| Area | Required Control |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| Binding | keep `127.0.0.1` unless remote access is intentional |
|
|
46
|
+
| Auth | require API keys before binding to LAN or public interfaces |
|
|
47
|
+
| Scopes | issue separate `read`, `run`, and `admin` keys per caller |
|
|
48
|
+
| Tool policy | attach restricted profiles for CI, public Telegram, and remote peers |
|
|
49
|
+
| Secrets | redact provider keys before sponsor, COHERE, Telegram, or remote model calls |
|
|
50
|
+
| Logs | avoid storing raw secrets in `.omnius/`, audit logs, or crash output |
|
|
51
|
+
| Sponsors | enforce concurrency, RPM, daily tokens, and model/media allowlists server-side |
|
|
52
|
+
| Telegram | verify group permissions and public/private policy before enabling group mode |
|
|
53
|
+
| Updates | treat `/update full` as installer code; preserve password prompts outside the TUI frame |
|
|
54
|
+
| Reverse proxy | use TLS, preserve WebSocket upgrades, and forward only intended paths |
|
|
55
|
+
|
|
56
|
+
## Remote Daemon Exposure
|
|
57
|
+
|
|
58
|
+
For a LAN daemon, prefer a scoped key set:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
OMNIUS_HOST=0.0.0.0:11435 \
|
|
62
|
+
OMNIUS_API_KEYS="dash:read:grafana:600::,ci:run:ci:60:100000:3,ops:admin:ops:120:500000:10" \
|
|
63
|
+
omnius serve
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
For internet exposure, put Omnius behind a reverse proxy with TLS and a narrow route allowlist. Expose `/v1/chat`, `/v1/chat/completions`, `/v1/run`, `/v1/events`, and `/v1/voicechat/ws` only when the caller and tool profile need them.
|
|
67
|
+
|
|
68
|
+
## Public Tool Profiles
|
|
69
|
+
|
|
70
|
+
Public or group-facing agents should run with a profile that denies shell, arbitrary file writes outside scoped creative directories, project destruction, sponsor/provider mutation, key mutation, and raw secret access. Creative media paths should be rooted under chat/session directories, not user-provided absolute paths.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Configuration Reference
|
|
2
|
+
|
|
3
|
+
Configuration is layered from environment, global user settings, project settings, and active TUI state.
|
|
4
|
+
|
|
5
|
+
## Common Environment Variables
|
|
6
|
+
|
|
7
|
+
| Variable | Purpose |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `OMNIUS_HOST` | Bind host and port, for example `0.0.0.0:11435` |
|
|
10
|
+
| `OMNIUS_API_KEY` | Single admin bearer token |
|
|
11
|
+
| `OMNIUS_API_KEYS` | Multi-key auth: `key:scope:owner:rpm:tpd:max_jobs` |
|
|
12
|
+
| `OMNIUS_ACCESS` | Network access policy for the daemon |
|
|
13
|
+
| `OMNIUS_DAEMON` | Start in daemon mode when set to `1` |
|
|
14
|
+
| `OMNIUS_FORCE_NO_THINK` | Force `think: false` for Qwen-style backends |
|
|
15
|
+
| `OMNIUS_THINK_AUTO` | Enable opt-in automatic thinking mode trigger |
|
|
16
|
+
|
|
17
|
+
## Runtime State
|
|
18
|
+
|
|
19
|
+
Project runtime state:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
.omnius/
|
|
23
|
+
settings.json
|
|
24
|
+
jobs/
|
|
25
|
+
context/
|
|
26
|
+
sponsor/
|
|
27
|
+
scoped-personality/
|
|
28
|
+
telegram-creative/
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
User-global state may live under `~/.omnius/`, including runtime API keys and voice clone references.
|
|
32
|
+
|
|
33
|
+
## Auth Key Format
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
key:scope:owner:rpm:tpd:max_jobs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Scopes:
|
|
40
|
+
|
|
41
|
+
- `read`
|
|
42
|
+
- `run`
|
|
43
|
+
- `admin`
|
|
44
|
+
|
|
45
|
+
Rate and concurrency fields are optional.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# REST API Reference
|
|
2
|
+
|
|
3
|
+
This is the maintained human endpoint inventory for the Omnius daemon. The machine contract is generated by `packages/cli/src/api/openapi.ts` and served at `/openapi.json`.
|
|
4
|
+
|
|
5
|
+
Run the drift check before publishing docs:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm docs:check
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Docs And Compatibility Aliases
|
|
12
|
+
|
|
13
|
+
| Method | Path | Purpose |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| `GET` | `/docs` | Swagger UI |
|
|
16
|
+
| `GET` | `/api/docs` | Swagger UI alias |
|
|
17
|
+
| `GET` | `/openapi.json` | OpenAPI JSON |
|
|
18
|
+
| `GET` | `/openapi.yaml` | OpenAPI YAML |
|
|
19
|
+
| `GET` | `/v3/api-docs` | OpenAPI alias |
|
|
20
|
+
| `GET` | `/swagger.json` | Swagger-era alias |
|
|
21
|
+
| `GET` | `/api-docs` | OpenAPI alias |
|
|
22
|
+
| `GET` | `/swagger-ui` | Swagger UI alias |
|
|
23
|
+
| `GET` | `/redoc` | ReDoc renderer |
|
|
24
|
+
|
|
25
|
+
## Health And Observability
|
|
26
|
+
|
|
27
|
+
| Method | Path | Purpose |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `GET` | `/health` | Liveness probe |
|
|
30
|
+
| `GET` | `/health/ready` | Backend readiness |
|
|
31
|
+
| `GET` | `/health/startup` | Startup probe |
|
|
32
|
+
| `GET` | `/version` | Package version and platform |
|
|
33
|
+
| `GET` | `/metrics` | Prometheus metrics |
|
|
34
|
+
| `GET` | `/v1/events` | Server-sent event stream |
|
|
35
|
+
| `GET` | `/v1/usage` | Token usage and rate limits |
|
|
36
|
+
| `GET` | `/v1/audit` | Audit log query |
|
|
37
|
+
| `GET` | `/v1/cost` | Cost tracker |
|
|
38
|
+
| `GET` | `/v1/system` | CPU, RAM, GPU, and system snapshot |
|
|
39
|
+
|
|
40
|
+
## Inference And Chat
|
|
41
|
+
|
|
42
|
+
| Method | Path | Purpose |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| `GET` | `/v1/models` | Aggregated model list |
|
|
45
|
+
| `POST` | `/v1/chat/completions` | OpenAI-compatible chat completion |
|
|
46
|
+
| `POST` | `/v1/chat` | Stateful Omnius chat |
|
|
47
|
+
| `POST` | `/api/chat` | Ollama-compatible chat alias |
|
|
48
|
+
| `POST` | `/v1/generate` | Ollama-compatible one-shot generation |
|
|
49
|
+
| `POST` | `/api/generate` | Ollama-compatible generate alias |
|
|
50
|
+
| `POST` | `/v1/embeddings` | OpenAI-compatible embeddings |
|
|
51
|
+
| `POST` | `/api/embed` | Ollama-compatible embeddings alias |
|
|
52
|
+
| `GET` | `/api/tags` | Ollama-compatible model tags |
|
|
53
|
+
| `GET` | `/v1/chat/sessions` | Active chat sessions |
|
|
54
|
+
| `POST` | `/v1/chat/check-in` | Steering check-in for active chat |
|
|
55
|
+
|
|
56
|
+
## Agentic Runs
|
|
57
|
+
|
|
58
|
+
| Method | Path | Purpose |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| `POST` | `/v1/run` | Submit agentic task |
|
|
61
|
+
| `GET` | `/v1/runs` | List runs |
|
|
62
|
+
| `GET` | `/v1/runs/{id}` | Get run details |
|
|
63
|
+
| `DELETE` | `/v1/runs/{id}` | Abort run |
|
|
64
|
+
| `POST` | `/v1/todos` | Create or update todos for current session |
|
|
65
|
+
| `GET` | `/v1/todos` | List sessions with todos |
|
|
66
|
+
| `GET` | `/v1/todos/{session_id}` | Get session todos |
|
|
67
|
+
| `DELETE` | `/v1/todos/{session_id}` | Delete session todos |
|
|
68
|
+
| `POST` | `/v1/evaluate` | Evaluate a run |
|
|
69
|
+
| `POST` | `/v1/index` | Trigger repository indexing |
|
|
70
|
+
|
|
71
|
+
## Configuration, Keys, Profiles, Projects
|
|
72
|
+
|
|
73
|
+
| Method | Path | Purpose |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| `GET` | `/v1/config` | Read daemon config |
|
|
76
|
+
| `PATCH` | `/v1/config` | Update daemon config |
|
|
77
|
+
| `GET` | `/v1/config/model` | Current model |
|
|
78
|
+
| `PUT` | `/v1/config/model` | Switch model |
|
|
79
|
+
| `GET` | `/v1/config/endpoint` | Current endpoint |
|
|
80
|
+
| `PUT` | `/v1/config/endpoint` | Switch endpoint |
|
|
81
|
+
| `POST` | `/v1/config/endpoint/test` | Probe endpoint |
|
|
82
|
+
| `GET` | `/v1/config/endpoint/history` | Endpoint history |
|
|
83
|
+
| `DELETE` | `/v1/config/endpoint/history` | Remove endpoint history item |
|
|
84
|
+
| `POST` | `/v1/share/generate` | Generate remote-access share URL |
|
|
85
|
+
| `GET` | `/v1/keys` | List runtime API keys |
|
|
86
|
+
| `POST` | `/v1/keys` | Mint runtime API key |
|
|
87
|
+
| `DELETE` | `/v1/keys/{prefix}` | Revoke runtime API keys by prefix |
|
|
88
|
+
| `GET` | `/v1/profiles` | List tool profiles |
|
|
89
|
+
| `POST` | `/v1/profiles` | Create tool profile |
|
|
90
|
+
| `GET` | `/v1/profiles/{name}` | Get profile |
|
|
91
|
+
| `DELETE` | `/v1/profiles/{name}` | Delete profile |
|
|
92
|
+
| `GET` | `/v1/projects` | List known projects |
|
|
93
|
+
| `DELETE` | `/v1/projects` | Unregister a project |
|
|
94
|
+
| `GET` | `/v1/projects/current` | Current project |
|
|
95
|
+
| `POST` | `/v1/projects/switch` | Switch project |
|
|
96
|
+
| `POST` | `/v1/projects/register` | Register project |
|
|
97
|
+
| `POST` | `/v1/projects/rename` | Rename project |
|
|
98
|
+
| `GET` | `/v1/projects/preferences` | Read project preferences |
|
|
99
|
+
| `PUT` | `/v1/projects/preferences` | Patch project preferences |
|
|
100
|
+
| `DELETE` | `/v1/projects/preferences` | Reset project preferences |
|
|
101
|
+
|
|
102
|
+
## Skills, Commands, Tools, MCP
|
|
103
|
+
|
|
104
|
+
| Method | Path | Purpose |
|
|
105
|
+
| --- | --- | --- |
|
|
106
|
+
| `GET` | `/v1/skills` | List skills |
|
|
107
|
+
| `GET` | `/v1/skills/{name}` | Load skill content |
|
|
108
|
+
| `GET` | `/v1/commands` | List slash commands |
|
|
109
|
+
| `POST` | `/v1/commands/{cmd}` | Execute slash command |
|
|
110
|
+
| `GET` | `/v1/tools` | List tools |
|
|
111
|
+
| `GET` | `/v1/tools/{name}` | Tool metadata |
|
|
112
|
+
| `POST` | `/v1/tools/{name}/call` | Call tool |
|
|
113
|
+
| `GET` | `/v1/mcps` | List MCP servers |
|
|
114
|
+
| `GET` | `/v1/mcps/{name}` | MCP server details |
|
|
115
|
+
| `POST` | `/v1/mcps/{name}/call` | Call MCP tool |
|
|
116
|
+
| `GET` | `/v1/hooks` | Hook registry |
|
|
117
|
+
| `GET` | `/v1/agents` | Agent type registry |
|
|
118
|
+
| `GET` | `/v1/codegraph/snapshot` | Code graph snapshot |
|
|
119
|
+
| `GET` | `/v1/codegraph/events` | Code graph SSE |
|
|
120
|
+
|
|
121
|
+
## AIWG
|
|
122
|
+
|
|
123
|
+
| Method | Path | Purpose |
|
|
124
|
+
| --- | --- | --- |
|
|
125
|
+
| `GET` | `/v1/aiwg` | AIWG root and control map |
|
|
126
|
+
| `GET` | `/v1/aiwg/frameworks` | List frameworks |
|
|
127
|
+
| `GET` | `/v1/aiwg/frameworks/{name}` | Framework details |
|
|
128
|
+
| `GET` | `/v1/aiwg/frameworks/{name}/content` | Tier-aware content |
|
|
129
|
+
| `GET` | `/v1/aiwg/skills` | List AIWG skills |
|
|
130
|
+
| `GET` | `/v1/aiwg/skills/{name}` | Load AIWG skill |
|
|
131
|
+
| `GET` | `/v1/aiwg/agents` | List AIWG agents |
|
|
132
|
+
| `GET` | `/v1/aiwg/agents/{name}` | Load AIWG agent |
|
|
133
|
+
| `GET` | `/v1/aiwg/addons` | List AIWG addons |
|
|
134
|
+
| `POST` | `/v1/aiwg/use` | Tier-sized activation bundle |
|
|
135
|
+
| `POST` | `/v1/aiwg/expand` | Expand matching AIWG item |
|
|
136
|
+
|
|
137
|
+
## Memory, Sessions, Context
|
|
138
|
+
|
|
139
|
+
| Method | Path | Purpose |
|
|
140
|
+
| --- | --- | --- |
|
|
141
|
+
| `GET` | `/v1/memory` | Memory backend summary |
|
|
142
|
+
| `POST` | `/v1/memory/search` | Search memory |
|
|
143
|
+
| `POST` | `/v1/memory/write` | Write memory |
|
|
144
|
+
| `GET` | `/v1/memory/episodes` | List episodes |
|
|
145
|
+
| `GET` | `/v1/memory/failures` | List failure records |
|
|
146
|
+
| `GET` | `/v1/sessions` | List task sessions |
|
|
147
|
+
| `GET` | `/v1/sessions/{id}` | Get session history |
|
|
148
|
+
| `GET` | `/v1/context` | Current context snapshot |
|
|
149
|
+
| `POST` | `/v1/context/save` | Save context entry |
|
|
150
|
+
| `GET` | `/v1/context/restore` | Build restore prompt |
|
|
151
|
+
| `POST` | `/v1/context/compact` | Request compaction |
|
|
152
|
+
|
|
153
|
+
## Files, Nexus, Ollama Pool
|
|
154
|
+
|
|
155
|
+
| Method | Path | Purpose |
|
|
156
|
+
| --- | --- | --- |
|
|
157
|
+
| `GET` | `/v1/files` | List workspace directory |
|
|
158
|
+
| `POST` | `/v1/files/read` | Read workspace file |
|
|
159
|
+
| `GET` | `/v1/nexus/status` | Nexus peer state |
|
|
160
|
+
| `GET` | `/v1/sponsors` | Sponsor directory cache |
|
|
161
|
+
| `GET` | `/v1/ollama/pool/processes` | Ollama process inventory |
|
|
162
|
+
| `POST` | `/v1/ollama/pool/cleanup` | Cleanup stale Ollama pool processes |
|
|
163
|
+
|
|
164
|
+
## Voice, Audio, Vision
|
|
165
|
+
|
|
166
|
+
| Method | Path | Purpose |
|
|
167
|
+
| --- | --- | --- |
|
|
168
|
+
| `GET` | `/v1/voice/state` | Voice runtime status |
|
|
169
|
+
| `GET` | `/v1/voice/models` | TTS models |
|
|
170
|
+
| `POST` | `/v1/voice/models/switch` | Switch TTS model |
|
|
171
|
+
| `GET` | `/v1/voice/supertonic-settings` | Voice tuning settings |
|
|
172
|
+
| `POST` | `/v1/voice/supertonic-settings` | Update voice tuning settings |
|
|
173
|
+
| `GET` | `/v1/voice/asr-models` | ASR models |
|
|
174
|
+
| `POST` | `/v1/voice/asr-models/switch` | Switch ASR model |
|
|
175
|
+
| `POST` | `/v1/voice/tts` | Synthesize speech |
|
|
176
|
+
| `POST` | `/v1/audio/speech` | OpenAI-compatible TTS alias |
|
|
177
|
+
| `POST` | `/v1/voice/transcribe` | Transcribe audio |
|
|
178
|
+
| `POST` | `/v1/audio/transcriptions` | OpenAI-compatible transcription alias |
|
|
179
|
+
| `POST` | `/v1/voice/transcribe/stream` | Streaming transcription |
|
|
180
|
+
| `POST` | `/v1/voice/clone-refs` | Upload voice clone reference |
|
|
181
|
+
| `GET` | `/v1/voice/clone-refs` | List clone references |
|
|
182
|
+
| `POST` | `/v1/voice/clone-refs/upload` | Upload clone reference |
|
|
183
|
+
| `POST` | `/v1/voice/clone-refs/from-url` | Fetch clone reference |
|
|
184
|
+
| `POST` | `/v1/voice/clone-refs/{filename}/activate` | Activate clone reference |
|
|
185
|
+
| `POST` | `/v1/voice/clone-refs/{filename}/rename` | Rename clone reference |
|
|
186
|
+
| `DELETE` | `/v1/voice/clone-refs/{filename}` | Delete clone reference |
|
|
187
|
+
| `POST` | `/v1/voice/speak` | Broadcast speech to voicechat clients |
|
|
188
|
+
| `GET` | `/v1/voicechat/ws` | WebSocket upgrade for full-duplex voicechat |
|
|
189
|
+
| `POST` | `/v1/vision/describe` | Vision describe placeholder |
|
|
190
|
+
|
|
191
|
+
## Engines And Scheduled Jobs
|
|
192
|
+
|
|
193
|
+
| Method | Path | Purpose |
|
|
194
|
+
| --- | --- | --- |
|
|
195
|
+
| `GET` | `/v1/engines` | Long-running engine status |
|
|
196
|
+
| `GET` | `/v1/scheduled` | List scheduled jobs |
|
|
197
|
+
| `GET` | `/v1/scheduled/all` | List all scheduled jobs |
|
|
198
|
+
| `GET` | `/v1/scheduled/status` | Scheduler status |
|
|
199
|
+
| `POST` | `/v1/scheduled/kill` | Kill scheduled job |
|
|
200
|
+
| `POST` | `/v1/scheduled/fixup` | Reconcile scheduled state |
|
|
201
|
+
| `POST` | `/v1/scheduled/reconcile` | Force scheduled reconciliation |
|
|
202
|
+
| `GET` | `/v1/services/systemd` | Systemd service status |
|
|
203
|
+
| `GET` | `/v1/update` | Self-update status |
|
|
204
|
+
|
|
205
|
+
## AIMS Governance
|
|
206
|
+
|
|
207
|
+
| Method | Path | Purpose |
|
|
208
|
+
| --- | --- | --- |
|
|
209
|
+
| `GET` | `/v1/aims` | AIMS root and endpoint index |
|
|
210
|
+
| `GET` | `/v1/aims/policies` | Policy register |
|
|
211
|
+
| `PUT` | `/v1/aims/policies` | Replace policy register |
|
|
212
|
+
| `GET` | `/v1/aims/roles` | Roles and responsibilities |
|
|
213
|
+
| `GET` | `/v1/aims/resources` | Resource inventory |
|
|
214
|
+
| `GET` | `/v1/aims/impact-assessments` | Impact assessments |
|
|
215
|
+
| `POST` | `/v1/aims/impact-assessments` | File impact assessment |
|
|
216
|
+
| `GET` | `/v1/aims/lifecycle` | Lifecycle state |
|
|
217
|
+
| `GET` | `/v1/aims/data-quality` | Data quality controls |
|
|
218
|
+
| `GET` | `/v1/aims/transparency` | Model cards and transparency |
|
|
219
|
+
| `GET` | `/v1/aims/usage` | AIMS usage view |
|
|
220
|
+
| `GET` | `/v1/aims/suppliers` | Supplier inventory |
|
|
221
|
+
| `GET` | `/v1/aims/incidents` | Incident records |
|
|
222
|
+
| `POST` | `/v1/aims/incidents` | File incident |
|
|
223
|
+
| `GET` | `/v1/aims/oversight` | Human oversight gates |
|
|
224
|
+
| `GET` | `/v1/aims/decisions` | Consequential decision log |
|
|
225
|
+
| `GET` | `/v1/aims/config-history` | Config change history |
|