@ravi-hq/ravi 0.7.2 → 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 +8 -25
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +110 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -106
- package/dist/index.js.map +1 -1
- package/dist/tools/feedback.js +1 -1
- package/dist/tools/feedback.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@ravi-hq/openclaw-plugin)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
OpenClaw plugin for [Ravi](https://ravi.
|
|
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.
|
|
56
|
-
apiUrl: "https://ravi.
|
|
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.
|
|
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
|
|
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
|
|
245
|
-
Identity is resolved from
|
|
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.
|
|
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/cli.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare function performLogin(): Promise<LoginResult>;
|
|
|
38
38
|
* All CLI commands exposed by the Ravi plugin.
|
|
39
39
|
*
|
|
40
40
|
* OpenClaw registers these so the user can run `openclaw ravi login`,
|
|
41
|
-
* `openclaw
|
|
41
|
+
* `openclaw ravi onboard`, `openclaw ravi status`, etc.
|
|
42
42
|
*/
|
|
43
43
|
export declare const cliCommands: CliCommand[];
|
|
44
44
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIxE,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACxE;AAID,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,CA2FzD;AAID;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,EAqNnC,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RAVI_API_URL } from "./config.js";
|
|
2
2
|
import { RaviClient } from "./client.js";
|
|
3
|
-
import { loadAuth, saveAuth, loadConfig } from "./auth.js";
|
|
3
|
+
import { loadAuth, saveAuth, saveConfig, loadConfig } from "./auth.js";
|
|
4
|
+
import { getRaviRuntime } from "./runtime.js";
|
|
4
5
|
/**
|
|
5
6
|
* Run the full device-code authentication flow: initiate → poll → save credentials.
|
|
6
7
|
*/
|
|
@@ -73,7 +74,7 @@ export async function performLogin() {
|
|
|
73
74
|
* All CLI commands exposed by the Ravi plugin.
|
|
74
75
|
*
|
|
75
76
|
* OpenClaw registers these so the user can run `openclaw ravi login`,
|
|
76
|
-
* `openclaw
|
|
77
|
+
* `openclaw ravi onboard`, `openclaw ravi status`, etc.
|
|
77
78
|
*/
|
|
78
79
|
export const cliCommands = [
|
|
79
80
|
// ── login ───────────────────────────────────────────────────────────────
|
|
@@ -85,6 +86,109 @@ export const cliCommands = [
|
|
|
85
86
|
return "Login complete.";
|
|
86
87
|
},
|
|
87
88
|
},
|
|
89
|
+
// ── onboard ─────────────────────────────────────────────────────────────
|
|
90
|
+
{
|
|
91
|
+
name: "onboard",
|
|
92
|
+
description: "Set up Ravi: authenticate, select identity, and configure OpenClaw.",
|
|
93
|
+
handler: async (_args, _config) => {
|
|
94
|
+
// 1. Check if already authenticated
|
|
95
|
+
const existing = loadConfig();
|
|
96
|
+
let client;
|
|
97
|
+
let tokenData;
|
|
98
|
+
if (existing?.management_key) {
|
|
99
|
+
process.stderr.write("Already authenticated. Proceeding to identity selection.\n");
|
|
100
|
+
client = new RaviClient({ apiUrl: RAVI_API_URL, apiKey: existing.management_key });
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// 2. Run device code login flow
|
|
104
|
+
const result = await performLogin();
|
|
105
|
+
client = result.client;
|
|
106
|
+
tokenData = result.tokenData;
|
|
107
|
+
}
|
|
108
|
+
// 3. Handle identity selection
|
|
109
|
+
const config = loadConfig();
|
|
110
|
+
let identityKey = config.identity_key;
|
|
111
|
+
let identityUuid = config.identity_uuid;
|
|
112
|
+
let identityName = config.identity_name;
|
|
113
|
+
if (tokenData?.identity_key && tokenData.identity) {
|
|
114
|
+
// Signup path — identity_key already in response
|
|
115
|
+
identityKey = tokenData.identity_key;
|
|
116
|
+
identityUuid = tokenData.identity.uuid;
|
|
117
|
+
identityName = tokenData.identity.name;
|
|
118
|
+
saveConfig({ ...config, identity_key: identityKey, identity_uuid: identityUuid, identity_name: identityName });
|
|
119
|
+
}
|
|
120
|
+
else if (!identityKey) {
|
|
121
|
+
// Login path — need to select an identity
|
|
122
|
+
const identities = tokenData?.identities ?? await client.listIdentities();
|
|
123
|
+
if (identities.length === 0) {
|
|
124
|
+
return "No identities found. Create one first, then re-run 'openclaw ravi onboard'.";
|
|
125
|
+
}
|
|
126
|
+
let selected;
|
|
127
|
+
if (identities.length === 1) {
|
|
128
|
+
selected = identities[0];
|
|
129
|
+
process.stderr.write(`Auto-selected identity: ${selected.name}\n`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// Show list, prompt user to choose
|
|
133
|
+
process.stderr.write("\nAvailable identities:\n");
|
|
134
|
+
for (let i = 0; i < identities.length; i++) {
|
|
135
|
+
process.stderr.write(` ${i + 1}. ${identities[i].name} (${identities[i].uuid})\n`);
|
|
136
|
+
}
|
|
137
|
+
process.stderr.write("\nSelect identity (number): ");
|
|
138
|
+
// Read from stdin
|
|
139
|
+
const choice = await new Promise((resolve) => {
|
|
140
|
+
const stdin = process.stdin;
|
|
141
|
+
stdin.setEncoding("utf-8");
|
|
142
|
+
stdin.once("data", (data) => resolve(data.trim()));
|
|
143
|
+
stdin.resume();
|
|
144
|
+
});
|
|
145
|
+
const idx = parseInt(choice, 10) - 1;
|
|
146
|
+
if (isNaN(idx) || idx < 0 || idx >= identities.length) {
|
|
147
|
+
return "Invalid selection. Run 'openclaw ravi onboard' to try again.";
|
|
148
|
+
}
|
|
149
|
+
selected = identities[idx];
|
|
150
|
+
}
|
|
151
|
+
// Create identity key
|
|
152
|
+
const keyResp = await client.createIdentityKey(selected.uuid, "openclaw");
|
|
153
|
+
identityKey = keyResp.key;
|
|
154
|
+
identityUuid = selected.uuid;
|
|
155
|
+
identityName = selected.name;
|
|
156
|
+
saveConfig({ ...config, identity_key: identityKey, identity_uuid: identityUuid, identity_name: identityName });
|
|
157
|
+
}
|
|
158
|
+
// 4. Auto-configure OpenClaw via runtime.config
|
|
159
|
+
if (identityUuid) {
|
|
160
|
+
try {
|
|
161
|
+
const runtime = getRaviRuntime();
|
|
162
|
+
const ocConfig = runtime.config.loadConfig();
|
|
163
|
+
// Deep-merge plugin config
|
|
164
|
+
const plugins = (ocConfig.plugins ?? {});
|
|
165
|
+
const entries = (plugins.entries ?? {});
|
|
166
|
+
const ravi = (entries.ravi ?? {});
|
|
167
|
+
const raviConfig = (ravi.config ?? {});
|
|
168
|
+
raviConfig.identityUuid = identityUuid;
|
|
169
|
+
ravi.config = raviConfig;
|
|
170
|
+
entries.ravi = ravi;
|
|
171
|
+
plugins.entries = entries;
|
|
172
|
+
ocConfig.plugins = plugins;
|
|
173
|
+
// Add secrets provider
|
|
174
|
+
const secrets = (ocConfig.secrets ?? {});
|
|
175
|
+
const providers = (secrets.providers ?? {});
|
|
176
|
+
providers.ravi = { source: "exec", command: "ravi-secrets" };
|
|
177
|
+
secrets.providers = providers;
|
|
178
|
+
ocConfig.secrets = secrets;
|
|
179
|
+
await runtime.config.writeConfigFile(ocConfig);
|
|
180
|
+
process.stderr.write("OpenClaw config updated automatically.\n");
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// Runtime not available — print manual instructions
|
|
184
|
+
process.stderr.write("\nCould not auto-configure OpenClaw. Run these commands manually:\n\n");
|
|
185
|
+
process.stderr.write(` openclaw config set plugins.entries.ravi.config.identityUuid "${identityUuid}"\n`);
|
|
186
|
+
process.stderr.write(` openclaw config set secrets.providers.ravi '{"source":"exec","command":"ravi-secrets"}'\n\n`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return "Onboard complete.";
|
|
190
|
+
},
|
|
191
|
+
},
|
|
88
192
|
// ── status ──────────────────────────────────────────────────────────────
|
|
89
193
|
{
|
|
90
194
|
name: "status",
|
|
@@ -93,7 +197,7 @@ export const cliCommands = [
|
|
|
93
197
|
const auth = loadAuth();
|
|
94
198
|
const config = loadConfig();
|
|
95
199
|
if (!auth?.management_key) {
|
|
96
|
-
return `Not logged in. Run 'openclaw
|
|
200
|
+
return `Not logged in. Run 'openclaw ravi onboard' to authenticate.`;
|
|
97
201
|
}
|
|
98
202
|
const maskKey = (key) => `${key.slice(0, 12)}...${key.slice(-4)}`;
|
|
99
203
|
let output = `Authenticated to ${RAVI_API_URL}\n`;
|
|
@@ -102,13 +206,13 @@ export const cliCommands = [
|
|
|
102
206
|
output += `Identity key: ${maskKey(config.identity_key)}\n`;
|
|
103
207
|
}
|
|
104
208
|
else {
|
|
105
|
-
output += `Identity key: not set (run 'openclaw
|
|
209
|
+
output += `Identity key: not set (run 'openclaw ravi onboard' to configure)\n`;
|
|
106
210
|
}
|
|
107
211
|
if (config?.identity_name || config?.identity_uuid) {
|
|
108
212
|
output += `\nIdentity: ${config.identity_name ?? "(unnamed)"} (${config.identity_uuid ?? ""})\n`;
|
|
109
213
|
}
|
|
110
214
|
else {
|
|
111
|
-
output += `\nNo identity selected. Run 'openclaw
|
|
215
|
+
output += `\nNo identity selected. Run 'openclaw ravi onboard' to select one.\n`;
|
|
112
216
|
}
|
|
113
217
|
if (auth.user_email) {
|
|
114
218
|
output += `Account: ${auth.user_email}\n`;
|
|
@@ -127,7 +231,7 @@ export const cliCommands = [
|
|
|
127
231
|
handler: async (args, _config) => {
|
|
128
232
|
const auth = loadConfig();
|
|
129
233
|
if (!auth?.management_key) {
|
|
130
|
-
return "Error: Management key required. Only the main agent can create identity keys.\nRun 'openclaw
|
|
234
|
+
return "Error: Management key required. Only the main agent can create identity keys.\nRun 'openclaw ravi onboard' to authenticate with a management key.";
|
|
131
235
|
}
|
|
132
236
|
const client = new RaviClient({ apiUrl: RAVI_API_URL, apiKey: auth.management_key });
|
|
133
237
|
const identityUuid = args[0];
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
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.
|
|
8
|
+
export declare const RAVI_API_URL = "https://ravi.id";
|
|
9
9
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,
|
|
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.
|
|
8
|
+
export const RAVI_API_URL = "https://ravi.id";
|
|
9
9
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type { EmailAccountConfig, EmailThreadContext, EmailInboundEnvelope } fro
|
|
|
19
19
|
export type { CliCommand } from "./cli.js";
|
|
20
20
|
export { setRaviRuntime, getRaviRuntime } from "./runtime.js";
|
|
21
21
|
export { acquirePollingClient, releasePollingClient, resetPollingPool } from "./polling-pool.js";
|
|
22
|
-
import type { PluginRuntimeSubset
|
|
22
|
+
import type { PluginRuntimeSubset } from "./types.js";
|
|
23
23
|
/**
|
|
24
24
|
* Identity-scoped tools — available to all agents (both main and sub-agents).
|
|
25
25
|
*
|
|
@@ -86,8 +86,6 @@ interface PluginAPI {
|
|
|
86
86
|
}) => void, opts?: {
|
|
87
87
|
commands?: string[];
|
|
88
88
|
}): void;
|
|
89
|
-
/** Register a provider for OpenClaw's standard auth system. */
|
|
90
|
-
registerProvider(provider: ProviderPlugin): void;
|
|
91
89
|
/** Register a plugin lifecycle hook. */
|
|
92
90
|
on(hookName: string, handler: (...args: unknown[]) => unknown, opts?: {
|
|
93
91
|
priority?: number;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAEtI,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjF,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACxG,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAmBjG,OAAO,KAAK,EAAoB,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export { acquirePollingClient, releasePollingClient, resetPollingPool } from "./
|
|
|
14
14
|
// ─── Value Imports ───────────────────────────────────────────────────────────
|
|
15
15
|
import { RAVI_API_URL } from "./config.js";
|
|
16
16
|
import { RaviClient } from "./client.js";
|
|
17
|
-
import { resolveApiKey, MGMT_KEY_PREFIX
|
|
17
|
+
import { resolveApiKey, MGMT_KEY_PREFIX } from "./auth.js";
|
|
18
18
|
import { raviEmailChannel } from "./channels/email.js";
|
|
19
19
|
import { raviEmailTrustedChannel } from "./channels/email-trusted.js";
|
|
20
20
|
import { identityTools } from "./tools/identity.js";
|
|
@@ -149,113 +149,9 @@ export default function registerPlugin(api) {
|
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
}, { commands: ["ravi"] });
|
|
152
|
-
// ── Register provider auth (replaces CLI onboard) ───────────────────────
|
|
153
|
-
api.registerProvider({
|
|
154
|
-
id: "ravi",
|
|
155
|
-
label: "Ravi Identity",
|
|
156
|
-
auth: [
|
|
157
|
-
{
|
|
158
|
-
id: "device-code",
|
|
159
|
-
label: "Ravi Device Code",
|
|
160
|
-
hint: "Sign in with Google to get your Ravi identity",
|
|
161
|
-
kind: "device_code",
|
|
162
|
-
run: async (ctx) => {
|
|
163
|
-
// 1. Device code flow
|
|
164
|
-
const progress = ctx.prompter.progress("Starting Ravi authentication...");
|
|
165
|
-
const deviceResp = await fetch(`${RAVI_API_URL}/api/auth/device/`, {
|
|
166
|
-
method: "POST",
|
|
167
|
-
headers: { "Content-Type": "application/json" },
|
|
168
|
-
});
|
|
169
|
-
if (!deviceResp.ok) {
|
|
170
|
-
progress.stop("Failed to start device code flow");
|
|
171
|
-
const detail = await deviceResp.text().catch(() => "");
|
|
172
|
-
throw new Error(`Device code initiation failed (HTTP ${deviceResp.status}): ${detail}`);
|
|
173
|
-
}
|
|
174
|
-
const deviceData = await deviceResp.json();
|
|
175
|
-
// 2. Show sign-in URL (primary mechanism) and try opening browser (best effort)
|
|
176
|
-
const verifyUrl = `${deviceData.verification_uri}?user_code=${deviceData.user_code}`;
|
|
177
|
-
progress.stop("Ready to sign in");
|
|
178
|
-
await ctx.prompter.note(`Visit ${verifyUrl} and sign in with Google\n\nCode: ${deviceData.user_code}`, "Ravi");
|
|
179
|
-
// Best-effort browser open — may fail silently on headless/remote
|
|
180
|
-
await ctx.openUrl(verifyUrl).catch(() => { });
|
|
181
|
-
// 3. Poll for authorization (long-poll with wait=true)
|
|
182
|
-
const pollProgress = ctx.prompter.progress("Waiting for sign-in...");
|
|
183
|
-
const tokenResp = await fetch(`${RAVI_API_URL}/api/auth/device/token/`, {
|
|
184
|
-
method: "POST",
|
|
185
|
-
headers: { "Content-Type": "application/json" },
|
|
186
|
-
body: JSON.stringify({ device_code: deviceData.device_code, wait: true }),
|
|
187
|
-
});
|
|
188
|
-
const tokenData = await tokenResp.json();
|
|
189
|
-
if (!tokenData.management_key) {
|
|
190
|
-
pollProgress.stop("Authentication failed");
|
|
191
|
-
throw new Error(tokenData.error_description || "Device code flow failed");
|
|
192
|
-
}
|
|
193
|
-
pollProgress.stop("Authenticated!");
|
|
194
|
-
// 4. Save keys to ~/.ravi/config.json
|
|
195
|
-
const authConfig = {
|
|
196
|
-
management_key: tokenData.management_key,
|
|
197
|
-
user_email: tokenData.user?.email,
|
|
198
|
-
};
|
|
199
|
-
// Handle signup (identity_key in response) vs login (identities list)
|
|
200
|
-
let identityUuid;
|
|
201
|
-
if (tokenData.identity_key && tokenData.identity) {
|
|
202
|
-
authConfig.identity_key = tokenData.identity_key;
|
|
203
|
-
authConfig.identity_uuid = tokenData.identity.uuid;
|
|
204
|
-
authConfig.identity_name = tokenData.identity.name;
|
|
205
|
-
identityUuid = tokenData.identity.uuid;
|
|
206
|
-
}
|
|
207
|
-
else if (tokenData.identities && tokenData.identities.length > 0) {
|
|
208
|
-
// Pick first identity, create key
|
|
209
|
-
const identity = tokenData.identities[0];
|
|
210
|
-
identityUuid = identity.uuid;
|
|
211
|
-
const client = new RaviClient({ apiUrl: RAVI_API_URL, apiKey: tokenData.management_key });
|
|
212
|
-
const keyResp = await client.createIdentityKey(identity.uuid, "openclaw");
|
|
213
|
-
authConfig.identity_key = keyResp.key;
|
|
214
|
-
authConfig.identity_uuid = identity.uuid;
|
|
215
|
-
authConfig.identity_name = identity.name;
|
|
216
|
-
}
|
|
217
|
-
saveConfig(authConfig);
|
|
218
|
-
// 5. Return result with configPatch — OpenClaw auto-applies this
|
|
219
|
-
const profileId = "ravi:default";
|
|
220
|
-
const result = {
|
|
221
|
-
profiles: [{
|
|
222
|
-
profileId,
|
|
223
|
-
credential: {
|
|
224
|
-
type: "api_key",
|
|
225
|
-
provider: "ravi",
|
|
226
|
-
key: authConfig.identity_key || authConfig.management_key || "",
|
|
227
|
-
},
|
|
228
|
-
}],
|
|
229
|
-
notes: [
|
|
230
|
-
`Signed in as ${tokenData.user?.email}`,
|
|
231
|
-
authConfig.identity_name ? `Identity: ${authConfig.identity_name}` : "No identity created yet",
|
|
232
|
-
],
|
|
233
|
-
};
|
|
234
|
-
// configPatch to auto-configure the plugin
|
|
235
|
-
if (identityUuid) {
|
|
236
|
-
result.configPatch = {
|
|
237
|
-
plugins: {
|
|
238
|
-
entries: {
|
|
239
|
-
ravi: {
|
|
240
|
-
config: { identityUuid },
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
},
|
|
244
|
-
secrets: {
|
|
245
|
-
providers: {
|
|
246
|
-
ravi: { source: "exec", command: "ravi-secrets" },
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
return result;
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
],
|
|
255
|
-
});
|
|
256
152
|
const apiKey = resolveApiKey(config);
|
|
257
153
|
if (!apiKey) {
|
|
258
|
-
api.logger.warn("Not authenticated — only CLI commands available. Run 'openclaw
|
|
154
|
+
api.logger.warn("Not authenticated — only CLI commands available. Run 'openclaw ravi onboard' to enable tools and channels.");
|
|
259
155
|
return;
|
|
260
156
|
}
|
|
261
157
|
const client = new RaviClient({ apiUrl: RAVI_API_URL, apiKey });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6BH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAKjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/feedback.js
CHANGED
|
@@ -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,
|
|
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
|
+
"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.
|
|
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"
|