aicq-chat-plugin 2.5.8 → 2.6.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/extension.js CHANGED
@@ -8,13 +8,21 @@
8
8
  * This extension registers the plugin and proxies tool calls to the sidecar.
9
9
  *
10
10
  * OpenClaw expects `register()` and `activate()` exports from extension modules.
11
+ *
12
+ * NOTE: This file intentionally avoids process.env access to pass OpenClaw's
13
+ * security scanner (which flags env access + network send as a dangerous pattern).
14
+ * Configuration comes from OpenClaw's config system via activate(config).
11
15
  */
12
16
  const http = require('http');
13
17
  const path = require('path');
14
18
 
15
- const SIDECAR_PORT = parseInt(process.env.AICQ_PORT || '6109', 10);
19
+ // Default port can be overridden via activate(config)
20
+ const DEFAULT_SIDECAR_PORT = 6109;
16
21
  const SIDECAR_HOST = '127.0.0.1';
17
22
 
23
+ // Active port — set by activate() or falls back to default
24
+ let sidecarPort = DEFAULT_SIDECAR_PORT;
25
+
18
26
  // ── Helper: proxy a gateway call to the sidecar ──────────────────────
19
27
  function proxyToSidecar(method, kwargs) {
20
28
  return new Promise((resolve, _reject) => {
@@ -22,7 +30,7 @@ function proxyToSidecar(method, kwargs) {
22
30
  const req = http.request(
23
31
  {
24
32
  hostname: SIDECAR_HOST,
25
- port: SIDECAR_PORT,
33
+ port: sidecarPort,
26
34
  path: '/api/gateway',
27
35
  method: 'POST',
28
36
  headers: {
@@ -44,7 +52,7 @@ function proxyToSidecar(method, kwargs) {
44
52
  }
45
53
  );
46
54
  req.on('error', (e) => {
47
- resolve({ error: `Sidecar not reachable: ${e.message}. Is the AICQ sidecar running on port ${SIDECAR_PORT}?` });
55
+ resolve({ error: `Sidecar not reachable: ${e.message}. Is the AICQ sidecar running on port ${sidecarPort}?` });
48
56
  });
49
57
  req.on('timeout', () => {
50
58
  req.destroy();
@@ -101,14 +109,14 @@ function register() {
101
109
  return {
102
110
  id: 'aicq-chat',
103
111
  name: 'AICQ Encrypted Chat',
104
- version: '2.5.8',
112
+ version: '2.6.0',
105
113
  description: 'End-to-end encrypted chat plugin for OpenClaw agents',
106
114
 
107
115
  // Sidecar configuration — OpenClaw starts this process automatically
108
116
  sidecar: {
109
117
  command: 'node',
110
118
  args: [path.join(__dirname, 'index.js')],
111
- port: SIDECAR_PORT,
119
+ port: DEFAULT_SIDECAR_PORT,
112
120
  },
113
121
 
114
122
  // Tool definitions for OpenClaw agent use
@@ -174,8 +182,13 @@ function register() {
174
182
  }
175
183
 
176
184
  // ── activate() — called by OpenClaw when the plugin is enabled ───────
177
- // Returns an object with handlers for tools and gateway calls
178
- function activate(_config) {
185
+ // Receives config from openclaw.json and returns handlers.
186
+ // Port can be configured via the "port" field in configSchema.
187
+ function activate(config) {
188
+ // Read port from OpenClaw config (defined in configSchema)
189
+ if (config && config.port) {
190
+ sidecarPort = config.port;
191
+ }
179
192
  return {
180
193
  handleTool,
181
194
  handleGateway,
@@ -186,7 +199,6 @@ function activate(_config) {
186
199
  module.exports = {
187
200
  register,
188
201
  activate,
189
- // Also expose as direct properties for compatibility with different loading patterns
190
202
  handleTool,
191
203
  handleGateway,
192
204
  };