@ravi-hq/ravi 0.5.4 → 0.5.5
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 +56 -69
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js.map +1 -1
- package/dist/bin/ravi-secrets.d.ts +3 -3
- package/dist/bin/ravi-secrets.js +7 -7
- package/dist/bin/ravi-secrets.js.map +1 -1
- package/dist/channels/email-trusted.d.ts.map +1 -1
- package/dist/channels/email-trusted.js +5 -7
- package/dist/channels/email-trusted.js.map +1 -1
- package/dist/channels/email-untrusted.d.ts.map +1 -1
- package/dist/channels/email-untrusted.js +5 -7
- package/dist/channels/email-untrusted.js.map +1 -1
- package/dist/channels/email.d.ts +12 -12
- package/dist/channels/email.d.ts.map +1 -1
- package/dist/channels/email.js +48 -49
- package/dist/channels/email.js.map +1 -1
- package/dist/cli.d.ts +15 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +271 -211
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +62 -22
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +75 -33
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +5 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -26
- package/dist/index.js.map +1 -1
- package/dist/sse-pool.d.ts +5 -2
- package/dist/sse-pool.d.ts.map +1 -1
- package/dist/sse-pool.js +9 -7
- package/dist/sse-pool.js.map +1 -1
- package/dist/sse.d.ts +7 -21
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +10 -33
- package/dist/sse.js.map +1 -1
- package/dist/tools/contacts.d.ts +14 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/contacts.js +186 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/email-send.d.ts.map +1 -1
- package/dist/tools/email-send.js +11 -4
- package/dist/tools/email-send.js.map +1 -1
- package/dist/tools/identity.d.ts +2 -2
- package/dist/tools/identity.d.ts.map +1 -1
- package/dist/tools/identity.js +14 -6
- package/dist/tools/identity.js.map +1 -1
- package/dist/tools/inbox.js +7 -7
- package/dist/tools/inbox.js.map +1 -1
- package/dist/tools/passwords.d.ts.map +1 -1
- package/dist/tools/passwords.js +20 -7
- package/dist/tools/passwords.js.map +1 -1
- package/dist/tools/secrets.d.ts +15 -0
- package/dist/tools/secrets.d.ts.map +1 -0
- package/dist/tools/{vault.js → secrets.js} +23 -23
- package/dist/tools/secrets.js.map +1 -0
- package/dist/tools/sms-send.d.ts.map +1 -1
- package/dist/tools/sms-send.js +3 -1
- package/dist/tools/sms-send.js.map +1 -1
- package/dist/types.d.ts +18 -12
- package/dist/types.d.ts.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +4 -13
- package/dist/channels/sms-trusted.d.ts +0 -161
- package/dist/channels/sms-trusted.d.ts.map +0 -1
- package/dist/channels/sms-trusted.js +0 -306
- package/dist/channels/sms-trusted.js.map +0 -1
- package/dist/channels/sms-untrusted.d.ts +0 -124
- package/dist/channels/sms-untrusted.d.ts.map +0 -1
- package/dist/channels/sms-untrusted.js +0 -269
- package/dist/channels/sms-untrusted.js.map +0 -1
- package/dist/channels/sms.d.ts +0 -269
- package/dist/channels/sms.d.ts.map +0 -1
- package/dist/channels/sms.js +0 -380
- package/dist/channels/sms.js.map +0 -1
- package/dist/tools/vault.d.ts +0 -15
- package/dist/tools/vault.d.ts.map +0 -1
- package/dist/tools/vault.js.map +0 -1
package/dist/sse-pool.d.ts
CHANGED
|
@@ -3,13 +3,16 @@ import { RaviSSEClient, type RaviSSEClientConfig } from "./sse.js";
|
|
|
3
3
|
* Get or create a shared SSE client for the given identity.
|
|
4
4
|
* First caller's config (including onAuthFailure) is used to create the client.
|
|
5
5
|
* Subsequent callers get the existing client (their config is ignored except for token updates).
|
|
6
|
+
*
|
|
7
|
+
* @param config - SSE client configuration.
|
|
8
|
+
* @param poolKey - Key to deduplicate SSE connections (typically the identity UUID / account ID).
|
|
6
9
|
*/
|
|
7
|
-
export declare function acquireSSEClient(config: RaviSSEClientConfig): RaviSSEClient;
|
|
10
|
+
export declare function acquireSSEClient(config: RaviSSEClientConfig, poolKey: string): RaviSSEClient;
|
|
8
11
|
/**
|
|
9
12
|
* Release a reference to the shared SSE client.
|
|
10
13
|
* Disconnects when the last reference is released.
|
|
11
14
|
*/
|
|
12
|
-
export declare function releaseSSEClient(
|
|
15
|
+
export declare function releaseSSEClient(poolKey: string): void;
|
|
13
16
|
/** Reset the pool — for testing only. */
|
|
14
17
|
export declare function resetSSEPool(): void;
|
|
15
18
|
//# sourceMappingURL=sse-pool.d.ts.map
|
package/dist/sse-pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-pool.d.ts","sourceRoot":"","sources":["../src/sse-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AASnE
|
|
1
|
+
{"version":3,"file":"sse-pool.d.ts","sourceRoot":"","sources":["../src/sse-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AASnE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAW5F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAQtD;AAED,yCAAyC;AACzC,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
|
package/dist/sse-pool.js
CHANGED
|
@@ -4,16 +4,18 @@ const pool = new Map();
|
|
|
4
4
|
* Get or create a shared SSE client for the given identity.
|
|
5
5
|
* First caller's config (including onAuthFailure) is used to create the client.
|
|
6
6
|
* Subsequent callers get the existing client (their config is ignored except for token updates).
|
|
7
|
+
*
|
|
8
|
+
* @param config - SSE client configuration.
|
|
9
|
+
* @param poolKey - Key to deduplicate SSE connections (typically the identity UUID / account ID).
|
|
7
10
|
*/
|
|
8
|
-
export function acquireSSEClient(config) {
|
|
9
|
-
const
|
|
10
|
-
const existing = pool.get(key);
|
|
11
|
+
export function acquireSSEClient(config, poolKey) {
|
|
12
|
+
const existing = pool.get(poolKey);
|
|
11
13
|
if (existing) {
|
|
12
14
|
existing.refCount++;
|
|
13
15
|
return existing.sse;
|
|
14
16
|
}
|
|
15
17
|
const sse = new RaviSSEClient(config);
|
|
16
|
-
pool.set(
|
|
18
|
+
pool.set(poolKey, { sse, refCount: 1 });
|
|
17
19
|
sse.connect();
|
|
18
20
|
return sse;
|
|
19
21
|
}
|
|
@@ -21,14 +23,14 @@ export function acquireSSEClient(config) {
|
|
|
21
23
|
* Release a reference to the shared SSE client.
|
|
22
24
|
* Disconnects when the last reference is released.
|
|
23
25
|
*/
|
|
24
|
-
export function releaseSSEClient(
|
|
25
|
-
const entry = pool.get(
|
|
26
|
+
export function releaseSSEClient(poolKey) {
|
|
27
|
+
const entry = pool.get(poolKey);
|
|
26
28
|
if (!entry)
|
|
27
29
|
return;
|
|
28
30
|
entry.refCount--;
|
|
29
31
|
if (entry.refCount <= 0) {
|
|
30
32
|
entry.sse.disconnect();
|
|
31
|
-
pool.delete(
|
|
33
|
+
pool.delete(poolKey);
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
/** Reset the pool — for testing only. */
|
package/dist/sse-pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-pool.js","sourceRoot":"","sources":["../src/sse-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,UAAU,CAAC;AAOnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"sse-pool.js","sourceRoot":"","sources":["../src/sse-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,UAAU,CAAC;AAOnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA2B,EAAE,OAAe;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,YAAY;IAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC"}
|
package/dist/sse.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import type { EmailEvent
|
|
1
|
+
import type { EmailEvent } from "./types.js";
|
|
2
2
|
/** Callback invoked when a typed SSE event is received. */
|
|
3
3
|
export type SSEEventHandler<T> = (event: T) => void;
|
|
4
4
|
/** Options for constructing a {@link RaviSSEClient}. */
|
|
5
5
|
export interface RaviSSEClientConfig {
|
|
6
6
|
/** Base URL of the Ravi API (e.g. "https://api.ravi.dev"). */
|
|
7
7
|
apiUrl: string;
|
|
8
|
-
/** JWT bearer token for authentication. */
|
|
8
|
+
/** JWT bearer token for authentication (identity is embedded in JWT claims). */
|
|
9
9
|
token: string;
|
|
10
|
-
/** Identity UUID for scoped event streaming. */
|
|
11
|
-
identityUuid: string;
|
|
12
10
|
/**
|
|
13
11
|
* Optional callback invoked when SSE receives a 401/403 response.
|
|
14
12
|
* Return a fresh token to retry the connection, or `null` to stop.
|
|
@@ -19,21 +17,19 @@ export interface RaviSSEClientConfig {
|
|
|
19
17
|
* Server-Sent Events client for the Ravi real-time event stream.
|
|
20
18
|
*
|
|
21
19
|
* Connects to `GET /api/events/stream/` and dispatches typed events
|
|
22
|
-
* (email_owner, email_trusted, email_untrusted
|
|
23
|
-
*
|
|
24
|
-
* exponential backoff on connection loss and monitors server
|
|
25
|
-
* to detect stale connections.
|
|
20
|
+
* (email_owner, email_trusted, email_untrusted) to registered handlers. Identity scoping is embedded
|
|
21
|
+
* in the JWT token (obtained via bind-identity). Automatically reconnects
|
|
22
|
+
* with exponential backoff on connection loss and monitors server
|
|
23
|
+
* heartbeats to detect stale connections.
|
|
26
24
|
*
|
|
27
25
|
* @example
|
|
28
26
|
* ```ts
|
|
29
27
|
* const sse = new RaviSSEClient({
|
|
30
28
|
* apiUrl: "https://api.ravi.dev",
|
|
31
|
-
* token: "ey...",
|
|
32
|
-
* identityUuid: "abc-123",
|
|
29
|
+
* token: "ey...", // bound token with identity in JWT claims
|
|
33
30
|
* });
|
|
34
31
|
*
|
|
35
32
|
* sse.onEmailOwner((event) => console.log("New email:", event.subject));
|
|
36
|
-
* sse.onSmsOwner((event) => console.log("New SMS:", event.body));
|
|
37
33
|
* sse.connect();
|
|
38
34
|
*
|
|
39
35
|
* // Later...
|
|
@@ -43,7 +39,6 @@ export interface RaviSSEClientConfig {
|
|
|
43
39
|
export declare class RaviSSEClient {
|
|
44
40
|
private apiUrl;
|
|
45
41
|
private token;
|
|
46
|
-
private identityUuid;
|
|
47
42
|
private controller;
|
|
48
43
|
private reconnectDelay;
|
|
49
44
|
private maxReconnectDelay;
|
|
@@ -51,9 +46,6 @@ export declare class RaviSSEClient {
|
|
|
51
46
|
private emailOwnerHandlers;
|
|
52
47
|
private emailTrustedHandlers;
|
|
53
48
|
private emailUntrustedHandlers;
|
|
54
|
-
private smsOwnerHandlers;
|
|
55
|
-
private smsTrustedHandlers;
|
|
56
|
-
private smsUntrustedHandlers;
|
|
57
49
|
private reconnectHandlers;
|
|
58
50
|
private running;
|
|
59
51
|
private heartbeatTimeout;
|
|
@@ -70,12 +62,6 @@ export declare class RaviSSEClient {
|
|
|
70
62
|
onEmailTrusted(handler: SSEEventHandler<EmailEvent>): void;
|
|
71
63
|
/** Register a handler for email events from untrusted senders. */
|
|
72
64
|
onEmailUntrusted(handler: SSEEventHandler<EmailEvent>): void;
|
|
73
|
-
/** Register a handler for SMS events from the identity owner. */
|
|
74
|
-
onSmsOwner(handler: SSEEventHandler<SmsEvent>): void;
|
|
75
|
-
/** Register a handler for SMS events from trusted senders. */
|
|
76
|
-
onSmsTrusted(handler: SSEEventHandler<SmsEvent>): void;
|
|
77
|
-
/** Register a handler for SMS events from untrusted senders. */
|
|
78
|
-
onSmsUntrusted(handler: SSEEventHandler<SmsEvent>): void;
|
|
79
65
|
/**
|
|
80
66
|
* Register a handler that fires whenever the client reconnects after a
|
|
81
67
|
* connection drop. Useful for re-fetching state that may have been missed
|
package/dist/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,2DAA2D;AAC3D,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAIpD,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,sBAAsB,CAAqC;IACnE,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAA8C;IACtE,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAAU;IACnC,+DAA+D;IAC/D,OAAO,CAAC,gBAAgB,CAAS;IACjC,6DAA6D;IAC7D,OAAO,CAAC,aAAa,CAAC,CAA+B;gBAEzC,MAAM,EAAE,mBAAmB;IAMvC,mEAAmE;IACnE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI;IAIxD,gEAAgE;IAChE,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI;IAI1D,kEAAkE;IAClE,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI;IAI5D;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAOlB;;;;OAIG;YACW,eAAe;IA+I7B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA6BrB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAS3B,0CAA0C;IAC1C,OAAO,CAAC,mBAAmB;CAM5B"}
|
package/dist/sse.js
CHANGED
|
@@ -3,21 +3,19 @@
|
|
|
3
3
|
* Server-Sent Events client for the Ravi real-time event stream.
|
|
4
4
|
*
|
|
5
5
|
* Connects to `GET /api/events/stream/` and dispatches typed events
|
|
6
|
-
* (email_owner, email_trusted, email_untrusted
|
|
7
|
-
*
|
|
8
|
-
* exponential backoff on connection loss and monitors server
|
|
9
|
-
* to detect stale connections.
|
|
6
|
+
* (email_owner, email_trusted, email_untrusted) to registered handlers. Identity scoping is embedded
|
|
7
|
+
* in the JWT token (obtained via bind-identity). Automatically reconnects
|
|
8
|
+
* with exponential backoff on connection loss and monitors server
|
|
9
|
+
* heartbeats to detect stale connections.
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```ts
|
|
13
13
|
* const sse = new RaviSSEClient({
|
|
14
14
|
* apiUrl: "https://api.ravi.dev",
|
|
15
|
-
* token: "ey...",
|
|
16
|
-
* identityUuid: "abc-123",
|
|
15
|
+
* token: "ey...", // bound token with identity in JWT claims
|
|
17
16
|
* });
|
|
18
17
|
*
|
|
19
18
|
* sse.onEmailOwner((event) => console.log("New email:", event.subject));
|
|
20
|
-
* sse.onSmsOwner((event) => console.log("New SMS:", event.body));
|
|
21
19
|
* sse.connect();
|
|
22
20
|
*
|
|
23
21
|
* // Later...
|
|
@@ -27,7 +25,6 @@
|
|
|
27
25
|
export class RaviSSEClient {
|
|
28
26
|
apiUrl;
|
|
29
27
|
token;
|
|
30
|
-
identityUuid;
|
|
31
28
|
controller = null;
|
|
32
29
|
reconnectDelay = 1000;
|
|
33
30
|
maxReconnectDelay = 30000;
|
|
@@ -35,9 +32,6 @@ export class RaviSSEClient {
|
|
|
35
32
|
emailOwnerHandlers = [];
|
|
36
33
|
emailTrustedHandlers = [];
|
|
37
34
|
emailUntrustedHandlers = [];
|
|
38
|
-
smsOwnerHandlers = [];
|
|
39
|
-
smsTrustedHandlers = [];
|
|
40
|
-
smsUntrustedHandlers = [];
|
|
41
35
|
reconnectHandlers = [];
|
|
42
36
|
running = false;
|
|
43
37
|
heartbeatTimeout = null;
|
|
@@ -50,7 +44,6 @@ export class RaviSSEClient {
|
|
|
50
44
|
constructor(config) {
|
|
51
45
|
this.apiUrl = config.apiUrl.replace(/\/$/, "");
|
|
52
46
|
this.token = config.token;
|
|
53
|
-
this.identityUuid = config.identityUuid;
|
|
54
47
|
this.onAuthFailure = config.onAuthFailure;
|
|
55
48
|
}
|
|
56
49
|
/** Register a handler for email events from the identity owner. */
|
|
@@ -65,18 +58,6 @@ export class RaviSSEClient {
|
|
|
65
58
|
onEmailUntrusted(handler) {
|
|
66
59
|
this.emailUntrustedHandlers.push(handler);
|
|
67
60
|
}
|
|
68
|
-
/** Register a handler for SMS events from the identity owner. */
|
|
69
|
-
onSmsOwner(handler) {
|
|
70
|
-
this.smsOwnerHandlers.push(handler);
|
|
71
|
-
}
|
|
72
|
-
/** Register a handler for SMS events from trusted senders. */
|
|
73
|
-
onSmsTrusted(handler) {
|
|
74
|
-
this.smsTrustedHandlers.push(handler);
|
|
75
|
-
}
|
|
76
|
-
/** Register a handler for SMS events from untrusted senders. */
|
|
77
|
-
onSmsUntrusted(handler) {
|
|
78
|
-
this.smsUntrustedHandlers.push(handler);
|
|
79
|
-
}
|
|
80
61
|
/**
|
|
81
62
|
* Register a handler that fires whenever the client reconnects after a
|
|
82
63
|
* connection drop. Useful for re-fetching state that may have been missed
|
|
@@ -132,7 +113,6 @@ export class RaviSSEClient {
|
|
|
132
113
|
this.controller = new AbortController();
|
|
133
114
|
const headers = {
|
|
134
115
|
Authorization: `Bearer ${this.token}`,
|
|
135
|
-
"X-Ravi-Identity": this.identityUuid,
|
|
136
116
|
Accept: "text/event-stream",
|
|
137
117
|
};
|
|
138
118
|
if (this.lastEventId) {
|
|
@@ -153,14 +133,14 @@ export class RaviSSEClient {
|
|
|
153
133
|
}
|
|
154
134
|
catch (refreshErr) {
|
|
155
135
|
const detail = refreshErr instanceof Error ? refreshErr.message : String(refreshErr);
|
|
156
|
-
console.error(`[ravi] SSE auth refresh callback failed
|
|
136
|
+
console.error(`[ravi] SSE auth refresh callback failed: ${detail}`);
|
|
157
137
|
}
|
|
158
138
|
if (newToken) {
|
|
159
139
|
this.token = newToken;
|
|
160
140
|
continue; // retry with refreshed token
|
|
161
141
|
}
|
|
162
142
|
}
|
|
163
|
-
console.error(`[ravi] SSE auth failed (${status})
|
|
143
|
+
console.error(`[ravi] SSE auth failed (${status}) — stopping`);
|
|
164
144
|
this.running = false;
|
|
165
145
|
return;
|
|
166
146
|
}
|
|
@@ -242,7 +222,7 @@ export class RaviSSEClient {
|
|
|
242
222
|
if (!this.running)
|
|
243
223
|
return;
|
|
244
224
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
245
|
-
console.error(`[ravi] SSE connection error
|
|
225
|
+
console.error(`[ravi] SSE connection error: ${errorMsg}`);
|
|
246
226
|
// Heartbeat-triggered aborts are expected — don't count as failures
|
|
247
227
|
if (this.isHeartbeatAbort) {
|
|
248
228
|
this.isHeartbeatAbort = false;
|
|
@@ -251,7 +231,7 @@ export class RaviSSEClient {
|
|
|
251
231
|
consecutiveFailures++;
|
|
252
232
|
}
|
|
253
233
|
if (consecutiveFailures >= 50) {
|
|
254
|
-
console.error(`[ravi] SSE
|
|
234
|
+
console.error(`[ravi] SSE giving up after ${consecutiveFailures} consecutive failures`);
|
|
255
235
|
this.running = false;
|
|
256
236
|
return;
|
|
257
237
|
}
|
|
@@ -280,10 +260,7 @@ export class RaviSSEClient {
|
|
|
280
260
|
const handlers = eventType === "email_owner" ? this.emailOwnerHandlers
|
|
281
261
|
: eventType === "email_trusted" ? this.emailTrustedHandlers
|
|
282
262
|
: eventType === "email_untrusted" ? this.emailUntrustedHandlers
|
|
283
|
-
:
|
|
284
|
-
: eventType === "sms_trusted" ? this.smsTrustedHandlers
|
|
285
|
-
: eventType === "sms_untrusted" ? this.smsUntrustedHandlers
|
|
286
|
-
: null;
|
|
263
|
+
: null;
|
|
287
264
|
if (!handlers) {
|
|
288
265
|
console.warn(`[ravi] Received unhandled SSE event type: ${eventType}`);
|
|
289
266
|
return;
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contact management tools for the Ravi OpenClaw plugin.
|
|
3
|
+
*
|
|
4
|
+
* Provides tools to list, search, retrieve, create, update, and delete
|
|
5
|
+
* contacts associated with the current identity. Contacts track people
|
|
6
|
+
* the identity has interacted with via email or SMS.
|
|
7
|
+
*
|
|
8
|
+
* @module tools/contacts
|
|
9
|
+
*/
|
|
10
|
+
import type { ToolDefinition, ToolContext } from "./identity.js";
|
|
11
|
+
export type { ToolDefinition, ToolContext };
|
|
12
|
+
/** Tools for managing contacts in the Ravi contacts store. */
|
|
13
|
+
export declare const contactsTools: ToolDefinition[];
|
|
14
|
+
//# sourceMappingURL=contacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AAI5C,8DAA8D;AAC9D,eAAO,MAAM,aAAa,EAAE,cAAc,EA4KzC,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contact management tools for the Ravi OpenClaw plugin.
|
|
3
|
+
*
|
|
4
|
+
* Provides tools to list, search, retrieve, create, update, and delete
|
|
5
|
+
* contacts associated with the current identity. Contacts track people
|
|
6
|
+
* the identity has interacted with via email or SMS.
|
|
7
|
+
*
|
|
8
|
+
* @module tools/contacts
|
|
9
|
+
*/
|
|
10
|
+
// ─── Contacts Tools ─────────────────────────────────────────────────────────
|
|
11
|
+
/** Tools for managing contacts in the Ravi contacts store. */
|
|
12
|
+
export const contactsTools = [
|
|
13
|
+
{
|
|
14
|
+
name: "ravi_contacts_list",
|
|
15
|
+
description: "List all contacts for the current identity. Returns contact details including email, phone number, " +
|
|
16
|
+
"display name, nickname, source (auto or manual), and interaction count. " +
|
|
17
|
+
"Use ravi_contacts_search instead for fuzzy search by name — especially when resolving a recipient's name " +
|
|
18
|
+
"to an email address or phone number before sending. " +
|
|
19
|
+
"Each contact includes an is_trusted flag indicating whether emails from this contact are routed to the trusted SSE channel.",
|
|
20
|
+
parameters: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {},
|
|
23
|
+
required: [],
|
|
24
|
+
},
|
|
25
|
+
handler: async (_params, { client }) => {
|
|
26
|
+
return client.listContacts();
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "ravi_contacts_search",
|
|
31
|
+
description: "Fuzzy search contacts by name, nickname, or email. Returns matching contacts ranked by relevance. " +
|
|
32
|
+
"IMPORTANT: Use this to resolve a person's name to their email or phone before sending email (ravi_email_compose) " +
|
|
33
|
+
"or SMS (ravi_sms_send). Example: 'email Alice' or 'text Bob' → search contacts first to find their address/number. " +
|
|
34
|
+
"When multiple contacts match, confirm with the user which one they mean before proceeding. " +
|
|
35
|
+
"For listing all contacts, use ravi_contacts_list instead.",
|
|
36
|
+
parameters: {
|
|
37
|
+
type: "object",
|
|
38
|
+
properties: {
|
|
39
|
+
query: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Search query — matches against display name, nickname, and email address using fuzzy search. " +
|
|
42
|
+
"Phone numbers are not fuzzy-searched — use ravi_contacts_list to find contacts by phone.",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
required: ["query"],
|
|
46
|
+
},
|
|
47
|
+
handler: async (params, { client }) => {
|
|
48
|
+
return client.searchContacts(params.query);
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "ravi_contacts_get",
|
|
53
|
+
description: "Get a specific contact by UUID. Returns full contact details including email, phone number, " +
|
|
54
|
+
"display name, nickname, source, interaction count, and timestamps. " +
|
|
55
|
+
"Use ravi_contacts_list or ravi_contacts_search to find the UUID.",
|
|
56
|
+
parameters: {
|
|
57
|
+
type: "object",
|
|
58
|
+
properties: {
|
|
59
|
+
uuid: {
|
|
60
|
+
type: "string",
|
|
61
|
+
description: "UUID of the contact to retrieve (from ravi_contacts_list or ravi_contacts_search)",
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ["uuid"],
|
|
65
|
+
},
|
|
66
|
+
handler: async (params, { client }) => {
|
|
67
|
+
return client.getContact(params.uuid);
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "ravi_contacts_create",
|
|
72
|
+
description: "Create a new contact for the current identity. At least one of email or phone_number is required. " +
|
|
73
|
+
"Use this to manually add contacts — auto-discovered contacts are created automatically from email/SMS interactions.",
|
|
74
|
+
parameters: {
|
|
75
|
+
type: "object",
|
|
76
|
+
properties: {
|
|
77
|
+
email: {
|
|
78
|
+
type: "string",
|
|
79
|
+
description: "Contact's email address",
|
|
80
|
+
},
|
|
81
|
+
phone_number: {
|
|
82
|
+
type: "string",
|
|
83
|
+
description: "Contact's phone number in E.164 format (e.g. '+14155551234')",
|
|
84
|
+
},
|
|
85
|
+
display_name: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Contact's display name (e.g. 'Jane Smith')",
|
|
88
|
+
},
|
|
89
|
+
nickname: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "Short nickname for the contact (e.g. 'Jane')",
|
|
92
|
+
},
|
|
93
|
+
is_trusted: {
|
|
94
|
+
type: "boolean",
|
|
95
|
+
description: "Mark this contact as trusted. Emails from trusted contacts are routed to the email_trusted SSE channel " +
|
|
96
|
+
"instead of email_untrusted. Defaults to false.",
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
required: [],
|
|
100
|
+
},
|
|
101
|
+
handler: async (params, { client }) => {
|
|
102
|
+
const data = {};
|
|
103
|
+
if (params.email !== undefined)
|
|
104
|
+
data.email = params.email;
|
|
105
|
+
if (params.phone_number !== undefined)
|
|
106
|
+
data.phone_number = params.phone_number;
|
|
107
|
+
if (params.display_name !== undefined)
|
|
108
|
+
data.display_name = params.display_name;
|
|
109
|
+
if (params.nickname !== undefined)
|
|
110
|
+
data.nickname = params.nickname;
|
|
111
|
+
if (params.is_trusted !== undefined)
|
|
112
|
+
data.is_trusted = params.is_trusted;
|
|
113
|
+
return client.createContact(data);
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "ravi_contacts_update",
|
|
118
|
+
description: "Update an existing contact's fields. Only provided fields are changed — omitted fields remain unchanged. " +
|
|
119
|
+
"Use ravi_contacts_list or ravi_contacts_search to find the UUID of the contact to update.",
|
|
120
|
+
parameters: {
|
|
121
|
+
type: "object",
|
|
122
|
+
properties: {
|
|
123
|
+
uuid: {
|
|
124
|
+
type: "string",
|
|
125
|
+
description: "UUID of the contact to update (from ravi_contacts_list or ravi_contacts_search)",
|
|
126
|
+
},
|
|
127
|
+
email: {
|
|
128
|
+
type: "string",
|
|
129
|
+
description: "New email address for the contact",
|
|
130
|
+
},
|
|
131
|
+
phone_number: {
|
|
132
|
+
type: "string",
|
|
133
|
+
description: "New phone number in E.164 format (e.g. '+14155551234')",
|
|
134
|
+
},
|
|
135
|
+
display_name: {
|
|
136
|
+
type: "string",
|
|
137
|
+
description: "New display name for the contact",
|
|
138
|
+
},
|
|
139
|
+
nickname: {
|
|
140
|
+
type: "string",
|
|
141
|
+
description: "New nickname for the contact",
|
|
142
|
+
},
|
|
143
|
+
is_trusted: {
|
|
144
|
+
type: "boolean",
|
|
145
|
+
description: "Set whether this contact is trusted. Emails from trusted contacts are routed to the email_trusted SSE channel.",
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
required: ["uuid"],
|
|
149
|
+
},
|
|
150
|
+
handler: async (params, { client }) => {
|
|
151
|
+
const uuid = params.uuid;
|
|
152
|
+
const data = {};
|
|
153
|
+
if (params.email !== undefined)
|
|
154
|
+
data.email = params.email;
|
|
155
|
+
if (params.phone_number !== undefined)
|
|
156
|
+
data.phone_number = params.phone_number;
|
|
157
|
+
if (params.display_name !== undefined)
|
|
158
|
+
data.display_name = params.display_name;
|
|
159
|
+
if (params.nickname !== undefined)
|
|
160
|
+
data.nickname = params.nickname;
|
|
161
|
+
if (params.is_trusted !== undefined)
|
|
162
|
+
data.is_trusted = params.is_trusted;
|
|
163
|
+
return client.updateContact(uuid, data);
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "ravi_contacts_delete",
|
|
168
|
+
description: "Delete a contact by UUID. This is permanent and cannot be undone. " +
|
|
169
|
+
"Use ravi_contacts_list or ravi_contacts_search to find the UUID of the contact to delete.",
|
|
170
|
+
parameters: {
|
|
171
|
+
type: "object",
|
|
172
|
+
properties: {
|
|
173
|
+
uuid: {
|
|
174
|
+
type: "string",
|
|
175
|
+
description: "UUID of the contact to delete (from ravi_contacts_list or ravi_contacts_search)",
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
required: ["uuid"],
|
|
179
|
+
},
|
|
180
|
+
handler: async (params, { client }) => {
|
|
181
|
+
await client.deleteContact(params.uuid);
|
|
182
|
+
return { status: "deleted", uuid: params.uuid };
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
];
|
|
186
|
+
//# sourceMappingURL=contacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAwCjE,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"email-send.d.ts","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,eAAe,CAAC;AAwCjE,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAE,cAAc,EA6M1C,CAAC"}
|
package/dist/tools/email-send.js
CHANGED
|
@@ -42,7 +42,9 @@ export const emailSendTools = [
|
|
|
42
42
|
{
|
|
43
43
|
name: "ravi_email_compose",
|
|
44
44
|
description: "Compose and send a new email. Body is plain text (auto-converted to HTML) — or include your own " +
|
|
45
|
-
"HTML tags (<p>, <h2>, <a href>). See
|
|
45
|
+
"HTML tags (<p>, <h2>, <a href>). See the ravi-email-writing skill for formatting tips. " +
|
|
46
|
+
"IMPORTANT: If you only have the recipient's name (e.g. 'email Alice'), use ravi_contacts_search first " +
|
|
47
|
+
"to look up their email address. If multiple contacts match, confirm with the user before sending. " +
|
|
46
48
|
"Use ravi_get_info to get your identity name for signatures. " +
|
|
47
49
|
"Rate limits: 60/hour, 500/day. Supports CC, BCC, and file attachments (max 10 MB each).",
|
|
48
50
|
parameters: {
|
|
@@ -90,6 +92,7 @@ export const emailSendTools = [
|
|
|
90
92
|
name: "ravi_email_reply",
|
|
91
93
|
description: "Reply to an existing email message (threaded with correct headers). " +
|
|
92
94
|
"Read the thread with ravi_read_email first to understand context and see CC recipients. " +
|
|
95
|
+
"If adding new recipients by name (e.g. 'reply and CC Alice'), use ravi_contacts_search to look up their email first. " +
|
|
93
96
|
"Subject is required — copy it from the thread (it's E2E encrypted on the server). " +
|
|
94
97
|
"Body is plain text (auto-converted) or HTML. Supports reply_all, CC, BCC, and file attachments.",
|
|
95
98
|
parameters: {
|
|
@@ -111,13 +114,16 @@ export const emailSendTools = [
|
|
|
111
114
|
},
|
|
112
115
|
reply_all: {
|
|
113
116
|
type: "boolean",
|
|
114
|
-
description: "If true, reply to all recipients (To + CC
|
|
117
|
+
description: "If true, reply to all original recipients (To + CC from the original message) automatically. " +
|
|
118
|
+
"Defaults to false (reply to sender only). " +
|
|
119
|
+
"The cc parameter adds additional recipients on top of those included by reply_all.",
|
|
115
120
|
},
|
|
116
121
|
cc: {
|
|
117
122
|
type: "array",
|
|
118
123
|
items: { type: "string" },
|
|
119
|
-
description: "Optional array of CC recipient email addresses. " +
|
|
120
|
-
"
|
|
124
|
+
description: "Optional array of additional CC recipient email addresses. " +
|
|
125
|
+
"With reply_all=true, original CC recipients are included automatically — " +
|
|
126
|
+
"use this to add new people to the thread. These recipients are visible to all.",
|
|
121
127
|
},
|
|
122
128
|
bcc: {
|
|
123
129
|
type: "array",
|
|
@@ -147,6 +153,7 @@ export const emailSendTools = [
|
|
|
147
153
|
name: "ravi_email_forward",
|
|
148
154
|
description: "Forward an email to a new recipient. The original message content is included automatically. " +
|
|
149
155
|
"Read the thread with ravi_read_email first to review content. " +
|
|
156
|
+
"If you only have the recipient's name (e.g. 'forward this to Bob'), use ravi_contacts_search first to look up their email. " +
|
|
150
157
|
"Subject is required — copy it from the thread (it's E2E encrypted on the server). " +
|
|
151
158
|
"Supports CC, BCC, and file attachments.",
|
|
152
159
|
parameters: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAA6B,EAAE,KAAe;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,MAA+B,EAC/B,eAAqC;IAErC,MAAM,EAAE,GAAG,MAAM,CAAC,EAA0B,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,GAA2B,CAAC;IAC/C,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,IAAI,EAAE,EAAE,MAAM;QAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAC7B,IAAI,GAAG,EAAE,MAAM;QAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChC,IAAI,eAAe,EAAE,MAAM;QAAE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,kGAAkG;YAClG,
|
|
1
|
+
{"version":3,"file":"email-send.js","sourceRoot":"","sources":["../../src/tools/email-send.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/identity.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Identity management tools for the Ravi OpenClaw plugin.
|
|
3
3
|
*
|
|
4
4
|
* Provides tools to list, create, and inspect Ravi identities. Each identity
|
|
5
|
-
* bundles an email address, phone number, and encrypted
|
|
5
|
+
* bundles an email address, phone number, and encrypted secrets store into a coherent
|
|
6
6
|
* persona for AI agents.
|
|
7
7
|
*
|
|
8
8
|
* @module tools/identity
|
|
@@ -30,7 +30,7 @@ export interface ToolDefinition {
|
|
|
30
30
|
*
|
|
31
31
|
* Always includes an authenticated {@link RaviClient}. The optional
|
|
32
32
|
* {@link CryptoManager} is present when the user has provided an encryption
|
|
33
|
-
* PIN, enabling E2E encrypt/decrypt operations on
|
|
33
|
+
* PIN, enabling E2E encrypt/decrypt operations on encrypted data.
|
|
34
34
|
*/
|
|
35
35
|
export interface ToolContext {
|
|
36
36
|
/** Authenticated Ravi API client. */
|