chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:22:33 +08:00
commit fc4fcbab58
1848 changed files with 472303 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
---
summary: "Manus provider: browser session_id cookie auth for credit balance, monthly credits, and daily refresh tracking."
read_when:
- Adding or modifying the Manus provider
- Debugging Manus cookie imports or API responses
- Adjusting Manus usage display or credit formatting
---
# Manus Provider
The Manus provider tracks credit usage on [manus.im](https://manus.im) via browser `session_id` cookie authentication.
## Features
- **Monthly credit gauge**: Shows Pro monthly credits used vs. plan total (`proMonthlyCredits` `periodicCredits`).
- **Daily refresh gauge**: Shows daily refresh credits used vs. max refresh allotment, with reset timing.
- **Balance display**: Total credits available, shown in the menu identity line.
- **Cookie auth**: Automatic browser cookie import (Safari, Chrome, Firefox) or manual cookie header.
- **Env var support**: `MANUS_SESSION_TOKEN` (raw token) or `MANUS_COOKIE` (full cookie header) for CLI/headless usage.
## Setup
1. Open **Settings → Providers**
2. Enable **Manus**
3. Log in to [manus.im](https://manus.im) in your browser
4. Cookie import happens automatically on the next refresh
### Manual cookie mode
1. In **Settings → Providers → Manus**, set Cookie source to **Manual**
2. Open your browser DevTools on `manus.im`, copy the `Cookie:` header from any API request (must contain `session_id=...`)
3. Paste the header into the cookie field in CodexBar
### Environment variables (CLI / headless)
- `MANUS_SESSION_TOKEN`: the raw `session_id` value.
- `MANUS_COOKIE`: a full cookie header; the provider extracts `session_id` from it.
Either works; raw-token form is preferred when only one value is needed.
## How it works
A single API endpoint is fetched with a bearer token derived from the `session_id` cookie value:
- `POST https://api.manus.im/user.v1.UserService/GetAvailableCredits` — returns credit fields including `totalCredits`, `freeCredits`, `periodicCredits`, `proMonthlyCredits`, `refreshCredits`, `maxRefreshCredits`, `nextRefreshTime`, and `refreshInterval`.
Cookie domain: `manus.im`. Valid `session_id` cookies are cached in Keychain and reused until the session expires.
The response parser tolerates both a direct object and common envelope shapes (`data` / `result` / `response` / `availableCredits`). Payloads missing all expected credit fields are rejected as a parse error rather than surfacing a misleading zero-credit snapshot.
## Token accounts
Manus supports multiple accounts via the standard token-account mechanism. Add entries to `~/.codexbar/config.json` (`tokenAccounts`) with the full `Cookie:` header (containing `session_id=...`), then switch between accounts from the menu.
## CLI
```bash
codexbar usage --provider manus --verbose
```
## Troubleshooting
### "No Manus session token provided"
Log in to [manus.im](https://manus.im) in a supported browser (Safari, Chrome, Firefox), then refresh CodexBar. Alternatively, set `MANUS_SESSION_TOKEN` or `MANUS_COOKIE`, or paste a cookie header in manual mode.
### "Invalid Manus session token"
Your session has expired or been revoked. Log out and back in to Manus, or paste a fresh `Cookie:` header in manual mode.
### "Response missing expected credits fields"
The API returned a 200 response that doesn't look like a credits payload (often an error object). Re-login to Manus; if it persists, the upstream response schema may have changed.