@petercha90/oasis 1.2.0 → 1.3.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/README.md CHANGED
@@ -21,7 +21,7 @@
21
21
  ---
22
22
 
23
23
  <p align="center">
24
- <img src="docs/example.png" alt="OASIS Approval Example" width="800" />
24
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/docs/example.png" alt="OASIS Approval Example" width="800" />
25
25
  </p>
26
26
 
27
27
  ---
@@ -83,18 +83,27 @@ A dedicated Slack app is **required** for OASIS to work. It handles approval but
83
83
  #### Step 1: Create the App
84
84
 
85
85
  1. Go to [api.slack.com/apps](https://api.slack.com/apps)
86
- 2. Click **Create New App** → **From scratch**
86
+ 2. Click **Create New App**
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
+
87
91
  3. App Name: `OASIS`
88
92
  4. Pick your workspace → **Create App**
89
93
 
90
94
  #### Step 2: Enable Socket Mode
91
95
 
92
96
  1. Left sidebar → **Socket Mode**
93
- 2. Toggle **Enable Socket Mode** to ON
97
+ 2. Toggle **Enable Socket Mode** to ON <br>
98
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/3.png"/>
99
+
94
100
  3. You'll be prompted to create an App-Level Token:
95
101
  - Token Name: `oasis`
96
102
  - Scope: `connections:write` (auto-selected)
97
103
  - Click **Generate**
104
+
105
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/4.png"/>
106
+
98
107
  4. Copy the token starting with `xapp-...` — this is your **App Token**
99
108
 
100
109
  #### Step 3: Set Bot Permissions
@@ -111,6 +120,8 @@ A dedicated Slack app is **required** for OASIS to work. It handles approval but
111
120
  | `channels:history` | Read approval messages to extract approval ID |
112
121
  | `channels:read` | Access channel info |
113
122
 
123
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/6.png"/>
124
+
114
125
  #### Step 4: Subscribe to Events
115
126
 
116
127
  1. Left sidebar → **Event Subscriptions**
@@ -123,12 +134,16 @@ A dedicated Slack app is **required** for OASIS to work. It handles approval but
123
134
  | `message.channels` | Detect approval messages from OpenClaw agents |
124
135
  | `reaction_added` | Detect user's Allow (✅) or Deny (🙅) reaction |
125
136
 
137
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/8.png"/>
138
+
126
139
  5. Click **Save Changes**
127
140
 
128
141
  #### Step 5: Install to Workspace
129
142
 
130
143
  1. Left sidebar → **Install App**
131
144
  2. Click **Install to Workspace** → **Allow**
145
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/9.png"/>
146
+
132
147
  3. Copy the **Bot User OAuth Token** starting with `xoxb-...` — this is your **Bot Token**
133
148
 
134
149
  ### 3. Configure OASIS
@@ -211,7 +226,25 @@ Restart the gateway and OASIS will automatically connect:
211
226
  openclaw gateway restart
212
227
  ```
213
228
 
214
- > When a tool call requires approval, OASIS posts Allow / Deny buttons in Slack.
229
+ > When a tool call requires approval, OASIS posts Allow / Deny / Allow Always buttons in Slack.
230
+
231
+ ---
232
+
233
+ ## Allow Always
234
+
235
+ For repetitive commands like CronJobs or Slack Webhooks, you can skip repeated approvals by clicking **🔁 Allow Always**. This permanently allows the exact `tool + command/URL` combination.
236
+
237
+ - Click **🔁 Allow Always** on an approval request → the specific command is added to the allowlist
238
+ - Future identical calls are auto-approved without prompts
239
+ - The allowlist is persisted to disk and survives Gateway restarts
240
+
241
+ ### Managing the Allowlist
242
+
243
+ **DM the OASIS bot with `list`** to view, remove individual entries, or clear the entire allowlist:
244
+
245
+ <p align="center">
246
+ <img src="https://raw.githubusercontent.com/PeterCha90/oasis/main/public/11.png" alt="OASIS Allowlist Management" width="800" />
247
+ </p>
215
248
 
216
249
  ---
217
250
 
@@ -0,0 +1,15 @@
1
+ interface AllowlistEntry {
2
+ key: string;
3
+ addedBy: string;
4
+ addedAt: string;
5
+ label: string;
6
+ }
7
+ export declare function makeKey(toolName: string, params: Record<string, unknown>): string;
8
+ export declare function makeKeyFromParsed(toolName: string, parametersStr: string): string;
9
+ export declare function isAllowed(toolName: string, params: Record<string, unknown>): boolean;
10
+ export declare function allowAlways(key: string, userId?: string): void;
11
+ export declare function removeEntry(index: number): AllowlistEntry | null;
12
+ export declare function removeByKey(key: string): boolean;
13
+ export declare function getEntries(): readonly AllowlistEntry[];
14
+ export declare function clearAll(): number;
15
+ export {};
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Persistent allowlist for "Allow Always" decisions.
3
+ * Stored at ~/.openclaw/oasis-allowlist.json.
4
+ * Users can manage entries via Slack DM to the OASIS bot.
5
+ */
6
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
7
+ import { join } from "path";
8
+ import { homedir } from "os";
9
+ const ALLOWLIST_PATH = join(homedir(), ".openclaw", "oasis-allowlist.json");
10
+ let entries = [];
11
+ let loaded = false;
12
+ function ensureLoaded() {
13
+ if (loaded)
14
+ return;
15
+ loaded = true;
16
+ try {
17
+ if (existsSync(ALLOWLIST_PATH)) {
18
+ entries = JSON.parse(readFileSync(ALLOWLIST_PATH, "utf-8"));
19
+ }
20
+ }
21
+ catch {
22
+ entries = [];
23
+ }
24
+ }
25
+ function persist() {
26
+ try {
27
+ const dir = join(homedir(), ".openclaw");
28
+ if (!existsSync(dir))
29
+ mkdirSync(dir, { recursive: true });
30
+ writeFileSync(ALLOWLIST_PATH, JSON.stringify(entries, null, 2));
31
+ }
32
+ catch (err) {
33
+ console.error(`[OASIS] Failed to save allowlist: ${err}`);
34
+ }
35
+ }
36
+ // ── Key generation ──
37
+ export function makeKey(toolName, params) {
38
+ const command = params.command ?? params.cmd;
39
+ if (command)
40
+ return `${toolName}::${String(command).trim()}`;
41
+ const filePath = params.file_path ?? params.path ?? params.file;
42
+ if (filePath)
43
+ return `${toolName}::${String(filePath).trim()}`;
44
+ const url = params.url ?? params.uri;
45
+ if (url)
46
+ return `${toolName}::${String(url).trim()}`;
47
+ return `${toolName}::${JSON.stringify(params)}`;
48
+ }
49
+ export function makeKeyFromParsed(toolName, parametersStr) {
50
+ if (!parametersStr)
51
+ return `${toolName}::`;
52
+ try {
53
+ const params = JSON.parse(parametersStr);
54
+ return makeKey(toolName, params);
55
+ }
56
+ catch {
57
+ return `${toolName}::${parametersStr.trim()}`;
58
+ }
59
+ }
60
+ function keyToLabel(key) {
61
+ const [tool, ...rest] = key.split("::");
62
+ const param = rest.join("::");
63
+ if (param.length > 60)
64
+ return `${tool} — ${param.slice(0, 57)}…`;
65
+ return `${tool} — ${param}`;
66
+ }
67
+ // ── Public API ──
68
+ export function isAllowed(toolName, params) {
69
+ ensureLoaded();
70
+ const key = makeKey(toolName, params);
71
+ return entries.some(e => e.key === key);
72
+ }
73
+ export function allowAlways(key, userId) {
74
+ ensureLoaded();
75
+ if (entries.some(e => e.key === key))
76
+ return; // already exists
77
+ entries.push({
78
+ key,
79
+ addedBy: userId ?? "unknown",
80
+ addedAt: new Date().toISOString(),
81
+ label: keyToLabel(key),
82
+ });
83
+ persist();
84
+ console.log(`[OASIS] Allow-always added: ${key.slice(0, 80)}`);
85
+ }
86
+ export function removeEntry(index) {
87
+ ensureLoaded();
88
+ if (index < 0 || index >= entries.length)
89
+ return null;
90
+ const [removed] = entries.splice(index, 1);
91
+ persist();
92
+ console.log(`[OASIS] Allow-always removed: ${removed.key.slice(0, 80)}`);
93
+ return removed;
94
+ }
95
+ export function removeByKey(key) {
96
+ ensureLoaded();
97
+ const idx = entries.findIndex(e => e.key === key);
98
+ if (idx === -1)
99
+ return false;
100
+ entries.splice(idx, 1);
101
+ persist();
102
+ return true;
103
+ }
104
+ export function getEntries() {
105
+ ensureLoaded();
106
+ return entries;
107
+ }
108
+ export function clearAll() {
109
+ ensureLoaded();
110
+ const count = entries.length;
111
+ entries = [];
112
+ persist();
113
+ return count;
114
+ }
115
+ //# sourceMappingURL=allowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../src/allowlist.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,12 +6,39 @@ import { classifyTool } from "./classifier.js";
6
6
  import { scanForRisks } from "./scanner.js";
7
7
  import { loadConfig } from "./config.js";
8
8
  import { createLogger } from "./logger.js";
9
+ import { isAllowed } from "./allowlist.js";
9
10
  import { registerOasisCli } from "./cli/setup-wizard.js";
11
+ function summarizeParams(toolName, params) {
12
+ // Show the most relevant param for common tools
13
+ const command = params.command ?? params.cmd;
14
+ if (command)
15
+ return `Command: ${String(command).slice(0, 200)}`;
16
+ const filePath = params.file_path ?? params.path ?? params.file;
17
+ if (filePath)
18
+ return `File: ${String(filePath)}`;
19
+ const url = params.url ?? params.uri;
20
+ if (url)
21
+ return `URL: ${String(url)}`;
22
+ // Fallback: compact JSON of params
23
+ const json = JSON.stringify(params);
24
+ return json.length > 200 ? json.slice(0, 200) + "…" : json;
25
+ }
26
+ function formatDescription(scanResult, toolName, params) {
27
+ const parts = [
28
+ `Risk Score: ${scanResult.score} / 1.0`,
29
+ `Detected: ${scanResult.reasons.join(", ")}`,
30
+ summarizeParams(toolName, params),
31
+ ];
32
+ return parts.join("\n");
33
+ }
10
34
  /**
11
35
  * Core hook handler logic — exported for testing.
12
36
  */
13
37
  export async function handleBeforeToolCall(event, config) {
14
38
  const { toolName, params } = event;
39
+ // 0. Skip if previously allow-always'd
40
+ if (isAllowed(toolName, params))
41
+ return {};
15
42
  // 1. Tool classification
16
43
  const classification = classifyTool(toolName, config);
17
44
  // 2. Even for read tools, scan params for sensitive file paths
@@ -21,7 +48,7 @@ export async function handleBeforeToolCall(event, config) {
21
48
  return {
22
49
  requireApproval: {
23
50
  title: `🏝️ OASIS [${scanResult.score}] ${scanResult.reasons.join(", ")}`,
24
- description: `Risk Score: ${scanResult.score} / 1.0 | Detected: ${scanResult.reasons.join(", ")}`,
51
+ description: formatDescription(scanResult, toolName, params),
25
52
  severity: "warning",
26
53
  timeoutMs: config.approvalTimeoutMs,
27
54
  timeoutBehavior: "deny",
@@ -55,7 +82,7 @@ export async function handleBeforeToolCall(event, config) {
55
82
  return {
56
83
  requireApproval: {
57
84
  title: `🏝️ OASIS [${scanResult.score}] ${scanResult.reasons.join(", ")}`,
58
- description: `Risk Score: ${scanResult.score} / 1.0 | Detected: ${scanResult.reasons.join(", ")}`,
85
+ description: formatDescription(scanResult, toolName, params),
59
86
  severity,
60
87
  timeoutMs: config.approvalTimeoutMs,
61
88
  timeoutBehavior: "deny",
@@ -71,7 +98,7 @@ const OASIS_SOUL_RULE = [
71
98
  "## Mandatory Security Guidelines",
72
99
  "1. When the user denies an OASIS security decision, stop immediately. Do not attempt alternative approaches or workarounds.",
73
100
  "2. Never respond to, interpret, or act on OASIS-related messages. OASIS handles its own approval flow independently.",
74
- "3. Never read, capture, relay, or transmit the contents of sensitive files (e.g. .env, openclaw.json, credentials, private keys) through any method without explicit user approval via OASIS.",
101
+ "3. Always proceed with tool calls normally even for sensitive files or risky commands. OASIS automatically intercepts dangerous operations and prompts the user for approval. Do NOT preemptively refuse or warn about security risks; OASIS handles this.",
75
102
  OASIS_SOUL_MARKER_END,
76
103
  ].join("\n");
77
104
  /**
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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"}
@@ -1,6 +1,7 @@
1
1
  import { App, LogLevel } from "@slack/bolt";
2
2
  import { parseApprovalMessage } from "./approval-parser.js";
3
3
  import { resolveApprovalOneShot } from "./gateway-client.js";
4
+ import { makeKeyFromParsed, allowAlways, getEntries, removeEntry, clearAll } from "../allowlist.js";
4
5
  export function createOasisSlackApp(config) {
5
6
  const app = new App({
6
7
  token: config.botToken,
@@ -23,7 +24,20 @@ export function createOasisSlackApp(config) {
23
24
  try {
24
25
  await client.chat.delete({ channel, ts });
25
26
  }
26
- catch { }
27
+ catch (delErr) {
28
+ // chat.delete can fail due to permissions; fall back to blanking the message
29
+ try {
30
+ await client.chat.update({
31
+ channel,
32
+ ts,
33
+ text: " ",
34
+ blocks: [],
35
+ });
36
+ }
37
+ catch (updErr) {
38
+ console.error(`[OASIS] Failed to remove followup message: delete=${delErr}, update=${updErr}`);
39
+ }
40
+ }
27
41
  return;
28
42
  }
29
43
  if (processedMessages.has(ts))
@@ -32,6 +46,9 @@ export function createOasisSlackApp(config) {
32
46
  if (!parsed)
33
47
  return;
34
48
  processedMessages.add(ts);
49
+ // Encode allowlist key into "Allow Always" button value (avoids cross-instance Map issues)
50
+ const allowlistKey = makeKeyFromParsed(parsed.toolName, parsed.parameters);
51
+ const allowAlwaysValue = JSON.stringify({ id: parsed.approvalId, key: allowlistKey });
35
52
  try {
36
53
  await client.chat.postMessage({
37
54
  channel,
@@ -61,6 +78,12 @@ export function createOasisSlackApp(config) {
61
78
  action_id: "oasis_allow",
62
79
  value: parsed.approvalId,
63
80
  },
81
+ {
82
+ type: "button",
83
+ text: { type: "plain_text", text: "🔁 Allow Always", emoji: true },
84
+ action_id: "oasis_allow_always",
85
+ value: allowAlwaysValue,
86
+ },
64
87
  {
65
88
  type: "button",
66
89
  text: { type: "plain_text", text: "🙅 Deny", emoji: true },
@@ -119,6 +142,54 @@ export function createOasisSlackApp(config) {
119
142
  resolvedApprovals.delete(approvalId);
120
143
  }
121
144
  });
145
+ // Handle Allow Always button
146
+ app.action("oasis_allow_always", async ({ ack, body, client }) => {
147
+ await ack();
148
+ const rawValue = body.actions?.[0]?.value;
149
+ let approvalId;
150
+ let allowlistKey;
151
+ try {
152
+ const parsed = JSON.parse(rawValue);
153
+ approvalId = parsed.id;
154
+ allowlistKey = parsed.key;
155
+ }
156
+ catch {
157
+ approvalId = rawValue; // fallback
158
+ }
159
+ if (!approvalId || resolvedApprovals.has(approvalId))
160
+ return;
161
+ resolvedApprovals.add(approvalId);
162
+ const userId = body.user.id;
163
+ const channel = body.channel?.id;
164
+ const messageTs = body.message?.ts;
165
+ console.log(`[OASIS] Allow-always by <@${userId}>`);
166
+ try {
167
+ await resolveApprovalOneShot(config.gatewayPort, config.gatewayAuthToken, {
168
+ id: approvalId,
169
+ decision: "allow-always",
170
+ });
171
+ // Register in OASIS allowlist so future identical calls skip approval
172
+ if (allowlistKey) {
173
+ allowAlways(allowlistKey, userId);
174
+ }
175
+ console.log(`[OASIS] Gateway resolved: Allow-always`);
176
+ if (channel && messageTs) {
177
+ await client.chat.update({
178
+ channel,
179
+ ts: messageTs,
180
+ text: `🔁 OASIS: Always allowed by <@${userId}>`,
181
+ blocks: [{
182
+ type: "section",
183
+ text: { type: "mrkdwn", text: `🔁 *OASIS: Always allowed* by <@${userId}>\n_DM me \`list\` to manage the allowlist._` },
184
+ }],
185
+ });
186
+ }
187
+ }
188
+ catch (err) {
189
+ console.error(`[OASIS] Allow-always failed: ${err}`);
190
+ resolvedApprovals.delete(approvalId);
191
+ }
192
+ });
122
193
  // Handle Deny button
