@ravi-hq/ravi 0.7.3 → 0.7.4

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 CHANGED
@@ -3,7 +3,7 @@
3
3
  [![npm version](https://img.shields.io/npm/v/@ravi-hq/openclaw-plugin)](https://www.npmjs.com/package/@ravi-hq/openclaw-plugin)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
5
 
6
- OpenClaw plugin for [Ravi](https://ravi.app) -- identity provider for AI agents.
6
+ OpenClaw plugin for [Ravi](https://ravi.id) -- identity provider for AI agents.
7
7
  Gives your agent a real email address, phone number, password manager, and
8
8
  encrypted secrets store through a single plugin.
9
9
 
@@ -11,9 +11,7 @@ encrypted secrets store through a single plugin.
11
11
 
12
12
  - **2 messaging channels** -- real-time email via cursor-based polling (owner, trusted)
13
13
  - **29 agent tools** -- manage identities, inboxes, passwords, secrets, contacts, and more
14
- - **E2E encryption** -- PIN-based Argon2id + NaCl SealedBox, compatible with Ravi CLI
15
14
  - **DM policy controls** -- allowlist or open policy per channel account
16
- - **Lazy crypto** -- encryption keys derived on first use, not at startup
17
15
 
18
16
  ## Installation
19
17
 
@@ -52,8 +50,8 @@ use different identities, or to customize channel DM policies.
52
50
  ```yaml
53
51
  plugins:
54
52
  ravi:
55
- # Ravi API base URL (default: https://ravi.app)
56
- apiUrl: "https://ravi.app"
53
+ # Ravi API base URL (default: https://ravi.id)
54
+ apiUrl: "https://ravi.id"
57
55
 
58
56
  # Identity UUID -- set automatically by 'openclaw ravi onboard'.
59
57
  # Override here only for multi-agent setups.
@@ -66,7 +64,7 @@ plugins:
66
64
  "identity-uuid-here":
67
65
  identityUuid: "identity-uuid-here"
68
66
  identityName: "My Agent"
69
- email: "agent@in.ravi.app"
67
+ email: "agent@in.ravi.id"
70
68
  dm:
71
69
  policy: "allowlist" # "allowlist" or "open"
72
70
  allowFrom:
@@ -166,21 +164,6 @@ Run these via `openclaw ravi <command>`:
166
164
  | `status` | Show auth status and list available identities |
167
165
  | `create-agent-key <uuid> [label]` | Create an identity key for a sub-agent (requires management key) |
168
166
 
169
- ## E2E Encryption
170
-
171
- All sensitive data (passwords, secrets, email content at rest) is encrypted
172
- end-to-end using a 6-digit PIN.
173
-
174
- - **Key derivation:** PIN + server-stored salt -> Argon2id (time=3, mem=64MB, threads=1) -> 32-byte seed
175
- - **Encryption:** NaCl SealedBox (ephemeral X25519 keypair + Poly1305 MAC)
176
- - **Ciphertext format:** `e2e::<base64>` -- same format used by the Ravi CLI
177
- - **First-time setup:** Choose + confirm 6-digit PIN, derive keypair, upload public key to server
178
- - **Returning login:** Enter PIN (3 attempts), verify against server verifier + public key match
179
- - **Recovery key:** Saved to `~/.ravi/recovery-key.txt` during first-time setup
180
-
181
- After login, the derived keypair is stored in `~/.ravi/config.json`. Subsequent operations
182
- use the stored keypair directly — no PIN re-entry needed.
183
-
184
167
  ## Secrets Provider
185
168
 
186
169
  The plugin ships a `ravi-secrets` binary that implements the OpenClaw exec
@@ -223,7 +206,7 @@ Agent (OpenClaw runtime)
223
206
  |
224
207
  +-- Tools (29 agent tools)
225
208
  | '-- REST calls --> GET/POST/DELETE /api/...
226
- | Identity-scoped via bound JWT claims (identity_uuid in token)
209
+ | Identity-scoped (identity_uuid in token)
227
210
  | Returns MCP-style content arrays
228
211
  |
229
212
  '-- Crypto layer (lazy-initialized)
@@ -241,8 +224,8 @@ Key points:
241
224
  client-side using the PIN-derived keypair.
242
225
  - **Tool responses** return MCP-style content arrays (e.g. `[{ type: "text", text: "..." }]`),
243
226
  letting the runtime render structured results natively.
244
- - **Authentication** uses bound JWTs with `identity_uuid` claim baked into the token.
245
- Identity is resolved from JWT claims.
227
+ - **Authentication** uses identity-scoped tokens with `identity_uuid` baked in.
228
+ Identity is resolved from token claims.
246
229
 
247
230
  ## Development
248
231
 
@@ -261,7 +244,7 @@ npm install
261
244
 
262
245
  ```bash
263
246
  make build # Local dev build (reads .env.local for API URL)
264
- make build-prod # Production build (always uses https://ravi.app)
247
+ make build-prod # Production build (always uses https://ravi.id)
265
248
  make test # Run all tests
266
249
  make lint # Type-check without emitting (tsc --noEmit)
267
250
  ```
package/dist/config.d.ts CHANGED
@@ -5,5 +5,5 @@
5
5
  * For local development: create .env.local with RAVI_API_URL=http://localhost:8000
6
6
  * For production builds: defaults to https://ravi.id
7
7
  */
8
- export declare const RAVI_API_URL = "https://ravi.app";
8
+ export declare const RAVI_API_URL = "https://ravi.id";
9
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,qBAAqB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,oBAAoB,CAAC"}
package/dist/config.js CHANGED
@@ -5,5 +5,5 @@
5
5
  * For local development: create .env.local with RAVI_API_URL=http://localhost:8000
6
6
  * For production builds: defaults to https://ravi.id
7
7
  */
8
- export const RAVI_API_URL = "https://ravi.app";
8
+ export const RAVI_API_URL = "https://ravi.id";
9
9
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * @module tools/feedback
8
8
  */
9
9
  import { wrapInHtml } from "../utils.js";
10
- const FEEDBACK_EMAIL = "feedback@ravi.app";
10
+ const FEEDBACK_EMAIL = "feedback@ravi.id";
11
11
  /** Tools for submitting feedback about Ravi. */
12
12
  export const feedbackTools = [
13
13
  {
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAE3C,gDAAgD;AAChD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,4EAA4E;QAC9E,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wEAAwE;wBACxE,oDAAoD;iBACvD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;oBACzD,WAAW,EACT,0EAA0E;wBAC1E,+FAA+F;iBAClG;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAoB,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAI,MAAM,CAAC,QAAmB,IAAI,OAAO,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,QAAQ,kBAAkB,CAAC;YAE/C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAC/B,cAAc,EACd,OAAO,EACP,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;gBACF,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,oBAAoB,cAAc,GAAG;iBAC/C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,4BAA4B,MAAM,EAAE;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,gDAAgD;AAChD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,4EAA4E;QAC9E,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wEAAwE;wBACxE,oDAAoD;iBACvD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;oBACzD,WAAW,EACT,0EAA0E;wBAC1E,+FAA+F;iBAClG;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAoB,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAI,MAAM,CAAC,QAAmB,IAAI,OAAO,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,QAAQ,kBAAkB,CAAC;YAE/C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAC/B,cAAc,EACd,OAAO,EACP,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;gBACF,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,oBAAoB,cAAc,GAAG;iBAC/C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,4BAA4B,MAAM,EAAE;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC;KACF;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ravi-hq/ravi",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "description": "OpenClaw plugin for Ravi — identity provider for AI agents. Email channels + full agent toolbox.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "scripts": {
12
12
  "build": "bash scripts/build.sh",
13
- "build:prod": "RAVI_API_URL=https://ravi.app bash scripts/build.sh",
13
+ "build:prod": "RAVI_API_URL=https://ravi.id bash scripts/build.sh",
14
14
  "test": "vitest run",
15
15
  "test:watch": "vitest",
16
16
  "lint": "tsc --noEmit"