@flame0510/project-aether 1.1.14 → 1.2.0

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.
@@ -1,6 +1,6 @@
1
1
  # Rev4a — Database Reference
2
2
 
3
- > **Last updated:** 2026-06-30
3
+ > **Last updated:** 2026-08-28
4
4
 
5
5
  Rev4a uses a single SQLite file (`events.db`) in WAL mode.
6
6
 
@@ -182,7 +182,9 @@ CREATE TABLE credential_secrets (
182
182
  );
183
183
  ```
184
184
 
185
- Payloads are stored as JSON strings. In a future release they will be AES-256-GCM encrypted.
185
+ `payload` holds the secret as raw JSON — **not encrypted**. Anything that can read
186
+ this file, or reach `POST /api/credentials/[id]/reveal` with a valid session, has
187
+ the secrets in the clear.
186
188
 
187
189
  ### `credential_audit_log` — append-only audit trail
188
190
 
@@ -197,7 +199,10 @@ CREATE TABLE credential_audit_log (
197
199
  );
198
200
  ```
199
201
 
200
- Actions: `create`, `update`, `delete`, `sync`, `reveal`.
202
+ Actions: `create`, `update`, `delete`, `sync`, `desync`, `reveal`.
203
+
204
+ Nothing reads `credential_audit_log`: it is written by `appendAudit()` and exposed
205
+ through no route or view.
201
206
 
202
207
  ---
203
208
 
@@ -95,7 +95,7 @@ OpenClaw defaults to merging config models with auto-discovered models.
95
95
 
96
96
  ### Model Catalogue
97
97
 
98
- The model catalogue lives in [`models.config.json`](../models.config.json) at the project root.
98
+ The model catalogue lives in [`models.config.json`](../../models.config.json) at the project root.
99
99
  This file is **tracked in the repository** and serves as the default model configuration
100
100
  for anyone cloning the project. It defines all known models across all providers:
101
101
 
@@ -184,18 +184,20 @@ via `openclaw models status --json` inside each container.
184
184
 
185
185
  ### `PUT /api/gateway/provider`
186
186
 
187
- Triggers a full provider model sync to all agent containers. Only writes
188
- `models.providers.rev4a` — does NOT touch model references.
187
+ Enables or disables a single model in the catalogue, then syncs every agent.
188
+ Only writes `models.providers.rev4a` — does NOT touch model references.
189
189
 
190
- **Body:** none (reads current provider state from `models.config.json` and
191
- `data/provider-keys.json`)
190
+ **Body:** `{ "modelId": "deepseek/deepseek-chat", "enabled": true }` — both
191
+ required. Missing either returns `400`; an unknown `modelId` returns `404`.
192
192
 
193
193
  **Response:**
194
194
  ```json
195
195
  {
196
196
  "status": "ok",
197
- "activeModels": 2,
198
- "results": ["Active models: 2 across 1 agent(s)"]
197
+ "modelId": "deepseek/deepseek-chat",
198
+ "enabled": true,
199
+ "provider": "deepseek",
200
+ "sync": ["Active models: 2 across 1 agent(s)"]
199
201
  }
200
202
  ```
201
203
 
@@ -1,14 +1,10 @@
1
1
  # Provider Gateway & Key Management
2
2
 
3
- > **Last updated:** 2026-07-31
3
+ > **Last updated:** 2026-08-28
4
4
 
5
- This document covers the Rev4a Provider Gateway (proxy),
6
- the vault key endpoint, and how agent containers authenticate against the
7
- Rev4a proxy.
8
-
9
- > **Note:** The old `/providers` UI page and its API routes (`/api/providers/*`,
10
- > `/api/agent-providers`) have been removed (2026-07-27). Provider/API-key
11
- > configuration is now centralized in the [Gateway](../GATEWAY.md) page.
5
+ This document covers the Rev4a Provider Gateway (proxy), the provider key
6
+ endpoints, and how agent containers authenticate against the Rev4a proxy.
7
+ Provider and API-key configuration lives in the [Gateway](GATEWAY.md) page.
12
8
 
13
9
  ---
14
10
 
@@ -130,50 +126,41 @@ The proxy authenticates using the provider's real API key from
130
126
 
131
127
  ## Vault & Provider Key Endpoints
132
128
 
