@petercha90/oasis 1.3.7 → 1.3.8

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 CHANGED
@@ -21,7 +21,7 @@
21
21
  ---
22
22
 
23
23
  <p align="center">
24
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/example1.png" alt="OASIS Approval Example" width="800" />
24
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/example1.png" alt="OASIS Approval Example" width="550" />
25
25
  </p>
26
26
 
27
27
  ---
@@ -80,78 +80,62 @@ openclaw gateway restart
80
80
 
81
81
  A dedicated Slack app is **required** for OASIS to work. It handles approval buttons and user interactions.
82
82
 
83
- #### Step 1: Create the App
84
-
85
- 1. Go to [api.slack.com/apps](https://api.slack.com/apps)
86
- 2. Click **Create New App**<br>
87
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/1.png"/>
88
- → **From scratch** <br>
89
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/2.png"/>
90
-
91
- 3. App Name: `OASIS`
92
- 4. Pick your workspace → **Create App**
93
-
94
- #### Step 2: Enable Socket Mode
95
-
96
- 1. Left sidebar → **Socket Mode**
97
- 2. Toggle **Enable Socket Mode** to ON <br>
98
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/3.png"/>
99
-
100
- 3. You'll be prompted to create an App-Level Token:
101
- - Token Name: `oasis`
102
- - Scope: `connections:write` (auto-selected)
103
- - Click **Generate**
104
-
105
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/4.png"/>
106
-
107
- 4. Copy the token starting with `xapp-...` — this is your **App Token**
108
-
109
- #### Step 3: Set Bot Permissions
110
-
111
- 1. Left sidebar → **OAuth & Permissions**
112
- 2. Scroll to **Scopes** → **Bot Token Scopes**
113
- 3. Click **Add an OAuth Scope** and add these 5 scopes:
114
-
115
- | Scope | Purpose |
116
- |-------|---------|
117
- | `chat:write` | Post approval summaries and results |
118
- | `reactions:read` | Detect when users react ✅ or 🙅 |
119
- | `reactions:write` | Add ✅ 🙅 reaction hints to approval messages |
120
- | `channels:history` | Read approval messages to extract approval ID |
121
- | `channels:read` | Access channel info |
122
-
123
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/6.png"/>
124
-
125
- #### Step 4: Subscribe to Events
126
-
127
- 1. Left sidebar → **Event Subscriptions**
128
- 2. Toggle **Enable Events** to ON
129
- 3. Scroll to **Subscribe to bot events** → **Add Bot User Event**
130
- 4. Add these 2 events:
131
-
132
- | Event | Purpose |
133
- |-------|---------|
134
- | `message.channels` | Detect approval messages from OpenClaw agents |
135
- | `reaction_added` | Detect user's Allow (✅) or Deny (🙅) reaction |
136
-
137
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/8.png"/>
138
-
139
- 5. Click **Save Changes**
83
+ #### Step 1: Create the App from Manifest
84
+
85
+ 1. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From an app manifest**
86
+ 2. Pick your workspace
87
+ 3. Paste the manifest below (YAML tab) and click **Next** → **Create**
88
+
89
+ <details>
90
+ <summary>📋 Click to copy manifest</summary>
91
+
92
+ ```yaml
93
+ display_information:
94
+ name: OASIS
95
+ description: OpenClaw Antidote for Suspicious Injection Signals
96
+ background_color: "#4A154B"
97
+ features:
98
+ bot_user:
99
+ display_name: OASIS
100
+ always_online: true
101
+ app_home:
102
+ home_tab_enabled: false
103
+ messages_tab_enabled: true
104
+ messages_tab_read_only_enabled: false
105
+ oauth_config:
106
+ scopes:
107
+ bot:
108
+ - chat:write
109
+ - reactions:read
110
+ - reactions:write
111
+ - channels:history
112
+ - channels:read
113
+ settings:
114
+ event_subscriptions:
115
+ bot_events:
116
+ - message.channels
117
+ - reaction_added
118
+ interactivity:
119
+ is_enabled: true
120
+ org_deploy_enabled: false
121
+ socket_mode_enabled: true
122
+ token_rotation_enabled: false
123
+ ```
140
124
 
141
- #### Step 5: Messages Tab (On)
125
+ </details>
142
126
 
143
- 1. Left sidebar **App Home**
144
- 2. Enable **Messages Tab** under **Show Tabs**
127
+ > The manifest pre-configures everything: bot scopes, event subscriptions, Socket Mode, interactivity, and the Messages tab. No manual clicking required.
145
128
 
146
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/10.png"/>
129
+ #### Step 2: Generate App-Level Token
147
130
 
148
- #### Step 6: Install to Workspace
131
+ 1. Left sidebar **Basic Information** → **App-Level Tokens** → **Generate Token and Scopes**
132
+ 2. Token Name: `oasis`, Scope: `connections:write` → **Generate**
133
+ 3. Copy the `xapp-...` token — this is your **App Token**
149
134
 
150
- 1. Left sidebar → **Install App**
151
- 2. Click **Install to Workspace** → **Allow**
152
- <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/9.png"/>
135
+ #### Step 3: Install to Workspace
153
136
 
154
- 3. Copy the **Bot User OAuth Token** starting with `xoxb-...` — this is your **Bot Token**
137
+ 1. Left sidebar **Install App** **Install to Workspace** **Allow**
138
+ 2. Copy the `xoxb-...` **Bot User OAuth Token** — this is your **Bot Token**
155
139
 
156
140
  ### 3. Configure OASIS
157
141
 
@@ -284,10 +268,11 @@ All scoring is **deterministic pattern matching**. No LLM involved.
284
268
  | `BLOCK_DESTRUCTIVE` | `rm -rf /`, fork bomb, `mkfs`, `dd if=/dev/zero` | **1.0** | 🚨 Blocked |
285
269
  | `BLOCK_PIPE_SHELL` | `curl \| bash`, `wget \| sh` | **1.0** | 🚨 Blocked |
286
270
  | `PROMPT_INJECTION` | `ignore previous instructions`, `you are now` | 0.9 | Ask approval |
287
- | `SECRET_ACCESS` | `$AWS_SECRET`, `process.env.TOKEN` | 0.8 | Ask approval |
271
+ | `SECRET_ACCESS` | `$AWS_SECRET`, `$SLACK_WEBHOOK`, `process.env.TOKEN` | 0.8 | Ask approval |
288
272
  | `SUSPICIOUS_DOMAIN` | `.xyz`, `.tk`, `.ml`, `.pw`, `.top` | 0.8 | Ask approval |
289
273
  | `DATA_EXFILTRATION` | `curl -X POST`, `nc -e`, reverse shell | 0.7 | Ask approval |
290
- | `SENSITIVE_FILE` | `.env`, `.ssh/id_rsa`, `.aws/credentials` | 0.6 | Ask approval |
274
+ | `ENV_DUMP` | `printenv`, `env \| grep`, `export -p`, `/proc/*/environ` | 0.6 | Ask approval |
275
+ | `SENSITIVE_FILE` | `.env`, `.ssh/id_rsa`, `.aws/credentials`, `/proc/*/environ` | 0.6 | Ask approval |
291
276
  | `PRIVILEGE_ESCALATION` | `sudo`, `chmod 777`, `chown root` | 0.5 | Ask approval |
292
277
  | `EXTERNAL_URL` | Non-safe-domain HTTP access | 0.3 | Ask approval |
293
278
 
package/dist/index.d.ts CHANGED
@@ -19,6 +19,19 @@ export declare function handleBeforeToolCall(event: {
19
19
  toolName: string;
20
20
  params: Record<string, unknown>;
21
21
  }, config: OasisConfig): Promise<HookResult>;
22
+ /**
23
+ * Resolve a config value that may be a string or a SecretRef object.
24
+ * SecretRef: { source: "env", provider: "default", id: "ENV_VAR_NAME" }
25
+ */
26
+ /**
27
+ * Normalize a secret-ref id to a bare env-var key.
28
+ * openclaw (>=2026.5) may store the id wrapped in its `${VAR}` interpolation
29
+ * syntax (e.g. "${OASIS_BOT_TOKEN}"); strip the wrapper so it matches the
30
+ * bare key in ~/.openclaw/.env. Without this the env lookup never matches and
31
+ * the OASIS Slack app silently fails to start.
32
+ */
33
+ export declare function normalizeEnvKey(id: string): string;
34
+ export declare function resolveSecretRef(value: unknown): string | undefined;
22
35
  /**
23
36
  * OpenClaw plugin entry point.
24
37
  * Registers the before_tool_call hook for deterministic risk scoring.
package/dist/index.js CHANGED
@@ -147,21 +147,48 @@ function injectSoulRules() {
147
147
  * Resolve a config value that may be a string or a SecretRef object.
148
148
  * SecretRef: { source: "env", provider: "default", id: "ENV_VAR_NAME" }
149
149
  */
150
- function resolveSecretRef(value) {
150
+ /**
151
+ * Normalize a secret-ref id to a bare env-var key.
152
+ * openclaw (>=2026.5) may store the id wrapped in its `${VAR}` interpolation
153
+ * syntax (e.g. "${OASIS_BOT_TOKEN}"); strip the wrapper so it matches the
154
+ * bare key in ~/.openclaw/.env. Without this the env lookup never matches and
155
+ * the OASIS Slack app silently fails to start.
156
+ */
157
+ export function normalizeEnvKey(id) {
158
+ return String(id).replace(/^\$\{(.+)\}$/, "$1").trim();
159
+ }
160
+ /** Build a `^KEY=value$` matcher for a .env file, escaping regex metachars in KEY. */
161
+ function envLineRegex(key) {
162
+ const esc = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
163
+ return new RegExp(`^${esc}=(.+)$`, "m");
164
+ }
165
+ export function resolveSecretRef(value) {
151
166
  if (typeof value === "string")
152
167
  return value || undefined;
153
168
  if (value && typeof value === "object" && "id" in value) {
154
169
  const ref = value;
155
170
  if (ref.source === "env") {
156
- // Read from ~/.openclaw/.env
171
+ const key = normalizeEnvKey(ref.id);
172
+ if (!key)
173
+ return undefined;
174
+ // 1. Look up the key in ~/.openclaw/.env
157
175
  const envPath = join(homedir(), ".openclaw", ".env");
158
176
  if (existsSync(envPath)) {
159
177
  const content = readFileSync(envPath, "utf-8");
160
- const match = content.match(new RegExp(`^${ref.id}=(.+)$`, "m"));
161
- return match?.[1]?.trim();
178
+ const match = content.match(envLineRegex(key));
179
+ if (match?.[1])
180
+ return match[1].trim();
162
181
  }
163
- // Fallback to process.env
164
- return process.env[ref.id];
182
+ // 2. Fallback to process.env
183
+ if (process.env[key])
184
+ return process.env[key];
185
+ // 3. openclaw >=2026.5 interpolates ${VAR} placeholders inside plugin
186
+ // config itself, so the SecretRef id may ALREADY be the resolved
187
+ // secret value rather than an env-var name. If it could not be found
188
+ // as a key and does not look like an UPPER_SNAKE_CASE env-var name,
189
+ // treat the id as the literal resolved value.
190
+ if (!/^[A-Z_][A-Z0-9_]*$/.test(key))
191
+ return key;
165
192
  }
166
193
  }
167
194
  return undefined;
@@ -175,8 +202,8 @@ function loadGatewayConfig() {
175
202
  let authToken;
176
203
  if (config.gateway?.auth?.mode === "token" && config.gateway?.auth?.token?.id) {
177
204
  const envContent = existsSync(envPath) ? readFileSync(envPath, "utf-8") : "";
178
- const tokenKey = config.gateway.auth.token.id;
179
- const match = envContent.match(new RegExp(`^${tokenKey}=(.+)$`, "m"));
205
+ const tokenKey = normalizeEnvKey(config.gateway.auth.token.id);
206
+ const match = envContent.match(envLineRegex(tokenKey));
180
207
  authToken = match?.[1]?.trim();
181
208
  }
182
209
  return { port, authToken };
@@ -196,11 +223,31 @@ export default definePluginEntry({
196
223
  register(api) {
197
224
  const config = loadConfig(api.pluginConfig);
198
225
  const logger = createLogger(config, api.logger);
226
+ let activeSlackApp;
227
+ const shutdown = async () => {
228
+ if (activeSlackApp) {
229
+ logger.info("[OASIS] Stopping Slack app...");
230
+ try {
231
+ await activeSlackApp.stop();
232
+ activeSlackApp = undefined;
233
+ logger.info("[OASIS] Slack app stopped");
234
+ }
235
+ catch (err) {
236
+ logger.warn(`[OASIS] Failed to stop Slack app: ${err}`);
237
+ }
238
+ }
239
+ };
199
240
  logger.info(`[OASIS] Loaded with threshold=${config.threshold}`);
200
241
  // ── Inject SOUL.md rules into all agent workspaces ──
201
242
  injectSoulRules();
202
243
  // ── CLI: setup wizard ──
203
244
  registerOasisCli(api, config);
245
+ // ── Lifecycle Hooks ──
246
+ api.on("session_end", async () => { await shutdown(); });
247
+ api.on("gateway_stop", async () => { await shutdown(); });
248
+ // Safety net for process signals
249
+ process.on("SIGINT", () => { shutdown().finally(() => process.exit(0)); });
250
+ process.on("SIGTERM", () => { shutdown().finally(() => process.exit(0)); });
204
251
  // ── Core Hook: before_tool_call ──
205
252
  api.on("before_tool_call", async (event, _ctx) => {
206
253
  const result = await handleBeforeToolCall(event, config);
@@ -216,24 +263,45 @@ export default definePluginEntry({
216
263
  return result;
217
264
  }, { priority: 10 });
218
265
  // ── Slack App: dedicated OASIS bot ──
219
- const botToken = resolveSecretRef(api.pluginConfig?.oasisBotToken ?? config.oasisBotToken);
220
- const appToken = resolveSecretRef(api.pluginConfig?.oasisAppToken ?? config.oasisAppToken);
266
+ const botRef = api.pluginConfig?.oasisBotToken ?? config.oasisBotToken;
267
+ const appRef = api.pluginConfig?.oasisAppToken ?? config.oasisAppToken;
268
+ const botToken = resolveSecretRef(botRef);
269
+ const appToken = resolveSecretRef(appRef);
221
270
  if (botToken && appToken) {
222
271
  import("./slack/approval-handler.js").then(({ createOasisSlackApp }) => {
223
272
  const gw = loadGatewayConfig();
224
- const slackApp = createOasisSlackApp({
273
+ activeSlackApp = createOasisSlackApp({
225
274
  botToken,
226
275
  appToken,
227
276
  gatewayPort: gw.port,
228
277
  gatewayAuthToken: gw.authToken,
229
278
  });
230
- slackApp.start().then(() => {
279
+ activeSlackApp.start().then(() => {
231
280
  logger.info("[OASIS] Slack app connected");
232
281
  }).catch((err) => {
233
282
  logger.warn(`[OASIS] Slack app failed: ${err}`);
234
283
  });
284
+ }).catch((err) => {
285
+ logger.warn(`[OASIS] Slack app module load failed: ${err}`);
235
286
  });
236
287
  }
288
+ else {
289
+ // Don't fail silently — explain WHY no approval buttons will appear.
290
+ // (config id is an env-var NAME, not the secret value, so it is safe to log.)
291
+ const describeRef = (v) => {
292
+ if (v == null)
293
+ return "missing";
294
+ if (typeof v === "string")
295
+ return v ? "string(set)" : "empty-string";
296
+ if (typeof v === "object" && v !== null && "id" in v)
297
+ return `secretRef(source=${v.source}, id=${JSON.stringify(v.id)})`;
298
+ return typeof v;
299
+ };
300
+ logger.warn(`[OASIS] Slack app NOT started — tokens unresolved, so no approval buttons will appear. ` +
301
+ `botToken=${botToken ? "ok" : "UNRESOLVED"} (config: ${describeRef(botRef)}); ` +
302
+ `appToken=${appToken ? "ok" : "UNRESOLVED"} (config: ${describeRef(appRef)}). ` +
303
+ `Ensure OASIS_BOT_TOKEN/OASIS_APP_TOKEN exist in ~/.openclaw/.env and oasisBotToken/oasisAppToken are set in the plugin config.`);
304
+ }
237
305
  },
238
306
  });
239
307
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/patterns.js CHANGED
@@ -26,11 +26,18 @@ export const RISK_PATTERNS = [
26
26
  },
27
27
  {
28
28
  id: "SECRET_ACCESS",
29
- regex: /\$AWS_SECRET|\$API_KEY|\$DB_PASSWORD|process\.env\.(SECRET|PASSWORD|KEY|TOKEN)/i,
29
+ regex: /\$\{?[A-Z0-9_]*(?:SECRET|PASSWORD|PASSWD|TOKEN|API_?KEY|ACCESS_?KEY|CREDENTIAL|CRED|PRIVATE_KEY|WEBHOOK|BEARER)[A-Z0-9_]*\}?\b|process\.env\.[A-Z_]*(?:SECRET|PASSWORD|PASSWD|KEY|TOKEN|CREDENTIAL|AUTH|PRIVATE|WEBHOOK|API)[A-Z_]*/i,
30
30
  score: 0.8,
31
31
  description: "Secret/credential access",
32
32
  severity: "warning",
33
33
  },
34
+ {
35
+ id: "ENV_DUMP",
36
+ regex: /\bprintenv\b|(?:^|[\s;|&])env\s*(?:\||$|>|;)|cat\s+\/proc\/[^\s]*\/environ|\bexport\s+-p\b/i,
37
+ score: 0.6,
38
+ description: "Environment variable dump",
39
+ severity: "warning",
40
+ },
34
41
  {
35
42
  id: "SUSPICIOUS_DOMAIN",
36
43
  regex: /\.(xyz|tk|ml|ga|cf|pw|top|click|loan|work)\b/i,
@@ -47,7 +54,7 @@ export const RISK_PATTERNS = [
47
54
  },
48
55
  {
49
56
  id: "SENSITIVE_FILE",
50
- regex: /\.env(\.[a-z0-9]+)*|\.ssh\/|id_rsa|\.aws\/credentials|\/etc\/shadow|\/etc\/passwd|\.pem\b|\.key\b|oasis-allowlist\.json/i,
57
+ regex: /\.env(\.[a-z0-9]+)*|\.ssh\/|id_rsa|\.aws\/credentials|\/etc\/shadow|\/etc\/passwd|\.pem\b|\.key\b|oasis-allowlist\.json|\/proc\/[^\s/]+\/environ/i,
51
58
  score: 0.6,
52
59
  description: "Sensitive file access",
53
60
  severity: "warning",
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EACH,mEAAmE;QACrE,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,8EAA8E;QACrF,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EACH,+EAA+E;QACjF,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EACH,iFAAiF;QACnF,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,+CAA+C;QACtD,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EACH,qEAAqE;QACvE,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EACH,0HAA0H;QAC5H,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,oDAAoD;QAC3D,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAa;IAC5C,YAAY;IACZ,uBAAuB;IACvB,WAAW;IACX,UAAU;IACV,oBAAoB;IACpB,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EACH,mEAAmE;QACrE,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,8EAA8E;QACrF,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC;AAEF,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EACH,+EAA+E;QACjF,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,UAAU;KACrB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EACH,sOAAsO;QACxO,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EACH,6FAA6F;QAC/F,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,+CAA+C;QACtD,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EACH,qEAAqE;QACvE,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EACH,mJAAmJ;QACrJ,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,oDAAoD;QAC3D,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAa;IAC5C,YAAY;IACZ,uBAAuB;IACvB,WAAW;IACX,UAAU;IACV,oBAAoB;IACpB,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC"}
@@ -1,12 +1,15 @@
1
1
  export function parseApprovalMessage(text) {
2
2
  if (!text.includes("Plugin approval required"))
3
3
  return null;
4
- const idMatch = text.match(/ID:\s*(plugin:[a-f0-9-]+)/i);
4
+ // ID may be plain ("ID: plugin:...") or openclaw-native bold mrkdwn
5
+ // ("*Approval ID:* plugin:...") — tolerate asterisks/whitespace between the
6
+ // label and the id. (openclaw >=2026.5 switched to native Block Kit rendering.)
7
+ const idMatch = text.match(/ID:[\s*]*(plugin:[a-f0-9-]+)/i);
5
8
  if (!idMatch)
6
9
  return null;
7
- const titleMatch = text.match(/Title:\s*(.+)/);
8
- const toolMatch = text.match(/^Tool:\s*(\S+)/m);
9
- const pluginMatch = text.match(/Plugin:\s*(\S+)/);
10
+ const titleMatch = text.match(/\**\s*Title:\**\s*(.+)/);
11
+ const toolMatch = text.match(/^\**\s*Tool:\**\s*(\S+)/m);
12
+ const pluginMatch = text.match(/\**\s*Plugin:\**\s*(\S+)/);
10
13
  const riskMatch = text.match(/\[([\d.]+)\]/) ?? text.match(/Risk Score:\s*\*?\*?\s*[`]?([\d.]+)/);
11
14
  const detectedMatch = text.match(/Detected:\s*\*?\*?\s*([^|\n]+)/);
12
15
  let parameters = "";
@@ -30,17 +33,17 @@ export function parseApprovalMessage(text) {
30
33
  }
31
34
  // 2. Try Command:/File:/URL: from description (new format from formatDescription)
32
35
  if (!parameters) {
33
- const cmdMatch = text.match(/^Command:\s*(.+)$/m);
36
+ const cmdMatch = text.match(/^\**\s*Command:\**\s*(.+?)\**\s*$/m);
34
37
  if (cmdMatch)
35
38
  parameters = JSON.stringify({ command: cmdMatch[1].trim() });
36
39
  }
37
40
  if (!parameters) {
38
- const fileMatch = text.match(/^File:\s*(.+)$/m);
41
+ const fileMatch = text.match(/^\**\s*File:\**\s*(.+?)\**\s*$/m);
39
42
  if (fileMatch)
40
43
  parameters = JSON.stringify({ file_path: fileMatch[1].trim() });
41
44
  }
42
45
  if (!parameters) {
43
- const urlMatch = text.match(/^URL:\s*(.+)$/m);
46
+ const urlMatch = text.match(/^\**\s*URL:\**\s*(.+?)\**\s*$/m);
44
47
  if (urlMatch)
45
48
  parameters = JSON.stringify({ url: urlMatch[1].trim() });
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-parser.js","sourceRoot":"","sources":["../../src/slack/approval-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-parser.js","sourceRoot":"","sources":["../../src/slack/approval-parser.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export async function resolveApprovalOneShot(port, authToken, params) {
45
45
  const role = "operator";
46
46
  const scopes = ["operator.admin", "operator.read", "operator.write", "operator.approvals"];
47
47
  const connectParams = {
48
- minProtocol: 3, maxProtocol: 3,
48
+ minProtocol: 3, maxProtocol: 4,
49
49
  client: { id: clientId, displayName: "OASIS", version: "2026.3.28", platform: process.platform, mode: clientMode },
50
50
  role, scopes,
51
51
  auth: authToken ? { token: authToken } : undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@petercha90/oasis",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "type": "module",
5
5
  "description": "OASIS — OpenClaw Antidote for Suspicious Injection Signals",
6
6
  "main": "dist/index.js",