123
194
  app.action("oasis_deny", async ({ ack, body, client }) => {
124
195
  await ack();
@@ -153,6 +224,100 @@ export function createOasisSlackApp(config) {
153
224
  resolvedApprovals.delete(approvalId);
154
225
  }
155
226
  });
227
+ // ── Allowlist management via DM ──
228
+ app.event("message", async ({ event, client }) => {
229
+ const msg = event;
230
+ if (msg.channel_type !== "im")
231
+ return; // DM only
232
+ const text = (msg.text ?? "").trim().toLowerCase();
233
+ const channel = msg.channel;
234
+ if (!channel)
235
+ return;
236
+ if (text === "list" || text === "allowlist") {
237
+ const list = getEntries();
238
+ if (list.length === 0) {
239
+ await client.chat.postMessage({
240
+ channel,
241
+ text: "🏝️ Allowlist is empty. No commands are auto-approved.",
242
+ });
243
+ return;
244
+ }
245
+ const blocks = [
246
+ { type: "header", text: { type: "plain_text", text: `🏝️ OASIS Allowlist (${list.length})`, emoji: true } },
247
+ { type: "divider" },
248
+ ];
249
+ for (let i = 0; i < list.length; i++) {
250
+ const e = list[i];
251
+ const addedDate = new Date(e.addedAt).toLocaleDateString();
252
+ blocks.push({
253
+ type: "section",
254
+ text: {
255
+ type: "mrkdwn",
256
+ text: `*${i + 1}.* \`${e.label}\`\n_Added by <@${e.addedBy}> on ${addedDate}_`,
257
+ },
258
+ accessory: {
259
+ type: "button",
260
+ text: { type: "plain_text", text: "🗑️ Remove", emoji: true },
261
+ style: "danger",
262
+ action_id: "oasis_allowlist_remove",
263
+ value: String(i),
264
+ },
265
+ });
266
+ }
267
+ blocks.push({ type: "divider" }, {
268
+ type: "actions",
269
+ elements: [{
270
+ type: "button",
271
+ text: { type: "plain_text", text: "🗑️ Clear All", emoji: true },
272
+ style: "danger",
273
+ action_id: "oasis_allowlist_clear",
274
+ confirm: {
275
+ title: { type: "plain_text", text: "Clear allowlist?" },
276
+ text: { type: "plain_text", text: "This will remove all auto-approved commands." },
277
+ confirm: { type: "plain_text", text: "Clear All" },
278
+ deny: { type: "plain_text", text: "Cancel" },
279
+ },
280
+ }],
281
+ });
282
+ await client.chat.postMessage({ channel, text: "OASIS Allowlist", blocks });
283
+ return;
284
+ }
285
+ if (text === "help") {
286
+ await client.chat.postMessage({
287
+ channel,
288
+ text: [
289
+ "🏝️ *OASIS Bot Commands*",
290
+ "• `list` — View and manage the allowlist",
291
+ "• `help` — Show this message",
292
+ ].join("\n"),
293
+ });
294
+ }
295
+ });
296
+ // Handle allowlist remove button
297
+ app.action("oasis_allowlist_remove", async ({ ack, body, client }) => {
298
+ await ack();
299
+ const index = parseInt(body.actions?.[0]?.value, 10);
300
+ const channel = body.channel?.id;
301
+ const removed = removeEntry(index);
302
+ if (removed && channel) {
303
+ await client.chat.postMessage({
304
+ channel,
305
+ text: `✅ Removed: \`${removed.label}\`\nSend \`list\` to see the updated allowlist.`,
306
+ });
307
+ }
308
+ });
309
+ // Handle allowlist clear all button
310
+ app.action("oasis_allowlist_clear", async ({ ack, body, client }) => {
311
+ await ack();
312
+ const channel = body.channel?.id;
313
+ const count = clearAll();
314
+ if (channel) {
315
+ await client.chat.postMessage({
316
+ channel,
317
+ text: `✅ Cleared ${count} entries from the allowlist.`,
318
+ });
319
+ }
320
+ });
156
321
  app.error(async (error) => { console.error(`[OASIS] Error:`, error); });