133
- ### `GET /api/vault/provider/key`
129
+ ### `GET /api/gateway/provider`
134
130
 
135
- Returns the full API key for a provider. Used by the Providers page SHOW KEY flow.
131
+ Provider state and the model catalogue.
136
132
 
137
133
  **Query params:**
138
134
 
139
135
  | Param | Required | Description |
140
136
  |---|---|---|
141
- | `provider` | Yes | Provider identifier (e.g. `openai`, `deepseek`) |
142
- | `agent` | No | Docker container name for agent-targeted reads; omitting reads the VPS host |
137
+ | `summary` | No | `1` returns only which providers have a key — no models, no pricing. The full response waits on live pricing from OpenRouter, a network round trip costing seconds; callers that need just the boolean must not pay for it. |
143
138
 
144
- **Auth:** browser cookie
139
+ **Auth:** browser cookie or bearer token
145
140
 
146
- **Response (200):**
147
- ```json
148
- {
149
- "provider": "deepseek",
150
- "apiKey": "sk-...full-key...",
151
- "masked": "sk-...be03",
152
- "source": "local"
153
- }
154
- ```
141
+ ### `POST /api/gateway/provider`
155
142
 
156
- **Source values:**
157
- - `local` — read from `data/provider-keys.json` on the VPS host
158
- - `container` — read from inside the agent container config
143
+ Store a provider API key, or re-run the sync without changing keys.
159
144
 
160
- **Error (404):** `{ "error": "not_found" }` — provider has no key
145
+ **Body:** `{ "provider": "deepseek", "apiKey": "sk-..." }`, or `{ "_syncOnly": true }`
146
+ to push the current configuration to every agent container without touching any key.
161
147
 
162
- ### `POST /api/vault/provider`
148
+ **Response:** `{ "status": "ok", ... }`. Unknown provider names are rejected with
149
+ `400` and the list of known providers.
163
150
 
164
- Add or update a stored provider credential in the vault.
151
+ **Auth:** browser cookie or bearer token
165
152
 
166
- **Body:** `{ "provider": "deepseek", "apiKey": "sk-...", "baseUrl": "https://api.deepseek.com" }`
153
+ ### `PUT /api/gateway/provider`
167
154
 
168
- **Response:** `{ "status": "ok", "provider": "deepseek", "masked": "sk-...be03", "updatedAt": 1749200000000 }`
155
+ Enable or disable a single model in the catalogue.
169
156
 
170
- ### `DELETE /api/vault/provider`
157
+ **Body:** `{ "modelId": "deepseek/deepseek-chat", "enabled": true }` — both fields
158
+ required. Unknown `modelId` returns `404`.
171
159
 
172
- Remove a stored provider credential from the vault.
160
+ **Auth:** browser cookie or bearer token
173
161
 
174
- **Body:** `{ "provider": "deepseek" }`
162
+ There is no `DELETE`: a provider key is cleared by storing an empty one.
175
163
 
176
- **Response:** `{ "status": "removed" }`
177
164
 
178
165
  ---
179
166
 
@@ -218,7 +205,7 @@ Key points:
218
205
 
219
206
  ## Security Notes
220
207
 
221
- - The `GET /api/vault/provider/key` endpoint calls `requireAuthJWT` directly
208
+ - The `GET /api/gateway/provider` endpoint calls `requireAuthJWT` directly
222
209
  (browser cookie or bearer token) — API routes are never covered by `proxy.ts`
223
210
  (it explicitly exempts `/api/*`), so each route must guard itself. Only
224
211
  authenticated users can reveal keys.
@@ -1,6 +1,6 @@
1
1
  # Rev4a Glossary
2
2
 
3
- > **Last updated:** 2026-07-15
3
+ > **Last updated:** 2026-08-28
4
4
 
5
5
  Terms you'll encounter while using the Rev4a dashboard.
6
6
 
@@ -19,7 +19,7 @@ A small inline label component used for status indicators and channel chips. Sup
19
19
  A compressed archive (`.tar.gz`) of an agent's persistent volume (`/root/`). Backups exclude the npm cache to keep sizes small (~1.5 MB). Stored in the `rev4a-backups` Docker volume. Used for restore operations and auto-created before each recreate.
20
20
 
21
21
  ## Container
