omnius 1.0.159 → 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.
Files changed (51) hide show
  1. package/.aiwg/addons/omnius-docs/README.md +5 -0
  2. package/.aiwg/addons/omnius-docs/manifest.json +32 -0
  3. package/.aiwg/addons/omnius-docs/skills/omnius-docs/SKILL.md +48 -0
  4. package/.aiwg/addons/omnius-docs/skills/omnius-ops-docs/SKILL.md +32 -0
  5. package/.aiwg/addons/omnius-docs/skills/omnius-realtime-docs/SKILL.md +30 -0
  6. package/.aiwg/addons/omnius-docs/skills/omnius-sponsor-docs/SKILL.md +31 -0
  7. package/.aiwg/addons/omnius-docs/skills/omnius-telegram-docs/SKILL.md +30 -0
  8. package/.aiwg/addons/omnius-rest-docs/README.md +7 -0
  9. package/.aiwg/addons/omnius-rest-docs/manifest.json +24 -0
  10. package/.aiwg/addons/omnius-rest-docs/skills/omnius-rest-docs/SKILL.md +72 -0
  11. package/README.md +115 -5011
  12. package/dist/index.js +561 -74
  13. package/docs/.vitepress/config.mts +108 -0
  14. package/docs/agent-memory/INDEX.md +38 -0
  15. package/docs/agent-memory/index.md +14 -0
  16. package/docs/architecture/overview.md +30 -0
  17. package/docs/getting-started/first-run.md +38 -0
  18. package/docs/getting-started/install.md +58 -0
  19. package/docs/getting-started/model-providers.md +48 -0
  20. package/docs/guides/media-generation.md +88 -0
  21. package/docs/guides/realtime.md +138 -0
  22. package/docs/guides/sponsor-and-cohere.md +123 -0
  23. package/docs/guides/telegram.md +95 -0
  24. package/docs/guides/tui-workflows.md +48 -0
  25. package/docs/index.md +30 -0
  26. package/docs/operations/runtime-hygiene.md +75 -0
  27. package/docs/operations/security-and-remote-access.md +70 -0
  28. package/docs/reference/configuration.md +45 -0
  29. package/docs/reference/rest-api.md +225 -0
  30. package/docs/reference/slash-commands.md +2095 -0
  31. package/docs/rest/INDEX.md +129 -0
  32. package/docs/rest/QUICKREF.md +125 -0
  33. package/docs/rest/REST-DOCS-MANIFEST.json +27 -0
  34. package/docs/rest/auth-and-scopes.md +101 -0
  35. package/docs/rest/endpoints/aims.md +26 -0
  36. package/docs/rest/endpoints/aiwg.md +44 -0
  37. package/docs/rest/endpoints/chat.md +101 -0
  38. package/docs/rest/endpoints/config.md +53 -0
  39. package/docs/rest/endpoints/events.md +63 -0
  40. package/docs/rest/endpoints/files.md +18 -0
  41. package/docs/rest/endpoints/memory.md +42 -0
  42. package/docs/rest/endpoints/run.md +52 -0
  43. package/docs/rest/endpoints/skills.md +41 -0
  44. package/docs/rest/endpoints/tools.md +62 -0
  45. package/docs/rest/endpoints/voice-vision.md +80 -0
  46. package/docs/rest/errors-pagination-etags.md +84 -0
  47. package/docs/rest/examples/curl.md +84 -0
  48. package/docs/rest/examples/openai-sdk.md +59 -0
  49. package/docs/rest/openapi-source.md +36 -0
  50. package/npm-shrinkwrap.json +2 -2
  51. 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 |