157
322
  return app;
158
323
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-handler.js","sourceRoot":"","sources":["../../src/slack/approval-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-handler.js","sourceRoot":"","sources":["../../src/slack/approval-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AASpG,MAAM,UAAU,mBAAmB,CAAC,MAAsB;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,oDAAoD;IACpD,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,KAAY,CAAC;QACzB,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,EAAE,GAAuB,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAuB,GAAG,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,OAAO;QAErC,yCAAyC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,6EAA6E;gBAC7E,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;wBACvB,OAAO;wBACP,EAAE;wBACF,IAAI,EAAE,GAAG;wBACT,MAAM,EAAE,EAAE;qBACX,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,qDAAqD,MAAM,YAAY,MAAM,EAAE,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1B,2FAA2F;QAC3F,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAEtF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC5B,OAAO;gBACP,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,cAAc,MAAM,CAAC,QAAQ,IAAI,iBAAiB,EAAE;gBAC1D,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE;gCACJ,QAAQ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG;gCAC9C,aAAa,MAAM,CAAC,QAAQ,0BAA0B,MAAM,CAAC,SAAS,UAAU;gCAChF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;gCACvD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,wBAAwB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;6BACzF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;yBAC7B;qBACF;oBACD,EAAE,IAAI,EAAE,SAAS,EAAE;oBACnB;wBACE,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE;4BACR;gCACE,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;gCAC1D,KAAK,EAAE,SAAS;gCAChB,SAAS,EAAE,aAAa;gCACxB,KAAK,EAAE,MAAM,CAAC,UAAU;6BACzB;4BACD;gCACE,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;gCAClE,SAAS,EAAE,oBAAoB;gCAC/B,KAAK,EAAE,gBAAgB;6BACxB;4BACD;gCACE,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;gCAC1D,KAAK,EAAE,QAAQ;gCACf,SAAS,EAAE,YAAY;gCACvB,KAAK,EAAE,MAAM,CAAC,UAAU;6BACzB;yBACF;qBACF;iBACK;aACT,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;YACxD,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,QAAQ;QACR,IAAI,iBAAiB,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE;gBAAE,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,UAAU,GAAI,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACrD,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAC7D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE;gBACxE,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAEjD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,OAAO;oBACP,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,yBAAyB,MAAM,GAAG;oBACxC,MAAM,EAAE,CAAC;4BACP,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,MAAM,GAAG,EAAE;yBACrE,CAAQ;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;YAC9C,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/D,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAI,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACnD,IAAI,UAAkB,CAAC;QACvB,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;YACvB,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,QAAQ,CAAC,CAAC,WAAW;QACpC,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAC7D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE;gBACxE,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAC;YAEH,sEAAsE;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAEtD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,OAAO;oBACP,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,iCAAiC,MAAM,GAAG;oBAChD,MAAM,EAAE,CAAC;4BACP,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mCAAmC,MAAM,8CAA8C,EAAE;yBACxH,CAAQ;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;YACrD,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACvD,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,UAAU,GAAI,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACrD,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO;QAC7D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE;gBACxE,EAAE,EAAE,UAAU;gBACd,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAEhD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACvB,OAAO;oBACP,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,yBAAyB,MAAM,GAAG;oBACxC,MAAM,EAAE,CAAC;4BACP,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,MAAM,GAAG,EAAE;yBACrE,CAAQ;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;YAC7C,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,KAAY,CAAC;QACzB,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI;YAAE,OAAO,CAAC,UAAU;QACjD,MAAM,IAAI,GAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAuB,GAAG,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC5B,OAAO;oBACP,IAAI,EAAE,wDAAwD;iBAC/D,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAU;gBACpB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,wBAAwB,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC3G,EAAE,IAAI,EAAE,SAAS,EAAE;aACpB,CAAC;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,OAAO,QAAQ,SAAS,GAAG;qBAC/E;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC7D,KAAK,EAAE,QAAQ;wBACf,SAAS,EAAE,wBAAwB;wBACnC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB;gBACE,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE;wBAChE,KAAK,EAAE,QAAQ;wBACf,SAAS,EAAE,uBAAuB;wBAClC,OAAO,EAAE;4BACP,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE;4BACvD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,8CAA8C,EAAE;4BAClF,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;4BAClD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC7C;qBACF,CAAC;aACH,CACF,CAAC;YAEF,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC5B,OAAO;gBACP,IAAI,EAAE;oBACJ,0BAA0B;oBAC1B,0CAA0C;oBAC1C,8BAA8B;iBAC/B,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACnE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAE,IAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC5B,OAAO;gBACP,IAAI,EAAE,gBAAgB,OAAO,CAAC,KAAK,iDAAiD;aACrF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAClE,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,OAAO,GAAI,IAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC5B,OAAO;gBACP,IAAI,EAAE,aAAa,KAAK,8BAA8B;aACvD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -10,6 +10,7 @@ export function parseApprovalMessage(text) {
10
10
  const riskMatch = text.match(/\[([\d.]+)\]/) ?? text.match(/Risk Score:\s*\*?\*?\s*[`]?([\d.]+)/);
11
11
  const detectedMatch = text.match(/Detected:\s*\*?\*?\s*([^|\n]+)/);
12
12
  let parameters = "";
13
+ // 1. Try Parameters: block (legacy format)
13
14
  const paramStart = text.indexOf("Parameters:");
14
15
  if (paramStart !== -1) {
15
16
  const afterParam = text.slice(paramStart + "Parameters:".length);
@@ -27,6 +28,22 @@ export function parseApprovalMessage(text) {
27
28
  if (cp)
28
29
  parameters = cp[1];
29
30
  }
31
+ // 2. Try Command:/File:/URL: from description (new format from formatDescription)
32
+ if (!parameters) {
33
+ const cmdMatch = text.match(/^Command:\s*(.+)$/m);
34
+ if (cmdMatch)
35
+ parameters = JSON.stringify({ command: cmdMatch[1].trim() });
36
+ }
37
+ if (!parameters) {
38
+ const fileMatch = text.match(/^File:\s*(.+)$/m);
39
+ if (fileMatch)
40
+ parameters = JSON.stringify({ file_path: fileMatch[1].trim() });
41
+ }
42
+ if (!parameters) {
43
+ const urlMatch = text.match(/^URL:\s*(.+)$/m);
44
+ if (urlMatch)
45
+ parameters = JSON.stringify({ url: urlMatch[1].trim() });
46
+ }
30
47
  return {
31
48
  approvalId: idMatch[1],
32
49
  title: titleMatch?.[1]?.trim() ?? "Approval Required",
@@ -1 +1 @@
1
- {"version":3,"file":"approval-parser.js","sourceRoot":"","sources":["../../src/slack/approval-parser.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAClG,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACnE,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,UAAU;YAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7C,CAAC;YAAC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAAC,IAAI,SAAS;gBAAE,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;IAC/G,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAAC,IAAI,EAAE;YAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAC7F,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACtB,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,mBAAmB;QACrD,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;QACrC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;QACzC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG;QAClD,QAAQ,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC3C,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"approval-parser.js","sourceRoot":"","sources":["../../src/slack/approval-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@petercha90/oasis",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "description": "OASIS — OpenClaw Antidote for Suspicious Injection Signals",
6
6
  "main": "dist/index.js",