22
- A Docker container running on the server. Each agent runs in its own container. The Containers page shows all containers, including infrastructure ones (databases, reverse proxies, etc.), with CPU/memory metrics, logs, and a web terminal.
22
+ A Docker container running on the server. Each agent runs in its own container. The Containers page shows all containers, including infrastructure ones (databases, reverse proxies, etc.), with CPU/memory metrics and a web terminal.
23
23
 
24
24
  ## Channel
25
25
  A communication channel (Telegram) configured on an agent. Channels allow users to send DMs to the agent via messaging apps. The Channel Manager modal lets you connect/disconnect Telegram and manage pairings (approve/reject senders).
@@ -34,13 +34,13 @@ The estimated cost of an agent session in USD, calculated from tokens used and p
34
34
  A manual correction for a month's total cost. If the automatic calculation doesn't match the actual invoice, you can set an override value for that month with an optional note.
35
35
 
36
36
  ## Credential
37
- A third-party service token (GitHub PAT, Trello API key, Vercel token, Supabase access key, Notion API token) stored in the Rev4a vault. Credentials can be scoped to specific agent containers and synced via CLI auth or config files. Every reveal is logged in the audit trail.
37
+ A third-party service token (GitHub PAT, Trello API key, Vercel token, Supabase access key, Notion API token) stored in the Rev4a vault. A credential is installed into a container only when the user syncs it, and removed on de-sync; any credential can be synced to any container. Every reveal is written to an audit table that no route or view reads.
38
38
 
39
39
  ## Cron / Cron Job
40
40
  A scheduled task that runs an agent automatically at a fixed time (e.g. every night at 3:15 AM). Configured with standard cron syntax. Jobs can be enabled/disabled per entry.
41
41
 
42
42
  ## Dashboard
43
- The main page of Rev4a (`/`). Shows live sessions, cost summary, system health metrics (CPU, RAM, disk, load average), and a real-time event feed. A setup banner appears if the onboarding wizard is incomplete.
43
+ The main page of Rev4a (`/`). Shows live sessions, cost summary, system health metrics (CPU, RAM, disk, load average), and a real-time event feed. A setup banner appears if the first-run wizard is incomplete.
44
44
 
45
45
  ## Event
46
46
  A lifecycle occurrence for a session: spawned, completed, errored, or a tool call made. Events appear in the live feed on the Dashboard and are pushed via SSE every ~3 seconds.
@@ -57,14 +57,14 @@ Files that store an agent's persistent knowledge and personality: MEMORY.md, SOU
57
57
  ## Model
58
58
  The AI model used by an agent or session. Examples: GPT-5.4, Claude Sonnet 4, DeepSeek V4 Flash. Models are linked to specific providers. The Gateway page manages which models are enabled and which agent uses which model.
59
59
 
60
- ## Onboarding
61
- First-time setup wizard at `/onboarding`. Four steps: Welcome → Providers → First Agent → Ready. Progress is tracked per-step in `data/onboarding-progress.json`. A badge in the sidebar shows remaining steps (e.g. "2/3"). Always accessible from the sidebar or mobile navbar.
60
+ ## First-run wizard
61
+ First-time setup wizard at `/wizard`. Steps: Welcome → Providers → First Agent → Ready. Completion is recorded in `wizard.json` under the data directory. Always accessible from the sidebar or mobile navbar.
62
62
 
63
63
  ## Plugin
64
64
  An extension that adds new tools and capabilities to agents. Plugins are installed in the workspace and appear in the Plugins page with enable/disable toggles.
65
65
 
66
66
  ## Provider
67
- An AI service provider (OpenAI, Anthropic, Groq, OpenRouter, DeepSeek, etc.) that hosts models. Provider API keys are configured in the Gateway page or via the onboarding wizard.
67
+ An AI service provider (OpenAI, Anthropic, Groq, OpenRouter, DeepSeek, etc.) that hosts models. Provider API keys are configured in the Gateway page or via the first-run wizard.
68
68
 
69
69
  ## Provider Gateway
70
70
  Rev4a's built-in proxy that gives all agents unified access to configured LLM providers. Agents point to `http://host.docker.internal:3740/api/provider/v1` and Rev4a routes requests to the correct upstream using the stored API keys.
@@ -116,7 +116,7 @@ A record of an agent using a tool during a session. Useful for auditing what an
116
116
  Optional reverse proxy for routing web traffic to agent containers. If configured, an agent gets a public URL. Rev4a itself runs on port 3740 and does not require Traefik.
