openclaw-messagebox-plugin 0.1.5 → 0.1.7

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/dist/index.d.ts CHANGED
@@ -2,5 +2,6 @@
2
2
  * OpenClaw MessageBox Plugin
3
3
  * Enables secure P2P encrypted messaging and payments.
4
4
  */
5
+ export declare function activate(api: any): Promise<void>;
5
6
  export default function register(api: any): void;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QAyJxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,iBAEtC;AAID,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QA4JxC"}
package/dist/index.js CHANGED
@@ -7,7 +7,14 @@ import { BSVAgentWallet } from "./src/core/wallet.js";
7
7
  * OpenClaw MessageBox Plugin
8
8
  * Enables secure P2P encrypted messaging and payments.
9
9
  */
10
+ export async function activate(api) {
11
+ return register(api);
12
+ }
13
+ let isInitialized = false;
10
14
  export default function register(api) {
15
+ if (isInitialized)
16
+ return;
17
+ isInitialized = true;
11
18
  // Capture configuration from the gateway (handle multiple IDs and flat/nested structures)
12
19
  const entries = api.getConfig?.()?.plugins?.entries || {};
13
20
  const entry = entries['openclaw-messagebox']
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -192,7 +192,7 @@ export class BSVAgentWallet {
192
192
  // 6. SQLite storage via knex
193
193
  const filePath = path.join(config.storageDir, `${DEFAULT_DB_NAME}.sqlite`);
194
194
  const knex = knexLib({
195
- client: 'sqlite3',
195
+ client: 'better-sqlite3',
196
196
  connection: { filename: filePath },
197
197
  useNullAsDefault: true,
198
198
  });
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/core/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/core/wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MessageBox Plugin tests
3
+ *
4
+ * Verifies that the messagebox tool and service are registered correctly.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=messagebox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagebox.test.d.ts","sourceRoot":"","sources":["../../src/messagebox.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * MessageBox Plugin tests
3
+ *
4
+ * Verifies that the messagebox tool and service are registered correctly.
5
+ */
6
+ import register from '../index.js';
7
+ // Simple test runner
8
+ let passed = 0;
9
+ let failed = 0;
10
+ async function test(name, fn) {
11
+ try {
12
+ await fn();
13
+ console.log(` ✓ ${name}`);
14
+ passed++;
15
+ }
16
+ catch (err) {
17
+ console.log(` ✗ ${name}`);
18
+ console.log(err);
19
+ failed++;
20
+ }
21
+ }
22
+ function assert(condition, message) {
23
+ if (!condition)
24
+ throw new Error(`Assertion failed: ${message}`);
25
+ }
26
+ async function run() {
27
+ console.log('MessageBox Plugin tests\n');
28
+ let registeredTool = null;
29
+ let registeredService = null;
30
+ const mockApi = {
31
+ logger: {
32
+ info: () => { },
33
+ error: () => { },
34
+ warn: () => { }
35
+ },
36
+ registerTool: (tool) => {
37
+ registeredTool = tool;
38
+ },
39
+ registerService: (service) => {
40
+ registeredService = service;
41
+ },
42
+ getConfig: () => ({
43
+ plugins: {
44
+ entries: {
45
+ 'openclaw-messagebox': {
46
+ config: {
47
+ host: 'https://mock-msg.test',
48
+ network: 'testnet'
49
+ }
50
+ }
51
+ }
52
+ }
53
+ })
54
+ };
55
+ await test('Plugin registers messagebox tool', async () => {
56
+ register(mockApi);
57
+ assert(registeredTool !== null, 'tool should be registered');
58
+ assert(registeredTool.name === 'messagebox', 'tool name should be messagebox');
59
+ });
60
+ await test('Plugin registers messagebox service', async () => {
61
+ assert(registeredService !== null, 'service should be registered');
62
+ assert(registeredService.id === 'messagebox-listener', 'service id should match');
63
+ });
64
+ console.log(`\n${passed} passed, ${failed} failed`);
65
+ if (failed > 0)
66
+ process.exit(1);
67
+ }
68
+ run().catch(err => {
69
+ console.error(err);
70
+ process.exit(1);
71
+ });
72
+ //# sourceMappingURL=messagebox.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messagebox.test.js","sourceRoot":"","sources":["../../src/messagebox.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,qBAAqB;AACrB,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,KAAK,UAAU,IAAI,CAAC,IAAY,EAAE,EAA8B;IAC9D,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC;IACX,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,EAAE,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,SAAkB,EAAE,OAAe;IACjD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,IAAI,cAAc,GAAQ,IAAI,CAAC;IAC/B,IAAI,iBAAiB,GAAQ,IAAI,CAAC;IAElC,MAAM,OAAO,GAAG;QACd,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;SACf;QACD,YAAY,EAAE,CAAC,IAAS,EAAE,EAAE;YAC1B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,eAAe,EAAE,CAAC,OAAY,EAAE,EAAE;YAChC,iBAAiB,GAAG,OAAO,CAAC;QAC9B,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAChB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,qBAAqB,EAAE;wBACrB,MAAM,EAAE;4BACN,IAAI,EAAE,uBAAuB;4BAC7B,OAAO,EAAE,SAAS;yBACnB;qBACF;iBACF;aACF;SACF,CAAC;KACH,CAAC;IAEF,MAAM,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QACxD,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,2BAA2B,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,YAAY,EAAE,gCAAgC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,8BAA8B,CAAC,CAAC;QACnE,MAAM,CAAC,iBAAiB,CAAC,EAAE,KAAK,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,YAAY,MAAM,SAAS,CAAC,CAAC;IACpD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -6,5 +6,6 @@ export declare class MessageStore {
6
6
  saveMessage(msg: MessageRecord): Promise<void>;
7
7
  getInbox(limit?: number): Promise<any[]>;
8
8
  markAcknowledged(ids: string[]): Promise<void>;
9
+ destroy(): Promise<void>;
9
10
  }
10
11
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAO;gBAEL,MAAM,EAAE,MAAM;IAWpB,IAAI;IAcJ,WAAW,CAAC,GAAG,EAAE,aAAa;IAI9B,QAAQ,CAAC,KAAK,GAAE,MAAW;IAI3B,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE;CAGrC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAO;gBAEL,MAAM,EAAE,MAAM;IAWpB,IAAI;IAcJ,WAAW,CAAC,GAAG,EAAE,aAAa;IAI9B,QAAQ,CAAC,KAAK,GAAE,MAAW;IAI3B,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE;IAI9B,OAAO;CAGd"}
package/dist/src/store.js CHANGED
@@ -35,5 +35,8 @@ export class MessageStore {
35
35
  async markAcknowledged(ids) {
36
36
  await this.db('messages').whereIn('id', ids).update({ acknowledged: true });
37
37
  }
38
+ async destroy() {
39
+ await this.db.destroy();
40
+ }
38
41
  }
39
42
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,IAAc,MAAM,MAAM,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,OAAO,YAAY;IACf,EAAE,CAAO;IAEjB,YAAY,MAAc;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACb,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;YAChC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAkB;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAa;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,IAAc,MAAM,MAAM,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,MAAM,OAAO,YAAY;IACf,EAAE,CAAO;IAEjB,YAAY,MAAc;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACb,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;YAChC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAkB;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE;QAC/B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAa;QAClC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MessageBox Store tests
3
+ *
4
+ * Verifies that MessageStore correctly handles SQLite operations.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.d.ts","sourceRoot":"","sources":["../../src/store.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * MessageBox Store tests
3
+ *
4
+ * Verifies that MessageStore correctly handles SQLite operations.
5
+ */
6
+ import { MessageStore } from './store.js';
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as os from 'node:os';
10
+ // Simple test runner
11
+ let passed = 0;
12
+ let failed = 0;
13
+ async function test(name, fn) {
14
+ try {
15
+ await fn();
16
+ console.log(` ✓ ${name}`);
17
+ passed++;
18
+ }
19
+ catch (err) {
20
+ console.log(` ✗ ${name}`);
21
+ console.log(err);
22
+ failed++;
23
+ }
24
+ }
25
+ function assert(condition, message) {
26
+ if (!condition)
27
+ throw new Error(`Assertion failed: ${message}`);
28
+ }
29
+ async function run() {
30
+ console.log('MessageBox Store tests\n');
31
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msgbox-test-'));
32
+ const dbPath = path.join(tmpDir, 'test-messages.sqlite');
33
+ let store = null;
34
+ try {
35
+ store = new MessageStore(dbPath);
36
+ await store.init();
37
+ if (!store)
38
+ throw new Error('Failed to initialize store');
39
+ const activeStore = store; // Local non-null reference for closures
40
+ await test('Store saves and retrieves messages', async () => {
41
+ const msg = {
42
+ id: 'msg-1',
43
+ senderKey: 'pub-1',
44
+ recipientKey: 'pub-2',
45
+ body: 'Hello',
46
+ box: 'inbox',
47
+ ts: Date.now(),
48
+ acknowledged: false
49
+ };
50
+ await activeStore.saveMessage(msg);
51
+ const inbox = await activeStore.getInbox();
52
+ assert(inbox.length === 1, 'inbox should have 1 message');
53
+ assert(inbox[0].id === 'msg-1', 'message ID should match');
54
+ assert(inbox[0].body === 'Hello', 'message body should match');
55
+ });
56
+ await test('Store handles duplicate message IDs (onConflict ignore)', async () => {
57
+ const msg = {
58
+ id: 'msg-1',
59
+ senderKey: 'pub-1',
60
+ recipientKey: 'pub-2',
61
+ body: 'Hello Updated',
62
+ box: 'inbox',
63
+ ts: Date.now(),
64
+ acknowledged: false
65
+ };
66
+ await activeStore.saveMessage(msg);
67
+ const inbox = await activeStore.getInbox();
68
+ assert(inbox.length === 1, 'inbox should still have 1 message');
69
+ assert(inbox[0].body === 'Hello', 'original message body should be preserved');
70
+ });
71
+ await test('Store marks messages as acknowledged', async () => {
72
+ await activeStore.markAcknowledged(['msg-1']);
73
+ const inbox = await activeStore.getInbox();
74
+ assert(inbox[0].acknowledged === 1 || inbox[0].acknowledged === true, 'message should be acknowledged');
75
+ });
76
+ await test('Store respects limits and ordering', async () => {
77
+ // Add a newer message
78
+ await activeStore.saveMessage({
79
+ id: 'msg-2',
80
+ senderKey: 'pub-1',
81
+ recipientKey: 'pub-2',
82
+ body: 'World',
83
+ box: 'inbox',
84
+ ts: Date.now() + 1000,
85
+ acknowledged: false
86
+ });
87
+ const inboxFull = await activeStore.getInbox();
88
+ assert(inboxFull.length === 2, 'inbox should have 2 messages');
89
+ assert(inboxFull[0].id === 'msg-2', 'newest message should be first');
90
+ const inboxLimited = await activeStore.getInbox(1);
91
+ assert(inboxLimited.length === 1, 'limited inbox should have 1 message');
92
+ assert(inboxLimited[0].id === 'msg-2', 'limited inbox should have the newest message');
93
+ });
94
+ }
95
+ finally {
96
+ if (store)
97
+ await store.destroy();
98
+ fs.rmSync(tmpDir, { recursive: true, force: true });
99
+ }
100
+ console.log(`\n${passed} passed, ${failed} failed`);
101
+ if (failed > 0)
102
+ process.exit(1);
103
+ }
104
+ run().catch(err => {
105
+ console.error(err);
106
+ process.exit(1);
107
+ });
108
+ //# sourceMappingURL=store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../src/store.test.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -9,7 +9,16 @@ import { BSVAgentWallet } from "./src/core/wallet.js";
9
9
  * OpenClaw MessageBox Plugin
10
10
  * Enables secure P2P encrypted messaging and payments.
11
11
  */
12
+ export async function activate(api: any) {
13
+ return register(api);
14
+ }
15
+
16
+ let isInitialized = false;
17
+
12
18
  export default function register(api: any) {
19
+ if (isInitialized) return;
20
+ isInitialized = true;
21
+
13
22
  // Capture configuration from the gateway (handle multiple IDs and flat/nested structures)
14
23
  const entries = api.getConfig?.()?.plugins?.entries || {};
15
24
  const entry = entries['openclaw-messagebox']
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-messagebox-plugin",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "OpenClaw plugin for P2P encrypted messaging and payments via BSV MessageBox",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,8 @@
16
16
  "build": "tsc",
17
17
  "prepublishOnly": "npm run build",
18
18
  "lint": "eslint src/**/*.ts",
19
- "test": "npx tsx src/**/*.test.ts"
19
+ "test": "npx tsx src/messagebox.test.ts && npx tsx src/store.test.ts",
20
+ "postinstall": "node -e \"try{require('better-sqlite3')}catch{console.log('Note: better-sqlite3 requires build tools. If install failed, ensure python3 and a C++ compiler are available.')}\""
20
21
  },
21
22
  "dependencies": {
22
23
  "@bsv/message-box-client": "^2.0.4",
@@ -33,8 +34,12 @@
33
34
  },
34
35
  "openclaw": {
35
36
  "extensions": [
36
- "./index.ts"
37
- ]
37
+ "./dist/index.js"
38
+ ],
39
+ "compat": {
40
+ "pluginApi": "1",
41
+ "minGatewayVersion": "2026.3.1"
42
+ }
38
43
  },
