@ozaiya/openclaw-channel 0.1.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.
- package/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/src/api.d.ts +101 -0
- package/dist/src/api.js +247 -0
- package/dist/src/api.js.map +1 -0
- package/dist/src/botActions.d.ts +25 -0
- package/dist/src/botActions.js +51 -0
- package/dist/src/botActions.js.map +1 -0
- package/dist/src/channel.d.ts +10 -0
- package/dist/src/channel.js +643 -0
- package/dist/src/channel.js.map +1 -0
- package/dist/src/crypto.d.ts +45 -0
- package/dist/src/crypto.js +132 -0
- package/dist/src/crypto.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/runtime.d.ts +6 -0
- package/dist/src/runtime.js +11 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/types.d.ts +87 -0
- package/dist/src/types.js +5 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/webhook.d.ts +14 -0
- package/dist/src/webhook.js +138 -0
- package/dist/src/webhook.js.map +1 -0
- package/package.json +73 -0
- package/types/openclaw-plugin-sdk.d.ts +109 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unwrap a group key that was encrypted with the bot's public key.
|
|
3
|
+
* Uses X25519 box decryption (crypto_box_open_easy).
|
|
4
|
+
*
|
|
5
|
+
* @param wrappedKeyBase64 - base64-encoded bundle: ephemeralPubKey(32) + nonce(24) + ciphertext
|
|
6
|
+
* @param botPrivateKeyBase64 - base64-encoded X25519 private key (seed)
|
|
7
|
+
* @returns The unwrapped group key (32 bytes), or null on failure
|
|
8
|
+
*/
|
|
9
|
+
export declare function unwrapGroupKey(wrappedKeyBase64: string, botPrivateKeyBase64: string): Promise<Uint8Array | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Generate a random 32-byte AES-256 group key.
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateGroupKey(): Promise<Uint8Array>;
|
|
14
|
+
/**
|
|
15
|
+
* Wrap a group key for a recipient using their Curve25519 public key.
|
|
16
|
+
* Produces: base64(ephemeralPK(32) + nonce(24) + ciphertext)
|
|
17
|
+
* Matches the Ozaiya app's encryptBox format.
|
|
18
|
+
*
|
|
19
|
+
* @param groupKey - 32-byte AES-256 group key to wrap
|
|
20
|
+
* @param recipientPublicKeyHex - hex-encoded Curve25519 public key of the recipient
|
|
21
|
+
* @returns base64-encoded wrapped key bundle
|
|
22
|
+
*/
|
|
23
|
+
export declare function wrapGroupKey(groupKey: Uint8Array, recipientPublicKeyHex: string): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Decrypt an Ozaiya chat message.
|
|
26
|
+
*
|
|
27
|
+
* Format: base64 → [0x00 version byte] + [IV(12) + ciphertext + authTag(16)]
|
|
28
|
+
* Content is JSON parsed after decryption.
|
|
29
|
+
*
|
|
30
|
+
* @param contentBase64 - base64-encoded encrypted message
|
|
31
|
+
* @param groupKey - 32-byte AES-256 group key
|
|
32
|
+
* @returns Parsed message content, or null on failure
|
|
33
|
+
*/
|
|
34
|
+
export declare function decryptMessage(contentBase64: string, groupKey: Uint8Array): unknown | null;
|
|
35
|
+
/**
|
|
36
|
+
* Encrypt a message for Ozaiya chat.
|
|
37
|
+
*
|
|
38
|
+
* Produces: base64([0x00 version byte] + [IV(12) + ciphertext + authTag(16)])
|
|
39
|
+
* Content is JSON serialized before encryption.
|
|
40
|
+
*
|
|
41
|
+
* @param message - message content object (e.g. { text: "hello" })
|
|
42
|
+
* @param groupKey - 32-byte AES-256 group key
|
|
43
|
+
* @returns base64-encoded encrypted content
|
|
44
|
+
*/
|
|
45
|
+
export declare function encryptMessage(message: unknown, groupKey: Uint8Array): string;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crypto module matching the Ozaiya client's encryption scheme.
|
|
3
|
+
*
|
|
4
|
+
* Key wrapping: X25519 box (libsodium crypto_box)
|
|
5
|
+
* Format: ephemeralPubKey(32) + nonce(24) + ciphertext
|
|
6
|
+
*
|
|
7
|
+
* Message encryption: AES-256-GCM
|
|
8
|
+
* Format: [0x00 version byte] + [IV(12) + ciphertext + authTag(16)]
|
|
9
|
+
* Content is JSON-serialized before encryption.
|
|
10
|
+
*/
|
|
11
|
+
import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
|
|
12
|
+
import _sodium from "libsodium-wrappers";
|
|
13
|
+
let sodiumReady = false;
|
|
14
|
+
async function ensureSodium() {
|
|
15
|
+
if (!sodiumReady) {
|
|
16
|
+
await _sodium.ready;
|
|
17
|
+
sodiumReady = true;
|
|
18
|
+
}
|
|
19
|
+
return _sodium;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Unwrap a group key that was encrypted with the bot's public key.
|
|
23
|
+
* Uses X25519 box decryption (crypto_box_open_easy).
|
|
24
|
+
*
|
|
25
|
+
* @param wrappedKeyBase64 - base64-encoded bundle: ephemeralPubKey(32) + nonce(24) + ciphertext
|
|
26
|
+
* @param botPrivateKeyBase64 - base64-encoded X25519 private key (seed)
|
|
27
|
+
* @returns The unwrapped group key (32 bytes), or null on failure
|
|
28
|
+
*/
|
|
29
|
+
export async function unwrapGroupKey(wrappedKeyBase64, botPrivateKeyBase64) {
|
|
30
|
+
const sodium = await ensureSodium();
|
|
31
|
+
const bundle = sodium.from_base64(wrappedKeyBase64, sodium.base64_variants.ORIGINAL);
|
|
32
|
+
const seed = sodium.from_base64(botPrivateKeyBase64, sodium.base64_variants.ORIGINAL);
|
|
33
|
+
// Derive keypair from seed (matches Ozaiya client's crypto_box_seed_keypair)
|
|
34
|
+
const keypair = sodium.crypto_box_seed_keypair(seed);
|
|
35
|
+
// Extract components: ephemeralPubKey(32) + nonce(24) + ciphertext
|
|
36
|
+
const pubKeyLen = sodium.crypto_box_PUBLICKEYBYTES; // 32
|
|
37
|
+
const nonceLen = sodium.crypto_box_NONCEBYTES; // 24
|
|
38
|
+
const ephemeralPubKey = bundle.slice(0, pubKeyLen);
|
|
39
|
+
const nonce = bundle.slice(pubKeyLen, pubKeyLen + nonceLen);
|
|
40
|
+
const ciphertext = bundle.slice(pubKeyLen + nonceLen);
|
|
41
|
+
try {
|
|
42
|
+
return sodium.crypto_box_open_easy(ciphertext, nonce, ephemeralPubKey, keypair.privateKey);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generate a random 32-byte AES-256 group key.
|
|
50
|
+
*/
|
|
51
|
+
export async function generateGroupKey() {
|
|
52
|
+
const sodium = await ensureSodium();
|
|
53
|
+
return sodium.randombytes_buf(32);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Wrap a group key for a recipient using their Curve25519 public key.
|
|
57
|
+
* Produces: base64(ephemeralPK(32) + nonce(24) + ciphertext)
|
|
58
|
+
* Matches the Ozaiya app's encryptBox format.
|
|
59
|
+
*
|
|
60
|
+
* @param groupKey - 32-byte AES-256 group key to wrap
|
|
61
|
+
* @param recipientPublicKeyHex - hex-encoded Curve25519 public key of the recipient
|
|
62
|
+
* @returns base64-encoded wrapped key bundle
|
|
63
|
+
*/
|
|
64
|
+
export async function wrapGroupKey(groupKey, recipientPublicKeyHex) {
|
|
65
|
+
const sodium = await ensureSodium();
|
|
66
|
+
const recipientPk = sodium.from_hex(recipientPublicKeyHex);
|
|
67
|
+
const ephemeral = sodium.crypto_box_keypair();
|
|
68
|
+
const nonce = sodium.randombytes_buf(sodium.crypto_box_NONCEBYTES);
|
|
69
|
+
const ciphertext = sodium.crypto_box_easy(groupKey, nonce, recipientPk, ephemeral.privateKey);
|
|
70
|
+
// Bundle: ephemeralPK(32) + nonce(24) + ciphertext
|
|
71
|
+
const bundle = new Uint8Array(ephemeral.publicKey.length + nonce.length + ciphertext.length);
|
|
72
|
+
bundle.set(ephemeral.publicKey, 0);
|
|
73
|
+
bundle.set(nonce, ephemeral.publicKey.length);
|
|
74
|
+
bundle.set(ciphertext, ephemeral.publicKey.length + nonce.length);
|
|
75
|
+
return sodium.to_base64(bundle, sodium.base64_variants.ORIGINAL);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Decrypt an Ozaiya chat message.
|
|
79
|
+
*
|
|
80
|
+
* Format: base64 → [0x00 version byte] + [IV(12) + ciphertext + authTag(16)]
|
|
81
|
+
* Content is JSON parsed after decryption.
|
|
82
|
+
*
|
|
83
|
+
* @param contentBase64 - base64-encoded encrypted message
|
|
84
|
+
* @param groupKey - 32-byte AES-256 group key
|
|
85
|
+
* @returns Parsed message content, or null on failure
|
|
86
|
+
*/
|
|
87
|
+
export function decryptMessage(contentBase64, groupKey) {
|
|
88
|
+
try {
|
|
89
|
+
const data = Buffer.from(contentBase64, "base64");
|
|
90
|
+
// Check version byte
|
|
91
|
+
if (data[0] !== 0x00) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
// AES-GCM bytes: IV(12) + ciphertext + authTag(16)
|
|
95
|
+
const aesData = data.subarray(1);
|
|
96
|
+
const iv = aesData.subarray(0, 12);
|
|
97
|
+
const authTag = aesData.subarray(aesData.length - 16);
|
|
98
|
+
const ciphertext = aesData.subarray(12, aesData.length - 16);
|
|
99
|
+
const decipher = createDecipheriv("aes-256-gcm", groupKey, iv);
|
|
100
|
+
decipher.setAuthTag(authTag);
|
|
101
|
+
const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
102
|
+
return JSON.parse(decrypted.toString("utf8"));
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Encrypt a message for Ozaiya chat.
|
|
110
|
+
*
|
|
111
|
+
* Produces: base64([0x00 version byte] + [IV(12) + ciphertext + authTag(16)])
|
|
112
|
+
* Content is JSON serialized before encryption.
|
|
113
|
+
*
|
|
114
|
+
* @param message - message content object (e.g. { text: "hello" })
|
|
115
|
+
* @param groupKey - 32-byte AES-256 group key
|
|
116
|
+
* @returns base64-encoded encrypted content
|
|
117
|
+
*/
|
|
118
|
+
export function encryptMessage(message, groupKey) {
|
|
119
|
+
const plaintext = JSON.stringify(message);
|
|
120
|
+
const iv = randomBytes(12);
|
|
121
|
+
const cipher = createCipheriv("aes-256-gcm", groupKey, iv);
|
|
122
|
+
const encrypted = Buffer.concat([cipher.update(plaintext, "utf8"), cipher.final()]);
|
|
123
|
+
const authTag = cipher.getAuthTag();
|
|
124
|
+
// Format: [0x00] + [IV(12) + ciphertext + authTag(16)]
|
|
125
|
+
const result = Buffer.alloc(1 + iv.length + encrypted.length + authTag.length);
|
|
126
|
+
result[0] = 0x00;
|
|
127
|
+
iv.copy(result, 1);
|
|
128
|
+
encrypted.copy(result, 1 + iv.length);
|
|
129
|
+
authTag.copy(result, 1 + iv.length + encrypted.length);
|
|
130
|
+
return result.toString("base64");
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for the Ozaiya channel package.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports crypto helpers, API functions, and high-level bot actions
|
|
5
|
+
* so consumers can import from "@ozaiya/openclaw-channel/src/index.js".
|
|
6
|
+
*/
|
|
7
|
+
export { unwrapGroupKey, generateGroupKey, wrapGroupKey, decryptMessage, encryptMessage } from "./crypto.js";
|
|
8
|
+
export { sendMessage, fetchGroups, createGroup, addMember, getUserPublicKeys, probeApi, toggleReaction, editMessage, deleteMessage, pinMessage, unpinMessage, uploadFile, } from "./api.js";
|
|
9
|
+
export { botCreateGroup } from "./botActions.js";
|
|
10
|
+
export type { OzaiyaAccountConfig, OzaiyaChannelConfig, ResolvedOzaiyaAccount, OzaiyaWebhookPayload, OzaiyaWebhookMessage, OzaiyaMessageContent, OzaiyaChatFileUploadResponse, OzaiyaSendMessageResult, } from "./types.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for the Ozaiya channel package.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports crypto helpers, API functions, and high-level bot actions
|
|
5
|
+
* so consumers can import from "@ozaiya/openclaw-channel/src/index.js".
|
|
6
|
+
*/
|
|
7
|
+
export { unwrapGroupKey, generateGroupKey, wrapGroupKey, decryptMessage, encryptMessage } from "./crypto.js";
|
|
8
|
+
export { sendMessage, fetchGroups, createGroup, addMember, getUserPublicKeys, probeApi, toggleReaction, editMessage, deleteMessage, pinMessage, unpinMessage, uploadFile, } from "./api.js";
|
|
9
|
+
export { botCreateGroup } from "./botActions.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stores the OpenClaw PluginRuntime singleton for access from other modules.
|
|
3
|
+
*/
|
|
4
|
+
import type { PluginRuntime } from "openclaw/plugin-sdk";
|
|
5
|
+
export declare function setOzaiyaRuntime(r: PluginRuntime): void;
|
|
6
|
+
export declare function getOzaiyaRuntime(): PluginRuntime;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
let runtime = null;
|
|
2
|
+
export function setOzaiyaRuntime(r) {
|
|
3
|
+
runtime = r;
|
|
4
|
+
}
|
|
5
|
+
export function getOzaiyaRuntime() {
|
|
6
|
+
if (!runtime) {
|
|
7
|
+
throw new Error("Ozaiya runtime not initialized - plugin not registered");
|
|
8
|
+
}
|
|
9
|
+
return runtime;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAKA,IAAI,OAAO,GAAyB,IAAI,CAAC;AAEzC,MAAM,UAAU,gBAAgB,CAAC,CAAgB;IAC/C,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration and payload types for the Ozaiya channel plugin.
|
|
3
|
+
*/
|
|
4
|
+
/** Per-account credentials for an Ozaiya bot */
|
|
5
|
+
export interface OzaiyaAccountConfig {
|
|
6
|
+
enabled?: boolean;
|
|
7
|
+
botToken: string;
|
|
8
|
+
botPrivateKey: string;
|
|
9
|
+
webhookSecret: string;
|
|
10
|
+
webhookPath?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Config stored at channels.ozaiya in OpenClaw config */
|
|
13
|
+
export interface OzaiyaChannelConfig {
|
|
14
|
+
enabled?: boolean;
|
|
15
|
+
botToken?: string;
|
|
16
|
+
botPrivateKey?: string;
|
|
17
|
+
webhookSecret?: string;
|
|
18
|
+
apiBaseUrl?: string;
|
|
19
|
+
webhookPath?: string;
|
|
20
|
+
accounts?: Record<string, OzaiyaAccountConfig>;
|
|
21
|
+
}
|
|
22
|
+
/** Resolved account after config validation */
|
|
23
|
+
export interface ResolvedOzaiyaAccount {
|
|
24
|
+
accountId: string;
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
botToken: string;
|
|
27
|
+
botPrivateKey: string;
|
|
28
|
+
webhookSecret: string;
|
|
29
|
+
apiBaseUrl: string;
|
|
30
|
+
webhookPath: string;
|
|
31
|
+
}
|
|
32
|
+
/** Webhook payload from Ozaiya server */
|
|
33
|
+
export interface OzaiyaWebhookPayload {
|
|
34
|
+
event: "message.new";
|
|
35
|
+
groupId: string;
|
|
36
|
+
replyAllowed?: boolean;
|
|
37
|
+
context?: OzaiyaWebhookMessage[];
|
|
38
|
+
message: OzaiyaWebhookMessage;
|
|
39
|
+
}
|
|
40
|
+
/** Message within a webhook payload */
|
|
41
|
+
export interface OzaiyaWebhookMessage {
|
|
42
|
+
id: string;
|
|
43
|
+
senderId: string;
|
|
44
|
+
senderName: string;
|
|
45
|
+
seq: number;
|
|
46
|
+
content: string;
|
|
47
|
+
replyToId: string | null;
|
|
48
|
+
createdAt: number;
|
|
49
|
+
}
|
|
50
|
+
/** Response from Ozaiya file upload API */
|
|
51
|
+
export interface OzaiyaChatFileUploadResponse {
|
|
52
|
+
path: string;
|
|
53
|
+
url: string;
|
|
54
|
+
name: string;
|
|
55
|
+
size: number;
|
|
56
|
+
mime: string;
|
|
57
|
+
width: number | null;
|
|
58
|
+
height: number | null;
|
|
59
|
+
thumbhash: string | null;
|
|
60
|
+
duration: number | null;
|
|
61
|
+
thumbnailUrl: string | null;
|
|
62
|
+
}
|
|
63
|
+
/** Decrypted message content format used by the Ozaiya app */
|
|
64
|
+
export interface OzaiyaMessageContent {
|
|
65
|
+
text?: string;
|
|
66
|
+
files?: OzaiyaChatFileUploadResponse[];
|
|
67
|
+
inlineKeyboard?: {
|
|
68
|
+
rows: Array<Array<{
|
|
69
|
+
text: string;
|
|
70
|
+
callbackData: string;
|
|
71
|
+
}>>;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** Result from Ozaiya send message API */
|
|
75
|
+
export interface OzaiyaSendMessageResult {
|
|
76
|
+
message: {
|
|
77
|
+
id: string;
|
|
78
|
+
groupId: string;
|
|
79
|
+
senderId: string;
|
|
80
|
+
seq: number;
|
|
81
|
+
content: string;
|
|
82
|
+
replyToId: string | null;
|
|
83
|
+
createdAt: number;
|
|
84
|
+
updatedAt: number;
|
|
85
|
+
deletedAt: number | null;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { OzaiyaWebhookPayload } from "./types.js";
|
|
3
|
+
type WebhookCallback = (payload: OzaiyaWebhookPayload) => Promise<void>;
|
|
4
|
+
/**
|
|
5
|
+
* Create a Node.js HTTP handler for Ozaiya webhook events.
|
|
6
|
+
*
|
|
7
|
+
* Verifies HMAC signature, parses payload, and dispatches to callback.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createOzaiyaWebhookHandler(params: {
|
|
10
|
+
webhookSecret: string;
|
|
11
|
+
onMessage: WebhookCallback;
|
|
12
|
+
log?: (msg: string) => void;
|
|
13
|
+
}): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook handler for incoming Ozaiya chat messages.
|
|
3
|
+
*
|
|
4
|
+
* Verifies HMAC-SHA256 signature, parses payload, and invokes the message callback.
|
|
5
|
+
*/
|
|
6
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
7
|
+
const MAX_BODY_BYTES = 1024 * 1024; // 1 MB
|
|
8
|
+
const BODY_TIMEOUT_MS = 10_000;
|
|
9
|
+
const SIGNATURE_TOLERANCE_SECONDS = 300; // 5 minutes
|
|
10
|
+
/**
|
|
11
|
+
* Verify the X-Webhook-Signature header.
|
|
12
|
+
*
|
|
13
|
+
* Format: t=<timestamp>,v1=<hex>
|
|
14
|
+
* Signed content: "<timestamp>.<json_payload>"
|
|
15
|
+
*/
|
|
16
|
+
function verifySignature(rawBody, signatureHeader, webhookSecret) {
|
|
17
|
+
const parts = signatureHeader.split(",");
|
|
18
|
+
let timestamp;
|
|
19
|
+
let signature;
|
|
20
|
+
for (const part of parts) {
|
|
21
|
+
const [key, value] = part.split("=", 2);
|
|
22
|
+
if (key === "t")
|
|
23
|
+
timestamp = value;
|
|
24
|
+
if (key === "v1")
|
|
25
|
+
signature = value;
|
|
26
|
+
}
|
|
27
|
+
if (!timestamp || !signature) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
// Check timestamp freshness
|
|
31
|
+
const ts = parseInt(timestamp, 10);
|
|
32
|
+
if (isNaN(ts)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const now = Math.floor(Date.now() / 1000);
|
|
36
|
+
if (Math.abs(now - ts) > SIGNATURE_TOLERANCE_SECONDS) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
// Compute expected signature
|
|
40
|
+
const expected = createHmac("sha256", webhookSecret)
|
|
41
|
+
.update(`${timestamp}.${rawBody}`)
|
|
42
|
+
.digest("hex");
|
|
43
|
+
// Timing-safe comparison
|
|
44
|
+
try {
|
|
45
|
+
return timingSafeEqual(Buffer.from(signature, "hex"), Buffer.from(expected, "hex"));
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Read the request body with size and timeout limits. */
|
|
52
|
+
function readBody(req, maxBytes, timeoutMs) {
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
const chunks = [];
|
|
55
|
+
let size = 0;
|
|
56
|
+
const timer = setTimeout(() => {
|
|
57
|
+
req.destroy();
|
|
58
|
+
reject(new Error("Request body read timeout"));
|
|
59
|
+
}, timeoutMs);
|
|
60
|
+
req.on("data", (chunk) => {
|
|
61
|
+
size += chunk.length;
|
|
62
|
+
if (size > maxBytes) {
|
|
63
|
+
req.destroy();
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
reject(new Error("Request body too large"));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
chunks.push(chunk);
|
|
69
|
+
});
|
|
70
|
+
req.on("end", () => {
|
|
71
|
+
clearTimeout(timer);
|
|
72
|
+
resolve(Buffer.concat(chunks).toString("utf8"));
|
|
73
|
+
});
|
|
74
|
+
req.on("error", (err) => {
|
|
75
|
+
clearTimeout(timer);
|
|
76
|
+
reject(err);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a Node.js HTTP handler for Ozaiya webhook events.
|
|
82
|
+
*
|
|
83
|
+
* Verifies HMAC signature, parses payload, and dispatches to callback.
|
|
84
|
+
*/
|
|
85
|
+
export function createOzaiyaWebhookHandler(params) {
|
|
86
|
+
return async (req, res) => {
|
|
87
|
+
// Health check for GET/HEAD
|
|
88
|
+
if (req.method === "GET" || req.method === "HEAD") {
|
|
89
|
+
res.statusCode = 200;
|
|
90
|
+
res.end(JSON.stringify({ status: "ok" }));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Only accept POST
|
|
94
|
+
if (req.method !== "POST") {
|
|
95
|
+
res.statusCode = 405;
|
|
96
|
+
res.end(JSON.stringify({ error: "Method not allowed" }));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
// Read body
|
|
101
|
+
const rawBody = await readBody(req, MAX_BODY_BYTES, BODY_TIMEOUT_MS);
|
|
102
|
+
// Verify signature
|
|
103
|
+
const signatureHeader = typeof req.headers["x-webhook-signature"] === "string"
|
|
104
|
+
? req.headers["x-webhook-signature"]
|
|
105
|
+
: "";
|
|
106
|
+
if (!signatureHeader) {
|
|
107
|
+
res.statusCode = 401;
|
|
108
|
+
res.end(JSON.stringify({ error: "Missing signature" }));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!verifySignature(rawBody, signatureHeader, params.webhookSecret)) {
|
|
112
|
+
params.log?.("ozaiya: webhook signature verification failed");
|
|
113
|
+
res.statusCode = 401;
|
|
114
|
+
res.end(JSON.stringify({ error: "Invalid signature" }));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// Parse payload
|
|
118
|
+
const payload = JSON.parse(rawBody);
|
|
119
|
+
// Respond immediately, process async
|
|
120
|
+
res.statusCode = 200;
|
|
121
|
+
res.end(JSON.stringify({ status: "ok" }));
|
|
122
|
+
// Dispatch to handler
|
|
123
|
+
if (payload.event === "message.new") {
|
|
124
|
+
await params.onMessage(payload).catch((err) => {
|
|
125
|
+
params.log?.(`ozaiya: webhook handler error: ${String(err)}`);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
params.log?.(`ozaiya: webhook handler error: ${String(err)}`);
|
|
131
|
+
if (!res.headersSent) {
|
|
132
|
+
res.statusCode = 500;
|
|
133
|
+
res.end(JSON.stringify({ error: "Internal error" }));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/webhook.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ozaiya/openclaw-channel",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "OpenClaw channel plugin for Ozaiya Chat",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"types",
|
|
18
|
+
"package.json"
|
|
19
|
+
],
|
|
20
|
+
"openclaw": {
|
|
21
|
+
"extensions": [
|
|
22
|
+
"./dist/index.js"
|
|
23
|
+
],
|
|
24
|
+
"channel": {
|
|
25
|
+
"id": "ozaiya",
|
|
26
|
+
"label": "Ozaiya",
|
|
27
|
+
"selectionLabel": "Ozaiya Chat",
|
|
28
|
+
"docsPath": "/channels/ozaiya",
|
|
29
|
+
"blurb": "Connect to Ozaiya E2E encrypted group chat.",
|
|
30
|
+
"order": 90
|
|
31
|
+
},
|
|
32
|
+
"install": {
|
|
33
|
+
"npmSpec": "@ozaiya/openclaw-channel",
|
|
34
|
+
"defaultChoice": "npm"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"author": "tangojet",
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "https://github.com/tangojet/ozaiya.git",
|
|
41
|
+
"directory": "packages/openclaw-ozaiya-channel"
|
|
42
|
+
},
|
|
43
|
+
"homepage": "https://github.com/tangojet/ozaiya/tree/main/packages/openclaw-ozaiya-channel#readme",
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/tangojet/ozaiya/issues"
|
|
46
|
+
},
|
|
47
|
+
"keywords": [
|
|
48
|
+
"openclaw",
|
|
49
|
+
"ozaiya",
|
|
50
|
+
"channel",
|
|
51
|
+
"plugin",
|
|
52
|
+
"chat",
|
|
53
|
+
"e2e-encryption",
|
|
54
|
+
"ai-agent"
|
|
55
|
+
],
|
|
56
|
+
"scripts": {
|
|
57
|
+
"build": "tsc",
|
|
58
|
+
"prepublishOnly": "npm run build"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"openclaw": ">=2026.0.0"
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"libsodium-wrappers": "^0.7.15"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"typescript": "^5.9.3"
|
|
68
|
+
},
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"registry": "https://registry.npmjs.org",
|
|
71
|
+
"access": "public"
|
|
72
|
+
}
|
|
73
|
+
}
|