117
117
 
118
118
  ## Vault
119
- Rev4a's credential storage system. Stores provider API keys and third-party service tokens with per-agent permission scoping. Supports reveal (with audit trail), sync to containers, and live detection of installed credentials.
119
+ Rev4a's store for third-party service tokens (GitHub, Trello, Vercel, Supabase, Notion). Provider API keys live separately in `provider-keys.json`, managed from the Gateway page. Supports reveal (written to an audit table no route or view reads), sync to and from containers, and live detection of which credentials are actually installed. Secrets are stored unencrypted.
120
120
 
121
121
  ## Workspace
122
122
  The directory where an agent's operational files live (config, memory files, skills, plugins, scripts). The Workspace page lets you browse, view, and edit files across the VPS host and all agent containers.
@@ -1,15 +1,15 @@
1
1
  # What is Rev4a?
2
2
 
3
- > **Last updated:** 2026-07-18
3
+ > **Last updated:** 2026-09-05
4
4
 
5
5
  Rev4a is the control panel for your AI agent infrastructure. It shows you everything your agents are doing, how much they cost, and whether the system is healthy — all in one dashboard.
6
6
 
7
7
  ## What can you do in Rev4a?
8
8
 
9
9
  ### Dashboard (`/`)
10
- The main page. See live sessions (who's working right now), cost summary by model and time period (today, 7 days, 30 days), system health (CPU, RAM, disk, load average), and a real-time event feed. Click any session row to open the Session Drawer and see every tool call the agent made. If the onboarding wizard is incomplete, a banner appears at the top with a link to continue.
10
+ The main page. See live sessions (who's working right now), cost summary by model and time period (today, 7 days, 30 days), system health (CPU, RAM, disk, load average), and a real-time event feed. Click any session row to open the Session Drawer and see every tool call the agent made. If the first-run wizard is incomplete, a banner appears at the top with a link to continue.
11
11
 
12
- ### Onboarding (`/onboarding`)
12
+ ### First-run wizard (`/wizard`)
13
13
  First-run setup wizard that guides new users through configuration. Four steps:
14
14
  1. **Welcome** — what Rev4a is and what it can do
15
15
  2. **Providers** — add API keys for DeepSeek, OpenAI, OpenRouter, or Groq (saved via the Provider Gateway)
@@ -68,7 +68,7 @@ Live web terminal into a Docker container. Run commands, inspect files, debug is
68
68
  File explorer for the OpenClaw workspace. Browse, view, and edit files across workspaces: the VPS host workspace and every agent container workspace. Switch between workspaces via a dropdown. Supports binary file preview (images) and text editing with syntax awareness.
69
69
 
70
70
  ### Credentials (`/credentials`)
71
- Manage third-party service credentials: GitHub, Trello, Vercel, Supabase, Notion. Each credential can be scoped to specific agent containers. Sync pushes credentials into containers via CLI auth (gh, vercel, supabase) or config files (trello, notion). Live detection shows which credentials are actually installed in each container. Audit trail for every reveal action.
71
+ Manage third-party service credentials: GitHub, Trello, Vercel, Supabase, Notion. Sync installs a credential into the containers you pick — as that CLI's own config for GitHub, Vercel and Supabase, or as a config file the agent reads for Trello and Notion, which are used through their REST API; de-sync removes it from one container. Any credential can be synced to any container — there is no per-agent permission model. Live detection shows which credentials are actually installed in each container: a green tick when the installed token is the profile's own, a yellow diamond marked "unknown credential" when the container holds a token for that provider that no stored profile accounts for — an edited-but-not-resynced credential, one installed by hand, or the remains of a deleted profile. Every reveal is recorded in an audit table, which no route or view reads. Secrets are held unencrypted in `credentials.db`.
72
72
 
73
73
  ### Crons (`/crons`)
74
74
  Scheduled tasks auto-discovered from the host OpenClaw gateway (via `openclaw cron list --json`) and every running Docker container with the `AGENT_ID` label (via `docker exec openclaw cron list --json`). Filter jobs by agent using the toolbar tabs. Each job shows name, description, cron expression, next run, last run, and last status. Toggle on/off per job. The run history panel shows recent cron run executions for the selected job, loaded on demand from the container's gateway.
@@ -93,22 +93,19 @@ Skill registry showing all skills across three sources:
93
93
 
94
94
  Filter by source, view and edit SKILL.md content, and **promote** agent-local skills to shared with one click.
95
95
 
96
- ### Plugins & Skills (`/plugins-skills`)
97
- Combined view showing both plugins and skills side by side.
96
+ ### Setup (`/setup`)
97
+ First-run password setup. Reachable before a password exists; it sets `REV4A_PASSWORD` and the JWT secret, after which every page requires a session.
98
98
 
99
99
  ### Login (`/login`)
100
100
  Password-protected access to the dashboard. Enter the Rev4a password to authenticate. Session persists via a JWT cookie (7-day expiry).
101
101
 
102
- ### Vault (`/vault`)
103
- Credential storage with per-agent permissions. Store API keys and service tokens, scope them to specific agents, and manage permissions via the UI.
104
-
105
102
  ## What about Pulse?
106
103
 
107
104
  Pulse is the AI assistant embedded in Rev4a. She appears as a floating chat button in the bottom-right corner of every page. She can:
108
105
 
109
106
  - Explain what any page does
110
107
  - Guide you through features ("how do I create an agent?")
111
- - Answer questions about agents, providers, costs, sessions, containers, crons, credentials, and onboarding
108
+ - Answer questions about agents, providers, costs, sessions, containers, crons, credentials, and the first-run wizard
112
109
  - Give practical tips based on the page you're on
113
110
 
114
111
  Pulse does NOT have access to live data — she knows the page layout and features, but you need to look at the dashboard for real-time information.
@@ -1,6 +1,6 @@
1
1
  # What PULSE Can Answer
2
2
 
3
- > **Last updated:** 2026-07-18
3
+ > **Last updated:** 2026-08-28
4
4
 
5
5
  PULSE is the in-dashboard AI concierge for Rev4a. This document defines what she can and cannot answer.
6
6
 
@@ -10,7 +10,7 @@ PULSE is the in-dashboard AI concierge for Rev4a. This document defines what she
10
10
 
11
11
  - "Where do I find the agents page?"
12
12
  - "How do I get to the container list?"
13
- - "Where can I see the onboarding wizard?"
13
+ - "Where can I see the first-run wizard?"
14
14
  - "Is there a page for cron jobs?"
15
15
  - "Where can I see my AI providers?" — The Gateway page (`/gateway`) shows providers, models, agent assignments.
16
16
  - "How do I create a new agent?"
@@ -34,7 +34,7 @@ PULSE is the in-dashboard AI concierge for Rev4a. This document defines what she
34
34
 
35
35
  - "How do I create an agent?"
36
36
  - "How do I set up Rev4a for the first time?"
37
- - "How do I complete the onboarding wizard?"
37
+ - "How do I complete the first-run wizard?"
38
38
  - "How do I add an API key for a provider?"
39
39
  - "How do I filter agents by status?"
40
40
  - "How do I open a terminal for a container?"
@@ -75,8 +75,7 @@ PULSE is the in-dashboard AI concierge for Rev4a. This document defines what she
75
75
  - "What happens when I recreate an agent?"
76
76
  - "How do agent backups work?"
77
77
  - "What is an agent persistent volume?"
78
- - "What is the onboarding wizard?"
79
- - "What is the difference between Gateway and Providers pages?"
78
+ - "What is the first-run wizard?"
80
79
  - "What is the Provider Gateway proxy?"
81
80
  - "How does the SSE stream work?"
82
81
  - "What is the shared gateway token?"
@@ -92,9 +91,10 @@ PULSE is the in-dashboard AI concierge for Rev4a. This document defines what she
92
91
  - "Why are costs missing for some sessions?"
93
92
  - "Why can't I connect to the container terminal?"
94
93
  - "Why is the gateway sync not working?"
95
- - "Why am I seeing an onboarding banner?"
94
+ - "Why am I seeing a setup banner?"
96
95
  - "How do I check if the daemon is running?"
97
96
  - "Why are credentials not showing in my agent?"
97
+ - "What does the yellow diamond next to an agent mean?"
98
98
  - "Why is the agent base image banner showing?"
99
99
  - "How do I fix 'image is outdated'?"
100
100
  - "What happens if I abort a build?"