39
44
  "keywords": [
40
45
  "openclaw",
@@ -253,7 +253,7 @@ export class BSVAgentWallet {
253
253
  // 6. SQLite storage via knex
254
254
  const filePath = path.join(config.storageDir, `${DEFAULT_DB_NAME}.sqlite`);
255
255
  const knex = knexLib({
256
- client: 'sqlite3',
256
+ client: 'better-sqlite3',
257
257
  connection: { filename: filePath },
258
258
  useNullAsDefault: true,
259
259
  });
@@ -0,0 +1,79 @@
1
+ /**
2
+ * MessageBox Plugin tests
3
+ *
4
+ * Verifies that the messagebox tool and service are registered correctly.
5
+ */
6
+
7
+ import register from '../index.js';
8
+
9
+ // Simple test runner
10
+ let passed = 0;
11
+ let failed = 0;
12
+
13
+ async function test(name: string, fn: () => void | Promise<void>) {
14
+ try {
15
+ await fn();
16
+ console.log(` ✓ ${name}`);
17
+ passed++;
18
+ } catch (err: unknown) {
19
+ console.log(` ✗ ${name}`);
20
+ console.log(err);
21
+ failed++;
22
+ }
23
+ }
24
+
25
+ function assert(condition: boolean, message: string) {
26
+ if (!condition) throw new Error(`Assertion failed: ${message}`);
27
+ }
28
+
29
+ async function run() {
30
+ console.log('MessageBox Plugin tests\n');
31
+
32
+ let registeredTool: any = null;
33
+ let registeredService: any = null;
34
+
35
+ const mockApi = {
36
+ logger: {
37
+ info: () => {},
38
+ error: () => {},
39
+ warn: () => {}
40
+ },
41
+ registerTool: (tool: any) => {
42
+ registeredTool = tool;
43
+ },
44
+ registerService: (service: any) => {
45
+ registeredService = service;
46
+ },
47
+ getConfig: () => ({
48
+ plugins: {
49
+ entries: {
50
+ 'openclaw-messagebox': {
51
+ config: {
52
+ host: 'https://mock-msg.test',
53
+ network: 'testnet'
54
+ }
55
+ }
56
+ }
57
+ }
58
+ })
59
+ };
60
+
61
+ await test('Plugin registers messagebox tool', async () => {
62
+ register(mockApi);
63
+ assert(registeredTool !== null, 'tool should be registered');
64
+ assert(registeredTool.name === 'messagebox', 'tool name should be messagebox');
65
+ });
66
+
67
+ await test('Plugin registers messagebox service', async () => {
68
+ assert(registeredService !== null, 'service should be registered');
69
+ assert(registeredService.id === 'messagebox-listener', 'service id should match');
70
+ });
71
+
72
+ console.log(`\n${passed} passed, ${failed} failed`);
73
+ if (failed > 0) process.exit(1);
74
+ }
75
+
76
+ run().catch(err => {
77
+ console.error(err);
78
+ process.exit(1);
79
+ });
@@ -0,0 +1,123 @@
1
+ /**
2
+ * MessageBox Store tests
3
+ *
4
+ * Verifies that MessageStore correctly handles SQLite operations.
5
+ */
6
+
7
+ import { MessageStore } from './store.js';
8
+ import * as fs from 'node:fs';
9
+ import * as path from 'node:path';
10
+ import * as os from 'node:os';
11
+
12
+ // Simple test runner
13
+ let passed = 0;
14
+ let failed = 0;
15
+
16
+ async function test(name: string, fn: () => void | Promise<void>) {
17
+ try {
18
+ await fn();
19
+ console.log(` ✓ ${name}`);
20
+ passed++;
21
+ } catch (err: unknown) {
22
+ console.log(` ✗ ${name}`);
23
+ console.log(err);
24
+ failed++;
25
+ }
26
+ }
27
+
28
+ function assert(condition: boolean, message: string) {
29
+ if (!condition) throw new Error(`Assertion failed: ${message}`);
30
+ }
31
+
32
+ async function run() {
33
+ console.log('MessageBox Store tests\n');
34
+
35
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msgbox-test-'));
36
+ const dbPath = path.join(tmpDir, 'test-messages.sqlite');
37
+ let store: MessageStore | null = null;
38
+
39
+ try {
40
+ store = new MessageStore(dbPath);
41
+ await store.init();
42
+
43
+ if (!store) throw new Error('Failed to initialize store');
44
+ const activeStore = store; // Local non-null reference for closures
45
+
46
+ await test('Store saves and retrieves messages', async () => {
47
+ const msg = {
48
+ id: 'msg-1',
49
+ senderKey: 'pub-1',
50
+ recipientKey: 'pub-2',
51
+ body: 'Hello',
52
+ box: 'inbox',
53
+ ts: Date.now(),
54
+ acknowledged: false
55
+ };
56
+
57
+ await activeStore.saveMessage(msg);
58
+ const inbox = await activeStore.getInbox();
59
+
60
+ assert(inbox.length === 1, 'inbox should have 1 message');
61
+ assert(inbox[0].id === 'msg-1', 'message ID should match');
62
+ assert(inbox[0].body === 'Hello', 'message body should match');
63
+ });
64
+
65
+ await test('Store handles duplicate message IDs (onConflict ignore)', async () => {
66
+ const msg = {
67
+ id: 'msg-1',
68
+ senderKey: 'pub-1',
69
+ recipientKey: 'pub-2',
70
+ body: 'Hello Updated',
71
+ box: 'inbox',
72
+ ts: Date.now(),
73
+ acknowledged: false
74
+ };
75
+
76
+ await activeStore.saveMessage(msg);
77
+ const inbox = await activeStore.getInbox();
78
+
79
+ assert(inbox.length === 1, 'inbox should still have 1 message');
80
+ assert(inbox[0].body === 'Hello', 'original message body should be preserved');
81
+ });
82
+
83
+ await test('Store marks messages as acknowledged', async () => {
84
+ await activeStore.markAcknowledged(['msg-1']);
85
+ const inbox = await activeStore.getInbox();
86
+
87
+ assert(inbox[0].acknowledged === 1 || inbox[0].acknowledged === true, 'message should be acknowledged');
88
+ });
89
+
90
+ await test('Store respects limits and ordering', async () => {
91
+ // Add a newer message
92
+ await activeStore.saveMessage({
93
+ id: 'msg-2',
94
+ senderKey: 'pub-1',
95
+ recipientKey: 'pub-2',
96
+ body: 'World',
97
+ box: 'inbox',
98
+ ts: Date.now() + 1000,
99
+ acknowledged: false
100
+ });
101
+
102
+ const inboxFull = await activeStore.getInbox();
103
+ assert(inboxFull.length === 2, 'inbox should have 2 messages');
104
+ assert(inboxFull[0].id === 'msg-2', 'newest message should be first');
105
+
106
+ const inboxLimited = await activeStore.getInbox(1);
107
+ assert(inboxLimited.length === 1, 'limited inbox should have 1 message');
108
+ assert(inboxLimited[0].id === 'msg-2', 'limited inbox should have the newest message');
109
+ });
110
+
111
+ } finally {
112
+ if (store) await store.destroy();
113
+ fs.rmSync(tmpDir, { recursive: true, force: true });
114
+ }
115
+
116
+ console.log(`\n${passed} passed, ${failed} failed`);
117
+ if (failed > 0) process.exit(1);
118
+ }
119
+
120
+ run().catch(err => {
121
+ console.error(err);
122
+ process.exit(1);
123
+ });
package/src/store.ts CHANGED
@@ -42,4 +42,8 @@ export class MessageStore {
42
42
  async markAcknowledged(ids: string[]) {
43
43
  await this.db('messages').whereIn('id', ids).update({ acknowledged: true });
44
44
  }
45
+
46
+ async destroy() {
47
+ await this.db.destroy();
48
+ }
45
49
  }